數(shù)據(jù)庫知識點總結
題型:選擇,填空,簡答,
綜合題:1.SQL語句2.會畫ER圖
3.ER圖與關系模式的轉換
4.視圖的創(chuàng)建,更新,修改,刪除
5.關系代數(shù)表達式6.模式分解(第四章的P60-70頁要好好看看,這里會出題,然后就是把P60
頁的那個表,要會分解,分解之后的形式如P82所示。)
7.范式(要好好看看定義!要知道什么是第一,第二,第三范式)
第一章緒論
1.數(shù)據(jù)管理技術的發(fā)展階段3個:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫系統(tǒng)階段。2.數(shù)據(jù)庫系統(tǒng)主要由四部分組成:數(shù)據(jù)庫、軟件系統(tǒng)、硬件系統(tǒng)、用戶。3.數(shù)據(jù)模型的組成要素:數(shù)據(jù)結構、數(shù)據(jù)操作、完整性約束。
4.數(shù)據(jù)模型分類:層次模型、網(wǎng)狀模型、關系模型、面向對象模型。5.數(shù)據(jù)庫系統(tǒng)的三級模式結構:概念模式、外模式、內模式。
6.數(shù)據(jù)庫系統(tǒng)的二級映像:外模式/模式映像、模式/內模式映像。7.概念模型中實體的聯(lián)系:[1]一對一聯(lián)系(1:1);
[2]一對多聯(lián)系(1:n);[3]多對多聯(lián)系(m:n)
第二章關系數(shù)據(jù)庫基礎
1.關系模型的三類完整性約束:實體完整性規(guī)則、參照完整性規(guī)則、用戶自定義完
整性規(guī)則。
第三章關系數(shù)據(jù)庫標準語言SQL
1.視圖的作用:(1)著重于特定數(shù)據(jù);(2)簡化了數(shù)據(jù)操作;(3)提供一定程度的邏輯獨立性;
(4)視圖機制把要保密的數(shù)據(jù)對無權存取這些數(shù)據(jù)的用戶隱藏起來,
對數(shù)據(jù)提供了一定程度的安全保護。第四章規(guī)范化理論
1.關系模式中可能存在的問題:Ⅰ、數(shù)據(jù)冗余;
Ⅱ、更新異常:a.插入異常;b.修改異常;c.刪除異常。
2.范式P77-P793.P80模式分解
第五章數(shù)據(jù)庫設計
1.數(shù)據(jù)庫的設計6步驟:需求分析階段、概念結構設計階段、邏輯結構設計階段、物
理設計階段、數(shù)據(jù)庫實施階段、數(shù)據(jù)庫運行和維護階段。第六章關系查詢處理和查詢優(yōu)化
1.查詢處理的步驟:查詢分析、查詢檢查、查詢優(yōu)化、查詢執(zhí)行。2.查詢的執(zhí)行代價:總代價=I/O代價+CPU代價3.查詢優(yōu)化一般策略:(1)選擇運算盡早執(zhí)行
(2)把投影運算和選擇運算同時進行
(3)把投影操作與它前面或后面的一個雙目運算結合起來(4)執(zhí)行連續(xù)運算之前進行預處理
(5)把笛卡爾積和其后的選擇運算合并為連接運算
(6)存儲公用子表示式第七章數(shù)據(jù)庫完整性和安全性
1.數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性、有效性和相容性。
2.數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫避免不合法的使用,以防數(shù)據(jù)泄露、更改或破壞。3.存取控制機制:(1)定義用戶權限,單將用戶權限登記到數(shù)據(jù)字典中;(2)合法權限檢查
主要有a.自主存取控制方法(DAC)b.強制存取控制方法(MAC)第八章數(shù)據(jù)庫恢復和并發(fā)控制
1.事務是數(shù)據(jù)庫恢復和并發(fā)控制的基本單位2.事務(概念):是用戶定義的一個數(shù)據(jù)操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。3.事務的性質:(1)原子性;(2)一致性;(3)隔離性;(4)持續(xù)性。4.故障的種類:(1)事務故障;(2)系統(tǒng)故障;(3)介質故障;(4)計算機病毒和人為破壞。5.恢復的實現(xiàn)技術:(1)數(shù)據(jù)轉儲;(2)登記日志文件。
6.登記日記文件時必須遵循兩條原則:(1登記的次序嚴格按并行事務執(zhí)行的時間次序。(2必須先寫日志文件,后寫數(shù)據(jù)庫。
8.并發(fā)操作帶來的問題:(1)丟失修改;(2)不可重復讀;(3)讀“臟”數(shù)據(jù)。如課
本的P152的圖8.3,要看懂那三個圖。
9.避免活鎖的方法:先來先服務;預防死鎖的方法:一次封鎖和順序封鎖法。
10.封鎖就是事務T在對某個數(shù)據(jù)對象(如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請求,對其加鎖。加鎖后事務T就對該數(shù)據(jù)庫對象有了一定的控制,在事務T釋放它的鎖之前,其他事務不能更新此數(shù)據(jù)對象。
11.排他鎖又稱為寫鎖、獨占鎖,若事務T對數(shù)據(jù)對象A加上X鎖,則只允許T讀取和修改A,其他任何事務都不能再對A加任何類型的鎖,直到T釋放A上的鎖。12.共享鎖又稱為讀鎖。若事務T對數(shù)據(jù)對象A加上S鎖,則事務T可以讀A但不能
修改A,其他事務只能再對A加S鎖,而不能加X鎖,直到T釋放A上的S鎖。
擴展閱讀:數(shù)據(jù)庫知識點總結
題型:
一、選擇題(每題1分,共10分)二、簡答題:(每題10分,共30分)
三、應用題:(第1題15分,第2題45分,共60分)
考試范圍:第一章
1、數(shù)據(jù)、的定義描述事物的符號記錄稱為數(shù)據(jù)。
數(shù)據(jù)庫是長期儲存在計算機內的、有組織的、可共享的數(shù)據(jù)集合。
2、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)的特點(了解)3、DBMS的功能(了解)
4、實體間聯(lián)系的三種類型(1:1,1:n,m:n)5、E-R圖的畫法
a、不必畫出中間步驟。b、標出實體間聯(lián)系的類型。c、只需畫出關鍵字對應的屬性。
6、數(shù)據(jù)庫系統(tǒng)的組成、核心7、數(shù)據(jù)庫設計的步驟
第二章認識關系運算符第五章
1、數(shù)據(jù)庫的創(chuàng)建CREATEDATABASE2、創(chuàng)建表CREATETABLE3、數(shù)據(jù)插入INSERT4、數(shù)據(jù)修改UPDATE5、數(shù)據(jù)刪除DELETE
第六章
1、相關子查詢和非相關子查詢之間的區(qū)別2、視圖的優(yōu)點(了解)3、數(shù)據(jù)查詢SELECT:
1)內連接2)分組、統(tǒng)計函數(shù)3)排序4)非相關子查詢
第七章
1、觸發(fā)器的寫法
小結(第一章課件34到56第五章課件64到75
第六章課件(SELECT語句,內連接,分組、統(tǒng)計函數(shù),排序,非相關子查詢)重點第七章課件58到71)
數(shù)據(jù)(DATA,簡稱D)
定義:描述事物的符號記錄稱為數(shù)據(jù)。數(shù)據(jù)庫(DataBase,簡稱DB)
.定義:是長期儲存在計算機內的、有組織的、可共享的數(shù)據(jù)集合。.特點:
(1)數(shù)據(jù)庫中的數(shù)據(jù)按照一定的數(shù)據(jù)模型組織、描述和儲存。
(2)具有較小的冗余度。
(3)較高的數(shù)據(jù)獨立性和易擴展性,并可為各種用戶共享。數(shù)據(jù)庫管理系統(tǒng)(DBMS)主要功能:
1)數(shù)據(jù)定義功能:。
2)數(shù)據(jù)組織、存儲和管理功能:3)數(shù)據(jù)操縱功能:4)數(shù)據(jù)庫的事務管理和運行管理5)數(shù)據(jù)庫的建立和維護功能簡答題:
1.相關子查詢和非相關子查詢之間的區(qū)別
a)非相關子查詢是獨立于外部查詢的子查詢,子查詢總共執(zhí)行一次,執(zhí)行完畢后將值
傳遞給外部查詢。
b)相關子查詢是內層子查詢條件依賴于外層父查詢的某個屬性值的子查詢,外部查詢
執(zhí)行一行,子查詢就執(zhí)行一次。2.數(shù)據(jù)庫設計的步驟
1需求分析;2概念結構設計;3邏輯結構設計;4數(shù)據(jù)庫物理設計數(shù)據(jù)庫實施;5數(shù)據(jù)庫運行和維護
3.視圖的優(yōu)點(了解)
(1)為用戶集中數(shù)據(jù),簡化用戶的數(shù)據(jù)查詢和處理。(2)屏蔽數(shù)據(jù)庫的復雜性。(3)簡化用戶權限的管理。(4)便于數(shù)據(jù)共享。
(5)可以重新組織數(shù)據(jù)以便輸出到其他用程序中。
例5-1創(chuàng)建一個名為BookSys的數(shù)據(jù)庫。例5-2創(chuàng)建一個名為KEJI_DB的數(shù)據(jù)庫。要求有三個文件,其中,主數(shù)據(jù)文件為10MB,最大大小為50MB,每次增長20%;輔助數(shù)據(jù)文件屬于文件組Fgroup,文件為10MB,大小不受限制,每次增長10%;事務日志文件大小為20MB,最大100MB,每次增長10MB。文件存儲在‘c:\\db’路徑下。
CREATEDATABASEKEJI_DB/*數(shù)據(jù)庫名*/
ONPRIMARY/*主文件組*/(NAME="KEJI_DB_Data1",/*主文件邏輯名稱*/FILENAME="c:\\db\\KEJI_DB_Data1.mdf",/*主文件物理名稱*/SIZE=10mb,MAXSIZE=50mb,FILEGROWTH=20%),
FILEGROUPFgroup/*文件組*/(NAME="KEJI_DB_Data2",/*主文件邏輯名稱*/FILENAME="c:\\db\\KEJI_DB_Data2.ndf",/*主文件物理名稱*/
MAXSIZE=UNLIMITED,/*增長不受限制*/SIZE=10Mb,FILEGROWTH=10mb)LOGON
(NAME="KEJI_DB_Log",/*日志文件邏輯名稱*/FILENAME="c:\\db\\KEJI_DB_Log.ldf",
/*日志文件物理名稱*/SIZE=20mb,MAXSIZE=100mb,FILEGROWTH=10mb)
使用SQL語句(1)修改數(shù)據(jù)庫內容語法:
ALTERDATABASEdatabase_name{ADDFILE[,…n]
[TOFILEGROUPfilegroup_name]/*在文件組中增加數(shù)據(jù)文件*/
|ADDLOGFILE[,…n]/*增加事務日志文件*/
|REMOVEFILElogical_file_name/*刪除數(shù)據(jù)文件*/
|ADDFILEGROUPfilegroup_name/*增加文件組*/|REMOVEFILEGROUPfilegroup_name/*刪除文件組*/|MODIFYFILE[,…n]
/*修改文件屬性*/|MODIFYNAME=new_dbname/*更新數(shù)據(jù)庫名稱*/}例:使用觸發(fā)器判斷插入的工資數(shù)據(jù),如果工資超過100,000則不允許插入。CREATETABLEtrig_example(idINT,
nameVARCHAR(10),salaryMONEY)GO
CREATETRIGGERinsertrigONtrig_exampleFORINSERTAS
IF(SELECTCOUNT(*)FROMINSERTEDWHEREsalary>100000)>0BEGIN
PRINT"數(shù)據(jù)插入錯誤:您試圖插入一個大于$100,000的工資數(shù)據(jù)!"ROLLBACKTRANSACTION--事務回滾END`
1.使用后級觸發(fā)器的插入和刪除
例題:使用(后級)觸發(fā)器判斷插入的工資數(shù)據(jù),如果工資超過100,000則不允許插入。CREATETABLEtrig_example(idINT,
nameVARCHAR(10),salaryMONEY)GO
CREATETRIGGERinsertrigONtrig_exampleFORINSERTAS
IF(SELECTCOUNT(*)FROMINSERTEDWHEREsalary>100000)>0BEGIN
PRINT"數(shù)據(jù)插入錯誤:您試圖插入一個大于$100,000的工資數(shù)據(jù)!"ROLLBACKTRANSACTION--事務回滾END
練習:使用后級觸發(fā)器對數(shù)據(jù)刪除操作進行檢查,如果刪除工資大于5000的記錄時提示錯誤信息,并回滾到刪除前的狀態(tài)。
Insertintotrig_exampleValues(1,"tom",201*)Insertintotrig_exampleValues(2,"marry",6000)Insertintotrig_exampleValues(3,"rose",8000)
CREATETRIGGERdeletedONtrig_exampleFORdeleteAS
IF(SELECTCOUNT(*)FROMdeletedWHEREsalary>100000)>0BEGIN
PRINT"數(shù)據(jù)插入錯誤:您試圖刪除一個大于$100,000的工資數(shù)據(jù)!"ROLLBACKTRANSACTION--事務回滾END
.使用前級級觸發(fā)器的插入和刪除
1.使用前級觸發(fā)器判斷插入trig_example表的工資數(shù)據(jù),如果工資超過100,000則不允許插入。
CREATETRIGGERinsert_trig_exampleONtrig_exampleInsteadofinsertAS
declare@salarymoney
select@salary=salaryfrominsertedIF@salary>1000print"wongdata!"elsebegin
insertintotrig_exampleselect*frominsertedend
2.使用前級觸發(fā)器對trig_example表的數(shù)據(jù)刪除操作進行檢查,如果刪除工資大于5000的記錄時提示錯誤信息,不刪除記錄;否則刪除相應記錄。
CREATETRIGGERdelete_trig_exampleONtrig_exampleInsteadofdeleteAS
declare@idint,@salarymoneyselect@id=idfromdeletedIF@salary>100000print"刪除的數(shù)據(jù)大于!"elsebegin
deletetrig_examplewhere@id=idend
五、(12分)某商店管理涉及商店、商品和職工三個實體,它們分別具有下列屬性:
商店:商店編號,店名,店址,店經(jīng)理商品:商品編號,商品名,單價,產(chǎn)地職工:職工編號,職工名,性別,工資這些實體間的聯(lián)系如下:百貨公司管轄若干個連鎖商店,每家商店經(jīng)營若干商品,每家商店有若干職工,但每個職工只能服務于一家商店。職工參加某商店工作有開始時間,商店銷售商品的有月銷售量。①請畫出商店、商品和職工的ER圖。②將該ER圖轉換為關系數(shù)據(jù)模型。
答:實體:商店(商店編號,店號,店址,店經(jīng)理)(0.5分)商品(商品編號,商品名,單價,產(chǎn)地)(0.5分)職工(職工編號,職工名,性別,工資)(0.5分)聯(lián)系:P1-商店銷售商品的有銷售量間(0.5分)P2-職工參加某商店工作的開始時(0.5分)ER圖:(5分)
關系模式集:商店模式(商店編號,店號,店址,店經(jīng)理)(0.5分)商品模式(商品編號,商品名,單價,產(chǎn)地)(0.5分)
職工模式(職工編號,職工名,性別,工資,商店編號,開始時間)分)
P1模式(商店編號,商品編號,月銷售量)(0.5分)
2.使用sql語句創(chuàng)建表authors,結構如下表所示(本題8分)列名數(shù)據(jù)類型大小是否為空默認值說明authorIDint4N編號(主鍵),自動增長authorNamenvarchar50N姓名Phonenvarchar13Y電話addressnvarchar255Y地址
2.createtableauthors
(authoridintidentity(1,1)primarykeynotnull,authornamenvarchar(50)notnull,phonenvarchar(13)null,addressnvarchar(255))
3.使用SQL語句對2中創(chuàng)建的authors表進行如下修改:(每小題5分,共15分)(1)添加Sex列char(2),city列varchar(20)。(2)刪除city列。
(3)修改作者信息表authors中的address列將該列的屬性的長度更改為500。3.(1)altertableauthors
addsexchar(2)null,citynvarchar(20)null;(2)altertableauthorsdropcolumncity(3)altertableauthors
altercolumnaddressnvarchar(500)notnull
5.表結構的修改
1(使用SQL語句將ygqk表的“姓名”列的數(shù)據(jù)類型改為varchar,長度
為20;
使用SQL語句在xmqk表中添加新列"立項時間",類型為datetime;使用SQL語句刪除xmqk表中的"立項時間"列。
useyeelgo
altertableygqk
altercolumnnamevarchar(20)
useyeelgo
altertablexmqk
addlixiangshijiandatetime
useyeelgo
altertablexmqk
dropcolumnlixiangshijian
4.表中數(shù)據(jù)的修改和刪除
使用SQL語句將ygqk表中第一條記錄的"郵政編碼"改為"450044"刪除ygqk表中出生日期在"1960-1-1"日之前的員工信息;
useyeelgo
updateygqk
setzip="450044"
useyeelgo
deleteygqk
wherebirthdayaltertable成績表add總成績float
update成績表
set總成績=數(shù)學+英語+數(shù)據(jù)庫+操作系統(tǒng)/*4*/
altertable成績表add平均成績float
update成績表
set平均成績=(數(shù)學+英語+數(shù)據(jù)庫+操作系統(tǒng))/4
selectsno學號,(數(shù)學+英語+數(shù)據(jù)庫+操作系統(tǒng))/4平均成績from成績表
where數(shù)學>=60and英語>=60and數(shù)據(jù)庫>=60and操作系統(tǒng)>=60/*5*/
6.1.4函數(shù)的使用練習:
1.查詢男生(女生)的人數(shù)。2.查詢‘計算06’班的最小年齡selectcount(*)fromstudentwheressex="男"
selectmax(sbirthday)fromstudent
6.1.5查詢結果排序練習:
1.查詢所有學生的信息,將結果按系別降序、班級升序排列。
2.查詢‘信息系’年齡最大的3個學生的信息select*
fromstudent
orderbydepartdesc
selecttop3sno,sname,sage,departfromstudent
wheredepart="信息系"orderbysagedesc6.1.6使用分組練習:
1.查詢人數(shù)大于等于3的班級。2.查詢各個姓氏的學生人數(shù)。selectclass,count(*)fromstudentgroupbyclasshavingcount(*)>=3
selectleft(sname,1)as姓氏,count(*)as人數(shù)fromstudent
groupbyleft(sname,1)6.2.1連接查詢
2.查詢學生的學號,所選課程的課程號、課程名和學分。
3.查詢學生的學號、姓名,所選課程的課程號、課程名和成績信息。selectsno,score.cno,cname,creditfromcourseinnerjoinscoreonscore.cno=course.cno/*92頁題*/
selectsname,student.sno,score.cno,cname,degreefromcourse,score,student
wherestudent.sno=score.snoandscore.cno=course.cno/*92頁題*/6.2.1連接查詢
3.查詢每門課程間接先行課的先行課
selectfrist.cno,frist.cpno,second.cpno,third.cpnofrom課程表frist,課程表second,課程表third
wherefrist.cpno=second.cnoandsecond.cpno=third.cnoandthird.cpnoisnotnull/*109頁題*/6.2.3子查詢練習:
1.查詢選修了‘C語言’的學生學號。selectsnofromscorewherecno=(selectcnofromcourse
wherecname="C語言")/*139頁題*/6.2.3子查詢
3.查詢選修了“C語言”的學生姓名selectsnamefromStudentwheresnoin
(selectsnofromScorewherecno=
(selectcnofromCoursewherecname="c語言"))/*145頁第三題*/
友情提示:本文中關于《數(shù)據(jù)庫知識點總結》給出的范例僅供您參考拓展思維使用,數(shù)據(jù)庫知識點總結:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權問題,請聯(lián)系我們及時刪除。