Aula 16 120411 SQL (Parte 1)
57 pág.

Aula 16 120411 SQL (Parte 1)

Disciplina:Informática8.526 materiais40.963 seguidores
Pré-visualização3 páginas
Banco de Dados
Haroldo Amaral (haroldo.amaral@gmail.com)
Licenciatura em Computação – 5º Período
12/04/2011
Aula 16 – SQL (Parte 1)
Introdução
Criação de Esquemas e Tabelas
Alteração de Tabelas
Inserção, Remoção e Atualização de Valores em Tabelas
Privilégios de Acesso
12/04/2011
Banco de Dados
2
Introdução
12/04/2011
Banco de Dados
3
Introdução
12/04/2011
Banco de Dados
4
Primeira versão:
SEQUEL, definida por Chamberlain, em 1974, na IBM
Revisada e ampliada entre 1976 e 1977, tendo seu nome alterado para SQL
Linguagem padrão para SGBDs Relacionais
Em 1986, o American National Standard Institute (ANSI) e a International Standard Organization (ISO) definiram uma versão padrão da SQL (SQL-86 ou SQL1)
Em 1992, o padrão foi revisado e bastante modificado, gerando o SQL-92 (ou SQL2)
Em 1999, desenvolvido o padrão SQL:1999, que começou como SQL3
Posteriormente, SQL :2003, SQL:2006 (recursos XML) e SQL:2008 (recursos de BD de objeto)
Introdução
12/04/2011
Banco de Dados
5
Fundamentada no modelo relacional (álgebra relacional e cálculo relacional de tupla), incluindo comandos para:
Definição de dados
Consulta a dados
Atualização de dados
DDL e DML
Introdução
12/04/2011
Banco de Dados
6
Além disso, ela possui facilidades para:
Definir visões sobre o banco de dados
Especificar segurança e autorização
Definir restrições de integridade
Especificar controles de transação

Ela, também, possui regras para embutir instruções SQL em linguagens de programação (Java, COBOL, C/C++, etc.)

Utilizada tanto de forma interativa como incluída em linguagens hospedeiras
Introdução
12/04/2011
Banco de Dados
7
Introdução
12/04/2011
Banco de Dados
8
Os padrões mais recentes (a partir do SQL:1999) são divididos em duas partes:
Uma especificação núcleo
Extensões especializadas
O núcleo é implementado por todos os fornecedores de SGBDR compatíveis
As extensões são implementadas como módulos opcionais adquiridos para aplicações de BD específicas
Mineração de dados, dados espaciais, dados temporais, data warehousing, processamento analítico on-line (OLAP), dados multimídia, etc.
Introdução
Enfoques da Linguagem
12/04/2011
Banco de Dados
9
Introdução
Enfoques da Linguagem
12/04/2011
Banco de Dados
10
Introdução
Vantagens
Desvantagens
12/04/2011
Banco de Dados
11
Independência de fabricante
Portabilidade entre sistemas
Redução de custos com treinamento
Comandos em inglês
Consulta interativa
Múltiplas visões de dados
Manipulação dinâmica dos dados
A padronização inibe a criatividade
Está longe de ser uma linguagem relacional ideal
Falta de ortogonalidade nas expressões
Discordância com as linguagens hospedeiras
Não dá suporte a alguns aspectos do modelo relacional

Comandos
12/04/2011
Banco de Dados
12
Criação de esquemas

Criação, alteração e destruição de tabelas

Inserção, modificação e remoção de dados

Extração de dados de uma tabela – consultas

Definição de visões

Definição de privilégios de acesso
12/04/2011
Banco de Dados
13
Exemplo Ilustrativo
12/04/2011
Banco de Dados
14
Pnome
Minicial
Unome
Cpf
Datanasc
Endereco
Sexo
Salario
Cpf_superv
Dnr
EMPREGADO
Dnome
Dnumero
Cpf_gerente
Data_inicio_gerente
DEPARTAMENTO
Dnumero
Dlocal
LOCALIZACOES_DEP
Projnome
Projnumero
Projlocal
Dnum
PROJETO
Fcpf
Pnr
Horas
TRABALHA_EM
Fcpf
Nome_dependente
Sexo
Datanasc
Parentesco
DEPENDENTE
CHAVES ESTRANGEIRAS?
12/04/2011
Banco de Dados
15
Criação de Esquemas e Tabelas
O Comando CREATE SCHEMA
12/04/2011
Banco de Dados
16
Um esquema SQL é identificado por um nome de esquema, incluindo um identificador de autorização para indicar o proprietário (usuário ou conta), bem como descrições para cada elemento (tabelas, restrições, views, domínios e outras construções)
A instrução CREATE SCHEMA é usada, de forma geral:

