Você está na página 1de 17

Modelos Lógicos de Dados

• Os três modelos mais conhecidos:

– Modelo Hierárquico (1968)


Banco de Dados
– Modelo Relacional (1970)
Unidade 2 – Modelo Relacional
– Modelo em Redes (1972)

Componentes de um Modelo Lógico


de Dados:
O Modelo Relacional
• Estruturas:
• Um conjunto de Estruturas de Dados; – Domínio, Relação, Atributo, Esquema Relacional,
• Uma Álgebra (conjunto de operadores Chave Primária, Chave
Estrangeira, Domínio Primário, etc.
sobre essas estruturas); • Regras de Integridade:
• Um conjunto de Regras de Integridade; e – Integridade de Domínio;
– Integridade de Entidade;
• Uma Base Formal. – Integridade de Referência.
• Álgebra Relacional

3 4

1
Domínio
• Um domínio é um conjunto de valores
atômicos que têm uma interpretação
semântica única.
Estruturas de Dados Exemplo:
Cidade = {Belém, São Luis, Santa Catarina, Porto
Alegre, São Paulo}
• Os elementos de um domínio
compartilham a mesma semântica e
sintaxe.
5 6

Relação Visão tabular


• Uma relação R é um sub-conjunto do • O Modelo relacional oferece uma visão
produto cartesiano de n domínios Di: tabular dos dados:
R  D1 x D2 x ...Dn. n é o grau da relação. Avião AvNum AvTip AvCap

Exemplo: Tupla 10 B747 360

Avião  AvNum x Tipo x Capacidade. 12 A320 280

Avião = {<10,B747,360>,
<12,AIRB320,280>, ...}  Os elementos de uma relação são
chamados Tuplas.
7 8

2
Atributo Importância da noção de Domínio
• Um Domínio pode ser usado mais de uma vez em uma
relação. Por exemplo, os domínios Cidade e Horário na • As duas noções de domínio e atributo
relação Vôo:
são importantes pois dão ao modelo
Vôo  VôoNum x Cidade x Cidade x Horário x Horário
• A noção de atributo é introduzida para levar toda relacional uma dimensão semântica
confusão dentro de uma relação: muito interessante.
Vôo  VôoNum x Cidade-Embarque x Cidade-Destino x
Horário-Embarque x Horário-Destino
• Atributo complementa a noção de Domínio;
• Um atributo define o papel que um domínio tem dentro
de uma relação.

9 10

Chave Primária Chave Candidata


• É o atributo, ou grupo de atributos, que • Quando temos mais de um atributo que
permitem a identificação, de uma maneira
permite identificar, de uma maneira
única, das tuplas de uma relação, um é
única, as tuplas da relação.
definido como chave primária e as outras
como chaves candidatas.
• Por exemplo o atributo VôoNum na
• Ela é, às vezes, chamada de chave
relação Vôo, CPF na relação Pessoa, etc.
alternativa ou chave única.

11 12

3
Domínio Primário Chave Estrangeira (ou Externa)

• Um domínio é considerado primário se • É um atributo que sobre ele foi definido


um domínio primário (em uma outra
existe um atributo definido sobre ele,
relação) e que não é uma chave primária.
que foi definido como chave primária.
• Exemplo:
Voo (VôoNum, PilNum, AvNum, CE, CD,HE, HD)

13 14

Relação Primária Relação Estática


• É uma relação R ligada à uma outra • É toda relação que não tem ligação com outras
relação R2 que tem como chave relações:
estrangeira a chave primária de R. São relações sem chaves estrangeiras.
• Este tipo de relação descreve um conceito
• Por exemplo a relação Avião.
(entidade) de uma maneira independente das
outras relações.
• Exemplo: as relações Piloto e Avião.

15 16

4
Relação Dinâmica Esquema relacional
• É uma relação R ligada semanticamente  Um Esquema Relacional é um conjunto de
relações semanticamente ligadas. O conceito de
a uma outra relação R’ que tem como
relação permite a representação das entidades
chave estrangeira a chave primária de R. do mundo real. Por exemplo: Mercadoria,
• Exemplo: a relação Vôo é ligada às Fornecedor, Cliente, Piloto, Avião, etc.
 O mesmo conceito (a relação) permite também a
