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
Modelo de
Entidade e
Relacionamento
Implementação
(Modelagem
Lógica)
BD II
Modelo
ObjetoRelacional
BD I
Modelo
Relacional
I.2 Especificação:
Evolução dos Modelos
Conceituais
Modelo de Entidade e
Relacionamento
• Idéia Básica: Entidade
– Atributos atômicos
– Relacionamento entre entidades
• Instâncias de Entidade
• Associações entre instâncias de entidade
• Modelo Estático
– Omisso quanto às operações com (instâncias) de
entidades
• Pontos Negativos
– Atributos atômicos
– Modelo estático
Elementos de um Modelo de Objeto
• Idéia Básica: Objeto
– Atributos complexos ou estruturados
– Atributos coleção
• Conjunto, Bag, Lista, Array
– Atributo Identidade (OID)
• Uma instância identifica um objeto
• Transparente e 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
– Operações (Métodos)
• Classe de objeto
– Atributos e associações comuns a um
conjunto de objetos
– Atributo(s) chave
– Relacionamentos entre classes de objeto
• Exprimem as associações entre objetos
– Classe persistente
• Repositório de objetos da classe
• Exemplo de classe de objeto
– Classe Estudante
• Atributos
– Matrícula << chave>>
– Nome
– Endereço
O atributo
» Rua
OID é
» Número
transparente
» Bairro
» Cep
Prefixo
Sufixo
– Data_nasc
– Historico_escolar
» Conjunto Disciplinas_feitas
Referência_disciplina, período, media_final,
status
• Métodos
–
–
–
–
Não há necessidade
de definir métodos
observer e mutator
CRE
Sufixo do CEP
Emissão do Histórico Escolar
...
• Relacionamentos com outras classes
– Matriculado em Disciplina
– …
• Repositório: Estudantes
• Multiplicidades de Relacionamento
– 1:1
– 1:N
– M:N
• 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
– 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
• 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()
• 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)
– 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
– 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()
• 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
• Agregação/Composição de Classes
– Brinquedo é-parte-de Catálogo
– UML
Catálogo
*
*
Brinquedo
• Agregação/Composição de Classes
– Departamento é-parte-estrita-de Centro
– UML
Centro
*
Depto
• 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 e transitórias, segundo um
modelo de esquema OO
• Classes persistentes (concretas)
–
Com repositório
–
Sem repositório
• Classes transitórias (abstratas)
• BD OO
– Um conjunto de repositórios
• Pelo menos um não é vazio
• 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 (consistência do conteúdo das
tabelas)
• BDR
– Linhas de tabela
• Pelo menos uma linha não vazia
• Linguagem de consulta
– Operações sobre tabelas
• Padrão SQL: esquema e consulta
• Regras de transformação de
esquemas de BDOO em esquemas de
BDR
– SGBDR: implementa BDRs
• Pontos negativos
– Pobreza de tipos
– Não oferece encapsulação (operações)
Modelo Objeto-Relacional (OR)
• Tipos nativos
–
–
–
–
–
INTEGER
REAL
DATE
STRING
COLEÇÃO
• ARRAY (padrão SQL99)
• Oracle 10g
– VARRAY
– NESTED TABLE
– APONTADOR (REFERENCE)
• 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

Classe