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

1.1 數據庫系統的基本概念

數據庫技術經過長期的發展已經形成了系統的科學理論,數據管理和信息處理是數據庫技術的主要內容。本節將介紹數據和數據庫系統的基本概念。

1.1.1 信息與數據庫

1.數據和信息

數據(Data)是描述事物的符號記錄,數據的表現形式可以是文本、圖表、圖形、圖像、聲音、語言、視頻等。在計算機科學中,數據是指所有能輸入到計算機并被計算機程序處理的符號的介質總稱,是用于輸入電子計算機進行處理,具有一定意義的數字、字母、符號和模擬量等的通稱。在計算機系統中的數據以二進制信息單元0和1的形式表示。

信息(Information)在計算機科學中是指用一定的規則或算法篩選的數據集合。信息不僅具有感知、存儲、加工、傳播、可再生等自然屬性,同時也是具有重要價值的社會資源。

另外,從與信息這一概念密切相關的約束、溝通、控制、數據、形式、指令、知識、含義、精神刺激、模式、感知以及表達等名詞來看,信息是人們在適應外部世界并使這種適應反作用于外部世界過程中,同外部世界進行互相交換的內容和名稱。

2.數據庫

數據庫(Database,DB)是長期存儲在計算機內,有組織、可共享的大量數據的集合。數據庫中的數據需要創建數據模型來描述,如網絡、層次、關系模型。在數據庫中的數據具有冗余度小、獨立性高和易擴展的特點。

例如,可以利用SQL Server 2016創建一個教學管理數據庫teaching,將學生的基本信息(如學號、姓名、性別、出生日期、手機號等)存放在一起,就可以創建teaching數據庫中的一個學生信息表student,如表1-1所示。將(學號、課程號、平時成績、期末成績)等學生成績信息存放在一起,就可以創建學生成績表score,如表1-2所示。兩個表中的studentno是公用列,可以以此實現數據表的關聯。數據庫中的數據除了其本身外,還包含數據庫對數據的描述語義。例如,表1-1中數據17112345678經過studentno語義描述,就成為學號,而數據13198765432經過phone語義描述就成為一個手機號。如果數據不經過語義描述,其本身的意義不完整,只表示一個常量值。

表1-1 student

表1-2 score

1.1.2 結構化查詢語言

SQL(Structured Query Language,結構化查詢語言)是用于管理數據的一種數據庫查詢和程序設計語言。其主要用于存取、查詢和更新數據,還能夠管理關系數據庫系統的數據庫對象。

SQL現在有許多不同的類型,有3個主要的標準:ANSI(美國國家標準機構)SQL;對ANSI SQL修改后在1992年采納的標準,稱為SQL-92或SQL2;最近的SQL-99標準,從SQL2擴充而來并增加了對象關系特征和許多其他新功能。其次,各大數據庫廠商提供不同版本的SQL,這些版本的SQL不但能包括原始的ANSI標準,而且在很大程度上支持SQL-92標準。

1.SQL的特點

(1)一體化。SQL集數據定義語言(DDL)、數據操縱語言(DML)和數據控制語言(DCL)于一體,可以完成數據庫中的全部工作。

(2)使用方式靈活。它具有兩種使用方式,既可以直接以命令方式交互使用,也可以嵌入使用,嵌入到C#、PHP、C、C++、FORTRAN、COBOL和Java等語言中使用。

(3)非過程化。只需要提供操作要求,不必描述操作步驟,也不需要導航。使用時只需要告訴計算機“做什么”,而不需要告訴它“怎么做”。

(4)語言簡潔,語法簡單,好學好用。在ANSI標準中,只包含了90多個英文單詞,核心功能只用少量幾個動詞,語法接近英語口語。

2.SQL的組成

結構化查詢語言包含以下幾部分。

(1)數據定義語言(Data Definition Language,DDL)。其語句包括動詞create、alter和drop。在數據庫中創建、修改或刪除數據庫對象,如表、索引、視圖、存儲過程、觸發器、事件等。

(2)數據操作語言(Data Manipulation Language,DML)。其語句包括動詞select、insert、update和delete。它們分別用于查詢、插入、修改、刪除表中的數據行等。select是用得最多的動詞,也稱為數據查詢語言(Data Query Language,DQL)。DQL常用的其他保留字有where、order by、group by和having。這些DQL保留字常與其他類型的SQL語句一起使用。

(3)數據控制語言(Data Control Language,DCL)。其語句包括grant語句和revoke等語句。通過grant語句獲得權限許可,revoke可以撤銷權限許可,確定單個用戶和用戶組對數據庫對象的訪問權限。某些數據庫管理系統可用grant或revoke控制對表單各列的訪問。

