Você está na página 1de 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


Entidade: Abstraco de objectos ou conceitos do mundo real acerca dos quais queremos guardar informao.

Tipos de atributos
NPrprio Nome Apelido Localizaes BI Sexo Nmero Tempo_Actividade Data_nicio_activ

Atributos de uma entidade:

Caractersticas comuns aos objectos ou conceitos

representados pela entidade.

Exemplo de entidade e seus atributos: CO (nome, raa, sexo, data_nascimento) O nome de cada atributo deve ser nico, singular e no ambguo (=> utilizar prefixos ou sufixos. Exemplo: Data => Data_entrega ) Para reduzir as informaes a uma forma normalizada importa que todos os atributos sejam no decomponveis. Diz-se ento que os atributos so atmicos, ou que so atributos elementares O conjunto de todos os valores possveis para um dado atributo constitui o domnio desse atributo Existem vrios tipos de atributos: simples, compostos, multivalor e derivados

Funcionrio
Atributos Simples (Exemplo: BI)

Departamento

Atributos =>

Atributos Compostos

(Exemplo: Nome)

=> Um atributo composto pode ser considerado simples, dependendo da situao a tratar. => Quando os atributos bsicos so tratados separadamente, um atributo composto entra na entidade com todos os seus atributos bsicos ( Funcionrio: BI, Nprprio, Apelido, Sexo)

Atributos Derivados

(Exemplo: Tempo_actividade)

=> Estes atributos devem ser identificados na anlise mas no devem fazer Exemplo de atributo no atmico e no singular: Disciplinas Nome_aluno Jos Silva ... Nmero 1234 ... Disciplinas Fsica, Qumica, Histria ... parte da entidade pois podem ser calculados

Atributos Multivalor => Para

(Exemplo: Localizaes) cada atributo multivalor cria-se uma nova entidade

Exemplo(Loc_Dep: Nmero, Localizao)

Que atributos considerar na descrio de uma entidade ?


Entidades CO e DONO_DO CO vistas pelo veterinrio:

Chave primria e chaves candidatas


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 qualquer instncia; no redundante - se algum dos atributos que formam a chave 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.

Entidades CO e DONO_DO CO vistas pela administrao municipal:

CO

nome_do_co

raa

sexo

nome_do_dono

data_licen.

peso

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 freguesia ? => endereo um atributo composto que neste caso deveria ser subdividido Exemplo: Chaves candidatas: N_BI N_Eleitor, Freguesia Nome N_Eleitor N_BI Freguesia Rua

Chave forasteira ou chave externa


Chave forasteira ou chave externa: Atributo ou conjunto de atributos que aparecem como chave primria numa outra entidade relacionada.

Relacionamento
As entidades no esto isoladas, esto relacionadas com outras entidades => necessrio identificar relacionamentos para ser possvel representar correctamente o mundo real.

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

Relacionam 1:1 ento

D epartam ento

D irigido

Funcionrio

O atributo nome_do_dono : na entidade CO uma chave estrangeira na entidade DONO_DO_CO a chave primria

Relacionam 1:N ento

D epartam ento

C onstitudo N

Funcionrio

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

Relacionam N ento :M

Funcionrio

Trabalha

Projecto

Modelo de dados relacional


Todos os dados bem como os relacionamento existentes entre estes so representados por um conjunto de tabelas (relaes) relacionadas entre si: Cada tabela (entidade) tem um nome nico pelo qual referenciada; Cada coluna da tabela (atributo) tem um nome e refere-se a um dado aspecto do objecto representado; Cada coluna contm valores atmicos pertencentes ao domnio do atributo; Cada linha da tabela (tuplo) representa uma nica instncia ou um relacionamento entre entidades; Cada relao contm zero ou mais tuplos. Exemplo:

Como agrupar um conjunto de atributos


Conceito de entidade uma maneira de agrupar os atributos que correspondem a um determinado objecto ou conceito do mundo real, contudo, nem todos os agrupamentos possveis so convenientes podendo levar existncia de: informao redundante valores nulos

desperdcio de espao inconsistncia anomalias em operaes de insero,

Obra (N_Obra,

alterao ou remoo

Data_incio_obra,

Oramento,

N_empregado,

Remunerao_horria, Total_horas_empregado)

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

Rem_hor N_empreg. Rem_hor Tot_hor_e

Anomalias em operaes de insero, de alterao ou de remoo


