Upload
landeivisonlan
View
216
Download
1
Embed Size (px)
DESCRIPTION
ADM E PROJETO DE BANCO DE DADOS
Citation preview
ADMINISTRAÇÃO E PROJETO DE BANCO
DE DADOS
Professor: Jailton Cardoso da Cruz
EMENTA
Introdução à linguagem SQL.
Padrão ISO/IEC 9075.
Tipos de Dados.
SQL Schema.
Comandos DDL, DML, DCL.
Triggers.
Stored Procedures.
Persistent Stored Modules (PSM).
Transaction.
Embedded SQL.
Otimização de consultas em SQL
Prof. Jailton Cardoso 2
INTRODUÇÃO À LINGUAGEM SQL
SQL – Structured Query Language
Origem linguagem SEQUEL - Originalmente proposta
para o System R desenvolvido nos laboratórios da IBM
na década de 70 (Structured English QUEry
Language)
Objeto de um esforço de padronização coordenado
pelo ANSI/ISO: SQL1 (SQL-86)
SQL2 (SQL-92)
SQL3 (SQL-99)
Link artigo: Padrão SQL e sua Evolução
Prof. Jailton Cardoso 3
CARACTERÍSTICAS
Linguagem baseada em Inglês (english like);
É um modo de recuperar e manipular dados de um
BD;
Pode ser usado por um terminal ON-LINE (consultas
ad hoc);
Pode ser usado na forma de “EMBEDDED SQL” em um
programa de aplicação;
Possui uma série completa de operações de
atualização;
Usado para administração de banco de dados.
Prof. Jailton Cardoso 4
PADRÃO ISO/IEC 9075
Artigo: Wat‟s New in SQL:2011
Prof. Jailton Cardoso 5
TIPOS DE DADOS
SQL linguagem tipada
Cada coluna ou constante deve possuir uma tipo de
dado
Tipos de dados Oracle: link Oracle Documentation
(Oracle Data Types)
Prof. Jailton Cardoso 6
TIPOS DE DADOS – CARACTER
Char – dados com tamanho fixo de 1 a 2000 caracteres
Varchar2 – dados com tamanho variável de 1 a 400 caracteres
Ncha e Nvarchar2 - utilizados para armazenar dados unicode
LOB – Armazenam dados caracteres de até 8T
BLOB, CLOB e NCLOB e BFILE – permite armazenar e manipular grandes blocos de dadso não estruturados tais como textos, gráficos, imagens, vídeos, sons no formato caracter
binário.
Prof. Jailton Cardoso 7
TIPOS DE DADOS – NUMÉRICO
NUMBER
Armazena dados do tipo de ponto fixo e ponto
flutuante;
Positivos de 1 x 10-130 a 9.99...9 x 10125
Negativos de 1 x 10-130 a 9.99...9 x 10125
Zero
Nome_col number(precisão, escala)
Prof. Jailton Cardoso 8
TIPOS DE DADOS – DATA
DATE
Armazena dados do tipo data
Armazena ano, mês, dia, hora, minuto e segundo
Formato padrão: DD-MON-YY (27-SEP-14)
Formato pode ser modificado pelo parâmetro
NLS_DATE_FORMAT.
Prof. Jailton Cardoso 9
PSEUDO COLUNA ROWID
Recupera o endereço de cada linha (registro) em uma
consulta SQL.
Prof. Jailton Cardoso 10
SQL SCHEMA
Terminologia
Tabela (relação) - um conjunto de linhas, ou um conjunto de listas de valores, uma “relação”.
Coluna (atributo)
Semelhante à campo de um registro;
Cada coluna em cada linha tem apenas um conteúdo;
Cada coluna é só de um tipo de dados
Registro (linha, tupla) Análogo a um registro de um arquivo;
Todas linhas de uma tabela tem o mesmo conjunto de colunas.
Domínio Conjunto de valores válidos para uma determinada coluna
Prof. Jailton Cardoso 11
SQL SCHEMA
São uma coleção de objetos dentro de um
determinado database;
Agrupar objetos;
Schema ≡ usuário do banco de dados;
Bastante utilizados em sistemas de banco de dados;
Importantes para a performance e segurança
Prof. Jailton Cardoso 12
Prof. Jailton Cardoso 13
Prof. Jailton Cardoso 14
VENDAS
ESTOQUE
FOLHA
DATABASE_01
ESQUEMAS DO BANCO DE DADOS
Fonte: do autor
COMANDOS DDL, DML E DCL
Subconjuntos de comandos SQL
Comandos DDL
CREATE, ALTER, DROP
Comandos DML
SELECT, INSERT, UPDATE, DELETE
Comandos DCL
GRANT, REVOKE
Comandos de controle de transação
COMMIT, ROLLBACK
Prof. Jailton Cardoso 15
CRIANDO ESQUEMAS
O SGBD usa esquemas (usuários) e perfis de segurança para
acessar os dados e restringir o acesso a outros recursos do
banco de dados.
Para acessar o banco de dados o usuário deve está conectado
com um usuário válido no database.
A cada usuário é associado uma senha;
A cada usuário é associado um domínio de segurança
As ações (privilégios e regras)
Cotas de espaço em disco;
Os limites de recursos do sistema (tempo de processamento, CPU)
Prof. Jailton Cardoso 16
CRIANDO ESQUEMAS
Comandos DCL
Privilégios
Um PRIVILÉGIO é um direito de executar um determinado tipo de sentença SQL, tais como:
Conectar ao banco de dados (criar uma sessão);
Criar uma tabela ou um esquema;
Selecionar linhas de uma tabela;
Executar uma stored procedure.
Role
São grupos de privilégios que pode ser concedido ao usuário
Prof. Jailton Cardoso 17
CRIANDO ESQUEMAS
Concedendo Privilégios
Tipos de privilégios
Privilégios em nível de sistema
GRANT ALL_PRIVILEGES |
SYSTEM_PRiVILEGE |
RULER
TO USUARIO;
Privilégio em nível de objeto
GRANT ALL_PRIVILEGES | PRIVILEGIO | REGRA
ON NOME_OBJETO
TO NOME_USUARIO;
Prof. Jailton Cardoso 18
CRIANDO ESQUEMAS
Retirando Privilégios Privilégios em nível de sistema
REVOKE ALL_PRIVILEGES |
SYSTEM_PRIVILEGE |
RULER
TO USUARIO;
Privilégio em nível de objeto
REVOKE ALL_PRIVILEGES | PRIVILEGIO | REGRA
ON NOME_OBJETO
FROM NOME_USUARIO;
Prof. Jailton Cardoso 19
CRIANDO ESQUEMAS
Comentando o DATABASE_01 No modelo do DATABASE_01, observa-se que a tabela
T_ITEM_NF do esquema VENDAS referencia a coluna MATRIC da tabela T_FUNCIONARIO, pertencente ao esquema FOLHA.
Neste caso o esquema FOLHA tem que dar uma permissão para possibilitar estabelecer esta referencia. O mesmo procedimento deverá ser aplicado com relação à tabela T_MOV_PRODUTO do esquema ESTOQUE.
GRANT REFERENCES, SELECT
ON T_FUNCIONARIO
TO VENDAS;
Prof. Jailton Cardoso 20
CRIANDO ESQUEMAS
1º Criar Usuário
CREATE USER nome_usuario
IDENTIFIED BY senha
[DEFAULT TABLESPACE nome_tablespace]
[TEMPORARY TABLESPACE nome_tablespace_temporaria];
2º conceder privilégio de acesso
GRANT CONNECT, RESOURCE TO nome_usuario;
Concede os privilégios das regras CONNECT e RESOURCE
Link artigo: Criando usuário no Oracle
Prof. Jailton Cardoso 21
CRIANDO ESQUEMAS
EXERCÍCIOS
1.
Criar os usuários VENDAS, FOLHA E ESTOQUE.
Default tablespace: user
Temporary tablespace: temp
2.
Conceder privilégio connect e resource aos usuários criados.
Prof. Jailton Cardoso 22
COMANDOS DDL
DDL – Data Definition Language
Linguagem de Definição de Dados
COMANDOS
CREATE
ALTER
DROP
Prof. Jailton Cardoso 23
COMANDOS DDL
CRIANDO, ALTERANDO E EXCLUINDO TABELAS
Criando, alterando e excluindo tabelas
Comando CREATE TABLE (Link Create table Sql References)
CREATE TABLE nome_tabela
(coluna1_nome tipo_dado col1_constraint,
coluna2_nome tipo_dado col2_constraint,
colunan_nome tipo_dado coln_constraint,
tabela_constraint);
Prof. Jailton Cardoso 24
COMANDOS DDL
CRIANDO, ALTERANDO E EXCLUINDO TABELAS
Criando, alterando e excluindo tabelas
Comando ALTER TABLE (link Oracle SQL References)
Alter table ADD coluna | constraint
MODIFY coluna | constraint
DROP [column coluna] | constraint
ENABLE constraint
DESABLE constraint
Prof. Jailton Cardoso 25
COMANDOS DDL
CRIANDO, ALTERANDO E EXCLUINDO TABELAS
Criando, alterando e excluindo tabelas
Comando DROP TABLE (link Oracle SQL References)
Drop table nome_tabela [cascade constraints] [purge];
Ações:
Todos os dados serão eliminados;
Todos os índices associados serão eliminados;
Todas as visões e sinônimos não serão eliminados mas se tornarão inválidos;
Todas as transações pendentes serão efetivadas;
Todas as constraints de integridade serão eliminadas;
Somente o criador da tabela ou o DBA poderão eliminar ou modificar a estrutura de uma tabela.
Deverão ser eliminadas primeiro as tabelas que referenciam e depois as tabelas referenciadas.
Prof. Jailton Cardoso 26
COMANDOS DDL
CRIANDO, ALTERANDO E EXCLUINDO TABELAS
Inserindo Comentários
Comentários são utilizados para documentação.
COMMENT ON TABLE nome_tabela
IS „comentário‟;
COMMENT ON COLUMN nome_tabela.nome_coluna
IS „comentário‟;
Para acessar os comentário no dicionário de dados, consultar as visões:
USER_COL_COMMENTS ou
USER_TAB_COMMENTS
Prof. Jailton Cardoso 27
COMANDOS DDL
EXERCÌCO
Criar as tabelas do DATABASE_01, onde:
1. Nome das chaves primárias
Tabela T_PRODUTO – PK_PRODUTO
Tabela T_GRUPO_PRODUTO – PK_GRUPO_PROD
Tabela T_UNIDADE_MEDIDA – PK_UNID_MEDIDA
Tabela T_MOV_PRODUTO – PK_MOV_PRODUTO
Tabela T_FUNCIONARIO - PK_FUNCIONARIO
Tabela T_DEPARTAMENTO – PK_DEPARTAMENTO
Tabela T_CLIENTE – PK_CLIENTE
Tabela T_NOTA_FISCAL – PK_NOTA_FISCAL
Tabela T_ITENS_NF – PK_ITENS_NF
Prof. Jailton Cardoso 28
CONTATOS
Email: [email protected]
Fones: 9116233 (claro)
96628963 (tim)
Fb: jailton cardoso
Prof. Jailton Cardoso 29