Seleção, Projeção, Produto Cartesiano e Junção



Documentos relacionados
Operações relacionais e Álgebra relacional

Modelo Lógico: Tabelas, Chaves Primárias e Estrangeiras

Operações Relacionais Binárias. Junção Divisão

Álgebra Relacional. Banco de Dados. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Uma Proposta para Bancos de Dados Categoriais

Álgebra Relacional. Linguagens de consultas relacionais

Métodos Formais. Agenda. Relações Binárias Relações e Banco de Dados Operações nas Relações Resumo Relações Funções. Relações e Funções

Álgebra Relacional. Banco de Dados. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Profa. Dra. Cristina Dutra de Aguiar Ciferri

MODELO LÓGICO: TABELAS, CHAVES PRIMÁRIAS E ESTRANGEIRAS

Banco de Dados. Prof. Antonio

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

Bases de Dados BDDAD. Álgebra Relacional. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/33

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Modelagem de Dados. Prof. Paulo Cesar F. De Oliveira, BSc, PhD. Álgebra Relacional

Álgebra Relacional. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

Banco de Dados. Prof. Gleison Batista de Sousa Aula 01

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

Banco de dados. Aula 22 O Comando SELECT. 1 Wedson Quintanilha da Silva -

1. Álgebra Relacional e Operações Relacionais

Page 1. Prof. Constantino Jacob

Banco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

INE 5323 Banco de Dados I

Programação com Acesso a Banco de Dados

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Pró-Reitoria de Graduação - PROGRAD Plano de Ensino 2016/2

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

ÁLGEBRA E CÁLCULO RELACIONAL

Roteiro. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

Sistemas de Informação (SI) Gestão da informação e de banco de dados (II)

Banco de Dados II. Transações. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

ANÁLISE DE DESEMPENHO DE DIFERENTES SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS EM DIFERENTES AMBIENTES RESUMO

Um modelo por si próprio não pode realizar qualquer unidade de trabalho útil. É apenas uma representação da realidade.

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSORA RESPONSÁVEL: Roberta Macêdo Marques Gouveia

=...= 1,0 = 1,00 = 1,000...

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

Bancos de Dados Notas de Aula Álgebra Relacional Introdução Prof. Dr. Daniel A. Furtado

GBC043 Sistemas de Banco de Dados

SQL Básica DML. Prof. Marcos A. Schreiner. 22 de outubro de Curso de Licenciatura em Computação

Modelagem de Dados. Aula 01. Os direitos desta obra foram cedidos à Universidade Nove de Julho

SQL Structured Query Language. SQL Structured Query Language. SQL Structured Query Language. Composição do SQL. Composição do SQL.

ANÁLISE E PROJETO DE BANCO DE DADOS

Linguagem de Consulta - SQL

Banco de Dados I Módulo III: Linguagens de Consulta. (Aula 1) Clodis Boscarioli

O modelo de dados relacional e as restrições de um banco de dados relacional

Banco de Dados Modelo Relacional, Algebra Relacional, SQL

Rápida revisão do Modelo Relacional

Manipulação de Dados com SQL

Introdução. Introdução. Álgebra Relacional. Linguagens formais de Consulta Modelo Relacional. O que foi visto até agora...

Caderno de Introdução Bases Dados

Plano de Ensino IDENTIFICAÇÃO

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

O PENSAMENTO ALGÉBRICO

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Capítulo VI Circuitos Aritméticos

Roteiro. Modelagem com Entidade-Relacionamento Estendido. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa.

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Linguagem de Consulta Estruturada SQL- DML

Roteiro. Mapeamento dos Modelos ER e EER. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento

Figura 1 - Somador para dois números de 4 bits com extensores lógicos (EL) e Aritméticos(EA).

Plano de Ensino IDENTIFICAÇÃO

Prof.ª: Dr. Maria Lúcia Pozzatti Flôres Organização: Gilberto Raitz Junior

AULA 01 Bancos de Dados Relacionais Arquitetura Linguagem SQL Componentes: DDL, DML, DCL. Prof. Msc. Célio R. Castelano

