DCC011 Introdução a Banco de Dados

Documentos relacionados
DCC011 Introdução a Banco de Dados

L Q S m e g a u g n Li A

DCC011 Introdução a Banco de Dados

A Linguagem SQL. Introdução a Banco de Dados DCC 011

BANCO DE DADOS II SQL Básico. COTEMIG Gerson Borges

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 3 Tabelas de Junção e Funções de Agregação

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 1 Introdução e Consultas Basicas

DCC011 Introdução a Banco de Dados SQL gerenciar tabelas e dados

Álgebra Relacional. Programa. Modelos de Dados. LCs relacionais formais. Introdução

GBC043 - Sistemas de Banco de Dados SQL/DML no PostgreSQL. Ilmério Reis da Silva ilmerio@facom.ufu.br UFU/FACOM/BCC

A Linguagem SQL. Introdução a Banco de Dados DCC 011

SQL DCC011. SQL gerenciar tabelas e dados. Programa. Introdução. Introdução

Modelo de Dados Relacional

Oscar Luiz Monteiro de Farias 1. Bancos de Dados. Mestrado em Engenharia de Computação área de concentração Geomática

BANCO DE DADOS II Conceitos Básicos. COTEMIG Gerson Borges

GES013 Sistema de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva ilmerio arroba ufu.br UFU/FACOM

SQL-99: Esquema de BD EMPRESA

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

Processamento e Otimização de Consultas

Consultas SQL. Andre Noel

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

Rápida revisão do Modelo Relacional

Introdução ao PostgreSQL

GBC043 Sistemas de Banco de Dados. Modelo Relacional (R) Ilmério Reis da Silva UFU/FACOM

Banco de Dados I. Aula 14 - Prof. Bruno Moreno 11/10/2011

SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Banco de Dados. Álgebra Relacional. João Eduardo Ferreira Osvaldo Kotaro Takai

GES013 - Sistema de Banco de Dados SQL/DML no PostgreSQL Parte 2 Consultas Aninhaas

SQL (Tópicos) Structured Query Language

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SQL-99: Definição de esquema, restrições básicas e consultas

ANÁLISE E PROJETO DE BANCO DE DADOS

GES013 - Sistema de Banco de Dados SQL DDL e Implementação no PostgreSQL

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Modelo de Dados Relacional

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Introdução a. π LNAME, FNAME (σ SALARY>C (EMPLOYEE))

Introdução ao Banco de Dados. Banco de Dados

SQL Básica. Andre Noel

Introdução a Bancos de Dados

Revisão de Bancos de Dados

Modelo de dados relacional e as restrições de um BD relacional

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

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

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

BCD29008 Banco de dados

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

Ordenação de tuplos order by

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

Consulta sobre múltiplas relações

GBC043 - Sistemas de Banco de Dados SQL DDL e Implementação no PostgreSQL

Comandos de Manipulação

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

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

SQL DML. SQL Linguagem de Manipulação de Dados SELECT SELECT SELECT SELECT

SQL PostgreSQL. I Criação de Tabelas. Disciplina: Banco de Dados e suas Aplicações Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida

Álgebra Relacional e SQL

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Bases de Dados 2005/2006. Aula 5

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

SQL DML. Frederico D. Bortoloti

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Revisão Banco de Dados

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

Sumário. Bancos de Dados Avançados Processamento de Consultas. Tradução SQL Álgebra 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

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

Banco de Dados I Introdução SQL

SQL. Prof. Roger Cristhian Gomes

Bancos (Bases) de Dados

Bases de Dados. Parte V: A Linguagem SQL. Parte V

Banco de Dados SQL. João Eduardo Ferreira Osvaldo Kotaro Takai

SQL Consultas Básicas

Utilizando o Postgres - comandos SQL para a manipulação de dados

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação

BCD29008 Banco de Dados

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

Sumário SELECT + FROM

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

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Definida pelo American National Standard Institute (ANSI) em 1986

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Projeto de Banco de Dados

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

Normalização. Normalização. Noção central: qualidade do projeto. Normalização : na Prática. Qual o problema desta imagem? Zoom

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

Transcrição:

