Pós-graduação em Ciência da Computação CCM-202 Sistemas de Banco de Dados Motivação Necessidade de armazenar grandes quantidades de dados Introdução Necessidade de acessar as informações de maneira eficiente e segura Profa. Maria Camila Nardini Barioni [email protected] Bloco B - sala 937 Evolução histórica: desenvolvimento de software + hardware 2° quadrimestre de 2011 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Sistema de Banco de Dados (SBD) Sistema de Banco de Dados (SBD) Sistema de armazenamento de dados Sistema Gerenciador de Banco de Dados (SGBD) Objetivos: manter informações torná-las disponível quando necessário Banco de Dados Armazenamento não volátil Componentes: banco de dados sistema gerenciador de banco de dados usuários hardware usuários finais programas de aplicação 2 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 3 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 4 Sistema Gerenciador de Banco de Dados (SGBD) Banco de Dados (BD) Depósito de dados armazenados Os dados devem ser logicamente coerentes Uma coleção randômica não é um BD Coleção de programas para: criar manter o banco de dados SGBD Camada existente entre os dados e os usuários Isola os usuários dos detalhes de hardware BD1 BD2 BD3 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Atende às solicitações dos usuários BD4 5 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 6 Sistema Gerenciador de Banco de Dados (SGBD) Usuários Administrador do BD Recursos: coordena e monitora o uso do BD autoriza o acesso ao BD adquire software e hardware necessários tem conhecimento total do BD adição de novos arquivos inserção de dados recuperação de dados atualização dos dados eliminação dos dados criação de visões atribuição de privilégios ... Projetista do BD identifica os dados a serem armazenados no BD escolhe as estruturas apropriadas para representar e armazenar esses dados CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 7 Usuários CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 8 Hardware Volumes de armazenamento secundário Dispositivos de entrada e saída Canais de entrada e saída Controladores de dispositivos Processador + memórias associadas Programador de aplicações escreve os programas aplicativos realiza requisições ao SGBD Usuário final manipula o BD por meio de linguagens de consulta programas previamente desenvolvidos ULA registradores unidade de controle tipos de usuários leigos versus sofisticados casuais versus freqüentes ... CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 9 Vantagens da Utilização de SGBD Independência de dados CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 10 Vantagens da Utilização de SGBD Independência de dados Sistemas de processamento de arquivos gravam seus dados em disco, segundo ESTRUTURAS DE DADOS próprias Para acessá-los é necessário conhecer estas estruturas – DEPENDÊNCIA DE DADOS programas de aplicação Dados O que os acontece se houver uma alteração na Todos programas terão que ser alterados estrutura de dados? Dados CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 11 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 12 Vantagens da Utilização de SGBD Vantagens da Utilização de SGBD Redundância controlada Independência de dados redundância O SGBD se responsabiliza pela conversão dos dados mesmos dados armazenados várias vezes Cada aplicação: Vê apenas os dados que lhe interessam Aplicação de Contas Não precisa saber detalhes de como seus dados estão fisicamente armazenados Não precisa ser modificada, caso a estrutura de dados que ela utiliza for alterada Aplicação de Produtos Arquivos de dados Cliente CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 13 Vantagens da Utilização de SGBD Consistência dos dados armazenados Vantagens da Utilização de SGBD com relação ao acesso aos dados do sistema visões parciais, de acordo com os usuários Atualização Nome: José Endereço: Rua X Telefone: 2222-2222 Arquivos de dados 14 login dos usuários Aplicação de Produtos Nome: José Endereço: Rua X Telefone: 1111-1111 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 com relação ao acesso ao sistema quando dados duplicados armazenam valores distintos existe quando a redundância não é controlada Atualização Cliente Segurança inconsistência Aplicação de Contas Arquivos de dados acesso controlado, através de graus de privilégios Arquivos de dados Cliente Cliente CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 15 Vantagens da Utilização de SGBD 16 Vantagens da Utilização de SGBD Compartilhamento de dados Facilidade para a especificação de restrições de integridade base de dados definida apenas uma vez compartilhada por vários usuários restrições de integridade garantem a precisão dos dados especificam as restrições impostas pelo sistema real Nome: José Renda: R$450,00 Limite: R$10.000,00 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Padronização formato dos dados e domínio dos valores dos dados Arquivos de dados definidos apenas uma vez compartilhados por vários usuários CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 17 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 18 Vantagens da Utilização de SGBD Existência de diferentes interfaces Arquitetura de Três Níveis visão_1 visão_n visão_2 linha de comando gráfica Representação de relacionamentos entre os dados Recuperação de falhas de software e nível conceitual hardware Facilidade de desenvolvimento de novas aplicações ... CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 nível físico Arquitetura ANSI-X3-SPARC 19 Arquitetura de Três Níveis Esquema interno dados armazenados na memória secundária contém definições de estruturas de dados e mecanismos de acesso separar as aplicações dos usuários do BD físico prover uma visão abstrata dos dados Três níveis de abstração Esquema conceitual definição do conteúdo da informação utiliza o conceito de modelo de dados independe de estruturas de dados e mecanismos de acesso organização física dos dados esquema interno organização lógica global dos dados esquema conceitual Esquema externo organização lógica particular dos dados usuário apenas vê parte dos dados visões: também chamadas de subesquemas esquema externo (visão) 21 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 grupo de usuários 1 Observações 22 grupo de usuários n interface do usuário esquema externo 1 Pode não haver distinção entre os esquemas BD: esquema externo n interface externo único local onde realmente existem dados demais esquemas: apenas descrições conceitual esquema conceitual Interfaces: interface conceitual permitem a comunicação entre dois níveis subjacentes consistem em mapeamentos ou transformações nível físico nível conceitual nível conceitual nível externo CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 20 Arquitetura de Três Níveis Objetivo CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 físico esquema físico interface físico 23 banco de dados CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 24 Instâncias e Esquemas Estado do Banco de Dados Os dados armazenados em um BD em um determinado momento Instância coleção de informações armazenadas no BD em um determinado momento também chamado de extensão do BD sofre alterações constantemente Estado vazio após a criação do BD Esquema Estado inicial projeto do BD, incluindo as entidades e os relacionamentos entre estas também chamado de intenção do BD não sofre alterações com freqüência CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 após o povoamento (ou carregamento) do BD com os dados iniciais 25 Independência de Dados Novo estado após cada operação realizada nos dados do BD Estado atual estado do BD em um determinado momento CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 26 Independência de Dados Habilidade de modificar a definição de um esquema em um nível sem afetar a definição do esquema em um nível mais alto Dois tipos Independência lógica de dados modifica o esquema conceitual não modifica os programas aplicativos necessidade: alteração da estrutura do BD independência física de dados independência lógica de dados Observação: Independência física de dados independência lógica é mais difícil de ser obtida modifica o esquema físico não modifica os esquemas conceitual e externo necessidade: aprimoramento do desempenho CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 27 Linguagens Associadas 28 Linguagem de Definição de Dados Utilizada para Linguagem de definição de dados (DDL) criação do BD definição dos esquemas conceitual e lógico Linguagem de manipulação de dados (DML) Exemplo Oferecidas pelo SGBD criação de uma relação contendo informações pessoais sobre alunos Utilizadas pelos usuários para criar : linguagem de definição manipular : linguagem de manipulação CREATE TABLE aluno( matrícula NUMBER (10,2), nome VARCHAR(50), endereço VARCHAR(50), data_nascimento DATE ) o banco de dados CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 29 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 30 Classificação dos SGBD Linguagem de Manipulação de Dados Consultas: queries Alterações: updates inserção eliminação modificação De acordo com o modelo de dados Exemplo SELECT * FROM aluno WHERE nome = “João” modelo relacional dados e relacionamentos: coleções de tabelas cada tabela: várias colunas e nome único modelo de rede dados: coleções de registros relacionamentos: ligações vistas como ponteiros registros: coleções de gráficos arbitrários Pode ser implementada: como uma linguagem de consulta ad hoc embutida em programas de alto nível modelo hierárquico dados: coleções de registros relacionamentos: ligações vistas como ponteiros registros: coleções de árvores Altamente dependente do modelo utilizado CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 31 Banco de Dados Relacional nome c l i e n t e rua Adriana Ricardo Ricardo Samanta Samanta Rua Juca Filho Av. Brasil Av. Brasil Av. Tiradentes Av. Tiradentes c o n t a número cidade número Maringá Rio de Janeiro Rio de Janeiro São Paulo São Paulo 900 556 647 801 647 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 Banco de Dados em Rede Adriana Ricardo Rua Juca Filho Maringá Av. Brasil Rio de Janeiro saldo 900 556 647 801 55 10000 105366 10533 Samanta CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 32 33 Banco de Dados Hierárquico Av. São Paulo Tiradentes 900 55 556 10000 647 105366 801 10533 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 34 Classificação dos SGBD De acordo com o modelo de dados Adriana R. Juca Filho Maringá Ricardo Av. Brasil Samanta Av. Tiradentes S. Paulo modelo orientado a objetos dados e relacionamentos: coleções de objetos objeto: estrutura (propriedades) + operações (métodos) Rio de Janeiro modelo objeto-relacional 556 10000 900 55 fundamentado no modelo relacional estendido com características do modelo orientado a objetos 647 105366 801 10533 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 647 105366 35 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 36 Componentes de um SGBD Classificação dos SGBD De acordo com o número de usuários Arquitetura de um SGBD monousuário: um único usuário por vez multiusuário: vários usuários ao mesmo tempo componentes (processos) funcionalidades dos componentes interação existente entre tais componentes De acordo com o número de nós Objetivo centralizado: dados e SGBD localizados em um único nó distribuído: dados e SGBD localizados em vários nós, conectados através de redes de comunicação CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 enfatizar quais funcionalidades devem ser oferecidas internamente por um SGBD e como estas funções cooperam logicamente ou dependem uma das outras 37 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 DBA Usuário/Aplicação comandos de transações consultas, atualizações Componentes de um SGBD Compilador de consulta Gerenciador de transação Principais componentes metadados Recuperação e log Engine de Execução Gerenciador de armazenamento Processador de consultas Gerenciador de transações comandos DDL Compilador DDL metadados, estatísticas plano de consulta 38 Controle de concorrência requisições de registro, arquivo e índice Gerenciador de registro/arquivo/índice comandos de página Gerenciador de Buffer dados, metadados, índice páginas de log Tabela Buffers bloqueio Buffers escrita/leitura página Gerenciador de Armazenamento estrutura em memória componentes fluxo de controle e dados CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 39 Observações Armazenamento Sistemas de Banco de Dados - 2° quadrimestre de 2011 CCM-202 fluxo de dados 40 Exemplos de Aplicações Tradicionais Alguns componentes do SGBD utilizam funções oferecidas pelo SO subjacente. Assim sendo, o SGBD deve possuir uma interface com o sistema, o que não está representado na figura Os componentes especificados na figura são gerais. Cada SGBD implementa de maneira distinta seus componentes Banco Biblioteca Universidade estudantes cursos notas Departamentos de Empresa controle de estoque controle de vendas controle de pagamentos ... CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 41 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 42 Data Warehouse usuário 2 usuário 1 Comércio Eletrônico usuário 3 relatório análise mineração data warehouse componente de integração e manutenção bancos de dados operacionais sistemas de arquivos fontes externas CCM-202 Sistemas de Banco fontes de Dados 2° quadrimestre de 2011 de- dados 43 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 44 Sistemas de Informações Geográficas (GIS) Sistemas de Recuperação de Imagens baseada em conteúdo CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 45 Visualização de dados e Mineração de Dados CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 46 Bibliografia Elmasri, Ramez; Navathe, Shamkant B. Sistemas de banco de dados. 4 ed. São Paulo: Addison Wesley, 2005, 724 p. Bibliografia: p. [690]-714. Silberschatz, Abraham; Korth, Henry F; Sudarshan, s. Sistema de bancos de dados. 3 ed. São Paulo: Makron Books, 1999, 778 p. Garcia-Molina, Hector; Ullman, Jeff; Widom, Jennifer. Database Systems: The Complete Book. Prentice Hall, 2002. Material Didático produzido pelos professores Cristina Dutra de Aguiar Ciferri e Caetano Traina Júnior CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 47 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 48 Atividades recomendadas para o estudo individual Atividades recomendadas para o estudo individual Leitura dos artigos: Leitura complementar para casa Rakesh Agrawal et al. The Claremont Database Research Self-Assessment Meeting (2008). Theo Härder. DBMS Architecture - New Challenges Ahead (2005). Capítulos 1 e 2 do livro: Elmasri, Ramez; Navathe, Shamkant B. Sistemas de banco de dados. Capítulo 1 do livro: Garcia-Molina, Hector; Ullman, Jeff; Widom, Jennifer. Database Systems: The Complete Book. Capítulo 1 do livro: Silberschatz, Abraham; Korth, Henry F; Sudarshan, s. Sistema de bancos de dados. Fazer um resumo de cada artigo – entregar na aula de 30/05 identificar os principais pontos sempre que possível, relacionar com os conceitos apresentados em sala mínimo de 1 e máximo de 3 páginas Lista de exercícios 01 – entregar na aula de 30/05 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 49 CCM-202 Sistemas de Banco de Dados - 2° quadrimestre de 2011 50