Você está na página 1de 57

Teoria De Bases de dados

Paulo Leocdio

A informtica na empresa.......................................................... ...................................................2 Da dependncia independncia dos dados.............................................. ................................3 Os trs nveis da arquitectura de um SGBD........................................... ......................................6 Funes e estrutura de um SGBD...................................................... ...........................................7 Operaes de definio e alterao da estrutura de uma BD.................................. .............7 Operaes de manipulao de dados sem alterao da estrutura da BD......................... ..7 Operaes de controlo de dados...................................................... ........................................8 O que uma Base de Dados?........................................................ ...............................................9 Vantagens na utilizao de BD s....................................................... ............................................9 Esquema e Instncia de uma Base de Dados.......................................... ................................11 Modelos de Bases de Dados....................................................... ...............................................11 Modelos baseados em objectos:................................................... ........................................11 Modelos baseados em registos:................................................... .........................................11 Modelo Hierrquico................................................................ .............................................12 Modelo de rede.................................................................. .................................................12 Modelo Entidade-Relacionamento.................................................. ...........................................13 Entidades....................................................................... .........................................................13 Relacionamentos................................................................. ..................................................13 Atributos e Ocorrncias........................................................... ................................................14 Valores e Domnios dos atributos.................................................. ........................................14 Tipos de atributos.............................................................. ......................................................15 Atributo Identificador.......................................................... ....................................................15 Chave Primria.................................................................... ...................................................16 Chave Estrangeira ou Externa.................................................... ............................................17 Relacionamentos entre entidades................................................. ........................................17 Tipos de Relacionamentos........................................................ .............................................18 Grau de Relacionamento.......................................................... ..............................................19 Qualidade de participao........................................................... ...........................................20 Derivao de tabelas................................................................

..............................................20 Normalizao de tabelas............................................................. ...............................................22 1 Forma Normal (1 FN)............................................................. ...........................................23 Dependncia funcional............................................................. ..............................................25 2 Forma normal (2 FN)............................................................. ............................................26 3 Forma normal (3 FN)............................................................. ............................................28

A informtica na empresa

Ao longo dos tempos a informtica deixou as reas exclusivamente tcnicas e cientficas para se tornar uma ferramenta de uso geral em qualquer sector da activ idade humana. Se h uns anos atrs o grande problema residia na limitao quantidade e capacidade de processamento de informao que era possvel tratar num computador, hoje em dia a tecnologia permite ultrapassar isso, criando, no entanto, um outro prob lema que a qualidade dessa informao. As novas tecnologias permitem tambm explorar melhor as capacidades do computador. A informao deixou de ser apenas texto (smbolos ou caracteres), e passou a incluir imagens e sons. Abrem-se novos campos para a explorao dos sistemas de informao. Sendo as empresas os locais onde mais intensivamente se utiliza a informtica, tambm nelas que as necessidades e quantidades de informao so maiores. O aumento de potncia dos sistemas informticos, assim como a sua aplicao a todos as reas da empresa, proporciona quantidades de informao gigantescas quando comparadas com alguns anos atrs. A necessidade das organizaes em possuir um sistema de gesto mais eficaz tornaas cada vez mais dependentes da informao existente e dos mtodos para a tratar. O tempo das enormes e fastidiosas listagens de computador j passou, hoje a informao tem de ser compreensvel, completa, fcil e rpida de obter. num contexto de necessidade de informao cada vez maior que se insere o aparecimento dos Sistemas de Gesto de Bases de Dados (SGBD). Estes sistemas so um conjunto de programas que fazem uma gesto autnoma da informao, de acordo com um modelo preestabelecido e adaptado empresa. Deste modo vrios programas concebidos em diferentes linguagens, por diversos programadores e executando funes especficas, podem aceder mesma informao. Esta deixa de ser propriedade dos departamentos da empresa e agora encarada como uma entidade nica e autnoma qual vrios e diferentes utilizadores recorrem.

Da dependncia independncia dos dados

O Sistema de Gesto de Bases de Dados gere toda a informao contida na base de dados e constitui o interface entre a informao e os utilizadores, quer sejam utili zadores finais quer sejam programadores.

Fig. 1

SGBD: O interface entre utilizador e a base de dados

Inicialmente as aplicaes informticas destinadas a gerir os sistemas de informao das organizaes (empresas, administrao pblica, etc...), tinham uma caracterstica: os dados eram dependentes dos programas de aplicao que os geravam e manipulavam. Esta caracterstica logo revelou os seus problemas:

