Luiz Vivacqua (lavcm@terra.com.br) http://geocities.yahoo.com.br/lavcm 1
Ementa 1. Introdução (1) 2. Modelo Conceitual Diagrama de classes 3. Modelo Lógico Relacional Características Chaves Restrições 4. Derivação do modelo conceitual para o modelo lógico Engenharia reversa 5. Normalização Primeira, segunda, terceira Forma Normal BCNF Forma Normal Boyce-Codd 6. Álgebra relacional 7. SQL DDL DML 8. Considerações finais sobre projeto físico 2
Bibliografia Sistema de Banco de Dados Silberschatz, Korth, Sudarshan Editora Campus Sistemas de Banco de Dados Elmasri, Navathe Editora Pearson Notas de Aula http://geocities.yahoo.com.br/lavcm 3
Introdução - Por que Banco de Dados? Antigamente, as aplicações de banco de dados eram construídas diretamente sobre os sistemas de arquivo. Sistema A Funcionário Pagamento Cargo Sistema B Funcionário Projeto Principal característica : Cada aplicação gerencia o seu próprio conjunto de arquivos 4
Introdução - Por que Banco de Dados? Desvantagens de usar sistemas de arquivo para armazenar dados: Redundância e inconsistência de dados Duplicação de informações em diferentes arquivos Alteração não é refletida para todos os arquivos Isolamento dos dados Dificuldade de acessar os dados Múltiplos formatos Necessidade de escrever um novo programa para realizar cada nova tarefa Segurança Não existe mecanismos para criar visões nem para restringir o acesso Acesso concorrente por vários usuários 5
Sistema Gerenciador de Banco de Dados Um SGBD contém informações sobre uma determinada empresa. Coleção de dados inter-relacionados Conjunto dos programas para acessar os dados Um ambiente que é conveniente e eficiente de usar Sistema A Sistema B S G B D Dados 6
Componentes: 1. Hardware Disco 2. Software Sistemas de Banco da Dados SGBD Isola os usuários dos detalhes de armazenamento e acesso 3. Dados Dados do usuário Metadados (Descrição do dado) 4. Usuários Programador de aplicações Usuário final Administrador (DBA) 7
Administrador de Banco de Dados Coordena todas as atividades do sistema de banco de dados; o administrador de banco de dados tem um bom conhecimento dos recursos e necessidades de informação da empresa. As responsabilidades do administrador de banco de dados incluem (podendo variar dependendo da empresa): Definição de esquema Estrutura de armazenamento e definição de método de acesso Modificação de esquema e de organização física Concessão de autorização para acesso ao banco de dados Especificar restrições de integridade Agir como ligação com os usuários Monitorar o desempenho e responder a mudanças em requisições 8
Vantagens dos Sistemas de Banco de Dados Redução de redundância => eliminação de múltiplas cópias do mesmo dado. Eliminação de inconsistências => conseqüência direta do item anterior. Compartilhamento dos dados => acesso concorrente. Segurança de acesso => o DBA define quem ( qual usuário ) pode acessar o que ( qual tabela ) Integridade referencial Independência de Dados 9
Independência de Dados Processamento de arquivos Qual é o formato do dado armazenado? Onde o dado está localizado? Como o dado é acessado? Ex: Obter o salário médio dos engenheiros da empresa Formato campo salário do tipo decimal fixo com 6 bytes começando na posição 29 do registro Localização arquivo funcionário.dat localizado no diretório Func do disco E na máquina X Acesso arquivo de organização seqüencial ordenado pela matrícula. Alteração em qualquer dos três aspectos implicam em alteração no programa. 10
Independência de Dados É a habilidade de se usar o dado sem conhecer detalhes de sua representação. Provê imunidade as aplicações com relação as estruturas de armazenamento e métodos de acesso. Independência Lógica Se o dado é acessado através de uma visão então mudanças no esquema conceitual não interferem com o funcionamento do programa. Independência Física Mudanças na estrutura de armazenamento tais como a criação de índices ou a localização dos arquivos físicos não interferem com o funcionamento do programa. 11
Arquitetura em Camadas 12
Visões Arquitetura em Camadas Descrevem como os usuários enxergam os dados. Esquema conceitual Define a estrutura lógica de armazenamento Esquema interno Define como os dados estão armazenados ( tipos de arquivo e índices usados) 13