You are on page 1of 14

Informtica II

Modelo Relacional
Normalizao
Diagramas E-R e Tabelas Originadas

(TPICOS ABORDADOS NAS AULAS DE INFORMTICA II)

Por:
Artur Sousa / Jorge Loureiro
Conceitos de entidade e atributo Tipos de atributos

Entidade: Abstraco de objectos ou conceitos do mundo real acerca dos quais queremos NPrprio Apelido
guardar informao. Localizaes Tempo_Actividade
Nome
Atributos de uma entidade: Caractersticas comuns aos objectos ou conceitos
BI Sexo Nmero Data_nicio_activ
representados pela entidade.

Exemplo de entidade e seus atributos:


Funcionrio Departamento
CO (nome, raa, sexo, data_nascimento)

Atributos => Atributos Simples (Exemplo: BI)

O nome de cada atributo deve ser nico, singular e no ambguo (=>


utilizar prefixos ou sufixos. Exemplo: Data => Data_entrega ) Atributos Compostos (Exemplo: Nome)
=> Um atributo composto pode ser considerado simples, dependendo da
Para reduzir as informaes a uma forma normalizada importa que
situao a tratar.
todos os atributos sejam no decomponveis. Diz-se ento que os
=> Quando os atributos bsicos so tratados separadamente, um atributo
atributos so atmicos, ou que so atributos elementares
composto entra na entidade com todos os seus atributos bsicos (
O conjunto de todos os valores possveis para um dado atributo
Funcionrio: BI, Nprprio, Apelido, Sexo)
constitui o domnio desse atributo
Existem vrios tipos de atributos: simples, compostos, multivalor e
Atributos Derivados (Exemplo: Tempo_actividade)
derivados
=> Estes atributos devem ser identificados na anlise mas no devem fazer
parte da entidade pois podem ser calculados
Exemplo de atributo no atmico e no singular: Disciplinas
Nome_aluno Nmero Disciplinas
Atributos Multivalor (Exemplo: Localizaes)
Jos Silva 1234 Fsica, Qumica, Histria
=> Para cada atributo multivalor cria-se uma nova entidade
... ... ...
Exemplo(Loc_Dep: Nmero, Localizao)

2
Que atributos considerar na descrio de uma entidade ? Chave primria e chaves candidatas
Entidades CO e DONO_DO CO vistas pelo veterinrio: Instncia: Ocorrncia particular de uma entidade. Cada instncia tem de ser identificada
univocamente
CO nome_do_co raa sexo nome_do_dono data_nasc peso
Chave ou Identificador de uma entidade: Atributo ou conjunto de atributos que permitem
identificar univocamente uma instncia de uma entidade.

DONO_DO_CO nome_do_dono endereo saldo_da_conta


Chave primria: Corresponde a uma das chaves possveis e possui as seguintes
caractersticas:
unvoca - os atributos da chave primria tm um valor unvoco para

Entidades CO e DONO_DO CO vistas pela administrao municipal: qualquer instncia;


no redundante - se algum dos atributos que formam a chave

CO nome_do_co raa sexo nome_do_dono data_licen. peso primria for retirado, os restantes atributos deixam de ser unvocos
no nula - nenhum dos atributos que formam a chave primria
poder ter um valor nulo.

DONO_DO_CO nome_do_dono endereo


Chave candidata: Atributo ou conjunto de atributos que podem ser usados como chave
primria de uma entidade

O atributo endereo deveria ser subdividido ? possvel determinar nmero de ces por
Exemplo: Chaves candidatas:
freguesia ?
N_BI
=> endereo um atributo composto que neste caso deveria ser subdividido
N_Eleitor, Freguesia
Nome N_Eleitor N_BI Freguesia Rua

