當前位置:首頁 » 存儲配置 » 資料庫物理存儲方式

資料庫物理存儲方式

發布時間: 2022-06-20 13:00:53

1. 資料庫應用系統中的數據是以表還是行還是列還是特定的形式儲存的

資料庫應用系統中的數據以二維表的方式直接存儲目標數據。

一個表由行和列組成的,行數據代表具體的生活中的實體數據,列經常被稱作是域,也就是行的某個特性,從實體對象本身出發就是對象的屬性。

表中的第一行通常稱為屬性名,表中的每一個元組和屬性都是不可再分的,且元組的次序是無關緊要的。



(1)資料庫物理存儲方式擴展閱讀

行存儲和列存儲的應用場景

行存儲的適用場景:

(1)適合隨機的增、刪、改、查操作;

(2)需要在行中選取所有屬性的查詢操作;

(3)需要頻繁插入或更新的操作,其操作與索引和行的大小更為相關。

列存儲的適用場景:

(1)查詢過程中,可針對各列的運算並發執行,在內存中聚合完整記錄集,降低查詢響應時間;

(2)在數據中高效查找數據,無需維護索引(任何列都能作為索引),查詢過程中能夠盡量減少無關IO,避免全表掃描;

(3)因為各列獨立存儲,且數據類型已知,可以針對該列的數據類型、數據量大小等因素動態選擇壓縮演算法,以提高物理存儲利用率;如果某一行的某一列沒有數據,在列存儲時,就可以不存儲該列的值,這將比行式存儲更節省空間。

2. 物理模式也稱(),它描述數據實際上是怎麼存儲

內模式是資料庫物理結構和存儲方式的描述。

在資料庫的三級模式結構中:
模式也稱為邏輯模式或概念模式;
外模式也稱為用戶模式;
內模式也稱為物理模式或存儲模式。

3. 資料庫應用系統中的數據是以什麼形式存在的

資料庫在計算機中是以文件的形式存在的。(確定)

資料庫是依照某種數據模型組織起來並存放二級存儲器中的數據集合。這種數據集合具有如下特點:盡可能不重復,以最優方式為某個特定組織的多種應用服務,其數據結構獨立於使用它的應用程序,對數據的增、刪、改和檢索由統一軟體進行管理和控制。從發展的歷史看,資料庫是數據管理的高級階段,它是由文件管理系統發展起來的。

資料庫的基本結構分三個層次,反映了觀察資料庫的三種不同角度。
(1)物理數據層。
它是資料庫的最內層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由內部模式描述的指令操作處理的位串、字元和字組成。
(2)概念數據層。
它是資料庫的中間一層,是資料庫的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯系,是存貯記錄的集合。它所涉及的是資料庫所有對象的邏輯關系,而不是它們的物理情況,是資料庫管理員概念下的資料庫。
(3)邏輯數據層。
它是用戶所看到和使用的資料庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。
資料庫不同層次之間的聯系是通過映射進行轉換的。

4. 資料庫在計算機中是以什麼形式存在的

資料庫在計算機中是以文件的形式存在的。(確定)

資料庫是依照某種數據模型組織起來並存放二級存儲器中的數據集合。這種數據集合具有如下特點:盡可能不重復,以最優方式為某個特定組織的多種應用服務,其數據結構獨立於使用它的應用程序,對數據的增、刪、改和檢索由統一軟體進行管理和控制。從發展的歷史看,資料庫是數據管理的高級階段,它是由文件管理系統發展起來的。

資料庫的基本結構分三個層次,反映了觀察資料庫的三種不同角度。
(1)物理數據層。
它是資料庫的最內層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由內部模式描述的指令操作處理的位串、字元和字組成。
(2)概念數據層。
它是資料庫的中間一層,是資料庫的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯系,是存貯記錄的集合。它所涉及的是資料庫所有對象的邏輯關系,而不是它們的物理情況,是資料庫管理員概念下的資料庫。
(3)邏輯數據層。
它是用戶所看到和使用的資料庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。
資料庫不同層次之間的聯系是通過映射進行轉換的。

