Banco de Dados I – Aula 03A

Entidades Associativas

Há um caso específico para as Entidades Associativas: sempre que, além do simples relacionamento entre as duas entidades fundamentais, houver outras informações específicas da nova entidade criada (como, por exemplo, a quantidade e o valor entre pedido x produto ou bimestre, nota e faltas do aluno x matéria), ela será chamada de entidade Associativa Atributiva.

No catálogo de CD dado como exemplo, podemos identificar facilmente duas entidades: CD e Música.

Atributos

  • Os atributos são informações básicas que qualificam uma entidade e descrevem seus elementos ou características.
  • Quando transpostos ao modelo físico (ao banco de dados), chamamos os atributos de campos ou colunas.
  • Note que todas as entidades devem possuir os atributos necessários ao andamento das operações da empresa, do contrário a entidade não será necessária para o sistema.
  • Esses atributos devem representar o objeto na sua totalidade.
  • Há uma tendência a confundir Entidade e Atributo.
  • Tenha sempre em mente que um Atributo é uma característica, logo não contém um grupo de informações.
  • Por sua vez, uma Entidade sempre é um grupo.
  • No mínimo são necessários dois atributos para criar uma entidade.
  • Uma entidade com um único atributo normalmente será agregada a outra entidade existente ao modelo.

Exemplos de Atributos

Exemplos de atributos as entidades:

Entidade Pessoa: nome, endereço, documento, data de nascimento, telefone, e-mail;

Entidade Nota Fiscal: série, número, data e emissão e cliente;

ScreenHunter_92 Aug. 27 22.54

Um atributo chave é um dos atributos de um CE especialmente projetado para identificar de forma única qualquer entidade do CE.

É importante enfatizar a expressão acima especialmente projetado, porque a unicidade do valor do atributo determinante deve ser garantida para qualquer conteúdo futuro do CE e não apenas para a instancia atual do CE.

Exemplo de representação dos atributos

Funcionário (numf, RG, CPF, nome, end, salário)

ScreenHunter_93 Aug. 27 22.56

 

Tupla

  • É uma estrutura de atributos intimamente relacionados e interdependentes que residem em uma entidade.
  • Quando transposta ao modelo físico, uma tupla equivale a um registro ou linha da tabela.

Chave

  • É um atributos utilizado para indexar dados.
  • Há três tipos de chaves:
    • Primária
    • Estrangeira;
    • Secundária;

Chave primária

  • É o atributo que permite identificar uma única ocorrência de uma tupla em uma Entidade.
  • Dessa forma, seu conteúdo deve ser único, exclusivo e imutável para cada linha dessa Entidade. Todos os demais atributos da entidade devem depender unicamente desse atributo.
  • Caso não exista um atributo que possa assumir a posição de chave primária, é preciso cria-lo. Veja que nem todos campos é uma boa chave.
  • Eventualmente uma chave primária pode conter mais de um atributo.
  • Nesse caso, a chave conterá mais de um atributo, mas será considerada a chave da tabela.
  • A união dos dois atributos é que deve garantir o acesso a uma única linha da entidade.
  • Esse caso de chave primária é chamado de Chave Concatenada ou Chave Composta;

Chave estrangeira

  • É o atributo que estabelece a relação de uma Entidade com a Chave Primária de outra Entidade e permite uma relação entre entidades.
  • Isto ocorre quando uma Entidade dependente herda a chave da Entidade Fundamental exatamente para estabelecer o relacionamento entre elas.

ScreenHunter_94 Aug. 27 22.58

Chave Secundária

  • Esta chave é utilizada como meio de classificação e pesquisas em entidades.
  • Sempre que houver a necessidade de buscar informações semelhantes, em ordem crescente ou decrescente, em função de datas, valores ou status predefinidos, criam-se chaves secundárias.
  • Podem também ser concatenadas a outras chaves secundárias para extrair a informação desejada.

