第三部分 - 數(shù)據(jù)庫分析與設(shè)計 - 6 - 進一步規(guī)范化

前面介紹了規(guī)范化的技術(shù)以及屬性間的函數(shù)依賴的概念,還講述了利用規(guī)范化技術(shù)支持數(shù)據(jù)庫設(shè)計的好處,以及如何將樣本表格中的屬性規(guī)范化為第一范式(1NF)、第二范式(2NF),最終規(guī)范化為第三范式(3NF),等等。下面將繼續(xù)討論 3NF 以上的范式。

1. 函數(shù)依賴的進一步討論

與規(guī)范化密切相關(guān)的概念之一就是 函數(shù)依賴,函數(shù)依賴定義了屬性之間的聯(lián)系(Maier,1983)。之前已經(jīng)講述了這一概念,本篇將通過對函數(shù)依賴推導(dǎo)規(guī)則的討論,以更加形式化和理論化的方式繼續(xù)講述函數(shù)依賴。

1.1 函數(shù)依賴的推導(dǎo)規(guī)則

前文已經(jīng)定義了規(guī)范化時最常用到的函數(shù)依賴的特性。然而,即使我們僅僅關(guān)注那些左邊和右邊具有一對一的聯(lián)系、恒成立且右邊完全函數(shù)依賴與左邊的函數(shù)依賴,對于給定的關(guān)系來說,有所有滿足上述要求的函數(shù)依賴構(gòu)成的集合依然非常龐大,因此我們要找到一種方法,利用這種方法將該集合減小到一個易于處理的規(guī)模,這一點很重要。理論上,我們想要確定一個關(guān)系的函數(shù)依賴集(用 X 表示),X 要小于由該關(guān)系上成立的全部函數(shù)依賴構(gòu)成的集合(用 Y 表示),并且 Y 中的每一個函數(shù)依賴都能夠被 X 蘊涵。因此,如果我們支持了 X 中的函數(shù)依賴所定義的完整性約束,自然也就實現(xiàn)了 Y 中的函數(shù)依賴所定義的完整性約束。這種需求表明必須可以從一些函數(shù)依賴推導(dǎo)出另外一些函數(shù)依賴。例如,如果關(guān)系中存在函數(shù)依賴 A → B 和 B → C,則函數(shù)依賴 A → C 在該關(guān)系中也成立。A → C 就是一個前面介紹過的傳遞函數(shù)依賴的例子。

我們怎樣開始著手確定關(guān)系中這些有用的函數(shù)依賴呢?通常,數(shù)據(jù)庫設(shè)計人員首先確定那些語義上非常明顯的函數(shù)依賴;但是,經(jīng)常還會有大量的其他函數(shù)依賴的存在。事實上,在實際的數(shù)據(jù)庫項目中,想要確定所有可能的函數(shù)依賴基本上是不現(xiàn)實的。然而,在這一節(jié)里,我們的確是在討論一種幫助我們確定關(guān)系的所有函數(shù)依賴集和的方法,然后討論如何獲得一個能夠表示這個所有集的最小函數(shù)依賴集。

被某一函數(shù)依賴集 X 所蘊含的所有函數(shù)依賴的集合稱為 X 的 閉包,記為 X+。顯然,我們需要一組規(guī)則幫助我們從 X 計算出 X+。被稱為 Armstrong 公理的這套推導(dǎo)規(guī)則,規(guī)定了如何從已知的函數(shù)依賴推導(dǎo)出新的函數(shù)依賴(Armstron,1974)。為了便于討論,我們用 A、B 和 C 表示關(guān)系 R 的屬性子集。Armstrong 公理如下:

  1. 自反性(Reflexivity):若 B 是 A 的子集,則 A → B。
  2. 增廣性(Augmentation):若 A → B,則 A,C → B,C。
  3. 傳遞性(Transitivity):若 A → B 且 B → C 則 A → C。
  4. 自確定性(Self-determination):A → A。
  5. 分解性(Decomposition):若 A → B,C,則 A → B,A → C。
  6. 合并性(Union):若 A → B 且 A → C,則 A → B,C。
  7. 復(fù)合性(Composition):若 A → B,C → D,則 A,C → B,D。

上述前三條規(guī)則都可以利用函數(shù)依賴的概念直接證明。給定一個函數(shù)依賴的集合 X 后,利用這三條規(guī)則就可以推導(dǎo)出所有 X 所蘊涵的函數(shù)依賴,因此 Armstrong 的規(guī)則是 完備的。規(guī)則又是 有效的,因為所有不被 X 所蘊涵的函數(shù)依賴都不會被推導(dǎo)出來。也就是說,可以利用 Armstrong 的三條規(guī)則導(dǎo)出 X 的閉包 X+。

