Você está na página 1de 14

Modelação de Bases de Dados

Modelo Relacional
Sistemas de Informação e Base de
Dados
Tecnologias de Comunicação
Multimédia
2ºAno - 2022/2023
Modelo Relacional
● Introduzido por Edgar Codd (1970)*
● Base de Dados Relacional:
○ Conjunto de Relações (Tabelas)
○ Conjunto de Restrições de Integridade
● Esquema de uma Relação:
○ Nome da Relação
○ Nome e Tipo de cada Atributo (Colunas)
○ Restrições de Integridade Interna
● Tuplos ou Instâncias de uma Relação:
○ Conteúdos das relações (Linhas)
○ Composto por atributos atómicos (nas Colunas)
* ver mais informação em: http://en.wikipedia.org/wiki/Edgar_F._Codd
Marco Amaro Oliveira - TCM - 2º Ano - SIBD 2
Esquema da relação e instância
● Se: A1, A2, ..., An são atributos
● R (A1, A2, ..., An ) é um esquema da relação
○ Exemplo: Filme (ano, titulo, tipo, duracao)
● R.Ai representa o atributo Ai da relação R.
○ Exemplo: Filme.titulo ou Filme.tipo
● Formalmente, dados os conjuntos D1, D2, ... Dn
(em que Di é o domínio de valores de R.Ai)
uma relação r é um subconjunto de D1 x D2 x … x Dn
● Logo, uma relação é um conjunto
de n-tuplos <v1, v2, ..., vn> onde cada vi ∈ Di
● Os valores de uma relação estão especificados através de uma tabela;
● Um elemento t de R é um tuplo, e é representado por uma linha numa tabela.
t =< v1,v2, ...,vn > em que vi é o valor do tuplo t para o atributo R.Ai.

Marco Amaro Oliveira - TCM - 2º Ano - SIBD 3


Atributos
● Uma relação é definida pelo conjunto ordenado dos seus
atributos; → (A1, A2, ..., An )

● Ao conjunto de valores válidos para um atributo chama-se


Domínio do atributo; → Dom(Ai)

● O valor especial null é um membro (i.e.existe) em todos os


domínios;

(A utilização de valores null pode causar complicações na definição


de diversas operações)

● Os atributos têm que ser atómicos, ou seja, indivisíveis;

Marco Amaro Oliveira - TCM - 2º Ano - SIBD 4


Tuplos
● Um tuplo é um elemento de uma relação,
○ i.e. é uma linha de uma tabela;

● Composto por um conjunto ordenado de valores de


atributos (Colunas)
○ Sequência ordenada de valores (a ordem é
importante).

● Numa relação os Tuplos não têm ordem.

● Os componentes de um tuplo (valores dos atributos


da relação) são atómicos.
Marco Amaro Oliveira - TCM - 2º Ano - SIBD 5
Chave de uma Relação
● Conjunto mínimo de atributos da relação tal que
não existam 2 tuplos distintos com valores iguais
nesses atributos (chave primária).

● Identifica unicamente (de forma única) cada um dos


tuplos da relação;
○ Para cada valor do(s) atributo(s) chave obtém-se
apenas um tuplo.

● Uma relação pode ter várias chaves candidatas:


○ A chave primária é uma das chaves candidatas.
○ 1 chave primária + chaves alternativas
Marco Amaro Oliveira - TCM - 2º Ano - SIBD 6
Chave Estrangeira
● Chave Estrangeira = Chave Externa = Foreign Key;

● Atributo (ou conjunto de atributos) que referencia


um atributo (ou conjunto de atributos) de uma
outra relação;

● O conjunto de atributos referenciados tem de ser


uma chave candidata na relação referenciada;

● Permite associar tuplos de uma relação aos


tuplos de outra relação.
Marco Amaro Oliveira - TCM - 2º Ano - SIBD 7
Notação
● Usar a seguinte notação:
Nome da relação
Campo-chave campo1 campo2 #chave estrangeira → Tabela

Ou

