官术网_书友最值得收藏!

1.5 PostgreSQL對象-關系數據庫系統軟件

PostgreSQL 軟件許可開放,人們可以任何目的使用、復制、修改和重新發布這套軟件以及文檔,不需要任何費用與簽訂任何書面協議。本節以PostgreSQL 11版本為例,介紹PostgreSQL軟件的基本組成及其管理對象。

掃碼預習

1.5.1 PostgreSQL軟件的獲得

在PostgreSQL軟件安裝前,需要從PostgreSQL官方網站下載軟件安裝包。該網站提供了PostgreSQL數據庫軟件的源碼版本安裝包和編譯版本安裝包。一般用戶下載二進制編譯版本軟件安裝包即可。此外,用戶需要根據本機運行的操作系統,選擇下載相應的發布軟件包,下載頁面如圖1-12所示。

在選定操作系統版本后,還需進一步選定PostgreSQL軟件的安裝版本。例如,在選定的64位Windows平臺版本后,再選定PostgreSQL 11版本。當下載好安裝軟件包后,即可在操作系統下進行安裝。

圖1-12 PostgreSQL軟件下載頁面

1.5.2 PostgreSQL軟件的功能程序

PostgreSQL 數據庫管理系統軟件由客戶端功能程序和服務器端功能程序組成,采用客戶/服務器結構進行通信。客戶端程序提供用戶對數據庫服務器的管理操作工具,同時也提供應用程序訪問數據庫接口,如ODBC標準接口、JDBC標準接口。服務器端程序提供數據庫服務處理,實現 DBMS 功能。客戶端程序通過請求/響應的網絡協議連接訪問數據庫服務器。在每次客戶端程序連接訪問數據庫服務器時,數據庫服務器均為客戶端程序新建一個服務器進程,該進程對應于客戶端用戶對數據庫的訪問處理。PostgreSQL數據庫服務器可以同時支持不同運行環境的客戶端程序訪問數據庫,圖1-13給出多個客戶端程序并發訪問數據庫服務器程序的結構。

圖1-13 多個客戶端程序并發訪問數據庫服務器程序的結構

在上面的PostgreSQL數據庫系統中,一個客戶端程序運行在UNIX環境,另一個客戶端程序運行在Linux環境,還有一個客戶端程序運行在Windows環境。它們均通過請求/響應網絡協議連接訪問PostgreSQL數據庫服務器。在客戶端程序訪問數據庫服務器時,數據庫服務器將對每個客戶端連接請求建立一個新的 Postgre 進程提供服務,這樣數據庫服務器可支持多個客戶端程序的并發訪問。

PostgreSQL數據庫軟件包含的客戶端程序和服務器端程序如下。

1.PostgreSQL客戶端程序

clusterdb:建立PostgreSQL數據庫集群。

createdb:創建一個新PostgreSQL數據庫。

createlang:安裝一個PostgreSQL過程語言。

createuser:創建一個新的PostgreSQL用戶賬戶。

dropdb:刪除一個PostgreSQL數據庫。

droplang:刪除一個PostgreSQL過程語言。

dropuser:刪除一個PostgreSQL用戶賬戶。

ecpg:嵌入的SQL C預處理器。

pg_basebackup:做一個PostgreSQL集群的基礎備份。

pg_config:檢索已安裝的PostgreSQL版本信息。

pg_dump:將一個PostgreSQL數據庫轉存到一個腳本程序或者其他歸檔文件中。

pg_dumpall:將一個PostgreSQL數據庫集群轉儲到一個腳本程序中。

pg_isready:檢查PostgreSQL服務器的連接狀態。

pg_receivexlog:PostgreSQL集群中的流事務日志。

pg_restore:從pg_dump創建的備份文件中恢復PostgreSQL數據庫。

psql:PostgreSQL交互終端。

reindexdb:重建PostgreSQL數據庫索引。

vacuumdb:收集垃圾并分析PostgreSQL數據庫。

2.PostgreSQL服務器端程序

initdb:創建一個新的PostgreSQL數據庫簇(Cluster)。

pg_controldata:顯示一個PostgreSQL數據庫集群的控制信息。

pg_ctl:初始化、啟動、停止控制PostgreSQL服務器。

pg_resetxlog:重置一個數據庫集群的預寫日志及其他控制內容。

postgres:數據庫服務器服務進程。

postmaster:數據庫服務器守護進程。

1.5.3 PostgreSQL數據庫的管理工具

實現PostgreSQL數據庫管理的工具有不少,既有開源工具,也有商品工具。這里只介紹兩種使用最廣泛的PostgreSQL開源數據庫管理工具。

1.psql命令行工具

psql是一個PostgreSQL內置的客戶端工具,該工具允許用戶通過執行命令,以交互式方式實現PostgreSQL數據庫管理。此外,該工具也允許用執行shell腳本程序實現批量命令自動化處理。該工具的運行界面如圖1-14所示。