Anomalias de insero: necessrio inserir valores nulos para os atributos cujo valor ainda no foi determinado, ou valores invlidos quando esses atributos pertencem chave primria, o que conduz a inconsistncia. (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 conhecidos. A alternativa consiste em no inserir dados de uma nova obra ou de um novo empregado enquanto a alocao no for efectuada.) A duplicao de alguns dados poder dar origem a erros de insero, o que resulta em inconsistncia. seguinte forma.

Decomposio da entidade obra


A resoluo dos problemas mencionados anteriormente consiste em decompor a entidade da

Obra

(N_Obra, Data_incio_obra, Oramento)

Empregado (N_empregado, Remunerao_horria) Alocao (N_Obra, N_empregado, Total_horas_empregado)

Existira ainda redundncia ? Ser este modelo correcto e o melhor ? Como obter este modelo ?

=> Uma das solues ser recorrer anlise de dependncias funcionais e normalizao.

Anomalias de alterao: A existncia de redundncia conduz ao perigo de aps uma actualizao, apenas parte dos dados terem sido actualizados. (No exemplo, se se alterar a data de inicio da obra, poder ocorrer uma anomalia deste tipo se no se actualizarem todas as ocorrncias da mesma obra.)

Objectivos a atingir no projecto de modelo de dados: Guardar todos os dados relevantes Eliminar todos as dados redundantes Manter o nmero de entidades reduzido a um mnimo Normalizar todas as entidades Objectivos 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)

Normalizao
Passagem de uma relao 2FN: O processo de identificao dos agrupamentos necessrios e da localizao correcta de cada atributo consiste num conjunto de tcnicas designadas por normalizao. 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 Forma normal. Separar os atributos que dependem de um subconjunto da chave, decompondo a relao em duas (ou mais) relaes.

A B A B C D B
3 Forma Normal Uma relao est na 3 forma normal (3FN) quando: estiver na 2FN;

Formas Normais
1 Forma Normal Uma relao est na 1 forma normal (1FN) quando: os domnios de todos os atributos consistem apenas em valores atmicos no existem subgrupos de atributos repetidos

os atributos que no pertencem chave no dependem de nenhum atributo que tambm no pertence chave.

Passagem de uma entidade 1FN: Eliminar subgrupos repetidos, decompondo a relao em duas (ou mais) relaes.

Passagem de uma relao 3FN:

A A

B C D

Separar os atributos que dependem de outro atributo no pertencente chave, decompondo a relao em duas (ou mais) relaes.

A B A B C D E C E

2 Forma Normal 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).

Estratgias de concepo do modelo de dados


Do particular para o geral (Bottom-up) 1) 2) 3) Relao universal; Anlise de dependncias funcionais Modelo de dados Entidade: Grandes projectos Pequenos projectos (at 6-8 entidades)

Diagrama de Entidade-Relacionamento
Nome NDoc .... #Disc Designao ....

Docente

Ensina

Disciplina

Do geral para o particular (Top-down) 1) Relao universal; 2) Anlise de relacionamentos e participaes; 3) Modelo de dados. Coisa relativa ao problema a tratar e sobre o qual h interesse em guardar/manipular informao; Uma entidade deve ter ocorrncias e deve ser possvel identificar uma ocorrncia de outra ocorrncia.

Relacionamento: Ligao entre entidades.

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

Construo de modelo de dados pelo mtodo de EntidadeRelacionamento Diagrama de ocorrncias


Identificar todas as entidades e todos os relacionamentos importantes para a situao a tratar; Construir o diagrama de Entidade-Relacionamento (DER) Encontrar o conjunto de entidades preliminares e identificar as respectivas chaves; Identificar todos os outros atributos relevantes e associa-los a uma das entidades preliminares j definidas, mantendo a soluo normalizada.

Exemplifica um relacionamento entre entidades.

Professor P1

Ensina

Disciplina

P2 P3 P4

D1 D2 D3 D4

Relacionamento binrio de grau 1:1


Caso 1 (1:1) - participao obrigatria das duas entidades: Todos os docentes tm de leccionar uma s disciplina; Cada disciplina tem de ser assegurada por um docente.

Relacionamento binrio de grau 1:1


Caso 2 (1:1) - participao obrigatria de apenas uma das entidades: Todos os docentes tm de leccionar uma s disciplina.

P1

Docente

Ensina

Disciplina

P1 P2 P3

D1 D2 D3

Docente

Ensina

Disciplina

P2 P3

D1 D2 D3 D4

