當前位置:首頁 » 數據倉庫 » 資料庫中的段與簇
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫中的段與簇

發布時間: 2022-10-15 22:53:33

① 誰能分析一下SAP的資料庫中為什麼要用簇表

實際上,在編程時我們也不提倡從cluster table中取值,但我覺得,如果我們有時要從6、7個表 中抓取數值時,也會非常麻煩,就象BSEG,它由BSIS、BSAS、BSID、BSAD、BSIK、BSAK六個表的 總和,我們經常要從這六個表中取數,有BSEG會方便很多,這是我的個人感受。 還有個表叫GLT0,這個表的數據完全是計算出來的,但我們抓取數據時卻很方便 您能告訴我:BSEG和BSIS、BSAS、BSID、BSAD、BSIK、BSAK六個表的關系怎樣嗎?

② 關於Oracle Database cluster table的概念

資料庫結構和空間管理
一個ORACLE資料庫是數據的集合,被處理成一個單位。一個ORACLE資料庫有一個物理結構和一個邏輯結構。
物理資料庫結構(physical database structure)是由構成資料庫的操作系統文件所決定。每一個ORACLE資料庫是由三種類型的文件組成:數據文件、日誌文件和控制文件。資料庫的文件為資料庫信息提供真正的物理存儲
邏輯資料庫結構是用戶所涉及的資料庫結構。一個ORACLE資料庫的邏輯結構由下列因素決定:
l 一個或多個表空間
l 資料庫模式對象(即表、視圖、索引、聚集、序列、存儲過程)
邏輯存儲結構如表空間(dataspace)、段(segment)和范圍將支配一個資料庫的物理空間如何使用。模式對象(schema object)用它們之間的聯系組成了一個資料庫的關系設計。

1) 物理結構

(1) 數據文件
每一個ORACLE資料庫有一個或多個物理的數據文件(data file)。一個資料庫的數據文件包含全部資料庫數據。邏輯資料庫結構(如表、索引)的數據物理地存儲在資料庫的數據文件中。數據文件有下列特徵:
l 一個數據文件僅與一個資料庫聯系。
l 一旦建立,數據文件不能改變大小
l 一個表空間(資料庫存儲的邏輯單位)由一個或多個數據文件組成。
數據文件中的數據在需要時可以讀取並存儲在ORACLE內存儲區中。例如:用戶要存取資料庫一表的某些數據,如果請求信息不在資料庫的內存存儲區內,則從相應的數據文件中讀取並存儲在內存。當修改和插入新數據時,不必立刻寫入數據文件。為了減少磁碟輸出的總數,提高性能,數據存儲在內存,然後由 ORACLE後台進程DBWR決定如何將其寫入到相應的數據文件。

(2) 日誌文件
每一個資料庫有兩個或多個日誌文件(redo log file)的組,每一個日誌文件組用於收集資料庫日誌。日誌的主要功能是記錄對數據所作的修改,所以對資料庫作的全部修改是記錄在日誌中。在出現故障時,如果不能將修改數據永久地寫入數據文件,則可利用日誌得到該修改,所以從不會丟失已有操作成果。
日誌文件主要是保護資料庫以防止故障。為了防止日誌文件本身的故障,ORACLE允許鏡象日誌(mirrored redo log),以致可在不同磁碟上維護兩個或多個日誌副本。
日誌文件中的信息僅在系統故障或介質故障恢復資料庫時使用,這些故障阻止將資料庫數據寫入到資料庫的數據文件。然而任何丟失的數據在下一次資料庫打開時,ORACLE自動地應用日誌文件中的信息來恢復資料庫數據文件。

(3) 控制文件
每一ORACLE資料庫有一個控制文件(control file),它記錄資料庫的物理結構,包含下列信息類型:
l 資料庫名;
l 資料庫數據文件和日誌文件的名字和位置;
l 資料庫建立日期。
為了安全起見,允許控制文件被鏡象。
每一次ORACLE資料庫的實例啟動時,它的控制文件用於標識資料庫和日誌文件,當著手資料庫操作時它們必須被打開。當資料庫的物理組成更改時,ORACLE自動更改該資料庫的控制文件。數據恢復時,也要使用控制文件。

