projeto bd clf

14
Projeto Conceitual, Lógico e Físico de Bancos de Dados (Notas de aula para a disciplina MAC 5861 – Modelagem de Banco de Dados / IME – USP) Referências: “Sistemas de Bancos de Dados” - Elmasri e Navathe (4ª edição) “Sistemas de Gerenciamento de Banco de Dados” - Ramakrishnan e Gehrke (3ª edição) “Projeto e Modelagem de Bancos de Dados” - Teorey, Lightstone e Nadeau 1. Introdução O projeto de bancos de dados envolve as seguintes fases principais: 1. Levantamento e análise dos requisitos – nessa etapa, o projetista faz um registro conciso dos requisitos dos usuários como relação aos dados. Também é útil definir requisitos funcionais (operações/transações empregadas no BD) conhecidos das aplicações. Os requisitos são levantados por meio de entrevistas com os produtores e os usuários dos dados, e podem ser descritos por meio de especificações formais. Eles incluem os dados exigidos para processamento, os seus relacionamentos naturais, e as informações relevantes para a escolha da plataforma de software para o BD. 2. Projeto conceitual – corresponde à etapa de criação de um esquema conceitual para o BD, utilizando um modelo de dados conceitual de alto nível. Esquema conceitual = descrição concisa de requisitos de dados dos usuários, contendo descrições detalhadas sobre os tipos de entidades, relacionamentos e restrições, expressos de acordo com os conceitos existentes no modelo de dados conceitual de alto nível empregado. Características desse esquema: fácil compreensão (não envolve detalhes de implementação) pode ser usado na comunicação com usuários não técnicos Exemplos de modelos conceituais bastante usados é o modelo ER (Entidade- Relacionamento) e os diagramas de classe da Unified Modeling Language (UML). 3. Projeto lógico - corresponde ao mapeamento do esquema conceitual para um modelo de dados de implementação. Esse passo é necessário para a implementação real do BD utilizando um SGBD comercial (que geralmente usa um modelo de dados de implementação – como o relacional ou o modelo de dados objeto-relacional). Quando o modelo de dados de implementação escolhido é o relacional, o projeto lógico inclui também uma etapa de normalização das tabelas, em que as tabelas relacionais candidatas são decompostas ou divididas em tabelas menores, por meio de técnicas padronizadas, que consideram as dependências funcionais que são derivadas a partir do diagrama do modelo de dados conceitual e da semântica dos relacionamentos de dados observada na análise dos requisitos. O objetivo dessa etapa é evitar esquemas de Bds em que anomalias de alterações dos dados possam ocorrer. 4. Projeto Físico – etapa na qual são definidas as estruturas de armazenamento interno, índices, caminhos de acesso, organizações de arquivos para os arquivos do BD, e outros ajustes finos. A finalidade dessa etapa é otimizar o desempenho das operações de consulta e manipulação dos dados da melhor forma possível. Em aplicações como os Data warehouses, o projeto físico pode até mesmo modificar o esquema, para desnormalizá-lo. A desnormalização pode melhorar o desempenho do BD para os operações de consulta, o que é um requisito importante em aplicações OLAP (Online Analytical Processing). 1

Upload: virtualfox

Post on 11-Sep-2015

241 views

Category:

Documents


1 download

DESCRIPTION

Banco de Dados CLF

