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