一、為什么使用數(shù)據(jù)庫?
與文件存儲(chǔ)系統(tǒng)作比較(操作存儲(chǔ)在硬盤各個(gè)盤符中的文件,這種我們平時(shí)使用電腦的方式就是文件存儲(chǔ)系統(tǒng))
- 數(shù)據(jù)被長(zhǎng)期的存儲(chǔ)在外存中,狀態(tài)穩(wěn)定(這一點(diǎn)雙方都一樣)
- 數(shù)據(jù)的邏輯結(jié)構(gòu)與物理結(jié)構(gòu)分離開了(例如在表面上看數(shù)據(jù)就是以二維表格的形式存儲(chǔ)抄瓦,而在底層是以其他的結(jié)構(gòu)進(jìn)行存儲(chǔ)的)
- 數(shù)據(jù)庫中的數(shù)據(jù)可以有目的地被多個(gè)應(yīng)用使用(這一點(diǎn)顯然使用文件系統(tǒng)是做不到的)
- 數(shù)據(jù)庫可以便捷和高效地進(jìn)行存取(尤其是查詢方面)
二、數(shù)據(jù)庫管理系統(tǒng) DBMS (Database Management System)
應(yīng)該把DBMS和數(shù)據(jù)庫本身這兩個(gè)概念分開陶冷,數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建并管理數(shù)據(jù)庫钙姊,我們平時(shí)使用的大型數(shù)據(jù)庫軟件其實(shí)就是DBMS,而DBMS本身并不是數(shù)據(jù)庫埂伦。
三煞额、關(guān)系型數(shù)據(jù)庫的大致結(jié)構(gòu):
從概念上來說,關(guān)系型數(shù)據(jù)庫是基于關(guān)系模型上實(shí)現(xiàn)的數(shù)據(jù)庫沾谜。形象來說立镶,一個(gè)關(guān)系型數(shù)據(jù)庫中包含若干個(gè)表,這些表之間存在各種的關(guān)系(例如外鍵關(guān)系等依賴的關(guān)系)类早,進(jìn)入到一個(gè)表內(nèi):
- 一個(gè)表由若干行組成
- 每一行可以稱為一條記錄或者一個(gè)元組
- 一個(gè)表是由若干個(gè)列組成的媚媒,每一個(gè)列都規(guī)定了列名和取值域以及各種約束。
- 一列可以稱為一個(gè)字段
- 每一個(gè)列都有一個(gè)域(domain)涩僻,每一個(gè)域規(guī)定了這個(gè)字段的取值范圍缭召。
具體結(jié)構(gòu)的示意如下圖:
四、數(shù)據(jù)的抽象等級(jí):
數(shù)據(jù)庫中有三種抽象等級(jí)逆日,這三種抽象等級(jí)組成了數(shù)據(jù)庫中很重要的概念嵌巷,也具有很強(qiáng)的現(xiàn)實(shí)意義。
由內(nèi)到外依次是: 物理層次 邏輯層次 視圖層次
數(shù)據(jù)的抽象等級(jí)對(duì)應(yīng)有了三級(jí)模式
如圖:
- 先說邏輯層次:邏輯層次就是我們所建立和修改的一個(gè)個(gè)表室抽,邏輯層次描述了表的內(nèi)部邏輯結(jié)構(gòu)和各個(gè)表之間的關(guān)系搪哪。例如現(xiàn)在有一個(gè)學(xué)生信息表,表中有學(xué)生的學(xué)號(hào)坪圾、姓名晓折、班級(jí)等信息惑朦,規(guī)定這些屬性的取值范圍和約束,那么這個(gè)就是表的內(nèi)部邏輯結(jié)構(gòu)漓概。例如現(xiàn)在又有一個(gè)學(xué)生成績(jī)表漾月,在規(guī)定了內(nèi)部邏輯結(jié)構(gòu)之后,又規(guī)定了學(xué)生成績(jī)表中的學(xué)生姓名必須參考學(xué)生信息表中的姓名字段胃珍,那么這就是兩個(gè)表之間的一個(gè)關(guān)系梁肿。綜合表的內(nèi)部邏輯結(jié)構(gòu)和表之間的關(guān)系就構(gòu)成了邏輯層次。
- 視圖層次:針對(duì)不同的用戶觅彰,為了安全性可以讓具有不同權(quán)限的用戶看到數(shù)據(jù)庫的一部分?jǐn)?shù)據(jù)吩蔑。而視圖層次是數(shù)據(jù)抽象的最高層次,這個(gè)層次描述了數(shù)據(jù)庫的一部分填抬。例如:一個(gè)學(xué)生訪問數(shù)據(jù)庫時(shí)烛芬,就看不到老師們的信息(例如工資),而老師們就可以蛀骇。視圖層次就是基于邏輯層次進(jìn)行一定的限制鸵闪。
- 物理層次:物理層次類似于底層的結(jié)構(gòu)蚌讼,例如一個(gè)表中的各種數(shù)據(jù)在硬盤中是怎樣存儲(chǔ)的芥喇,當(dāng)我們?cè)O(shè)置了一個(gè)索引(index)想要加速檢索過程時(shí),這個(gè)索引如何實(shí)現(xiàn)也是屬于物理層次的內(nèi)容武通。總之物理層次定義了一個(gè)復(fù)雜的數(shù)據(jù)庫如何被存儲(chǔ)在硬盤中
三級(jí)模式的運(yùn)行圖:
這里一個(gè)個(gè)外模式可以是我們程序開發(fā)者使用的API對(duì)數(shù)據(jù)庫進(jìn)行操作派诬,也可以是某個(gè)技術(shù)員查詢或錄入信息,可以是某個(gè)用戶請(qǐng)求數(shù)據(jù)庫中的信息放可,需求不同耀里,所得到的權(quán)限和數(shù)據(jù)就不同咙鞍。正是因?yàn)橛羞@些多種多樣的數(shù)據(jù)庫使用需求翰守,才會(huì)有變幻多端的外模式。
五、三級(jí)模式與兩級(jí)映射:
正是因?yàn)橛辛巳?jí)模式,所以才能實(shí)現(xiàn)兩級(jí)映射,這兩個(gè)映射可以實(shí)現(xiàn)數(shù)據(jù)庫的:物理獨(dú)立性和邏輯獨(dú)立性。舉個(gè)栗子:假如我們改變了底層的存儲(chǔ)算法,那么只需要改變 物理層次 -> 邏輯層次 這個(gè)映射,就可以保證邏輯層次的結(jié)構(gòu)不需要改變。兩級(jí)映射使得數(shù)據(jù)庫體系變得很靈活肥惭,三個(gè)中的一個(gè)改變了并不會(huì)導(dǎo)致其他都需要進(jìn)行改變
六耀石、SQL語言的分類:
SQL標(biāo)準(zhǔn)規(guī)定了一系列對(duì)于數(shù)據(jù)庫的操作。SQL99標(biāo)準(zhǔn)下的分類如圖:
對(duì)數(shù)據(jù)庫部分總結(jié)的規(guī)劃與展望
這學(xué)期對(duì)于數(shù)據(jù)庫的學(xué)習(xí)總體上來說是從基本概念和體系開始鉴裹,一二章主要就是這些概念與體系的建立脆霎,然后之后的三四五章就進(jìn)入SQL各個(gè)部分的學(xué)習(xí)鹦马。從開始的數(shù)據(jù)庫模式、碼、模式圖和悦、關(guān)系運(yùn)算這些體系和概念開始褒繁,到后面的第三、四遭笋、五章開始進(jìn)入具體SQL各部分語法的學(xué)習(xí)中,也就是說基本上就進(jìn)入了上圖中各部分的具體學(xué)習(xí)中了蹋辅。后期的話會(huì)涉及到數(shù)據(jù)庫設(shè)計(jì)的部分