DESENHO de BASE de DADOS RELACIONAL Normalização Orador João Sousa ENTIDADES e RELACIONAMENTO...

Post on 17-Apr-2015

104 views 0 download

Transcript of DESENHO de BASE de DADOS RELACIONAL Normalização Orador João Sousa ENTIDADES e RELACIONAMENTO...

DESENHO de

BASE de DADOS RELACIONAL

NormalizaçãoOrador João Sousa

ENTIDADES e RELACIONAMENTO (E-R)Orador Miguel laranjeira

O modelo de Base de Dados Relacional foi desenvolvido pelo matemático Edgar Frank Cood (1924-2003) . Uma Base Dados Relacional é um conceito abstracto que define maneiras de armazenar , manipular e recuperar dados inseridos unicamente em tabelas construindo uma Base Dados.

Em 1985 Cood publicou um artigo onde definiu as 12 regras para um sistemas gerir de base Dados (SGBD) Relacional .

Base de Dados Relacional

SGBDBD

ProgramadoresProgramadores

UtilizadoresUtilizadores

Problema: Na biblioteca do ISEP os livros requisitados são registados

em livros de requisições. Foi pedido ao departamento de Informática para criar uma

base dados para registar as requisições.

Exemplo do livro de requisições :

Desenho de Base de Dados

Reqª 200Leitor nrº 20

Nome : Rui Nova

Morada : rua de cima nº 22 Telefone: 91999909

EstanteBase dados Ruben Faria I.201Engenharia Aplicada Pedro Antunes E.205

Data :11/11/2006 Data_Entrega: 12/12/2006

Biblioteca ISEP

Titulo Autor

Req_Nr Data_Req Data-Entrega Leitor_Nr Nome_Leitor Morada_Leitor Titulo_Livro Autor_Livro Lote1 10-10-2006 10-11-2006 201 António Joaquim Rua de cima nº27 Engenharia Aplicada Ruben Faria I.2011 10-10-2006 10-11-2006 201 António Joaquim Rua de cima nº27 Base Dados Pedro Faria I.2102 11-10-2006 11-11-2006 555 Susana Faria Rua de baixo nº 10 Direito Civil Santana Lopes D.5022 11-10-2006 11-11-2006 555 Susana Faria Rua de baixo nº 10 Direito dos Doentes Lopes Antunes D.504

•Problemas: – redundância da informação – mais espaço em disco, – mais tempo de processamento, – dificuldade de manutenção da integridade dos dados•Solução: – Divisão em várias tabelas relacionadas entre si.

Desenho de Base de DadosSoluçao: Criar uma tabela com os dados das requisões

Duas metodologias para resolver o problema

Normalização

Entidades e relacionamento (E-R)

Desenho de Base de Dados

A normalização é uma técnica baseada num conjunto de conceitos e regras propostos por Edgar Frank Codd destinados a obter conteúdos de ficheiros de registos (tabelas) adequados à implementação de bases de dados relacionais.

Objectivos principais da normalização

● Visão Relacional dos dados

● Não Redundância da Informação

Normalização

Objectivos principais da normalização

● Visão Relacional dos dados

Qualquer relação entre entidades devem ser vista como um

objecto informacional idêntico às entidades.

Através de linguagens de interrogação relacionais

(tipo SQL) estas relações são facilmente obtidas.

Normalização

•Não Redundância da Informação Cada dado deve ser armazenado uma única vez base de dados .Evita-se a inconsistência dos dados e reduzem-se os recursos para armazenamento da informação.

Normalização1º FORMA NORMAL

Um ficheiro está na 1º forma normal se não tiver

grupos repetidos

#Req_Nr #Livro_ID Titulo_Livro Autor_Livro Lote1 200 Engenharia Aplicada Ruben Faria I.2011 301 Base Dados Pedro Faria I.2102 700 Direito Civil Santana Lopes D.5022 702 Direito dos Doentes Lopes Antunes D.504

