Um pouco mais de cardinalidade e Relacionamentos cardinalidade (mínima, máxima) de entidade em relacionamento= número (mínimo, máximo) de ocorrências de entidade associadas a uma ocorrência da entidade em questão através do relacionamento Cardinalidade Máxima • Entidade EMPREGADO tem cardinalidade máxima 1 no relacionamento LOTAÇÃO • Entidade DEPARTAMENTO tem cardinalidade máxima 120 no relacionamento LOTAÇÃO: A cardinalidade máxima pode ser usada para classificar relacionamentos binários. Um relacionamento binário é aquele cujas ocorrências envolvem duas entidades. • Podemos classificar os relacionamentos • em n:n (muitos-para-muitos), 1:n (um-paramuitos) e 1:1 (um-para-um). Exemplos Ternário • Relacionamentos de grau maior do que dois (relacionamentos ternários, quaternários,…) Na linha que liga o retângulo representativo da entidade DISTRIBUIDOR ao losango representativo do relacionamento expressa que cada par de ocorrências (cidade, produto) está associado a no máximo um distribuidor. • Um distribuidor pode distribuir em uma cidade muitos produtos. • Um distribuidor pode distribuir um produto em muitas cidades. Cardinalidade Mínima Pode ser representada por um modelo ER é o número mínimo de ocorrências de entidade que são associadas a uma ocorrência de uma entidade através de um relacionamento • A cardinalidade mínima 1 também recebe a denominação de “associação obrigatória” • a cardinalidade mínima 0 também recebe a denominação de “associação opcional”. cada empregado deve ter a ele alocada obrigatoriamente uma mesa (cardinalidade mínima 1) e que uma mesa pode existir sem que a ela esteja alocado um empregado (cardinalidade mínima 0). Exemplos de Entidades e Relacionamentos • Cada disciplina possui exatamente um departamento responsável, e um departamento é responsável por muitas disciplinas, inclusive por nenhuma. • Uma disciplina pode possuir diversos pré-requisitos, inclusive nenhum. Uma disciplina pode ser prérequisito de muitas outras disciplinas, inclusive de nenhuma. • Uma disciplina pode aparecer no currículo de muitos cursos (inclusive de nenhum) e um curso pode possuir muitas disciplinas em seu currículo (inclusive nenhuma). • Um aluno está inscrito em exatamente um curso e um curso pode ter • nele inscritos muitos alunos (inclusive nenhum). Atributo Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento nome e código são atributos obrigatórios (cardinalidade mínima “1” – cada entidade possui no mínimo um valor associado) e mono-valorados (cardinalidade máxima “1” – cada entidade possui no máximo um valor associado). Já o atributo telefone, é um atributo opcional (cardinalidade mínima 0) e multivalorado (cardinalidade máxima n). Atributos do Relacionamento Identificador Relacionamento Identificador Cada dependente está relacionado a exatamente um empregado. Um dependente é identificado pelo empregado ao qual ele está relacionado e por um número de seqüência que distingue os diferentes dependentes de um mesmo empregado. Modelagem de Dados Usando o Modelo EntidadeRelacionamento (MER) O MER é usado principalmente durante o processo de projeto da base de dados. No projeto conceitual, você elabora o modelo conceitual do BD, ou seja, a representação de elementos do mundo real (entidades e seus atributos) e os relacionamentos existentes entre eles. Este modelo de alto nível facilita a compreensão do ambiente real do usuário sem estar vinculado a nenhum modelo tecnológico de BD. Representa as propriedades estáticas do sistema, definindo a estrutura do BD em alto nível. Os três elementos fundamentais que fazem parte do MER Entidade – representação abstrata de objetos de interesse do sistema no mundo real do qual você deve armazenar informações. Atributo – tipo de informação elementar que deve ser armazenada de cada entidade, representando uma propriedade ou um relacionamento entre elas. Relacionamento – representa uma associação entre entidades Modelo conceitual A modelagem conceitual basea-se no mais alto nível e deve ser usada para envolver o cliente. Os exemplos de modelagem de dados visto pelo modelo conceitual são mais fáceis de compreender, já que não há limitações ou aplicação de tecnologia específica. O diagrama de dados que deve ser construido aqui, chama-se Diagrama Entidade e Diagrama Entidade e Relacionamento, onde deverá ser identificado todas as entidades e os relacionamentos entre elas. Este diagrama é a chave para a compreensão do modelo conceitual de dados. Modelo lógico O modelo lógico já leva em conta algumas limitações e implementa recursos como adequação de padrão e nomenclatura. Define as chaves primárias e estrangeiras. deve ser criado levando em conta os exemplos de modelagem de dados criados no modelo conceitual. Modelo físico No modelo físico fazemos a modelagem física do modelo de banco de dados. Leva-se em conta as limitações impostas pelo SGBD escolhido e deve ser criado sempre com base nos exemplos de modelagem de dados produzidos no item anterior, modelo lógico. Exemplo de projeto Uma escola deseja tornar disponível, em uma intranet, as notas dos alunos por matéria e por bimestre, sendo que um semestre terá sempre duas notas bimestrais e a média final do semestre será calculada pelo sistema. Na página, o aluno poderá visualizar o código e a descrição da matéria, o bimestre, a nota e, no final do semestre, a respectiva média final, consultar quais matérias cursa e os respectivos professores. O professor terá acesso às matérias que leciona em cada curso para lançar as notas de cada aluno. A escola poderá extrair relatórios ou pesquisas sobre as matérias que o aluno cursa e, ainda, quais professores lecionam uma determinada matéria. Para que não haja confusão entre matérias com mesmo nome, todas as matérias possuirão um código próprio que as distinguirão por curso e por turma. Assim, matemática I da turma A do curso de Ciência da Computação, terá um código de matéria diferente de matemática I da turma B do mesmo curso. Será diferente também da matemática I de qualquer outro curso. Dessa forma, cada código de matéria terá somente um professor responsável. Para iniciar o levantamento de informações, considerando normalmente que neste texto: • Um substantivo indica a existência de uma entidade; • Um verbo indica a existência de um relacionamento; • Um adjetivo indica a existência de um atributo (qualifica a entidade); • Um advérbio temporal, qualificando o verbo, indica a existência de um • atributo de relacionamento. Cardinalidade Uma nota pertence a apenas um aluno. Um aluno possui muitas notas.Então: um aluno – muitas notas. Um aluno cursa muitas matérias. Uma matéria é cursada por muitos alunos. Então: muitos alunos – muitas matérias. Uma matéria tem muitas notas. Uma nota pertence a uma matéria. Então: uma matéria – muitas notas. Um professor leciona muitas matérias. Uma matéria é lecionada por apenas um professor. Então: um professor – muitas matérias. Uma turma tem muitas matérias. Uma matéria é ligada a muitas turmas. Então: muitas turmas – muitas matérias. • Relacionamento um-para-um: a escolha da chave estrangeira fica a critério do programador em escolher em qual tabela ficará. • Relacionamento um-para-muitos: a chave estrangeira tem por obrigação de estar na tabela cuja cardinalidade é o "muitos“. • Relacionamento muitos-para-muitos: escolha de sua chave estrangeira deve estar em uma tabela extra. Estudo de caso - Locadora de vídeos Uma pequena locadora de vídeos possui ao redor de 2.000 fitas de vídeo, cujo empréstimo deve ser controlado. Cada fita possui um número. Para cada filme, é necessário saber seu título e sua categoria (comédia, drama, aventura, …). Cada filme recebe um identificador próprio. Para cada fita é controlado que filme ela contém. Para cada filme há pelo menos uma fita, e cada fita contém somente um filme. Alguns poucos filmes necessitam duas fitas. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, é necessário manter a informação dos atores que estrelam em cada filme. Nem todo filme possui estrelas. Para cada ator os clientes às vezes desejam saber o nome real, bem como a data de nascimento. A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar fitas. Para cada cliente é necessário saber seu prenome e seu sobrenome, seu telefone e seu endereço. Além disso, cada cliente recebe um número de associado. Finalmente, desejamos saber que fitas cada cliente tem emprestadas. Um cliente pode ter várias fitas em um instante no tempo. Não são mantidos registros históricos de aluguéis. Sistema de recepção de encomendas na empresa XXX. A empresa XXX é uma pequena empresa onde se processam as encomendas da seguinte forma: Sempre que chega uma nota de encomenda esta será validada, verificando-se a existência de produto, através da consulta a uma lista de produtos existentes e da quantidade em estock. Para que uma encomenda seja aceite é necessário, existirem os produtos em quantidade necessária e também ter conhecimento das referências do cliente. Caso não se verifique qualquer uma das condições, a encomenda será rejeitada sendo o respectivo cliente avisado. No caso de a encomenda ser aceita será dado andamento ao processo para que a expedição da mercadoria seja feito o mais rápido possível.