I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Transcript of I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
![Page 1: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/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 A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/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 A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/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 A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/4.jpg)
Especificação
Implementação
![Page 5: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/5.jpg)
Nívelde
AbstraçãoEspecificação(ModelagemConceitual)
Implementação(Modelagem
Lógica)
Modelo deEntidade e
Relacionamento
Modelo deObjeto
ModeloRelacional
ModeloObjeto-
Relacional
BD I
BD II
![Page 6: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/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 A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/7.jpg)
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
![Page 8: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/8.jpg)
• Pontos Negativos
– Atributos atômicos– Modelo estático
![Page 9: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/9.jpg)
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)
![Page 10: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/10.jpg)
• 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
![Page 11: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/11.jpg)
• 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
O atributoOID étransparente
![Page 12: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/12.jpg)
• Métodos– CRE– Sufixo do CEP– Emissão do Histórico Escolar– ...
• Relacionamentos com outras classes– Matriculado em Disciplina– …
• Repositório: Estudantes
Não há necessidadede definir métodosobserver e mutator
![Page 13: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/13.jpg)
• Multiplicidades de
Relacionamento– 1:1 – 1:N– M:N
![Page 14: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/14.jpg)
• 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 15: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/15.jpg)
– 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 16: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/16.jpg)
• 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 17: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/17.jpg)
• 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 18: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/18.jpg)
– 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 19: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/19.jpg)
– 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 20: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/20.jpg)
• 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 21: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/21.jpg)
• Agregação/Composição de Classes
– Brinquedo é-parte-de Catálogo– UML
Catálogo
Brinquedo
*
*
![Page 22: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/22.jpg)
• Agregação/Composição de Classes
– Departamento é-parte-estrita-de Centro– UML
Centro
Depto
*
![Page 23: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/23.jpg)
• 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 24: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/24.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 25: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/25.jpg)
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
• Classes transitórias (abstratas)– Sem repositório
• 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
![Page 26: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/26.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 27: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/27.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 28: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/28.jpg)
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
![Page 29: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/29.jpg)
• 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
![Page 30: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/30.jpg)
• Pontos negativos
– Pobreza de tipos– Não oferece encapsulação
(operações)
![Page 31: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/31.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 32: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/32.jpg)
• 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 33: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/33.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 34: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/34.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 35: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.](https://reader036.fdocumentos.com/reader036/viewer/2022062512/552fc0f8497959413d8b5a68/html5/thumbnails/35.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; ...