·
Cursos Gerais ·
Estrutura de Dados
Send your question to AI and receive an answer instantly
Recommended for you
9
Normalizacao de Banco de Dados - Dependencia Funcional e Formas Normais
Estrutura de Dados
UMC
3
Tipos de Dados PostgreSQL - Guia Completo
Estrutura de Dados
UMC
7
Linguagem C - Estrutura Condicional IF e IF-ELSE para Engenharia
Estrutura de Dados
UMC
9
Laços Condicionais em Informática para Engenharia - Guia Completo
Estrutura de Dados
UMC
3
Alter Table SQL - Comandos e Sintaxe para Modificar Tabelas
Estrutura de Dados
UMC
2
DDL-Linguagem-Definicao-Dados-Criacao-Tabelas-Sintaxe
Estrutura de Dados
UMC
4
DPP - Sistema de Informacao Baseado em Banco de Dados - Esquema Conceitual BRModelo
Estrutura de Dados
UMC
61
Análise e Exercícios sobre Árvores de Busca Binária em C
Estrutura de Dados
UNIPINHAL
8
2 Normalizacion de Bd
Estrutura de Dados
UMG
4
Estruturas de Dados - Atividade da Semana 3
Estrutura de Dados
UMG
Preview text
Banco de Dados Profa MSc Viviane Guimarães Ribeiro 1 2 Modelo EntidadeRelacionamento O Modelo EntidadeRelacionamento MER conhecido também como Diagrama de Entidades e Relacionamentos DER permite representar a estrutura do banco de dados de forma conceitual ou seja permite determinar quais dados armazenar e os relacionamentos entre esses dados Do MER podese derivar o modelo lógico relacional dados vistos em tabelas hierárquico dados vistos em uma árvore genealógica de rede dados vistos em grafos ou orientados a objetos dados vistos como objetos Para isso o MER utilizase de símbolos que permitem distinguir os elementos presentes em um banco de dados Na literatura não existe um padrão universal para a criação do modelo O que se vê é o mesmo diagrama sendo apresentado de formas diferentes por vários autores Originalmente o MER foi concebido por Peter Chen em 1976 e desde então vem sendo modificado e atualizado Existem diversas propostas de extensão para o diagrama Nesta disciplina adotaremos como padrão a notação de Chen a simbologia mais empregada em banco de dados mas apresentaremos algumas variações A elaboração do MER representa uma forma de validar a elaboração de um banco de dados antes de iniciar a criação de suas estruturas de armazenamento Um projetista de banco de dados tem a oportunidades de debater com a equipe ou até mesmo com os usuários se o modelo está coerente e principalmente se irá atender às suas necessidades Ressaltase que o MER não define o que será feito com os dados isto é ele define apenas os dados a serem armazenados e o relacionamento entre esses dados sem se preocupar com os procedimentos que serão aplicados aos dados 21 Entidade entidadesdados Para explicar o significado de entidades vamos usar um exemplo comparativo Considere um armário cheio de gavetas para guardar parafusos Cada gaveta serve para guardar parafusos de certa medida e tamanho entre outras características Uma entidade é como o armário usado para armazenar coisas de mesmas características No MER uma entidade se refere a uma representação usada para identificar coisas do mundo real que possuem as mesmas características Quando escrevemos coisas estamos considerando qualquer objeto do mundo real seja ele concreto produto cliente veículo etc ou abstrato viagem empréstimo pagamentos etc que pode ser armazenado e manipulado em um banco de dados Observe a diferença para a Entidade Externa do DFD 22 Atributos Atributos das Entidades são os tipos de informações que o sistema precisa armazenar a respeito de um conjunto de entidades ou seja dados que o sistema precisa armazenar para que ele realize suas tarefas de processamento Por exemplo a Funcionário idfunc nomefunc endfunc CPF etc b Vendas idvend data idfunc valoretc c Clientes idcli nomcli telcli endcli etc Serão representados no modelo da seguinte forma Clientes Departamento Funcionários Banco de Dados Profa MSc Viviane Guimarães Ribeiro 2 ou Idfunc Nomefunc Idcli Endfunc Nomecli Telfunc Telcli CPFfunc Endcli Os valores recebidos pelos atributos identificam cada uma das entidades do conjunto Alguns autores denominam uma dada entidade determinada pelos valores dos atributos de instância de um conjunto de entidades Funcionário João Rua XV 200 47966895 22665298845 221 Atributo Chave Primária É o atributo de um conjunto de entidades que recebe valores diferentes para entidades diferentes ou seja o seu valor identifica uma entidade de maneira única e viceversa Na prática podese escolher entre os atributos da entidade um atributo que seja capaz de identificar unicamente um registro por exemplo na tabela funcionários podese utilizar o atributo CPF como chave primária Também é possível criar um atributo que irá receber números inteiros sequenciais sob o controle do sistema Exemplo Funcionário Nomefunc Endfunc CPF Cliente Idcli Nomcli Telcli Endcli Idfunc Funcionários Clientes Banco de Dados Profa MSc Viviane Guimarães Ribeiro 3 222 Atributo Multivalorado É um atributo que pode receber mais de um valor para uma mesma entidade extensão do modelo de Chen Poderá ser denotado por um Exemplo 23 Relacionamentos Relacionamento se refere a um fato que liga duas coisas no mundo real Ou seja um relacionamento por interligar uma duas ou mais entidades entre si Vamos considerar o relacionamento entre as entidades Cliente e Pedido A figura abaixo pode ser usada para representar o fato de que um Cliente faz Pedido Na verdade assim como o retângulo representa um conjunto de entidades o losango representa um conjunto de relacionamentos já que existem diversas ocorrências das mesmas entidades relacionadas No MER o relacionamento é sempre designado por um verbo no interior do losango No exemplo citado o verbo faz descreve o relacionamento A escolha do verbo deve ajudar a descrever a realidade do relacionamento Como exemplo de outros relacionamentos entre entidades do mundo real podemos citar Item tem Medicamento Pedido possui Item Estoque contém Medicamento Pedido gera Movimento Cliente Nomecli Endcli Livros Idlivros Autores CPF Telefones Assuntos Funcionário Nomefunc Endfunc Departamento Iddpto Nomdpto CPF Cliente faz Pedido Banco de Dados Profa MSc Viviane Guimarães Ribeiro 4 231 Relacionamentos 1 1 O relacionamento é do tipo 1 1 se as regras da empresa forem Um departamento é gerenciado por no máximo um funcionário Um funcionário gerencia no máximo um departamento Existe um relacionamento entre departamento e funcionário que fará parte do modelo se o sistema precisar armazenar essa informação ou seja quais funcionários gerenciam determinados departamentos eou qual departamento é gerenciado por um dado funcionário 232 Relacionamentos 1 N Nesse caso subentendese que Um departamento lota N funcionários Um funcionário é lotado em um departamento Existe relacionamento 1 para N entre departamento e funcionários pois queremos saber quais funcionários trabalham em determinado departamento Departamentos Lotações Funcionários 1 N Departamento s Gerenciamento Funcionários 1 1 Banco de Dados Profa MSc Viviane Guimarães Ribeiro 5 233 Relacionamentos N N Nesse caso subentendese que Um projeto pode ter a participação N funcionários Um funcionário pode participar de N projetos Existe relacionamento N para N para Projetos e Funcionários pois queremos identificar quais funcionários participam de determinados projetos e quais projetos têm determinados funcionários sendo que um funcionário pode participar de mais de um projeto assim como o projeto pode ter mais de um funcionário 234 AutoRelacionamento Representa uma associação entre ocorrências de uma mesma entidade e exige a identificação de papéis Funcionários Supervisão de pessoal 1 N Peças Composições N N Supervisionados é composta compõem Projetos Participação Funcionários N N Supervisor Banco de Dados Profa MSc Viviane Guimarães Ribeiro 6 Neste caso subentendesse que 1 funcionário gerencia N funcionários N funcionários são gerenciados por 1 funcionário 1 peça poderá ser componente de várias outras peças 1 peça poderá ter como componentes várias outras peças 1 pessoahomem se casa com 1 pessoamulher 1 pessoamulher se casa com 1 pessoahomem 235 Relacionamento nário Representa uma associação entre n ocorrências de entidades 236 Agregação conjuntos complexos Dois ou mais conjuntos de entidades relacionadas podem ser agregadas e formar um conjunto complexo de entidades Formando um novo conjunto eles podem se relacionar com outros conjuntos de entidades Pessoa casa 1 homem 1 mulher Banco de Dados Profa MSc Viviane Guimarães Ribeiro 7 Nesse exemplo Materiais e Requisições foram agrupados ou seja agregados formando um conjunto complexo de entidades no qual cada entidade é composta por um par material e requisição que se relacionam de acordo com o item de requisição Esse par representado pelo item de requisição poderá formar um relacionamento com Pedido de compra através do relacionamento itens de compra Uma requisição pode ser uma relação de vários materiais N N As requisições de materiais geram pedidos de compra Mas nem sempre isso acontece pois uma parte do material requisitado poderá estar no almoxarifado Portanto os materiais relacionamse com as requisições independentes dos pedidos de compra Um pedido de compra pode constar de vários materiais e se for necessário para cada um deles que se conheça em qual requisição ela constava o pedido de compra deve então relacionarse com ambos material e requisição itens de requisição A agregação é um recurso de modelagem útil para alguns sistemas onde os relacionamentos dos tipos 11 1N e NN não sejam suficientes para representar adequadamente as informações que o sistema precisa manter 237 Mapeamento do MER para o Modelo Relacional MR O Modelo Relacional MR é um modelo de dados do nível lógico onde conjuntos de dados são representados por tabelas bidimensionais denominadas de relações As tabelas no MR são organizadas em linhas e colunas Cada linha representa um elemento do conjunto de dados Cada item de dados de um elemento é representado pelo valor que se encontra no cruzamento da linha correspondente ao elemento com a coluna correspondente ao item O esquema de uma tabela é constituído pelo Nome da Tabela Nomes de suas colunas Exemplo Funcionario CPF Nome End Telef Salario Materiais Itens de requisição Requisições N N Qtdreq Itens de compra Pedido de compra Qtdcomp N 1 Banco de Dados Profa MSc Viviane Guimarães Ribeiro 8 O projeto do BD tem por objetivo organizar os dados na forma conveniente para serem implementados utilizandose um gerenciador de BD Se os dados forem modelados sob a forma de Entidades e Relacionamento e depois mapeados criteriosamente para tabelas MR as tabelas resultantes organizam os dados de forma conveniente para quase todos os tipos de sistema Dessa maneira cada tabela estará num nível de qualidade elevada sem informações repetidas com facilidade para alterar inserir e retirar dados ou seja no mínimo na 3ª Forma Normal Quando se usa um gerenciador de BD Relacional para implementar as relações o MER deve ser mapeado para o Modelo Relacional MR ou seja para tabelas Quando não se utiliza um BD Relacional por exemplo um sistema de arquivos deve se acrescentar o projeto de arquivos para então realizar a implementação Chave Primária de uma Tabela ou simplesmente Chave Uma coluna ou uma concatenação de colunas é denominada chave primária se para uma linha qualquer da tabela não existir outra linha com o mesmo valor nessa coluna ou na concatenação de colunas O valor da chave primária identifica uma linha da tabela ou seja identifica um elemento de forma única Exemplo Funcionário CPF Nome End Telef Salario Chave primária Chave estrangeira A coluna de uma tabela que contém valores de chave primária de outra tabela é denominada chave estrangeira Como o valor da chave representa uma entidade na coluna chave estrangeira ele indica que existe o relacionamento dessa entidade com uma outra entidade cujos dados estão na mesma linha Exemplo Funcionário CPF Nome End Telef Salario Dependente Iddep Nomedep IdFunc Modelo ER Entidade Relacionamento X Modelo Relacional Tabelas Modelo ER Modelo Relacional Conjunto de entidades Relação ou tabela Entidade Linha Atributo Coluna Atributo chave Chave Atributo multivalorado Relação auxiliar Relacionamento Coluna de chave estrangeira ou tabela com colunas de chaves estrangeiras Chave primária Chave estrangeira Banco de Dados Profa MSc Viviane Guimarães Ribeiro 9 2371 Mapeamento do Relacionamento 11 Se os conjuntos de entidades puderem ser unidos eles serão representados por uma única relação Senão criase uma tabela para cada conjunto de entidades cada conjunto de entidades é mapeado para uma tabela Criase uma coluna de chave estrangeira em uma das tabelas esta coluna conterá valores de chave da outra tabela Em qual tabela devese criar a chave estrangeira dependerá das formas de acesso para ganhar eficiência no processamento ou da forma como o relacionamento acontece e assim economizar espaço da memória Na prática essa otimização só faz sentido para grandes conjuntos de entidades e onde ter uma eficiência de processamento seja importante para a aplicação Se o relacionamento tiver atributos para cada um deles será criado uma coluna adicional na tabela onde a chave estrangeira foi criada Opções de mapeamento Opção 1 Coluna de chave estrangeira na tabela Departamento DepartamentoIdDep NomeDep Local IdFunc DataInicGer FuncionáriosCPF Nome End RG Nesse caso a coluna de chave estrangeira IdFunc representa o relacionamento Gerenciamento e acrescentouse também uma coluna correspondente ao atributo do relacionamento DataInicGer Opção 2 Coluna de chave estrangeira na tabela Funcionario DepartamentoIdDep NomeDep Local FuncionáriosCPF Nome End RG IdDep DataInicGer Nesse caso a coluna de chave estrangeira IdDep representa o relacionamento Gerenciamento OBS a Como o número de funcionários é muito maior do que o número de departamentos a tabela Funcionários da opção 2 terá muitos espaços vazios nas colunas IdDep e DataInicGer b Por outro lado se algum dia um funcionário puder ser gerente de mais de um departamento ou seja o relacionamento se torna 1 N a solução 2 terá problemas mas a solução 1 não Departamento Gerenciamento Funcionários 1 1 IdDep Local CPF RG NomeDep NomeFunc EndFunc DataInicGer Banco de Dados Profa MSc Viviane Guimarães Ribeiro 10 2372 Mapeamento do Relacionamento 1 N Opção 1 Mapeamento 1 N para duas tabelas Cada um dos conjuntos de entidades deverá ser mapeado para uma tabela No exemplo abaixo para as tabelas Funcionários e Dependentes O relacionamento será mapeado para uma coluna de chaves estrangeiras na tabela correspondente ao lado N No exemplo abaixo o relacionamento Dependência foi mapeado para a coluna de chave estrangeira NumFunc na tabela Dependentes para conter valores da chave primária de funcionários Se o relacionamento tiver atributos estes também serão mapeados para colunas da tabela do lado N Funcionários CPF NomeFunc Salário 340784879 Maria 4000 124510212 Antonio 3000 144875400 Pedro 3400 487878789 João 2500 157879877 José 4200 Dependentes IdDep NomeDep DtNascDep Relaçãodep IdFunc 1 Joana 230388 Filha 340784879 2 Rita 020990 Filha 144875400 3 Antonia 310778 Esposa 157879877 Funcionários CPF NomeFunc Salário Dependentes IdDep Nomedep DtNascDep Relaçãodep IdFunc Opção 2 Mapeamento 1 N para três tabelas O relacionamento é mapeado para uma terceira tabela que conterá duas colunas de chaves estrangeiras Uma chave estrangeira correspondente a cada conjunto de entidades No exemplo abaixo a tabela Dependência com as colunas de chaves estrangeiras IdDepend e IdFunc Se o relacionamento tiver atributos eles farão parte dessa terceira tabela Funcionários CPF NomeFunc Salário Funcionários Dependência Dependente s 1 N IdDep NomeDep Relaçãodep DtNascDep CPF Salário NomeFunc Banco de Dados Profa MSc Viviane Guimarães Ribeiro 11 Dependentes IdDep Nomedep DataNascDep Relaçãodep Dependência IdDepend IdFunc IdDep OBS Se um dia o relacionamento 1 N for alterado para N N o segundo caso permite que isso seja feito alterando a rotina que implementa a restrição de integridade 2373 Mapeamento do Relacionamento N N Criase uma tabela correspondente ao relacionamento e com duas colunas de chaves estrangeiras uma para cada conjunto de entidades que se relacionam No exemplo abaixo a tabela Participação com suas colunas CodProj e NumFunc Se houver atributos no relacionamento eles também serão mapeados para colunas da tabela criada No exemplo a coluna PeríodoPartic Opção 1 criase uma chave primária autoincremento ProjetosIdProj NomeProj OrçamProj FuncionáriosCPF NomeFunc EndFunc ParticipaçãoIdParticipacao IdProj IdFunc PeriodoPartic Opção 2 criase uma chave primária composta por dois campos ProjetosIdProj NomeProj OrçamProj FuncionáriosCPF NomeFunc EndFunc ParticipaçãoIdProj IdFunc PeriodoPartic OBS Na solução apresentada na opção 1 deverá ser criada uma restrição de unicidade para garantir que um mesmo relacionamento não seja inserido mais de uma vez Já na solução apresentada na opção 2 este cuidado não é necessário Projetos Participação Funcionários N N IdProj OrçamProj CPF EndFunc NomeProj NomeFunc PeríodoPart Banco de Dados Profa MSc Viviane Guimarães Ribeiro 12 2374 Mapeamento de Agregações Opção 1 Mapeamento da agregação para cinco tabelas Além das 3 tabelas correspondentes aos três conjunto de entidades A B e C criase uma relação correspondente ao relacionamento R1 com duas colunas de chaves estrangeiras correspondentes aos conjuntos de entidades A e B e uma coluna para cada atributo de R1 Criase outra tabela correspondente ao relacionamento R2 com 3 colunas de chaves estrangeiras correspondentes aos conjunto de entidades A B e C e uma coluna para cada atributo de R2 Opção 2 Mapeamento da agregação para quatro tabelas Além das 3 tabelas correspondentes aos três conjuntos de entidades A B e C criarse somente uma tabela para representar os relacionamentos R1 e R2 Essa tabela deverá conter 3 colunas de chaves estrangeiras correspondentes aos conjuntos de entidades A B e C e uma coluna para cada atributo dos relacionamentos R1 e R2 A R1 B N N T1 R2 C T2 1 Clientes CC Contas N N Titular EmissãoCart CartõesMagnet DataEmissão 1 N N Banco de Dados Profa MSc Viviane Guimarães Ribeiro 13 Opção 1 cinco tabelas ClientesIdCli ContasIdCont CartõesMagnetIdCart CC IdCli Id Conta Titular EmissãoCartIdEmissao IdCli IdConta IdCart DataEmissão Opção 2 quatro tabelas ClientesIdCli ContasIdCont CartõesMagnetIdCart CCCIdCCC IdCli Id Conta IdCart Titular DataEmissão OBS Para optar por umas das possíveis soluções devese considerar Tipos ou formas de processamento Frequência do processamento Quantidade de dados tamanho das tabelas 2375 Mapeamento de Atributos Multivalorados Criase uma tabela correspondente a cada atributo multivalorado acrescentando uma coluna de chave estrangeira correspondente à entidade Exemplo LivrosIdlivro Titulo AutoresIdAutores Idlivro NomeAutor AssuntosIdAssuntos Idlivro NomeAssunto 2375 Mapeamento de Atributos Extensos Um atributo extenso de um conjunto de entidades por exemplo um texto poderá tornar lenta a manipulação constante dos dados da tabela que contém esse atributo em uma coluna eou ocupar maiores espaços de memória se ele tiver que ser armazenado diversas vezes Para melhorar essa situação criase uma tabela adicional para o atributo extenso incluindo nela uma coluna chave correspondente ao atributo No exemplo a tabela DescriçãoProduto Adicionase uma coluna de chave estrangeira na tabela correspondente à entidade para conter valores de chave correspondente ao atributo extenso No exemplo a coluna IdDescrProd Exemplo 1 Livros IdLivro Titulo Autores Assuntos Produto IdProd DescricaoProd NomeProd Banco de Dados Profa MSc Viviane Guimarães Ribeiro 14 Considerar que o conjunto de entidades Produto possui um atributo extenso DescriçãoProduto Ao invés de ser mapeado para uma tabela como ProdutoIdProd NomeProd DescricaoProd Criase uma tabela DescriçãoProduto e adicionase uma coluna de chave estrangeira na tabela Produto ProdutoIdProd NomeProd Iddescrprod DescriçãoprodutoIddescrprod Textodescrição 2376 Mapeamento de AutoRelacionamento Além da tabela correspondente ao conjunto de entidades criase uma tabela correspondente ao relacionamento entre entidades desse conjunto Esta tabela terá duas colunas para conter os valores de chaves das entidades que se relacionam Se o relacionamento tiver atributos eles darão origem às colunas da segunda tabela criada Produocodproduto descricao Componenteproduto materia quantidade Produto contém N medicamento N matéria prima
Send your question to AI and receive an answer instantly
Recommended for you
9
Normalizacao de Banco de Dados - Dependencia Funcional e Formas Normais
Estrutura de Dados
UMC
3
Tipos de Dados PostgreSQL - Guia Completo
Estrutura de Dados
UMC
7
Linguagem C - Estrutura Condicional IF e IF-ELSE para Engenharia
Estrutura de Dados
UMC
9
Laços Condicionais em Informática para Engenharia - Guia Completo
Estrutura de Dados
UMC
3
Alter Table SQL - Comandos e Sintaxe para Modificar Tabelas
Estrutura de Dados
UMC
2
DDL-Linguagem-Definicao-Dados-Criacao-Tabelas-Sintaxe
Estrutura de Dados
UMC
4
DPP - Sistema de Informacao Baseado em Banco de Dados - Esquema Conceitual BRModelo
Estrutura de Dados
UMC
61
Análise e Exercícios sobre Árvores de Busca Binária em C
Estrutura de Dados
UNIPINHAL
8
2 Normalizacion de Bd
Estrutura de Dados
UMG
4
Estruturas de Dados - Atividade da Semana 3
Estrutura de Dados
UMG
Preview text
Banco de Dados Profa MSc Viviane Guimarães Ribeiro 1 2 Modelo EntidadeRelacionamento O Modelo EntidadeRelacionamento MER conhecido também como Diagrama de Entidades e Relacionamentos DER permite representar a estrutura do banco de dados de forma conceitual ou seja permite determinar quais dados armazenar e os relacionamentos entre esses dados Do MER podese derivar o modelo lógico relacional dados vistos em tabelas hierárquico dados vistos em uma árvore genealógica de rede dados vistos em grafos ou orientados a objetos dados vistos como objetos Para isso o MER utilizase de símbolos que permitem distinguir os elementos presentes em um banco de dados Na literatura não existe um padrão universal para a criação do modelo O que se vê é o mesmo diagrama sendo apresentado de formas diferentes por vários autores Originalmente o MER foi concebido por Peter Chen em 1976 e desde então vem sendo modificado e atualizado Existem diversas propostas de extensão para o diagrama Nesta disciplina adotaremos como padrão a notação de Chen a simbologia mais empregada em banco de dados mas apresentaremos algumas variações A elaboração do MER representa uma forma de validar a elaboração de um banco de dados antes de iniciar a criação de suas estruturas de armazenamento Um projetista de banco de dados tem a oportunidades de debater com a equipe ou até mesmo com os usuários se o modelo está coerente e principalmente se irá atender às suas necessidades Ressaltase que o MER não define o que será feito com os dados isto é ele define apenas os dados a serem armazenados e o relacionamento entre esses dados sem se preocupar com os procedimentos que serão aplicados aos dados 21 Entidade entidadesdados Para explicar o significado de entidades vamos usar um exemplo comparativo Considere um armário cheio de gavetas para guardar parafusos Cada gaveta serve para guardar parafusos de certa medida e tamanho entre outras características Uma entidade é como o armário usado para armazenar coisas de mesmas características No MER uma entidade se refere a uma representação usada para identificar coisas do mundo real que possuem as mesmas características Quando escrevemos coisas estamos considerando qualquer objeto do mundo real seja ele concreto produto cliente veículo etc ou abstrato viagem empréstimo pagamentos etc que pode ser armazenado e manipulado em um banco de dados Observe a diferença para a Entidade Externa do DFD 22 Atributos Atributos das Entidades são os tipos de informações que o sistema precisa armazenar a respeito de um conjunto de entidades ou seja dados que o sistema precisa armazenar para que ele realize suas tarefas de processamento Por exemplo a Funcionário idfunc nomefunc endfunc CPF etc b Vendas idvend data idfunc valoretc c Clientes idcli nomcli telcli endcli etc Serão representados no modelo da seguinte forma Clientes Departamento Funcionários Banco de Dados Profa MSc Viviane Guimarães Ribeiro 2 ou Idfunc Nomefunc Idcli Endfunc Nomecli Telfunc Telcli CPFfunc Endcli Os valores recebidos pelos atributos identificam cada uma das entidades do conjunto Alguns autores denominam uma dada entidade determinada pelos valores dos atributos de instância de um conjunto de entidades Funcionário João Rua XV 200 47966895 22665298845 221 Atributo Chave Primária É o atributo de um conjunto de entidades que recebe valores diferentes para entidades diferentes ou seja o seu valor identifica uma entidade de maneira única e viceversa Na prática podese escolher entre os atributos da entidade um atributo que seja capaz de identificar unicamente um registro por exemplo na tabela funcionários podese utilizar o atributo CPF como chave primária Também é possível criar um atributo que irá receber números inteiros sequenciais sob o controle do sistema Exemplo Funcionário Nomefunc Endfunc CPF Cliente Idcli Nomcli Telcli Endcli Idfunc Funcionários Clientes Banco de Dados Profa MSc Viviane Guimarães Ribeiro 3 222 Atributo Multivalorado É um atributo que pode receber mais de um valor para uma mesma entidade extensão do modelo de Chen Poderá ser denotado por um Exemplo 23 Relacionamentos Relacionamento se refere a um fato que liga duas coisas no mundo real Ou seja um relacionamento por interligar uma duas ou mais entidades entre si Vamos considerar o relacionamento entre as entidades Cliente e Pedido A figura abaixo pode ser usada para representar o fato de que um Cliente faz Pedido Na verdade assim como o retângulo representa um conjunto de entidades o losango representa um conjunto de relacionamentos já que existem diversas ocorrências das mesmas entidades relacionadas No MER o relacionamento é sempre designado por um verbo no interior do losango No exemplo citado o verbo faz descreve o relacionamento A escolha do verbo deve ajudar a descrever a realidade do relacionamento Como exemplo de outros relacionamentos entre entidades do mundo real podemos citar Item tem Medicamento Pedido possui Item Estoque contém Medicamento Pedido gera Movimento Cliente Nomecli Endcli Livros Idlivros Autores CPF Telefones Assuntos Funcionário Nomefunc Endfunc Departamento Iddpto Nomdpto CPF Cliente faz Pedido Banco de Dados Profa MSc Viviane Guimarães Ribeiro 4 231 Relacionamentos 1 1 O relacionamento é do tipo 1 1 se as regras da empresa forem Um departamento é gerenciado por no máximo um funcionário Um funcionário gerencia no máximo um departamento Existe um relacionamento entre departamento e funcionário que fará parte do modelo se o sistema precisar armazenar essa informação ou seja quais funcionários gerenciam determinados departamentos eou qual departamento é gerenciado por um dado funcionário 232 Relacionamentos 1 N Nesse caso subentendese que Um departamento lota N funcionários Um funcionário é lotado em um departamento Existe relacionamento 1 para N entre departamento e funcionários pois queremos saber quais funcionários trabalham em determinado departamento Departamentos Lotações Funcionários 1 N Departamento s Gerenciamento Funcionários 1 1 Banco de Dados Profa MSc Viviane Guimarães Ribeiro 5 233 Relacionamentos N N Nesse caso subentendese que Um projeto pode ter a participação N funcionários Um funcionário pode participar de N projetos Existe relacionamento N para N para Projetos e Funcionários pois queremos identificar quais funcionários participam de determinados projetos e quais projetos têm determinados funcionários sendo que um funcionário pode participar de mais de um projeto assim como o projeto pode ter mais de um funcionário 234 AutoRelacionamento Representa uma associação entre ocorrências de uma mesma entidade e exige a identificação de papéis Funcionários Supervisão de pessoal 1 N Peças Composições N N Supervisionados é composta compõem Projetos Participação Funcionários N N Supervisor Banco de Dados Profa MSc Viviane Guimarães Ribeiro 6 Neste caso subentendesse que 1 funcionário gerencia N funcionários N funcionários são gerenciados por 1 funcionário 1 peça poderá ser componente de várias outras peças 1 peça poderá ter como componentes várias outras peças 1 pessoahomem se casa com 1 pessoamulher 1 pessoamulher se casa com 1 pessoahomem 235 Relacionamento nário Representa uma associação entre n ocorrências de entidades 236 Agregação conjuntos complexos Dois ou mais conjuntos de entidades relacionadas podem ser agregadas e formar um conjunto complexo de entidades Formando um novo conjunto eles podem se relacionar com outros conjuntos de entidades Pessoa casa 1 homem 1 mulher Banco de Dados Profa MSc Viviane Guimarães Ribeiro 7 Nesse exemplo Materiais e Requisições foram agrupados ou seja agregados formando um conjunto complexo de entidades no qual cada entidade é composta por um par material e requisição que se relacionam de acordo com o item de requisição Esse par representado pelo item de requisição poderá formar um relacionamento com Pedido de compra através do relacionamento itens de compra Uma requisição pode ser uma relação de vários materiais N N As requisições de materiais geram pedidos de compra Mas nem sempre isso acontece pois uma parte do material requisitado poderá estar no almoxarifado Portanto os materiais relacionamse com as requisições independentes dos pedidos de compra Um pedido de compra pode constar de vários materiais e se for necessário para cada um deles que se conheça em qual requisição ela constava o pedido de compra deve então relacionarse com ambos material e requisição itens de requisição A agregação é um recurso de modelagem útil para alguns sistemas onde os relacionamentos dos tipos 11 1N e NN não sejam suficientes para representar adequadamente as informações que o sistema precisa manter 237 Mapeamento do MER para o Modelo Relacional MR O Modelo Relacional MR é um modelo de dados do nível lógico onde conjuntos de dados são representados por tabelas bidimensionais denominadas de relações As tabelas no MR são organizadas em linhas e colunas Cada linha representa um elemento do conjunto de dados Cada item de dados de um elemento é representado pelo valor que se encontra no cruzamento da linha correspondente ao elemento com a coluna correspondente ao item O esquema de uma tabela é constituído pelo Nome da Tabela Nomes de suas colunas Exemplo Funcionario CPF Nome End Telef Salario Materiais Itens de requisição Requisições N N Qtdreq Itens de compra Pedido de compra Qtdcomp N 1 Banco de Dados Profa MSc Viviane Guimarães Ribeiro 8 O projeto do BD tem por objetivo organizar os dados na forma conveniente para serem implementados utilizandose um gerenciador de BD Se os dados forem modelados sob a forma de Entidades e Relacionamento e depois mapeados criteriosamente para tabelas MR as tabelas resultantes organizam os dados de forma conveniente para quase todos os tipos de sistema Dessa maneira cada tabela estará num nível de qualidade elevada sem informações repetidas com facilidade para alterar inserir e retirar dados ou seja no mínimo na 3ª Forma Normal Quando se usa um gerenciador de BD Relacional para implementar as relações o MER deve ser mapeado para o Modelo Relacional MR ou seja para tabelas Quando não se utiliza um BD Relacional por exemplo um sistema de arquivos deve se acrescentar o projeto de arquivos para então realizar a implementação Chave Primária de uma Tabela ou simplesmente Chave Uma coluna ou uma concatenação de colunas é denominada chave primária se para uma linha qualquer da tabela não existir outra linha com o mesmo valor nessa coluna ou na concatenação de colunas O valor da chave primária identifica uma linha da tabela ou seja identifica um elemento de forma única Exemplo Funcionário CPF Nome End Telef Salario Chave primária Chave estrangeira A coluna de uma tabela que contém valores de chave primária de outra tabela é denominada chave estrangeira Como o valor da chave representa uma entidade na coluna chave estrangeira ele indica que existe o relacionamento dessa entidade com uma outra entidade cujos dados estão na mesma linha Exemplo Funcionário CPF Nome End Telef Salario Dependente Iddep Nomedep IdFunc Modelo ER Entidade Relacionamento X Modelo Relacional Tabelas Modelo ER Modelo Relacional Conjunto de entidades Relação ou tabela Entidade Linha Atributo Coluna Atributo chave Chave Atributo multivalorado Relação auxiliar Relacionamento Coluna de chave estrangeira ou tabela com colunas de chaves estrangeiras Chave primária Chave estrangeira Banco de Dados Profa MSc Viviane Guimarães Ribeiro 9 2371 Mapeamento do Relacionamento 11 Se os conjuntos de entidades puderem ser unidos eles serão representados por uma única relação Senão criase uma tabela para cada conjunto de entidades cada conjunto de entidades é mapeado para uma tabela Criase uma coluna de chave estrangeira em uma das tabelas esta coluna conterá valores de chave da outra tabela Em qual tabela devese criar a chave estrangeira dependerá das formas de acesso para ganhar eficiência no processamento ou da forma como o relacionamento acontece e assim economizar espaço da memória Na prática essa otimização só faz sentido para grandes conjuntos de entidades e onde ter uma eficiência de processamento seja importante para a aplicação Se o relacionamento tiver atributos para cada um deles será criado uma coluna adicional na tabela onde a chave estrangeira foi criada Opções de mapeamento Opção 1 Coluna de chave estrangeira na tabela Departamento DepartamentoIdDep NomeDep Local IdFunc DataInicGer FuncionáriosCPF Nome End RG Nesse caso a coluna de chave estrangeira IdFunc representa o relacionamento Gerenciamento e acrescentouse também uma coluna correspondente ao atributo do relacionamento DataInicGer Opção 2 Coluna de chave estrangeira na tabela Funcionario DepartamentoIdDep NomeDep Local FuncionáriosCPF Nome End RG IdDep DataInicGer Nesse caso a coluna de chave estrangeira IdDep representa o relacionamento Gerenciamento OBS a Como o número de funcionários é muito maior do que o número de departamentos a tabela Funcionários da opção 2 terá muitos espaços vazios nas colunas IdDep e DataInicGer b Por outro lado se algum dia um funcionário puder ser gerente de mais de um departamento ou seja o relacionamento se torna 1 N a solução 2 terá problemas mas a solução 1 não Departamento Gerenciamento Funcionários 1 1 IdDep Local CPF RG NomeDep NomeFunc EndFunc DataInicGer Banco de Dados Profa MSc Viviane Guimarães Ribeiro 10 2372 Mapeamento do Relacionamento 1 N Opção 1 Mapeamento 1 N para duas tabelas Cada um dos conjuntos de entidades deverá ser mapeado para uma tabela No exemplo abaixo para as tabelas Funcionários e Dependentes O relacionamento será mapeado para uma coluna de chaves estrangeiras na tabela correspondente ao lado N No exemplo abaixo o relacionamento Dependência foi mapeado para a coluna de chave estrangeira NumFunc na tabela Dependentes para conter valores da chave primária de funcionários Se o relacionamento tiver atributos estes também serão mapeados para colunas da tabela do lado N Funcionários CPF NomeFunc Salário 340784879 Maria 4000 124510212 Antonio 3000 144875400 Pedro 3400 487878789 João 2500 157879877 José 4200 Dependentes IdDep NomeDep DtNascDep Relaçãodep IdFunc 1 Joana 230388 Filha 340784879 2 Rita 020990 Filha 144875400 3 Antonia 310778 Esposa 157879877 Funcionários CPF NomeFunc Salário Dependentes IdDep Nomedep DtNascDep Relaçãodep IdFunc Opção 2 Mapeamento 1 N para três tabelas O relacionamento é mapeado para uma terceira tabela que conterá duas colunas de chaves estrangeiras Uma chave estrangeira correspondente a cada conjunto de entidades No exemplo abaixo a tabela Dependência com as colunas de chaves estrangeiras IdDepend e IdFunc Se o relacionamento tiver atributos eles farão parte dessa terceira tabela Funcionários CPF NomeFunc Salário Funcionários Dependência Dependente s 1 N IdDep NomeDep Relaçãodep DtNascDep CPF Salário NomeFunc Banco de Dados Profa MSc Viviane Guimarães Ribeiro 11 Dependentes IdDep Nomedep DataNascDep Relaçãodep Dependência IdDepend IdFunc IdDep OBS Se um dia o relacionamento 1 N for alterado para N N o segundo caso permite que isso seja feito alterando a rotina que implementa a restrição de integridade 2373 Mapeamento do Relacionamento N N Criase uma tabela correspondente ao relacionamento e com duas colunas de chaves estrangeiras uma para cada conjunto de entidades que se relacionam No exemplo abaixo a tabela Participação com suas colunas CodProj e NumFunc Se houver atributos no relacionamento eles também serão mapeados para colunas da tabela criada No exemplo a coluna PeríodoPartic Opção 1 criase uma chave primária autoincremento ProjetosIdProj NomeProj OrçamProj FuncionáriosCPF NomeFunc EndFunc ParticipaçãoIdParticipacao IdProj IdFunc PeriodoPartic Opção 2 criase uma chave primária composta por dois campos ProjetosIdProj NomeProj OrçamProj FuncionáriosCPF NomeFunc EndFunc ParticipaçãoIdProj IdFunc PeriodoPartic OBS Na solução apresentada na opção 1 deverá ser criada uma restrição de unicidade para garantir que um mesmo relacionamento não seja inserido mais de uma vez Já na solução apresentada na opção 2 este cuidado não é necessário Projetos Participação Funcionários N N IdProj OrçamProj CPF EndFunc NomeProj NomeFunc PeríodoPart Banco de Dados Profa MSc Viviane Guimarães Ribeiro 12 2374 Mapeamento de Agregações Opção 1 Mapeamento da agregação para cinco tabelas Além das 3 tabelas correspondentes aos três conjunto de entidades A B e C criase uma relação correspondente ao relacionamento R1 com duas colunas de chaves estrangeiras correspondentes aos conjuntos de entidades A e B e uma coluna para cada atributo de R1 Criase outra tabela correspondente ao relacionamento R2 com 3 colunas de chaves estrangeiras correspondentes aos conjunto de entidades A B e C e uma coluna para cada atributo de R2 Opção 2 Mapeamento da agregação para quatro tabelas Além das 3 tabelas correspondentes aos três conjuntos de entidades A B e C criarse somente uma tabela para representar os relacionamentos R1 e R2 Essa tabela deverá conter 3 colunas de chaves estrangeiras correspondentes aos conjuntos de entidades A B e C e uma coluna para cada atributo dos relacionamentos R1 e R2 A R1 B N N T1 R2 C T2 1 Clientes CC Contas N N Titular EmissãoCart CartõesMagnet DataEmissão 1 N N Banco de Dados Profa MSc Viviane Guimarães Ribeiro 13 Opção 1 cinco tabelas ClientesIdCli ContasIdCont CartõesMagnetIdCart CC IdCli Id Conta Titular EmissãoCartIdEmissao IdCli IdConta IdCart DataEmissão Opção 2 quatro tabelas ClientesIdCli ContasIdCont CartõesMagnetIdCart CCCIdCCC IdCli Id Conta IdCart Titular DataEmissão OBS Para optar por umas das possíveis soluções devese considerar Tipos ou formas de processamento Frequência do processamento Quantidade de dados tamanho das tabelas 2375 Mapeamento de Atributos Multivalorados Criase uma tabela correspondente a cada atributo multivalorado acrescentando uma coluna de chave estrangeira correspondente à entidade Exemplo LivrosIdlivro Titulo AutoresIdAutores Idlivro NomeAutor AssuntosIdAssuntos Idlivro NomeAssunto 2375 Mapeamento de Atributos Extensos Um atributo extenso de um conjunto de entidades por exemplo um texto poderá tornar lenta a manipulação constante dos dados da tabela que contém esse atributo em uma coluna eou ocupar maiores espaços de memória se ele tiver que ser armazenado diversas vezes Para melhorar essa situação criase uma tabela adicional para o atributo extenso incluindo nela uma coluna chave correspondente ao atributo No exemplo a tabela DescriçãoProduto Adicionase uma coluna de chave estrangeira na tabela correspondente à entidade para conter valores de chave correspondente ao atributo extenso No exemplo a coluna IdDescrProd Exemplo 1 Livros IdLivro Titulo Autores Assuntos Produto IdProd DescricaoProd NomeProd Banco de Dados Profa MSc Viviane Guimarães Ribeiro 14 Considerar que o conjunto de entidades Produto possui um atributo extenso DescriçãoProduto Ao invés de ser mapeado para uma tabela como ProdutoIdProd NomeProd DescricaoProd Criase uma tabela DescriçãoProduto e adicionase uma coluna de chave estrangeira na tabela Produto ProdutoIdProd NomeProd Iddescrprod DescriçãoprodutoIddescrprod Textodescrição 2376 Mapeamento de AutoRelacionamento Além da tabela correspondente ao conjunto de entidades criase uma tabela correspondente ao relacionamento entre entidades desse conjunto Esta tabela terá duas colunas para conter os valores de chaves das entidades que se relacionam Se o relacionamento tiver atributos eles darão origem às colunas da segunda tabela criada Produocodproduto descricao Componenteproduto materia quantidade Produto contém N medicamento N matéria prima