Tipos de Atributos

  • Um atributo pode conter vários subatributos. Nesse caso ele se diz itens de grupo ou composto. Por exemplo:
  •   Atributo: endereço
    •   Subatributos: Local(Rua, Número,   Complemento), Cidade, CEP.
  • A representação gráfica desse atributo composto é:ScreenHunter_95 Aug. 27 23.00
  • Transformação em tabela:
    • endereco(rua, número, complemento, cidade, cep)
  • Se um atributo de uma entidade pode tomar diversos valores então se diz multivalorado. Por exemplo:
  • Atributo:   Telefone
    • Valores:   (11) 4521-8444
    •                   (11) 4588-8754
  • Essa propriedade pode ser indicada colocando-se um * após o nome do atributo multivalorado.
    • Funcionário (numf, nome, telefone*)

 

Para identificar as entidades, tente seguir os passos a seguir

  • 1 – Examine os substantivos. Eles são objetos com significa próprio;
  • 2 – Dê um nome a cada Entidade;
  • 3 – Há informações relevante a respeito da entidade necessária às operações da empresa?
  • 4 – Cada instância da entidade possui um identificador único (chave)?
  • 5 – Escreva uma descrição da suposta Entidade (CD é o produto básico de venda da empresa. Exemplos cd CDs são: Mais do Mesmo e Bate Boca);
  • 6 – Faça um diagrama com, pelo menos, alguns de seus atributos;

 

Relacionamentos

  • Sempre que duas entidades apresentarem interdependência (por exemplo, autor da música ou música do CD), indica-se um relacionamento entre elas.
  • Deve-se perguntar a cada par de entidades se elas se relacionam.
  • Cada entidade 1 {deve ter ou pode ter} relacionamento {uma ou mais ou uma única} entidade2;
  • Assim, podemos dizer que:
    • 1 – Cada CD deve ser gravado por uma única gravadora;
    • 2 – Cada gravadora pode ter gravado um ou mais CDs; 
    • 1 – Cada autor pode ter escrito uma ou mais músicas;
    • 2 – Cada música pode ser escrita por um ou mais autores;
    • 1 – Cada música pode estar gravada em um ou mais CDs.
    • 2 – Cada CD deve conter uma ou mais músicas. 
  • Conforme você pode notar, cada relacionamento contém um nome (normalmente um verbo como ser gravado, conter, ter escrito), a determinação de opcionalidade (deve ou pode) e um grau ou cardinalidade (uma única ou uma ou mais).

Análise dos tipos de Relacionamentos

  • Há três tipos de relacionamentos (também muito conhecido como CARDINALIDADE):
    • – Um para um (1:1);
    • – Um para Muitos (1:N);
    • – ou muitos para muitos (N:N);

Relacionamento 1:1

  • Ocorre sempre que uma entidade tiver uma única ocorrência para cada ocorrência na outra entidade.
  • Sempre que houver esse relacionamento, deve-se perguntar se realmente são duas entidades distintas ou se elas podem ser unidas.
  • Normalmente, ao checarmos a chave de ambas as entidades, chegamos facilmente à conclusão se as entidades devem ou não ser unidas.
  • Da mesma forma, deve-se perguntar se esse relacionamento sempre será um para um ou se existe a possibilidade de, amanhã, vir a ser um para muitos.

Exemplo de Relacionamento 1:1

ScreenHunter_96 Aug. 27 23.05

  • se uma entidade de um CE só pode estar associada a uma única entidade de outro CE e vice-versa, dizemos então que o relacionamento é de cardinalidade 1 para 1 ou 1:1.

ScreenHunter_97 Aug. 27 23.06

 

Relacionamento 1:N (ou N:1)

  • Ocorre sempre que uma entidade se relacionar com uma ou mais tuplas da outra entidade e esta outra se relacionar apenas com uma tupla daquela entidade.
  • Esse relacionamento é mais comum e fácil de ser analisado. Nesse caso, a parte onde o relacionamento é 1 contém os dados básicos da entidade (pois é a chave primária dessa entidade) e o lado muitos fará parte da lista de atributos não chave.

