Baixe o app para aproveitar ainda mais
Prévia do material em texto
MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Apresenta a diferença entre dado e informação e a importância destes dados no ambiente dos sistemas de informação. • Conceitua Banco de Dados, Sistema Gerenciador de Bancos de Dados e Sistemas de Bancos de Dados • Analisa as diferenças entre Sistemas de Bancos de Dados e Sistemas baseados em Arquivos • Apresenta a história e a evolução dos bancos de dados • Apresenta os usuários de um ambiente de banco de dados Dados e Informações “Dados são uma descrição elementar de coisas, eventos, atividades ou transações que são registradas, classificadas e armazenadas, mas não são organizadas para carregar qualquer significado específico.” Fonte:Turban, Efrain. Administração da Tecnologia da Informação: Teoria e Prática / Efraim Turban, R. Kelly Rainer, Richard E. Potter; tradução Daniel Vieira. Rio de Janeiro:Elsevier,2005. 6ºreimpressão. Um dado é um símbolo, apresentado de forma primária, que pode ser de diversas formas como, por exemplo: • Palavras • Nomes • Números • Horas • Fotos • Figuras • Sons, e outros. Dados e Informações Quando os dados (fatos) estão organizados, arranjados e relacionados de tal forma que represente uma modificação (quantitativa ou qualitativa) no sistema de maneira significativa e eles se tornam informação, isto é, dados que foram organizados de modo que tenham significado e valor para o recebedor. Informação é o conjunto de fatos organizados de tal forma que adquirem valor adicional além do valor do fato em si mesmos. Dados e Informações A transformação de dados em informação é um processo, ou seja, um conjunto de tarefas logicamente relacionadas, executadas para a realização de um resultado definido. Processo ( Regras e Relações) Dados Informação Dados e Informações Por exemplo, com os dados de peças mantidas em estoque, pedidos e vendedores podemos obter informações tão diferentes quanto: • lista de peças que estão em falta no estoque • a média de venda por peça • os melhores e piores vendedores da companhia, • relacionar os piores e melhores vendedores com as horas trabalhadas por cada um deles. Dados e Informações • Os dados relevantes para um determinado negócio se mantém estáveis mesmo que o negócio em questão modifique radicalmente sua forma de operação, ou seja, os seus processos. • Sendo assim, podemos afirmar que dados são mais estáveis do que processos e, portanto, representam a uma das partes mais valiosas e importantes de um sistema de informação. Dados e Informações Bancos de Dados De acordo com (Navathe, 2005), podemos definir um banco de dados como um conjunto de dados que se relacionam. Bancos de Dados Porém, o significado do termo é mais restrito do que esta definição. Um banco de dados, necessariamente, possui as seguintes propriedades: • um banco de dados é uma coleção lógica coerente de dados com um significado inerente; • uma disposição desordenada de dados não pode ser referenciada como um banco de dados; • um banco de dados é projetado, construído e populado com dados para um propósito específico; Bancos de Dados Porém, o significado do termo é mais restrito do que esta definição. Um banco de dados, necessariamente, possui as seguintes propriedades: • um banco de dados possui um conjunto pré definido de usuários e aplicações; • um banco de dados representa algum aspecto do mundo real, o qual é chamado de “mini-mundo” e qualquer alteração efetuada neste mini-mundo é automaticamente refletida no banco de dados. Sistemas Gerenciadores de Bancos de Dados e Sistemas de Banco de Dados • Um banco de dados é criado e mantido por um conjunto de aplicações desenvolvidas especialmente para esta tarefa denominado “Sistema Gerenciador de Banco de Dados” (SGBD). • Um SGBD é uma coleção de programas que permite aos seus usuários criarem e manipularem bancos de dados. O conjunto formado por um banco de dados e estes programas que o manipulam é chamado de Sistema de Banco de Dados. Sistemas Gerenciadores de Bancos de Dados e Sistemas de Banco de Dados Sistemas Gerenciadores de Bancos de Dados e Sistemas de Banco de Dados • O SGBD não mantém somente os dados, mas, também, a forma como os mesmos são armazenados, através de uma descrição completa dos dados armazenados. • Estas informações são armazenadas no catálogo ou dicionário de dados do SGBD, que contém informações como a estrutura de cada arquivo, o tipo e o formato de armazenamento de cada tipo de dado, restrições, etc. • As informações armazenadas neste catálogo são chamadas meta-dados. SGBD X Sistemas de Gerenciamento de Arquivos • A melhor maneira de entender a natureza geral e as características dos bancos de dados de hoje, é olhar para as características dos sistemas que antecederam o uso da tecnologia de banco de dados: os Sistemas de Gerenciamento de Arquivos. “Sistemas de Gerenciamento de Arquivos” • Cada usuário define e implementa os arquivos necessários para uma aplicação específica, acarretando repetição dos dados e gerando inconsistência nas informações. Por exemplo: salário do funcionário X sistema de folha de pagamento sistema financeiro salário do funcionário X Sistemas de Gerenciamento de Arquivos salário do funcionário X sistema de folha de pagamento sistema financeiro salário do funcionário X • Não existem garantias que a alteração do salário de um funcionário específico seja efetuada para os arquivos nos dois. • Se esta atualização não seja efetivada para os dois sistemas, em algum deles, as informações geradas com base neste dado, serão inconsistentes. Não refletirão a realidade do negócio. Sistemas de Gerenciamento de Arquivos • O acesso aos dados está escrito nos programas que o manipulam, subordinando os programas aos arquivos. • Isto significa que qualquer alteração na estrutura dos arquivos acarretará alterações em todos os programas que o acessam. • Estas alterações sempre envolvem muito tempo e muito dinheiro. Sistemas de Gerenciamento de Arquivos • A manipulação dos dados contidos nos arquivos pelas aplicações específicas dificulta o desenvolvimento de novos sistemas e torna a manutenção dos aplicativos difícil e cara. Sistemas de Gerenciamento de Arquivos • O sistema possibilita uma redundância não controlada de dados e inconsistência ao permitir que em um sistema um dado seja alterado e esse mesmo dado não seja alterado em outro. Sistemas de Gerenciamento de Arquivos • A responsabilidade sobre os procedimentos de backup e recuperação esta a cargo da aplicação. Assim, não podem ser automatizadas e, caso o responsável pela aplicação não efetue estes backups sistematicamente, podem ocorrem perda de dados. Sistemas Gerenciadores de Bancos de Dados (SGBD) • Um arquivo (tabela) é definido uma única vez e atende a várias aplicações, ou seja, existe múltipla visão dos dados. • Armazena-se junto com os dados todas as informações referentes à forma como estes foram estruturados e onde eles estão armazenados fisicamente. Essas informações estão armazenadas no catálogo ou dicionário de dados do SGBD. Sistemas Gerenciadores de Bancos de Dados (SGBD) • Há separação entre programas e dados. • Os acessos são escritos no banco de dados e os programas enviam comandos solicitando o acesso aos dados. • Esse conceito é chamado de abstração de dados, que caracteriza- se por uma independência entre programas e dados e entre programas e operações de manipulação de dados. Sistemas Gerenciadores de Bancos de Dados (SGBD) As consultas e programas de aplicação só acessam o banco de dados através do SGBD. Sistemas Gerenciadores de Bancos de Dados (SGBD) Da mesma forma, todos os dados retornados pelo banco de dados, somente são disponibilizados aos usuários e aplicações pelo SGBD. Sistemas Gerenciadoresde Bancos de Dados (SGBD) • É permitido acesso simultâneo de vários usuários ao mesmo dado. Essa simultaneidade é tratada através do gerenciamento da concorrência. • Procedimentos de backup e recuperação são automatizados. Evolução dos Bancos de Dados • Nos primeiros sistemas de informação, dados e processos eram mantidos juntos em um mesmo arquivo. Evolução dos Bancos de Dados • A partir da observação de que os dados são muito mais estáveis que os processos em um sistema de informação, iniciou-se a época de investimentos massivos no desenvolvimento de ferramentas voltados para seu tratamento eficiente. Gradativamente, dados e processos foram separados. Evolução dos Bancos de Dados • Dados e processos foram separados. Em um primeiro momento, estas ferramentas mantinham as funções básicas de criação e manipulação dos dados independentes das aplicações. Evolução dos Bancos de Dados • A partir deste ponto, em paralelo com a evolução do hardware disponível para suportar tais aplicações, estes ambientes foram ganhando novas versões. • Em um segundo momento apresentando as características dos SGBDs. Bancos de Dados Centralizados • Neste ambiente, dados, SGBD e os programas que o acessam ficam restritos a uma única máquina. O acesso se dá por meio de terminais burros, ou seja, terminais com funcionalidades restritas. Bancos de dados Cliente – Servidor (com servidor de arquivos) • Programas e SGBD podem funcionar em uma ou várias das outras máquinas da rede. • Devido ao surgimento das redes de computadores e a possibilidade de conexão entre diversas máquinas com alto poder de processamento, o banco de dados pode ser deslocado para uma máquina específica, o servidor de arquivos. Bancos de dados Cliente – Servidor (com servidor de Banco de Dados) • Com a manutenção do SGBD e do banco de dados em uma mesma máquina, surgem os servidores de bancos de dados. Neste cenário, os programas espalhados pela rede, acessam o mesmo SGBD. Bancos de dados distribuídos • Os bancos de dados crescem em volume de dados e as redes se tornam quase ilimitadas em tamanho. • Para garantir a eficiência nestes ambientes, surge a necessidade de distribuição da própria base de dados. Assim, então surgem os bancos de dados distribuídos. Bancos de dados distribuídos • Estes bancos de dados representam, de forma bastante simplificada, a divisão do banco de dados por vários servidores de bancos de dados. Novas arquiteturas de BD - Datawarehouse • Os bancos de dados saem do nível operacional da empresa e são agora preparados para atender níveis mais altos da pirâmide empresarial. • Os datawarehouses, ou armazéns de dados, representam esta promoção dos bancos de dados. Eles contém dados como nos bancos convencionais, só que preparados para atender as necessidades de informação dos níveis estratégicos da organização. Novas arquiteturas de BD - Datawarehouse Eles agora são empregados na tomada de decisão dentro das empresas, e não apenas na viabilização do funcionamento destas no dia a dia. Novas arquiteturas de BD – Via Web • Finalmente, com o surgimento da Internet, a possibilidade de conexão entre estas bases de dados se torna praticamente ilimitada. Usuários de Bancos de Dados Em um ambiente de bancos de dados existem várias categorias de usuários. São elas: • Administrador de dados (AD) • Responsáveis por identificar os dados a serem armazenados no BD e por escolher as estruturas apropriadas para representar e armazenar esses dados. • Comunicação com usuários para identificação de visões (esquemas conceituais), desenvolve e mantém o dicionário de dados, garante as necessidade corporativas de dados Usuários de Bancos de Dados • Administradores do BD (ABD) • Desenvolve os esquemas internos através da construção das tabelas, índices, etc., autoriza o acesso ao banco de dados, de modo a coordenar e monitorar seu uso, garante a segurança dos dados, bem como seu backup e recuperação em caso de falhas, garante a performance do banco de dados e desenvolve visões que atendam ao esquema externo Usuários de Bancos de Dados • Analistas de sistemas • Determinam os requisitos dos usuários finais e desenvolvem especificações de transações que satisfaçam esses requisitos. Usuários de Bancos de Dados • Programadores de aplicação • Implementam as especificações das transações como programas, testando-os, corrigindo-os e documentando-os. Usuários de Bancos de Dados • Usuários finais • Utilizam os sistemas projetados pelo analista de sistemas cuja base de dados é mantida e monitorada pelo DBA e cuja integração com o conjunto da corporação é garantido pelo esquema conceitual mantido pelo AD. Usuários de Bancos de Dados • Pessoal de suporte • Preocupam-se com o hardware disponibilizado para o ambiente. Próxima Aula... • Aprender as principais características dos SGBDs. • Aprender quando empregar e quando não empregar bancos de dados • Conhecer conceitos fundamentais de um ambiente com SGBD MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Revisão sobre Banco de Dados e SGBDs • Aprender as principais características dos SGBDs. • Aprender quando empregar e quando não empregar bancos de dados • Conhecer conceitos fundamentais de um ambiente com SGBD Bancos de Dados De acordo com (Navathe, 2005), podemos definir um banco de dados como um conjunto de dados que se relacionam. Bancos de Dados Porém, o significado do termo é mais restrito do que esta definição. Um banco de dados, necessariamente, possui as seguintes propriedades: • um banco de dados é uma coleção lógica coerente de dados com um significado inerente; • uma disposição desordenada de dados não pode ser referenciada como um banco de dados; • um banco de dados é projetado, construído e populado com dados para um propósito específico; Bancos de Dados Porém, o significado do termo é mais restrito do que esta definição. Um banco de dados, necessariamente, possui as seguintes propriedades: • um banco de dados possui um conjunto pré definido de usuários e aplicações; • um banco de dados representa algum aspecto do mundo real, o qual é chamado de “mini-mundo” e qualquer alteração efetuada neste mini-mundo é automaticamente refletida no banco de dados. Sistemas Gerenciadores de Bancos de Dados e Sistemas de Banco de Dados • Um SGBD é uma coleção de programas que permite aos seus usuários criarem e manipularem bancos de dados. • Um SGBD é conjunto complexo de software que deve prover um conjunto básico de funcionalidades. Na abordagem utilizando um SGBD, um único Banco de Dados é criado, mantido e acessado por todos os sistemas. Algumas características do SGBD: • Natureza auto descritiva • Isolamento entre os programas e os dados, e a abstração de dados • Suporte para as múltiplas visões de dados • Compartilhamento de dados e processamento de transações de multiusuários Natureza auto descritiva • Descrição completa da estrutura do banco e suas restrições • Estrutura de cada item, tipo e formato de cada dado, restrições • Existe um catálogo que armazena as informações chamado metadados(estrutura de cada tipo de dados) • O catálogo é utilizado pelo próprio SGBD e também pelos usuários que precisam de informações sobre a estrutura do banco. • Não se altera as informações de metadados, o uso de tais informações é apenas para consulta, caso contrário, o banco poderá apresentar graves problemas. • O SGBD precisa trabalhar com uma diversidade muito grande de aplicações, o catálogo permite isso. Isolamento entre os programas e os dados, e a abstração de dados • Diferente do processamento de arquivos, os programas não possuem informações sobre o armazenamento dos dados • A estrutura dos arquivos de dados é armazenada nos catálogos do SGBD • O Banco de Dados podeter sua estrutura alterada sem precisar alterar os programas que o acessam • Essa característica é chamada independência programa- dados Isolamento entre os programas e os dados, e a abstração de dados • O SGBD fornece aos programas uma representação conceitual de dados, que não inclui detalhes de armazenamento • Essa característica é chamada de abstração de dados Suporte para as múltiplas visões de dados • Um banco de dados típico tem muitos usuários e cada usuários pode precisar de diferentes visões do banco de dados. • Uma visão pode ser: • Um subconjunto do banco de dados, que atendem critérios de necessidades do usuário • Uma visão virtual dos dados, derivada dos dados existentes, simulando dados/informações que não estão explicitamente armazenados Compartilhamento de dados • Um SGBD deve permitir o acesso concorrente de diversos usuários • O controle de concorrência deve permitir que muitos usuários, ao tentar atualizar o mesmo dado, o façam de modo controlado, para assegurar que os resultados das atualizações sejam corretos Reserva de cabine em um cruzeiro Atendentes Agentes de viagem Internet Processamento de transações • Transação: é um processo que inclui um ou mais acessos no banco de dados, como leitura e gravação de registros • Isolamento: garante que cada transação possa ser efetuada de forma isolada de outras transações • Atomicidade: garante que todas as operações da transação sejam realizadas ou nenhum delas seja • Exemplo: Transferência bancária • Leitura de saldo • Validação de saldo • Débito da conta origem • Validação da conta de destino • Crédito da conta destino • O SGBD deve permitir que transações concorrentes operem corretamente Independência de Dados • “Consiste na capacidade de permitir que haja evolução na descrição dos dados da empresa, sem que os sistemas ou aplicações tenham que ser alterados” • “Representa a imunidade das aplicações às mudanças na estrutura de armazenagem e estratégias de acesso” Independência de Dados • A independência dos dados, em relação a aplicação, representa o um avanço no sentido de tornar qualquer modificação das estruturas dos arquivos imperceptível para os programas. Desta forma, as mudanças na organização dos dados não geram qualquer necessidade de alteração dos programas que o manipulam. Por exemplo: • Inclusão de um novo campo (atributo) em um arquivo (tabela) é feita sem que sejam alterados os programas, pois as estruturas dos arquivos não estão definidas nos programas. Controle de Redundância • “Redundância é armazenar o mesmo dado várias vezes para atender diversas aplicações. Para manter a consistência do banco de dados, deve-se armazenar o dado uma única vez e em apenas um lugar no banco de dados. Isto permite manter a consistência, economizar espaço de armazenamento.” Em alguns casos, a redundância é necessária, porém ela deve ser controlada pelo sistema de gerenciamento de banco de dados. “ (Elmasri & Navathe, 2005) Controle de Redundância • “É um conceito representado pelo controle centralizado dos dados compartilhados por diversas aplicações, reduzindo a repetição de dados a um mínimo justificável e aceita apenas por questão de desempenho.” (Cerícola, 1991) Problemas da redundância de dados: • Duplicação de esforço para manter os dados atualizados; • Desperdício de espaço de armazenamento; • Possibilidade de inconsistência dos dados Controle de Redundância • Permitir a usuários diferentes a utilização simultânea de um mesmo dado. Por exemplo: • As informações sobre clientes podem ser acessadas pelo sistema de vendas, de contas a receber e faturamento simultaneamente. Compartilhamento de Dados Sistema de vendas Sistema de contas a receber Sistema de faturamento • A mesma base de dados sobre empregados pode ser usada simultaneamente pelo sistema de recursos humanos e pelo sistema de vendas. • No primeiro caso os dados serão utilizados no processo de pagamento e no segundo no processo de alocação dos vendedores às áreas de atendimento a cliente. Compartilhamento de Dados Sistema de recursos humanos Sistema de vendas “Um SGBD deve prover controles de segurança e autorização, que são utilizados para criar contas e seus respectivos direitos de acesso quando múltiplos usuários compartilham um banco de dados.” (Navathe,2005) Restrições de Acesso “ Os controles de segurança abrangem conceitos tais como: procedimentos de validação e controle, garantia de integridade e controle de acesso, que visam resguardar o banco de dados de uma possível perda ou destruição de dados seja por falha de programa ou por falha de equipamento” (Cerícola, 1991) Restrições de Acesso Restrições de Acesso Sistema de recursos humanos Sistema de vendas Restrições de Acesso Não Autorizado • Como todas os dados vão estar em um único local, é possível que nem todas as pessoas tenham acesso à todos os dados. • Uma pessoa da secretaria pode não ter acesso aos dados financeiro • Uma pessoa do financeiro pode não ter acesso aos dados de salários • O SGBD deve ter um mecanismo de segurança e autenticação • Criação de usuários/grupos e autenticação por senhas • Atribuição de uma série de permissões/bloqueios, mais comuns: • Apenas consultar • Consultar apenas alguns dados • Não apagar dados • Somente inserir dados • A granularidade das permissões depende do SGBD A maioria dos SGBDs proveem certas restrições de integridade que devem ser aplicadas aos dados. O SGBD deve ter mecanismos para possibilitar a definição das restrições e assegurar o respeito a estas. Um exemplo de restrição de integridade é a definição de um tipo de dado (data type) para cada item de dado. Restrições de Integridade • O SGBD aceitará apenas os tipos definidos ou seja azul, vermelho, amarelo e verde como válidos para este atributo. Restrições de Integridade Cor azul vermelho amarelo verde Peça Cor • Se o usuário tentasse informar, por exemplo, o valor branco para o atributo cor da parede, o sistema acusaria um erro. Mecanismos de Backup e Recuperação • Um SGBD deve prover facilidades para recuperação de falhas do hardware ou software. • Estes mecanismos evitam que cada aplicação tenha que projetar e desenvolver seus próprios controles contra a perda de dados. Mecanismos de Backup e Recuperação • Falha: Ocorre no nível mais baixo do hardware ou software. • Uma fonte queimar • Uma linha de código errada • Erro: Uma falha pode gerar um erro. Um erro é a representação da falha no universo da informação (dados). • Por consequência de uma falha um dado foi corrompido • Defeito: O defeito é o que é percebido pelo usuário, é a representação de um erro no universo do usuário. • O sistema já esta com erro e o dado já esta corrompido Mecanismos de Backup e Recuperação Exemplo: Se o sistema falha no meio de um programa de alteração complexo, o mecanismo de recuperação é responsável por assegurar que o banco de dados será restaurado para o estágio que ele se encontrava antes do início da execução do programa. Múltiplas Interfaces • Um ambiente de banco de dados é acessado por variados tipos de usuários com variadas necessidades de informação e com diferentes níveis de conhecimento técnico. Múltiplas Interfaces • Para atender esta diversidade usuários, o SGBD deva fornecer diferentes tipos de interfaces. Sendo assim este ambiente disponibiliza: • Linguagens de consulta para usuários casuais; • Linguagens de programação para programadores de aplicações; • Interfaces gráficas com formulários (telas) e menus para usuários paramétricos; • Interfaces para administração do banco de dados; • Linguagem natural. Benefícios no uso de SGBDs • Os ambientes de bancos de dados fornecem uma série de vantagens na sua adoção: • Potencial para o estabelecimento e o cumprimento de padrões • Garantir o uso de padrões na organização, códigos, nomes,datas • Flexibilidade de mudanças • Alteração da estrutura dos dados de forma simples Benefícios no uso de SGBDs • Redução no tempo de desenvolvimento de novas aplicações • Encapsulamento das regras de armazenamento e integrações • Disponibilidade de informação atualizada • Assim que um dado é atualizado, ele deve estar disponível para todos os usuários • Economia de escala • Investimento pontual em profissionais especializados e equipamentos Bancos de dados NÃO são sempre a solução... • Apesar das vantagens de utilização, a escolha por uma ambiente de banco de dados tem um alto custo atrelado. • A sua adoção deve, então, compensar ou ser compatível com este custo. Bancos de dados NÃO são sempre a solução... 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. Bancos de dados NÃO são sempre a solução... • Overhead significa tudo aquilo que o SGBD tem que fazer além de gerenciar os dados. Isto envolve tarefas tais como: • garantir segurança • controlar concorrência (utilização do mesmo dado por aplicações e usuários distintos simultaneamente) • recuperação de falhas • garantia de integridade. Quando NÃO utilizar 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. Próxima Aula... • Conhecer a arquitetura de 3 esquemas (conceitual, lógico e físico) • Aprender o conceito e o processo de abstração de dados. • Identificar os principais objetos conceituais (entidades, relacionamentos e atributos). • Conhecer as representações básicas destes objetos conceituais. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 3 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Conhecer a arquitetura de 3 esquemas (conceitual, lógico e físico) • Entender o conceito e o processo de abstração de dados. • Identificar os principais objetos conceituais (entidades, relacionamentos e atributos). • Conhecer as representações básicas destes objetos conceituais. Modelagem Conceitual – Percepção do Mundo Real • O projeto de um banco de dados envolve a produção de 3 modelos que definem uma arquitetura de 3 esquemas (conceitual, lógico e físico). • Na fase inicial do processo, o mundo real (ou mini mundo) deve ser entendido e seus objetos conceituais identificados. • A este entendimento e identificação chamamos abstração de dados e o modelo produzido após esta fase chamamos modelo conceitual. • Após a sua confecção e pela a aplicação de regras específicas, um modelo lógico é produzido. Este modelo está vinculado ao modelo de dados adotado pelo SGBD. • Na etapa final, o modelo lógico dá origem ao modelo físico, efetivamente armazenado no banco de dados. • Toda realidade é, em princípio, bastante nebulosa e informal. Através da observação podemos extrair desta realidade fatos que nos levam a conhecê-la de uma forma mais organizada. • Em um negócio, existem fatos que, observados e modelados, dizem algo a respeito do funcionamento deste negócio. Estes fatos estão ligados diretamente ao funcionamento da realidade, a qual temos interesse em compreender e manter. • Para que possamos retratar estes fatos e que os mesmos possam nos levar a futuras decisões e ações, se faz necessário então registra-los. Este registro é feito através da criação de um MODELO, isto é, algo que nos mostre como as informações estão relacionadas. Modelagem Conceitual – Percepção do Mundo Real • Ao coletar e relacionar os fatos relevantes, devemos identificar os elementos geradores de informação, as leis que regem esta realidade, bem como as operações que incidem sobre os elementos básicos (dados). • O que se quer 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. Modelagem Conceitual – Percepção do Mundo Real Elementos de Abstração • Minimundo • Porção específica da realidade, captada pelo analista, objeto de observação detalhada. Caso a análise do minimundo torne- se muito complexa, o analista pode subdividi-lo em pontos menores, chamados de “visões”. • Banco de Dados • Coleção de fatos registrados que refletem certos aspectos de interesse do mundo real. Cada mudança em algum item do banco de dados reflete uma mudança ocorrida na realidade. Elementos de Abstração • Modelo Conceitual • Representa e/ou descreve a realidade do ambiente, constituindo uma visão global dos principais dados e relacionamentos (estruturas de informação), independente das restrições de implementação. • Descreve as informações contidas em uma realidade, as quais irão estar armazenadas em um banco de dados. Elementos de Abstração • Modelo Lógico • Descreve as estruturas que estarão contidas no banco de dados, sem considerar nenhuma característica específica de um Sistema Gerenciador de Banco de Dados (SGBD), resultando em um esquema lógico de dados. Tem seu início a partir do Modelo Conceitual Elementos de Abstração • Modelo Físico • Descreve as estruturas físicas de armazenamento de dados, tais como: tamanho dos campos, índices, tipo de preenchimento destes campos, etc • Tem origem no Modelo Lógico e detalha o estudo dos métodos de acesso ao SGBD O Projeto do Banco de Dados • A modelagem de um sistema através da abordagem Entidades- Relacionamentos representa este o ponto central no projeto conceitual de dados em 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 de aplicação em banco de dados o Modelo Entidades-Relacionamentos é o mais largamente utilizado para representação e entendimento dos dados que compõe um sistema. O Projeto do Banco de Dados • Década de 70 - Peter Chen desenvolve o MER (Modelo Entidades-Relacionamentos) • 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. O Projeto do Banco de Dados • Baseou-se na compreensão da realidade em que se situava o problema. Como iremos projetar um sistema se não entendemos o negócio para o qual será realizado? • Chen dedicou-se a destacar a importância de reconhecer os objetos que compõem este negócio, independentemente das formas de tratamento das informações, procedimentos, programas, etc. • Estes objetos que desejamos conhecer e modelar foram classificados em dois grupos: Entidades e Relacionamentos. Objetos Conceituais • ENTIDADES • Define-se Entidade como aquele objeto que existe no mundo real, com identificação distinta e com um significado próprio. • São as “coisas” que existem no negócio, ou ainda, descrevem o negócio em si. • A representação de uma entidade no MER é feita através de um retângulo, com o nome da entidade em seu interior. Objetos Conceituais • ATRIBUTOS • Todo objeto para ser uma entidade possui propriedades que são descritas por atributos e valores. • Estes atributos e valores, juntos, descrevem as instâncias de uma entidade. • O que descreve CLIENTE ? Cliente é descrito por um código de identificação, nome, endereço, telefone de contato, CGC ou CPF. Objetos Conceituais • ATRIBUTOS • A representação de uma entidade no MER é feita através de uma elipse, com o nome do atributo em seu interior. nome telefone CPF Objetos Conceituais • RELACIONAMENTOS • Um relacionamento é uma associaçãoentre duas entidades cujo significado seja de interesse para a realidade analisada. • Os relacionamentos estão intimamente ligados às ações realizadas pelos processos sobre os dados e representam os caminhos de navegação ou rotas de acesso do Modelo de Dados. Objetos Conceituais • RELACIONAMENTOS • Existem várias formas de se representar graficamente um relacionamento. Por exemplo, Peter Chen utiliza um retângulo para desenhar uma associação entre entidades, outros autores a representam através de um traço unindo as entidades. Exercício - Identifique as entidades, atributos e relacionamentos existentes no mini mundo abaixo. 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.” SOLUÇÃO: ENTIDADES: Funcionário, Departamento, Cargo, Dependente. ATRIBUTOS: Funcionário: nome, endereço, telefone, salário, horário, filiação, idade, CPF, identidade e nacionalidade. Departamento: nome, sigla, nome do chefe. Cargo: nome, sigla e salário base. Dependente: nome, idade, parentesco e sexo. RELACIONAMENTOS: FUNCIONÁRIO está lotado em DEPARTAMENTO FUNCIONÁRIO tem DEPENDENTE FUNCIONÁRIO possui CARGO Próxima Aula... • Aprofundar seus conhecimentos sobre o Modelo Entidade Relacionamento. • Aprender a identificar os principais objetos conceituais. • Aprender a criar um modelo para o negócio. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 4 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Aprofundar seus conhecimentos sobre o Modelo Entidade Relacionamento. • Aprender a identificar os principais objetos conceituais. • Aprender a criar um modelo para o negócio. ENTIDADES • Define-se Entidade como aquele objeto que existe no mundo real, com identificação distinta e com um significado próprio. • São as “coisas” que existem no negócio, ou ainda, descrevem o negócio em si. • A representação de uma entidade no MER é feita através de um retângulo, com o nome da entidade em seu interior. • Entidades podem ser tangíveis • Pessoas • Edifícios • Entidades podem ser intangíveis • setor (dentro de uma empresa) • reserva em um vôo ENTIDADES • Entidade Fraca • não existe se não estiver relacionada a outra, isto é, ela é logicamente dependente da outra. • Alguns conjuntos entidade não possuem um conjunto de atributos capaz de identificar univocamente uma determinada entidade. Neste caso, sua existência depende da existência de outra entidade. ATRIBUTOS • Todo objeto para ser uma entidade possui propriedades que são descritas por atributos e valores. • Estes atributos e valores, juntos, descrevem as instâncias de uma entidade. • A representação de uma entidade no MER é feita através de uma elipse, com o nome do atributo em seu interior. • O que descreve CLIENTE ? Cliente é descrito por um código de identificação, nome, endereço, telefone de contato, CGC ou CPF. nome telefone CPF Atributos Simples ou Atômicos Atributos que não são divisíveis em unidades dados mais simples. Exemplo: DataNascimento, NumeroFatura, ValorTotalVenda ATRIBUTOS Atributo multivalorado Os atributos multivalorados são tratados pelos seus detalhes, seu conteúdo é formado por mais de um valor. Exemplo: Telefone. Um empregado poderá ter mais de um número de telefone. . ATRIBUTOS Atributos Compostos (Grupo de Atributos) Combinação ou agregação de atributos relacionados Exemplo: Endereço é formado pelos atributos: rua, bairro, cidade, estado, CEP. ATRIBUTOS Atributos identificadores: Atributos que identifica, de forma única, as instâncias de uma entidade. Exemplo: uma matrícula identifica um aluno e um CPF identifica um cliente ATRIBUTOS Domínio de um atributo: descrição de possíveis valores permitidos para um atributo. Exemplo: domínio do atributo Cor_Peça: azul, amarelo, verde, vermelho, branco Valores nulos: atributo sem valor. Um valor nulo pode ocorrer, quando o atributo não é relevante para descrever uma entidade em particular. ATRIBUTOS Atributos identificadores: Atributos que identifica, de forma única, as instâncias de uma entidade. Exemplo: uma matrícula identifica um aluno e um CPF identifica um cliente ATRIBUTOS • Em um primeiro contato com o negócio de uma empresa, podemos não possuir o conhecimento necessário sobre o mesmo. Portanto, é fundamental que procuremos conhecer seus objetos principais. • Ao descrevermos textualmente a realidade analisada, as entidades podem ser identificadas por similaridade com a análise sintática nas linguagens naturais. • Nesse caso, algumas regras podem ser aplicadas: o sujeito e o objeto da sentença são, provavelmente, entidades; os verbos podem sugerir relacionamentos. MODELANDO O NEGÓCIO “Um país participa das Olimpíadas” A frase sugere de imediato a garimpagem de PAÍS e OLIMPÍADAS como entidades e o verbo “PARTICIPA” como o relacionamento entre elas. MODELANDO O NEGÓCIO Assim, se desejamos ter, conceitualmente, representado um ambiente observado onde “João é proprietário de um jipe amarelo”, poderemos nos valer da seguinte estratégia: Passo 1- Identificar os objetos envolvidos PESSOA, com a instância “João” VEICULO, com a instância “jipe” Passo 2 - Caracterizar os objetos PESSOA, caracterizado por: nome, data de nascimento, sexo, CPF VEICULO, caracterizado por: marca cor, ano de fabricação, número do chassis MODELANDO O NEGÓCIO Passo 3 - Representar os objetos MODELANDO O NEGÓCIO Passo 4 - Identificar o relacionamento entre os objetos PESSOA é proprietária de VEICULO Passo 5 - Caracterizar o relacionamento entre os objetos • Nem toda PESSOA é proprietária de um VEICULO • Um VEICULO pode pertencer a uma PESSOA ou não • Algumas PESSOA possuem mais de um VEICULO • Se um VEICULO pertence a uma PESSOA, ele não pertence a mais ninguém MODELANDO O NEGÓCIO Passo 6 - Representar o Relacionamento MODELANDO O NEGÓCIO Este processo pode ser utilizado para mapear qualquer relacionamento entre dois, ou mais, tipos de objetos e, também, entre os mesmos objetos. Assim, se necessitamos expandir nosso modelo representando também as observações: - um VEICULO é de propriedade de uma PESSOA mas pode ser utilizado por diversas PESSOAS para locomoção - uma PESSOA utiliza um IMOVEL para morar Temos que repetir os passos de 1 a 6 para cada nova observação. MODELANDO O NEGÓCIO MODELANDO O NEGÓCIO - um VEICULO é de propriedade de uma PESSOA mas pode ser utilizado por diversas PESSOAS para locomoção - uma PESSOA utiliza um IMOVEL para morar Passo 1 - Identificar os objetos envolvidos PESSOA VEICULO IMÓVEL MODELANDO O NEGÓCIO Passo 2 - Caracterizar os objetos PESSOA, caracterizado por: nome, data de nascimento, sexo, CPF VEICULO, caracterizado por: marca cor, ano de fabricação, número do chassis IMOVEL, caracterizado por: numero do registro, endereço, metragem, tipo de edificação MODELANDO O NEGÓCIO Passo 2.1 – Identificar os atributos identificadores dos objetos: PESSOA, caracterizado por: nome, data de nascimento, sexo, CPF VEICULO, caracterizado por: marca,cor, ano de fabricação, número do chassis IMOVEL, caracterizado por: numero do registro, endereço, metragem, tipo de edificação MODELANDO O NEGÓCIO Passo 3 - Representar os objetos: MODELANDO O NEGÓCIO Passo 4- Identificar os novos relacionamentos entre os objetos PESSOA utiliza VEICULO PESSOA utiliza IMOVEL MODELANDO O NEGÓCIO Passo 5 - Caracterizar o relacionamento entre os objetos • Nem toda PESSOA utiliza um VEICULO • Um VEICULO pode ser utilizado por mais de uma PESSOA • Algumas PESSOA utilizam mais de um VEICULO • Um VEICULO sempre será utilizado por, pelo menos, uma PESSOA • Toda PESSOA utiliza um, e somente um, IMOVEL para morar • Um IMOVEL pode ser utilizado por uma ou mais PESSOA • Um IMOVEL nem sempre é utilizado por uma PESSOA MODELANDO O NEGÓCIO Próxima Aula... • Definir e exemplificar o conceitos de cardinalidade. • Conhecer as possibilidades e critérios para nomear os relacionamentos. • Entender limites mínimos e máximos. • Identificar os relacionamentos recursivos • Compreender sobre atributos em relacionamentos. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 5 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Definir e exemplificar o conceitos de cardinalidade. • Conhecer as possibilidades e critérios para nomear os relacionamentos. • Entender limites mínimos e máximos. • Identificar os relacionamentos recursivos • Compreender sobre atributos em relacionamentos. MODELANDO O NEGÓCIO “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.” Muitas ocasiões merecem nosso entendimento, memorização, representação, explicação ou comunicação podem ser facilitadas pela aplicação da modelagem de dados. Por exemplo: • Representar um ambiente observado • Servir de instrumento para a comunicação • Favorecer o processo de verificação e validação • Capturar aspectos de relacionamento entre os objetos observados • Servir como referencial para a geração de estruturas de dados • Estabelecer conceitos únicos a partir de visões diversas TIPOS DE RELACIONAMENTOS: • O relacionamento um-para-um é usado quando uma entidade A se relaciona com uma entidade B e vice-versa. • Este relacionamento é representado pelo sinal: 1:1 Conjunto A Conjunto B TIPOS DE RELACIONAMENTOS: • Relacionamento um-para-um PESSOA CERTIDÃO DE ÓBITO recebe 1 TIPOS DE RELACIONAMENTOS: • Relacionamento um-para-um PESSOA CERTIDÃO DE ÓBITO recebe 11 TIPOS DE RELACIONAMENTOS: • Relacionamento um-para-um MARIDO ESPOSA É casado 1 TIPOS DE RELACIONAMENTOS: • Relacionamento um-para-um MARIDO ESPOSA É casado 1 1 TIPOS DE RELACIONAMENTOS: • O relacionamento um-para-muitos é usado quando uma entidade A pode se relacionar com uma ou mais entidades B. • Este relacionamento é representado pelo sinal: 1:N Conjunto A Conjunto B TIPOS DE RELACIONAMENTOS: • Relacionamento um-para-muitos EMPRESA FILIALpossui N TIPOS DE RELACIONAMENTOS: • Relacionamento um-para-muitos EMPRESA FILIALpossui N1 TIPOS DE RELACIONAMENTOS: • Relacionamento um-para-muitos SEÇÃO COLABORADORtrabalha N TIPOS DE RELACIONAMENTOS: • Relacionamento um-para-muitos SEÇÃO COLABORADORtrabalha N1 TIPOS DE RELACIONAMENTOS: • O relacionamento muitos-para-muitos é usado quando várias entidades A se relacionam com várias entidades B. • Este relacionamento é representado pelo sinal: N:N ou N:M Conjunto A Conjunto B TIPOS DE RELACIONAMENTOS: • Relacionamento muitos-para-muitos ATLETA ESPORTEpratica N TIPOS DE RELACIONAMENTOS: • Relacionamento muitos-para-muitos ATLETA ESPORTEpratica NM TIPOS DE RELACIONAMENTOS: • Relacionamento muitos-para-muitos LIVRO AUTOR é escrito N TIPOS DE RELACIONAMENTOS: • Relacionamento muitos-para-muitos LIVRO AUTOR é escrito NM • Um auto-relacionamento acontece quando os elementos de uma entidade se relacionam com eles mesmos. • Também conhecido como relacionamento recursivo MODELANDO O NEGÓCIO PESSOA é casada • Auto-relacionamento MODELANDO O NEGÓCIO PESSOA é casada PESSOA é casada PESSOA 11 1 1 • A cardinalidade é um número que expressa o comportamento (número de ocorrências) de determinada entidade associada a uma ocorrência da entidade em questão através do relacionamento. • Existem dois tipos de cardinalidade: mínima e máxima. • A cardinalidade máxima, expressa o número máximo de ocorrências de determinada entidade, associada a uma ocorrência da entidade em questão, através do relacionamento. • A cardinalidade mínima, expressa o número mínimo de ocorrências de determinada entidade associada a uma ocorrência da entidade em questão através do relacionamento. MODELANDO O NEGÓCIO • Para determinar a cardinalidade, deve-se fazer a pergunta relativa ao relacionamento em ambas as direções. Por exemplo: MODELANDO O NEGÓCIO DEPARTAMENTO COLABORADORpossui (1,N)(1,1) • Um departamento possui quantos colaboradores? - no mínimo 1 e no máximo N. • Um colaborador está alocado em quantos departamentos? - no mínimo em 1 e no máximo em 1 COLABORADOR DEPENDENTEPOSSUI • Uma ocorrência de colaborador pode não estar associada a uma ocorrência de dependente ou pode estar associada a várias ocorrências dele (determinado colaborador pode não possuir dependentes ou pode possuir vários). • Uma ocorrência de dependente está associada a apenas uma ocorrência de colaborador(determinado dependente possui apenas um empregado responsável). (0,N)(1,1) • O colaborador pode ter nenhum ou vários dependentes • Todo dependente deve estar associado a um e apenas um colaborador MODELANDO O NEGÓCIO PRATICANDO... Colaborador Departamento PRATICANDO... Colaborador Departamento PRATICANDO... Governador Estado PRATICANDO... Passageiro Poltrona do Avião PRATICANDO... PESSOA CARROutiliza • Nem toda pessoa utiliza carro • Um carro pode ser utilizado por uma ou mais pessoas • Algumas pessoas utilizam mais de um carro • Um carro sempre será utilizado por, pelo menos, uma pessoa PRATICANDO... PESSOA IMÓVELutiliza • Toda pessoa utiliza um e somente um imóvel para morar • Um imóvel pode ser utilizado por uma, ou mais pessoas • Um imóvel nem sempre será utilizado por uma pessoa PRATICANDO... VIGILANTE • Em uma observação do mundo real percebemos que em certa parte da análise, foi identificado o conjunto de VIGILANTE e que entre os vários relacionamentos deste conjunto existia a definição de negócio “um vigilante é substituído por outro vigilante”. Isso ocorria nos casos de final de turno, na falta ao trabalho, licença médica,... PRATICANDO... As regras de substituição foram identificadas conforme abaixo: • Um vigilante pode ou não ser substituído por outro • Um vigilante, se substituído, será somente por um outro • Um vigilante pode substituir um ou mais de seus colegas • Alguns vigilantes não substituirão ninguém em algumas situações VIGILANTE substitui Próxima Aula... • Revisão das aula 1,2,3,4 e 5. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 6 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Conhecer as extenções do Modelo Entidade Relacionamento • Generalizações • Agregações MODELANDO O NEGÓCIO DEPARTAMENTO COLABORADORpossui (1,N)(1,1) • Auto-relacionamento MODELANDO O NEGÓCIO PESSOA é casada PESSOA é casada PESSOA 11 1 1 Atributos identificadores: Atributos que identifica, de forma única, as instâncias de uma entidade. ATRIBUTOS PESSOA Pessoa: Nome, CPF, Dt-Nascimento, Telefone IDENTIFICANDO RELACIONAMENTOS • Em princípio, uma ocorrência de relacionamento diferencia-se das demais do mesmo relacionamento pelas ocorrências de entidades que dela participam. • Exemplificando, uma ocorrência de ALOCAÇÃO é identificada pela ocorrência de ENGENHEIRO e pela ocorrência dePROJETO que ela relaciona. Em outros termos, para cada par (engenheiro, projeto) há no máximo um relacionamento de alocação. ENGENHEIRO alocação PROJETO N N IDENTIFICANDO RELACIONAMENTOS • Há casos nos quais entre as mesmas ocorrências de entidade podem existir diversas ocorrências de relacionamento. • Um exemplo é o relacionamento CONSULTA entre entidades de MÉDICO e de PACIENTE. Entre um determinado médico e um determinado paciente podem haver diversas consultas. Neste caso, é necessário algo que distinga uma consulta entre um médico e seu paciente das demais consultas entre este médico e seu paciente. MODELAGEM CONCEITUAL – MER ESTENDIDO • Os conceitos básicos do Modelo Entidade Relacionamento são suficientes para modelar grande parte dos bancos de dados. Entretanto, algumas extensões, introduzidas posteriormente ao seu surgimento, permitiram refinamentos bastante significativos. MODELAGEM CONCEITUAL – MER ESTENDIDO • Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica. O símbolo para representar generalização/especialização é um triângulo isósceles • A generalização/especialização expressa que a entidade CLIENTE é dividida em dois subconjuntos, as entidades PESSOA FÍSICA e PESSOA JURÍDICA cada um com propriedades próprias. • Associada ao conceito de generalização/especialização está a ideia de herança de propriedades. Herdar propriedades significa que cada ocorrência da entidade especializada possui, além de suas próprias propriedades (atributos, relacionamentos e generalizações/especializações), também as propriedades da ocorrência da entidade genérica correspondente. • A generalização/especialização pode ser classificada em dois tipos, total ou parcial, de acordo com a obrigatoriedade ou não de a uma ocorrência da entidade genérica corresponder uma ocorrência da entidade especializada. • Em uma generalização/especialização total para cada ocorrência da entidade genérica existe sempre uma ocorrência em uma das entidades especializadas. • Em uma generalização/especialização parcial, nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada. • Em uma generalização/especialização total para cada ocorrência da entidade genérica existe sempre uma ocorrência em uma das entidades especializadas. • Em uma generalização/especialização parcial, nem toda ocorrência da entidade genérica possui uma ocorrência correspondente em uma entidade especializada. • Não há limite no número de níveis hierárquicos da generalização / especialização. • Uma entidade especializada em uma generalização / especialização, pode, por sua vez, ser entidade genérica em uma outra generalização / especialização. • É admissível, inclusive, que uma mesma entidade seja especialização de diversas entidades genéricas (a chamada herança múltipla) Estrutura de Agregação “Faz_parte_de” • O Modelo Entidade Relacionamento não é capaz de representar relacionamentos entre relacionamentos. • Uma agregação é uma abstração através da qual os relacionamentos são tratados como entidades de mais alto nível. PROJETOtrabalha (1,N) COLABORADOR (1,N) utiliza MÁQUINA (0,1) (1,N) FUNCIONÁRIO: MatrículaFuncionário, NomeFuncionário, Salário PROJETO: NúmeroProjeto, NomeProjeto MÁQUINA: SerialMaquina, NomeMaquina Máquina se relaciona com os funcionários trabalhando em um projeto. Máquinas não se relacionam com funcionários e nem projetos em separado, mas sim com o relacionamento que estas entidades mantém. PROJETOtrabalha (1,N) COLABORADOR (1,N) utiliza MÁQUINA (0,1) (1,N) FUNCIONÁRIO: MatrículaFuncionário, NomeFuncionário, Salário PROJETO: NúmeroProjeto, NomeProjeto MÁQUINA: SerialMaquina, NomeMaquina • Um relacionamento é uma associação entre entidades. Na modelagem ER não foi prevista a possibilidade de associar uma entidade com um relacionamento ou então de associar dois relacionamentos entre si. • Na prática, quando está-se construindo um novo DER ou modificando um DER existente, surgem situações em que é desejável permitir a associação de uma entidade a um relacionamento. PACIENTECONSULTA (0,N) MÉDICO (1,N) • Em cada consulta, um ou mais medicamentos podem ser prescritos ao paciente. Para tal, criar-se-ia uma nova entidade, MEDICAMENTO. MEDICAMENTO PACIENTECONSULTA (0,N) MÉDICO (1,N) • Se MEDICAMENTO fosse relacionado a MÉDICO, ter- se-ia apenas a informação de que médico prescreveu que medicamentos, faltando a informação do paciente que os teve prescritos. MEDICAMENTO PACIENTECONSULTA (0,N) MÉDICO (1,N) • Por outro lado, se MEDICAMENTO fosse relacionado a PACIENTE, faltaria a informação do médico que prescreveu o medicamento. MEDICAMENTO • Deseja-se relacionar o medicamento à consulta, ou seja deseja-se relacionar uma entidade (MEDICAMENTO) a um relacionamento (CONSULTA), o que não está previsto na abordagem ER. • Para tal, foi criado um conceito especial, o de entidade associativa. Uma entidade associativa nada mais é que a redefinição de um relacionamento, que passa a ser tratado como se fosse também uma entidade PACIENTECONSULTA (0,N) MÉDICO (1,N) MEDICAMENTO PRESCRIÇÃO (0,N) (0,N) Próxima Aula... • Aprender sobre a modelagem lógica dos dados. • Conhecer os modelos lógicos de dados existentes. • Aprender a base conceitual para Modelo Relacional. • Conhecer os conceitos de chave candidata, primária e estrangeira. • Compreender as restrições de integridade. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 7 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Aprender sobre a modelagem lógica dos dados. • Conhecer os modelos lógicos de dados existentes. • Aprender a base conceitual para Modelo Relacional. • Conhecer os conceitos de chave candidata, primária e estrangeira. • Compreender as restrições de integridade Modelagem Lógica de Dados • O modelo lógico descreve a estrutura do banco de dados, conforme vista pelo usuário do SGBD. • Detalhes de armazenamento interno de informações, que não tem influencia sobre a programação de aplicações no SGBD, mas podem influenciar a performance da aplicações (por exemplo, as estruturas de arquivos usadas no acesso as informações) não fazem parte do modelo lógico. Modelagem Lógica de Dados • O Modelo Lógico de Dados Lógico descreve os componentes do Modelo Conceitual de Dados, aproximando-o do ambiente computacional, onde este será trabalhado. Modelagem Lógica de Dados • Modelo Hierárquico: Apresenta a mesma estrutura do modelo de rede, diferindo apenas na organização dos registros. Tais registros são organizados com coleções de árvores em vez de grafos aleatórios. • Ex.: IMS(IBM) • Modelo de Rede: Os dados são representados por uma coleção de registros e os relacionamentos entre os dados são representados por meio de links. • Ex. : IDMS, DMS-II(Unisys) Modelagem Lógica de Dados • Modelo Relacional: Os dados são representados através de tabelas. • Ex.: DB-2, SQL-DS (IBM), Oracle, Ingres Modelagem Lógica de Dados • Modelo Orientado a Objetos: Surgiu em virtude da necessidade de se acompanhar o aumento na complexidade dos dados. • Quando o modelo relacional foi sugerido, dados como imagens ou som não foram considerados na sua estrutura. • Atualmente, dados deste tipo são bastante comuns, até mesmo nas aplicações mais simples e o modelo relacional não é suficiente para este tipo de modelagem. • De modo geral, no modelo orientado a objeto as entidades do modelo conceitual são objetos que encapsulam tanto dados quanto o código associado a este objeto. • Ex.: Vbase, O2, Orion, Gemstone, Jasmine, ObjectStore Modelagem Lógica de Dados • Modelo Relacional Objeto: Um extensão do modelo relacional, que inclui orientação a objeto e permite o tratamento de dados complexos.• Ex.: Postgres, Informix, Oracle 9i, IBM DB2 Modelo Relacional • Está fundamentado na teoria de conjuntos, combinado com a ideia que não é relevante para o usuário saber onde os dados estão nem como os dados estão armazenados. • O usuário, para lidar com estes objetos, conta com um conjunto de operadores e funções de alto nível, constantes na álgebra relacional. Modelo Relacional . • Relação = Tabela bi-dimensional, composta de linhas e colunas de dados. • Relação recursiva = relaciona o objeto a si mesmo. • Atributo = Coluna • Grau de uma relação = Número de atributos • Tupla = Cada linha da relação • Domínio de um atributo = Conjunto ao qual pertence os valores de um atributo • Valor nulo de um atributo de uma tupla = Atributo inaplicável ou com valor desconhecido • Esquema de Banco de Dados Relacional = Nomes das relações seguidos pelos nomes dos atributos, com os atributos chaves sublinhados e com as chaves estrangeiras identificadas Modelo Relacional . Tabela Depto Modelo LÓGICO Relacional • O conceito básico para estabelecer relações entre linhas de tabelas de um banco de dados relacional é o da chave. Em um banco de dados relacional, há ao menos três tipos de chaves a considerar: • chave primária • chave alternativa • chave estrangeira • Uma chave primária é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. CHAVE PRIMÁRIA CHAVE PRIMÁRIA COMPOSTA Qualquer combinação de colunas que contenha as colunas CódigoEmp e NoDepen é uma chave primária. Por isso, nas definições formais de chave primária, exige-se que essa seja mínima. Uma chave é mínima quando todas suas colunas forem efetivamente necessárias para garantir o requisito de unicidade de valores da chave. • É uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela. • A chave estrangeira é o mecanismo que permite a implementação de relacionamentos em um banco de dados relacional. CHAVE ESTRANGEIRA CHAVE ESTRANGEIRA A existência de uma chave estrangeira impõe restrições que devem ser garantidas... • Quando da inclusão de uma linha na tabela que contém a chave estrangeira • Deve ser garantido que o valor da chave estrangeira apareça na coluna da chave primária referenciada. Isso significa que um novo empregado deve atuar em um departamento já • existente no banco de dados • Quando da inclusão de uma linha na tabela que contém a chave estrangeira • Deve ser garantido que o valor da chave estrangeira apareça na coluna da chave primária referenciada. Isso significa que um novo empregado deve atuar em um departamento já existente no banco de dados. • Quando da alteração do valor da chave estrangeira • Deve ser garantido que o novo valor de uma chave estrangeira apareça na coluna da chave primária referenciada. • Quando da exclusão de uma linha da tabela que contém a chave primária referenciada pela chave estrangeira • Deve ser garantido que na coluna chave estrangeira não apareça o valor da chave primária que está sendo excluída. Isso significa que um departamento não pode ser excluído, caso nele ainda existirem empregados • A palavra “estrangeira” usada para denominar este tipo de chave pode ser enganosa. • Ela pode levar a crer que a chave estrangeira sempre referencia uma chave primária de outra tabela. Entretanto, esta restrição não existe. Uma chave primária pode referenciar a chave primária da própria tabela ATENÇÃO: Chave Alternativa: • Em alguns casos, mais de uma coluna ou combinações de colunas podem servir para distinguir uma linha das demais. • Uma das colunas (ou combinação de colunas) é escolhida como chave primária. As demais colunas ou combinações são denominadas chaves alternativa Chave Alternativa: • Uma tabela com dados de empregados (Emp) na qual tanto a coluna códigoEmp quanto a coluna CIC podem ser usadas para distinguir uma linha das demais. • Nesta tabela, como a coluna CódigoEmp foi escolhida como chave primária, diz-se que a coluna CIC é uma chave alternativa. Restrições de Integridade • Um dos objetivos primordiais de um SGBD é a integridade de dados. • Dizer que os dados de um banco de dados estão íntegros significa dizer que eles refletem corretamente a realidade representada pelo banco de dados e que são consistentes entre si. • Para tentar garantir a integridade de um banco de dados os SGBD oferecem o mecanismo de restrições de integridade Restrições de Integridade • Uma restrição de integridade é uma regra de consistência de dados que é garantida pelo próprio SGBD. • No caso da abordagem relacional, costuma-se classificar as restrições de integridade nas seguintes categorias: • Integridade de domínio • Integridade de vazio • Integridade de chave • Integridade referencial Restrições de Integridade de Domínio • Restrições deste tipo especificam que o valor de um campo deve obedecer a definição de valores admitidos para a coluna (o domínio da coluna). • Nos SGBD relacionais comerciais, é possível usar apenas domínios pré-definidos (número inteiro, número real, alfanumérico de tamanho definido, data, …). • O usuário do SGBD não pode definir domínios próprios de sua aplicação (por exemplo, o domínio dos dias da semana ou das unidades da federação). Restrições de Integridade de Vazio • Através deste tipo de restrição de integridade é especificado se os campos de uma coluna podem ou não ser vazios (se a coluna é obrigatória ou opcional). • NOTA: Campos que compõem a chave primária sempre devem ser diferentes de vazio. Restrições de Integridade de Chave • Trata-se da restrição que define que os valores da chave primária e alternativa devem ser únicos. Restrições de Integridade Referencial • É a restrição que define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada. Próxima Aula... • Aprender um método de conversão do modelo conceitual para o modelo relacional para: • Relacionamentos 1:1 • Relacionamentos 1:n • Relacionamentos n:m MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 8 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Aprender a transformar o modelo conceitual para o modelo lógico relacional para: • Relacionamentos 1:1 • Relacionamentos 1:n • Relacionamentos n:m Convertendo o Diagrama ER para Tabelas Relacionais • Regras simples, baseadas na cardinalidade dos relacionamentos, são aplicadas para converter entidades e relacionamentos em tabelas relacionais. Para cardinalidade 1:1 • Caso 1: Para cardinalidade 1:1 • Caso 1: PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos Comprados, Numero, DataDeEmissão, Valor_Total) PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos Comprados, Numero, DataDeEmissão, Valor_Total) Nºdo Pedido Data Emissão Datade Entrega Produtos Comprados Numero DataDe Emissão Valor Total Pedido Nota Fiscal Para cardinalidade 1:1 • Caso 2: ALUNO TESEPRODUZ (1,1) (0,1) Matricula Nome e-mail endereço Titulo Resumo Ano Para cardinalidade 1:1 • Caso 2: ALUNO (Matricula, Nome, e-mail, endereço) TESE (Aluno-Matricula , Titulo, Resumo, Ano) ALUNO TESEPRODUZ (1,1) (0,1) Matricula Nome e-mail endereço Titulo Resumo Ano ALUNO (Matricula, Nome, e-mail, endereço) TESE (Aluno-Matricula , Titulo, Resumo, Ano) Matricula Nome e-mail endereço ALUNO Aluno Matricula Titulo Resumo Ano TESE Para cardinalidade 1:N Para cardinalidade 1:N FABRICA (Nome, CNPJ) LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, Telefone) FABRICA (Nome, CNPJ) LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, Telefone) CNPJ Nome FABRICA CNPJ FABRICA CNPJ Razão Social End Nome Telefone LOJA Para cardinalidade 1:N FABRICA(Nome, CNPJ) CADASTRO(CNPJ, CNPJ_Loja) LOJA(CNPJ_Loja, Razão_Social,End, Nome, Telefone) FABRICA(Nome, CNPJ) CADASTRO(CNPJ, CNPJ_Loja) LOJA(CNPJ_Loja, Razão_Social, End, Nome, Telefone) CNPJ Nome FABRICA CNPJ Razão Social End Nome Telefone LOJA CADASTRO FABRICA CNPJ LOJA CNPJ Para cardinalidade N:M Para cardinalidade N:M ROUPA (Cod_modelo, Preço, TipoTecido) POSSUEM (Cod_Modelo,Sigla) TECIDO (Sigla, Descrição) ROUPA (Cod_modelo, Preço, TipoTecido) POSSUEM (Cod_Modelo,Sigla) TECIDO (Sigla, Descrição) Sigla Descrição A Algodão B Poliester TECIDO TECIDO Sigla ROUPA Cod_modelo A 01 B 01 POSSUEM ROUPA Cod_modelo Preço TipoTecido 01 1,00 Algodão 02 2,00 poliester Para cardinalidade N:M EMPREGADO ProjetoTrabalha em (1,N) (1,N) Matricula Nome e-mail Código Nome Local Horas Para cardinalidade N:M EMPREGADO ProjetoTrabalha em (1,N) (1,N) Matricula Nome e-mail Código Nome Local Horas EMPREGADO (Matricula, Nome, e-mail) PROJETO (Código , Nome , Local) EMPREGADO/PROJETO (EMPREGADO-Matricula, PROJETO-Código, Horas) EMPREGADO (Matricula, Nome, e-mail) PROJETO (Código , Nome , Local) EMPREGADO/PROJETO (EMPREGADO-Matricula, PROJETO-Código, Horas) Matricula Nome e-mail 1 Ana a@a 2 Juca j@j 3 Paulo p@p EMPREGADO Código Nome Local 01 Sist. A 02 Sist. B 03 Sist. C PROJETO EMPREGADO. Matricula PROJETO. Código Horas 1 01 20 1 03 10 3 01 40 EMPREGADO/PROJETO Para cardinalidade N:M PEÇA FORNECEDOR Forneci mento (1,N) (1,N) Codigo Nome Cor Cidade Codigo Nome Cidade QTDE Para cardinalidade N:M PEÇA FORNECEDOR Forneci mento (1,N) (1,N) Codigo Nome Cor Cidade Codigo Nome Cidade QTDE PEÇA (Codigo, Nome, Cor, Cidade) FORNECEDOR (Codigo , Nome, Cidade) FORNECIMENTO (PEÇA-Codigo, FORNECEDOR-Codigo, QTDE) Para cardinalidade N:M PEÇA CURITIBAAZULPARAFUSOP3 SPVERDEPORCAP2 RJVERMELHOPREGOP1 CIDADECORNOMECODIGO FORNECEDOR SPJOÃOS2 RJSILVAS1 CIDADENOMECODIGO FORNECIMENTO 400P2S2 300P1S2 400P3S1 200P2S1 300P1S1 QTDECOD_PECACOD_FORN AMBULATORIO MEDICO numero andar capacidade CONSULTA PACIENTE (1,1) (1,1) (1,1) (0,N) (0,1) (1,N) Matricula nome crm ESPECIALIDADE (0,N) codigo nome codigo nome CPF Dt.Nascimento Data Hora (0,N) MEDICO (0,1) Matricula nome crm ESPECIALIDADE (0,N) codigo nome ESPECIALIDADE (Codigo, Nome) MEDICO (Matricula, Nome, Crm, ESPECIALIDADE- Codigo ) AMBULATORIO MEDICO numero andar capacidade CONSULTA PACIENTE (1,1) (1,1) (1,1) (0,N) (0,1) (1,N) Matricula nome crm ESPECIALIDADE (0,N) codigo nome codigo nome CPF Dt.Nascimento Data Hora (0,N) AMBULATORIO MEDICO numero andar capacidade CONSULTA PACIENTE (1,1) (1,1) (1,1) (0,N) (1,N) Matricula nome crm codigo nome CPF Dt.Nascimento Data Hora (0,N) MEDICO (Matricula, Nome, Crm, ESPECIALIDADE- Codigo ) AMBULATORIO (Numero, Andar, Capacidade) PACIENTE (Codigo, Nome, CPF, Dt.Nascimento CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) MED. Matricula AMB. Numero PAC. Codigo Data Hora 012 2 001 25/11/2009 08:15 017 5 005 26/12/2009 23:50 015 3 009 31/12/2009 12:00 012 2 001 25/11/2009 19:30 015 3 009 15/01/2010 11:30 • Uma chave primária é uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. CHAVE PRIMÁRIA Por isso, nas definições formais de chave primária, exige-se que essa seja mínima. Uma chave é mínima quando todas suas colunas forem efetivamente necessárias para garantir o requisito de unicidade de valores da chave. CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo, Data, Hora) MED. Matricula AMB. Numero PAC. Codigo Data Hora 012 2 001 25/11/2009 08:15 017 5 005 26/12/2009 23:50 015 3 009 31/12/2009 12:00 012 2 001 25/11/2009 19:30 015 3 009 15/01/2010 11:30 MEDICO (Matricula, Nome, Crm, ESPECIALIDADE- Codigo ) ESPECIALIDADE (Codigo, Nome) AMBULATORIO (Numero, Andar, Capacidade) PACIENTE (Codigo, Nome, CPF, Dt.Nascimento CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) Próxima Aula... • Aprender um método de conversão do modelo conceitual para o modelo relacional para: • Relacionamentos recursivos • Generalizações • Agregações • Relacionamentos n-ários MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 9 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Método de conversão do modelo conceitual para o modelo relacional para: • Relacionamentos recursivos • Generalizações • Agregações • Relacionamentos n-ários Para cardinalidade 1:1 • Caso 1: REVISÃO Para cardinalidade 1:1 • Caso 1: PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos Comprados, Numero, DataDeEmissão, Valor_Total) REVISÃO PEDIDO (NºdoPedido, DataEmissão, DatadeEntrega, Produtos Comprados, Numero, DataDeEmissão, Valor_Total) Nºdo Pedido Data Emissão Datade Entrega Produtos Comprados Numero DataDe Emissão Valor Total Pedido Nota Fiscal REVISÃO Para cardinalidade 1:1 • Caso 2: ALUNO TESEPRODUZ (1,1) (0,1) Matricula Nome e-mail endereço Titulo Resumo Ano REVISÃO Para cardinalidade 1:1 • Caso 2: ALUNO (Matricula, Nome, e-mail, endereço) TESE (Aluno-Matricula , Titulo, Resumo, Ano) ALUNO TESEPRODUZ (1,1) (0,1) Matricula Nome e-mail endereço Titulo Resumo Ano REVISÃO ALUNO (Matricula, Nome, e-mail, endereço) TESE (Aluno-Matricula , Titulo, Resumo, Ano) Matricula Nome e-mail endereço ALUNO Aluno Matricula Titulo Resumo Ano TESE REVISÃO Para cardinalidade 1:N REVISÃO Para cardinalidade 1:N FABRICA (Nome, CNPJ) LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, Telefone) REVISÃO FABRICA (Nome, CNPJ) LOJA (CNPJ_Loja, Fabrica-CNPJ , Razão_Social, End, Nome, Telefone) CNPJ Nome FABRICA CNPJ FABRICA CNPJ Razão Social End Nome Telefone LOJA REVISÃO Para cardinalidade 1:N FABRICA(Nome, CNPJ) CADASTRO(CNPJ, CNPJ_Loja) LOJA(CNPJ_Loja, Razão_Social, End, Nome, Telefone) REVISÃO FABRICA(Nome, CNPJ) CADASTRO(CNPJ, CNPJ_Loja) LOJA(CNPJ_Loja, Razão_Social, End, Nome, Telefone) CNPJ Nome FABRICA CNPJ Razão Social End Nome Telefone LOJA CADASTRO FABRICA CNPJ FABRICA CNPJ REVISÃO Para cardinalidade N:M REVISÃO Para cardinalidade N:M ROUPA (Cod_modelo, Preço, TipoTecido) POSSUEM (Cod_Modelo,Sigla) TECIDO (Sigla, Descrição) REVISÃO ROUPA (Cod_modelo, Preço, TipoTecido) POSSUEM (Cod_Modelo,Sigla) TECIDO (Sigla, Descrição) Sigla Descrição TECIDO TECIDO Sigla ROUPA Cod_modelo POSSUEM ROUPA Cod_modelo Preço TipoTecido REVISÃO AMBULATORIO MEDICO numero andar capacidade CONSULTA PACIENTE (1,1) (1,1) (1,1) (0,N) (1,N) Matricula nome crm codigo nome CPF Dt.Nascimento Data Hora (0,N) MEDICO (Matricula, Nome, Crm) AMBULATORIO (Numero, Andar, Capacidade) PACIENTE (Codigo, Nome, CPF, Dt.Nascimento) CONSULTA (MEDICO- Matricula, AMBULATORIO- Numero, PACIENTE-Codigo,Data,Hora) REVISÃO Para Relacionamentos recursivos EMPREGADO Casado com (0,1) Matricula Nome sobrenome (0,1) EMPREGADO (Matricula, Nome, Sobrenome Para Relacionamentos recursivos EMPREGADO Casado com (0,1) Matricula Nome sobrenome (0,1) EMPREGADO (Matricula, Nome, Sobrenome) CASADO (Matricula-Marido,Matricula-Esposa) N N Temporariamente o LIMITE SUPERIOR é rotulado como N Para Relacionamentos recursivos EMPREGADO Supervisiona (1,1) Matricula Nome sobrenome (0,N) EMPREGADO (Matricula, Nome, Sobrenome, Matricula_Supervisor) Para Relacionamentos recursivos PEÇA Compõe (0,N) Numero Descrição Quantidade_Dispon (0,N) PEÇA (Numero, Descrição, Quantidade-Dispon) COMPÕE(Numero_Peça, Numero_Peça_Comp , Quantidade) Quantidade Para Generalizações ALUNO Matricula Nome E-mail (0,1) GRADUAÇÃO PÓS GRADUAÇÃO (0,1) (1,1) AlojamentoDt_Nascimento CR Para Generalizações ALUNO (Matricula, Nome, E-mail) GRADUAÇÃO (Matricula,Dt-Nascimento,CR) PÓS-GRADUAÇÃO (Matricula, Alojamento) N Temporariamente o LIMITE SUPERIOR é rotulado como N N Para Agregações COMPUTADOR Computador_ID Descricao PL. Mãe Disco Rígido Vídeo Tem Contém Consiste de (1,1) (1,1)(0,N) (0,N) (0,N) (0,N) PLMae_ID Descricao Disco_ID Capacidade Video_ID Descricao Para Agregações COMPUTADOR Computador_ID Descricao PL. Mãe Disco Rígido Vídeo Tem Contém Consiste de (1,1) (1,1)(0,N) (0,N) (0,N) (0,N) PLMae_ID Descricao Disco_ID Capacidade Video_ID Descricao COMPUTADOR(Computador_ID, Descricao, PLMae-ID) PL.MAE (PLMae-ID, Descricao ) Para Agregações COMPUTADOR Computador_ID Descricao PL. Mãe Disco Rígido Vídeo Tem Contém Consiste de (1,1) (1,1)(0,N) (0,N) (0,N) (0,N) PLMae_ID Descricao Disco_ID Capacidade Video_ID Descricao COMPUTADOR(Computador_ID, Descricao, PLMae-ID, Video-ID) VIDEO (Video-ID , Descricao) Para Agregações COMPUTADOR Computador_ID Descricao PL. Mãe Disco Rígido Vídeo Tem Contém Consiste de (1,1) (1,1)(0,N) (0,N) (0,N) (0,N) PLMae_ID Descricao Disco_ID Capacidade Video_ID Descricao Para Agregações COMPUTADOR(Computador_ID, Descricao, PLMae-ID, Video-ID) Disco Rigido( Disco-ID, Capacidade) Contem (Computador_ID , Disco-ID) COMPUTADOR(Computador_ID, Descricao, PLMae-ID, Video-ID) Disco Rigido( Disco-ID, Capacidade) Contem (Computador_ID , Disco-ID) VIDEO (Video-ID , Descricao) PL.MAE (PLMae-ID, Descricao ) Próxima Aula... • Apresentar o conceito de normalização • Apresentar e exemplificar a 1ª forma normal • Apresentar e exemplificar a 2ª forma normal • Apresentar e exemplificar a 3ª forma normal • Apresentar e exemplificar a forma normal de Boyce-Codd MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 10 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord Objetivos: • Apresentar o conceito de normalização • Apresentar e exemplificar a 1ª forma normal • Apresentar e exemplificar a 2ª forma normal • Apresentar e exemplificar a 3ª forma normal NORMALIZAÇÃO • O processo de normalização de dados representa uma série de passos que se seguem no projeto de um banco de dados que permitem um armazenamento consistente e um eficiente acesso aos dados de um banco de dados relacional. • Esses passos reduzem a redundância de dados e, consequentemente, as chances de ocorrerem inconsistências. • A normalização serve para analisar tabelas e organizá-las de forma que sua estrutura seja simples, relacional e estável, para que o gerenciamento possa ser também simples. • Os objetivos são evitar perda e repetição da informação e atingir uma forma de representação adequada para o que se deseja armazenar. • Oferecer mecanismos para analisar o projeto de Banco de Dados e a identificação de erros. • Oferecer métodos para corrigir o problema Perigos Potenciais nos Projetos de Bancos de Dados Relacionais • Repetição da Informação - Informações repetidas consomem espaço de armazenamento - Dificuldade de atualização • Incapacidade de representar a informação - Incidência de valores nulos • Perda da Informação - Projetos mal elaborados sugerem a decomposição de esquemas relacionais com muitos atributos Através do processo de normalização pode-se, gradativamente, substituir um conjunto de entidades e relacionamentos por um outro, o qual se apresenta "purificado" em relação às anomalias de atualização (inclusão, alteração e exclusão) as quais podem causar certos problemas, tais como: • grupos repetitivos (atributos multivalorados) de dados; • variação temporal de certos atributos, dependências funcionais totais ou parciais em relação a uma chave concatenada; • redundâncias de dados desnecessárias; • perdas acidentais de informação; • dificuldade na representação de fatos da realidade observada; • dependências transitivas entre atributos. Primeira forma normal (1FN) Uma tabela está na primeira forma normal quando se todos os seus atributo são monovalorados e atômicos, isto é, não contém tabelas aninhadas Primeira forma normal (1FN) Primeira forma normal (1FN) • Cria-se uma tabela na 1FN referente à tabela Não Normalizada e que contém apenas colunas com valores atômicos, isto é, sem as tabelas aninhadas; • Para cada tabela aninhada, cria-se uma tabela na 1FN compostas pelas seguintes colunas: • A chave primária de uma das tabelas na qual a tabela em questão está aninhada • As colunas da própria tabela • São definidas as chaves primárias das tabelas na 1FN que correspondem a tabelas aninhadas Primeira forma normal (1FN) Segundo a definição da 1FN, para normalizar a tabela acima, é necessário decompô-la em duas: Proj(CodProj, Tipo, Descr); Emp(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl); Primeira forma normal (1FN) Proj(CodProj, Tipo, Descr); Emp(CodProj, CodEmp, Nome, Cat, Sal, DataIni, TempAl); Quando encontrarmos um atributo multivalorado, deve-se criar um novo atributo que individualize a informação que esta multivalorada: BOLETIM (matricula-aluno, materia, notas) No caso acima, cada nota seria individualizada identificando a prova a qual aquela nota se refere: BOLETIM (matricula-aluno, materia, numero-prova, nota) Quando encontrarmos um atributo não atômico, deve-se dividi-lo em outros atributos que sejam atômicos: PESSOA (CPF, nome-completo) Vamos supor que, para a aplicação que utilizará esta relação, o atributo nome-completo não é atômico, a solução então será: PESSOA (CPF, nome, sobrenome) Segunda Forma Normal (2FN) Uma tabela encontra-se na segunda forma normal, quando, além de estar na 1FN, não contem dependências parciais. Dependência parcial -> Uma dependência parcial ocorre quando uma coluna depende apenas de parte de uma chave primária composta. Segunda Forma Normal (2FN) Depende apenas de CodEmp e não da Chave Primária (CodProj, CodEmp) Segunda Forma Normal (2FN) • Copiar para a 2FN cada tabela que tenha chave primária simples ou que não tenha colunas além da chave. • Para cada tabela com chave primária composta e com pelo menos uma coluna não chave: • Criar na 2FN uma tabela com as chaves primárias da tabela na 1FN • Para cada coluna não chave fazer a seguinte pergunta: ”a coluna depende de toda a chave ou de apenas parte dela” • Caso a coluna dependa de toda a chave • Criar a coluna correspondente na tabela com a chave completa na 2FN • Caso a coluna não dependa apenas de parte da chave • Criar, caso ainda não existir, uma tabela na 2FN que tenha como chave primária a parte da chave que é determinante da coluna em questão • Criar a coluna dependente dentro da tabela na 2FN Segunda Forma Normal (2FN) Observe a relação abaixo: BOLETIM (matricula-aluno, codigo-materia, numero-prova, nota, data-da- prova, nome-aluno, endereço-aluno, nome-materia) Fazendo a análise da dependência funcional de cada atributo primo, chegamos às seguintes dependências funcionais: matricula-aluno, codigo-materia, numero-prova -> nota codigo-materia, numero-prova -> data-da-prova matricula-aluno -> nome-aluno, endereço-aluno codigo-materia -> nome-materia Concluímos 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, deve-se criar novas relações, agrupando os atributos de acordo com suas dependências funcionais: BOLETIM (matricula-aluno, codigo-materia, numero-prova, nota) PROVA (codigo-materia, numero-prova, data-da-prova) ALUNO (matricula-aluno, nome-aluno, endereço-aluno) MATERIA (codigo-materia, nome-materia) Terceira Forma Normal (3FN) Uma tabela encontra-se na terceira forma normal, quando, além de estar na 2FN, não contém dependências transitivas Dependência transitiva -> Uma dependência funcional transitiva ocorre quando uma coluna, além de depender da chave primária da tabela, depende de outra coluna ou conjunto de colunas da tabela Terceira Forma Normal (3FN) Supondo que
Compartilhar