Banco de Dados Parte 2 Profa. Ana Karina Barbosa fevereiro/2008 Modelagem Conceitual - O Modelo E-R Registro da realidade é feito através da criação de um modelo O Modelo Entidade-Relacionamento Objetivo: obter uma descrição abstrata dos dados que serão armazenados no banco de dados, independente de implementação em computador. Definido por Peter Chen em 1976. Até hoje é considerado um padrão para modelagem conceitual. Técnicas de modelagem orientadas a objeto baseiam-se nos conceitos da abordagem E-R. O Modelo Entidade-Relacionamento Entidade: conceito fundamental Conjunto de objetos da realidade modelada sobre as quais deseja-se manter informações no Banco de Dados Em um diagrama E-R, uma entidade é representada através de um retângulo que contém o nome da entidade. Ex: FUNCIONÁRIO DEPARTAMENTO O Modelo Entidade-Relacionamento Atributo de Entidade Todo objeto para ser uma entidade possui propriedades que são descritas por atributos e valores. Por exemplo, entidade funcionário possui os atributos matrícula, nome, data de admissão. Representação do atributo no diagrama E-R matricula FUNCIONÁRIO nome data admissão O Modelo Entidade-Relacionamento Caso seja necessário referir um objeto particular (uma determinada pessoa ou um determinado departamento) fala-se em ocorrência ou instância de entidade. O Modelo Entidade-Relacionamento Identificadores de entidades: Um atributo ou um conjunto de atributos cujos valores distinguem uma ocorrência da entidade das demais. O identificador deve ser mínimo. Ex: matrícula FUNCIONÁRIO data admissão nome OBS: Em algumas ocasiões, caso não haja explicitamente um identificador, é necessário a inserção de um identificador como “código” ou “ID”. O Modelo Entidade-Relacionamento Atributos nulos É usado quando uma entidade não possui valor para determinado atributo. Ex: para a entidade ALUNO o atributo e-mail pode vir nulo em alguns casos. Representação Gráfica: nome ALUNO e-mail (0,1) O Modelo Entidade-Relacionamento Atributos multivalorados Quando um único atributo possui mais de um valor para a mesma entidade. Ex: telefones Representação Gráfica: FUNCIONÁRIO telefones (1,N) Atributos nulo e multivalorados FUNCIONÁRIO dependentes (0,N) O Modelo Entidade-Relacionamento Relacionamento Fato/acontecimento que liga dois objetos existentes no mundo real. São os elementos que nos dão o sentido da existência dos objetos e suas interrelações. O Modelo Entidade-Relacionamento Relacionamento Em um diagrama E-R, um relacionamento é representado através de um losango, ligado por linhas às entidades que participam do relacionamento. Ex: DEPARTAMENTO Lotação FUNCIONÁRIO O Modelo Entidade-Relacionamento Relacionamento Da mesma forma que ocorre com a entidade, quando se quer referir a associações particulares refere-se a ocorrência ou instância de relacionamento. O Modelo Entidade-Relacionamento Cardinalidade/Grau de Relacionamento Quando se tem um relacionamento entre duas entidades, o número de ocorrências de uma entidade que está associado com ocorrências de outra entidade, determina o Grau do Relacionamento ou Cardinalidade deste fato. O Modelo Entidade-Relacionamento Cardinalidade/Grau de Relacionamento Relacionamento Um-para-Um (1:1): cada elemento de uma entidade relacionase com um e somente um elemento de outra entidade PACIENTE 1 Tem 1 PRONTUÁRIO O Modelo Entidade-Relacionamento Cardinalidade/Grau de Relacionamento Relacionamento Um-para-Muitos (1:N): este grau de relacionamento é o mais comum no mundo real. Um elemento de uma entidade A relaciona-se com muitos elementos de outra entidade B, mas cada elemento da unidade B só pode estar relacionado a um elemento da unidade A. DEPARTAMENTO 1 Lotação N ENGENHEIRO O Modelo Entidade-Relacionamento Cardinalidade/Grau de Relacionamento Relacionamento Muitos-para-Muitos (N:N): cada elemento de uma entidade A relaciona-se com vários elemento de outra entidade B, e os elementos da outra entidade B relaciona-se também com vários elementos da entidade A. ALUNO N Cursa N DISCIPLINA O Modelo Entidade-Relacionamento Cardinalidade/Grau de Relacionamento Relacionamento Obrigatório e Opcional: a cardinalidade 1 também recebe a denominação de “associação obrigatória” enquanto a cardinalidade 0 recebe a denominação de “associação opcional”. CORRENTISTA 1 Tem 0:N FUNDO APLICAÇÂO O Modelo Entidade-Relacionamento Modelagem de relacionamento não é trivial O correto entendimento de uma informação depende muito da condição de interpretação dos fatos e da determinação da inerência dos dados pelo analista de sistemas. FUNCIONÁRIO N FUNCIONÁRIO N ALOCADO ALOCADO 1 N PROJETO PROJETO O Modelo Entidade-Relacionamento Como enxergar entidades e relacionamentos: Através da descrição dos objetos do negócio. Entidades normalmente são obtidas dos substantivos e os relacionamentos dos verbos significativos. EX: Uma instituição é composta por um conjunto de departamentos. Cada departamento aloca um ou mais funcionários. Cada funcionário está locado em um e somente um departamento. Um departamento possui um ou mais escritórios. Cada escritório está vinculado a um único departamento. O Modelo Entidade-Relacionamento Diagrama E-R gerado: 1 DEPARTAMENTO 1 TEM N ESCRITÓRIO ALOCA N FUNCIONÁRIO O Modelo Entidade-Relacionamento EXERCÍCIO 1 Utilizar o modelo Entidade-Relacionamento para modelar um banco de dados de suporte a uma rede hospitalar. O Modelo Entidade-Relacionamento Importante Não se deve preocupar na modelagem, com operações como deleção, inserção, manutenção de dados. Quando se modela, deve-se preocupar com os dados e sua recuperação. Ou seja, obter o entendimento de um negócio ou problema, estruturando seus dados. O Modelo Entidade-Relacionamento Atributo de Relacionamento É utilizado na caracterização de relacionamentos. ENGENHEIRO N N PROJETO trabalha Função LOJA 1 Tipo vende N Qtd. parcelas PRODUTO (0,1) O Modelo Entidade-Relacionamento Tipos de relacionamento Dois ou mais relacionamentos entre duas mesmas entidades. N trabalha N ENGENHEIRO PROJETO 1 coordena 1 O Modelo Entidade-Relacionamento Tipos de relacionamento Auto-relacionamento: um relacionamento entre ocorrências de uma mesma entidade. Papéis devem ser definidos. supervisor 1 supervisão EMPREGADO N supervisionado O Modelo Entidade-Relacionamento Tipos de relacionamento Relacionamento Fraco: restrição de existência, a entidade (chamada entidade fraca), não pode ser identificada através de seus próprios atributos. Numero Seqüência código EMPREGADO 1 tem N DEPENDENTE nome nome O Modelo Entidade-Relacionamento Exercício 2 Utilizar o modelo Entidade-Relacionamento para modelar um banco de dados de suporte a uma Biblioteca Escolar. O Modelo Entidade-Relacionamento Tipos de relacionamento A abordagem E-R permite que sejam definidos relacionamentos de grau maior que dois. Um dos mais comuns é o relacionamento ternário que associa três entidades diferentes em um único relacionamento. No caso de um relacionamento ternário, a cardinalidade refere-se a pares de entidades. O Modelo Entidade-Relacionamento Tipos de relacionamento - Rel.Ternário CIDADE N distribuição DISTRIBUIDOR 1 N PRODUTO • A um par (cidade, distribuidor) podem estar associados muitos produtos. • A um par (produto, distribuidor) podem estar associados muitas cidades. • A um par (cidade, produto) está associado um único distribuidor, garantido-lhe exclusividade. O Modelo Entidade-Relacionamento De um relacionamento ternário para dois binários É possível transformar um relacionamento ternário em dois binários. Este artifício é utilizado muitas vezes a fim de diminuir a complexidade CLIENTE N tem AGÊNCIA 1 N CONTA CORRENTE O Modelo Entidade-Relacionamento De um relacionamento ternário para dois binários CLIENTE N tem N CONTA CORRENTE N 1 pertence AGÊNCIA O Modelo Entidade-Relacionamento Generalização/Especialização Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências de uma entidade genérica. Idéia de herança de propriedades. O Modelo Entidade-Relacionamento Generalização/Especialização código CLIENTE nome Tipo organização CPF sexo PESSOA FÍSICA CGC PESSOA JURÍDICA Visão Top-Down Visão Bottom-Up Pode haver vários níveis hierárquicos de generalização/especialização O Modelo Entidade-Relacionamento Generalização/Especialização A generalização/especialização pode ser classificada em total ou parcial, de acordo com a obrigatoriedade ou não da ocorrência da entidade genérica corresponder a uma ocorrência da entidade especializada. t p O Modelo Entidade-Relacionamento Agregação ou Entidade Associativa Este conceito é utilizado em algumas situações onde existe a necessidade de associar uma entidade a um relacionamento Ex: PACIENTE N consulta N MEDICO • Como associar uma nova entidade MEDICAMENTO ao relacionamento CONSULTA? O Modelo Entidade-Relacionamento Agregação ou Entidade Associativa PACIENTE N consulta N prescrição N MEDICAMENTO N MEDICO O Modelo Entidade-Relacionamento Exercício 3 Utilizar o modelo Entidade-Relacionamento para modelar um banco de dados de suporte a uma empresa de engenharia. O Modelo Entidade-Relacionamento Exercício 4 Utilizar o modelo Entidade-Relacionamento para modelar um banco de dados de suporte a realização de Congressos Científicos. Identificando construções Entidade versus Atributo: quando modelar um objeto como Entidade ou Atributo? Depende da visão que o analista tiver daquele objeto. código EX: CLIENTE nome código nome CLIENTE 1 Tem 1 Codigo Rua ENDEREÇO endereço Bairro Identificando construções Entidade versus Atributo: quando modelar um objeto como Entidade ou Atributo? Dica: um atributo não pode ter atributos, nem estar relacionado a outros, nem ser generalizado ou especializado. Num. do chassi AUTOMÓVEL N nome Num. do chassi Tem cor AUTOMÓVEL tipo 1 COR N Tem N FORNECEDOR Identificando construções Atributo versus generalização/especialização Uma especialização deve ser usada quando sabe-se que as classes especializadas possuem propriedades nome particulares. código código nome Categoria Funcional EMPREGADO EMPREGADO Num. Carteira habilitação MOTORISTA t CREA ENGENHEIRO Verificação do Modelo Modelo deve refletir o aspecto temporal Certas aplicações exigem que o BD guarde o histórico de alterações de informações. Atributos cujos valores modificam ao longo do tempo. • Ex: quando o cliente muda de endereço ou quando o salário do funcionário é alterado. • Nesses casos pode ser importante ter um registro das informações que vão sendo alteradas. Por isso, tanto endereço quanto salário deixam de ser atributos para virar entidades. Verificação do Modelo Modelo deve refletir o aspecto temporal Relacionamentos que modificam ao longo do tempo • Instâncias de relacionamento podem ser adicionadas e removidas ao longo do tempo e também neste caso pode-se querer manter um registro histórico das alterações. EMPREGADO EMPREGADO N lotação 1 DEPARTAMENTO N data lotação N DEPARTAMENTO Verificação do Modelo Consultas a dados referentes ao passado Informações antigas podem ser eliminadas para evitar o crescimento desmedido do BD. Informações antigas podem ser necessárias no futuro, por exemplo, por motivos legais, para realização de auditorias ou para tomadas de decisão. É necessário planejar desde a modelagem por quanto tempo as informações ficarão armazenadas no BD. Podem ser necessários atributos para indicar o status da informação, se atual ou antiga. Verificação do Modelo Planejar o arquivamento de informações antigas É necessário fazer um planejamento de como dados antigos, retirados do banco e armazenados em arquivos convencionais serão acessados no futuro. Uma solução seria a reinclusão dos dados no banco quando estes se fizerem necessários. Planejar informações estatísticas Em alguns casos, informações antigas são necessárias apenas para tomada de decisão. Muitas vezes desejase apenas dados resultante de cálculos ou estatísticas. Pode ser conveniente manter no BD apenas as informações compiladas. Uso de ferramentas de modelagem A criação de diagramas é muito trabalhosa, revisões e processos de atualização são freqüentes. Uso de uma ferramenta CASE - Computer Aided Software Engineering. Uso de programas de propósito geral. Estratégias de Modelagem O processo de construção de um modelo é incremental. Gradativamente, o modelo vai sendo enriquecido como novos conceitos e estes vão sendo ligados aos existentes ou os existentes vão sendo aperfeiçoados. É necessário identificar qual a fonte de informação principal para o processo de modelagem. Descrições de dados existentes. Conhecimento de pessoas. Estratégias de Modelagem Partindo de descrições de dados existentes Em sistemas não automatizados, observa-se dados contidos em documentos (pastas, fichas, documentos fiscais, etc.). Em sistemas já existentes, obtém-se os dados a partir das descrições dos arquivos utilizados pelo sistema. Este processo chama-se Engenharia Reversa. A construção de um modelo partindo das descrições de dados já existentes dá-se de acordo com a estratégia bottom-up. Estratégias de Modelagem Partindo do conhecimento de pessoas Este é o caso quando não existe descrições de dados. Para este caso pode ser aplicados duas estratégias: top-down e inside-out.