Exemplo de Relacionamento 1:N (ou N:1)

ScreenHunter_98 Aug. 27 23.08

 

ScreenHunter_99 Aug. 27 23.08

Relacionamento N:N (ou N:M)

  • Ocorre sempre que uma entidade se relacionar com várias tuplas de outra entidade e esta, por sua vez, relacionar-se com várias tuplas daquela entidade.
  • Esse relacionamento somente é possível na modelagem lógica de dados, uma vez que não se consegue implanta-lo em banco de dados relacionais.
  • Ele será transformado em dois relacionamentos: um para muitos (1:n) e uma Entidade Associativa Atributiva será identificada, caso haja outras informações que devam ser agregadas a esta nova entidade

Exemplos de Relacionamento N:N (ou N:M)

ScreenHunter_102 Aug. 27 23.13

ScreenHunter_103 Aug. 27 23.13

Relacionamento N:N (ou N:M)

  • A transformação à qual nos referimos fera com que para cada um dos relacionamentos anteriores seja criado um item que terá o relacionamento um para muitos (1:n), com cada uma das outras entidades.
  • As novas entidades criadas serão formadas pela união das chaves primárias das entidades e, eventualmente, por novos atributos necessários.
  • Não esqueça que casos novos atributos sejam identificados na entidade associativa, esta será considerada atributiva.

Exemplos de Relacionamento N:N (ou N:M)

ScreenHunter_104 Aug. 27 23.14

ScreenHunter_105 Aug. 27 23.14

  • Relacionamentos podem ter atributos. Por exemplo, o relacionamento N:N para indicar a associação de Materiais com seus Fornecedores pode indicar para cada par do relacionamento, o preço, o prazo e lote (quantidade) que o fornecedor estabelece para fornecer o material.
  • A Figura abaixo mostra a representação gráfica desse relacionamento.

ScreenHunter_106 Aug. 27 23.16

Conjunto de entidades fracos

  • Há casos em que a existência de um CE está vinculada à existência de outro CE.
  • Um exemplo típico é o registro, para fins de seguro-saúde ou imposto de renda, dos dependentes de um funcionário.
  • Nesse caso o registro só faz sentido para a empresa porque o dependente está ligado ao funcionário.
  • Diz-se, então, que o CE “Dependentes” é um conjunto de entidades fraco.
  • O CE funcionários é as vezes chamado conjunto pai conjunto mestre e dependentes é as vezes chamado de conjunto detalhe.

ScreenHunter_107 Aug. 27 23.17

Auto-relacionamentos

  • Muitas vezes queremos fazer o relacionamento de um CE consigo mesmo. Por exemplo, dado o CE “Peças” queremos saber quais peças são componentes de uma dada peça ou, dada peça quais peças tem a têm como componente.
  • Observe que cada uma das ligações do losango com o CE Peças recebeu um rótulo.
  • O primeiro rótulo significa: “uma peça é um componente” de outra peça, e o segundo rótulo significa “uma peça tem como componente” outra peça.
  • Os rótulos de ligações explicitam o papel que a peça desempenha no relacionamento, Este papel é normalmente evidente nos relacionamentos.
  • Observe também que o relacionamento é de cardinalidade N;N, isto é, uma peça pode ter vários componentes e uma dada peça pode ser componente de várias peças.

ScreenHunter_108 Aug. 27 23.18

