Buscar

BD - Modelo Relacional

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Modelo Relacional - Slide *
 Livros Texto : Introdução a Sistemas de Banco de Dados - Date
 Sistemas de Banco de Dados – Korth & Silberschatz 		Sistemas de Banco de Dados Fundamentos e 			Aplicações – Elmasri & Navathe
		
Modelo Relacional - Slide *
Modelo Relacional 
Conteúdo
Introdução
Conceitos Básicos
Características das Relações
Restrições de Integridade
Operações de atualização
Álgebra Relacional
Modelo Relacional - Slide *
Modelo Relacional 
Introdução
	Definido por E. F. Codd (pesquisador da IBM) em 1970. Este modelo teve grande aceitação pelas razões:
Simplicidade dos conceitos de base
Poder dos operadores de manipulação
Rigor dos conceitos (tanto estruturas como operadores)
Contribuição à coerência do sistema de informação (restrição de integridade)
Modelo Relacional - Slide *
Modelo Relacional 
Conceitos Básicos
O Modelo Relacional de Dados está fundamentado :
Aspecto de estrutura : o banco de dados é representado com uma coleção de relações (Tabelas)
Aspecto de integridade : estas relações satisfazem certas restrições de integridade
Aspectos de manipulação : as relações são manipuladas por operadores da álgebra relacional
Modelo Relacional - Slide *
Modelo Relacional 
Conceitos Básicos
O Modelo Relacional de Dados representa o banco de dados como uma coleção de relações.
Informalmente :
Uma relação se assemelha a uma tabela
Cada linha da tabela representa uma coleção de valores de dados relacionados
Cada linha de uma tabela representa um fato do mundo real – uma instância de uma entidade ou de um relacionamento
Nomes das colunas especificam o modo como se deve interpretar os valores dos dados em cada linha 
Modelo Relacional - Slide *
Modelo Relacional
 Conceitos básicos
FILMES
Modelo Relacional - Slide *
Modelo Relacional 
Conceitos Básicos
Terminologia formal do Modelo Relacional de Dados 
Uma linha é chamada de tupla
O título da coluna é chamado de atributo
A tabela é chamada de relação
Tipo de dado que descreve os possíveis valores que podem aparecer nas coluna é chamado de domínio
Modelo Relacional - Slide *
Modelo Relacional 
 Conceitos Básicos
	Esquema de uma relação
 R(A1, A2, ..., An) – composto pelo nome da relação R e um conjunto de atributos. Cada atributo A, é o nome de um papel desempenhado por algum domínio D no esquema da relação R.
	Funcionario(matricula, nome, endereco, telefoneF, telefoneC, salario)	
Modelo Relacional - Slide *
Modelo Relacional 
 Conceitos Básicos
	Domínio - dom(Ai) ou D(Ai)
	Conjunto de valores atômicos – indivisíveis 
	Aluno(nome, endereco, telefoneF) 
 D(nome) = nomes até 35 caracteres
 D(telefoneF) = números
Modelo Relacional - Slide *
Modelo Relacional 
 Conceitos Básicos
	Atributos
	 Explicita o papel de um domínio em uma relação
Os atributos de uma dada relação devem ser diferentes (teoria dos conjuntos)
Ex : Nome, Endereço, Salário
Modelo Relacional - Slide *
Modelo Relacional 
 Conceitos Básicos
Formulação matemática
Seja: 
 A1 , A2, ..., An os atributos de uma relação R
 dom(A1), dom(A2), ..., dom(An) os domínios dos respectivos atributos 
	Uma relação R é um subconjunto do produto cartesianio dos domínios que definem R
	r(R) C (dom(A1) x dom(A2) x ... x dom(An))
Modelo Relacional - Slide *
Modelo Relacional 
 Conceitos Básicos
	Tupla
	Corresponde a uma lista ordenada de valores t = <v1, v2, ..., vn>, onde cada valor de v é um elemento do dom(A) ou um valor especial nulo. Um relação r(R) é um conjunto de n-tuplas
 
	 r(R) = {t1, t2, ..., tn}
	Grau 
		Número de atributos de uma relação
	Cardinalidade de uma relação
		Número de tuplas de uma relação
Modelo Relacional - Slide *
Modelo Relacional
 Relação
Atributos
Tuplas
Grau
FILMES
Modelo Relacional - Slide *
Modelo Relacional 
Caraterísticas das Relações 
Uma relação é um conjunto de tuplas, matematicamente não existe ordenamento entre os elementos de um conjunto
Não existem tuplas duplicadas
Não existem apontadores
Todos os atributos são atômicos, valores compostos e multivalorados não são permitidos
Valores nulos representam a ausência de valor
Modelo Relacional - Slide *
Modelo Relacional 
Caraterísticas das Relações 
Interpretação da Relação 
O esquema de uma relação é uma afirmação e cada tupla um fato. Uma relação representa fatos sobre entidade e relacionamentos
 Exemplo : Funcionario(matricula, nome, endereco, telefoneR, telefoneC, funcao, salario)