2) 邏輯結構
資料庫邏輯結構包含表空間、段、范圍(extent)、數據塊和模式對象。
(1) 表空間
一個資料庫劃分為一個或多個邏輯單位,該邏輯單位稱為表空間(TABLESPACE)。一個表空間可將相關的邏輯結構組合在一起。DBA可利用表空間作下列工作:
l 控制資料庫數據的磁碟分配。
l 將確定的空間份額分配給資料庫用戶。
l 通過使單個表空間在線或離線,控制數據的可用性。
l 執行部分資料庫後備或恢復操作。
l 為提高性能,跨越設備分配數據存儲。
資料庫、表空間和數據文件之間的關系如下圖所示:
Database

SYSTEM DATA

Tablespace Tablespace

DTATAFILE1
(2MB) DATAFILE2
(2MB) DATAFILE3
(2MB)

Driver1 Driver2

。每個資料庫可邏輯劃分為一個或多個表空間
。每一個表空間是由一個或多個數據文件組成,該表空間物理地存儲表空間中全部邏輯結構的數據。DBA可以建立新的表空間,可為表空間增加數據文件或可刪除數據文件,設置或更改預設的段存儲位置。

每一個ORACLE資料庫包含有一個名為SYSTEM的表空間,在資料庫建立是自動建立。在該表空間中總包含有整個資料庫的數據字典表。最小的資料庫可只需要SYSTEM表空間。該表空間必須總是在線。表和存儲的PL/SQL程序單元(過程、函數、包和觸發器)的全部存儲數據是存儲在SYSTEM表空間中。如果這些PL/SQL對象是為資料庫建的,DBA在SYSTEM表空間中需要規劃這些對象所需要的空間。
表空間利用增加數據文件擴大表空間,表空間的大小為組成該表空間的數據文件大小的和。
DBA可以使ORACLE資料庫中任何錶空間(除SYSTEM表空間外)在線(ONLINE)或離線(OFFLINE)。表空間通常是在線,以致它所包含的數據對資料庫用戶是可用的。當表空間為離線時,其數據不可使用。在下列情況下,DBA可以使其離線。
。使部分數據不可用,而剩餘的部分允許正常存取
。執行離線的表空間後備
。為了修改或維護一應用,使它和它的一組表臨時不可用。
包含有正在活動的回滾段的表空間不能被離線,僅當回滾段不正在使用時,該表空間才可離線。
在數據字典中記錄表空間的狀態,在線還是離線。如果在資料庫關閉時一表空間為離線,那麼在下次資料庫裝配和重新打開後,它仍然保持離線。
當出現某些錯誤時,一個表空間可自動地由在線改變為離線。通過使用多個表空間,將不同類型的數據分開,更方便DBA來管理資料庫。
ORACLE 資料庫中一表空間是由一個或多個物理數據文件組成,一個數據文件只可與一個表空間想聯系。當為一表空間建立一數據文件時,ORACLE建立該文件,分配指定的磁碟空間容量。在數據文件初時建立後,所分配的磁碟不包含任何數據。表空間可以在線或離線。在ORACLE中還允許單獨數據文件在線或離線。

(2) 段、范圍和數據塊
ORACLE通過段、范圍和數據塊邏輯數據結構可更細地控制磁碟空間的使用。


