Buscar

Estrutura e Modelagem de Dados Aula 4

Prévia do material em texto

Estrutura e Modelagem de 
Dados – Aula 4
Profª. Ms.: Viviane Gerardi
ESPECIALIZAÇÃO OU GENERALIZAÇÃO
A generalização é uma abstração de entidades semelhantes, possivelmente com vários atributos
comuns e apenas alguns diferentes que apresentam a mesma chave primária. São representados
graficamente por um retângulo. O conceito de generalização ou especialização se dá de acordo com
o sentido que lemos o relacionamento.
ESPECIALIZAÇÃO OU GENERALIZAÇÃO
ESPECIALIZAÇÃO OU GENERALIZAÇÃO
Deve-se utilizar generalização ou especialização se duas entidades apresentam vários atributos
semelhantes entre si, com pequenas diferenças. Os atributos semelhantes devem pertencer à
entidade generalizada e os diferentes pertencem às especializações. A generalização ou
especialização pode ser de quatro tipos: total, parcial, exclusiva ou compartilhada. A generalização é
dita como total se for obrigatória a ocorrência. Em uma generalização total sempre existirá uma das
ocorrências representadas na entidade especializada
ESPECIALIZAÇÃO OU GENERALIZAÇÃO
Por exemplo : a representação
do Cliente que será
obrigatoriamente pessoa física
ou jurídica.
ESPECIALIZAÇÃO OU GENERALIZAÇÃO
Em uma generalização ou especialização parcial, não é toda a ocorrência da entidade genérica que
ocorre a especialização. Na generalização parcial, você deve criar um atributo tipo para indicar a
ocorrência na entidade generalizada.
ESPECIALIZAÇÃO OU GENERALIZAÇÃO
A figura representa a
generalização como
sendo do tipo parcial.
ESPECIALIZAÇÃO OU GENERALIZAÇÃO
A generalização ou especialização é dita exclusiva quando apenas se permite assumir uma das
entidades especificadas, ficando restrita às demais ocorrências. Assim, um mecânico de suspensão e
freio nunca poderá assumir o papel de mecânico aerodinâmico, ou seja, ele não pode assumir ambas
as funções ao mesmo tempo. Para indicar que a generalização é exclusiva, acrescenta-se junto ao
triângulo a letra “X”.
ESPECIALIZAÇÃO OU GENERALIZAÇÃO
A generalização ou especialização compartilhada permite que uma entidade possa assumir várias
especializações e sua indicação gráfica é a letra ‘c’ junto ao triângulo. Você pode combinar dois tipos
em uma generalização sendo permitido total ou parcial com exclusiva ou compartilhada.
EQUIVALÊNCIA ENTRE OS DER
Ao identificar atributos em um relacionamento, às vezes não fica claro se o relacionamento deveria
ser desmembrado em outra entidade ou mantido como relacionamento, e permitir que o
relacionamento tenha atributos.
Esses questionamentos são comuns e diferentes modelos podem levar a construção do mesmo
banco de dados.
EQUIVALÊNCIA ENTRE OS DER
Há um conceito de equivalência entre os DER. Podemos dizer que dois DER são equivalentes
quando expressam o mesmo problema e modelam a mesma realidade, produzindo assim o mesmo
esquema de Banco de Dados.
EQUIVALÊNCIA ENTRE OS DER
EQUIVALÊNCIA ENTRE OS DER
Outra dúvida é se um determinado objeto deve ser modelado como entidade ou atributo. Para
exemplificar, imagine o objeto Cor, este pode ser modelado como atributo da entidade Carro ou como
uma entidade Cor relacionada a Carro, veja a ilustração dos dois cenários possíveis. Ambos os
cenários são possíveis, o correto dependerá do que se deseja armazenar. O cenário “a” é correto
caso desejemos armazenar apenas uma única cor predominante.
EQUIVALÊNCIA ENTRE OS DER
EQUIVALÊNCIA ENTRE OS DER
Caso o objeto que se deseja modelar apresente mais de um atributo, você deve escolher o cenário
“b” onde armazenamos diversos atributos. Além disso, se você ao analisar você notar que vai existir
transações durante a vida da entidade vinculada deve escolher o cenário “b”.
No exemplo apresentado na anteriormente se você imaginar que as cores de um carro vão mudar, ou
ser inseridas, alteradas ou excluídas, então o melhor cenário é o “b”. Caso você conclua que,
enquanto aquele carro existir sua cor será imutável, então o indicado será o cenário “a”.
EQUIVALÊNCIA ENTRE OS DER
Outra dúvida na modelagem é se devemos modelar como atributo ou uma generalização. A regra se
mantem, se você souber que o objeto modelado vai ter mais de um atributo, nesse caso você deve
criar a especialização e não manter como atributo.
EQUIVALÊNCIA ENTRE OS DER
EQUIVALÊNCIA ENTRE OS DER
Observe que o Sexo do Mecânico é melhor representado pelo cenário “a” pois não acrescentamos
nenhum atributo nas especializações. Vai existir ocorrências para atributos diferentes dos
especificados no cenário “b”.
Mas não podemos fazer disso uma regra, a escolha pode ser diferente dependendo do caso, como no
nosso próximo exemplo, que apresenta um caso em que a escolha indicada é a generalização.
EQUIVALÊNCIA ENTRE OS DER
CONDICIONALIDADE DE RELACIONAMENTO
Um relacionamento pode ter restrições ou ser condicional. Na literatura pode ser nomeado de
relacionamento condicional ou relacionamento exclusivo. Você pode criar um relacionamento com
duas ou mais entidades, mas permitir que se um relacionamento ocorrer com uma das entidades,
este relacionamento será exclusivo e não será mais permitido os demais relacionamentos. O uso de
um relacionamento condicional ocorre quando você deseja representar algumas regras de negócio.
CONDICIONALIDADE DE RELACIONAMENTO
Modelo de relacionamento exclusivo.
No relacionamento apresentado ao
lado, ou o cliente ganha convites ou
ele compra ingressos.
Observe que, se uma condição
ocorrer, a outra não poderá ocorrer.
RELACIONAMENTOS CONTINGENTES
Este tipo de relacionamento permite você criar relacionamentos que devem ocorrer ao mesmo tempo
com entidades diferentes. Você estabelece que só existe o relacionamento se simultaneamente for
atribuído à todas as entidades.
RELACIONAMENTOS CONTINGENTES
Exemplo de relacionamento
de contingência.
Neste exemplo, é impossível
realizar um Treino sem os Pilotos e
Mecânicos, sendo obrigatório a
ocorrência de ambas as instâncias
para que o treino ocorra.
AGREGAÇÃO
É um mecanismo de abstração em que você cria a partir de um relacionamento entre duas entidades.
Normalmente, você usará a regra de agregação toda vez que sentir a necessidade de criar uma
relação com outra relação.
A norma não permite você criar uma relação com outra relação, assim, você deve encapsular as duas
entidades e seu relacionamento dentro de uma agregação e esta, por sua vez, poderá se relacionar
com outra entidade.
AGREGAÇÃO
O exemplo apresenta o conceito
de agregação. Vale lembrar que
quando você usa agregação, a
entidade nova só vai existir após
a existência do fato, ou seja, o
relacionamento interno entre as
duas entidades.
VALIDAÇÃO DE DIAGRAMAS
Ao finalizar a modelagem de um diagrama, você deve validar se o mesmo está correto, completo e
sem redundâncias. O modelo pode conter erros sintáticos e semânticos.
Os erros sintáticos ocorrem quando você não segue as regras de construção do diagrama, como por
exemplo associar atributos à atributos, associar relacionamentos por meio de outro relacionamento,
ou especializar relacionamento ou atributo. Você pode evitar esses erros ao utilizar ferramentas de
modelagens que não permitam essas ações.
VALIDAÇÃO DE DIAGRAMAS
Os erros semânticos são aqueles que ocorrem quando você não cometeu erro de sintaxe mas refletiu a
realidade de forma inconsistente.
Como por exemplo, associar o atributo CNPJ à entidade Cliente em vez de associá-lo à especialização
Pessoa Jurídica.
Para validar se o modelo está completo você deve validar: se todas as propriedades estão presentes no
banco de dados, se é possível extrair todos os resultados esperados do banco de dados e se é possível
modificar ou registrar as transações no banco de dados. A última validação é se existem conceitos
redundantes, ou seja, não deve existir relacionamentos que sejam combinações de outros relacionamentos
com a mesma entidade.
ASPECTO TEMPORAL
Ao modelar um banco de dados é comum modelar um banco funcional sem se preocuparcom o que
vai ocorrer com o tempo de uso.
É importante se perguntar quais informações são úteis no decorrer do tempo e quais podem ser
eliminadas.
Lembre-se que um banco de dados não poderá crescer infinitamente e que algumas informações
poderão ser eliminadas.
ASPECTO TEMPORAL
Um exemplo desta decisão é apresentado abaixo, você deve avaliar se você deve ou não manter um
histórico dos salários dos mecânicos.
Até a Próxima Aula
OBRIGADA!

Continue navegando