嵌套

在已有的表格、圖像或圖層中再加進去一個或多個表格、圖像或圖層,這種方法就叫做嵌套。

概念

在已有的表格圖像或圖層中再加進去一個或多個表格、圖像或圖層,這種方法就叫做嵌套。
嵌套表的定義:

嵌套表

嵌套表是表中之表。一個嵌套表是某些行的集合,它在主表中表示為其中的一列。對主表中的每一條記錄,嵌套表可以包含多個行。在某種意義上,它是在一個表中存儲一對多關係的一種方法。考查一個包含部門信息的表,在任何時間內每個部門會有很多項目正在實施。在一個嚴格的關係模型中,將需要建立兩個獨立的表departmentproject

嵌套表允許在department表中存放關於項目的信息。勿需執行聯合操作,就可以通過department表直接訪問項目表中的記錄。這種不經聯合而直接選擇數據的能力使得用戶對數據訪問更加容易。甚至在並沒有定義方法來訪問嵌套表的情況下,也能夠很清楚地把部門和項目中的數據聯繫在一起。在嚴格的關係模型中,department和project兩個表的聯繫需要通過外部關鍵字(外鍵)關係才能實現。

二、舉例說明嵌套表的使用:

假設有一個關於動物飼養員的表,希望其中具有他們飼養的動物的信息。用一個嵌套表,就可以在同一個表中存儲飼養員和其飼養的全部動物的信息。

1、創建類型animal_ty:此類型中,對於每個動物都包含有一個記錄,記載了其品種、名稱和出生日期信息。

CREATE TYPE animal_ty AS OBJECT (

breed varchar2(25),

name varchar2(25),

birthdate date);

2、創建animals_nt:此類型將用作一個嵌套表的基礎類型。

CREATE TYPE animals_nt as table of animal_ty;

3、創建表breeder:飼養員的信息表

create table breeder

(breedername varchar2(25),

animals animal_nt)

nested table animals store as animals_nt_tab;

4、向嵌套表中插入記錄

insert into breeder

values('mary',animal_nt(animal_ty('dog','butch','31-MAR-97'),

animal_ty('dog','rover','31-MAR-97'),

animal_ty('dog','julio','31-MAR-97')));

insert into breeder

values('jane',animal_nt(animal_ty('cat','an','31-MAR-97'),

animal_ty('cat','jame','31-MAR-97'),

animal_ty('cat','killer','31-MAR-97')));

commit;

5、查詢嵌套表

select name,birthdate from

table(select animals from breeder);

select name,birthdate from

table(select animals from breeder

where breedername=’mary’)

where name=’dog’;

三、嵌套表的特點:

1、對象復用:如果編寫面向對象的代碼,就提高了重用以前編寫的代碼模組的機會。同樣,如果創建面向對象的資料庫對象,也就提高了資料庫對象能夠被重用的機會。

2、標準支持:如果創建標準的對象,那么它們被重用的機會就會提高。如果有多個套用或多個表使用同一資料庫對象集合,那么它就是既成事實的資料庫對象標準。

3、定義訪問路徑:對於每一個對象,用戶可定義在其上運行的過程和函式,從而可以使數據和訪問此數據的方法聯合起來。有了用這種方式定義的訪問路徑,就可以標準化數據訪問的方法並提高對象的可復用性。

相關詞條


相關詞條

相關搜尋

熱門詞條

聯絡我們