Curso Superior de Tecnologia em ADSAula 01 Introdução aos Sistemas de Bancos de Dados Modelagem de Dados e Projeto de Banco de Dados 2 Apresentação Professor Eliezer Ribeiro Antunes Junior
[email protected] Formação Acadêmica Universidade São Francisco (Graduação) Extensão em TI (FGV – SP) Especialização (UNICAMP) MBA (FIPECAFI – USP) 3 Conteúdo do Curso (1 Semestre) 3. Modelo Relacional 3.1. Esquemas de Banco de Dados Relacional 3.2. Restrições de Integridade 3.2.1. Restrição de Unicidade de Chave 3.2.2. Restrição de Integridade da Entidade 3.2.3. Restrição de Integridade Referencial 4. Normalização 4.1. Axiomas de Dependência Funcional 4.2. Formas Normais 4.2.1. Primeira Forma Normal 4.2.2. Segunda Forma Normal 4.2.3. Terceira Forma Normal 4.2.4. BCNF 4.2.5. 4 FN e 5 FN (discussão) 5. Estudos de Caso 1. Introdução 1.1. Histórico e Evolução dos Bancos de Dados 1.2. Modelos de Bancos de Dados existentes 1.3. Sistema Gerenciador de Banco de Dados 1.4. Sistema de Banco de Dados 1.5. Níveis de Visão 1.6. Independência de Dados 1.7. Esquema e Instâncias 2. Modelo Entidade Relacionamento 2.1. Conjunto de Entidades 2.2. Representação de Atributos 2.3. Conjunto de Relacionamentos 2.4. Chaves 2.5. Cardinalidade e Grau de Relacionamentos 2.6. Papel de Relacionamentos 2.7. Auto-Relacionamento 2.8. Modelo Entidade Relacionamento Estendido 2.8.1. Multiplicidade 2.8.2. Abstração de Generalização 2.8.3. Abstração de Agregação 2.8.4. Modelo de Dados Semânticos 2.8.5. Abstrações no Projeto Conceitual de Banco de Dados 4 Introdução aos Sistemas de BD Objetivo – Apresentar uma perspectiva histórica do surgimento dos SGBD, sua importância para as empresas e os principais conceitos e características envolvidas na área de Banco de Dados. Principais tópicos – Importância dos Bancos de Dados – Uma perspectiva histórica – Arquivos versus SGBD’s – Quando usar e quando não usar SGBD – Principais Características dos SGBDs 5 Introdução aos Sistemas de BD Principais tópicos (continuação) – Arquitetura “Three-schema” – Modelagem de Dados – Modelos de Dados (Conceituais, Lógicos e Físicos) – Matriz de Classificação de SGBDs – Síntese dos conceitos – Questões de Estudo 6 Conceito O que é um Banco de Dados ? É um conjunto organizado de dados com a função de gerenciar o seu acesso e a sua manutenção. Ex: Dicionário, Agenda Telefônica, Livro de Receitas e etc. O que é um SGBD/DBMS* (Sistema Gerenciador de Banco de Dados) ? É um sistema (software) que armazena, modifica e recupera de forma organizada os dados de um banco de dados. 7 Panorama Mundial Crescimento de dados incontrolável – Taxa de crescimento dos dados estruturados é de 40% a 60% – Taxa de crescimento de dados não estruturados pode chegar a 80% ( Gartner, IT Market Clock for Storage) – Ano 2011, 1.8 zettabytes (1 trilhão de gigabytes) – Aumento de 6,2% em Storage (USD 300 Bilhões) (Gartner) Segundo a IDC até 2020, os departamentos de TI das companhias terão um número de servidores 10 vezes maior e a quantidade de informações se multiplicará por 50. 8 Vantagens Bancos de Dados Redução na Redundância de Informações Evitar a inconsistência dos dados (integridade) Compartilhar dados (Interfaceamento) Reforçar os padrões Aplicar restrições de segurança (Dados e Infra) Portabilidade Escalonamento 9 Importância dos Bancos de Dados (Time to Market). A competitividade das empresas depende de dados precisos e atualizados Conforme a empresa cresce, aumenta a sua dependência por dados abundantes e complexos. Assim, ferramentas de gerenciamento, extração rápida e precisa de informações é fundamental. 10 Uma perspectiva histórica No início da computação, programas tinham o único objetivo de armazenar e manipular dados. Esses programas gravavam seus dados em disco, segundo estruturas próprias. Programas que não conhecessem a estrutura dos dados não podiam utilizar os dados. Estrutura dos dados Arquivo 11 Uma perspectiva histórica Se vários programas precisassem compartilhar os dados de um mesmo arquivo, todos os programas teriam que conhecer e manipular as mesmas estruturas. Estrutura dos dados Arquivo Estrutura dos dados 12 Uma perspectiva histórica Se algum programa precisasse realizar alguma mudança na estrutura de dados, – Todos os programas que acessam esse mesmo arquivo tinham que ser alterados, mesmo que a alteração ocorresse em dados não manipulados pelos programas. Isso gerava um grande problema: – Garantir a unicidade das estruturas de dados entre os diversos programas devido à existência de redundâncias. Memorizar: Redundância GERA Inconsistências 13 Uma perspectiva histórica Para evitar esse problema, colocou-se um sistema intermediário: – Que conhece a estrutura de dados do arquivo. – Fornece apenas dados que cada programa precisa. – Armazena adequadamente os dados de cada programa. Arquivo 14 Uma perspectiva histórica Agora, com esse sistema intermediário: – Os programas "verão" apenas os dados que lhes interessam. – Os programas não precisam mais conhecer os detalhes de como os dados estão gravados fisicamente. – Um programa não precisa mais ser modificado se a parte da estrutura de dados que utiliza não for modificada. – As alterações ficam concentradas nesse sistema intermediário. 15 Uma perspectiva histórica Com o tempo, esse sistema intermediário passou a gerenciar vários arquivos. A essa coleção de arquivos foi dado o nome de Banco de Dados e o sistema intermediário recebeu o nome de Sistema Gerenciador de Banco de Dados (SGBD). Arquivo Arquivo Arquivo S G B D Banco de Dados 16 Uma perspectiva histórica O primeiro SGBD comercial surgiu em 1960. Com o tempo, surgiram padrões para descrever as estruturas de dados: os modelos de dados. A descrição do banco de dados, segundo um modelo de dados é chamada de esquema de dados ou meta dados. BD Meta Dados SGBD Dados 17 Uma perspectiva histórica Hoje, um banco de dados: – É uma coleção de dados coerente e logicamente relacionados com algum significado associado. – É projetado, construído e populado com dados que atendem a um propósito e audiência específicos. – Representa algum aspecto do mundo real, chamado de minimundo. Memorizar: • Modelar aquilo que se deseja guardar para depois recuperar! • Se ninguém querer recuperar, então para que modelar! 18 Arquivos versus SGBD’s Processamento tradicional de Arquivos SGBD Vantagens do SGBD Definição dos dados é parte do código de programas de aplicação Meta Dados eliminação de redundâncias Dependência entre aplicação e dados Independência entre aplicações e dados eliminação de redundâncias facilidade de manutenção Representação de dados em nível físico Representação conceitual através de dados e programas facilidade de manutenção Cada visão é implementada por módulos específicos Permite múltiplas visões facilidade de consultas 19 Uma perspectiva histórica Quando usar SGBD Quando não Usar SGBD Controle redundância Controle consistência e integridade Acesso multiusuário Compartilhamento de dados Controle acesso e segurança Controle de recuperação e restauração Consultas eficientes Dados e aplicações simples e estáveis Requisitos de tempo-real não puderem ser atendidos 20 Abordagem de Implementação Créditos: Flavio Almada de França 21 Abordagem de Implementação • Abordagem na Implementação de um Banco de Dados Alto acoplamento (Regra de negócio no banco de dados) Vantagens •Ciclo de desenvolvimento rápido (linguagem de baixo nível) •Fácil diagnóstico de problemas (ferramentas integradas) •Centralização (fontes) •Alta portabilidade de dados •Fácil migração de plataforma (Ex: Cliente/Servidor para JavaEE) Desvantagens •Casamento com o fornecedor •Pouca espaço para manobras. •Venda do produto (produto casado) Baixo acoplamento (Regra de negócio no aplicativo) Vantagens •Liberdade de fornecedor •Alta portabilidade entre bancos. Desvantagens •Ciclo de desenvolvimento mais trabalhoso (linguagem de alto nível) •Difícil diagnóstico de problemas (fferramentas integradas)) •Mão de obra qualificada 22 Principais Características dos SGBDs Apoio a múltiplas visões de dados (nível externo) Capacidade de abstração de dados (nível conceitual) Capacidade de descrever a estrutura de armazenamento físico dos dados (nível interno) Compartilhamento de dados e processamento de transações. Arquitetura “Three- schema” 23 Arquitetura “Three-schema” Usuários Finais NÍVEL EXTERNO NÍVEL INTERNO Independência Física de Dados: É a capacidade de alterar o esquema interno sem ter que alterar o esquema conceitual e externo. Independência Lógica de Dados: É a capacidade de alterar o esquema conceitual sem ter que mudar os esquemas externos ou programas de aplicação. Esquema Conceitual Visão Externa 1 ... Visão Externa n Esquema Interno BD 1 ... BD n NÍVEL CONCEITUAL Mapeamento Conceitual-Interno Mapeamento Conceitual-Externo 24 Esquema Conceitual 25 Esquema Físico 26 Modelos de Dados Existem modelos para diferentes níveis de abstração de representação de dados – modelos conceituais – modelos lógicos – modelos físicos • Referem-se: – organização dos arquivos de dados em disco – não são manipulados por usuários ou aplicações que acessam o BD – decisões de implementação são de cada SGBD 27 Modelos de Dados Existem modelos para diferentes níveis de abstração de representação de dados – modelos conceituais – modelos lógicos – modelos físicos • Referem-se: – organização dos arquivos de dados em disco – não são manipulados por usuários ou aplicações que acessam o BD – decisões de implementação são de cada SGBD 28 Modelos de Dados Redes Hierárquico Relacional Entidade-Relacionamento ER - Estendido Objeto Objeto – Relacional NoSQL 29 Modelos de Dados Conceituais Representação com alto nível de abstração – modelam de forma mais natural os fatos do mundo real, suas propriedades e seus relacionamentos – são independentes de BD – preocupam-se apenas com a semântica da aplicação – exemplo: • modelo entidade-relacionamento 30 Modelos de Dados Lógicos Representa os dados em alguma estrutura (lógica) de armazenamento de dados – também chamados de modelos de BD – dependente de BD – exemplos • modelo relacional (tabelas) • modelos hierárquico 31 Modelos de BD (Lógicos) Apóiam: – na especificação dos dados do modelo (DDL) • dados, seus domínios e restrições – na especificação de como manipular os dados (DML) 32 Modelos de BD (Físico) Possuem foco na: – Indexação e estrutura de arquivos – Transações e controle de concorrência – Otimização – Recuperação em casos de falhas – Mecanismos de proteção (segurança) – Partição e agrupamento de dados 33 Transações Uma transação define uma unidade de execução que pode acessar e atualizar vários itens de dados. Uma transação executa vários comandos como se fossem apenas um comando indivisível (atômico). Os vários comandos são delimitados pelas declarações begin transaction e (commit ou rollback): – begin transaction(x) • Update(a) • Delete(b) • Insert(c) – commit(x) O SGBD considera este bloco como um único comando, atômico e indivisível 34 Transações Transações terminadas com commit, em caso de sucesso, efetivam todas as modificações realizadas dentro dela. Transação terminadas com rollback, desfazem todas as modificações realizadas dentro dela. – O banco de dados ficará no mesmo estado que estava antes do início da transação. O camando rollback pode ser chamado explicitamente pelo programador ou pelo SGBD quando ocorre algum erro. 35 Transações Ativa Confirmando Cancelando Confirmada Cancelada commit rollback begin transaction 36 Transações Um SGBD deve controlar a execução concorrente de transações para assegurar que o estado do banco de dados permaneça consistente. A seriação é uma propriedade que garante que independente da ordem dos acessos aos dados feitos pelas transações, o resultado final será o mesmo. 37 Transações Transação devem possuir um conjunto de propriedades que é normalmente referido como propriedades ACID: – Atomicidade – Consistência – Isolamento – Durabilidade 38 Transações Atomicidade – Garante que todas as operações na transação serão executadas ou nenhuma será. – Isto evita que falha ocorridas, possam deixar o banco de dados inconsistentes. Consistência – Possui dois aspectos: A consistência do banco dados e a consistência da própria transação. – Uma transação não deve violar as restrições de integridade definidas para o banco de dados. 39 Transações Isolamento – Significa que, mesmo no caso de transações executadas concorrentemente, o resultado final é igual ao obtido com a execução isolada de cada uma delas. – A observância desta propriedade das transações pelos SGBDs impede a ocorrência dos problemas de acesso a dados. Durabilidade – Significa que os resultados de uma transação, caso ela seja concluída com sucesso, devem ser persistentes. Mesmo se depois houver falha no sistema. 40 Não Transacional (Inconsistente) ERD Conta Corrente Comandos no tempo 41 Transação (Commit) ERD Conta Corrente Comandos no tempo 42 Transação (Rollback) ERD Conta Corrente Comandos no tempo 43 Transação (Read Consistency) ERD Conta Corrente Comandos no tempo 44 Gerenciador de Transações Escalonador Gerenciador de Recuperação Gerenciador de Memória Cache Memória Primária Log SGBD Transações externas Memória Secundária Index BD 45 Arquitetura Banco de Dados 46 Leitura Consistente(Read Consistency) 47 Data Block (Storage) 48 Leitura Consistente(Read Consistency) 49 Matriz de Classificação de SGBDs* RELACIONAL OBJETO- RELACIONAL SISTEMA DE ARQUIVOS LINGUAGEM DE PERSISTÊNCIA Dados Simples Dados Complexos C o n s u l t a s S i m p l e s * Baseado no livro: Object Relational DBMS by Stonebraker and Moore, Morgan Kaufmann, 1996 C o n s u l t a s C o m p l e x a s 50 O que existe? Consultas Complexas x Dados Complexos – SGBDOO • http://www.objectdb.com/ • http://pt.wikipedia.org/wiki/Db4o • http://www.versant.com/developer/ – SGBDs não Classificados • http://www.intersystems.com/cache/index.html • http://www.prevayler.org/ – SGBD Semi-estruturados • http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html 51 Síntese dos conceitos Banco de dados (BD): – conjunto de dados integrados que por objetivo atender a uma comunidade de usuários. Modelo de dados: – descrição formal das estruturas de dados para representação de um BD; com suas respectivas restrições e linguagem para criação e manipulação de dados. Sistema Gerenciador de banco de dados (SGBD): – software que incorpora as funções de definição, recuperação e alteração de dados em um BD. 52 Síntese dos conceitos Modelagem de dados: – é a ação de representar/abstrair dados do minimundo com o objetivo de criar projetos conceituais e lógicos de um BD. – alguns autores incluem os projetos físicos como parte da modelagem de dados, pelo fato de que as otimizações são oriundas de análises do comportamento dinâmico do BD. 53 Síntese dos conceitos Projeto conceitual BD: – ação que produz o esquema de dados abstratos que descreve a estrutura de um BD de forma independente de um SGBD (esquema conceitual). Projeto lógico BD: – ação que produz o esquema lógico de dados que representa a estrutura de dados de um BD em acordo com o modelo de dados subjacente a um SGBD. 54 Síntese dos conceitos Projeto físico BD: – ação que produz o esquema físico de dados a partir do esquema de lógico de dados com a adição das estratégias de otimização para manipulação das estruturas de dados. As estratégias de otimização são dependentes dos fabricantes dos SGBDs e de suas versões. 55 Questões de Estudo 1. Quando faz sentido utilizar um SGBD ao invés de simplesmente utilizar o sistema de arquivos? Quando não faz sentido utilizar um SGBD? 2. O que é independência lógica de dados e por que esse conceito é importante? 3. Explique as diferenças entre independência lógica de dados e independência física de dados. 4. Explique as diferenças entre esquemas externos, lógico e físico. Como esses conceitos se relacionam com os conceitos de independência de dados? 5. Quais são as responsabilidades de um Projetista de Banco de Dados e do DBA? 56 Questões de Estudo 6. O Sr. Juvenal Juvencio quer guardar informações de seus atletas (nome, endereço, quantidade de titulos , e momentos importantes). O volume de dados o forçou a decidir comprar um SGBD. Para economizar, ele quer comprar um que tenha apenas as características necessárias para executar uma aplicação stand-alone em seu PC. O Sr. Juvenal não quer compartilhar essa lista com ninguém. Indique quais das seguintes características de SGBDs o Sr. Juvenal necessita? Justifique. – Segurança. – Controle de concorrência. – Recuperação após falhas. – Mecanismos de visão. – Linguagem de consulta. 57 Questões de Estudo 7. Descreva os passos de um projeto de BD. 8. Quais dos seguintes itens exercem papel importante na representação de informações do mundo real num BD? Comente. – Linguagem de definição de dados. – Linguagem de manipulação de dados. – Cachê. – Modelo de dados. 9. O que é transação? 10. Por que o SGBD entrelaça as ações de diferentes transações, ao invés de executá-las seqüencialmente? 58 Introdução aos Sistemas de Bancos de Dados Referências Bibliográficas 1. Elmasri, R.; Navathe, S. B. [Trad.]. Sistemas de bancos de dados. Traduzido do original: FUNDAMENTALS OF DATABASE SYSTEMS. São Paulo: Pearson(Addison Wesley), 2005. 724 p. ISBN: 85-88639-17-3. 2. Korth, H.; Silberschatz, A. Sistemas de Bancos de Dados. 3a. Edição, Makron Books, 1998. 3. Raghu Ramakrishnan e Johannes Gehrke, Database Management Systems, Second Edition, McGraw-Hill, 2000. 4. Teorey, T.; Lightstone, S.; Nadeau, T. Projeto e modelagem de bancos de dados. Editora Campus, 2007. Referências Web 1. Takai, O.K; Italiano, I.C.; Ferreira, J.E. Introdução a Banco de Dados. Apostila disponível no site: http://www.ime.usp.br/~jef/apostila.pdf. (07/07/2005). Curso Superior de Tecnologia em ADS Prof. Osvaldo Kotaro Takai
[email protected] Obrigado!