A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Banco de Dados Objetos Relacionais Tabelas Aninhadas.

Apresentações semelhantes


Apresentação em tema: "1 Banco de Dados Objetos Relacionais Tabelas Aninhadas."— Transcrição da apresentação:

1 1 Banco de Dados Objetos Relacionais Tabelas Aninhadas

2 2 Tabelas Aninhadas do Oracle Permite uma relação seja usada como valor de um conjunto de componentes. Seja T um UDT, a sentença abaixo cria um tipo S cujos valores são relações com rowtipe T, por: CREATE TYPE S AS TABLE OF T ;

3 3 Exemplo: Tabela Aninhada CREATE TYPE BeerType AS OBJECT ( nameCHAR(20), kindCHAR(10), colorCHAR(10) ); / CREATE TYPE BeerTableType AS TABLE OF BeerType; /

4 4 Example --- Continued BeerTableType é usada na relação Manfs para armazenar o conjunto de bebidas que produzidas por cada fabricante. CREATE TABLE Manfs ( nameCHAR(30), addrCHAR(50), beersbeerTableType ); Nested Table Tipo Tabela

5 5 Armazenamento de Nested Table As tabelas aninhadas não são armazenadas pelo Oracle como relações separadas. Apenas aparenta ser assim Em vez disso, existe uma relação R na qual todas as tabelas aninhadas para um atributo A são armazenadas. Este relação (R) é declarada em CREATE TABLE by: NESTED TABLE A STORE AS R

6 6 Armazenamento de Nested Table DEPARTAMENTOS Nome Empregados A B CDCD BBCADCDABBCADCDA NESTED_TABLE_ID Values Tabela de Armazenamento - Oracle armazena as linhas de uma nested table em uma tabela separada (tabela de armazenamento) - o oracle usa nested_table_id para relacionar linhas na tabela de armazenamento com a nested table correspondente.

7 7 Exemplo: Armazenando Tabelas Aninhadas CREATE TABLE Manfs ( nameCHAR(30), addrCHAR(50), beersbeerTableType ) NESTED TABLE beers STORE AS BeerTable; Note where the semicolon goes and doesnt go.

8 8 Transformando Relações em Tabelas Aninhadas Uma relação pode se tornar o valor de uma tabela aninhada. Use CAST(MULTISET(…) AS ) na relação para transformá-la no valor com o tipo apropriado para uma tabela aninhada.

9 9 Exemplo: CAST Seja uma relação Beers(beer, manf), em que beer é um objeto BeerType e manf é uma string (o fabricante da bebida). Deseja-se inserir em Manfs uma nova tupla, com os seguintes valores de atributos: beers: conjunto de bebidas (na tabela Beers) em que o valor do atributo manf é Coca-Cola Company nome: Coca-Cola Company addr: Brasil

10 10 Exemplo: CAST INSERT INTO Manfs VALUES( 'Coca-Cola Company', 'Brasil', CAST( MULTISET( SELECT bb.name, bb.manf FROM Beers bb WHERE bb.manf = 'Coca-Cola Company' )AS BeerTableType ) ); Conjunto de bebidas (BeerType) cujo fabricante é Coca-Cola Company Transforma o conjunto de objetos resultantes em uma tabela aninhada

11 11 Query em uma Tabela Aninhada Uma tabela aninhada pode ser convertida em uma tabela comum pela aplicação do operador THE(…). Esta relação pode ser usada em uma cláusula FROM como qualquer outra relação.

12 12 Encontrar o nome das bebidas que estão no conjunto de bebidas do fabricante Coca-Cola Company SELECT bb.name FROM THE( SELECT beers FROM Manfs WHERE name = 'Coca-Cola Company' ) bb; Exemplo: Uso do THE Tabela aninhada do fabricante cujo nome é 'Coca-Cola Company, Convertida em uma tabela comum pelo operador THE Alias da tabela aninhada (que não tem nome)

13 13 Exercícios 1. Inserir na tabela Estudios um estúdio com os seguintes valores de atributos: Nome: Ilha do Retiro Endereço: Rua: Av. Sport Club do Recife Número: 100 Cidade: Recife 2. Inserir na tabela Filmes um filme com os seguintes valores de atributos: Nome: Campeao do Centenario Estudio: Referencia para o estudo criado anteriormente Duração: 100

14 14 Exercícios (continuação) 3. No tipo ESTUDIOS, insira uma tabela aninhada para conter os FILMES que foram realizados no estúdio. 4. Insira na tabela ESTUDIO um estúdio com os seguintes valores de atributos: Nome: Estadio do Sport Endereço: Rua: Av.Sport Club do Recife Númer0: 101 Cidade: Recife Filmes: Conjunto de Filmes gravados no estúdio de nome Ilha do Retiro

15 15 Exercícios (continuação) 5. Listar o nome dos filmes do conjunto de filmes do estádio de nome Estadio do Sport 6. Listar o nome dos filmes do conjunto de filmes do estádio de nome Ilha do Retiro 7. Atualizar o objeto Estúdio de nome Ilha do Retiro para que valor de seu atributo filmes seja o conjunto de filmes cujo nome do estúdio onde foi gravado seja Ilha do Retiro. 8. Listar o nome dos filmes do conjunto de filmes do estádio de nome Ilha do Retiro


Carregar ppt "1 Banco de Dados Objetos Relacionais Tabelas Aninhadas."

Apresentações semelhantes


Anúncios Google