Banco de Dados Relacional Estendido

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

Base de Dados para a Gestão de Informação de Natureza Pedagógica
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Álgebra Relacional Marcelo Mendes Manaus
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Segurança Renata Viegas.
SQL Avançado Continuação
Funcionalidades de um SGBD
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Prof. Bruno Rafael de Oliveira Rodrigues
Prof.: Bruno Rafael de Oliveira Rodrigues
Projeto de Banco de Dados
Visões Marilde Santos.
Maurício Edgar Stivanello
Banco de Dados Dedutivo
Datalog Recursivo AULA 6 PGC Sistemas de Banco de Dados
Introdução a Bancos de Dados
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consultas envolvendo relacionamentos entre tabelas
Operadores Especiais da SQL
Introdução à Engenharia da Computação
Oficina sobre banco de dados
Material III-Bimestre Wagner Santos C. de Jesus
Comandos de SQL Excel VBA II.
Banco de Dados Aplicado ao Desenvolvimento de Software - BDD
Banco de Dados II Prof. Antônio Cordeiro.
SQL Álvaro Vinícius de Souza Coêlho
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
BANCO DE DADOS UNIVERSIDADE ESTADUAL DE SANTA CRUZ
Otimizador de consultas
Design Patterns / Acesso ao banco de dados (java.sql)
Tecnologia da Informação
Banco de Dados Aplicado ao Desenvolvimento de Software
Cálculo relacional Lílian Simão Oliveira.
III – O Modelo OR Estudo de Caso, modelo Oracle 10g.
Capítulo 3: SQL Korth • Silberschatz • Sundarshan.
Treinamento sobre SQL.
QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times.
Banco de dados.
CÁLCULO RELACIONAL Lílian Simão Oliveira. Cálculo Relacional  é uma linguagem de consulta formal. Utilizando-se de uma expressão declarativa pode-se.
A Linguagem PHP Instituto Vianna Júnior Desenvolvimento para Web Prof. Lúcia Helena de Magalhães 2008.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Cálculo Relacional.
Treinamento SQL Server
Exercícios Para começar a fazer os exercícios a seguir, restaure um banco de dados que já contenha dados: Informe os comandos das resposta com o mesmo.
Banco de Dados Dedutivos
SQL Server Comando PIVOT.
Linguagem SQL Prof. Juliano.
TRABALHO DE BANCO DE DADOS – POSTGRESQL
Prof. Rebecca Arambasic AGBD LPBD Pesquisa avançada UNION / INTERSECT / EXCEPT Aula 1 / 2010.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Modelo de base de dados relacional
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale.
Conceitos básicos Professor Esp. Diego André Sant’Ana
UCSal – Bacharelado em Informática
UCSal – Bacharelado em Informática
Plano de Ensino Conceitos e Características Tipos de Banco de Dados
Linguagem de definição de dados - SQL
Salário, Sexo, R$200,00, Veículos, Idade, Marco Antônio, Masculino, R$600,00, Funcionário, Marca, 18 anos, Livros, Motoristas, Maria do Carmo, Endereço,
Acesso a Banco de Dados com o JDBC Prof. M.Sc. Ronnison Reges Vidal.
Banco de Dados Introdução à Linguagem SQL – Junção Manipulação com 3 Tabelas ou + em relacionamentos n/1 Esta aula é baseada em material produzido pelo.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
 O Modelo E-R (Entidade-Relação)
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Gestão da Tecnologia da Informação Fundamentos de Sistemas de Banco de Dados Faculdade de Tecnologia Senac Jaraguá do Sul.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Transcrição da apresentação:

Banco de Dados Relacional Estendido Igor Casa Nova dos Santos Mauricio Volkweis Astiazara

Conceito É uma extensão do modelo Relacional Mantém as qualidades do modelo sem sacrificar o fundamento relacional Alarga a aplicabilidade O torna menos restrito

Exemplos de BD Relacionais Estendidos Modelo Baseado em Lógica Relacional Encaixado

Modelo Baseado em Lógica Características Utiliza uma linguagem de consulta não procedural É baseado na lógica de primeira ordem

É baseado em dois tipos de Relação Relações Base, às vezes chamadas de BD extensional Relações Derivadas, às vezes chamadas de BD intencional

Estrutura da Consulta [Programa Datalog] Regra 2 Regra n Consulta Instrução de Consulta

Estrutura de uma Regra Cabeça Corpo NovaRelação : - Literal 1, ... , Literal n, predicado

Literal Relação (campo 1, campo 2, ... , campo n) Ex.: Depósito (agência, número, cliente, saldo) Depósito(“Tramandaí”, X , Y , Z )

Ex. de Regra Rel (Y,X): - Depósito (“Tramandaí”, X, Y, Z), Z>200

Instrução de Consulta Comando ? Depósito (“Tramandaí”, X, Y, Z) ? Comando query Query (Y): - Depósito (“Tramandaí”, X, Y, Z) Z>1000

Ex. de Programa Considerando o BD: Cliente (cliente, cidade, fone, renda, número_revistas) Interesse (cliente, interesse) Assinatura (cliente, revista)

Vamos elaborar um programa que ao final tenha uma relação que contenha o nome e o fone dos clientes que tem renda maior que R$ 1000 e interesse em informática.   R1 (N,F): - Cliente (N, C, F, R), R>1000 R2 (N,F): - Interesse (N, “informática”), R1 (N,F)

Ex. de Consulta Consultar nome e fone dos clientes da cidade de Torres que tem renda maior que 1500 e assinam menos de 3 revistas.   X (Vcliente, Vfone, Vnúmero): - Cliente (Vcliente, “Torres”, Vfone, Vrenda, Vnúmero), Vrenda>1500 Y (Vcliente, Vfone): - X (Vcliente, Vfone, Vnúmero), Vnúmero<3 Y (Vcliente, Vfone) ?

