2-modelo relacional v3

Post on 07-Nov-2015

233 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Banco 3

TRANSCRIPT

Slide 1Livros 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
Banco de Dados
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
Conceitos Básicos
Modelo Relacional - Slide *
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
Conceitos Básicos
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
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
Conceitos Básicos
Aluno(nome, endereco, telefoneF)
D(telefoneF) = números
Modelo Relacional
Conceitos Básicos
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
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}
Cardinalidade de uma relação
Modelo Relacional
Conceitos Básicos
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 *
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 :
(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 *
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
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
Modelo Relacional - Slide *
Fornece uma lista de valores dos atributos para uma nova
tupla
Pode violar :
restrição de integridade referêncial
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:
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 *
“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
Á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
Á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)
mais de R$ 3.000,00
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
Álgebra Relacional
<lista de atributos> (R)
todos os empregados
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. Todas as tuplas (compatíveis) que estão em R, ou em S, ou em ambas.
R S
Ou (união) do depatamento 03.
EmpDep2 departamento=2 (Empregado)
EmpDep3 departamento=3 (Empregado)
Modelo Relacional - Slide *
Interseção - O resultado é uma relação que contém apenas as tuplas que pertencem às duas relações.
R S
que são analistas
Modelo Relacional - Slide *
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
não são analistas
Modelo Relacional - Slide *
Para as operações união, interseção e diferença as duas relações envolvidas devem ter compatibilidade: mesmo número de atributos e cada par correspondente de atributos o mesmo domínio
Modelo Relacional
Álgebra Relacional
Modelo Relacional - Slide *
Produto Cartesiano - O resultado é uma relação que contém todas as tuplas da primeira relação associadas às tuplas da segunda relação. (Análise combinatória)
R X S
Se R tem n tuplas e R tem m tuplas
R X S terá nxm tuplas
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)
Obs – Produto cartesiano apresenta tuplas com atributos combinados de duas relações.
Modelo Relacional
Álgebra Relacional
Junção (join)
O resultado é a combinação de tuplas relacionadas de duas relações em uma única tupla. Apenas as combinações de tuplas que satisfizerem a condição de junção aparecerão no resultado.
Junção entre R(A1, A2, ..., An) e S(B1, B2, ..., Bm)
é R <condição> S
Junção é um a relação Q com n+m atributos
Q (A1, A2,..., An, B1, B2, ...,Bm)
Modelo Relacional
Álgebra Relacional
Junção (join)
Exemplo : Fazer uma lista com o nome do departamento, nome do gerente e salario dos gerentes.
GerenteDep (Departamento codgerente=cod Empregado)
Resultado nomedepart,nome,salario(GerenteDep)
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
Á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 codproj(TrabalhaEm codemp=cod FuncAna)
ProjTodos codemp, codproj(TrabalhaEm)
Resultado(cod) ProjTodos ProjAna
Modelo Relacional - Slide *
Consulta 1: Liste o nome e salário 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.
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”
Modelo Relacional

top related