5. 解釋一下資料庫的內模式、模式、外模式是什麼意思

一、模式(Schema)

定義:也稱邏輯模式,是資料庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖。

理解:

①一個資料庫只有一個模式;

②是資料庫數據在邏輯級上的視圖;

③資料庫模式以某一種數據模型為基礎;

④定義模式時不僅要定義數據的邏輯結構(如數據記錄由哪些數據項構成,數據項的名字、類型、取值范圍等),而且要定義與數據有關的安全性、完整性要求,定義這些數據之間的聯系。

二、外模式(External Schema)

定義:也稱子模式(Subschema)或用戶模式,是資料庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數據的邏輯結構和特徵的描述,是資料庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示。

理解:

①一個資料庫可以有多個外模式;

②外模式就是用戶視圖;

③外模式是保證數據安全性的一個有力措施。

三、內模式(Internal Schema)

定義:也稱存儲模式(Storage Schema),它是數據物理結構和存儲方式的描述,是數據在資料庫內部的表示方式(例如,記錄的存儲方式是順序存儲、按照B樹結構存儲還是按hash方法存儲;索引按照什麼方式組織;數據是否壓縮存儲,是否加密;數據的存儲記錄結構有何規定)。

理解:

①一個資料庫只有一個內模式;

②一個表可能由多個文件組成,如:數據文件、索引文件。

它是資料庫管理系統(DBMS)對資料庫中數據進行有效組織和管理的方法

其目的有:

②為了減少數據冗餘,實現數據共享;

②為了提高存取效率,改善性能。

6. 說明在創建資料庫時如何合理規劃資料庫的物理存儲結構和邏輯存儲結構

Oracle資料庫的邏輯結構和物理結構

Oracle 資料庫的邏輯結構是由一些資料庫對象組成,如資料庫表空間、表、索引、段、視圖、存儲過程、觸發器等。資料庫的邏輯存儲結構(表空間等)決定了資料庫的物理空間是如何被使用的,資料庫對象如表、索引等分布在各個表空間中。

Oracle 資料庫的物理結構從操作系統一級查看,是由一個個的文件組成,從物理上可劃分為:數據文件、日誌文件、控制文件和參數文件。數據文件中存放了所有的數據信息;日誌文件存放資料庫運行期間產生的日誌信息,它被重復覆蓋使用,若不採用歸檔方式的話,已被覆蓋的日誌信息將無法恢復;控制文件記錄了整個資料庫的關鍵結構信息,它若被破壞,整個資料庫將無法工作和恢復;參數文件中設置了很多Oracle 資料庫的配置參數,當資料庫啟動時,會讀取這些信息。

邏輯結構的優化

邏輯結構優化用通俗的話來說就是通過增加、減少或調整邏輯結構來提高應用的效率,下面通過對基本表的設計及索引、聚簇的討論來分析ORACLE邏輯結構的優化。

1、基本表擴展

資料庫性能包括存儲空間需求量的大小和查詢響應時間的長短兩個方面。為了優化資料庫性能,需要對資料庫中的表進行規范化。一般來說,邏輯資料庫設計滿足第三範式的表結構容易維護且基本滿足實際應用的要求。所以,實際應用中一般都按照第三範式的標准進行規范化,從而保證了資料庫的一致性和完整性,設計人員往往會設計過多的表間關聯,以盡可能地降低數據冗餘。但在實際應用中這種做法有時不利於系統運行性能的優化:如過程從多表獲取數據時引發大量的連接操作,在需要部分數據時要掃描整個表等,這都消耗了磁碟的I/O 和CPU 時間。

