1. 程式人生 > >SQL Server 資料庫簡介

SQL Server 資料庫簡介

使用資料庫可以高效且條理分明地儲存資料,使人們能夠更加迅速,方便地管理資料。資料庫具有以下特點:

         1、可以結構化儲存大量的資料資訊,方便使用者進行有效的檢索和訪問。

         2、可以有效地保持資料資訊的一致性、完整性,降低資料冗餘。

         3、可以滿足應用的共享和安全方面的要求。

資料庫的基本概念:

         1、資料:描述事物的符號記錄成為資料(Data)包括數字、文字、圖形、影象、聲音、檔案記錄等都是資料。資料以“記錄”形式按統一的格式進行儲存的。

         2、資料庫和資料庫表:表是用來儲存具體資料的,資料庫就是表的集合。它是以一定的組織方式儲存的相互的資料集合。例如,關係資料庫的表由記錄組成,記錄有欄位組成,欄位有字元或數字組成。它可以供各種使用者共享,具有最小冗餘度和較高的資料獨立性。它是統一管理的相關資料的集合。

資料庫管理系統(Database Management SystemDBMS)是實現對資料庫資源有效組織、管理和存取的系統軟體。它在作業系統的支援下,支援使用者對資料庫的各項操作。DBMS主要包括:

         1、資料庫的建立和維護功能

         2、資料定義功能

         3、資料操作功能

         4、資料庫的執行管理功能

         5、通訊功能

資料庫系統(Database System DBS)是一個人一機系統,一般由硬體、作業系統、資料庫、DBMS、應用軟體和資料庫使用者(包括資料庫管理員)組成。使用者可以通過DBMS操作資料庫,也可以通過應用程式操作資料庫。

應用程式是利用DBMS,為解決某個具體的管理或資料處理的任務而編制的一系列命令的有序集合。如果應用程式比較完善,能夠提供友好的人機介面,並編譯成可執行檔案發行,使得普通使用者不需要具備計算機的專業知識,在較短時間就學會使用,那麼就稱為資料庫應用軟體。

資料庫管理員(Database Administrator DBA)負責資料庫的更新和備份、資料庫系統的維護使用者管理等工作,保證資料庫系統的正常執行。DBA一般由業務水平較高、資歷較深的人員擔任。

資料庫發展史

根據資料模型的發展,可以劃分為三個階段:第一代的網狀、層次資料庫系統;第二代的關係資料庫系統;第三代的以面向物件模型為主要特徵的資料庫系統。

20世紀60年代,層次模型與網狀模型的資料庫系統,資料庫的代表是1969IBM公司研製的層次模型的資料庫管理系統——IMSImformation Management System,資訊管理系統)和20世紀70年代美國資料系統語言協會(CODASYL)下屬資料庫任務組(DBTG)提議的網狀模型。

20世紀70年代初,第二代資料庫——關係資料庫開始出現。逐漸成為占主導地位的資料庫,成為行業主流。關係資料系統將結構化查詢語言(Structured Query LanguageSQL)作為資料定義語言(DataDefinition LanguageDDL)和資料操作語言(Data Manipulation LanguageDML),它一誕生就成為關係資料庫的標準語言。

20世紀80年代開始,各種適應不同領域的新型資料庫系統不斷湧現,如工程資料庫、多媒體資料庫、圖形資料庫、智慧資料庫、分散式資料庫及面向物件資料庫等。

經典資料模型

     資料是現實世界中“量”的抽象,而資料模型(Data Model)是資料特徵的抽象。在資料庫系統中,資料模型是它的核心與基礎。資料模型表現為資料的結構、定義在其上的操作及約束條件。它從概念層次上描述了系統的靜態特徵、動態特徵和約束條件,為資料庫系統的資訊表示與操作提供了一個抽象框架。

DBMS的發展過程中,出現了網狀模型、層次模型和關係模型三種經典的資料模型。

資料模型所描述的內容包括三方面:資料結構、資料操作和資料約束。

