Você está na página 1de 37

MODELAGEM EM BANCO DE DADOS

Prof. Marcos Alexandruk

MODELAGEM EM BANCO DE DADOS INTRODUO AOS CONCEITOS DE INFORMAO INFORMAO:

Acrescenta algo ao conhecimento da realidade a ser analisada. Por exemplo, a dosagem que um paciente precisa receber de um determinado remdio uma INFORMAO. Este conhecimento pode ser (ou no) modelado (registrado).

DADO: uma representao, um registro de uma informao. Este DADO pode ser registrado fisicamente atravs de um papel (receita mdica), um disco magntico, etc.

O tratamento das INFORMAES d origem a uma srie de DADOS, porm o DADO deve registrar apenas aspectos relevantes da INFORMAO. Tendo em vista a natural "restrio" humana de manipular grandes quantidades de informaes ao mesmo tempo, foram criadas tcnicas para modelar os diversos problemas que existem. Estas tcnicas, juntas, formam um conjunto conhecido como METODOLOGIA de produo de sistemas de informao. Desde 1950, vrias metodologias esto sendo colocadas em prtica. Estas metodologias definem o CICLO DE VIDA do desenvolvimento, no qual esto mostradas as fases que compem o caminho a ser seguido pelos analistas e programadores, at a produo do sistema de informaes na sua verso operacional. Cada fase pode ser vista como o refinamento da etapa anterior. A seguir sero apresentadas algumas metodologias utilizadas no processo de desenvolvimento de sistemas de informao: CICLO DE VIDA TRADICIONAL OU EM CASCATA Apresenta como principal caracterstica a baixa interao dos usurios do sistema com o pessoal de desenvolvimento. Durante as etapas de Levantamento e Anlise, o usurio tenta passar para o analista tudo o que sabe sobre o problema e o que ele deseja para solucionar o mesmo. Aps a definio do problema criado um documento contendo os requisitos do futuro sistema, que ento congelado e utilizado durante todas as fases de desenvolvimento. Neste ciclo de vida quase no existe oportunidade para o usurio realizar alguma alterao em pontos dos requisitos congelados. As atividades so realizadas em seqncia e no existem retornos entre as atividades. Toda a documentao produzida aps o trmino do projeto. Os projetos realizados com este ciclo de vida se caracterizam pela alta incidncia de manuteno, pois esto sujeitos a poucas alteraes durante o desenvolvimento. LEVANTAMENTO ANLISE PROJETO CODIFICAO DOCUMENTAO TESTES IMPLEMENTAO MANUTENO

CICLO DE VIDA DA ANLISE ESTRUTURADA Caracterizado pelo uso das tcnicas estruturadas, incluindo as revises estruturadas. Muitas das atividades so executadas em paralelo, produzindo documentao nos vrios estgios do desenvolvimento. Revises peridicas so realizadas para se detectar o mais cedo possvel problemas que podem influenciar o produto final. O envolvimento do usurio bastante significativo. Sua participao na maioria das revises traz novas sugestes e correes dos aspectos no compatveis com suas necessidades.

MODELAGEM EM BANCO DE DADOS CICLO DE VIDA DA ENGENHARIA DE SOFTWARE

Busca uma maior disciplina em termos de desenvolvimento de sistemas. Caracterizada pela forte orientao por processos, pela determinao bem acentuada de cada fase, enfatiza a reutilizao de cdigo de programa, prov revises e pontos de checagem bem determinados e define mtricas bem fundamentadas para o gerente realizar o controle da produtividade, a qualidade e o baixo custo final. A engenharia de software fundamentada em sete fases: viabilidade, anlise, projeto, implementao, teste do sistema, teste do usurio e produo. Quando um problema ocorre em uma das fases, retorna-se a fase imediatamente anterior. CICLO DE VIDA DA ENGENHARIA DE INFORMAO No decorrer de 20 anos de uso de tcnicas de desenvolvimento de sistemas, concluiu-se que os dados envolvidos em cada processo eram extremamente estveis, se comparados com os processos. Em 1981, Matt Flavin, James Martin e Clive Finkelstein introduziram o conceito de engenharia da informao. O princpio fundamental baseava-se no fato de que o dado existe e descrito, independentemente dos processos que podem utiliz-lo. Como o centro desta metodologia o DADO, a idia principal levantar as estruturas de dados que vo dar origem aos bancos de dados, provendo um fcil acesso aos mesmos. A engenharia da informao um conjunto integrado de tcnicas que organiza os dados de um determinado negcio e determina um acesso fcil, por parte do usurio final, a estes dados. Esta metodologia pode ser detalhada nas seguintes fases: planejamento estratgico das informaes, anlise da informao, modelagem dos dados, formao dos procedimentos, anlise do uso dos dados, anlise da distribuio dos dados, projeto fsico da base de dados e especificao dos programas.

MODELAGEM EM BANCO DE DADOS INTRODUO Conceitos bsicos necessrios compreenso do projeto de banco de dados. BANCO DE DADOS:

coleo de dados integrados que tem por objetivo atender a uma comunidade de usurios. conjunto de dados persistentes e manipulveis que obedecem a um padro de armazemamento. Exemplos: lista telefnica, dicionrio, etc.. equivalente eletrnico de um armrio de arquivamento, isto , um repositrio para uma coleo de arquivos de dados computadorizados.

Por que utilizar DBs (informatizados)? Compacto (elimina arquivos de papis); Rpido; Integrado (repositrio de dados de vrios aplicativos); Compartilhado (vrios usurios podem acessar); Seguro (acesso com restries); Padronizado; Consistente; Suporte a transaes (opcional)

SISTEMA DE GERNCIA DE BANCO DE DADOS (SGDB) software que incorpora as funes de definio, recuperao e alterao de dados em um banco de dados sistema computadorizado de manuteno de registros

MODELAGEM EM BANCO DE DADOS VANTAGENS:

Densidade: No h necessidade de arquivos de papel, possivelmente volumosos Velocidade: A 'mquina' pode obter e atualizar dados com rapidez muito maior que o ser humano Menos trabalho montono: Grande parte do tdio de manter arquivos mo eliminada. As tarefas mecnicas so sempre feitas com melhor qualidade por mquinas. Atualidade: Informaes precisas e atualizadas esto disponveis a qualquer momento sob consulta Proteo: Os dados podem ser mais bem protegidos contra perda no intencional e acesso ilegal Centralizao: O sistema de banco de dados proporciona organizao o controle centralizado de seus dados.

MODELO DE DADOS: Descrio formal da estrutura de um banco de dados. MODELO HIERRQUICO Organiza os dados de cima para baixo, como uma rvore. Cada registro dividido em partes de registros denominados segmentos. O banco de dados se assemelha a um organograma com um segmento raiz e um nmero qualquer de segmentos subordinados. Os segmentos, por sua vez, so arranjados em estruturas multiniveladas, com um segmento superior ligado a um segmento subordinado em um relacionamento pai-filho. Um segmento pai pode ter mais de um filho, mas um segmento filho s pode ter um pai. MODELO EM REDE Os registros so organizados no banco de dados por um conjunto arbitrrio de grficos. Em outras palavras, um filho pode ter mais de um pai. So mais flexveis que os hierrquicos. Existem limitaes prticas para o nmero de ligaes, que podem ser estabelecidas entre os registros. Nem o modelo de gerenciamento de bancos de dados em rede nem o hierrquico podem criar facilmente novos relacionamentos entre os elementos de dados ou novos padres de acesso sem grande esforo de programao. MODELO RELACIONAL A introduo do sistema relacional (1969-1970) foi o evento mais importante na histria da rea de banco de dados. De modo abreviado (e informal), um sistema relacional aquele no qual: Os dados so percebidos pelo usurio como tabelas Os operadores disposio do usurio (por exemplo, para busca de dados) so operadores que geram tabelas "novas" a partir de tabelas "antigas". Por exemplo, h um operador de "restrio" (tambm conhecido como "seleo") para extrair um subconjunto das linhas de uma dada tabela, e outro operador, "projeo", que extrai um subconjunto das colunas.

Os primeiros produtos relacionais comearam a aparecer no final da dcada de 1970. Hoje a maioria dos sistemas de banco de dados relacional: IBM: DB2 CA: Ingres II Microsoft: SQL Server Oracle: 9i, 10g Sybase Informix

A linguagem de manipulao de dados em sistemas de bancos de dados relacionais o SQL (Structured Query Language).

MODELAGEM EM BANCO DE DADOS VISO DE DADOS

O maior benefcio de um banco de dados proporcionar ao usurio uma viso abstrata dos dados. Isto , o sistema acaba por ocultar determinados detalhes sobre a forma de armazenamento e manuteno desses dados. ABSTRAO DE DADOS NVEL FSICO: o nvel mais baixo de abstrao. Descreve como os dados esto de fato armazenados. Estruturas complexas so descritas em detalhes.

