BD II SISTEMAS DE INFORMAÇÃO – UNIESP/2011. AGENDA Discussão /Revisão Conceitos AR.

Slides:



Advertisements
Apresentações semelhantes
Modelo Entidade-Relacionamento
Advertisements

01/08/2011 Professor Leomir J. Borba- –
Capítulo 6 A Álgebra Relacional e o Cálculo Relacional
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Álgebra Relacional Marcelo Mendes Manaus
Laboratório WEB Professora: Viviane de Oliveira Souza Gerardi.
Banco de Dados Prof. Antonio.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Diagrama Entidade-Relacionamento – DER
Funcionalidades de um SGBD
TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula /08/2011 Professor Leomir J. Borba- –
BANCO DE DADOS EM APLICATIVOS WEB Aula 13
Prof.: Bruno Rafael de Oliveira Rodrigues
Linguagens relacionais
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Algebra relacional nomeada e não-nomeada
Subconsultas ou Consultas Aninhadas
SQL – Consultas Básicas
Márcia Jacyntha Nunes Rodrigues - DIMAP/UFRN
Modelo Relacional parte 1
SQL – DML Consultas envolvendo relacionamentos entre tabelas
SQL – DML Consulta a dados de uma tabela
ÁLGEBRA RELACIONAL Cada operador da álgebra relacional toma uma ou duas relações como sua entrada e gera uma nova relação como saída. São oito os operadores.
Álgebra Relacional – Parte 2
Profa. Aline Vasconcelos
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Gerenciamento dos Recursos de Dados
Bancos de Dados I Renata Viegas
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
SISTEMAS DE INFORMAÇÃO – UNIESP/2010
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Otimizador de consultas
Modelo de Dados Relacional
Banco de Dados Temporais (BDT)
Cálculo relacional Lílian Simão Oliveira.
Sistemas de Informação Prof. Carlos Alberto Seixas Banco de Dados II /01 UNIESP
Desenvolvendo um script SQL
QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Álgebra Relacional (Exemplos)
Modelo de Dados Descrição formal de um estrutura de 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.
Baseado no material do Professor Raul Paradeda
©Silberschatz, Korth and Sudarshan (Modificado)3.3.1Database System Concepts Capítulo 3: Modelo Relacional Estrutura das Bases de Dados Relacionais Redução.
A abordagem de banco de dados para gerenciamento de dados
Comandos SQL.
REVISÃO Comandos SQL - DML SELECT * FROM ?.
Projeto de Banco de Dados Profa. Ceça
Banco de Dados Aplicado ao Desenvolvimento de Software
BANCO DE DADOS Aula 3 Josino Rodrigues Neto© Fundamentos em Banco de Dados.
Cristina Paludo Santos URI – Campus de Santo Ângelo
Mestrado em Engenharia de Computação área de concentração Geomática
Cálculo Relacional.
Banco de Dados I I Comandos SQL
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
Banco de Dados I Unidade 6 Processamento de Consultas Otimização Lógica.
Profa. Ana Karina Barbosa Abril/2008
Fundamento de Banco de Dados
Modelo Relacional Marcelo Mendes Manaus – 2015.
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
UCSal – Bacharelado em Informática
Acesso a Banco de Dados com o JDBC Prof. M.Sc. Ronnison Reges Vidal.
Modelo relacional Fundamentos de Banco de Dados
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Modelo Relacional Introduzido por Ted Codd, da IBM Research, em Utiliza o conceito de relação matemática. Possui base teórica na teoria dos conjuntos.
Modelagem de Dados Aula 3.
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:

BD II SISTEMAS DE INFORMAÇÃO – UNIESP/2011

AGENDA Discussão /Revisão Conceitos AR

Álgebra Relacional SurgimentoSurgimento Álgebra relacional recebeu pouca atenção até a publicação do modelo relacional de E.F. Codd, um matemático especializado, em Codd propôs uma álgebra, tal como um banco de dados para linguagens de consulta. Álgebra relacional é essencialmente equivalente em poder expressivo de cálculos relacionais. Edgar Frank Codd (1923 —2003) foi um matemático britânico. Desenvolveu o modelo de banco de dados relacional, quando era pesquisador no laboratório da IBM em San José.

Definição A álgebra relacional é uma coleção de operações canônicas que são utilizadas para manipular as relações. Estas operações são utilizadas para selecionar tuplas de relações individuais e para combinar tuplas relacionadas de relações diferentes para especificar uma consulta em um determinado banco de dados. O resultado de cada operação é uma nova operação, a qual também pode ser manipulada pela álgebra relacional.

Histórico Primeiro Modelo Matématico (Lógico) Teoria de desenvolvimento Simplicidade Independência Conceitual/Físico

Conceitos -Relação e Atributos Relação (Tabelas) -> Objeto e Associação Atributo -> Propriedade

