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 Sistemas Baseados em
SGBDs
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 Entidades
• Associações entre instâncias de entidades
• Comportamento? (Modelo Estático)
Modelo de Objeto
• 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
– Comportamento
• Operações (Métodos)
– Repositório dos objetos de uma classe
Modelo de Objeto (2)
• Classe de objeto
– Atributos
• Atributo(s) chaves
– Métodos
– Relacionamentos entre classes de objeto
– Repositório de objetos da classe
Modelo de Objeto (3)
• 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
Modelo de Objeto (4)
• Classe de Objeto
– Classe Estudante
• Métodos
–
–
–
–
CRE
Sufixo do CEP
Emissão do Histórico Escolar
...
• Relacionamentos
– Matriculado em Disciplina
Modelo de Objeto (5)
• Multiplicidades de Relacionamentos
– 1:1
– 1:N
– M:N
Modelo de Objeto (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.
Modelo de Objeto (7)
• Hierarquia de Classe
– S pode ter seus próprios atributos, suas próprios
operações, e seus próprios relacionamentos (S é
uma extensão de C).
– Exemplo: a classe Estudante é uma subclasse
de Pessoa
– Relacionamento Subclasse é_um(a)
(Sub)Classe
– Multiplicidade 1:1
Modelo de Objeto (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 pode fazer referência a objeto self ou this
• Exemplo: Estudante.número_estudantes()
Modelo de Objeto (9)
• Métodos
• Assinatura (Interface) de Métodos
– 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)
Modelo de Objeto (10)
• Métodos
– Sobrecarga de métodos (“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
Modelo de Objeto (11)
• Métodos
– Polimorfismo de Métodos
• 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()
Modelo de Objeto (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
Modelo de Objeto (13)
• Agregação/Composição de Classes
– Brinquedo é-parte-de Catálogo
– UML
Catálogo
*
*
Brinquedo
Modelo de Objeto (14)
• Agregação/Composição de Classes
– Depto é-parte-estrita-de Centro
– UML
Centro
*
Depto
Modelo de Objeto (15)
• Uma linguagem de consulta a objetos
– Estilo SQL!
• 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?
Modelo de Objeto 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
• Esquema de Banco de Dados
Orientado a Objeto (BDOO)
– Um conjunto de classes persistentes
• BDOO
– Repositórios de classes persistentes
– Linguagem declarativa de consulta a
objetos
Banco de Dados
Orientado a Objeto (2)
• Esquema
– Classes Estudante, Disciplina, Curso, …
• Repositórios
– Estudantes: João, Maria, José, …
– Disciplinas: BDOO, BDR, …
– Cursos: Sistemas Distribuídos e Web, …
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
• BDR: valores de linhas de tabelas
• Linguagem de consulta SQL
– Operações sobre tabelas relacionais
• Regras de transformação de esquemas de BDOO
em esquemas de BDR
– SGBDR: implementa BDRs
Modelo OR
• Tipos nativos
–
–
–
–
–
INTEGER
REAL
DATE
STRING
COLEÇÃO
• ARRAY (padrão SQL99)
• Oracle 8-9i
– VARRAY
– NESTED TABLE
– APONTADOR (REFERENCE)
Modelo OR (2)
• Tipos Definidos pelo Usuário
(Extensibilidade)
– Tipos de Objeto
• Atributos
• Atributos apontadores, ou referências
• Métodos
– Funções
– Procedures
– Hierarquias de tipos de objeto
– Repositórios de objeto
–
– Typed Table (SQL99, Informix-IBM)
– Object Table (Oracle)
Linguagem de consulta SQLOR
• Extensão da linguagem SQL
Banco de Dados ObjetoRelacional
• Esquema de banco de dados objeto/relacional
(BDOR)
– Conjunto de tipos de objeto
• BDOR
– Conjunto de Object(Typed) Tables e/ou conjunto de
tabelas puramente relacionais
• Um BDOR estende stricto sensu um BDR
• Linguagem SQL: operações sobre object(typed)
tables e/ou tabelas relacionais
• 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/
SGBDOO)
Esq. Conceitual OO
Esq. Lógico R, OR
Esq. Físico
Oracle8-9i; SQL Server;
...
Download