No caso do exemplo basta partir o ficheiro em dois :

Requisições

Livros_Requisitados

#Req_Nr Data_Req Data-Entrega Leitor_Nr Nome_Leitor Morada_Leitor1 10-10-2006 10-11-2006 201 António Joaquim Rua de cima nº272 11-10-2006 11-11-2006 555 Susana Faria Rua de baixo nº 10

Normalização

2º FORMA NORMAL

Um ficheiro está na 2º forma normal se, para além de estar na 1º forma normal, cada atributo não chave depende

funcionalmente da totalidade da chave.

#Req_Nr #Livro_ID Titulo_Livro Autor_Livro Lote1 200 Engenharia Aplicada Ruben Faria I.2011 301 Base Dados Pedro Faria I.2102 700 Direito Civil Santana Lopes D.5022 702 Direito dos Doentes Lopes Antunes D.504

Neste exemplo : Titulo_Livro + Autor_Livro + Lote só depende do #Livro_ID

Normalização

#Livro_ID Titulo_Livro Autor_Livro Lote200 Engenharia Aplicada Ruben Faria I.201301 Base Dados Pedro Faria I.210700 Direito Civil Santana Lopes D.502702 Direito dos Doentes Lopes Antunes D.504

2º FORMA NORMAL

Um ficheiro está na 2º forma normal se, para além de estar na 1º forma normal, cada atributo não chave depende

funcionalmente da totalidade da chave.

No caso do exemplo temos criar a tabela Livros :

e a tabela Livros_Requisitados fica :#Req_Nr #Livro_ID

1 2001 3012 7002 702

Normalização

3º FORMA NORMAL

Um ficheiro está na 3º forma normal se, para além de estar na 2º forma normal, os atributos não chave não depende

funcionalmente uns dos outros.

#Req_Nr Data_Req Data-Entrega Leitor_Nr Nome_Leitor Morada_Leitor1 10-10-2006 10-11-2006 201 António Joaquim Rua de cima nº272 11-10-2006 11-11-2006 555 Susana Faria Rua de baixo nº 10

Neste exemplo : Nome-Leitor + Morara_Leitor + Telefone_leitor depende do #Leitor_Nr

Normalização

#Leitor_Nr Nome_Leitor Morada_Leitor Telefone_Leitor201 António Joaquim Rua de cima nº27 91999909555 Susana Faria Rua de baixo nº 10 227445577

3º FORMA NORMAL

Um ficheiro está na 3º forma normal se, para além de estar na 2º forma normal, os atributos não chave não depende

funcionalmente uns dos outros.

No caso do exemplo temos criar a tabela Leitores :

e a tabela Requisições fica :

#Req_Nr Data_Req Data-Entrega #Leitor_Nr1 10-10-2006 10-11-2006 2012 11-10-2006 11-11-2006 555

Normalização

#Leitor_Nr Nome_Leitor Morada_Leitor Telefone_Leitor201 António Joaquim Rua de cima nº27 91999909555 Susana Faria Rua de baixo nº 10 227445577

#Req_Nr Data_Req Data-Entrega #Leitor_Nr1 10-10-2006 10-11-2006 2012 11-10-2006 11-11-2006 555

#Livro_ID Titulo_Livro Autor_Livro Lote200 Engenharia Aplicada Ruben Faria I.201301 Base Dados Pedro Faria I.210700 Direito Civil Santana Lopes D.502702 Direito dos Doentes Lopes Antunes D.504

#Req_Nr #Livro_ID1 2001 3012 7002 702

Resultado final

livros

Leitores

RequisiçoesLivros_Requisitados

Abordagem mais intuitiva ao desenho de uma base de dados.

• Partir da situação real

– biblioteca,

– processamento de encomendas,

– empresa,

– etc.

• Pretende-se representar numa BD relacional toda a informação relevante.

• Pretende-se minimizar a redundância na BD.

(E-R)