從上述前三條規(guī)則還能推導(dǎo)出后續(xù)的四條規(guī)則,利用這些規(guī)則可以簡化 X+ 的計算。在后四條規(guī)則中,D 也表示關(guān)系 R 的屬性的一個子集。

規(guī)則 1(自反性)和 規(guī)則 4(自確定性)表明一組屬性總能決定它的任意子集和它自身。因為用這兩個規(guī)則導(dǎo)出的函數(shù)依賴總是成立的,所以這些函數(shù)依賴是平庸的(trivial),如前所述,是我們不感興趣的、對規(guī)范化沒用的依賴。規(guī)則 2(增廣性)表明在依賴的左右兩邊同時增加一組相同的屬性后得到的依賴仍然是有效地依賴。規(guī)則 3(傳遞性)表明依賴是可以傳遞的。規(guī)則 5(分解性)表明去掉依賴右邊的一些屬性后,依賴仍然成立。重復(fù)使用這個規(guī)則,就可以將函數(shù)依賴 A → B,C,D 分解為一組函數(shù)依賴 A → B、A → C 和 A → D。而規(guī)則 6(合并性)表明反之亦然,即我們可以將函數(shù)依賴 A → B、A → C 和 A → D 合并為一個函數(shù)依賴 A → B,C,D。規(guī)則 7(復(fù)合性)比規(guī)則 6 更一般化,它表明可以將一組不相重疊的函數(shù)依賴合并成一個新的依賴。

在開始確定一個關(guān)系的函數(shù)依賴集合 F 時,通常我們會首先根據(jù)屬性的語義確定部分函數(shù)依賴。然后,應(yīng)用 Armstrong 公理(規(guī)則 1~3)推導(dǎo)出其他的函數(shù)依賴。推導(dǎo)這些函數(shù)依賴的一種系統(tǒng)化的方法是首先確定所有會在依賴的左邊出現(xiàn)的屬性組 A,然后確定所有依賴于 A 的屬性。這樣,對于每一組屬性 A,我們都可以確定一個屬性集 A+,A+ 是基于 F 被 A 函數(shù)決定的屬性的集合(A+ 被稱為 A 在 F 下的閉包(closure))。

1.2 最小函數(shù)依賴集

這一小節(jié)將介紹函數(shù)依賴的 等價 集合。如果函數(shù)依賴集 Y 的每一個函數(shù)依賴都屬于函數(shù)依賴集 X 的閉包 X+,就稱 Y 被 X 覆蓋,即 Y 中的每個依賴都能夠從 X 導(dǎo)出。如果函數(shù)依賴集 X 滿足下列條件 就稱 X 是最小函數(shù)依賴集。

  • X 中每個依賴的右邊都只包含單個屬性。
  • 對 X 中任意依賴 A → B,不存在 A 的一個真子集 C,使得用依賴 C → B 替換依賴 A → B 后得到的函數(shù)依賴集仍舊和 X 等價。
  • 從 X 中去掉任何依賴后的函數(shù)依賴集都與 X 不等價。

最小依賴集應(yīng)該是一種沒有冗余的標(biāo)準(zhǔn)形式。函數(shù)依賴集 X 的最小覆蓋是與 X 等價的最小依賴集 X_min。不幸的是,一個函數(shù)依賴集可能有幾個最小覆蓋。

2. Boyce-Codd 范式(BCNF)

上一篇討論了如何消除對主關(guān)鍵字的部分依賴和傳遞依賴。若關(guān)系上具有對主關(guān)鍵字的部分依賴和傳遞依賴則會產(chǎn)生更新異常。然而 2NF 和 3NF 前期定義并沒有考慮對其他候選關(guān)鍵字的部分依賴和傳遞依賴的存在。前面對 2NF 和 3NF 的一般化定義,即不允許存在任何對候選關(guān)鍵字的部分依賴和傳遞依賴。應(yīng)用 2NF 和 3NF 的一般化定義可以發(fā)現(xiàn),由于對候選關(guān)鍵字存在部分的傳遞依賴而產(chǎn)生的冗余。然而,即使增加了這些附加約束,在 3NF 的關(guān)系中仍有可能存在一些會引起冗余的依賴。3NF 的這一不足導(dǎo)致了另外一種更強的范式的出現(xiàn)——Boyce-Codd 范式(Codd,1974)。

