MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 8 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1
Objetivos: Aprender a transformar o modelo conceitual para o modelo lógico relacional para: Relacionamentos 1:1 Relacionamentos 1:n Relacionamentos n:m Convertendo o Diagrama ER para Tabelas Relacionais Regras simples, baseadas na cardinalidade dos relacionamentos, são aplicadas para converter entidades e relacionamentos em tabelas relacionais. 2
Para cardinalidade 1:1 Caso 1: Para cardinalidade 1:1 Caso 1: PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos Comprados, Numero, DataDeEmissão, Valor_Total) 3
PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos Comprados, Numero, DataDeEmissão, Valor_Total) Pedido Nota Fiscal Nºdo Pedido Data Emissão Datade Entrega Produtos Comprados Numero DataDe Emissão Valor Total Para cardinalidade 1:1 Caso 2: ALUNO (0,1) PRODUZ TESE e-mail endereço Titulo Resumo Ano 4
Para cardinalidade 1:1 Caso 2: ALUNO e-mail endereço PROD (0,1) UZ TESE Titulo Resumo Ano ALUNO (,, e-mail, endereço) TESE (Aluno-, Titulo, Resumo, Ano) ALUNO (,, e-mail, endereço) TESE (Aluno-, Titulo, Resumo, Ano) ALUNO e-mail endereço Aluno TESE Titulo Resumo Ano 5
Para cardinalidade 1:N Para cardinalidade 1:N FABRICA (, CNPJ) LOJA (CNPJ_Loja, Fabrica-CNPJ, Razão_Social, End,, Telefone) 6
FABRICA (, CNPJ) LOJA (CNPJ_Loja, Fabrica-CNPJ, Razão_Social, End,, Telefone) FABRICA CNPJ LOJA CNPJ FABRICA CNPJ Razão Social End Telefone Para cardinalidade 1:N FABRICA(, CNPJ) CADASTRO(CNPJ, CNPJ_Loja) LOJA(CNPJ_Loja, Razão_Social, End,, Telefone) 7
FABRICA(, CNPJ) CADASTRO(CNPJ, CNPJ_Loja) LOJA(CNPJ_Loja, Razão_Social, End,, Telefone) CNPJ FABRICA FABRICA CNPJ CADASTRO FABRICA CNPJ CNPJ Razão Social LOJA End Telefone Para cardinalidade N:M 8
Para cardinalidade N:M ROUPA (Cod_modelo, Preço, TipoTecido) POSSUEM (Cod_Modelo,Sigla) TECIDO (Sigla, Descrição) ROUPA (Cod_modelo, Preço, TipoTecido) POSSUEM (Cod_Modelo,Sigla) TECIDO (Sigla, Descrição) Sigla TECIDO Descrição TECIDO Sigla POSSUEM ROUPA Cod_modelo ROUPA Cod_modelo Preço TipoTecido 9
Para cardinalidade N:M EMPREGADO Trabalha em Projeto e-mail Horas Código Local Para cardinalidade N:M EMPREGADO Trabalha em Projeto e-mail Horas Código Local EMPREGADO (,, e-mail) PROJETO (Código,, Local) EMPREGADO/PROJETO (EMPREGADO-, PROJETO-Código, Horas) 10
EMPREGADO (,, e-mail) PROJETO (Código,, Local) EMPREGADO/PROJETO (EMPREGADO-, PROJETO-Código, Horas) EMPREGADO e-mail PROJETO Código Local EMPREGADO/PROJETO EMPREGADO. PROJETO. Código Local Para cardinalidade N:M PEÇA Forneci mento FORNECEDOR Codigo Cor Cidade QTDE Codigo Cidade 11
Para cardinalidade N:M PEÇA Forneci mento FORNECEDOR Codigo Cor Cidade PEÇA (Codigo,, Cor, Cidade) FORNECEDOR (Codigo,, Cidade) QTDE Codigo Cidade FORNECIMENTO (PEÇA-Codigo, FORNECEDOR-Codigo, QTDE) Para cardinalidade N:M PEÇA CODIGO NOME COR CIDADE P1 PREGO VERMELHO RJ P2 PORCA VERDE SP P3 PARAFUSO AZUL CURITIBA CODIGO FORNECEDOR NOME CIDADE S1 SILVA RJ S2 JOÃO SP FORNECIMENTO COD_FORN COD_PECA S1 P1 S1 P2 S1 P3 S2 P1 S2 P2 QTDE 300 200 400 300 400 12
AMBULATORIO numero andar capacidade codigo ESPECIALIDADE (0,1) CONSULTA MEDICO Data Hora crm PACIENTE codigo CPF Dt.Nascimento codigo ESPECIALIDADE (0,1) MEDICO ESPECIALIDADE (Codigo, ) crm MEDICO (,, Crm,ESPECIALIDADE- Codigo ) 13
AMBULATORIO numero andar capacidade codigo ESPECIALIDADE (0,1) CONSULTA MEDICO Data Hora crm PACIENTE codigo CPF Dt.Nascimento AMBULATORIO numero andar capacidade Data Hora CONSULTA crm MEDICO PACIENTE codigo CPF Dt.Nascimento MEDICO (,, Crm, ESPECIALIDADE- Codigo ) AMBULATORIO (Numero, Andar, Capacidade) PACIENTE (Codigo,, CPF, Dt.Nascimento CONSULTA (MEDICO-, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) 14
CONSULTA (MEDICO-, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) MED. AMB. Numero PAC. Codigo Data Hora 012 2 001 25/11/2009 08:15 017 5 005 26/12/2009 23:50 015 3 009 31/12/2009 12:00 012 2 001 25/11/2009 19:30 015 3 009 15/01/2010 11:30 CHAVE PRIMÁRIA Uma chave primária é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. Por isso, nas definições formais de chave primária, exige-se que essa seja mínima. Uma chave é mínima quando todas suas colunas forem efetivamente necessárias para garantir o requisito de unicidade de valores da chave. 15
CONSULTA (MEDICO-, AMBULATORIO- Numero, PACIENTE-Codigo, Data, Hora) MED. AMB. Numero PAC. Codigo Data Hora 012 2 001 25/11/2009 08:15 017 5 005 26/12/2009 23:50 015 3 009 31/12/2009 12:00 012 2 001 25/11/2009 19:30 015 3 009 15/01/2010 11:30 MEDICO (,, Crm, ESPECIALIDADE- Codigo ) ESPECIALIDADE (Codigo, ) AMBULATORIO (Numero, Andar, Capacidade) PACIENTE (Codigo,, CPF, Dt.Nascimento CONSULTA (MEDICO-, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) 16