(14567, Ana Santos, Rua Pará, 3456734, 99875436, analista, 3000)
(14568, Alicia Matos, Rua Ceará, 3456733, 99875435, arquiteta,4000)
(14569, Carlos Queiros, Rua Maranhão, 3456732, 99875437, engenheiro, 5000)
Modelo Relacional - Slide *
Modelo Relacional 
Notação 
Um esquema R de grau n é definido R(A1, A2,..., An)
Uma tupla numa relação r(R) é definida como t=<V1, V2,...,Vn> onde Vi é o valor correspondente ao atributo Ai
t[Ai] é o valor de Vi em t para o atributo Ai
t[Au, Aw, ...,Az] é uma lista de atributos de R que refere-se aos valores <Vu, Vw, ...Vz> da tupla t
Um atributo pode ser referenciado através do nome da relação que ele pertence. Ex: estudante.nome e estudante.end
Sendo um tupla t=<001,‘Marta’,2345678> da relação
 Aluno(matricula, nome, telefone) temos: t[matricula]=<001>; t[nome]=<‘Marta’> t[tel]=<2345678>;
Modelo Relacional - Slide *
Modelo Relacional 
Chaves
	Chaves primária : Um conjunto de atributos únicos e não nulos com característica de minimalidade, que identificam unicamente uma tupla
	Chave estrangeira: Um atributo ou uma combinação de atributos, cujos valores aparecem necessariamente na chave primária de uma outra relação ou da mesma relação.
	
	t1 [FK] = t2 [PK] ou é nulo
Modelo Relacional - Slide *
Modelo Relacional
 Chaves
Chave Primária
Modelo Relacional - Slide *
Modelo Relacional 
Restrições integridade 
Integridade de Entidade
Toda tupla de uma relação é unicamente identificada por um ou mais atributos definidos como “chave primária”, cujos valores dos atributos não pode conter nulos
Integridade Referencial
Regras de relacionamentos entre duas relações usando “chaves primárias” e “chaves estrangeiras”, com a finalidade de manter consistência na atualização
Integridade de Domínio
Faz referência ao tipo de definição do domínio
Atribuir valores ou condições na definição de atributos
Modelo Relacional - Slide *
Modelo Relacional 
Operações de atualização 
Inserção (Insert)
Fornece uma lista de valores dos atributos para uma nova
	tupla
Inserir <001, ‘Cecilia’, ‘Rua São Paulo’, 3000> em Empregado
Pode violar : 
restrição de domínio
restrição de integridade de entidade
restrição de integridade referêncial	 
Modelo Relacional - Slide *
Modelo Relacional 
Operações de atualização 
Exclusão (Delete)
Elimina uma tupla da relação, utiliza uma condição nos atributos para selecionar a tupla a ser eliminada
Excluir Empregado com matricula=123456
Pode violar:
Restrição de integridade referencial
Opções para violação:
Rejeitar a exclusão
Exclusão em cascata
Alterar para nulo
Modelo Relacional - Slide *
Modelo Relacional 
Operações de atualização 
Atualização (Update)
Altera valores de um ou mais atributos numa tupla ou tuplas. Especifica uma condição nos atributos para selecionar a tupla a ser modificada
Altere o salário da tupla Empregado com matricula=123456
para 2000
Pode violar:
Restrição de domínio para o atributo alterado
Restrição de integridade referencial se afetar um atributo que é chave estrangeira
Se afetar chave primária produz exclusão e inserção da tupla
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional
“Linguagem de consulta, que consiste em um conjunto de operações que tomam uma ou duas relações como entrada e produzem uma nova relação como resultado”
						
							Korth & Silberschatz
“Conjunto básico de operações da modelo relacional. Essas operações possibilitam ao usuário especificar solicitações básicas de recuperação. O resultado de uma recuperação é uma nova relação, que pode ter sido formada a partir de uma ou mais relações “
							Elsmari & Navathe
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
	Componente para manipulação do modelo
Conjunto de operadores que tomam relações como operandos e retornam uma relação como resultado
Operadores baseados na teoria matemática dos conjuntos
	(união, interseção, diferença, produto cartesiano) e operadores específicos (seleção/restrição, projeção, divisão e junção)
Modelo Relacional - Slide *
Modelo Relacional
 Álgebra relacional 
 
=
Join
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
	Selecionar (restrição)		
Utilizada para selecionar um subconjunto de tuplas de uma relação que satisfaça uma condição 
  <condição da seleção> (R) 
 	sigma
Selecione os empregados que ganham 
mais de R$ 3.000,00	
	 salario>3000 (Empregado)
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
	 <condição da seleção> 
	<nome do atributo> <operador de comparação> <valor constante>
				 ou 
	<nome do atributo> <operador de comparação> <nome do atributo> 
	Ex : Selecionar todos os empregados que trabalham no departamento 2 e ganham acima de 2400 ou que trabalham no departamento 3 e ganham acima de 3000
		 (departamento=2 and salario > 2400) or 
 (departamento=3 and salario>3000) (Empregado)
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
	Projeção		