* Limitao por parte dos utilizadores s estruturas de dados definidas pelos programadores;

* A alterao da estrutura da informao, como por exemplo, incluir ou retirar campos num ficheiro de base de dados, implicava que os programadores tivessem de altera r os programas de aplicao que operavam sobre estes dados;

* A dependncia dos dados relativamente s aplicaes implicava que a alterao das estruturas de dados levava quase sempre a uma reintroduo dos dados visto ser necessrios adapt-los aos novos programas e novos formatos definidos;

* Numa mesma organizao, a informao encontrava-se repartida e repetida em

diversos locais, pois cada departamento criava os seus programas de aplicao de forma autnoma e de acordo com as suas necessidades. Este facto originava a duplicao de informao perfeitamente desnecessria.

Caixa de texto: Utilizadores Rectngulo arredondado: SGBD Caixa de texto: Base de Dados

ORGANIZAO X Aplicao A Depart. P Aplicao B

Aplicao C Depart. R Aplicao D Depart. S Aplicao E

o C Dependn

licao

Depart. U Depart. V Depart. X Desta f bases de dados capazes de gerir a informao de uma forma mais flexvel, em que os dados pudessem ser separados e organizados de forma independente em relao aos programas de aplicao. E assim, surgiram os Sistemas de Gesto de Bases de Dados (SGBD). Os e manipular bases de dados, em que os dados so estruturados com independncia relativamente aos programas de aplicao que os manipulam. Deste modo, podem ser criadas diversas aplicaes p dados ou a mesma base de dados, em conformidade com as necessidades dos seus utilizadores. A inde

dos dados de uma base de dados, quer ao nvel fsico quer ao nvel conceptual, sem que isso implique a necessidade de reformular as aplicaes que operam com os dados.

Caixa de texto: * Sistemas de Gesto de Bases de Dados Oval: SGBD *

No entanto, os sistemas de bases de dados no gerem apenas a informao, eles comportam uma srie de utilitrios que visam facilitar a vida aos utilizadores e programadores. Alguns dos produtos fornecidos pelos maiores fabricantes de SGBD so os seguintes:

.. Motor da base de dados (Data Engine);

.. Linguagem de pesquisa (Query Language);

.. Gerador de listagens (Report Generator);

.. Gerador de entradas de dados (Form Generator);

.. Interfaces para linguagens de programao de 3 gerao;

.. Linguagens de programao de 4 gerao (4GL

4th Generation Language);

.. Processamento distribudo (produtos NET);

.. Bases de dados distribudas (produtos STAR);

.. Interligao com outros sistemas de bases de dados (produtos GATEWAY);

.. Ferramentas: CASE (Computer-Aided Software Engineering);

O SGBD actual fornece empresa um meio slido de armazenamento da informao, suficientemente flexvel para acompanhar as novas tecnologias, e sobretudo generaliza o acesso informao, permitindo que qualquer utilizador atravs de procedimentos simples compile a informao que deseja.

Os trs nveis da arquitectura de um SGBD