圖1-14 psql工具的運行界面

系統管理員使用psql命令行工具執行不同操作命令,可以完成所有數據庫管理工作,但前提是必須熟悉操作命令及其參數格式。

2.pgAdmin圖形界面管理工具

pgAdmin是一個廣泛使用的PostgreSQL圖形界面管理工具,該工具可運行在多種操作系統平臺,如Windows、Linux、FreeBSD、macOS和Solaris等。pgAdmin 軟件是與 PostgreSQL軟件分開發布的,需要從pgAdmin官網下載。pgAdmin工具支持連接多個PostgreSQL數據庫服務器。不論PostgreSQL數據庫服務器是什么版本,pgAdmin工具均可連接訪問與管理。pgAdmin 4的運行界面如圖1-15所示。

圖1-15 pgAdmin 4的運行界面

當使用pgAdmin數據庫管理工具登錄連接到PostgreSQL數據庫服務器后,進入數據庫服務器管理界面后,便可對數據庫服務器進行管理,如圖1-16所示。

圖1-16 管理界面

在pgAdmin工具界面中,除了對數據庫服務器中的各個數據庫進行管理外,還可對數據庫服務器的角色與權限、表空間、運行性能等進行管理;同時,也可以進行數據庫編程開發,實現數據訪問操作與功能處理。

1.5.4 PostgreSQL數據庫對象

在一個PostgreSQL數據庫中,可以創建多種數據庫對象。這里介紹幾種基本數據庫對象。

1.schema

schema是一種構成數據庫下級邏輯結構的數據庫對象,用于按用戶或按應用分類組織其他數據庫對象(如表、視圖、序列、函數、觸發器等對象)。通常一個數據庫由多個 schema對象組成,包括系統默認創建的schema對象和用戶自己創建的schema對象。當創建一個新的PostgreSQL數據庫時,系統自動為其創建一個名為public的schema對象。

2.表

表(Table)是一種用戶組織存儲數據的數據庫對象。在 PostgreSQL 數據庫中,表首先屬于某個schema,而schema又屬于某個數據庫,其他數據庫對象與表對象一樣,從而構成了PostgreSQL數據庫的3層邏輯結構。在PostgreSQL數據庫中,表對象可以有3種類型:關系表、繼承表、外部表。從中可以看出 PostgreSQL 數據庫作為對象-關系數據庫與關系數據庫不同之處。

3.視圖

視圖(View)是一種基于虛擬表操作數據的數據庫對象。與大多數關系數據庫一樣, PostgreSQL數據庫使用視圖用于簡化查詢邏輯,當然也可使用視圖更新基本表中的數據。此外,PostgreSQL數據庫還支持物化視圖,可通過緩存來實現快速的數據庫查詢處理。

4.序列

序列(Sequence)是一種為代理鍵列提供自動增量序列值的數據庫對象。與Oracle數據庫一樣,PostgreSQL數據庫也可創建序列對象。用戶可以自定義序列的初始值、增量值及序列范圍。此外,PostgreSQL數據庫還支持多個表共享使用相同序列對象。

5.函數

函數(Function)是一種使用內置編程語言編寫數據庫訪問操作功能程序的數據庫對象。PostgreSQL數據庫函數執行結果可以是一個標量值,也可以是查詢結果元組集。與其他關系數據庫不同的是,PostgreSQL數據庫沒有單獨的存儲過程對象,而是通過函數來實現存儲過程功能。

6.觸發器

觸發器(Trigger)是一種事件觸發自動執行數據庫訪問操作功能程序的數據庫對象。PostgreSQL數據庫與其他關系數據庫一樣,均支持多種類型觸發器,如插入觸發器、修改觸發器、刪除觸發器,同時還可設置觸發級別(語句級、行級),以及觸發時機(修改前觸發、修改后觸發)。

課堂討論——本節重點與難點知識問題

1.PostgreSQL是什么類型的數據庫系統?它有哪些基本功能?

2.PostgreSQL數據庫系統采用哪種軟件結構?

3.PostgreSQL數據庫軟件的客戶端程序有哪些?

4.PostgreSQL數據庫軟件的服務器端程序有哪些?

5.PostgreSQL數據庫管理工具主要有哪些?

6.PostgreSQL數據庫中可以創建哪些數據庫對象?

主站蜘蛛池模板: 安宁市| 紫云| 乌兰县| 东安县| 东阿县| 广州市| 惠东县| 乐陵市| 兴城市| 新宾| 专栏| 顺平县| 莒南县| 英超| 嘉荫县| 广南县| 合作市| 阿荣旗| 九江市| 定兴县| 高邮市| 县级市| 乐东| 石屏县| 奉新县| 长海县| 工布江达县| 太湖县| 扎兰屯市| 桃园市| 新余市| 伊吾县| 金川县| 江都市| 博爱县| 重庆市| 古田县| 砚山县| 长春市| 平泉县| 枣强县|