• Nenhum resultado encontrado

Visão Geral da SQL

No documento Bancos de Dados Objeto-Relacionais (páginas 40-60)

 A SQL é a linguagem de consulta padrão para SGBDRs.

 A SQL foi especificada pela primeira vez nos anos 70, e em 1986 foi adotada como padrão ANSI e em 1987 como ISO.

 Em 1999 a SQL3 acrescenta características

(SQL3

-

http://en.wikipedia.org/wiki/Sql);

 Em 1992 a SQL-92 (SQL2) teve sua maior revisão.

Visão Geral da SQL3

 Em SGBDORs a SQL pode ser estendida para lidar ao mesmo tempo com tabelas do modelo relacional e classes e objetos do modelo orientado a objetos.

Visão Geral da SQL3

 Novos tipos de operações foram adicionados à SQL3:

- --

- A operação SIMILAR, SIMILAR, SIMILAR, SIMILAR, que permite o uso de expressões regulares para combinar com strings de caracteres;

- --

- Valores booleanos foram estendidos com UNKNOWN

UNKNOWNUNKNOWN

UNKNOWN(DESCONHECIDO) quando uma comparação não resulta nem verdadeiro nem

Visão Geral da SQL3

 Novos tipos de operações foram adicionados à SQL3: (cont)

- --

- Uma nova operação importante é a recursão recursão recursão recursão linear

linearlinear

linear para especificar consultas recursivas;

Tabela_Peças(Peça 1, Peça 2) – tupla<p1, p2> sempre que a peça p1 contenha a peça p2 como componente. Uma consulta para produzir a lista de materiais para alguma peça p1 (ou seja, todas as peças componentes necessárias para produzir p1) está descrita a seguir:

Visão Geral da SQL3

 Novos tipos de operações foram adicionados à SQL3: (cont)

WITH RECURSIVE

Lista_Materiais(Peça 1, Peça 2) As

(Select Peça 1, Peça 2, from Tabela_Peças where Peça 1 = ‘p1’ UNION ALL

Select Tabela_Peças (Peça 1), Tabela_Peças (Peça 2) from Lista_Materiais, Tabela_Peças

Visão Geral da SQL3

 Novos tipos de operações foram adicionados à SQL3: (cont)

- --

- rolerolerole(papel), é semelhante a uma “descrição de role serviço” e está sujeito à autorização de privilprivilprivilpriviléééégiosgiosgiosgios. As verdadeiras pessoas (contas de usuários) que são designadas para um papel podem ser alteradas, mas a autorização de papéis propriamente dita não precisa ser alterada;

Visão Geral da SQL3

 Novos tipos de operações foram adicionados à SQL3: (cont)

- --

- inclui sintaxe para especificação e uso de

triggers

triggerstriggers

triggers

como regras ativas. Eventos de

triggers

incluem as operações INSERT, DELETE e UPDATE em uma tabela. O disparo pode ser especificado como sendo antes (BEFORE) ou após (AFTER) o evento de disparo.

Visão Geral da SQL3

 Novos tipos de operações foram adicionados à SQL3: (cont)

- A SQL3 está sendo estendida com facilidades de linguagem de programação.

- Rotinas escritas em SQL computacionalmente completa, com a plena combinação de tipos de dados e um ambiente integrado, denominam-se rotinas da SQL

rotinas da SQLrotinas da SQL rotinas da SQL.

Visão Geral da SQL3

 Novos tipos de operações foram adicionados à SQL3: (cont)

- Para tornar computacionalmente completa a linguagem, estão incluídas na sintaxe da SQL3 as seguintes estruturas de controle de programação: CALL/RETURN, BEGIN/END, FOR/END_FOR, IF/ THEN/ELSE/END_IF, CASE/END_CASE, LOOP/

Visão Geral da SQL3

 Novos tipos de operações foram adicionados à SQL3: (cont)

- Variáveis são declaradas utilizando-se DECLARE e atribuições são especificadas utilizando-se SET.

Visão Geral da SQL3

 A SQL3 estende a (SQL2/SQL-92) para incluir funcionalidades orientadas a objetos. Novos tipos de dados incluem objetos booleanos, objetos de caracteres e objetos binários grandes (LOBs).

 Em função da SQL/Fundamentos, a SQL3 admite tipos de dados definidos pelo usuário, construtores de tipo, tipos de coleção, funções e procedimentos definidos pelo usuário, suporte pra

Visão Geral da SQL3

 Os objetos na SQL3 são de dois tipos:

- tipos linhastipos linhastipos linhastipos linhas, cujas instâncias são tuplas em tabelas;

- tipos abstratos de dados (TAD)tipos abstratos de dados (TAD)tipos abstratos de dados (TAD), que significam tipos abstratos de dados (TAD) quaisquer tipos gerais.

Visão Geral da SQL3

 Um tipo linhatipo linhatipo linhatipo linha pode ser definido utilizando-se a sintaxe:

CREATE ROW TYPE nome (< componentes >); Exemplo 1:

CREATE ROW TYPE empempempemp (nome VARCHAR (35), idade INTERGER ); CREATE ROW TYPE compcompcomp (nomecomp VARCHAR (20), localizaçãocomp VARCHAR (20));

Visão Geral da SQL3

 Tabelas podem ser criadas com base nas declarações dos tipos linhas empempempemp e compcompcompcomp.

Exemplo 2:

CREATE TABLE EmpregadoEmpregadoEmpregadoEmpregado OF TYPE empempemp; emp CREATE TABLE CompanhiaCompanhiaCompanhiaCompanhia OF TYPE compcompcompcomp;

 Um atributo componente de uma tupla pode ser uma referência (REF) referência (REF) referência (REF) referência (REF) para uma tupla de uma outra(ou talvez da mesma) relação.

Visão Geral da SQL3

Exemplo 3:

CREATE ROW TYPE empregoempregoempregoemprego (EmpregadoEmpregadoEmpregadoEmpregado REF (empempemp), emp

Companhia Companhia Companhia

Companhia REF (compcompcompcomp));

CREATE TABLE EmpregoEmpregoEmpregoEmprego OF TYPE empregoempregoemprego;emprego

 A SQL3 utiliza notanotanotanotaçççção de doisão de doisão de doisão de dois pontos para construir expressões de caminho que se referem aos componentes de tuplas.

Exemplo 4:

Visão Geral da SQL3

 Identificadores de objeto (Identificadores de objeto (Identificadores de objeto (Identificadores de objeto (OIDsOIDsOIDs)))) podem ser OIDs explicitamente declarados e acessados.

Exemplo 5:

CREATE ROW TYPE empempempemp (nome CHAR (35), idade INTENGER, Id REF (empempemp));emp

 Valores de identificador de objeto podem ser gerados pelo sistema.

Exemplo 6:

CREATE TABLE Empregado OF TYPE emp VALUES FOR Id ARE SYSTEM GENERATED;

Visão Geral da SQL3

 Tipos Abstratos de Dados (Tipos Abstratos de Dados (Tipos Abstratos de Dados (Tipos Abstratos de Dados (TADsTADsTADs))))TADs

Na SQL3, é fornecido um componente semelhante à definição de classe através do qual o usuário pode criar um tipo definido pelo usuáááário com sua própria especificação de comportamento e estrutura interna.

Exemplo 7:

CREATE TYPE <nome> (

Visão Geral da SQL3

Exemplo 8:

CREATE TYPE PessoaPessoaPessoaPessoa (nome VARCHAR (40), identidade INTEGER);

 Um TAD tem inúmeras funções definidas pelo usuário a ele associadas. A sintaxe é:

Exemplo 9:

Visão Geral da SQL3

 HeranHeranHeranHeranççççaaaa

- Todos o atributos são herdados;

- A ordem dos subtipos na clausula UNDER determina a hierarquia de herança;

- Uma instância de um subtipo pode ser utilizada em todos os contextos em que uma instância de supertipo seja utilizada.

Visão Geral da SQL3

 SobrecargaSobrecargaSobrecargaSobrecarga

- Um subtipo pode redefinir qualquer função que esteja definida em seu supertipo, com a restrição de que a assinatura seja a mesma.

 ResoluResoluResoluResoluçççção de Funão de Funão de Funão de Funççççõesõesõesões

- Quando uma função é chamada, a melhor combinação é selecionada com base nos tipos de todos os argumentos.

Visão Geral da SQL3

 Tipos ColeTipos ColeTipos ColeTipos Coleççççõesõesõesões

- A SQL3 suporta construtores para tipos de coleção, que podem ser utilizadas para se criarem estruturas aninhadas para objetos complexos.

Exemplo 11:

No documento Bancos de Dados Objeto-Relacionais (páginas 40-60)

Documentos relacionados