PostgreSQL 教程

穿越火线手游更新时间 www.dyzww.icu PostgreSQL 是一個免費的對象-關系數據庫服務器(ORDBMS),在靈活的BSD許可證下發行。

PostgreSQL 開發者把它念作 post-gress-Q-L。

PostgreSQL 的 Slogan 是 "世界上最先進的開源關系型數據庫"。

參考內容:PostgreSQL 10.1 手冊


什么是數據庫?

數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫。

每個數據庫都有一個或多個不同的 API 用于創建,訪問,管理,搜索和復制所保存的數據。

我們也可以將數據存儲在文件中,但是在文件中讀寫數據速度相對較慢。

所以,現在我們使用關系型數據庫管理系統(RDBMS)來存儲和管理的大數據量。所謂的關系型數據庫,是建立在關系模型基礎上的數據庫,借助于集合代數等數學概念和方法來處理數據庫中的數據。

ORDBMS(對象關系數據庫系統)是面向對象技術與傳統的關系數據庫相結合的產物,查詢處理是 ORDBMS 的重要組成部分,它的性能優劣將直接影響到DBMS 的性能。

ORDBMS在原來關系數據庫的基礎上,增加了一些新的特性。

RDBMS 是關系數據庫管理系統,是建立實體之間的聯系,最后得到的是關系表。

OODBMS 面向對象數據庫管理系統,將所有實體都看著對象,并將這些對象類進行封裝,對象之間的通信通過消息 OODBMS 對象關系數據庫在實質上還是關系數據庫 。


ORDBMS 術語

在我們開始學習 PostgreSQL 數據庫前,讓我們先了解下 ORDBMS 的一些術語:

  • 數據庫: 數據庫是一些關聯表的集合。
  • 數據表: 表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
  • 列: 一列(數據元素) 包含了相同的數據, 例如郵政編碼的數據。
  • 行:一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。
  • 冗余:存儲兩倍數據,冗余降低了性能,但提高了數據的安全性。
  • 主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
  • 外鍵:外鍵用于關聯兩個表。
  • 復合鍵:復合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復合索引。
  • 索引:使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似于書籍的目錄。
  • 參照完整性: 參照的完整性要求關系中不允許引用不存在的實體。與實體完整性是關系模型必須滿足的完整性約束條件,目的是保證數據的一致性。

PostgreSQL 特征

  • 函數:通過函數,可以在數據庫服務器端執行指令程序。

  • 索引:用戶可以自定義索引方法,或使用內置的 B 樹,哈希表與 GiST 索引。

  • 觸發器:觸發器是由SQL語句查詢所觸發的事件。如:一個INSERT語句可能觸發一個檢查數據完整性的觸發器。觸發器通常由INSERT或UPDATE語句觸發。 多版本并發控制:PostgreSQL使用多版本并發控制(MVCC,Multiversion concurrency control)系統進行并發控制,該系統向每個用戶提供了一個數據庫的"快照",用戶在事務內所作的每個修改,對于其他的用戶都不可見,直到該事務成功提交。

  • 規則:規則(RULE)允許一個查詢能被重寫,通常用來實現對視圖(VIEW)的操作,如插入(INSERT)、更新(UPDATE)、刪除(DELETE)。

  • 數據類型:包括文本、任意精度的數值數組、JSON 數據、枚舉類型、XML 數據

    等。
  • 全文檢索:通過 Tsearch2 或 OpenFTS,8.3版本中內嵌 Tsearch2。

  • NoSQL:JSON,JSONB,XML,HStore 原生支持,至 NoSQL 數據庫的外部數據包裝器。

  • 數據倉庫:能平滑遷移至同屬 PostgreSQL 生態的 GreenPlum,DeepGreen,HAWK 等,使用 FDW 進行 ETL。


相關資源

PostgreSQL 10.1 手冊 在線手冊://www.dyzww.icu/manual/PostgreSQL/

離線手冊 - PDF 版本: https://pan.baidu.com/s/1h1J14i8tzJUY3p9yyeW0mA, 提取碼: xs7r。

離線手冊 - CHM 版本: https://pan.baidu.com/s/1h1J14i8tzJUY3p9yyeW0mA, 提取碼: tq4z。

查看最新版:https://github.com/postgres-cn/pgdoc-cn/releases