Nome da relação (campoChave, campo1, campon, #chaveEstrangeira)

Marco Amaro Oliveira - TCM - 2º Ano - SIBD 8


Restrições intrinsecas do modelo relacional
● Integridade de Entidade
○ Toda a relação deve ter uma chave primária e os valores da
chave primária devem ser únicos e não podem ser nulos:
• Unicidade da chave: não podem existir 2 tuplos diferentes
com valores iguais na chave.

● Integridade Referêncial
○ um tuplo de uma relação que referencie uma outra relação, tem
que referenciar um tuplo existente nessa relação.

● Integridade de Domínio
○ o valor de um atributo tem de pertencer ao domínio desse
mesmo atributo.

Marco Amaro Oliveira - TCM - 2º Ano - SIBD 9


Outras Restrições e Notação

● Alguns atributos não podem conter valores


nulos mesmo não sendo chaves candidatas.
Estes atributos podem ser representados
colocando um NN (Not Null) junto do atributo.

● Chaves candidatas que não sejam escolhidas


como chave primária podem ser representadas
por UK (Unique Key). Desta forma adiciona-se
uma restrição de integridade de domínio que
especifica a não existência de dois tuplos com
o mesmo valor nesse atributo.
Marco Amaro Oliveira - TCM - 2º Ano - SIBD 10
Operações sobre Relações
● Operações de Inserção
○ Permite inserir um ou mais tuplos numa relação
● Operações de Remoção
○ Remove tuplos de valores de uma tabela
● Operações de Alteração
○ Permite alterar valores dentro de um ou mais
tuplos numa relação

Marco Amaro Oliveira - TCM - 2º Ano - SIBD 11


Operações de Inserção/Alteração
● Permite inserir/alterar um ou mais tuplos numa
relação. Este tipo de operações pode violar
qualquer dos 3 tipos de restrições:
○ integridade da entidade: se o valor da chave do novo
tuplo for null ou se o valor da chave do novo tuplo já
existe num outro tuplo da tabela;
○ integridade referêncial: se o valor de uma chave
externa referir um tuplo não existente;
○ Integridade de domínio: se um dos valores de um
atributo não pertencer ao seu domínio.
● Se uma das restrições for violada, opta-se por:
○ rejeitar a operação;
○ ou tentar corrigir a razão da rejeição.
Marco Amaro Oliveira - TCM - 2º Ano - SIBD 12
Operações de Remoção
● Removem tuplos de valores de uma tabela;
● Requer uma condição sobre os atributos de forma a
selecionar o tuplo ou tuplos a serem removidos.
○ Exemplo: remover todos os empregados do
departamento 10.
● Pode ocorrer violação da integridade referêncial, no
caso do tuplo a remover estar a ser referenciado por uma
das chaves externas de outro tuplo na BD.
● Em caso de ocorrer a violação, opta-se por:
○ rejeitar a operação;
○ ou procurar propagar a operação e remover todos os tuplos
que referenciam o que está a ser removido;
○ ou alterar para null os valores dos atributos dos tuplos que
referenciam o que está a ser removido.
Marco Amaro Oliveira - TCM - 2º Ano - SIBD 13
Resumo
● Uma BD relacional é um conjunto de relações.
● A estrutura de uma relação é definida pelo seu esquema.
● Uma relação pode ser vista como uma tabela de valores, em
que cada coluna representa um atributo da relação e cada
linha é um tuplo de valores relacionados.
● Notação:
○ O esquema de uma relação R com atributos A1,A2, ...,An escreve-
se: R(A1,A2, ...,An).
○ Um tuplo de uma relação escreve-se:
t =< v1,v2, ...,vn >, onde vi é o valor do atributo Ai .
○ R.Ai representa o atributo Ai da relação R.
○ Dom(Ai) é o domínio de Ai e define o conjunto de valores que Ai
pode tomar.
○ ^ ou NULL representa o valor nulo.
Marco Amaro Oliveira - TCM - 2º Ano - SIBD 14

Você também pode gostar