NVEL LGICO: Descreve quais dados esto armazenados e quais os relacionamentos entre eles. O banco de dados descrito em termos de um nmero relativamente pequeno de estruturas simples. Utilizado pelos administradores de banco de dados que precisam decidir quais informaes devem pertencer ao banco de dados.

NVEL DE VISO: o nvel mais alto de abstrao. Descreve apenas parte do banco de dados. Muitos usurios utilizam apenas parte do banco de dados. Assim, para que estas interaes sejam simplificadas, um nvel de viso definido. O sistema pode proporcionar diversas vises do mesmo banco de dados.

INDEPENDNCIA DE DADOS: a capacidade de modificar a definio dos esquemas em determinado nvel, sem afetar o esquema do nvel superior. Independncia de dados fsica: a capacidade de modificar o esquema fsico sem que, com isso, qualquer programa ou aplicao precise ser reescrito. Independncia de dados lgica: a capacidade de modificar o esquema lgico sem que, com isso, qualquer programa ou aplicao precise ser reescrito. A independncia lgica mais difcil de ser alcanada que a independncia fsica, uma vez que os programas de aplicao so mais fortemente dependentes da estrutura lgica dos dados do que de seu acesso.

MODELAGEM EM BANCO DE DADOS ARQUITETURAS DE SISTEMAS DE BANCOS DE DADOS SISTEMAS CENTRALIZADOS

Sistemas de banco de dados centralizados so aqueles executados sobre um nico sistema computacional que no interagem com outros sistemas. Tais sistemas podem ter a envergadura de um sistema de banco de dados de um s usurio executado em um computador pessoal at sistemas de alto desempenho em sistemas de grande porte.

SISTEMAS CLIENTE-SERVIDOR As funcionalidades de um banco de dados podem ser superficialmente divididas em duas categorias: back-end: gerencia as estruturas de acesso, desenvolvimento e otimizao de consultas, controle de concorrncia e recuperao. front-end: consiste em ferramentas como formulrios, gerador de relatrios e recursos de interfaces grficas. A interface entre o front-end e o back-end feita por meio da SQL ou de um programa de aplicao.

SISTEMAS PARALELOS Sistemas paralelos imprimem velocidade ao processamento e I/O por meio do uso em paralelo de diversas CPUs e discos. Suprem a demanda de aplicaes que geram consultas em bancos de dados muito grandes (da ordem de terabytes) ou que tenham de processar um volume enorme de transaes por segundo (da ordem de milhares de transaes por segundo).

MODELAGEM EM BANCO DE DADOS

H diversos modelos arquitetnicos para mquinas paralelas: Memria compartilhada: Todos os processadores compartilham uma mesma memria. Disco compartilhado: Todos os processadores compartilham o mesmo disco. Sistemas com discos compartilhados so, s vezes chamados de clusters. Ausncia de compartilhamento: Os processadores no compartilham nem memria nem disco. Hierrquico: um hbrido das arquiteturas anteriores.

SISTEMAS DISTRIBUDOS Em um sistema de banco de dados distribudo o banco de dados armazenado em diversos computadores. Os computadores comunicam-se uns com os outros por intermdio de redes de alta velocidade ou linhas telefnicas. Eles no compartilham memria principal ou discos. Os computadores em um sistema de banco de dados distribudos podem variar, quanto ao tamanho e funes, desde estaes de trabalho at sistemas de grande porte (mainframe). As principais diferenas entre os bancos de dados paralelos sem compartilhamento e os bancos de dados distribudos so que, nos bancos de dados distribudos, h a distribuio fsica geogrfica (diversos sites), administrao separada e uma intercomunicao menor. Outra importante diferena que, nos sistemas distribudos, distinguimos transaes locais de globais. Uma transao local acessa um nico site, justamente no qual ela se inicial. Uma transao global, por outro lado, aquela que busca acesso a diferentes sites, ou a outro site alm daquele em que se inicia.

MODELAGEM EM BANCO DE DADOS VISO GERAL DA ESTRUTURA DO SISTEMA DE BANCO DE DADOS COMPONENTES DE PROCESSAMENTO DE CONSULTAS:

Compilador DML: Traduz comandos DML da linguagem de consulta em instrues de baixo nvel, inteligveis ao componente de execuo de consultas. Transforma a solicitao do usurio em uma solicitao equivalente, mas mais eficiente. Pr-compilador para comandos DML: Inseridos em programas de aplicao que convertem comandos DML em chamadas e procedimentos normais da linguagem hospedeira. Interage com o compilador DML de modo a gerar o cdigo apropriado. Interpretador DDL: Interpreta os comandos DDL e registra-os em um conjunto de tabelas que contm metadados. Componentes para tratamento de consultas: Executam instrues de baixo nvel geradas pelo compilador DML.

COMPONENTES DE ADMINISTRAO DE ARMAZENAMENTO DE DADOS:


Gerenciamento de autorizao e integridade: Testam o cumprimento das regras de integridade e a permisso ao usurio no acesso ao dado. Gerenciamento de transaes: Garante que o banco de dados permanecer em estado consistente (correto) a despeito de falhas no sistema e que transaes concorrentes sero executadas sem conflitos em seus procedimentos. Administrao de arquivos: Gerencia a alocao de espao no armazenamento em disco e as estruturas de dados usadas para representar as informaes armazenadas em disco. Administrao de buffer: Responsvel pela intermediao de dados do disco para a memria principal e pela deciso de quais dados colocar em memria cache.

OUTRAS ESTRUTURAS NECESSRIAS COMO PARTE DA IMPLEMENTAO FSICA DO SISTEMA:


Arquivo de dados: Armazena o prprio banco de dados. Dicionrio de dados: Armazena os metadados relativos estrutura do banco de dados. ndices: Proporcionam acesso rpido aos dados associados a valores determinados. Estatsticas de dados: Armazenam informaes estatsticas usadas pelo processador de consultas para seleo de meios eficientes para execuo de uma consulta.

MODELAGEM EM BANCO DE DADOS MODELO CONCEITUAL

Representa ou descreve a realidade do ambiente do problema, constituindo-se em uma viso global dos principais dados e relacionamentos (estruturas de informaes), independente das restries de implementao. a primeira etapa do projeto de um sistema de aplicao em banco de dados. uma descrio em alto nvel (macro definio) mas que tem a preocupao de capturar e retratar toda a realidade de uma organizao. O resultado de um modelo conceitual um esquema que representa a realidade das informaes existentes, assim como as estruturas de dados que representam estas informaes.

MODELO LGICO Tem seu incio a partir do modelo conceitual, levando em considerao as trs abordagens atualmente disponveis: Relacional, Hierrquica e Rede. O modelo lgico descreve as estruturas que estaro contidas no banco de dados, mas sem considerar ainda nenhuma caracterstica especfica de SGBD, resultando em um esquema lgico de dados.

MODELO FSICO Parte do modelo lgico e descreve as estruturas fsicas de armazenamento de dados, tais como: tamanhos de campos, ndices, tipos de dados, nomenclaturas, etc. Este modelo detalha o estudo dos mtodos de acesso do SGDB, para elaborao dos ndices de cada informao colocada nos modelos conceitual e lgico. a etapa final do projeto de banco de dados, na qual ser utilizada a linguagem de definio de dados (DDL), para a realizao da montagem do mesmo no nvel de dicionrio de dados.

MODELAGEM EM BANCO DE DADOS

10

MODELO CONCEITUAL
Descrio do banco de dados de forma independente de implementao em um SGBD. Registra que dados podem aparecer no banco de dados, mas no registra como estes dados esto armazenados no SGDB. DIAGRAMA ENTIDADE-RELACIONAMENTO

O Modelo Entidade-Relacionamento foi definido por Peter Chen em 1976, e teve como base a teoria relacional criada por E. F. Codd (1970). Um modelo ER um modelo formal, preciso, no ambguo. Isto significa que diferentes leitores de um mesmo modelo ER devem sempre entender exatamente o mesmo. Tanto assim, que um modelo ER pode ser usado como entrada de uma ferramenta CASE (Computer Aided Software Engineering) na gerao de um banco de dados relacional. ENTIDADE: Representa um conjunto de objetos (tudo que perceptvel ou manipulvel) da realidade modelada sobre os quais deseja-se manter informaes no banco de dados. ATRIBUTOS: Dados que so associados a cada ocorrncia de uma entidade ou de um relacionamento. IDENTIFICADOR DE ENTIDADE: Atributo ou conjunto de atributos e relacionamentos cujos valores distinguem uma ocorrncia da entidade das demais. CARDINALIDADE: Nmero (mnimo, mximo) de ocorrncias de entidade associadas a uma ocorrncia da entidade em questo atravs do relacionamento. Cardinalidade mnima: o nmero mnimo de ocorrncias de entidade que so associadas a uma ocorrncia de uma entidade atravs de um relacionamento. A cardinalidade mnima 1 recebe a denominao de associao obrigatria, j que ela indica que o relacionamento deve obrigatoriamente associar uma ocorrncia de entidade a outra. A cardinalidade mnima 0 (zero) recebe a denominao de associao opcional. Cardinalidade mxima: o nmero mximo de ocorrncias de entidade que so associadas a uma ocorrncia de uma entidade atravs de um relacionamento. Apenas duas cardinalidades mximas so relevantes: a cardinalidade mxima 1 e a cardinalidade mxima n (muitos). DIAGRAMA DE OCORRNCIAS: Para fins didticos, pode ser til construir um diagrama de ocorrncias. Neste as ocorrncias de entidades so representadas por crculos brancos e ocorrncias de relacionamentos por crculos pretos. As ocorrncias de entidades participantes de uma ocorrncia de relacionamento so indicadas pelas linhas que ligam o crculo preto aos crculos brancos.

