I- Introdução

32
I- Introdução I- Introdução A Evolução dos Modelos de A Evolução dos Modelos de Dados e dos Sistemas de Dados e dos Sistemas de Gerência de Banco de Dados Gerência de Banco de Dados

description

I- Introdução. A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados. Sumário. I.1 Um Hiato entre Especificação e Implementação I.2 Especificação: Evolução dos Modelos Conceituais I.3 Implementação: Evolução dos Modelos Lógicos - PowerPoint PPT Presentation

Transcript of I- Introdução

Page 1: I- Introdução

I- IntroduçãoI- IntroduçãoI- IntroduçãoI- Introdução

A Evolução dos Modelos de A Evolução dos Modelos de Dados e dos Sistemas de Dados e dos Sistemas de

Gerência de Banco de DadosGerência de Banco de Dados

Page 2: I- Introdução

Sumário• I.1 Um Hiato entre Especificação e

Implementação• I.2 Especificação: Evolução dos

Modelos Conceituais• I.3 Implementação: Evolução dos

Modelos Lógicos• I.4 Projeto de Aplicações de Banco

de Dados

Page 3: I- Introdução

I.1 Um Hiato entre I.1 Um Hiato entre Especificação e Especificação e ImplementaçãoImplementação

I.1 Um Hiato entre I.1 Um Hiato entre Especificação e Especificação e ImplementaçãoImplementação

Page 4: I- Introdução

Especificação

Implementação

Page 5: I- Introdução

Nívelde

AbstraçãoEspecificação(ModelagemConceitual)

Implementação(Modelagem

Lógica)

Modelo deEntidade e

Relacionamento

Modelo deObjeto

ModeloRelacional

ModeloObjeto-

Relacional

Page 6: I- Introdução

I.2 Especificação: I.2 Especificação: Evolução dos Evolução dos

Modelos Modelos ConceituaisConceituais

I.2 Especificação: I.2 Especificação: Evolução dos Evolução dos

Modelos Modelos ConceituaisConceituais

Page 7: I- Introdução

Modelo de Entidade e Relacionamento

• Idéia Básica: Entidade– Atributos simples– Relacionamento entre entidades

• Instâncias de Entidade• Associações entre instâncias de entidade

• Modelo Estático– Omisso quanto ao comportamento de

entidades

Page 8: I- Introdução

Elementos de um Modelo de BD OO

• Idéia Básica: Objeto– Atributos complexos ou estruturados– Atributos coleção

• Exemplo: Conjunto

– Atributo Identidade (OID)• Transparente• Independente de aplicação

– Associações entre objetos• Se um objeto A está associado a um objeto B, então A deve fazer

referência ou apontar para B, ou A contém o OID de B, e/ou vice-versa

– Comportamento• Operações (Métodos)

– Repositório dos objetos de uma classe persistente

Page 9: I- Introdução

Elementos ... (2)• Classe de objeto

– Atributos• Atributo(s) chave(s)

– Métodos– Relacionamentos entre classes de

objeto– Repositório de objetos de classes

persistentes

Page 10: I- Introdução

Elementos ... (3)• Exemplo de classe de objeto

– Classe Estudante• Atributos

– Matrícula << chave>>– Nome– Endereço

» Rua» Número» Bairro» Cep Prefixo Sufixo

– Data_nasc– Historico_escolar

» Conjunto Disciplinas_feitas Referência_disciplina, período, media_final, status

Page 11: I- Introdução

Elementos ... (4)• Exemplo (cont.)

– Classe Estudante• Métodos

– CRE– Sufixo do CEP– Emissão do Histórico Escolar– ...

• Relacionamentos– Matriculado em Disciplina

• Repositório: Estudantes

Page 12: I- Introdução

Elementos ... (5)• Multiplicidades de

Relacionamentos– 1:1 – 1:N– M:N

Page 13: I- Introdução

Elementos ... (6)• Hierarquia de Classe

– É possível declarar uma classe S como uma subclasse de outra classe C. Neste caso, S herda todas as propriedades da classe C, isto é, os atributos, os métodos, e os relacionamentos de C

Page 14: I- Introdução

Elementos ... (7)• Hierarquia de Classe

– S pode ter seus próprios atributos, suas próprios operações, seus próprios relacionamentos e seu próprio repositório (S é uma extensão de C)

– Exemplo: a classe Estudante é uma subclasse de Pessoa

– Relacionamento Subclasse é_um(a) (Sub)Classe– Multiplicidade 1:1

Page 15: I- Introdução

Elementos ... (8)• Métodos

– Métodos de Instância • Aplicáveis a um único objeto

• Exemplo: est.disciplinas_em_curso(), aplicável a um objeto da classe Estudante (est é um objeto da classe Estudante)

• Parâmetro de entrada implícito: objeto self ou this

– Métodos de Classe• Não podem fazer referência a objeto self ou this

• Exemplo: Estudante.número_estudantes()

Page 16: I- Introdução

Elementos ... (9)

• Métodos

• Assinatura (Interface) – Uma assinatura de um método (ou interface)

compreende:• O nome

• Os parâmetros

• O tipo do valor de retorno (opcional)

• Comentários sobre a lógica do método

• Corpo (Código)

Page 17: I- Introdução

