i- introdução a evolução dos modelos de dados e dos sistemas de gerência de banco de dados

35
I- Introdução I- 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 Dados Gerência de Banco de Dados

Upload: internet

Post on 16-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

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

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

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

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

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

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

• 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

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

• 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

• 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

• 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

• 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

• 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

– 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

• 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

• 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

– 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

– 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

• 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

• 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

• 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

• 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

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

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

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

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

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

• 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

• 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

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

• 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

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

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

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; ...