段(SEGMENT)包含表空間中一種指定類型的邏輯存儲結構,是由一組范圍組成。在ORACLE資料庫中有幾種類型的段:數據段、牽引段、回滾段和臨時段。
數據段:對於每一個非聚集的表有一數據段,表的所有數據存放在該段。每一聚集有一個數據段,聚集中每一個表的數據存儲在該段中。
索引段:每一個索引有一索引段,存儲索引數據。
回滾段:是由DBA建立,用於臨時存儲要撤消的信息,這些信息用於生成讀一致性資料庫信息、在資料庫恢復時使用、回滾未提交的事務。
臨時段:當一個SQL語句需要臨時工作區時,由ORACLE建立。當語句執行完畢,臨時段的范圍退回給系統。
ORACLE對所有段的空間分配,以范圍為單位。

范圍
一個范圍(EXTENT)是資料庫存儲空間分配的一個邏輯單位,它由連續數據塊所組成。每一個段是由一個或多個范圍組成。當一段中間所有空間已完全使用時,ORACLE為該段分配一個新的范圍。
為了維護的目的,在資料庫的每一段含有段標題塊(segment header block)說明段的特徵以及該段中的范圍目錄。

數據塊
數據塊(data block)是ORACLE管理數據文件中存儲空間的單位,為資料庫使用的I/O的最小單位,其大小可不同於操作系統的標准I/O塊大小。

數據塊的格式:
公用的變長標題
表目錄
行目錄
未用空間
行數據

(3) 模式和模式對象
一個模式(schema)為模式對象(scehma object)的一個集合,每一個資料庫用戶對應一個模式。模式對象為直接引用資料庫數據的邏輯結構,模式對象包含如表、視圖、索引、聚集、序列、同義詞、資料庫鏈、過程和包等結構。模式對象是邏輯數據存儲結構,每一種模式對象在磁碟上沒有一個相應文件存儲其信息。一個模式對象邏輯地存儲在資料庫的一個表空間中,每一個對象的數據物理地包含在表空間的一個或多個數據文件中。


表(table)為資料庫中數據存儲的基本單位,其數據按行、列存儲。每個表具有一表名和列的集合。每一列有一個列名、數據類型、寬度或精度、比例。一行是對應單個記錄的列信息的集合。

視圖
一個視圖(view)是由一個或多個表(或其他視圖)中的數據的一種定製的表示,是用一個查詢定義,所以可認為是一個存儲的查詢(stored query)或是一個虛表(virtual table)。視圖可在使用表的許多地方使用。
由於視圖是由表導出的,視圖和表存在許多類似,視圖象表最多可定義254列。視圖可以被查詢,而在修改、插入或刪除時具有一定的限制,在視圖上執行的全部操作真正地影響視圖的基本表中的數據,受到基本表的完整性約束和觸發器的限制。
視圖與表不同,一個視圖不分配任何存儲空間,視圖不真正地包含數據。由查詢定義的視圖相應於視圖引用表中的數據。視圖只在數據字典中存儲其定義。
引入視圖有下列好處:
。通過限制對表的行預定義集合的存取,為表提供附加的安全性
。隱藏數據復雜性。
。為用戶簡化命令
。為基本表的數據提供另一種觀點。
。可將應用隔離基本表定義的修改
。用於不用視圖無法表示的查詢。
。可用於保存復雜查詢。

聚集
聚集(cluster)是存儲表數據的可選擇的方法。一個聚集是一組表,將具有同一公共列值的行存儲在一起,並且它們經常一起使用。這些公共列構成聚集碼。例如:EMP表各DEPT表共享DEPTNO列,所以EMP表和DEPT表可聚集在一起,聚集碼的列為DEPTNO列,該聚集將每個部門的全部職工行各該部門的行物理地存儲在同一數據塊中。