為解決這一問題,在設計表時應同時考慮對某些表進行反規范化,方法有以下幾種:一是分割表。分割表可分為水平分割表和垂直分割表兩種:水平分割是按照行將一個表分割為多個表,這可以提高每個表的查詢速度,但查詢、更新時要選擇不同的表,統計時要匯總多個表,因此應用程序會更復雜。垂直分割是對於一個列很多的表,若某些列的訪問頻率遠遠高於其它列,就可以將主鍵和這些列作為一個表,將主鍵和其它列作為另外一個表。通過減少列的寬度,增加了每個數據頁的行數,一次I/O就可以掃描更多的行,從而提高了訪問每一個表的速度。但是由於造成了多表連接,所以應該在同時查詢或更新不同分割表中的列的情況比較少的情況下使用。二是保留冗餘列。當兩個或多個表在查詢中經常需要連接時,可以在其中一個表上增加若干冗餘的列,以避免表之間的連接過於頻繁,一般在冗餘列的數據不經常變動的情況下使用。三是增加派生列。派生列是由表中的其它多個列的計算所得,增加派生列可以減少統計運算,在數據匯總時可以大大縮短運算時間。

因此,在資料庫的設計中,數據應當按兩種類別進行組織:頻繁訪問的數據和頻繁修改的數據。對於頻繁訪問但是不頻繁修改的數據,內部設計應當物理不規范化。對於頻繁修改但並不頻繁訪問的數據,內部設計應當物理規范化。有時還需將規范化的表作為邏輯資料庫設計的基礎,然後再根據整個應用系統的需要,物理地非規范化數據。規范與反規范都是建立在實際的操作基礎之上的約束,脫離了實際兩者都沒有意義。只有把兩者合理地結合在一起,才能相互補充,發揮各自的優點。

2、索引和聚簇

創建索引是提高檢索效率最有效的方法之一,索引把表中的邏輯值映射到安全的RowID,能快速定位數據的物理地址,可以大大加快資料庫的查詢速度,一個建有合理索引的資料庫應用系統可能比一個沒有建立索引的資料庫應用系統效率高幾十倍,但並不是索引越多越好,在那些經常需要修改的數據列上建立索引,將導致索引B*樹的不斷重組,造成系統性能的下降和存儲空間的浪費。對於一個大型表建立的索引,有時並不能改善數據查詢速度,反而會影響整個資料庫的性能。這主要是和SGA的數據管理方式有關,Oracle在進行數據塊高速緩存管理時,索引數據比普通數據具有更高的駐留許可權,在進行空間競爭時,Oracle會先移出普通數據,對建有索引的大型表進行數據查詢時,索引數據可能會用完所有的數據塊緩存空間,Oracle不得不頻繁地進行磁碟讀寫來獲取數據,所以,在對一個大型表進行分區之後,可以根據相應的分區建立分區索引。

Oracle提供了另一種方法來提高查詢速度,就是聚簇(Cluster)。所謂聚簇,簡單地說就是把幾個表放在一起,按一定公共屬性混合存放。聚簇根據共同碼值將多個表的數據存儲在同一個Oracle塊中,這時檢索一組Oracle塊就同時得到兩個表的數據,這樣就可以減少需要存儲的Oracle塊,從而提高應用程序的性能。

對於邏輯結構的優化,還應將表數據和索引數據分開表空間存儲,分別使用獨立的表空間。因為如果將表數據和索引數據放在一起,表數據的I/O操作和索引的I/O操作將產生影響系統性能的I/O競爭,降低系統的響應效率。將表數據和索引數據存放在不同的表空間中,並在物理層面將這兩個表空間的數據文件放在不同的物理磁碟上,就可以避免這種競爭了。

物理結構的優化

資料庫的數據最終是存儲在物理磁碟上的,對數據進行訪問就是對這些物理磁碟進行讀寫,因此對於這些物理存儲的優化是系統優化的一個重要部分。對於物理存儲結構優化,主要是合理地分配邏輯結構的物理存儲地址,這樣雖不能減少對物理存儲的讀寫次數,但卻可以使這些讀寫盡量並行,減少磁碟讀寫競爭,從而提高效率,也可以通過對物理存儲進行精密的計算減少不必要的物理存儲結構擴充,從而提高系統利用率。