MODELAGEM EM BANCO DE DADOS RELACIONAMENTO BINRIO Um relacionamento binrio aquele envolve duas ocorrncias de entidade. Podemos classificar os relacionamentos binrios em:

11

1:1 (um-para-um): cada elemento de uma entidade relaciona-se com um e somente um elemento de outra entidade. 1:n (um-para-muitos): um elemento da entidade 1 relaciona-se com muitos elementos da entidade 2, mas cada elemento da entidade 2 somente pode estar relacionado a um elemento da entidade 1. n:n (muitos-para-muitos): em ambos os sentidos encontramos um grau de relacionamento de um-para-muitos, o que o caracteriza no contexto geral como um relacionamento de muitos-para-muitos.

RELACIONAMENTO TERNRIO Relacionamento entre mltiplas entidades, expressam um fato em que todas as entidades ocorrem simultaneamente, ou seja, todas as ocorrncias do relacionamento possuem, sempre, ligaes com todas as entidades envolvidas no relacionamento. O exemplo a seguir queremos garantir que a seguinte situao seja representa de forma apropriada: x fornece a pea y para o projeto z. Esta condio somente pode ser representada atravs de um relacionamento ternrio.

Observe o que ocorreria se tentssemos substituir o relacionamento ternrio acima por trs relacionamentos binrios: x fornece a pea y: No podemos inferir que a pea y ser utilizada no projeto z. y utilizada no projeto z: No podemos inferir que y foi fornecida por x. x fornece para o projeto z: No podemos inferir x fornece a pea y para o projeto z. Veja este outro caso que expressa a cardinalidade num relacionamento ternrio:

No exemplo acima, cada par de ocorrncias (aluno, disciplina) est associado a no mximo um professor. A um par (aluno, professor) podem estar associadas muitas disciplinas, ou em outros termos, um professor pode ministrar a um determinado aluno vrias disciplinas. A um par (disciplina, professor) podem estar associados muitos alunos, ou em outros termos, um professor pode uma determinada disciplina a vrios alunos.

MODELAGEM EM BANCO DE DADOS AUTO RELACIONAMENTO Relacionamento entre ocorrncias de uma mesma entidade.

12

Exemplo 1: 1:1 - uma ocorrncia de pessoa exerce o papel de marido e outra ocorrncia de pessoa exerce o papel de esposa. Exemplo 2: 1:n - uma ocorrncia de funcionrio exerce o papel de supervisor e ocorrncias de funcionrio exercem o papel de supervisionado. outras

GENERALIZAO/ESPECIALIZAO Atravs deste conceito possvel atribuir propriedades particulares a um subconjunto das ocorrncias especializadas de uma entidade genrica. Especializao total: para cada ocorrncia da entidade genrica existe sempre uma ocorrncia em uma das entidades especializadas.

Especializao parcial: nem toda ocorrncia da entidade genrica possui uma ocorrncia correspondente em uma entidade especializada.

MODELAGEM EM BANCO DE DADOS MLTIPLOS NVEIS E HERANA MLTIPLA

13

admissvel que uma mesma entidade seja especializao de diversas entidades genrica (herana mltipla). No diagrama abaixo o exemplo de herana mltipla aparece na entidade ANFBIO.

HERANA DE PROPRIEDADES Herdar propriedades significa que cada ocorrncia da entidade especializada possui, alm de suas propriedades (atributos, relacionamentos e generalizaes/especializaes) tambm as propriedades da ocorrncia da entidade genrica correspondente. GENERALIZAO/ESPECIALIZAO EXCLUSIVA Significa que uma ocorrncia de entidade genrica generalizao/especializao, no mximo uma vez. GENERALIZAO/ESPECIALIZAO NO EXCLUSIVA Neste caso, uma ocorrncia da entidade genrica pode aparecer em mltiplas especializaes. No exemplo abaixo, considera-se o conjunto de pessoas vinculadas a uma universidade. Neste caso a especializao no exclusiva, j que a mesma pessoa pode aparecer em mltiplas especializaes. Uma pessoa pode ser professor de um curso e ser aluno em outro curso (psgraduao, por exemplo). Por outro lado, uma pessoa pode acumular o cargo de professor em tempo parcial com o cargo de funcionrio, ou, at mesmo, ser professor de tempo parcial em dois departamentos diferentes, sendo portanto duas vezes professor. aparece, para cada hierarquia

O principal problema que este tipo de generalizao/especializao apresenta que neste caso as entidades especializadas no podem herdar o identificador da entidade genrica. No caso, o identificador de pessoa no seria suficiente para identificar professor, j que uma pessoa pode ser mltiplas vezes professor.

MODELAGEM EM BANCO DE DADOS ENTIDADE ASSOCIATIVA

14

Um relacionamento uma associao entre entidades. Na modelagem ER no foi prevista a possibilidade de associar uma entidade com um relacionamento ou ento de associar dois relacionamentos entre si. Uma entidade associativa nada mais que a redefinio de um relacionamento, que passa a ser tratado como se fosse tambm uma entidade. Representamos graficamente uma entidade associativa conforme o exemplo abaixo:

MODELAGEM EM BANCO DE DADOS

15

MODELO RELACIONAL
CHAVE PRIMRIA: Atributo atravs do qual seja possvel identificar determinado registro. Uma chave primria no pode ser repetida, ou seja, o conjunto de valores que constituem a chave primria deve ser nico dentro de uma tabela. Chave primria simples: apenas um atributo (campo) compe a chave primria. Chave primria composta: mais de um atributo compe a chave primria.

CHAVE NICA: Utilizada quando determinado campo no deve ser repetido e no chave primria. Aumenta a consistncia do banco de dados. Exemplo: Cadastro de clientes. Cada cliente recebe um cdigo nico, que a chave primria. Para maior segurana e consistncia podemos optar que o campo RG tambm seja nico, evitando que o mesmo cliente seja cadastrado duas vezes. CHAVE ESTRANGEIRA: Utilizada quando queremos que o valor de um atributo seja validado a partir do valor de atributo de uma outra tabela. Criamos assim uma relao de dependncia (um relacionamento) entre as tabelas. Exemplo: Antes de efetuar o cadastro de um pedido de venda, necessrio que o cliente em questo conste no cadastro de clientes. RELACIONAMENTOS: Associao estabelecida entre campos comuns de duas tabelas. Dessa forma permitimos o estabelecimento de correspondncia entre registros de diferentes tabelas. Relacionamento um-para-um (1-1): FUNCIONARIO ARMARIO CodigoFuncionario (1) ----| NumeroArmario NomeFuncionario |--- (1) CodigoFuncionario EnderecoFuncionario DataCadastro TelefoneFuncionario Relacionamento um-para-muitos (1-N): CLIENTE PEDIDO CodigoCliente (1) ---| NumeroPedido NomeCliente |---- (N) CodigoCliente EnderecoCliente DataPedido TelefoneCliente CodigoProduto Relacionamento muitos-para-muitos (N-N): No possvel efetuar de forma direta. Esse tipo de relacionamento s possvel definindo uma terceira tabela (tabela de associao ou tabela de detalhes). Essa tabela deve possuir chave primria composta de dois campos e as chaves estrangeiras provenientes das duas tabelas primrias. Concluindo, um relacionamento de muitos-para-muitos deve ser dividido em dois relacionamentos de um-para-muitos com uma terceira tabela. PEDIDO ITENSPEDIDO PRODUTO NumeroPedido (1) -------- (N) NumeroPedido |---- (1) CodigoProduto CodigoCliente CodigoProduto (N) ---| DescProduto DataPedido Quantidade ValorProduto EstoqueProduto

NOTAO RESUMIDA PARA MODELOS LGICOS RELACIONAIS


Notao compacta, til para discusses sobre a estrutura geral do banco de dados, utilizada quando no se deseja entrar no nvel maior de detalhamento. Funcionario(CodFunc, Nome, CodDept, CPF) CodDept referencia Departamento Departamento(CodDept, Nome)