索引
索引(index)是與表和聚集相關的一種選擇結構。索引是為提高數據檢索的性能而建立,利用它可快速地確定指定的信息。ORACLE索引為表數據提供快速存取路徑。索引適用於一范圍的行查詢或指定行的查詢。
索引可建立在一表的一列或多列上,一旦建立,由ORACLE自動維護和使用,對用戶是完全透明的。索引是邏輯地和物理地獨立於數據,它們的建立或刪除對表沒有影響,應用可繼續處理。索引數據的檢索性能幾乎保持常數,而當一表上存在許多索引時,修改、刪除和插入操作的性能會下降。
索引有唯一索引各非唯一索引。唯一索引保證表中沒有兩行在定義索引的列上具有重復值。ORACLE在唯一碼上自動地定義唯一索引實施UNIQUE完整性約束。
組合索引是在表的某個列上所建立的一索引。組全索引可加快SELECT語句的檢索速度,在其WHERE子句中可引用組合索引的全部或主要部分 。所以在定義中給出列的次序,將經常存取的或選擇最多的列放在首位。
在建立索引時,將在表空間自動地建立一索引段,索引段空間分配和保留空間的使用受下列方式控制:
索引段范圍的分配常駐該索引段的存儲參數控制。
其數據塊中未用空間可受該段的PCTFREE參數設置所控制。

序列生成器
序列生成器(sequence generator)產生序列號。在多用戶環境下該序列生成器特別有用,可生成各返回序列號而不需要磁碟I/O或事務封鎖。
序列號為ORACLE整數,最多可有38個數字。一個序列定義指出一般信息:序列的名字、上升或下降、序列號之間間距和其它信息。對所有序列的確的定義以行存儲在SYSTEM表空間中的數據字典表中,所以所有序列定義總是可用。由引用序列號的SQL語句使用序列號,可生成一個新的序列號或使用當前序列號。一旦在用戶會話中的SQL語句生成一序列號,該序列號僅為該會話可用。序列號生成是獨立於表,所以同一序列生成器可用於一個和多個表。所生成序列號可用於生成唯一的主碼。

③ oracle 中日期的類型都有哪些

有以下幾種:
1.
DATE,包含
世紀、年、月、日、時、分、秒。佔用7個位元組,上面每個部分1個位元組。
2.
TIMESTAMP
日期時間
可以包含到小數秒。
3.
TIMESTAMP WITH TIME ZONE 包含時區信息。
4.
TIMESTAMP WITH LOCAL
TIME ZONE包含時區信息,自動調整。
拓展回答:
Oracle
Database,又名Oracle
RDBMS,或簡稱Oracle。
是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。可以說Oracle資料庫系統是目前世界上流行的關系資料庫管理系統,系統可移植性好、使用方便、功能強,適用於各類大、中、小、微機環境。它是一種高效率、可靠性好的
適應高吞吐量的資料庫解決方案。
它由至少一個表空間和資料庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用資料庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等。邏輯存儲結構包括表空間、段和范圍,用於描述怎樣使用資料庫的物理空間。
總之,邏輯結構由邏輯存儲結構(表空間,段,范圍,塊)和邏輯數據結構(表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等)組成,而其中的模式對象(邏輯數據結構)和關系形成了資料庫的關系設計。

④ 資料庫中的段是什麼意義

資料庫的段是由若干個區間組成的,區間中是一些連續的數據塊。這三者是構成其他數據對象的基本單位
Oracle中的段可以分成4種類型:數據段、索引段、回滾段、臨時段。

數據段用來存儲用戶的數據,每個表都有一個對應的回滾段,其名稱和數據表的名字相同。我們可以用下列的SQL語句來查詢用戶的數據段信息:

SQL>select * from user_extents;

索引段用來存儲系統、用戶的索引信息:

SQL>select * from all_indexs / user_indexs;

回滾段用來存儲用戶數據修改前的值,回退段與事務是一對多的關系,一個事務只能使用一個回退段,而一個回退段可存放一個或多個事務的回退數據。

⑤ Oracle資料庫的邏輯結構

它由至少一個表空間和資料庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用資料庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等。邏輯存儲結構包括表空間、段和范圍,用於描述怎樣使用資料庫的物理空間。
總之,邏輯結構由邏輯存儲結構(表空間,段,范圍,塊)和邏輯數據結構(表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等)組成,而其中的模式對象(邏輯數據結構)和關系形成了資料庫的關系設計。

