Buscar

BD_Teoria_Aula09

Prévia do material em texto

BANCO DE DADOS
AULA 09
= SQL =
Prof. Ivi Alex Franco Silva
E-mail: ivi.alex@puc-campinas.edu.br
7. SQL - HISTÓRICO
E. F. Codd: “A Relational Model of Data for Large 
Shared Data Banks”, junho 1970
Definição de um modelo que propõe uma nova 
estrutura de armazenamento em banco de dados
Modelo Relacional
7. SQL - HISTÓRICO
• 1970: IBM cria a linguagem SEQUEL (Structured
English Query Language) como ferramenta de
acesso ao modelo proposto por Codd;
• 1986: American National Standards Institute (ANSI)
e International Standards Organization (ISO)
definem uma interface padrão para acesso ao
modelo relacional: SQL (Structured Query
Language);
• 1986: A IBM estabelece um padrão próprio
denominado System Application Architecture
Database Interface (SAA SQL).
7. SQL - CARACTERÍSTICAS
• A linguagem SQL é mais do que somente uma
linguagem de consulta, sem que isto se oponha ao
“query” no seu nome. Ela fornece funções de
recuperação e atualização de dados, além de
criação, manutenção da estrutura de dados e
controle do ambiente do BD.
• É uma linguagem essencialmente interativa,
porém pode ser embutida em outras linguagens
para ser utilizada em programas que acessam o
banco de dados.
7. SQL - CARACTERÍSTICAS
Suas principais características são:
• Padrão ANSI (American National Standard Institute): O
ANSI estabeleceu-se como um “padrão de fato” de SQL
para os fornecedores de produtos relacionais, que
atualmente lideram o mercado. Este aspecto facilita a
interoperabilidade entre BDs de diferentes fornecedores.
• Padrão de acesso: Todo o acesso ao BD Relacional é feito
em SQL, mesmo que embutida em outra linguagem.
• Interpretada (não compilada): característica que provê
maior grau de independência de dados aos BD relacionais,
ou seja, faz com que a aplicação reconheça alterações nas
estruturas de dados, sem necessidade de ser recompilada.
7. SQL – GRUPOS DE COMANDOS
A linguagem SQL tem diversas partes:
• Linguagem de definição de dados: DDL –
(database definition language) comandos para a
definição de esquemas de relações, exclusão de
relações, criação de índices e modificação nos
esquemas de relações.
7. SQL – GRUPOS DE COMANDOS
• Linguagem interativa de manipulação de dados:
DML (database manipulation language) –
linguagem de consulta baseada na álgebra e no
cálculo relacional de tuplas. Engloba comandos
para inserção, exclusão e modificação de tuplas
no BD.
7. SQL
• Definição de visões: a SQL DDL possui comandos
para definição de visões. Essa visões permitem
que os usuários visualizem somente os dados que
eles devem ter acesso.
• Autorização: a SQL DDL possui comandos para
especificação de direitos de acesso a relações e
visões;
7. SQL
• Integridade: a SQL DDL possui comandos para
especificação de regras de integridade que os
dados que serão armazenados no BD devem
satisfazer;
• Controle de transações: a SQL possui comandos
para especificação de iniciação e finalização de
transações. Algumas implementações permitem
explicitar bloqueios de dados para controle de
concorrência.
7. SQL
SQL
SELECT
UPDATE
DELETE
INSERT
CREATE
ALTER
DROP
GRANT
REVOKE
COMMIT
ROLLBACK
SAVEPOINT
SET TRANSACTION
DML DDL
CONTROLCom COMMIT
“embutido”
Segurança
Controle
transações
7.1. COMANDOS DDL
7.1.1. Comando CREATE
• Esse comando é utilizado na criação do usuário
de banco de dados bem como de todos os
objetos utilizados nesse usuário de banco de
dados.
Exemplos:
a. Criação de usuário:
create user usr_empresa identified by
usr_empresa;
7.1. COMANDOS DDL
7.1.1. Comando CREATE
b. Criação de tablespace*:
create tablespace “usr_empresa_data” datafile
‘C:\oracle\oradata\orcl\usr_empresa_data.ora’
size 10M autoextend on next 10M maxsize 2000M;
* Tablespace: uma ou mais unidades lógicas que compõem
o banco de dados. Cada tablespace consiste em uma ou
mais estrutura chamadas de arquivo de dados. É o espaço
em disco onde as informações do seu banco de dados serão
armazenadas.
7.1. COMANDOS DDL
7.1.1. Comando CREATE
c. Criação de tabela:
create table produto
(
id_produto number not null,
part_number varchar2(100) not null,
descricao varchar2(500) not null,
peso_bruto number(15,7),
peso_liquido number(15,7),
cod_origem varchar2(1),
cod_pais_origem varchar2(3)
) tablespace usr_empresa_data;
7.1. COMANDOS DDL
7.1.2. Comando ALTER
• Esse comando permite alterar (incluir/excluir) os
usuários e objetos criados no banco de dados.
Exemplos:
a. Alteração de tabela:
alter table produto add (nome_comercial
varchar2(250) null);
7.1. COMANDOS DDL
7.1.2. Comando ALTER
b. Alteração de chave primária:
alter table produto
add constraint pk_produto primary key(id_produto)
using index tablespace usr_empresa_data;
c. Alteração de chave estrangeira:
alter table produto
add constraint fk_produto_origem foreign key (cod_origem) 
references origem (cod_origem);
7.1. COMANDOS DDL
7.1.3. Comando DROP
• Esse comando permite excluir os usuários e 
objetos criados no banco de dados.
Exemplos:
a. Exclusão de tabela:
drop table produto;
b. Exclusão de coluna da tabela:
alter table produto drop column cod_origem;
7.2. COMANDOS DE SEGURANÇA
7.2.1. Comando GRANT
• Comando utilizado pelo DBA para dar permissões
específicas de acesso ao banco de dados.
• Há dois tipos diferentes de privilégios: objeto e
sistema. Um privilégio de objeto permite uma
operação em um objeto em particular (tabela,
view, sequence...). Um privilégio de sistema
permite operações em uma classe inteira de
objetos.
7.2. COMANDOS DE SEGURANÇA
7.2.1. Comando GRANT
• Sintaxe para permissões de objeto:
grant PRIVILÉGIO on OBJETO to USUÁRIO 
[with grant option];
Exemplos:
• grant update, delete on produto to teste1;
• grant all on cliente to teste1;
• grant select on produto to teste2 with grant 
option;
7.2. COMANDOS DE SEGURANÇA
7.2.1. Comando GRANT
• Sintaxe para permissões de sistema:
grant PRIVILÉGIO to USUÁRIO 
[with admin option];
Exemplo:
• grant connect to usr_empresa;
7.2. COMANDOS DE SEGURANÇA
7.2.1. Comando GRANT
• With grant option e With admin option permite
que os usuários que receberam a permissão,
repassem essa permissão para outros usuários;
• Utilizando with grant option, se o primeiro
usuário perder o acesso, o segundo usuário
também perde;
• Utilizando with admin option, mesmo se o
primeiro usuário perder o acesso, o segundo
usuário manterá o seu acesso.
7.2. COMANDOS DE SEGURANÇA
7.2.2. Comando REVOKE
• Comando utilizado pelo DBA para retirar
permissões de determinados objetos/usuários do
banco de dados.
• Sua sintaxe é semelhante ao grant, alterando-se
apenas o comando para REVOKE.
Exemplo:
• revoke connect to usr_empresa;
7.2. COMANDOS DE SEGURANÇA
7.2.3. Exemplos de privilégios de tabelas
7.3. COMANDOS DE CONTROLE
7.3.1. Comando COMMIT
• Comando utilizado para confirmar uma transação.
• É utilizado sempre ao final da utilização de um 
comando DML.
• Uma vez que o comando commit é executado, não 
é mais possível cancelar a operação.
Sintaxe:
• commit;
7.3. COMANDOS DE CONTROLE
7.3.2. Comando ROLLBACK
• Comando utilizado para cancelar uma transação.
• É utilizado ao final de um comando DML quando se 
deseja cancelar a operação efetuada. 
• Uma vez que o comando rollback é executado, a 
operação realizada anteriormente é cancelada.
Sintaxe:
• rollback;

Continue navegando