MODELAGEM EM BANCO DE DADOS

16

INTEGRIDADE DE DADOS
INTEGRIDADE DE DOMNIO: Zela pelos valores ideais e necessrios para um atributo. Para isso definimos algumas regras de validao por meio de expresses compostas de valores constantes. No permitir um estoque negativo Impedir uma data de nascimento superior data atual No permitir que o valor de um produto seja negativo

INTEGRIDADE DE ENTIDADE: Tem o objetivo de validar os valores permitidos a partir de valores j inseridos na prpria entidade. Aps uma auto-consulta a entidade vai permitir ou no a gravao do novo registro. No permitir duas pessoas com o mesmo CPF Impedir que seja locada uma fita que j est locada

INTEGRIDADE REFERENCIAL: Zela pela consistncia dos registros de uma entidade a partir de valores provenientes de outras entidades, isto , determinado registro vai depender diretamente de um registro de outra tabela. Um registro em uma tabela pai pode ter um ou mais registros em uma tabela filho. Um registro em uma tabela filho sempre tem um registro coincidente em uma tabela pai. Para a incluso de um registro em uma determinada tabela filho, necessrio que exista um registro pai coincidente. Um registro pai s poder ser excludo se no possuir nenhum registro filho.

NOMENCLATURA DE CAMPOS
No utilizar caracteres especiais (exceto o underscroe _); Comear com uma letra e no com um nmero; Evitar acentuao e ; No utilizar espaos. ORACLE - TIPOS DE DADOS Descrio Cadeia de caracteres de tamanho fixo n. O default 1 e o mximo 255. Cadeia de caracteres de tamanho varivel. Tamanho mximo 4.000. Cadeia de caracteres de tamanho varivel. Tamanho mximo 2 GB. S pode existir um campo deste tipo por tabela. Equivalente ao varchar2 e long, respectivamente. Utilizado para armazenar dados binrios (sons, imagens, etc.) Limite: 2.000 bytes. Valores numricos. Ex: number (5,2) armazena -999,99 a +999,99. Armazena data e hora (inclusive minuto e segundo). Ocupam 7 bytes. CONSTRAINTS / RESTRIES Uso Informa se o campo pode receber valores nulos. Caso no possa, deve ser precedido de not. Indica que os valores na coluna, ou conjunto de colunas, no pode ser repetido. Cria um ndice automaticamente. Especifica os valores que uma coluna pode assumir. Identifica a chave primria da tabela. Cria um ndice automaticamente. Identifica a chave estrangeira da tabela. Implementada pela clusula references.

Tipo char varchar2 (n) long raw e long raw number (p,e) date

Nome null unique check primary key foreign key

MODELAGEM EM BANCO DE DADOS

17

MODELAGEM EM BANCO DE DADOS

18

MODELAGEM EM BANCO DE DADOS

19

NORMALIZAO
Conceito introduzido em 1970 por E. F. Codd (1FN). Processo matemtico formal com fundamento na teoria dos conjuntos.

O processo de normalizao aplica uma srie de regras sobre as tabelas de um banco de dados para verificar se estas foram corretamente projetadas.

Objetivos principais:
Garantir a integridade dos dados, evitando que informaes sem sentido sejam inseridas. Organizar e dividir as tabelas da forma mais eficiente possvel, diminuindo a redundncia e permitindo a evoluo do banco de dados.

So seis as formas normais mais conhecidas: 1FN 1 Forma Normal 2FN 2 Forma Normal 3FN 3 Forma Normal FNBC Forma Normal de Boyce e Codd 4FN 4 Forma Normal 5FN 5 Forma Normal

Nota: As trs primeiras formas normais atendem maioria dos casos de normalizao. Uma forma normal engloba todas as anteriores, i.e., para que uma tabela esteja na 2FN, ela obrigatoriamente deve estar na 1FN e assim por diante. Normalmente aps a aplicao das regras de normalizao, algumas tabelas acabam sendo divididas em duas ou mais tabelas. Este processo colabora significativamente para a estabilidade do modelo de dados e reduz consideravelmente as necessidades de manuteno.

Conceitos teis:
1. Chaves Chave candidata: Atributo ou conjunto de atributos que so nicos para cada registro. Para cada tabela podemos ter uma ou vrias chaves desse tipo. Exemplo: codigo e cpf. Chave primria: Entre as chaves candidatas, escolhemos uma para ser o identificador principal da tabela. Este atributo passa a ser chamado de chave primria (PK Primary Key). Chaves alternativas: So as chaves candidatas que no foram definidas como chave primria. Chave estrangeira: o atributo ou conjunto de atributos que faz a ligao com a chave primria de outra tabela (FK Foreign Key).

2. Dependncia Funcional (DF) Sempre que um atributo X identifica um atributo Y, dizemos que entre eles h uma dependncia funcional. Temos, portanto, que X o determinante e que Y o dependente. A representao : X Y (l-se X determina Y ou Y dependente de X). cidade estado estado pas

Em outras palavras, estado funcionalmente dependente de cidade e pas fincionalmente dependente de estado. Ou ainda, estado dependente de cidade e pas dependente de estado. E por ltimo, cidade determina estado e estado determina pas. 3. Trivialidade A dependncia funcional trivial indica que um determinante com mais de um atributo pode determinar seus prprios membros quando isolados.

MODELAGEM EM BANCO DE DADOS {banco, agncia} {banco, agncia} banco agncia DF trivial: banco parte do determinante DF trivial: agncia parte do determinante

20

Quando um determinante identifica outro atributo qualquer, temos uma dependncia funcional no trivial (essa DF a que nos interessa no processo de normalizao): {banco, agncia} 4. Transitividade Se um atributo X determina Y e se Y determina Z, podemos dizer que X determina Z de forma transitiva. i.e., existe uma dependncia funcional transitiva de X para Z. cidade estado ciade estado pas pas (cidade determina pas de forma transitiva) cidade DF no trivial: cidade no faz parte do determinante

5. DF (Dependncia Funcional) irredutvel esquerda Dizemos que o lado esquerdo de uma dependncia funcional irredutvel quando o determinante est em sua forma mnima. Temos a forma mnima quando no possvel reduzir a quantidade de atributos determinantes sem perder a dependncia funcional. {cidade, estado} estado pas pas (no est na forma irredutvel esquerda, pois podemos ter somente o estado como determinante) (forma irredutvel esquerda)

Nota: Nem sempre estar na forma irredutvel esquerda significa possuir um determinante com apenas uma coluna. 6. DMV (Dependncia Multivalorada) A DMV uma ampliao da Dependncia Funcional (DF). Na DMV o valor de um atributo determina um conjunto de valores de um outro atributo. representada por X DF: {CPF} {Nome} {Dependente} Y (X multideterina Y ou Y multidependente de X). Temos somente um nome para cada CPF Temos vrios dependentes para cada pessoa

DMV: {CPF}

MODELAGEM EM BANCO DE DADOS Primeira Forma Normal:

21

Uma Tabela est na Primeira Forma Normal quando seus atributos no contm grupos de repetio (tabelas aninhadas). Proj(CodProj,Desc(CodFunc,Nome,Salario,DtInicio)) Proj(CodProj,Desc) ProjFunc(CodProj,CodFunc,Nome,Salrio,DtInicio) Segunda Forma Normal: Ocorre quando a chave primria composta por mais de uma coluna. Neste caso, devemos observar se todos as colunas que no fazem parte da chave dependem de todos os colunas que compem a chave. Se alguma coluna depender somente de parte da chave composta (dependncia funcional parcial), ento esta coluna deve pertencer a outra tabela. ProjFunc(CodProj,CodFunc,Nome,Cargo,Salario,DtInicio) ProjFunc(CodProj,CodFunc,DtInicio) Func(CodFunc,Nome,Cargo,Salario) Terceira Forma Normal: Uma tabela est na Terceira Forma Normal quando cada coluna no chave depende diretamente da chave primria, isto , quando no h dependncias funcionais transitivas ou indiretas. Uma dependncia funcional transitiva acontece quando uma coluna no chave primria depende funcionalmente de outra coluna ou combinao de colunas no chave primria. Func(CodFunc,Nome,Cargo,Salario) Func(CodFunc,Nome,Cargo) Cargo(Cargo,Salario) Forma Normal de Boyce-Codd A 2FN e a 3FN s tratam dos casos de dependncia parcial e transitiva de atributos fora de qualquer chave (primria ou candidata). Aplica-se a FNBC quando: Encontramos duas ou mais chaves candidatas As chaves candidatas so compostas (apresentam mais de um atributo) Todas as chaves candidatas tm um atributo em comum Est na 3FN No est na 3FN Est na 2FN No est na 2FN Est na 1FN No est na 1FN

