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