Um Sistema de Gesto de Bases de Dados uma coleco de ficheiros de dados interrelacionados e um conjunto de programas ou rotinas que permitem aos utilizadores o acesso informao assim armazenada. Os ficheiros de dados so guardados em suportes de armazenamento informtico (discos, disquetes, cd's, etc...) e, a partir da so manipulados pelos programas ou rotinas do SGBD em execuo no computador. O armazenamento dos ficheiros de dados em suportes informticos e a forma como eles se encontram organizados nesses suportes constitui o chamado Nvel Fsico da ba se de dados. Alm de operar ao nvel fsico, o SGBD tem tambm de proporcionar aos utilizadores e programadores meios de estruturar ou organizar a informao, afim de esta vir a se r consultada e actualizada pelos utilizadores finais. a esta estruturao e organizao do s dados que se chama o Nvel Conceptual de uma base de dados. Por fim, o chamado Nvel de Visualizao corresponde forma como so apresentados os interfaces grficos aos utilizadores finais, que geralmente no tm, o u so poucos conhecimentos dos nveis fsico e conceptual.

Caixa Caixa Caixa Caixa Caixa Caixa Caixa

de de de de de de de

texto: texto: texto: texto: texto: texto: texto:

Interface grfico com o utilizador Organizao da informao em tabelas e relacionamentos Nvel Conceptual Nvel de visualizao Armazenamento da informao em suportes informticos Nvel Fsico Fig. 4 - Os trs nveis da arquitectura de um SGBD

Funes e estrutura de um SGBD

O trabalho com uma base de dados implica diversos tipos de operaes sobre os ficheiros e os dados que eles contm, tais como: .. .. .. .. .. .. .. .. .. Inserir novos registos; Procurar e visualizar um registo; Eliminar registos existentes; Seleccionar registos e/ou campos; Ordenar os registos de um ficheiro; Juntar ou intercalar registos de ficheiros diferentes; Fazer cpias ou duplicaes de ficheiros; Alterar a estrutura de campos de um ficheiro; Eliminar ficheiros;

Assim podemos distinguir os seguintes agrupamentos de operaes tpicas do trabalho com bases de dados:

Operaes de definio e alterao da estrutura de uma BD (Linguagem de Definio de Dados DDL)

Criao de uma nova base de dados; Criao de um novo ficheiro ou tabela; Alterao da estrutura de campos de uma tabela; Criao e alterao de ficheiros de ndices; Eliminao de ficheiros ou tabelas de uma base de dados;

Operaes de manipulao de dados sem alterao da estrutura da BD (Linguagem de Manipulao de Dados LMD)

Consultas ou pesquisas de dados; Insero de novos dados (registos); Alterao de dados existentes (campos e registos); Eliminao de dados (registos);

Operaes de controlo de dados

Tm a ver com a atribuio ou supresso dos direitos de acesso aos dados em relao a utilizadores ou grupos de utilizadores.

Caixa de texto: Operaes de manipulao de dados; Operaes de controlo dos dados; Caixa de texto: Operaes de criao e alterao da estrutura da base de dados NNvveell CCoonncceeppttuuaall NNvveell FFssiiccoo NNvveell ddee VViissuuaalliizzaaoo

O que uma Base de Dados?

De um modo geral, pode-se definir uma Base de Dados como sendo um conjunto de dados ou informaes relacionados entre si e organizados de forma a facilitar a sua utilizao por parte do utilizador. Ou ainda, como um sistema cuja finalidade registar, actualizar, manter e disponibilizar a informao relevante para a actividade de uma organizao. Este conjunto de informaes ser partilhado e utilizado para diferentes objectivos e por diferentes utilizadores. No entanto, os utilizadores no s partilham informaes co mo tambm tm necessidades e perspectivas diferentes dessas informaes. Quando se cria uma base de dados tem-se como objectivos: Diminuir o espao ocupado pela informao; Facilitar a actualizao da informao; Aumentar a velocidade de pesquisa; Evitar a redundncia de informao.

Vantagens na utilizao de BD s

Os benefcios aqui abordados dividem-se em trs categorias principais, nomeadamente:

1. Benefcios de cceennttrraalliizzaaoo de dados: - Reduo/Eliminao de redundncia de dados: evitar a repetio de informao desnecessria, reduzindo tambm o espao ocupado pela base de dados; - Melhoria na concorrncia de dados: aumentar a eficincia no acesso aos dados; - Obteno de informao atempadamente: Aceder e obter informao de forma mais rpida e eficaz; - Simplificao da infra-estrutura de informao: permitir uma estruturao e organizao da informao de forma mais simples permitindo, deste modo, alcanar os pontos referidos acima.

2. Benefcios resultantes de uma melhor ggeessttoo ddee ddaaddooss:

- Organizao e controlo dos dados: a simplificao da prpria estrutura da base de dados implica benefcios na organizao dos dados o que uma mais valia para a gesto e controlo dos dados;

- Recuperao, backup e rasteio de dados: por vezes pode acontecer que se percam dados relevantes para a base de dados. Nestes casos importante que hajam mecanismos de recuperao dos mesmos, de forma a ser possvel o seu restauro. importante, tambm, que a base de dados permita a execuo de backups, isto , de cpias de segurana da informao armazenada; - Simplificao e aperfeioamento da segurana: a segurana crucial nos dias de hoje. No s para prevenir ataques externos base de dados, mas tambm como forma de restringir o acesso aos dados por parte de utilizadores sem privilgios p ara tal; - Melhor integridade dos dados: apresentar os dados com rigor e qualidade.

3. Melhoria de ppeerrffoorrmmaannccee atravs de: - Chamadas (calls) de aplicaes: permitem que outras aplicaes, que no aquela que gere a base de dados, acedam aos dados e os utilizem para obter determinados resultados; - Mecanismos de recuperao (unit recovery mechanism, URM): so mecanismos que permitem a qualquer momento restaurar informao perdida pela base de dados.

Esquema e Instncia de uma Base de Dados

Esquema: Consiste no design ou estrutura lgica com que a base de dados definida, o modo como concebida a organizao da informao.

Instncia: Refere-se aos dados concretos que a base de dados contm a cada momento, os quais podem variar com a utilizao da base de dados.

.. O esquema de uma BD concebido segundo um modelo conceptual e implementado num SGBD atravs da sua DDL.

.. A instanciao de uma BD feita atravs dos recursos de manipulao dos dados do SGBD, portanto ao nvel da LMD.

Modelos de Bases de Dados

O desenvolvimento de uma base de dados pode ser efectuado segundo diferentes modelos conceptuais. Estes so um conjunto de ferramentas conceptuais, para descrever os dados, a sua semntica e restries Estes modelos podem ser agrupados em dois tipos:

Modelos baseados em objectos: ..Representam a realidade atravs de objectos; ..Os objectos so entidades reais (Aluno, Professor, Disciplina, ...); ..Alguns modelos: Entidade-Relacionamento; Semnticos; Orientados por Objectos;

Modelos baseados em registos:

..Representam a realidade atravs de registos; ..Informao estruturada com o formato de campos; ..Alguns modelos: Hierrquico; Rede; Relacional.

Modelo Hierrquico - Uma base de dados concebida segundo o modelo hierrquico consiste numa coleco de registos que se encontram relacionados entre si, atravs de relaes; - A estrutura hierrquica de ligao entre os registos toma o aspecto de uma rvore invertida; - Cada registo (excepto o primeiro) encontra-se ligado a um outro denominado de superior hierrquico; - Se um superior hierrquico for eliminado todos os que se encontram abaixo dele na estrutura hierrquica sero eliminados.

Modelo de rede - Uma base de dados concebida segundo o modelo hierrquico tambm consiste numa coleco de registos que se encontram relacionados entre si, atravs de relaes; - A estrutura de ligao dos registos j no se apresenta em forma de rvore mas sim em forma de rede, o que implica uma maior flexibilidade em relao forma como se podem ligar os registos.

Caixa de texto: Fig. 5 Caixa de texto: Fig. 4

Modelo em Rede Modelo hierrquico

Modelo Entidade-Relacionamento

O modelo de Entidade-Relacionamento, foi desenvolvido para auxiliar o projecto de base de dados, atravs da especificao de um esquema que define a organizao da base de dados. uma tcnica que:

- utiliza uma abordagem top-down; - baseia-se na identificao dos grandes objectos informacionais com interesse para o sistema a informatizar e nas associaes entre estes; - por ser grfica, e suportar um nmero limitado de smbolos, permite representar o modelo de informao com: clareza; reduo de esforo; facilidade de compreenso; facilidade de apresentao.

O modelo E-R baseado na percepo de que o mundo real constitudo por dois objectos: entidades e relacionamentos.

Entidades So elementos relevantes, abstractos ou concretos, sobre os quais necessrio guardar informao. Por exemplo: ..Pessoas ( Fornecedores, Empregados, Clientes, Alunos, etc...) ..Organizaes ( Empresas, Hospitais, Escolas, Farmcias, etc...) ..Objectos ( Carro, Factura, Produtos, Boletim de Incrio, etc...)

Relacionamentos Aps a identificao das entidades a incluir no esquema da BD, e dos atributos que as definem, necessrio perceber o modo como estas entidades se relacionam entre si. Assim, um relacionamento uma associao existente entre entidades.

Atributos e Ocorrncias Uma entidade definida por um conjunto de dados que de alguma forma se encontram relacionados. Os dados numa entidade encontram-se divididos em campos ou atributos que so os elementos que a caracterizam. A cada ocorrncia relativa a uma entidade d-se o nome de registo.

Nome Morada Telefone Antnio Ponta Delgada 296123456 Manuel Angra do Herosmo 295789012 Maria Horta 291345678

Valores e Domnios dos atributos

Os atributos das entidades so preenchidos com VALORES. So estes valores que caracterizam e identificam cada entidade.

Exemplo: O nome prprio de uma pessoa: Ana, Maria, Joo, Francisco, etc... O estado civil de uma pessoa: Solteiro, casado, divorciado.

Cada atributo de uma entidade pode tomar os seus valores dentro de um determinado conjunto DOMNIO que no mais do que o conjunto de todos os valores que esse atributo pode assumir.

Exemplo: Os valores para a idade de uma pessoa s podem ser numricos, nunca podendo conter valores alfanumricos. Assim, o seu domnio ser o dos nmeros inteiros.

Rectngulo arredondado: Registo Rectngulo arredondado: Campo

Tipos de atributos Os atributos de uma entidade podem ser de dois tipos:

ATMICOS

No possvel decompor esses atributos em unidades mais elementares.

Exemplo: n de aluno, idade, nome prprio, BI, NIF, etc...

COMPOSTOS

So atributos que podem ser decompostos em unidades mais elementares.

Exemplo: - O nome completo de uma pessoa pode ser decomposto em nome prprio, sobrenome e restantes. - A data que pode ser decomposta em dia, ms e ano. - A hora que pode ser decomposta em hora, minuto e segundo.

Atributo Identificador Entre os diversos atributos que definem uma entidade deve existir um ou mais campos que identifiquem inequivocamente cada registo. A este(s) atributo(s) d-se o nome de Atributo Identificador.

ATRIBUTO IDENTIFICADOR o atributo que deve identificar sem ambiguidades cada entidade concreta. Para cada entidade deve existir sempre um atributo deste tipo . Geralmente, este atributo desempenha o papel de chave numa entidade ou tabela.

Exemplo: Consideremos a entidade Filmes e os seus atributos:

FILMES (N Filme, Ttulo, Actor, Realizador, Durao, Classificao)

O campo N Filme um atributo identificador pelo facto de identificar inequivocamente cada ocorrncia (filme) da entidade.

Chave Primria

CHAVE PRIMRIA um atributo identificador que representa univocamente cada ocorrncia ou registo de uma tabela.

Existem dois tipos de chave primria: Simples - constituda apenas por um atributo;

Composta - constituda por dois ou mais atributos.

Uma chave primria deve ser: Unvoca O valor da chave primria deve ser nico para todos os registos.

No Redundante No caso de uma chave composta no devem ser includos mais campos do que os necessrios.

No Nula nulos.

Nenhum dos valores que compem a chave primria pode conter valores

Exemplo 1) Consideremos a entidade Cds que caracterizada pelos seguintes atributo s: CDs ( N Cd, Ttulo, Intrprete, Editora)

