A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula 10 1 01/08/2011 Professor Leomir J. Borba- –http://professorleomir.wordpress.com.

Apresentações semelhantes


Apresentação em tema: "TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula 10 1 01/08/2011 Professor Leomir J. Borba- –http://professorleomir.wordpress.com."— Transcrição da apresentação:

1 TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula 10 1 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

2 Agenda Linguagem SQL Consultas interativas – continuação Linguagem SQL – exercícios. Bibliografia 2 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

3 Linguagem SQL Consultas interativas –continuação Tabela de Junção: Inner join – Tipo Padrão, apenas pares de tuplas que combinam com a condição de junção, o mesmo que join. Ex. : SELECT * FROM employee, department WHERE employee.DepartmentID = department.DepartmentID; 3 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com Employee.L astName Employee.D epartmentI D Department.Departmen tName Department.Departmen tID Robinson34Clerical34 Jones33Engineering33 Smith34Clerical34 Steinberg33Engineering33 Rafferty31Sales31

4 Linguagem SQL Consultas interativas –continuação Variações de Outer Join - continuação: Left outer join – Toda tupla na tabela da esquerda precisa aparecer no resultado, se ela não tiver tupla tupla combinando, ela é preeenchida com valores null para os atributos da tabela da direita. SELECT * FROM employee LEFT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID; 4 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com Employee.LastName Employee.Department ID Department.Departme ntName Department.Departme ntID Jones33Engineering33 Rafferty31Sales31 Robinson34Clerical34 Smith34Clerical34 JohnNULL Steinberg33Engineering33

5 Linguagem SQL Consultas interativas –continuação Variações de Outer Join - continuação: Right Outer join – Toda tupla da tabela da direita precisa aparecer no resultado, se não houver combinação ela é preenchida com valores null para os atributos da tabela esquerda. SELECT * FROM employee RIGHT OUTER JOIN department ON employee.DepartmentID = department.DepartmentID; 5 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com Employee.LastNameEmployee.DepartmentID Department.DepartmentN ame Department.DepartmentID Smith34Clerical34 Jones33Engineering33 Robinson34Clerical34 Steinberg33Engineering33 Rafferty31Sales31 NULL Marketing35

6 Linguagem SQL Consultas interativas –continuação Variações de Outer Join: Full outer Join – Combina Left e right outer join, combinando os resultados, onde não houver combinação os valores null serão atribuídos para cada relação. Nos permite ver por exemplo cada funcionário que esta em um departamento e também os funcionários que não tem departamento. SELECT * FROM employee FULL OUTER JOIN department ON employee.DepartmentID = department.DepartmentID; * Não suportado por alguns BD como MySQL, emula com union 6 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com Employee.LastNameEmployee.DepartmentID Department.DepartmentN ame Department.DepartmentID Smith34Clerical34 Jones33Engineering33 Robinson34Clerical34 John NULL Steinberg33Engineering33 Rafferty31Sales31 NULL Marketing35

7 Linguagem SQL Consultas interativas –continuação Funções de agregação em SQL. Funções são usadas para resumir informações de varias tuplas em uma síntese de tupla única. Count – Retorna numero de tuplas ou valores SUM – Retorna soma de um conjunto valores. MAX – Retorna Valor Maximo de um conjunto de valores MIN – Retorna Valor Mínimo de um conjunto de Valores AVG – Retorna a Media de um conjunto de valores. Ex. : Soma dos salários de todos os funcionários, o maior salário, o menor salário e a media dos salários e numero total de funcionários. Select sum(salario), max(salario), min(salario), avg(salario), count(*) from funcionario; 7 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

8 Linguagem SQL Consultas interativas –continuação Agrupamento : Cláusulas GROUP BY e HAVING Agrupamento é usado para criar subgrupos de tuplas antes do resumo. Clausula group By – Especifica atributos de agrupamento que tambem devem aparecer na clausula select. Ex.: Selecionar por departamento o numero do funcionário, numero do departamento e salário médio. Select Dnr, count(*), avg(salario) from funcionario group by Dnr; 8 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

