?數(shù)據(jù)庫(kù)技術(shù)與MySQL 1,、數(shù)據(jù)庫(kù)技術(shù)是什么 數(shù)據(jù)庫(kù)技術(shù)研究的問題是如何科學(xué)組織和存儲(chǔ)數(shù)據(jù),,高效地獲取或處理數(shù)據(jù)。 2,、什么是SQL SQL是structured query language縮寫,,結(jié)構(gòu)化查詢語言。 SQL專門是為數(shù)據(jù)庫(kù)而建立的操作命令集,,是一種功能齊全的數(shù)據(jù)庫(kù)語言,。 使用SQL時(shí),只需發(fā)出“做什么”的命令,,怎么做不需要考慮,。 數(shù)據(jù)和數(shù)據(jù)庫(kù)的關(guān)系 ? 一、數(shù)據(jù) 1,、數(shù)據(jù)(data)定義 對(duì)客觀事物的符號(hào)表示,,如圖形符號(hào),、數(shù)字,、字母等,,數(shù)據(jù)是數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象。 日常生活中,,直接用語言描述事物,; 計(jì)算機(jī)中,為了存儲(chǔ)和處理這些事物,,將事物的特征抽象成一個(gè)記錄來描述,。 2、數(shù)據(jù)的種類 文字,、圖形,、圖像、聲音 例如,,數(shù)據(jù)庫(kù)中,,學(xué)生表中的學(xué)生記錄: (王二,男,,18,,西安,計(jì)算機(jī)系,,95033) 解釋為:王二是一個(gè)學(xué)生,,18歲,西安人,,95033班 二,、數(shù)據(jù)庫(kù)(DB) 數(shù)據(jù)庫(kù)(DB)定義: 長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi),有組織,、可共享的數(shù)據(jù)集合,。 數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和儲(chǔ)存,。 具有較小的冗余度,、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,可為各個(gè)用戶共享,。 三,、DBMS 1、DBMS定義 數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)位于應(yīng)用程序與存儲(chǔ)數(shù)據(jù)的之間一層數(shù)據(jù)管理軟件,。 它是基礎(chǔ)軟件,,一個(gè)大型復(fù)雜的軟件系統(tǒng)。 DBMS能科學(xué)組織和存儲(chǔ)數(shù)據(jù),,高效地獲取和維護(hù)數(shù)據(jù),。 2,、DBMS主要功能 DBMS主要功能如下: 第一,數(shù)據(jù)庫(kù)的定義功能,。它把用DDL編寫的各級(jí)源摸索編譯成各級(jí)目標(biāo)模式,,這些目標(biāo)是對(duì)數(shù)據(jù)庫(kù)機(jī)構(gòu)信息的描述,而不是數(shù)據(jù)本身,,他們被保存在數(shù)據(jù)字典中,,供以后數(shù)據(jù)操縱或數(shù)據(jù)控制時(shí)使用。 第二,,數(shù)據(jù)庫(kù)的操作功能,。單獨(dú)數(shù)據(jù)操縱語言DML及編譯程序,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的基本操作,?;静僮饔袃深悾瑱z索和更新,。 第三,,數(shù)據(jù)庫(kù)的保護(hù)功能。數(shù)據(jù)庫(kù)的數(shù)據(jù)恢復(fù),、數(shù)據(jù)庫(kù)的并發(fā)控制,、數(shù)據(jù)的完整性控制和數(shù)據(jù)安全性控制。 第四,,數(shù)據(jù)庫(kù)的維護(hù)功能,。數(shù)據(jù)庫(kù)的數(shù)據(jù)導(dǎo)入、轉(zhuǎn)換,、存儲(chǔ),、數(shù)據(jù)庫(kù)性能監(jiān)控等。 3,、DBMS的優(yōu)點(diǎn) 相互關(guān)聯(lián)的數(shù)據(jù)的集合 較少的數(shù)據(jù)冗余 程序與數(shù)據(jù)相互對(duì)立 保證數(shù)據(jù)的安全,、可靠、正確 數(shù)據(jù)可以并發(fā)使用并能同時(shí)保證一致性 四,、DBS 1,、數(shù)據(jù)庫(kù)系統(tǒng)DBS定義 數(shù)據(jù)庫(kù)系統(tǒng)(DBS)一般由數(shù)據(jù)苦、數(shù)據(jù)庫(kù)管理系統(tǒng)(及其開發(fā)工具),、應(yīng)用系統(tǒng),、數(shù)據(jù)庫(kù)管理員和用戶組成。即數(shù)據(jù)庫(kù)系統(tǒng)=數(shù)據(jù)庫(kù)(DB)+數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)+應(yīng)用系統(tǒng)+數(shù)據(jù)庫(kù)管理元(DBA)+用戶,。 2,、數(shù)據(jù)庫(kù)系統(tǒng)經(jīng)歷3個(gè)階段 網(wǎng)狀數(shù)據(jù)庫(kù)、層次數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)。他們分別采用的是網(wǎng)狀模型(圖形結(jié)構(gòu)),、層次模型(樹形結(jié)構(gòu))和關(guān)系模型(簡(jiǎn)單二維表結(jié)構(gòu))作為數(shù)據(jù)的組織方式,。 實(shí)體與屬性 實(shí)體:客觀事物在信息世界中稱為實(shí)體(Entity),它是現(xiàn)實(shí)世界中任何可區(qū)分,、識(shí)別的事物,。 屬性:描述實(shí)體或者聯(lián)系的性質(zhì)或特征的數(shù)據(jù)項(xiàng)。 聯(lián)系:反映事物內(nèi)部或事物之間的關(guān)聯(lián)集合,,常見3種實(shí)體聯(lián)系:一對(duì)一,、一對(duì)多、多對(duì)多聯(lián)系,。 關(guān)系模型(Relational Model)常見概念 關(guān)系:一個(gè)關(guān)系就是一個(gè)二維表,通常將一個(gè)沒有重復(fù)行,、重復(fù)列的二維表看成一個(gè)關(guān)系,,每個(gè)關(guān)系都有一個(gè)關(guān)系名。 元組:二維表的每一行在關(guān)系中稱為元組,,在MySQL中,,一個(gè)元組對(duì)應(yīng)表中一個(gè)記錄。 屬性:二維表的每一列在關(guān)系中稱為屬性,,每個(gè)屬性都有一個(gè)屬性名,,屬性值是各個(gè)元組屬性的取值。 域:屬性的取值范圍,。域作為屬性值的集合,,其類型與范圍具體由屬性的性質(zhì)及其所表示的意義確定。同一屬性只能在相同域中取值,。 關(guān)鍵字:關(guān)系中能唯一區(qū)分,、確定不同元組的屬性或?qū)傩越M合,稱為該關(guān)系的一個(gè)關(guān)鍵字,。 關(guān)系模式 1,、關(guān)系模式是什么 對(duì)關(guān)系的描述稱為關(guān)系模式,格式為:關(guān)系名(屬性名1,,屬性名2……屬性名n),。例如student(age,number,,birth,,class) 2、關(guān)系的基本特點(diǎn) 在關(guān)系模型中,,關(guān)系具有以下基本特點(diǎn): 第一,,關(guān)系必須規(guī)范化,屬性不可再分割。 第二,,在同一關(guān)系中不允許出現(xiàn)相同的屬性名,。 第三,在同一關(guān)系中元組的順序可以任意,。 第四,,在同一關(guān)系中屬性的順序可以任意。 關(guān)系運(yùn)算 關(guān)系運(yùn)算主要有選擇,、投影和連接,。 具體如下: 選擇:從關(guān)系模式中找出滿足給定條件的元組組成新的關(guān)系(從行的角度進(jìn)行運(yùn)算) 投影:從關(guān)系模式中指定若干屬性組成新的關(guān)系(從列的角度進(jìn)行運(yùn)算) 連接:從兩個(gè)關(guān)系的笛卡爾積中選擇屬性間滿足一定條件的元組,組成新的關(guān)系,。假設(shè)集合A={a, b},,集合B={0,1,2},,則兩個(gè)集合的笛卡爾積為{(a, O),(a, 1),(a, 2), (b,0), (b, 1),(b.2)),。 關(guān)系的完整性約束 關(guān)系的完整性約束限定了表中數(shù)據(jù)的約束,主要有:實(shí)體完整性,、參照完整性,、域完整性。如下: (1)實(shí)體完整性 主屬性值(主關(guān)系鍵的值)不能取空值,。例如student(number,,name,sex,,birth,,class)中number學(xué)號(hào)不能為空。主屬性值不能為空,。主鍵:唯一,,不重復(fù),不為空 (2)參照完整性(引用完整性) 針對(duì)兩個(gè)表來說的,會(huì)把兩個(gè)表分別拆分成一個(gè)主表,,一個(gè)從表,; 參照關(guān)系:從表參照主表(列);當(dāng)從表需要做操作的時(shí)候,,首先詢問主表的意見,,主表中有的,允許從表做操作,;如果主表中沒有的,,從表是沒辦法進(jìn)行操作的。 (3)域完整性(用戶定義完整性) 限制了某些屬性中出現(xiàn)的值,,把屬性限制在一個(gè)有限的集合中,。如果屬性類型是正整數(shù),那么輸入的值不能為小數(shù)等其他任何非整數(shù)。 關(guān)系模型的規(guī)范化 關(guān)系模式要滿足的條件稱為規(guī)范化形式,,簡(jiǎn)稱范式,。 關(guān)系模型規(guī)范化的目的是為了消除存儲(chǔ)異常,減少數(shù)據(jù)冗余,,保證數(shù)據(jù)的完整性和存儲(chǔ)效率,,一般規(guī)范為3NF即可。 (1)第一范式(1NF) 如果關(guān)系R的所有屬性均為簡(jiǎn)單屬性,,即每個(gè)屬性都是不可再分的,,則稱R滿足第一范式。簡(jiǎn)單理解即為第一范式就是無重復(fù)的列,。 (2)第二范式(2NF) 如果關(guān)系R滿足第一范式,,且每一個(gè)非主鍵字段完全依賴于主鍵,則稱R滿足第二范式,。例如學(xué)生:Student(學(xué)號(hào),姓名,,年齡); (3)第三范式( 3NF ) 如果關(guān)系R滿足第二范式,且非主鍵字段之間不存在依賴關(guān)系,,則稱R滿足第三范式。例如,,存在一個(gè)部門信息表,,其中每個(gè)部門有部門編號(hào)( dept_id)、部門名稱,、部門簡(jiǎn)介等信息,。那么在員工信息表中列出部門編號(hào)后就不能再將部門名稱、部門簡(jiǎn)介等與部門有關(guān)的信息再加入員工信息表中,。 E-R圖 E-R圖也稱實(shí)體-聯(lián)系圖(Entity Relationship Diagram ),提供了表示實(shí)體類型,、屬性和聯(lián)系的方法,用來描述現(xiàn)實(shí)世界的概念模型,。 通常用矩形表示實(shí)體型,,矩形框內(nèi)寫明實(shí)體名 用橢圓表示實(shí)體屬性,橢圓內(nèi)寫明實(shí)體屬性名用菱形表示實(shí)體型間的聯(lián)系,, 在菱形內(nèi)寫明聯(lián)系名用線段連接起來 ?
如圖有4個(gè)實(shí)體: ”教材“的實(shí)體屬性有:教材號(hào),、教材名、出版社,、價(jià)格,; “學(xué)生”的實(shí)體屬性有:學(xué)號(hào); “課程”的實(shí)體屬性有:課程號(hào),; “教師”的實(shí)體屬性有:職工號(hào),。 實(shí)體之間的關(guān)系: 教材和課程的關(guān)系是1對(duì)1(1:1)的關(guān)系,1門課程選用1個(gè)教材,1個(gè)教材對(duì)應(yīng)1門課程,; 學(xué)生和課程的關(guān)系是多對(duì)多(m:n)的關(guān)系,,1個(gè)學(xué)生可以選多門課程,1門課程也可被多個(gè)學(xué)生選擇,; 課程和教師的關(guān)系是多對(duì)多(m:n)的關(guān)系,,1門課程可以由多個(gè)教師授課,1個(gè)教師可以教授多門課程,; |
|