Grau de relacionamento

  • Os exemplos vistos até agora são de relacionamento envolvendo dois CE´s. Eles são ditos binários ou de grau 2 e são os mais comuns na prática. O grau de um relacionamento é um número de CE´s envolvidos no relacionamento. A figura abaixo mostra um relacionamento de grau 3, ou triplo, entre professores, alunos e disciplinas.
  • A cardinalidade desse relacionamento, 1 : N : N, pode ser interpretada da seguinte forma:
    • dado um professor e uma determinada disciplina temos diversos alunos;
    • dado um professor e um determinado aluno, temos diversas disciplinas;
    • dado um aluno e uma certa disciplina, temos um único professor; 

ScreenHunter_109 Aug. 27 23.20

  • A figura mostra um relacionamento triplo chamado MRP entre Materiais, Pedidos e Requisições

ScreenHunter_110 Aug. 27 23.21

Agregações

  • Há casos em que relacionamentos de grau superior a 2 não capturam as regras de negócio desejadas.
  • Por exemplo, no relacionamento triplo MRP visto anteriormente em materiais, requisições e pedidos (ordens de compra), uma requisição está relacionada com um ou mais materiais e com um ou mais pedidos (ou com nenhum deles), o que é artificial
  • Esta separação de funções implica na existência de dois relacionamentos distintos; o segundo é chamado de agregação porque o relacionamento de Materiais com Requisição é agregado em um pseudo CE, que por sua vez se relaciona com Pedidos através do relacionamento “Itens de pedidos”

ScreenHunter_111 Aug. 27 23.22

Especificação

  • As técnicas de orientação a objetos tiveram várias influencias sobre o projeto de bases de dados.
  • Uma delas é o conceito de subclasse e herança.
  • Muitas vezes queremos registrar características especiais de certos subconjuntos de um CE.

ScreenHunter_112 Aug. 27 23.23

  • Esses novos CE´s são também chamados de especializações do CE Funcionários. Como o nome “é-um” indica, o relacionamento significa que uma secretária “é uma” funcionária, isto é, possui todos os atributos do CE funcionário.
  • O símbolo “+” indica que a especialização é do tipo “ou exclusivo”, ou seja, um funcionário pode ser especializado em apenas um dentre “Secretárias”, “Técnicos” e “Gerentes”.

Integridade referencial

  • É um mecanismo utilizado para manter a consistência das informações gravadas.
  • Dessa forma, não são permitidas a entrada de valores duplicados nem a existência de uma referência a uma chave inválida em uma entidade.
  • É também necessário que cada valor de chave estrangeira possua uma ocorrência na outra entidade à qual faz referência.
  • Se isso não ocorrer, fica claro que estaremos perdendo uma informação importante para o sistema.
  • A maior parte dos bancos de dados relacionais estabelece esse tipo de relacionamento e impede que durante uma inclusão, exclusão ou alteração uma chave estrangeira de uma entidade não tenha correspondente na chave primária da outra entidade.
  • No caso de uma alteração ou exclusão na chave primária da entidade, deve-se verificar se há registros dependentes (chave estrangeira) nas demais tabelas.
  • Se houver, deve-se excluir todos os registros dependentes ou altera-los, dependendo do caso

 

Video

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

learningdatabase.com.br

Tecnologias em Banco de Dados Relacionais, Modelagem de dados dimencionais, tecnologias SQL Servere e Oracle

Aprendendo Programação

Algorítmos, C, C++,Pascal, Python, R

WikiDBA

by Virendra Yaduvanshi - Microsoft SQL Server Database Architect | Consultant | Blogger | Specialist | DBA | Speaker

Blog - Fabiano Neves Amorim

SELECT * FROM [Coisas Da Minha Cabeça] WHERE dbo.fn_TempoParaPost() < dbo.fn_TempoLivre()

Tércio Costa, Oracle Developer, OCE SQL, ACE Associate

Guia de estudos para certificação ORACLE SQL(1Z0-047, 1Z0-051, 1Z0-061 e 1Z0-071) e PL/SQL(1Z0-144, 1Z0-146 e 1Z0-148)

Strate SQL

Data Adventures with an Architect

%d blogueiros gostam disto: