2010軟件水平考試軟件設(shè)計師重點難點輔導(dǎo)(7)

字號:

2010軟件水平考試軟件設(shè)計師重點難點輔導(dǎo)(7)

    1 數(shù)據(jù)庫管理系統(tǒng)(DBMS)
    數(shù)據(jù)庫管理系統(tǒng)(DBMS)是指DBS中對數(shù)據(jù)進(jìn)行管理的軟件系統(tǒng),它是DBS的核心成分。DBS中所有與數(shù)據(jù)庫打交道的操作,包括建庫、查詢、更新及數(shù)據(jù)控制,都是通過DBMS進(jìn)行的。數(shù)據(jù)庫管理系統(tǒng)總是基于某種數(shù)據(jù)庫模型,可分為網(wǎng)狀型、層次型、關(guān)系型和面向?qū)ο笮虳BMS。
    數(shù)據(jù)庫管理系統(tǒng)的主要目標(biāo):把數(shù)據(jù)作為可管理的資源處理。
    數(shù)據(jù)庫管理系統(tǒng)的5個重要功能:
    ◆數(shù)據(jù)庫的定義功能:DBMS提供數(shù)據(jù)定義語言(DDL)定義數(shù)據(jù)庫的3級結(jié)構(gòu),包括外模式、概念模式、內(nèi)模式及其相互之間的映象,定義數(shù)據(jù)的完整性約束、保密限制等條件。因此在DBMS中包括DDL的編譯程序。
    ◆數(shù)據(jù)庫的操縱功能:提供數(shù)據(jù)操縱語言(DML)實現(xiàn)對數(shù)據(jù)的操作。有4種基本操作:檢索(查詢)、插入、刪除、修改。在DBMS中包括DML的編譯程序或解釋程序。
    ◆數(shù)據(jù)庫的保護(hù)功能:DBMS對數(shù)據(jù)庫的保護(hù)主要通過4個子系統(tǒng):
    A.數(shù)據(jù)庫恢復(fù)(在數(shù)據(jù)庫被破壞或數(shù)據(jù)不正確時,系統(tǒng)有能力把數(shù)據(jù)庫恢復(fù)到近某個正確的狀態(tài)
    B.數(shù)據(jù)完整性控制(保證數(shù)據(jù)庫中數(shù)據(jù)及語義的正確性和有效性,防止任何對數(shù)據(jù)錯誤的操作)
    C.多用戶環(huán)境下的并發(fā)控制。
    D.數(shù)據(jù)安全性控制(防止未被授權(quán)的用戶蓄謀或無意地存取數(shù)據(jù)庫中的數(shù)據(jù),以免數(shù)據(jù)的泄露或破壞)。
    ◆數(shù)據(jù)庫的維護(hù)功能:這部分包括數(shù)據(jù)庫的初始數(shù)據(jù)載入、轉(zhuǎn)換功能、存儲功能、數(shù)據(jù)庫的改組、性能監(jiān)視功能。
    ◆數(shù)據(jù)字典(DD):DD管理數(shù)據(jù)庫3級結(jié)構(gòu)的定義。對于數(shù)據(jù)庫的操作都要通過查閱DD才能進(jìn)行?,F(xiàn)在有的大型系統(tǒng)中,把DD單獨抽出來自成一個系統(tǒng),成為一個系統(tǒng)工具,使得DD成為一個比DBMS更高級的用戶與數(shù)據(jù)庫之間的接口。
    要注意的是:應(yīng)用程序并不屬于DBMS的范圍。應(yīng)用程序是用主語言和DML編寫的,程序中的DML語句由DBMS執(zhí)行,而其余部分仍由主語言編譯程序完成。
    數(shù)據(jù)庫系統(tǒng)(DBS)
    數(shù)據(jù)庫系統(tǒng)是一個復(fù)雜的系統(tǒng),它是采用了數(shù)據(jù)庫技術(shù)的計算機系統(tǒng)。因此,它不僅僅是一組對數(shù)據(jù)進(jìn)行管理的軟件(即DBMS),也不僅僅是一個數(shù)據(jù)庫。它是一個實際可運行的、按照數(shù)據(jù)庫方法存儲、維護(hù)和向應(yīng)用系統(tǒng)提供數(shù)據(jù)支持的系統(tǒng)。它是存儲介質(zhì)、處理對象和管理系統(tǒng)的集合體,由數(shù)據(jù)庫DB、硬件支持系統(tǒng)、軟件支持系統(tǒng)和數(shù)據(jù)庫管理員DBA這四部分組成。
    2 SQL語句
    ◆基本表的定義可用“CREATE TABLE”語句實現(xiàn),增加屬性可以用ALTER...ADD...”語句,刪除屬性可以用“ALTER...DROP...”語句;刪除已存在的表可用“DROP TABLE...”語句。
    ◆視圖的定義和撤消
    ◆索引的定義和撤銷
    ◆SELECT 查詢語句
    ◆DELETE刪除語句
    ◆INSERT插入語句
    ◆uPDATE語句
    3 關(guān)系運算
    專門的關(guān)系運算包括選擇、投影、連接、除等。
    ⒈選擇(Selection)
    選擇又稱為限制(Restriction)。它是在關(guān)系R中選擇滿足給定條件的諸元組,記作:
    σF(R) = {t|t∈R ∧ F(t)='真'}
    其中F表示選擇條件,它是一個邏輯表達(dá)式,取邏輯值‘真’或‘假’。
    邏輯表達(dá)式F的基本形式為:
    X1 θ Y1 [ φ X2 θ Y2 ]
    θ表示比較運算符,它可以是>、≥、<、≤、=或≠。X1、Y1等是屬性名或常量或簡單函數(shù)。屬性名也可以用它的序號來代替。φ表示邏輯運算符,它可以是僼、∧或∨。[ ]表示任選項,即[ ]中的部分可以要也可以不要,...表示上述格式可以重復(fù)下去。
    因此選擇運算實際上是從關(guān)系R中選取使邏輯表達(dá)式F為真的元組。這是從行的角度進(jìn)行的運算。
    舉例
    設(shè)有一個學(xué)生-課程關(guān)系數(shù)據(jù)庫,包括學(xué)生關(guān)系Student、課程關(guān)系Course和選修關(guān)系SC。下面的許多例子將對這三個關(guān)系進(jìn)行運算。
    例1 查詢信息系(IS系)全體學(xué)生
    σSdept='IS'(Student) 或 σ5='IS'(Student)
    例2 查詢年齡小于20歲的元組
    σSage<20(Student)
    或σ4<20(Student) 。
    ⒉ 投影(Projection)
    關(guān)系R上的投影是從R中選擇出若干屬性列組成新的關(guān)系。記作:
    ΠA(R) = { t[A] | t∈R }
    其中A為R中的屬性列。
    舉例
    例3 查詢學(xué)生關(guān)系Student在學(xué)生姓名和所在系兩個屬性上的投影:
    ΠSname,Sdept(Student)
    或
    Π2,5(Student)
    結(jié)果如圖2-7(a)。
    投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。
    例4 查詢學(xué)生關(guān)系Student中都有哪些系,即查詢學(xué)生關(guān)系Student在所在系屬性上的投影
    ΠSdept(Student)
    投影之后不僅取消了原關(guān)系中的某些列,而且還可能取消某些元組,因為取消了某些屬性列后,就可能出現(xiàn)重復(fù)行,應(yīng)取消這些完全相同的行。
    ⒊ 連接(Join)
    連接也稱為θ連接。它是從兩個關(guān)系的笛卡爾積中選取屬性間滿足一定條件的元組。記作:
    其中A和B分別為R和S上度數(shù)相等且可比的屬性組。θ是比較運算符。連接運算從R和S的笛卡爾積R×S中選取(R關(guān)系)在A屬性組上的值與(S關(guān)系)在B屬性組上值滿足比較關(guān)系θ的元組。
    連接運算中有兩種為重要也為常用的連接,一種是等值連接(equi-join),另一種是自然連接(Natural join)。
    θ為“=”的連接運算稱為等值連接。它是從關(guān)系R與S的笛卡爾積中選取A、B屬性值相等的那些元組。即等值連接為:
    自然連接(Natural join)是一種特殊的等值連接,它要求兩個關(guān)系中進(jìn)行比較的分量必須是相同的屬性組,并且要在結(jié)果中把重復(fù)的屬性去掉。即若R和S具有相同的屬性組B,則自然連接可記作:
    一般的連接操作是從行的角度進(jìn)行運算。但自然連接還需要取消了重復(fù)列,所以是同時從行和列的角度進(jìn)行運算。
    4. 除(Division)
    給定關(guān)系R(X,Y)和S(Y,Z),其中X、Y、Z為屬性組。R中的Y與S中的Y&127;可以有不同的屬性名,但必須出自相同的域集。R與S的除運算得到一個新的關(guān)系P(X),P是R中滿足下列條件的元組在X屬性列上的投影:元組在X上分量值x的象集Yx包含S在Y上投影的集合。記作:
    其中Yx為x在R中的象集,x=tr[X]。
    舉例
    例6 設(shè)關(guān)系R、S分別為圖2-9中的(a)和(b),R÷S的結(jié)果為圖2-9(c)。
    在關(guān)系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}。