320 likes | 453 Views
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
E N D
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
Especificação Implementação
Nível de Abstração Especificação (Modelagem Conceitual) Implementação (Modelagem Lógica) Modelo de Objeto Modelo Objeto- Relacional Modelo de Entidade e Relacionamento Modelo Relacional
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
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
Elementos ... (2) • Classe de objeto • Atributos • Atributo(s) chave(s) • Métodos • Relacionamentos entre classes de objeto • Repositório de objetos de classes persistentes
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 • ConjuntoDisciplinas_feitas Referência_disciplina, período, media_final, status
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
Elementos ... (5) • Multiplicidades de Relacionamentos • 1:1 • 1:N • M:N
Elementos ... (6) • Hierarquia de Classe • É possível declarar uma classe S como uma subclasse de outra classe C. Neste caso, Sherda todas as propriedades da classe C, isto é, os atributos, os métodos, e os relacionamentos de C
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
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()
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)
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
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()
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
Elementos ... (13) • Agregação/Composição de Classes • Brinquedo é-parte-de Catálogo • UML Catálogo * * Brinquedo
Elementos ... (14) • Agregação/Composição de Classes • Departamento é-parte-estrita-de Centro • UML Centro * Depto
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?
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, 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
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, …
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
Modelo Objeto-Relacional (OR) • Tipos nativos • INTEGER • REAL • DATE • STRING • COLEÇÃO • ARRAY (padrão SQL99) • Oracle 10g • VARRAY • NESTED TABLE • APONTADOR (REFERENCE)
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
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
Requisitos UML / ODL + OQL (Padrão ODMG p/ BD OO) Esq. Conceitual OO Esq. Lógico R, OR Oracle 10g; SQL Server; ... Esq. Físico