rafaeldiasribeiro.com.br 04/08/2012 MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 8 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 rafaeldiasribeiro.com.br 04/08/2012 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 rafaeldiasribeiro.com.br 04/08/2012 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 rafaeldiasribeiro.com.br 04/08/2012 PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos Comprados, Numero, DataDeEmissão, Valor_Total) Pedido Nºdo Pedido Data Emissão Datade Entrega Nota Fiscal Produtos Comprados Numero DataDe Emissão Valor Total Para cardinalidade 1:1 • Caso 2: ALUNO Matricula Nome e-mail endereço (1,1) PRODUZ (0,1) TESE Titulo Resumo Ano 4 rafaeldiasribeiro.com.br 04/08/2012 Para cardinalidade 1:1 ALUNO (1,1) PROD UZ (0,1) TESE • Caso 2: Titulo Resumo Ano Matricula Nome e-mail endereço ALUNO (Matricula, Nome, e-mail, endereço) TESE (Aluno-Matricula , Titulo, Resumo, Ano) ALUNO (Matricula, Nome, e-mail, endereço) TESE (Aluno-Matricula , Titulo, Resumo, Ano) ALUNO Matricula Nome e-mail endereço TESE Aluno Matricula Titulo Resumo Ano 5 rafaeldiasribeiro.com.br 04/08/2012 Para cardinalidade 1:N Para cardinalidade 1:N FABRICA (Nome, CNPJ) LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, Telefone) 6 rafaeldiasribeiro.com.br 04/08/2012 FABRICA (Nome, CNPJ) LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, Telefone) FABRICA CNPJ Nome LOJA CNPJ FABRICA CNPJ Razão Social End Nome Telefone Para cardinalidade 1:N FABRICA(Nome, CNPJ) CADASTRO(CNPJ, CNPJ_Loja) LOJA(CNPJ_Loja, Razão_Social, End, Nome, Telefone) 7 rafaeldiasribeiro.com.br 04/08/2012 FABRICA(Nome, CNPJ) CADASTRO(CNPJ, CNPJ_Loja) LOJA(CNPJ_Loja, Razão_Social, End, Nome, Telefone) FABRICA CNPJ CADASTRO Nome FABRICA CNPJ FABRICA CNPJ LOJA CNPJ Razão Social End Nome Telefone Para cardinalidade N:M 8 rafaeldiasribeiro.com.br 04/08/2012 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) POSSUEM TECIDO Sigla TECIDO Sigla Descrição ROUPA Cod_modelo ROUPA Cod_modelo Preço TipoTecido 9 rafaeldiasribeiro.com.br 04/08/2012 Para cardinalidade N:M EMPREGADO (1,N) (1,N) Trabalha em Horas Matricula Nome e-mail Projeto Código Nome Local Para cardinalidade N:M (1,N) EMPREGADO Matricula Nome e-mail (1,N) Trabalha em Projeto Horas Código Nome Local EMPREGADO (Matricula, Nome, e-mail) PROJETO (Código , Nome , Local) EMPREGADO/PROJETO (EMPREGADO-Matricula, PROJETO-Código, Horas) 10 rafaeldiasribeiro.com.br 04/08/2012 EMPREGADO (Matricula, Nome, e-mail) PROJETO (Código , Nome , Local) EMPREGADO/PROJETO (EMPREGADO-Matricula, PROJETO-Código, Horas) PROJETO EMPREGADO Matricula Nome e-mail Código Nome Local EMPREGADO/PROJETO EMPREGADO. Matricula PROJETO. Código Local Para cardinalidade N:M PEÇA Codigo Nome Cor Cidade (1,N) (1,N) Forneci mento QTDE FORNECEDOR Codigo Nome Cidade 11 rafaeldiasribeiro.com.br 04/08/2012 Para cardinalidade N:M (1,N) PEÇA (1,N) Forneci mento QTDE Codigo Nome Cor Cidade FORNECEDOR Codigo Nome Cidade PEÇA (Codigo, Nome, Cor, Cidade) FORNECEDOR (Codigo , Nome, 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 FORNECEDOR CODIGO NOME CIDADE S1 SILVA RJ S2 JOÃO SP FORNECIMENTO COD_FORN COD_PECA QTDE S1 P1 300 S1 P2 200 S1 P3 400 S2 P1 300 S2 P2 400 12 rafaeldiasribeiro.com.br 04/08/2012 numero andar capacidade AMBULATORIO codigo nome ESPECIALIDADE (0,1) (1,1) (0,N) (0,N) CONSULTA Data Hora (1,1) (0,N) (1,N) (1,1) PACIENTE MEDICO Matricula nome crm codigo nome CPF Dt.Nascimento codigo nome ESPECIALIDADE (0,1) (0,N) MEDICO ESPECIALIDADE (Codigo, Nome) Matricula nome crm MEDICO (Matricula, Nome, Crm, ESPECIALIDADE- Codigo ) 13 rafaeldiasribeiro.com.br 04/08/2012 numero andar capacidade AMBULATORIO codigo nome ESPECIALIDADE (0,1) (1,1) (0,N) (0,N) CONSULTA (1,N) Data Hora codigo nome CPF Dt.Nascimento PACIENTE numero andar capacidade (1,1) (1,1) (0,N) (0,N) CONSULTA Data Hora MEDICO Matricula nome crm (1,1) AMBULATORIO (1,1) (0,N) MEDICO Matricula nome crm (1,N) (1,1) PACIENTE codigo nome CPF Dt.Nascimento MEDICO (Matricula, Nome, Crm, ESPECIALIDADE- Codigo ) AMBULATORIO (Numero, Andar, Capacidade) PACIENTE (Codigo, Nome, CPF, Dt.Nascimento CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) 14 rafaeldiasribeiro.com.br 04/08/2012 CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) MED. Matricula AMB. Numero PAC. Codigo Data Hora 012 017 015 012 2 5 3 2 001 005 009 001 25/11/2009 26/12/2009 31/12/2009 25/11/2009 08:15 23:50 12:00 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 rafaeldiasribeiro.com.br 04/08/2012 CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo, Data, Hora) MED. Matricula 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 (Matricula, Nome, Crm, ESPECIALIDADE- Codigo ) ESPECIALIDADE (Codigo, Nome) AMBULATORIO (Numero, Andar, Capacidade) PACIENTE (Codigo, Nome, CPF, Dt.Nascimento CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) 16