【文章內(nèi)容簡(jiǎn)介】
型是任何關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)( RDBMS)的基礎(chǔ)。一個(gè)關(guān)系模型有二個(gè)核心組件:對(duì)象 或關(guān)系的集合,作用于對(duì)象或關(guān)系上的操作,以及數(shù)據(jù)完整性規(guī)則。換句話說,關(guān)系數(shù)據(jù)庫(kù)有一個(gè) 存儲(chǔ) 數(shù)據(jù)的地方,一種創(chuàng)建和檢索數(shù)據(jù)的方法,以及一種確認(rèn)數(shù)據(jù)的邏輯一致性的方法。 一個(gè)關(guān)系數(shù)據(jù)庫(kù)使用關(guān)系或二維表來存儲(chǔ)支持某個(gè)事物所需的信息。讓我們了解一下一個(gè)傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的基本組件并目學(xué)習(xí)如何設(shè)計(jì)一個(gè)關(guān)系數(shù)據(jù)庫(kù)。一旦你對(duì)于行、列、表和關(guān)聯(lián)是什 么有了深刻理解,你就能夠充分發(fā)揮關(guān)系數(shù)據(jù)庫(kù)的強(qiáng)大功能。 表,行和列 在關(guān)系數(shù)據(jù)庫(kù)中,一個(gè)表(或者說一個(gè)關(guān)系)是一個(gè)用于保存相關(guān)信息的二維結(jié)構(gòu)。一個(gè)數(shù)據(jù)庫(kù)由一個(gè)或者多個(gè)相關(guān)聯(lián)的表組成。 注意:不要混淆了關(guān)系和關(guān)聯(lián)。一個(gè)關(guān)系實(shí)際上是一個(gè)表,而一個(gè)關(guān)聯(lián)指的是一種連接、結(jié)合或聯(lián)合兩個(gè)表的方式。 表中的一行是一種事物的集合或?qū)嵗?,比如一個(gè)員工或發(fā)票上的一項(xiàng)。表中的一列包含了一類信息;而且行列交叉點(diǎn)上的數(shù)據(jù),字段,即是能夠用數(shù)據(jù)庫(kù)查詢語言檢索到的最小片信息。舉個(gè)例子來說,一個(gè)員工信息表可能有一個(gè)“名字”列,列中就包含所 有員工的名字。數(shù)據(jù)是通過對(duì)行、列進(jìn)行過濾而從表中檢索出來的。 主碼、數(shù)據(jù)類型和外碼 本篇文章均以假設(shè)的斯科特史密斯的工廠為例,他是數(shù)據(jù)庫(kù)的建立者和企業(yè)的主辦人。他剛開辦了一個(gè)飾品公司并目想要使用關(guān)系數(shù)據(jù)庫(kù)的幾項(xiàng)基本功能來管理 人力資源 部門。 重慶理工 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) (論文 )外文文獻(xiàn)翻譯 9 關(guān)系:用來保存相關(guān)信息的一個(gè)二維結(jié)構(gòu)(也就是表)。 注意:大多數(shù)斯科特 的雇員都是雇自過去的從業(yè)者,他們中有些人在這個(gè)領(lǐng)域己經(jīng)有 20 年的經(jīng)驗(yàn)了。出于雇用的目的,斯科特同意在新數(shù)據(jù)庫(kù)中維持新進(jìn)員工最初的雇傭日期。 行:在一個(gè)數(shù)據(jù)庫(kù)表中的一組單數(shù)據(jù)或多數(shù)據(jù)元素,用于描述一個(gè)人、地方或事物。 列:列是數(shù)據(jù)庫(kù)表的組件,它包含所有行中同名和同類型的所有數(shù)據(jù)。 你會(huì)在下面章節(jié)學(xué)到如何設(shè)計(jì)數(shù)據(jù)庫(kù),現(xiàn)在讓我們假設(shè)數(shù)據(jù)庫(kù)大部分己經(jīng)設(shè)計(jì)完成并且有一些表需要被執(zhí)行。斯科特創(chuàng)建了 EMP 表來保存基本的員工信息,就像這樣: 你可能注意到傭金列和管理人列中有一些單元格中沒有值;它們是空值。一個(gè)關(guān)系數(shù)據(jù)庫(kù)能夠規(guī)定列中的一個(gè)單元格是否為空。如此,可以明確那些非銷售部的員工傭金單元為空。同樣也明確了公司董事長(zhǎng)的管理人單元為空,因?yàn)檫@個(gè)員工不需要向任何人匯報(bào)工作。 單元格:是數(shù)據(jù)庫(kù)查詢語言所能夠檢索到的最小片信息。一個(gè)單元格就是一個(gè)數(shù)據(jù)庫(kù)表的行和列交叉形成的。 另一方面,沒有哪個(gè)員工的員工編號(hào)單元為空。公司總是希望為每個(gè)員工分配一個(gè)員工號(hào) ,并目這個(gè)號(hào)碼必須是每個(gè)員工都不同的。關(guān)系數(shù)據(jù)庫(kù)的一個(gè)特性能夠確定某列的鍵入值必須為單值。如此,員工編號(hào)列便是這個(gè)表的主碼。 主碼:主碼即是表中的一列(或多列),使每一行能夠區(qū)別于同表中的其他行。 重慶理工 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) (論文 )外文文獻(xiàn)翻譯 10 留意一下 EMP 表中 存儲(chǔ) 的不同數(shù)據(jù)類型:數(shù)值型,字符型或字母型,以及日期型。 如你所想,部門成員列保存的是員工所在部門的編號(hào)。但是你如何知道 哪個(gè)部門名稱對(duì)應(yīng)哪個(gè)部門編號(hào)呢?斯科特建立了 DEPT 表來具體描述 EMP 表中提到的部門編號(hào)的情況。 EMP表中的部門編號(hào)列同 DEPT 表中的部門編號(hào)列有著相同的值。既然如此, EMP 表中的部門編號(hào)列便被看作是與 DEPT 表中相同列對(duì)應(yīng)的外碼。 外碼加強(qiáng)了關(guān)系數(shù)據(jù)庫(kù)中參考完整性的概念。參考完整性的概念不只可以阻止無效的部門編號(hào)被插入 EMP 表中,而且在某部門仍有員工的情況下,可以防止 DEPT 表中該部門的信息被刪除。 外碼:表中的一列(或多列),它的值來自于其他表的主碼列或單值列。一個(gè)外碼有助于確定表中數(shù)據(jù)的完整性。 參考完整性:是關(guān)系數(shù)據(jù)庫(kù)用來加強(qiáng)表間一對(duì)多關(guān)聯(lián)的一種方式。 數(shù)據(jù)建模 在斯科特于數(shù)據(jù)庫(kù)中創(chuàng)建真實(shí)表之前,他要經(jīng)過一個(gè)稱作數(shù)據(jù)建模的過程。在這個(gè)過程中,數(shù)據(jù)庫(kù)創(chuàng)建者定義和填寫數(shù)據(jù)庫(kù)中所有表。有一種為數(shù)據(jù)庫(kù)建模的方式叫作 ERA,它可以表示出實(shí)體、實(shí)體間的關(guān)聯(lián)和實(shí)體的屬性。數(shù)據(jù)庫(kù)設(shè)計(jì)者使用一個(gè)能夠支持實(shí)體、實(shí)體屬性和實(shí)體間關(guān)聯(lián)的應(yīng)用程序 。通常,一個(gè)實(shí)體對(duì)應(yīng)數(shù)據(jù)庫(kù)中的一個(gè)表,而實(shí)體的屬性對(duì)應(yīng)于表中的列。 數(shù)據(jù)建模:一個(gè)定義實(shí)體、實(shí)體屬性和實(shí)體間關(guān)聯(lián)的過程,從而為建立物理數(shù)據(jù)庫(kù)做準(zhǔn)備。 數(shù)據(jù)建模過程包括定義實(shí)體、定義實(shí)體間關(guān)聯(lián)以及定義每個(gè)實(shí)體重慶理工 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) (論文 )外文文獻(xiàn)翻譯 11 的屬性的過程。一旦一個(gè)周期完成,就需要不斷重復(fù)直到設(shè)計(jì)者抓住了重點(diǎn),足以開始建立數(shù)據(jù)庫(kù)。讓我們進(jìn)一步了解為數(shù)據(jù)庫(kù)建模過程的步驟。 定義實(shí)體 首先,設(shè)計(jì)者確定數(shù)據(jù)庫(kù)應(yīng)用程序范圍內(nèi)的所有實(shí)體。實(shí)體是人、地方或事物,它們對(duì)于整個(gè)團(tuán)體是重要的且需要被記錄在數(shù)據(jù)庫(kù)中。實(shí)體將被巧妙的轉(zhuǎn)化為數(shù)據(jù)表。比如,在第一版斯科特 飾品公司數(shù)據(jù)庫(kù)中,他定義了四個(gè)實(shí)體:?jiǎn)T工、部門、工資水平和獎(jiǎng)金。它們將稱為 EMP(員工)表, DEPT(部門)表, SALGRADE(工資水平)表和 BONUS(獎(jiǎng)金)表。 定義實(shí)體間的關(guān)聯(lián) 一旦定義了實(shí)體,設(shè)計(jì)者就能夠繼續(xù)定義每個(gè)實(shí)體間是如何關(guān)聯(lián)的。通常,設(shè)計(jì)者通常將每個(gè)實(shí)體同其他實(shí)體配對(duì),并目考慮:“兩者之間是否存在關(guān)聯(lián)呢?”實(shí)體間的某些關(guān)聯(lián)是明顯的,某些不是。 在飾品公司數(shù)據(jù)庫(kù)中,員工實(shí)體和部門實(shí)體間極可能存在關(guān)聯(lián),而依據(jù)事物間的關(guān)系原則,部門實(shí)體跟工資水平實(shí)體間似乎就沒有關(guān)聯(lián)了。如果事物間的關(guān)系原則是用來 約束某個(gè)部門的工資水平的,就可能需要一個(gè)新的實(shí)體來說明工資水平和部門之間的關(guān)聯(lián)。這個(gè)實(shí)體被稱作關(guān)系表或交表,其中包含工資水平和部門之間的有效聯(lián)合。 關(guān)系表:是一個(gè)數(shù)據(jù)庫(kù)表,其中保存著另外兩個(gè)表的行(記錄)間的有效結(jié)合,并且通常強(qiáng)調(diào)了事物間的關(guān)系原則。關(guān)聯(lián)表處理的是一個(gè)多對(duì)多關(guān)聯(lián)。 通常,關(guān)系數(shù)據(jù)庫(kù)間有二種關(guān)聯(lián)方式: 一對(duì)多關(guān)聯(lián):最常見的關(guān)聯(lián)是一對(duì)多關(guān)聯(lián)。意思是對(duì)于每個(gè)給出的現(xiàn)有實(shí)體(即父實(shí)體)都有一個(gè)或多個(gè)現(xiàn)有的另一個(gè)實(shí)體(即子實(shí)體)與之相關(guān)聯(lián)。舉個(gè)例子來說,在飾品公司數(shù)據(jù)庫(kù)中,部門實(shí)體是一個(gè)父實(shí)體,而每個(gè) 部門中,都有一個(gè)或多個(gè)員工屬于該部門。這樣,部門實(shí)體和員工實(shí)體間的關(guān)聯(lián)就是一對(duì)多關(guān)聯(lián)。 一對(duì)一關(guān)聯(lián):在一個(gè)一對(duì)一關(guān)聯(lián)中,表中的一行只關(guān)聯(lián)另一個(gè)表重慶理工 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) (論文 )外文文獻(xiàn)翻譯 12 中的一行甚至 0 行。這種關(guān)聯(lián)類型通常用于子類型數(shù)據(jù)中。例如,一個(gè)員工表可能保存了所有員工的信息,而全職表、兼職表和承包人表則分別保存全職員工、兼職員工和承包人的信息。這些實(shí)體被認(rèn)為是員工表的子表,并目同員工表維持一對(duì)一關(guān)聯(lián)。這種關(guān)系不像一對(duì)多關(guān)聯(lián)那么常見,因?yàn)槿绻粋€(gè)實(shí)體與另一個(gè)實(shí)體總有對(duì)應(yīng)行,在大多數(shù)情況下,兩個(gè)實(shí)體中的屬性只在一個(gè)實(shí)體內(nèi)出現(xiàn)就可以了。 多對(duì)多關(guān)聯(lián): 在多對(duì)多關(guān)聯(lián)中,表的一行可能對(duì)應(yīng)另一個(gè)表的許多行,反之亦然。通常,當(dāng)這些關(guān)聯(lián)在數(shù)據(jù)庫(kù)中被執(zhí)行時(shí),往往再定義第三個(gè)實(shí)體用來保存前兩個(gè)實(shí)體間的所有關(guān)聯(lián)。例如,在一個(gè)學(xué)籍注冊(cè)數(shù)據(jù)庫(kù)中,學(xué)生表與班級(jí)表之間有一個(gè)多對(duì)多關(guān)聯(lián) —— 一個(gè)學(xué)生可能聽一門或多門課程,并目一個(gè)班級(jí)也可能有一個(gè)或多個(gè)學(xué)生。而學(xué)生 _班級(jí)關(guān)系表中就包含了學(xué)生和班級(jí)之間的關(guān)系,以表明哪個(gè)學(xué)生在哪個(gè)班。 指定實(shí)體屬性 一旦設(shè)計(jì)者定義了實(shí)體間關(guān)聯(lián),下一步就是去指定每個(gè)實(shí)體的屬性。這是實(shí)現(xiàn)列的使用,如右圖所示由工資水平實(shí)體所建立的工資水平表。 重復(fù)步驟:我們?nèi)匀辉谠? 在定義了實(shí)體、關(guān)聯(lián)以及屬性之后,設(shè)計(jì)者往往要多重復(fù)幾次數(shù)據(jù)建模過程。當(dāng)我們?cè)诨仡欔P(guān)聯(lián)時(shí),就會(huì)發(fā)現(xiàn)需要建立新的實(shí)體。比如,當(dāng)討論飾品庫(kù)存表和與它相關(guān)的客戶訂單時(shí),就會(huì)發(fā)現(xiàn)需要制定一個(gè)送貨約束表。 一旦設(shè)計(jì)過程完成,下面將要建立實(shí)際的數(shù)據(jù)庫(kù)表。邏輯數(shù)據(jù)庫(kù)重慶理工 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) (論文 )外文文獻(xiàn)翻譯 13 的設(shè)計(jì)過程不會(huì)牽涉實(shí)際執(zhí)行中的問題。然而,一旦設(shè)計(jì)進(jìn)入到實(shí)際的運(yùn)作,數(shù) 據(jù)庫(kù)管理員就會(huì)很快讓設(shè)計(jì)者從理想回到現(xiàn)實(shí)中來。結(jié)果,設(shè)計(jì)就可能需要再次構(gòu)想以求得理想的數(shù)據(jù)庫(kù)存運(yùn)行與預(yù)算和進(jìn)度之間的平衡。 Database Manage me nt Syste m Source: Database and Netw ork Journal Author: David Anderson You know that a data is a collection of logically related data elements that may be structured in various w a ys to meet the multiple processing and retrieval needs of anizations and individuals. There’s nothing new about data baseearly ones were chiseled in stone, penned on scrolls, and w ritten on index cards. But now database are monly recorded on magi cally media, and puter programs are required to perform the necessary storage and retrieval operations. The system software package that handles the difficult tasks associated w ith created, accessing, and maintaining database records is in a DBMS package establish an interface between the database itself and the users of the database. (These users may be applications programmers, managers and others with information needs, and various OS programmers.) A DBMS can anize, process, and present selected da ta elements from the database. This capability enables decision makers to search. Probe, and query data contents in order to extract answ ers to nonrecurring and unplanned questions that aren’t available in regular reports. These questions might initially b e vague and/or poorly defined, but people can “browse” through the database until they have the needed information. In short, the DBMS will “manage” the stored data items and assemble the needed items from the mo n database in response to 重慶理工 大學(xué) 2021 屆本科生畢業(yè)設(shè)計(jì) (論文 )外文文獻(xiàn)翻譯 14 the queries of those who aren’t programmers. In a fileoriented system, users needing special information may municate their needs to a programmers, w ho, w hen time permits, will information. The availability of a DBMS, how ever, offers users a much faster alternative munications patch (see figure). Special, direct, and other file processing approaches ate used to anize and structure data in single files. But a DBMS is able to integrate data elements from several files to answer specific user inquiries fir information. This means that the DBMS is able to structure and tie together the logically related data from several large files. Logical structures. Identifying these logical relationships is a job of the data adm