Bancos de Dados - Introdução Melissa Lemos [email protected] 1 Tópicos Evolução dos Sistemas de Informação Esquemas Modelos Conceitual Lógico Características de SGBDs 2 Evolução tempo Programas e dados na mesma memória Código e dados compondo um único objeto. Programa com dados armazenados 3 1 Evolução tempo Sistemas de Programa Arquivo Arquivos Surgimento do Disco. Código e dados armazenados de forma distinta. Dados organizados como coleções de itens relacionados, compondo arquivos. Código com rotinas para gerência de dados (localização, recuperação e Armazenamento de dados Programa com dados armazenados Programas e dados na mesma memória 4 Evolução tempo Sistemas de Bancos de Dados Programa SGBD Arquivo Independência dos programas em relação aos dados armazenados SGBD possui todas as funções necessárias para localização e manipulação dos dados Sistemas de Arquivos Programas e dados na mesma memória Programa Arquivo Programa com dados armazenados 5 Sistemas de BDs x Sistemas de Arquivos Separação entre programas e dados Suporte para múltipla visões de usuário Compartilhamento de dados e processamento multi-usuário de transações Armazenamento no BD da sua própria descrição ou esquema Controle para não haver redundância de dados 6 2 Bancos de Dados e SGBDs O que é um banco de dados? É uma coleção de dados fortemente estruturados acompanhados de um conjunto de mecanismos de controle, acesso e manipulação. Tal conjunto é o Sistema Gerenciador de Banco de Dados (SGBD) 7 Aplicações típicas Sistema de reserva de passagens aéreas Controle de transações bancárias Dados coorporativos Imagens de satélites Genoma 8 Requisitos para Bancos de Dados 9 3 Requisitos para Bancos de Dados Facilidade de uso modelagem do BD deve refletir a realidade do usuário acesso aos dados deve ser feito de forma simples interfaces baseadas em modelo de dados de alto nível linguagem de definição de dados de alto nível linguagem de consulta de alto nível 10 Requisitos para Bancos de Dados Correção os dados armazenados no BD devem refletir um estado correto da realidade modelada implementação automática de classes de restrições de integridade triggers 11 Requisitos para Bancos de Dados Facilidade de manutenção alterações na forma de armazenamento dos dados ou na modelagem do BD devem afetar as aplicações o mínimo possível especificação do BD em 3 níveis 12 4 Requisitos para Bancos de Dados Confiabilidade atualizações submetidas pelos usuários não devem ser perdidas atualizações não devem interferir umas com as outras ACID transactions (atomicidade-consistênciaintegridade-durabilidade) controle de concorrência subsistema de recuperação 13 Requisitos para Bancos de Dados Segurança o acesso aos dados deve ser controlado de acordo com os direitos definidos para cada usuário definição de níveis de autorização controle de acesso 14 Requisitos para Bancos de Dados Desempenho o tempo de acesso aos dados deve ser compatível com a complexidade da consulta otimização de consultas métodos de acesso e de armazenamento eficientes gerência eficiente do buffer pool 15 5 Especificação de Bancos de Dados 16 Especificação de Bancos de Dados Esquema do BD: descrição da organização dos dados no banco e dos critérios de correção para os dados relativamente estável ao longo do tempo Estado do BD: conjunto de dados armazenados, em um particular instante, de acordo com a organização definida no esquema varia de acordo com as atualizações submetidas pelos usuários Estado consistente do BD: estado do BD satisfazendo aos critérios de correção definidos no esquema 17 Esquemas Objetivo: Separar o BD físico das aplicações do usuário por meio de 3 diferentes níveis de esquemas Externo Externo Conceitual Físico 18 6 Esquema Físico Especificação das estruturas de armazenamento do BD, ou seja, como o BD está armazenado 19 Esquema Conceitual Especificação da organização conceitual do BD, ou seja, o quê o BD armazena Descreve a estrutura do BD completo sob ponto de vista do usuário Esconde detalhes de armazenamento Concentra-se na descrição das entidades, atributos, relacionamentos, operações de usuários e restrições sobre os dados 20 Esquema Externo Especificação da organização conceitual do BD, vista por um grupo de usuários Visões de usuários Descreve as partes do BD que são do interesse de um grupo de usuários, escondendo dos demais 21 7 Vantagens da Especificação em Níveis Externo Externo Facilidade de manutenção Conceitual Independência física (dos dados): Físico separação entre esquema interno e esquema conceitual permite modificar as estruturas de armazenamento sem impactar as aplicações Independência lógica (dos dados): separação entre esquema externo e esquema conceitual permite modificar a organização conceitual com impacto mínimo nas aplicações (construídas sobre os esquemas externos) 22 Modelos de Dados O modelo de dados define a forma de especificar: esquema conceitual e esquemas externos, ou seja: organização conceitual do BD critérios de correção para os dados mapeamentos entre esquemas externos e conceituais Externo Externo Conceitual Físico 23 Modelos de Dados A representação dos esquemas em cada nível é feita através de diferentes modelos de dados. Esquemas conceitual e externo Modelo conceitual Mais próximos dos usuários finais Modelo lógico Nível intermediário Conceitos que podem ser entendidos por usuários finais, mas não tão distantes da forma como os dados são armazenados 24 8 Esquema e Modelos ESQUEMA Externo MODELO Externo Modelo Conceitual Modelo Lógico Conceitual Físico Modelo Físico 25 Esquema e Modelos ESQUEMA MODELO Modelo Conceitual • Modelo E-R (entidade-relacionamento) Externo Modelo Lógico/ Implementação • Modelo em Rede • Modelo Hierárquico • Modelo Relacional • Modelo Orientado a Objeto • Modelo Relacional-Objeto • Modelo Semi-estruturado Externo Conceitual Físico Modelo Físico 26 Modelo Conceitual - MER Aluno n Matr m Turma n Modelo Entidade-Relacionamento: l alunos estão matriculados em turmas professores são responsáveis por turmas um aluno pode estar matriculado em uma ou mais turmas uma turma pode ter mais de um aluno toda turma tem um, e apenas um, professor responsável um professor pode ser responsável por mais de uma turma Resp 1 Prof 27 9 Modelo Lógico - Rede Os dados são representados por um conjunto de registros (como em Pascal) e as relações entre os registros são representados por links, as quais podem ser vistas pelos ponteiros. Os registros são organizados no BD por um conjunto arbitrário de grafos. João 9810001 Maria 9810002 Turma ED1 sala512 3a,5a, 17h Turma BD1 sala212 3a,5a, 19h 28 Modelo Lógico - Hierárquico Dados e relações são registros e links, mas os registros são organizados como árvores. Mais restrito que o de rede, pois não permite que um registro esteja envolvido, como filho, em mais de um relacionamento. Relacionamento muitos para muitos não é representado de forma natural. João BD1 sala212 3a,5a, 19h 9810001 ED1 sala512 Maria 3a,5a, 17h 9810002 ED1 sala512 3a,5a, 17h 29 Modelo Lógico - Relacional Dados e relações organizados em tabelas Mapeamento 1-1 Aluno Aluno[matr-aluno,nome,depto] Prof[matr-prof,nome,depto] Turma[codigo,sala,horario] Matr[matr-aluno,codigo] Resp[codigo,matr-prof]M Mapeamento Otimizado Aluno[matr-aluno,nome,depto] Prof[matr-prof,nome,depto] Turma[codigo,sala,horario,matr-prof] Matr[matr-aluno,codigo] n Matr m Turma n l Resp 1 Prof 30 10 Modelo Lógico - Relacional Exemplo Aluno[matr-aluno,nome] Turma[codigo,sala,horario] Matr[matr-aluno,codigo] Aluno matr-aluno Matr João 9810001 matr-aluno Maria 9810002 9810001 nome 9810002 Turma codigo sala horario BD1 sala212 3a,5a, 19h ED1 sala512 3a,5a, 17h codigo BD1 ED1 9810001 ED1 31 Modelo Lógico - OO Class Pessoa { string matricula; string nome; string depto} Class Aluno isa Pessoa Aluno n Matr m Turma Class Prof isa Pessoa Class Turma { string codigo; string sala; string horario Prof responsavel} n l Resp 1 Class Matr { Aluno aluno; Turma turma} Prof 32 Sistema de Gerência de Bancos de Dados 33 11 Características de SGBDs Além dos modelos de dados, os SGBDs podem ser caracterizados por suas funcionalidades. 34 Aplicações Consulta DML Esquema DDL DML Processador de Consultas Gerenciador de Transações Subsist. de recuperação Gerenciador do buffer pool Controle de concorrência Gerenciador de arquivos Índices Arquivos de dados Gerenciador de Memória Dicionário de dados 35 Arquivos de Dados Persistência Armazenamento dos objetos do banco de dados, que vão sofrendo modificações com o tempo 36 12 Dicionário de Dados Armazena os metadados relativos à estrutura do banco de dados. 37 Índices Proporcionam acesso rápido aos dados 38 Processador de Consultas Definição e manipulação de dados Funções oferecidas pelas linguagens DDL processa os comandos de descrição das estruturas do esquema, e a armazena em dicionário de dados DML Realizar consultas e atualizações, inserções e remoções SQL é a linguagem típica de SGBD relacional que engloba uma LDD e uma LMD. 39 13 Gerenciador de Transações/ Subsistema de Recuperação Recuperação de dados Garantir que falhas durante o processamento de transações não sejam propagadas aos objetos persistentes. Os objetos armazenados devem sobreviver a falhas das transações e mesmo algumas falhas de hardware Mecanismo de recuperação/ recovery 40 Gerenciador de Transações/ Controle de Concorrência de Transações Garante que transações concorrentes serão executadas sem conflitos em seus procedimentos. Técnicas de controle de concorrência 41 Gerenciador de Memória/ Gerenciador de Arquivos Gerencia a alocação de espaço no armazenamento em disco e as estruturas de dados usadas para representar estas informações armazenadas em disco 42 14 Gerenciador de Memória/ Gerenciador de Buffer Responsável pela intermediação de dados do disco para a memória principal e pela decisão de quais dados colocar em memória cache 43 Gerenciador de Autorizações e Integridade Mantém o BD em estado consistente, satisfazendo algumas condições, chamadas de restrições de integridade. Implementa mecanismos de segurança de acesso para consulta, remoção, atualização e inserção de dados Comandos de concessão e revogação (grant e revoke) de acesso a usuários individuais ou grupos de usuários 44 Desempenho O SGBD deve executar as funções de forma eficaz e eficiente Estruturas de dados Métodos de acesso Técnicas de otimização 45 15 Carga, Descarga, Cópia, Restauração Facilidades para Carregar e descarregar o banco de dados ou parte deles Fazer cópia de segurança = backup Restaurar o banco de dados a partir do backup 46 Usuários de SGBDs Administrador de Bancos de Dados (DBA - Database Administrator) Desenvolvedores Programador de aplicações Usuário comum 47 Comentários Finais Dúvidas? 48 16