3
Chave forasteira ou chave externa Relacionamento
As entidades no esto isoladas, esto relacionadas com outras entidades => necessrio
Chave forasteira ou chave externa: Atributo ou conjunto de atributos que aparecem como identificar relacionamentos para ser possvel representar correctamente o mundo real.
chave primria numa outra entidade relacionada.
Relacionamento: Associao entre entidades
A chave forasteira permite estabelecer uma ligao (relacionamento) entre as entidades
representadas. Uma entidade pode conter tantas chaves forasteiras quantas as necessrias. Relacionamento binrio: Associao entre duas entidades

Exemplo: Tipos de relacionamentos binrios entre entidades


O nmero de ocorrncias de uma entidade, que podem estar associadas com uma ocorrncia
CO nome_do_co raa sexo nome_do_dono data_nasc peso de outra entidade permitem distinguir 3 tipos de relacionamentos:

DONO_DO_CO nome_do_dono endereo saldo_da_conta 1 Dirigido 1


Relacionamento1:1 Departamento Funcionrio

O atributo nome_do_dono :
na entidade CO uma chave estrangeira 1 Constitudo N
Relacionamento1:N Departamento Funcionrio
na entidade DONO_DO_CO a chave primria

=> Este atributo permite estabelecer uma ligao entre as entidades CO e


DONO_DO_CO
N Trabalha M
RelacionamentoN:M Funcionrio Projecto

4
Modelo de dados relacional Como agrupar um conjunto de atributos
Todos os dados bem como os relacionamento existentes entre estes so representados por Conceito de entidade uma maneira de agrupar os atributos que correspondem a um
um conjunto de tabelas (relaes) relacionadas entre si: determinado objecto ou conceito do mundo real, contudo, nem todos os agrupamentos
Cada tabela (entidade) tem um nome nico pelo qual referenciada; possveis so convenientes podendo levar existncia de:
Cada coluna da tabela (atributo) tem um nome e refere-se a um dado aspecto do objecto
representado; desperdcio de espao
Cada coluna contm valores atmicos pertencentes ao domnio do atributo; informao redundante inconsistncia
Cada linha da tabela (tuplo) representa uma nica instncia ou um relacionamento entre valores nulos anomalias em operaes de insero,
entidades;
alterao ou remoo
Cada relao contm zero ou mais tuplos.
Exemplo: Obra (N_Obra, Data_incio_obra, Oramento, N_empregado,
Remunerao_horria, Total_horas_empregado)

Integridade
N_Obra D_I_O Oramento N_empreg. Rem_hor Tot_hor_e
Existem trs tipos de integridade:
1 10010 15-09-97 33 000 2005 700 200
Integridade de domnio: os valores de cada coluna devem ser atmicos e pertencentes
2 10010 15-09-97 33 000 1111 650 202
ao domnio do atributo;
3 10011 06-10-97 52 450 2005 700 40
Integridade de entidade: os valores dos atributos que correspondem chave primria
4 10012 05-01-98 27 600 007 - -
no podem ser nulos nem iguais a outros j existentes na tabela. Notar que, como os
tuplos so diferenciados pela chave primria, se os valores dos atributos
Problemas encontrados:
correspondentes chave primria fossem nulos no seria possvel distinguir entre
tuplos.
Tipo de problema Linha(s) Atributos
Integridade referencial: a chave forasteira numa tabela deve referenciar sempre uma
Redundncia 1,2 D_I_O Oramento
chave primria existente numa outra tabela.
1,3 Rem_hor
Valores nulos ou invlidos 4 N_empreg. Rem_hor Tot_hor_e

5
Anomalias em operaes de insero, de alterao ou de Decomposio da entidade obra
remoo A resoluo dos problemas mencionados anteriormente consiste em decompor a entidade da
seguinte forma.
Anomalias de insero:
necessrio inserir valores nulos para os atributos cujo valor ainda no foi
Obra (N_Obra, Data_incio_obra, Oramento)
determinado, ou valores invlidos quando esses atributos pertencem chave primria, o
Empregado (N_empregado, Remunerao_horria)
que conduz a inconsistncia.
Alocao (N_Obra, N_empregado, Total_horas_empregado)
(No exemplo, quando se insere uma nova obra ou um novo empregado necessrio
introduzir valores nulos e valores invlidos para os atributos que ainda no so
Existira ainda redundncia ?
conhecidos. A alternativa consiste em no inserir dados de uma nova obra ou de um
Ser este modelo correcto e o melhor ?
novo empregado enquanto a alocao no for efectuada.)
Como obter este modelo ?
A duplicao de alguns dados poder dar origem a erros de insero, o que resulta em
inconsistncia.
=> Uma das solues ser recorrer anlise de dependncias funcionais e normalizao.