網狀模型

   資料記錄組織成圖的形式,使用“資料結構圖”進行抽象的分析和表示。網狀模型適合表達複雜的資料關係的實現,也可以將資料冗餘減小到最小。它的資料結構模型能直觀反映現實中資料之間的聯絡。

資料操作

   網狀模型的資料操作是建立在關係鏈基礎上的導航式的操作。網狀模型以圖為基礎、

資料約束

   網狀模型的資料約束是零散孤立的,或者分散在各個節點,或者集中成為一種關係鏈,這樣容易導致不一致性或降低效率。通常網狀模型不具體實現資料約束,而由應用程式自身來實現資料約束。

層次模型

   層次模型中,資料記錄組織成樹的形式,使用“樹結構圖”。

資料操作

在層次模型上的資料操作不可避免地具有網狀模型的特點——導航性。這樣的結構有利於提高資料的查詢效率,但資料存取上還存在著必須導航的要求,因此,層次模型的資料庫在資料操作上依然比較複雜。

資料約束

    層次模型的資料約束與網狀模型相似,由於結構的簡化,去掉了網狀模型中多對多和多對一的關係,層次模型的資料約束可以做到適當的系統實現,還是要依靠應用程式本身實現。

層次模型的實現技術比關係模型優越,比網狀模型簡單,所以一直獨領風騷。它的代表是IBM公司的IMS系統。該系統曾是使用最早和最廣的幾個資料庫之一,在歷史上曾是最大的資料庫之一,由於它的開發者是最早開始處理併發、恢復、完整性和高效查詢等問題的人,其中的一些技術和思想自然應用到DB2中,這是DB2長盛不衰的根源。

關係模型

   資料結構。關係模型建立在關係代數的理論基礎上,資料結構適用簡單易懂的二維資料表,“實體—關係”(E-R)圖來直接表示,E-R圖中包含了實體(資料物件),關係和屬性三個要素。

   實體:也稱為例項,對應現實世界中可區別與其他物件的“事件”或“事物”。

實體集:具有相同型別及共享相同性質的實體集合。

屬性:實體所具有的某一特性,一個實體可以有多個屬性。

聯絡:實體集之間的對應關係成為聯絡,也稱為關係。

  資料操作。對於資料庫的使用者而言,關係模型使用從關係代數上抽象出來的資料庫操作語言(DML)進行操作。結構化查詢語言(SQL)就是其中最重要的一種。它的特色是直接面向結果,簡化操作步驟,使得資料庫應用的設計變得非常簡單易懂。

對於資料庫的物理結構而言, 關係資料庫系統的資料結構簡單、功能強、資料獨立性高、理論基礎堅實。嚴格的關係資料庫以二維的資料庫表作為基本資料結構,利用簡單或複雜的索引技術實現查詢演算法,實現起來相對比較簡單,也方便了預編譯技術將SQL語言直接轉化為有效的資料檢索演算法。

資料約束。關係模型的資料約束可以針對實體,也可以針對實體的屬性,還可以針對關係,並可以在定義實體、實體屬性和關係時全面實現。關係模型使用的資料定義語言(DDL)和關係模型在理論上對關係資料庫核心實現的要求,使得資料約束可以很容易實現,但是他的效率並不高。

總和來說,關係模型相比網狀模型和層次模型有更為堅實和完整的理論基礎。相比層次模型和網狀模型而言,關係模型與使用者更靠近些,而網狀模型和層次模型與底層實現的結合更緊密。這樣的特色也更容易讓關係模型成為商業資料庫的選擇。

當今主流資料庫介紹

  SQL Server Microsoft公司的資料庫產品。在設計上,Microsoft SQL Server大量利用了Microsoft Windows作業系統的底層結構,直接面向Microsoft Windows,尤其是Windows系列伺服器作業系統的使用者。

  Oracle 公司成立於1977年,20136月,Oracle 12C正式釋出,使企業能夠快速實現私有云。Oracle資料庫成為世界上使用廣泛的資料庫系統之一。Oracle公司在資料庫領域一直處於領先地位,不僅資料庫核心相當優秀,而且其相關的支援產品也相當完善和全面。Oracle能適應70多種操縱系統。

