Você está na página 1de 58

Aplicaes de Banco de Dados SQL Bsica

Prof. Tavares

Sistema de Banco de Dados


Usurios / Programadores Sistema de BD Consultas / Programas de Aplicao SGBD

Software para processar consultas / programas

Software para acessar dados armazenados

Definio do BD (Meta-dados)

BD armazenado 2

Mundo Real
Requisitos de Dados Projeto Conceitual Coleta/Especificao de Requisitos Requisitos Funcionais Anlise Funcional

Projeto Lgico

Projeto Funcional

Projeto Fsico

Programao

dados e regras

SGBD

Programa de Programa de Programa de aplicao de BD aplicao de BD aplicao

Percepo abstrata da realidade

Modelo
regras para estruturar dados

Percepo da estrutura da realidade

Esquema

esttico, invariante no tempo

(Intenso)

regras para verificar validade Descrio da realidade num dado momento

Instncia

dinmico, variante no tempo

(Extenso)
4

Modelo, Esquema, Modelo, Esquema, Instncia


Aluno esquema Disciplina Nome
Jos Antonio

Nmero
17 8

rea
INF INF

modelo relacional (tabelas)

Nome
I.C.C. Estruturas de Dados Matemtica Discreta Bancos de Dados

Nmero
INF1310 INF3320 MAT2410 INF3380

Crditos
4 4 3 3

Dept
INF INF MAT INF

Pr-Requisito

No_Curso
INF3380 INF3380 INF3320

No_Pre-Req
INF3320 MAT2410 INF1310

instncia

Histrico-Escolar

No_Aluno No_Curso
17 17 8 8 8 8 MAT2410 INF1310 MAT2410 INF1310 INF3320 INF3380

Grau
B C A A B A

A Arquitetura de Trs Esquemas


Usurios finais NVEL EXTERNO
mapeamento externo/conceitual
Viso Externa 1

...
Esquema Conceitual

Viso Externa n

NVEL CONCEITUAL
mapeamento conceitual/interno

NVEL INTERNO

Esquema Interno

Arquitetura de Banco de Dados


Nvel Interno: descreve as estruturas de acesso e armazenamento do BD; Nvel Conceitual: decreve toda a estrutura do BD a nvel de propriedades, relacionamentos, restries etc, sem os detalhes de implementao fsica. Um modelo conceitual (por ex. ERE) utilizado nessa etapa. Nvel externo: corresponde s vises especficas dos usurios.

Componentes de um SGBD
ABD e equipe usurios ocasionais Consulta de alto nvel programadores de aplicaes usurios paramtricos

Comandos em LDD

Comandos privilegiados

Programas de aplicao Pr-compilador

Processador de consultas Compilador da LDD Catlogo/ Dicionrio de Dados Processador do BD em tempo de execuo Gerenciador dos dados armazenados

Comandos em LMD Compilador da LMD

Compilador da linguagem hospedeira

Transaes compiladas

Subsistema de controle de concorrncia / backup / restaurao

Banco de dados armazenado

PROJETO DE BANCOS DE DADOS Foco : dados


Mini-Mundo
Coleta e Anlise de Requisitos

Requisitos de Dados
Projeto Conceitual Independente de SGBD Especfico para um SGBD Esquema Conceitual Projeto Lgico Esquema Lgico Projeto Fsico Esquema Fsico
9

Categorias de Modelos de Dados


Modelos conceituais:
representam a realidade a um nvel alto de abstrao. Ex: Entidades-Relacionamentos, Redes Semnticas, Modelos Semnticos Modelos lgicos ou de implementao: suportam descries de dados que possam ser processadas por computador. Ex: Hierrquico, Redes, Relacional, R-O, OO Modelos fsicos: descrevem como os dados so armazenados no computador atravs de informaes como tipos de arquivos, formatos e ordenao de registros, caminhos de acesso. Ex: Sistemas de arquivos (seqenciais indexados, diretos, invertidos)

10

Linguagens de Bancos de Dados


Linguagem de definio dos dados (LDD) Linguagem de definio do armazenamento (LDA) Linguagem de definio das vises (LDV)
(Usualmente a LDD incorpora a LDA e a LDV)

Linguagem de manipulao dos dados (LMD)


Alto nvel ou no procedural : orientada a conjuntos Baixo nvel ou procedural : orientada a registros (s vezes, a LDD e a LMD confundem-se na mesma linguagem. Exemplo : SQL)

Linguagem hospedeira
Linguagem de programao na qual comandos da LMD so embutidos.
11