Uma tabela est na FNBC se e somente se toda DF (dependncia funcional) no trivial e irredutvel esquerda tem uma chave candidata como determinante. No exemplo a seguir vamos assumir que um professor possa estar associado a mais de uma Escola e uma sala. Aluno(NomeAluno,EnderecoAluno,NomeEscola,NumeroSala,NomeProfessor) Chaves candidatas: NomeAluno+EnderecoAluno NomeAluno+NumeroSala NomeAluno+NomeProfessor Encontramos trs chaves candidatas Todas apresentam mais de um atriobuto (concatenados) Todas compartilham um mesmo atributo: NomeAluno

Ao aplicar-se a FNBC, a tabela Aluno deve ser dividida em duas tabelas, uma que contm todos os atributos que descrevem o aluno e outra que contm os atributos que designam um professor em uma determinada escola e nmero de sala. Aluno(NomeAluno,EnderecoAluno,NomeEscola,NumeroSala) Sala(NomeEscola,NumeroSala,NomeProfessor)

MODELAGEM EM BANCO DE DADOS Quarta Forma Normal:

22

Uma tabela est na Quarta Forma Normal caso no possua mais de uma dependncia funcional multivalorada.
CodProj 1 1 1 1 2 2 CodFunc 1 2 1 2 1 1 CodEquip 1 1 2 2 1 2 CodProj 1 1 2 CodFunc 1 2 1 CodProj 1 1 2 2 CodEquip 1 2 1 2

CodProj multidetermina de forma independente CodFunc e CodEquip. Quinta Forma Normal Aplicada em casos de relacionamentos mltiplos (ternrios ... n-rios). Trata do conceito de dependncia de juno. Primeiro decompe-se a tabela atravs de uma operao de projeo e em seguida faz-se a reconstruo da mesma atravs de uma juno. A tabela est na Quinta Forma Normal quando seu contedo no puder ser reconstrudo atravs da juno destas tabelas secundrias.
Material 1 1 2 1 Pedido Requisicao 1 2 1 1 1 2 2 2 Material Pedido 1 1 2 1 2 1 Pedido Requisicao 1 2 1 1 2 2 Material Requisicao 1 1 2 1 2 2

Reconstruindo o contedo da tabela original atravs da juno natural das tabelas secundrias: 1 passo Juno da tabela MaterialPedido com PedidoRequisicao:
Material 1 1 1 2 2 Pedido 1 1 2 1 1 Requisicao 1 2 2 1 2

Esta linha no aparece na tabela gerada no 2 passo

2 passo Juno da tabela PedidoRequisicao com MaterialRequisicao:


Material 1 1 2 1 2 Pedido 1 2 2 1 1 Requisicao 1 2 2 2 2

Esta linha no aparece na tabela gerada no 1 passo

3 passo Interseo das duas tabelas (geradas no 1 e no 2 passo):


Material 1 1 1 2 Pedido 1 1 2 1 Requisicao 1 2 2 2 O contedo desta tabela o mesmo da tabela original.

MODELAGEM EM BANCO DE DADOS NORMALIZAO PASSO A PASSO CASE 1: 1FN, 2FN E 3FN

23

Exemplo: em uma determinada empresa, os produtos recebidos de um fornecedor so registrados em um formulrio prprio que pode ser visualizado a seguir:
NOTA DE FORNECIMENTO DE MERCADORIA
Data CodForn 25 CodItem 1 2 3 24/08/2004 Fornecedor Nome Telefone 011 5555-1111 Item Produto Quantidade Chapa de ao 35 Bobina 20 Tbuas Corridas 50 N da Nota: 001 Endereo Rua Direita, 12 Preo 15,00 15,00 20,00 Total Item 525,00 300,00 1.000,00

ABC Ltda CodProd CA BB TC

NOTA DE FORNECIMENTO DE MERCADORIA


Data CodForn 32 CodItem 1 2 3 25/08/2004 Fornecedor Nome Telefone 011 5555-2222 Item Produto Quantidade Tbuas Corridas 50 Compensado 30 Ripas de Madeira 300 N da Nota: 002 Endereo Rua Esquerda, 13 Preo 20,00 15,00 2,00 Total Item 1.000,00 450,00 600,00

XYZ Ltda CodProd TC CM RM

NOTA DE FORNECIMENTO DE MERCADORIA


Data CodForn 25 CodItem 1 2 26/08/2004 Fornecedor Nome Telefone 011 5555-1111 Item Produto Quantidade Chapa de ao 50 Bobina 20 N da Nota: 003 Endereo Rua Direita, 12 Preo 15,00 15,00 Total Item 750,00 300,00

ABC Ltda CodProd CA BB

Vamos informatizar esse processo criando uma base de dados para armazenar as informaes deste formulrio. A primeira verso pode ser vista a seguir. Essa estrutura ainda no pode ser carregada em um banco de dados relacional, pois possui campos multivalorados (CodItem, CodProd, Produto, Qtde, Preo, Total Item).
NrNota 001 Data 24/08/04 CodForn 25 Nome ABC Ltda Telefone 5555-1111 Endereo Rua Direita, 12 CodItem 1 2 3 1 2 3 1 2 CodProd CA BB TC TC CM RM CA BB Produto Chapa de ao Bobina Tbua corrida Tbua corrida Compensado Ripa de madeira Chapa de ao Bobina Qtde 35 20 50 50 30 300 50 20 Preo 15,00 15,00 20,00 20,00 15,00 2,00 15,00 15,00 TotalItem 525,00 300,00 1.000,00 1.000,00 450,00 600,00 750,00 300,00

002 003

25/08/04 26/08/04

32 25

XYZ Ltda ABC Ltda

5555-2222 5555-1111

Rua Esquerda, 13 Rua Direita, 12

1 Forma Normal (1FN) O primeiro passo para normalizar a estrutura aplicar as regras da primeira forma normal. Uma entidade est na primeira forma normal quando cada atributo contm somente um valor, em somente um lugar. Essa exigncia tambm conhecida como atomicidade de dados. As regras gerais para obteno da 1FN so: No podemos ter atributos multivalorados. Nesse caso, colocamos cada valor do atributo em uma linha diferente e repetimos os dados de todas as outras colunas. No podemos ter atributos repetidos, como Telefone1, Telefone2, etc. A soluo semelhante ao item anterior.

MODELAGEM EM BANCO DE DADOS Todos os registros tm de ser diferentes A entidade no pode ter mais de duas dimenses

24

Cada atributo deve ter somente um tipo de dado. Uma violao comum dessa regra, por exemplo, a criao de um campo para armazenar o CPF e o CNPJ, alternadamente. Esse cenrio deve ser evitado pois cria complicaes para a evoluo da regra de negcio. Observe a tabela gerada aps a aplicao da FN1:

NrNota 001 001 001 002 002 002 003 003

Data 24/08/04 24/08/04 24/08/04 25/08/04 25/08/04 25/08/04 26/08/04 26/08/04

CodForn 25 25 25 32 32 32 25 25

Nome ABC Ltda ABC Ltda ABC Ltda XYZ Ltda XYZ Ltda XYZ Ltda ABC Ltda ABC Ltda

Telefone 5555-1111 5555-1111 5555-1111 5555-2222 5555-2222 5555-2222 5555-1111 5555-1111

Rua Rua Rua Rua Rua Rua Rua Rua

Endereo Direita, 12 Direita, 12 Direita, 12 Esquerda, 13 Esquerda, 13 Esquerda, 13 Direita, 12 Direita, 12

CodItem 1 2 3 1 2 3 1 2

CodProd CA BB TC TC CM RM CA BB

Produto Chapa de ao Bobina Tbua corrida Tbua corrida Compensado Ripa de madeira Chapa de ao Bobina

Qtde 35 20 50 50 30 300 50 20

Preo 15,00 15,00 20,00 20,00 15,00 2,00 15,00 15,00

TotalItem 525,00 300,00 1.000,00 1.000,00 450,00 600,00 750,00 300,00

Para trabalhar com a 2FN precisamos definir uma chave primria. Na tabela recm-criada, a chave escolhida formada pelos campos NrNota e CodItem, pois atravs deles detrminamos todos os outros campos. Por exemplo: Com NrNota, determinamos os campos Data, CodForn, Nome, Telefone e Endereo: NrNota {Data, CodForn, Nome, Telefone, Endereo} {CodProd, Produto, Qtde, Preo, TotalItem} Com NrNota e CodItem determinamos os demais campos: {NrNota, CodItem}