Boyce-Codd 范式的定義

Boyce-Codd 范式是在考慮了關(guān)系中所有候選關(guān)鍵字上的函數(shù)依賴的基礎(chǔ)上設(shè)定的。盡管如此,同 前述的 3NF 的一般化定義相比較,BCNF 還添加了一些其他的約束。

Boyce-Codd 范式:當(dāng)且僅當(dāng)每個函數(shù)依賴的決定方都是候選關(guān)鍵字時,某一關(guān)系才是 BCNF 的。

為了驗證一個關(guān)系是否是 BCNF 的,我們首先要確定所有的決定方,然后在驗證他們是否都是候選關(guān)鍵字。回想一下決定方的定義:決定方就是一個或一組被其他屬性完全函數(shù)依賴的屬性。

3NF 和 BCNF 之間的區(qū)別表現(xiàn)在對于一個函數(shù)依賴 A → B,3NF 允許 B 是主關(guān)鍵字屬性且 A 不是候選關(guān)鍵字;但是,BCNF 卻要求在這個依賴中,A 必須是候選關(guān)鍵字。所以,Boyce-Codd 范式是增強的 3NF,每一個 BCNF 的關(guān)系也是 3NF 的,但是一個 3NF 的關(guān)系卻不一定是 BCNF 的。

可能會違反 BCNF 的情況有:

  • 關(guān)系中包含兩個(或多個)合成候選關(guān)鍵字。
  • 候選關(guān)鍵字互相重疊,通常至少都包含一個相同的屬性。

在接下來的示例中,我們將給出一種違反 BCNF 范式的情況,并說明如何將這個關(guān)系轉(zhuǎn)化為 BCNF 范式。這個實例給出了將 1NF 轉(zhuǎn)化為 BCNF 關(guān)系的過程。

例 6.2 Boyce-Codd 范式(BCNF)

看如下一張表,表中關(guān)系為 DreamHome 的員工與客戶進行會談的記錄。在會談那天,參與會談的員工被安排在一個指定的房間。但是,根據(jù)需要,在一個工作日里一個房間可能會被分配給多個員工。一個客戶僅在指定的日期參與一次會談,但有可能會在以后的日子進行其他的會談。

clientNo interviewDate interviewTime staffNo roomNo
CR76 13-May-14 10.30 SG5 G101
CR56 13-May-14 12.00 SG5 G101
CR74 13-May-14 12.00 SG37 G102
CR56 1-Jul-14 10.30 SG5 G102

關(guān)系 ClientInterview 有三個候選關(guān)鍵字:(clientNo,interviewDate),(staffNo, interview-Date,interviewTime)和(roomNo, interviewDate, interviewTime),所以關(guān)系 ClientInterview 有三個合成候選關(guān)鍵字,它們都包含了一個共同的屬性 interviewDate。我們選擇(clientNo,interviewDate)作為主關(guān)鍵字。關(guān)系 ClientInterview 的結(jié)構(gòu)如下所示:

ClientInterview (clientNo, interviewDate, interviewTime, staffNo, roomNo)

關(guān)系 ClientInterview 上成立的函數(shù)依賴如下所示:

fd1 clientNo, interviewDate                    →      interviewTime, staffNo, roomNo (主關(guān)鍵字)
fd1 staffNo, interviewDate, interviewTime      →      clientNo (候選關(guān)鍵字)
fd1 roomNo, interviewDate, interviewTime       →      staffNo, clientNo (候選關(guān)鍵字)
fd1 staffNo, interviewDate                     →      roomNo 

現(xiàn)在我們分析一下這些函數(shù)依賴以確定關(guān)系 ClientInterview 的范式。由于函數(shù)依賴 fd1、fd2、fd3 都是該關(guān)系的候選關(guān)鍵字,所以這些依賴都不會給 ClientInterview 帶來任何問題。唯一需要討論的函數(shù)依賴是(staffNo, interviewDate) → roomNo(fd4)。盡管(staffNo,interviewDate)不是關(guān)系 ClientInterview 的候選關(guān)鍵字,但是由于 roomNo 是候選關(guān)鍵字(roomNo,interviewDate,interviewTime)的一部分,因此 roomNo 是主屬性,所以這個函數(shù)依賴也是 3NF 所允許的。因為在主關(guān)鍵字(clientNo,interviewDate)上不存在部分依賴和傳遞依賴,并且函數(shù)依賴 fd4 也沒有破壞 3NF 的條件,所以關(guān)系 ClientInterview 是 3NF 的。