TRANSCRIPT

  • Projeto Conceitual, Lgico e Fsico de Bancos de Dados(Notas de aula para a disciplina MAC 5861 Modelagem de Banco de Dados / IME USP)

    Referncias: Sistemas de Bancos de Dados - Elmasri e Navathe (4 edio) Sistemas de Gerenciamento de Banco de Dados - Ramakrishnan e Gehrke (3 edio) Projeto e Modelagem de Bancos de Dados - Teorey, Lightstone e Nadeau

    1. IntroduoO projeto de bancos de dados envolve as seguintes fases principais:

    1. Levantamento e anlise dos requisitos nessa etapa, o projetista faz um registro conciso dos requisitos dos usurios como relao aos dados. Tambm til definir requisitos funcionais (operaes/transaes empregadas no BD) conhecidos das aplicaes.Os requisitos so levantados por meio de entrevistas com os produtores e os usurios dos dados, e podem ser descritos por meio de especificaes formais. Eles incluem os dados exigidos para processamento, os seus relacionamentos naturais, e as informaes relevantes para a escolha da plataforma de software para o BD.

    2. Projeto conceitual corresponde etapa de criao de um esquema conceitual para o BD, utilizando um modelo de dados conceitual de alto nvel. Esquema conceitual = descrio concisa de requisitos de dados dos usurios, contendo

    descries detalhadas sobre os tipos de entidades, relacionamentos e restries, expressos de acordo com os conceitos existentes no modelo de dados conceitual de alto nvel empregado.

    Caractersticas desse esquema: fcil compreenso (no envolve detalhes de implementao) pode ser usado na comunicao com usurios no tcnicosExemplos de modelos conceituais bastante usados o modelo ER (Entidade-

    Relacionamento) e os diagramas de classe da Unified Modeling Language (UML).

    3. Projeto lgico - corresponde ao mapeamento do esquema conceitual para um modelo de dados de implementao. Esse passo necessrio para a implementao real do BD utilizando um SGBD comercial (que geralmente usa um modelo de dados de implementao como o relacional ou o modelo de dados objeto-relacional). Quando o modelo de dados de implementao escolhido o relacional, o projeto lgico inclui tambm uma etapa de normalizao das tabelas, em que as tabelas relacionais candidatas so decompostas ou divididas em tabelas menores, por meio de tcnicas padronizadas, que consideram as dependncias funcionais que so derivadas a partir do diagrama do modelo de dados conceitual e da semntica dos relacionamentos de dados observada na anlise dos requisitos. O objetivo dessa etapa evitar esquemas de Bds em que anomalias de alteraes dos dados possam ocorrer.

    4. Projeto Fsico etapa na qual so definidas as estruturas de armazenamento interno, ndices, caminhos de acesso, organizaes de arquivos para os arquivos do BD, e outros ajustes finos. A finalidade dessa etapa otimizar o desempenho das operaes de consulta e manipulao dos dados da melhor forma possvel. Em aplicaes como os Data warehouses, o projeto fsico pode at mesmo modificar o esquema, para desnormaliz-lo. A desnormalizao pode melhorar o desempenho do BD para os operaes de consulta, o que um requisito importante em aplicaes OLAP (Online Analytical Processing).

    1

  • Figura 1 - Principais fases do projeto de um banco de dados.

    2

    Minimundo

    Levantamento eAnlise de Requisitos

    Projeto ConceitualAnlise Funcional

    Projeto Lgico (MapeamentoDe Modelo de Dados)

    Esquema Conceitual(Em um modelo de dados de alto nvel)

    Esquema Lgico (Conceitual)(Em um modelo de dados de um SGBD especfico)

    Projeto Fsico

    Projeto do Programada Aplicao

    Implementaoda Transao

    Especificao deTransao de Alto Nvel

    Requisitos FuncionaisRequisitos de Dados

    Independente do SGBD

    SGBD especfico

    Programas de Aplicao

    Esquema Interno

  • 2 Modelo Entidade-Relacionamento (ER)

    A modelagem de dados conceitual a etapa mais importante do projeto lgico de banco de dados. Seu objetivo capturar os requisitos de dados do mundo real de forma simples e significativa, em uma notao que seja inteligvel no s para o projetista, mas tambm para o usurio final.Nesse contexto, o modelo Entidade-Relacionamento (ER), apresentado por Peter Chen em 1976, uma ferramenta bastante til. Devido sua simplicidade e legibilidade, ele ainda hoje uns dos modelos conceituais mais usados para a modelagem de bancos de dados.

    O modelo ER descreve os dados como entidades, relacionamentos e atributos. As sees a seguir apresentam as principais caractersticas desses elementos.

    2.1 Entidades e Atributos

    Entidade = algo do mundo real, com uma existncia independente. Pode ter existncia fsica (Ex: uma pessoa, uma casa, um empregado, etc.) ou conceitual (Ex: uma empresa, um curso universitrio).

    Atributos = propriedades particulares que descrevem uma entidade (Ex: nome do empregado, endereo, funo, etc.).

    Um dada entidade ter um valor para cada um de seus atributos. Esses valores constituem a maior parte dos dados armazenados em um BD.

    Tipos de atributos do modelo ER:

    simples (atmicos) versus compostos: atributos compostos podem ser divididos em partes menores (ex: o atributo endereo pode ser dividido em Rua, Cidade, Estado e CEP). Os atributos que no so divisveis so chamados de atributos simples (ou atmicos).O valor de um atributo composto dado pela concatenao dos valores dos atributos simples que o compem.

    Os atributos compostos so somente teis para modelar as situaes nas quais o usurio algumas vezes se refere ao atributo como um grupo, mas em outras se refere a um de seus componentes. (seno, o endereo, por exemplo, poderia ser definido como um atributo simples).

    Monovalorados versus multivalorados: Monovalorado = atributo que tem um nico valor para uma dada entidade (ex: o atributo idade para uma pessoa)

    Multivalorado = atributo para o qual diferentes entidades podem ter diferentes quantidades de valores. Ex: atributo titulao para uma pessoa; algumas pessoas no possuem ttulo algum, outras possuem 1, ou 2, e assim por diante.

    Um atributo multivalorado deve ter um limite inferior e superior pra restringir o nmero de valores permitidos a cada entidade individual.

    Armazenados versus Derivados: um atributo derivado aquele que derivado a partir de outro(s) atributo(s) ou entidade(s) relacionado(s). Exemplo: o atributo idade derivado a partir da data de nascimento e da data corrente; o atributo nmero de empregados de um departamento pode ser derivado da contagem do nmero de empregados relacionados (que

    3

  • trabalham) nesse departamento. Um atributo que no derivado armazenado.

    Valores Nulls (Nulos) : valor especial, usado para os casos em que uma entidade no possuiu um valor aplicvel para um atributo. O null serve tanto para indicar que o atributo no se aplica a uma dada entidade, como tambm para indicar que o valor para um atributo de uma dada entidade desconhecido. Obs: desconhecido pode ser tanto para o caso de sabermos que existe um valor pro atributo, mas ele est faltando (ex: altura todo mundo tem!), quanto para o caso de no sabermos se o valor existe ou no (ex: FoneResidencial uma pessoa pode ou no ter).

    Atributos Complexos: so atributos compostos e multivalorados, que podem ser aninhados de modo arbitrrio. Exemplo: se uma pessoa pode ter mais de uma residncia, e cada uma delas pode ter mltiplos telefones, um atributo EnderecoFone pode ser especificado como a seguir:

    {EnderecoFone({Fone(CodigoArea,NumeroFone)},

    Endereco(EnderecoRua(Numero,Rua,Apartamento), Cidade, Estado, CEP))}

    Tipo entidade define uma coleo de entidades que possuem os mesmos atributos. representado no diagrama ER por uma caixa retangular, incluindo o seu nome. Os nomes dos atributos so colocados em elipses e conectados ao seu tipo entidade por

    linhas retas. Atributos compostos so conectados a seus atributos componentes por linhas retas. Atributos multivalorados so identificados por linhas duplas. Atributo-chave do tipo entidade: um atributo cujos valores so distintos para cada uma

    das entidades do conjunto de entidades do tipo. Os valores da atributo-chave so usados para identificar cada entidade univocamente. Na notao diagramtica ER, um atributo-chave tem o seu nome sublinhado dentro da elipse.

    Chave composta: uma chave formada por diversos atributos, cuja a combinao dos valores distinta para cada entidade. Ela pode ser representada no diagrama ER como um atributo composto que feito atributo-chave. Uma chave composta deve ser mnima, no sentido de que todos os atributos componentes devem ser considerados na composio para garantir a unicidade.

    Alguns tipos entidade tm mais de um atributo chave (ex: rg e cpf). Outros, podem nem ter uma chave; so os chamados tipo entidade fraca.

    Conjuntos de Valores (Domnios) de Atributos: cada atributo simples de um tipo entidade possui um domnio de valores, que determina o

    cjto de valores vlidos que ele pode assumir em cada entidade. os domnios de valores no so mostrados no diagrama ER

    2.2 Relacionamentos, Papis e Restries EstruturaisUm tipo relacionamento R entre n tipos entidades E1, E2, , En define um conjunto de associaes (= relacionamentos) entre essas entidades. Matematicamente, um conjunto de relacionamentos R um conjunto de instncias de relacionamento ri, em que cada ri associa-se a n entidades individuais (e1,e2, , em), e cada entidade ej em ri um membro do tipo entidade Ej, 1

  • cada entidade ej dita participante da instncia de relacionamento ri.Informalmente, cada ri em R representa uma associao de entidades existente no minimundo, que inclui exatamente uma entidade de cada tipo entidade participante.Exemplo: relacionamento TRABALHA_PARA entre os tipo entidade EMPREGADO e DEPARTAMENTO, que associa cada empregado ao departamento para o qual ele trabalha.

    Grau de um tipo relacionamento o nmero de entidades que participam desse relacionamento. Em particular, grau 2 = binrio (mais frequentes), grau 3 = ternrio.

    Nome do papel indica o papel que cada tipo entidade desempenha em um tipo relacionamento. Por exemplo, no tipo relacionamento TRABALHA_PARA, o EMPREGADO desempenha o papel de trabalhador, enquanto o DEPARTAMENTO desempenha o papel de empregador.Os nomes dos papis no so estritamente necessrios quando todos os tipos entidades participantes do relacionamento so diferentes. Entretanto, um mesmo tipo entidade pode participar mais de uma vez em um mesmo tipo relacionamento e, neste caso, os nomes dos papis so fundamentais para definir o sentido de cada participao. Esses tipo relacionamentos so chamados relacionamentos recursivos.Exemplo: tipo relacionamento SUPERVISAO, em que o tipo entidade EMPREGADO participa duas vezes: uma no papel de supervisor, outra no papel de supervisionado.

    Restries em Tipos RelacionamentoExistem restries (determinadas por situaes do mini-mundo) que limitam a possibilidade de combinaes de entidades que podem participar de um relacionamento. Exemplo: um empregado pode apenas trabalhar para um nico departamento.No modelo ER, podemos definir dois tipos principais de restries:

    1. Razo de cardinalidade em um relacionamento binrio, ela especifica o nmero mximo de instncias do relacionamento em que uma entidade pode participar. Ex: no relacionamento TRABALHA_PARA, DEPARTAMENTO:EMPREGADO tem razo 1:N (ou seja, um departamento pode empregar qualquer nmero (= 0 ou mais) de empregados, mas um empregado pode trabalhar para apenas 1 departamento. As razes de cardinalidade possveis so 1:1, 1:N, N:1 e M:N.

    2. Restrio de participao determina o nmero mnimo de instncias de relacionamento em que uma entidade deve participar. Por essa razo, tambm chamada de restrio de cardinalidade mnima. Ela pode ser:

    total exemplo: todo empregado deve trabalhar para um departamento ou seja, um empregado s pode existir se estiver associado a um departamento. Assim, EMPREGADO tem participao total no relacionamento. Esse tipo de participao tambm conhecido como dependncia de existncia.

    parcial exemplo: nem todo empregado gerencia um departamento. Assim, EMPREGADO tem uma participao parcial no tipo relacionamento GERENCIA.

    Atributos de Tipos RelacionamentoTipos relacionamento podem ter atributos, de forma similar aos tipos entidade. importante observar que atributos de tipos relacionamento 1:1 ou 1:N podem ser migrados para um dos tipos entidade participantes. Exemplos

    o atributo DataInicio para o tipo relacionamento GERENCIA pode ser um atributo tanto de EMPREGADO quanto de DEPARTAMENTO, porque esse um relacionamento 1:1.

    o atributo DataInicio do tipo relacionamento 1:N TRABALHA_PARA pode apenas ser

    5

  • migrado para o tipo entidade EMPREGADO (ou seja, o lado N do relacionamento), porque um empregado trabalha apenas para um 1 departamento.

    Em relacionamentos M:N, os atributos so determinados pela combinao das entidades participantes de uma instncia do relacionamento, e no por uma entidade nica. Por essa razo, eles s podem ser especificados como atributos de relacionamento.

    importante observar que, em determinadas situaes, possvel representar um relacionamento sem atributos em termos de atributos nas entidades. Isso acontece em relacionamentos binrios do tipo 1:1 ou 1:N. No primeiro caso, aconselha-se a representar o relacionamento como um atributo a mais na entidade com participao total no relacionamento, enquanto no segundo caso, aconselha-se incluir um atributo a mais na entidade com cardinalidade 1 no relacionamento.

    Tipo Entidade Fraca

    Um tipo entidade fraca um tipo entidade que no possui um atributo-chave. Um tipo entidade regular que possui um atributo-chave chamado tipo entidade forte.

    Entidades de tipos entidade fraca so identificadas por estarem relacionadas (associadas) a entidades de um outro tipo entidade (chamado de tipo entidade identificador ou tipo entidade proprietria). Esse tipo de relacionamento chamado de relacionamento identificador do tipo entidade fraca.

    Um tipo entidade fraca sempre tem uma restrio de participao total em relao ao seu relacionamento identificador.

    Um tipo entidade fraca normalmente tem uma chave parcial, que um conjunto de atributos que identifica univocamente as entidades fracas que esto relacionadas a uma mesma entidade proprietria. No pior caso, o atributo composto por todos os atributos do tipo entidade fraca ser a chave parcial.

    Quando um tipo entidade fraca no participante em tipos relacionamento, ento ele pode ser definido como um atributo complexo (composto, multivalorado) em seu tipo entidade proprietria.

    Resumo sobre o modelo ER: O modelo Entidade-Relacionamento constitudo basicamente por 3 tipos de elementos:

    entidades, relacionamentos e atributos. Tipo entidades so caracterizados por:

    um nome atributos, que, por sua vez, so caracterizados por:

    simples X compostos mono X multivalorados armazenado X derivado atributo-chave domnio de valores

    tipo entidade forte X tipo entidade fraca (ie, sem atributo-chave) Tipo relacionamentos so caracterizados por:

    grau do relacionamento (binrio, ternrio, etc.) nomes de papis restries (razo de cardinalidade e participao) atributos relacionamento identificador associado a tipos entidade fraca e tipos entidade

    proprietria

    6

  • Figura 2 - Resumo da Notao para Diagramas ER (prxima proposta original, de Chen, 1976).

    7

  • Figura 3 Um diagrama do esquema ER para o banco de dados EMPRESA.

    8

  • 3. O Modelo Relacional de Dados

    O modelo relacional um modelo de dados de implementao, introduzido por Ted Codd, da IBM Research, em 1970. Esse modelo atraiu grande ateno devido sua simplicidade e base matemtica. O modelo usa como bloco de construo bsico o conceito de relao matemtica e como base terica a teoria dos conjuntos e a lgica de predicados de primeira ordem. O modelo relacional representa o BD como uma coleo de relaes, em que cada relao pode ser vista informalmente como uma tabela de valores. Cada linha de uma tabela representa uma coleo de valores de dados relacionados. O nome da tabela e o nome das colunas so usados para ajudar na interpretao do significado dos valores de cada linha. Todos os valores em uma mesma coluna so de um mesmo tipo de dados.Na terminologia do modelo relacional, uma linha chamada de tupla, e os nomes das colunas so chamados de atributos e a tabela uma relao. O tipo de dado que descreve os valores que podem aparecer em cada coluna chamado de domnio.

    Um esquema de relao R, denotado por R(A1 , A2 , ..., An ), um conjunto de atributos R={A1, A2,..., An} . Cada atributo Ai indica o nome do papel de algum domnio D no esquema de relao R. D chamado domnio de Ai e denotado por dom(Ai). Uma relao esquema utilizada para descrever uma relao e R o nome dessa relao. O grau de uma relao o nmero de atributos da relao. Considere o exemplo de um esquema de relao de grau 7, que descreve estudantes universitrios:

    ESTUDANTE(Nome, NSS, Telefone, Endereco, Anos, MPA)

    Usando o tipo de dado de cada atributo, a definio algumas vezes descrita por:

    ESTUDANTE(Nome: string, NSS: string, Telefone: string, Endereco: string, Anos: integer, MPA: real)

    Nesta relao esquema, ESTUDANTE o nome da relao esquema, que tem 7 atributos.Pode-se especificar alguns domnios para atributos da relao ESTUDANTE:

    dom(Nome)=Nomesdom(NSS)=Nmero do seguro socialdom(Telefone)=Nmero de telefone nacionaldom(TelComercial)=Nmero de telefone nacionaldom(MPA)=Mdia dos Pontos Acumulados

    Uma relao r (ou instncia de relao) do esquema de relao R(A1 , A2 , ..., An ), tambm denotada por r(R), um conjunto de tuplas r={ t1 , t2 , ..., tm }. Cada tupla t uma lista ordenada de n valores t=, onde cada valor vi , 1 i n, um elemento do dom(Ai ) ou um valor especial null . So utilizados, com frequncia, os termos inteno da relao para o esquema R e extenso da relao para a instncia r(R).A figura a seguir mostra um exemplo de uma relao ESTUDANTE , que corresponde ao esquema estudante definido anteriormente:

    9

  • Figura 4. Exemplo de relao em um um banco de dados relacional.(Obs.: corrigir nomes dos atributos na figura do esquema.)

    Esquemas de um BD Relacional

    Um esquema de um banco de dados relacional S um conjunto de esquemas de relao S = {R1, R2, , R3} e um conjunto de restries de integridade RI. Um estado de um BD relacional DB com esquema S um conjunto de relaes DB = {r1, r2, , rm} tal que ri uma instncias de Ri e que satisfaz as restries de integridade especificadas em RI.O termo banco de dados relacional refere-se, implicitamente, ao esquema e suas instncias.

    Restries do Modelo Relacional

    O estado de um BD como um todo corresponde aos estados de todas as suas relaes em um determinado instante. Geralmente, h muitas restries para os valores reais em um estado do BD, que so derivadas de regras do minimundo que o BD representa. Algumas restries so inerentes ao modelo relacional. Exemplos delas so:

    j que uma relao definida como um conjunto de tuplas e, matematicamente, um conjunto no possui elementos repetidos, ento uma relao no possui tuplas repetidas;

    as tuplas em uma relao no possuem qualquer ordem em particular, j que matematicamente, os elementos de um conjunto no possuem ordem entre eles. Entretanto, em um arquivo, os registros so fisicamente armazenados na memria, ento sempre h uma ordem entre os registros. Analogamente, quando exibimos uma relao em uma tabela, as linhas so exibidas em uma certa ordem.

    Outra restries podem ser expressas diretamente sobre o esquema do modelo de dado, como as seguintes:

    restries de domnio Essas restries especificam que, dentro de cada tupla, o valor de cada atributo A deve ser um valor atmico do domnio dom(A);

    restries de chaveComo dito anteriormente, uma relao no possui duas tuplas iguais, o que equivale a dizer

    que no existe em uma relao duas tuplas que possuam a mesma combinao de valores para todos os seus atributos. Mas normalmente, existem subconjuntos de atributos de um esquema de relao R com a propriedade de que duas tuplas em qualquer estado de relao r de R tenham a mesma combinao de valores para esses atributos. Qualquer um desses subconjuntos chamado de superchave de R. Uma superchave especifica uma restrio de unicidade, na qual duas tuplas

    10

  • distintas em qualquer estado r de R no podem ter o mesmo valor para os atributos da superchave. Uma chave K de um esquema R uma superchave de R com a propriedade adicional de ser mnima, ou seja, no podemos remover dela nenhum atributo e ainda manter a restrio de unicidade. Um esquema de relao pode possuir mais de uma chave; nesses casos, cada uma das chaves chamada de chave candidata. Geralmente, indica-se uma das chaves candidatas como chave primria da relao; essa a chave usada para identificar as tuplas da relao.

    As restries de chave definem as chaves primrias de cada esquema de relao.Num esquema de relao, os atributos da chave primria devem aparecer sublinhados.

    restries em nullEssa restrio, definida sobre atributos, especifica se valores null so ou no permitidos.

    restries de integridade de entidadeEstabelecem que nenhum valor de chave primria pode ser null. Ter valores null para uma chave primria implica em no podermos identificar alguma tupla.

    restries de integridade referencialDiferentemente de uma restrio de chave e de uma restrio de integridade de entidade, que so definidas sobre cada relao individualmente, uma restrio de integridade referencial definida entre duas relaes. Ela usada para manter a consistncia entre tuplas nas duas relaes. Informalmente, uma a restrio de integridade referencial declara que que uma tupla em uma relao, que faz referncia a uma outra relao, deve se referir a uma tupla existente nessa relao.Essa referncia feita por meio de chaves estrangeiras. Uma chave estrangeira FK de um esquema de relao R1 para um esquema de relao R2 um subconjunto de atributos de R1 que possuem os mesmo domnios dos atributos da chave primria PK de R2. Alm disso, toda tupla t1 no estado corrente r1 de R1 ou possui um valor null para FK ou t1[FK] = t2[PK], onde t2 uma tupla do estado corrente r2 de R2.

    A figura a seguir mostra um esquema no modelo relacional com restries de integridade.

    Figura 5. Exemplo de esquema no modelo relacional com restries de integridade.

    11

  • Existem tambm outras restries mais gerais, chamadas s vezes de restries de integridade semnticas, que podem ser especificadas e verificadas numa base de dados relacional. Exemplo: o salrio de um empregado no pode exceder o do seu supervisor. Esse tipo de restrio pode ser implementado nas aplicaes que acessam o banco, ou por meio de outros mecanismos oferecidos pelo prprio SGBD, como os gatilhos.

    Operaes de Atualizao

    As operaes do modelo relacional podem ser divididas em duas categorias: recuperaes e atualizaes.

    As recuperaes podem ser especificadas por meio de operaes da lgebra Relacional que prov fundamentos formais para as operaes de consulta do modelo relacional. Alm disso, ela usada como uma base para implementar e otimizar consultas nos SGBDRs. Alguns dos seus conceitos esto implementados na linguagem de consulta padro para os SGBDRs , que a SQL (Structured Query Language) .

    Existem trs tipos bsicos de operao de atualizao sobre relaes: insero de tuplas, remoo de tuplas e modificao de valores de atributos de tuplas.Quando essa operaes so aplicadas, as restries de integridade especificadas no esquema do banco de dados relacional no devem ser violadas.

    A maioria dos BDs relacionais usa uma linguagem de manipulao dos dados de alto nvel - a SQL - e suporta de forma limitada as vises (views) de usurios.

    12

  • 4. Mapeamento do Modelo ER para o Modelo de Dados Relacional

    O passo seguinte modelagem conceitual dos dados o mapeamento do diagrama da base de dados global no modelo de dados de alto-nvel (como o MER), para um modelo de dados de implementao. Existem diferentes tipos de modelos de dados de implementao (hierrquico, rede, relacional, oo, etc.). Para cada um desses modelos, pode-se definir estratgias de traduo a partir de um DER especfico.

    A Tabela 1 sumariza as regras de mapeamento dos elementos de um modelo ER para elementos do modelo de dados relacional.

    Tabela 1 Correspondncia entre os Modelos ER e Relacional(Legenda: CE = Chave Estrangeira, CP = Chave Primria)

    Modelo Modelo RelacionalTipo entidade forte E - Criar uma relao entidade R.

    - Incluir em R todos os atributos simples e as componentes simples dos atributos compostos de E.- Entre as chaves de E, escolher uma para ser a CP em R.

    Tipo entidade fraca F (de uma entidade forte E)

    - Criar uma relao entidade fraca R.- Incluir em R todos os atributos simples e as componentes simples dos atributos compostos de F.- Inserir como CE de R a CP da relao correspondente sua entidade forte E.- Definir como CP de R a combinao da CP da relao de E e da chave parcial de F (quando houver).

    Tipo relacionamento binrio 1:1 R - Identificar as relaes S e T correspondentes aos tipos entidade participantes do relacionamento R.- Escolha uma das relaes, por exemplo S, para incluir como CE de S a chave primria de T. ( melhor escolher o tipo entidade com participao total no relacionamento.- Inclua em S todos os atributos simples e as componentes simples dos atributos compostos de R.- Obs.: quando a participao de S e T em R total, ento uma outra opo conveniente combinar S e T em uma nica relao.

    Tipo relacionamento binrio 1:N R no fraco

    - Identificar o tipo entidade S que participa do lado N de R.- Inclua como CE de S a CP da relao T que representa o tipo entidade do lado 1 do relacionamento.

    Tipo relacionamento binrio N:M R - Criar uma nova relao S para representar S.- Incluir como CE em S as CPs das relaes que representam os tipos entidade participantes de R.- Definir como CP de S a combinao das CEs criadas no passo anterior.

    13

  • - Obs.: Sempre possvel mapear tipos relacionamento 1:1 ou 1:N da mesma maneira que os M:N, mas isso s vivel quando h poucas instncias do relacionamento (para se evitar os nulls) ou quando a cardinalidade ser modificada futuramente.

    Tipo relacionamento n-rio R (com n>2)

    - Criar uma relao S para representar R.- Incluir como CE em S as CPs das relaes que representam os tipos entidade participantes em R.- Incluir em S os atributos simples e os componentes simples dos atributos compostos de R.- Geralmente, a CP de S definida como a combinao das CEs includas no passo anterior.

    Atributo multivalorado A - Criar uma nova relao R que inclua um atributo correspondente a A e a CP K da relao que representa o tipo entidade ou o tipo relacionamento que tem A como atributo. - Definir como CP de R a combinao de K e A.- Se A composto, inclua em R os atributos simples componentes.

    Discusso: Um tipo relacionamento do modelo ER no representado explicitamento no modelo

    relacional; tipos relacionamento so representados por meio de chaves estrangeiras. Os pares de tuplas relacionadas de relaes distintas podem ser combinados por meio de operaes de EQUIJOIN (ou NATURAL JOIN).

    Para cada atributo multivalorado do modelo, uma relao separada deve ser criada. Isso ocorre porque o modelo relacional bsico no permite valores mltiplos para um atributo em uma nica tupla.

    Quando a converso de um modelo ER para um modelo relacional feita corretamente, seguindo as regras de mapeamento de forma correta, o modelo relacional resultante j est no mnimo na 3 Forma Normal.

    A Figura 5 mostra o esquema relacional que foi derivado do DER da Figura 4 seguindo o procedimento de mapeamento definido na Tabela 1.

    14

    Projeto Conceitual, Lgico e Fsico de Bancos de Dados1. Introduo2 Modelo Entidade-Relacionamento (ER)2.1 Entidades e Atributos

    2.2 Relacionamentos, Papis e Restries EstruturaisResumo sobre o modelo ER:

    3. O Modelo Relacional de Dados4. Mapeamento do Modelo ER para o Modelo de Dados Relacional