CONTEÚDO PROGRAMÁTICO Levantamento de Requisitos Modelo Físico Modelo Conceitual Modelo Lógico
REVISANDO OS CONCEITOS DE MODELAGEM Até grau máximo Pelo menos grau mínimo PEDIDO (0,N) ITEM_ PEDIDO (1,N) PRODUTO Figura 2- Leitura de Cardinalidades.
CHAVE PRIMÁRIA X CHAVE ESTRANGEIRA Chave Primária (pk) Chave Estrangeira (fk) Não pode ser nula Pode ser nula (cardinalidade mínima =0) Não pode ser duplicada Pode ser duplicada pk fk primary key identifica unicamente cada registro foreign key implementa relacionamentos
MAPEANDO ATRIBUTOS COMPOSTOS CLIENTE (cpf, rua, número, bairro, cep,estado, cidade)
MAPEANDO ATRIBUTOS MULTIVALORADOS CLIENTE (cpf) TELEFONE(número, cpf, descrição)
ENTIDADE FRACA Entidade que só existe quando relacionada a outra entidade, sendo seu identificador composto por atributos de outra entidade. CONTA (número) MOVIMENTAÇÃO(id, número, tipo)
RELACIONAMENTO: AGREGAÇÃO Um relacionamento é uma associação entre entidades Não foi previsto no modelo ER: A associação entre uma entidade e um relacionamento. MÉDICO CONSULTA PACIENTE PRESCRIÇÃO MEDICAMENTO Figura 2- Leitura de Cardinalidades.
RELACIONAMENTO: AGREGAÇÃO Se Medicamento fosse relacionado a Médico: Teríamos apenas a informação de que médico prescreveu que medicamento, faltando a informação do paciente que os teve prescritos. n Médico n Consulta n Paciente Prescrição n Medicamento Figura 2- Leitura de Cardinalidades.
RELACIONAMENTO: AGREGAÇÃO Se Medicamento fosse relacionado a Paciente: Faltaria a informação do médico que prescreveu o medicamento. Médico n Consulta n Paciente n Medicamento n Prescrição Figura 2- Leitura de Cardinalidades.
RELACIONAMENTO: AGREGAÇÃO Relacionar Medicamento à Consulta, isto é, vamos relacionar uma entidade a um relacionamento. Como fazer isso: usar o conceito de Entidade Associativa ou Agregação Médico n Consulta n Paciente n Prescrição n Uma entidade associativa: é uma redefinição de um relacionamento que passa a ser tratado como uma entidade. Medicamento Figura 2- Leitura de Cardinalidades.
RELACIONAMENTO - 1:1 - DER Para este tipo de relacionamento iremos verificar 3 cenários: Cardinalidade: (0,1) X (0,1) Cardinalidade: (1,1) X (1,1) Cardinalidade: (0,1) X (1,1) ou Cardinalidade: (1,1) X (0,1)
Exemplo: RELACIONAMENTO (0,1) X (0,1) EMPREGADO X DEPARTAMENTO (Relacionamento: gerencia). cpf nome EMPREGADO (0,1) (0,1) DEPARTAMENTO código localização Quando a mínima for zero nos dois lados você pode escolher o lado da chave estrangeira. EMPREGADO (cpf, nome,código) DEPARTAMENTO(código,localização ) EMPREGADO (cpf, nome) DEPARTAMENTO(código,localização, cpf ) Figura 1 Mapeamento E-R para o Modelo Relacional
RELACIONAMENTO (1,1) X (1,1) Exemplo: PESSOA X CPF (Relacionamento: possui). código nome PESSOA (1,1) (1,1) CPF Id data PESSOA (código, nome, data, id)
Exemplo: RELACIONAMENTO (1,1) X (0,1) EMPRÉSTIMO X DEVOLUÇÃO código data EMPRÉSTIMO (1,1) (0,1) DEVOLUÇÃO Id data EMPRÉSTIMO (código, data) DEVOLUÇÃO ( id, data, código)
Exemplo: RELACIONAMENTO 1:N CONDOMÍNIO X APARTAMENTO código endereço CONDOMÍNIO (1,1) (1,N) APARTAMENTO Id descrição CONDOMÍNIO (código, endereço) APARTAMENTO ( id, descrição, código)
RELACIONAMENTO N:N Exemplo: CLIENTE X FITA (Relacionamento: ALUGA). código nome CLIENTE (0,N) ALUGA data (1,N) FITA Id título CLIENTE(código, nome) ALUGA (código, id) FITA ( id, título) CLIENTE(código, nome) ALUGA (código, id, data) FITA ( id, título)
MAPEAMENTO : RELACIONAMENTO N:N Outra forma de realizar o mapeamento para este cenário: código nome CLIENTE (0,N) ALUGA cod_locação (1,N) FITA Id título CLIENTE(código, nome) ALUGA (cod_locação, id, código) FITA ( id, título)
MAPEAMENTO : RELACIONAMENTO TERNÁRIO ENTREGA CIDADE(cod_cidade, nome) DISTRIBUIDOR (cod_dist, nome) ENTREGA (cod_cidade, cod_dist, cod_produto) PRODUTO ( cod_produto, lote) Figura 11 Relacionamento Ternário
RELACIONAMENTO AUTO-RELACIONAMENTO Representa um relacionamento entre ocorrências da mesma entidade. PESSOA(cpf, nome,cpf_cônjuge)
RELACIONAMENTO GENERALIZAÇÃO/ESPECIALIZAÇÃO cargo FUNCIONARIO código nome ENGENHEIRO SECRETARIA Crea 1 Especialidade Idiomas Figura 13 adaptado de Heuser, 2009. Nível FUNCIONARIO(código, nome,cargo) ENGENHEIRO (código, crea,especialidade) SECRETARIA (código, idiomas, nível) 2 FUNCIONARIO(código, nome,cargo, crea, especialidade, idiomas, nível)
RELACIONAMENTO GENERALIZAÇÃO/ESPECIALIZAÇÃO cargo FUNCIONARIO código nome ENGENHEIRO SECRETARIA Crea Especialidade Idiomas Figura 13 adaptado de Heuser, 2009. Nível 3 ENGENHEIRO (código, crea,especialidade, nome) SECRETARIA (código, idiomas, nível, nome)
RELACIONAMENTO ASPECTO TEMPORAL EMPREGADO (código, nome) HISTÓRICO(código, código_sal,data ) SALÁRIOS (código_sal, categoria)
Referências Bibliográficas Date, C. J. Introdução a Sistemas de Banco de Dados. Rio de Janeiro: Elsevier, 2003. Heuser, Carlos Alberto.Projeto de Banco de Dados. 6 a ed. Porto Alegre: Bookman, 2009.
Obrigado! www.cruzeirodosulvirtual.com.br Campus Liberdade R. Galvão Bueno, 868 01506-000 São Paulo SP Brasil Tel: (55 11) 3385-3000