但是,這個關(guān)系卻不是 BCNF 的(一種增強的 3NF 范式)。因為決定方(staffNo, interviewDate)不是關(guān)系的候選關(guān)鍵字,而 BCNF 要求關(guān)系中所有的決定方都必須是候選關(guān)鍵字,所以關(guān)系 ClientInterview 可能會出現(xiàn)更新異常。例如,當(dāng)我們要改變員工 SG5 在 2005 年 5 月 31 日進行會談的房間編號時,就需要同時對兩個元組進行更新。如果只更新了一個元組的房間編號,就會導(dǎo)致數(shù)據(jù)庫的狀態(tài)不一致。

為了將關(guān)系 ClientInterview 轉(zhuǎn)化為 BCNF 范式,就必須消除不滿足 BCNF 條件的函數(shù)依賴,為此,可以建立兩個新的關(guān)系 Interview 和 staffRoom,如下表所示:

Interview

clientNo interviewDate interviewTime staffNo
CR76 13-May-14 10.30 SG5
CR56 13-May-14 12.00 SG5
CR74 13-May-14 12.00 SG37
CR56 1-Jul-14 10.30 SG5

staffRoom:

staffNo interviewDate roomNo
SG5 13-May-14 G101
SG37 13-May-14 G102
SG5 1-Jul-14 G102
Interview (clientNo, interviewDate, interviewTime, staffNo)
staffRoom (staffNo, interviewDate, roomNo)

如上所示,我們可以將任何不是 BCNF 的關(guān)系分解成 BCNF 的關(guān)系。但是這種分解的結(jié)果并非總是我們想要的 BCNF 關(guān)系,比如說,如果再分解過程中丟失了某個函數(shù)依賴(也就是說,決定方和由它決定的屬性被分配到了不同的關(guān)系中),其結(jié)果就并非我們所求。在這種情況下,也就很難實現(xiàn)該函數(shù)依賴,一個重要的約束也會因此而丟失。當(dāng)發(fā)生這種情況時,最好將規(guī)范化過程只進行到 3NF,而只將關(guān)系分解到 3NF 是不會丟失任何依賴的。注意,在例 6.2 中,當(dāng)我們將關(guān)系 ClientInterview 分解成兩個 BCNF 的關(guān)系時,就已經(jīng) “丟失” 了函數(shù)依賴:roomNo,interviewDate,interviewTime → staffNo,clientNo(fd3)。因為這個以來的決定方被分解到了不同的關(guān)系中。但是,還必須認識到,如果不消除函數(shù)依賴 staffNo,interviewDate → roomNo(fd4),那么關(guān)系 ClientInterview 中將會存在數(shù)據(jù)冗余。

在規(guī)范化關(guān)系 ClientInterview 時,是規(guī)范化到 3NF 好還是繼續(xù)規(guī)范化到 BCNF,主要考慮是由 fd4 導(dǎo)致的數(shù)據(jù)冗余產(chǎn)生的影響大還是由于 “丟失” fd3 造成的影響更大。例如,如果每個員工每天只與客戶進行一次會談,在這種情況下,關(guān)系 ClientInterview 上的函數(shù)依賴 fd4 的存在不會導(dǎo)致數(shù)據(jù)冗余,因此也就沒有必要將關(guān)系 ClientInterview 分解成兩個 BCNF 關(guān)系,即使分解,也沒有什么額外的用處。相反,如果每位員工每天都會多次與客戶進行會談,那么函數(shù)依賴 fd4 的存在勢必產(chǎn)生數(shù)據(jù)冗余,所以這時就要將 ClientInterview 規(guī)范化為 BCNF。然而,我們還應(yīng)該考慮丟失 fd3 的影響,即 fd3 是否傳達了關(guān)于客戶會談的一些重要信息,而且這些信息必須在結(jié)果關(guān)系中表現(xiàn)出來?對這個問題的回答可以幫助我們決定到底是保留所有的函數(shù)依賴還是消除數(shù)據(jù)冗余。

3. 規(guī)范化到 BCNF 的過程小節(jié)

4. 第四范式

盡管 BCNF 消除了由于函數(shù)依賴所帶來的異常,但是進一步的研究表明,另外一種依賴—— 多值依賴(Multi-Valued Dependency,MVD),也會導(dǎo)致數(shù)據(jù)冗余(Fagin,1977)。

4.1 多值依賴