Anomalias de alterao:
Objectivos a atingir no projecto de modelo de dados:
A existncia de redundncia conduz ao perigo de aps uma actualizao, apenas parte
Guardar todos os dados relevantes
dos dados terem sido actualizados.
Eliminar todos as dados redundantes
(No exemplo, se se alterar a data de inicio da obra, poder ocorrer uma anomalia deste
Manter o nmero de entidades reduzido a um mnimo Objectivos
tipo se no se actualizarem todas as ocorrncias da mesma obra.)
Normalizar todas as entidades antagnicos !

Anomalias de remoo:
A remoo de determinados dados podem levar eliminao de outra informao que
no se pretendia apagar.
(A remoo de uma obra pode conduzir perda de informao relativa a um
empregado)

6
Normalizao
Passagem de uma relao 2FN:
O processo de identificao dos agrupamentos necessrios e da localizao correcta de cada Separar os atributos que dependem de um subconjunto da chave, decompondo a relao em
atributo consiste num conjunto de tcnicas designadas por normalizao. duas (ou mais) relaes.
A normalizao converte cada entidade gradualmente para Formas Normais, atravs da
aplicao sucessiva de regras que alteram o formato dos dados da 1Forma Normal at 5
A B C
Forma normal.
A B C D
Formas Normais B D
1 Forma Normal
Uma relao est na 1 forma normal (1FN) quando: 3 Forma Normal
os domnios de todos os atributos consistem apenas em valores atmicos Uma relao est na 3 forma normal (3FN) quando:
no existem subgrupos de atributos repetidos estiver na 2FN;
os atributos que no pertencem chave no dependem de nenhum atributo que tambm
Passagem de uma entidade 1FN: no pertence chave.
Eliminar subgrupos repetidos, decompondo a relao em duas (ou mais) relaes.
Passagem de uma relao 3FN:
Separar os atributos que dependem de outro atributo no pertencente chave, decompondo
A B
A B C D a relao em duas (ou mais) relaes.

A C D A B C D
A B C D E
2 Forma Normal C E
Uma relao est na 2 forma normal (2FN) quando:
estiver na 1FN;
todos os atributos que no pertencem chave dependem de toda a chave (e no de um
subconjunto da chave).

7
Estratgias de concepo do modelo de dados Diagrama de Entidade-Relacionamento

Nome Designao
Do particular para o geral (Bottom-up) NDoc .... #Disc ....
1) Relao universal; Pequenos projectos
2) Anlise de dependncias funcionais (at 6-8 entidades) Docente Ensina Disciplina
3) Modelo de dados
Do geral para o particular (Top-down)
Entidade: Coisa relativa ao problema a tratar e sobre o qual h interesse em
1) Relao universal;
guardar/manipular informao; Uma entidade deve ter ocorrncias e deve ser
2) Anlise de relacionamentos e participaes; Grandes projectos
possvel identificar uma ocorrncia de outra ocorrncia.
3) Modelo de dados.

Relacionamento: Ligao entre entidades.

Atributo: Propriedade de uma entidade (em certos casos tambm de um relacionamento).


Construo de modelo de dados pelo mtodo de Entidade-
Relacionamento
Diagrama de ocorrncias

Identificar todas as entidades e todos os relacionamentos importantes para a situao a


Exemplifica um relacionamento entre entidades.
tratar;
Construir o diagrama de Entidade-Relacionamento (DER)
Professor Ensina Disciplina
Encontrar o conjunto de entidades preliminares e identificar as respectivas chaves;
P1 D1
Identificar todos os outros atributos relevantes e associa-los a uma das entidades
P2 D2
preliminares j definidas, mantendo a soluo normalizada.
P3 D3
P4 D4