段(Segment):
是表空間中一個指定類型的邏輯存儲結構,它由一個或多個范圍組成,段將佔用並增長存儲空間。
其中包括:
數據段:用來存放表數據;
索引段:用來存放表索引;
臨時段:用來存放中間結果;
回滾段:用於出現異常時,恢復事務。
范圍(Extent):是資料庫存儲空間分配的邏輯單位,一個范圍由許多連續的數據塊組成,范圍是由段依次分配的,分配的第一個范圍稱為初始范圍,以後分配的范圍稱為增量范圍。
數據塊(Block):
是資料庫進行IO操作的最小單位,它與操作系統的塊不是一個概念。oracle資料庫不是以操作系統的塊為單位來請求數據,而是以多個Oracle資料庫塊為單位。

⑥ 資料庫中, 簇索引和非簇索引 這兩概念有什麼區別

聚集索引:該索引中鍵值的邏輯順序決定了表中相應行的物理順序。

聚集索引確定表中數據的物理順序。聚集索引類似於電話簿,後者按姓氏排列數據。由於聚集索引規定數據在表中的物理存儲順序,因此一個表只能包含一個聚集索引。但該索引可以包含多個列(組合索引),就像電話簿按姓氏和名字進行組織一樣。

聚集索引對於那些經常要搜索范圍值的列特別有效。使用聚集索引找到包含第一個值的行後,便可以確保包含後續索引值的行在物理相鄰。例如,如果應用程序執行的一個查詢經常檢索某一日期范圍內的記錄,則使用聚集索引可以迅速找到包含開始日期的行,然後檢索表中所有相鄰的行,直到到達結束日期。這樣有助於提高此類查詢的性能。同樣,如果對從表中檢索的數據進行排序時經常要用到某一列,則可以將該表在該列上聚集(物理排序),避免每次查詢該列時都進行排序,從而節省成本。

當索引值唯一時,使用聚集索引查找特定的行也很有效率。例如,使用唯一雇員 ID 列 emp_id 查找特定雇員的最快速的方法,是在 emp_id 列上創建聚集索引或 PRIMARY KEY 約束。

非聚集索引與課本中的索引類似。數據存儲在一個地方,索引存儲在另一個地方,索引帶有指針指向數據的存儲位置。索引中的項目按索引鍵值的順序存儲,而表中的信息按另一種順序存儲(這可以由聚集索引規定)。如果在表中未創建聚集索引,則無法保證這些行具有任何特定的順序。

與使用書中索引的方式相似,Microsoft® SQL Server™ 2000 在搜索數據值時,先對非聚集索引進行搜索,找到數據值在表中的位置,然後從該位置直接檢索數據。這使非聚集索引成為精確匹配查詢的最佳方法,因為索引包含描述查詢所搜索的數據值在表中的精確位置的條目。如果基礎表使用聚集索引排序,則該位置為聚集鍵值;否則,該位置為包含行的文件號、頁號和槽號的行 ID (RID)。例如,對於在 emp_id 列上有非聚集索引的表,如要搜索其雇員 ID (emp_id),SQL Server 會在索引中查找這樣一個條目,該條目精確列出匹配的 emp_id 列在表中的頁和行,然後直接轉到該頁該行。

多個非聚集索引
有些書籍包含多個索引。例如,一本介紹園藝的書可能會包含一個植物通俗名稱索引,和一個植物學名索引,因為這是讀者查找信息的兩種最常用的方法。對於非聚集索引也是如此。可以為在表中查找數據時常用的每個列創建一個非聚集索引。

⑦ 資料庫的欄位區分大小寫嗎

不區分大小寫,關鍵字、用戶、密碼 、欄位名 、表名、序列名 、觸發器名等是不區分的,我們平時進入都是大小寫隨便輸入的表名,欄位名,關鍵字大小寫忽略表名,欄位名不能使用關鍵字,表名,欄位名不可以使用數字開頭,中間不能出現特殊符號表名,欄位名長度不能超過30個字元表名,欄位名定義需要有含義。