NDoc Docente (Ndoc, Nome, Tel, #Disc, Prereq) NDoc 1001 1662 977 Nome Couto Nunes Peixoto Tel 721334 776188 722876 #Disc Inf2 SOC Inf1 Prereq Inf1 1001 ?

Nome Couto ?

Tel 721334 ?

#Disc Inf2 IG2

Prereq Inf1 IG1 =>

Docente (Ndoc, Nome, Tel, #Disc) LP Nenhum NDoc 1001 Nome Couto Tel 721334 #Disc Inf2

Disciplina (#Disc, Prereq) #Disc Inf2 IG2 Prereq Inf1 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; A chave primria dessa relao pode ser a chave primria de qualquer das entidades.

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

atributo na entidade correspondente entidade cuja participao obrigatria.

Docente (Ndoc, Nome, Tel, #Disc) NDoc 1001 Nome Couto Nunes Martins Tel 721334 776188 734976 #Disc Inf2 SOC ?

Disciplina (#Disc, Prereq, NDoc) #Disc Inf2 SOC IG2 Prereq Inf1 LP IG1 NDoc 1001 1662 ?

Relacionamento binrio de grau 1:1


Caso 3 (1:1) - sem participao obrigatria em ambas as entidades: Os docentes leccionam uma s disciplina, se no estiverem dispensados do servio docente; Cada disciplina assegurada por um docente, excepto se for opcional e se o nmero de inscries for inferior a 15 alunos.

1662 1056

A subdiviso da entidade em duas, segundo soluo anloga regra 2, tambm origina valores nulos.

P1

Docente

Ensina

Disciplina

P2 P3 P4

D1 D2 D3 D4

Docente (Ndoc, Nome, Tel) NDoc 1001 1662 1056 Nome Couto Nunes Martins Tel 721334 776188 734976

Disciplina (#Disc, Prereq) #Disc Inf2 SOC IG2 Prereq Inf1 LP IG1

Leccionar (Ndoc, #Disc) NDoc 1001 1662 #Disc Inf2 SOC

NDoc 1001 1662 ? 1056

Nome Couto Nunes ? Martins

Tel 721334 776188 ? 734976

#Disc Inf2 SOC IG2 ?

Prereq Inf1 LP IG1 ? Obs.: A chave da entidade Leccionar pode ser NDoc ou #Disc.

Regra 3
Relacionamento binrio de grau 1:1 e participao no obrigatria em ambas as entidades. So necessrias trs entidades, uma para cada entidade e a terceira para o 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.

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.

10

Relacionamento binrio de grau 1:N


Caso 4 (1:N) - participao obrigatria do lado N: (a participao obrigatria no lado 1 no afecta resultado) Os docentes podem leccionar vrias disciplinas; Cada disciplina tm de ser assegurada por um s docente.

Relacionamento binrio de grau 1:N


Caso 5 (1:N) - participao no obrigatria do lado N.

Docente

Ensina

P1

Disciplina

P2 P3

Docente

Ensina

P1

Disciplina

P2 P3

D1 D2 D3 D4
Prereq LP SOC ? Docente (Ndoc, Nome, Tel) NDoc Nome 1662 1056 Nunes Martins

D1 D2 D3 D4
LP SOC ? IG1 Leccionar (#Disc, NDoc) #Disc NDoc SOC SDP 1662 1662

NDoc 1662 1662 1056 ?

Nome Nunes Nunes Martins ?

Tel 776188 776188 734976 ?

#Disc SOC SDP ? IG2

Prereq

NDoc 1662 1662 1056

Nome Nunes Nunes Martins

Tel 776188 776188 734976

#Disc SOC SDP ?

Tel 776188 734976

Disciplina (#Disc, Prereq) #Disc Prereq SOC SDP IG2 LP SOC IG1

Docente (Ndoc, Nome, Tel) NDoc Nome Tel 1662 1056 Nunes Martins 776188 734976

Disciplina (#Disc, Prereq, NDoc) #Disc Prereq NDoc SOC SDP LP SOC 1662 1662

Regra 5 Regra 4
Relacionamento binrio de grau 1:N e participao obrigatria do lado N. So necessrias duas entidades; A chave primria de cada entidade serve de chave primria na entidade correspondente; A chave primria da entidade do lado 1 tem de ser usada como atributo na entidade correspondente entidade do lado N. Relacionamento binrio de grau 1:N e participao no obrigatria do lado N. So necessrias trs entidades, uma para cada entidade e a terceira para o relacionamento; A chave primria de cada entidade serve de chave primria na entidade correspondente; A entidade relativa ao relacionamento ter de ter entre os seus atributos as chaves primrias de cada uma das entidades.

11

Relacionamento binrio de grau N:M


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

Docente

Ensina

P1

Disciplina

P2 P3 P4

D2 D3 D4 D5
Prereq Inf1 LP SOC LP LP ? IG1

D1

1052 1056

Regra 6
Relacionamento binrio de grau N:M. So sempre necessrias trs entidades, uma para cada entidade e uma terceira para o relacionamento; A chave primria de cada entidade serve de chave primria na entidade correspondente; A entidade relativa ao relacionamento ter de ter entre os seus atributos as chaves primrias de cada uma das entidades.

NDoc 1001 1662 1662 1033 1052 1056 ?

Nome Couto Nunes Nunes Reis Neves Martins ?

Tel 721334 776188 776188 716633 714356 734976 ?

#Disc Inf2 SOC SDP IA IA ? IG2

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


Na maioria dos casos, uma entidade pode ter relacionamentos binrios com diversas entidades, ou seja, relacionamentos binrios mltiplos.

O novo relacionamento d origem s seguintes entidades: Aluno (N_aluno, ...., N_instrutor, ...) Instrutor (N_Instrutor, ....)

O Modelo final seria: Exemplo: Um aluno pode inscrever-se em vrios seminrios; Um seminrio dirigido por vrios instrutores; Um instrutor dirige vrios seminrios.
N A lu n o In sc rito M S e m in rio N D irig id o M In stru to r

Aluno Instrutor Seminrio Inscrio Direco

(N_aluno, ...., N_instrutor, ...) (N_Instrutor, ....) (N_Seminrio, ....) (N_Seminrio, N_aluno, ....) (N_seminrio, N_Instrutor,...)

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, ....) Seminrio (N_Seminrio, ....) Inscrio (N_Seminrio, N_aluno, ...) Instrutor (N_Instrutor, ....) Seminrio ( ) Direco (N_seminrio, N_Instrutor,..) O modelo final passaria a ser: Aluno Instrutor Seminrio Supondo que um aluno tem de ser orientado por um instrutor nos vrios seminrios (a interveno do aluno sempre a mesma, mas ocorre em vrios seminrios), seria necessrio acrescentar outro relacionamento, obtendo-se: Inscrio Direco Orientao (N_aluno, ....) (N_Instrutor, ....) (N_Seminrio, ....) (N_Seminrio, N_aluno, ....) (N_seminrio, N_Instrutor,...) (N_aluno, N_Instrutor,...)

N Aluno N Inscrito

M Seminrio

N Dirigido

M Instrutor 1

Questo: Quem (so) o(s) orientador(es) de um aluno num dado seminrio ? s possvel determinar quais so os instrutores de um seminrio e quais so os orientadores de um dado aluno.

Orientado

13

Relacionamento ternrio
S e m in rio M N A lu n o In s c r ito P I n s tru to r

Resumo das regras do mtodo Entidade-Relacionamento

Relacionamento N Entidades 1:1

Observaes A Chave primria pode ser a chave de qualquer das entidades. A Chave da entidade c/ participao no obrigatria tem de ser atributo na outra. A entidade do relacionamento ter como atributos as chaves de ambas as entidades

1 2 3

Regra 7
Relacionamento ternrio (e superior) So sempre necessrias quatro entidades, uma para cada entidade e uma quarta para o relacionamento; A chave primria de cada entidade serve de chave primria na entidade correspondente; A entidade relativa ao relacionamento ter de ter entre os seus atributos as chaves primrias de cada uma das entidades; Num relacionamento de grau n so necessrias n+1 relaes, de modo inteiramente idntico.

1:1

1:1

1:N

2 3

A Chave da entidade do lado 1 tem de ser atributo na entidade do lado N. A entidade do relacionamento ter como atributos as chaves de ambas as entidades.

1:N

O modelo final passaria a ser: Aluno Instrutor Seminrio Inscrio (N_aluno, ....) (N_Instrutor, ....) (N_Seminrio, ....) (N_Seminrio, N_aluno, N_instrutor,....)

N:M

A entidade do relacionamento ter como atributos as chaves de ambas as entidades.

N+1
Obs.: Se cada aluno tiver um s instrutor num dado seminrio, a chave primria da entidade seria somente N_Aluno, N_seminrio.

A entidade do relacionamento ter como atributos as chaves de todas as entidades.

14

Você também pode gostar