Você está na página 1de 10

MODELO RELACIONAL

 O modelo relacional é baseado no princípio de que as


informações em uma base de dados podem ser consideradas
como relações matemáticas e que podem ser representadas,
de maneira uniforme, através do uso de tabelas onde as linhas
representam as ocorrências de uma entidade e as colunas
representam os atributos de uma entidade do modelo conceitual.
 O modelo relacional representa o banco de dados como um
conjunto de de relações:

Fonte (adaptado): https://3.bp.blogspot.com/-OAgKpLyKhkA/VjlD3IP4lJI/AAAAAAAAAKY/CwuX9TvGDgU/s1600/a2.png

 O Domínio especifica o tipo de atributo (inteiros / reais /


conjunto de cidades...)
 O Atributo (coluna) representa o uso de um domínio dentro de
uma relação
 Informalmente, uma relação é uma tabela no modelo relacional.

RELAÇÕES (TABELAS)
 "TABELA é um conjunto DESORDENADO de tuplas exclusivas".
 As relações/tabelas são compostas de:
o Linhas (tuplas), Colunas (atributos); e Chaves Primárias e
candidatas.

Atenção:

 A ordenação das tuplas é IRRELEVANTE em uma relação (tabela)!


 A ordenação dos atributos é RELEVANTE em uma relação (tabela)!
 São relacionadas por meio de Chaves estrangeiras.
 O valor dos campos deve ser atômico:

Simples (não-divisível); e Monovalorado (só possuir um valor).

ÁLGEBRA RELACIONAL
 A Álgebra Relacional é um conjunto de operações sobre
modelos relacionais de dados. Estas operações usam uma ou
mais relações como entrada e geram uma relação de
saída (que, por sua vez, pode ser manipulada com outras
operações da álgebra relacional).

Podem ser agrupadas em duas categorias:


1) Operadores de Conjuntos Tradicionais:

 União
 Interseção
 Diferença
 Produto Cartesiano

2) Operadores Relacionais

 Seleção
 Projeção
 Junção
 Divisão
Seleção (s)
 é usada para escolher um subconjunto de tuplas (linhas) de uma
relação que satisfaça uma condição de seleção
 Exemplo: s_nome=“Daniel”(cliente)

Projeção (p)
 seleciona alguns atributos (colunas) da tabela enquanto
descarta outros.
 Exemplo: p_nome(cliente)

Produto Cartesiano (×)


 Permite-nos combinar informações de duas relações quaisquer,
resultando em uma relação nova com todos os campos
combinados.
 Exemplo: (cliente) x (veiculo)
