SQL-3 - WWW2

Propaganda
SQL-3
SQL-3
Novo contexto e necessidade de :
• Manipular imagens
• Outros tipos de dados além de texto e
números
• Recuperação de dados mais complexos
• Níveis distintos de detalhamento
SQL-3
•
•
•
•
•
Surgimento de SGBDO-R / ORDBMS
Manter compatibilidade com BD relacional
Mais funções
novos dados complexos
SQL foi estendida para atender esses
dados complexos
Anterior ao SQL-3
SQL-92 – puramente relacional
• Criação e manipulação do SCHEMA
• Tipos de dados de atributos e domínios
–
–
–
–
–
–
Numéricos: inteiros, reais, de dupla precisão,...
Cadeia de caracter: char(n), varchar(n)
Bit-string: bit(n), bit varying(n) ex. B’10011’
Date, time
Timestamp c/s/ fuso: TIMESTAMP ‘2002-09-27 9:12:30 648302’
Interval: valores relativos em formatos year/month ou day/time
Anterior ao SQL-3
SQL-92
• CREATE DOMAIN tipo_nome AS varchar(45)
Ex. CREATE TABLE tabPessoa ( cod int,
nome tipo_nome);
• SQL procedural ( inclusão de estruturas de bloco, repetição, cursores)
• ASSERÇÕES
CREATE ASSERTION nota_aluno_disciplina
CHECK ( nota >0 AND nota <10)
CREATE ASSERTION limite_salario
CHECK ( NOT EXISTS (SELECT* FROM empregado E,
empregado M, depto D
where E.salario > M.salario NA E.DNO = D.numero
AND D.ssgerente = M.ssn)
SQL-3
• Tabela: estrutura fundamental
– manipulação
– armazenamento
• Construção / armazenamento diferenciados
SQL-92
eee
1
1r
SQL-3
Curso( cod, nome)
d
Endereco(rua, num,
bairro, cidade, UF)
SQL-3
• Inclusão de tipos fora do padrão
• Solução
– surgimento de tipos não-convencionais
– suporte à recuperação destes
SQL-3- Tipos do sistema
•
•
•
•
•
•
•
•
•
•
Boolean
Binary large objects (BLOB)
Character large objects (CLOB)
Enumeration
National character large objects
Row type
Set type
Multiset
List
Abstract data type (ADT)
SQL-3: boolean
• Tipo explicitamente incluído
• Comportamento de boolean realmente
• Permite definir funções boolean com argumentos
• Suporte a operações definidas pelo usuário
• Admite somente valores TRUE e FALSE
Ex.
> create table a ( cod int,
matriculado boolean);
> select * from a where matriculado = TRUE
SQL-3: BLOB
•
•
•
•
•
•
•
Esse tipo serve como suporte a dados binários
Assinaturas eletrônicas, figuras, dados musicais
Definição requer tamanho
Manipulação do BLOB via aplicação
Possui um identificador distinto para localização na BD e unicidade
Operadores próprios : LIKE, UNION ALL*
É possível
– Concatenação
– Substituição
– Verificação do tamanho
Ex. Tabela Aluno ( num_matricula char(10),
foto BLOB (1M));
SQL-3: BLOB
• Não é possível
–
–
–
–
–
UNION
ORDER BY
> , >= , < ,<=
Chaves não são aplicáveis
GROUP BY
Postgres: BLOB
• Suportado pelo tipo BYTEA
SQL3-CLOB
• Adicionar registros de texto
• Possui identificador distinto(localização no BD e unicidade)
• Manipulação do CLOB via aplicação
• Operadores próprios : LIKE, UNION ALL*
• É possível
– Concatenação
– Substituição
– Verificação do tamanho
Ex. campo para incluir currículo de um funcionário
CREATE TABLE func ( num_func int,
curriculo CLOB(50k))
SQL-3: CLOB
• Suporta recuperação parcial ou total
• Não é possível
–
–
–
–
–
UNION
ORDER BY
> , >= , < ,<=
Chaves não são aplicáveis
GROUP BY
* CLOB e BLOB são recuperados de depósitos no BD
Postgres: CLOb
• Suportado por tipo TEXT
SQL 3: ROW
•
•
•
•
É um tipo estrutural
Amplia o conceito da tabela
Seqüência de atributos e nome e tipo de dados como a definição de
uma tabela
Tabela aninhada
Ex. CREATE aluno ( cod int,
ALUNO
ENDERECO
endereco ROW
(rua varchar(30),
num int,
bairro varchar(20),
cidade varchar(30),
uf char(2)))
SQL: ROW
• Postgres: ROW é um COMPOSITE TYPE
create type tipoendereco AS( rua varchar(20),
num int,
estado char(2),
cep char(15));
create table aluno2 ( matricula char(30) primary key,
endereco tipoendereco);
insert into aluno2 (matricula, endereco)
values ( '300', ('RUA XV', 200,'SC', '89200-100'))
insert into aluno2 (matricula, endereco)
values ( '300', ('RUA XV', 200,'SC', '89200-100'))
select matricula, endereco from aluno2 where (endereco).rua like 'RUA XV%'
Download