Introdução
No modelo relacional a informação é apresentada através de relações (i.e. tabelas), que são manipuladas através de conjuntos intersecção, produtos cartesiano (p.e. joins), união, etc.
No modelo relacional a informação é apresentada através de relações (i.e. tabelas), que são manipuladas através de conjuntos intersecção, produtos cartesiano (p.e. joins), união, etc.
A base de dados relacional é um conjunto
de relações, e cada uma possui um número específico de atributos (i.e.
colunas) e um número variável tuplos (i.e. linhas ou instâncias).
A cada atributo é atribuído um domínio (i.e. conjunto de valores válidos) e um nome único na relação.
Por seu lado, os valores são armazenados
na intersecção entre as linhas e os atributos, pertencendo ao domínio do
atributo. Na “ausência de valor” estas assumem o valor “NULL”.
Uma operação entre conjuntos, que produz
um novo conjunto (constituído por todas as combinações entre os seus
elementos), designa-se por produto cartesiano.
Assim, uma relação é um subconjunto do
produto cartesiano de uma lista de domínios (p.e. qualquer subconjunto
de Int x String x String é uma relação).
Contudo, a informação obtida unicamente
através de produtos cartesianos entre tabelas pode ser incoerente,
despoletando a necessidade de se efectuarem joins. Estes correspondem a
produtos cartesianos complementados por uma filtragem das linhas que
obedecem a um determinado critério de equivalência.
Corolários da relação como conjunto:
· O
modelo relacional preconiza que não podem existir dois tuplos
exactamente iguais, pois representariam a mesma realidade ou seja,
informação duplicada;
· Não
podemos assumir a existência de uma ordem definida entre as linhas de
uma tabela (i.e. que esta se encontre ordenada por um ou mais
atributos).
Diferentes tipos de Keys
Chave primária ou Primary Key (doravante
designada por PK) é um conjunto minimal de atributos que permitem
identificar univocamente um tuplo de uma relação. Esta chave não pode
conter registos vazios a deve ser única (i.e. não pode conter dois
tuplos com o mesmo valor). Todas as relações têm de possuir uma cave
primária.
Ao conjunto da PK com outro atributo,
designa-se por Super-Chave (p.e. Num_cliente e Nome_cliente). Nesta
chave, apenas o atributo PK deve encontrar-se sempre preenchido e ser
único (no exemplo previamente facultado, o Nome_Cliente pode possuir
registos com a mesma informação ou com valor “NULL”.
As Chaves Candidatas ou Candidate Keys
são representadas por um conjunto de atributos, entre os quais se
encontra a PK. Desta forma, os restantes atributos são designados por
Chaves Alternativas ou Alternative Keys.
A Chave Composta ou Composed Key é
constituída por mais do que um atributo e tal como a PK deve ser única
(i.e. não podem existir registos com informação duplicada no conjunto
ordenado de valores assumidos em todos os atributos que a compõem) e não
deve conter registos “NULL”.
No processo de selecção da PK devem ser tidos em consideração os seguintes aspectos:
· Deve
ser composta por um atributo familiar ao utilizador – designadas por
Chaves Naturais (conceito inexistente no modelo relacional original);
· Por motivos de eficiência, esta deve pertencer a um domínio numérico;
· Também por motivos de eficiência, esta deve ser composta por apenas um atributo.
A Chave Estrangeira ou Foreign Key (doravante
designada por FK) corresponde ao atributo cujo domínio é composto por
valores existentes na PK e apenas em PK. Caso, o atributo em causa
possua valores “NULL” então este não será uma FK, uma vez que esse valor
não é válido na PK.
A FK permite o cruzamento de variáveis entre tabelas.
Restrição da integridade referencial
A restrição da integridade referencial
corresponde à restrição dos dados na FK imposta por uma PK, ou seja, a
FK apenas poderá conter valores não “NULL” definidos previamente na PK.
O quadro abaixo, permite-nos percepcionar
as opções que os Administradores dos sistemas possuem para gerir esta
restrição quando os utilizadores pretendem apagar, criar ou alterar as
PK’s.
Opção
|
“ON DELETE”
|
“ON UPDATE”
|
Restrict
|
A BD não permite apagar o valor da PK, sem que se apague primeiro todas as linhas com FK associadas ao valor
|
A BD não permite criar/alterar o registo
|
Cascade
|
A BD permite apagar o valor da PK, apagando automaticamente todas as linhas com FK associadas a esse valor
|
Ao alterar a PK, a BD automaticamente actualiza todos os registos na FK.
|
Set NULL
|
A BD permite apagar o valor da PK, e
automaticamente todos os registos de FK associadas a esse valor, passam a
assumir o valor “NULL”
|
Ao alterar a PK, a BD automaticamente actualiza todos os registos na FK com o valor “NULL”.
|
Quadro 1 – Restrição da integridade referencial
Os Administradores possuem ainda outros tipos de restrições que lhes permite gerir a integridade dos dados:
· Definir o atributo como PK ou FK;
· Definir se o atributo pode ou não assumir valores “NULL”;
· Definir o atributo como “UNIQUE”, ou seja, definir se este pode ou não possuir registos duplicados;
· Definir validações por lógica envolvendo um ou mais atributos e operadores lógicos;
· Definir o “valor por omissão”, ou seja, o valor que é automaticamente preenchido no caso de existirem registos vazios;
· Definir descritivos textuais (i.e. comentários) sobre o objectivo do atributo.
Referências
Professor José Farinha (2011): Apontamentos e documentação em formato digital, facultada no âmbito do MSIAD do ISCTE-IUL.
---------------------------------------------------
Candidatar ao Mestrado em Sistemas Integrados de Apoio à Decisão (MSIAD) - ISCTE-IUL
Comentários
Enviar um comentário
Seja bem vindo!