Banco de Dados I 2007 MóduloII: ModelagemEntidade ...clodis/BDI/BDI_2007_Modulo2_5.pdf · Uma...

24
Clodis Boscarioli Módulo II: Modelagem Entidade- Relacionamento versus Relacional (Aula 5) Banco de Dados I 2007

Transcript of Banco de Dados I 2007 MóduloII: ModelagemEntidade ...clodis/BDI/BDI_2007_Modulo2_5.pdf · Uma...

Clodis Boscarioli

Módulo II: Modelagem Entidade-Relacionamento versus Relacional

(Aula 5)

Banco de Dados I

2007

Agenda:

� Normalização:� Conceitos Gerais;� Definições;� 1NF;� 2NF;� 3NF;� BCNF.

� Exercício de fixação.

Introdução

� Entendendo as dependências funcionais somos capazes de especificar aspectos semânticos dos esquemas de relação.

� Para tal, presumimos que:

� um conjunto de dependências funcionais seja específico para cada relação; e,

� Que cada relação tenha uma chave primária designada.

� Essas informações, combinadas a testes para formas normais, direcionam o processo de normalização dos projetos de esquemas relacionais.

Conceitos

� A normalização de dados pode ser vista como o processo de análise de determinados esquemas de relações com base em suas dependências funcionais e chaves primárias para alcançar as propriedades desejáveis:

� Minimização de redundâncias;

� Minimização de modificações.

� O esquemas de relações insatisfatórias, que não alcançam certas condições – os testes de forma normal -, são decompostas em esquemas de relações menores que passam nos testes e, conseqüentemente, possuem as propriedades desejadas.

Conceitos

� A forma normal de uma relação refere-se à condição da mais altaforma normal alcançada e, conseqüentemente, indica o grau no qual foi normalizada.

� A normalização sempre deve estar acompanhada da garantia de duas propriedades:

� Junção sem perdas: Garante que o problema de geração de tuplas ilegítimas não ocorra (propriedade crítica que deve sempre ser garantida);

� Preservação de dependências: Garante que cada dependência funcional será representada em alguma relação individual resultante da decomposição.

Definições

� Superchave:

� Uma superchave de um esquema de relação R = {A1, A2, ..., An} é um conjunto de atributos S ⊆ R que contenha a propriedade na qual não haverá duas tuplas t1 e t2, em qualquer estado da relação r de R, cujat1[S] = t2[S].

� Uma chave K é uma superchave com a propriedade adicional de que a remoção de qualquer atributo de J fará com que K não seja mais uma superchave.

� Atributo primário:

� Um atributo de um esquema de relação R é chamado atributo primáriode R se for membro de alguma chave candidata de R. O atributo é dito não primário se não for um atributo primário – isto é, se não for membrode alguma chave candidata.

Primeira Forma Normal (1NF)

� Impedimento para a criação de atributos multivalorados, atributos compostos e combinações entre eles.

� Estabelece-se que o domínio de um atributo só deva incluir os valores atômicos e que o valor de qualquer atributo em uma tupla deve ter um único valor no domínio daquele atributo.

� A 1NF impede as “relações dentro de relações” ou “relações como valores de atributos dentro de tuplas”.

Primeira Forma Normal

� Considerando o departamento que possui um atributo multivalorado: localizações. Há três técnicas básicas para alcançar a primeira forma normal:

1. Remover o atributo DLocalizações que viola a 1NF e colocá-lo em uma relação separada, junto com a chave primária que identifica a entidade “departamento”.

2. Ampliar as chaves de forma a separar as tuplas da relação original DEPARTAMENTO, criando uma para cada localização de “departamento”.

3. Se um número máximo de valores puder ser estabelecido para o atributos, por exemplo, se é sabido que há no máximo três locais para cada departamento, substituir o atributo Dlocalizações por três atributos atômicos.

Segunda Forma Normal (2NF)

