Baixe o app para aproveitar ainda mais
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;
Compartilhar