O atributo que a identifica univocamente N de Cd visto ser o nico cujos valores nunca se iro repetir. Deste modo, conclui-se que a chave primria da entidade CDs simples.

Exemplo 2) Consideremos a entidade Faixas de um Cd que caracterizada pelos segui ntes atributos: Faixas ( N Cd, N Faixa, Ttulo, Durao, Gnero)

Neste caso, os atributos que a identificam univocamente so N de Cd e N Faixa, visto serem os nicos cujos valores nunca se iro repetir.

Deste modo, conclui-se que a chave primria da entidade Faixas composta.

Chave Estrangeira ou Externa

CHAVE ESTRANGEIRA OU EXTERNA um atributo que definido como chave primria de uma tabela includo na estrutura de uma outra tabela.

Exemplo: Consideremos as entidades Cds e Faixas, que identificam um Cd e as suas respectivas Faixas. CDs ( N Cd, Ttulo, Intrprete, Editora) Faixas ( N Cd, N Faixa, Ttulo, Durao, Gnero) O atributo N de Cd da entidade Faixas faz parte da sua chave primria, no entanto como chave primria da entidade CDs considerado uma chave estrangeira na entidade Faixas.

Relacionamentos entre entidades

O relacionamento entre entidades um dos propsitos das bases de dados relacionais, da a importncia dada seleco da chave primria, pois atravs destas que so estabelecidas as associaes entre as diferentes entidades.

