Base de dados
Docente: Lirio Ramalheira
Design de banco de dados usando o modelo ER (Normalização)
Modelo ER
E-R diagram. Mapeando Cardinalidades
Modelo ER e E-R diagram.
Participação Total ou Parcial
Participação total (indicada por linha dupla): cada entidade do conjunto de
entidades participa de pelo menos um relacionamento no conjunto de
relacionamentos.
Exemplo: a participação do aluno na relação de orientação é total
todo aluno deve ter um instrutor associado
Modelo ER e E-R diagram.
Participação Total ou Parcial
Participação total (indicada por linha dupla): cada entidade do conjunto de
entidades participa de pelo menos um relacionamento no conjunto de
relacionamentos.
Exemplo: a participação do aluno na relação de orientação é total
todo aluno deve ter um instrutor associado
Participação parcial: algumas entidades não podem participar de nenhum
relacionamento do conjunto de relacionamentos
Exemplo: a participação do instrutor no orientador é parcial
Modelo ER e E-R diagram.
Participação Total ou Parcial
Restrições mais complexas sobre o número de vezes que cada entidade
participa de relacionamentos em um conjunto de relacionamentos.
Uma linha pode ter uma cardinalidade mínima e máxima associada
Modelo ER e E-R diagram.
Restrições mais complexas sobre o número de vezes que cada entidade
participa de relacionamentos em um conjunto de relacionamentos.
Uma linha pode ter uma cardinalidade mínima e máxima associada
Modelo ER e E-R diagram.
Restrições mais complexas sobre o número de vezes que cada entidade
participa de relacionamentos em um conjunto de relacionamentos.
Uma linha pode ter uma cardinalidade mínima e máxima associada
Uma linha pode ter uma cardinalidade mínima e máxima associada, mostrada
na forma l..h, onde l é o mínimo e h a cardinalidade máxima.
Modelo ER e E-R diagram.
Restrições mais complexas sobre o número de vezes que cada entidade
participa de relacionamentos em um conjunto de relacionamentos.
Uma linha pode ter uma cardinalidade mínima e máxima associada
Uma linha pode ter uma cardinalidade mínima e máxima associada, mostrada
na forma l..h, onde l é o mínimo e h a cardinalidade máxima.
• Um valor mínimo de 1 indica participação total.
• Um valor máximo de 1 indica que a entidade participa no máximo
um relacionamento
• Um valor máximo de * indica que não há limite.
Modelo ER e E-R diagram.
Restrições mais complexas sobre o número de vezes que cada entidade
participa de relacionamentos em um conjunto de relacionamentos.
O instrutor pode aconselhar 0 ou mais alunos. O aluno deverá ter 1 orientador;
não pode ter vários conselheiros
Chave Primaria
• Seja R um conjunto relacionamento envolvendo os conjuntos de entidades E1,
E2, .. En
• A chave primária de R consiste na união das chaves primárias de conjuntos
de entidades E1, E2, ..En
Chave Primaria
• Seja R um conjunto relacionamento envolvendo os conjuntos de entidades E1,
E2, .. En
• A chave primária de R consiste na união das chaves primárias de conjuntos
de entidades E1, E2, ..En
• Se o conjunto de relacionamentos R possui atributos a1, a2, .., atributos
associado a ele, então a chave primária de R também inclui os atributos a1, a2,
.., am
Exemplo: conjunto de relacionamento “Orientador”.
• A chave primária consiste em instrutor.ID e aluno.ID
Chave Primaria
• Seja R um conjunto relacionamento envolvendo os conjuntos de entidades E1,
E2, .. En
• A chave primária de R consiste na união das chaves primárias de conjuntos
de entidades E1, E2, ..En
• Se o conjunto de relacionamentos R possui atributos a1, a2, .., atributos
associado a ele, então a chave primária de R também inclui os atributos a1, a2,
.., am
Exemplo: conjunto de relacionamento “Orientador”.
• A chave primária consiste em instrutor.ID e aluno.ID
A escolha da chave primária para um conjunto de relacionamentos depende
da cardinalidade de mapeamento do conjunto de relacionamentos.
Conjuntos de entidades fracas
É possível que a chave de um conjunto de entidades seja composta de atributos,
alguns ou todos pertencentes a outro conjunto de entidades. Tal conjunto de
entidades é chamado de conjunto de entidades fraco.
Conjuntos de entidades fracas
É possível que a chave de um conjunto de entidades seja composta de atributos,
alguns ou todos pertencentes a outro conjunto de entidades. Tal conjunto de
entidades é chamado de conjunto de entidades fraco.
Vários exemplos ilustrarão o problema.
Exemplo: Um estúdio de cinema pode ter diversas equipes de filmagem. As
equipes podem ser designadas por um determinado estúdio como equipe 1,
equipe 2 e assim por diante. No entanto, outros estúdios podem usar as mesmas
designações para equipes, portanto o número do atributo não é uma chave para
equipes. Em vez disso, para nomear uma equipe de forma exclusiva, precisamos
fornecer o nome do estúdio ao qual ela pertence e o número da equipe.
Conjuntos de entidades fracas
Considere uma entidade de seção, que é identificada exclusivamente por
course_id, semestre, ano e sec_id.
Claramente, as entidades da seção estão relacionadas às entidades do curso.
Suponha que criemos um conjunto de relacionamentos sec_course entre os
conjuntos de entidades seção e curso.
Conjuntos de entidades fracas
Considere uma entidade de seção, que é identificada exclusivamente por
course_id, semestre, ano e sec_id.
Claramente, as entidades da seção estão relacionadas às entidades do curso.
Suponha que criemos um conjunto de relacionamentos sec_course entre os
conjuntos de entidades seção e curso.
Observe que a informação em sec_course é redundante, pois a seção já possui
um atributo course_id, que identifica o curso ao qual a seção está relacionada.
Uma opção para lidar com esta redundância é livrar-se do relacionamento
sec_course; entretanto, ao fazer isso, a relação entre seção e curso fica
implícita em um atributo, o que não é desejável.
Conjuntos de entidades fracas
Uma forma alternativa de lidar com essa redundância é não armazenar o
atributo course_id na entidade seção e armazenar apenas os demais atributos
section_id, ano e semestre.
• No entanto, a seção do conjunto de entidades não possui atributos suficientes
para identificar exclusivamente uma entidade de seção específica
Conjuntos de entidades fracas
Uma forma alternativa de lidar com essa redundância é não armazenar o atributo
course_id na entidade seção e armazenar apenas os demais atributos section_id,
ano e semestre.
• No entanto, a seção do conjunto de entidades não possui atributos suficientes
para identificar exclusivamente uma entidade de seção específica
Para lidar com este problema, tratamos o relacionamento sec_course como um
relacionamento especial que fornece informações extras, neste caso, o course_id,
necessário para identificar entidades de seção de forma única.
Um conjunto de entidades fracas é aquele cuja existência depende de outra
entidade, chamada de entidade identificadora
Em vez de associar uma chave primária a uma entidade fraca, usamos a
entidade identificadora, juntamente com atributos extras chamados discriminador
para identificar exclusivamente uma entidade fraca.
Conjuntos de entidades fracas
Um conjunto de entidades que não seja um conjunto de entidades fraco é
denominado conjunto de entidades forte.
Conjuntos de entidades fracas
Um conjunto de entidades que não seja um conjunto de entidades fraco é
denominado conjunto de entidades forte.
Toda entidade fraca deve estar associada a uma entidade identificadora; isto é,
diz-se que o conjunto de entidades fraco tem existência dependente do conjunto
de entidades identificador.
Diz-se que o conjunto de entidades identificadoras possui o conjunto de
entidades fracas que identifica.
O relacionamento que associa o conjunto de entidades fraco ao conjunto de
entidades identificador é chamado de relacionamento identificador.
Conjuntos de entidades fracas
Nos diagramas ER, um conjunto de entidades fraco é representado por um
retângulo duplo.
Sublinhamos o discriminador de um conjunto de entidades fracas com uma linha
tracejada.
O conjunto de relacionamentos que conecta o conjunto de entidades fracas ao
conjunto de entidades fortes identificadoras é representado por um losango
duplo.
Chave primária para seção – (course_id, sec_id, semestre, ano)
Atributos Redundantes
Suponha que temos conjuntos de entidades:
• estudante, com atributos: ID, nome, tot_cred, dept_name
• departamento, com atributos: nome_do_depto, edifício, orçamento
Atributos Redundantes
Suponha que temos conjuntos de entidades:
• Estudante, com atributos: ID, nome, tot_cred, dept_name
• departamento, com atributos: nome_do_depto, edifício, orçamento
Modelamos o fato de que cada aluno tem um departamento associado usando
um conjunto de relacionamentos stud_dept
O atributo dept_name em student replica informações presentes no
relacionamento e, portanto, é redundante
• e precisa ser removido.
Dos Diagramas E/R aos Modelos Relacionais
Para uma primeira aproximação, converter um design E/R em um esquema de
banco de dados relacional é simples:
• Transformar cada conjunto de entidades em uma relação com o mesmo
conjunto de atributos.
• Substitua um relacionamento por um relacionamento cujos atributos sejam as
chaves para os conjuntos de entidades conectados.
Dos Diagramas E/R aos Modelos Relacionais
Para uma primeira aproximação, converter um design E/R em um esquema de
banco de dados relacional é simples:
• Transformar cada conjunto de entidades em uma relação com o mesmo
conjunto de atributos.
• Substitua um relacionamento por um relacionamento cujos atributos sejam as
chaves para os conjuntos de entidades conectados.
Embora estas duas regras cubram grande parte do terreno, há também várias
situações especiais com as quais precisamos de lidar, incluindo:
1. Conjuntos de entidades fracos não podem ser traduzidos diretamente em
relações.
2. Relacionamentos e subclasses “Isa” requerem tratamento cuidadoso.
Dos Diagramas E/R aos Modelos Relacionais
Para cada conjunto de entidades e conjunto de relacionamentos existe um
esquema exclusivo ao qual é atribuído o nome do conjunto de entidades ou
conjunto de relacionamentos correspondente.
Representando Conjuntos de Entidades
Um conjunto de entidades forte se reduz a um esquema com os mesmos
atributos aluno(ID, nome, tot_cred)
Um conjunto de entidades fracas torna-se uma tabela que inclui uma coluna para
a chave primária do conjunto de entidades fortes identificador
seção (curso_id, sec_id, sem, ano)
Dos Diagramas E/R aos Modelos Relacionais
Um conjunto de entidades fracas torna-se uma tabela que inclui uma coluna para
a chave primária do conjunto de entidades fortes identificador
seção (curso_id, sec_id, sem, ano)
Dos Diagramas E/R aos Modelos Relacionais
Os atributos compostos são nivelados criando um atributo separado para cada
atributo do componente.
• Exemplo: determinado instrutor de conjunto de entidades com atributo
composto nome com atributos de componente first_name e last_name o
esquema correspondente ao conjunto de entidades possui dois atributos
name_first_name e name_last_name
Dos Diagramas E/R aos Modelos Relacionais
Atributos com vários valores
Nota: Os atributos derivados não são explicitamente representados no modelo de
dados relacional.
Um atributo multivalorado M de uma entidade E é representado por um esquema
separado EM
O esquema EM possui atributos correspondentes à chave primária de E e um
atributo correspondente ao atributo multivalorado M
Dos Diagramas E/R aos Modelos Relacionais
Atributos com vários valores
Exemplo: O atributo multivalorado número_telefone do instrutor é representado
por um esquema:
inst_phone= (ID, número_telefone)
Cada valor do atributo de valores múltiplos é mapeado para uma tupla separada
da relação no esquema EM
• Por exemplo, uma entidade instrutora com chave primária 22222 e números de
telefone 456-7890 e 123-4567 é mapeada para duas tuplas:
(22222, 456-7890) e (22222, 123-4567)
Dos Diagramas E/R aos Modelos Relacionais
Representando Conjuntos de Relacionamentos
Os relacionamentos no modelo E/R também são representados por relações.
A relação para um determinado relacionamento R possui os seguintes atributos:
1. Para cada conjunto de entidades envolvido no relacionamento R, tomamos seu
atributo ou atributos chave como parte do esquema da relação para R.
2. Se o relacionamento possui atributos, então estes também são atributos da
relação R.
Dos Diagramas E/R aos Modelos Relacionais
Representando Conjuntos de Relacionamentos
Os relacionamentos no modelo E/R também são representados por relações.
A relação para um determinado relacionamento R possui os seguintes atributos:
Se um conjunto de entidades estiver envolvido diversas vezes em um
relacionamento, em papéis diferentes, então seus atributos-chave aparecerão
tantas vezes quantas forem os papéis.
Dos Diagramas E/R aos Modelos Relacionais
Representando Conjuntos de Relacionamentos
1. A chave starName para a estrela.
2. A chave que consiste nos atributos título e ano do filme.
3. A chave studioOf Star indicando o nome do primeiro estúdio; lembre-se de que
assumimos que o nome do estúdio é uma chave para o conjunto de entidades
Studios.
4. A chave ProduceStudio indicando o nome do estúdio que produzirá o filme com
aquela estrela.
Dos Diagramas E/R aos Modelos Relacionais
Representando Conjuntos de Relacionamentos
Um conjunto de relacionamentos muitos para muitos é representado como um
esquema com atributos para as chaves primárias dos dois conjuntos de
entidades participantes e quaisquer atributos descritivos do conjunto de
relacionamentos.
Exemplo: esquema para Instrutor de conjunto de relacionamentos
Dos Diagramas E/R aos Modelos Relacionais
Representando Conjuntos de Relacionamentos
Redundância
Exemplo: em vez de criar um esquema para o conjunto de relacionamentos
inst_dept, adicione um atributo dept_name ao esquema proveniente do conjunto
de entidades instrutor
Os esquemas instrutor e departamento correspondem aos conjuntos de entidades
A e B, respectivamente. Assim, o esquema inst dept pode ser combinado com o
esquema do instrutor.
O esquema do instrutor resultante consiste nos atributos {ID, nome, nome do
departamento, salário}
Dos Diagramas E/R aos Modelos Relacionais
Representando Conjuntos de Relacionamentos
Redundância
Para conjuntos de relacionamentos um-para-um, qualquer um dos lados pode ser
escolhido para atuar como o lado “muitos”.
• Ou seja, um atributo extra pode ser adicionado a qualquer uma das tabelas
correspondentes aos dois conjuntos de entidades
Se a participação for parcial no lado “muitos”, a substituição de um esquema
por um atributo extra no esquema correspondente ao lado “muitos” pode resultar
em valores nulos
Dos Diagramas E/R aos Modelos Relacionais
Redundância
O esquema correspondente a um conjunto de relacionamentos que liga um
conjunto de entidades fracas ao seu conjunto de entidades fortes identificador é
redundante.
Exemplo: O esquema da seção já contém os atributos que apareceriam no
esquema sec_course
Dos Diagramas E/R aos Modelos Relacionais
Recursos ER estendidos (Especialização)
Designamos subagrupamentos dentro de um conjunto de entidades que são
distintos de outras entidades do conjunto.
Esses subagrupamentos tornam-se conjuntos de entidades de nível inferior que
possuem atributos.
Representado por um componente triangular denominado “IS A” (por exemplo, o
instrutor “é uma” pessoa).
Herança de atributos – um conjunto de entidades de nível inferior herda todos os
atributos e participação de relacionamento do conjunto de entidades de nível
superior ao qual está vinculado.
Dos Diagramas E/R aos Modelos Relacionais
Recursos ER estendidos (Especialização)
Sobreposição – funcionário e aluno
Disjunto – instrutor e secretário
vários conjuntos permitidos é
chamado de especialização sobreposta.
No máximo um permitido é
chamado de especialização disjunta
Dos Diagramas E/R aos Modelos Relacionais
Recursos ER estendidos (Especialização)
Método 1:
• Forme um esquema para a entidade de nível superior
• Forme um esquema para cada conjunto de entidades de nível inferior, inclua a
chave primária de conjunto de entidades de nível superior e atributos locais.
Desvantagem: obter informações sobre um funcionário exige utilizar duas
relações.
Método 2:
• Forme um esquema para cada conjunto de entidades com todos os atributos
locais e herdados
• Desvantagem: nome, rua e cidade podem ser armazenados de forma redundante
para pessoas que são estudantes e funcionários
Dos Diagramas E/R aos Modelos Relacionais
Recursos ER estendidos (Especialização)
Método 1:
Método 2:
Dos Diagramas E/R aos Modelos Relacionais
Recursos ER estendidos (Generalização)
Um processo de design bottom-up – combina vários conjuntos de entidades que
compartilham os mesmos recursos em um conjunto de entidades de nível
superior.
Especialização e generalização são simples inversões uma da outra; eles são
representados em um diagrama ER da mesma maneira.
Os termos especialização e generalização são usados indistintamente.
Dos Diagramas E/R aos Modelos Relacionais
Recursos ER estendidos (Agregação)
Considere o relacionamento ternário proj_guide
Suponha que queiramos registrar as avaliações de um aluno por um guia em um
projeto
Para representar a agregação:
• Chave primária do relacionamento agregado,
• A chave primária do conjunto de entidades
associado
• Quaisquer atributos descritivos
• O esquema eval_for é:
eval_for (s_ID, project_id, i_ID, assessment_id)
• O esquema proj_guide é redundante.
Referências:
Livro Database Systems_ The Complete Book -- Hector Garcia-Molina, Jeffrey D.
Ullman, Jennifer Widom -- 2nd Edition, 2008 -- Prentice Hall
Livro Silberschatz A., Korth H.F., Sudarshan S. - Database System Concepts, 7th edition
– 2019
Link: https://db-book.com/slides-dir/index.html (Slide 6 Relation Model)
Dica do dia.
https://www.ifixit.com/
Guias de reparo para tudo, escritos por todos.