(E-R)

• Identificar – ENTIDADES – RELACIONAMENTOS entre entidades

• Em que: – Entidade: classe de objectos envolvida na situação que se pretende modelar. – Relacionamento: interacção directas entre as entidades.

(E-R)

(E-R)

Exemplo da biblioteca

• Quais são as classes de objectos relevantes no Funcionamento da biblioteca?

– Queremos guardar informação sobre as requisições de livros feitas por leitores na biblioteca.

• Podemos identificar: – Requisições – Livros – Leitores

(E-R)

Relacionamentos

• Que interacções (relevantes) existem entre estas entidades?

• Podemos identificar: – Um leitor faz requisições – Uma requisição inclui vários livros

• Nota: Não há interacção directa entre leitores e livros.

(E-R)

Tipos de relacionamentos

• 1:1 - a cada objecto da entidade A corresponde no máximo 1 objecto da entidade B.

• 1:N - a cada objecto da entidade A correspondem N objectos da entidade B. A cada objecto de B corresponde 1 de A.

• N:N - a cada objecto da entidade A correspondem vários objectos da entidade B e vice-versa.

(E-R)

Atributos de uma entidade

• Cada entidade pode ser descrita segundo um conjunto de atributos relevantes. – Livros : título, autor, colocação – Leitores: Nº de inscrição, Nome, morada – Requisições : Nº de requisição, data de requisição

• Nota: Nome do leitor não é um atributo da entidade Requisições porque é um atributo da entidade Leitores.

(E-R)

Diagrama de entidades e relacionamentos

• Representam graficamente as relacionamentos e entidades.

(E-R)

Notação de diagramas E-R

(E-R)Implementação do modelo E-R

• Para cada relacionamento de N:N entre entidades A e B – Acrescento uma entidade de junção AB e estabeleço • Relacionamento 1:N entre A e AB. • Relacionamento 1:N entre B e AB. – Identifico atributos de AB, se os houver. • Cada entidade A vai dar origem a uma tabela TA – Cada atributo da tabela vai dar origem a um campo. – Determinar qual a chave de cada tabela. • Para cada relacionamento de 1:1 ou de 1:N entre entidades A e B – Acrescentar a chave de TA a TB (exportar as chaves) . – No diagrama de relacionamentos do ACCESS defino um relacionamento entre a chave de TA e os mesmos campos em TB.

(E-R)

Exemplo de implementação

• partimos de

(E-R)

Exemplo: tratar N:N

• O relacionamento N:N entre livros e requisições dá origem a dois relacionamentos e a uma entidade de junção livros_requisitados.

(E-R)

Exemplo: tratar entidades

• As entidades dão origem às tabelas (chaves sublinhadas)

#Req_Nr Data_Req Data-Entrega #Leitor_Nr

#Livro_ID Titulo_Livro Autor_Livro Lote

#Req_Nr #Livro_ID

#Leitor_Nr Nome_Leitor Morada_Leitor Telefone_Leitor

livros

Leitores

Livros_Requisitados

Requisiçoes

(E-R)

Exemplo: tratar 1:N

• O relacionamento entre leitores e requisições faz com que se acrescente o campo N. de inscrição a requisições (com o nome Leitor).• O relacionamento entre requisições e livros requisitados faz com que se acrescente o campo Req. Nr. a livros requisitados.• O relacionamento entre livros e livros requisitados faz com que se acrescente o campo Colocação a livros requisitados (com o nome Livro)

(E-R)

Exemplo: tratar 1:N – resultado

• Ou seja, obtemos

#Req_Nr Data_Req Data-Entrega #Leitor_Nr

#Livro_ID Titulo_Livro Autor_Livro Lote

#Req_Nr #Livro_ID

#Leitor_Nr Nome_Leitor Morada_Leitor Telefone_Leitor

livros

Leitores

Livros_Requisitados

Requisiçoes

Desenho de Base de Dados

Conclusão