relações Avião e Piloto.
representação das ligações semânticas inter-
Vôo  VolNum x AvNum x PlNum x Cidade- entidades. Por exemplo, uma Encomenda
Embarque x Cidade-Chegada x Horário-Embarque x (estabelece uma ligação entre Cliente,
Fornecedor, e Mercadoria). Um vôo (estabelece
Horário-Chegada.
uma ligação entre Piloto e Avião), etc.
17 18

Exemplo

• PILOTO (PilNum, Nome, Endereço, Salário)


• AVIAO (AvNum, Tipo, Capacidade)
Regras de Integridade
• VOO (VôoNum, PilNum, AvNum, CE, CD, HE, HC)

19 20

5
Estrutural Vs. Semântica Regras de Integridade
Integridade
• As regras de Integridade devem
assegurar a coerência do Banco de
Semântica Estrutural
Dados.
• Elas são de dois tipos:
– Semântica; e Domínio Entidade
– Estrutural. Referência

Inserção em Superação em
uma Chave uma Chave
Estrangeira Primária
21 22

Integridade Semântica Integridade Estrutural


• A Integridade Semântica procura-se verificar • Porém a Integridade Estrutural é
a coerência da base semanticamente, isto
não pode ser verificado pelo SGBD: as regras da responsabilidade do SGBD.
semânticas devem ser indicadas pelo
Designer da Base, geralmente dentro do • Ela é dividia em três tipos:
aplicativo.
– de Domínio;
• Por exemplo, o banco de dados de uma
– de Entidade; e
companhia aérea não pode indicar o fato que
“dois vôos que usam o mesmo avião, ao – de Referência.
mesmo tempo!”.

23 24

6
Integridade de Domínio e de
Integridade de Referência
Entidade:
• A Integridade de Domínio é o controle • A Integridade Referencial indica o fato de que dentro da
base “em nenhum momento um valor de um atributo
semântico e sintático sobre os valores do chave estrangeira deve referenciar um valor não
domínio. existente (na chave primária da outra relação)”.

• A Integridade de Entidade exprime o fato • Isto pode acontecer em duas situações:


de que uma chave primária deve ser: – Na Inserção em uma Chave Estrangeira; e
– única; e – Na Supressão em uma Chave Primária.
– não nula (seu valor deve ser
especificado).

25 26