由于第一范式不允許元組任一屬性的取值是值的集合,因此關(guān)系中就可能存在多值依賴。例如,如果某一關(guān)系有兩個多值屬性,為了保證關(guān)系中元祖的一致性,則其中一個屬性的每一種取值,都不得不重復(fù)另一個屬性的所有值。這種類型的約束就是多值依賴,多值依賴導(dǎo)致了數(shù)據(jù)冗余??紤]下表所示的關(guān)系 BranchStaff-Owner,該關(guān)系中包含了每個分公司(branchNo)的員工(sName)和業(yè)主(oName)。在這個例子中,假設(shè)每個員工的名字(sName)和每個業(yè)主的名字(oName)都是唯一的。

BranchStaffOwner:

branchNo sName oName
B003 Ann Beech Carol Farrel
B003 David Ford Carol Farrel
B003 Ann Beech Tina Murphy
B003 David Ford Tina Murphy

在本例中,員工 Ann Beech 和 David Ford 在分公司 B003 工作,業(yè)主 Carol Farrel 和 TinaMurphy 均是在分公司 B003 注冊的。然而,由于在某公司工作的員工與在某分公司注冊的業(yè)主之間沒有直接的聯(lián)系,因此需要創(chuàng)建將每個員工和業(yè)主關(guān)聯(lián)在一起的元組以保證關(guān)聯(lián)的一致性。關(guān)系 BranchStaffOwner 中的這種約束就是多值依賴,即 MVD 的存在是由于關(guān)系 BranchStaffOwner 中包含了兩個獨立的一對多關(guān)系。

多值依賴(Multi-Valued Dependency,MVD):表示關(guān)系中屬性(如 A、B 和 C)之間的依賴,對于 A 的每一種取值,B 和 C 都分別有一個值集合與之對應(yīng),并且 B、C 的取值都是相互獨立的。

屬性 A、B 和 C 之間的 MVD 用如下的標(biāo)記表示:
A ->> B
A ->> C

多值依賴又可以進一步分為 平凡的(trivial)非平凡的(nontrivial)。對于關(guān)系 R 中的多值依賴 A ->> B,如果(a)B 是 A 的子集,或者(b)A ∪ B = R,那么多值依賴 A ->> B就是平凡的,否則 A ->> B 就是非平凡的。平凡 MVD 并不對應(yīng)著關(guān)系中的任何約束,而一個非平凡的 MVD 則代表了關(guān)系上的一個約束。

在上述關(guān)系 BranchStaffOwner 包含兩個非平凡 MVD,即 branchNo ->> sName 和 branchNo ->> oName,而 branchNo 不是該關(guān)系的候選關(guān)鍵字。因此,關(guān)系 BranchStaffOwner 受這些非平凡 MVD 約束:為了保證屬性 sName 和 oName 之間關(guān)系的一致性,元組信息不得不重復(fù)。例如,如果要為分公司 B003 新增一位業(yè)主,為了保證關(guān)系的一致性就必須插入兩個新的元組,每個元組對應(yīng)著一名員工。這是一個由非平凡 MVD 的存在而引起的更新異常。很明顯,我們需要一種范式來排除這種像 BranchStaffOwner 的關(guān)系結(jié)構(gòu)。

4.2 第四范式的定義

第四范式(4NF):一個關(guān)系是 4NF 當(dāng)且僅當(dāng)對每一個非平凡多值依賴 A ->> B,A都是關(guān)系的候選關(guān)鍵字。

第四范式能夠防止關(guān)系中存在那些決定方不是關(guān)系候選關(guān)鍵字的非平凡 MVD(Fagin,1977)。規(guī)范非 4NF 關(guān)系需要消除關(guān)系中那些引發(fā)問題的多值依賴,這可以通過將產(chǎn)生多值依賴的屬性及其決定方的副本移到一個新的關(guān)系來中實現(xiàn)。

例如,將上述 BranchStaffOwner 分解為兩個關(guān)系::

BranchStaff:

branchNo sName
B003 Ann Beech
B003 David Ford

BranchOwner:

branchNo oName
B003 Carol Farrel
B003 Tina Murphy

這兩個關(guān)系都是 4NF 的,因為在關(guān)系 BranchStaff 中只存在平凡 MVD:branchNo ->> sName,而在關(guān)系 BranchOwner 中也只存在平凡 MVD:branchNO ->> oName。注意,由于 4NF 中沒有冗余,所以也就消除了潛在的更新異常。例如,如果為分公司 B003 新增一名業(yè)主,那么只需要在關(guān)系 BranchOwner 中增加一個元組。