Conceitos Relação ▫Subconjunto de um produto cartesiano de uma lista de domínios ▫Conjunto: onde cada linha é um elemento ▫(único) ▫Tabela = Relação ▫Linha= Tupla

Relação nome; (único) Lista de atributos (nome : tipo)

Atributos Atômicos; (indivisível) Monovalorados; Em geral numérico ou alfanumérico (char)

Exemplo de relação NomeRGCIC Ricardo Renato Silvio

Algebra Relacional Base teórica para as LMD relacionais Completa com relação ao modelo Fechada em seu operadores 5 operadores de base: ▫2 unários ▫3 binários

Operadores Operadores Unários ▫projeção/seleção Operadores Binários ▫união/diferença (relações compativeis) ▫produto cartesiano (qualquer dupla de relações)

A Operação Select A operação select é utilizada para selecionar um subconjunto de tuplas de uma relação, sendo que estas tuplas devem satisfazer uma condição de seleção. A forma geral de uma operação select é:  ( )

Exemplos consulta1 =  salário < 2.500,00 (EMPREGADO) gera a seguinte tabela como resultado: Tabela consulta1 Nome RGCICDepto.RG Superviso r Salário Ricardo ,00 Renato ,00

Exemplo: consulta2 =  (relação = “Filho”).and. (sexo = “Feminino”) (DEPENDENTES) gera a seguinte tabela como resultado: Tabela consulta2 RG ResponsávelNome Dependente Dt. NascimentoRelaçãoSexo Adreia01/05/90FilhoFeminino

Operações com select As operações relacionais que podem ser aplicadas na operação select são: , , , , =,  além dos operadores booleanos: and, or, not. A operação select é unária, ou seja, só pode ser aplicada a uma única relação. Não é possível aplicar a operação sobre tuplas de relações distintas.

Project Operação Project A operação project seleciona um conjunto determinado de colunas de uma relação. A forma geral de uma operação project é:  ( )

Project A letra grega  representa a operação project, representa a lista de atributos que o usuário deseja selecionar e representa a relação sobre a qual a operação project será aplicada.

Exemplo: Tabela consulta3 Nome Dependente Dt. Nascimento Jorge27/12/86 Luiz18/11/79 Fernanda14/02/69 Angelo10/02/95 Adreia01/05/90 consulta3 =  Nome, Dt. Nascimento (DEPENDENTES) gera a seguinte tabela como resultado:

Seqüencialidade de Operações As operações project e select podem ser utilizadas de forma combinada, permitindo que apenas determinadas colunas de determinadas tuplas possam ser selecionadas. A forma geral de uma operação sequencializada é:  (  ( ) )

Exemplo: Tabela consulta4 NomeDepto.Salário Ricardo22.300,00 Renato31.300,00 consulta4 =  nome, depto., salario (  salario < 2.500,00 (EMPREGADO) ) produz a tabela a seguir como resultado:

Operações Matemáticas Levando em consideração que as relações podem ser tratadas como conjuntos, podemos então aplicar um conjunto de operações matemáticas sobre as mesmas. Estas operações são: união (  ), intersecção (  ) e diferença (  ). Este conjunto de operações não é unário, ou seja, podem ser aplicadas sobre mais de uma tabela, porém, existe a necessidade das tabelas possuirem tuplas exatamente do mesmo tipo.

Operações Matemáticas Estas operações podem ser definidas da seguinte forma: união - o resultado desta operação representada por R  S é uma relação T que inclui todas as tuplas que se encontram em R e todas as tuplas que se encontram em S;

Operações Matemáticas intersecção - o resultado desta operação representada por R  S é uma relação T que inclui as tuplas que se encontram em R e em S ao mesmo tempo;

Operações Matemáticas diferença - o resultado desta operação representada por R  S é uma relação T que inclui todas as tuplas que estão em R mas não estão em S.

Exemplo – passo 1 Selecione todos os empregados que trabalham no departamento número 2 ou que supervisionam empregados que trabalham no departamento número 2. Vamos primeiro selecionar todos os funcionários que trabalham no departamento número 2. consulta7 =  depto = 2 (EMPREGADOS)

Exemplo – passo 2 Tabela consulta7 NomeRGCICDepto.RG Supervisor Salário Fernando ,00 Ricardo ,00 Jorge ,00 consulta7 =  depto = 2 (EMPREGADOS)

Exemplo - Passo 3 Vamos agora selecionar os supervisores dos empregados que trabalham no departamento número 2. consulta8 =  rg_supervisor (CONSULTA7) Tabela consulta8 RG Supervisor

Exemplo – passo 4 Vamos projetar apenas o rg dos empregados selecionados: consulta9 =  rg (CONSULTA7) Tabela consulta9 RG

Exemplo – passo 5 E por fim, vamos unir as duas tabelas, obtendo o resultado final. consulta10 = CONSULTA8  CONSULTA9 Tabela consulta8 RG Supervisor Tabela consulta9 RG  Tabela consulta10 RG