Uma expressão equivalente usando a instrução de consulta query ao invés de ? poderia ser:   X (Vcliente, Vfone, Vnúmero): - Cliente (Vcliente, “Torres”, Vfone, Vrenda, Vnúmero), Vrenda>1500 Query (Vcliente, Vfone): - X (Vcliente, Vfone, Vnúmero), Vnúmero<3

Produto Cartesiano RelProduto (X1, ... , Xn, Y1, ... , Yn): - rel1 (X1, ... , Xn), rel2 (Y1, ... ,Yn)

União RelUnião (X1, ... , Xn): - rel1 (X1, ... , Xn), predicado Ex.: Consultar nome e renda de todos os clientes de Torres e Tramandaí. Rel (A,D): - Cliente (A, “Torres”, C, D, E) Rel (A,D): - Cliente (A, “Tramandaí”, C, D, E) Outra forma equivalente seria usar a instrução query: Query (A,D) : - Cliente (A, “Torres”, C, D, E) Query (A,D) : - Cliente (A, “Tramandaí”, C, D, E)

Diferença e Negação RelDif (X1, ... , Xn): - R1 (X1, ... , Xn), ¬ R2 (X1, ... , Xn) Ex.:Consultar o nome dos clientes que tem interesse em “informática” mas não assinam a revista “Guia Digital” A(X): - Interesse (X, “informática”) B(X): - Assinatura (X, “Guia Digital”) C(X): - A(X), ¬ B(X)

Recursividade Vejamos um exemplo de sua utilização: Uma tabela de funcionários contendo o seu nome e o nome de seu gerente direto (primeiro acima dele). Este gerente também é um funcionário e está armazenado nesta mesma tabela, podendo ele também ter um superior, formando assim uma hierarquia gerencial. Funcionário (nome, gerente)

Com o Datalog esta consulta é possível utilizando recursividade Com o Datalog esta consulta é possível utilizando recursividade. Ela poderia apresentar a seguinte formulação: Rel (X): - Funcionário (X, “Bia”) Rel (X): - Funcionário (X, Y), Rel (Y) Query (X): - Rel(X) ou Rel (X)?

Funcionários sob Rel são procurados e quando encontrados são adicionados a Rel.

Vantagens A possibilidade de realizar consultas recursivas aumenta as possibilidades de modelagem e consulta. Devido à proximidade com a álgebra relacional possibilita uma “pré-otimização” da consulta aplicando-se as regras de otimização algébrica.

Modelo Relacional Encaixado Características O modelo relacional encaixado é uma extensão do módulo relacional no qual os domínios podem ser valores atômicos ou assumirem valores que são relações. Assim o valor de um atributo pode ser uma relação, e o valor de um atributo dessa relação pode ser outra relação. Isto permite a construção de um objeto complexo que pode ser representado em uma única tupla de uma relação encaixada.

Para demonstrar esse modelo usaremos o seguinte ex Para demonstrar esse modelo usaremos o seguinte ex. de BD que armazena informações sobre Documentos: Título do documento ·  Lista de autores ·  Data ·  Lista de palavras-chave, palavras relativas ao assunto que o documento trata.

Doc não normalizada Título Lista_Autor Data Lista_Palavra-chave Plano de venda {Samuel, João} 1/Abril/95 {Lucro, Estratégia} Relatório geral {João, Fábio} 17/Junho/97 {Lucro, Pessoal}

A definição do esquema de Doc Doc=(Título, Lista_Autor, Data, Lista_Palavra-chave) Lista_Autor=(Autor) Data=(Dia, Mês, Ano) Lista_Palavra-chave=(Palavra-chave)

consulta “Dê o título de todos os documentos escritos por João que dizem respeito a lucro” select Título from Doc where “João” in Lista_Autor and “Lucro” in Lista_Palavra-chave

“Dê o ano de publicação dos documentos escritos por João que dizem respeito a lucro” select Título, (select ano from data) from Doc where “João” in Lista_Autor and “Lucro” in Lista_Palavra-chave

“Dê o título e número de autores de cada documento” select Título, count (Lista_Autor) from Doc

Considerando o BD: Jogador (nome, pontuação) pontuação (rodada, pontos) Consultar o nome e total de pontos dos jogadores com mais de 100 pontos

Consultar o nome e total de pontos dos jogadores com mais de 100 pontos select nome, sum (select pontos from pontuação) from Jogador where sum (select pontos from pontuação)>100

unnest <tabela> on <campo> as <novo campo> O operador desencaixar pode transformar uma tabela que está modelada de forma encaixada (não normalizada) em uma na 1FN. Sintaxe: unnest <tabela> on <campo> as <novo campo>

Por exemplo desencaixar a lista de autores em único campo para a relação Doc:   unnest Doc on Lista_Autor as Autor

nest <tabela> on <campo> as <novo campo> O operador encaixar transforma uma tabela normalizada em uma encaixada nest <tabela> on <campo> as <novo campo>

As operações encaixar e desencaixar podem ser usadas nas consultas As operações encaixar e desencaixar podem ser usadas nas consultas. Considerando o banco de dados abaixo: Cliente (codcliente, nome, fone) NF (codcliente, data, valor)

“Dê o nome e a média de compras de cada cliente”: Select nome, avg (valor_total) From (nest (select nome, valor, codcliente from Cliente, NotaFiscal where Cliente.codcliente=NotaFiscal.codcliente) on valor as valor total)

Vantagens modelo de mais fácil entendimento e mais intuitivo usuário típico de um sistema pensa na organização das informações no modo não normalizado. A representação em 4FN exigiria que os usuários incluíssem junções