5. 第五范式

無論何時講一個關(guān)系分解為兩個關(guān)系,結(jié)果關(guān)系總是要具有無損連接的特性。無損連接特性是指將分解后的結(jié)果關(guān)系重新連接起來就能生成原關(guān)系。盡管比較少見,但有的時候需要講一個關(guān)系分解為多個關(guān)系,這時就可以用連接依賴和第五范式來處理。下面簡要的講述無損連接依賴及其與第五范式的關(guān)系。

5.1 無損連接依賴

無損連接依賴:一種與分解有關(guān)的特性,該特性能夠確保在通過自然連接運算將分解后關(guān)系重新組合起來時,不會產(chǎn)生謬誤的元組。

在使用投影運算拆分關(guān)系時,這種分解方法可以很清楚的體現(xiàn)出無損連接依賴的特性。具體來說,就是我們在使用投影運算分解時要非常小心謹慎,要讓過程可逆,即還可以通過連接投影的結(jié)果關(guān)系來重構(gòu)原關(guān)系。由于這樣的分解保留了原關(guān)系中的所有數(shù)據(jù),并且沒有產(chǎn)生附加的謬誤元組,所以這樣的分解就被稱為 無損連接(也稱為無損耗或無附加連接)分解。例如,上一節(jié)中的 BranchStaffOwner 的分解就具有無損連接的特性。也就是說,可以通過對關(guān)系 BranchStaff 和 BranchOwner 進行自然連接運算來重構(gòu)最初的 BranchStaffOwner 關(guān)系。但是,有時候卻需要講一個關(guān)系無損連接額分解為兩個以上的關(guān)系(Aho et al,1979),這些情況就是無損連接依賴和第五范式(5NF)所要關(guān)注的。

5.2 第五范式的定義

第五范式(5NF):一個關(guān)系是 5NF 當(dāng)且僅當(dāng)對于關(guān)系 R 的每個連接依賴(R1,R2,... ,Rn),每個投影包含原關(guān)系的一個候選關(guān)鍵字。

第五范式(5NF)能防止關(guān)系中存在哪些所關(guān)聯(lián)投影不包含原關(guān)系的任意候選關(guān)鍵字的非平凡連接依賴(Fagin,1977)。不與候選關(guān)鍵字相關(guān)聯(lián)的非平凡連接依賴十分少見,因此通常 4NF 都是 5NF 的。

連接依賴(Join Dependency,JD):連接依賴是依賴的一種。對于關(guān)系 R 及其屬性的子集 A,B,...,Z,當(dāng)且僅當(dāng) R 的每一個合法的元組都與其在 A,B,...,Z 上的投影的連接結(jié)果相同時,稱關(guān)系 R 滿足 連接依賴。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 為企業(yè)設(shè)計數(shù)據(jù)庫時,主要目標(biāo)是正確的表示數(shù)據(jù)、數(shù)據(jù)之間的聯(lián)系以及與企業(yè)業(yè)務(wù)相關(guān)的數(shù)據(jù)約束。為了實現(xiàn)這個目標(biāo),我們可...
    板藍根plank閱讀 2,524評論 0 2
  • 數(shù)據(jù)字典 數(shù)據(jù)庫系統(tǒng)中存放三層結(jié)構(gòu)定義的數(shù)據(jù)庫稱為數(shù)據(jù)字典(DD),對數(shù)據(jù)庫的操作都要通過DD才能實現(xiàn)。DD系統(tǒng)中...
    panda_say閱讀 1,193評論 0 6
  • 關(guān)系數(shù)據(jù)理論 關(guān)系模型 定義R(U,D,DOM,F) 關(guān)系 R,它是符號化的元祖語義 一組屬性 U 屬性組 U 中...
    iOS_愛OS閱讀 2,159評論 0 0
  • 一、數(shù)據(jù)關(guān)系 關(guān)系數(shù)據(jù)庫可能存在的問題 1.數(shù)據(jù)冗余(必然存在,但應(yīng)該盡量少) 2.更新冗余 3.插入冗余 4.刪...
    一村之里正閱讀 2,374評論 0 3
  • 文/冬月之戀 181、這件令人揪心的事發(fā)生在高三下學(xué)期。那年中秋節(jié),女生寢室里班上其他的女生都放假回了家,只有她一...
    冬月之戀閱讀 2,398評論 2 12

友情鏈接更多精彩內(nèi)容