Exemplo - Intersecção Leve em consideração a próxima consulta: selecione todos os empregados que desenvolvem algum projeto e que trabalham no departamento número 2;

Interseção – Passo 1 Vamos primeiro selecionar todos os empregados que trabalham em um projeto. consulta11 =  rg_empregado (EMPREGADO/PROJETO) Tabela consulta11 RG_Empregado

Passo 2 Vamos agora selecionar todos os empregados que trabalham no departamento 2. consulta12 =  rg (  depto = 2 (EMPREGADOS) ) Tabela consulta12 RG

Passo 3 Obtemos então todos os empregados que trabalham no departamento 2 e que desenvolvem algum projeto. consulta13 = CONSULTA11  CONSULTA12 Tabela consulta13 RG Tabela consulta11 RG_Empregado Tabela consulta12 RG 

Exemplo - Diferença Leve em consideração a seguinte consulta: selecione todos os usuários que não desenvolvem projetos; consulta14 =  rg_empregado (EMPREGADO/PROJETO Tabela consulta14 RG Empregado

Passo 1 consulta15 =  rg (EMPREGADOS) Tabela consulta15 RG

Passo 2 consulta16 = CONSULTA15  CONSULTA14 Tabela consulta16 RG Tabela consulta14 RG Empregado Tabela consulta15 RG 

Produto Cartesiano O produto cartesiano é uma operação binária que combina todas as tuplas de duas tabelas. Diferente da operação união, o produto cartesiano não exige que as tuplas das tabelas possuam exatamente o mesmo tipo. O produto cartesiano permite então a consulta entre tabelas relacionadas utilizando uma condição de seleção apropriada. O resultado de um produto cartesiano é uma nova tabela formada pela combinação das tuplas das tabelas sobre as quais aplicou-se a operação.

Notação O formato geral do produto cartesiano entre duas tabelas R e S é: R  S

Exemplo: Leve em consideração a seguinte consulta: encontre todos os funcionários que desenvolvem projetos em Campinas; consulta16 = EMPREGADO/PROJETO  PROJETO

Exemplo Tabela consulta16 RG EmpregadoNúmero ProjetoNomeNúmeroLocalização Financeiro 15São Paulo Motor 310Rio Claro Prédio Central20Campinas Financeiro 15São Paulo Motor 310Rio Claro Prédio Central20Campinas Financeiro 15São Paulo Motor 310Rio Claro Prédio Central20Campinas Financeiro 15São Paulo Motor 310Rio Claro Prédio Central20Campinas Financeiro 15São Paulo Motor 310Rio Claro Prédio Central20Campinas consulta16 = EMPREGADO/PROJETO  PROJETO

Exemplo – Passo 2 Vamos agora selecionar as tuplas resultantes que estão devidamente relacionadas que são as que possuem o mesmo valor em número do projeto e número e cuja localização seja ‘Campinas’. consulta17 =  rg_empregado, número (  (número_projeto = número).and. (localização = ‘Campinas’) (CONSULTA16) ) Tabela consulta17 RGNúmero A operação produto cartesiano não é muito utilizada por não oferecer um resultado otimizado.

Operação Junção A operação junção atua de forma similar á operação produto cartesiano, porém, a tabela resultante conterá apenas as combinações das tuplas que se relacionam de acordo com uma determinada condição de junção. A forma geral da operação junção entre duas tabelas R e S é a seguinte: R S

Exemplo: Leve em consideração a consulta a seguir: encontre todos os funcionários que desenvolvem projetos em Campinas; consulta18 = EMPREGADOS/PROJETOS número_projeto = número PROJETOS Tabela consulta18 RG_EmpregadoNúmero_ProjetoNomeNúmeroLocalização Financeiro 15São Paulo Motor 310Rio Claro Financeiro 15São Paulo Prédio Central20Campinas Prédio Central20Campinas

Passo 2 consulta19 =  localização = ‘Campinas’ (CONSULTA18) Tabela consulta19 RG_EmpregadoNúmero_Projet o NomeNúmeroLocalização Prédio Central20Campinas Prédio Central20Campinas

Bibliografia RAMEZ Elmasri, Shamkant Navathe; Fundamentals of Database Systems; The Benjamin CummingsPublishing Company; 1989; HENRY F. Korth, Abraham Silberschatz; Sistema de Banco de Dados; Makron Books; 1995; SQL Language - Oracle Reference Manual; Version 7.2; acessado em 29/01/2005 SETZER, V. M.. Banco de dados. 3 a ed. São Paulo: Ed. Edgard Blucher; DATE, C. J., Introdução a Sistemas de Banco de Dados, 8ª ed, Campus, Livros de referência: KORTH,.F. & SILBERSHATZ, A. Sistemas de banco de dados. São Paulo; Makron Books; 2a ed DATE, C. J., An Introduction to Database System, sixth edition, 1995.