ROTEIRO. Operações da Álgebra Relacional Operadores Binários da Álgebra Relacional Produto Cartesiano

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Álgebra Relacional. Introdução. Introdução. Álgebra Relacional

LINGUAGEM, TIPOS DE USUÁRIOS DE SGBD E MODELOS DE DADOS

Tipos de Banco de Dados - Apresentação

Fundamentos de Lógica Matemática

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

TECNOLOGIA EM SISTEMAS PARA INTERNET. Banco de dados em aplicativos WEB. Aula 5

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

ANÁLISE E PROJETO DE BANCO DE DADOS

OBJETIVO GERAL DA DISCIPLINA

CURSO PRÉ-VESTIBULAR MATEMÁTICA AULA 2 TEORIA DOS CONJUNTOS

STRUCTURED QUERY LANGUAGE (SQL)

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

SQL Básica. Andre Noel

Banco de Dados - Conceitos. Baseado no material da Profa. Vania Bogorny (UFSC)

Introdução a Sistemas de Bancos de Dados

A U L A 1 I N T R O D U Ç Ã O A B A N C O D E D A D O S E V I S Ã O G E R A L D O S Q L

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

FRAÇÃO Definição e Operações

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

António Rocha Nuno Melo e Castro

1 Teoria de conjuntos e lógica

Transcrição:

Seleção, Projeção, Produto Cartesiano e Junção Apresentar as operações de seleção, projeção e junção com a linguagem principal utilizada pelos bancos de dados relacionais. SQL Structured Query Language SQL é atualmente a principal linguagem utilizada para realizar consultas e manipulações de dados em Sistemas de Gerenciamento de Bancos de Dados Relacionais. A primeira versão da linguagem foi apresentada pela IBM em 1974 com o nome Structured English Query Language (Sequel) e disponibilizada para um protótipo de banco de dados relacional denominado SEQUEL-XRM. Em 1977, a IBM lançou um novo protótipo denominado SYSTEM/R e, ao final deste, havia desenvolvido uma linguagem que permitia acesso fácil a múltiplas tabelas, uma linguagem de quarta geração (4GL), que passou a ser denominada de SQL (Structured Query Language). Alguns anos depois, em 1979, um grupo de desenvolvedores que havia participado do projeto SYSTEM/R fundou uma empresa a Relational Software Inc. responsável pelo lançamento do primeiro Sistema de Gerenciamento de Banco de Dados Relacional comercialmente viável. Esta empresa mais tarde teve o seu nome alterado para Oracle. A linguagem SQL é composta basicamente por quatro subconjuntos: DDL Data Definition Language DML Data Manipulation Language DQL Data Query Language DCL Data Control Language Durante o seu curso você terá outras disciplinas que abordarão com detalhes cada um dos comandos utilizados pelos quatro subconjuntos da SQL. No entanto, você terá agora a oportunidade de conhecer alguns comandos relacionados ao que foi apresentado nas aulas anteriores quando foram listadas as operações da álgebra relacional. Seleção Conforme observado na aula 15, esta operação, indicada pela letra grega? (sigma), produz

uma nova relação ou tabela apenas com as tuplas (linhas) da primeira relação que satisfazem a uma determinada condição (também chamada de predicado). Tomando-se como exemplo a seguinte tabela, para efetuar a seleção do funcionário cujo ID_FUNC = 102, devemos utilizar a expressão:? ID_FUNC=102 (FUNCIONARIO) A expressão acima pode ser escrita na linguagem SQL da seguinte forma: SELECT * FROM FUNCIONARIO WHERE ID_FUNC = 102; Observa-se, portanto, que nesta linguagem utilizamos a palavra reservada SELECT no lugar da letra grega? (sigma). O símbolo * é utilizado quando queremos que sejam apresentados os dados de todas as colunas da tabela. A preposição FROM é utilizada antes de informarmos o nome da tabela consultada: FUNCIONARIO. Na sequência, temos a condição, isto é, queremos que sejam apresentados os dados do funcionário cujo ID_FUNC é igual a 102. Expressamos isso com o seguinte predicado: WHERE ID_FUC = 102. A execução do comando acima produzirá o seguinte resultado: Projeção Muitas vezes não desejamos que sejam apresentados todos os dados que satisfazem a determinada condição. No exemplo considerado, uma hipótese seria apresentar apenas o NOME do funcionário cujo ID_FUNC é igual a 102. Neste caso, devemos projetar a coluna. Na SQL informamos os nomes das colunas que queremos projetar logo após o comando SELECT. Observe: SELECT NOME_FUNC FROM FUNCIONARIO WHERE ID_FUNC = 102; A execução do comando acima produzirá o seguinte resultado:

