PostgreSQL 教程

2020-04-22 14:50 更新

什么是數(shù)據(jù)庫(kù)?

 數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織,存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)的。

每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)或多個(gè)不同的API,用于創(chuàng)建,訪(fǎng)問(wèn),管理,搜索和復(fù)制所保存的數(shù)據(jù)。

我們也可以將數(shù)據(jù)存儲(chǔ)在文件中,但是在文件中讀寫(xiě)數(shù)據(jù)速度相對(duì)較慢。

所以,現(xiàn)在我們使用關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)來(lái)存儲(chǔ)和管理的大數(shù)據(jù)量。所謂的關(guān)系型數(shù)據(jù)庫(kù),是建立在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),收集集合代數(shù)等數(shù)學(xué)概念和方法來(lái)處理數(shù)據(jù)庫(kù)中的數(shù)據(jù)。

ORDBMS(對(duì)象關(guān)系數(shù)據(jù)庫(kù)系統(tǒng))是面向?qū)ο蠹夹g(shù)與傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)相結(jié)合的生成物,查詢(xún)處理是ORDBMS的重要組成部分,其性能優(yōu)劣將直接影響到DBMS的性能。

ORDBMS在原來(lái)關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ)上,增加了一些新的特性。

RDBMS是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),是建立實(shí)體之間的聯(lián)系,最后得到的是關(guān)系表。

OODBMS面向?qū)ο髷?shù)據(jù)庫(kù)管理系統(tǒng),將所有實(shí)體都看著對(duì)象,將這些對(duì)象類(lèi)進(jìn)行封裝,對(duì)象之間的通信通過(guò)消息OODBMS對(duì)象關(guān)系數(shù)據(jù)庫(kù)在替換還是關(guān)系數(shù)據(jù)庫(kù)。

ORDBMS術(shù)語(yǔ)

在我們開(kāi)始學(xué)習(xí)PostgreSQL數(shù)據(jù)庫(kù)前,讓我們先了解下ORDBMS的一些術(shù)語(yǔ):

  • 數(shù)據(jù)庫(kù):數(shù)據(jù)庫(kù)是一些關(guān)聯(lián)表的集合。
  • 在一個(gè)數(shù)據(jù)庫(kù)中的表看起來(lái)像一個(gè)簡(jiǎn)單的電子表格。
  • 列:一列(數(shù)據(jù)元素)包含了相同的數(shù)據(jù),例如某些的數(shù)據(jù)。
  • 行:一行(=元組,或記錄)是一組相關(guān)的數(shù)據(jù),例如一條用戶(hù)訂閱的數(shù)據(jù)。
  • 冗余:存儲(chǔ)雙向數(shù)據(jù),冗余降低了性能,但提高了數(shù)據(jù)的安全性。
  • 主鍵:主鍵是唯一的。一個(gè)數(shù)據(jù)表中只能包含一個(gè)主鍵。您可以使用主鍵來(lái)查詢(xún)數(shù)據(jù)。
  • 外鍵:外鍵用于關(guān)聯(lián)兩個(gè)表。
  • 復(fù)合鍵:復(fù)合鍵(組合鍵)將多個(gè)列作為一個(gè)索引鍵,一般用于復(fù)合索引。
  • 索引:使用索引可快速訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)表中的特定信息。索引是對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序的一種結(jié)構(gòu)。
  • 與實(shí)體初始是關(guān)系模型必須滿(mǎn)足的共識(shí)約束條件,目的是保證數(shù)據(jù)的一致性。

PostgreSQL特征

  • 函數(shù):通過(guò)函數(shù),可以在數(shù)據(jù)庫(kù)服務(wù)器端執(zhí)行指令程序。
  • 索引:用戶(hù)可以自定義索引方法,或使用內(nèi)置的B樹(shù),哈希表與GiST索引。
  • 通常由INSERT或Update語(yǔ)句觸發(fā)。多版本并發(fā)控制:PostgreSQL使用多版本。每個(gè)用戶(hù)提供一個(gè)數(shù)據(jù)庫(kù)的“快照”,用戶(hù)在事務(wù)內(nèi)部進(jìn)行的每個(gè)修改,對(duì)于其他的用戶(hù)都不可見(jiàn),直到該事務(wù)成功提交。
  • 規(guī)則:規(guī)則(RULE)允許一個(gè)查詢(xún)能被重組,通常用于實(shí)現(xiàn)對(duì)視圖(VIEW)的操作,如插入(INSERT),更新(UPDATE),刪除(DELETE)。
  • 數(shù)據(jù)類(lèi)型:包括文本,任意精度的數(shù)值數(shù)組,JSON數(shù)據(jù),枚舉類(lèi)型,XML數(shù)據(jù)等。
  • 全文檢索:通過(guò)Tsearch2或OpenFTS,8.3版本中內(nèi)嵌Tsearch2。
  • NoSQL:JSON,JSONB,XML,HStore本機(jī)支持,至NoSQL數(shù)據(jù)庫(kù)的外部數(shù)據(jù)包裝器。
  • 數(shù)據(jù)倉(cāng)庫(kù):能平滑遷移至同屬PostgreSQL生態(tài)的GreenPlum,DeepGreen,HAWK等,使用FDW進(jìn)行ETL。


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)