Download - I- Introdução
![Page 1: I- Introdução](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/4.jpg)
Especificação
Implementação
![Page 5: I- Introdução](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/12.jpg)
Elementos ... (5)• Multiplicidades de
Relacionamentos– 1:1 – 1:N– M:N
![Page 13: I- Introdução](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/20.jpg)
Elementos ... (13)• Agregação/Composição de Classes
– Brinquedo é-parte-de Catálogo– UML
Catálogo
Brinquedo
*
*
![Page 21: I- Introdução](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/21.jpg)
Elementos ... (14)• Agregação/Composição de Classes
– Departamento é-parte-estrita-de Centro– UML
Centro
Depto
*
![Page 22: I- Introdução](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062500/568150da550346895dbefba7/html5/thumbnails/32.jpg)
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; ...