1 Gerenciamento de Dados Assunto 2. MODELAGEM DE DADOS Consiste em mapear o mundo real do sistema em um modelo gráfico que irá representar o modelo e o relacionamento existente entre os dados. MODELO DE ENTIDADE-RELACIONAMENTO Principal ferramenta gráfica para representação do Modelo de Dados. Identifica entidades de dados e seus relacionamentos. É um modelo de dados cujos conceitos foram projetados para estar o mais próximo possível da visão que o usuário tem dos dados. Não há preocupação em representar como os dados estarão armazenados. Utilizado durante o processo de projeto de banco de dados. 1. MINI MUNDO Descrição formal da realidade a ser representada. Exemplo: suponhamos que as Faculdades Dom Bosco funcionem assim: Cada aluno pertence a um curso, que por sua vez pode ter vários alunos. O curso é armazenado por um código único e pelo seu nome. Os alunos são cadastrados pela matrícula, nome e endereço. Não existem 2 alunos com a mesma matrícula. Cada curso possui algumas disciplinas que são identificadas por um controle único e pela sua descrição. A mesma disciplina pode ser lecionada em outros cursos em dias diferentes. Cada professor pode ministrar mais de uma disciplina, mas cada disciplina só pode ser lecionada por um único professor. CPF, nome e telefone são os atributos de cada professor. 2. DIAGRAMA Os objetos que compõem o diagrama ER estão listados a seguir: ENTIDADE ATRIBUTO ATRIBUTO CHAVE ENTIDADE FRACA RELACIONAMENTO ATRIBUTO COMPOSTO 1 1 R N E2 Taxa de Cardinalidade 1:N para E1:E2 2 Composto por um conjunto de objetos gráficos que visa representar todos os objetos do modelo Entidade-Relacionamento, tais como entidades, atributos, atributos chaves e relacionamentos, etc. Apresenta uma visão lógica do banco de dados. Fornece um conceito mais generalizado de como estão estruturados os dados de um sistema. 2.1. Entidade Objeto ou evento básico do mundo real, concreto ou abstrato, que possui existência independente, distintamente identificado e tratado como uma categoria definida, acerca da qual armazenamos dados. São entidades: Ente físico ou Jurídico (Funcionário, Cliente, Aluno, etc.); Documento (Nota Fiscal, Ordem de Serviço, etc.); Local (Departamento, Unidade, etc.); Histórico (Histórico Escolar, Vendas Acumuladas, etc.); Material (Matéria-prima, Produto, etc.). Não são entidades: Entidade com apenas 1 elemento; Operações do sistema; Cargos de direção. Instância de Entidade São os elementos da entidade. Exemplo: Cliente 10, Funcionário João, Aluno Pedro, etc. Entidade de Dados (Supertipos) Podem ser subdivididas em diversas categorias de elementos (Subtipos), cada uma se caracterizando por atributos específicos. Pessoa Física Jurídica 3 Entidades Fracas Algumas entidades podem não ter um atributo chave por si só. Não poderemos distinguir algumas entidades por que as combinações dos valores de seus atributos podem ser idênticas. Essas entidades precisam estar relacionadas com uma entidade do tipo entidade proprietária. (entidade forte) (entidade fraca) Banco Agência 2.2. Atributos Dados elementares que permitem descrever a entidade ou relacionamento. Informações que desejamos guardar sobre a instância de entidade. Simples: são aqueles que possuem uma única opção. Ex: Identidade. Determinante: garante a unicidade de cada ocorrência. Ex: Matrícula. Composto: pode ser dividido em outros atributos. Ex: Endereço – Rua + Número + Bairro + Cidade. Multi-valorados: são aqueles que podem mais de uma opção. Usa-se um *. Ex – Telefone - cada um pode ter mais de um telefone. Representação Gráfica O círculo preenchido representa a chave principal Domínio Conjunto ou universo de valores possíveis que um atributo pode armazenar. Exemplo: Conjunto de valores do atributo Sexo do funcionário: M ou F; Conjunto de valores do atributo Nome do aluno: 40 caracteres. Conjunto de valores do atributo Salário: inteiro maior que 5000 4 Tupla É o elemento do conjunto de uma entidade. É uma estrutura de atributos intimamente relacionados e interdependentes que residem em uma entidade específica. É similar a um registro num arquivo comum. Chave ou Identificador É o atributo contido na tupla que a personaliza e individualiza. Chave Primária É o atributo ou grupamento de atributos cujo valor identifica unicamente uma tupla dentre todas as outras de uma identidade. Chave Candidata É o atributo ou grupamento de atributos que tem a propriedade de identificação única. Pode vir a ser a chave primária. Chave Estrangeira Atributo de uma entidade que é a chave primária de outra entidade. Chave Composta ou Concatenada É formada pelo grupamento de mais de um atributo. 2.3. Relacionamento É a associação, com um significado, entre duas ou mais entidades. Exemplo: O João está trabalhando no Aprovisionamento. João - Elemento do conjunto de valores do atributo Nome do funcionário da entidade Funcionário; Aprovisionamento - Elemento do conjunto de valores do atributo Nome do Setor da entidade Setor; Trabalhando - Ligação existente entre um Funcionário e um Setor. FUNCIONÁRIO TRABALHA SETOR 5 2.4. Cardinalidade Representa a freqüência com que existe o relacionamento. Representa a quantidade de elementos da entidade A associados a quantidade de elementos da entidade B e vice-versa. Ex.: 1 para 1 1 para N N para 1 N para N Relacionamento 1:1 Francisco é casado com a Maria. Casado - Ligação entre um Homem e uma Mulher, sendo que um homem pode ser casado com uma e apenas uma mulher, assim como, uma mulher pode ser casada com um e apenas um homem. 1 HOMEM 1 CASAMENTO MULHER Relacionamento 1:N ou N:1 Pedro trabalha no Departamento de Pessoal. Trabalha - Ligação entre um Funcionário e um Departamento, onde um funcionário pode trabalhar em um e somente um departamento e um departamento pode ter vários funcionários. N EMPREGADOS 1 LOTAÇÃO DEPARTAMENTO Relacionamento N : N Antônio está matriculado na disciplina Banco de Dados. Matriculado - Ligação existente entre um Aluno e uma Disciplina, onde um aluno pode estar matriculado em várias disciplinas e cada disciplina pode ter vários alunos matriculados. N ALUNOS N MATRICULADO DISCIPLINA 6 Atributos do Relacionamento Quando um relacionamento possui atributos, também conhecido como relacionamento valorado. Esta situação ocorre apenas em relacionamento N : N. Pedro trabalha no projeto Alfa durante 30 horas. Trabalha - Ligação existente entre um Funcionário e um Projeto. Neste caso, este funcionário trabalha 30 horas neste projeto, porém este mesmo funcionário poderá trabalhar outro número de horas em outro projeto, assim como outro funcionário trabalha outro número de horas no mesmo projeto Alfa. N FUNCIONÁRIO N PROJETO TRABALHA HORAS Relacionamentos Recursivos ou Auto-Relacionamento É o relacionamento estabelecido entre uma entidade e ela mesma. Cada tipo entidade que participa de um tipo relacionamento desempenha um papel particular no relacionamento. No exemplo abaixo nós vemos o papel do empregado para o tipo entidade Empregado. Temos um relacionamento entre o tipo entidade EMPREGADO, onde um empregado pode supervisionar outro empregado e um empregado pode ser supervisionado por outro empregado. N SUPERVISIONA EMPREGADO 1 7 Relacionamento Ternário Quando existe o relacionamento entre três entidades. Ex. Fornecedor comercializa materiais que são usados em projetos específicos. MATERIAIS FORNECEDORES 1 UTILIZADO N N PROJETOS 2.5. Estrutura de generalização e especialização Permite que uma ENTIDADE tenha sub-classes ou pertença a super-classes. A associação entre uma Generalização (super-classe) e suas Especializações (sub-classes), recebe o nome de “isa” (é um) e é representada por um triângulo: Os Atributos Nome, Data Admissão, Rg, são Atributos de Funcionários. O Atributo Idiomas, só é útil para Secretárias. Os Atributos Habilitação, Acidentes são exclusivos dos Motoristas Somente os Motoristas dirigem Veículos. Apenas os Engenheiros participam de Projetos. 8 3. ESQUEMA DE TABELAS Dado um Modelo Entidade-Relacionamento completo, devemos montar um esquema onde aparecem todas as tabelas, com seus campos e chaves. A chave principal deve receber sublinhado simples e a chave secundária um sublinhado duplo. Caso 1: cada produto só é distribuído por um único fornecedor, que pode distribuir vários produtos. preço Produto N 1 Fornecedor distribuição Número Descrição Cnpj Nome Tabelas: estão relacionadas pelo campo Cnpj-Fornec TAB-PRODUTO ( Núm-Prod , Desc-Prod, Preço-Prod , Cnpj-Fornec ) TAB-FORNECEDOR ( Cnpj-Fornec , Nome-Fornec ) Caso 2: cada produto é distribuído por vários fornecedores, que podem distribuir apenas 1 produto. preço Produto Número 1 N distribuição Descrição Cnpj Fornecedor Nome Tabelas: estão relacionadas pelo campo Núm-Prod TAB-PRODUTO ( Núm-Prod , Desc-Prod ) TAB-FORNECEDOR ( Cnpj-Fornec , Nome-Fornec , Preço-Prod , Num-Prod ) 9 Caso 3: cada produto é distribuído por vários fornecedores, que podem distribuir vários produtos. preço N Produto N distribuição Número Descrição Fornecedor Cnpj Nome Tabelas TAB-PRODUTO ( Núm-Prod , Desc-Prod ) TAB-DISTRIBUIÇÃO (Núm-Prod , Cnpj-Fornec , Preço-Prod ) TAB-FORNECEDOR ( Cnpj-Fornec , Nome-Fornec ) 1 TAB-PRODUTO N N TAB-DISTRIBUIÇÃO 1 TAB-FORNECEDOR 4. EXERCÍCIO Mini Mundo – Faculdade Dom Bosco Um Aluno pertence a um único Curso Um Curso possui vários Alunos Cada Aluno é cadastrado por: Matrícula, Nome, Endereço Não existem 2 Alunos com a mesma Matrícula Cada Curso é registrado por: Código e Nome Não existem 2 Cursos com o mesmo Código Um Curso possui muitas Disciplinas Uma Disciplina pode ter em muitos Cursos Cada Disciplina é armazenada por: Controle e Descrição Não existem 2 Disciplinas com o mesmo Controle Cada Disciplina pode ser ministrada em dias diferentes para cada Curso 10 Uma Disciplina é lecionada por um único Professor Um Professor pode lecionar inúmeras Disciplinas Cada Professor é cadastrado por: Cpf, Nome e Telefone Não existem 2 professores com o mesmo Cpf 5. RESPOSTA DO EXERCÍCIO Modelo Entidade-Relacionamentos Nome Matrícula Código 1 N Curso Pertence Aluno Nome End N Controle Possui Disciplina Nome Fone N N 1 Descrição Leciona Dias semana Professor Cpf Esquema de Tabelas TAB-ALUNO ( Matri-Alu , Nome-Alu , Rua-Alu , Bairro-Alu , Cep-Alu , Cidade- Alu , UF-Alu , Cód-Cur ) TAB-CURSO ( Cód-Cur , Nome-Cur ) TAB-CUR-DISC ( Cód-Cur , Contro-Dis , Dia-Semana ) TAB-DISCIPLINA ( Contro-Dis, Descri-Disc , Cpf-Prof ) TAB-PROFESSOR ( Cpf-Prof , Nome-Prof , Fone-Prof ) Fim