Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Mapeamento para tabelas relacionais Revisar Bancos de Dados Relacionais Regras de Mapeamento Modelo Conceitual (ER) para Modelo Lógico (Relacional) Exemplos e Exercícios 2 Mapeamento para Tabelas Após a modelagem conceitual é realizado o projeto lógico; Universo do Negócio Modelo Relacional Modelo Hierárquico Modelo Rede ER 3 Bancos de Dados Relacionais SGBDs baseados no modelo lógico relacional, proposto por E. F. Codd em 1970. Todos os dados de um BD relacional estão armazenados em relações (ou tabelas). Cod_ Curso Nome 77 Computação 88 Eng. Civil Matrícula Nome Endereço Cod_Curso 9188006 José xxxx 88 9177006 Maria ddddd 77 9288900 Ana ddeee 88 4 5 Regra 1-Entidades Simples Para cada entidade regular do ER cria-se uma tabela com os atributos simples da entidade (os multivalorados são tratados depois) Departamento(coddep, nome Professor(codprof, nome Curso(codcurso, nome Aluno(matrícula, nome Disciplina(coddisc, nome, cred, ch Turma(codturma, sala, horario 6 Regra 2 - Entidades Fracas Regra 2: para cada entidade fraca do ER, cria-se uma tabela e incluem-se todos os atributos simples da entidade como atributos da tabela. Inclui-se também como chave estrangeira a chave primária da tabela proprietária. Funcionário(cod, nome) Dependentes(cod_func, nome, sexo) 7 Regra 3 - Generalização/Especialização Abordagem 1 Para cada hierarquia de generalização/especialização, incluir na tabela que representa a entidade genérica um atributo para a categoria da entidade. Criar também uma tabela para cada sub-entidade, tendo como chave primária a chave da classe-base. Incluem-se nessas tabelas os atributos específicos daquela subclasse. Conta(número, saldo, tipo) Conta_corrente(número, limite, max_saque) Poupança(número, tx_juros) 8 Regra 3 - Generalização/Especialização Abordagem 2 Cria-se apenas as tabelas correspondentes às sub-entidades, incluindo nestas os atributos da entidade genérica mais os atributos próprios da entidade. Conta_corrente(número, saldo, limite, max_saque) Poupança(número, saldo, tx_juros) Problemas: Dificuldade de inclusão de novas contas; chave primária não é mantida única automaticamente pelo BD Vantagem: diminuição da quantidade de tabelas melhor performance nas consultas 9 Regra 4 - Relacionamentos 1:1 Para os relacionamentos 1:1 identificam-se as tabelas que participam do relacionamento. Escolhe-se uma das tabelas e inclui-se como chave estrangeira a chave primária da outra tabela. Departamento(coddep, nome, cod_chefe Professor(codprof, nome Curso(codcurso, nome, cod_coordenador Aluno(matrícula, nome Disciplina(coddisc, nome, cred, ch Turma(codturma, sala, horario obs: em caso de restrição de participação total, a tabela com a restrição recebe a chave estrangeira 10 Regra 5 - Relacionamentos 1:N Para cada relacionamento binário 1:N a tabela que fica do lado N do relacionamento recebe a chave primária da outra tabela e mais os possíveis atributos do relacionamento. Departamento(coddep, nome, cod_chefe Professor(codprof, nome, cod_depto Curso(codcurso, nome, cod_coordenador, cod_depto Aluno(matrícula, nome, cod_curso Disciplina(coddisc, nome, cred, ch Turma(codturma, sala, horario, cod_professor, cod_disciplina 11 Regra 6 - Relacionamentos binários N:N Para relacionamentos N:N cria-se uma nova tabela. As chaves estrangeiras na nova tabela são as chaves primárias das tabelas participantes mais os atributos do relacionamento. A chave primária da nova tabela é a combinação das chaves estrangeiras. Departamento(coddep, nome, cod_chefe) Professor(codprof, nome, cod_depto) Curso(codcurso, nome, cod_coordenador, cod_depto) Aluno(matrícula, nome, cod_curso) Disciplina(coddisc, nome, cred, ch) Turma(codturma, sala, horario, cod_professor, cod_disciplina) -Curso_disciplina(cod_curso, cod_disciplina) -Jácursou_disciplina(mat_aluno, cod_disciplina, nota) -Matrícula_aluno(mat_aluno, codturma) 12 Regra 7 - Atributos multivalorados Para cada atributo multivalorado cria-se uma nova tabela que inclui o próprio atributo mais a chave primária da tabela que o tem como atributo. Funcionário (cód, nome) Fone_funcionário(cod_func, telefone) 13 Regra 8 - Relacionamentos N- ários Para cada relacionamento N-ário usa-se o mesmo procedimento dos relacionamentos N:N fornecedor (codf, nomef) projeto(codproj, nomeproj) peça(codp, nomep) fornece(codf, codp, codproj) 14 Regra 9 - Agregação Para os relacionamentos de agregação mapeia-se as tabelas agregadas (médico, paciente) e o relacionamento (consulta). A entidade ligada à agregação (exames) é então relacionada com a tabela resultante do relacionamento. Médico(cod_médico, nome,...) Paciente (cod_paciente, nome,...) Consulta(cod_médico, cod_paciente, data, hora) Exames(cod_exame, descricão,...) Solicitação_exame(cod_médico, cod_paciente, data, hora, cod_exame, resultado) 15 Estudo de Caso – Mapear o ER Competições 16 Mapear ER
Compartilhar