BDModelagem_Apostila

March 16, 2018 | Author: Lucas Ricardo | Category: Databases, Data, Science, Mathematics, Computing And Information Technology


Comments



Description

MODELAGEM DE DADOS E FUNÇÕES. Zamboni, Ricardo MDA Fol.: 2 Capítulo 1 Modelagem de dados - Básico MD - Zamboni, Ricardo Página 2 MDA Fol.: 3 Objetivos deste capítulo 1 Identificar e Modelar Entidades 2 Analisar e modelar os relacionamentos entre as entidades 3 Analisar e Modelar atributos 4 Destacar os identificadores únicos de cada entidade 5 Desenvolver um modelo Entidade-Relacionamento baseado em uma especificação MD - Zamboni, Ricardo Página 3 MDA Fol.: 4 MODELO ORACLE PARA DESENVOLVIMENTO DE SISTEMAS 1. ESTRATÉGIA 2. ANÁLISE 3. DESIGN 4. CONSTRUÇÃO 5 DOCUMENTAÇÃO 6. TRANSIÇÃO 7. PRODUÇÃO MD - Zamboni, Ricardo Página 4 MDA Fol. Local de trabalho. Projeto do Sistema... James Martin. Ricardo Página 5 . .: 5 1. . 2. ANÁLISE . Construir os Códigos . . 3. . Tabulação das informações. DHF.PROJETO FÍSICO . MD . Gerar Bases de Dados. . .Zamboni. CONSTRUÇÃO . Backman (Oracle). DESIGN . ESTRATÉGIA . etc. DFD.PROJETO LÓGICO . Equipamentos para o desenvolvimento do projeto. Documentar todas as etapas do desenvolvimento do sistema.MER. Projeto das Bases de Dados.Peter Chain. Metodologia a ser adotada .Programas. Modelagem . 5. . 4. Técnicas a serem aplicadas. Estudo do problema proposto. DOCUMENTAÇÃO . . Feed-Back. Tunning. . Processo paralelo entre o velho e o novo aplicativo. Sistema em execução normal. Treinamento.Zamboni. . 7.MDA Fol. PRODUÇÃO . MD . Estado de manutibilidade. Back-up. Ricardo Página 6 . .: 6 6. . TRANSIÇÃO . Ricardo Página 7 . • É o requerimento do negócio.: Pratos Strogonoff Ingredientes Carne/Frango/Camarão Champignon Tomate Creme de Leite Temperos : Sal Cebola Molho Inglês MD . independentemente dos processos que a manipulam.MDA Fol.Zamboni. • Ex.: 7 ANÁLISE DE DADOS É um conjunto de técnicas que permitem investigar a realidade do ponto de vista de seus dados. 1976 PRODUTO DA ANÁLISE DE DADOS • O produto da Análise de Dados é o Modelo de Dados. Ricardo Página 8 .MER 2. que descreve a empresa através de seus dados.DD MD . Modelagem de Dados . Dicionário de Dados .Codd . Modelo Entidade-Relacionamento .MDA Fol.Zamboni.1972 2.: 8 TÉCNICAS PARA ANÁLISE DE DADOS 1.Peter Chen . • Componentes : 1. Normalização . : Automóvel ? : .Definição Ruim : Veículo para transportar pessoas.Tesouraria .Definição Melhor : Veículo de 4 rodas. Conhecer melhor o problema.Zamboni. 2.Secretaria . Evitar problemas de redundância de dados. Ex.: 9 FINALIDADES DA ANÁLISE DE DADOS 1.MDA Fol. impulsionado por um motor de combustão interna.: Aluno . .Características : .Biblioteca MD . Ricardo Página 9 . Ex. projetado para transportar pessoas. Financeiros.O Dado é um recurso da empresa.Dá para mais de um prato. . . 4.: Ingredientes de uma receita culinária para Molho . Equipamentos. .O Dado é da Empresa. MD . tanto quanto os recursos: Humanos.F.Integração dos dados da empresa.Zamboni.Ex.D.S.Ajuda na investigação dos Processos D. 5. .D. . . Ricardo Página 10 . Permitir o compartilhamento dos dados.Análise Funcional.: 10 3.H. Ferramenta para o Desenvolvimento de Sistemas. Ferramenta para a Administração de Dados . Tecnológicos.MDA Fol. Zamboni.: 11 QUEM FAZ A ANÁLISE DE DADOS .Administrador de Dados .Usuário MD .Analistas de Sistemas .MDA Fol. Ricardo Página 11 . Construir e manter o Modelo Conceitual de Dados da empresa. MD . 2.Dicionário de Dados. as descrições dos dados da empresa. 5. 6.Zamboni. Gerenciar os Dados .MDA Fol.: 12 FUNÇÕES DO ADMINISTRADOR DE DADOS 1.Recurso da empresa. Facilitar o desenvolvimento de aplicações para os dados. Promover a integração entre os diversos sistemas de aplicação. Ricardo Página 12 . 3. Manter um registro com a descrição de todos os dados existentes na empresa . 4. Divulgar aos usuários e analistas. Ricardo Página 13 . a sistemas isolados e arquivos redundantes.Zamboni.Dados são mais estáveis do que as funções. enquanto a abordagem pelos dados permite obter aplicativos que compartilham dados.A abordagem funcional leva.: 13 RAZÕES PARA ABORDAR UM SISTEMA A PARTIR DOS DADOS . . MD .MDA Fol. normalmente. MDA Fol. EMPREGADO #* número * nome o cargo * data de entrada * salario * comissão associado a responsável por DEPARTAMENTO #* número * nome * localização Componentes do MER MD . e é executado durante os estágios da estratégia e análise do ciclo de vida do desenvolvimento de um projeto. Especificação do negócio Estratégia Análise Modelo de Dados Conceitual Modelo Entidade-Relacionamento Definições das Entidades Projeto do Banco de dados Projeto Implementação Implementação do Banco de dados Sistema A meta da modelagem de dados é desenvolver um modelo de entidade-relacionamento (MER) que represente a especificação do negócio. Exemplo O seguinte MER representa informações sobre um departamento de recursos humanos.Zamboni. Ricardo Página 14 .: 14 Modelo de dados Conceitual O modelo de dados conceitual é o primeiro passo para o processo de desenvolvimento de um banco de dados. Sintaxe Robusta Um MER documenta e organiza uma especificação de maneira clara e precisa. Facilidade no desenvolvimento Um MER pode ser facilmente definido e refinado. Ricardo Página 15 . Definições • Um objeto de interesse de um negócio • Uma classe ou categoria de idéia • Uma idéia identificada por um nome MD .Zamboni. Integração entre aplicações Um MER fornece um método onde torna-se simples o ‘LINK’ entre diferentes aplicações. Definição do escopo Um MER fornece uma ilustração clara do escopo da especificação.: 15 Um modelo entidade-relacionamento (MER) é um meio efetivo para estabelecer e documentar uma especificação.MDA • Entidades • Relacionamentos • Atributos Fol. Comunicação com o usuário O usuário pode entender facilmente a forma de representação gráfica utilizada. Entidades Uma entidade é uma idéia de significância sobre qual informação necessitamos conhecer. MDA Fol.Zamboni. nome e salário Possíveis atributos da entidade DEPARTAMENTO : nome.: 16 Exemplos pessoal : Os seguintes itens podem ser considerados necessários em uma especificação de um departamento EMPREGADO DEPARTAMENTO PROJETO Os atributos descrevem as entidades e são pontos específicos a serem conhecidos. número e localização Convenções • • • • Caixas com dimensões quaisquer O nome da entidade deve ser único e singular Nomes opcionais entre parênteses Nomes dos atributos em minúsculo Exemplos EMPREGADO (FUNCIONÁRIO) número do registro nome salário DEPARTAMENTO numero nome localização CLIENTE nome cargo telefone endereço PROJETO código titúlo descrição localização Cada entidade deve ter múltiplas ocorrências ou instâncias (registros). MD . Exemplo Possíveis atributos da entidade EMPREGADO : número do registro. Ricardo Página 16 . Exemplo A entidade EMPREGADO tem atributos número. jurídico. Exemplo Cada empregado tem um número de registro. Manoel dos Santos A entidade DEPARTAMENTO tem as seguintes ocorrências: finanças.: 17 Exemplos A entidade EMPREGADO tem as seguintes ocorrências: José da Silva. nome e salário. Número de registro é uma chave candidata a ser o UID da entidade EMPREGADO.Zamboni.500. Um atributo ou conjunto de atributos que representa esta forma de identificação é chamado de identificador único (UID).00 Obs: Cada instância (registro) deve ter uma forma única de ser identificada dentro de uma mesma entidade. MD . número : 10000 nome :José da silva salário : R$1. Ricardo Página 17 .MDA Fol. administrativo Cada instância possui valores específicos para os atributos. Maria dos Reis. : 18 Exemplo Quais atributos podem ser UID das seguintes entidades ? EMPREGADO número do registro nome salário DEPARTAMENTO numero nome localização CLIENTE nome cargo telefone endereço PROJETO código titúlo descrição localização Identificar e Modelar entidades Siga os passos abaixo para identificar e modelar entidades baseado em uma especificação formal.MDA Fol. Desenhar cada entidade e listar seus atributos. Eles são significantes ? Nomear as entidades. Ricardo Página 18 . Examinar informações de interesse sobre a entidade que são importantes no projeto Cada instância da entidade é identificável ? Qual atributo ou atributos serve(m) como Escrever uma descrição para a entidade : Exemplo: José da silva e Maria dos reis são empregados.Zamboni. MD . UID ? 4 5 6 Examinar os substântivos da especificação. 1 2 3 (atributos). mantemos também o número do telefone dos alunos. Mantemos aqui o nome e o telefone de cada instrutor. A duração de cada curso pode variar de um a quatro dias. Ministramos vários cursos. Ricardo Página 19 .MDA Fol. assiste a todos os cursos que oferecemos. que são identificados por um código. Nós criamos um curso e alocamos um único instrutor para este curso criado. Paul Rogers e Maria Gonzales são dois dos nossos melhores instrutores. Alguns de nossos alunos e instrutores não possuem telefone. Um instrutor pode ensinar vários cursos. Os alunos (clientes) podem participar de vários cursos.: 19 Exemplo Identificar e modelar as entidades a partir das seguintes informações “Sou gerente de uma empresa de treinamento que ministra cursos de caráter técnico. Além do nome.” Solução CURSO código nome preço duração INSTRUTOR (PROFESSOR) nome telefone ALUNO (CLIENTE) nome telefone MD . da AT&T. nome e preço. Os cursos “Introdução ao UNIX” e “Programando em C” são alguns de nossos cursos mais populares. O Jamie Brow.Zamboni. terror. Apenas mantemos os aluguéis correntes (pendentes). Além disso mantemos o status de crédito de cada um. Cada fita contém um número e um formato que deve ser Beta ou VHS. Liste os atributos para cada uma das entidades encontradas. Apenas alugamos filmes para pessoas inscritas em nosso cadastro. suspense. e cada fita tem apenas um filme. Queremos controlar os aluguéis de filmes. Sempre temos uma fita para cada filme. as pessoas alugam filmes pesquisando pelos atores que atuam no filme desejado. telefone e endereço. etc). Para cada filme. Temos muitos clientes. Para cada sócio da locadora mantemos seu nome. Claro que cada sócio possui um número de identificação. Muitos de nossos filmes tem mais de uma cópia.: 20 Exercício 1-1 Identificar e modelar as entidades para o conjunto de informações abaixo. fornecemos um ID e então controlamos qual filme uma fita contém. Os clientes gostam de saber a data de nascimento de um ator. Queremos manter informações sobre os atores que atuam em nossos filmes. Temos mais de 3000 fitas e queremos um sistema para controlá-las. Nem todos os filmes são estrelados por atores e só mantemos aqui registro dos atores que atuam em filmes disponíveis em nossa locadora. “Sou proprietário de uma pequena loja de vídeo.Zamboni. Freqüentemente. Não temos aqui nenhum filme que requeira mais que uma fita.MDA Fol. “ MD . Não controlamos histórico de locações. Um cliente pode alugar vários filmes ao mesmo tempo. Para cada filme. John Wayne e Katherine Hepburn são muito populares. precisamos saber seu título e categoria (comédia. Ricardo Página 20 . bem como o seu verdadeiro nome. de locações” é coerente? Por qual motivo? 3-) Se quisermos controlar o histórico das locações. Ricardo Página 21 .Zamboni. qual será a conseqüência? 2-) A Frase “Queremos controlar.MDA Fol... este esquema será alterado? Por qual motivo? MD .: 21 Solução : Perguntas Adicionais:1-) Caso eu cadastre um ator c/data de nascimento errada. MDA Fol. Ricardo Página 22 . Opcionalidade opcional (pode ser) Mandatório (deve ser) Grau um ou mais um e somente um Exemplos Leia o relacionamento entre EMPREGADO e DEPARTAMENTO : EMPREGADO associado a responsável por DEPARTAMENTO Leia primeiro da esquerda para a direita e depois da direita para a esquerda. ou entre uma entidade e ela mesma (auto-relacionamento). Cada instrutor pode ministrar um ou mais cursos. • Esquerda para a direita MD .Zamboni. Sintaxe do relacionamento: Cada entidade1 pode ser um ou mais ou nome do relacionamento ou entidade 2 deve ser um e somente um Exemplo Relacionamento entre instrutor e curso : Cada curso pode ser ministrado por um e somente um instrutor .: 22 Relacionamentos Um relacionamento é uma associação significante entre duas entidades. Cada direção do relacionamento tem : • um nome • uma opcionalidade • um grau Convenções Os nomes dos relacionamentos devem estar em letras minúsculas. • Direita para a esquerda EMPREGADO DEPARTAMENTO responsável por Cada DEPARTAMENTO pode ser responsável por um ou mais EMPREGADOS.: 23 associado a DEPARTAMENTO Cada EMPREGADO deve estar associado a um somente um DEPARTAMENTO. Cada CURSO pode ter um ou mais ESTUDANTES.MDA EMPREGADO Fol. Relacionamento entre ESTUDANTE e CURSO : ESTUDANTE matriculado em possui CURSO Cada ESTUDANTE pode estar matriculado em um ou mais CURSOS.Zamboni. Ricardo Página 23 . MD . Fol.MDA Relacionamento entre HOLLERITE e EMPREGADO.Zamboni. Ricardo Página 24 .: 24 HOLLERITE para recebedor do EMPREGADO Cada HOLLERITE deve ser para um e somente um EMPREGADO Cada EMPREGADO pode ser recebedor de um ou mais HOLLERITES MD . : 25 Exercício 1-2 Escreva as sentenças de relacionamento para o seguinte diagrama : PEDIDO número tipo formado por parte de ITEM número descrição gerado por efetua armazenado em armazena CLIENTE nome ARMAZEM id endereço Solução : MD . Ricardo Página 25 .Zamboni.MDA Fol. Cada EMPREGADO pode ser associado a uma ou mais ATIVIDADES.MDA Fol.: 26 Exercício 1-3 Desenhe um diagrama de Entidade-Relacionamento para as sentenças abaixo: 1. Cada EMPREGADO deve ser associado a um e somente um DEPARTAMENTO. 4. 3.Zamboni. Solução: MD . 2. Cada DEPARTAMENTO pode ser responsável por um ou mais EMPREGADOS. Ricardo Página 26 . Cada ATIVIDADE pode ser executada por um ou mais EMPREGADOS. Cada DISK pode ser hospedeiro para um ou mais FILEs. Cada FILE deve ser residente em um e somente um DISK. Cada SEGMENT deve ser incluído em uma e somente uma TABLESPACE.MDA Fol. Cada TABLESPACE pode ser dividida em um ou mais SEGMENTs.Zamboni. Cada EXTENT deve ser incluído em um e somente um SEGMENT. Cada EXTENT deve ser composto de um ou mais BLOCKs. Cada TABLESPACE deve ser formada por um ou mais FILEs. Ricardo Página 27 . Cada BLOCK deve ser parte de um e somente um EXTENT. Cada FILE pode ser parte de uma e somente uma TABLESPACE. Cada SEGMENT deve ser constituído de um ou mais EXTENTs.: 27 Exercício 1-4 Desenhe um diagrama de Entidade-Relacionamento para as sentenças abaixo: Cada BASEDADOS deve ser formada por um ou mais TABLESPACEs. Solução: MD . Cada TABLESPACE deve ser parte de um e somente uma BASEDADOS. MDA Fol.Zamboni. Relacionamento muitos para muitos Um relacionamento muitos para muitos (M para M ou M:M) tem grau de um ou mais nas duas direções. São eles: • Relacionamento muitos para um • Relacionamento muitos para muitos • Relacionamento um para um Relacionamento muitos para um Um relacionamento muitos para um (M para 1 ou M:1) tem um grau de um ou mais em uma direção e grau de um e somente um em outra direção. Exemplo Existe um relacionamento M:M entre ESTUDANTE e CURSO ESTUDANTE matriculado em possui CURSO MD .: 28 Tipos de Relacionamentos Existem 3 tipos de relacionamentos. Cada VENDEDOR pode atender um ou mais CLIENTEs. Exemplo Existe um relacionamento M:1 entre a entidade CLIENTE e VENDEDOR. CLIENTE atendido por atende VENDEDOR Cada CLIENTE deve ser atendido por um e somente um VENDEDOR. Ricardo Página 28 . MD .MDA Cada ESTUDANTE pode ser matriculado em um ou mais CURSOS. Existe um relacionamento M:M entre EMPREGADO e PROJETO. Cada MOTHERBOARD pode estar incorporada em um e somente um MICROCOMPUTADOR. Exemplo Existe um relacionamento 1:1 entre MICROCOMPUTADOR e MOTHERBOARD.Zamboni. Cada CURSO pode possuir um ou mais ESTUDANTES. EMPREGADO Fol. MICROCOMPUTADOR tem incorporada em MOTHERBOARD Cada MICROCOMPUTADOR deve ter uma e somente uma MOTHERBOARD.: 29 associado a desenvolvido por PROJETO Cada EMPREGADO pode estar associado a um ou mais PROJETOS. Cada PROJETO pode ser desenvolvido por um ou mais EMPREGADOS. Ricardo Página 29 . Relacionamento um para um Um relacionamento um para um (1 para 1 ou 1:1) tem um grau de um e somente um em ambas direções. MDA Fol. • Todas as entidades devem ser listadas na primeira linha e na primeira coluna da matriz.: 30 Usando uma Matriz de relacionamentos Utilizamos uma matriz de relacionamentos como auxilio para detectar os relacionamentos existentes entre as entidades encontradas em uma dada especificação. Escreva os nomes dos relacionamentos e adicione a opcionalidade e graus necessários. • Relacionamentos recursivos (entre uma mesma entidade) são representados nos boxes diagonais. OBS: Podemos mapear o conteúdo de uma matriz de relacionamento para um diagrama E-R. • Para cada relacionamento existente tem um relacionamento inverso abaixo da linha diagonal.Zamboni. • Senão existe relacionamento. • Uma matriz de relacionamento mostra se existe relacionamento entre entidades e qual entidade está relacionada com outra entidade. coloca-se um traço na interseção. • Se existe um relacionamento então o nome deste relacionamento deve ser colocado na interseção entre as entidades. Exemplo A seguinte matriz mostra um conjunto de relacionamentos entre quatro entidades CLIENTE CLIENTE ITEM PEDIDO ARMAZÉM ITEM PEDIDO efetua parte de ARMAZÉM armazenado em gerado por formado por armazena A entidade CLIENTE está relacionada com pedido e o nome do relacionamento é efetua. Exemplo Desenhe um diagrama baseado na matriz de relacionamento acima. Ricardo Página 30 . MD . MDA Fol.Zamboni.: 31 Solução : PEDIDO número tipo formado por parte de ITEM número descrição gerado por efetua armazenado em armazena CLIENTE nome ARMAZEM id endereço MD . Ricardo Página 31 . Existe um relacionamento significante entre DEPARTAMENTO e EMPREGADO ? Sim. Considere agora as entidades DEPARTAMENTO e ATIVIDADE. DEPARTAMENTO e EMPREGADO na matriz e marque os relacionamentos existentes. ATIVIDADE ATIVIDADE DEPARTAMENTO EMPREGADO  DEPARTAMENTO  EMPREGADO   MD .Zamboni. Podemos utilizar uma matriz de relacionamentos para examinar sistematicamente cada entidade em relação a outra entidade. Determine a opcionalidade de cada direção do relacionamento. 3. Determine a existência do relacionamento.MDA Fol. 2.: 32 Analisar e modelar relacionamentos Siga os passos abaixo para analisar e modelar os relacionamentos : 1. 4. Determine o grau de cada direção do relacionamento. Ricardo Página 32 . existe. Exemplo Escreva as entidades ATIVIDADE. não existe. Nomeie cada direção do relacionamento.Determinando a existência do relacionamento Determinar a existência de um relacionamento se faz examinando cada entidade para saber se existe um relacionamento entre elas. Leia o relacionamento para validá-lo. Existe um relacionamento significante entre DEPARTAMENTO e ATIVIDADE? Não. Faça a seguinte pergunta: Existe um relacionamento significante entre a entidade A e a entidade B ? Exemplo Considere as entidades DEPARTAMENTO e EMPREGADO. 5. Passo1 . Exemplo Considere o relacionamento entre DEPARTAMENTO e EMPREGADO.Zamboni. Como a entidade A está relacionada com a entidade B ? A entidade A é (está) nome do relacionamento com a entidade B. Coloque os nomes dos relacionamentos entre DEPARTAMENTO e EMPREGADO.MDA Fol.Nomear o relacionamento Nomear cada direção do relacionamento. Um DEPARTAMENTO deve ou pode ser responsável por um empregado ? Pode. Ricardo Página 33 . EMPREGADO associado a responsável por DEPARTAMENTO MD . Desenhando a opcionalidade. Como DEPARTAMENTO se relaciona com EMPREGADO ? Cada DEPARTAMENTO é responsável por um EMPREGADO. Como a entidade B está relacionada com a entidade A ? A entidade B é (está) nome do relacionamento com a entidade A.Determinar a opcionalidade dos relacionamentos Determinamos a opcionalidade de cada direção do relacionamento. ATIVIDADE ATIVIDADE DEPARTAMENTO EMPREGADO  DEPARTAMENTO EMPREGADO  responsável por associado a Passo 3 . Pergunta : A entidade A deve ou pode estar relacionada com a entidade B ? A entidade B deve ou pode estar relacionada com a entidade A ? Exemplo Considere o relacionamento entre DEPARTAMENTO e EMPREGADO. Um EMPREGADO deve ou pode estar associado a um DEPARTAMENTO ? Deve. Como EMPREGADO se relaciona com DEPARTAMENTO ? Cada EMPREGADO está associado a um DEPARTAMENTO.: 33 Passo 2 . Zamboni. Pergunta: A entidade A pode (ou deve) ser nome do relacionamento mais que uma entidade B? A entidade B pode (ou deve) ser nome do relacionamento mais que uma entidade A? Exemplo Considere o relacionamento entre DEPARTAMENTO e EMPREGADO. Ricardo Página 34 . EMPREGADO associado a responsável por DEPARTAMENTO MD . Um EMPREGADO pode estar associado a mais que um DEPARTAMENTO? Não. Um DEPARTAMENTO pode ser responsável por mais que um EMPREGADO? Sim. Adicionando o grau.MDA Fol.: 34 Passo 4 .Determinar o grau dos relacionamentos Devemos determinar o grau do relacionamento nas duas direções. Exemplo Leia o relacionamento representado pelo seguinte diagrama. Ricardo Página 35 . MD .Zamboni.MDA Fol.Validar o relacionamento Reexamine o MER e valide o relacionamento.: 35 Passo 5 . Cada DEPARTAMENTO pode ser responsável por um ou mais EMPREGADOS. EMPREGADO associado a responsável por DEPARTAMENTO Cada EMPREGADO deve ser associado a um e somente um DEPARTAMENTO. Nós criamos um curso e alocamos um único instrutor para este curso criado.MDA Fol. Os cursos “Introdução ao UNIX” e “Programando em C” são alguns de nossos cursos mais populares. nome e preço. Ministramos vários cursos. Alguns de nossos alunos e instrutores não possuem telefone.: 36 Exercício 1-5 Analisar e modelar os relacionamentos do conjunto de informações abaixo. Mantemos aqui o nome e o telefone de cada instrutor. Um instrutor pode ensinar vários cursos. Além do nome. Paul Rogers e Maria Gonzales são dois dos nossos melhores instrutores.Zamboni. Utilize a matriz de relacionamentos para detectar a existência de relacionamentos entre as entidades. A duração de cada curso pode variar de um a quatro dias. O Jamie Brow. que são identificados por um código.” CURSO código nome preço duração INSTRUTOR (PROFESSOR) nome telefone ALUNO (CLIENTE) nome telefone MD . “ Sou gerente de uma empresa de treinamento que ministra cursos de caráter técnico. assiste a todos os cursos que oferecemos. Ricardo Página 36 . da AT&T. mantemos também o número do telefone dos alunos. Os alunos (clientes) podem participar de vários cursos. MDA Fol.: 37 Solução : MD - Zamboni, Ricardo Página 37 MDA Fol.: 38 Exercício 1-6 Analisar e modelar os relacionamentos do seguinte conjunto de informações. Utilize a matriz de relacionamentos para detectar a existência de relacionamentos entre as entidades. “Sou proprietário de uma pequena loja de vídeo. Temos mais de 3000 fitas e queremos um s istema para controlá-las. Cada fita contém um número e um formato que deve ser Beta ou VHS. Sempre temos uma fita para cada filme, e cada fita tem apenas um filme. Não temos aqui nenhum filme que requeira mais que uma fita. Para cada filme, precisamos saber seu título e categoria (comédia, suspense, terror, etc). Muitos de nossos filmes tem mais de uma cópia. Para cada filme, fornecemos um ID e então controlamos qual filme uma fita contém. Freqüentemente, as pessoas alugam filmes pesquisando pelos atores que atuam no filme desejado. John Wayne e Katherine Hepburn são muito populares. Queremos manter informações sobre os atores que atuam em nossos filmes. Nem todos os filmes são estrelados por atores e só mantemos aqui registro dos atores que atuam em filmes disponíveis em nossa locadora. Os clientes gostam de saber a data de nascimento de um ator, bem como o seu verdadeiro nome. Temos muitos clientes. Apenas alugamos filmes para pessoas inscritas em nosso cadastro. Para cada sócio da locadora mantemos seu nome, telefone e endereço. Claro que cada sócio possui um número de identificação. Além disso mantemos o status de crédito de cada um. Queremos controlar os aluguéis de filmes. Um cliente pode alugar vários filmes ao mesmo tempo. Apenas mantemos os aluguéis correntes (pendentes). Não controlamos histórico de locações. “ MD - Zamboni, Ricardo Página 38 MDA Fol.: 39 Solução : MD - Zamboni, Ricardo Página 39 MDA Fol.: 40 Layout do diagrama de Entidade-Relacionamento Devemos procurar construir um diagrama de fácil leitura e entendimento para as pessoas que vão trabalhar com este diagrama. Algumas regras a serem seguidas: • Desenhe as entidades em caixas; • Desenhe os relacionamentos na horizontal ou vertical; • Use um ângulo de 30º ou 60º para relacionamentosexclusivos (apresentado posteriormente); • Faça o desenho espaçado para evitar congestionamentos; • Dê preferência as linhas paralelas para evitar cruzamentos; • Utilize textos não ambíguos; • Evite abreviações e apelidos nos nomes de entidades, atributos e relacionamentos; • Adicione adjetivos para melhorar o entendimento, se necessário; • Alinhe os textos horizontalmente; • Coloque o nome do relacionamento próximo a entidade que o gerou. Atributos Atributos são informações que necessitam ser conhecidas sobre uma entidade. Atributos descrevem uma entidade qualificando, identificando, classificando, quantificando ou expressando o estado da mesma. Abaixo temos alguns atributos da entidade EMPREGADO: Número do registro identifica um empregado; Nome qualifica um empregado; Categoria de salário (mensal ou horista) classifica um empregado; Idade quantifica um empregado; Status do empregado (ativo, afastado ou inativo) expressa o estado de um empregado. OBS : Atributos representam um tipo de descrição ou detalhe, não uma instância. Exemplo 77605 e 76311 são valores do atributo registro do empregado João da Silva é um valor do atributo nome do empregado. MD - Zamboni, Ricardo Página 40 MD . totalização. vendedor que efetuou a venda e número do item.MDA Fol.: 41 Convenções • Os nomes dos atributos devem ser singulares e escritos em letra minúscula. média. etc. Exemplo ITEM número ITEM número tipo vendedor O número de um item pode ser expandido para tipo do item. máximo. • A lista de atributos devem estar dentro da caixa da sua respectiva entidade. Não devemos incluir este tipo de atributo no diagrama. Obs : Devemos também verificar se cada atributo tem um único valor para cada instância da entidade. Um atributo multi-valorado (1º Forma Normal) não é um atributo válido (será visto nos próximos capítulos). Ricardo Página 41 .Zamboni. Derivações mais comuns : Contagem. Exemplo CURSO código nome preço duração INSTRUTOR (PROFESSOR) nome telefone ALUNO nome telefone Podemos “quebrar” um determinado atributo em outros atributos. Outras considerações a serem tomadas: Devemos verificar se um atributo não é derivado nem calculado através do valor de outro atributo existente. mínimo. Exemplo MD . CLIENTE * código * nome o profissão * sexo o peso Podemos utilizar um exemplo de dados para as instâncias a fim de validar a opcionalidade dos atributos. EMPREGADO nome número de dependentes EMPREGAGO nome DEPENDENTE nome data de aniversário O número de dependentes é um atributo de empregado. Atributos opcionais Um valor pode ser conhecido ou não para cada ocorrência. então o atributo número de dependentes transforma-se na entidade DEPENDENTE. então ele passa a ser uma entidade. Ricardo Página 42 .MDA Fol. Exemplo Determine se todos os atributos de EMPREGADO são realmente válidos. mas se é necessário para cada dependente conhecer o nome e idade. Marcado com um o. É marcado com um *. São eles: Atributos mandatórios Um valor deve ser conhecido para cada ocorrência. Exemplo Identificar os atributos para a entidade CLIENTE. Determinar suas opcionalidades. Opcionalidade dos atributos Identificar cada atributo utilizando uma marca para indicar a opcionalidade destes atributos. Temos dois tipos de atributos.Zamboni.: 42 Distinção entre atributos e entidades Se um atributo possui outros atributos. : 43 Os atributos da entidade CLIENTE estão corretos? Utilize o quadro abaixo para validá-los. profissão o Analista Programador Operador sexo * M M M F peso o 85 78 67 Como identificar os atributos Para identificar os atributos. devemos examinar as notas da especificação ou questionar o usuário. Questionando o usuário : Qual informação você necessita conhecer sobre a entidade X? Qual informação você gostaria que fosse mostrada na tela ou impressa? MD . Ricardo Página 43 .Zamboni.MDA Nome da entidade : CLIENTE Nome do código nome atributo opcionalidade * * exemplos 110 João 301 José 134 Pedro 340 Maria Fol. ” Solução : MD . Definitivamente. Não esqueça de criar os relacionamentos. 003 para VAX/VMS. etc). etc. precisamos manter seu nome. Programamos também eventos especiais. Desejamos manter informações sobre quais membros assistem a quais eventos.Zamboni. 002 é para IBM/VM. tais como. data do evento. etc. 001 é para IBM/MVS. financeira. Também gostaríamos de controlar e manter as empresas que cada membro trabalha. “Encontro do Outono”. número máximo de participantes. título. As aplicações devem ser portáveis. mantemos o nome. Cada membro pode utilizar tipos de computadores diferentes. Vários eventos são agendados anualmente. Para cada membro. nome. “Congresso de Novembro”. 020 para OS/2. Alguns de nossos eventos anuais são: “Encontro da Primavera”. 050 para SUN UNIX e 080 para outras plataformas. Anhembi. Mantemos apenas o endereço principal de cada empresa. Note que para um mesmo evento podem ser feitos vários comentários. tivemos no mês passado o “Case Day”. Outros nem tanto e alguns somente querem receber nosso jornalzinho. Esta taxa é cobrada em Janeiro para todos os membros. Queremos manter informações sobre os eventos. precisamos automatizar nosso cadastro de membros. Gostaríamos de registrar também qual tipo de plataforma um membro utiliza. Assim. no qual Richard Barker veio da Inglaterra especialmente para um dia de palestras. “Nosso grupo de usuários possui mais de 200 membros. portanto não relacionamos área de interesse com plataformas. Note que os nossos membros podem trocar de empresa ou prestar serviço em várias empresas. Por exemplo. Ricardo Página 44 . telefone comercial. Necessitamos de um Sistema de Informação para controlar nossos assuntos. Alguns membros são bem ativos e participam sempre.MDA Fol. tipo de membro (individual ou empresa) e se o membro está ou não em dia com a taxa anual que cobramos dele pela sua participação no grupo.: 44 Exercício 1-7 Desenvolva um MER para a especificação abaixo. endereço para correspondência. recursos humanos.. Também associamos cada membro com áreas de interesse: saúde. não consideramos filiais. farmacêutica. Nossos eventos são realizados em vários locais da cidade ( Hotel Sheraton. custo total e comentários que os participantes fizeram a respeito do evento. Temos um sistema de identificação de três dígitos para cada plataforma. Especifique os atributos de cada entidade e a opcionalidade dos mesmos. 030 para PC/DOS. Esses comentários não possuem ligação com quem o fez. endereço e o tipo do negócio. local. Para cada empresa. Alguns membros podem estar sem emprego no momento. Exemplo No setor financeiro cada banco possui um número.MDA Fol. Levamos em consideração que não apresentamos dois espetáculos no mesmo dia. cada bilhete é identificado através da data da apresentação em conjunto com o número da cadeira. cada ocorrência de DEPARTAMENTO possui um UID que é o número do departamento. DEPARTAMENTO #* numero * nome Para um bilhete de teatro. Por exemplo. MD . cada conta também possui um número único. BILHETE #* data da apresentação #* numero da cadeira Uma entidade deve ter um UID ou não é uma entidade. Ricardo Página 45 . Uma entidade pode ter um identificador único gerado através de um relacionamento. tal como os bancos .: 45 Identificadores Únicos Um identificador único é qualquer combinação de atributos e/ou relacionamentos que serve para identificar uma ocorrência de uma entidade.Zamboni. Qual o UID da entidade CONTA? CONTA número gerenciado por gerencia BANCO #* numero O UID da entidade CONTA é a concatenação do número do banco com o número da conta. Zamboni. CONTA #* número Fol. Ricardo Página 46 . Empregados são associados aos projetos através da entidade ASSOCIAÇÃO. ASSOCIAÇÃO * data da associação * duração o posição de associado a EMPREGADO #* id * nome para associado a PROJETO #* numero * titulo MD . Temos então o seguinte MER. BANCO #* numero Exemplo Uma especificação trata de empregado e projetos.: 46 gerenciado por gerencia Uma entidade pode ser unicamente identificada através de múltiplos relacionamentos. Um empregado pode se vincular a vários projetos. tal como um simples projeto pode ter vários empregados trabalhando nele.MDA Usamos uma barra para indicar que o relacionamento é parte do UID da entidade. EMPREGADO #* numero de registro (#)* cpf * nome * data de nascimento MD . Ricardo Página 47 . Quando isto acontece chamamos um UID de primário e o outro de secundário ou chave candidata.Zamboni. A Representação de uma chave candidata é através do símbolo (#).MDA Qual o UID da entidade ASSOCIAÇÃO ? Fol. tanto o numero do registro quanto o cpf serviriam como UID. Exemplo Qual o UID da entidade EMPREGADO ? EMPREGADO * numero de registro * cpf * nome * data de nascimento Neste caso.: 47 ASSOCIAÇÃO # * data da associação * duração o posição de associado a EMPREGADO #* id * nome para associado a PROJETO #* numero * titulo O UID da entidade é formado pelo número do projeto em adição ao id do empregado e a data da associação. Uma entidade pode ter mais que um UID. CLIENTE #* código * nome * endereço Cria-se então um atributo artificial chamado código que será único para cada cliente. Ricardo Página 48 . MD .: 48 Quando uma entidade não possui UID podemos criar um UID artificial para identificar a entidade. Exemplo Qual o UID da entidade CLIENTE ? CLIENTE * nome * endereço Poderíamos utilizar o nome. mas correríamos o risco de ter dois clientes com o mesmo nome.MDA Fol.Zamboni. : 49 Exercício 1-8 Desenhe novamente os diagramas encontrados nos exercícios 1-5.MDA Fol.Zamboni. Solução : MD . 1-6 e 1-7 e identifique o UID de cada entidade. Ricardo Página 49 . torna-se necessário a identificação dos atributos conforme segue:.MDA Fol.Zamboni.: 50 Atributos Classificação e Cardinalidade Visando um melhor entendimento acerca das técnicas associadas a modelagem de dados. Classificando os Atributos Os atributos podem ser classificados e divididos sumariamente em: COMPOSTOS DETERMINANTES MULTIVALORADOS GLOBAIS SIMPLES RELACIONAMENTO MD . Ricardo Página 50 . Ricardo Página 51 . Exemplo: ENTIDADE : CLIENTE # id cliente razão social limite de crédito local situado . local situado representa o endereço do cliente de forma a ser desdobrado em sub-atributos.Zamboni.MDA Fol. conforme segue:CLIENTE # id cliente razão social limite de crédito endereço cidade bairro cep unidade da federação MD .: 51 COMPOSTOS Definição: São atributos cuja própria natureza pode ser desdobrada em subatributos. No caso. o id empresa (código da empresa) e o id produto (código do produto para uma determinada empresa). a entidade produto possui 2 atributos identificadores.MDA Fol.: 52 DETERMINANTES ou IDENTIFICADORES (UID) Definição: Identificam univocamente uma ocorrência de uma entidade. Exemplo: ENTIDADE : Sistema para gerenciar várias empresas e vários produtos de forma independente.Zamboni. São referenciados como sendo UID. PRODUTO (ITEM) # id empresa # id produto nome do produto unidade de venda quantidade disponível . Podem ser compostos de um ou mais atributos. Ricardo Página 52 . No caso. MD . Zamboni. Ricardo Página 53 . Exemplo: ENTIDADE : CLIENTE # id cliente razão social limite de crédito telefone . residencial. No caso. A classificação deste cria em primeira análise outros atributos associados a entidade. CLIENTE # id cliente razão social limite de crédito telefone residencial telefone comercial telefone cobrança MD .: 53 MULTIVALORADOS Definição: A existência do número do mesmo(OCORRÊNCIA) não é uniforme para todos. telefone pode ser classificado por telefone comercial.MDA Fol. cobrança. : 54 GLOBAIS Definição: Possuem o mesmo valor para todas a linhas da entidade. excluindo-se os COMPOSTOS. Exemplo: ENTIDADE : FUNCIONARIO # id empresa # id chapa nome salário família . MD . SIMPLES Definição: Incorporados em todas as classificações anteriores.MDA Fol. O valor para o salário família será o mesmo para todas as linhas da entidade. Muitas vezes estão ligados a exigências legais e não se preocupam com a existência de redundância. Ricardo Página 54 .Zamboni. Zamboni.E) = 1 então O atributo é mandatório. Definição Formal:Seja A um atributo da entidade E Se MIN-cardinalidade (A.E) = 0 então O atributo é opcional. Se MIN-cardinalidade (A.1) onde o valor a esquerda representa o mínimo e o da direita o máximo.E) = 1 então O atributo é monovalorado (simples).E) > 1 então O atributo é multivalorado. Pelo menos 1 valor do atributo deve ser especificado para todas as linhas.1).MDA Fol.Atributos identificadores são sempre (1. Se MAX-cardinalidade (A. O VALOR DEFAULT (PADRÃO) É (1. Se MAX-cardinalidade (A.: 55 Atributos Cardinalidade A cardinalidade caracteriza o mínimo ou máximo número de valores de atributos associados a cada instante da entidade ou relacionamento. Pode ser nulo (null) ou vazio para linhas da entidade. MD . Ricardo Página 55 . 1) (0.1) (1.MDA Fol.1) passaporte títulos acadêmicos chapa pis Detalhando o quadro em função dos atributos: Cada pessoa possui no mínimo 1 valor de nome e no máximo 1 valor  É mandatória a existência de um nome. MD .: 56 Exemplos:- Entidade PESSOA PESSOA PESSOA FUNCIONÁRIO FUNCIONÁRIO nome Atributo Cardinalidade min-card=1 max-card=1 (1. nenhum título acadêmico  Cada funcionário possui um único número de chapa. (discutível).  Cada funcionário possui um único número de pis.  Cada pessoa possui no mínimo nenhum passaporte(não possui) e no máximo 1.Zamboni.  Cada pessoa possui no mínimo (não possui) e no máximo vários.1) (0.N) (1. A cardinalidade também pode indicar STATUS/situação dentro das entidades. Ricardo Página 56 . Zamboni.: 57 Exemplo:NOTAS FISCAIS: DATA CANCELAMENTO CLIENTES : TÍTULOS PROTESTADOS MD . Ricardo Página 57 .MDA Fol. Esta é uma ação que motiva os funcionários além de visar a diminuição da freqüência de faltas por motivos particulares.A empresa também solicita que os funcionários identifiquem quantos filhos eventualmente possuem e quais os nomes e data de nascimento dos mesmos. são calculados mensalmente os vários lançamentos (de débito ou crédito) para cálculo da folha de pagamento. classificando os atributos de cada entidade envolvida assim como representando suas cardinalidades. dentre os quais destacamos os telefones do funcionário (para um contato em caso de acidente). café. Desta forma. Além dos descontos exigidos por lei (como IR. data de nascimento. Este. salário família. etc.).Zamboni.MDA Fol. o sexo.: 58 Exercício:- O grupo de empresas denominado XYZ possui um departamento de recursos humanos. Além de manter os dados atualizados. sindicato. data de admissão e departamento em que o mesmo está alocado. Crie um MER e seus respectivos relacionamentos e atributos.) ainda são efetuados lançamentos associados ao grêmio e a loja de fábrica (compras realizadas) por estes funcionários. Nossa loja de fábrica vende todos os produtos produzidos no grupo além de outros produtos de terceiros (arroz. Solução: MD . feijão. é responsável por manter os registros de empregados das várias empresas do grupo. é possível calcular o custo eventualmente alocado para a construção de uma nova creche que será mantida pela empresa. nome. Ricardo Página 58 . etc.O registro de funcionário relaciona vários elementos. Zamboni. Ricardo Página 59 .: 59 MD .MDA Fol. MDA Fol. Ricardo Página 60 .: 60 Capítulo 2 Modelagem de dados .Normalização e Formas Normais MD .Zamboni. Zamboni. Codd da IBM e outros.  Consequentemente. Ricardo Página 61 .  É uma técnica de Análise de Dados. Todo o PROJETISTA DE SISTEMAS dotado de experiência.: 61 Normalização De Dados Conceitos:  Os conceitos e técnicas de Normalização foram desenvolvidos por E.Tabelas/Arquivos. quanto mais simples e mais geral for à estrutura dos dados. geralmente é mais fácil e mais econômico modificar a lógica de um processo do que alterar a estrutura dos dados. baseados na teoria dos conjuntos. F. produzindo eventualmente . bom senso e um mínimo de questionamento tende a produzir relações normalizadas sem saber o que isto significa !!! TENDER NÃO É GARANTIA DE QUE VENHA A FAZER !!!  Tanto para Sistemas Manuais como para os Informatizados.Modelo Entidade-Relacionamento. outros conjunto que tenham estrutura mais simples e regular.  A Normalização tem o objetivo de organizar e simplificar o conteúdo das Estruturas de Dados . que tem aplicação em casos particulares de sistemas e de ambientes de dados. como o MER . MD . mais fácil e econômico será efetuar mudanças nos dados.MDA Fol.  É um processo que inspeciona um determinado conjunto de relações. arquivos e outras fontes de dados existentes. são as chamadas Relações Normalizadas .formas de arquivamento mais simples. Ricardo Página 62 .. 3FN. que contém os mesmos dados do arquivo original. as relações passam por regras chamadas de “FORMAS NORMAIS”. estruturas complexas a serem simplificadas e redundâncias a serem eliminadas. . 2FN.) O processo é visto como importante pois:  É REVERSÌVEL  ELIMINA REDUNDÂNCIA DE DADOS (Discutível)  PERMITE QUE O PROBLEMA DO MUNDO REAL SEJA MODELADO DE FORMA MAIS SIMPLES E FLEXÍVEL MD .Zamboni. sem os defeitos que este arquivo possa apresentar.MDA Fol. (1FN.  No processo.: 62  A técnica procura identificar em documentos.  Os produtos da técnica de Normalização.. Zamboni. Ricardo Página 63 .: 63 Terminologia da Normalização DOMÍNIO :  Dá-se o nome de Domínio ao conjunto de valores que um determinado elemento de dados pode assumir.O conjunto formado pelos valores : Matrícula do Aluno É o conjunto de todas as matrículas existentes. Exemplos: . está relacionado com o conceito de Atributo do MER.MDA Fol. MD . Matrícula nome sexo Cristina F 123 Joaquim M 456 Rambo M 555  O conceito de Domínio.O conjunto formado pelos valores : M=Masculino e F=Feminino É o domínio do elemento de dados Sexo. matrícula nome sexo 123 Cristina F 456 Tibúrcio M 264 Manoel M . nome.: 64 RELAÇÃO :  É uma estrutura de dados representada por uma tabela bidimensional . Ricardo Página 64 .  Podemos definir uma Relação como sendo um sub-conjunto do produto cartesiano de diversos domínios. que expressa uma associação entre os elementos de dados que a compõe. Exemplo: A relação Empregado pode ser definida como sendo os trios ordenados formados pelos domínios dos elementos de dados : matrícula.Zamboni.MDA Fol.linha / coluna. nome e sexo : Empregado (matrícula. sexo) matrícula 123 456 nome Cristina Joaquim sexo F M O conceito de relação se assemelha ao conceito de Tabela / Arquivo. MD . peso) código a001 a002 a003 a004 descrição parafuso alicate porca prego peso 0.: 65 TUPLA :  Chama-se Tupla.  O conceito de Tupla é semelhante ao de registro para arquivos físicos. Ricardo Página 65 . Exemplo: Produto (código.MDA Fol.001 MD .Zamboni. cada linha dessa Tabela é uma Tupla.200 0. cada uma das combinações de valores de domínios que formam a relação.001 0.002 0.  Quando se representa a relação através de uma Tabela. descrição. Na relação Empregado. porque não existem duas tuplas com o mesmo valor para Matrícula. a chave é identificada. (DISCUTÍVEL)  A este domínio ou conjunto de domínios. nome. o domínio Matrícula é a Chave. Exemplo: Empregado (matrícula.MDA Fol. sublinhando-se o nome do domínio (ou domínios) correspondente. . O mesmo não se pode dizer para Nome ou Sexo.: 66 CHAVE :  Toda relação possui um domínio ou um conjunto de domínios para os quais cada Tupla possui um único valor.Zamboni. Ricardo Página 66 . dá-se o nome de Chave . sexo) matrícula 123 456 122 nome Cristina Joaquim Paulo sexo F M M . MD .Na notação de relações. Exemplo: Empregado (matrícula. salário) matrícula 123 124 125 nome sexo rendimento mensal Salário José M 1200.00 Cristina F 3600.00 A relação Rendimento Mensal pode ter diversos valores para cada Matrícula.00 Maria F 2100. Dependência Funcional : MD .  A este tipo de relação damos o nome de Grupo Repetitivo.Zamboni.: 67 RELAÇÕES QUE CONTÉM RELAÇÕES :  Uma relação pode conter como domínio toda uma outra relação. rendimento mensal : mês.00 500. nome. Ricardo Página 67 .MDA Fol.00 500. sexo.00 500. Exemplo: matrícula nome Empregado sexo nível salarial salário .Nível Salarial é dependente funcional de matrícula.: 68  Um domínio é funcionalmente dependente de outro. num dado instante.Zamboni. . Ricardo Página 68 .O domínio salário é funcionalmente dependente de nível salarial.MDA Fol. porque se atribui um único valor de salário para cada valor de nível salarial. quando um determinado valor do segundo. está sempre associado a um determinado valor do primeiro. MD . uma vez que a cada valor de matrícula somente está associado um único nível salarial. Ricardo Página 69 . não são permitidos atributos multivalorados. Processo  Consiste em retirar da estrutura os elementos repetitivos. aqueles dados que podem compor uma estrutura de vetor. atributos compostos ou atributos multivalorados compostos. ou seja.: 69 Formas Normais (1FN) Primeira Forma Normal Enunciado: Os atributos componentes da entidade devem ter valores singulares.MDA Fol.Zamboni. se não possuir elementos repetitivos. Podemos afirma que uma estrutura está normalizada na 1FN.  A 1a Forma Normal prega que todos os atributos de uma tabela devem ser atômicos (indivisíveis). ou seja. FORNECEDOR #* cgc * telefones * endereço_cliente Exemplo Fornecedor cgc 125 458 Telefones 1 telefone n 62037540 60995650 62042110 91339955 Endereço_cliente Rua Lucerna 144 São Paulo Rua Bavária 65 Sorocaba No caso telefone é multivalorado e endereço é composto !!! MD . data de cotação poderá possuir valores repetidos (mais de uma cotação em mesma data para um mesmo fornecedor).: 70 1(FN) Solução: Criar 2 entidades.MDA Fol. criamos uma nova entidade COTAÇÃO #* data de cotação o resultado feito por realiza a FORNECEDOR #* id_forn MD . alterando a estrutura do modelo inicial e seus respectivos atributos!!! Fornecedor cgc 458 125 rua Rua Bavária Rua Lucerna número 65 144 cidade Sorocaba São Paulo cgc_telefone código_cgc 125 125 125 458 telefone_fornecedor 60995650 62037540 62042110 91339955 Exemplo Dada a entidade FORNECEDOR. a mesma encontra-se na 1FN ? FORNECEDOR #* id_forn * data de cotação No caso. A entidade não encontra-se na 1ª forma.Zamboni. Para solucionar o problema. Ricardo Página 70 . Podemos afirmar que uma estrutura está na 2FN. Processo  Consiste em retirar das estruturas que possuem chaves compostas (campo chave sendo formado por mais de um campo).: 71 (2FN) Segunda Forma Normal Enunciado: Estará em 2FN quando estiver em 1FN e quando todos os atributos da entidade devem depender do atributo identificador. Ricardo Página 71 .Zamboni. os elementos que são funcionalmente dependentes de parte da chave.MDA Fol. ESTOQUE #* código_prod * qtde_disp * qtde_retida * qtde_não_disponível Resposta: MD . Exercício Dada a entidade ESTOQUE. a mesma está em 2FN?. se ela estiver na 1FN e não possuir campos que são funcionalmente dependente de parte da chave. Fol.: 72 Exemplo: Validar os atributos das entidades CONTA e BANCO CONTA #* numero * balancete * data de abertura * localização do banco gerenciado por contêm BANCO #* numero * nome Cada instância de banco e número da conta determinam valores específicos para balancete e data de abertura.Zamboni.MDA . porém o atributo localização do banco é invalido. Ricardo Página 72 . Se um atributo não é dependente do UID da entidade ao qual ele faz parte . Ele é dependente de banco e não de número da entidade CONTA. ele deve ser removido. MD . Podemos afirmar que uma estrutura está na 3FN. Exemplo ORDEM_PRODUÇÃO número_ordem OS001 OS001 OS001 OS001 cód_produto nome_produto peso_padrão data_ordem A001 X888 Y777 Z666 TUBO TINTA TAMPA PONTA ORDEM_PRODUÇÂO #* número_ordem * cód_produto * nome produto * peso padrão * data_ordem • 0.002 0.001 0.003 15/09/2001 15/09/2001 15/09/2001 15/09/2001 MD .: 73 (3FN)Terceira Forma Normal Enunciado: Estará em 3FN quando estiver em 2FN e sendo que um atributo não UID não poderá ser dependente de outro atributo não UID. se ela estiver na 2FN e não possuir campos dependentes de outros campos não chaves.Zamboni.MDA Fol. Processo  Consiste em retirar das estruturas os campos que são funcionalmente dependentes de outros campos que não são chaves.001 0. Ricardo Página 73 . : 74 Quais atributos são dependentes totalmente do número de ordem? E do código do produto? Atributo Número_ordem Dependência Data_ordem Código_produto Nome_produto Peso padrão Portanto para 3FN temos: ORDEM_PRODUÇÃO #* número_ordem * data_ordem efetuado para associado PRODUTO #* cód_produto * nome produto * peso padrão MD .MDA Fol. Ricardo Página 74 .Zamboni. MDA Fol. 3. 2.Zamboni.: 75 Exercícios Normalizar o modelo abaixo. Ricardo Página 75 . 1. 2FN e 3FN Desenhar o MER completo nome_func nome_depende cod_dept nome_dept salário cccusto end_func FUNCIONARIO Solução : MD . cod_func Incluir valores para validação Transformar 1FN. Zamboni. Ricardo Página 76 .: 76 Exercício Considere que a seguinte relação PROJETO num-projeto chapaempregado orçamento horas-trabalhadas Para cada projeto existente sabe-se qual o seu orçamento e quais os empregados que nele trabalham.MDA Fol. A relação encontra-se em 1FN? A relação encontra-se em 2FN? Em caso de não estar em 2FN. Um empregado pode trabalhar em vários projetos. como alterar esta relação para que passe a estar na 2ª Forma Normal? MD . devendose saber quantas horas já trabalhou em cada projeto. : Os atributos em negrito indicam grupos repetitivos.: 77 Exercício Normalizar a seguinte relação.MDA Fol. Ricardo Página 77 .Zamboni. desenhando o MER completo da solução: PEDIDO núm.do pedido descrição do item condição_pagto data pedido qtde solicitada data entrega núm. Solução : MD .cliente preço unitário uf_cliente endereço cliente total pedido unidade_item código item unidade de venda peso_padrão Obs. Zamboni.da fatura descrição do item condição_pagto cgcempr uf cliente cgc do cliente qtde do item data_emissão inscriçãoempr série_fatura preço unitário transportadora inscricaocliente data_fatura total fatura unidade_item lojacliente código item unidade de venda valor item nome cliente Solução : MD . Ricardo Página 78 .MDA Fol. desenhando o MER completo da solução: FATURA núm.: 78 Exercício Normalizar a seguinte relação. : 79 Relacionamentos com múltiplos Graus M:M Enunciado: Se o relacionamento expresso entre duas entidades for de natureza M:N. É um processo que visa melhorar os acessos e minimizar eventuais problemas de desempenho. Como descobrimos o preço de compra para um FORNECEDOR ? ITEM_COMPRADO Cditem nome descrição FORNECEDOR Cgc nome_forn ITEM_COMPRADO #* cditem * nome_item * descrição_item Comprado de vende FORNECEDOR #* cgc * nome_forn MD . Processo  Consiste em retirar da estrutura elementos que possam atender de forma clara as duas entidades. devemos avaliar as entidades de forma a adicionar uma entidade (dita com interseção) entre as entidades relacionadas. Exemplo O relacionamento abaixo possui um relacionamento M:N.  Os atributos identificadores da entidade de interseção são compostos pelos relacionamentos de origem. Ricardo Página 79 .Zamboni.MDA Fol. : 80 Solução : ITEM_COMPRADO * preço * quantid. Ricardo Página 80 . por pacote * medida comprado de vende FORNECEDOR #* cgc * nome_forn relacionado ITEM #* cditem * nome_item * descrição_item compõem MD .MDA Fol.Zamboni. Ricardo Página 81 .MDA Fol.: 81 Layout para Representação Relacionamento M:N Representação das Interseções ENTIDADE INTERSEÇÃO OU ENTIDADE INTERSEÇÃO MD .Zamboni. No exemplo abaixo. MD .: 82 Exemplo Queremos saber a data que cada estudante se matriculou em um determinado curso.Zamboni. data de conclusão e grau. o UID é formado também por um atributo da entidade interseção.MDA Fol. ESTUDANTE #* id * nome * telefone matriculado em contem CURSO #* código * nome o duração o preço Solução : MATRICULA * data da matricula * data de conclusão * nota final para identificado por para CURSO #* código * nome * duração * preço efetuado por ESTUDANTE #* id * nome * telefone Os atributos de matricula são data de matricula. bem como a data de conclusão e a nota final. Ricardo Página 82 . O UID de matricula é formado do UID de ESTUDANTE e CURSO. PRODUTO #* id * nome * descrição vendido pelo vende VENDEDOR #* código * nome MD . Ricardo Página 83 .Zamboni.: 83 Exemplo Queremos saber a data que cada engenheiro foi associado a um projeto e a sua duração. ENGENHEIRO #* crea * nome_enge lotado a controlado por PROJETO #* númproj * desc_proj Solução : ASSOCIAÇÃO #* data da associação # num_proj #crea * duração para ligado a de PROJETO #* num_proj * desc_proj sujeito a ENGENHEIRO #* crea * nome_enge Exemplo Queremos saber o preço de um produto específico vendido por um determinado vendedor.MDA Fol. : 84 Solução : ITEM #* número de catálogo * preço * quantid. MD .Zamboni.MDA Fol. por pacote * medida vendido por vende VENDEDOR #* código * nome formado por tem PRODUTO #* id * nome * decrição Acrescentamos então um atributo para ser o UID da entidade ITEM. Ricardo Página 84 . : 85 Exercício Dado o relacionamento M:N entre CLIENTE e PRODUTO.Zamboni. Ricardo Página 85 . quantidade unitária e preço unitário. adicione os atributos data do pedido.MDA Fol. CLIENTE #* id * nome solicitante de pedido por PRODUTO #* número * nome * medida Solução : MD .
Copyright © 2024 DOKUMEN.SITE Inc.