Você está na página 1de 34

Análise e

Desenvolvimento de
Sistemas

Prof. Camilo de Lelis


O modelo de dados Relacional
Abordagem Relacional

• Composição básica de um BD relacional


– Tabelas
• Compostas de:
– Linhas,
– Colunas,
– Chaves primárias.
• Relacionadas através de
– Chaves estrangeiras

23/08/2021 Prof. Camilo de Lelis 3


Prof. Camilo de Lelis

Entidade(tabela): algo que existe no


mundo real e é discernível de outras
entidades;

A entidade pode ou não ter existência


física;
Tabelas ou
entidades Cada entidade possui atributos que são
propriedades específicas que a
descrevem;

Cada atributo terá um valor, que se


tornará parte do banco de dados.

23/08/2021 4
Modelo de dados Relacional
• Na terminologia de um modelo relacional, uma linha é
chamada de Tupla;
• Um cabeçalho de coluna é chamado de Atributo;
• Uma tabela é chamada de Relação;
• O tipo de dados que descreve os tipos de valores que
podem aparecer em cada coluna é chamado de Domínio;

23/08/2021 Prof. Camilo de Lelis 5


Definição
Prof. Camilo de Lelis

Termo Informal Termo formal


Tabela Relação
Cabeçalho da coluna Atributo
Todos os possíveis valores da Domínio
coluna
Linha Tupla
Definição de tabela Esquema de uma relação
Tabela populada Estado da relação

23/08/2021 6
Atributos
• A cada atributo corresponde um domínio
• A especificação dos domínios é feita da seguinte forma:
– Aluno: dom(CPF) = CPF_Valido,
– dom(Nome) = Nomes,
– dom(Telefone) = Telefones_Nacionais,
– dom(Endereço) = Endereços,
– dom(numMatrícula) = NúmerosDeMatrícula
– Domínio Nomes: conjunto de até 50 caracteres
– Domínio Endereços: conjunto de até 150 caracteres
– Domínio NúmerosDeMatrícula: sequência de 7 dígitos numéricos no
padrão dddddd-d
– Domínio CPF_Valido: 11 dígitos numéricos, sendo que os últimos 2
obedecem à regra de dígito verificador
– Domínio Telefones_Nacionais: até 11 dígitos numéricos; tem que ser
um telefone válido

23/08/2021 Prof. Camilo de Lelis 7


Atributos
• Tipos
– Simples (atômicos) ou compostos
– De valor único ou multivalorados
– Armazenados ou derivados
– Complexos
– Valor nulo

23/08/2021 Prof. Camilo de Lelis 8


Atributos
• Compostos: podem ser divididos e subpartes que representam
outros atributos básicos com significados diferentes.
– Exemplos: endereço, data
• Simples:
– não são divisíveis;
• Multivalorados:
– Vários valores simultâneos para a mesma entidade;
– Exemplos: telefone para uma empresa, formação superior para uma
pessoa;
– Podem existir limites inferior e superior quanto ao número de valores
permitidos.
• Valor Único:
– Caso mais comum.

23/08/2021 Prof. Camilo de Lelis 9


Modelo de dados relacional
• Chaves (Constraints)
– Conceito usado para especificar restrições de
integridade básicas de um SGBD relacional

• Três tipos:
– Chave primária(Primary Key – PK)
– Chave alternativa (candidate Key)
– Chave estrangeira (Foreign Key – FK)

23/08/2021 Prof. Camilo de Lelis 10


Abordagem Relacional
• Chave Primária
– É uma coluna ou uma combinação de colunas
cujos valores distinguem uma linha das demais
dentro de uma tabela. (Heuser, 1998)

23/08/2021 Prof. Camilo de Lelis 11


Abordagem Relacional
• Chave estrangeira
– É uma coluna ou uma combinação de colunas,
cujos valores aparecem necessariamente na chave
primária de uma tabela (Heuser, 1998).
– A chave estrangeira é um mecanismo que permite
a implementação de relacionamentos em um
banco de dados relacional.
– Pode fazer parte da chave primária.

23/08/2021 Prof. Camilo de Lelis 12


23/08/2021 Prof. Camilo de Lelis 13
Prof. Camilo de Lelis