Integridade de Referência
Avião Av# TIPO CAP LOC
2 B747 280 Slz
5 A300 220 Sp Não pode deletar o
avião 6 (integ. de sup.
6 F100 110 Blm em uma CPrim)
Álgebra Relacional
? Voo Voo# Pl# Av# CE CC HE HC
VG288 10 2 Blm Slz 1540 1640
TB102 15 6 Bzl Blm 1100 1300
Não pode inserir o vôo NE441 13 2 Ftz Slz 0900 1000
TM204 (integ. de ins.
em uma CEst TM204 14 8 SP Bzl 0600 1030

27 28

7
Álgebra Relacional Álgebra Relacional
• A grande maioria das aplicações que • Linguagens de consulta formal são linguagens em
desenvolvemos utilizam um banco de dados que o usuário solicita informações à base de dados.
relacional, o que implica na utilização de Geralmente formam uma linguagem de mais alto
nível que as linguagens de programação.
consultas para obtenção de resultados.
• A Álgebra Relacional é uma linguagem de consulta
• Para isso, usamos a linguagem SQL que é a formal, porém procedimental, ou seja, o usuário dá
linguagem de pesquisa declarativa padrão as instruções ao sistema para que o mesmo realize
para banco de dados relacional. uma sequência de operações na base de dados para
calcular o resultado desejado.

29 30

Álgebra Relacional Álgebra Relacional


• A Álgebra Relacional define operadores para atuar • Há seis operações fundamentais na álgebra
nas relações (semelhante aos operadores +, -, etc. da relacional:
álgebra que estamos acostumados) para chegar ao
– Seleção
resultado desejado.
– Projeção
• A álgebra relacional é uma forma de cálculo sobre
as relações – Produto cartesiano
• A forma de trabalho desta linguagem de consulta é a – União / Interseção
de pegar uma ou mais relações (conforme – Diferença entre conjuntos
necessidade) como entrada de dados e produzirá – Renomear
uma nova relação como resultado das operações.

31 32

8
Seleção (σ) Seleção (σ)
• Seleciona tuplas que satisfazem um certo • A seleção pode ser entendida como uma
predicado ou condição. operação que filtra as tuplas de uma relação
• Representação: σ (letra grega sigma) • É uma operação unária, pois opera sobre um
único conjunto de dados.
• É uma operação que produz um
• Notação: σ predicado (relação)
subconjunto estruturalmente idêntico,
• Exemplo: Selecionar tuplas de Alunos cujo
mas apenas com os elementos do nome = Macoratti id nome sexo
conjunto original que atendem a uma – Relação Alunos 123 Macoratti M
determinada condição (chamada de 234 Miriam F
456 Jefferson M
predicado). 33 567 Janice F 34

Seleção (σ) Seleção (σ)


• σ nome = 'Macoratti' (Alunos) • Operadores de comparação : =, <, <=, >, >=, ≠
• Produz o conjunto dos elementos de alunos • Operadores lógicos: ^ (and) V (or) ¬ (not)
que atendem ao predicado [Nome = • Exemplo: Selecionar as tuplas de Alunos com
‘Macoratti’], ou seja, representa um id > 123 e id < 567
subconjunto dos alunos para o qual essa – σ id > 123 ^ id < 567
condição é avaliada como verdadeira. – Resultado
• Resultado
id nome sexo
id nome sexo 234 Miriam F
123 Macoratti M 456 Jefferson M

35 36

9
Projeção (π) Projeção (π)
• Gera novas relações excluindo alguns • Pode ser entendida como uma operação que
atributos filtra as colunas de uma relação.
• Representação: π (letra grega pi) • Por operar sobre apenas um conjunto de
• Produz um conjunto onde há um elemento entrada e, por isso, é classificada como uma
para cada elemento do conjunto de entrada, operação unária.
sendo que a estrutura dos membros do • Notação: π lista_nome_atributos (relação)
conjunto resultante é definida nos • Exemplo: π nome (Alunos) nome
argumentos da operação. – Resultado Macoratti
Miriam
Jefferson
37 Janice 38

Projeção (π) Atribuição ()


• Exemplo: Descobrir o nome e o id de todos os • Permite que o conteúdo de uma relação seja
alunos do sexo masculino atribuído (colocado) em uma variável especial,
– Neste caso será necessário combinar uma oferecendo a possibilidade de um tratamento
projeção com uma seleção. até certo ponto algorítmico para algumas
– π id, nome (σ nome = ‘M’) (Alunos) sequências de operações.
– Resultado • Atribui-se a relação resultante de uma
id nome
operação à direita de , a uma variável
123 Macoratti temporária, à esquerda, a qual poderá ser
456 Jefferson utilizada em relações subsequentes.
• Notação: variável  operação
39 40

10
Produto Cartesiano (X) Produto Cartesiano (X)
• Retorna todas as combinações de tuplas de • Essa relação resultante possuirá um número
duas relações de colunas que é igual à soma das
• O resultado do produto cartesiano de duas quantidades de colunas das duas relações
relações é uma terceira relação contendo iniciais
todas as combinações possíveis entre os • O número de linhas igual ao produto do
elementos das relações originais. número das linhas das duas relações.
• Imagine o produto cartesiano de R1 que
possui 5 colunas e 10 linhas com R2 onde
existem 3 colunas e 8 linhas
41 42

Produto Cartesiano (X) Produto Cartesiano (X)


• A relação resultante terá 5+3= 8 colunas e • Notação: relação1 x relação2 ( R1 x R2 )
10*8= 80 linhas. • Exemplo: Descobrir o nome do aluno, sexo e o
– Total de colunas do produto cartesiano: Número nome do curso para cada aluno
colunas da primeira relação + número de colunas Alunos Cursos
da segunda relação id nome sexo curso id nome
123 Macoratti M 100 100 Quimica
– Número de linhas do produto cartesiano: Número 234 Miriam F 110 110 Inglês
de linhas da primeira relação x número de linhas 456 Jefferson M 120 120 Matemática
567 Janice F 100 130 Física
da segunda relação
• Assim, cada linha dessa relação corresponderá
à concatenação de uma linha da primeira
relação com uma linha da segunda. 43 44

11
Produto Cartesiano (X) Produto Cartesiano (X)
• R  π Alunos.nome, sexo, Cursos.nome (σ • Primeiro foi feito o produto cartesiano (Alunos
Alunos.curso = Cursos.id (Alunos x Cursos) ) x Cursos) que resulta em uma relação com 6
• Resultado colunas e 16 linhas:
id nome sexo curso id nome
nome sexo nome 123 Macoratti M 100 100 Quimica
123 Macoratti M 100 110 Inglês
Macoratti M Quimica
123 Macoratti M 100 120 Matematica
Miriam F Inglês 123 Macoratti M 100 130 Fisica
Jefferson M Matemática 234 Miriam F 110 100 Quimica
234 Miriam F 110 110 Inglês
Janice F Quimica
234 Miriam F 110 120 Matematica
234 Miriam F 1100 130 Fisica
... ... ... ... ... ...

45 46

Produto Cartesiano (X) União(U)


• Depois foi feita uma seleção (filtro) pelo • Retorna a união das tuplas de duas relações
código do curso : σ Alunos.curso = Cursos.id R1 e R2 com eliminação automática de
id nome sexo curso id nome duplicatas
123 Macoratti M 100 100 Quimica
123 Miriam F 110 110 Inglês • Produz como resultado uma Relação que
123 Jefferson M 120 120 Matematica
123 Janice F 100 100 Quimica
contém todas as linhas da primeira Relação
seguidas de todas as linhas da segunda
• Em seguida, uma projeção: π nome, sexo e relação.
nome do curso nome sexo nome
Macoratti M Quimica
Miriam F Inglês
Jefferson M Matemática
Janice F Quimica
47 48

12
União(U) União(U)
• A Relação resultante possui a mesma • Alunos Professores Funcionários
id nome idade curso id nome idade setor id nome setor idade
quantidade de colunas que as relações 10 Macoratti 45 Quimica 100 Pedro 50 Quimica 10 Margarida Quimica 46
originais 20
30
Miriam 43
Bianca 21
Artes
Fisica
200
300
Maria 45
Bianca 21
Fisica
Artes
20 Jamil Fisica 32

• O número de linhas é no máximo igual à soma • Domínio:


das linhas das relações fornecidas como – id = inteiro
– nome = alfanumérico(30)
operandos
– idade = inteiro
• Notação: Relação1 U Relação2 (R1 U R2) – curso = alfanumérico(30)
• IMPORTANTE: As relações devem possuir o – setor = alfanumérico(30)
mesmo número de atributos (mesmos tipos, • A relação Alunos é compatível com Professores mas
na mesma ordem) NÃO é compatível com Funcionários
49 50

União(U) Diferença (–)


• Exemplo: Encontre uma relação com todos os • Retorna as tuplas presentes em R1 e ausentes
alunos e com todos os professores: em R2
– R  Alunos U Professores • É uma operação que requer como operandos
duas relações união-compatíveis, ou seja,
id nome idade curso
10 Macoratti 45 Quimica estruturalmente idênticas.
20 Miriam 43 Artes
30 Bianca 21 Fisica • O resultado é uma relação que possui todas as
100 Pedro 50 Quimica
200 Maria 45 Fisica linhas que existem na primeira relação e não
300 Bianca 21 Artes
existem na segunda.
• Notação : relação1 - relação2 ( R1 - R2 )
51 52

13
Diferença (–) Diferença (–)
• Alunos Professores • Exemplo: Apresente uma relação de
id nome idade curso id nome idade setor
10 Macoratti 45 Quimica 100 Pedro 50 Quimica todos os alunos que não são professores
20 Miriam 43 Artes 200 Maria 45 Fisica
30 Bianca 21 Fisica 300 Bianca 21 Artes – Resultado : R  Aluno – Professor
• Domínio: id nome idade curso
– id = inteiro 10 Macoratti 45 Quimica
20 Miriam 43 Artes
– nome = alfanumérico(30)
– idade = inteiro • Note que a DIFERENÇA não comutativa
– curso = alfanumérico(30) – Resultado : R  Professor - Aluno
– setor = alfanumérico(30)
id nome idade setor
100 Pedro 50 Quimica
200 Maria 45 Artes
53 54

Intersecção(∩) Intersecção(∩)
• Retorna as tuplas comuns a R1 e R2 • Alunos Professores
id nome idade curso id nome idade setor
• Esta é uma operação adicional que produz 10 Macoratti 45 Quimica 100 Pedro 50 Quimica
20 Miriam 43 Artes 200 Maria 45 Fisica
como resultado uma relação que contém, sem 30 Bianca 21 Fisica 300 Bianca 21 Artes
repetições, todos os elementos que são • Domínio:
comuns às duas relações fornecidas como – id = inteiro
– nome = alfanumérico(30)
operandos.
– idade = inteiro
• As relações devem ser união-compatíveis. – curso = alfanumérico(30)
• Notação : relação1 ∩ relação2 (R1 ∩ R2) – setor = alfanumérico(30)

55 56

14
Intersecção(∩) Junção Natural (|x|)
• Exemplo: Apresente uma relação de • Retorna a combinação de tuplas de duas
todos os alunos que são professores relações R1 e R2 que satisfazem um
– Resultado : R  Aluno ∩ Professor predicado;
id nome idade curso • O resultado da operação junção natural é uma
30 Bianca 21 Fisica
relação com todas as combinações das tuplas
• Existem operadores de álgebra que são
na relação1 (R1) e relação2 (R2) nas quais os
deriváveis de outros.
seus atributos em comum são iguais.
• A operação de intersecção é derivável de
união e diferença: A ∩ B = A – (A - B)
• A operação de intersecção é comutativa
– R1 ∩ R2 = R2 ∩ R1 57 58

Junção Natural (|x|) Junção Natural (|x|)


• A operação de junção foi criada porque esse • Exemplo: Realizar a junção natural das
tipo de combinação de relações é muito relações Empregados e Setores
comum, facilitando com isso a escrita de – R  Empregados |x| Setores
expressões. Empregados Setores
• A relação resultante de uma junção tem todas id nome setor
100 Macoratti Admin
setor gerente
Admin Paulino
as colunas da primeira relação e todas da 200 Jefferson Contab Contab Amelia
300 Bianca Admin RH Francisca
segunda relação. 400 Janice Contab

• Notação: R1 |x| R2 id nome setor gerente


• Resultado 100 Macoratti Admin Paulino
200 Jefferson Contab Amelia
300 Bianca Admin Paulino
59 400 Janice Contab Amelia 60

15
Junção Natural (|x|) Renomeação (ρ)
• A junção natural pode ser vista como uma • Altera o nome de uma relação e/ou dos seus
combinação de uma operação de seleção atributos
aplicada sobre uma operação de produto • Esta operação unária primitiva que redefine o
cartesiano: nome de uma relação em um contexto.
• σ <critério> (<relação1> X <relação2) • É útil para auto-relacionamentos, onde
precisamos fazer a junção de uma relação com
ela mesma.
• Cada versão da relação precisa receber um
nome diferente da outra.
61 62

Renomeação (ρ) Divisão (÷)


• Notação: ρ <novo nome> (R) • É uma operação adicional que produz como
• Exemplo: ρ <empregados> (funcionários) resultado a projeção de todos os elementos
• Renomeia a relação funcionários parra da primeira relação que se relacionam com
empregados. todos os elementos da segunda relação.
• Divisão é uma operação da álgebra relacional
utilizada quando se deseja extrair de uma
relação R1 uma determinada parte que possui
as características (valores de atributos) da
relação R2.
• Notação: R1 ÷ R2
63 64

16
Divisão (÷) Álgebra Relacional
• Exemplo: Descobrir quais funcionários
trabalham em todos os projetos
– Projetos Equipes Funcionários
ID_EMP COD_PROJ
COD_PROJ DESCRICAO ID_EMP NOME CARGO
17206-2 001
001 Sistema IRPF 17206-2 Jorge Analista
12584-7 002
002 Sistema RH 12584-7 Paula Programadora
16764-6 001
003 Sistema Banco 16764-6 Frederico DBA
17206-2 002
15698-3 Heloisa Web Master
15698-3 003
17206-2 003
– R  (π COD_PROJ (PROJETOS)) ÷ (π ID_EMP,
COD_PROJ (EQUIPE))
ID_EMP
– Resultado 17206-2 65 66

Conclusão
• Vantagens do Modelo Relacional:
– Visão simples dos dados sem nenhuma
referência à maneira como eles são armazenados.
– Segurança dos dados.
– Linguagem de consulta poderosa e quase natural.
– Simplicidade de concepção devida à
simplicidade dos conceitos.
– Rapidez de desenvolvimento.

67

17

Você também pode gostar