天天看點

資料庫管理系統(DBMS)

1 資料庫管理系統(DBMS)

  資料庫管理系統(DBMS)是指DBS中對資料進行管理的軟體系統,它是DBS的核心成分。DBS中所有與資料庫打交道的操作,包括建庫、查詢、更新及資料控制,都是通過DBMS進行的。資料庫管理系統總是基于某種資料庫模型,可分為網狀型、層次型、關系型和面向對象型DBMS。

  資料庫管理系統的主要目标:把資料作為可管理的資源處理。

  資料庫管理系統的5個重要功能:

  ◆資料庫的定義功能:DBMS提供資料定義語言(DDL)定義資料庫的3級結構,包括外模式、概念模式、内模式及其互相之間的映象,定義資料的完整性限制、保密限制等條件。是以在DBMS中包括DDL的編譯程式。

  ◆資料庫的操縱功能:提供資料操縱語言(DML)實作對資料的操作。有4種基本操作:檢索(查詢)、插入、删除、修改。在DBMS中包括DML的編譯程式或解釋程式。

  ◆資料庫的保護功能:DBMS對資料庫的保護主要通過4個子系統:

  A.資料庫恢複(在資料庫被破壞或資料不正确時,系統有能力把資料庫恢複到最近某個正确的狀态

  B.資料完整性控制(保證資料庫中資料及語義的正确性和有效性,防止任何對資料錯誤的操作)

  C.多使用者環境下的并發控制。

  D.資料安全性控制(防止未被授權的使用者蓄謀或無意地存取資料庫中的資料,以免資料的洩露或破壞)。

  ◆資料庫的維護功能:這部分包括資料庫的初始資料載入、轉換功能、存儲功能、資料庫的改組、性能監視功能。

  ◆資料字典(DD):DD管理資料庫3級結構的定義。對于資料庫的操作都要通過查閱DD才能進行。現在有的大型系統中,把DD單獨抽出來自成一個系統,成為一個系統工具,使得DD成為一個比DBMS更進階的使用者與資料庫之間的接口。

  要注意的是:應用程式并不屬于DBMS的範圍。應用程式是用主語言和DML編寫的,程式中的DML語句由DBMS執行,而其餘部分仍由主語言編譯程式完成。

  資料庫系統(DBS)

  資料庫系統是一個複雜的系統,它是采用了資料庫技術的計算機系統。是以,它不僅僅是一組對資料進行管理的軟體(即DBMS),也不僅僅是一個資料庫。它是一個實際可運作的、按照資料庫方法存儲、維護和向應用系統提供資料支援的系統。它是存儲媒體、處理對象和管理系統的集合體,由資料庫DB、硬體支援系統、軟體支援系統和資料庫管理者DBA這四部分組成。

2 SQL語句

  ◆基本表的定義可用“CREATE TABLE”語句實作,增加屬性可以用ALTER...ADD...”語句,删除屬性可以用“ALTER...DROP...”語句;删除已存在的表可用“DROP TABLE...”語句。

  ◆視圖的定義和撤消

  ◆索引的定義和撤銷

  ◆SELECT 查詢語句

  ◆DELETE删除語句

  ◆INSERT插入語句

  ◆uPDATE語句

  3 關系運算

  專門的關系運算包括選擇、投影、連接配接、除等。

  ⒈選擇(Selection)

  選擇又稱為限制(Restriction)。它是在關系R中選擇滿足給定條件的諸元組,記作:

  σF(R) = {t|t∈R ∧ F(t)='真'}

  其中F表示選擇條件,它是一個邏輯表達式,取邏輯值‘真’或‘假’。

  邏輯表達式F的基本形式為:

  X1 θ Y1 [ φ X2 θ Y2 ]

  θ表示比較運算符,它可以是>、≥、<、≤、=或≠。X1、Y1等是屬性名或常量或簡單函數。屬性名也可以用它的序号來代替。φ表示邏輯運算符,它可以是僼、∧或∨。[ ]表示任選項,即[ ]中的部分可以要也可以不要,...表示上述格式可以重複下去。

  是以選擇運算實際上是從關系R中選取使邏輯表達式F為真的元組。這是從行的角度進行的運算。

  舉例

  設有一個學生-課程關系資料庫,包括學生關系Student、課程關系Course和選修關系SC。下面的許多例子将對這三個關系進行運算。

  例1 查詢資訊系(IS系)全體學生

  σSdept='IS'(Student) 或 σ5='IS'(Student)

  例2 查詢年齡小于20歲的元組

  σSage<20(Student)

  或σ4<20(Student) 。

  ⒉ 投影(Projection)

  關系R上的投影是從R中選擇出若幹屬性列組成新的關系。記作:

  ΠA(R) = { t[A] | t∈R }

  其中A為R中的屬性列。

  舉例

  例3 查詢學生關系Student在學生姓名和所在系兩個屬性上的投影:

  ΠSname,Sdept(Student)

  或

  Π2,5(Student)

  結果如圖2-7(a)。

  投影之後不僅取消了原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列後,就可能出現重複行,應取消這些完全相同的行。

  例4 查詢學生關系Student中都有哪些系,即查詢學生關系Student在所在系屬性上的投影

  ΠSdept(Student)

  投影之後不僅取消了原關系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列後,就可能出現重複行,應取消這些完全相同的行。

⒊ 連接配接(Join)

  連接配接也稱為θ連接配接。它是從兩個關系的笛卡爾積中選取屬性間滿足一定條件的元組。記作:

資料庫管理系統(DBMS)

  其中A和B分别為R和S上度數相等且可比的屬性組。θ是比較運算符。連接配接運算從R和S的笛卡爾積R×S中選取(R關系)在A屬性組上的值與(S關系)在B屬性組上值滿足比較關系θ的元組。

  連接配接運算中有兩種最為重要也最為常用的連接配接,一種是等值連接配接(equi-join),另一種是自然連接配接(Natural join)。

  θ為“=”的連接配接運算稱為等值連接配接。它是從關系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。即等值連接配接為:

資料庫管理系統(DBMS)

  自然連接配接(Natural join)是一種特殊的等值連接配接,它要求兩個關系中進行比較的分量必須是相同的屬性組,并且要在結果中把重複的屬性去掉。即若R和S具有相同的屬性組B,則自然連接配接可記作:

資料庫管理系統(DBMS)

  一般的連接配接操作是從行的角度進行運算。但自然連接配接還需要取消了重複列,是以是同時從行和列的角度進行運算。

  4. 除(Division)

  給定關系R(X,Y)和S(Y,Z),其中X、Y、Z為屬性組。R中的Y與S中的Y&127;可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:

資料庫管理系統(DBMS)

  其中Yx為x在R中的象集,x=tr[X]。

舉例

  例6 設關系R、S分别為圖2-9中的(a)和(b),R÷S的結果為圖2-9(c)。

  在關系R中,A可以取四個值{a1, a2, a3, a4}。其中:

  a1的象集為{(b1,c2), (b2,c3), (b2,c1)}

  a2的象集為{(b3,c7), (b2,c3)}

  a3的象集為{(b4,c6)}

  a4的象集為{(b6,c6)}

  S在(B,C)上的投影為{(b1,c2), (b2,c3), (b2,c1)}

  顯然隻有a1的象集(B,C)a1包含S在(B,C)屬性組上的投影,是以R÷S={a1}。

R S R÷S
A B C B C D A
a1 b1 c2 b1 c2 d1 a1
a2 b3 c7 b2 c1 d1
a3 b4 c6 b2 c1 d1
a1 b2 c3 b2 c3 d2
a4 b6 c6
a2 b2 c3
a1 b2 c1
(a) (b) (c)

繼續閱讀