Baixe o app para aproveitar ainda mais
Prévia do material em texto
BANCO DE DADOS - UNIVERSIDADE ESTÁCIO DE SÁ - PROF. PAULO BORGES CURSO DE GRADUAÇÃO TECNOLÓGICA – ANÁLISE E DESENVOLVIMENTO DE SISTEMA HISTÓRICO DA ANÁLISE DE SISTEMAS No início dos anos 70 começaram a surgir Metodologias (Técnicas Estruturadas) para tentar disciplinar o processo de Programação e Análise dos Sistemas. Antes disso existiam poucas regras. Basicamente as regras eram restritas à linguagem de programação que se utilizava. Os programadores e analistas utilizavam métodos próprios que dificultavam o entendimento do serviço por pessoas que não estavam diretamente envolvidas no projeto e isso fazia com que os projetos demorassem mais tempo, fossem mais caros e tivessem um custo de manutenção mais elevado. OBJETIVOS PRIMÁRIOS DAS METODOLOGIAS Realizar programas de alta qualidade com comportamento previsível Realizar programas que possam ser facilmente modificáveis Simplificar programas e o processo de desenvolvimento de programas Realizar maior planejamento e controle do processo de desenvolvimento Acelerar o desenvolvimento de sistemas Diminuir o custo de desenvolvimento de sistemas EVOLUÇÃO DAS METODOLOGIAS Programação Estruturada (início dos anos 70) Projeto Estruturado (meados dos anos 70) Análise Estruturada (final dos anos 70) Modelagem de Dados (anos 80) Análise Essencial / Análise Orientada à Objetos (anos 90) METODOLOGIAS Atualmente as metodologias existentes para o desenvolvimento de sistemas são utilizadas para orientar e ordenar o trabalho do Analista de Sistemas ao longo do processo de desenvolvimento. Uma boa metodologia deve definir o processo de desenvolvimento, possui modelos para representar abstrações (diagramas) e possuir diretivas para orientação do trabalho. CICLO DE DESENVOLVIMENTO (CICLO DE VIDA) Compreende todas as atividades necessárias para definir, desenvolver, testar operar e manter um sistema. Os objetivos principais são: Definir as atividades a serem executadas; Prover pontos de controle; Padronizar o processo de desenvolvimento. FASES PRINCIPAIS DO CICLO DE VIDA LEVANTAMENTO ANÁLISE PROJETO IMPLEMENTAÇÃO (CODIFICAÇÃO) TESTE IMPLANTAÇÃO MANUTENÇÃO LEVANTAMENTO (ANÁLISE DE REQUISITOS) Planejamento Descrição do sistema atual Construção do modelo do sistema atual (Modelo Gráfico) Identificação dos problemas do sistema atual Identificação das necessidades não atendidas pelo sistema atual Definição dos requisitos para um novo sistema Formulação de alternativas de solução Redação do plano do projeto (custo e prazo da solução, responsabilidades, requisitos de qualidade, cronograma) ANÁLISE Atividade para qual o analista deve dedicar a maior parte do seu tempo e esforço Consiste em definir e modelar o que o sistema irá fazer, independente da tecnologia que será utilizada na implementação É feita uma reavaliação do plano de projeto, principalmente dos custos e benefícios quantificados na fase anterior PROJETO Definir a melhor alternativa para implementar, em um dado ambiente computacional, todas as características do sistema definidas na Análise Os critérios utilizados na escolha das alternativas são: performance, facilidade de uso, facilidade de alteração, segurança (contra acesso indevidos e perdas acidentais de dados) e confiabilidade IMPLEMENTAÇÃO (CODIFICAÇÃO) Consiste na codificação dos programas e criação dos arquivos de dados TESTE Consiste na definição de casos de testes e na realização de testes unitários do sistema, testes de integração entre os módulos e testes de aceitação (normalmente feitos com os usuários) IMPLANTAÇÃO Implantar o sistema nas instalações do usuário Fornecer os manuais do sistema Dar carga dos arquivos de dados reais Treinamento dos usuários MANUTENÇÃO Todo trabalho executado após a implantação é chamado de manutenção Manutenção Corretiva – corrigir erros Manutenção Adaptativa – adaptar o sistema a uma nova realidade Manutenção Evolutiva – dotar o sistema de novas capacidades ANÁLISE DE REQUISITOS É o primeiro passo no modelo do processo. O que devo fazer e não a forma como será implementado. Serve como contrato entre o desenvolvedor e o comprador É o processo de aquisição, refinamento e verificação das necessidades do sistema O objetivo é sistematizar o processo de definição dos requisitos, obtendo uma especificação correta e completa do mesmo para elaboração do Documento de Requisitos REQUISITOS É um conjunto de necessidades estabelecido pelo cliente/usuário dos sistema que definem a estrutura e o comportamento do software que será desenvolvido Os itens dos requisitos são: dados, processos, restrições de negócio, pessoas envolvidas e o relacionamento entre todos esses itens Existem dois tipos de requisitos: Funcionais (Diretos) e Não Funcionais (Indiretos) As principais técnicas para obtenção dos requisitos são: Entrevista, Questionário, Inspeção de documentos utilizados nos processos existentes, Observação direta, BRAINSTORMING (reunião de pessoas com diferentes níveis de informação e conhecimento sobre o sistema desejado. Essa discussão é conduzida por um mediador. Diversas cabeças pensam melhor do que uma) REQUISITOS FUNCIONAIS Definem a funcionalidade desejada do software, ou seja, definem funções, ações ou operações que poderão vir a ser realizadas pelo sistema, seja por meio de comandos dos usuários ou pela ocorrência de eventos internos ou externos ao sistema REQUISITOS NÃO FUNCIONAIS Referem-se às qualidades globais de um software, tais como: fácil manutenção, segurança, facilidade de uso, desempenho, baixo custo, funcionalidade, interfaces, tipos de usuários CONCEITOS BÁSICOS Dado É a representação de um evento. Informação É o dado processado por um determinado Sistema de maneira que possa ser utilizado para a tomada de alguma ação/decisão. SISTEMA DADO PROCESSAMENTO INFORMAÇÃO Computador só armazena dados, gerando informações. Exemplos : Data de nascimento = Dado Notas Prova = Dado Idade = Informação Média = Informação BANCO DE DADOS Definições Critério de abordagem para a integração de dados e informações da empresa. Coleção de dados armazenados e organizados de modo a atender as necessidades dos usuários. Refere-se à especialidade de armazenar, organizar e recuperar os dados num computador e as ferramentas para fazê-lo. Requisitos para o seu sucesso Estar baseado num planejamento global; Ser considerado como um recurso corporativo; Independer estruturalmente de processos ou aplicações específicas; Estar destinado a ser compartilhado por qualquer processo ou aplicação dentro da empresa. Sistema de Gerência de Banco de Dados (SGBD) É usual dizer que os termos Banco de Dados e SGBD são sinônimos, porém o Banco de Dados representa o conteúdo e o SGBD é a ferramenta (software) para manipular o Banco de Dados. Definimos um SGBD como um conjunto de software para gerenciar (criar, modificar, manipular) um Banco de Dados e para garantir a integridade e segurança dos dados. Funções de um SGBD Integridade dos dados Precisão e validade dos dados armazenados. Redundância dos dados Evitar a redundância dos dados. Controle dos dados Dados só poderão ser acessados ou modificados por usuários autorizados. Independência dos dados Permite que o Banco de Dados seja modificado sem necessitar reescrever os programas que já estão prontos. Facilidade de uso Aplicações são desenvolvidas mais rapidamente e com mais segurança, aumentando a produtividade da programação, tornando os programas mais simples e diminuindo o tempo de manutenção. Uso compartilhado Permitir que vários usuários acessem o Banco de Dados ao mesmo tempo. Portabilidade Ser independente doSistema Operacional e de qualquer tipo de equipamento. Utilitários É necessário que existam ferramentas de apoio ao SGBD. Desempenho O desempenho do SGBD pode ser medido pelo tempo de resposta e pela eficiência no armazenamento dos dados. O desempenho depende principalmente da arquitetura empregada e da implementação física. Componentes de um SGBD Linguagem de definição de dados (DDL) É a linguagem utilizada para definir o conteúdo do Banco de Dados, suas tabelas e seus dados Linguagem de manipulação dos dados (DML) Permite que se façam operações de acesso, inclusão, atualização e eliminação dos dados existentes nos Bancos de Dados pelos programas de aplicação. Dicionário de Dados É utilizado para descrever os dados e suas relações em forma totalmente conceitual e independente do seu envolvimento nas diversas aplicações. Linguagem de consulta (QUERY) Permite que o usuário final, com poucos conhecimentos técnicos, possa obter, de forma simples, informações do Banco de Dados. Utilitários Programas auxiliares que realizam diversas operações num Banco de Dados tais como: compactar, reorganizar, recuperar dados, obter cópia do Banco de Dados etc. Além dos analistas e programadores existem profissionais que trabalham diretamente com o Banco de Dados: Administrador de Dados (AD) Planeja o Modelo de Dados; Coordena a utilização do Modelo de Dados; Administra o Banco de Dados. Administrador do Banco de Dados (DBA) Gerencia o modelo físico do Banco de Dados; Cuida da operacionalidade e eficiência do Banco de Dados. MODELAGEM DE DADOS Engenharia da Informação Metodologia utilizada para o Desenvolvimento de Sistemas cujo enfoque principal é o DADO. Baseia-se no Princípio da Independência dos Dados, ou seja, os dados possuem estruturas e características inerentes a si mesmos, independentes dos processos que os utilizam ou venham a utilizar. A idéia principal é levantar as estruturas de dados que vão dar origem aos Bancos de Dados, provendo um fácil acesso aos mesmos. Os dados são estáveis, não são voláteis como os processos. O suporte desta metodologia está baseado na técnica de Modelagem de Dados e seus relacionamentos, desenvolvida inicialmente por Peter Chen (1976). Modelo É a representação abstrata e simplificada de um sistema real, com a qual se pode explicar ou testar o seu comportamento, em seu todo, ou em partes. ex. Planta baixa de um apartamento Aeromodelo Manequim O Modelo tem como referência o objeto observado, objeto este que pode ser uma empresa, um departamento, uma função da empresa, um sistema , etc. Modelagem de Dados Consiste no processo de levantamento de dados, investigação e análise dos dados e seus relacionamentos, enfocando quais informações são necessárias para o funcionamento do objeto observado, independentemente de como ele funciona. É utilizada como meio para obtenção das estruturas de dados que nos levam ao projeto de banco de dados. Ao longo do processo de modelagem temos 3 tipos distintos de modelos de dados: Modelo Conceitual Os objetos(dados), suas características e relacionamentos tem a representação fiel ao ambiente observado, independente de quaisquer considerações físicas e operacionais; Representa o objeto observado e suas necessidades presente e futura de informação; A partir do Modelo Conceitual deverá ser possível “derivar” diferentes estruturas de implementação, sem haver necessidade de se alterar o Modelo Conceitual; Esse modelo está ligado às fases de análise e nunca às fases de projeto; Para representar esse modelo utilizamos como técnica a abordagem Entidade-Relacionamento(E-R) que se destina basicamente ao projeto de Banco de Dados. Modelo Lógico de Dados Os objetos, suas características e relacionamentos tem a representação de acordo com as regras de implementação e limitações imposta por algum tipo de tecnologia. Depende do modelo físico da implementação (abordagem relacional / rede / hierárquica); Utilizam-se conceitos tais como: chaves de acesso, controle de chaves duplicadas, normalização, integridade referencial, etc; Esse modelo está ligado à fase de projeto. Modelo Físico de Dados Utiliza as características físicas de implementação em função do Banco de Dados utilizado; Deve obedecer aos requisitos de desempenho do sistema (tempo de resposta, I/O, espaço em disco, etc.); Descreve as estruturas físicas de armazenamento dos dados tais como: tamanho dos campos, índices, nomenclaturas, tipo de preenchimento dos campos, etc. Estrutura Lógica dos Dados Representa como acontece a conexão entre as diversas entidades que estão relacionadas entre si, mas não mostra como esta conexão é implementada. Exemplo: DEPARTAMENTO EMPREGADO Para se representar a Estrutura Lógica dos Dados foi introduzido por Bachman uma técnica de diagramação chamada de Diagrama de Estrutura de Dados. Essa técnica tem a finalidade de obter uma visão gráfica do Modelo de Dados. São utilizados os seguintes símbolos: O retângulo representa um tipo de entidade A flecha é utilizada para relacionar 2 tipos de entidades. Define a relação existente. Tipos de Associações Relação 1:1 A cada ocorrência de uma entidade A corresponde uma única ocorrência de um outro tipo de entidade B. Exemplos: HOMEM PAÍS casamento presidência MULHER PRESIDENTE Relação 1:N Define uma estrutura onde a cada ocorrência de um tipo de entidade corresponde 0 a N valores do outro tipo. É a relação básica de estruturas hierárquicas, além de existir freqüentemente em estruturas rede. Exemplos: PAI SISTEMA paternidade componentes-sistema FILHO PROGRAMA Relação M:N A relação M:N especifica que M ocorrências de uma certa entidade aponta para N ocorrências de outra entidade. Exemplos: PROJETO PEÇA MATÉRIA projeto-pessoal peça-fornecedor matéria-aluno PESSOAL FORNECEDOR ALUNO As relações M:N são muito comuns, mas não tem suporte direto pelos SGBD mais usuais. É necessário a sua conversão para diversas relações 1:N com a criação de um novo tipo de entidade (freqüentemente denominada de entidade associativa) que passa a relacionar os tipos de entidades anteriores. Exemplos: PROJETO PESSOAL PEÇA FORNECEDOR APROPRIAÇÃO DE MÃO DE OBRA PEDIDO MATÉRIA ALUNO TURMA Modelos de Bancos de Dados É um modo de estruturar logicamente as informações. Os principais modelos de Banco de Dados são os seguintes: Modelo Relacional, Modelo Orientado a Objeto, Modelo Relacional-Objeto, Modelo Rede e Modelo Hierárquico Modelo Relacional Utiliza a teoria dos conjuntos como base formal para a descrição de Modelo de Dados Se baseia na álgebra relacional e no cálculo relacional Os dados são estruturados em tabelas (relações) que são formadas de linhas (tuplas) e colunas (atributos) Estrutura de índices separadas dos dados Relações são normalizadas Integridade referencial mantida pelas aplicações/SGBD Permite auto-relacionamento São exemplos de Bancos de Dados Relacional : DB2, SYBASE, ORACLE, INFORMIX, ACCESS, SQL SERVER, FIREBIRD, POSTGRESQL, MYSQL, PARADOX, INGRES, INTERBASE MODELO ENTIDADE-RELACIONAMENTO (MODELAGEM CONCEITUAL) A Lei do Mundo O mundo está cheio de coisas que possuem características próprias e que se relacionam entre si.A abordagem Entidade-relacionamento se baseia, conceitualmente, no que está descrito acima. Em função disso podemos definir os conceitos necessários dentro da abordagem E-R: Conceitos Básicos Abordagem do Modelo E-R Abordagem Orientada a Objetos na “Lei do Mundo” (Modelagem de Dados) (Modelagem da Informação) Conjunto de objetos ou elementos Entidades Classes individualizados, semelhantes Individualização de objetos ou Instâncias ou ocorrências Objetos elementos Características próprias Atributos Atributos Inter-relacionamento de objetos Relacionamentos Associações ENTIDADES São as “coisas” que existem no negócio, ou seja, descrevem o negócio em si e precisamos armazenar dados a seu respeito. É a representação de um conjunto de informações de mesma característica e suas instâncias (ocorrências) representam o conjunto dessas características (dados). exemplo: Dado o texto abaixo, extrair as Entidades existentes: “Uma Clínica Médica necessita controlar as consultas médicas realizadas e marcadas pelos seus médicos e fazer o acompanhamento dos pacientes atendidos.” Solução: Consulta Médica (data da consulta, médico, paciente) Médico Paciente ENTIDADES FRACAS Uma entidade é chamada de fraca se a sua existência depender de outra entidade (chamada de entidade forte). BANCO Entidade Forte 1,1 POSSUI 1,N AGÊNCIA Entidade Fraca ENTIDADES ASSOCIATIVAS OU AGREGADAS Resulta da associação entre duas ou mais entidades sendo sua identificação feita através das entidades que ela associa. exemplo: POSSUI 1,M 1,N PROJETO FUNCIONÁRIO Em função do relacionamento M x N surge então a entidade ALOCAÇÃO. M N PROJETO ALOCAÇÃO FUNCIONÁRIO ATRIBUTOS São as características inerentes a cada um dos objetos observados (entidades). Os atributos possuem valor. Através da análise dos atributos, podemos enquadrar um objeto como pertencente a um determinado conjunto distinto. exemplos: PESSOA Escolaridade = nível superior Data Nascimento = 19/03/47 Cidade = Nova Friburgo CARRO Placa = VFC1234 Marca = Fiat Modelo = Palio EX RELACIONAMENTOS É o acontecimento que liga dois objetos no mundo real. Através do mapeamento dos relacionamentos, podemos demonstrar como um objeto se comporta em relação aos demais, qual o seu grau de dependência de outros objetos e qual a associação de dados existente entre eles. Os relacionamentos podem ser basicamente: Entre instâncias de objetos de diferentes tipos; Entre instâncias de um mesmo tipo de objeto (auto-relacionamento ou relacionamento recursivo) exemplo: PESSOA CARRO PESSOA 1,1 É PROPRIETÁRIA 0,N CARRO 0,1 PESSOA É CASADA COM 0,1 GRAU OU CARDINALIDADE PESSOA PESSOA 1,1 DIRIGE DIRIGE 0,N É DIRIGIDO CARRO CARRO PETER CHEN JAMES MARTIN RELACIONAMENTO 1:1 (UM para UM) 1,1 1,1 MARIDO ESPOSA É CASADO RELACIONAMENTO 1:N (UM para MUITOS) 1,1 1,N EMPRESA FILIAL POSSUI RELACIONAMENTO M:N (MUITOS para MUITOS) 1,M 1,N ATLETA ESPORTE PRATICA Exercício: Fazer o Diagrama Entidade-Relacionamento considerando as seguintes Entidades: ALUNO DISCIPLINA PROFESSOR CURSO Observações: 1 – Uma disciplina pertence a somente um curso; 2 – Um aluno pode cursar diversas disciplinas; 3 – Um professor pode lecionar diversas disciplinas e uma disciplina pode ser lecionada por diversos professores; 4 – Considerar a existência de 4 possíveis notas; 5 – Considerar freqüência como sendo somente um indicativo de aprovação/reprovação. Solução do Exercício: 1,M 1,N ALUNO CURSA DISCIPLINA 1,N MINISTRA 1,M PROFESSOR 1,M 1,N ALUNO DISCIPLINA 1,1 PROFESSOR M N ALUNO CURSA DISCIPLINA M LECIONA 1 PROFESSOR ALUNO 1,M 1,N DISCIPLINA 1 . NOTAS também se relaciona com ALUNO / DISCIPLINA N NOTAS Obs.: NOTAS e FREQUÊNCIA não tem sentido sozinho, são apenas atributos do relacionamento ALUNO / DISCIPLINA (não existem informações a serem guardadas em relação à NOTAS e FREQUÊNCIA) M N ALUNO CURSA DISCIPLINA M 1,N LECIONA TEM 1 1,1 PROFESSOR CURSO Obs.: Como sabemos quantas notas existem, apesar de fugir da normalização, adotamos essa solução (redundância controlada). No exercício anterior, criamos uma estrutura chamada de Agregação. A Agregação acontece quando existe um relacionamento (M:N) entre entidades e por sua vez este relacionamento se relaciona com uma outra entidade. Gráficamente podemos representar essa situação de duas maneiras: M N M 1 M N M 1 Exercícios: 1) Considerando as entidades: FUNCIONÁRIO PROJETO FUNÇÃO Temos o seguinte: Um funcionário pode trabalhar em vários projetos simultaneamente e cada projeto pode ter vários funcionários. Dependendo do projeto em que o funcionário atue, o funcionário pode ter funções distintas. Todo funcionário tem um gerente que também é funcionário. Representar o Diagrama E-R. 2) Considerando as entidades: EMPRESA PESSOA DEPARTAMENTO Temos o seguinte: A empresa é formada por várias pessoas que podem ser do tipo: executivos, acionistas, funcionários. Os funcionários estão alocados pelos diversos departamentos da empresa. Representar o Diagrama E-R. Solução dos exercícios: 1) 1,M 1,N FUNCIONÁRIO PROJETO ATUA 1,M EXERCE 1,N FUNÇÃO 1,1 M N FUNCIONÁRIO ATUA PROJETO 1,N M EXERCE TEM GERENTE 1 FUNÇÃO 2) 1,1 1,N EMPRESA PESSOA É FORMADA POR 1,1 PERTENCE FUNCIONÁRIOS EXECUTIVOS ACIONISTAS 1,N 1,1 1,N DEPTO No exercício acima temos uma estrutura chamada de Generalização-Especialização (GEN-SPEC). Nesse caso, Funcionários, Executivos e Acionistassão especializações de Pessoa (que é a generalização). Pessoa também pode ser chamada de Super-Tipo equanto que as especializações são chamadas de Sub-Tipo. A implementação física desse conceito pode ser feita através de um atributo que indique o tipo de pessoa (identificador). Modelo Lógico A partir do Modelo Conceitual elaborado através do Diagrama E-R, obteremos o Modelo Lógico aplicando um conjunto de regras bem definidas. Essas regras atuarão basicamente em dois grupos distintos de elementos: as estruturas de relacionamento, agregação e especialização de um lado e as entidades e seus atributos de outro. O Modelo Lógico pode ser obtido através dos seguintes passos: 1 - Obter o Modelo Conceitual 2 - Definir o tipo de implementação (Rede, Relacional, O-O) 3 - Aplicar as regras de derivação específicas 4 - Adaptar o modelo às necessidades (redundância, desnormalização, etc. São artifícios criados para resolver problemas de desempenho, flexibilidade, independência e segurança) Modelo Relacional ou Abordagem Relacional Proposto por Edgard F. Codd (anos 70) está baseado na Teoria dos Conjuntos (Álgebra Relacional). As operações utilizadas para manuseio dos conjuntos podem ser utilizadas sobre estruturas de dados. O Modelo Relacional utiliza o conceito de tabelas, ou seja, a tabela é a visão tabular ou plana representativa de uma relação. O termo Relacional advém do fato de as relações serem implementadas através de uma estrutura de dados relacional. Os dados são representados em forma de tabelas (relações) através de linhas (tuplas) e colunas (domínios ou atributos). Vantagens da Abordagem Relacional - Independência total dos dados - Visão múltipla dos dados - Redução na atividade de desenvolvimento / manutenção - Melhoria na segurança dos dados Conceitos - Chaves Candidatas São as colunas de uma tabela que podem garantir que não haverá linhas repetidas (tuplas). - Chave Primária Dentre as chaves candidatas, é a coluna escolhida (ou mais de uma coluna) que identifica univocamente uma tupla. - Chave Estrangeira É uma chave, portanto identifica de modo único uma tupla. Ela não está em seu local original (local de origem) mas sim em um local para onde foi migrada (no estrangeiro). Ela tem um local de origem e lá possui suas características originais (é uma chave primária). É através da chave estrangeira que se estabelece o relacionamento entre duas tabelas. Obs.: No ambiente relacional uma tabela é acessível por qualquer campo (atributo) independente deste ser declarado como chave ou não. Para isso usamos o recurso do índice que é um recurso físico visando otimizar a recuperação via um método de acesso. Alguns autores chamam o índice de Chave Secundária. exemplos: 1) Supondo uma tabela que tivesse os seguintes atributos: nome do eleitor, data de cadastramento, junta eleitoral, identidade, cpf, título de eleitor, data de nascimento, endereço, etc. Poderíamos utilizar para chaves candidatas os seguintes atributos: identidade, cpf ou título de eleitor. Porém, devido as características da tabela, o mais apropriado é que a chave primária fosse o atributo título de eleitor. 2) Dado o Diagrama E-R abaixo, através do conceito de chave estrangeira será estabelecido o relacionamento descrito: 1,1 1,N AUTOR LIVROS PUBLICA Para efetivarmos o relacionamento acima, inserimos na tabela LIVROS o atributo CÓDIGO AUTOR que será considerado como uma chave estrangeira. 1,1 1,1 AUTOR LIVROS No exemplo acima podemos colocar o atributo CÓDIGO AUTOR na tabela LIVROS ou o atributo CÓDIGO LIVRO na tabela AUTOR. O efeito seria o mesmo. A implementação irá definir que solução adotar. Derivação do Modelo E-R para o Modelo Lógico (Modelo Relacional) Regras: 1) Mapeamento das Entidades Toda Entidade transforma-se em uma tabela. 2) Mapeamento dos Relacionamentos a) Relacionamento 1:N (Entidades distintas) 1,1 1,N DEPTO FUNCIONÁRIO TEM A Entidade cuja cardinalidade é N, carrega o identificador (chave primária) da Entidade cuja cardinalidade é 1. b) Relacionamento 1:N (envolvendo auto-relacionamento) 1,N FUNCIONÁRIO TEM GERENTE 1,1 Matrícula Nome Matrícula Gerente 100 Carlos 200 200 Maria 200 300 Ana 500 400 João 500 500 Irene 500 Incluir a chave primária da Entidade na própria Entidade como chave estrangeira. c) Relacionamento 1:1 (Entidades distintas) 1,1 1,1 FUNCIONÁRIO DEPTO CHEFIA As Entidades envolvidas neste relacionamento carregarão o identificador da outra conforme a conveniência do projeto. d) Relacionamento 1:1 (envolvendo auto-relacionamento) 1,1 PESSOA CASADA COM 1,1 Código Pessoa Nome Código Cônjuge 100 Carlos 200 200 Maria 100 300 Ana 600 400 João 500 500 Irene 400 600 José 300 Incluir a chave primária da Entidade na própria Entidade como chave estrangeira. e) Relacionamento M:N (Entidades distintas) 1,M 1,N ALUNO DISCIPLINA CURSA O relacionamento torna-se uma tabela, carregando os seus próprios atributos (se houver) e os identificadores das Entidades que se relacionam. f) Relacionamento M:N (envolvendo auto-relacionamento) 0,M DISCIPLINA PRÉ-REQUISITO 0,N Código Disciplina Nome Código Disciplina Código Pré-Requisito 001 Análise I 002 001 002 Análise II 003 002 003 Análise III 004 003 004 Análise IV 004 005 005 Projeto I Tabela Disciplina Tabela Pré-Requisito O relacionamento torna-se uma tabela, carregando os seus próprios atributos (se houver) e o identificador da Entidade que se auto-relaciona. g) Estrutura de Generalização-Especialização FUNCIONÁRIO ENGENHEIRO VENDEDOR MOTORISTA O usual é criar um atributo na Entidade supertipo que caracterize os diversos subtipos existentes. (no exemplo acima poderia ser o atributo “cargo” ) h) Estrutura de Agregação M N AUTOR TRABALHA EDITORA 1 PUBLICA N LIVROS As agregações devem ser analisadas em 2 etapas: - A etapa relativa ao relacionamento M:N que dá origem a uma nova tabela (Entidade); - A etapa relativa ao relacionamento entre essa nova Entidade e a outra Entidade. Aplicam-se nestas duas etapas as regras já vistas anteriormente. No exemplo acima a tabela Livros receberia a chave primária da tabela Trabalha que é formada pelos atributos Código Autor e Código Editora. Normalização Processo formal passo à passo que examina os atributos de uma entidade (tabela) com o objetivo de evitar anomalias observadas na inclusão, alteração e exclusão de tuplas específicas. É um processo necessário à implementação de estruturas relacionais. Vamos considerar um formulário de pedido que tivesse os atributos descritos abaixo e em função desses atributos aplicar as regras de normalização. - Número do Pedido - Prazo de Entrega - Nome do Cliente - Endereço do Cliente - Cidade do Cliente - UF do Cliente - CGC do Cliente - Inscrição Estadual do Cliente - Código do Produto - Fornecedor do Produto - Unidade do Produto - Quantidade do Produto Esses atributos se repetem no formulário. - Descrição do Produto - ValorUnitário do Produto - Valor Total do Produto - Valor Total do Pedido - Código do Vendedor - Nome do Vendedor - Quantidade do Produto no Estoque Primeira Forma Normal (1FN - Grupos Repetitivos) Uma Tabela (Entidade) está na 1FN se: - As tuplas da tabela são unívocas, ou seja, o conteúdo da chave primária não pode se repetir; - As tuplas da tabela não contêm itens repetitivos; Para se obter entidades na 1FN é necessário decompor cada entidade não normalizada em tantas entidades quantos forem o número de conjuntos de atributos repetitivos. No nosso exemplo teríamos a seguinte solução para a 1FN: Entidade Pedido - Número do Pedido (Chave Primária) - Prazo de Entrega - Nome do Cliente - Endereço do Cliente - Cidade do Cliente - UF do Cliente - CGC do Cliente - Inscrição Estadual do Cliente - Valor Total do Pedido - Código do Vendedor - Nome do Vendedor Entidade Item de Pedido - Número do Pedido (Chave Primária) - Código do Produto (Chave Primária) - Fornecedor do Produto - Unidade do Produto - Quantidade do Produto - Descrição do Produto - Valor Unitário do Produto - Valor Total do Produto - Quantidade do Produto no Estoque A representação do Diagrama Entidade-Relacionamento ficaria assim: PEDIDO 1,1 1,N ITEM PEDIDO POSSUI Anomalias da 1FN Inclusão . Só é possível incluir um novo cliente caso ele faça um pedido. . Só é possível incluir um novo produto caso ele pertença a um item de pedido. . Se um mesmo cliente for incluído em um outro pedido com dados diferentes, as informações desse cliente ficarão diferentes nos diversos pedidos. Exclusão . Se excluirmos um determinado pedido, perderemos as informações do cliente e do produto associados ao pedido. Atualização . Se quisermos alterar informações de um cliente ou de algum produto, teremos que atualizar diversas tuplas da tabela. Segunda Forma Normal (2FN - Dependências Parciais de Chaves Concatenadas) Uma Tabela (Entidade) está na 2FN se está na 1FN e cada um dos seus atributos não pertencentes à chave primária for dependente parcialmente dessa chave (isso ocorre quando a chave primária é fomada por mais de um atributo). No nosso exemplo, na entidade Item de Pedido, os atributos Fornecedor do Produto / Unidade do Produto / Descrição do Produto e Valor Unitário do Produto só dependem de Código do Produto, logo sugirá uma nova entidade chamada Produto com os seguintes atributos: Entidade Produto - Código do Produto (Chave Primária) - Fornecedor do Produto - Unidade do Produto - Descrição do Produto - Valor Unitário do Produto - Quantidade do Produto no Estoque Com isso a entidade Item de Pedido ficou com os seguintes atributos: Entidade Item de Pedido - Número do Pedido (Chave Primária) - Código do Produto (Chave Primária) - Quantidade do Produto - Valor Total do Produto A representação do Diagrama Entidade-Relacionamento ficaria assim: PEDIDO 1,1 1,N ITEM PEDIDO POSSUI 1,N CONTÊM 1,1 PRODUTO Anomalias da 2FN Inclusão . Só é possível incluir um novo cliente caso ele faça um pedido. . Se um mesmo cliente for incluído em um outro pedido com dados diferentes, as informações desse cliente ficarão diferentes nos diversos pedidos. Exclusão . Se excluirmos um determinado pedido, perderemos as informações do cliente associado ao pedido. Atualização . Se quisermos alterar informações de um cliente teremos que atualizar diversas tuplas da tabela. Terceira Forma Normal (3FN - Dependências Transitivas) Uma Tabela (Entidade) está na 3FN se está na 2FN e se nenhum dos seus atributos possui dependência transitiva em relação a outro atributo que não participe da chave primária. No nosso exemplo, na entidade Pedido, o atributo Nome do Vendedor depende do Código do Vendedor que no caso não pertence à chave primária, logo surgirá uma nova entidade chamada de Vendedor. O mesmo raciocínio se aplica às informações do cliente surgindo então uma nova entidade chamada de Cliente. Entidade Vendedor - Código do Vendedor (Chave Primária) - Nome do Vendedor Entidade Cliente - Código do Cliente (Chave Primária) - Nome do Cliente - Endereço do Cliente - Cidade do Cliente - UF do Cliente - CGC do Cliente - Inscrição Estadual do Cliente Com isso a entidade Pedido ficou com os seguintes atributos: Entidade Pedido - Número do Pedido (Chave Primária) - Prazo de Entrega - Código do Cliente - Código do Vendedor - Valor Total do Pedido A representação do Diagrama Entidade-Relacionamento ficaria assim: PEDIDO 1,1 1,N ITEM PEDIDO POSSUI 0,N 0,N 1,N TIRA CONTÊM 1,1 1,1 FAZ VENDEDOR PRODUTO 1,1 CLIENTE Anomalias da 3FN Inclusão . Foram resolvidas as anomalias da 2FN Exclusão . Foram resolvidas as anomalias da 2FN Atualização . Agora só precisamos atualizar o respectivo cliente que teve alguma alteração nas suas informações. observação: Na entidade Item de Pedido o atributo Valor Total Produto depende do atributo Quantidade do Produto, logo está em desacordo com a regra para a 3FN. Esse atributo só foi colocado para melhorar a performance na recuperação da informação consolidada. (desnormalização controlada) Existem ainda outras formas normais, a saber: Quarta Forma Normal, Quinta Forma Normal e a Forma Normal de Boyce/Codd. código projeto matrícula funcionário Temos que identificar qual o relacionamento entre os objetos. Esse relacionamento se expressa através de uma construção verbal. Também temos que caracterizar o relacionamento (apontar qual a sua cardinalidade). ALUNO / DISCIPLINA PROFESSOR / DISCIPLINA Obs.: Nesta solução não é possível identificar qual o professor que ministra a disciplina para um determinado aluno. Na verdade existe um relacionamento entre múltiplas entidades. No caso é um relacionamento ternário (ALUNO / DISCIPLINA / PROFESSOR). CÓD. ALUNO CÓD. DISCIPLINA CÓD. PROFESSOR CÓD. ALUNO CÓD DISCIPLINA CÓD. PROFESSOR NOTA1,2,3,4 FREQUÊNCIA Aqui eu não consigo identificar a função que o funcionário exerce pois a mesma depende do projeto em que ele está trabalhando. CÓDIGO LIVRO TÍTULO EDITORA PREÇO CÓDIGO AUTOR NOME ENDEREÇO CURSA CURSA ATUA � PAGE �1�
Compartilhar