2 Forma Normal (2FN) Essa forma normal visa a diminuio da redundncia e o desagrupamento de informaes. Com a 2FN, uma tabela passa a representar uma quantidade menor de entidades (o ideal que cada entidade seja armazenada em apenas uma tabela). A tabela anterior agrupa as entidades: Nota Fiscal, Item da Nota Fornecedor e Produto. A definio da segunda forma normal : uma tabela est em 2FN se estiver em 1FN e todo atributo no-chave for determinado por todos os campos da chave primria. Em outras palavras, necessrio eliminar as dependncias funcionais parciais. A tabela anterior viola a 2FN pois os campos Data, CodForn, Nome, Telefone e Endereo no so determinados pela chave primria completa (o campo CodItem no necessrio para identificar essas informaes). NrNota {Data, CodForn, Nome, Telefone, Endereo} Como regra geral, a 2FN deve ser aplicada atravs dos passos: 1. Eleger a chave primria da tabela; 2. Verificar as dependncias funcionais parciais; 3. Mover os campos no enquadrados na 2FN para uma nova tabela, fazendo a decomposio sem perdas; 4. Na tabela criada, repetir os passos 1 a 4 at eliminar a DF parcial. O resultado pode ser observado a seguir. Observe que todos os campos, nas duas tabelas so agora determinados por suas chaves primrias completas garantindo a 2FN. Note tambm que o resultado da aplicao desta forma normal so tabelas mais simples, que representam as entidades com mais proximidade.
NrNota 001 002 003 Data 24/08/04 25/08/04 26/08/04 CodForn 25 32 25 tabela 1 Nome Telefone ABC Ltda 5555-1111 XYZ Ltda 5555-2222 ABC Ltda 5555-1111 Endereo Rua Direita, 12 Rua Esquerda, 13 Rua Direita, 12

MODELAGEM EM BANCO DE DADOS

25

NrNota 001 001 001 002 002 002 003 003

CodItem 1 2 3 1 2 3 1 2

CodProd CA BB TC TC CM RM CA BB

tabela 2 Produto Chapa de ao Bobina Tbua corrida Tbua corrida Compensado Ripa de madeira Chapa de ao Bobina

Qtde 35 20 50 50 30 300 50 20

Preo TotalItem 15,00 525,00 15,00 300,00 20,00 1.000,00 20,00 1.000,00 15,00 450,00 2,00 600,00 15,00 750,00 15,00 300,00

3 Forma Normal (3FN) A 3FN d continuidade ao objetivo da 2FN: reduzir as redundncias, desagrupando as tabelas de forma que cada uma represente apenas uma entidade. No exemplo acima, a tabela 1 agrupa informaes sobre as entidades Nota e Fornecedor e a tabela 2 agrupa informaes sobre as entidades ItemNota e Produto. A tcnica utilizada pela 3FN a identificao e eliminao da transitividade. Dizemos que uma tabela est na 3FN se tambm estiver na 2FN e todo atributo no chave for determinado de uma forma no transitiva pela chave primria. Em outra leitura, dizemos que todo atributo no chave deve ser determinado somente pela chave primria. Vamos analisar a tabela criada na 2FN. Observe que os campos Nome, Telefone e Endereo podem ser determinados tanto pela chave primria quanto pelo campo CodForn: NrNota CodForn NrNota {Data, CodForn, Nome, Telefone, Endereo} {Nome, Telefone, Endereo} CodForn {Nome, Telefone, Endereo} CodProd {Produto, Preo}

Assim esses campos possuem dependncia funcional transitiva com a chave primria: Na segunda tabela tambm temos transitividade: {NrNota, CodItem} Outro tipo de violao da 3FN so os campos calculados, que tambm possuem transitividade. Na 3FN todos os campos calculados so removidos da base de dados. Veja a representao: {NrNota, CodItem} Preo, Quantidade {TotalItem} Para adequar as tabelas a 3FN, seguimos um roteiro semelhante ao usado na 2 FN: 1. Mover os campos com transitividade para uma nova tabela; 2. Criar uma chave primria na tabela nova com o(s) campo(s) da tabela original que determinava(m) diretamente os campos movidos. 3. Na nova tabela, repetir os passos 1, 2 e 3, at eliminar totalmente a transitividade. Observe a seguir o formato final das tabelas aps a aplicao da 3FN.
Tabela Fornecedor CodForn Nome Telefone Endereo 25 ABC Ltda 5555-1111 Rua Direita, 12 32 XYZ Ltda 5555-2222 Rua Esquerda, 13 Tabela Produto Produto Chapa de ao Bobina Tbua corrida Compensado Ripa de madeira

CodProd CA BB TC CM RM

Preo 15,00 15,00 20,00 15,00 2,00

MODELAGEM EM BANCO DE DADOS


Tabela Nota NrNota Data CodForn 001 24/08/04 25 002 25/08/04 32 003 26/08/04 25 Tabela Item Nota CodItem CodProd 1 CA 2 BB 3 TC 1 TC 2 CM 3 RM 1 CA 2 BB

26

NrNota 001 001 001 002 002 002 003 003

Qtde 35 20 50 50 30 300 50 20

Nesse ponto temos a organizao ideal para a base de dados, pelos motivos a seguir: 1. A decomposio foi feita sem perdas (atravs de junes podemos recuperar a tabela original); 2. As quatro entidades (Nota, ItemNota, Fornecedor e Produto) possuem tabelas exclusivas, eliminando o agrupamento de informaes e a redundncia; 3. As tabelas foram separadas de tal forma que as anomalias de atualizao no podero ocorrer; 4. As tabelas so fceis de evoluir e manter. Por exemplo, se quisermos incluir dados de um produto que ainda no tenha sido fornecido, podemos inserir sua descrio na tabela Produtos (isso no era possvel at a aplicao da 3FN); 5. Do ponto de vista relacional, os dados esto armazenados e distribudos de forma eficiente. CASE 2: 4FN Um condomnio deseja cadastrar os veculos e os motoristas que os dirigem (para cada apartamento):
Apto 101 101 101 101 101 101 102 102 Nome Joo Joo Maria Maria Carlos Carlos Paulo Rosa Placa GBD-2541 GHJ-5468 GBD-2541 GHJ-5468 GBD-2541 GHJ-5468 GDA-7677 GDA-7677 Ano 2003 2002 1990

Placa GBD-2541 GHJ-5468 GDA-7677 Nome Joo Maria Carlos Paulo Rosa

Carro Siena Parati Fusca

Idade 55 50 22 57 56

A primeira tabela contm anomalias de atualizao. Se o apartamento 101 comprar mais um carro, precisaremos inserir mais trs linhas na primeira tabela. Se o apartamento 102 vender o carro perderemos a informao de quem mora no referido apartamento. Estas anomalias ocorrem porque temos duas DMVs independentes: {Apto} {Apto} {Nome} {Placa}

MODELAGEM EM BANCO DE DADOS Ou como aparece em algumas bibliografias: {Apto} {Nome}|{Placa}

27

Para deixarmos a tabela na 4FN devemos efetuar a decomposio sem perdas e levar cada DMV para uma tabela diferente.
Apto 101 101 101 102 102 Apto 101 101 102 Nome Joo Maria Carlos Paulo Rosa Nome Joo Maria Carlos Paulo Rosa Placa GBD-2541 GHJ-5468 GDA-7677 Idade 55 50 22 57 56 Carro Siena Parati Fusca Ano 2003 2002 1990

Placa GBD-2541 GHJ-5468 GDA-7677

Note que a primeira tabela pode ser unida terceira tabela e que a segunda tabela tambm pode ser unida quarta tabela. Ou seja, a normalizao nem sempre leva ao formato ideal exigindo sempre uma anlise do seu resultado.
Apto 101 101 101 102 102 Apto 101 101 102 Nome Joo Maria Carlos Paulo Rosa Placa GBD-2541 GHJ-5468 GDA-7677 Idade 55 50 22 57 56 Carro Siena Parati Fusca Ano 2003 2002 1990

BIBLIOGRAFIA SQL Magazine Edies 6 e 7

MODELAGEM EM BANCO DE DADOS

28

LGEBRA RELACIONAL
Desenvolvida para descrever operaes sobre uma base de dados relacional Cada operador toma uma ou duas relaes como sua entrada e produz uma nova relao como sua sada Linguagem da consulta terica, usurios no a utilizam diretamente usada internamente em todos os SGBDRs

Caractersticas: Constituda de cinco operadores fundamentais: Seleo

(sigma) (pi)

Projeo

Produto cartesiano X Diferena Unio

Trs operadores derivados: Interseco Juno Diviso

SELEO
Seleciona todas as tuplas que satisfazem condio de seleo de uma relao R.

R
A a1 a2 B b1 b2

(A=a1)(R)
A a1 B b1

PROJEO
Produz uma nova relao com apenas alguns atributos de R, removendo as tuplas duplicadas.

R
A a1 a2 B b1 b2

(B)(R)
B b1 b2

PRODUTO CARTESIANO
Produz uma nova relao com todas as possveis tuplas resultantes da combinao de duas tuplas, uma de cada relao envolvida na operao.

R
A a1 a2 S C c2 c3 D d2 d3 B b1 b2 A a1 a1 a2 a2

(R X S)
B b1 b1 b2 b2 C c2 c3 c2 c3 D d2 d3 d2 d3