Os smbolos convencionados para se representar estes relacionamentos so em nmero reduzido, com significados especficos e fceis de distinguir:

Caixa de texto: Atributo chave Oval: -----___

Caixa de texto: Atributo Caixa de texto: Relacionamento Caixa de texto: Entidade

Exemplo: Consideremos as entidades Cds e Faixas, e os seus atributos definidos anteriormente. A relao existente entre estas entidades pode ser representada da seguinte forma:

Tipos de Relacionamentos So as formas como as entidades se relacionam num determinado modelo de informao. As associaes podem classificar-se em unrias, binrias e complexas.

UNRIAS associam uma entidade com ela prpria.

Neste caso, uma equipa joga com outra equipa.

BINRIAS associam duas entidades.

Neste tipo de relacionamento, um aluno pertence a uma turma.

Caixa de texto: joga Caixa de texto: EQUIPA Losango: Inclui Oval: Gnero Oval: Durao Oval: Ttulo Oval: N Faixa Oval: N Cd Oval: Editora Oval: Intrprete Oval: Ttulo Oval: N Cd Caixa de texto: Faixas Caixa de texto: CDs Losango: pertence Caixa de texto: TURMA Caixa de texto: ALUNO

COMPLEXAS associam mais do que duas entidades.

Tem-se que um atleta que pratica uma determinada modalidade disputa uma prova dessa modalidade.

