sistemas de informação e bases de dados 2012/2013 · • muito simples e elegante: – uma base...
TRANSCRIPT
© 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