Projetos de Banco de Dados
Prof.° André Luiz F. Alves
http://andre.alfa.googlepages.com
Tópicos Abordados
• Projeto de Banco de Dados
• Modelagem Conceitual
▫ Modelo Entidade Relacionamento (MER)
Diagrama Entidade Relacionamento (DER)
Problema a ser resolvido
• Em uma empresa existem diversos departamentos aos quais os
funcionários estão lotados. Um departamento contém o nome, a sigla e um funcionário responsável(gerente). Já o funcionário contém sua
matrícula, nome, cpf, rg, data nascimento, grau de formação e salário. O funcionário só pode está lotado em único departamento. Os
departamentos da empresa são responsáveis por executar projetos. Cada projeto só pode ser executado por um departamento. Um projeto é composto de um código, título, valor de investimento e quantidade de horas.
• Quais...
▫ as entidades envolvidas? E os seus atributos?
▫ os relacionamentos das entidades?
▫ Os comandos para criação desse banco de dados?
Fases de um Projeto de Banco de Dados
Levantamento e Análise de Requisitos
Projeto Conceitual
Projeto Lógico (mapeamento dos Dados)
Projeto Físico Mini-mundo
Requisitos de dados
Ciclo de atividades na Modelagem de Dados
Aplicação de técnicas de representação
Identificação (objetos, características, relacionamentos, comportamentos) conceituação e assimilação Entrevistas, reuniões, questionários, análise de documentos, Conhecimento prévio...
Verificar se o modelo gerado está coerente e fiel aos conceitos encontrados, evitando anomalias...
Análise dos Requisitos
Fatores a serem considerados:
• Abrangência/Escopo:
▫ “um artista precisa saber se deve pintar toda uma paisagem ou só a árvore que está na sua frente”
• Nível de Detalhamento:
▫ “reprodução de todo bosque: linhas gerais? Elementos predominantes? Tudo?...
• Tempo para a Produção do Modelo:
▫ Quais os prazos para a conclusão?
• Recursos Disponíveis
Modelagem Conceitual
• Fase muito importante no planejamento de uma
aplicação de um banco de dados;
• É uma Modelagem semântica (de alto nível) que permite aproximar o modelo obtido do mundo real
▫ “Modelo é a representação abstrata e simplificada de um sistema real, com a qual se pode explicar ou testar o seu comportamento, em seu todo ou em partes”
• Modelos mais utilizados:
▫ Modelo Entidade Relacionamento (ER) (com
suas variações)
Objetivos da Modelagem de dados
• Obter estruturas de dados que leve ao projeto de
banco de dados;
• Representar o ambiente observado;
• Servir de instrumento para comunicação;
• Favorecer o processo de verificação e validação;
• Capturar aspectos de relacionamento entre os
objetos;
• ....
Exemplo de Modelagem
(cont.)Exemplo de Modelagem
(cont.)Modelo de Dados
Arquitetura de Três-Esquemas (ANSI/SPARK)
Níveis de Modelagem (ANSI/SPARK)
• Modelo Conceitual de Dados -MCD: Esquema Conceitual
▫ Ênfase nos Objetos, Características e Relacionamento (mini-mundo);
▫ Independência de Tecnologia (SGDB Relacional, Hierárquico, Objeto-Relacional, OO,...)
▫ Utilizado na fase de projetos. Não confundir com MLD produzido por algumas ferramentas CASE (ex.: BrModelo...)
• Modelo Lógico de Dados (MLD): Esquema Externo
▫ Como o usuário visualiza os dados. Independência do meio físico; ▫ Construído a partir de aplicação de regras de derivação no MCD;
▫ Respeita e implementa conceitos tais como chaves de acesso, formatos de campos, controle de chaves duplicadas, integridade referencial, normalizações..
• Modelo Físico de Dados (MFD): Esquema Interno
Níveis de Modelagem (ANSI/SPARK)
Código nome função salário NomeDepartament
o Código nome dataNascimento
Visão Externa 1 Visão Externa 2
Nível Externo
Nível Conceitual
Nível Interno
Código nome função salário dataNascimento depto
Create Table Empregado( codigo int primary key, nome varchar(50) not null, funcao varchar(30),
salario decimal(10,2), dataNascimento date, depto int,
foreign key depto
Modelo Entidade-Relacionamento
• Modelo definido por Peter Chen em 1976
▫ Depois diversas extensões e notações foram definidas
• Consiste em um conjunto de objetos básicos chamados entidades e nos relacionamentos entre esses objetos;
• Objetivo é facilitar o projeto de banco de dados, possibilitando a especificação da estrutura lógica geral do banco de dados;
• O modelo de dados é representado graficamente por um Diagrama de Entidade-Relacionamento (DER) através de:
▫ Entidades (retângulos) ▫ Atributos (elipses)
▫ Relacionamentos (losangos)
Entidade
• Uma entidade é tudo aquilo sobre o qual se deseja manter informações.
• Possui propriedades que a distingue de outras entidades.
• Subconjunto de objetos (instâncias) que desempenha o mesmo papel semântico e possui os mesmos tipos de propriedades (atributos);
• Pode representar: objetos concretos (pessoas, livros, carros, …) ou conceitos abstratos
(empresas, eventos, embarques, …)
Aluno Empréstim
o
Entidade (Exemplos)
▫ Conjunto de todas as contas correntes de um banco ▫ Conjunto de todos os empregados de uma empresa ▫ Conjunto de todos os filmes de um produtor
▫ Conjunto de todas as Mensagens postas em Redes Sociais ou em Blogs...
• Descrever as Entidades em um dicionário de dados é prática de modelagem!!
Entidade: EMPREGADO
Entidade (Intâncias)
• Objeto de uma entidade com suas respectivas
propriedades que é distinguível dos outros objetos.
• Ex:
▫ Empregado: “Maria dos Anjos, 31 anos, Secretária, Solteira, R$ 800,00”;
Atributos
• São as propriedades que caracterizam ou
descrevem uma entidade ou um relacionamento.
• Ex:
▫ A entidade CARRO poderia ter os atributos: Placa, fabricante, modelo, ano de fabricação, cor, preço; ▫ A entidade MENSAGEM poderia ter os atributos:
autor, texto, data e hora;
▫ O relacionamento TRABALHA entre
Atributos
• Simples: é atômico.
▫ Ex. Idade: numérico Nome:
cadeia de caracteres
• Composto: contém sub-atributos que compõem o atributo.
Atributos
• Simplesmente valorados: têm um único
valor para uma instância de uma entidade. ▫ Ex.: PESSOA: Idade
• Multivalorados: possuem vários valores numa
instância de uma entidade.
▫ Ex.: PESSOA:TitulaçãoSuperior(nenhum, Bel. MSc., PhD)
• Atributos derivados: podem ser determinados a
Relacionamentos
• São funções que mapeiam um conjunto de
instâncias de uma entidade em um outro
conjunto de instâncias de outra entidade (ou da mesma entidade: “auto relacionamento”).
• São associações entre diversas entidades.
• Ex.:
▫ “Um empregado trabalha num projeto”
▫ “Um cliente possui conta bancária” ▫ “Um filme possui vários atores”
Relacionamentos
nome salário
Empregado trabalha Projeto
matricula horas
1..N
1..N
Restrições de Integridade
• Caracterizam as restrições nas quais os
relacionamentos entre entidades estão submetidos (regras do negócio).
• Ex.:
▫ “Todo empregado deve estar lotado num departamento”
▫ “Existe Cliente que não foi recomendado por Cliente”
▫ “Toda Nota Fiscal deve ter pelo menos um item discriminado”
Restrições de Integridade
• Podemos caracterizar um relacionamento em
termos de:
▫ Cardinalidade: quantidade de instâncias que
podem participar do relacionamento
▫ Totalidade: obrigatoriedade da ocorrência do
Tipos de Cardinalidade
• Um_para_Um (1:1): uma instância de uma
entidade A está associada a no máximo a uma instância de uma entidade B, e vice-versa.
a1 a2 a3 a4 a5
b1 b2 b3 b4 b5
Tipos de Cardinalidade
• Um_para_Muitos (1:N): uma instância de
uma entidade A está associada a qualquer número de instâncias da entidade B. Porém, uma instância da entidade B pode estar
Tipos de Cardinalidade
• Muitos_para_Um (N:1): uma instância da
entidade A está associada a uma instância de B. Porém, uma instância de B pode estar associada a qualquer número de instâncias de A.
a1 a2 a3 a4 a5
b1
b2
b3
N:1
Tipos de Cardinalidade
• Muitos_para_Muitos(M:N): uma instância
da entidade A está associada a qualquer número de instâncias da entidade B, e vice-versa.
Representação da Relação
A 1 B
1
A 1 B
N
A N B
1
A N B
Vamos à prática...
1. Utilize o software BrModelo para construir o
Vamos à prática...
2. Faça um modelo ER para modelar Notas
Exercício
• Nas situações você deverá:
▫ Modelar conceitualmente o banco de dados, utilizando o software BrModelo através do
Diagrama Entidade Relacionamento. Lembre-se de analisar os requisitos...
▫ Utilizar o Software MySql Workbench para transformar o modelo conceitual em projeto lógico.
▫ Informar comandos SQL para:
Criar, alterar e remover as tabelas
Situação 1 -
Administradora de Imóveis
• A administradora de Imóveis administra
condomínios formados por unidades
condominiais (lotes); Cada unidade condominial é de propriedade de uma ou mais pessoas. Uma pessoa pode possuir diversas unidades; Cada unidade pode estar alugada para no máximo uma pessoa. Uma pessoa pode alugar diversas unidades. Defina os atributos que julgares
Situação 2 - Prontuário de pacientes
• O hospital possui um conjunto de pacientes e um
conjunto de médicos. No registro dos pacientes, temos o nome, RG, CPF, endereço e telefone. No registro dos médicos temos o nome, especialidade, RG, CPF, CRM, endereço e telefone. Cada paciente tem associado a si um prontuário (sua ficha), onde são registradas basicamente todas ocorrências,
Situação 3 - Companhia de seguros
• Uma companhia de seguros de automóveis
possui um conjunto de clientes, onde cada um possui um certo número de carros. Os dados do cliente são nome, RG, CPF, endereço e telefone. Do carro deve-se armazenar a placa, código
Renavan, fabricante, modelo, e ano. Associado a cada carro há um histórico de ocorrências. Um carro podem possuir várias ocorrências ou
Situação 4 - Universidade
• Um departamento é responsável por no mínimo uma disciplina. Uma disciplina por sua vez pode ter de zero à
Referências Bibliográficas
• COUGE, Paulo Sérgio. Modelagem Conceitual e Projeto de Bancos de Dados. Editora Elsevier, Rio de Janeiro, 1997.
• ELMASRI, Ramez, NAVATHE, Shamkant B.. Sistemas de Banco de Dados. Editora Pearson Addison Wesley, São Paulo, 2005.