(4)事務處理語言(Transaction Processing Language,TPL)。它的語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括begin transaction、commit和rollback。

(5)指針控制語言(Pointer Control Language,CCL)。它的語句(如declare cursor、fetch into和update where current)用于對一個或多個表單獨行的操作。

在應用程序中,也可以通過SQL語句來操作數據。例如,可以在Java語言中嵌入SQL語句。通過執行Java語言來調用SQL語句,可在數據庫中插入數據、查詢數據。SQL語句也可以嵌入到C#語言、PHP語言等編程語言中。

1.1.3 數據庫管理系統

數據庫管理系統(Database Management System,DBMS)位于用戶和操作系統之間,是一種操縱和管理數據庫的大型軟件,用于建立、使用和維護數據庫。DBMS可以對數據庫進行統一的管理和控制,以保證數據的安全性和完整性,是數據庫系統的核心。數據庫中數據的插入、修改和檢索均要通過數據庫管理系統進行。Oracle、SQL Server和DB2都是常用的數據庫管理系統軟件。

用戶通過DBMS訪問數據庫中的數據,數據庫管理員(Database Administrator,DBA)也通過DBMS進行數據庫的維護工作。它可使多個應用程序和用戶采用不同的方法在同一時刻或不同時刻去建立、修改和查詢數據庫。如圖1-1所示,DBMS提供了數據定義語言、數據操作語言和應用程序,可以提供用戶定義數據庫的模式結構與權限約束,實現對數據的追加、刪除等操作。數據庫管理系統是由多種不同的程序模塊組成,基本數據庫管理系統的系統架構包括四部分。

圖1-1 數據庫管理系統架構

(1)存儲管理(Storage Manager)。數據庫管理系統通常自行配置磁盤空間,將數據存入存儲裝置的數據庫。

(2)查詢處理(Query Processor)。負責處理用戶下達的查詢命令語句,可以再細分成多個模塊負責檢查語法、優化查詢命令的處理程序。

(3)事務管理(Transaction Manager)。負責處理數據庫的事務,保障數據庫商業事務的操作需要以及并發控制管理(Concurrency Control Manager)和資源鎖定等。

(4)恢復管理(Recovery Manager)。恢復管理主要是日志管理(Log Manager),負責記錄數據庫的所有操作,可以恢復數據庫系統存儲的數據到指定的時間點。

1.1.4 數據庫系統

1.數據庫系統的組成

數據庫系統(Database System,DBS)通常由硬件、軟件、數據庫和用戶組成,管理的對象是數據。其中軟件主要包括操作系統、各種宿主語言、實用程序以及數據庫管理系統。數據庫系統架構如圖1-2所示。數據庫系統包括四大組件,即用戶、數據、軟件和硬件。

圖1-2 數據庫系統架構

(1)用戶(User)。用戶執行DDL定義數據庫架構,使用DML新增、刪除、更新和查詢數據庫的數據,通過操作系統訪問數據庫的數據。按不同角色劃分,用戶可以分為多種,如終端用戶(End User)、數據庫設計者(Database Designer)、系統分析師(System Analyst,SA)、應用程序設計師(Application Programmer)和數據庫管理員等。數據庫管理員負責創建、監控和維護整個數據庫,一般是由業務水平較高、資歷較深的人員擔任。

(2)數據(Data)。數據庫系統中的數據種類包括永久性數據(Persistent Data)、索引數據(Indexe)、數據字典(Data Dictionary)、事務日志(Transaction Log)等。

(3)軟件(Software)。它指在數據庫環境中使用的軟件,包括數據庫管理系統、應用程序和開發工具(Development Tools)等。

(4)硬件(Hardware)。它指安裝數據庫相關軟件的硬件設備,包含主機(CPU、內存和網卡等)、磁盤陣列、光驅和備份裝置等。

2.三級模式結構

數據庫系統的模式(Schema)是數據庫中全體數據的邏輯結構和特征描述,它不涉及具體的值。模式的一個具體值稱為一個實例(Instance),同一個模式可以有很多實例。模式是相對穩定的,而實例是相對變動的,因為數據庫中的數據在不斷更新。模式反映的是數據結構及其聯系,而實例反映的是數據庫某一時刻的狀態。數據庫模式分為模式、外模式和內模式三級。

(1)概念模式(Conceptual Schema)又稱為模式或邏輯模式,是面向建立和維護數據庫人員的概念級。模式是由數據庫設計者綜合所有用戶的數據,按照統一的觀點構造的全局邏輯結構,是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖(全局視圖)。它是由數據庫管理系統提供的數據模式描述語言來描述、定義的,體現、反映了數據庫系統的整體觀。視圖就是指觀察、認識和理解數據的范圍、角度和方法,是數據庫在用戶眼中的反映。