1、磁碟讀寫並行優化

對於資料庫的物理讀寫,Oracle系統本身會進行盡可能的並行優化,例如在一個最簡單的表檢索操作中,如果表結構和檢索域上的索引不在一個物理結構上,那麼在檢索的過程中,對索引的檢索和對表的檢索就是並行進行的。

2、操作並行優化

操作並行的優化是基於操作語句的統計結果,首先是統計各個表的訪問頻率,表之間的連接頻率,根據這些數據按如下原則分配表空間和物理磁碟,減少系統進程和用戶進程的磁碟I/O競爭;把需要連接的表格在表空間/物理磁碟上分開;把高頻訪問的表格在表空間/物理磁碟上分開;把經常需要進行檢索的表格的表結構和索引在表空間/物理磁碟上分開。

3、減少存儲結構擴展

如果應用系統的資料庫比較脆弱,並在不斷地增長或縮小,這樣的系統在非動態變化周期內效率合理,但是當在動態變化周期內的時候,性能卻很差,這是由於Oracle的動態擴展造成的。在動態擴張的過程中,Oracle必須根據存儲的要求,在創建行、行變化獲取預設值時,擴展和分配新的存儲空間,而且表格的擴展往往並不是事情的終結,還可能導致數據文件、表空間的增長,這些擴展會導致在線系統反應緩慢。對於這樣的系統,最好的辦法就是在建立的時候預先分配足夠的大小和合適的增長幅度。在一個對象建立的時候要根據應用充分地計算他們的大小,然後再根據這些數據來定義對象Initial、Next和Minextents的值,使資料庫在物理存儲上和動態增長次數上達到一個比較好的平衡點,使這些對象既不經常發生增長,也不過多地佔用資料庫。

7. 資料庫物理結構中,存儲著哪幾種形式的數據結構

Log File物理結構