MODELAGEM EM BANCO DE DADOS DIFERENA

29

Produz uma nova relao com todas as tuplas em R que no esto em S. R e S devem ter nmero iguais de atributos.

R
A a1 a2 S A a2 a3 B b2 b3 B b1 b2

(R - S)
A a1 B b1

UNIO
Produz uma nova relao com a unio das tuplas em R e em S. R e S devem ter nmero iguais de atributos.

R
A a1 a2 S A a2 a3 B b2 b3 B b1 b2

(R
A a1 a2 a3

S)
B b1 b2 b3

INTERSECO
Produz uma nova relao com a interseco das tuplas em R e em S, ou seja, com as tuplas que aparecem em R e em S. R e S devem ter nmero iguais de atributos.

R
A a1 a2 S A a2 a3 B b2 b3 B b1 b2

(R
A a2

S)
B b2

JUNO
Juno de R com S = (R X S) [expresso de seleo]

R
A a1 a2 S C b2 b1 D d2 d3 B b1 b2 A a1 a2

R X S [B = C]
B b1 b2 C b1 b2 D d3 d2

MODELAGEM EM BANCO DE DADOS JUNO NATURAL

30

Quando a condio de juno for a igualdade do valor de um atributo comum e o atributo comum aparecer s uma vez no resultado.

R
A a1 a2 S C b2 b1 D d2 d3 B b1 b2 A a1 a2

R*S
B b1 b2 D d3 d2

DIVISO
Produz uma nova relao S contendo todas as tuplas de A (dividendo) que aparecem em R (mediador) com todas as tuplas de B (divisor).

A
A a1 a2 a3 a4 a5 A a1 a1 a1 a1 a2 a2 a3 a4 a4

R
B b1 b2 b3 b4 b1 b2 b2 b2 b4

B
B b1

S
A a1 a2 S A a1 a4 S A a1

B B b2 b4 B B b1 b2 b3 b4

SOFTWARE WinRDBI (Windows Relational DataBase Interpreter) http://www.eas.asu.edu/~winrdbi/ Arizona State University Relational Algebra Domain Relational Calculus Tuple Relational Calculus SQL

MODELAGEM EM BANCO DE DADOS

31

CLCULO RELACIONAL
Alternativa lgebra Relacional Logicamente equivalentes Baseia-se em um ramo da lgica matemtica chamado clculo de predicados Referncias bibliogrficas: Clculo relacional como base para uma linguagem de consulta: J.L.Kuhns: Answering Questions by Computer: A Logical Study. (1967) Clculo de predicados adaptados especificamente a banco de dados relacionais: E.F.Codd: A Relational Model of Data for Large Shared Data Banks. (1970) Clculo Relacional: descreve qual o problema (no procedural). lgebra Relacional: Prescreve um procedimento para resolver o problema (procedural). CLCULO RELACIONAL DE TUPLA baseado na especificao de um conjunto de variveis de tuplas. Cada varivel de tupla pode assumir como seu valor qualquer tupla da relao especificada. Forma geral:

Varivel livre: Assume velores de tuplas de uma ou mais relaes. Constitui a resposta da consulta. Predicado: Expresso lgica que, se verdadeira para determinados valores das variveis livres t, v, ..., x, retorna os valores destas variveis na resposta da consulta.

EXEMPLOS SELEO E PROJEO: 1. Buscar os dados dos pacientes que esto com sarampo: {p | p

Pacientes

p.doenca = 'sarampo'}

2. Buscar o nmero e a capacidade dos ambulatrios do terceiro andar {a.numero, a.capacidade | a

Ambulatorios

a.andar = 3}

EXEMPLOS PRODUTOS OU JUNO: 1. Buscar o nome dos mdicos que tm consulta marcada e as datas das suas consultas: {m.nome, c.data | m

Medicos

Consultas

m.crm = c.crm}

2. Buscar os nomes dos mdicos ortopedistas e o nmero e andar dos ambulatrios onde eles atendem: {m.nome, a.numero, a.andar | m a

Ambulatorios

Medicos

m.especialidade = 'ortopedia'

m.numero = a.numero}

MODELAGEM EM BANCO DE DADOS

32

QUANTIFICADORES EXISTENCIAIS:

exists forall
QUANTIFICADOR EXISTENCIAL

v (P)
Existe pelo menos um valor v que torna P verdadeira. QUANTIFICADOR UNIVERSAL

v (P)
Para todos os valores de v, P verdadeira. EXEMPLO: Suponha que a varivel v percorra o conjunto Senado, e suponha que P seja a FBF * "v mulher", ento:

v (P) v (P)

verdadeiro falso

* FBF = Frmula Bem Formada EXEMPLOS QUANTIFICADOR EXISTENCIAL: 1. Buscar o nome dos mdicos que atendem em ambulatrios do segundo andar: {m.medico | m a.numero)}

Medicos

Ambulatorios (a.andar = 2

m.numero =

2. Buscar o nome e o problema dos pacientes de tm consulta marcada com o mdico Joo da Silva: {p.nome, p.problema | p Medicos (c.crm = m.crm

Pacientes c Consultas (p.rg c.nome = 'Joao da Silva'))}

= c.rg

EXEMPLOS QUANTIFICADOR UNIVERSAL: 1. Buscar o nome dos mdicos que tm consulta marcada com todos os pacientes: {m.medico | m = m.crm))}

Medicos