Programa DCC011 Introdução a Banco de Dados SQL select Mirella M. Moro Departamento de Ciência da Computação Universidade Federal de Minas Gerais mirella@dcc.ufmg.br Introdução Conceitosbásicos, característicasda abordagemde banco de dados, modelosde dados, esquemase instâncias, arquiteturade um sistemade banco de dados, componentesde um sistemade gerênciade banco de dados. Modelos de dados e linguagens Modeloentidade-relacionamento(ER), modelorelacional, álgebra relacional, SQL. Projetode bancosde dados Fasesdo projetode bancosde dados, projetológicode bancos de dados relacionais, normalização. Novas Tecnologias e Aplicações de Banco de Dados 2 SQL: Consultas 0. Exemplos 1. Consultas Básicas 2. Facilidades Adicionais 3. Consultas Complexas Problema Dado um conjunto de tabelas e seus dados Como recuperar os dados? Como realizar consultas a esses dados? Me diz aí os nomes das alunas do curso de Ciência da Computação ordenados alfabeticamente ALUNOS Matr Nome Sexo Cur 1 A F CC 2 B M CC 3 C M CC 4 D F MC 5 E M MC 6 F M SI 7 G F SI 8 H F SI 9 I M SI 10 J M ECA 4 Solução: SQL select-from Solução: SQL select-from-where 1. SELECT Matr 2. SELECT Cur 3. SELECT Matr, Cur 4. SELECT Matr, Nome, Sexo, Cur 5. SELECT * 1. SELECT Matr FROM ALUNOS WHERE Sexo = F ; 2. SELECT Nome FROM ALUNOS WHERE Sexo = F AND Cur = SI ; 3. SELECT Matr FROM ALUNOS WHERE Sexo = F AND Cur <> CC ; 5 6

Mais Problemas 1. Nomes de todos os alunos acompanhados dos nomes de seus cursos 2. Nomes de todos os alunos acompanhados das disciplinas matriculadas neste semestre 7 ALUNOS Matr Nome Sexo Cur 1 A F CC 2 B M CC 3 C M CC 4 D F MC 5 E M MC 6 F M SI 7 G F SI 8 H F SI 9 I M SI 10 J M ECA CURSOS Cur Nome Depto Coord CC MC SI ECA Ciência da Computação DCC RG Matemática Computacional DCC TN Sistemasde Informação DCC CDJ Engenharia de Controle e ENG XYZ Automação MATRICULAS Matr Disc T Sem 1 DCC011 Z 20162 1 DCC851 A 20162 1 DCC834 A 20161 2 DCC011 Z 20161............ 8 Em formato texto ALUNOS (Matr, Nome, Sexo, Cur) Cur referencia CURSOS CURSOS (Cur, Nome, Depto, Coord) Depto referencia DEPARTAMENTOS Coord referencia PROFESSORES MATRICULAS (Matr, Disc, T, Sem) Matr referencia ALUNOS Disc referencia DISCIPLINAS DEPARTAMENTOS (...) PROFESSORES (...) DISCIPLINAS (...) Mais Problemas 1. Nomes de todos os alunos acompanhados dos nomes de seus cursos 9 10 Mais Problemas Mais Problemas 1. Nomes de todos os alunos acompanhados dos nomes de seus cursos SOLUÇÃO A SELECT Nome, Nome FROM ALUNOS, CURSOS; SOLUÇÃO B SELECT ALUNOS.Nome, CURSOS.Nome FROM ALUNOS, CURSOS; SOLUÇÃO C SELECT A.Nome, C.Nome FROM ALUNOS as A, CURSOS as C; SOLUÇÃO D SELECT A.Nome, C.Nome FROM ALUNOS as A, CURSOS as C WHERE A.Cur = C.Cur; 2. Nomes de todos os alunos acompanhados das disciplinas matriculadas neste semestre 11 12

