You are on page 1of 5

Structured Query Language

(SQL)
Ambiente Simplificado de um SGBD
2
Caractersticas dos SGBDs
Natureza auto-contida de um sistema de banco de dados:
metadados armazenados num catlogo ou dicionrio de dados.
Independncia entre programas e dados:
estrutura dos arquivos de dados armazenada no catlogo
separadamente dos programas de acesso.
Abstrao de dados:
representao conceitual dos dados atravs de modelos de dados.
Suporte de mltiplas vises de dados:
diferentes perspectivas ou vises de usurios.
Suporte a transaes:
compartilhamento de dados e processamento multiusurio.
3
Esquemas, Instncias e Estado do BD
Esquema: descrio do banco de dados. definido durante o projeto de
banco de dados e no se espera que seja alterado freqentemente.
Estado ou Instncia: composto pelos dados do banco de dados em um
determinado momento.
4
Arquitetura de Trs-Esquemas
5
Tem por objetivo separar o usurio da aplicao
do banco de dados fsico.
organizada em trs nveis:
Nvel Interno: descreve a estrutura de
armazenamento fsico do banco de dados.
Nvel Conceitual: descreve a estrutura de todo o
banco de dados para a comunidade de usurios.
Nvel Externo ou Viso: cada esquema externo
descreve a parte do banco de dados que um dado
grupo de usurios tem interesse e oculta o restante
do banco de dados desse grupo.
A maioria dos SGBDs no separa
completamente os trs nveis, mas suporta essa
arquitetura de alguma forma.
6
Arquitetura de Trs-Esquemas
Independncia de Dados
Consiste da capacidade de mudar o
esquema em um nvel do sistema de banco
de dados sem que ocorram alteraes do
esquema no prximo nvel mais alto.
Independncia lgica de dados: a
capacidade de alterar o esquema conceitual
sem mudar o esquema externo ou os
programas.
Independncia fsica de dados: a
capacidade de alterar o esquema interno
sem mudar o esquema conceitual.
7
Linguagens de SGBD
Durante o desenvolvimento do sistema R, pesquisadores da IBM
desenvolveram a linguagem SEQUEL, primeira linguagem de acesso
para Sistemas Gerenciadores de Banco de Dados Relacionais.
ISO e ANSI lanou em 1986 a primeira verso do padro da
linguagem SQL, o SQL-86.
A linguagem passou por aperfeioamentos em 1989 e, em 1992, foi
lanada a SQL-92 ou SQL2.
Um novo padro, chamado de SQL-99 ou SQL3 foi lanado no ano de
2000. Foi o primeiro padro a estender a linguagem para permitir a
utilizao de tipos de dados complexos e a incorporar caractersticas
da orientao a objetos.
Aps uma grande reviso do padro SQL3 foi lanada a SQL:2003.
Nesta vero foi adicionada uma nova parte ligada ao tratamento de
XML.
8
Linguagens de SGBD
Linguagem de Definio de Dados (DDL):
usada para especificar o esquema conceitual.
Linguagem de Definio de Armazenamento (SDL):
usada para especificar o esquema interno, mas na maioria dos
SGBDs a DDL usada para definir este esquema.
Linguagem de Definio de Vises (VDL):
usada para especificar as vises dos usurios e os seus
mapeamentos para o esquema conceitual, mas na maioria dos
SGBDs a DDL usada para definir ambos os esquemas, o
conceitual e o externo.
Linguagem de Manipulao de Dados (DML):
usada para manipular os dados em um banco de dados. As
manipulaes tpicas so a recuperao, insero, remoo e
modificao dos dados.
9
Tipos de Dados
10
(4GB)
(4GB)
Modelo Utilizado
11
Modelo Utilizado
12
Pessoa(CPF, Nome, Sexo)
Piloto (CPF, Cart_Trab)
CPF Referencia Pessoa
Passageiro(CPF, Dieta)
CPF Referencia Pessoa
Voo(Numero, Data, P_CPF)
CPF Referencia Piloto
Reserva(V_Numero, P_ CPF)
V_Numero Referencia Voo
P_CPF Referencia Passageiro
Telefone(Numero, P_ CPF)
CPF Referencia Pessoa
Linguagem de Definio de Dados (DDL)
Criao de Tabelas:
CREATE TABLE NOME_TABELA(
COL1 TIPO_COLUNA[NOT NULL],
COL1 TIPO_COLUNA[NOT NULL],
COL1 TIPO_COLUNA[NOT NULL]
)
13
Linguagem de Definio de Dados (DDL)
Na criao de tabelas, possvel especificar
vrios tipos de restries:
Chave Primria: PRIMARY KEY ;
Chave Estrangeira: FOREIGN KEY;
Chave Alternativa (ou alternada): UNIQUE;
Restrio de Domnio: CHECK.
Pode-se atribuir nomes s restries de
integridade:
CONSTRAINT NOME_RESTRIO TIPO
RESTRIO. 14
Linguagem de Definio de Dados (DDL)
15
CREATE TABLE Pessoa(CPF VARCHAR(11) NOT NULL,
Nome VARCHAR(30) NOT NULL UNI QUE,
Sexo VARCHAR(1) NOT NULL,
PRIMARY KEY (CPF));
CREATE TABLE Piloto(CPF VARCHAR(11) NOT NULL,
Cart_Trab VARCHAR(13) NOT NULL UNI QUE,
PRIMARY KEY (CPF),
FOREIGN KEY (CPF)
REFERENCES Pessoa (CPF));
Linguagem de Definio de Dados (DDL)
16
CREATE TABLE Passageiro(CPF VARCHAR(11) NOT NULL
CONSTRAI NT PK_PASSAGEIRO PRIMARY KEY
CONSTRAI NT FK_PESSOA REFERENCES Pessoa (CPF),
Dieta VARCHAR(1) CHECK(Dieta IN(S, N)));
CREATE TABLE Voo(Numero Numeric NOT NULL
CONSTRAI NT PK_VOO PRIMARY KEY,
Data Date NOT NULL,
TIPO VARCHAR2(15) DEFAULT NACIONAL,
P_CPF VARCHAR(11) NOT NULL
CONSTRAI NT FK_PILOTO REFERENCES Piloto (CPF));
Linguagem de Definio de Dados (DDL)
Deleo de item referenciado:
17
... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF)
REFERENCES Piloto (CPF)
ON DELETE RESTRI CT); -- impede a excluso (default)
... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF)
REFERENCES Piloto (CPF)
ON DELETE SET NULL); -- transforma o valor em nulo
... CONSTRAINT FK_PILOTO FOREIGN KEY (P_CPF)
REFERENCES Piloto (CPF)
ON DELETE CASCADE); -- exclui a linha da tabela
Linguagem de Definio de Dados (DDL)
Criao de uma tabela com linhas de outra:
18
CREATE TABLE Pessoa_Nova
AS SELECT CPF, Nome, Sexo
FROMPessoa;
Linguagem de Definio de Dados (DDL)
19
CREATE VIEW <nome-de-viso>[ (lista-de-colunas) ]
AS <comando-de-seleo>
[WITH CHECK OPTION]
CREATE VIEW Empregados_Sede
AS SELECT (Nome, Endereco, Sexo, Data-nasc)
FROMEMPREGADO
Atualizao (INSERT, UPDATE, DELETE) de viso:
A query no pode conter join, ou seja, deve ser baseada apenas emuma tabela.
A query deve conter todas as colunas nott null da tabela referenciada.
A query no pode conter operadores de conjunto: UNION, EXCEPT e INTERSECT.
A query no pode conter o operador DISTINCT.
A query no pode conter funes de agregao.
A query no pode conter GROUP BY.
Linguagem de Definio de Dados (DDL)
Alterao de Tabelas:
Incluir novas colunas em uma tabela;
Excluir colunas existentes em uma tabela;
Adicionar a definio de uma restrio em
uma tabela;
Excluir a definio de uma restrio existente
em uma tabela;
Modificar uma coluna.
20
Linguagem de Definio de Dados (DDL)
21
CREATE TABLE Reserva(V_Numero Numeric NOT NULL,
P_CPF VARCHAR(11) NOT NULL);
CREATE TABLE Telefone(Numero VARCHAR(15) NOT NULL,
P_CPF VARCHAR(11) NOT NULL,
PRIMARY KEY (Numero, P_CPF),
FOREIGN KEY (P_CPF)
REFERENCES Pessoa(CPF));
22
ALTER TABLE Telefone
ADD COLUMN TIPO VARCHAR2(5) DEFAULT FIXO NOT NULL;
ALTER TABLE Telefone
DROP COLUMN Tipo;
ALTER TABLE TELEFONE
ADD CONSTRAI NT TIPO_TELEFONE
CHECK (TIPO IN(Fixo, Movel));
ALTER TABLE TELEFONE
DROP CONSTRAI NT TIPO_TELEFONE;
ALTER TABLE TELEFONE
MODI FY (TIPO VARCHAR2(5));
-- para diminuir tamanho a coluna precisa estar vazia.
Linguagem de Definio de Dados (DDL)
23
ALTER TABLE Reserva
ADD CONSTRAINT PK_RESERVA PRIMARY KEY (V_Numero, P_CPF);
ALTER TABLE Reserva
ADD CONSTRAINT FK_RESERVA_VOO FOREIGN KEY (V_Numero)
REFERENCES Voo (Numero);
ALTER TABLE Reserva
ADD CONSTRAINT FK_RESERVA_PASSAGEIRO FOREIGN KEY (P_CPF)
REFERENCES Passageiro (CPF);
ALTER TABLE Reserva ENABLE CONSTRAI NT FK_RESERVA_PASSAGEIRO;
ALTER TABLE Reserva DI SABLE CONSTRAI NT FK_RESERVA_PASSAGEIRO;
Linguagem de Definio de Dados (DDL)
Renomear Tabela:
No um comando SQL:2003.
24
Linguagem de Definio de Dados (DDL)
RENAME Pessoa TOPessoa_Nova; -- Oracle
RENAME TABLE Pessoa TOPessoa_Nova;
Deletar Tabela (estrutura):
DROP TABLE Pessoa;
FIM

You might also like