• Para uma chave estrangeira fazer


Chave parte de uma chave primária, ela
não poderá ser nula, ou seja, não
Estrangeira poderá ter cardinalidade (0,1) ou
(0,n).

23/08/2021 14
Modelo de dados relacional
• Domínio
– É um conjunto de valores atômicos;
– Sua especificação é definida por um tipo de dados
do qual valores de dados que formam o domínio
seja retirados;
– A especificação de um nome para este domínio é
utilizado para ajudar na interpretação de seus
valores.

23/08/2021 Prof. Camilo de Lelis 15


Exemplos
• Numero_fone_br: conjunto de
números de telefones válidos no
Brasil com 11 dígitos

• Nome_pessoa: conjunto de cadeia


de caracteres que representa os
nomes das pessoas

• Idades_empregados: possíveis
idades dos empregados de uma
empresa;
cada um deve ter um valor entre
15 e 80anos de idade

• CPF: conjunto de 11 dígitos de


números inteiros e válidos

23/08/2021 Prof. Camilo de Lelis 16


Características das Relações
• Ordenação de tuplas em uma relação
– A ordenação de tupla não é parte da definição de
uma relação;
– Muitas ordens podem ser implementadas;
– A definição de uma relação não define qualquer
ordem.

23/08/2021 Prof. Camilo de Lelis 17


Notação do Modelo Relacional
• Um esquema de relação R de grau n é indicado
por R(A1, A2 , A3, ..., An)
• Uma n-tupla t em uma relação r(R) é indicada por
t= (v1, v2, ..., vn), em que vi é o valor
correspondente ao atributo Ai
– t[Ai] e t. Ai referem-se ao valor vi em t do atributo Ai.
• As letra Q, R, S significam nomes de relação.
• As letra q, r, s significam estados da relação
• As letra t, u, v significam tuplas
23/08/2021 Prof. Camilo de Lelis 18
Notação do Modelo Relacional
• Exemplo:
– Aluno
• (também indica o conjunto corrente de tuplas nessa
relação [estado])
– Aluno.Nome (atributo nome da relação aluno)
– Aluno.Idade(atributo idade da relação aluno)
– Aluno( Nome, CPF ,...)
• Refere-se apenas ao esquema da relação

23/08/2021 Prof. Camilo de Lelis 19


Restrições de domínio
• Especificam que dentro de cada tupla, o valor de cada
atributo A deve ser um valor atômico do domínio dom(A).
• Os tipos de dados associados aos domínios incluem:
– Inteiros(inteiro curto, inteiro e inteiro longo)
– Número reais(ponto flutuante e flutuante de precisão dupla)
– Caracteres booleanos
– Cadeias de caracteres(data, hora, timestamp), etc.

23/08/2021 Prof. Camilo de Lelis 20


Restrições de chaves
• Uma relação é definida como um conjunto de tuplas
• Um conjunto de atributos identificadores são chamados de
superchave
– Especifica uma restrição de unicidade.
– Superchave pode ter atributos redundantes, chave não.
• Uma chave mínima é quando pode-se remover
atributos e ainda persistira unicidade na relação
• Um esquema de relação pode ter mais de uma chave
• Cada chave é chamada de Chave Candidata.
• Indica-se uma das chaves candidatas como chave primária.

23/08/2021 Prof. Camilo de Lelis 21


Restrições
• Restrição de integridade de entidade
– Nenhum valor de chave primária pode ser null
• Restrição de integridade referencial
– Classificada entre duas relações
– Mantêm a consistência entre as tuplas
– Uma tupla em uma relação, que faz referência a outra
relação, deve se referir a uma tupla existente nessa
relação.

23/08/2021 Prof. Camilo de Lelis 22


Restrições
• A chave estrangeira especifica a restrição de integridade
referencial entre os dois esquemas de relação R1 e R2
• Um conjunto de atributos FK do esquema da relação R1 é
uma chave estrangeira de R1, que faz referencia a relação
R2, se ela satisfazer as duas regras:
• Os atributos FK têm os mesmos domínios que os
atributos da chave primária PK deR2
– Um valor de FK em uma tupla ti, do estado corrente r1 (R1),ou
ocorre como um valor de PK para alguma tupla t2 ou é null.
– t1 [FK] = t2 [PK]a tupla t1 faz referência ou se refere à tupla t2

