Modelos de Dados e Arquitetura de um SGBD Introdução – 1º Bimestre Prof. Patrícia Lucas Abstração Modelo de Dados Conjunto de conceitos que podem ser utilizados para descrever a estrutura lógica e física de um banco de dados. Modelos de alto nível: fornece uma visão mais próxima do modo como os usuários visualizam os dado. Modelos de baixo nível: fornece uma visão mais detalhada do modo como os dados estão realmente armazenados no computador. Estrutura B A N C O D E D A D O S Por “estrutura” podemos compreender o tipo dos dados, os relacionamentos e as restrições que podem recair sobre os dados Esquemas e instâncias Os bancos de dados mudam a medida que informações são inseridas ou apagadas A coleção de informações armazenadas é chamada de INSTÂNCIA do banco de dados (mudam com frequência) O projeto geral do banco de dados é chamado ESQUEMA do banco de dados (não mudam com frequência) Esquemas e instâncias Arquitetura de três-esquemas O nível interno: (ou esquema interno, o qual descreve a estrutura de armazenamento físico do banco de dados, utiliza um modelo de dados e descreve detalhadamente os dados armazenados e os caminhos de acessoao banco de dados; O nível externo: ou esquema de visão, o qual descreve as visões do banco de dados para um grupo de usuários, cada visão descreve quais porções do banco de dados um grupo de usuários terá acesso. O nível conceitual: ou esquema conceitual, o qual descreve a estrutura do banco de dados como um todo, é uma descrição global do banco de dados, que não fornece detalhes do modo como os dados estão fisicamente armazenados; Arquitetura de três-esquemas Independência dos Dados O uso de bancos de dados permite modificar o ESQUEMA dos dados em um nível sem afetar a definição do esquema em um nível mais alto. Isto é chamado de independência dos dados. Minimundo Projeto Conceitual Níveis De Abstração Projeto Lógico esquema Projeto Físico instâncias Independência de dados Existem 2 tipos de Independência Independência física de dados: habilidade de modificar o esquema físico sem a necessidade de reescrever os programa aplicativos Estas modificações são necessárias para melhorar o desempenho Independência lógica de dados: habilidade de modificar o esquema conceitual sem a necessidade de reescrever os programas aplicativos Estas modificações são necessárias quando a estrutura lógica é alterada. Exemplo: adição de um novo atributo Linguagem de Definição de Dados (DDL) Um esquema de banco de dados é especificado por um conjunto de definições expressas por uma linguagem especial chamada linguagem de definição de dados (Data Definition Language) O resultado da compilação de comandos de uma DDL é o conjunto de tabelas que serão armazenadas no dicionário (ou diretório) de dados Linguagem de Definição de Dados (DDL) Um dicionário de dados contém metadados. Este dicionário (diretório) é consultado antes que os dados sejam lidos ou modificados no sistema de banco de dados. Linguagem de Manipulação de Dados (DML) Manipulação de dados significa: A busca da informação armazenada no BD A inserção de novas informações no BD A eliminação de informações do BD A modificação dos dados armazenados no BD No nível físico precisamos definir algoritmos que permitam acesso eficiente aos dados. Linguagem de Manipulação de Dados (DML) A linguagem de manipulação dos dados permite ao usuário manipular os dados da seguinte forma: Procedural: o usuário informa qual dado deseja acessar e como obtê-lo Não-procedural: o usuário informa qual dado deseja acessar SEM especificar como obtê-lo Linguagem de Manipulação de Dados (DML) Linguagens não-procedurais são usualmente mais fáceis de aprender e usar do que DMLs procedurais Se o usuário NÃO especificar COMO obter os dados, as linguagens não-procedurais poderão gerar um código não tão eficiente. Linguagem de Manipulação de Dados (DML) Uma consulta (QUERY) é um comando de busca de uma informação no BD A parte da DML que busca informações é chamada LINGUAGEM DE CONSULTA Arquitetura Geral de um SGBD Exercícios 1. O que é um modelo de dados? Qual a diferença entre modelos de alto nível e baixo nível? 2. Explique os conceitos: instância e esquemas. 3. Descreva a arquitetura de três-esquemas. Por que precisamos de mapeamentos entre os níveis dos esquemas? 4. Qual a diferença entre independência de dados lógica e física? 5. Qual a diferença entre as DMLs procedural e não procedural? 6. O que é a Linguagem de Definição de Dados? 7. O que é a Linguagem de Manipulação de Dados? 8. O que é uma consulta?