Baixe o app para aproveitar ainda mais
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!
Compartilhar