Escolar Documentos
Profissional Documentos
Cultura Documentos
Modelagem
Restries Diagrama ER Aspectos de projeto Conjuntos de entidades fracos Recursos de ER estendidos Projeto de banco de dados para instituio bancria Reduo aos esquemas relacionais Projeto de banco de dados UML
Korth Silberschatz Sundarshan
Modelagem
Um banco de dados pode ser modelado como:
Uma coleo de entidades,
Relacionamento entre entidades.
Conjuntos de relacionamento
Exemplo:
Hayes entidade cliente
Um conjunto de relacionamento uma relao matemtica entre n 2 entidades, cada uma tomada de conjuntos de entidades
{(e1, e2, en) | e1 E1, e2 E2, , en En}
cliente
emprstimo
Um atributo tambm pode ser uma propriedade de um conjunto de relacionamento. Por exemplo, o relacionamento depositante entre os conjuntos de entidades cliente e conta pode ter o atributo data-acesso
Atributos
Uma entidade representada por um conjunto de atributos, que so propriedades descritivas processadas por todos os membros de um conjunto de entidades. Exemplo: cliente = id_cliente, nome_cliente , rua_cliente, cidade_cliente) emprstimo = (nmero_emprstimo, conta) Domnio o conjunto de valores permitidos para cada atributo Tipos de atributo: Atributos simples e compostos. Atributos de valor nico e de valores mltiplos Exemplo: atributo de valores mltiplos: nmeros_telefone, nome_dependentes Atributos derivados Podem ser calculados a partir de outros atributos Exemplo: idade, data_nascimento, tempo_de_servio
Korth Silberschatz Sundarshan
Atributos compostos
binrios.
Para um conjunto de relacionamento binrio, a cardinalidade de
Cardinalidades de mapeamento
Um-para-um Um-para-muitos Nota: Alguns elementos em A e B podem no ser mapeados para quaisquer elementos no outro conjunto.
Cardinalidades de mapeamento
Muitos-para-um Muitos-para-muitos
Nota: Alguns elementos em A e B podem no ser mapeados para quaisquer elementos no outro conjunto.
Chaves
Uma superchave de um conjunto de entidades um conjunto de um ou mais atributos cujos valores determinam unicamente cada entidade.
Embora possam existir vrias chaves candidatas, uma das chaves candidatas selecionada para ser a chave primria.
A combinao de chaves primrias dos conjuntos de entidades participantes forma uma superchave de um conjunto de relacionamento.
(id_cliente, nmero_conta) a superchave de depositante NOTA: isso significa que um par de conjuntos de entidades pode
cada conta por cada cliente, no podemos considerar um relacionamento para cada acesso. Entretanto, podemos usar um atributo de valores mltiplos.
Precisam considerar a cardinalidade de mapeamento do conjunto de relacionamento quando decidir quais so as chaves candidatas Precisam considerar a semntica do conjunto de relacionamento ao selecionar a chave primria no caso de mais de uma chave candidata
Diagramas ER
Funes (papis)
Conjuntos de entidades de um relacionamento no precisam ser distintos Os rtulos gerente e funcionrio so chamados funes; eles especificam como as entidades de funcionrio interagem atravs do conjunto de relacionamento trabalha_para. As funes so indicadas nos diagramas ER rotulando as linhas que conectam os losangos aos retngulos. Os rtulos de funo so opcionais e so usados para esclarecer a semntica do relacionamento
Restries de cardinalidade
Expressamos as restries de cardinalidade desenhando uma linha direcionada (), significando um, ou uma linha no direcionada (), significando muitos, entre o conjunto de relacionamento e o conjunto de entidades.
Relacionamento um-para-um
Um cliente est associado, no mximo, a um emprstimo atravs
do relacionamento tomador
Um emprstimo est associado, no mximo, a um cliente atravs
de tomador
Relacionamento um-para-muitos
No relacionamento um-para-muitos, um emprstimo est associado, no mximo, a um cliente atravs de tomador, um cliente est associado a vrios (inclusive 0) emprstimos atravs de tomador
Relacionamento muitos-para-um
Em um relacionamento muitos-para-um, um emprstimo est associado a vrios (inclusive 0) clientes atravs de tomador, um cliente est associado, no mximo, a um emprstimo atravs de tomador
Relacionamento muitos-para-muitos
Um cliente est associado a vrios (possivelmente 0) emprstimos atravs de tomador Um emprstimo est associado a vrios (possivelmente 0) clientes atravs de tomador
Participao total (indicada por uma linha dupla): cada entidade no conjunto de entidades participa no mnimo em um relacionamento no conjunto de relacionamento
Por exemplo, a participao de emprstimo em tomador total Cada emprstimo precisa ter um cliente associado atravs de tomador
Participao parcial: algumas entidades podem no participar em relacionamento algum no conjunto de relacionamento
Exemplo: a participao de cliente em tomador parcial
Permitimos no mximo uma seta saindo de um relacionamento ternrio (ou grau maior) para indicar uma restrio de cardinalidade
Por exemplo, uma seta de trabalha_em indica que cada funcionrio trabalha no mximo em um cargo em qualquer agncia.
Por exemplo, um relacionamento ternrio R entre A, B e C com setas para B e C poderia significar: 1. Cada entidade A est associada a uma nica entidade de B e C ou 2. Cada par de entidades de (A, B) est associado a uma nica entidade C, e cada par (A, C) est associado a um nico B
Cada alternativa foi usada em diferentes formalismos Para evitar confuso, proibimos mais de uma seta
Aspectos de projeto
Uso de conjuntos de entidades versus atributos
A escolha depende principalmente da estrutura da empresa sendo modelada e da semntica associada ao atributo em questo.
Uso de conjuntos de entidades versus conjuntos de
relacionamento Uma possvel regra designar um conjunto de relacionamento para descrever uma ao que ocorre entre entidades.
Conjuntos de relacionamento binrios versus enrios
Embora seja possvel substituir um conjunto de relacionamento no binrio (enrio, para n > 2) por diversos conjuntos de relacionamento binrios distintos, um conjunto de relacionamento enrio mostra mais claramente que vrias atributos participam em um nico relacionamento.
Posicionamento dos atributos de relacionamento
Alguns relacionamentos que parecem ser no binrios podem ser mais bem representados por vrios relacionamentos binrios.
Por exemplo, um relacionamento ternrio pais, relacionando um filho ao
seu pai e me, melhor representado por dois relacionamentos binrios, me e pai
Usar dois relacionamentos binrios permite informaes parciais (por
Em geral, qualquer relacionamento no binrio pode ser representado usando relacionamentos binrios criando um conjunto de entidades artificial. Substitua R entre os conjuntos de entidades A, B e C por um conjunto de entidades E trs conjuntos de relacionamento: 1. RA, relacionando E e A 2. RB, relacionando E e B 3. RC, relacionando E e C Crie um atributo identificador especial para E Inclua quaisquer atributos de R em E Para cada relacionamento (ai , bi , ci) em R, 1. crie uma nova entidade ei no conjunto de entidades E 2. inclua (ei , ai ) em RA 3. inclua (ei , bi ) em RB 4. inclua (ei , ci ) em RC
instncia alguma de R
Exerccio: acrescente restries aos relacionamentos RA, RB e RC para
garantir que uma entidade recm-criada corresponda a exatamente uma entidade em cada um dos conjuntos de entidades A, B e C
Podemos evitar a criao de um atributo identificador tornando E um
conjunto de entidades fraco (descrito brevemente) identificado pelos trs conjuntos de relacionamento.
Podemos tornar a data de acesso um atributo de conta, em vez de um atributo de relacionamento, se cada conta puder ter apenas um cliente
Ou seja, o relacionamento de conta para cliente muitos-para-um ou,
Que tal criar um projeto ER interativamente no quadro? Sugira uma aplicao a ser modelada.
atravs de um conjunto de relacionamento um-para-muitos total, do identificador para o conjunto de entidades fraco
Relacionamento identificador descrito usando um losango duplo
fraco o conjunto de atributos que distingue entre todas as entidades de um conjunto de entidades fraco.
A chave primria de um conjunto de entidades fraco formada
pela chave primria do conjunto de entidades forte em que o conjunto de entidades fraco dependente de existncia, mais o discriminador do conjunto de entidades fraco.
Korth Silberschatz Sundarshan
explicitamente armazenada com o conjunto de entidades fraco, j que ela est implcita no relacionamento identificador.
poderia se tornar uma entidade forte, mas, ento, o relacionamento entre pagamento e emprstimo seria duplicado por um relacionamento implcito definido pelo atributo nmero_emprstimo comum a pagamento e emprstimo.
entidades de nvel inferior que possuem atributos ou participam em relacionamentos que no se aplicam ao conjunto de entidades de nvel superior.
Representada por um componente tringulo rotulado ISA
Herana de atributo Um conjunto de entidades de nvel inferior herda todos os atributos e a participao de relacionamento do conjunto de entidades de nvel superior ao qual est vinculado.
Exemplo de especializao
conjuntos de entidades que compartilham os mesmos recursos em um conjunto de entidades de nvel superior.
A especializao e a generalizao so simples inverses uma da
indistintamente.
funcionrio_temporrio
e tambm um membro de gerente, escriturrio ou caixa.
superclasse-subclasse.
A restrio sobre que entidades podem ser membros de um determinado conjunto de entidades de nvel inferior. Definido por condio Exemplo: Todos os clientes com mais de 65 anos so membros do conjunto de entidades cidado_senior; cidado_senior ISA pessoa. Definido pelo usurio
Restringe sobre se ou no as entidades podem pertencer a mais de um conjunto de entidades de nvel inferior dentro de uma nica generalizao. Disjuntos uma entidade no pode pertencer a mais que um conjunto de entidades de nvel inferior Indicados no diagrama ER pela inscrio de disjunto ao lado do tringulo ISA Superpostos um conjunto de entidades pode pertencer a mais de um conjunto de entidades de nvel inferior
Restrio de integralidade Especifica se ou no uma entidade no conjunto de entidades de nvel superior precisa pertencer a pelo menos um dos conjuntos de entidades de nvel inferior dentro de uma generalizao
total : Uma entidade precisa pertencer a um conjunto de entidades
de nvel inferior
parcial: Uma entidade no precisa pertencer a um conjunto de
Agregao
Suponha que queremos registrar gerentes para tarefas realizadas por um funcionrio em uma agncia
Agregao (cont.)
Cada relacionamento gerencia corresponde a um relacionamento trabalha_em Entretanto, alguns relacionamentos trabalha_em podem no corresponder a nenhum relacionamentos gerencia
Portanto, no podemos descartar o relacionamento trabalha_em
Trate relacionamento como uma entidade abstrata Permite relacionamentos entre relacionamentos Abstrao de relacionamento em nova entidade
Um funcionrio trabalha em um cargo especfico em uma agncia especfica Um funcionrio, agncia ou combinao de cargos pode ter um gerente associado
Agregao
Decises de projeto ER
Usar um atributo ou um conjunto de entidades para
representar um objeto.
Se um conceito do mundo real expresso mais
relacionamentos binrios.
Usar um conjunto de entidades forte ou fraco. O uso de especializao/generalizao contribui para
a modularidade do projeto.
O uso de agregao pode tratar o conjunto de
entidades agregado como uma nica unidade sem preocupao com os detalhes de sua estrutura interna.
Korth Silberschatz Sundarshan
Um banco de dados est sendo feito para controlar os campeonatos de futebol. necessrio armazenar clubes, informaes sobre estdios, jogadores e juzes. Para cada jogo preciso ter todas as informaes possveis, por exemplo: renda, quem jogou, em que posio, quem marcou gols, e em que tempo, qual foi a renda e qual o resultado final do jogo. Para planejar futuros jogos necessrio saber, quais estdios esto alocados, se pertencem a algum clube, quais os juzes disponveis e tomar cuidado para o mesmo time no jogar com intervalo de menos de 3 dias.
Para cada conjunto de entidades e para cada conjunto de relacionamento, existe um esquema nico ao qual atribumos o nome do conjunto de entidades ou conjunto de relacionamento correspondente.
Cada esquema tem um nmero de colunas (geralmente correspondente aos atributos), que possuem nomes nicos.
Um conjunto de entidades fraco se torna uma tabela que inclui uma coluna para a chave primria do conjunto de entidades forte identificador.
representado como um esquema com atributos para as chaves primrias dos dois conjuntos de entidades participantes e quaisquer atributos descritivos do conjunto de relacionamento.
Exemplo: Esquema para o conjunto de relacionamento tomador: Exemplo: schema for relationship set borrower
Redundncia de esquemas
Conjuntos de relacionamento muitos-para-um e muitos-para-muitos que so completos no lado muitos podem ser representados acrescentando um atributo extra no lado muitos, contendo a chave primria do lado um. Exemplo: Em vez de criar um esquema para o conjunto de relacionamento agncia_conta, acrescente um atributo nome_agncia ao esquema surgindo do conjunto de entidades conta.
Para conjuntos de relacionamento um-para-um, qualquer lado pode ser escolhido como o lado muitos.
Ou seja, o atributo extra pode ser acrescentado a qualquer uma das tabelas
Se a participao for parcial no lado muitos, a substituio de um esquema por um atributo extra no esquema correspondente ao lado muitos poderia resultar em valores nulos. O esquema correspondente a um conjunto de relacionamento vinculando um conjunto de entidades fraco ao seu conjunto de entidades forte identificador redundante.
Exemplo: O esquema pagamento j contm os atributos que apareceriam
Os atributos compostos so manipulados criando um atributo separado para cada um dos atributos componentes. Exemplo: Sejam dados o conjunto de entidades cliente com o atributo composto nome com atributos componentes primeiro_nome e ltimo_nome, o esquema correspondente ao conjunto de entidades possui dois atributos, nome.primeiro_nome e nome.ltimo_nome Um atributo de valores mltiplos M de uma entidade E representado por um esquema separado EM. O esquema EM tem atributos correspondentes chave primria de E e um atributo correspondente ao atributo de valores mltiplos M. Exemplo: O atributo de valores mltiplos nomes_dependentes de funcionrio representado por um esquema: nomes_dependentes_funcionrio = (id_funcionrio, nomedep) Cada valor do atributo de valores mltiplos mapeado para uma tupla separada da relao no esquema EM.
Por exemplo, uma entidade funcionrio com chave primria 123-45-
6789 e dependentes Jack e Jane mapeia para duas tuplas: (123-45-6789 , Jack) e (123-45-6789 , Jane)
nvel inferior, inclua a chave primria do conjunto de entidades de nvel superior e atributos locais
esquema pessoa cliente funcionrio
Desvantagem: Para obter informaes sobre um funcionrio, necessrio acessar duas relaes, a relao correspondente ao esquema de baixo nvel e a correspondente ao esquema de alto nvel.
Mtodo 2:
Forme um esquema para cada conjunto de entidades com todos os atributos locais e herdados
atributos nome, rua, cidade nome, rua, cidade, avaliao_crdito nome, rua, cidade, salrio
Se a especializao for total, o esquema para o conjunto de entidades generalizado (pessoa) no exige armazenar informaes.
Pode ser definido como uma relao de view contendo a unio das relaes de
especializao
Mas o esquema explcito ainda pode ser necessrio para restries de chave
estrangeira
Desvantagem: rua e cidade podem ser armazenados redundantemente para pessoas que so, ao mesmo tempo, clientes e funcionrios
Chave primria do relacionamento agregado A chave primria do conjunto de entidades associado Quaisquer atributos descritivos
Por exemplo, para representar a agncia gerencia entre o relacionamento trabalha_em e o conjunto de entidades gerente, crie um esquema
O esquema trabalha_em redundante, desde que estejamos dispostos a armazenar valores nulos para o atributo nome_gerente na relao no esquema gerencia
UML
UML: Unified Modeling Language
Os conjuntos de entidades so mostrados como retngulos e, diferente do diagrama ER, os atributos so mostrados dentro do retngulo e no como elipses separadas. Os conjuntos de relacionamento binrios so representados na UML simplesmente desenhando uma linha conectando os conjuntos de entidades. O nome do conjunto de relacionamento escrito adjacente linha. A funo desempenhada por um conjunto de entidades em um conjunto de relacionamento tambm pode ser especificada escrevendo o nome da funo na linha, adjacente ao conjunto de entidades. Alternativamente, o nome do conjunto de relacionamento pode ser escrito em um retngulo, juntamente com atributos do conjunto de relacionamento, e o retngulo conectado usando uma linha pontilhada at a linha representando o conjunto de relacionamento. Os relacionamentos no binrios so desenhados usando losangos, exatamente como nos diagramas ER
Korth Silberschatz Sundarshan
* Note a inverso de posies na representao da restrio de cardinalidade * A generalizao pode usar setas mescladas ou separadas independentes de disjuno/superposio
As restries de cardinalidade so especificadas na forma l..h, onde l indica o mnimo e h, o nmero mximo de relacionamentos em que um conjunto de entidades pode participar. Ateno: O posicionamento das restries exatamente o inverso do posicionamento das restries nos diagramas ER. A restrio 0..* no lado E2 e a restrio 0..1 no lado E1 significam que cada entidade E1 pode participar em muitos relacionamentos; ou seja, o relacionamento muitos-para-um de E2 para E1. Valores nicos como 1 ou * podem ser escritos nas bordas; o valor nico 1 em uma borda tratado como equivalente a 1..1, enquanto * equivalente a 0..*.
Fim do Captulo 2
Dependncias de existncia
Se a existncia da entidade x depende da existncia da entidade y, ento, diz-se que x dependente de existncia de y.
y uma entidade dominante (no exemplo abaixo, emprstimo)
emprstimo
Emprstimo-pagamento
pagamento
Se um emprstimo for excludo, ento, todas as suas entidades pagamento associadas tambm precisaro ser excludas.
Figura 6.8
Figura 6.15
Figura 6.16
Figura 6.26
Figura 6.27
Figura 6.28
Figura 6.29
Figura 6.30
Figura 6.31