Escolar Documentos
Profissional Documentos
Cultura Documentos
caractersticas
A tabela convencional estendida para permitir a referncia de objetos (referncia de tipos), UDTs e estruturas como domnio de colunas (Row type).
uso de referncias para representar conexes inter-objetos, isso torna consultas mais compactas que quando feitas com juno;
Herana hierarquias;
implementada
organizando
todos
os
tipos
em
Estruturas de BDOR
Tipo de objetos:
Um tipo de objeto funciona como um molde para criao de objetos, atravs da atribuio de valores a essa estrutura de dados.
Criando um tipo e uma tabela com atributos, cujo domnio do tipo definido
create type TEnd as object (rua varchar (20), nro numeric (4), cidade varchar(20), CEP numeric(9));
PostGreSQL
create type TEnd as ( rua varchar (20), nro numeric (4), cidade varchar(20), CEP numeric(9)); Create table Fornecedores( codfornec numeric (3), nomefornec varchar (30), endfornec TEnd);
insert into fornecedores values (nextval('s_fornec'), 'estrela', row ('Dr. Camiso', 3,'SoPaulo',21360055)); insert into fornecedores values (nextval('s_fornec'), 'estrela', ('Dr. Camiso', 3,'SoPaulo',21360000)); update fornecedores set endfornec=('Camiso', 3,'SoPaulo',21360055) Solange N. Alves de Souza where codfornec=3
No no PostgreSQL
10
11
12
Exemplo - Array
Coleo ordenada Sintaxe SQL99 (arrays de uma dimenso)
NotaVenda nmero cliente data item: ARRAY (10) Qtd: ARRAY (10)
13
create table notavenda ( numero numeric, cliente varchar(30), data date, item integer array[10], qtd_item integer array [10]);
Tipo de dado simples
14
Inserindo dados
insert into notavenda values (1, 'Joo Antnio', '10-10-2007', ARRAY[1,2,3], ARRAY[1,20,4]);
numero 1
data
item
qtd_item
cliente
10/10/2007 {1,2,3}
row type atributo e tipo de dado UDT atributos simpes e complexos e mtodos
Solange N. Alves de Souza 15
mais
No PostgreSQL possvel criar arrays bi-dimensionais.
create table notavenda2 ( numero numeric, cliente varchar(30), data date, item_e_qtd integer [10][10]);
numero 1 cliente data Item_e_qtd
16
Oracle
VARRAY (array varivel cujos elementos podem ser objetos) NESTED TABLE (atributo cujo domnio uma tabela aninhada) PostGreSQL Pode-se definir um atributo cujo domnio uma tabela
Solange N. Alves de Souza 17
19
20
10
relacionamento
Solange N. Alves de Souza 21
Esquema de Objetos
Fornecedores
Compras
Produto
11
Referncia de objetos
Definio de relacionamento entre objetos No semelhante a uma chave estrangeira (chave estrangeira pode ser composta) s referencia uma tabela que tenha definido um OID
23
24
12
Em BDR
SELECT f.nomeFornec FROM Compras c join Fornecedor f on c.codfornec = f.codfornec WHERE qtde > 1000 AND codProd = 45;
Solange N. Alves de Souza 25
26
13
Escopo de Referncia
Uma referncia indica um tipo
Deve-se definir o escopo da referncia quando mais de uma tabela pertence ao tipo
27
Fornecedores
Produto
14
Permite herana de um tipo para um subtipo CREATE TYPE <nometipo> ( <lista de atributos>, [<declaraoAssinMtodos>]) [INSTANTIABLE] [ [NOT] FINAL]
Pode gerar tabelas Pode ou no ser especializado
29
CREATE TYPE <nomeobjeto> AS OBJECT (atributo1 tipo_dado, ..., atributoN tipo_dado, MEMBER PROCEDURE <nomeprocedimeto> [(parmetro1 [IN | OUT | IN OUT] tipo_dado, ..., parmetroN [IN | OUT | IN OUT] tipo_dado)], BEGIN <corpo do procedimento> END <member nomeprocedimento> )
30
15
Empregados
Solange N. Alves de Souza 31
Lista de atributos
16
Mtodos
S podem ser definidos dentro de um TAD Identificao do mtodo a ser executado determinado em tempo de execuo (late binding)
Depende do objeto que o invoca ou de parmetros
33
34
17
Herana
Herana mltipla em geral no permitida CREATE TYPE <nomeTAD> UNDER <nomeTAD> (...)
CREATE TYPE TProfessor UNDER TEmpregado ( titulao varchar(15), gratificao decimal (7,2), OVERRRIDING METHOD salrio() RETURNS decimal (7,2); ...) Instantiable Not final Solange N. Alves de Souza 35
36
18
Tipos de LOBs
CLOB (Character LOB texto longo) BLOB (Binary LOB imagem) So definidos em termos de KB, MB e GB CREATE TABLE empregados (... currculo CLOB(500K), fotografia BLOB(12M), ...)
Solange N. Alves de Souza 37
LOBs - Operaes
CONCATENATION, SUBSTRING, POSITION, OVERLAY, predicados LIKE, ..., funes definidas pelo usurio. Empregados ... curriculo: CLOB(500K) fotografia:BLOB(12M) ... SELECT nome FROM empregados WHERE currculo LIKE *UFSC*
Solange N. Alves de Souza 38
19