17/10/2008 Faculdade INED Curso Superior de Tecnologia: B Banco d de Dados D d Sistemas para Internet Redes de Computadores Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan 1 Unidade 2 Imagem: BARBIERI, Carlos. 2 ARQUITETURA DE UM SISTEMA DE BANCO DE DADOS 2 1 Níveis de arquitetura. 2.1 arquitetura 2.2 Componentes e funcionamento de um SGBD. 2.3 Transações. 3 1 17/10/2008 Material usado na montagem dos Slides BARBIERI, Carlos. BI – Modelagem de Dados. Rio de Janeiro: Infobook, 1994. CARVALHO, R. B. Slides da disciplina Banco de Dados I. Fumec, 2005. ELMASRI, R.; NAVATHE, S. B. Sistemas de bancos de dados: fundamentos p ç 4. ed. São Paulo: Pearson Education,, 2005 e aplicações. HEUSER, C. A. Projeto de Banco de Dados. 5a. Edição. Porto Alegre: Sagra Luzzatto, 2004. RAPOSO, Adriana. Apostila Banco de Dados, 2008. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. Tradução da 5ª Edição. São Paulo: Campus, 2006. 4 Usuários dos SGBDs • O desenvolvimento, a manutenção e a utilização de um banco de dados são executados por diferentes atores: – – – – Administrador de dados ((AD)) Administrador de banco de dados (DBA) Analista de sistemas Usuário final 5 • Administrador de dados (AD): – Define a estrutura de informação da empresa (base de dados). – Administra a descrição da base de dados (dicionário de dados). – Define padrões para codificação de objetos da base de dados (tabelas, nomes de campos, etc.). – Zela pelo modelo corporativo de dados. • Administrador de Banco de Dados (DBA): – Gerencia a base de dados instalada. – Administra o Sistema Gerenciador de Banco de Dados. – Modifica a estrutura de armazenamento e a organização física. – Fornece e controla as autorizações de acesso ao SGBD. 6 2 17/10/2008 • Analista de sistema: – Desenvolve os sistemas que acessam bancos de dados. – Auxilia na definição dos dados armazenados em bancos de dados. • Usuário final: – Insere, altera e/ou consulta os dados do banco de dados ou dos sistemas que o acessam. 7 Arquitetura do sistema de banco de dados Fonte: ELMASRI; NAVATHE, 2005 8 Níveis de Abstração do SGDB Objetivo principal de um SGDB Como o SGDB implementa este objetivo? Tornar transparente para os usuários dos dados (pessoas e aplicações) os detalhes da implementação física dos dados. ATRAVÉS DE 3 NÍVEIS DE ABSTRAÇÃO: - Nível externo - Nível Conceitual - Nível Interno Níveis de Abastração EXTERNO CONCEITUAL INTERNO Descrição Visão que cada usuário (pessoas e/ou programas) tem dos dados; Visão global dos dados da organização; QUAIS dados estão armazenados? É criada pelo DA a partir do modelo conceitual; Visão da estrutura física dos dados; COMO os dados estão armazenados? É criado pelo DBA; Modelo gráfico Prog 1 Prog 2 Prog 3 9 3 17/10/2008 Esquema de dados O SGBD deve prover aos usuários uma visão abstrata dos dados. Os níveis de abstração simplificam a interação do usuário com o sistema. • Nível Externo ou de Visão: visão de cada usuário, sejam estes programadores ou usuários finais. Os usuários necessitam de apenas uma parte do BD. Podem haver diferentes visões providas pelo sistema para um mesmo BD BD. – Exemplo: interface com o usuário • Nível Conceitual ou Lógico: este nível descreve QUAIS dados são armazenados no BD e quais os relacionamentos entre eles. – Exemplo: tipos de dados e relacionamentos – Baseado na modelagem dos dados • Nível Interno ou Físico: nível mais baixo, descreve COMO os dados estão realmente armazenados. – Exemplo: alocação de disco 10 Nível Externo NÍVEL EXTERNO:EXEMPLO DE IMPLEMENTAÇÃO DE VISÕES PARA CADA ÁREA Visão do Aplicativo 1 Visão Comum (Gerencia de Benefícios) Visão do Aplicativo 2 (Folha de Pagamento) Empresa Empresa O ã Orgão O ã Orgão Empregado Empregado Empresa Orgão Empregado Benefíicos Salários Salários Benefíicos 11 Modelo Conceitual 12 4 17/10/2008 Nível Interno 4.1 – Randômica 4.2 Indexada 4.4 Aglomerada 4.5 Indice Aglomerado 4.3 Sequencial 13 Componentes e Funcionamento de um SGBD Um SGBD é o responsável por executar todas as ações sobre os dados armazenados em um banco de dados. O usuário faz uma requisição, o SGBD intercepta esta requisição, analisa e executa as operações necessárias sobre o banco de dados. Um SGBD provê diversas funcionalidades para seus diversos tipos de usuários. 14 Componentes funcionais de um sistema de banco de dados 15 5 17/10/2008 Componente 1 SGDB Característica Sw que gerencia o BD; Exemplo 2 Dicionário de dados Banco de Dados utilizado pelo SGDB para registro e controle de todos os objetos necessários ao armazenamento e acesso aos dados; Elemento de dado; tabela; programa; usuário; privilégios de acesso; 3 Linguagens de Definição dos Dados (DDL) Instruções para criar e manter a estrutura dos dados armazenados; Permite definir as características t í ti dos d dados d d Instruções para acessar e manipular os dados; Procedural: QUAIS e COMO os dados são acessados; Não Procedural:QUAIS dados desejo acessar; Conjunto de programas que integram o SGDB e executam operações auxiliares visando manter a integridade e disponibilidade dos dados; Create Table ATLETA(numatleta char(6) not null ............................... Pi Primary kkey ((num-atleta)) tl t )) SQL: 4 Linguagens de Manipulação dos dados (DML) 5 Utilitários Select nom-atleta from ATLETA where nom-pais = "Brasil" Reorganização do DB; Carga de arquivos em bath; back-up e recovery do DB; Geração de "log"; Auditoria do sistema; Estatísticas de utilização; 16 Componentes funcionais de um sistema de banco de dados Gerenciador de arquivos Æ gerencia a alocação do espaço na armazenagem do disco e as estruturas de dados usadas para representar a informação armazenada no disco. Gerenciador do banco de dados Æ fornece a interface entre os dados de baixo nível armazenados no disco e os programas aplicativos e de consulta submetidos ao sistema. Processador de consultas Æ traduz os comandos numa linguagem de consulta para instruções de baixo nível que o gerenciador do banco de dados pode interpretar. Além disso, o processador de consultas tenta transformar uma requisição do usuário em uma forma compatível e mais eficiente com respeito ao banco de dados, encontrando uma boa estratégia para a executar a consulta. 17 Componentes funcionais de um sistema de banco de dados Pré-compilador da DML Æ converte comandos da DML embutidos em um aplicativo para chamadas de procedimento normal na linguagem. O pré-compilador precisa interagir com o processador de consultas pra gerar o código apropriado. Compilador da DDL Æ converte comandos da DDL em um conjunto de tabelas contendo metadados ou "dados sobre dados". 18 6 17/10/2008 DICIONÁRIO DE DADOS - catálogo do SGBD Definição Finalidade: Banco de Dados para registro e controle de dados do ambiente de banco de dados. Em outras palavras, é um banco de dados sobre dados, isto é, um repositório de metadados. Contém, entre outros, os seguintes objetos: Prover uma fonte única de informações sobre os componentes de sistemas e seus relacionamentos. - tabelas - Elementos El t de d D Dados d - Views - Índices - Triggerrs - Stored Procedures - Sistemas - Programas - Usuários - Privilégios de Acesso - Outros Evitar redundância não planejada e inconsistências no desenvolvimento de sistemas; S Suportar t a implantação i l t ã d de padrões d õ que permitem melhor entendimento dos objetos documentados; Permitir a avaliação dos impactos de alterações nos dados existentes; Permitir a geração de documentação de sistemas: Lista de programas por aplicaçao Lista de usuários por relatório Lista de telas por aplicação Lista de elementos de dados por entidade 19 Linguagens (DDL/DML) Um esquema de banco de dados precisa de uma linguagem para ser especificado, construído (DDL) e outra para a manipulação dos dados (DML). • DDL (Data Definition Language): linguagem de definição de dados. Permite a especificação da base de dados, definindo os arquivos, q , as ligações g ç entre arquivos, q , os registros g e as variáveis dos registros. Create table Funcionario ( ...) Alter table Estoque ( ...) 20 • DML (Data Manipulation Language): linguagem de manipulação de dados. Permite a consulta e atualização (inclusão, alteração e exclusão) de informações da base de dados definida pela DDL. Pode ser: – Procedural: o usuário tem que especificar QUAL dado é necessário e COMO obtê-lo. – Não-procedural: o usuário não define COMO os dados serão acessados. • DMLs não-procedurais são mais fáceis de aprender, pois o usuário não precisa especificar como chegar até os dados, mas apenas quais dados deseja. • Exemplo SQL - Selecionar os vôos com tarifa maior ou igual a 1000 SELECT voo, tarifa FROM voo WHERE tarifa >= 1000,00 21 7 17/10/2008 Instância e Esquemas Esquema Projeto geral do banco de dados (esquemas físico, lógico e conceitual). Descrição dos dados e relacionamentos entre eles. • Ex: Definição das tabelas Ex: Vôo, Passageiro, Cias. Aéreas Instância • Coleção de informações armazenadas em um determinado momento • Ex: Os passageiros Jose Campos e Maria Silva, as cias. Aéreas Air France e Varig, os vôos 147 e 455 22 Persistência de Dados • Persistência de Dados Os dados “persistem”, isto é, uma vez aceitos no banco de dados, só podem ser removidos por alguma solicitação explícita; • Diferem de outros dados transientes, que são apenas temporários: dados de entrada, dados de saída, resultados intermediários, etc 23 Transação • Unidades lógicas de processamento de bancos de dados. • Uma transação é uma unidade de execução de programa composta por várias operações de banco de d d dados. • Apesar de ser composta por diversas operações, uma transação só pode ser efetivada se todas as operações forem executadas corretamente. 24 8 17/10/2008 Transação 25 Controle de Transações Propriedades ACID • Atomicidade : Deve garantir que toda transação iniciada, ou termina com sucesso ou é desfeita. • Consistência : O banco de dados deve sair de um estado consistente para outro estado consistente após a execução de uma transação. • Isolamento : A execução de uma transação não pode interferir em outras transações executadas concorrentemente • Durabilidade : As transações confirmadas devem permanecer persistentes 26 A execução de uma transação envolve os seguintes comandos: – BEGIN TRANSACTION – COMMIT – ROLLBACK 27 9 17/10/2008 Exemplo: O cliente 123, quer retirar 10.000 de sua conta para fazer um investimento. BEGIN TRANSACTION UPDATE conta SET saldo_conta = saldo_conta - 10000 WHERE cod_cliente cod cliente = 123 UPDATE investimento SET saldo_investimento = saldo_investimento + 10000 WHERE cod_cliente = 123 COMMIT 28 SGBD - ORACLE 29 SGBD – SQL Server 30 10 17/10/2008 SGBD – FIREBIRD (Ferramenta de administração - IBExpert) 31 SGBD - MySQL 32 Obrigado e Bons Estudos! Estudos! Prof.. Zaidan Prof Feliz aquele que transfere o que sabe e aprende o que ensina. Cora Coralina 33 11