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