Elementos ... (10) • Métodos

– Sobrecarga (“Overloading”)• Métodos de uma classe com o mesmo

nome, porém com pelo menos um argumento diferente– imprime_histórico_escolar ( )– imprime_histórico_escolar (formato: string)

• Vantagem: Coesão

Page 18: I- Introdução

Elementos ... (11)• Métodos

– Polimorfismo• Dois métodos, de classes diferentes, são

polimorfos se têm a mesma assinatura• O conceito de polimorfismo é extremamente

útil em hierarquias de classes, mas não é restrito a elas– Aluno_especial é_um Aluno

» Aluno_especial.histórico_escolar()» Aluno.histórico_escolar()

Page 19: I- Introdução

Elementos ... (12)• Agregação/Composição de Classes

• Relacionamentos especiais É_PARTE_DE

• Agregação

• Compartilhamento

• Exemplo: um objeto da classe Brinquedo é parte de vários objetos da classe Catálogo

• Composição

• Não compartilhamento

• Exemplo: um objeto da classe Departamento é parte de um único objeto da classe Centro

• Dependência existencial

Page 20: I- Introdução

Elementos ... (13)• Agregação/Composição de Classes

– Brinquedo é-parte-de Catálogo– UML

Catálogo

Brinquedo

*

*

Page 21: I- Introdução

Elementos ... (14)• Agregação/Composição de Classes

– Departamento é-parte-estrita-de Centro– UML

Centro

Depto

*

Page 22: I- Introdução

Elementos ... (15)• Uma linguagem de consulta a objetos

– Estilo SQL!• Exercite-se (mire-se no exemplo de

motivação)– Qual o histórico escolar do estudante com

matrícula 1234?– Qual o CRE do estudante 1234?– Quais as disciplinas em que o estudante 1234 está

matriculado?

Page 23: I- Introdução

BD OO e UML• Pergunta: o que falta à linguagem

UML para ela se tornar um completo padrão de BDOO?– Linguagem de consulta a objetos– Descrição textual completa de

classes

Page 24: I- Introdução

Banco de Dados Orientado a Objeto (BD

OO)• Esquema Orientado a Objeto (Esquema OO)

– Um conjunto de classes persistentes, segundo um modelo de esquema

• Classes concretas (ou com repositório) e/ou classes abstratas (ou sem repositório)

• BD OO– Repositórios com objetos

• Consultas sobre os repositórios– Linguagem declarativa de consulta a objetos

• Apropriada ao modelo de esquema

Page 25: I- Introdução

BD OO: Exemplo de Esquema

• Classes– Estudante, Disciplina, Curso, …

• Repositórios– Estudantes: João, Maria, José, …– Disciplinas: BD I, BD II, …– Cursos: Bacharelado em CC, …

Page 26: I- Introdução

I.3 Implementação: I.3 Implementação: Evolução dos Evolução dos

Modelos LógicosModelos Lógicos

I.3 Implementação: I.3 Implementação: Evolução dos Evolução dos

Modelos LógicosModelos Lógicos

Page 27: I- Introdução

Modelo Relacional• Tipos nativos

– INTEGER– REAL – DATE – STRING

• Esquema de Banco de Dados Relacional (BDR) – Conjunto de tabelas– Regras de integridade

• BDR– Linhas de tabela

• Linguagem de consulta SQL– Operações sobre linhas de tabela

• Regras de transformação de esquemas de BDOO em esquemas de BDR– SGBDR: implementa BDRs

Page 28: I- Introdução

Modelo Objeto-Relacional (OR)

• Tipos nativos– INTEGER– REAL– DATE– STRING– COLEÇÃO

• ARRAY (padrão SQL99)• Oracle 10g

– VARRAY– NESTED TABLE

– APONTADOR (REFERENCE)

Page 29: I- Introdução

Modelo OR (2)• Tipos Definidos pelo Usuário (Extensibilidade)

– Tipos de Objeto• Atributos stricto sensu• Atributos apontadores, ou referências• Métodos

– Funções– Procedures

– Hierarquias de tipos de objeto– Repositórios de tipos de objeto

• Typed Table (SQL99, IBM)• Object Table (Oracle)

– Linguagem de consulta SQLOR• Extensão-objeto da linguagem SQL

Page 30: I- Introdução

Banco de Dados Objeto-Relacional (BD OR)

• Esquema de BDOR– Conjunto de tipos persistentes de objeto

• Instanciáveis e/ou não-instanciáveis

• BDOR– Conjunto de Object(Typed) Tables e/ou conjunto de

tabelas puramente relacionais• Um BDOR estende stricto sensu um BDR

• Linguagem SQLOR – Operações sobre objetos de object(typed) table e/ou

sobre linhas de tabela relacional

• Regras de transformação de esquemas de BDOO em esquemas de BDOR

• SGBDOR: implementa BDORs

Page 31: I- Introdução

I.4 Projeto de I.4 Projeto de Banco de DadosBanco de DadosI.4 Projeto de I.4 Projeto de

Banco de DadosBanco de Dados

Page 32: I- Introdução

Requisitos

Esq. Conceitual OO

Esq. Lógico R, OR

Esq. Físico

UML /ODL + OQL

(Padrão ODMG p/BD OO)

Oracle 10g; SQL Server; ...