� Baseada no conceito de dependência funcional total.

� Uma dependência funcional X � Y será uma dependência funcional total se a remoção de qualquer atributo A de X implicar que a dependência não mais será assegurada, isto é, para qualquer atributo A ∈ X, (X – {A}) não determina funcionalmente Y.

� Uma dependência funcional X � Y é uma dependência parcial se um atributo A ∈ X puder ser removido de X e a dependência mesmo assim continuar existindo, ou seja, para algum A ∈ X, (X – {A}) � Y.

Segunda Forma Normal

� Exemplo de dependências funcionais totais e parciais:

� Considere o esquema:SSN, PNumero, Horas, Enome, Pnome, Plocalização

� {SSN, PNumero} � Horas: é uma dependência funcional total (não são asseguradas nem SSN � Horas nem PNumero�Horas).

� {SSN, PNumero} � Enome: é uma dependência funcional parcial porque SSN � Enome é assegurada.

Segunda Forma Normal

� Um esquema de relação R está na 2NF se todo atributo não primário A em R tem dependência funcional total da chave primáriade R.

� O teste para a 2NF envolve verificar se os atributos do lado esquerdo das dependência funcionais fazem parte da chave primária. Se a chave primária contiver um único atributo, a necessidade do teste não se aplica.

� A relação do slide anterior está na 1NF mas não está na 2NF. O atributo não primário enome viola a 2NF em razão da dependência funcional SSN � Enome. Enome é parcialmente dependente da chave primária (já que depende de SSN).

Segunda Forma Normal

� Um esquema pode ser normalizado na 2NF por meio da criação de várias relações na 2NF nas quais os atributos não primários só estarão associados a dependências funcionais total.

� Considere o esquema abaixo e suas dependências funcionais:

SSN, PNumero, Horas, Enome, Pnome, Plocalização

SSN, PNumero � Horas

SSN � Enome

PNumero � Pnome, Plocalização

Segunda Forma Normal

� Normalizando, cria-se três esquemas:

Esquema1: SSN, Pnumero, Horascom a dependência funcional: SSN, PNumero � Horas

Esquema 2: SSN, Enomecom a dependênia funcional: SSN � Enome

Esquema 3: PNumero, Pnome, Plocalização com a dependência funcional: PNumero � Pnome, Plocalização

Terceira Forma Normal (3NF)

� De acordo com a definição original de Codd, um esquema de relação R está na 3NF se satisfizera 2NF e se nenhum atributo não primário de R for transitivamente dependente da chave primária.

� Está baseada no conceito de dependência transitiva.

� Uma dependência funcional X � Y, em um esquema de relação R, será uma dependência transitiva se existir um conjunto de atributos Z que não é nem uma chave candidata nem um subconjunto de qualquer chave de R, e ambas X � Z e Z � Y forem asseguradas.

Terceira Forma Normal

� Como exemplo, considere o seguinte esquema com sua dependências funcionais:

Enome, SSN, DataNasc, Endereço, Dnumero, Dnome, DgerSSN

SSN � Enome, DataNasc, Endereco, DNumeroDNumero � Dnome, DgerSSN

A dependência funcional SSN � DgerSSN é transitiva para Dnumero, pois ambas as dependências SSN � Dnumero e Dnumero � DgerSSN são asseguradas e Dnumero não é nem chave primária nem um subconjunto da chave da relação.

�A normalização na 3NF para o exemplo se dá por meio da decomposição:

Esquema 1: Enome, SSN, DataNasc, Endereço, Dnumero

com a dependência funcional: SSN � Enome, DataNasc, Endereco, DNumero

Esquema 2: Dnumero, Dnome, DgerSSN

com a dependência funcional: DNumero � Dnome, DgerSSN

Terceira Forma Normal

Generalização

� As definições tratadas até aqui dizem respeito a parcialidade e transitividade de dependencias funcionais com respeito à chave primária da relação.

