Baixe o app para aproveitar ainda mais
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”
Compartilhar