Baixe o app para aproveitar ainda mais
Prévia do material em texto
CEUT PROF. HELTON MATOS Transformar aspectos do mundo real em elementos de um modelo de dados formal Temos três componentes: Estruturas o Uma coleção de tipos de objetos o Blocos básicos de construção de modelos • Ex: Relações, Domínio (Modelo Relacional) o Representam valores que são interpretações de objetos do mundo real e suas propriedades Operadores o Meio de manipular e atualizar os tipos de objetos • Ex: Álgebra Relacional (Modelo Relacional) Operações o Especificam uma ação - O que é para ser feito o Transformam um estado de BD em outro estado Preservando propriedades do esquema do BD e do modelo de dados Operações no Banco de Dados Regras de integridade (Restrições) o Restringem o conjunto de estados válidos dos tipos de objetos (conteúdo) • Ex: Valores de chave primária devem ser únicos e não nulos (Modelo Relacional) Ceut Prof.: Helton Matos Tem por base a percepção de que o mundo real é formado por um conjunto de objetos chamados entidades e pelo conjunto dos relacionamentos entre esses objetos. Permite especificar o esquema da empresa e é um dos modelos com maior capacidade semântica. Conjunto de entidades; Conjunto de relacionamentos e; Atributos. Entidade é uma “coisa” ou “objeto” no mundo real que pode ser identificado de forma unívoca em relação a todos os outros objetos. Por exemplo, cada pessoa na empresa é uma entidade. Uma entidade tem um conjunto de propriedades, e os valores para alguns conjuntos dessas propriedades devem ser únicos. Um conjunto de entidades é um conjunto que abrange entidades de mesmo tipo que compartilham as mesmas propriedades: os atributos. O conjunto de todas as pessoas que são clientes de um dado banco, por exemplo, pode ser definido como o conjunto de entidades cliente. Analogamente, o conjunto de entidades empréstimo poderia representar o conjunto de todos os empréstimos que o banco em questão viabiliza. As entidades individuais que constituem um conjunto são chamadas extensões do conjunto de entidades. Assim, todos os clientes do banco são as extensões do conjunto de entidade cliente. Uma entidade é representada por um conjunto de atributos. Atributos são propriedades descritivas de cada membro de um conjunto de entidades. Um banco de dados inclui uma coleção de conjuntos de entidades, cada qual contendo um número de entidades de mesmo tipo. Um atributo de um conjunto de entidades é uma função que relaciona o conjunto de entidades a seu domínio. Um atributo, como é usado no modelo E-R, pode ser caracterizado pelos seguintes tipos: o Atributos simples ou compostos o Atributos monovalorados ou multivalorados o Atributos nulos o Atributos derivados Atributos simples não é dividido em partes, enquanto os compostos, podem. Por exemplo: nome_cliente pode ser dividido em prenome, nome_intermediário e sobrenome. Um atributo número_emprestimo de uma entidade específica refere-se apenas a um número de empréstimo. Esses atributos são monovalorados. Considere o conjunto de entidades empregado com o atributo nome_dependente. Qualquer empregado pode ter um, nenhum ou vários dependentes; entretanto, diferentes entidades empregado dentro do conjunto de empregados terão diferentes números de valores para o atributo nome_dependentes. Esse tipo de atributo é dito multivalorado. É usado quando uma entidade não possui valor para determinado atributo. Por exemplo, se um empregado em particular não possui dependentes, o valor de atributo nome_dependente para esse dependente deverá ser nulo. Nulo também pode significar que o valor é desconhecido. O valor desse tipo de atributo pode ser derivado de outros atributos ou entidades a ele relacionados. Por exemplo, digamos que o conjunto de entidades cliente possui o atributo empréstimos_tomados, que representa o número de empréstimos tomados do banco por um cliente. Podemos derivar o valor desse atributo contando o número das entidades empréstimos associadas ao cliente em questão. Um relacionamento é uma associação entre uma ou várias entidades. Por exemplo, podemos definir um relacionamento que associa o cliente Hayes com o empréstimo L15. Um conjunto de relacionamentos é um conjunto de relacionamentos de mesmo tipo. Por exemplo, consideremos dois tipos de conjunto de entidades, empréstimo e agência. Podemos definir o conjunto de relacionamentos agência_empréstimo denotando a associação entre empréstimo bancário e a agência onde esse empréstimo é mantido. Papel: a função que uma entidade desempenha. Um conjunto de entidades e um conjunto de relacionamentos não são noções precisas e é possível definir um conjunto de entidades relacionadas entre eles de várias formas diferentes. Considere o conjunto de entidades empregado com os atributos nome_empregado e número_telefone. Pode ser facilmente verificado que o telefone é uma entidade sujeita a seus próprios atributos, como número_telefone e localização. Sob este ponto de vista, o conjunto de entidades deve ser redefinido, como segue: o O conjunto de entidades empregado com o atributo nome_empregado. o O conjunto de entidades telefone com os atributos número_telefone e localização. o O conjunto de relacionamentos emp_telefone, o qual denota a associação entre os empregados e os telefones que podem ter. Nem sempre fica claro se um objeto é melhor expresso por um conjunto de entidades ou por um conjunto de relacionamentos. Expressa o número de entidades às quais outra entidade pode estar associada via um conjunto de relacionamentos. o Um para um o Um para muitos o Muitos para um o Muitos para muitos Quando a existência da entidade x depende da entidade y. Operacionalmente, se y for excluído, o mesmo deve acontecer com x. A entidade y é chamada entidade dominante e a x é chamada entidade subordinada. Considere o conjunto de entidade empréstimo e o conjunto de entidades pagamento, que mantém todas as informações dos pagamentos realizados para um determinado empréstimo. Superchave é um conjunto de um ou mais atributos que, tomados coletivamente, nos permite identificar de maneira unívoca uma entidade em um conjunto de entidades. Por exemplo, o atributo seguro_social do conjunto de entidades cliente é suficiente para distinguir uma entidade cliente de outra. É possível que vários conjuntos diferentes de atributos possam servir como superchave. Essas superchaves são chamadas de chaves candidatas. Podemos usar o termo chave primária para caracterizar a chave candidata que é escolhida pelo projetista do banco de dados como de significado principal para a identificação de entidades dentro de um conjunto de entidades. Seja R um conjunto de relacionamentos envolvendo os conjuntos de entidades E1, E2, ..., En. Seja uma chave primária (Ei) denotando o conjunto de atributos que formam a chave primária do conjunto de entidades Ei. Assume-se que os nomes dos atributos de todas as chaves primárias sejam únicos. A composição da chave primária para um conjunto de relacionamentos depende de uma estruturade atributos associada ao conjunto de relacionamentos R. A relativa simplicidade e a clareza gráfica dessa técnica de diagramação pode explicar a ampla disseminação desse modelo. A seguir são apresentados seus principais componentes: o Retângulos: representam um conjunto de entidades. o Elipses: representam os atributos. o Losangos: representam os conjuntos de relacionamentos. o Linhas: unem os atributos aos conjuntos de entidades e os conjuntos de entidades aos conjuntos de relacionamentos. o Elipses Duplas: representam atributos multivalorados. Diagrama E-R correspondente a clientes e empréstimos. Um para muitos. Muitos para um Relacionamento um para um Diagrama E-R com um atributo atrelado ao conjunto de relacionamentos Diagrama E-R com indicadores de papéis. Diagrama E-R com relacionamentos ternários. É quando um conjunto de entidades pode não ter atributos suficientes para formar uma chave primária. O conjunto de entidades que tem uma chave primária é chamado de conjunto de entidades fortes ou regulares. Embora cada entidade pagamento seja distinta, os pagamentos de empréstimo diferentes podem compartilhar um mesmo número. Para ser significativo, tem que fazer parte de um conjunto de relacionamentos um para muitos. O identificador de um conjunto de entidades fracas é o conjunto de atributos que permite que a distinção seja feita entre as entidades No exemplo, o identificador (chave parcial) é o número do pagamento, assim, para cada empréstimo, um número de pagamento identifica um determinado pagamento para aquele empréstimo. A chave primária de entidades fracas é formado pela chave primária do conjunto de entidades fortes ao qual a existência do conjunto de entidades fracas está vinculado mais o identificador do conjunto de entidades fracas. O conjunto de entidades dominantes é dito proprietário do conjunto de entidades fracas por ele identificado. O relacionamento que associa o conjunto de entidades fracas a seu proprietário é o relacionamento identificador. Um conjunto de entidades fracas é identificado no diagrama E-R pela linha dupla usada no retângulo e no losango do relacionamento correspondente. Um conjunto de entidades pode conter subgrupos de entidades que são, de alguma forma, diferentes de outras entidades do conjunto. Considere o conjunto de entidades conta com os atributos número_conta e saldo. Um saldo pode ser classificado como um dos seguintes grupos: o conta_poupança o conta_movimento Cada um desses tipos de contas é descrito como um conjunto de atributos que, além de todos os atributos do conjunto de entidades conta, possui outros atributos adicionais. O processo de projetar os subgrupos dentro de um conjunto de entidades é chamado especialização. Um banco pode oferecer três tipos de conta (padrão, especial e sênior). Em termos de diagrama E-R, a especialização é representada pelo triângulo rotulado de ISA (de “is a”- é uma em inglês). O refinamento do conjunto de entidades em níveis sucessivos de subgrupos indica um processo top-down de projeto. O projeto pode ser realizado de modo bottom-up, no qual vários conjuntos de entidades são sintetizados em um conjunto de entidades em alto nível, com base em atributos comuns. Propriedade decisiva das entidades de níveis superior e inferior criadas pela especialização e pela generalização. Os conjuntos de entidades de nível inferior (subclasses) também herdam a participação em conjuntos de relacionamentos dos quais participam seus conjuntos de entidades superior (ou superclasses). Existe uma hierarquia nos conjuntos de entidades. Um tipo de restrição envolve a determinação das entidades que podem participar de um dado conjunto de entidades de nível inferior. Tais escolhas podem ser uma das seguintes: Considere que o conjunto de entidades de nível superior conta possui o atributo tipo_conta. Todas as entidades conta evoluem para um dos atributos tipo_conta. Somente aquelas entidades que satisfaçam a condição tipo_conta=“conta_poupança”, podem pertencer ao conjunto de entidades de nível inferior conta_poupança. Todas as entidades que satisfaçam a condição tipo_conta=“conta_movimento” são incluídas em conta movimento. Desde que todas as entidades de nível inferior sejam classificadas com base nos mesmos atributos (neste caso, tipo_conta), esse tipo de generalização é chamada definida_por_atributo. Suponha que, depois de três meses de trabalho, os empregados do banco sejam convocados para compor um dentre os quatro grupos de trabalho existentes. Esses grupos são representados por quatro conjuntos de entidades de baixo nível, derivados do conjunto de entidades de alto nível empregado. Outro tipo de restrição determina se uma entidade pode ou não pertencer a mais de um conjunto de entidades de nível inferior dentro de uma generalização simples. Os conjuntos de entidades de nível inferior podem ser um dos seguintes: Exigem que uma entidade pertença a apenas um conjunto de entidades de nível inferior. Em nosso exemplo, uma entidade conta pode ser tanto uma conta poupança como uma conta movimento, mas nunca ambas. Uma mesma entidade pode pertencer a mais de um conjunto de entidades de nível inferior dentro de uma generalização simples. Para ilustrar, retornemos ao exemplo dos grupos de trabalho dos empregados do banco e suponhamos que determinados gerentes participem de mais de um desses grupos. Total: cada entidade do conjunto de entidades de nível superior deve pertencer a um conjunto de entidades de nível inferior. Parcial: qualquer entidade de nível superior pode pertencer a qualquer um dos conjuntos de entidades de nível inferior. Uma das limitações do modelo E-R é que não é possível expressar relacionamentos entre relacionamentos. Considere novamente um banco de dados descrevendo informações sobre clientes e seus empréstimos supondo que cada par empréstimo-cliente possui um bancário, ou agente-empréstimo, responsável pelo acompanhamento de determinado empréstimo. O modelo E-R nos dá uma flexibilidade substancial para o projeto de um esquema de banco de dados. Iremos considerar quais as opções possíveis para o projetista dentre o grande número de possibilidades. Algumas das possíveis são: Optar pelo uso de um atributo ou de um conjunto de entidade para representar um objeto. Se uma concepção real é expressa de modo mais preciso por um conjunto de entidade ou por um conjunto de relacionamentos. Optar por um conjunto de relacionamentos ternários ou por um par de relacioamentos binários. Se se deve usar um conjunto de entidades fortes. Se o uso da generalização é apropriada. Se o uso da agregação for apropriada. A fase inicial de um projeto é caracterizar todos os dados necessários na perspectiva do usuário. O resultado dessa fase é a especificação das necessidades do usuário (ou levantamento de requisitos). A seguir, o projetista escolhe o modelo de dados e, por meio da aplicação de seus conceitos, transcreve as necessidades especificadas em um esquema conceitual de banco dedados (projeto conceitual), objetivando uma visão detalhada da empresa. Como só estudamos o modelo E-R até agora, iremos usá-lo para o desenvolvimento do esquema conceitual. O desenvolvimento do projeto conceitual irá indicar também as necessidades funcionais da empresa. Necessidades funcionais é onde os usuários descrevem os tipos de operações (ou transações) que serão realizadas nos dados. Ex.: modificações para atualização de dados, pesquisa para recuperação e remoção de dados. Na fase de projeto lógico, o esquema conceitual é mapeado para o modelo de implementação de dados no SGBD que será usado. A fase subseqüente é a do projeto físico, especificamente dependente dos recursos do SGBD usado. Dados Necessários a uma Empresa da Área Bancária Designação de Conjuntos de Entidades em Empresas Bancárias Designação dos Conjuntos de Relacionamentos de uma Empresa da Área Bancária Diagrama E-R de uma Empresa da Área Bancária Para um conjunto de entidades e para cada conjunto de relacionamentos, dentro de um banco de dados, existe uma tabela única registrando o nome do conjunto de entidades ou relacionamentos correspondentes. Cada tabela possui várias colunas, cada uma delas com um único nome. Seja E um conjunto d entidades fortes descritos pelos atributos a1, a2, ..., an. Representamos essa entidade por uma tabela chamada E com n colunas distintas, cada uma delas correspondendo a um atributo de E. Cada linha da tabela corresponde a uma entidade do conjunto de entidades E. número _empréstimo Total L-17 L-23 L-15 L-14 L-93 L-11 L-16 1000 2000 1500 1500 500 900 1300 •Denotaremos como D1 o conjunto de todos os números de empréstimos e D2 o conjunto de todos os saldos. •Qualquer linha da tabela empréstimo deve consistir de uma 2-tupla(v1 e v2), em que v1 é um empréstimo (está no conjunto D1) e v2 é um total (está no conjunto D2) •Iremos nos referir ao conjunto de todas as linhas possíveis de empréstimo como o produto cartesiano de D1 e D2, denotado por: D1 x D2 Seja A um conjunto de entidades fracas com os atributos a1, a2, ..., an. Seja B um conjunto de entidades fortes, do qual A é dependente. Seja a chave primária de B composta pelos atributos b1, b2, ..., bn. Representamos o conjunto de entidades A pela tabela chamada A com uma coluna para cada um dos atributos do conjunto: {a1, a2, ..., am } U {b1, b2, ..., bn } Seja R um conjunto de relacionamentos; seja a1, a2, ..., an o conjunto de atributos formado pela união das chaves primárias de cada um dos conjuntos de entidades participantes de R;e seja os atributos descritivos b1, b2, ..., bn (se houver) de R. Representamos esse conjunto de relacionamentos pela tabela chamada R, com uma coluna para cada atributo do conjunto: {a1, a2, ..., am } U {b1, b2, ..., bn } Para ilustrar, considere o conjunto de relacionamentos devedor no diagrama E-R. Esse conjunto de relacionamentos envolve os dois conjuntos de entidades seguintes: o Cliente, com a chave primária seguro_social. o Empréstimo, com a chave primária número_empréstimo. Uma vez que o conjunto de relacionamentos não possui atributos próprios, a tabela devedor possui duas colunas, a de seguro_social e número_empréstimo. Em geral, a tabela para o conjunto de relacionamentos unindo o conjunto de entidades fracas com seu conjunto de entidades fortes correspondente é redundante e não precisa ser apresentada em uma representação tabular do diagrama E-R. O conjunto de relacionamentos entre conta e agência_conta, é de muitos para um. Daqui para a frente, uma linha dupla no diagrama E-R indica que a participação de conta em conta_agência é total, ou seja, uma conta não pode existir sem que esteja associada a uma agência em particular. Novas tabelas são criadas para esses tipos de atributos. O diagrama inclui o atributo multivalorado nome_dependente. Para esse atributo multivalorado, criamos uma tabela nome_dependente com as colunas nomed, referente ao atributo noem_dependente do empregado, e seguro_social_empregado, representando a chave primária do conjunto de entidades empregado. Cada dependente de um empregado é representado por uma única linha na tabela. Para o diagrama para o caso de generalização visto anteriormente teremos três tabelas: o conta, com os atributos número_conta e saldo. o conta_poupança, com os atributos número_conta e taxa_juros o conta_movimento, com os atributos número_conta e limite_cheque_especial Se a generalização for exclusiva e total, isto é, se nenhuma entidade é membro de mais de um conjunto de entidades de nível imediatamente inferior e se todas as entidades do conjunto de entidades de nível superior são membros também de um dos conjuntos de entidades de nível inferior, uma outra representação alternativa é possível. Teremos duas tabelas: o conta_poupança, com os atributos número_conta, saldo e taxa_de_juros. o Conta_movimento, com os atributos número_conta, saldo e limite_cheque_especial. Usando o mesmo procedimento anterior para o resto do diagrama, criamos as seguintes tabelas: o cliente, com os atributos nome_cliente, seguro_social, rua_cliente e cidade_cliente. o empréstimo, com os atributos número_empréstimo e total. o devedor, com os atributos seguro_social e número_empréstimo. o empregado, com os atributos seguro_social_empregado, nome_empregado e número_telefone. o agente_empréstimo, com os atributos seguro_social, número_empréstimo e seguro_social_empregado. Considere o banco de dados de uma universidade para a programação de exames finais. Esse banco de dados poderia ser modelado como um conjunto de entidades simples exame, com atributos curso_exame, número_seção, número_sala e horário. Alternativamente, um ou mais conjuntos de entidades adicionais poderiam ser definidos, entre os conjuntos de relacionamentos, para substituir alguns dos atributos do conjunto de entidades exame, como: o Curso, com os atributos nome, departamento e número_curso. o seção, com os atributos número_seção e programa, dependente do conjunto de entidades curso como um conjunto de entidades fracas. o Sala, com os atributos número_sala, capacidade e prédio. (a) Mostre o diagrama E-R ilustrando o uso dos três conjuntos de entidades adicionais listadas. (b) Explique quais as características da aplicação poderiam influir na decisão de incluir ou não cada um desses conjuntos adicionais de entidades.
Compartilhar