具體欄位值區分大小寫。而scott是給初學者學習的用戶,學習者可以用Scott登錄系統,注意scott用戶登錄後,就可以使用Oracle提供的資料庫和數據表,這些都是oracle提供。

(7)資料庫中的段與簇擴展閱讀:

邏輯結構

它由至少一個表空間和資料庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用資料庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等。邏輯存儲結構包括表空間、段和范圍,用於描述怎樣使用資料庫的物理空間。

總之,邏輯結構由邏輯存儲結構(表空間,段,范圍,塊)和邏輯數據結構(表、視圖、序列、存儲過程、同義詞、索引、簇和資料庫鏈等)組成,而其中的模式對象(邏輯數據結構)和關系形成了資料庫的關系設計。

⑧ oracle資料庫中表、段、區、塊是什麼意思

oracle的邏輯結構包括表空間(tablespace),段(segment),區(extent),數據塊(data block)
oracle資料庫在邏輯上是由多個表間組成的,表空間中存儲的對象叫段,比如數據段,索引段,和回退段。段由區組成,區是磁碟分配的最小單位。段的增大是通過增加區的個數來實現的。每個區的大小是數據塊大小的整數倍,區的大小可以不相同;數據塊是資料庫中最小的I/O單位,同時也是內存數據緩沖區的單位,及數據文件存儲空間單位。塊的大小由參數DB_BLOCK_SIZE設置,其值應設置為操作系統塊大小的整數倍。
表空間
表空間是Oracle資料庫最大的邏輯結構,一個Oracle資料庫在邏輯上由多個表空間組成,一個表空間只隸屬於一個資料庫。Oracle中有一個稱為SYSTEM的表空間,這個表空間是在創建或安裝資料庫時自動創建的。主要用於存儲系統的數據字典,過程,函數,觸發器等;也可以存儲用戶的表,索引等。一個表空間可以有多數據文件,但是一個數據文件只能屬於一個表空間。
一個表空間就是一片磁碟區域,他由一個或者多個磁碟文件組成,一個表空間可以容納許多表、索引或者簇等。每個表空間有一個預制的磁碟區域稱為初始區間(initial extent)用完這個區間後再用下一個,直到用完表空間,這時候需要對表空間進行擴展,增加數據文件或者擴大已經存在的數據文件

Oracle中的段可以分成4種類型:數據段、索引段、回滾段、臨時段。
數據段用來存儲用戶的數據,每個表都有一個對應的回滾段,其名稱和數據表的名字相同。索引段用來存儲系統、用戶的索引信息。回滾段用來存儲用戶數據修改前的值,回退段與事務是一對多的關系,一個事務只能使用一個回退段,而一個回退段可存放一個或多個事務的回退數據。臨時段用於order by語句的排序以及一些匯總。

區是磁碟空間分配的最小單位。磁碟按區劃分,每次至少分配一個區。區存儲於段中,它由連續的數據塊組成。區的分配過程中,每次至分配5個區。如果所剩的空閑空間不夠5個區,就會出現錯誤:ORA-0。可以通過字典dba_tablespaces查詢表空間中區的信息。可以通過字典user_tables查詢段中區的信息。可以通過字典user_extents查詢區的分配狀況。我們可以通過以下SQL語句分別查詢表空間、段、區中區的分配信息
SQL>select * from dba_tablespaces;
SQL>select table_name, tablespace_name, min_extents, max_extents from user_tables;
SQL>select * from user_extents;
數據塊
數據塊是數據中中最小的數據組織單位與管理單位,是數據文件磁碟存儲空間單位,也是資料庫I/O 的最小單位,數據塊大小由DB_BLOCK_SIZE參數決定,不同的oracle版本DB_BLOCK_SIZE的默認值是不同的。