UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Roteiro 3 – Modelagem relacional Objetivos: • Explorar conceitos sobre: o Modelagem de bancos de dados – projetos: conceitual, lógico e físico; o Conceitos sobre o modelo relacional: tuplas, atributo, entidades, relacionamentos; Ferramentas necessárias Navegador, Dia, Bibliografias de livros da faculdade. Introdução Este roteiro tem como objetivo explorar as propriedades da elaboração de modelagens para bancos de dados baseados no esquema relacional. Serão exploradas as propriedades de relacionamentos voltados para as situação 1:1, 1:N e N:N, com maior foco nestes dois últimos. Quando é realizada uma atividade de levantamento de dados, estamos efetivamente identificando entidades ou classes de dados. Em um contexto não conhecido de negócio é comum o analista ter dificuldade em determinar quais são as entidades componentes do sistema proposto. É comum então, ao tentar efetivar uma modelagem de um sistema, o projetista do banco tentar encontrar qual será a principal entidade de um sistema, logo é necessário utilizarmos alguns recursos: • Em uma modelagem de um banco de dados para uma clínica médica, a entidade médico é na realidade uma generalização para diversas classes de médicos como pediatras, cardiologistas, neurologista, etc. Desta forma, se fosse analisado superficialmente, seria possível definir entidades para cada uma destas classes de dados. Figura 1 - Generalização da Classe Médico Como regra geral, quando forem encontradas entidades que possuem o mesmo conjunto de atributos para descrevê-las, podemos generalizá-las em uma única entidade, mantendo sua identidade de subconjunto através da inserção de um atributo qualificador para as ocorrências de cada uma. Especialização: Quando visualizarmos a qualificação por atributos que permitirá identificar um grupo, uma classe dentro da classe genérica é denominada de Especialização. A Visão de Dados na especialização é a definição de um subconjunto pertinente a uma entidade através da representação efetiva no diagrama de entidades e relacionamentos, de forma a permitir o entendimento da formação dos dados existentes na realidade. Naturalmente os subgrupos que foram identificados gerarão sempre um atributo que qualificará a todos (Generalização), e caso fosse aplicado de forma inversa em uma locadora de filmes, teríamos a seguinte descrição: P á g | 19 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Generalização: Consiste em uma abstração de um conjunto de componentes, ou seja, utilizar uma classe genérica de dados que pode estar incorporando implicitamente diversas outras classes de dados. Ex: UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Figura 2 - Especialização Locadora de Filmes OBSERVAÇÃO: É necessário estar atento ao executar o projeto conceitual, pois existem casos em que teremos entidades diversas com nomes distintos, mas que na realidade podem ser generalizadas em uma única, já que conceitualmente refere-se a um macro objeto, que por generalização pode absorvê-las integralmente. Exemplos: Itens Generalização Sorvete de limão, maracujá, chocolate, morango, etc Pedido suspenso, pedido atendido, pedido pendente Aluno suspenso, aluno trancado, aluno concluído Sabor Pedido Situação Um relacionamento consiste em um conjunto de associações entre entidades. Um relacionamento é expresso com uso de um verbo que possa identificar a relação entre as duas entidades. Possuem a sua representação com as entidades em um losango, seus atributos com uma elipse e com arestas ligando as entidades a este losango (que é o próprio relacionamento). No interior do losango é inserido um verbo que explicite o fato (o evento) que é o relacionamento. Figura 3 - Componentes de um E-R Exemplos: • Pessoas moram em apartamentos; • Os apartamentos formam condomínios; • Os condomínios localizam-se em ruas, ou avenidas; • As avenidas e ruas estão em uma cidade; Estes relacionamentos poderiam ser expressos pelo diagrama a seguir: P á g | 20 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Relacionamentos UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Figura 4 - Relacionamentos sendo expressos Um conjunto de relacionamentos é uma coleção de ocorrências das entidades relacionadas e o verbo que é utilizado interno ao losango dá a semântica (real significado) ao relacionamento que será efetuado. Os relacionamentos possuem dois grandes grupos, divididos em: Relacionamentos Incondicionais: relacionamentos que não possuem condição caracterizam-se por serem obrigatórios, ou seja, todos os elementos de uma entidade estão obrigatoriamente relacionados com um elemento, no mínimo, da outra entidade. Vejamos alguns exemplos: Figura 5 - Representação de Relacionamentos Grau do Relacionamento (Cardinalidade) Consiste no número de ocorrências de uma entidade que está associada com ocorrências de outra entidade. Podemos ter três situações de graus de relacionamentos, descritas a seguir: Relacionamento de Um-para-Um: Neste grau de relacionamento, cada elemento de uma entidade relaciona-se com um e somente um elemento de outra entidade. O relacionamento deve ser lido nos dois sentidos em que ele se efetua. Logo teremos no caso de uma entidade apenas uma única relação nos dois sentidos. Relacionamento de Um-para-Muitos: É o mais comum no mundo real, sendo o que denominamos de relacionamento básico entre entidades, entretanto possui características específicas, quanto ao sentido de leitura dos fatos e sua interpretação. Um elemento da entidade A relaciona-se com muitos elementos da entidade B, mas cada elemento da entidade B somente pode estar relacionado a um elemento da entidade A. OBSERVAÇÃO: Este tipo de relacionamento pode causar dúvidas quanto à sua interpretação, pois quando lido nos dois sentidos resultará em um relacionamento de cardinalidade 1:1. Por isto, como regra geral deve se tomar que um P á g | 21 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Relacionamentos Condicionais: relacionamentos que possuem uma condição, uma qualificação para ocorrerem. Sejam dois elementos A e B, podemos afirmar que nem todos os elementos de uma entidade A estão ligados com elementos da entidade B. UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas relacionamento é do tipo Um-para-Muitos quando um sentido de leitura dos fatos nos apresenta este grau e o sentido oposto apresenta obrigatoriamente o grau Um-para-Um, ex: Observando o gráfico acima, lemos: Um departamento lota um ou vários funcionários. Um funcionário lota somente um departamento. Relacionamento de Muitos-para-Muitos: Este tipo de relacionamento ocorre quando uma entidade A está associada a qualquer quantidade de entidades de B e uma entidade de B está associada a qualquer quantidade de entidades de A. Ex: Seja uma Entidade estudante e uma entidade Unidade Curricular, podemos visualizar a associação com o relacionamento Cursa. Analisando este relacionamento: Um estudante cursa várias unidades, mas alguns estudantes temporariamente podem estar cursando somente uma, ou nenhuma unidade. Uma unidade é cursada por vários estudantes, mas eventualmente podemos ter uma unidade que não possua nenhum estudante cursando-a, ou somente um. Neste caso, por haver opcionalidades, caracteriza um relacionamento condicional. O tipo de relacionamento do exemplo anterior caracteriza-se com um aspecto bastante peculiar, o mesmo possui atributos. Isto quer dizer que o relacionamento possui dados que são inerentes ao fato e não às entidades. É apresentado a seguir a estrutura das entidades envolvidas, e os atributos que são inerentes ao próprio relacionamento, ou seja, identificam ou qualificam o relacionamento: ENTIDADE Estudante Unidade RELACIONAMENTO Cursa ATRIBUTOS Nome do estudante Matrícula do estudante Código da Unidade Nome da Unidade RELACIONAMENTOS Com Unidade 1:N Com Estudante 1:N ATRIBUTOS Data da Matrícula Turma P á g | 22 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. Figura 6 - Diagrama E-R estudante UC – Projeto de Banco de Dados Docente: André Luiz Silva de Moraes 4º sem– Análise e Desenvolvimento de Sistemas Tarefas: 1. Defina os seguintes termos: Conceito Descrição Entidade Atributo Chave primária Relacionamento Generalização Especialização Execute as tarefas práticas a seguir: Crie a modelagem conceitual da seguinte situação: 1) 2) Elaborar uma modelagem de banco de dados para um supermercado que controle o estoque de produtos existentes. A modelagem deve permitir que sejam controladas as seguintes características: a. A informação sobre o tipo de produto (eletrônicos, vestuário, laticínios, carnes, pães e massas, bebidas, higiene, outros). b. A informação do fornecedor de cada produto e o preço de compra; c. A informação da nota-fiscal de compra dos produtos registrando o funcionário que recebeu a carga, data e hora de recebimento e o número da nota; Salvar o esquema de modelagem como roteiro3-modelagem-conceitual-supermercado; 3. Em seguida transforme a modelagem conceitual para a modelagem física utilizando o workbench e detalhando as informações dos campos para armazenamento com o nome roteiro3-modelagem-fisica-supermercado ; 1) Após concluir a modelagem faça a conexão ao banco de dados e aplique a forward-enginner; 2) Salve também o arquivo .SQL gerado pelo workbench; Referências • Capítulo 3: Elmasri, Navathe – Sistemas de banco de dados 6ª Edição; • Material disponibilizado em aula; P á g | 23 Faculdade de Tecnologia SENAC PELOTAS - Credenciado pela Portaria nº. 3.071, de 01 de outubro de 2004. 2.