(2)外模式(External Schema)又稱為子模式或用戶模式,是面向用戶或應用程序員的用戶級。外模式是某個或某幾個用戶所看到的數據庫的數據視圖,是與某一應用有關的數據的邏輯表示。外模式是從模式導出的一個子集,包含模式中允許特定用戶使用的那部分數據。用戶可以通過外模式描述語言來描述、定義對應于用戶的數據記錄(外模式),也可以利用數據操縱語言對這些數據記錄進行操作。總之,外模式反映了數據庫的用戶觀。

(3)內模式(Internal Schema)又稱為存儲模式,是數據庫中全體數據的內部表示或底層描述,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式和物理結構,對應著實際存儲在外存儲介質上的數據庫。內模式由內模式描述語言來描述、定義,它是數據庫的存儲觀。

一個數據庫系統中,在數據庫創建之后,作為定義數據庫存儲結構的內模式和描述數據庫邏輯結構的模式是唯一的;而建立在數據庫系統之上的應用則是非常廣泛的,所以對應的外模式則不可能是唯一的。數據庫的模式是數據庫的中心和關鍵,因此設計數據庫模式結構時應該首先確定數據庫的邏輯模式。

數據庫的三級模式是數據庫在3個層次上的抽象,這可以讓用戶能夠邏輯地、抽象地處理數據而不必關心數據在計算機中的物理表示和存儲。在一個實際工作的數據庫系統中,物理層次的數據庫是客觀存在的,它是進行數據庫操作的基礎;概念層次的數據庫則是物理數據庫的一種邏輯的、抽象的描述(即模式);而用戶級數據庫則是用戶與數據庫的接口,它是概念層次數據庫的一個子集(即外模式)。

用戶應用程序根據外模式進行數據操作,通過外模式-模式映射,定義和建立某個外模式與模式間的對應關系,將外模式與模式聯系起來,當模式發生改變時,只要改變其映射就可以使外模式保持不變,對應的應用程序也可保持不變。另外,通過模式-內模式映射,定義建立數據的邏輯結構(模式)與存儲結構(內模式)間的對應關系,當數據的存儲結構發生變化時,只需改變模式-內模式映射,就能保持模式不變,因此應用程序也可以保持不變。

3.數據庫系統的體系結構

數據庫系統的體系結構主要包括以下幾種結構,即集中式、客戶/服務器式(Client/ Server,C/S)、瀏覽器-服務器式(Browser/Server,B/S)、分布式等。

(1)集中式結構。集中式系統是指運行在一臺計算機上,不與其他計算機系統交互的數據庫系統,如運行在個人計算機上的單用戶數據庫系統和運行在大型主機上的高性能數據庫系統。

(2)C/S結構。C/S結構可將數據庫功能大致分為前臺客戶端系統和后臺服務器系統。客戶端系統主要包括圖形用戶界面工具、表格及報表生成和書寫工具等;服務器系統負責數據的存取和控制,包括故障恢復和并發控制等。客戶機通過網絡將要求傳遞給服務器,服務器按照客戶機的要求返回結果。

(3)B/S結構。B/S結構將客戶機上的應用層從客戶機中分離出來,集中于一臺高性能的計算機上,成為應用服務器,也稱為Web服務器。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器,服務器安裝SQL Server、Oracle等數據庫。Web服務器充當了客戶端與數據庫服務器的中介,架起了用戶界面與數據庫之間的橋梁。

(4)分布式結構。分布式數據庫系統是計算機網絡發展的必然產物。它適應了地理上分散的組織對于數據庫應用的需求。該系統通常由計算機網絡連接起來,被連接的邏輯單位(包括計算機、外部設備等)稱為節點。分布式數據庫系統由多臺計算機組成,每臺計算機都配有各自的本地數據庫。在分布式數據庫系統中,大多數處理任務都由本地計算機訪問本地數據庫完成局部應用。對于少量本地計算機不能勝任的處理任務,可以通過網絡同時存取和處理多個異地數據庫中的數據。

主站蜘蛛池模板: 淮南市| 克什克腾旗| 泸溪县| 页游| 临城县| 菏泽市| 英德市| 都江堰市| 惠州市| 民和| 炎陵县| 舟曲县| 清水河县| 侯马市| 乐都县| 义乌市| 蛟河市| 青州市| 同心县| 章丘市| 稻城县| 棋牌| 静乐县| 庆元县| 芜湖市| 民县| 天全县| 张家川| 玛沁县| 台北县| 海宁市| 射洪县| 宁陕县| 宁河县| 会宁县| 视频| 霍城县| 阿克| 玉门市| 准格尔旗| 邯郸县|