Observao: Regra geral, uma associao do tipo complexa ternria d origem a uma entidade associativa.

Grau de Relacionamento a participao mxima (limite superior) de cada uma das entidades nas associaes a que est ligada. O grau de relacionamento independente do tipo de associao. Tendo em conta o seu grau, os relacionamentos classificam-se em: Relacionamento 1:1 (um para um)

Relacionamento 1:N (um para muitos)

Relacionamento M:N (muitos para muitos)

Observao: Regra geral, uma associao de grau M:N d origem a uma entidade associativa. Losango: Caixa de Caixa de Caixa de disputa texto: PROVA texto: ATLETA texto: MODALIDADE

Qualidade de participao a participao mnima (limite inferior) da entidade na associao a que est ligada. A participao de cada entidade ou pode ser diversa de associao para associao. A qualidade de participao de uma entidade classifica-se em obrigatria e no obrigatria.

OBRIGATRIA quando no pode haver qualquer ocorrncia que no esteja associada a alguma ocorrncia da outra entidade que participa na associao.

NO OBRIGATRIA quando pode haver ocorrncias numa entidade, mesmo que no associadas a alguma ocorrncia da outra entidade que participa na associao.

Derivao de tabelas Analisando o grau de relacionamento e a qualidade de participao possvel identificar o nmero de tabelas necessrias para cada relacionamento.

Assim:

UMA TABELA .. Relacionamentos de 1:1 com participao obrigatria de ambas as entidades.

DUAS TABELAS .. Relacionamento de 1:1 com participao obrigatria de uma das entidades, em que nesta adicionada uma chave externa;

.. Relacionamentos de 1:N ou N:1 com participao obrigatria do lado N, em que nesta adicionada uma chave externa.

TRS TABELAS A terceira tabela responsvel pelo relacionamento entre as outras duas e

nela sero includas como chaves externas as chaves primrias das outras duas. A esta tabela d-se o nome de Entidade Associativa.

.. Relacionamentos de N:N;

.. Relacionamentos de 1:N ou N:1 com participao no obrigatria do lado N;

.. Relacionamentos de 1:1 com participao no obrigatria de ambas as entidades.

Normalizao de tabelas

A normalizao um processo que consiste em estruturar as tabelas e atributos de forma a eliminar redundncias e evitar problemas com a insero, eliminao e actualizao dos dados.

Este processo composto pelas chamadas formas normais: - 1 Forma Normal (1 FN); - 2 Forma Normal (2 FN); - 3 Forma Normal (3 FN); ________________________________ - Forma Normal de Boyce-Codd (FNBC); - 4 Forma Normal (4 FN); - 5 Forma Normal (5 FN);

Um modelo de base de dados que respeite os princpios estipulados at 3 FN considerado adequadamente elaborado para funcionar num SGBD relacional.

Existe uma hierarquia de formas normais que pode ser apresentada atravs de um con junto de crculos concntricos.

Caixa de texto: 3FN Caixa de texto: 2FN Caixa de texto: 2FN Caixa de texto: 1FN Caixa de texto: 1FN Caixa de texto: Se estiver na 1FN e se todos os atributos que no pertencem chave primria dependem da totalidade da chave e no de nenhum dos seus elementos ou conju ntos isoladamente. Caixa de texto: Todos os atributos assumem apenas valores atmicos ou elementares, isto , no podem ser tipo subconjunto. Caixa de texto: Se estiver na 2FN e se dos atributos que no pertencem chave forem independentes entre si.

Em geral, este processo de normalizao consiste no seguinte:

Definio das entidades com todos os atributos considerados relevantes;

Anlise das relaes e dependncias entre os atributos de cada entidade, comparando-as com as formas normais;

Reestruturao de atributos e/ou derivao de entidades sempre que apresentem caractersticas que no estejam de acordo com as formas normais;