Linguagem SQL
O nome "SQL" significa "Structured Query Language" - Linguagem Estruturada de Pesquisa. Essa linguagem, de grande utilizao, teve seus fundamentos no modelo relacional de Codd (l970). Sua primeira verso recebeu o nome de SEQUEL ("Structured English Query Language"), sendo definida por D. D. CHAMBERLIN, entre outros, em 1974, nos laboratrios de pesquisa da IBM (Califrnia). Em 1975, foi implementado um prottipo de aplicao dessa nova linguagem. Entre 1976 e 1977, o SEQUEL foi revisado e ampliado, e teve seu nome 12 alterado para "SQL" por razes jurdicas.

Linguagem SQL
A SQL se tornou um padro de fato, no mundo dos ambientes de banco de dados relacionais. Em 1982, o American National Standard Institute (ANSI) tornou a SQL padro oficial de linguagem em ambiente relacional. Infelizmente, como todo padro que se preze, existem hoje vrios dialetos SQL, cada um, evidentemente, tentando ser mais padronizado que o outro. A linguagem SQL foi desenvolvida especialmente para o ambiente relacional, podendo ser adaptada a qualquer ambiente no relacional.
13

Linguagem SQL
Linguagem interativa de consulta (query AdHoc) Linguagem de programao para acesso a banco de dados Linguagem de administrao de banco de dados Linguagem cliente/servidor Linguagem para banco de dados distribudo Caminho de acesso a outros bancos de dados em diferentes mquinas
14

Vantagens da Linguagem SQL


Independncia de fabricante - A SQL oferecida em praticamente todos os SGBD'S, e os que ainda no tm esto se encaminhando para l. Com isso posso mudar de SGBD sem me preocupar com o novo que vai chegar; Portabilidade entre computadores - A SQL pode ser utilizada desde um computador pessoal, passando por uma estao de trabalho, at um computador de grande porte; Reduo dos custos com treinamento - Baseado no item anterior, as aplicaes podem se movimentar de um ambiente para o outro sem que seja necessria uma reciclagem da equipe de desenvolvimento;
15

Vantagens da Linguagem SQL


Ingls estruturado de alto nvel - A SQL formada por um conjunto bem simples de sentenas em ingls, oferecendo um rpido e fcil entendimento; Consulta interativa - A SQL prov um acesso rpido aos dados, fornecendo respostas ao usurio, a questes complexas, em minutos ou segundos; Mltiplas vises dos dados - A SQL permite ao criador do banco de dados levar diferentes vises dos dados a diferentes usurios; Definio dinmica dos dados - Por meio da SQL, podem-se alterar, expandir ou incluir, dinamicamente, as estruturas dos dados armazenados com a mxima flexibilidade;
16

Funes de um SGBD
Definio de dados (DDL) - permite ao usurio a definio da estrutura e organizao dos dados armazenados, e as relaes que existem entre eles; Manipulao de dados (DML) - permite ao usurio ou a um programa de aplicao, a incluso, remoo, seleo ou atualizao de dados previamente armazenados no banco; Controle de acesso - protege os dados de manipulaes no autorizadas; Compartilhamento de dados - coordena o compartilhamento dos dados por usurios concorrentes, sem contudo interferir na ao de cada um deles; Integridade dos dados - auxilia no processo de definio da integridade dos dados, protegendo contra corrupes, inconsistncias e falhas do sistema de computao.
17

Acesso ao SGBD Interbase

18

Acesso ao SGBD Interbase

Senha: masterkey dois cliques

19

Acesso ao SGBD Interbase

Lado direito do mouse

20

Acesso ao SGBD Interbase

21

Acesso ao SGBD Interbase

Um clique

22

Acesso ao SGBD Interbase

Um clique

23

Acesso ao SGBD Interbase

dois cliques

24

Acesso ao SGBD Interbase

25

Acesso ao SGBD Interbase

26

Acesso ao SGBD Interbase

Um clique para acessar o Interactive SQL (editor SQL do Interbase)

27

SQL / COMANDO SELECT

O comando SELECT tem palavras-chaves em um comando bsico: SELECT Especifica as colunas; FROM - Especifica as tabelas; WHERE - Especifica as linhas.

28

SQL / COMANDO SELECT Selecionando Colunas da Tabela


select <NOME(S) DA(S) COLUNA(S)> from <TABELA>;

Problema: Listar todas as colunas de todos os PASES. select * from COUNTRY;

29

SQL / COMANDO SELECT


