BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos [email protected] INTRODUÇÃO Modelos de Dados Bancos de Dados necessitam de um roteiro para guiar a construção de uma coleção de dados Modelos de Dados norteiam: Os relacionamentos entre os dados (de que forma esse relacionamento ocorre) Como as restrições são tratadas (em que nível e de que forma) Como é a estrutura de um BD INTRODUÇÃO Existem, ao menos duas classificações para modelos de dados: De acordo com aspectos de implementação [Classificação 1 – C. J. Date] Modelos de alto nível ou conceituais modelo ER; modelos OO; funcional; Modelos de implementação Relacional; Redes; Hierárquico; Modelos Físicos INTRODUÇÃO De acordo com aspectos de implementação [Classificação 2 – Korth & Silberschatz] Modelos Lógicos Baseados em Objetos MER Modelo Orientado a Objetos Modelo Semântico de Dados Modelo Infológico Modelo Funcional de Dados Modelos Lógicos Baseados em Registros Modelo Relacional Modelo Hierárquico Modelo de Rede INTRODUÇÃO De acordo com uma perspectiva histórica [Elmasri & Navathe] 1ª geração primeiros passos da tecnologia de BD, com o desenvolvimento dos modelos hierárquicos e em rede; 2ª geração corresponde ao aparecimento e divulgação do modelo relacional; 3ª geração estado atual do desenvolvimento da tecnologia de BD, com tecnologias ditas pós-relacionais (Objetos, XML, Semântica, ...). Dada a importância do modelo relacional, é também normal conhecer estas 3 gerações por pré-relacional, relacional e pós-relacional [Date 1995] MODELO HIERÁRQUICO DE DADOS O modelo hierárquico foi o primeiro a ser reconhecido como um modelo de dados. A organização dos dados no modelo hierárquico é do tipo árvore. A estrutura de árvore pode ser pensada como uma raiz que se distribui em ramos e folhas. O caminho raiz-galho-folha é único, não existindo duas formas diferentes de chegar a uma folha a partir da raiz. Tal organização lembra, como o próprio nome do modelo sugere, que existe uma determinada hierarquia entre os dados MODELO HIERÁRQUICO DE DADOS No modelo hierárquico, os nós das hierarquias contêm ocorrências de registros, onde cada registro é uma coleção de campos (atributos), cada um contendo apenas uma informação. Os dados organizados segundo este modelo podem ser acessados segundo uma sequência hierárquica com uma navegação do topo para as folhas e da esquerda para a direita. Nome Rua Cidade Zé No. CC Rua I Jlle Ana Rua II Saldo 123 1000 456 1500 Fln MODELO DE DADOS ORIENTADO A OBJETOS Tem como conceito básico o conceito de Objeto do Paradigma Orientado a Objetos. Consequentemente, o único modo pelo qual um objeto pode acessar o dado de um outro objeto é invocando um método desse outro objeto (encapsulamento). Uma característica-chave dos bancos de dados orientados a objetos é o poder dado ao projetista para especificar tanto a estrutura de objetos complexos quanto as operações que podem ser aplicadas a esses objetos [Elmasri & Navathe] A motivação para seu surgimento está em função dos limites de armazenamento e representação semântica impostas no modelo relacional. MODELO DE DADOS ORIENTADO A OBJETOS Descrever um Modelo de Dados (para um BD) Orientado a Objetos é similar a desenvolver um modelo de classes (UML) Paciente CPF: String Nome: String DtEntrada: String Medicamento 1..N 1..N Nome: String Validade: String Ao contrário das entidades no MER, cada objeto tem sua própria e única identidade independente dos valores que contém. A distinção entre dois objetos é mantida no nível físico através da indicação de Objetos Identificadores Distintos (OIDs) SISTEMAS OBJETO-RELACIONAIS A área de atuação dos sistemas Objeto-Relacional tenta suprir a dificuldade dos sistemas relacionais convencionais (a representação e a manipulação de dados complexos), visando ser mais representativos em semântica e construções de modelagens. A solução proposta é a adição de facilidades para manusear dados O projeto de um BDOO é tais sempre utilizando-se das facilidades SQL existentes. parte de um projeto geral da aplicação e não apenas do modelo de dados! Extensões dos tipos básicos no contexto SQL; Representações para objetos complexos no contexto SQL; Herança no contexto SQL e sistema para produção de regras. Para isso, foi necessário adicionar: SQL3 ou OQL, implementado, por exemplo, em Oracle 9i SISTEMAS OBJETO-RELACIONAIS Hoje existem, portanto, duas alternativas de mapeamento de objetos em uma base dados: A manipulação de objetos diretamente em BDs (BDOO) O mapeamento de objetos em modelos relacionais Criação de uma camada particular para “esconder” tarefas “triviais” do mapeamento Adequação ao propósito específico de uma linguagem de programação Criação de necessidades antes não existentes tais como persistência de dados EVOLUÇÃO DE MODELOS DE DADOS E SGBDS atualmente 98 94 90 86 82 78 74 70 66 62 58 Grandes massas de dados + Semântica e Dados SGBDs baseados em XML [Tamino] Modelos de Dados OO + UML Proposição de SGBDs de Código Aberto [Postgres] Importância das Aplicações de BD [Utilização de Protótipos] Início da concorrência entre SGBDs Relacionais (DB2 – IBM) Oracle, Ingres + [ Concepção do Modelo ER] System R, Adabas [ Concepção dos Modelos Relacionais] Alterações ao Modelo de Dados em Rede Concepção do Modelo Hierárquico de Dados Concepção do Modelo de Dados em Rede Pré-SGBDs: acesso por aquivos e mediada diretamente pelo SO