Mais Problemas 2. Nomes de todos os alunos acompanhados das disciplinas matriculadas neste semestre SOLUÇÃO A SELECT Nome, Disc FROM ALUNOS, MATRICULAS; SOLUÇÃO B SELECT Nome, Disc FROM ALUNOS, MATRICULAS WHERE Sem= 20162 ; SOLUÇÃO C SELECT Nome, Disc FROM ALUNOS, MATRICULAS WHERE Sem= 20162 AND ALUNOS.Matr = MATRICULAS.Matr; Organizando as Ideias 13 1. Formato básico do comando SELECT: SELECT <lista de atributos> FROM <lista de tabelas> [ WHERE <condição>; ] Exemplo: EM PORTUGUÊS EMPREGADO (ssn, pnome, minicial, unome, datanasc, endereco, sexo, salario, superssn, dno) superssn REFERENCIA EMPREGADO dno REFERENCIA DEPARTAMENTO DEPARTAMENTO (dnumero, dnome, gerssn, gerdatainicio) gerssn REFERENCIA EMPREGADO.ssn SELECT datanast, endereco FROM EMPREGADO WHERE pnome= John AND minicial= B AND unome= Smith ; π Bdate,Address σ Fname= John AND Minit= B AND Lname= Smith (EMPLOYEE) 15 (Q8) B. Atributos Ambíguos e Pseudônimos (alias) SELECT dname, dlocation FROM DEPARTMENT, DEPT_LOCATIONS WHERE DEPARTMENT.dnumber = DEPT_LOCATIONS.dnumber; SELECT e.fname, e.lname, s.fname, s.lname FROM EMPLOYEE ASE, EMPLOYEE ASS WHERE e.superssn=s.ssn; EM INGLÊS PROJECT (pnumber, pname, plocation, dnum) dnum REFERENCIA DEPARTAMENT DEPT_LOCATIONS (dnumber,dlocation) dnumber REFERENCIA DEPARTAMENT 16 (Q2) B. Atributos Ambíguos e Pseudônimos (alias) SELECT pnumber, dnum, lname, address, bdate PROJECT P, DEPARTMENT D, EMPLOYEE E WHERE plocation= Stafford AND FROM C. SELECT FROM sem owhere SELECT ssn, lname, salary condição de seleção D.dnum=P.dnum AND D.mgrssn=E.ssn; (Q10) SELECT lname, dname condição de junção π pnumber,dnum,lname,address,bdate σ plocation= Stafford (EMPLOYEE ssn=mgrssn (DEPARTMENT PROJECT)) PROJECT (pnumber, pname, plocation, dnum) dnum DCC011 REFERENCIA - profa. Mirella M. Moro DEPARTAMENT 17 WHERE dno=dnumber; com a junção Atenção! A consulta em vermelho corresponde a um produto cartesiano das tabelas EMPLOYEE e DEPARTMENT : π lname,dname (EMPLOYEE x DEPARTMENT) 18

(Q1C) (Q1D) D. TODOS OS ATRIBUTOS Consultas a todos os atributos SELECT * FROM EMPLOYEE WHERE Dno=5; SELECT* WHERE Dname= Research AND Dno=Dnumber; E. TABELAS COMO CONJUNTOS SQL trata uma tabela como um multi-conjunto Tuplas duplicadas PODEM aparecer em uma tabela E no resultadode uma consulta SQL não elimina automaticamente as duplicatas porque Eliminação de duplicatas é uma operação cara (ordenar) O usuário pode estar interessado nelas Funções de agregação utilizam duplicatas (funções de agregação serão explicadas a seguir) Operações SELECT DISTINCT, SELECT ALL : UNION, : EXCEPT, : INTERSECT 19 20 (Q11) (Q4) Tabelas como Conjuntos SELECT salary Não elimina linhas (tuplas) duplicatas Para eliminar precisa usar DISTINCT, por exemplo: SELECT DISTINCT salary PROJECT (pnumber, pname, plocation, dnum) dnum REFERENCIA DEPARTAMENT (SELECT pnumber FROM PROJECT, DEPARTMENT, EMPLOYEE WHEREdnum=dnumber AND mgrssn=ssn AND lname= Smith ) UNION (SELECT pnumber FROM PROJECT, WORKS_ON, EMPLOYEE WHEREpnumber=pno AND essn=ssn AND lname= Smith ); 21 2. Facilidades Adicionais Uso do operador JOIN, na cláusula FROM SELECT FNAME, LNAME, ADDRESS FROM (EMPLOYEE JOINDEPARTMENT ON DNO=DNUMEBR) WHERE DNAME= Research ; A cláusula FROM contém então uma única tabela resultante da junção de Empregado e Departamento 22 Facilidades Adicionais Facilidades Adicionais Pode-se especificar outros tipos de junção na cláusula FROM Junção natural: equijoin em cada par de atributos com o mesmo nome SELECT DNAME, DLOCATION FROM (DEPARTMENT NATURAL JOIN DEPT_LOCATIONS); Renomeando atributos para o natural join: SELECT pnome, unome, dnome FROM (EMPREGADO NATURAL JOIN (DEPARTMENTO AS DEPT (dno, dnome, gerssn, gerdatainicio))) WHERE dnome = Pesquisa ; DEPT_LOCATIONS (dnum, dlocal) dnum REFERENCIA DEPARTAMENT 23 EMPREGADO (ssn, pnome, minicial, unome, superssn, dno) superssn REFERENCIA EMPREGADO dno REFERENCIA DEPARTAMENTO DEPARTAMENTO (dnumero, dnome, gerssn, gerdatainicio) gerssn REFERENCIA EMPREGADO.ssn 24

