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 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 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 » Conjunto Disciplinas_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, S herda 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, … 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 – 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 ObjetoRelacional (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 I.4 Projeto de Banco de Dados Requisitos UML / ODL + OQL (Padrão ODMG p/ BD OO) Esq. Conceitual OO Esq. Lógico R, OR Esq. Físico Oracle 10g; SQL Server; ...