版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
普通高等學(xué)校計(jì)算機(jī)教育“十四五”規(guī)劃教材
MySQL數(shù)據(jù)庫(kù)原理
及實(shí)踐教程
????????喬鋼柱◎主?編
張曉華?井?超?李曉波◎副主編
WQ.indd12022/8/1617:18:27
內(nèi)容簡(jiǎn)介
本書以零基礎(chǔ)講解為宗旨,用實(shí)例引導(dǎo)讀者學(xué)習(xí),深入淺出地介紹了MySQL數(shù)據(jù)庫(kù)的相關(guān)
知識(shí)和實(shí)戰(zhàn)技能,內(nèi)容詳盡,實(shí)例豐富。
全書共分為8章,包括數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)、數(shù)據(jù)庫(kù)的基本操作、數(shù)據(jù)表的基本操作、數(shù)據(jù)類型
和運(yùn)算符、視圖和觸發(fā)器、事務(wù)管理、MySQL連接器JDBC和連接池、常見函數(shù)和數(shù)據(jù)管理。
每章節(jié)后包含了與本書內(nèi)容全程同步的綜合案例教學(xué),并配有微視頻詳細(xì)講解。
本書適合作為高等院校學(xué)習(xí)MySQL數(shù)據(jù)庫(kù)課程的教學(xué)用書,也可作為編程初學(xué)者學(xué)習(xí)
MySQL數(shù)據(jù)庫(kù)的參考書,對(duì)于希望系統(tǒng)學(xué)習(xí)MySQL數(shù)據(jù)庫(kù)的人員也具有參考價(jià)值。
圖書在版編目(CIP)數(shù)據(jù)
MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程/喬鋼柱主編.—北京:
中國(guó)鐵道出版社有限公司,2022.8
普通高等學(xué)校計(jì)算機(jī)教育“十四五”規(guī)劃教材
ISBN978-7-113-29071-9
Ⅰ.①M(fèi)…Ⅱ.①喬…Ⅲ.①關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)-高等學(xué)校-
教材Ⅳ.①TP311.132.3
中國(guó)版本圖書館CIP數(shù)據(jù)核字(2022)第063147號(hào)
書名:MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程
作者:?jiǎn)啼撝?/p>
策劃:王春霞編輯部電話:(010)51873035
責(zé)任編輯:王春霞?王占清
封面設(shè)計(jì):劉?穎
責(zé)任校對(duì):安海燕
責(zé)任印制:樊啟鵬
出版發(fā)行:中國(guó)鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號(hào))
網(wǎng)址:/51eds/
印刷:三河市宏盛印務(wù)有限公司
版次:2022年8月第1版?2022年8月第1次印刷
開本:850?mm×1?168?mm1/16?印張:12.75?字?jǐn)?shù):326千
書號(hào):ISBN978-7-113-29071-9
定價(jià):39.00元
版權(quán)所有侵權(quán)必究
凡購(gòu)買鐵道版圖書,如有印制質(zhì)量問題,請(qǐng)與本社教材圖書營(yíng)銷部聯(lián)系調(diào)換。電話:(010)63550836
打擊盜版舉報(bào)電話:(010)63549461
WQ.indd22022/8/1617:18:27
前言
MySQL是由瑞典MySQLAB公司開發(fā)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),其特點(diǎn)為體積小、
速度快且完全免費(fèi)開源,因而被中小公司和程序員推崇。2008年1月,MySQLAB公司被
Sun公司收購(gòu),后來Sun公司又被Oracle公司收購(gòu),所以,目前MySQL在Oracle旗下。經(jīng)
歷多次公司的兼并和重組,同時(shí)被Oracle公司升級(jí)開發(fā),因而MySQL的功能也越來越強(qiáng)大,
同時(shí)仍舊保持其最初優(yōu)點(diǎn),因而應(yīng)用依然非常廣泛。
本書以目前比較流行的MySQL5.5版本為平臺(tái),結(jié)合當(dāng)前數(shù)據(jù)庫(kù)教學(xué)和應(yīng)用開發(fā)實(shí)踐,
對(duì)全書進(jìn)行了設(shè)計(jì)編寫。MySQL的主要功能包括創(chuàng)建數(shù)據(jù)庫(kù)和表及表記錄操作、數(shù)據(jù)類型
和運(yùn)算符、數(shù)據(jù)庫(kù)的視圖和觸發(fā)器、數(shù)據(jù)庫(kù)事務(wù)、常見函數(shù)和數(shù)據(jù)管理等。MySQL命令分
層縮進(jìn),實(shí)例前后形成系統(tǒng),運(yùn)行結(jié)果直觀清晰。
本書融合數(shù)據(jù)基礎(chǔ)和MySQL實(shí)現(xiàn)于一體,系統(tǒng)性、應(yīng)用性強(qiáng),注重實(shí)踐,并且從方便
教和學(xué)兩個(gè)角度組織內(nèi)容、調(diào)試實(shí)例和安排綜合應(yīng)用。
使用本書時(shí),建議初學(xué)者按照章節(jié)順序從頭至尾完成閱讀學(xué)習(xí),同時(shí)也應(yīng)進(jìn)行一定的
實(shí)操練習(xí)。本書也可作為有一定基礎(chǔ)的讀者案頭的參考書,針對(duì)相應(yīng)技術(shù)、配置方式等查
閱使用。
全書共分為8章,系統(tǒng)全面地以MySQL為實(shí)現(xiàn)平臺(tái)介紹了數(shù)據(jù)庫(kù)系統(tǒng)的原理及實(shí)現(xiàn)。
第1章主要對(duì)和數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)的部分概念作簡(jiǎn)單介紹。第2章開篇概述了MySQL的產(chǎn)生
和發(fā)展過程,并介紹了MySQL的組成部分及優(yōu)勢(shì),MySQL的安裝與配置、啟動(dòng)、暫停和退出、
MySQL管理工具的使用和實(shí)用程序以及數(shù)據(jù)庫(kù)的基本操作等。第3章對(duì)數(shù)據(jù)表的各種操作
進(jìn)行了介紹,講解了約束條件、默認(rèn)規(guī)則;在檢索記錄表方面從介紹SELECT基本查詢開始,
逐步深入一些復(fù)雜的內(nèi)容。第4章開篇先介紹了MySQL的幾種基本數(shù)據(jù)類型,本章最后的
綜合案例也提供了完整代碼,并附帶詳細(xì)注解供讀者參考。第5章對(duì)視圖和觸發(fā)器的相關(guān)
概念進(jìn)行了論述。第6章對(duì)事務(wù)機(jī)制、事務(wù)的提交及事務(wù)的回滾和事務(wù)的特征與隔離進(jìn)行
了介紹,讀者通過實(shí)例可以體會(huì)事務(wù)管理的相關(guān)方法。第7章介紹了MySQL連接器的相關(guān)
概念,綜合案例中的學(xué)生選課系統(tǒng)也提供了完整代碼供讀者練習(xí)體會(huì)MySQL連接JDBC的
方法。第8章介紹了MySQL中的一些常見函數(shù)的功能和用法,主要講解了MySQL的備份
和恢復(fù)以及它們的語(yǔ)法格式和相關(guān)說明,最后介紹了用戶管理。
WQ.indd12022/8/1617:18:27
MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程
在本書編寫過程中,喬鋼柱負(fù)責(zé)撰寫第1章,李曉波負(fù)責(zé)撰寫第2章,張曉華負(fù)責(zé)撰寫第3、
4、5、6章,井超撰寫第7、8章,最后全書由喬鋼柱負(fù)責(zé)統(tǒng)稿,并任主編。
特別感謝中北大學(xué)曾建潮教授對(duì)本書的指導(dǎo),中北大學(xué)大數(shù)據(jù)學(xué)院數(shù)據(jù)科學(xué)與大數(shù)據(jù)
技術(shù)專業(yè)2017級(jí)本科生張苗苗同學(xué)為本書提供的協(xié)助。在此,也衷心感謝中國(guó)鐵道出版社
有限公司的編輯為本書順利出版所付出的努力。
編者
2022年2月
于中北大學(xué)怡丁苑
II
WQ.indd22022/8/1617:18:28
目錄
第1章數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)???????????????????????????????????????????????????????????????????????????????1
1.1數(shù)據(jù)庫(kù)系統(tǒng)1
1.1.1數(shù)據(jù)、信息、數(shù)據(jù)庫(kù)2
1.1.2數(shù)據(jù)庫(kù)管理系統(tǒng)2
1.1.3數(shù)據(jù)庫(kù)管理系統(tǒng)的分類3
1.2數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)3
1.2.1數(shù)據(jù)庫(kù)系統(tǒng)模式的概念3
1.2.2數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)3
1.2.3數(shù)據(jù)庫(kù)的二級(jí)映像功能與數(shù)據(jù)獨(dú)立性5
1.2.4數(shù)據(jù)庫(kù)系統(tǒng)用戶結(jié)構(gòu)5
1.3關(guān)系數(shù)據(jù)庫(kù)7
1.3.1關(guān)系數(shù)據(jù)庫(kù)概述7
1.3.2關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)7
1.3.3關(guān)系數(shù)據(jù)庫(kù)的完整性13
1.4結(jié)構(gòu)化查詢語(yǔ)言SQL15
1.4.1SQL概述15
1.4.2SQL語(yǔ)言特點(diǎn)及基本語(yǔ)法16
1.4.3SQL語(yǔ)句分類16
1.4.4SQL的四種基本操作16
1.5實(shí)體關(guān)系模型19
小結(jié)22
經(jīng)典習(xí)題22
第2章數(shù)據(jù)庫(kù)的基本操作??????????????????????????????????????????????????????????????????????????23
2.1MySQL的概述23
2.1.1MySQL的產(chǎn)生和發(fā)展23
2.1.2MySQL的組成24
WQ.indd12022/8/1617:18:28
MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程
2.1.3MySQL的優(yōu)勢(shì)25
2.2MySQL的安裝和管理25
2.2.1下載MySQL25
2.2.2啟動(dòng)、暫?;蛲顺鯩ySQL27
2.3MySQL工具和實(shí)用程序29
2.3.1MySQL命令行實(shí)用程序29
2.3.2實(shí)用程序常用的圖形化管理工具29
2.4數(shù)據(jù)庫(kù)的創(chuàng)建30
2.4.1數(shù)據(jù)庫(kù)的構(gòu)成30
2.4.2使用命令行窗口創(chuàng)建數(shù)據(jù)庫(kù)31
2.4.3使用圖形化工具創(chuàng)建數(shù)據(jù)庫(kù)31
2.5數(shù)據(jù)庫(kù)的查看和選擇32
2.6數(shù)據(jù)庫(kù)的刪除32
2.6.1使用命令行窗口刪除數(shù)據(jù)庫(kù)33
2.6.2使用圖形化工具刪除數(shù)據(jù)庫(kù)33
2.7綜合案例——數(shù)據(jù)庫(kù)的創(chuàng)建和刪除33
小結(jié)36
經(jīng)典習(xí)題36
第3章數(shù)據(jù)表的基本操作???????????????????????????????????????????????????????????????????????????37
3.1創(chuàng)建表37
3.1.1創(chuàng)建表的語(yǔ)法形式37
3.1.2使用SQL語(yǔ)句設(shè)置約束條件38
3.1.3使用圖形化工具創(chuàng)建表并設(shè)置約束條件41
3.2查看表結(jié)構(gòu)42
3.2.1使用SQL語(yǔ)句查看表結(jié)構(gòu)42
3.2.2使用圖形化工具查看表結(jié)構(gòu)42
3.3修改表43
3.3.1使用SQL語(yǔ)句修改數(shù)據(jù)表44
3.3.2使用圖形化工具修改數(shù)據(jù)表49
3.4刪除表50
3.4.1使用SQL語(yǔ)句刪除數(shù)據(jù)表50
3.4.2使用圖形化工具刪除數(shù)據(jù)表51
II
WQ.indd22022/8/1617:18:28
目錄
3.5檢索記錄表52
3.5.1SELECT基本查詢52
3.5.2條件查詢56
3.5.3分組查詢57
3.5.4表的連接59
3.5.5子查詢61
3.5.6聯(lián)合查詢63
3.6綜合案例——學(xué)生選課系統(tǒng)綜合查詢64
小結(jié)68
經(jīng)典習(xí)題68
第4章數(shù)據(jù)類型和運(yùn)算符??????????????????????????????????????????????????????????????????????????69
4.1MySQL基本數(shù)據(jù)類型69
4.1.1整數(shù)類型69
4.1.2小數(shù)類型72
4.1.3字符串類型74
4.1.4日期時(shí)間類型75
4.1.5復(fù)合數(shù)據(jù)類型78
4.1.6二進(jìn)制類型80
4.2MySQL運(yùn)算符80
4.2.1算術(shù)運(yùn)算符80
4.2.2比較運(yùn)算符81
4.2.3邏輯運(yùn)算符82
4.2.4位運(yùn)算符83
4.2.5運(yùn)算符優(yōu)先級(jí)84
4.3字符集設(shè)置85
4.3.1MySQL字符集與字符排序規(guī)則85
4.3.2MySQL字符集的設(shè)置86
4.4綜合案例——算術(shù)操作符87
小結(jié)96
經(jīng)典習(xí)題96
III
WQ.indd32022/8/1617:18:28
MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程
第5章視圖和觸發(fā)器?????????????????????????????????????????????????????????????????????????????????97
5.1視圖97
5.1.1視圖概述97
5.1.2創(chuàng)建視圖98
5.1.3查看視圖102
5.1.4管理視圖104
5.1.5使用視圖105
5.2觸發(fā)器108
5.2.1創(chuàng)建觸發(fā)器108
5.2.2使用觸發(fā)器109
5.2.3查看觸發(fā)器110
5.2.4刪除觸發(fā)器110
5.2.5觸發(fā)器的應(yīng)用111
5.3綜合案例——視圖及觸發(fā)器的應(yīng)用113
5.3.1系統(tǒng)主要功能113
5.3.2E-R圖113
5.3.3邏輯結(jié)構(gòu)115
5.3.4數(shù)據(jù)庫(kù)實(shí)施117
小結(jié)122
經(jīng)典習(xí)題122
第6章事務(wù)管理????????????????????????????????????????????????????????????????????????????????????123
6.1事務(wù)機(jī)制概述123
6.2事務(wù)的提交125
6.3事務(wù)的回滾127
6.4事務(wù)的特征和隔離129
6.4.1事務(wù)的四大特性129
6.4.2事務(wù)的隔離級(jí)別132
6.5解決多用戶使用問題132
6.5.1臟讀132
6.5.2不可重復(fù)讀134
6.5.3幻讀136
6.6綜合案例——銀行轉(zhuǎn)賬業(yè)務(wù)的事務(wù)處理137
IV
WQ.indd42022/8/1617:18:29
目錄
小結(jié)140
經(jīng)典習(xí)題140
第7章MySQL連接器JDBC和連接池????????????????????????????????????????????????????????141
7.1MySQL連接器141
7.2MySQL數(shù)據(jù)庫(kù)連接過程142
7.3JDBC對(duì)象數(shù)據(jù)庫(kù)操作145
7.3.1增加數(shù)據(jù)145
7.3.2修改數(shù)據(jù)145
7.3.3刪除數(shù)據(jù)145
7.3.4查詢數(shù)據(jù)146
7.3.5批處理146
7.4開源連接池146
7.5綜合案例——學(xué)生選課系統(tǒng)147
小結(jié)165
經(jīng)典習(xí)題166
第8章常見函數(shù)和數(shù)據(jù)管理?????????????????????????????????????????????????????????????????????167
8.1常見函數(shù)167
8.1.1數(shù)學(xué)函數(shù)167
8.1.2字符串函數(shù)172
8.1.3時(shí)間日期函數(shù)175
8.1.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù)177
8.1.5控制流程函數(shù)177
8.1.6系統(tǒng)信息函數(shù)178
8.2數(shù)據(jù)庫(kù)備份與還原179
8.2.1數(shù)據(jù)的備份179
8.2.2數(shù)據(jù)的還原180
8.3MySQL的用戶管理182
8.3.1數(shù)據(jù)庫(kù)用戶管理182
8.3.2用戶權(quán)限設(shè)置184
8.4綜合案例——數(shù)據(jù)庫(kù)備份與恢復(fù)187
小結(jié)194
經(jīng)典習(xí)題194
V
WQ.indd52022/8/1617:18:29
第1章
數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
數(shù)據(jù)庫(kù)可視為電子化的文件柜—存儲(chǔ)電子文件的處所,用戶可以對(duì)文件中的數(shù)據(jù)(運(yùn)行)
新增、截取、更新、刪除等操作。
數(shù)據(jù)庫(kù)是以一定方式存儲(chǔ)在一起、能給予多個(gè)用戶共享、具有盡可能小的冗余度、與應(yīng)用程
序彼此獨(dú)立的數(shù)據(jù)集合。
數(shù)據(jù)庫(kù)的系統(tǒng)結(jié)構(gòu)是對(duì)數(shù)據(jù)的三個(gè)抽象級(jí)別,它們分別是內(nèi)模式、概念模式和外模式。這個(gè)
三級(jí)結(jié)構(gòu)之間一般差別很大,為了實(shí)現(xiàn)這三個(gè)抽象級(jí)別在內(nèi)部聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫(kù)管理系統(tǒng)在三
級(jí)結(jié)構(gòu)之間提供了兩個(gè)層次的映像:外模式/概念模式映像、概念模式/內(nèi)模式映像。這兩層映
像保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。
從最終用戶角度來看,數(shù)據(jù)庫(kù)系統(tǒng)分為單用戶結(jié)構(gòu)、主從式結(jié)構(gòu)、客戶/服務(wù)器結(jié)構(gòu)和分布式
結(jié)構(gòu)。
本章還介紹了數(shù)據(jù)庫(kù)的設(shè)計(jì)。在關(guān)系數(shù)據(jù)庫(kù)方面,主要介紹了規(guī)范關(guān)系數(shù)據(jù)庫(kù)的理論,
并給出了一個(gè)相應(yīng)的實(shí)例。視頻
學(xué)習(xí)目標(biāo)
y掌握數(shù)據(jù)庫(kù)管理系統(tǒng)的主要功能
y了解關(guān)系型數(shù)據(jù)庫(kù)相關(guān)概念數(shù)據(jù)庫(kù)基礎(chǔ)
y掌握SQL的使用方法知識(shí)
1.1數(shù)據(jù)庫(kù)系統(tǒng)
數(shù)據(jù)庫(kù)系統(tǒng)是一個(gè)比較寬泛的概念,它包括數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)以及使用數(shù)據(jù)庫(kù)的用戶
和支撐數(shù)據(jù)庫(kù)管理系統(tǒng)運(yùn)行的軟硬件。在此僅對(duì)和數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)的部分概念作簡(jiǎn)單介紹,更深
入的知識(shí)請(qǐng)讀者參考相關(guān)教材或書籍。
1
01-02.indd12022/8/1617:18:22
MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程
1.1.1?數(shù)據(jù)、信息、數(shù)據(jù)庫(kù)
1.?dāng)?shù)據(jù)
數(shù)據(jù)(Data)是描述事物的符號(hào)記錄,是數(shù)據(jù)庫(kù)中存儲(chǔ)的基本對(duì)象。數(shù)據(jù)可以是數(shù)值數(shù)據(jù),
如某個(gè)具體數(shù)字,也可以是非數(shù)值數(shù)據(jù),如聲音、圖像等。雖然數(shù)據(jù)有多種表現(xiàn)形式,但經(jīng)過數(shù)
字化處理后,都可以輸入并存儲(chǔ)到計(jì)算機(jī),并能為其處理的符號(hào)序列。
2.信息
信息(Information)是具有一定含義的、經(jīng)過加工的、對(duì)決策有價(jià)值的數(shù)據(jù)。所以說信息是有
用的數(shù)據(jù),數(shù)據(jù)是信息的表現(xiàn)形式。數(shù)據(jù)如果不具有知識(shí)性和有用性則不能稱為信息。從信息處
理角度看,任何事物的屬性都是通過數(shù)據(jù)來表示的,數(shù)據(jù)經(jīng)過加工處理后,使其具有知識(shí)性并對(duì)
人類活動(dòng)產(chǎn)生決策作用,從而形成信息。信息有如下特點(diǎn):無限性、共享性、創(chuàng)造性。
3.信息與數(shù)據(jù)的關(guān)系
在計(jì)算機(jī)中,為了存儲(chǔ)和處理某些事物,需要抽象出對(duì)這些事物感興趣的特征組成一個(gè)記錄
來描述。例如,學(xué)生檔案中,如果人們感興趣的是學(xué)生的姓名、性別、年齡、出生年月、籍貫、
所在系別、入學(xué)日期,就可以這樣描述:李明,男,21,1985,浙江,計(jì)算機(jī)系,2004,因此這
里的學(xué)生記錄就是數(shù)據(jù)。它的含義即所含信息是:李明是個(gè)大學(xué)生,1985年出生,男,浙江人,
2004年考入計(jì)算機(jī)系。
數(shù)據(jù)的形式不能完全表達(dá)其內(nèi)容,需要經(jīng)過解釋。數(shù)據(jù)的解釋是指對(duì)數(shù)據(jù)含義的說明,數(shù)據(jù)
的含義又稱為數(shù)據(jù)的語(yǔ)義,也就是數(shù)據(jù)包含的信息。信息是數(shù)據(jù)的內(nèi)涵,數(shù)據(jù)是信息的符號(hào)表示,
是載體。數(shù)據(jù)是符號(hào)化的信息,信息是語(yǔ)義化的數(shù)據(jù)。如黑白臉譜,所表示的數(shù)據(jù)是黑白點(diǎn)陣,
而所帶有的信息是臉譜。
4.?dāng)?shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)(Database,DB)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)
中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),用于滿足各種不同的信息需求,并且集中的數(shù)據(jù)
彼此之間有相互的聯(lián)系。具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性。
1.1.2?數(shù)據(jù)庫(kù)管理系統(tǒng)
數(shù)據(jù)庫(kù)管理系統(tǒng)(DatabaseManagementSystem,DBMS)是為管理數(shù)據(jù)庫(kù)而設(shè)計(jì)的計(jì)算機(jī)軟
件系統(tǒng),一般具有存儲(chǔ)、截取、安全保障、備份等基礎(chǔ)功能。數(shù)據(jù)庫(kù)管理系統(tǒng)是位于用戶和操作
系統(tǒng)之間的一層數(shù)據(jù)管理軟件,它的主要功能包括以下幾個(gè)方面:
1.?dāng)?shù)據(jù)定義功能
提供數(shù)據(jù)定義語(yǔ)言DDL,用戶通過它可以方便地對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象進(jìn)行定義。
2.?dāng)?shù)據(jù)操縱功能
提供數(shù)據(jù)操縱語(yǔ)言DML,用戶可以使用操縱語(yǔ)言實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的基本操作,如查詢、插入、
刪除和修改等。
3.?dāng)?shù)據(jù)庫(kù)的運(yùn)行管理功能
數(shù)據(jù)庫(kù)的建立、運(yùn)行和維護(hù)由數(shù)據(jù)庫(kù)管理系統(tǒng)統(tǒng)一管理、統(tǒng)一控制,以保證數(shù)據(jù)的安全性、
完整性、多用戶對(duì)數(shù)據(jù)的并發(fā)使用以及發(fā)生故障后系統(tǒng)恢復(fù)。
2
01-02.indd22022/8/1617:18:22
第1章?數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
4.?dāng)?shù)據(jù)庫(kù)的建立和維護(hù)功能
它包括數(shù)據(jù)庫(kù)初始數(shù)據(jù)的輸入、轉(zhuǎn)換功能、數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)、恢復(fù)功能,數(shù)據(jù)庫(kù)的重組功能和性
能監(jiān)視,分析功能等。這些功能通常由一些應(yīng)用程序完成。
1.1.3?數(shù)據(jù)庫(kù)管理系統(tǒng)的分類
數(shù)據(jù)庫(kù)管理系統(tǒng)主要分為以下兩類:
1.關(guān)系數(shù)據(jù)庫(kù)
關(guān)系數(shù)據(jù)庫(kù)是創(chuàng)建在關(guān)系模型基礎(chǔ)上的數(shù)據(jù)庫(kù),借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)
據(jù)庫(kù)中的數(shù)據(jù)。現(xiàn)實(shí)世界中的各種實(shí)體以及實(shí)體之間的各種聯(lián)系均用關(guān)系模型來表示。
幾乎所有的數(shù)據(jù)庫(kù)管理系統(tǒng)都配備了一個(gè)開放式數(shù)據(jù)庫(kù)互連(ODBC)驅(qū)動(dòng)程序,令各個(gè)數(shù)據(jù)
庫(kù)之間得以互相集成。
典型代表有MySQL、Oracle、MicrosoftSQLServer、Access及PostgreSQL等。
2.非關(guān)系型數(shù)據(jù)庫(kù)
非關(guān)系型數(shù)據(jù)庫(kù)是對(duì)不同于傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)管理系統(tǒng)的統(tǒng)稱,與關(guān)系數(shù)據(jù)庫(kù)最大
的不同點(diǎn)是不使用SQL作為查詢語(yǔ)言。
典型代表有BigTable、Cassandra、MongoDB、CouchDB;還包括鍵值數(shù)據(jù)庫(kù)ApacheCassandra、
LevelDB。
1.2數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)
1.2.1?數(shù)據(jù)庫(kù)系統(tǒng)模式的概念
模式(Schema)是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,它僅涉及到型的描述,不涉
及到具體的值。模式的一個(gè)具體值稱為模式的一個(gè)實(shí)例(Instance)。同一個(gè)模式可以有很多實(shí)例。
模式是相對(duì)穩(wěn)定的,而實(shí)例是相對(duì)變動(dòng)的,因?yàn)閿?shù)據(jù)庫(kù)中的數(shù)據(jù)是在不斷更新的。模式反映的是
數(shù)據(jù)的結(jié)構(gòu)及其聯(lián)系,而實(shí)例反映的是數(shù)據(jù)庫(kù)某一時(shí)刻的狀態(tài)。
1.2.2?數(shù)據(jù)庫(kù)系統(tǒng)的三級(jí)模式結(jié)構(gòu)
數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)分為三層:內(nèi)模式、概念模式(模式)和外模式,如圖1-1所示。這個(gè)三級(jí)
結(jié)構(gòu)有時(shí)稱為三級(jí)模式結(jié)構(gòu),是在1971年通過DBTG報(bào)告中提出的,后來收入在1975年的美國(guó)
ANSI/SPARC報(bào)告中。雖然現(xiàn)在DBMS的產(chǎn)品多種多樣,并在不同操作系統(tǒng)支持下工作,但是大
多數(shù)系統(tǒng)在總的體系結(jié)構(gòu)上都具有三級(jí)模式的結(jié)構(gòu)特征。
從某個(gè)角度看到的數(shù)據(jù)特性稱為數(shù)據(jù)視圖(DataView)。
外模式最接近用戶,是單個(gè)用戶所能看到的數(shù)據(jù)特性,單個(gè)用戶使用的數(shù)據(jù)視圖的描述稱為外
模式。
概念模式涉及到所有用戶的數(shù)據(jù)定義,是全局的數(shù)據(jù)視圖。全局?jǐn)?shù)據(jù)視圖的描述也稱為
模式。
內(nèi)模式最接近于物理存儲(chǔ)設(shè)備,涉及到實(shí)際數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)。物理存儲(chǔ)數(shù)據(jù)視圖的描述稱為
內(nèi)模式。
3
01-02.indd32022/8/1617:18:22
MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程
應(yīng)用A應(yīng)用B應(yīng)用C應(yīng)用D應(yīng)用E
外模式1外模式2外模式3
外模式/概念模式映像
模式
概念模式/內(nèi)模式映像
內(nèi)模式
數(shù)據(jù)庫(kù)
圖1-1數(shù)據(jù)庫(kù)系統(tǒng)的二級(jí)映像
1.概念模式(所有用戶的公共視圖)
一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)概念模式,它以某一種數(shù)據(jù)模型為基礎(chǔ),統(tǒng)一綜合地考慮了所有用戶的
需求,并將這些需求有機(jī)地結(jié)合成一個(gè)邏輯整體。
概念模式由許多記錄類型的值組成。例如,它可能包括部門記錄值的集合、職工記錄值的集
合、供應(yīng)商記錄值的集合、零件記錄值的集合,等等。概念模式根本不涉及物理表示和訪問的技
術(shù),它只定義信息的內(nèi)容,這樣在模式中不能涉及存儲(chǔ)字段表示、存儲(chǔ)記錄隊(duì)列、索引、哈希算法、
指針或其他存儲(chǔ)和訪問的細(xì)節(jié)。這樣模式就可真正實(shí)現(xiàn)物理數(shù)據(jù)的獨(dú)立性。
定義模式時(shí),不僅定義數(shù)據(jù)的邏輯結(jié)構(gòu),還要定義數(shù)據(jù)之間的聯(lián)系,定義與數(shù)據(jù)有關(guān)安全性、
完整性要求。
在數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)中,描述概念模式的數(shù)據(jù)定義語(yǔ)言稱為模式DDL(SchemaData
De?nitionLanguage)。
2.外模式(用戶可見的視圖)
外模式也稱子模式(Subschema)或用戶模式,它是數(shù)據(jù)庫(kù)用戶能夠看見和使用的局部數(shù)據(jù)的
邏輯結(jié)構(gòu)和特征的描述,是數(shù)據(jù)庫(kù)用戶的數(shù)據(jù)視圖,是與某一應(yīng)用有關(guān)的數(shù)據(jù)的邏輯表示,是用
戶和數(shù)據(jù)庫(kù)系統(tǒng)的接口,是用戶用到的那部分?jǐn)?shù)據(jù)的描述。一個(gè)系統(tǒng)一般有多個(gè)外模式。
外模式是保證數(shù)據(jù)庫(kù)安全性的一個(gè)有力措施。每個(gè)用戶只能看見和訪問所對(duì)應(yīng)的外模式
中的數(shù)據(jù),數(shù)據(jù)庫(kù)中的其余數(shù)據(jù)是不可見的。用戶使用數(shù)據(jù)操縱語(yǔ)言DML(DataManipulation
Language)語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,實(shí)際上是對(duì)外模式的外部記錄進(jìn)行操作。
描述外模式的數(shù)據(jù)定義語(yǔ)言稱為外模式DDL。有了外模式后,程序員或數(shù)據(jù)庫(kù)管理員不必關(guān)
心概念模式,只與外模式發(fā)生聯(lián)系,按照外模式的結(jié)構(gòu)存儲(chǔ)和操縱數(shù)據(jù)。
外模式又稱為用戶模式或子模式,通常是概念模式的邏輯子集。
3.內(nèi)模式(存儲(chǔ)模式)
一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式,它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的
表示方法。它定義所有的內(nèi)部記錄類型、索引和文件的組織方式,以及數(shù)據(jù)控制方面的細(xì)節(jié)。
注意:內(nèi)模式和物理層仍然不同。內(nèi)部記錄并不涉及到物理記錄,也不涉及到設(shè)備的約束。
比內(nèi)模式更接近物理存儲(chǔ)和訪問的那些軟件機(jī)制是操作系統(tǒng)的一部分,即文件系統(tǒng)。
4
01-02.indd42022/8/1617:18:23
第1章?數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
描述內(nèi)模式的數(shù)據(jù)定義語(yǔ)言稱為內(nèi)模式DDL。
1.2.3?數(shù)據(jù)庫(kù)的二級(jí)映像功能與數(shù)據(jù)獨(dú)立性
數(shù)據(jù)庫(kù)的三級(jí)模式結(jié)構(gòu)是數(shù)據(jù)的三個(gè)抽象級(jí)別。它把數(shù)據(jù)的具體組織留給DBMS去做,用戶
只要抽象的處理數(shù)據(jù),而不必關(guān)心數(shù)據(jù)在計(jì)算機(jī)中的表示和存儲(chǔ)。三級(jí)結(jié)構(gòu)之間一般差別很大,
為了實(shí)現(xiàn)這三個(gè)抽象級(jí)別在內(nèi)部聯(lián)系和轉(zhuǎn)換,DBMS在三級(jí)結(jié)構(gòu)之間提供了兩個(gè)層次的映像:外
模式/概念模式映像、概念模式/內(nèi)模式映像,如圖1-1所示。
這兩層映像保證了數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)能夠具有較高的邏輯獨(dú)立性和物理獨(dú)立性。
1.外模式/概念模式映像
用于定義外模式和概念模式之間的對(duì)應(yīng)性,即外部記錄和內(nèi)部記錄間的關(guān)系。
當(dāng)概念模式發(fā)生改變時(shí),由數(shù)據(jù)庫(kù)管理員對(duì)各個(gè)外模式/概念模式的映像作相應(yīng)改變,可以使
外模式保持不變,應(yīng)用程序是依據(jù)數(shù)據(jù)的外模式編寫的,從而應(yīng)用程序不必修改,保證了數(shù)據(jù)與
程序的邏輯獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的邏輯獨(dú)立性。
2.概念模式/內(nèi)模式映像
用于定義概念模式和內(nèi)模式間的對(duì)應(yīng)性,實(shí)現(xiàn)兩級(jí)的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)組成等的映像對(duì)應(yīng)關(guān)系。
概念模式/內(nèi)模式映像定義了數(shù)據(jù)庫(kù)全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系,當(dāng)數(shù)據(jù)庫(kù)的存
儲(chǔ)結(jié)構(gòu)改變了,由數(shù)據(jù)庫(kù)管理員對(duì)概念模式/內(nèi)模式映像作相應(yīng)改變,可以使概念模式保持不變,
從而應(yīng)用程序也不必改變,保證了數(shù)據(jù)與程序的物理獨(dú)立性,簡(jiǎn)稱數(shù)據(jù)的物理獨(dú)立性。
1.2.4?數(shù)據(jù)庫(kù)系統(tǒng)用戶結(jié)構(gòu)
從最終用戶角度來看,數(shù)據(jù)庫(kù)系統(tǒng)分為單用戶、主從式結(jié)構(gòu)、客戶/服務(wù)器結(jié)構(gòu)和分布式結(jié)構(gòu)。
1.單用戶數(shù)據(jù)庫(kù)系統(tǒng)
單用戶數(shù)據(jù)庫(kù)系統(tǒng)是一種早期的最簡(jiǎn)單的數(shù)據(jù)庫(kù)系統(tǒng)。在這種系統(tǒng)中,整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)(包
括應(yīng)用程序、DBMS、數(shù)據(jù))都裝在一臺(tái)計(jì)算機(jī)上,由一個(gè)用戶獨(dú)占,不同機(jī)器之間不能共享數(shù)據(jù)。
如圖1-2所示。
2.主從式結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)
主從式結(jié)構(gòu)是指一個(gè)主機(jī)帶多個(gè)終端的多用戶結(jié)構(gòu)。在這種結(jié)構(gòu)中,數(shù)據(jù)庫(kù)系統(tǒng)(包括應(yīng)用
程序、DBMS、數(shù)據(jù))都集中存放在主機(jī)上,所有處理任務(wù)都由主機(jī)來完成,各個(gè)用戶通過主機(jī)的
終端并發(fā)地存取數(shù)據(jù)庫(kù),共享數(shù)據(jù)資源,如圖1-3所示。
主機(jī)
微機(jī)
終端
圖1-2單用戶數(shù)據(jù)庫(kù)系統(tǒng)圖1-3主從式結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)
5
01-02.indd52022/8/1617:18:23
MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程
3.客戶/服務(wù)器結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)
主從式結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)中的主機(jī)是一個(gè)通用計(jì)算
機(jī),既執(zhí)行DBMS功能又執(zhí)行應(yīng)用程序。隨著工作站服務(wù)器
功能的增強(qiáng)和廣泛使用,人們開始把DBMS功能和應(yīng)
用分開,網(wǎng)絡(luò)中某個(gè)(些)節(jié)點(diǎn)上的計(jì)算機(jī)專門用于
執(zhí)行DBMS功能,稱為數(shù)據(jù)庫(kù)服務(wù)器,簡(jiǎn)稱服務(wù)器;
其他節(jié)點(diǎn)上的計(jì)算機(jī)安裝DBMS的外圍應(yīng)用開發(fā)程客戶機(jī)
(微機(jī))
序,支持用戶的應(yīng)用,稱為客戶機(jī),這就是客戶/服
務(wù)器結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng),如圖1-4所示。
圖1-4客戶/服務(wù)器結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)
在客戶/服務(wù)器結(jié)構(gòu)中,客戶端的用戶請(qǐng)求被傳
送到數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行處理后,只將結(jié)果返回給用戶(而不是整個(gè)數(shù)據(jù)),從而顯
著減少了網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量,提高了系統(tǒng)的性能、吞吐量和負(fù)載能力;另一方面,客戶/服務(wù)器
結(jié)構(gòu)的數(shù)據(jù)庫(kù)往往更加開放??蛻襞c服務(wù)器一般都能在多種不同的硬件和軟件平臺(tái)上運(yùn)行,可以
使用不同廠商的數(shù)據(jù)庫(kù)應(yīng)用開發(fā)程序,應(yīng)用程序具有更強(qiáng)的可移植性,同時(shí)也可以減少軟件維護(hù)
開銷。
4.分布式結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)
分布式結(jié)構(gòu)是指數(shù)據(jù)庫(kù)中的數(shù)據(jù)在邏輯上是一個(gè)整體,但物理地分布在計(jì)算機(jī)網(wǎng)絡(luò)的不同節(jié)
點(diǎn)上。網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都可以獨(dú)立處理本地?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù),執(zhí)行局部應(yīng)用;同時(shí)也可以同時(shí)
存取和處理多個(gè)異地?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù),執(zhí)行全局應(yīng)用,如圖1-5所示。它的優(yōu)點(diǎn)是適應(yīng)地理上分散
的公司、團(tuán)體和組織對(duì)于數(shù)據(jù)庫(kù)應(yīng)用的需求。不足的是數(shù)據(jù)的分布存放給數(shù)據(jù)的處理、管理與維
護(hù)帶來困難;當(dāng)用戶需要經(jīng)常訪問遠(yuǎn)程數(shù)據(jù)時(shí),系統(tǒng)效率會(huì)明顯地受到網(wǎng)絡(luò)交通的制約。
客戶機(jī)客戶機(jī)
(微機(jī))(微機(jī))
服務(wù)器服務(wù)器
服務(wù)器服務(wù)器
客戶機(jī)客戶機(jī)
(微機(jī))(微機(jī))
圖1-5分布式結(jié)構(gòu)數(shù)據(jù)庫(kù)系統(tǒng)
6
01-02.indd62022/8/1617:18:23
第1章?數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
1.3關(guān)系數(shù)據(jù)庫(kù)
1.3.1?關(guān)系數(shù)據(jù)庫(kù)概述屬性名
在關(guān)系數(shù)據(jù)庫(kù)中,一個(gè)關(guān)系就是一張二維表,它由行和列
元組
組成,如圖1-6所示。(t)
非碼非碼
表中的一行就是一個(gè)元組(也稱記錄),表中的列為一個(gè)屬候選碼
性,給每個(gè)屬性起一個(gè)名即為屬性名(也稱字段名)。關(guān)系數(shù)據(jù)(主碼)
庫(kù)的特點(diǎn)是:圖1-6關(guān)系(表)的結(jié)構(gòu)
(1)關(guān)系中每個(gè)字段(屬性)不可再分,是數(shù)據(jù)庫(kù)中的最基本單位。
(2)每一列字段是同屬性的。每個(gè)列的順序是任意的。
(3)每一行記錄由一個(gè)事物的諸字段項(xiàng)構(gòu)成。記錄的順序可以是任意的。
(4)不允許有相同的字段名,也不允許有相同的記錄行。每個(gè)關(guān)系都有主碼關(guān)鍵字(Key)的
屬性集合,用以唯一標(biāo)識(shí)關(guān)系中的各個(gè)記錄行。
(5)解決實(shí)際問題往往需要多個(gè)關(guān)系,關(guān)系和關(guān)系是有聯(lián)系的,這種聯(lián)系也用關(guān)系表示。
在一個(gè)給定的應(yīng)用領(lǐng)域中,所有關(guān)系及關(guān)系之間聯(lián)系的關(guān)系的集合構(gòu)成一個(gè)關(guān)系數(shù)據(jù)庫(kù)。
1.3.2?關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)
數(shù)據(jù)庫(kù)的設(shè)計(jì)質(zhì)量,直接影響數(shù)據(jù)庫(kù)管理系統(tǒng)對(duì)數(shù)據(jù)的控制質(zhì)量。數(shù)據(jù)庫(kù)設(shè)計(jì)是指對(duì)于一個(gè)
給定的應(yīng)用環(huán)境,根據(jù)用戶的信息要求、處理需求和數(shù)據(jù)庫(kù)的支撐環(huán)境,利用數(shù)據(jù)模型和應(yīng)用程
序模擬現(xiàn)實(shí)世界中該單位的數(shù)據(jù)結(jié)構(gòu)和處理活動(dòng)的過程,是數(shù)據(jù)設(shè)計(jì)和數(shù)據(jù)處理設(shè)計(jì)的結(jié)合。規(guī)
范化的數(shù)據(jù)庫(kù)設(shè)計(jì)要求數(shù)據(jù)庫(kù)內(nèi)的數(shù)據(jù)文件的數(shù)據(jù)組織應(yīng)獲得最大程度的共享、最小的冗余度,
消除數(shù)據(jù)及數(shù)據(jù)依賴關(guān)系中的冗余部分,使依賴于同一個(gè)數(shù)據(jù)模型的數(shù)據(jù)達(dá)到有效的分離。保證
在輸入、修改數(shù)據(jù)時(shí)數(shù)據(jù)的一致性和正確性,保證數(shù)據(jù)與使用數(shù)據(jù)的應(yīng)用程序之間的高度獨(dú)立性。
同時(shí)在設(shè)計(jì)時(shí)還要將數(shù)據(jù)和操作數(shù)據(jù)的行為緊密結(jié)合起來,保證數(shù)據(jù)的完整性約束。
1.需求分析
需求分析階段的任務(wù)是收集數(shù)據(jù)庫(kù)所需要的信息內(nèi)容和數(shù)據(jù)處理規(guī)則,確定建立數(shù)據(jù)庫(kù)的目
的。在需求分析調(diào)研中,必須和用戶充分討論,確定數(shù)據(jù)庫(kù)所要進(jìn)行的數(shù)據(jù)處理范圍,數(shù)據(jù)處理
的流程以及數(shù)據(jù)取值范圍的界定。
描述需求分析常用的方法有數(shù)據(jù)流圖、數(shù)據(jù)字典等。
2.概念結(jié)構(gòu)設(shè)計(jì)
概念結(jié)構(gòu)設(shè)計(jì)是對(duì)現(xiàn)實(shí)世界的一種抽象,即對(duì)實(shí)際的人、物、事和概念進(jìn)行人為處理,抽取
人們關(guān)心的共同特性,忽略非本質(zhì)的細(xì)節(jié),并把這些特性用各種概念精確地加以描述。
為了能夠完成上述目標(biāo),我們把現(xiàn)實(shí)世界中客觀存在并可相互區(qū)別的事物稱為實(shí)體(Entity)。
如一個(gè)職工、一個(gè)學(xué)生、一個(gè)部門、學(xué)生的一次選課、老師與系的工作關(guān)系。
把描述實(shí)體的某一特性稱為屬性(Attribute),一個(gè)實(shí)體可以由若干個(gè)屬性值來描述。如一個(gè)學(xué)生
實(shí)體可以由學(xué)號(hào)、姓名、性別、出生日期等屬性的屬性值(20021001、張三、男、1986-5-6)來描述。
同類實(shí)體中的實(shí)體彼此之間是可以區(qū)別的,能夠唯一標(biāo)識(shí)實(shí)體的屬性集合稱作實(shí)體的碼或關(guān)鍵字。
實(shí)體集之間存在各種聯(lián)系(Relationship),主要有三類:一對(duì)一聯(lián)系(1:1)、一對(duì)多聯(lián)系(1:n)、
7
01-02.indd72022/8/1617:18:23
MySQL數(shù)據(jù)庫(kù)原理及實(shí)踐教程
多對(duì)多聯(lián)系(m:n)。
1)一對(duì)一聯(lián)系(1∶1)
對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有0個(gè)或1個(gè)實(shí)體與之聯(lián)系,反之亦然,則稱實(shí)
體集A與實(shí)體集B具有一對(duì)一的聯(lián)系。
例如,一個(gè)班級(jí)只有一個(gè)班長(zhǎng),一個(gè)班長(zhǎng)只在一個(gè)班中任職,則班級(jí)與班長(zhǎng)之間具有一對(duì)一聯(lián)系。
2)一對(duì)多聯(lián)系(1∶n)
對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有0個(gè)或多個(gè)實(shí)體與之聯(lián)系,反之,對(duì)于實(shí)體集B
中的每一個(gè)實(shí)體,實(shí)體集A中有0個(gè)或1個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B具有一對(duì)多的聯(lián)系。
例如,一個(gè)班級(jí)有若干個(gè)學(xué)生,每個(gè)學(xué)生只在一個(gè)班級(jí)中學(xué)習(xí),則班級(jí)與學(xué)生之間具有一對(duì)多聯(lián)系。
3)多對(duì)多聯(lián)系(m∶n)
對(duì)于實(shí)體集A中的每一個(gè)實(shí)體,實(shí)體集B中有0個(gè)或多個(gè)實(shí)體與之聯(lián)系,反之,對(duì)于實(shí)體集B
中的每一個(gè)實(shí)體,實(shí)體集A中有0個(gè)或多個(gè)實(shí)體與之聯(lián)系,則稱實(shí)體集A與實(shí)體集B具有多對(duì)多的聯(lián)系。
例如,一門課程同時(shí)有若干個(gè)學(xué)生選修,而一個(gè)學(xué)生同時(shí)選修多門課程,則課程與學(xué)生之間
具有多對(duì)多聯(lián)系。
描述概念模型的有力工具是E-R模型。
3.邏輯結(jié)構(gòu)設(shè)計(jì)
關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合。E-R圖則是由實(shí)體、實(shí)體的屬性和實(shí)體之間的
聯(lián)系三個(gè)要素組成的。所以將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要將實(shí)體、實(shí)體的屬性和實(shí)體之
間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,這種轉(zhuǎn)換一般遵循如下原則:
1)實(shí)體與實(shí)體屬性的轉(zhuǎn)換
一個(gè)實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性。實(shí)體的碼就是關(guān)系的碼。
例如,學(xué)生實(shí)體可以轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)為學(xué)生關(guān)系的碼。
學(xué)生(學(xué)號(hào),姓名,年齡,所在系)。
2)實(shí)體間聯(lián)系的轉(zhuǎn)換
(1)一個(gè)1∶1聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與任意一端對(duì)應(yīng)的關(guān)系模式合并。
如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換
為關(guān)系的屬性,每個(gè)實(shí)體的碼均是該關(guān)系的候選碼。
如果與某一端對(duì)應(yīng)的關(guān)系模式合并,則需要在該關(guān)系模式的屬性中加入另一個(gè)關(guān)系模式的碼
和聯(lián)系本身的屬性。
例如,有一個(gè)學(xué)生管理的聯(lián)系,即一個(gè)職工管理一個(gè)班級(jí),一個(gè)班級(jí)只能由一個(gè)職工管理,
該聯(lián)系為1∶1聯(lián)系,將其轉(zhuǎn)換為關(guān)系模式有以下三種方法:
a.轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式
管理(職工號(hào),班級(jí)號(hào))
b.將其與班級(jí)關(guān)系模式合并,增加職工號(hào)屬性,即
班級(jí)(班級(jí)號(hào),學(xué)生人數(shù),職工號(hào))
c.將其與教師關(guān)系模式合并,增加班級(jí)號(hào)屬性,即
教師(職工號(hào),姓名,性別,職稱,班級(jí)號(hào))
推薦使用合并的方法。
(2)一個(gè)1∶n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。
8
01-02.indd82022/8/1617:18:23
第1章?數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換
為關(guān)系的屬性,而關(guān)系的碼為n端實(shí)體的碼。
例如,假如有一個(gè)學(xué)生組成的聯(lián)系,即一個(gè)學(xué)生只能屬于一個(gè)班級(jí),一個(gè)班級(jí)可能有多個(gè)學(xué)
生,該聯(lián)系為1∶n聯(lián)系,將其轉(zhuǎn)換為關(guān)系模式有兩種方法:
a.轉(zhuǎn)換成一個(gè)獨(dú)立的關(guān)系模式
組成(學(xué)號(hào),班級(jí)號(hào))
b.將其與學(xué)生關(guān)系模式合并,增加班級(jí)號(hào)屬性,即
學(xué)生(學(xué)號(hào),姓名,年齡,所在系,班級(jí)號(hào))
推薦使用合并的方法。
(3)一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。
與該聯(lián)系相連的各實(shí)體的碼以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性。而關(guān)系的碼為各實(shí)體
碼的組合。
例如,有一個(gè)學(xué)生選修的聯(lián)系,即一個(gè)學(xué)生可以選修多門課程,一門課程可以被多個(gè)學(xué)生選修,
該聯(lián)系是一個(gè)m:n聯(lián)系,將其轉(zhuǎn)換為如下關(guān)系模式。
選修(學(xué)號(hào),課程號(hào),成績(jī))
4.?dāng)?shù)據(jù)表的優(yōu)化與規(guī)范化
在數(shù)據(jù)需求分析的基礎(chǔ)上,進(jìn)行概念結(jié)構(gòu)和邏輯結(jié)構(gòu)設(shè)計(jì),并將數(shù)據(jù)信息分割成數(shù)個(gè)大小適
當(dāng)?shù)臄?shù)據(jù)表。如我們可以得到學(xué)生的相關(guān)數(shù)據(jù)信息(見表1-1),學(xué)生選課數(shù)據(jù)表包含SNO(學(xué)號(hào))、
SNAME(姓名)、SSSN(身份證號(hào))、SDEPA(所在院系)、SMTEL(電話)、SCITY(城市)、CNO(課
程編號(hào))、CNAME(課程名稱)、GRADE(成績(jī))等屬性。
表1-1學(xué)生選課數(shù)據(jù)表
SNOSNAMESSSNSDEPASMTELSCITYCNOCNAMEGRADE
060101王東民******19880526***計(jì)算機(jī)135****杭州102C語(yǔ)言90
060102張小芬******19891001***計(jì)算機(jī)131****寧波102C語(yǔ)言95
060103李鵬飛******19871021***計(jì)算機(jī)139****溫州103數(shù)據(jù)結(jié)構(gòu)88
060101王東民******19880526***計(jì)算機(jī)135*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年適用房產(chǎn)中介協(xié)議樣本
- 天津乙烯項(xiàng)目遺留問題修繕工程招標(biāo)文件
- 足球經(jīng)紀(jì)合同范本
- 模具廠勞動(dòng)合同范本
- 展會(huì)承辦合同范本
- 租地押金合同范本
- 齊齊哈爾大學(xué)《材料力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 正確的二手車買賣合同范本
- 2024年肉桂酸市場(chǎng)規(guī)模分析:中國(guó)是全球肉桂酸主要消費(fèi)國(guó)之一
- 水電帶班合同范本
- 高考數(shù)學(xué)小題狂練:每題都附有詳細(xì)解析
- 浮動(dòng)碼頭施工方案
- Poka-Yoke防錯(cuò)技術(shù)(完整版)
- 保安交接班記錄表(2)
- 神明—EZflame火焰檢測(cè)系統(tǒng)
- 個(gè)人簡(jiǎn)歷求職簡(jiǎn)歷課件.ppt
- 2018年江蘇高考滿分作文:在母語(yǔ)的屋檐下
- 新青島版五四制2021-2022四年級(jí)科學(xué)上冊(cè)實(shí)驗(yàn)指導(dǎo)
- 小學(xué)四年級(jí)音樂課程標(biāo)準(zhǔn)
- 雙向細(xì)目表和單元測(cè)試卷及組卷說明
- 離子色譜法測(cè)定空氣中二氧化硫
評(píng)論
0/150
提交評(píng)論