UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis 2015.2 Banco de Dados Relacionais Arquitetura de um SGBD relacional é subdividida nos seguintes itens: Modelo de Dados Esquemas Tabelas Registros Estado Modelo de Dados Modelos de Alto nível – modelos conceituais, se aproximam da forma como o usuário conhece ou trabalha com os dados. Utiliza conceitos de Entidades, Atributos e Relacionamentos. Modelos Representativos (ou Lógico) – modelos com fácil entendimento pelos usuários. Modelos utilizados pelos principais SGBDs. Modelos de Baixo nível (ou Físico) – modelo que descreve como os dados são armazenados em disco. Voltado para profissionais de TI. Modelo de Dados • Exemplo de Modelo Alto Nível: Modelo de Dados • Exemplo de Modelo Representativo (ou Lógico): Modelo de Dados • Exemplo de Modelo Físico: Esquemas Representa a estrutura interna de um banco de dados, com suas tabelas, índices, procedures e funções. É criado um para cada aplicação. Um SGBD deve ser capaz de gerenciar diversos esquemas em paralelo. Esquemas •Representação de um esquema: Tabelas Estrutura representada por colunas (campos) e linhas (registros) que irão armazenar dados dos usuários. Campo é a menor unidade de armazenamento de dados, podendo conter apenas um tipo de dado. Registros, também conhecidos como tuplas ou n-uplas, representam o conjunto de campos valorizados em uma tabela. Tabelas Comandos DDL (Linguagem de Definição de Dados) compõem o conjunto de metadados de uma tabela (create, drop, alter, constraints, índices). Comandos DML (Linguagem de Manipulação de Dados) realizam operações sobre os dados de uma tabela (insert, delete, update, select). Esquema X Tabelas X Registros • Esquema: • Tabela: • Registro: Relações e Predicados Toda relação possui duas partes: Cabeçalho – Formado pelos nomes das colunas ; Corpo – Formado por um conjunto de linhas para este cabeçalho. O predicado de uma relação é representado por seu cabeçalho; Cada linha no corpo representa uma proposição verdadeira, obtida a partir do predicado pela substituição de valores de argumentos para os parâmetros do predicado. Relações x Valor de relação (RelVar). Relações e Predicados O que representa o corpo da relação? E o cabeçalho? Como identificar o predicado da tabela acima? Exercício! Tenho duas aplicações: Biblioteca e Financeiro. Quantos esquemas terei na minha base de dados? Um esquema pode enxergar e obter dados de outro? “Select * from tabela” é um comando DML ou DDL? Por que? Dicionário de Dados Também conhecido como Catálogo, lugar no qual todos os esquemas e mapeamentos correspondentes são armazenados; Armazenam índices, restrições de integridade, usuários, RelVars, restrições de segurança, nomes de tabelas e suas colunas, etc. São informações essenciais para que o SGBD faça seu trabalho de forma correta. Estado do Banco de Dados É representado pelos dados no banco em um determinado momento (instantâneo ou foto). Cada inserção ou alteração de registros altera o estado do banco. Estado vazio – Tabelas estão vazias, acabaram de ser criadas. Estado inicial – Tabelas tiveram a carga inicial de dados, foram populadas. Estado válido – Os dados satisfazem a estrutura e restrições definidas no esquema. Serviços de um SGBD Controle de redundância Compartilhamento de dados Concorrência Recuperação Controle de acesso Segurança Restrições de integridade Distribuição Gerência de armazenamento de dados Controle de Redundância Uma mesma informação pode ser compartilhada por diversas áreas de uma Organização, podendo ocasionar um estado inconsistente e ocupando espaço desnecessário de armazenamento. É papel do SGBD fornecer mecanismos para este controle sem prejudicar as áreas que fazem uso da informação. Compartilhamento de Dados O SGBD deve permitir que muitos usuários possam estar conectados simultaneamente à mesma base de dados. Deve existir um controle de concorrência de modo a garantir que o resultado das diversas operações realizadas seja correto. Controle de Concorrência Controle das leituras e modificações simultâneas em um mesmo dado da tabela. Técnica mais utilizada é o bloqueio dos dados enquanto a operação não for finalizada, podendo ser lógico ou físico. Pode ocasionar em bloqueio eterno (deadlock). Controle de Transações O SGBD deve garantir que a base de dados fique em estado consistente antes e após as operações. Toda transação iniciada ou termina com sucesso ou é totalmente desfeita. Transações em um mesmo dado por diferentes usuários devem seguir uma sequência de execução. Controle melhor de concorrência e recuperação. Recuperação Permite que o banco retorne a um estado consistente após uma falha. Backup e restauração é a solução mais simples. Arquivos de log podem ajudar no processo de recuperação. Controle de Acesso Garantir que os diversos usuários acessem os dados de acordo com suas permissões. SGBD deve garantir que as operações corretas sejam realizadas por usuários autenticados em dados identificados. Matriz de autorização deve ser mantida. Segurança Proteção dos dados: Dados não sejam acessados e/ou alterados por usuários sem permissão. Criptografia / Descriptografia dos dados. Restrições de Integridade Consistência dos dados no banco deve seguir as regras definidas sobre os dados. Controla valores que um campo pode ter. Ex: faixa de números, nomes não repetidos, etc. Controla os relacionamentos entre registros. SGBD deve fornecer mecanismos para: Especificar restrições de integridade; Validar as restrições especificadas. Gerência de Armazenamento Gerencia como os registros serão armazenados no disco. Gerencia espaço do arquivo em disco. Exercício! Permissões para usuários podem ser dadas de forma individual por tabela? Como se dá um bloqueio eterno (deadlock) ? Como resolver? O que seria uma restrição de integridade na prática? Dúvidas?