UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 5: Mapeamento para Relacional Objetivos: • • Detalhar os passos para a realização do mapeamento do ER e EER para relacional; Realizar prática de mapeamento de campos multivalorados, relacionamentos 1xn e nxn; Ferramentas necessárias Navegador, Dia, Workbench, Bibliografias de livros da faculdade. Introdução Este roteiro tem como objetivo detalhar e executar os passos para que seja possível implementar um banco de dados modelado em formato conceitual para o formato a ser utilizado realmente em implementações físicas. Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Muitas ferramentas utilizam diagramas ER ou variações para desenvolver um esquema graficamente, e depois convertem de maneira automática em um esquema de banco de dados relacional na DDL de um SGBD relacional específico. Existem algumas etapas a serem seguidas para a realização do mapeamento do esquema conceitual para o Relacional que serão descritos utilizando o esquema relacional empresa descrito a seguir: Figura 12 - Modelagem conceitual de empresa P á g | 31 UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas ETAPA 1: mapeamento de tipos de entidade regular: para cada tipo de entidade forte (ou regular) no esquema ER, deve ser criada uma tabela que inclua todos os atributos simples. Nos caso de um atributo ser composto, devem ser incluídos apenas os atributos simples. Deve ser escolhido um dos atributos-chave como chave primária, e se a chave escolhida for composta todo o conjunto de atributos simples que a compõem formarão a chave primária da tabela gerada. o No exemplo serão criadas as tabelas FUNCIONÁRIO, DEPARTAMENTO E PROJETO. Atributos de chave estrangeira ainda não serão incluídos, pois serão acrescentados em etapas seguintes. Estes incluem os atributos Cpf_supervisor, Dnr de FUNCIONARIO, Cpf_gerentee Data_inicio_gerente de DEPARTAMENTO e Dnum de PROJETO. o Neste exemplo foram escolhidos Cpf, Dnumero e Projnumero como chaves primárias para as relações FUNCIONARIO, DEPARTAMENTO e PROJETO, respectivamente. O resultado da aplicação desta etapa é demonstrado nas tabelas a seguir: FUNCIONÁRIO Pnome Minicial Unome Cpf Datanasc Endereco Sexo Salario DEPARTAMENTO Dnome Dnumero Projnome Projnumero Projlocal Figura 13 - Mapeamento das tabelas funcionario, departamento e projeto ETAPA 2: Mapeamento dos tipos de entidade fraca: semelhante ao mapeamento de entidades fortes, para cada tipo de entidade fraca no esquema ER é criada uma tabela e são incluídos todos os atributos simples (ou componentes simples dos atributos compostos). Além disso, devem ser incluídos como atributos de chave estrangeira os atributos de chave primária das relações que correspondem aos tipos de entidade proprietária. Isto consegue mapear o tipo de relacionamento de identificação representado na modelagem. o A chave primária da tabela é a combinação das chaves primárias dos proprietários e a chave parcial do tipo de entidade fraca, se houver. Neste exemplo foi criada a tabela DEPENDENTE, para corresponder ao tipo de entidade fraca DEPENDENTE. Foi incluída a chave primária Cpf da relação FUNCIONÁRIO – que corresponde ao tipo de entidade proprietária – como um atributo de chave estrangeira de DEPENDENTE, renomeado para Fcpf. A chave primária da relação DEPENDENTE é a combinação {Fcpf, Nome_dependente}, pois Nome_dependente é a chave parcial de DEPENDENTE. DEPENDENTE Fcpf Nome_depen dente Sexo Datansc Parentesco Figura 14 - Mapeamento de entidades fracas ETAPA 3: mapeamento dos tipos de relacionamento binários 1:1: Para cada tipo de relacionamento binário 1:1 no esquema ER, identifique as relações que correspondem aos tipos de entidade participantes. Para realizar o mapeamento existem 3 técnicas possíveis: o Técnica de chave estrangeira: onde é selecionada uma das relações e incluída como chave estrangeira em uma entidade a chave primária de outra. P á g | 32 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. PROJETO UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas É melhor escolher um tipo de entidade com participação total na relação. No exemplo foi mapeado o tipo de relacionamento 1:1 GERENCIA ao escolher o tipo de entidade de participação DEPARTAMENTO pois sua participação no tipo de relacionamento GERENCIA é total (cada departamento tem um gerente). A chave primária de FUNCIONARIO foi incluída como chave estrangeira em DEPARTAMENTO e renomeada como Cpf_gerente Foram incluídos os atributos Data_inicio do tipo de relacionamento GERENCIA na relação DEPARTAMENTO e foi renomeado como Data_inicio_gerente. o Técnica de relacionamento mesclado: Outra alternativa é mesclar os dois tipos de entidade e o relacionamento em uma única relação, e geralmente acontece quando ambas as participações são totais. o Técnica de relação de referência cruzada ou relacionamento: onde é criada uma terceira relação para a finalidade de criar uma referência cruzada das chaves primárias das duas relações representando os tipos de entidade. • ETAPA 4: mapeamento dos tipos de relacionamentos 1:N: para cada tipo de relacionamento binário 1:N deve ser identificada a relação que representa o tipo de entidade participante no lado N do tipo de relacionamento. Deve ser incluído como chave estrangeira a chave primária da relação que representa o outro tipo de entidade participante da relação. o No exemplo foram mapeados os tipos de relacionamento 1:N – TRABALHA_PARA, CONTROLA e SUPERVISAO. o TRABALHA_PARA: foi incluída a chave primária Dnumero da relação DEPARTAMENTO como chave estrangeira na relação FUNCIONARIO com o nome de Dnr. o SUPERVISAO: foi incluída a chave primária da relação FUNCIONARIO como chave estrangeira na própria relação FUNCIONARIO com o nome de Cpf_supervisor, pelo fato do relacionamento ser recursivo. o CONTROLA: é mapeado para o atributo de chave estrangeira Dnum de PROJETO, que referencia a chave primária Dnumero da relação DEPARTAMENTO. ETAPA 5: mapeamento de tipos de relacionamento binário N:N: Para cada relacionamento M:N deve ser criada uma tabela para representar a relação. Devem ser incluídos como atributos de chave estrangeira as chaves primárias das relações que representam os tipos de entidades participantes e a sua combinação formará a chave primária da tabela gerada. o No exemplo foram mapeados os tipos de relacionamentos TRABALHA_EM criando a tabela (relação) TRABALHA_EM. Foram incluídas as chaves primárias das relações PROJETO e FUNCIONARIO como chaves estrangeiras em TRABALHA_EM e foram renomeadas como Pnr e Fcpf, respectivamente. Também foi incluído um atributo Horas para representar o atributo Horas do tipo de relacionamento. A chave primária de TRABALHA_EM será a combinação dos atributos de chave estrangeira {Fcpf, Pnr}. TRABALHA_EM Fcpf Pnr Horas Figura 15 - Mapeamento da relação NxN trabalha_em • ETAPA 6: mapeamento de atributos multivalorados: Para cada atributo multivalorado A, deve ser criada uma relação R incluindo um atributo correspondente a A, mais o atributo de chave primária Ch – como uma chave estrangeira em R – da relação que representa o tipo de entidade ou tipo de relacionamento que tem A como atributo multivalorado. A chave primária de R é a combinação de A e Ch. Se o atributo multivalorado for composto, serão incluídos os seus atributos simples. o Para o exemplo foi criada uma relação LOCALIZACAO_DEP. O atributo Dlocalizacao representa o atributo multivalorado LOCALIZACOES de DEPARTAMENTO, enquanto Dnumero – como chave estrangeira – representa a chave primária da relação DEPARTAMENTO. A chave primária de LOCALICACAO_DEP é a combinação de {Dnumero,Dlocalizacao} P á g | 33 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. • A desvantagem deste modo é que sempre existirá uma relação extra e exigir uma operação de junção extra ao combinar tuplas relacionadas das tabelas. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas LOCALIZACAP_DEP Dnumero Dlocal Tarefas Prática de Mapeamento de modelagem Conceitual para Relacional A Figura 16 ilustra um diagrama ER para um banco de dados que pode ser usado para registrar navios de transporte e seus locais para autoridades marítimas. Mapeie esse esquema para um esquema relacional especificando as chaves primárias e estrangeiras, as tabelas que serão geradas juntamente com os seus atributos do mapeamento. Para o exercício, especifique as seguintes informações da modelagem: a. Que tabelas deverão ser geradas; b. Chaves primárias e estrangeiras; c. Quais os campos que estão contidos em quais tabelas. Nos campos, observar as seguintes situações: i. Campos multivalorados; ii. Campos derivados; iii. Relacionamento 1x1; Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 1) iv. Relacionamentos 1xN; v. Relacionamentos NxN; P á g | 34 UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes Figura 16 - Modelagem conceitual de portos e de rotas de navios d. Gerar o modelo físico do banco no WorkBench com o nome bdNavios e executar o forward engineer . e. Gerar os insert’s para efetuar as seguintes listagens: i. Listar o histórico de portos percorrido por um navio; ii. Listar todos os navios de um tipo; iii. Listar os nomes de todos os navios, o nome do porto de origem e o pais de origem; Referências • Capítulo 7: Elmasri, Navathe – Sistemas de banco de dados 6ª Edição; • “Introdução a Banco de dados”, Osvaldo Kataro Tokai, disponível em http://pt.scribd.com/doc/50780287/BD; • Material disponibilizado em aula; P á g | 35 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 4º sem– Análise e Desenvolvimento de Sistemas