Para projetar mais de uma coluna, separamos seus nomes utilizando vírgulas: SELECT NOME_FUNC, CARGO FROM FUNCIONARIO WHERE ID_FUNC = 102; A execução do comando acima produzirá o seguinte resultado: Mas qual comando deve ser utilizado para projetar TODOS os nomes dos funcionários? Neste caso, basta omitir a condição expressa no final. Observe: SELECT NOME_FUNC FROM FUNCIONARIO; A execução do comando acima produzirá o seguinte resultado: Produto cartesiano O produto cartesiano de duas tabelas ou relações é uma terceira tabela contendo todas as combinações possíveis entre as tuplas ou linhas da primeira e as tuplas da segunda tabela. Observe novamente o exemplo apresentado na aula 16, o produto cartesiano das tabelas GRUPO_SP e GRUPO_RJ:

A representação, conforme a álgebra relacional, do produto cartesiano acima é a seguinte: (GRUPO_SP) X (GRUPO_RJ) Quando trabalhamos com a SQL, o produto cartesiano de duas tabelas é obtido por meio da operação denominada CROSS JOIN. Observe: SELECT TIME_SP, TIME_RJ FROM GRUPO_SP CROSS JOIN GRUPO_RJ; A operação de junção, conforme veremos a seguir, é uma derivação do produto cartesiano. Junção (normal) A operação de junção utiliza as operações de seleção e produto cartesiano para produzir uma combinação entre as tuplas (linhas) de uma tabela com as tuplas correspondentes de outra tabela que obedecem a uma condição. Observe novamente o exemplo apresentado na aula 18: A junção entre as tabelas DEPARTAMENTO e FUNCIONARIO deve ser representada, conforme

notação da álgebra relacional, da seguinte forma:? DEPARTAMENTO.CODDEPT = FUNCIONARIO.CODDEPT (DEPARTAMENTO X FUNCIONARIO) O resultado produzido será o seguinte: A expressão acima pode ser escrita na linguagem SQL da seguinte forma: SELECT * FROM DEPARTAMENTO, FUNCIONARIO WHERE DEPARTAMENTO.CODDEPT = FUNCIONARIO.CODDEPT; Junção (natural) A junção naturalfornece o mesmo resultado da junção normal, mas sem a repetição de valores das colunas comuns às duas tabelas. A junção natural entre as tabelas DEPARTAMENTO e FUNCIONARIO é representada, conforme notação da álgebra relacional, da seguinte forma: (DEPARTAMENTO x FUNCIONARIO) Quando utilizamos a SQL, a junção natural de duas tabelas é obtida por meio da operação denominada NATURAL INNER JOIN. Observe: SELECT * FROM DEPARTAMENTO NATURAL INNER JOIN FUNCIONARIO; A figura a seguir demonstra o resultado da operação de junção natural entre as duas tabelas anteriores (DEPARTAMENTO e FUNCIONARIO): Observamos nesta aula como utilizar a SQL (Structured Query Language) para realizar as seguintes operações da álgebra relacional: seleção, projeção, produto cartesiano e junção (normal e

natural). Na última aula desta disciplina abordaremos as outras operações da álgebra relacional: união, diferença e intersecção. Referências CHEN, Peter. Modelagem de dados: a abordagem entidade-relacionamento para projeto lógico. São Paulo: Makron Books, 1990. DATE, C. J. Introdução a sistemas de banco de dados. Rio de Janeiro: Campus, 1991. ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 4. ed. São Paulo: Pearson Addison Wesley, 2005. HEUSER, Carlos Alberto. Projeto de banco de dados. Porto Alegre: Sagra Luzzatto, 2004.