Facilidades Adicionais SELECT fname, lname, dependent_name FROM(EMPLOYEE JOIN DEPENDENT ONssn=essn); [INNER] JOIN..ON: pares empregado/dependente OUTERJOIN..ON: pares + empregadosquenãotêm dependente [NATURAL] LEFT/RIGHT/FULL OUTER JOIN.. ON SELECT fname, lname, dependent_name FROM(EMPLOYEE LEFT OUTER JOIN DEPENDENT ONssn=essn); 25 Outer Join Matr Cur 1 CC INSERE dois cursos{enf,med} select A.Matr, C.Curfrom ALUNOS A RIGHT OUTER JOIN CURSOS C ON A.Cur=C.Cur SE a únicacolunaemcomumfosse Cur: select A.Matr, C.Cur from ALUNOS A NATURAL RIGHT OUTER JOIN CURSOS C 2 CC 3 CC 4 MC 5 MC 6 SI 7 SI 8 SI 9 SI 10 ECA null null ENF MED 26 Cuidado com o número de colunas do resultado quando se realiza junção natural NATURAL JOIN NATURAL LEFT OUTER JOIN NATURAL RIGHT OUTER JOIN PraticandoSQL Item(Cod_Item, Descricao, Preco_Unit) Pedido(Num_Pedido, Data, Cod_Cliente, Valor_Total), Cod_Cliente--> Cliente Item_Pedido(Num_Pedido, Cod_Item, Quantidade) Num_Pedido--> Pedido, Cod_Item--> Item SQL #Colunas #Linhas select* from Item, Item_Pedido 6 234 select * from Item I, Item_PedidoIP where I.Cod_Item=IP.Cod_Item 6 18 select * from Item NATURAL JOIN Item_Pedido 5 18 select* fromitem I JOINItem_PedidoIP? 6 18 ON I.Cod_Item=IP.Cod_Item select * from (Item I LEFT OUTER JOIN Item_PedidoIP 6 19 ON I.Cod_Item=IP.Cod_Item) select * from (Item NATURAL OUTER JOIN Item_Pedido) 5 19 27 28 A B A B FROM A LEFT JOIN B A B FROM A LEFT JOIN B WHERE B.key IS NULL SQL JOINS A FROM A INNER JOIN B A B A B FROM A FULL OUTER JOIN B B FROM A FULL OUTER JOIN B WHERE A.key IS NULL OR B.key IS NULL FROM A RIGHT JOIN B A B FROM A RIGHT JOIN B WHERE A.key IS NULL 29 Facilidades Adicionais B. FUNÇÕES DE AGREGAÇÃO Funções de agregação: COUNT, SUM, MAX, MIN, AVG SELECT SUM(SALARY), MAX(SALARY), MIN(SALARY), AVG(SALARY) SELECT SUM(SALARY), MAX(SALARY), MIN(SALARY), AVG(SALARY) WHERE DNO=DNUMBER AND DNAME= Research ; SELECT COUNT(*) WHERE DNO=DNUMBER AND DNAME= Research ; 30

