【正文】
create table sc(s char(9)c char(5)grade float primary out key s from s primary out key c from c)實(shí)驗(yàn)結(jié)果: 測(cè)試用例: drop table sc 實(shí)驗(yàn)結(jié)果:C:插入元組 測(cè)試用例:insert into s values(39。s139。,39。lou39。,21,39。F39。)insert into s values(39。s239。,39。lu39。,20,39。F39。)insert into s values(39。s339。,39。ha39。,22,39。M39。)insert into s values(39。s439。,39。zhang39。,21,39。F39。)insert into s values(39。s539。,39。qian39。,20,39。M39。)insert into s values(39。s639。,39。sun39。,18,39。F39。)insert into s values(39。s739。,39。lisan39。,21,39。F39。)insert into s values(39。s839。,39。qian39。,20,39。M39。)insert into s values(39。s939。,39。wugozi39。,18,39。F39。)insert into c values(39。c139。,39。math39。,39。zhao39。)insert into c values(39。c239。,39。chinese39。,39。qian39。)insert into c values(39。c339。,39。english39。,39。sun39。)insert into c values(39。c439。,39。cs39。,39。li39。)insert into c values(39。c539。,39。java39。,39。zhou39。)insert into c values(39。c639。,39。c++39。,39。wu39。)insert into c values(39。c739。,39。jsp39。,39。zheng39。)insert into c values(39。c839。,39。j2ee39。,39。wang39。)insert into c values(39。c939。,39。asp39。,39。sima39。)insert into sc values(39。s139。,39。c139。,67)insert into sc values(39。s239。,39。c239。,80)insert into sc values(39。s339。,39。c339。,100)insert into sc values(39。s439。,39。c439。,99)insert into sc values(39。s539。,39。c539。,87)insert into sc values(39。s639。,39。c639。,78)insert into sc values(39。s739。,39。c739。,90)insert into sc values(39。s839。,39。c839。,87)insert into sc values(39。s939。,39。c939。,78)實(shí)驗(yàn)結(jié)果:d:刪除元組 測(cè)試用例:delete from sc where(=39。s639。)實(shí)驗(yàn)結(jié)果:e:修改元組 測(cè)試用例:update sc set score=120 where s=39。s539。 實(shí)驗(yàn)結(jié)果:f:添加屬性 測(cè)試用例:Alter table s add school char(20)實(shí)驗(yàn)結(jié)果:g:刪除屬性 測(cè)試用例:Alter table drop school(1)功能介紹,記錄完成操作花費(fèi)的時(shí)間,在建立索引前的關(guān)系上執(zhí)行同樣的選擇操作并進(jìn)行時(shí)間代價(jià)的比較。,記錄完成操作花費(fèi)的時(shí)間,在建立索引前的關(guān)系上執(zhí)行同樣的選擇操作并進(jìn)行時(shí)間代價(jià)的比較。(2)相關(guān)理論默認(rèn)每個(gè)塊有50個(gè)字節(jié),數(shù)據(jù)文件中的每個(gè)元組有自己的首指針(指向元組首部的文件指針),索引文件中存儲(chǔ)的是屬性域值及其塊號(hào)(塊號(hào)通過其首指針/50得到)。(3)算法描述針對(duì)表的主鍵建立索引文件,找到數(shù)據(jù)文件中要建立索引的屬性域值,并記錄該元組的首指針,將其保存在索引文件中。在索引文件中找到“select”語句中“where”后的條件涉及的屬性(因?yàn)槭腔谥麈I建立的索引,所以只能通過主鍵的索引文件來查找相應(yīng)的信息),記錄索引域后的塊號(hào),將塊號(hào)*50就能得到相應(yīng)的文件指針,通過文件指針讀數(shù)據(jù)文件,就能找到相應(yīng)的元組。 找到相應(yīng)的索引文件將其永久刪除(4)程序流程圖開始數(shù)據(jù)字典有該屬性?是找到數(shù)據(jù)文件中要建立索引的屬性域記錄該元組的文件否指針并/50得到塊號(hào)一并寫入索引文件結(jié)束 開始查找索引文件中與“where”后條件相符的屬性域值找到?記錄該屬性域值得塊號(hào)否塊號(hào)*50得到文件指針查找數(shù)據(jù)文件找到該元組,輸出結(jié)束 開始找到該索引文件?是否將該索引文件徹底刪除結(jié)束 (5)測(cè)試用例與實(shí)驗(yàn)結(jié)果a:創(chuàng)建索引文件 測(cè)試用例:create index index on s 實(shí)驗(yàn)結(jié)果:b:利用索引選擇(1)功能介紹 (允許多條件)(允許多條件) 、投影和連接操作(2)相關(guān)理論(3)算法描述掃描數(shù)據(jù)字典,判斷是否有該表,如果有,則掃描數(shù)據(jù)文件,將數(shù)據(jù)文件中內(nèi)容全部輸出。掃描數(shù)據(jù)字典,判斷是否有該表,若有該表,記錄要投影的屬性是第幾個(gè),掃描數(shù)據(jù)文件,將每個(gè)元組中要查詢的屬性輸出。(允許多條件)掃描數(shù)據(jù)字典,判斷是否有該表,若有該表,掃描數(shù)據(jù)文件,利用循環(huán)將滿足“where”后條件的元組選出。(允許多條件)掃描數(shù)據(jù)字典,判斷是否有該表,若有該表,則記錄需要投影的屬性是第幾個(gè),查找數(shù)據(jù)文件,利用循環(huán)將滿足“where”條件的元組找出并屬性相應(yīng)的屬性值。掃描數(shù)據(jù)字典,判斷是否有這兩個(gè)表,若有,則查找相關(guān)屬性,將兩個(gè)表中的相關(guān)屬性依據(jù)條件進(jìn)行匹配,若匹配成功,則表示連接成功,輸出連接結(jié)果。 在以上的連接結(jié)果中挑選符合條件的元組輸出。、投影和連接操作 在以上的結(jié)果中選擇要投影的屬性,輸出。(4)程序流程圖開始掃描數(shù)據(jù)字典是否有該表?掃描數(shù)據(jù)文件并全部輸出結(jié)束 開始掃描數(shù)據(jù)字典是否有該表?是否有要投影的屬性否記錄要投影的屬性是第幾個(gè)掃描數(shù)據(jù)文件將該屬性值域輸出結(jié)束 (允許多條件)是是否開始掃描數(shù)據(jù)字典是否有該表?是記錄“where”條件并掃描是否掃描數(shù)據(jù)文件有與之匹配的元組?否輸出提示沒有符合條件的元組結(jié)束 表3,43 (允許多條件)開始掃描數(shù)據(jù)字典是否有該表?是記錄要投影的屬性是第幾個(gè)否記錄“where”條件并掃描掃描數(shù)據(jù)文件有與之匹配的元組?否是選擇要投影的屬性值域提示沒有符合條件的元組提示沒有符合條件的元組輸出結(jié)束 (5)測(cè)試用例與實(shí)驗(yàn)結(jié)果測(cè)試用例:select s,sname,age,sex from s where =39。qian39。19 實(shí)驗(yàn)結(jié)果:測(cè)試用例:select sname,age,sex from s where =39。s639。==39。li39。 實(shí)驗(yàn)結(jié)果:測(cè)試用例: link s,sc base sc 實(shí)驗(yàn)結(jié)果:測(cè)試用例: link s,c,sc base sc 實(shí)驗(yàn)結(jié)果:(1)功能介紹在做兩個(gè)表連接時(shí),先將需要用到的元組找到,并不做笛卡爾積,這在一定程度上減少了全部選擇的時(shí)間。(2)相關(guān)理論在做兩個(gè)表連接時(shí),需要名字及類型相同的屬性用一定的條件進(jìn)行匹配,如果在做笛卡爾積之前就用這些條件把要用到的元組選出來,既省空間又省時(shí)間。(3)算法描述首先查看表是否存在,若存在查找涉及到的屬性,記錄“where”后的條件,將兩個(gè)表中符合條件的元組都取出,將這些元組做連接。(4)程序流程圖開始是否存在該表?是是否有涉及到的屬性?是否記錄“where”后的條件否將符合條件的元組先選出連接結(jié)束 (1)功能介紹此DBMS系統(tǒng)有兩種用戶:管理員,普通用戶。(2)相關(guān)理論、修改元組時(shí),匹配每個(gè)屬性的類型,如果類型及長度輸入有誤,則提示輸入錯(cuò)誤不寫入數(shù)據(jù)源文件,若符合條件,則查看基于每個(gè)屬性是否有索引文件,如果有,則重寫索引文件。,也要重寫相應(yīng)的索引文件。,是否有要查詢的屬性。(3)算法描述例如在做插入元組時(shí),首先查找數(shù)據(jù)字典有沒有待插入的表,如果有,則記錄每個(gè)屬性類型及長度,將待插入數(shù)據(jù)與屬性進(jìn)行一一比對(duì),一旦有一個(gè)記錄不符合要求,也無法插入表中。(4)程序流程圖開始文本以“insert”開始查數(shù)據(jù)字典,記錄屬性名及類型掃描待插入的每個(gè)屬性與數(shù)據(jù)字典中的屬性比較char()int或float是否匹配或越界是否匹配不匹配或越界都匹配提示屬性類型輸入錯(cuò)誤寫入數(shù)據(jù)文件尾是否有索引文件有無重寫索引文件結(jié)束 總結(jié)通過對(duì)于DBMS系統(tǒng)的模擬,使我對(duì)于數(shù)據(jù)庫系統(tǒng)有了更深刻的理解,了解了每個(gè)表信息的存儲(chǔ)結(jié)構(gòu),以及數(shù)據(jù)字典的相關(guān)說明,也了解了主外鍵的意義與作用,也知道了插入元組的時(shí)候?qū)傩云ヅ鋯栴},以及對(duì)表的屬性域的修改等。通過編寫程序,讓我對(duì)表連接有了更加系統(tǒng)的認(rèn)識(shí),也知道了在連接時(shí)先選出要查詢的元組更省時(shí)間,省空間。了解了怎樣存儲(chǔ)表信息才能既省空間又能保存表信息,沒有冗余情況。通過做實(shí)驗(yàn),我將理論與實(shí)踐有了更好的結(jié)合,不但提高了對(duì)理論的理解,更讓我對(duì)編程能力有了很好的鍛煉。參考文獻(xiàn)《數(shù)據(jù)庫系統(tǒng)原理》 李建中 王珊編著 電子工業(yè)出版社 《Java技術(shù)及其應(yīng)用》 王克宏 編著 高等教育出版社第五篇:數(shù)據(jù)庫實(shí)驗(yàn)報(bào)告10包三 李雅 100910306實(shí)驗(yàn)報(bào)告一、實(shí)驗(yàn)題目:數(shù)據(jù)庫基本操作實(shí)驗(yàn)二、實(shí)驗(yàn)?zāi)康模赫莆諗?shù)據(jù)庫的建立、表的設(shè)計(jì)基本方法,通過實(shí)際操作熟練掌握數(shù)據(jù)庫的基本操作——數(shù)據(jù)的輸入與導(dǎo)入,表的設(shè)計(jì)。三、實(shí)驗(yàn)內(nèi)容:建立課程管理數(shù)據(jù)庫,要求:、開設(shè)課程、選課表、學(xué)生基本數(shù)據(jù)等,并輸入一些學(xué)生不同課程的考試成績。,分別是成績查詢、學(xué)分查詢、不及格學(xué)生查詢。,分別顯示不及格學(xué)生的姓名、課程名稱、成績和班級(jí)ID。在成績查詢中顯示學(xué)生姓名及各科成績。在教師基本信息中顯示編號(hào)、職稱、工資、院系、等。同時(shí)建立開設(shè)課程表和學(xué)生基本信息的窗體查詢。提供用戶一個(gè)簡單的應(yīng)用程序界面,方便用戶操作使用。包括教師的授課報(bào)表,課程名稱及課程類別。學(xué)生的總成績報(bào)表,包括課程名稱、成績和學(xué)分。注:課程及考試成績可以任意輸入。選課按照班級(jí)確定。四、實(shí)驗(yàn)過程:數(shù)據(jù)庫表設(shè)計(jì)在表格內(nèi)填入教師基本信息、開始課程、課程基本信息、選課表、學(xué)生基本信息。教師基本信息:開設(shè)課程:/ 710包三 李雅 100910306課程基本信息:選課表:/ 710包三 李雅 100910306學(xué)生基本信息:查詢表: 成績查詢:/ 710包三 李雅 100910306學(xué)分查詢:不及格學(xué)生查詢:/ 710包三 李雅 100910306窗體設(shè)計(jì): 不及格學(xué)生信息查詢:成績查詢:教師基本信息查詢:開設(shè)課程信息查詢:/ 710包三 李雅 100910306學(xué)生基本信息查詢:報(bào)表: 教師的授課報(bào)表:/ 710包三 李雅 100910306學(xué)生的總成績:/ 7