資料庫程式設計9 表結構設計 資料結構設計

2021-10-04 07:23:41 字數 2968 閱讀 8420

目錄

oracle資料型別

數值型別

number

binary_float和binary_double

特殊值其他數值型別

字元型別

char

varchar2

nchar/nvarchar2

日期型別

date型別

大物件lob物件

rowid\urowid 型別

一般用於數值運算的。

number(precision,scale)
precision:精度。也稱為總位數,取值範圍1~38,預設值為38,也可以用字元*表示38。

版本10之後的新型別:

在oracle10g之前的版本中沒有這兩種型別。他們就是ieee標準浮點數,用於近似數值,沒有number型別精確。

binary_float_nan 

非binary_float型別的數字(nan) 

binary_float_infinity 

binary_float型別的無窮大(inf) 

binary_double_nan 

非binary_double型別的數字(nan) 

binary_double_infinity 

binary_double型別的無窮大(inf) 

效率不同,效率會比較高。

oracle中的字元資料型別包括char、 varchar2以及帶「n」的相應變體(nchar 和nvarchar2),這些字元資料型別能儲存 2000位元組或4000位元組的文字。這些文字會由數 據庫根據需要在不同的字符集(character set)之間進行轉換。 

char、varchar2、nchar、 nvarchar2都是以同樣的格式進行儲存。

純英文不需要n開頭的,處理中文日文等需要考慮帶n的。

char (size[ byte | char] )
varchar2 (size[ byte | char] )
varchar2是變長字串型別,不會用空格填充至最大長度。此型別最多可儲存4000位元組的資訊。

帶n表示unicode字符集,相容中文。

nvarchar2和nchar與相應的varchar2和char的區別在於:

oracle固有資料型別date、timestamp和 interval是緊密相關的。date和 timestamp型別可以儲存固定日期/時間。 interval型別可以儲存乙個時間量。 

date型別是乙個7位元組的定寬日期/時間資料 型別。它總是包含7個屬性,包括:世紀、世紀中的哪一年、月份、月份中的哪一天、小時、分鐘和秒。oracle使用一種內部格式來表示這些資訊。 

儲存中,oracle將不同字段分開存。在使用時,我們經常會將年月日分開使用。

oracle database 10g系統提供了4種大物件 (large object,lob)型別。這4種大物件型別的 特點分別如下:

盡量使用lob型別來處理,因為相容。

每乙個lob物件都由兩部分組成:指標(定位器)和資料內容。

lob資料的處理

對於每乙個lob列,oracle系統將儲存乙個定 位器值,以便找到該記錄儲存的外部資料。 在向包含了lob值的表中插入記錄時,可以用 函式來告訴oracle為內部儲存的lob列建立一 個空定位器。

注意,空定位器值與null值不同。如果乙個內 部儲存的lob列值為null,那麼在更新為非null 值之前,必須將其設定為空定位器.

在oracle系統中,可以採用以下方式設定lob 資料的空定位器: 

提高大物件的使用效率

database 10g系統提供了許多提高使用大物件效率 的方法。這些方法主要包括:

資料分割槽技術

在oracle database 10g系統中,可以通過採 用分割槽技術,將大量的業務資料分割槽成比較小的資料。但是,這種分割槽技術對於終端使用者來說是不透明的。在oracle database 10g系統 中,從終端使用者的角度來看,這裡只有乙個表。

壓縮資料技術

如果業務資料的增長速度超過了系統設計的能 力,那麼會由於資料量過大帶來一系列查詢性 能上的問題。這時,可以使用oracle database 10g系統提供的壓縮資料功能來壓縮業務資料,從而降低資料量。

並行技術

在oracle database 10g系統中,還可以通過並行處 理的方式來提高查詢的效能。並行處理適用於大量數 據需要處理的情況,例如,掃瞄包含大量資料的表、 連線查詢多個表、建立大表的索引和掃瞄分割槽索引等。 

物化檢視技術

物化檢視具有檢視的特徵,但是與檢視也不完 全相同。可以基於select語句建立物化檢視, 但是物化檢視可以物理地保留和儲存資料。使用物化檢視,可以執行各種查詢操作、可以被 分割槽、可以被壓縮、可以被並行處理,甚至可 以在其上面建立索引。

rowid是資料庫中一行的位址。rowid中編入了足夠多的資訊,足以在磁碟上找到行,以及標識rowid所指向的物件。rowid並不真正儲存在行中,而是行的乙個推導屬性,基於行的實體地址生成。

urowid是rowid的「近親」。它用於比如索引組織表(iot) 和通過異構資料庫閘道器訪問的沒有固定rowid的表。urowid基於行的主鍵生成,是行主鍵值的乙個表示。但是,urowid並不作為乙個單獨的列存在,而只是作為現有列的乙個函式。

資料庫表結構設計

立即建立此表 返回資料庫大全 mysql建表sql語句 資料庫結構 敏捷專案 系統配置表 資料庫大全 敏捷專案 系統配置表 create table yesapi main setting id bigint 20 unsigned not null auto increment,key varch...

結構設計 資料表設計 常用表結構設計

為了建立冗餘較小 結構合理的資料庫,設計資料庫時必須遵循一定的規則。在關係型資料庫中這種規則就稱為正規化。位址一般包括 省 市 縣 區 詳細位址 我們當然可以儲存乙個字段 使用分隔符 json 等儲存 介紹字段介紹 字段介紹 idbigint id parentid parentidlist chi...

資料庫結構設計

1.3概念設計的任務 1.2概念設計的依據 需求分析的文件,需求說明書,功能模型 資料流圖或idef0圖 資訊模型 er圖 和資料庫概念說明書是資料庫邏輯設計的依據 1.2 資料庫概念設計過程 1.3 資料建模方法 er建模方法 idef1x建模方法標識er模型中的聯絡,依次轉換與每個聯絡相關聯的實...