?數(shù)據(jù)庫(kù)技術(shù)與MySQL 1、數(shù)據(jù)庫(kù)技術(shù)是什么 數(shù)據(jù)庫(kù)技術(shù)研究的問(wèn)題是如何科學(xué)組織和存儲(chǔ)數(shù)據(jù),高效地獲取或處理數(shù)據(jù)。 2、什么是SQL SQL是structured query language縮寫,結(jié)構(gòu)化查詢語(yǔ)言。 SQL專門是為數(shù)據(jù)庫(kù)而建立的操作命令集,是一種功能齊全的數(shù)據(jù)庫(kù)語(yǔ)言。 使用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ì)象。 日常生活中,直接用語(yǔ)言描述事物; 計(jì)算機(jī)中,為了存儲(chǔ)和處理這些事物,將事物的特征抽象成一個(gè)記錄來(lái)描述。 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ù)操縱語(yǔ)言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)(及其開(kāi)發(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)集合,常見(jiàn)3種實(shí)體聯(lián)系:一對(duì)一、一對(duì)多、多對(duì)多聯(lián)系。 關(guān)系模型(Relational Model)常見(jiàn)概念 關(guān)系:一個(gè)關(guān)系就是一個(gè)二維表,通常將一個(gè)沒(méi)有重復(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è)表來(lái)說(shuō)的,會(huì)把兩個(gè)表分別拆分成一個(gè)主表,一個(gè)從表; 參照關(guān)系:從表參照主表(列);當(dāng)從表需要做操作的時(shí)候,首先詢問(wèn)主表的意見(jiàn),主表中有的,允許從表做操作;如果主表中沒(méi)有的,從表是沒(méi)辦法進(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)單理解即為第一范式就是無(wú)重復(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)系的方法,用來(lái)描述現(xiàn)實(shí)世界的概念模型。 通常用矩形表示實(shí)體型,矩形框內(nèi)寫明實(shí)體名 用橢圓表示實(shí)體屬性,橢圓內(nèi)寫明實(shí)體屬性名用菱形表示實(shí)體型間的聯(lián)系, 在菱形內(nèi)寫明聯(lián)系名用線段連接起來(lái) ?
如圖有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è)教師可以教授多門課程; |
|