Selecionando Colunas da Tabela Problema: Listar a coluna country da tabela country select COUNTRY from COUNTRY; Problema: Listar primeiro nome e salrio dos empregados. select FIRST_NAME , SALARY from EMPLOYEE;

30

SQL / COMANDO SELECT


Alterando o Heading da coluna select COUNTRY as PAIS, CURRENCY as MOEDA from COUNTRY; select FIRST_NAME as NOME , SALARY as SALARIO from EMPLOYEE;

31

SQL / COMANDO SELECT

Operadores Aritmticos Operadores aritmticos podem ser usados sobre qualquer coluna numrica. + / * Adio Subtrao Diviso Multiplicao

32

SQL / COMANDO SELECT


Operadores Aritmticos
Consulta simples: select FISCAL_YEAR, PROJ_ID, DEPT_NO, PROJECTED_BUDGET from PROJ_DEPT_BUDGET;

Problema: Listar o percentual de 20% de cada oramento select FISCAL_YEAR, PROJ_ID, DEPT_NO, (PROJECTED_BUDGET * 0.20) as PERCENTUAL from PROJ_DEPT_BUDGET;

33

SQL / COMANDO SELECT

Observaes: Quando a coluna do tipo caractere, o <valor> deve estar entre aspas. Ex.: 'PARAFUSO' Na linguagem SQL, existe a diferenciao entre maisculas e minsculas em alguns SGBDS, logo 'PARAFUSO' diferente de parafuso.

34

SQL / COMANDO SELECT


Operadores de Comparao
Problema: Listar os empregados do departamento n 100. select * from EMPLOYEE where DEPT_NO = 100 Problema: Listar os empregados com salrio anual maior ou igual a $120.000. select * from EMPLOYEE where SALARY >= 120000

35

SQL / COMANDO SELECT


Operadores de Comparao
Problema: Listar os empregados que trabalham na Inglaterra (England). select * from EMPLOYEE where JOB_COUNTRY = 'England' Problema: Listar o nome e o pas dos clientes no residentes nos USA select CUSTOMER, COUNTRY from CUSTOMER where COUNTRY <> 'USA' ou select CUSTOMER, COUNTRY from CUSTOMER where COUNTRY not in ( 'USA')
36

SQL / COMANDO SELECT


Operador de Concatenao

select EMP_NO, (FIRST_NAME ||' '||LAST_NAME) as NOME_COMPLETO from EMPLOYEE; select PO_NUMBER||' - '||CUST_NO||' - '||ORDER_DATE as PEDIDO_DATA from SALES;

37

SQL / COMANDO SELECT


Operadores Lgicos
AND ("e" ) (negao) Problema: Listar os empregados com salrio anual maior ou igual a $120.000. select * from EMPLOYEE where not (SALARY < 120000) OR ("ou" ) NOT

38

SQL / COMANDO SELECT


Operadores Lgicos
AND ("e" ) OR ("ou" ) NOT (negao)

Problema: Listar os empregados com salrio anual no intervalo de $120.000 a $720.000, inclusive. select * from EMPLOYEE where SALARY >= 120000 and SALARY <= 720000

39

SQL / COMANDO SELECT


Operadores Lgicos
AND ("e" ) (negao) Problema: Listar os empregados com salrio anual fora do intervalo de $120.000 a $720.000. select * from EMPLOYEE where SALARY <= 120000 or SALARY >= 720000 OR ("ou" ) NOT

40

SQL / COMANDO SELECT


Operadores Lgicos
AND ("e" ) (negao) Problema: Listar os departamentos localizados em Monterey ou San Francisco, cujos oramentos sejam superiores a $500000 select * from DEPARTMENT where (LOCATION = 'Monterey' or LOCATION = 'San Francisco') and BUDGET > 500000 OR ("ou" ) NOT

41

SQL / COMANDO SELECT


Operadores Between e NOT Between

Problema: Listar os empregados com salrio anual no intervalo de $120.000 a $720.000. select * rom EMPLOYEE where SALARY between 120000 and 720000

42

SQL / COMANDO SELECT


Operadores Between e NOT Between

Problema: Listar os empregados com salrio anual fora do intervalo de $120.000 a $720.000. select * from EMPLOYEE where SALARY not between 120000 and 720000

43

SQL / COMANDO SELECT


Operadores LIKE e NOT LIKE

WHERE <nome da coluna> <NOT> LIKE <valor>; Os operadores LIKE e NOT LIKE s trabalham sobre colunas que sejam do tipo CHAR. % - substitui todos os caracteres a partir da posio indicada _ - substitui qualquer caractere na posio indicada