� Estas definições devem ser expandidas para a consideração de todas as chaves candidatas.

� 2NF: um esquema de relação R está na segunda forma normal se cada atributo não primário A de R não forem parcialmente dependente de nenhuma chave de R.

� 3NF: um esquema de relação R está na terceira forma normal se sempre que uma depependência funcional não trivial X � A for determinada em R, então: (A) qualquer X é uma superchave de R; ou (B) A é um atributo primário de R.

Mais um exemplo:

� Esquema Lotes:

Num_ID_Propriedade, Municipio_nome, Num_lote, Area, Preço, Imposto

� Dependências funcionais:

DF 1: Num_ID_Propriedade � Municipio_nome, Num_lote, Area, Preço, Imposto

DF 2: Municipio_nome, Num_lote � Num_ID_Propriedade, Area, Preço, Imposto

DF 3: Municipio_nome � ImpostoDF 4: Area � Preço

Colocando na 2NF:

� O esquema de relação Lotes viola a definição GERAL da 2NF porque Imposto é parcialmente dependente da chave candidata{Municipio_nome, Num_lote} em razão da terceira dependência funcional.

� Construímos então o esquema Lotes 1 removendo o atributo Imposto que viola a 2NF de Lotes, para colocá-lo com Municipio_nome em outro esquema: Lotes 2.

� Lotes1 : Num_ID_Propriedade, Municipio_nome, Num_lote, Area, PreçoCom as DFs 1, 2 e 4

� Lotes2: Municipio_nome, ImpostoCom a DF 3.

Note que a DF 4 não viola a 2NF.

Colocando na 3NF:

� Lotes2 está na 3NF.

� Lotes1 não está pois a dependência funcional 4 viola a definiçãoGERAL.

� Área não é uma superchave;

� Preço não é um atributo primário em Lotes1.

� Construímos:

� Lotes1a: Num_ID_Propriedade, Municipio_nome, Num_lote, AreaCom as DFs 1 e 2.

� Lotes1b: Area, PreçoCom a DF 4.

Forma Normal de Boyce-Codd (BCNF)

� Foi proposta como uma forma normal mais simples de 3NF, mas é considerada mas rígida que a 3NF.

� Toda relação BCNF está também em 3N, mas o contrário pode não ser verdadeiro.

� Definição: Um esquema de relação R está na BCNF sempre que uma dependência funcional não trivial X �A for mantida em R, então X será uma superchave de R.

BCNF

� Suponha a seguinte situação para o último exemplo modelado:

Existem milhares de lotes cadastrados mas eles estão localizados em apenas duas cidades. E as áreas dos lotes nas duas cidades são definidas de formas diferentes. Assim a dependência funcional Area �Municipio_nome deveria valer.

� Ainda assim, Lotes1a estaria na 3NF pois Municipio_nome é um atributo primário.

BCNF

� Mas existe redundância de informação, pois a área que determina o município, como dito pela nova dependência funcional, pode ser representada uma única vez, em uma relação a parte.

� A BCNF sugere a decomposição do esquema Lotes1a em:

Lotes1ax : Num_ID_propriedade, Area, Num_lotecom as DFs 1 e 2.

Lotes1ay : Area, Municipio_nomecom a DF 5.

� Cuidado com a decomposição com perdas na junção!

Referências

� Sistemas de Banco de Dados. (Cap. 7) AbrahamSilberchatz, Henry F. Korth e S. Sudarshan. 3ª Edição.Makron Books, 1999.

� Introdução a Banco de Dados (Apostila). (Cap. 9) Osvaldo Kotaro Takai, Isabel Cristina Italiano, João Eduardo Ferreira. DCC-IME-USP, 2005.

� Sistemas de Banco de Dados. (Cap. 9-10) Ramez Elsmari e Shamkant B. Navathe. 4ª Edição. EditoraPearson Addison Wesley, 2005.