Seleciona determinados atributos de uma relação
p <lista de atributos> (R) 
 pi
		
Selecione o nome e endereço de
todos os empregados
p nome,endereco (Empregado) 
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
	Operações da teoria dos conjuntos
	União - O resultado é uma relação que contém todas as tuplas de duas relações sem repetições
R  S
Selecione os empregados do departamento 02 
Ou (união) do depatamento 03.
EmpDep2   departamento=2 (Empregado) 
EmpDep3   departamento=3 (Empregado)
Resultado  EmpDep2  EmpDep3
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
	Interseção - O resultado é uma relação que contém apenas as tuplas que pertencem às duas relações.
 R  S
Selecione os empregados do departamento 01
que são analistas
EmpDep1   departamento=1 (Empregado) 
EmpAnalista   funcao=Analista (Empregado)
Resultado  EmpDep1  EmpAnalista
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
	Diferença - O resultado é uma relação que contém as tuplas que aparecem na primeira relação, mas não aparecem na segunda relação.
 R – S
	Selecione os empregados do departamento 01 que 
 não são analistas
EmpDep1   departamento=1 (Empregado) 
EmpAnalista   funcao=Analista (Empregado)
Resultado  EmpDep1 - EmpAnalista
Obs: A operações união, interseção e diferença devem ter 
compatibilidade, mesmo númerode atributos e cada atributo mesmo domínio 
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
 	Produto Cartesiano - O resultado é uma relação que contém todas as tuplas da primeira relação associadas às tuplas da segunda relação
 
 	 R X S
	
	Se R tem n tuplas e R tem m tuplas
 R X S terá nxm tuplas 
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
 	Produto Cartesiano
	Exemplo : Para cada empregado do sexo feminino gerar uma lista com todos os seus dependentes
	EmpregadoMulher   sexo=“F” (Empregado)
	EmpregadoM  p mat,nome (EmpregadoMulher) 
	DependenteEmpregado  EmpregadoM X Dependente 
	DependenteM   mat=matfunc(DependenteEmpregado) Resultado  p nome, nomedependente (DependenteM)
	Obs – Produto cartesiano apresenta tuplas com atributos combinados de duas relações. 
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
 	Junção (join)
	O resultado é a combinação de tuplas relacionadas de duas relações em uma única tupla. Permite processar relacionamentos entre relações
	Junção entre R(A1, A2, ..., An) e S(B1, B2, ..., Bm)
	
	é R |X| <condição> S
	Junção é um a relação Q com n+m atributos 
	Q (A1, A2,..., An, B1, B2, ...,Bm) 
	
	Existe a junção interna e externa
	
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
 	Junção (join)
	Exemplo : Fazer uma lista com o nome do departamento, nome do empregado e salario dos gerentes.
	GerenteDep  (Departamento |X| matgerente=mat Empregado)
	Resultado  p nomedepart,nome,salario(GerenteDep)
	
=
Join
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
 	Divisão
	Produz como resultado os elementos da primeira relação que se relacionam com todos os elementos da segunda relação. A tuplas resultantes possuem os atributos da primeira relação menos os atributos da segunda. R ¸ S
	
	
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
 	Divisão
	Exemplo : Recuperar as matriculas dos empregados que trabalham em todos os projetos nos quais Ana Santos trabalha.
	FuncAna   nome=“Ana Santos” (Empregado)
	ProjAna  p codproj(TrabalhaEm |X| matfunc=mat FuncAna)
	ProjTodos  p mat, codproj(TrabalhaEm)
	Resultado(mat)  ProjTodos ¸ ProjAna
 
	
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
 	Exercícios
	Consulta 1: Liste o nome e salario de todos os empregados que trabalham no departamento “Engenharia” e que ganham mais de 3000
	Consulta 2: Recuperar o nome e endereço de todos os empregados que trabalham para o departamento “Informática”
	Consulta 3: Para cada projeto controlado pelo departamento “Engenharia”, liste o codigo do projeto, nome, endereço e data de nascimento do gerente do departamento que controla o projeto.
	Consulta 4: Encontre o nome de todos os empregados que trabalham nos projetos controlados pelo departamento 3.
		
	
Modelo Relacional - Slide *
Modelo Relacional 
Álgebra Relacional 
 	Exercícios
	Consulta 5: Recuperar o nome dos empregados que não têm dependentes
	Consulta 6: Liste a matricula e nome dos gerentes que tenham pelo menos um dependente 
	Consulta 7: Liste nome do empregado e nome do projeto de todo os empregados que trabalham em projetos controlados pelo departamento de “Engenharia”, mas que não trabalham em projetos controlados pelo departamento de “Informática”

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais