2-ConceitosETerminologia

Propaganda
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
• I.4 Projeto de Aplicações de Banco
de Dados
I.1 Um Hiato entre
Especificação e
Implementação
Especificação
Implementação
Nível
de
Abstração
Especificação
(Modelagem
Conceitual)
Modelo de
Objeto
Implementação
(Modelagem
Lógica)
Modelo
ObjetoRelacional
Modelo de
Entidade e
Relacionamento
Modelo
Relacional
I.2 Especificação:
Evolução dos Modelos
Conceituais
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
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
Elementos ... (2)
• Classe de objeto
– Atributos
• Atributo(s) chave(s)
– Métodos
– Relacionamentos entre classes de objeto
– Repositório de objetos de classes
persistentes
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
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
Elementos ... (5)
• Multiplicidades de Relacionamentos
– 1:1
– 1:N
– M:N
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
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
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()
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)
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
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()
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
Elementos ... (13)
• Agregação/Composição de Classes
– Brinquedo é-parte-de Catálogo
– UML
Catálogo
*
*
Brinquedo
Elementos ... (14)
• Agregação/Composição de Classes
– Departamento é-parte-estrita-de Centro
– UML
Centro
*
Depto
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?
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
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
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, …
I.3 Implementação:
Evolução dos Modelos
Lógicos
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
Modelo Objeto-Relacional (OR)
• Tipos nativos
–
–
–
–
–
INTEGER
REAL
DATE
STRING
COLEÇÃO
• ARRAY (padrão SQL99)
• Oracle 10g
– VARRAY
– NESTED TABLE
– APONTADOR (REFERENCE)
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
Banco de Dados ObjetoRelacional (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
I.4 Projeto de Banco
de Dados
Requisitos
UML /
ODL + OQL
(Padrão ODMG p/
BD OO)
Esq. Conceitual OO
Esq. Lógico R, OR
Esq. Físico
Oracle 10g; SQL Server;
...
Download