8
Relacionamento binrio de grau 1:1 Relacionamento binrio de grau 1:1
Caso 1 (1:1) - participao obrigatria das duas entidades:
Caso 2 (1:1) - participao obrigatria de apenas uma das entidades:
Todos os docentes tm de leccionar uma s disciplina;
Todos os docentes tm de leccionar uma s disciplina.
Cada disciplina tem de ser assegurada por um docente.
P1 D1
1 1 P2
P1 D1 Docente Ensina Disciplina D2
1 1
Docente Ensina Disciplina P3 D3
P2 D2
P3 D4
D3
NDoc Nome Tel #Disc Prereq
1001 Couto 721334 Inf2 Inf1
Docente (Ndoc, Nome, Tel, #Disc, Prereq)
? ? ? IG2 IG1 =>
NDoc Nome Tel #Disc Prereq
1001 Couto 721334 Inf2 Inf1
Docente (Ndoc, Nome, Tel, #Disc) Disciplina (#Disc, Prereq)
1662 Nunes 776188 SOC LP
NDoc Nome Tel #Disc #Disc Prereq
977 Peixoto 722876 Inf1 Nenhum
1001 Couto 721334 Inf2 Inf2 Inf1

IG2 IG1

Regra 1
Relacionamento binrio de grau 1:1 e participao obrigatria de ambas as entidades. Regra 2

Relacionamento binrio de grau 1:1 e participao obrigatria de apenas uma das


apenas necessrio uma entidade;
entidades.
A chave primria dessa relao pode ser a chave primria de qualquer das entidades.

So necessrias duas entidades;


A chave primria de cada entidade serve de chave primria na entidade
correspondente;
A chave primria da entidade com participao no obrigatria tem de ser usada como

9
atributo na entidade correspondente entidade cuja participao obrigatria. Docente (Ndoc, Nome, Tel, #Disc) Disciplina (#Disc, Prereq, NDoc)

Relacionamento binrio de grau 1:1 NDoc Nome Tel #Disc #Disc Prereq NDoc
1001 Couto 721334 Inf2 Inf2 Inf1 1001
Caso 3 (1:1) - sem participao obrigatria em ambas as entidades:
1662 Nunes 776188 SOC SOC LP 1662
Os docentes leccionam uma s disciplina, se no estiverem
1056 Martins 734976 ? IG2 IG1 ?
dispensados do servio docente;
Cada disciplina assegurada por um docente, excepto se for
A subdiviso da entidade em duas, segundo soluo anloga regra 2, tambm origina
opcional e se o nmero de inscries for inferior a 15 alunos.
valores nulos.

P1 D1 Docente Disciplina Leccionar


1 1 P2
Docente Ensina Disciplina D2 (Ndoc, Nome, Tel) (#Disc, Prereq) (Ndoc, #Disc)
P3 D3 NDoc Nome Tel #Disc Prereq NDoc #Disc
P4 D4 1001 Couto 721334 Inf2 Inf1 1001 Inf2
1662 Nunes 776188 SOC LP 1662 SOC
1056 Martins 734976 IG2 IG1

NDoc Nome Tel #Disc Prereq


Obs.: A chave da entidade Leccionar pode ser NDoc ou #Disc.
1001 Couto 721334 Inf2 Inf1
1662 Nunes 776188 SOC LP Regra 3
? ? ? IG2 IG1
Relacionamento binrio de grau 1:1 e participao no obrigatria em ambas as
1056 Martins 734976 ? ?
entidades.

Com a utilizao de uma s entidade, surgem valores nulos quer para as disciplinas que So necessrias trs entidades, uma para cada entidade e a terceira para o
ainda no tm docente, quer para os docentes que no leccionam nenhuma disciplina. relacionamento;
A chave primria de cada entidade serve de chave primria na entidade
correspondente;
A entidade correspondente ao relacionamento ter entre os seus atributos as chaves
primrias das duas entidades.

10
Relacionamento binrio de grau 1:N Relacionamento binrio de grau 1:N
Caso 4 (1:N) - participao obrigatria do lado N: Caso 5 (1:N) - participao no obrigatria do lado N.
(a participao obrigatria no lado 1 no afecta resultado)
P1 D1
Os docentes podem leccionar vrias disciplinas; 1 N
Docente Ensina Disciplina P2 D2
Cada disciplina tm de ser assegurada por um s docente.
P3 D3
P1 D1 D4
1 N D2
Docente Ensina Disciplina P2 NDoc Nome Tel #Disc Prereq

P3 D3 1662 Nunes 776188 SOC LP


D4 1662 Nunes 776188 SDP SOC
1056 Martins 734976 ? ?
NDoc Nome Tel #Disc Prereq
? ? ? IG2 IG1
1662 Nunes 776188 SOC LP
1662 Nunes 776188 SDP SOC Docente Disciplina Leccionar
(Ndoc, Nome, Tel) (#Disc, Prereq) (#Disc, NDoc)
1056 Martins 734976 ? ?
NDoc Nome Tel #Disc Prereq #Disc NDoc

Docente (Ndoc, Nome, Tel) Disciplina (#Disc, Prereq, NDoc) 1662 Nunes 776188 SOC LP SOC 1662
NDoc Nome Tel #Disc Prereq NDoc 1056 Martins 734976 SDP SOC SDP 1662
1662 Nunes 776188 SOC LP 1662 IG2 IG1
1056 Martins 734976 SDP SOC 1662
Regra 5
Regra 4 Relacionamento binrio de grau 1:N e participao no obrigatria do lado N.
Relacionamento binrio de grau 1:N e participao obrigatria do lado N.
So necessrias trs entidades, uma para cada entidade e a terceira para o

So necessrias duas entidades; relacionamento;

A chave primria de cada entidade serve de chave primria na entidade A chave primria de cada entidade serve de chave primria na entidade

correspondente; correspondente;

A chave primria da entidade do lado 1 tem de ser usada como atributo na entidade A entidade relativa ao relacionamento ter de ter entre os seus atributos as chaves

correspondente entidade do lado N. primrias de cada uma das entidades.

11
Relacionamento binrio de grau N:M
Docente Disciplina Leccionar
Caso 6 (N:M) - Quando o grau de relacionamento binrio N:M, independentemente do (Ndoc, Nome, Tel) (#Disc, Prereq) (#Disc, NDoc)
tipo de participao, so sempre necessrias 3 entidades. NDoc Nome Tel #Disc Prereq #Disc NDoc
Um docente pode leccionar vrias disciplinas 1001 Couto 721334 Inf2 Inf1 Inf2 1001
Uma disciplina pode ser leccionada por vrios docentes 1662 Nunes 776188 SOC LP SOC 1662
1033 Reis 716623 SDP SOC SDP 1662

D1 1052 Neves 714356 IA LP IA 1033


P1
N M
Docente Ensina Disciplina P2 D2 1056 Martins 734976 IG2 IG1 IA 1052

P3 D3
P4 D4 Regra 6
D5 Relacionamento binrio de grau N:M.

So sempre necessrias trs entidades, uma para cada entidade e uma terceira para o
NDoc Nome Tel #Disc Prereq
relacionamento;
1001 Couto 721334 Inf2 Inf1
A chave primria de cada entidade serve de chave primria na entidade
1662 Nunes 776188 SOC LP
correspondente;
1662 Nunes 776188 SDP SOC
A entidade relativa ao relacionamento ter de ter entre os seus atributos as chaves
1033 Reis 716633 IA LP
primrias de cada uma das entidades.
1052 Neves 714356 IA LP
1056 Martins 734976 ? ?
? ? ? IG2 IG1

Com a utilizao de uma s entidade, surgem valores nulos quer para as disciplinas que
ainda no tm docente, quer para os docentes que no leccionam nenhuma disciplina.

12
Relacionamentos binrios mltiplos O novo relacionamento d origem s seguintes entidades:
Aluno (N_aluno, ...., N_instrutor, ...)
Na maioria dos casos, uma entidade pode ter relacionamentos binrios com diversas Instrutor (N_Instrutor, ....)
entidades, ou seja, relacionamentos binrios mltiplos.

O Modelo final seria:


Exemplo: Aluno (N_aluno, ...., N_instrutor, ...)
Um aluno pode inscrever-se em vrios seminrios; Instrutor (N_Instrutor, ....)
Um seminrio dirigido por vrios instrutores; Seminrio (N_Seminrio, ....)
Um instrutor dirige vrios seminrios. Inscrio (N_Seminrio, N_aluno, ....)
Direco (N_seminrio, N_Instrutor,...)
N M N M
A lu n o In sc rito S e m in rio D irig id o In stru to r
Supondo ainda, que o mesmo aluno pode ter vrios instrutores, que podero ser diferentes
3 entidades 3 entidades consoante o seminrio (intervenes diferentes em cada seminrio ), o relacionamento
orientado passaria a ser do tipo N:M.
Aluno (N_aluno, ....) Instrutor (N_Instrutor, ....)
Seminrio (N_Seminrio, ....) Seminrio ( ) O modelo final passaria a ser:
Inscrio (N_Seminrio, N_aluno, ...) Direco (N_seminrio, N_Instrutor,..) Aluno (N_aluno, ....)
Instrutor (N_Instrutor, ....)
Seminrio (N_Seminrio, ....)
Supondo que um aluno tem de ser orientado por um instrutor nos vrios seminrios (a Inscrio (N_Seminrio, N_aluno, ....)
interveno do aluno sempre a mesma, mas ocorre em vrios seminrios), seria necessrio Direco (N_seminrio, N_Instrutor,...)
acrescentar outro relacionamento, obtendo-se: Orientao (N_aluno, N_Instrutor,...)

N M N M Questo:
Aluno Inscrito Seminrio Dirigido Instrutor
Quem (so) o(s) orientador(es) de um aluno num dado seminrio ?
N 1
s possvel determinar quais so os instrutores de um seminrio e quais so os
Orientado
orientadores de um dado aluno.

13
Relacionamento ternrio Resumo das regras do mtodo Entidade-Relacionamento

S e m in rio
M Relacionamento N Entidades Observaes
N P
1:1 A Chave primria pode ser a chave de
A lu n o In s c r ito I n s tru to r 1 qualquer das entidades.

Regra 7 1:1 A Chave da entidade c/ participao no


2 obrigatria tem de ser atributo na outra.
Relacionamento ternrio (e superior)

1:1 A entidade do relacionamento ter como


So sempre necessrias quatro entidades, uma para cada entidade e uma quarta para o 3 atributos as chaves de ambas as entidades
relacionamento;
A chave primria de cada entidade serve de chave primria na entidade
correspondente; 1:N A Chave da entidade do lado 1 tem de
A entidade relativa ao relacionamento ter de ter entre os seus atributos as chaves
2 ser atributo na entidade do lado N.
primrias de cada uma das entidades;
Num relacionamento de grau n so necessrias n+1 relaes, de modo inteiramente
1:N A entidade do relacionamento ter como
3 atributos as chaves de ambas as entidades.
idntico.

O modelo final passaria a ser: N:M A entidade do relacionamento ter como


Aluno (N_aluno, ....) 3 atributos as chaves de ambas as entidades.
Instrutor (N_Instrutor, ....)
Seminrio (N_Seminrio, ....)
Inscrio (N_Seminrio, N_aluno, N_instrutor,....)
A entidade do relacionamento ter como
N+1 atributos as chaves de todas as entidades.
Obs.: Se cada aluno tiver um s instrutor num dado seminrio, a chave primria da
entidade seria somente N_Aluno, N_seminrio.

14

You might also like