23/08/2021 Prof. Camilo de Lelis 23


Restrições
• Outros tipos de restrições:
– “O salário de um empregado não deve exceder o
do supervisor do empregado”
– “O número máximo de horas que um empregado
pode trabalhar por semana, em todos os
projetos é 56”
– Restrições impostas dentro do programa;
– Gatilhos e Asserções.

23/08/2021 Prof. Camilo de Lelis 24


Restrições
• Operações de atualização e Tratamento de
Violações de Restrição
– Insert
– Delete
– Update

23/08/2021 Prof. Camilo de Lelis 25


23/08/2021 Prof. Camilo de Lelis 26
Instância de um banco de dados
relacional

23/08/2021 Prof. Camilo de Lelis 27


23/08/2021 Prof. Camilo de Lelis 28
Restrição de integridade da entidade
• Nenhuma chave primária pode ter valor nulo;
• Se duas ou mais tuplas estiverem nesse
estado, não conseguiremos distingui-las,
violando a regra básica da chave primária.

23/08/2021 Prof. Camilo de Lelis 29


Insert
• fornece uma lista de atributos para uma nova tupla t
que está sendo inserida em uma relação R.
• Inserir pode violar qualquer um dos tipos de restrição:
– Domínio: violada se algum atributo não estiver contido no
domínio definido
– Chave: violada se o valor já existir em outra tupla
– Entidade: violada se o valor da chave primária for nulo
– Integridade referencial: violada se o valor de alguma chave
estrangeira em t se referir a uma tupla não existente na
outra relação;
– Em caso de violação de restrições, a ação default é rejeitar
a inserção;

23/08/2021 Prof. Camilo de Lelis 30


Restrições
• Operação Delete
– É usada para excluir tuplas
– Pode violar apenas a integridade referencial se a tupla removida for referida por
chaves estrangeiras de outras tuplas no banco de dados.

• Existem três comportamentos possíveis quando uma operação de exclusão


causa uma violação da integridade:
– Restrict: Rejeitar a exclusão
– Cascade: Propagar a exclusão (provocar um efeito cascata), excluindo todas as tuplas
que referenciam a tupla escolhida
– Set NULL ou Set default: Modificar os valores dos atributos referenciados que
causam a violação, por exemplo substituindo-os por nulo ou fazendo com que
referenciem uma tupla válida
• Naturalmente, se o atributo referenciado for parte da chave primária ele não poderá ser alterado
para nulo
• Conforme o caso, pode-se combinar esses comportamentos;
• O SGBD deve permitir a especificação do comportamento desejado em caso
de violação de integridade

23/08/2021 Prof. Camilo de Lelis 31


Restrições
• Operação Update
– Muda os valores de um ou mais atributos em uma
tupla de alguma relação R.
– É necessário especificar uma condição nos atributos da
relação para selecionar a tupla a ser modificada.
– Verifica o domínio correto.

23/08/2021 Prof. Camilo de Lelis 32


Restrições de integridade semântica
• São definidas de acordo com o problema, e portanto
não correspondem a uma situação genérica, como nas
restrições vistas até agora.
– Exemplos:
• “O número máximo de horas mensais por projeto para cada
empregado é de 100hs”;
• “O salário de um funcionário não deve ser superior ao salário de
seu supervisor”
• São definidas usando uma linguagem de especificação
de restrições, ou mecanismos como gatilhos (triggers)
e afirmações (assertivas ou assertions)
– Em SQL, os comandos CREATE ASSERTION e CREATE
TRIGGERS são usados para este fim.

23/08/2021 Prof. Camilo de Lelis 33


Restrições
• Dependência funcional
– Especifica que o valor de X determina um valor
exclusivo de Y em todos os estados de uma relação;
• Restrições de estado
– Definem as restrições às quais um estado válido do BD
precisa satisfazer;
• Restrições de transição
– Definem regras para a alteração do estado do banco
de dados
– São especificadas usando regras ativas e triggers
• Exemplo: “o salário de um empregado só pode aumentar”

23/08/2021 Prof. Camilo de Lelis 34

Você também pode gostar