ISAF_bd_06_ER.pdf434756585768673577455765

  • 2.
    Base de dados Docente:Lirio Ramalheira Design de banco de dados usando o modelo ER (Normalização)
  • 3.
    Modelo ER E-R diagram.Mapeando Cardinalidades
  • 5.
    Modelo ER eE-R diagram. Participação Total ou Parcial Participação total (indicada por linha dupla): cada entidade do conjunto de entidades participa de pelo menos um relacionamento no conjunto de relacionamentos. Exemplo: a participação do aluno na relação de orientação é total todo aluno deve ter um instrutor associado
  • 6.
    Modelo ER eE-R diagram. Participação Total ou Parcial Participação total (indicada por linha dupla): cada entidade do conjunto de entidades participa de pelo menos um relacionamento no conjunto de relacionamentos. Exemplo: a participação do aluno na relação de orientação é total todo aluno deve ter um instrutor associado Participação parcial: algumas entidades não podem participar de nenhum relacionamento do conjunto de relacionamentos Exemplo: a participação do instrutor no orientador é parcial
  • 7.
    Modelo ER eE-R diagram. Participação Total ou Parcial Restrições mais complexas sobre o número de vezes que cada entidade participa de relacionamentos em um conjunto de relacionamentos. Uma linha pode ter uma cardinalidade mínima e máxima associada
  • 8.
    Modelo ER eE-R diagram. Restrições mais complexas sobre o número de vezes que cada entidade participa de relacionamentos em um conjunto de relacionamentos. Uma linha pode ter uma cardinalidade mínima e máxima associada
  • 9.
    Modelo ER eE-R diagram. Restrições mais complexas sobre o número de vezes que cada entidade participa de relacionamentos em um conjunto de relacionamentos. Uma linha pode ter uma cardinalidade mínima e máxima associada Uma linha pode ter uma cardinalidade mínima e máxima associada, mostrada na forma l..h, onde l é o mínimo e h a cardinalidade máxima.
  • 10.
    Modelo ER eE-R diagram. Restrições mais complexas sobre o número de vezes que cada entidade participa de relacionamentos em um conjunto de relacionamentos. Uma linha pode ter uma cardinalidade mínima e máxima associada Uma linha pode ter uma cardinalidade mínima e máxima associada, mostrada na forma l..h, onde l é o mínimo e h a cardinalidade máxima. • Um valor mínimo de 1 indica participação total. • Um valor máximo de 1 indica que a entidade participa no máximo um relacionamento • Um valor máximo de * indica que não há limite.
  • 11.
    Modelo ER eE-R diagram. Restrições mais complexas sobre o número de vezes que cada entidade participa de relacionamentos em um conjunto de relacionamentos. O instrutor pode aconselhar 0 ou mais alunos. O aluno deverá ter 1 orientador; não pode ter vários conselheiros
  • 12.
    Chave Primaria • SejaR um conjunto relacionamento envolvendo os conjuntos de entidades E1, E2, .. En • A chave primária de R consiste na união das chaves primárias de conjuntos de entidades E1, E2, ..En
  • 13.
    Chave Primaria • SejaR um conjunto relacionamento envolvendo os conjuntos de entidades E1, E2, .. En • A chave primária de R consiste na união das chaves primárias de conjuntos de entidades E1, E2, ..En • Se o conjunto de relacionamentos R possui atributos a1, a2, .., atributos associado a ele, então a chave primária de R também inclui os atributos a1, a2, .., am Exemplo: conjunto de relacionamento “Orientador”. • A chave primária consiste em instrutor.ID e aluno.ID
  • 14.
    Chave Primaria • SejaR um conjunto relacionamento envolvendo os conjuntos de entidades E1, E2, .. En • A chave primária de R consiste na união das chaves primárias de conjuntos de entidades E1, E2, ..En • Se o conjunto de relacionamentos R possui atributos a1, a2, .., atributos associado a ele, então a chave primária de R também inclui os atributos a1, a2, .., am Exemplo: conjunto de relacionamento “Orientador”. • A chave primária consiste em instrutor.ID e aluno.ID A escolha da chave primária para um conjunto de relacionamentos depende da cardinalidade de mapeamento do conjunto de relacionamentos.
  • 15.
    Conjuntos de entidadesfracas É possível que a chave de um conjunto de entidades seja composta de atributos, alguns ou todos pertencentes a outro conjunto de entidades. Tal conjunto de entidades é chamado de conjunto de entidades fraco.
  • 16.
    Conjuntos de entidadesfracas É possível que a chave de um conjunto de entidades seja composta de atributos, alguns ou todos pertencentes a outro conjunto de entidades. Tal conjunto de entidades é chamado de conjunto de entidades fraco. Vários exemplos ilustrarão o problema. Exemplo: Um estúdio de cinema pode ter diversas equipes de filmagem. As equipes podem ser designadas por um determinado estúdio como equipe 1, equipe 2 e assim por diante. No entanto, outros estúdios podem usar as mesmas designações para equipes, portanto o número do atributo não é uma chave para equipes. Em vez disso, para nomear uma equipe de forma exclusiva, precisamos fornecer o nome do estúdio ao qual ela pertence e o número da equipe.
  • 17.
    Conjuntos de entidadesfracas Considere uma entidade de seção, que é identificada exclusivamente por course_id, semestre, ano e sec_id. Claramente, as entidades da seção estão relacionadas às entidades do curso. Suponha que criemos um conjunto de relacionamentos sec_course entre os conjuntos de entidades seção e curso.
  • 18.
    Conjuntos de entidadesfracas Considere uma entidade de seção, que é identificada exclusivamente por course_id, semestre, ano e sec_id. Claramente, as entidades da seção estão relacionadas às entidades do curso. Suponha que criemos um conjunto de relacionamentos sec_course entre os conjuntos de entidades seção e curso. Observe que a informação em sec_course é redundante, pois a seção já possui um atributo course_id, que identifica o curso ao qual a seção está relacionada. Uma opção para lidar com esta redundância é livrar-se do relacionamento sec_course; entretanto, ao fazer isso, a relação entre seção e curso fica implícita em um atributo, o que não é desejável.
  • 19.
    Conjuntos de entidadesfracas Uma forma alternativa de lidar com essa redundância é não armazenar o atributo course_id na entidade seção e armazenar apenas os demais atributos section_id, ano e semestre. • No entanto, a seção do conjunto de entidades não possui atributos suficientes para identificar exclusivamente uma entidade de seção específica
  • 20.
    Conjuntos de entidadesfracas Uma forma alternativa de lidar com essa redundância é não armazenar o atributo course_id na entidade seção e armazenar apenas os demais atributos section_id, ano e semestre. • No entanto, a seção do conjunto de entidades não possui atributos suficientes para identificar exclusivamente uma entidade de seção específica Para lidar com este problema, tratamos o relacionamento sec_course como um relacionamento especial que fornece informações extras, neste caso, o course_id, necessário para identificar entidades de seção de forma única. Um conjunto de entidades fracas é aquele cuja existência depende de outra entidade, chamada de entidade identificadora Em vez de associar uma chave primária a uma entidade fraca, usamos a entidade identificadora, juntamente com atributos extras chamados discriminador para identificar exclusivamente uma entidade fraca.
  • 21.
    Conjuntos de entidadesfracas Um conjunto de entidades que não seja um conjunto de entidades fraco é denominado conjunto de entidades forte.
  • 22.
    Conjuntos de entidadesfracas Um conjunto de entidades que não seja um conjunto de entidades fraco é denominado conjunto de entidades forte. Toda entidade fraca deve estar associada a uma entidade identificadora; isto é, diz-se que o conjunto de entidades fraco tem existência dependente do conjunto de entidades identificador. Diz-se que o conjunto de entidades identificadoras possui o conjunto de entidades fracas que identifica. O relacionamento que associa o conjunto de entidades fraco ao conjunto de entidades identificador é chamado de relacionamento identificador.
  • 23.
    Conjuntos de entidadesfracas Nos diagramas ER, um conjunto de entidades fraco é representado por um retângulo duplo. Sublinhamos o discriminador de um conjunto de entidades fracas com uma linha tracejada. O conjunto de relacionamentos que conecta o conjunto de entidades fracas ao conjunto de entidades fortes identificadoras é representado por um losango duplo. Chave primária para seção – (course_id, sec_id, semestre, ano)
  • 24.
    Atributos Redundantes Suponha quetemos conjuntos de entidades: • estudante, com atributos: ID, nome, tot_cred, dept_name • departamento, com atributos: nome_do_depto, edifício, orçamento
  • 25.
    Atributos Redundantes Suponha quetemos conjuntos de entidades: • Estudante, com atributos: ID, nome, tot_cred, dept_name • departamento, com atributos: nome_do_depto, edifício, orçamento Modelamos o fato de que cada aluno tem um departamento associado usando um conjunto de relacionamentos stud_dept O atributo dept_name em student replica informações presentes no relacionamento e, portanto, é redundante • e precisa ser removido.
  • 27.
    Dos Diagramas E/Raos Modelos Relacionais Para uma primeira aproximação, converter um design E/R em um esquema de banco de dados relacional é simples: • Transformar cada conjunto de entidades em uma relação com o mesmo conjunto de atributos. • Substitua um relacionamento por um relacionamento cujos atributos sejam as chaves para os conjuntos de entidades conectados.
  • 28.
    Dos Diagramas E/Raos Modelos Relacionais Para uma primeira aproximação, converter um design E/R em um esquema de banco de dados relacional é simples: • Transformar cada conjunto de entidades em uma relação com o mesmo conjunto de atributos. • Substitua um relacionamento por um relacionamento cujos atributos sejam as chaves para os conjuntos de entidades conectados. Embora estas duas regras cubram grande parte do terreno, há também várias situações especiais com as quais precisamos de lidar, incluindo: 1. Conjuntos de entidades fracos não podem ser traduzidos diretamente em relações. 2. Relacionamentos e subclasses “Isa” requerem tratamento cuidadoso.
  • 29.
    Dos Diagramas E/Raos Modelos Relacionais Para cada conjunto de entidades e conjunto de relacionamentos existe um esquema exclusivo ao qual é atribuído o nome do conjunto de entidades ou conjunto de relacionamentos correspondente. Representando Conjuntos de Entidades Um conjunto de entidades forte se reduz a um esquema com os mesmos atributos aluno(ID, nome, tot_cred) Um conjunto de entidades fracas torna-se uma tabela que inclui uma coluna para a chave primária do conjunto de entidades fortes identificador seção (curso_id, sec_id, sem, ano)
  • 30.
    Dos Diagramas E/Raos Modelos Relacionais Um conjunto de entidades fracas torna-se uma tabela que inclui uma coluna para a chave primária do conjunto de entidades fortes identificador seção (curso_id, sec_id, sem, ano)
  • 31.
    Dos Diagramas E/Raos Modelos Relacionais Os atributos compostos são nivelados criando um atributo separado para cada atributo do componente. • Exemplo: determinado instrutor de conjunto de entidades com atributo composto nome com atributos de componente first_name e last_name o esquema correspondente ao conjunto de entidades possui dois atributos name_first_name e name_last_name
  • 32.
    Dos Diagramas E/Raos Modelos Relacionais Atributos com vários valores Nota: Os atributos derivados não são explicitamente representados no modelo de dados relacional. Um atributo multivalorado M de uma entidade E é representado por um esquema separado EM O esquema EM possui atributos correspondentes à chave primária de E e um atributo correspondente ao atributo multivalorado M
  • 33.
    Dos Diagramas E/Raos Modelos Relacionais Atributos com vários valores Exemplo: O atributo multivalorado número_telefone do instrutor é representado por um esquema: inst_phone= (ID, número_telefone) Cada valor do atributo de valores múltiplos é mapeado para uma tupla separada da relação no esquema EM • Por exemplo, uma entidade instrutora com chave primária 22222 e números de telefone 456-7890 e 123-4567 é mapeada para duas tuplas: (22222, 456-7890) e (22222, 123-4567)
  • 34.
    Dos Diagramas E/Raos Modelos Relacionais Representando Conjuntos de Relacionamentos Os relacionamentos no modelo E/R também são representados por relações. A relação para um determinado relacionamento R possui os seguintes atributos: 1. Para cada conjunto de entidades envolvido no relacionamento R, tomamos seu atributo ou atributos chave como parte do esquema da relação para R. 2. Se o relacionamento possui atributos, então estes também são atributos da relação R.
  • 35.
    Dos Diagramas E/Raos Modelos Relacionais Representando Conjuntos de Relacionamentos Os relacionamentos no modelo E/R também são representados por relações. A relação para um determinado relacionamento R possui os seguintes atributos: Se um conjunto de entidades estiver envolvido diversas vezes em um relacionamento, em papéis diferentes, então seus atributos-chave aparecerão tantas vezes quantas forem os papéis.
  • 36.
    Dos Diagramas E/Raos Modelos Relacionais Representando Conjuntos de Relacionamentos 1. A chave starName para a estrela. 2. A chave que consiste nos atributos título e ano do filme. 3. A chave studioOf Star indicando o nome do primeiro estúdio; lembre-se de que assumimos que o nome do estúdio é uma chave para o conjunto de entidades Studios. 4. A chave ProduceStudio indicando o nome do estúdio que produzirá o filme com aquela estrela.
  • 37.
    Dos Diagramas E/Raos Modelos Relacionais Representando Conjuntos de Relacionamentos Um conjunto de relacionamentos muitos para muitos é representado como um esquema com atributos para as chaves primárias dos dois conjuntos de entidades participantes e quaisquer atributos descritivos do conjunto de relacionamentos. Exemplo: esquema para Instrutor de conjunto de relacionamentos
  • 38.
    Dos Diagramas E/Raos Modelos Relacionais Representando Conjuntos de Relacionamentos Redundância Exemplo: em vez de criar um esquema para o conjunto de relacionamentos inst_dept, adicione um atributo dept_name ao esquema proveniente do conjunto de entidades instrutor Os esquemas instrutor e departamento correspondem aos conjuntos de entidades A e B, respectivamente. Assim, o esquema inst dept pode ser combinado com o esquema do instrutor. O esquema do instrutor resultante consiste nos atributos {ID, nome, nome do departamento, salário}
  • 39.
    Dos Diagramas E/Raos Modelos Relacionais Representando Conjuntos de Relacionamentos Redundância Para conjuntos de relacionamentos um-para-um, qualquer um dos lados pode ser escolhido para atuar como o lado “muitos”. • Ou seja, um atributo extra pode ser adicionado a qualquer uma das tabelas correspondentes aos dois conjuntos de entidades Se a participação for parcial no lado “muitos”, a substituição de um esquema por um atributo extra no esquema correspondente ao lado “muitos” pode resultar em valores nulos
  • 40.
    Dos Diagramas E/Raos Modelos Relacionais Redundância O esquema correspondente a um conjunto de relacionamentos que liga um conjunto de entidades fracas ao seu conjunto de entidades fortes identificador é redundante. Exemplo: O esquema da seção já contém os atributos que apareceriam no esquema sec_course
  • 41.
    Dos Diagramas E/Raos Modelos Relacionais Recursos ER estendidos (Especialização) Designamos subagrupamentos dentro de um conjunto de entidades que são distintos de outras entidades do conjunto. Esses subagrupamentos tornam-se conjuntos de entidades de nível inferior que possuem atributos. Representado por um componente triangular denominado “IS A” (por exemplo, o instrutor “é uma” pessoa). Herança de atributos – um conjunto de entidades de nível inferior herda todos os atributos e participação de relacionamento do conjunto de entidades de nível superior ao qual está vinculado.
  • 42.
    Dos Diagramas E/Raos Modelos Relacionais Recursos ER estendidos (Especialização) Sobreposição – funcionário e aluno Disjunto – instrutor e secretário vários conjuntos permitidos é chamado de especialização sobreposta. No máximo um permitido é chamado de especialização disjunta
  • 43.
    Dos Diagramas E/Raos Modelos Relacionais Recursos ER estendidos (Especialização) Método 1: • Forme um esquema para a entidade de nível superior • Forme um esquema para cada conjunto de entidades de nível inferior, inclua a chave primária de conjunto de entidades de nível superior e atributos locais. Desvantagem: obter informações sobre um funcionário exige utilizar duas relações. Método 2: • Forme um esquema para cada conjunto de entidades com todos os atributos locais e herdados • Desvantagem: nome, rua e cidade podem ser armazenados de forma redundante para pessoas que são estudantes e funcionários
  • 44.
    Dos Diagramas E/Raos Modelos Relacionais Recursos ER estendidos (Especialização) Método 1: Método 2:
  • 45.
    Dos Diagramas E/Raos Modelos Relacionais Recursos ER estendidos (Generalização) Um processo de design bottom-up – combina vários conjuntos de entidades que compartilham os mesmos recursos em um conjunto de entidades de nível superior. Especialização e generalização são simples inversões uma da outra; eles são representados em um diagrama ER da mesma maneira. Os termos especialização e generalização são usados indistintamente.
  • 46.
    Dos Diagramas E/Raos Modelos Relacionais Recursos ER estendidos (Agregação) Considere o relacionamento ternário proj_guide Suponha que queiramos registrar as avaliações de um aluno por um guia em um projeto Para representar a agregação: • Chave primária do relacionamento agregado, • A chave primária do conjunto de entidades associado • Quaisquer atributos descritivos • O esquema eval_for é: eval_for (s_ID, project_id, i_ID, assessment_id) • O esquema proj_guide é redundante.
  • 47.
    Referências: Livro Database Systems_The Complete Book -- Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom -- 2nd Edition, 2008 -- Prentice Hall Livro Silberschatz A., Korth H.F., Sudarshan S. - Database System Concepts, 7th edition – 2019 Link: https://db-book.com/slides-dir/index.html (Slide 6 Relation Model) Dica do dia. https://www.ifixit.com/ Guias de reparo para tudo, escritos por todos.