Repetio do processo at que todas as entidades estejam na forma normal pretendida.

1 Forma Normal (1 FN)

Uma tabela encontra-se na 1 FN se todos os seus atributos estiverem definidos em domnios que contenham apenas valores atmicos, isto , os domnios devem ser formados por valores elementares e no por conjuntos de valores.

Vejamos o seguinte exemplo:

Imaginemos uma tabela destinada a registar a informao sobre os alunos e as disciplinas em que estes esto matriculados:

1 caso) ALUNOS (CodAluno, Nome, Morada, Disciplinas)

Esta tabela no obedece primeira forma normal (1FN), uma vez que o atributo Disciplinas admite conjuntos de valores. Consideremos a tabela com alguns dados como exemplo: CodAluno Nome Morada Disciplinas

1214 Rui Costa Rua A Portugus, Matemtica, Fsica 1250 Ana Maria Rua B Latim, Portugus, Ingls 1356 Carla Silva Av. ABC Economia, Matemtica, Direito 1456 Hugo Leal Bairro DEF Portugus, Matemtica

Como podemos constatar, o atributo Disciplinas apresenta o conjunto de discipli nas frequentadas por cada aluno. Poderamos, no entanto, repetir os valores na tabela para que o atributo Discipli nas apenas contivesse um nico valor (2 caso).

2 caso) ALUNOS (CodAluno, Nome, Morada, Disciplina1, Disciplina2, Disciplina3,... )

Esta tabela no obedece primeira forma normal (1FN) porque, embora todos os campos sejam atmicos, existem campos repetidos para a mesma categoria. Considerem os a tabela com alguns dados como exemplo:

CodAluno Nome Morada Disciplina1 Disciplina2 Disciplina3 1214 Rui Costa Rua A Portugus Matemtica Fsica 1250 Ana Maria Rua B Latim Portugus Ingls 1356

Carla Silva Av. ABC Economia Matemtica Direito 1456 Hugo Leal Bairro DEF Portugus Matemtica

Como podemos constatar os atributos Disciplina1, Disciplina2 e Disciplina3 aparecem como campos repetidos para a mesma categoria.

A soluo para este problema, ou seja, para a tabela se encontrar na 1 FN a apresentada no 3 caso.

3 caso) ALUNOS (CodAluno, Nome, Morada, Disciplina)

CodAluno Nome Morada Disciplina 1214 Rui Costa Rua A Portugus 1214 Rui Costa

Rua A Matemtica 1214 Rui Costa Rua A Fsica 1250 Ana Maria Rua B Latim 1250 Ana Maria Rua B Portugus 1250 Ana Maria Rua B Ingls

1356 Carla Silva Av. ABC Economia 1356 Carla Silva Av. ABC Matemtica 1356 Carla Silva Av. ABC Direito 1456 Hugo Leal Bairro DEF Portugus 1456 Hugo Leal Bairro DEF Matemtica

A tabela ALUNOS agora est na 1FN, pois todos os atributos contm apenas valores elementares. Apresenta, no entanto, grande redundncia de informao, que se reflecte na repetio dos identificadores dos nomes e moradas dos alunos. Para alm desse inconveniente, podem apontar-se ainda os seguintes:

Problemas de actualizao - se a morada de um aluno for alterada, essa alterao tem de ser feita em vrias linhas da tabela, sob o risco de gerar incoerncias na Base de D ados, isto , numa determinada linha o aluno poder aparecer uma morada e noutra linha out ra;

Problemas de insero com a tabela estruturada desta maneira torna-se impossvel registar um aluno que no esteja matriculado a nenhuma disciplina mas que se encon tra a fazer apenas exames, sem o atributo DISCIPLINA fique com valor nulo no obedecendo regra de integridade de entidade;

Problemas de eliminao - porque para anular a matrcula de um aluno implica ter de eliminar vrias linhas da tabela, e mesmo perder a informao do aluno, tal como NMERO, NOME e MORADA.

Dependncia funcional

Um atributo ou conjunto de atributos determinante de outros atributos quando os identifica de modo unvoco.

Os atributos identificados de modo unvoco por um outro atributo, ou conjunto de atributos, so funcionalmente dependentes deste ltimo.

Considerando a seguinte entidade:

ALUNOS (CodAluno, Nome, Morada, CodDisciplina, Disciplina)

Temos que: - Nome e Morada so dependentes de CodAluno - Disciplina dependente de CodDisciplina

