一、什么是關系數據庫
關系數據庫,是建立在關系(xi)數(shu)(shu)(shu)(shu)(shu)據(ju)庫模型基(ji)礎上的(de)數(shu)(shu)(shu)(shu)(shu)據(ju)庫,借助于集(ji)(ji)合代數(shu)(shu)(shu)(shu)(shu)等數(shu)(shu)(shu)(shu)(shu)學概念和方(fang)法來處理數(shu)(shu)(shu)(shu)(shu)據(ju)庫中(zhong)的(de)數(shu)(shu)(shu)(shu)(shu)據(ju),同時也是一個被(bei)組織(zhi)成一組擁(yong)有正式描(miao)述性的(de)表(biao)(biao)格,該形式的(de)表(biao)(biao)格作用的(de)實質是裝載著數(shu)(shu)(shu)(shu)(shu)據(ju)項的(de)特(te)殊收集(ji)(ji)體,這些(xie)表(biao)(biao)格中(zhong)的(de)數(shu)(shu)(shu)(shu)(shu)據(ju)能以(yi)許(xu)多不同的(de)方(fang)式被(bei)存取或重新召集(ji)(ji)而(er)不需要重新組織(zhi)數(shu)(shu)(shu)(shu)(shu)據(ju)庫表(biao)(biao)格。
關系(xi)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)庫(ku)(ku)的(de)(de)(de)(de)(de)定(ding)義(yi)(yi)造成(cheng)元(yuan)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)的(de)(de)(de)(de)(de)一(yi)(yi)(yi)張表(biao)格(ge)或造成(cheng)表(biao)格(ge)、列(lie)、范圍和(he)約束的(de)(de)(de)(de)(de)正式描述。每(mei)個(ge)表(biao)格(ge)(有(you)(you)時(shi)被稱為一(yi)(yi)(yi)個(ge)關系(xi))包含用列(lie)表(biao)示的(de)(de)(de)(de)(de)一(yi)(yi)(yi)個(ge)或更多的(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)種類(lei)。每(mei)行包含一(yi)(yi)(yi)個(ge)唯一(yi)(yi)(yi)的(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)實(shi)體(ti),這些數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)是(shi)(shi)被列(lie)定(ding)義(yi)(yi)的(de)(de)(de)(de)(de)種類(lei)。當創(chuang)造一(yi)(yi)(yi)個(ge)關系(xi)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)庫(ku)(ku)的(de)(de)(de)(de)(de)時(shi)候,你能(neng)定(ding)義(yi)(yi)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)列(lie)的(de)(de)(de)(de)(de)可(ke)能(neng)值的(de)(de)(de)(de)(de)范圍和(he)可(ke)能(neng)應(ying)用于那(nei)個(ge)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)值的(de)(de)(de)(de)(de)進一(yi)(yi)(yi)步(bu)約束。而SQL語(yu)言(yan)是(shi)(shi)標準用戶(hu)和(he)應(ying)用程序到關系(xi)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)庫(ku)(ku)的(de)(de)(de)(de)(de)接口(kou)。其優(you)勢是(shi)(shi)容易擴充,且在(zai)最(zui)初的(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)庫(ku)(ku)創(chuang)造之后,一(yi)(yi)(yi)個(ge)新的(de)(de)(de)(de)(de)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)種類(lei)能(neng)被添加而不需要(yao)修改所有(you)(you)的(de)(de)(de)(de)(de)現有(you)(you)應(ying)用軟件(jian)。主流的(de)(de)(de)(de)(de)關系(xi)數(shu)(shu)(shu)(shu)(shu)據(ju)(ju)(ju)庫(ku)(ku)有(you)(you)oracle、db2、sqlserver、sybase、mysql等。
二、關系數據庫的模型結構是什么
1、單一的數據結構----關系(表文件)。關系數據庫的(de)表(biao)(biao)采用二維(wei)表(biao)(biao)格來存儲數據,是一(yi)種按行與列排列的(de)具(ju)有相關信息的(de)邏輯組,它類似于Excel工作表(biao)(biao)。一(yi)個數據庫(ku)可以包含任意多個數據表(biao)(biao)。
在用戶看來,一(yi)個關系模型(xing)的邏輯(ji)結構(gou)是(shi)一(yi)張二維表(biao),由行和列組成。這個二維表(biao)就叫關系,通俗地(di)說(shuo),一(yi)個關系對(dui)應一(yi)張表(biao)。
2、元組(記錄(lu))。表中的一行即為(wei)一個元組,或稱為(wei)一條記錄(lu)。
3、屬(shu)性(字(zi)(zi)(zi)(zi)段(duan)(duan))。數(shu)(shu)據(ju)(ju)表(biao)中(zhong)的(de)(de)每一列稱為一個字(zi)(zi)(zi)(zi)段(duan)(duan),表(biao)是由其包含的(de)(de)各種(zhong)字(zi)(zi)(zi)(zi)段(duan)(duan)定義的(de)(de),每個字(zi)(zi)(zi)(zi)段(duan)(duan)描述了(le)它(ta)所含有的(de)(de)數(shu)(shu)據(ju)(ju)的(de)(de)意(yi)義,數(shu)(shu)據(ju)(ju)表(biao)的(de)(de)設計(ji)實際上就是對(dui)字(zi)(zi)(zi)(zi)段(duan)(duan)的(de)(de)設計(ji)。創(chuang)建數(shu)(shu)據(ju)(ju)表(biao)時,為每個字(zi)(zi)(zi)(zi)段(duan)(duan)分配一個數(shu)(shu)據(ju)(ju)類型,定義它(ta)們的(de)(de)數(shu)(shu)據(ju)(ju)長度和(he)其他屬(shu)性。字(zi)(zi)(zi)(zi)段(duan)(duan)可以包含各種(zhong)字(zi)(zi)(zi)(zi)符、數(shu)(shu)字(zi)(zi)(zi)(zi)、甚至圖(tu)形。如錯誤!未找到引(yin)用源。
4、屬性(xing)值(zhi)。行和列的交叉位置(zhi)表示某個屬性(xing)值(zhi),如“數據庫原理”就是(shi)課程名(ming)稱的屬性(xing)值(zhi)。
5、主(zhu)碼。主(zhu)碼(也(ye)稱(cheng)主(zhu)鍵或(huo)主(zhu)關(guan)鍵字(zi)(zi)(zi)),是表(biao)(biao)中用(yong)(yong)于唯一(yi)確(que)(que)定一(yi)個(ge)元組的(de)(de)數據。關(guan)鍵字(zi)(zi)(zi)用(yong)(yong)來確(que)(que)保表(biao)(biao)中記(ji)錄(lu)的(de)(de)唯一(yi)性,可以是一(yi)個(ge)字(zi)(zi)(zi)段或(huo)多個(ge)字(zi)(zi)(zi)段,常(chang)用(yong)(yong)作(zuo)一(yi)個(ge)表(biao)(biao)的(de)(de)索引(yin)(yin)字(zi)(zi)(zi)段。每條記(ji)錄(lu)的(de)(de)關(guan)鍵字(zi)(zi)(zi)都是不同的(de)(de),因(yin)而可以唯一(yi)地(di)標識一(yi)個(ge)記(ji)錄(lu),關(guan)鍵字(zi)(zi)(zi)也(ye)稱(cheng)為主(zhu)關(guan)鍵字(zi)(zi)(zi),或(huo)簡(jian)稱(cheng)主(zhu)鍵。如錯誤(wu)!未(wei)找到引(yin)(yin)用(yong)(yong)源。
6、域。屬性的(de)取值范(fan)圍。
7、關(guan)(guan)(guan)(guan)系(xi)(xi)模式。關(guan)(guan)(guan)(guan)系(xi)(xi)的(de)描(miao)述稱為關(guan)(guan)(guan)(guan)系(xi)(xi)模式。對關(guan)(guan)(guan)(guan)系(xi)(xi)的(de)描(miao)述,一般表示(shi)為:關(guan)(guan)(guan)(guan)系(xi)(xi)名(ming)(屬性(xing)(xing)1,屬性(xing)(xing)2.....屬性(xing)(xing)n)。例如上(shang)面的(de)關(guan)(guan)(guan)(guan)系(xi)(xi)可描(miao)述為:課(ke)程(cheng)(課(ke)程(cheng)號、課(ke)程(cheng)名(ming)稱、學分(fen)、任(ren)課(ke)老師(shi))。
但是關(guan)系模型的(de)這種(zhong)(zhong)簡單的(de)數據結構能夠表達豐富的(de)語義(yi),描(miao)述出現實世界的(de)實體以及實體間(jian)的(de)各種(zhong)(zhong)關(guan)系。