44

SQL / COMANDO SELECT


Operadores LIKE e NOT LIKE

Problema: Listar os registros com a letra F na segunda posio. select * from COUNTRY where CURRENCY like '_f%';

45

SQL / COMANDO SELECT


Operadores LIKE e NOT LIKE

Problema: Listar os pases cuja moeda inicia com a letra A. select * from COUNTRY where CURRENCY like 'A%';

46

SQL / COMANDO SELECT


Operadores LIKE e NOT LIKE

Problema: Listar os pases cuja moeda no inicia com a letra A. select * from COUNTRY where CURRENCY not like 'A%';

47

SQL / COMANDO SELECT


Operador CONTAINING

select * from COUNTRY where CURRENCY containing 'Franc';

48

SQL / COMANDO SELECT


Operadores baseados em listas IN e NOT IN
WHERE <nome da coluna> <NOT> IN <valores>; Problema: Listar os pases que tem como moeda o Dollar ou a Lira. select * from country where currency in ('Dollar','Lira');

49

SQL / COMANDO SELECT


Operadores baseados em listas IN e NOT IN
WHERE <nome da coluna> <NOT> IN <valores>; Problema: Listar os clientes no sediados nos EUA. select CUSTOMER, COUNTRY from CUSTOMER where COUNTRY not in ('USA');

50

SQL / COMANDO SELECT


Operadores IS NULL e IS NOT NULL
WHERE <nome da coluna> IS NULL; WHERE <nome da coluna> IS NOT NULL; Problema: Mostrar as vendas em aberto. select CUST_NO, PO_NUMBER, ORDER_DATE, SHIP_DATE from SALES where SHIP_DATE is null;

51

SQL / COMANDO SELECT


Operadores IS NULL e IS NOT NULL
WHERE <nome da coluna> IS NULL; WHERE <nome da coluna> IS NOT NULL; Problema: Mostrar as vendas concludas para o cliente 1008. select CUST_NO, PO_NUMBER, ORDER_DATE, SHIP_DATE from SALES where CUST_NO = 1008 AND SHIP_DATE is not null;

52

SQL / COMANDO SELECT


Ordenando os Dados Selecionados
SELECT <nome da(s) coluna(s)> FROM <tabela> WRERE <condio(es)> ORDER BY <nome da(s) coluna(s)> ou ORDER BY <nmero da coluna> ASC DESC

53

SQL / COMANDO SELECT


Ordenando os Dados Selecionados

Problema: Listar os nomes dos clientes em order descendente. select CUSTOMER, COUNTRY from CUSTOMER order by CUSTOMER desc;

54

SQL / COMANDO SELECT


Ordenando os Dados Selecionados
Problema: Listar os nomes dos empregados em ordem ascendente de primeiro nome e, depois, de ltimo nome. select EMP_NO, FIRST_NAME, LAST_NAME from EMPLOYEE where FIRST_NAME = 'Roger select EMP_NO, FIRST_NAME, LAST_NAME from EMPLOYEE order by FIRST_NAME, LAST_NAME;
55

SQL / COMANDO SELECT


Realizando Clculos com Informao Selecionada
Com a linguagem SQL pode-se criar uma coluna que no pertena tabela original. Problema: Mostrar o novo salrio fixo dos empregados calculado com base no reajuste de 20% acrescido de $ 120,00 de bonificao. Ordenar pelo nome do empregado.
select EMP_NO, FIRST_NAME, SALARY, (SALARY * 1.2 + 120) as NOVO_SALARIO from EMPLOYEE order by FIRST_NAME;
56

EXERCCIOS

1)

Listar os departamentos que no possuem gerentes localizados em Monterey.

2) Listar os empregados americanos e os ingleses que ganham acima de 30.000 e cujo primeiro nome inicia com R. 3) Listar os nomes dos empregos (Job_Title) que no requeiram requisitos. 4) Listar o menor salrio da Inglaterra para a profisso de engenheiro. 5) Qual o produto gerado pelo projeto que no possui lder (team leader)?

57

EXERCCIOS
6) Listar as compras no despachadas e j pagas. 7) Quais as vendas de hardware despachadas? 8) Listar os funcionrios engenheiros americanos cujo salrio est entre 90.000 e 110.000. 9) Listar o nome completo, de forma ordenada, dos funcionrios que no trabalham nos USA e que no possuem nmero de extenso telefnica. 10)Listar os funcionrios vendedores que no trabalham no Canada nem no Japan.

58