2-Modelo Relacional v3

37
Modelo Relacional - Slide 1 Banco de Dados Banco de Dados Modelo Relacional Modelo Relacional 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

description

Banco 3

Transcript of 2-Modelo Relacional v3

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