Exemplo:
	CREATE SCHEMA EMPRESA AUTHORIZATION ‘Jose’;
Os elementos do esquema podem ser definidos depois
CREATE SCHEMA <nome do esquema>
	AUTHORIZATION <nome usuario/conta>;
Catálogo de um Esquema
12/04/2011
Banco de Dados
17
Além do conceito de esquema, SQL usa o conceito de catálogo

Coleção nomeada de esquemas
Contém um esquema especial, chamado INFORMATION_SCHEMA, que fornece informações sobre todos os esquemas no catálogo e todos os descritores de seus elementos
As restrições de integridade podem ser definidas entre as relações somente se existirem nos esquemas do mesmo catálogo
Os esquemas dentro do mesmo catálogo também podem compartilhar elementos, como definições de domínio
O Comando CREATE TABLE
12/04/2011
Banco de Dados
18
O comando CREATE TABLE é usado para criação de tabelas, dando-lhe um nome e especificando seus atributos e restrições (de chave, de integridade de entidade, de integridade referencial, etc.)
Forma geral:

Onde a descrição dos atributos  <nome> <tipo>
Exemplo:
	CREATE TABLE FUNCIONARIO ...
CREATE TABLE <nome da tabela>
	(<descrição dos atributos>
	 <descrição das chaves>
	 <descrição das restrições>);
Tipos de Dados de Atributos e Domínios
12/04/2011
Banco de Dados
19
Numéricos
Inteiros de vários tamanhos
INT (ou INTEGER) e SMALLINT
Reais (ponto flutuante) de várias precisões
FLOAT (ou REAL) e DOUBLE PRECISION
O formato dos números pode ser declarado usando DECIMAL(i, j) ou DEC(i, j) ou NUMERIC(i, j)
i é a precisão  número total de dígitos decimais
j é a escala  número de dígitos depois do ponto decimal
O valor padrão para a escala é zero e o valor da precisão é definido pela implementação
Tipos de Dados de Atributos e Domínios
12/04/2011
Banco de Dados
20
Cadeias de caracteres
De tamanho fixo
CHAR(n) ou CHARACTER(n), onde n é o número de caracteres
Para cadeias de tamanho fixo, uma cadeia mais curta é preenchida com caracteres em branco à direita
Espaços preenchidos são ignorados quando cadeias são comparadas
Para fins de comparação, as cadeias são consideradas ordenadas em ordem alfabética. Assim se uma cadeia str1 aparecer antes de outra cadeia str2, então str1 é considerada menor que str2
De tamanho variável
VARCHAR(n) ou CHAR VARYING(n) ou CHARACTER VARYING(n), onde n é o número máximo de caracteres
Literais são delimitados por aspas simples e são case sensitive
Concatenação de cadeias  operador ||
Tipos de Dados de Atributos e Domínios
12/04/2011
Banco de Dados
21
Cadeias de caracteres

Outro tipo de dado de tamanho variável (CHARACTER LARGE OBJECT ou CLOB) está disponível para especificar colunas que possuem grandes valores de texto,como documentos
O tamanho máximo de CLOB pode ser especificado em kilobytes (K), megabytes (M) ou gigabytes (G)
Por exemplo:
CLOB(20M) especifica um tamanho máximo de 20 megabytes
Tipos de Dados de Atributos e Domínios
12/04/2011
Banco de Dados
22
Cadeias de bits (Bit-string)
De tamanho fixo n
BIT(n)
De tamanho variável
BIT VARYING(n), onde n é o número máximo de bits
O valor padrão para n é 1
Literais são delimitados por aspas simples, porém precedidos por B para distingui-los de cadeias de caracteres
B’10101’
Outro tipo de dados de tamanho variável (BINARY LARGE OBJECT ou BLOB) está disponível para especificar colunas que possuem grandes valores binários, como imagens
O tamanho máximo de BLOB pode ser especificado em kilobits (K), megabits (M) ou gigabits (G)
Por exemplo:
BLOB(30G) especifica um tamanho máximo de 30 gigabits
Tipos de Dados de Atributos e Domínios
12/04/2011
Banco de Dados
23
Booleano

Possui os valores TRUE e FALSE

Como SQL permite valores null, um terceiro valor booleano foi definido - UNKNOWN
Tipos de Dados de Atributos e Domínios
12/04/2011
Banco de Dados
24
Datas e Horários
DATE (data) contém dez posições e seus componentes são YEAR (ano), MONTH (mês) e DAY (dia), no formato YYYY-MM-DD
TIME tem, no mínimo, oito posições com os componentes HOUR (hora), MINUTE (minuto) e SECOND (segundo), no formato HH:MM:SS
A comparação < pode ser usada com datas e horários
Literais são representados por