Exemplos funções agregação select count(*) from ALUNOS; select count(*) as Qtde from ALUNOS where sexo = F ; select max(matr) as max, min(matr) as min from ALUNOS; select sum(matr) as sum, avg(matr) as avg from ALUNOS where sexo = F ; max count(*) 10 Qtde 4 min 10 1 sum avg 20 5 31 DEPARTMENT(DNAME, DNUMBER, MGRSSN, MGRSTARTDATE) mgrssn é o gerente MGRSSN referencia EMPLOYEE DEPENDENT(ESSN, DEPENDENT_NAME, SEX, BDATE, RELATIONSHIP) ESSN referencia EMPLOYEE DEPT_LOCATIONS(DNUMBER, DLOCATION) DNUMBER referencia DEPARTMENT EMPLOYEE(FNAME, MINIT, LNAME,SSN, BDATE, ADDRESS, SEX, SALARY, SUPERSSN, DNO) SUPERSSN referencia EMPLOYEE; DNO referencia DEPARTMENT PROJECT(PNAME, PNUMBER, PLOCATION, DNUM) DNUM referencia DEPARTMENT WORKS_ON(ESSN, PNO, HOURS) ESSN referencia EMPLOYEE ; PNO referencia PROJECT Exercícios podem ser executados no site www.lbd.dcc.ufmg.br/praticandosql selecionar o banco de dados COMPANY 1. Retorne o SSN dos empregados: a. que trabalham no departamento 4; b. que trabalham no departamento 4 ou 5; c. que trabalham no departamento gerenciado pelo empregado 987654321; d. que trabalham mais de 9 horas no projeto 10; 2. Retorne o total de horas que o empregado 333445555 trabalha em projetos; 3. Retorne o máximo, mínimo e média de horas que os empregados trabalham no projeto 30; 4. Retorne todos os projetos (incluindo os sem empregados) seguidos do ssn dos seus empregados; 32 SSN dos empregados: a. quetrabalhamno departamento 4; SSN dos empregados: c. quetrabalhamno departamento gerenciado pelo empregado 987654321; b. quetrabalhamno departamento 4 ou 5; d. quetrabalhammaisde 9 horas no projeto 10; 33 34 2. Retorneo total de horas que o empregado 333445555 trabalha em projetos; 3. Retorneo máximo, mínimoe médiade horasqueos empregados trabalham no projeto 30; 4. Retorne todos os projetos(incluindo os semempregados) seguidosdo ssndos seus empregados; Revisão: definição de dados Comando CREATE SCHEMA CREATE SCHEMA COMPANY AUTHORIZATION JS; Comando CREATE TABLE CREATE TABLE <nome da tabela> (<definições de colunas> <definição da chave primária> <definições de chaves alternativas> <definições de chaves estrangeiras>); 35 36

Revisão: definição de dados Revisão: restrição de integridade Opções de remoção (cláusula ON DELETE): CASCADE (propagação) SET NULL (substituição por nulos) SET DEFAULT (substituição por um valor default) Opção default: bloqueio (RESTRICT) As mesmas opções se aplicam à cláusula ON UPDATE 37 38 Revisão: drop e alter Comandos DROP SCHEMAeDROP TABLE DROP SCHEMA COMPANY CASCADE (RESTRICT); RESTRICT: apenas se não tem elementos DROP TABLE DEPENDENT CASCADE (RESTRICT); RESTRICT: se a tabela não é referenciada em qualquer restrição ou visão Comando ALTER TABLE ALTER TABLE COMPANY.EMPLOYEE ADD JOB VARCHAR(12); Inicialmente Null para todas as tuplas ALTER TABLE COMPANY.EMPLOYEE DROP ADDRESS CASCADE (RESTRICT); RESTRICT: se nenhuma visão ou restrição referencia a coluna Consultas básicas e Álgebra Operações Básicas Seleção(σ) Seleciona em sub-conjunto de linhas da relação FROM, WHERE Projeção(π) Mantém apenas colunas específicas SELECT Junção: WHERE 39 40 A. SELECT FROM WHERE (Q1) SELECT fname,lname,address FROM EMPLOYEE, DEPARTAMENT WHERE dname= Research AND dno=dnum; condição de seleção condição de junção π fname,lname,address σ dname= Research (EMPLOYEE dno=dnum DEPARTMENT) 41