9 Linguagem SQL Consultas interativas –continuação Agrupamento : Cláusulas GROUP BY e HAVING Clausula Having – Usada em conjunto com clausula group by restringe resultado a tuplas que satisfaçam uma condição Ex.: Para projetos com mais de dois funcionários, selecionar numero e nome do projeto e o numero de funcionários SELECT Projnumero, Projnome, count(*) FROM projeto, trabalha_em WHERE Projnumero=Pnr GROUP BY Projenumero, Projnome HAVING COUNT(*)>2 9 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

10 Linguagem SQL Consultas interativas –continuação Agrupamento : Cláusulas GROUP BY e HAVING Clausula Having – Continuação Muito cuidado com duas condições diferentes na mesma consulta Ex.: Consulta com numero total de funcionários com salarios > R$ 40.000,00 por departamento. Errado : SELECT Dnome, COUNT(*) FROM Departamento,Funcionario WHERE Dnumero=Dnr AND Salario>40.000 GROUP BY Dnome HAVING COUNT(*)>5 Correto: SELECT Dnome, COUNT(*) FROM Departamento,Funcionario WHERE Dnumero=Dnr AND Salario>40.000 AND (SELECT Dnr IN FROM FUNCIONARIO GROUP BY Dnr HAVING COUNT(*)>5); 10 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

11 Linguagem SQL Consultas interativas –continuação Especificando Restrições como asserções e ações como triggers – CREATE ASSERTION E CREATE TRIGGER CREATE ASSSERTION – Asserção declarativa usada para especificar restrições adicionais fora do escopo de restrições embutidas (Chave Primária e única, integridade de entidade e integridade referencial) Ex.: Salario de funcionario não pode Ser maior que salario do gerente do Departamento onde trabalha. Pode ser usada, alterada ou excluída Mais tarde através do nome 11 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

12 Linguagem SQL Consultas interativas –continuação Especificando Restrições como asserções e ações como triggers – CREATE ASSERTION E CREATE TRIGGER CREATE TRIGGER - Especifica ação a ser tomada em ocorrência de eventos e condições específicos Ex. de ações, envio de mensagens pelo SGBD, executar stored procedures ou disparar atualizações. Ex. de eventos, em geral operações de atualizações ao banco de dados. Ex.: Verificar se salário de funcionário > salário de supervisor e informar o supervisor 12 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

13 Linguagem SQL Consultas interativas –continuação Exercícios 1.Descreva as seis clausulas da sintaxe de uma consulta de recuperação SQL. Mostre os tipos de construções que podem ser especificados em cada uma das clausulas. Quais das seis clausulas são obrigatórias. 13 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

14 Linguagem SQL Consultas interativas –continuação Exercícios 14 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

15 Linguagem SQL Consultas interativas –continuação Exercícios – Diagrama para esquema de BD Empresa. 15 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

16 Linguagem SQL Consultas interativas –continuação Exercícios – Estado possível para BD Empresa 16 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

17 Linguagem SQL Consultas interativas –continuação Exercícios – Estado possível para BD Empresa continuação 17 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

18 Linguagem SQL Consultas interativas –continuação Exercícios – Estado possível para BD Empresa continuação 18 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com

19 Bibliografia 01/08/2011 Professor Leomir J. Borba- professor.leomir@gmail.com –http://professorleomir.wordpress.com 19 BIBLIOGRAFIA BÁSICA 1 DATE, C.J. Introdução a Sistemas de Bancos de Dados. 8ª Ed. Rio de Janeiro: Campus, 2004. 2 NAVATHE, S. B.; ELMASRI, R. E. Sistemas de Banco de Dados, 4ª edição, Editora Pearson Addison Wesley, 2005. 3 SETZER, V. W., SILVA, F.S.C. Banco de Dados. 1ª Ed. São Paulo: Edgard Blucher, 2005. BIBLIOGRAFIA COMPLEMENTAR 4 COUGO, P. Modelagem Conceitual e Projeto de Banco de Dados, Editora Campus. 5 KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S., Sistemas de Banco de Dados, Editora Makron Books, 1999. 6 MACHADO, Felipe Nery Rodrigues: Análise Relacional de Sistemas; São Paulo: Editora Érica, 2001. 7 SETZER, V.W., NASSU, E.A. Banco de Dados Orientados a Objetos. São Paulo: Ed. Edgard Blucher, 1999.


Carregar ppt "TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula 10 1 01/08/2011 Professor Leomir J. Borba- –http://professorleomir.wordpress.com."

Apresentações semelhantes


Anúncios Google