Baixe o app para aproveitar ainda mais
Prévia do material em texto
Caderno: Estácio Criada em: 17/02/2020 20:37 Atualizada … 19/05/2020 14:51 Autor: Arthur Augusto Levandoski da Silva Modelagem de Dados AULA 1 - INTRODUÇÃO Dados e Informação Dados: informação primária, fatos "separados"; Informação: dados organizados de uma forma que agreguem um valor adicional. Conjunto de fatos organizados. A transformação de dados em informação é um processo. Porém processos podem não ser duradouros, dados são, isso os torna uma das partes mais valiosas de um sistema de informação. Banco de Dados é uma coleção lógica e coerente de dados com significados interligados, inerentes (um dado completa o outro); é projetado, construído e povoado com um objetivo específico para representar algum aspecto do mundo real. Por isso é chamado de "mini-mundo" e, qualquer alteração neste é refletida no BD. Os BDs são gerenciados pelos SGBDs (Sistema Gerenciador de Banco de Dados), que é formado pelo conjunto de sistemas necessários para manipular os dados pelos usuários. O conjunto formado pelo BD e os softwares que o manipulam são os Sistemas de Banco de Dados Os SGBDs não gerenciam somente os dados, mas também a forma como são armazenados, com informações completas de sua estrutura, formato, etc. dos dados armazenados. Essas informações são chamadas de meta-dados. Usuários \ DBAs→ Softwares para processar as Queries (SGBD) → Softwares para acessas os dados (SBD) → meta-dados ↪ dado armazenado SGBD vs Sis. Geren. de Arquivos Em SIGA Os SIGAs permitem uma redundância não controlada de dados, pois permitem que o dado seja alterado de um lado por um usuário mas essa mudança não reflete para o outro, permitindo que este outro altere o mesmo dado; Não permitem a automatização dos backups, que precisam ser feitos pelo responsável pela aplicação. Em SGBD os dados são organizados em tabelas que atendem a diferentes aplicações, há um,a múltipla visão dos dados; junto com os dados são armazenados os catálogos, contendo informações sobre tamanho, forma de estruturação e local físico onde estão; há a abstração de dados: independência entre programas e operações de manipulação dos dados. os acessos são escritos no banco de dados e os programas solicitam acesso a estes; é permitido acesso simultâneo por diferentes usuários, que pé controlado pelo gerenciamento da concorrência; os backups são automatizados. Evolução dos BDs No início dados e processos eram mantidos no mesmo arquivo, porém dados sozinhos são mais fáceis e seguros de administrar, por isso houve a separação; 1. BD Centralizado: Dados, SGBDs e SBDs ficam no mesmo local, sendo acessados por clientes com funcionalidades limitadas; 2. BD File Server: o BD fica em uma máquina separada, o File Server, enquanto SGBD e SBD ficam em máquina diferentes a esta do FS; 3. BD Distribuído: com o aumento do tamanho dos BDs surgiou a neessidade de distribuir seu armazenamento em vários File Servers. Novas Arquiteturas: 1. Datawarehouse Surgiram com a necessidade de fornecer informações a nível gerencial às organizações. Os DW armazenas os dados consolidados apenas para consulta, retirados de diversas fontes em diversos formatos. Usuários de BD Administrador de dados (AD): identifica quais dados serão armazenados e como serão, quais estruturas irá utilizar. Se comunica diretamente com os usuários para identificar melhorias nas visões e no ambiente. Mantém os esquemas conceituais gerados pelo ADB. Adm. do Banco de Dados (ABD): desenvolve os esquemas internos dos bancos, constrói as tabelas. Administra os acessos aos bancos, concede permissões. Garante a segurança e recuperação dos dados, assim como a boa performance do BD. Cria os esquemas conceituais dos bancos. Analista de Sistemas: determina os requisitos dos usuários finais e desenvolve o necessário para atingir esses objetivos; Final Users: Faz consultas, utiliza programas que acessem bancos de dados. 1. Dentre as propriedades do banco de dados (BD), avalie as assertivas I. Representam, fatos reais II. Conjunto de dados isolados. III. O projeto de um BD, desde o inicio já considera todos os requisitos de todas as aplicações que usarão o respectivo BD IV. não pode ser compartilhado V. É persistente. Com base em sua avaliação das assertivas, assinale a única opção que apresenta APENAS as assertivas verdadeiras I, II e V II, III e IV I, III e IV I e V http://simulado.estacio.br/bdq_simulados_exercicio.asp# I, III e V AULA 2 - O SGBD E SUAS FUNCIONALIDADES Instâncias Separam as aplicações do usuário dos dados físicos, essa divisão ocorre nos esquemas abaixo: Nível/Esquema Interno: nível mais baixo, parte física do armazenamento. Mostra a estrutura de armazenamento físico dos dados, assim como os detalhes e caminhos destes, como o dado vais er armazenado. Nível/Esquema Conceitual: oferece uma descrição da estrutura do BD mas não os detalhes dos dados armazenados. Já entra na parte Lógica, nível intermediário. Nível Externo/Esquema de Visão: nível mais alto, também da parte lógica. Nível que os usuários têm acesso; onde estão as restrições de visualização pelos usuários. Conjunto complexo de softwares que contém as seguintes funcionalidades para gerenciamento dos BDs, posibilitam aos usuários criar e manter os BDs.: Independência de Dados: permite que as alterações feitas na estrutura do banco sejam imperceptíveis aos programas que o manipulam. Independência Lógia: alterar o esquema conceitual sem alterar os esquemas externos ou os programas de aplicação; Independência Física: alterar o esquema interno sem alterar os equemas conceituais e externos. Controle de Redundâcia: os dados são armazenados em um único banco, mas este banco coexiste em locais distintos por questões de segurança. os problemas gerados com isso podem ser o da inconsistência das informações; ocupação de espaços muito maiores para o armazenamento; demanda esforço para manter a coexistência. Compartilhamento de Dados: Permite que usuários diferentes acessem os mesmos dados simultâneamente. Restrições de Acesso: os SGBDs devem controlar as permissões dos usuários que acessam o BD, afim de garantor a segurança e integridade das informaões. Segurança e autorização: senhas para usuários e grupos; restrições de acesso coforme tipo de usuário; proibição de uso de softwares privilegiados, como o de criação de contas. Muitas aplicações para web usam uma arquitetura chamada de "arquitetura três camadas", que possui uma Restrições de Integridade: o SGBD deve fornecer a capacidade de impor e definir restrições, como a defnição de um tipo de dado para cada item de dado (int, float). Integridade Referencial: associado ao modelo lógico, chave prmária e estrangeira Backup e Recuperação: deve prover facilidades para recuperação dos dados quando necessário. Múltiplas Interfaces: vários usuários acessao aos BDs com finalidades distintas, por isso os SGBDs deem fornecer as interfaces adequadas ao tipo de uso necessários, de acordo com as restrições dos usuários. linguagem de consultas; linguagem de programação; interfaces gráficas e de administração e linguagem natual, de acordo com os tipos de usuários. Benefícios no Uso de SGBDs 1- Potencial para o estabelecimento e o cumprimento de padrões; 2- Flexibilidade de mudanças; 3- Redução no tempo de desenvolvimento de novas aplicações; 4- Disponibilidade de informação atualizada; 5- Economia de escala. Sobrecustos vinculados Alto investimento inicial em software, pela aquisição do banco de dados e licenças, e em hardware que suporte este ambiente; Custo da generalidade do SGBD, ou seja, na definição e no processamento dos dados. “Overhead” de processamento. Neste ambiente, overhead significa tudo aquilo que o SGBD tem que fazer além de gerenciar os dados. Isto envolve tarefas como: garantir segurança, controlar concorrência (utilização do mesmo dado por aplicações e usuários distintos simultaneamente),recuperação de falhas e garantia de integridade. Quando NÃO usar bancos de dados Volume de dados pequeno, aplicações simples, bem definidas; Mudanças não são esperadas; Ambientes de sistemas que exijam resposta em tempo real; Acessos múltiplos e concorrentes não são necessários. Multi usuário - várias pessoas e/ou aplicações usando o banco mono usuário - apenas 1 usuário, por vez, usa o banco Centalizado - o banco é centralizado num servidor distribuidos - o banco é armazenado em vários locias (servidores) operacional - armazena dados dos sistemas de processamentos transacionais do dia a dia das operações da organização datawarehouse - banco de dados, apartado, histórico, usado para tomadas de decisão. 8. http://simulado.estacio.br/bdq_simulados_exercicio.asp# camada intermediária entre o cliente e o servidor de banco de dados. Essa camada intermediária, ou camada do meio é, algumas vezes, chamada de servidor de aplicações. A respeito dessa camada, NÃO é correto afirmar que: incrementa a segurança do banco de dados, checando as credenciais do cliente antes de enviar uma solicitação ao servidor de banco de dados. o servidor de aplicações formata o resultado da consulta em XML antes de enviá-lo ao cliente. armazena as regras de negócio (procedimentos ou restrições) que são usadas para acessar os dados do servidor de dados. aceitas as solicitações do cliente, processa-as e envia comandos de banco de dados ao servidor de banco de dados. dependendo da aplicação é chamada de servidor web. 4. Sabe-se que todo SGBD (Sistema Gerenciador de Banco de Dados) possui características principais. Marque a alternativa que define a característica que se trata da existência de um catálogo que armazena as informações chamadas metadados. http://simulado.estacio.br/bdq_simulados_exercicio.asp# Natureza auto descritiva. Aula 3 - Modelagem Conceitual. Percepção do Mundo Real O projeto de um BD é feito através dos esquemas conceitual, lógico e físico. 1. Primeiro é feita a inerpretação do mundo real através do mini-mundo; 2. Com isso, são identificados seus objetos conceituais, é feita a abstração de dados para que o modelo conceitual seja feito; 3. Com o modelo conceitual feito e as regras específicas aplicadas, é feito o modelo lógico, que está vinvulado ao modelo de dados usado no SGBD; 4. O modelo lógico origina o modelo físico, que é armazenado no Banco de Dados. A estrutura dos dados não fica armazenada no código dos programas, mas sim em um catálogo armazenado junto ao banco de dados Percepção do Mundo Real Representar o mundo real através de um BD exige uma interpretação deste mundo. Em um negócio, os fatos observados e modelados dizem muito sobre seu funcionamento, pois mostram como as informaçõs estão relacionadas. Ao coletar e relacionar os fatos relevantes, devemos identificar os elementos geradores de informação, as leis que regem esta realidade e as operações que incidem sobre os elementos básicos (dados). Isso é criar uma ABSTRAÇÃO da realidade, que seja capaz de registrar os acontecimentos da mesma, de modo que se possa implementar um sistema automatizado que atenda às reais necessidades de informação. Elementos da Abstração Minimundo: produto das observações detalhadas feitas pelo analista. Quando esta análise se torna muito complexa, pode ser dividida em partes menoras, chamadas de visões; Banco de Dados: coleção de fatos registrado que refletem aspectos do mundo real. Suas mudanças acompanham as modificações deste mundo; Modelo Conceitual: visão global dos principais dados e relacionamentos (estruturas de informação), independente das restrições de implementação. Descreve as informações reais que serão armazenadas; Modelo Lógico: descreve as estruturas contidas no BD, considerando o modelo de dados do SGBD, resultando e um esquema lógico de dados que se origina do modelo conceitual. Modelo Físico: detalha o estudo dos métodos de acesso ao SGBD, contendo a descrição das estruturas físicas do armazenamento (tamanho dos campos, índices, strings, etc.) Modelo Entidade Relacionamento Modelo abstrato que descreve de forma conceitual os dados que serão usados em um Sistema de Informação, dados de um contexto. Sua principal ferramenta é a representação gráfica DER (Diagrama Entidade Relacionamento). Facilita o projeto do BD pois possibilita especificar a estrutura geral deste. Projeto do Banco de Dados A modelagem de um sistema através da abordagem Entidades-Relacionamentos representa o ponto central no projeto conceitual de um sistema. O objetivo da Modelagem de Dados é transmitir e apresentar uma representação única, não redundante e resumida, dos dados de uma aplicação. Em projetos conceituais em banco de dados, o Modelo Entidades-Relacionamentos é o mais largamente utilizado para representar e entender os dados que compõe um sistema. Um Modelo de Dados é uma forma de representação gráfica do conhecimento que se tem sobre um ambiente qualquer. Mostra uma visão das informações de interesse e dos vínculos existentes entre elas, em um determinado momento. Entidades: objetos que existem no mundo real e o descrevem, que serão transoformados em dados no BD, possui identificação distinta e significado próprio. Sua representação é feita através de um retângulo, com o nome da entidade em seu interior. Entidade Dependente (Fraca): aquela que existe devido a outra entidade, sua exitância depende de outra. Atributos: são as propriedades das entidade que são descritas pela atribuição de valores. Juntos, esses valores descrevem as instâncias de uma entidade. São representadas por uma elipse com o nome do atributo dentro. Atributo Identificador: chave primária. Deve ser obrigatório e único. Atributo Derivado: atributo que deriva de outro, como a idade de uma pessoa através do cadastro do ano de nascimento. Domínio de um Atributo: definição de valores permitidos para um atributo (sexo: {F,M}). Tipo de um Atributo: tipo da string (int, Float, etc) ATRIBUTOS COMPOSTOS PODEM SER MANIPULADOS TANTO COMO UM TODO COMO TAMBÉM POR SUAS PARTES SEPARADAS Relacionamentos: Relação entre duas enridades que representam os processos sobre os dados e os cmainhos de navegação, rotas de acesso, do Modelo de Dados. Esquema vs Instância Esquema: é a estrutura, os atributos do BD; colunas da tabela; Instância: conjunto de ocorrências, estado do BD, linhas da tabela. Exercício Identifique as entidades, atributos e relacionamentos existentes no mini mundo descrito a seguir: “Cada funcionário é lotado em um departamento e tem um cargo de carreira. Para o cadastramento do funcionário. são registrados: nome, endereço, telefone, cargo, departamento, salário, horário, filiação, idade, CPF, identidade e nacionalidade. Para cada dependente do funcionário, são registrados: nome, idade, parentesco e sexo. Para cada departamento, deseja-se saber: nome, sigla, nome do chefe, número de funcionários. Para cada cargo, deseja-se saber: nome, sigla e salário base. Entidades: funcionário; departamento; cargo; dependentes; Atributos: Funcionários: nome, endereço, telefone, cargo, departamento, salário, horário, filiação, idade, CPF, identidade e nacionalidade Departamento: nome, sigla, nome do chefe, número de funcionários Dependentes: nome, idade, parentesco e sexo Cargo: nome, sigla e salário base Relacionamentos: Funcionário pertence a departamento; Dependentes pertence a Funcionário; Cargo pertence a Funcionário; Departamento pertence a Funcionário Aula 4 - Modelo Entidade Relacionamento Domínio de um atributo: descrição dos valores possíveis para o atributo. float, int... Atributos identificadores: únicos e obrigatórios, é a chave primária. Cardinalidade Define a quantidade de elementos de uma entidade associada à quantidade de elementos de outra entidade. É definida de acordo com as regras da organização. Um para Um - 1:1: cada atributo do conjunto_1 se relacionam somente com 1 atributo do conjunto_2; Umpara Muitos - 1:N: cada atributo do conjunto_1 pode se relacionar com mais de um atributo do conjunto_2; Muitos para Muitos - N:M: mais de 1 atributo do conjunto_1 pode se relacionar com mais de um atributo do conjunto_2. João é proprietário de um Jipe Amarelo 1. envolvidos: PESSOA João e VEÍCULO Jipe; 2. caracterizar objetos: PESSOA: nome, cpf, nasc., sexo VEÍCULO: marca, cor, ano, modelo 3. Representar os objetos: 4. Identificar o relacionamento entre os objetos: PESSOA possui VEÍCULO; 5. Caracterizar o relacionamento entre objetos: 1. nem toda PESSOA possui um VEÍCULO; 2. um VEÍCULO pertence, ou não, a uma PESSOA; 3. há PESSOA que possuem mais de um VEÍCULO; 4. se um VEÍCULO possui a uma PESSOA, não pertence a mais ninguém. 6. Representar o relacionamento: EXERCÍCIO Construa o Modelo Entidades-Relacionamentos para o mini-mundo descrito a seguir: Suponha que estamos fazendo a análise de dados da área de Recursos Humanos da empresa ABC e tenhamos obtido as seguintes informações: “Cada funcionário é lotado em um departamento e tem um cargo de carreira. Para o cadastramento do funcionário são registrados: nome, endereço, telefone, cargo, departamento, salário, horário, filiação, idade, CPF, identidade e nacionalidade. Para cada dependente do funcionário são registrados: nome, idade, parentesco e sexo. Para cada departamento deseja-se saber: nome, sigla, nome do chefe, número de funcionários. Para cada cargo deseja-se saber: nome, sigla e salário base. Sabemos, também, que não é armazenado o histórico de cargos dos funcionários e que nem todos os funcionários possuem dependentes e que, também, caso um funcionário seja casado com outro funcionário, o dependente oficialmente pertencerá a apenas um deles. Podemos ter departamentos momentaneamente sem nenhum funcionário.” Entidades: funcionário; departamento; cargo; dependentes; Atributos: Funcionários: nome, endereço, telefone, cargo, departamento, salário, horário, filiação, idade, CPF, identidade e nacionalidade Departamento: nome, sigla, nome do chefe, número de funcionários Dependentes: nome, idade, parentesco e sexo Cargo: nome, sigla e salário base Relacionamentos: Funcionário pertence a departamento; Dependentes pertence a Funcionário; Cargo pertence a Funcionário; Departamento pertence a Funcionário Aula 5 - Relacionamentos LIMITES MÍNIMOS E MÁXIMOS DAS RELAÇÕES Quando o limite inferior é 0, o relacionamento é opcional. Quando este for 1 ele é obrigatório. Um professor ministra entre 0 e 4 matérias: Limite Inferior: 0 Limite Superior: 4 Uma disciplina pode ser ministrada por 0 ou 1 professor: Limite Inferior: 0 Limite Superior: 1 Relação Recursiva (Auto Relacionamento) Uma relação é recursiva quando uma entidade se relaciona com ela mesma, se referindo a atributos que a compõe. Atributos de Relacionamento Só é possível quando o grau de relacionamento for N:M (muitos para muitos). Quando isso acontece se tem um RELACIONAMENTO TERNÁRIO Exemplo: Precisa se colocar a data da aula no esquema abaixo. PROFESSOR Ministra DISCIPLINA PROFESSOR: matricula, nome DISCIPLINA: cod, nome Ministra: data_inic Aula 6 - Modelo Entidade Relacionamento Estendido Agregação O MER não é capaz de representar relacionamentos entre relacionamentos, nisso surgem as agregações. Agregações são abstrações pelas quais relacionamentos são tratados como entidades de nível mais alto. Pode-se representar um relacionamento como uma entidade. Estrutura de Generalização-Especialização “É um tipo de” Conecta uma entidade mais especializada a uma generalizada. Quando uma entidade possui subdivisões com mais detalhes específicos. A Entidade-Mãe (Generalização) compartilha seus atributos e relacionamentos com cada uma das Subclasses (especializações); Os relacionamentos das Especializações não são compartilhados com a Entidade-Mãe; As Especializações podem ou não compartilhar atributos entre si; Uma especialização sem atributos nem relacionamentos próprios pode ser considerada como outra denominação da Generalização, deixando de ser uma especialização; Tipos de Especialização Total: todos os atributos da generalização devem existir em pelo menos uma especialização; Parcial: quando a generalização possuir atributos que não existem nas especializações; um atributo pode pertencer somente à entidade-mãe; Exclusiva: quando os atributos de uma especialização não existem em outra especialização. Quando uma especialização não compartilha atributos; Superposição: quando atributos de uma especialização podem coexistir em outras especializações. Quando uma especialização compartilha atributos Exemplo: Solução: Ou seja: Há elementos da classe mãe que não se repetem nas subclasses (Parcial); há elementos das subclasses que se repetem entre si (um acionista pode ser instrutor; Superposição). 2. Considere as afirmativas abaixo: I - Através da especialização é possível atribuir propriedades particulares a um subconjunto das ocorrências de uma entidade genérica. II - Para que seja possível modelar um relacionamento entre uma entidade A e um agrupamento de duas entidades B e C que tem entre elas um relacionamento R já existente, é necessário realizar uma agregação de B e C e relacionar a entidade A com a agregação. III - Os relacionamentos somente podem conter atributos próprios se forem identificadores. Esta(ão) correta(s) a(s) afirmativa(s): http://simulado.estacio.br/bdq_simulados_exercicio.asp# I, II e III Somente a afirmativa III I e III I e II Somente a afirmativa II Aula 7 - Modelagem Lógica. O Modelo Relacional Modelos Lógicos de Dados Descreve os componentes do Modelo Conceitual de forma mais próxima do ambiente computacional, mais relacionado com a confecção do BD. Modelo de Rede: dados representados por uma coleção de registros e suas relações através de links. Modelo Hierárquico: mesmo esquema do Modelo de Redes, porém a organização é em forma de árvores hierárquicas; Modelo Relacional: tabelas bidimensionais que relacionam os dados por colunas e linhas; Orientado a Objetos: as entidades são objetos que encapsulam (contém) os dados e os códigos associados a eles; Relacional a Objeto: uma extensão do Modelo Relacional que inclui a orientação a objetos, permitindo o tratamento de dados complexos. Modelo Relacional Desenvolvida por Edgard Frank CODD nos anos 70, se baseando na idéia de que para o usuário é irrelevante saber onde estão os dados e como são armazenados. Este lida com os dados através de linguiagens de alto nível. Atributo: colunas; Tupla: linhas; Esquema do banco: conjunto dos atributos (nomes das colunas); Estado do banco: conjunto das tuplas da tabela; Grau de uma relação: número de atributos; Domínio de um atributo: conjunto ao qual os valores do atributo pertencem; Esquema de BD Relacional: nomes das relações seguidos pelos nomes dos atributos; chaves primárias sublinhadas e estrangeiras identificadas. Chaves Chave Candidata: deve ser único e irredutível, podendo ser simples ou composta. Identifica de forma única uma instância da entidade. Chave Primária: dentre as chaves candidatas, é a que mais se adequa para identificar a as tuplas. Representante da base de dados da entidade; Chave Estrangeira: quando um atributo de uma relação é uma chave primária de outra. è o elo de ligação lógica entre tabelas (relacionamentos). Na Tabela 1 se refere a um atributo da Tabela 2 através de sua chave primária. Regras de Integridade 1. Integridade da Entidade: a chave candidatanão pode ser nula. Quando isso acontece, a linha não corresponde a nenhuma entidade. 2. Integridade de Chave Primária: deve respeitar a integridade de entidade e ainda ser única; 3. Integridade Referencial: a chave estrangeira deve ser respeitada. Se em uma tabela existe um valor atribuído como chave estrangeira, este mesmo valor deve representar a chave primária em sua tabela de "origem". 4. Restrições de Integridade Semânticas: todas as demais regras devem ser obedecidas por todos os estados válidos da base de dados. Aula 8 - Modelagem Lógica. Conversão do Modelo Conceitual para o Relacional Derivação 1. obter o modelo conceitual (DER); 2. definir o tipo de implementação (relacional); 3. aplicar as regras de derivação; 4. adaptar os modelos às necessidades. Regras Gerais Toda entidade (MER) torna-se uma tabela (lógico); todo atributo torna-se um campo (coluna); todo atributo determinante torna-se uma chave primária; os atributos compostos devem ser transformados em campos atômicos (simples). Dica: quando a cardinalidade for de 0:1, temporariamente classifique o limite superior como N e siga as regras abaixo. Transformação de Atributo Multivalorado estes viram uma nova tabela. Este atributo (nova entidade) e a entidade original são referidos por chave estrangeira Cardinalidade 1:1 incluir todos os atributos em uma tabela simples; o nome da tabela relacional pode ser o de uma das entidades, a combinação do nome de duas entidades ou um outro que represente o conteúdo da tabela. Cardinalidade 1:N mais de uma tabela usando chaves primárias e estrangeiras; incluir a chave primária do lado “1”, como chave estrangeira no lado “N". O contrário gera redundância; identificador colocado do lado “muitos” é a chave estrangeira. Cardinalidade N:M criar uma nova tabela que registre as chaves primárias de cada entidade. Cada entidade vira um atributo nesta nova tabela. Esta pode ter o nome da relação entre as entidades; a nova tabela é chamada de tabela associativa. O identificador da tabela é uma chave composta, formada pelas chaves primárias das duas tabelas que participam do relacionamento; a tabela associativa pode definir um id para cada tupla cadastrada. Então pode-se referenciar as associações nas outras tabelas; cada identificador colocado na nova tabela é uma chave estrangeira. Medico (matricula, nome, cpf, especialidade, id_consulta) Consulta (id_consulta, data, matricula, id_paciente) Paciente(id_paciente, nome, endereço, telefone, id_consulta) Exemplo Amigo (id_amigo, local. telefone, mae, nome) Emprestimo (id_emprestimo, data_emp,data_devol, id_amigo, id_revista) Revista (id_revista, nome, ano, id_caixa, id_colecao) Caixa (id_caixa, etiqueta, cor, id_revista) Coleção (id_colecao, genero, nome) Aula 9: Modelagem Lógica - Relacionamentos Recursivos e Extensões Relacionamentos Recursivos Recursivo 1:1 e 1:N Cria-se uma coluna na própria tabela que referencie o cadastro do objeto relacionado. Cria-se um atributo dentro da própria tabela Recursivo N:N O relacionamento recursivo se torna uma entidade associativa, o relacionamento é representado pela associação das chaves primárias. Generalizações / Especializações Pode ser de 4 formas diferentes: 1. Transformação preservando todas as entidades tipo; (mais utilizada. Todas as entidades viram tabelas, as entidades-filhas referenciam a chave primária da entidade-mãe) 2. Transformação preservando as especializações; (a entidade-mãe deixa de existir, fazendo com que todas as entidades-filhas tenham os atributos da mãe. 3. Transformação preservando a generalização; (preserva somente a mãe, não permite as filhas tenham relações. Todos os dados das filhas se repetem na mãe) 4. Transformação mista. (quase não se usa) Cada especialização se torna uma entidade que referencia a chave primária da Entidade-Mãe (generalização). Agregações A relação de agregação se torna uma entidade, assim como cada "conteúdo" aos quais a entidade principal se referencia; a entidade de agregação se torna uma entidade associativa que representa a relação da entidade principal com seus "conteúdos" através de chaves estrangeiras. Relacionamentos N-ários A relação N-ária se torna uma entidade associativa que relaciona as entidades através de chaves estrangeiras. Exercício Cliente (id_cliente, nome, telefone) Retira (id_retira, data_ret, data_devol, id_material, id_cliente) Material (id_material, desc_material) Livro (id_livro,autor, editora, id_material) Revista (numero, data, volume, id_material) Audio Visual (id_audio, temp_duracao, nome_diretor, id_material) Aula 10: Modelagem Lógica – Normalização Normalização Série de passos que são seguidos no projeto de um BD, permitindo um armazenamento consistente e o eficiente acesso aos dados de um BD relacional. Estes passos reduzem as redundâncias e as chances de ocorrerem inconsistências. Características de um Mau Projeto Repetição de Informação: Emprestar(ag_nome, ag_ativos, empréstimo_número, cliente_nome, quantia) - Os atributos ag-nome, empréstimo_número e cliente_nome deveriam estar em tabelas distintas,pois descrevem entidades distintas. Inabilidade de representar informações: uma entidade só pode existir dependendo da existência de outra; Perda de Informação: para excluir uma dado, é preciso excluir todos os outros relacionados a ele. Problemas causados pela falta de normalização Anomalia de inclusão: um novo cliente só pode ser registrado se atribuído a uma venda; Anomalia de exclusão: ao excluir um cliente, os dados de sua compra são perdidos; Anomalia de alteração: para alterar um único dado, é preciso percorrer toda a relação para múltiplas alterações. Dependência Funcional Determina uma restrição entre dois conjuntos de atributo; representada por ➙, onde X➙Y significa que X determina de forma funcional o atributo Y. OU, Y depende funcionalmente de X. Exemplo: CPF ➙ NOME_FUNCIONARIO. conhecendo o CPF é possível descobrir o nome do funcionário com o qual este CPF está relacionado. CPF, NUMERO_PROJETO ➙ NUM_HORAS_TRABALHADAS. Conhecendo os valores do CPF e do projeto, possível determinas as horas trabalhadas com as quais este cpf está relacionado. Tabela não normalziada Aquela que possui atributos não atômicos, contendo tabelas embutidas (grupos repetidos) Formas Normais Permite identificar a existência de problemas potenciais (anomalias de atualização); Converte progressivamente as tabelas anormais em tabelas de grau e cardinalidade menores até que pouca ou nenhuma redundância existam. “Todo item de dados em uma relação é dependente da chave, da chave toda e de nada mais do que a chave.” [James Martin, 1991] “Um bom modelo de dados gera relações em 3FN.” Primeira Forma Normal 1FN: Quando todos os atributos da relação são monovalorados e atômicos. Quando este for multivalorado, deve-se criar um novo atributo que individualize a informação. Exemplo multivalorado: HISTÓRICO = {matricula-aluno, código-disciplina, notas}. Deve-se criar o atributo prova para se relacional à nota. HISTÓRICO = {matrícula- aluno, código-disciplina, número-prova, nota}; Exemplo não atômico: PESSOA = {CPF, nome-completo}. O atributo nome- completo deve ser explodido, formando: PESSOA = {CPF, nome, sobrenome}. 1. Subdivisão em tabelas: desrtrinchar a tabela forma da norma, tornando únicas as tabelas embutidas; 2. Identificação das chaves: definir as chaves primárias. Segunda Forma Normal 2FN: 1. Quando respeita as regras de 1FN; 2. Os atributos primos devem depender funcionalmente de toda chave primária. São plenamente dependentes de toda a chave primária (da chave composta), não somente de parte dela; 3. Toda tabela 1FN que já possuir uma chave primária formada por um único atributo, já está em 2FN. Quando a chave primária não for composta. Atributo primo:não-chave primária HISTÓRICO = {matrícula-aluno, código-matéria, número-prova, nota, data-da-prova, nome- aluno, endereço-aluno, nome-matéria} Analisando as dependências funcionais de cada atributo primo, chegamos às seguintes dependências funcionais: - matrícula-aluno, código-matéria, número-prova -> nota - código-matéria, número-prova -> data-da-prova - matrícula -aluno -> nome-aluno, endereço-aluno - código-matéria -> nome-matéria Concluimos então que apenas o atributo primo nota depende totalmente de toda chave primária. Para que toda a relação seja passada para a segunda forma normal, devem-se criar novas relações, agrupando os atributos de acordo com suas dependências funcionais: BOLETIM = { matrícula -aluno, código-matéria, número-prova, nota} PROVA = { código-matéria, número-prova, data-da-prova} ALUNO = { matrícula -aluno, nome-aluno, endereço-aluno} MATÉRIA = { código-matéria, nome-matéria} O nome das novas relações deve ser escolhido de acordo com a chave. Terceira Forma Normal 3FN 1 - A relação estiver na segunda forma normal; 2 - Todos os atributos primos dependerem não transitivamente de toda a chave primária. Observe a relação abaixo: PEDIDO = {número-pedido, código-cliente, data-pedido, nome-cliente, código -cidade-cliente, nome-cidade-cliente} Fazendo a análise da dependência funcional de cada atributo primo, chegamos às seguintes dependências funcionais: - número-pedido -> código-cliente - número-pedido -> data-pedido - código -cliente -> nome-cliente - código-cliente -> código-cidade-cliente - código-cidade-cliente -> nome-cidade-cliente Concluimos então que apenas os atributos primos código-cliente e data-pedido dependem não transitivamente totalmente de toda chave primária. Observe que: número-pedido -> código-cliente -> nome-cliente número-pedido -> código-cliente -> código-cidade-cliente número-pedido -> código-cliente -> código-cidade-cliente -> nome-cidade-cliente Isso é dependência transitiva; devemos resolver inicialmente as dependências mais simples, criando uma nova relação onde código-cliente é a chave, o código-cliente continuará na relação PEDIDO como atributo primo, porém, os atributos que dependem dele devem ser transferidos para a nova relação: PEDIDO = {número-pedido, código-cliente, data-pedido} CLIENTE = {código-cliente, nome-cliente, código-cidade-cliente, nome-cidade-cliente} As dependências transitivas da relação PEDIDO foram eliminadas, porém, ainda, devemos analisar a nova relação CLIENTE: código-cliente -> código-cidade-cliente -> nome-cidade-cliente Observe que o nome-cidade-cliente continua com uma dependência transitiva, vamos resolvê- la da mesma maneira : PEDIDO = {número-pedido, código-cliente, data-pedido} CLIENTE = { código-cliente, nome-cliente, código-cidade-cliente} CIDADE = {código-cidade-cliente, nome-cidade-cliente} O nome das novas relações deve ser escolhido de acordo com a chave. Resumo 5. Em um banco de dados relacional, a normalização é o processo de reunirem-se os dados que serão armazenados e separá-los em tabelas, tendo como objetivo principal a preservação da integridade dos dados. Para isso, faz referência às integridades de entidade, de domínio,referencial e à definida pelo usuário. O conceito básico da integridade de entidade especifica 1. quais dados são absolutamente necessários para que o banco de dados funcione apropriadamente 2. que quando um banco de dados está armazenando um registro, ele precisa armazenar algo em cada campo, mesmo que isso não seja necessário. 3. a garantia de que as linhas relacionadas em um par de tabelas continuem relacionadas mesmo depois de terem sido feitas alterações 4. as restrições nas informações armazenadas no banco de dados. Uma entidade dentro de um banco de dados é a representação de uma entidade no mundo real que foi escolhida para ser armazenada 5. que deve ser possível identificar exclusivamente cada entidade armazenada no banco de dados. 7. Codd estabeleceu a existência de três tipos de relações normalizadas, denominadas primeira, segunda e terceira formas normais. Uma relação está na 3ª FORMA NORMAL, se e somente se todos os domínios que não são chaves forem completamente: 1. dependentes entre si e não constituírem grupos repetidos. 2. independentes entre si e constituírem grupos repetidos. 3. dependentes funcionalmente da chave-primária e independentes entre si. 4. independentes funcionalmente da chave-primária mas dependentes da chave- estrangeira. 5. independentes funcionalmente da chave-estrangeira e dependentes entre si.
Compartilhar