Pacientes ( c

Consultas (p.rg = c.rg

c.crm

2. Buscar o nome dos pacientes de tm consulta marcada com todos os mdicos ortopedistas: {p.nome | p

Pacientes

Consultas (c.crm =

m Medicos (m.especialidade m.crm c.rg = p.rg))}

= 'ortopedia'

MODELAGEM EM BANCO DE DADOS CLCULO RELACIONAL DE DOMNIO No CRD as variveis estendem-se sobre valores nicos de domnios de atributos. Para formar uma relao de grau n para um resultado de consulta, faz-se necessrio criar n variveis de domnio, uma para cada atributo. Forma geral:

33

Variveis de domnio: Abrangem os valores nicos dos domnios dos atributos. Devemos ter n destas variveis de domnio, uma para cada atributo.

Frmula: So constitudas a partir de tomos, variveis e quantificadores. EXEMPLOS: 1. Buscar o nome da agncia, nmero da conta que tm saldo superior a 1200 reais: {a, c, s | a, c, s

Contas

s > 1200}

2. Buscar os nomes de todos os clientes que tenham uma conta em todas as agncias localizadas na Aclimao: { c | x, y, z (x, y, z

Agencias

y = 'Aclimacao'

a, b (x, a, b Contas

c, a

Clientes)}

NOTA: Enquanto a SQL (baseada no Clculo Relacional de Tupla) estava sendo desenvolvida pela IBM Research em San Jose, Califrnia, outra linguagem, chamada QBE (Query By Example (baseada no Clculo Relacional de Domnio) estava sendo desenvolvida quase simutaneamente pela IBM Research em Yorktown Heights, Nova York.

MODELAGEM EM BANCO DE DADOS

34

EXERCCIOS Sistema Bancrio


Em sistema bancrio simplificado temos: Clientes, onde cada cliente tem CPF, RG, nome, endereo, telefone e estado civil. Um cliente pode ter mais de uma conta em agncias distintas. As agncias possuem cdigo da agncia, nome, endereo e nome do gerente. Sobre as contas tem-se nmero da conta e saldo atualizado. Uma conta gerenciada por uma nica agncia. Os clientes podem movimentar suas contas, na movimentao deve constar sobre o tipo (crdito ou dbito), quantia, data e hora.

Sistema Locadora
Uma pequena locadora de vdeos possui ao redor de 2000 fitas de vdeo, cujo emprstimo deve ser controlado. Cada fita possui um nmero. Para cada filme, necessrio saber seu ttulo e sua categoria (comdia, drama, aventura, ... ). Cada filme recebe um identificador prprio. Cada fita controlado que filme ela contm. Para cada filme h pelo menos uma fita, e cada fita contm somente um filme. Alguns poucos filmes necessitam mais de uma fita. Os clientes podem desejar encontrar os filmes estrelados pelo seu ator predileto. Por isso, necessrio manter a informao dos atores que estrelam em cada filme. Nem todo filme possui estrelas. Para cada ator os clientes s vezes desejam saber o nome real, bem como a data de nascimento. A locadora possui muitos clientes cadastrados. Somente clientes cadastrados podem alugar fitas. Para cada cliente necessrio saber seu prenome e seu sobrenome, seu telefone e seu endereo. Alm disso, cada cliente recebe um nmero de associado. Finalmente desejamos saber que fitas cada cliente tem emprestadas. Um cliente pode ter vrias fitas em um instante do tempo. No so mantidos registros histricos de aluguis.

Sistema Cinema
Projetar um modelo de dados que atenda s necessidades de controle dos cinemas e filmes em uma determinada empresa de distribuio de filmes. Regras de negcio que sero a base para o desenvolvimento do DER: A empresa de distribuio possui vrios cinemas em vrias localidades. Cada cinema possui identificao nica, um nome fantasia, um endereo, etc. Cada filme registrado com um ttulo original, tempo de durao, etc. Existir um nico diretor para cada filme. Cada filme ter vrios atores. As sesses possuem horrios variados. Os atores de um filme podem atuar em diversos filmes, assim como o diretor de um filme pode tambm ser ator neste filme, ou ainda mais, ser ator em outro filme. Um ator possui nmero, nome, nacionalidade e idade.

Sistema Escola
Uma escola mantm em seu catlogo vrios cursos livres (Windows, Word, etc.). Professores so contratados para ministrar um ou mais cursos. H vrias turmas para cada curso. Cada turma tem um professor. Um aluno pode matricular-se simultaneamente em vrios cursos e, portanto, pertencer a mais de uma turma. Elabore um DER completo para o caso acima.

MODELAGEM EM BANCO DE DADOS

35

Sistema Museu de Arte


Projete o DER para um museu de arte, conforme as seguintes informaes coletadas: O museu tem uma coleo de objetos de arte. Cada objeto tem um nmero, um artista (se conhecido), um ano (quando foi criado, se conhecido), um ttulo e uma descrio. Os objetos de arte so categorizados de diversas formas de acordo com o seu tipo. H trs tipos principais: pintura, escultura e esttua, mais um chamado outros para comodar objetos que no se enquadram em algum dos trs tipos principais. Uma pintura tem um tipo (leo, guache, etc.), material (papel, tela, madeira, etc.) e estilo (moderno, abstrato, etc.). Uma escultura tem o material do qual foi criado (madeira, pedra, etc.) e estilo. Um objeto de arte na categoria outros tem um tipo (impresso, foto, etc.) e estilo. Um objeto de arte tambm categorizado como coleo permanente que de propriedade do museu (com as informaes de data de aquisio, se est exposto ou guardado e preo) ou emprstimo, do qual tem informaes da coleo (da qual foi emprestado), data de emprstimo e data de devoluo. Cada objeto de arte tem tambm a descrio de seu pas/cultura de origem (iteliano, egpcio, americano, etc.) e poca (renascimento, moderna, antiga, etc.). O museu mantm informaes sobre artistas, quando conhecidos: nome, data de nascimento, data de falecimento (se no-vivo), pas de origem, poca, estilo principal e descrio. Nome assumido como sendo nico. Diferentes exibies ocorrem, cada uma tem um nome, data de incio e data de trmino, e relacionada a todos os objetos de arte que esto mostra durante a exibio. Mantm-se tambm informaes de outras colees com a qual o museu interage, incluindo nome (nico), tipo (museu, pessoal, etc.), descrio, endereo, telefone e pessoa de contato.

Sistema Empresa
Uma empresa organizada em departamentos. Cada departamento possui um nome e um cdigo nico, e o departamento pode ter vrias localidades (cidades). Os projetos existentes na empresa so, obrigatoriamente, controlados por um departamento, e cada projeto possui um nome, um cdigo nico e uma nica localizao (cidade), que pode ser diferente das possveis localidades do departamento que o controla. Alguns departamentos no possuem projetos sobre sua responsabilidade, como por exemplo o departamento pessoal. No caso dos empregados da empresa armazenado nmero de matricula, nome, endereo, salrio, sexo e data de nascimento. Quase todos os empregados tem um outro empregado que o seu supervisor direto, e consequentemente, somente alguns so supervisores, conforme a sua hierarquia na empresa. Em funo da cadeia hierrquica existem empregados que no possuem supervisores. A maioria dos empregados so alocados a um departamento, ou seja, pode at existir um empregado sem departamento, mas todo departamento deve possuir empregados alocados a ele, alm disso, todo departamento tem um chefe que o gerencia, a partir de uma data, pois a empresa implementa um sistema de rodzio na chefia dos departamentos, o rodzio na chefia determina que um empregado s pode ser chefe de somente um departamento. Um empregado pode trabalhar em mais de um projeto, mesmo que no seja do seu departamento, dedicando algumas horas por semana em cada um dos projetos. E, claro, alguns empregados, como os do departamento pessoal, no esto empenhados em nenhum projeto. Por outro lado, todo projeto tem pelo menos um ou mais empregados trabalhando nele. A empresa oferece alguns benefcios sociais aos dependentes dos seus empregados, caso ele possua. Para tanto, mantido para cada dependente do empregado o nome do dependente, o sexo, a data de nascimento e o grau de parentesco.

Sistema Agenda
Deseja-se construir uma agenda de endereos de pessoas e empresas onde trabalham. As pessoas da agenda possuem endereos para fins postais e telefones, que podem ser residenciais, comerciais, fax, celular ou de outro tipo. Anota-se no telefone DDD, prefixo e

MODELAGEM EM BANCO DE DADOS

36

nmero. Telefones do tipo fixo so associados a endereos e telefones do tipo mvel so associados a pessoas. A cada endereo associa-se um cdigo de endereo(nico), rua, nmero, bairro, CEP, todo endereo de pessoa pode ser classificado dentre os tipos residncia prpria, residncia com os pais, residncia com parentes, residncia com amigos, de referncia ou outro, sendo que, um endereo pode pertencer a mais de uma pessoa. Para toda pessoa da agenda armazena-se seu cdigo seqencial na agenda, seu nome. Uma pessoa pode ser amiga de outras pessoas e tm armazenadas a data de incio da amizade entre elas, ou se a pessoa for parente de outras pessoas deve armazenar o tipo do parentesco. Alem disso, pessoas tm armazenadas, o seu sexo e sua data de nascimento e a profisso. Sendo que algumas pessoas podem trabalhar em uma empresa da agenda. Da Empresa, armazena-se a razo social da empresa, a inscrio estadual, o CGC, o ramo de dedicao da empresa e o proprietrio da empresa que uma pessoa armazenada na agenda. As empresas da agenda possuem um nico endereo, e em uma empresa trabalham vrias pessoas da agenda, sendo que a existncia de uma empresa est condicionada a existir uma pessoa na agenda que trabalha nela.

Sistema Imobiliria
Uma imobiliria lida com venda de imveis urbanos. Para qualquer imvel tm-se registradas a sua inscrio, preo de venda, rea total e rea construda. Todo imvel tem localizao num endereo. A cada endereo associa-se um cdigo de endereo, rua, nmero, bairro, CEP e os telefones associados (se existirem). Uma pessoa pode assumir um dos seguintes papis em relao a imobiliria: corretor, proprietrio de imvel ou comprador. Sobre o proprietrio do imvel tm-se CPF, nome, estado civil e, se for casado, o nome do cnjuge. Um proprietrio pode ter vrios imveis a venda na imobiliria. Sobre os compradores tm-se CPF, nome, profisso e uma lista de preferncias de imveis a adquirir. Sobre os corretores da imobiliria tm-se nmero do CRECI, nome e data de admisso. Um corretor negocia com um comprador a venda de um imvel. E, claro, um corretor negocia outros imveis com outros compradores, podendo um mesmo comprador adquirir um outro imvel com o mesmo comprador e com outros compradores. Sobre a venda so necessrias as seguintes informaes: data da venda, valor da venda e valor da comisso.

Sistema campeonato de futebol


Na construo de um banco de dados para administrar times, jogos e campeonatos de futebol, cada time tem um nome (nico) e uma quantidade de jogadores que jogam para o time, a partir de uma data inicial e final do contrato. Nos jogos do time, cada um desses jogadores escalado, e, preciso saber qual foi a sua escalao no jogo (o nmero da camiseta do jogador). Para cada jogador tem-se o nome, o apelido, a posio, o salrio e o nmero de registro na federao. Um time participa de jogos com outros times dentro de campeonatos. Um jogo realizado em estdio numa certa data (dia e hora) e produz um resultado, registrando, tambm, o pblico presente e a renda do jogo. Cada jogo realizado tem um nmero de ordem em funo do campeonato, ou seja, o nmero de ordem serve para identificar um jogo dentro do campeonato que ele pertence. Os estdios tem nome (nico), cidade, capacidade de pblico e o(s) time(s) que mandam jogo naquele estdio, sendo que os times s possuem um estdio onde eles mandam seus jogos. Em um jogo vlido pelo campeonato deve ter sempre um juiz da federao, sobre os juzes que apitam os jogos tem-se os nome, nmero de registro na federao, nome da me, classe, data que comeou como juiz e para quais campeonatos est designado, e claro durante um campeonato temos vrios juizes escalados. Para um campeonato tem-se o nome (nico), quantidade de times e descrio, e para cada campeonato precisa-se ter os times que participaram do campeonato, bem como a classificao de cada time e o time que foi o campeo.