log block結構分為日誌頭段、日誌記錄、日誌尾部

  • Block Header,佔用12位元組

  • Data部分

  • Block tailer,佔用4位元組

  • Block Header

    這個部分是每個Block的頭部,主要記錄的塊的信息

  • Block Number,表示這是第幾個block,佔用4位元組,是通過LSN計算得來的,佔用4位元組

  • Block data len,表示該block中有多少位元組已經被使用了,佔用2位元組

  • First Rec offet,表示該block中作為第一個新的mtr開始的偏移量,佔用2位元組

  • Checkpoint number,表示該log block最後被寫入時的檢查點的值,佔用4位元組

  • 8. 資料庫的存儲結構分為哪兩種其含義是什麼

    邏輯結構、物理結構
    資料庫的存儲結構也就是資料庫存儲數據的方式
    邏輯存儲結構主要用於描述在Oracle內部的組織和管理數據的方式;而物理存儲結構則用於描述在Oracle外部,即操作系統中組織和管理數據的方式

    9. 資料庫的存儲結構分為哪兩種其含義是什麼

    希望對你有幫助!邏輯結構、物理結構資料庫的存儲結構也就是資料庫存儲數據的方式邏輯存儲結構主要用於描述在oracle內部的組織和管理數據的方式;而物理存儲結構則用於描述在oracle外部,即操作系統中組織和管理數據的方式

    10. 數據存儲形式有哪幾種

    【塊存儲】

    典型設備:磁碟陣列,硬碟

    塊存儲主要是將裸磁碟空間整個映射給主機使用的,就是說例如磁碟陣列裡面有5塊硬碟(為方便說明,假設每個硬碟1G),然後可以通過劃邏輯盤、做Raid、或者LVM(邏輯卷)等種種方式邏輯劃分出N個邏輯的硬碟。(假設劃分完的邏輯盤也是5個,每個也是1G,但是這5個1G的邏輯盤已經於原來的5個物理硬碟意義完全不同了。例如第一個邏輯硬碟A裡面,可能第一個200M是來自物理硬碟1,第二個200M是來自物理硬碟2,所以邏輯硬碟A是由多個物理硬碟邏輯虛構出來的硬碟。)

    接著塊存儲會採用映射的方式將這幾個邏輯盤映射給主機,主機上面的操作系統會識別到有5塊硬碟,但是操作系統是區分不出到底是邏輯還是物理的,它一概就認為只是5塊裸的物理硬碟而已,跟直接拿一塊物理硬碟掛載到操作系統沒有區別的,至少操作系統感知上沒有區別。

    此種方式下,操作系統還需要對掛載的裸硬碟進行分區、格式化後,才能使用,與平常主機內置硬碟的方式完全無異。

    優點:

    1、 這種方式的好處當然是因為通過了Raid與LVM等手段,對數據提供了保護。

    2、 另外也可以將多塊廉價的硬碟組合起來,成為一個大容量的邏輯盤對外提供服務,提高了容量。

    3、 寫入數據的時候,由於是多塊磁碟組合出來的邏輯盤,所以幾塊磁碟可以並行寫入的,提升了讀寫效率。

    4、 很多時候塊存儲採用SAN架構組網,傳輸速率以及封裝協議的原因,使得傳輸速度與讀寫速率得到提升。

    缺點:

    1、採用SAN架構組網時,需要額外為主機購買光纖通道卡,還要買光纖交換機,造價成本高。

    2、主機之間的數據無法共享,在伺服器不做集群的情況下,塊存儲裸盤映射給主機,再格式化使用後,對於主機來說相當於本地盤,那麼主機A的本地盤根本不能給主機B去使用,無法共享數據。

    3、不利於不同操作系統主機間的數據共享:另外一個原因是因為操作系統使用不同的文件系統,格式化完之後,不同文件系統間的數據是共享不了的。例如一台裝了WIN7/XP,文件系統是FAT32/NTFS,而Linux是EXT4,EXT4是無法識別NTFS的文件系統的。就像一隻NTFS格式的U盤,插進Linux的筆記本,根本無法識別出來。所以不利於文件共享。


    【文件存儲】

    典型設備:FTP、NFS伺服器

    為了克服上述文件無法共享的問題,所以有了文件存儲。

    文件存儲也有軟硬一體化的設備,但是其實普通拿一台伺服器/筆記本,只要裝上合適的操作系統與軟體,就可以架設FTP與NFS服務了,架上該類服務之後的伺服器,就是文件存儲的一種了。

    主機A可以直接對文件存儲進行文件的上傳下載,與塊存儲不同,主機A是不需要再對文件存儲進行格式化的,因為文件管理功能已經由文件存儲自己搞定了。

    優點:

    1、造價交低:隨便一台機器就可以了,另外普通乙太網就可以,根本不需要專用的SAN網路,所以造價低。

    2、方便文件共享:例如主機A(WIN7,NTFS文件系統),主機B(Linux,EXT4文件系統),想互拷一部電影,本來不行。加了個主機C(NFS伺服器),然後可以先A拷到C,再C拷到B就OK了。(例子比較膚淺,請見諒……)

    缺點:

    讀寫速率低,傳輸速率慢:乙太網,上傳下載速度較慢,另外所有讀寫都要1台伺服器裡面的硬碟來承擔,相比起磁碟陣列動不動就幾十上百塊硬碟同時讀寫,速率慢了許多。


    【對象存儲】

    典型設備:內置大容量硬碟的分布式伺服器

    對象存儲最常用的方案,就是多台伺服器內置大容量硬碟,再裝上對象存儲軟體,然後再額外搞幾台服務作為管理節點,安裝上對象存儲管理軟體。管理節點可以管理其他伺服器對外提供讀寫訪問功能。

    之所以出現了對象存儲這種東西,是為了克服塊存儲與文件存儲各自的缺點,發揚它倆各自的優點。簡單來說塊存儲讀寫快,不利於共享,文件存儲讀寫慢,利於共享。能否弄一個讀寫快,利 於共享的出來呢。於是就有了對象存儲。

    首先,一個文件包含了了屬性(術語叫metadata,元數據,例如該文件的大小、修改時間、存儲路徑等)以及內容(以下簡稱數據)。

    以往像FAT32這種文件系統,是直接將一份文件的數據與metadata一起存儲的,存儲過程先將文件按照文件系統的最小塊大小來打散(如4M的文件,假設文件系統要求一個塊4K,那麼就將文件打散成為1000個小塊),再寫進硬碟裡面,過程中沒有區分數據/metadata的。而每個塊最後會告知你下一個要讀取的塊的地址,然後一直這樣順序地按圖索驥,最後完成整份文件的所有塊的讀取。

    這種情況下讀寫速率很慢,因為就算你有100個機械手臂在讀寫,但是由於你只有讀取到第一個塊,才能知道下一個塊在哪裡,其實相當於只能有1個機械手臂在實際工作。

    而對象存儲則將元數據獨立了出來,控制節點叫元數據伺服器(伺服器+對象存儲管理軟體),裡面主要負責存儲對象的屬性(主要是對象的數據被打散存放到了那幾台分布式伺服器中的信息),而其他負責存儲數據的分布式伺服器叫做OSD,主要負責存儲文件的數據部分。當用戶訪問對象,會先訪問元數據伺服器,元數據伺服器只負責反饋對象存儲在哪些OSD,假設反饋文件A存儲在B、C、D三台OSD,那麼用戶就會再次直接訪問3台OSD伺服器去讀取數據。

    這時候由於是3台OSD同時對外傳輸數據,所以傳輸的速度就加快了。當OSD伺服器數量越多,這種讀寫速度的提升就越大,通過此種方式,實現了讀寫快的目的。

    另一方面,對象存儲軟體是有專門的文件系統的,所以OSD對外又相當於文件伺服器,那麼就不存在文件共享方面的困難了,也解決了文件共享方面的問題。

    所以對象存儲的出現,很好地結合了塊存儲與文件存儲的優點。

    最後為什麼對象存儲兼具塊存儲與文件存儲的好處,還要使用塊存儲或文件存儲呢?

    1、有一類應用是需要存儲直接裸盤映射的,例如資料庫。因為資料庫需要存儲裸盤映射給自己後,再根據自己的資料庫文件系統來對裸盤進行格式化的,所以是不能夠採用其他已經被格式化為某種文件系統的存儲的。此類應用更適合使用塊存儲。

    2、對象存儲的成本比起普通的文件存儲還是較高,需要購買專門的對象存儲軟體以及大容量硬碟。如果對數據量要求不是海量,只是為了做文件共享的時候,直接用文件存儲的形式好了,性價比高。

    熱點內容
    java輸出到文件 發布:2025-03-19 01:49:07 瀏覽:429
    光遇國際服安卓和蘋果如何互通 發布:2025-03-19 01:43:03 瀏覽:316
    如何加密應用 發布:2025-03-19 01:42:04 瀏覽:618
    lol伺服器人數怎麼擠 發布:2025-03-19 01:29:19 瀏覽:838
    兄弟連的php 發布:2025-03-19 01:24:25 瀏覽:810
    自己做腳本可不可以 發布:2025-03-19 01:20:13 瀏覽:533
    33的源碼值 發布:2025-03-19 01:13:25 瀏覽:814
    虛榮安卓怎麼充值 發布:2025-03-19 01:12:27 瀏覽:892
    如何更改報考密碼 發布:2025-03-19 01:08:12 瀏覽:416
    python日期類型 發布:2025-03-19 01:02:28 瀏覽:415