⋈)
Junção (⋈
 A operação de junção equivale a uma operação de produto
cartesiano seguida de uma seleção, com a remoção das
colunas duplicadas:
 Exemplo: (cliente) ⋈ (veiculo)

União (U)
 A união AUB é uma relação que inclui todas as tuplas que estão
em A ou em B ou tanto em A quanto em B.
 As tuplas duplicadas são eliminadas.
 Exemplo: (clientesA) U(clientesB)

Intersecção (∩)
 A Intersecção A∩C é uma relação que inclui todas as tuplas que
estão tanto em A quanto em C.
 Exemplo: (clientesA) ∩ (clientesC)

Diferença (-)
 Permite encontrar as tuplas que estão em uma relação, mas não
em outra
 Exemplo: (clientesA) - (clientesC)

Fonte dos exemplos e leitura complementar (álgebra relacional):https://spaceprogrammer.com/bd/aprendendo-as-


principais-operacoes-da-algebra-relacional/

VISÕES
 Uma visão pode ser considerada como uma janela para um
conjunto de dados em um Banco de Dados.
 Em um Banco de Dados relacional, uma visão seria uma
relação virtual derivada a partir de uma ou mais relações do
esquema.
 As visões sempre refletem o estado atual dos dados das
relações das quais derivam

ÍNDICES
 É um recurso de recuperação de tuplas em uma tabela,
permitindo uma localização mais rápida de um registro quando
efetuada uma consulta.
CHAVES
 Antes de ficar confuso, preste atenção no seguinte:
a Superchave a Chave e todas suas combinações (Chave
Candidata, Chave Primária...) possuem a mesma finalidade:
distinguir uma linha das demais dentro de uma tabela.

Veja a partir de questões de outras bancas [aproveite para conferir os


comentários dos professores pelos links]:

 (...) a expressão chave primária identifica um conjunto de um


ou mais atributos que, tomados coletivamente,
permitem identificar de maneira unívoca uma entidade em um
conjunto de entidades, que é escolhida pelo projetista do banco
de dados como de significado principal. (CESPE, 2013)
 A chave candidata, conjunto de um ou mais atributos tomados
coletivamente, permite identificar de maneira unívoca uma
entidade em um conjunto de entidades. (CESPE, 2010)
 Superchave é um conjunto de um ou mais atributos que,
tomados coletivamente, nos permite identificar de maneira
unívoca uma entidade em um conjunto de entidades. (Nucepe
USEPI, 2015)

A diferença entre elas, vai se dar a nível das PROPRIEDADES de


cada uma delas.

 Superchave x Chave


o A grande diferença entre elas é que a irredutibilidade da
chave. Em outras palavras, a chave é uma superchave
mínima (irredutível).
o Isso quer dizer o conjunto de atributos da chave não pode
ser reduzido sem comprometer a identificação unívoca da
entidade.

 Chave -> Chave Candidata -> Chave primária

o Podemos ter, então, nesse processo de querer identificar


uma entidade no banco de dados, uma ou mais chaves
com as propriedades mencionadas (única, campos
obrigatórios e irredutível).
o Em um primeiro momento, todas as chaves são
candidatas para servirem ao seu propósito de identificar
de maneira unívoca uma entidade em um conjunto de
entidades.
o Acontece, que o designer de banco de
dados escolhe uma, dentre as candidatas para essa
função: ela é chamada de chave primária. As que
restaram, dentre as candidatas, são chamadas
de alternativas / alternadas.

 Chave Estrangeira

o É o mecanismo que permite a implementação de


relacionamentos em um banco de dados relacional.
o Na figura abaixo, perceba o seguinte:

Fonte: https://profrodrigo.leandrofranceschini.com.br/wp-content/uploads/sites/4/2017/02/chaveestrangeira2.png
Na tabela Curso, a chave primária é o atributo CodCurso.

 Na tabela Aluno, a chave primária é o atributo CodAlu (não


poderia ser CodCurso já que vários alunos podem fazer o
mesmo curso - lembram da unicidade?)

Então o relacionamento entre eles é feito pelo CodCurso:

 Na entidade Curso é chave primária.


 Na entidade Aluno, é chave estrangeira.

RELACIONAMENTOS
 Os relacionamentos de banco de dados são associações entre
tabelas que são criadas para recuperar dados.
 Podemos ter vários tipos de relacionamentos, a depender
da cardinalidade:
o 1:1 (relacionamento um para um)
o 1:N (relacionamento um para muitos)
o N:M (relacionamento muitos para muitos)
Cardinalidade: número (mínimo, máximo) de ocorrências de entidade
associadas a uma ocorrência da entidade em questão através do
relacionamento.
O relacionamento que talvez mais seja cobrado em provas de
concursos é o N:M (muitos para muitos), porque ele é o diferentão: o
relacionamento é implementado por uma tabela de ligação, os dados
não são relacionados diretamente às entidades.

Veja abaixo um exemplo:

Fonte: https://support.content.office.net/pt-br/media/948134e3-2c9d-4767-88ff-f8bbd27d5f58.png

 Na tabela Pedidos, a chave primária é o atributo ID do Pedido.


 Na tabela Produtos, a chave primária é o atributo ID

O relacionamento é N:M já que um Pedido pode conter vários


Produtos e os Produtos podem estar em vários Pedidos.
Então o relacionamento entre eles é feito pela tabela de interligação
Detalhes do Pedido:

 Só poderemos identificar de forma única um relacionamento


(Pedidos-Produtos) se soubermos o ID do Produto e o ID do
Pedido.

AS REGRAS DE CODD
Foram criadas para definir o que é necessário para que um SGBD
seja considerado relacional:
#1: as regras para informações
“Todas as informações em um banco de dados relacional são
representadas explicitamente no nível lógico e exatamente de uma
maneira - por valores em tabelas”.
#2: a regra de acesso garantido
“Cada e todos os dados (valor atômico) em um banco de dados
relacional têm a garantia de serem logicamente acessíveis pela
reclassificação de uma combinação de nomes de tabelas, valor de
chave primária e nome de coluna”.
#3: tratamento sistemático de valores nulos
“Valores nulos (distintos da string de caracteres vazia ou de uma string
de caracteres em branco ou de qualquer outro número) são
suportados completamente em um SGBD relacional para representar
de maneira sistemática as informações ausentes, independentemente
do tipo de dados”.
#4: Catálogo online dinâmico baseado no modelo relacional
“A descrição da base de dados é representada no nível lógico da
mesma maneira que os dados comuns, de modo que os usuários
autorizados podem aplicar a sua interrogação a mesma linguagem
relacional que se aplicam aos dados regulares.”
#5: A regra da sublinguagem de dados abrangentes
“Um sistema relacional pode suportar vários idiomas e vários modos
de uso do terminal (por exemplo, o modo de preencher as lacunas).
No entanto, deve haver pelo menos uma linguagem cujas declarações
sejam expressas, por alguma sintaxe bem definida, como cadeias de
caracteres e que seja abrangente no suporte de todos os seguintes
itens:

1.
o Definição de dados.
o Definição da visualização.
o Manipulação de dados (interativa e por programa).
o Restrições de integridade.
o Autorização.
o Limites da transação (início, confirmação e reversão).”

#6: A regra da visualização atualização


“Todas as visualizações que são teoricamente atualizáveis também
são atualizáveis pelo sistema.”
#7: Inserção, atualização e exclusão de alto nível
“A capacidade de lidar com uma relação de base ou uma relação
derivada como um único operando se aplica não apenas à
recuperação de dados, mas também à inserção, atualização e
exclusão de dados.”
#8: Independência de dados físicos
“Atividades de programas e atividades de terminais permanecem
logicamente intactos sempre que alguma alteração ocorrer na
representação de armazenamento ou métodos de acesso.”
#9: Independência lógica de dados
“Programas de aplicações e as atividades de terminais permanecem
logicamente intactos quando são feitas alterações de qualquer tipo as
tabelas básicas que preservam informações que teoricamente
permitem a estabilização dos dados.”
#10: Independência de integridade
“Restrições de integridade específicas para um banco de dados
relacional em particular devem ser definidas na sublinguagem de
dados relacionais passíveis de serem armazenadas no catálogo, não
nos programas de aplicação.”
#11: Independência de distribuição
“Um SGBD relacional tem independência de distribuição”
#12: A regra de não subversão
“Se um sistema relacional tiver uma linguagem de baixo nível (um
registro único por vez), essa linguagem de baixo nível não pode ser
utilizada para subverter ou contornar as regras de integridade e
restrições expressas na linguagem relacional de nível superior
(múltiplos registros de cada vez)”.

Você também pode gostar