sistemas de informação e bases de dados 2012/2013 · • muito simples e elegante: – uma base...

31
© 2012 IST Sistemas de Informação e Bases de Dados 2012/2013 Modelo Relacional Alberto Sardinha

Upload: lenga

Post on 09-Jan-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

©  2012  IST  

Sistemas de Informação e Bases de Dados 2012/2013

Modelo Relacional

Alberto Sardinha

©  2012  IST  

Bibliografia

•  Raghu Ramakrishnan, Database

Management Systems, Cap. 3

1  

©  2012  IST  

Sumário

•  Modelo Relacional •  Conversão Modelo EA para Modelo

Relacional

2  

©  2012  IST  

Concepção de uma Base de Dados – príncipios básicos

Especificação de Requisitos

• requisito funcional 1:

• requisito funcional 2:

•  …

• regra de integridade 1:

• regra de integridade 2:

• ...

Modelo Conceptual (Modelo EA, Diagrama classes UML)

Esquema Relacional

Os Requisitos Funcionais e as Regras/Restrições de Integridade são invariantes dos modelos nos vários níveis

3  

©  2012  IST  

Modelo Relacional - História

•  Criado em 1970 por Edgar Codd (IBM)

•  Muito simples e elegante:

– Uma base de dados é uma coleção de relações

– Onde cada relação “é instanciada” por uma tabela com linhas e colunas

©  2012  IST  

Modelo Relacional - História

•  Implementado usando a linguagem SQL (DDL – Data Definition Langauge)

– Para criar e manipular a estrutura das relações de um SGBD

©  2012  IST  

Relação – Def. Informal

•  Uma relação consiste:

– Num esquema de relação:

Students(sid: string, name: string, login: string, age: integer, gpa: real)

©  2012  IST  

Relação – Def. Informal

•  Uma relação consiste: – E numa “instância” da relação (conjunto de tuplos

ou registos) •  tabela ou simplesmente relação

©  2012  IST  

Restrição de domínio

•  Propriedade importante que cada instância da relação tem que satisfazer:

– Os valores que aparecem numa coluna têm que pertencer ao domínio associado a essa coluna

8  

©  2012  IST  

Restrição de domínio

•  O domínio de um campo/atributo corresponde ao tipo e restringe os valores que podem ocorrer nesse campo/atributo

•  Uma instância de relação satisfaz sempre as restrições de domínio de um esquema de relação

9  

©  2012  IST  

Relação – Definição formal •  Dados os domínios D1, D2, …. Dn

– uma relação r é um subconjunto de D1 x D2 x … x Dn

portanto

uma “instância” da relação r é um conjunto de n-tuplos (a1, a2, …, an) onde cada ai ∈ Di

©  2012  IST  

Propriedades de uma Relação

•  O grau de uma relação é o seu número de atributos (colunas ou campos)

•  A cardinalidade de uma instância de uma relação é o seu número de tuplos (linhas)

©  2012  IST  

Propriedades de uma Relação

•  Não existem dois tuplos iguais – Relação é um conjunto de tuplos únicos

•  Ordem dos tuplos é irrelevante

©  2012  IST  

Base de Dados

•  Uma base de dados relacional é uma – coleção de relações com nomes distintos

•  O esquema relacional de uma base de dados é uma – coleção de esquemas para as relações na

base de dados

©  2012  IST  

Base de Dados

•  Uma instância de uma base de dados relacional é uma – coleção de instâncias de relações

©  2012  IST  

Restrições de Integridade sobre relações

•  Uma restrição de integridade (RI)

– Condição especificada sobre o esquema da base de dados

– Restringe os dados que podem ser armazenados numa instância

©  2012  IST  

Restrições de Integridade sobre relações

•  Restrição de domínio

•  Restrição de chave

•  Restrição de Integridade Referencial (ou de Chave Estrangeira)

©  2012  IST  

Restrições de Chave

•  Super-chave –  qualquer conjunto de atributos que sirva para identificar

um tuplo –  pode conter mais atributos do que o necessário

•  Chave candidata –  conjunto mínimo de atributos necessário para identificar

um tuplo –  podem haver várias chaves candidatas

•  Chave primária –  é a chave candidata escolhida para ser chave da tabela

©  2012  IST  

Restrições de Chave

•  Uma restrição de chave

–  indica que um certo conjunto mínimo de atributos de uma relação constitui um identificador único para um tuplo

– chave candidata ou simplesmente chave

©  2012  IST  

Restrições de Chave

•  Ou seja, os seus valores identificam univocamente qualquer tuplo de uma instância

– Dois tuplos distintos não podem ter valores iguais para os atributos da chave

– Nenhum sub-conjunto de atributos da chave pode ser uma chave

©  2012  IST  

Chave Primária

•  Podem existir várias chaves candidatas por relação – Existe sempre uma chave candidata

•  De entre as chaves candidatas uma delas é escolhida para ser chave primária

Students(sid, name, login, age, gpa)

©  2012  IST  

Restrição de Integridade Referencial (ou de Chave Estrangeira)

•  Uma relação está normalmente relacionada com outras relações

•  Se os dados de uma relação são alterados, as outras relações devem ser verificadas para manter os dados consistentes

©  2012  IST  

Restrição de Integridade Referencial (ou de Chave Estrangeira)

•  A restrição de integridade que envolve duas relações mais comum é a

– Restrição de integridade referencial

©  2012  IST  

Exemplo de Chave Estrangeira

Students(sid, name, login, age, gpa) Enrolled(cid, studid, grade)

studid: FK(Students)

©  2012  IST  

Propriedades da Chave Estrangeira

•  Cada valor de studid que aparece na tabela Enrolled tem de aparecer na coluna da chave primária da tabela Students

•  Operações que podem originar violações: –  Inserir linhas em Enrolled – Remover linhas de Students

©  2012  IST  

Propriedades da Chave Estrangeira

•  A chave estrangeira pode referenciar a própria tabela

– Adicionar coluna partner à tabela Students

– Mas se o aluno não tem partner?

©  2012  IST  

Valor não preenchido

•  Valor de um atributo não preenchido indica que o valor é – desconhecido ou não aplicável

•  Por exemplo quando não existe partner

•  A chave estrangeira pode não estar preenchida sem violar a restrição de integridade referencial

©  2012  IST  

Valor não preenchido

•  Um atributo que faz parte da chave primária tem que estar sempre preenchido

•  NULL em SQL

©  2012  IST  

Outras RIs (tal como em EA)

•  Exemplo: as idades dos estudantes têm de ser maior que 18

•  Outro exemplo: o atributo studid na tabela Enrolled tem que estar sempre preenchido

©  2012  IST  

Outras RIs (tal como em EA) •  O SGBD rejeita atualizações que violem as

restrições que podem ser especificadas em SQL através de: – Restrições de tabela

•  Envolvem uma única tabela – Asserções

•  Envolvem várias tabelas

•  Falaremos da sua implementação mais à frente: – Restrições em SQL e Triggers

©  2012  IST  

Sumário

•  Modelo Relacional – Relação, tabela – Restrições domínio, chave e integridade

referencial •  Conversão Modelo EA para Modelo

Relacional

30