DB21970,IBM公司的德加·考特提出關係模型的概念.他被稱為關係資料庫之父”.DB2支援從PCUNIX,從中小型到大型機,IBM到非IBM(HPSun UNIX系統等)各種操縱系統平臺。DB2伺服器端的最佳執行環境還是IBM自己的作業系統平臺OS/400

DB2資料庫核心又稱為DB2通用伺服器,可以執行與多種作業系統之上,它根據相應的平臺環境做了調整和優化,以便達到較好的效能。

MySQL 也是一個關係型資料庫管理系統,現已被Oracle公司收購。MySQL執行與Linux作業系統之上,ApacheNginx作為Web伺服器,MySQL作為後臺資料庫,PHP/Perl/Python作為指令碼直譯器。這四款軟體都是免費或開源的。業內稱為“LAMP”組合。

關係資料庫的基本概念

   關係資料庫系統是基於關係模型的資料庫系統。是關係模型應用到資料庫領域的例項化。它的基本概念來自於關係模型。

關係資料庫使用的儲存結構是多個二維表格,反映事物及其聯絡的資料描述是以平面表格形式體現的。

關係資料庫是由資料表之間的關聯組成的,其中:

   資料表通常是一個由行和列組成的二維表,每一個數據表分別說明資料庫中某一特定的方面或部分的物件及其屬性。

   資料表中的行通常叫做記錄或者元組,它代表眾多具有相同屬性的物件中的一個。

   資料表中的列通常叫做欄位或者屬性,它代表相應資料庫中儲存的共有的屬性。

主鍵與外來鍵

   資料表中的每行記錄都必須是唯一的,而不允許出現完全相同的記錄,通過定義主鍵(主關鍵字,Primary Key)可以保證記錄(實體)的唯一性。

鍵,即關鍵字,它是關係模型中一個非常重要的元素。

主鍵唯一標識表中的行資料,一個主鍵值對應一行資料。主鍵由一個或多個欄位組成,其值具有唯一性,不允許取空值(NULL)。一個表只能有一個主鍵。

如果一個屬性集能唯一地表示表的一行而又不含有多於的屬性,那麼這個屬性集稱為候選鍵。表中可以有多個候選鍵,但是隻能有一個候選鍵可以選作表的主鍵,其他候選鍵稱為備用鍵。

外來鍵

一個關係資料庫通常包含多個表,通過外來鍵(ForeignKey)可以使這些表關聯起來。

外來鍵是用於建立和加強兩個表資料之間的連結的一列或多列。通過將表中主鍵值的一列或多列新增到另一個表中,可建立兩個表之間的連結。這個列就稱為第二個表的外來鍵。

“主表”和“從表”總是成對出現的,相互之間以“外來鍵”形成關聯。

資料完整性規則

關係資料庫的資料與更新操作必須遵守四類完整規則:

  1、實體完整性規則

    實體完整性規則要求關係中的元組在主鍵的屬性上不能有空值。如果出現空值,那麼主鍵值就起不到唯一標識元組的作用。

2、域完整性規則

   域完整性也稱為列完整性,指定一個數據集對某一個列是否有效或確定是否允許空值。

3、引用完整性規則

     如果兩個表相互關聯,那麼引用完整性規則要求不允許引用不存在的元組。

4、使用者定義的完整性規則

    使用者定義完整規則是針對某一具體資料的約束條件,由應用環境決定。它反映某一具體應用所涉及的資料必須滿足的語義要求。系統提供定義和檢驗這類完整性的機制,以便用統一的系統方法進行處理,不再由應用程式承擔這項工作。

實體完整性規則和域完整性規則是關係資料庫標準要求在資料庫系統的核心層實現的。