2 Forma normal (2 FN)

Uma tabela encontra-se na 2 FN se:

estiver na primeira forma normal (1FN);

todos os atributos que no pertencem chave, dependem da chave atravs de uma dependncia funcional elementar, isto , dependem da totalidade da chave e no de um dos seus atributos ou subconjuntos isoladamente.

Esta condio evidentemente s se aplica no caso da chave ser composta por mais de um atributo. Caso a chave seja constituda por um nico atributo, chave simples, a condio imposta que os restantes atributos dependam funcionalmente da chave.

Vejamos o seguinte exemplo:

Imaginemos uma tabela destinada a registar a informao sobre as encomendas efectuadas por clientes e os produtos nelas contidos:

ENCOMENDAS (N Encomenda, DataEnc, TotalEnc, CodCliente, NomeCli, Morada, CodProduto, Designao, PreoUnitrio, Quantidade, TotalProd)

A tabela encontra-se na 1 FN porque todos os campos so atmicos e no existe repetio de valores;

O campo N Encomenda identifica cada encomenda feita por um cliente;

De N Encomenda dependem os campos: DataEnc, TotalEnc, CodCliente, NomeCli e Morada;

De CodProduto dependem os campos: Designao, PreoUnitrio, Quantidade, TotalProd;

A tabela no se encontra na 2 FN porque existem campos que dependem de partes da chave. Assim, aplicando a normalizao, obtm-se as seguintes tabelas:

ENCOMENDAS (N Encomenda, DataEnc, TotalEnc, CodCliente, NomeCli, Morada)

DETALHE (N Encomenda, CodProduto, Designao, PreoUnitrio, Quantidade, TotalProd)

A tabela ENCOMENDAS encontra-se na 2 FN, visto j estar na 1 FN e ter um chave simples, o que implica que todos os atributos no-chave dependem da totalidade da chave;

A tabela DETALHE no se encontra na 2 FN, porque existem alguns atributos no-chave que dependem funcionalmente de parte da chave;

De N Encomenda dependem os campos: CodProduto, Quantidade e TotalProd;

De CodProduto dependem os campos: CodProduto, Designao, PreoUnitrio.

Assim, obtemos as seguintes tabelas:

ENCOMENDAS (N Encomenda, DataEnc, TotalEnc, CodCliente, NomeCli, Morada)

DETALHE (N Encomenda, CodProduto, Quantidade, TotalProd)

PRODUTOS (CodProduto, Designao, PreoUnitrio)

3 Forma normal (3 FN)

Uma tabela encontra-se na 3 FN se:

estiver na primeira forma normal (2FN);

nenhum atributo no-chave depender funcionalmente de algum outro atributo que no seja a chave, isto , todos os atributos no-chave dependem funcionalmente apenas da chave;

Voltando ao exemplo anterior, obtivemos as seguintes tabelas:

ENCOMENDAS (N Encomenda, DataEnc, TotalEnc, CodCliente, NomeCli, Morada)

DETALHE (N Encomenda, CodProduto, Quantidade, TotalProd)

PRODUTOS (CodProduto, Designao, PreoUnitrio)

Vamos verificar se as tabelas encontram-se na 3 FN:

1) PRODUTOS (CodProduto, Designao, PreoUnitrio) Entre os seus atributos no-chave (Designao e PreoUnitrio) no existe qualquer dependncia funcional, pelo que a tabela encontra-se na 3 FN.

2) DETALHE (N Encomenda, CodProduto, Quantidade, TotalProd) Entre os seus atributos no-chave (Quantidade e TotalProd) no existe qualquer dependncia funcional, pelo que a tabela encontra-se na 3 FN.

3) ENCOMENDAS (N Encomenda, DataEnc, TotalEnc, CodCliente, NomeCli, Morada) Nesta tabela existe um grupo de atributos no-chave que dependem de um outro atributo no-chave: NomeCli e Morada dependem funcionalmente de CodCliente. Deste modo, conclui-se

que esta tabela no se encontra na 3 FN.

Assim, devem ser retirados da tabela os atributos dependentes de CodCliente e constituir com eles uma nova tabela:

CLIENTES (CodCliente, NomeCli, Morada)

Que j se encontra na 3 FN, pois:

- todos os seus atributos so atmicos (1 FN);

- tem uma chave simples o que implica que todos os atributos no-chave dependem da totalidade da chave (2 FN);

- os atributos no-chave no dependem de nenhum outro atributo no-chave (3 FN);