數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)課實(shí)驗(yàn)報(bào)告.doc_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)課實(shí)驗(yàn)報(bào)告.doc_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)課實(shí)驗(yàn)報(bào)告.doc_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)課實(shí)驗(yàn)報(bào)告.doc_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)課實(shí)驗(yàn)報(bào)告.doc_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告一學(xué)號(hào)姓名實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)名稱Oracle環(huán)境及數(shù)據(jù)庫(kù)創(chuàng)建實(shí)驗(yàn)學(xué)時(shí)2準(zhǔn)備材料1. Oracle 10G 介紹資料 2. SQL Plus命令手冊(cè)3. Oracle數(shù)據(jù)字典擴(kuò)展實(shí)驗(yàn)1. 使用企業(yè) 管理器登錄Oracle服務(wù)器,觀察系統(tǒng)架構(gòu)及數(shù)據(jù)庫(kù)2. 使用OEM創(chuàng)建、刪除數(shù)據(jù)庫(kù)此部分內(nèi)容不要求在實(shí)驗(yàn)室完成,不用寫(xiě)入實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)環(huán)境Oracle 9i(及以上版本)服務(wù)器SQL Plus/ SQL Plus work sheet客戶端實(shí)驗(yàn)?zāi)康?. 了解oracle系統(tǒng)架構(gòu)2. 熟悉SQL Plus環(huán)境實(shí)驗(yàn)內(nèi)容及步驟1. 使用SQL Plus Worksheet登錄數(shù)據(jù)庫(kù)系統(tǒng)(用戶名密碼由教師指定)2. 瀏覽SQL Plus環(huán)境設(shè)置命令,并完成下列操作:(1) 察看SQL Plus環(huán)境參數(shù)(2) 設(shè)置輸出頁(yè)面的大小,每列字符數(shù) 120,每頁(yè)行數(shù)100,觀察設(shè)置結(jié)構(gòu)(3) 設(shè)置顯示每個(gè)sql語(yǔ)句花費(fèi)的執(zhí)行時(shí)間,并觀察實(shí)驗(yàn)結(jié)果(4) 在SQL Plus中執(zhí)行操作系統(tǒng)命令,例如copy文件、顯示目錄等,觀察結(jié)果。(5) 設(shè)置將系統(tǒng)輸出數(shù)據(jù)寫(xiě)入文件c:textoutput.txt,執(zhí)行多個(gè)命令后觀察文件內(nèi)容。3. 顯示系統(tǒng)信息(1) 顯示用戶信息(2) 顯示數(shù)據(jù)庫(kù)版本信息(3) 顯示數(shù)據(jù)庫(kù)中所有表的名稱顯示系統(tǒng)中某張表的結(jié)構(gòu)信息(如EMP表)(4) 顯示數(shù)據(jù)庫(kù)中某張表的數(shù)據(jù),如EMP表4. 建立磁盤(pán)文本文件testcommand.sql,文件內(nèi)寫(xiě)入幾條SQL命令,執(zhí)行此文件,并觀察執(zhí)行結(jié)果。出現(xiàn)問(wèn)題解決方案(列出遇到的問(wèn)題及其解決方法)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告二學(xué)號(hào)姓名實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)名稱數(shù)據(jù)庫(kù)模式管理實(shí)驗(yàn)學(xué)時(shí)4準(zhǔn)備材料1. SQL Plus命令手冊(cè)2. Oracle數(shù)據(jù)字典3. Oracle中的數(shù)據(jù)類型擴(kuò)展實(shí)驗(yàn)1. 掌握在企業(yè)管理器(或其它圖形界面的數(shù)據(jù)庫(kù)操作工具)中進(jìn)行表、索引的創(chuàng)建和管理的方法。2. 利用企業(yè)管理器(或其它圖形界面的數(shù)據(jù)庫(kù)操作工具)觀察數(shù)據(jù)庫(kù)的物理模式。(此部分內(nèi)容不要求在實(shí)驗(yàn)室完成,不用寫(xiě)入實(shí)驗(yàn)報(bào)告。)實(shí)驗(yàn)環(huán)境Oracle 9i(及以上版本)服務(wù)器SQL Plus/ SQL Plus work sheet客戶端實(shí)驗(yàn)?zāi)康?掌握使用SQL語(yǔ)句進(jìn)行表的創(chuàng)建和管理的方法2加深對(duì)關(guān)系數(shù)據(jù)庫(kù)結(jié)構(gòu)和數(shù)據(jù)完整性等概念的理解實(shí)驗(yàn)內(nèi)容及步驟1. 創(chuàng)建書(shū)上university數(shù)據(jù)庫(kù)中所有的表(student, course, department, takes, instructor, advisor, prereq, teaches, classroom, section, timeslot),按書(shū)上要求設(shè)置每張表的主鍵、外鍵,表中每個(gè)字段的類型、長(zhǎng)度由學(xué)生自己確定。2. 使用命令完成下列扣作(1)查找用戶所有表的表名(2)查看每張表的結(jié)構(gòu)(要求把每張表的結(jié)構(gòu)截圖放到實(shí)驗(yàn)報(bào)告中)(3)查看表takes的約束信息3. 修改表結(jié)構(gòu)(1) 在instructor表中增加列存儲(chǔ)教師家庭地址,其地址包括省、市、區(qū)、街道、門(mén)牌號(hào)等列,列的數(shù)據(jù)類型自己給出,列允許為空。(2) 對(duì)student表中的姓名字段長(zhǎng)度都改為10,設(shè)置是否成功?原因是什么?將該字段長(zhǎng)度改為50,能否成功?說(shuō)明原因。(3) 為student表中tot_cred列設(shè)置默認(rèn)值 0,插入一個(gè)Comp. Sci.系的新學(xué)生,且不給其tot_cred列賦值,觀察結(jié)果。(4) student表中tot_cred列是對(duì)總學(xué)分的統(tǒng)計(jì),現(xiàn)在數(shù)據(jù)庫(kù)中沒(méi)有記錄哪些學(xué)生已選修課程學(xué)分已累加,哪些課程的學(xué)分還沒(méi)有累加。設(shè)計(jì)一種方案記錄已累加課程,防止出現(xiàn)重復(fù)累加的情況?;蛘咴O(shè)計(jì)一種方案簡(jiǎn)化總學(xué)分的計(jì)算過(guò)程。(5) 刪除takes表上對(duì)student表ID的外鍵約束,查看此約束已刪除。添加一個(gè)不存在的學(xué)生(id=201400320101)選修course_id 為CS001的課程,并給他一個(gè)成績(jī)(成績(jī)值為:A, B, C, D, E 或F)。再添加takes表是對(duì)student表ID 的外鍵約束 ,觀察并解釋實(shí)驗(yàn)結(jié)果。(6) 設(shè)置takes表ID, course_id,sec_id三個(gè)字段非空,是否能設(shè)置成功,對(duì)插入數(shù)據(jù)有沒(méi)有影響? 刪除takes表主鍵約束,增加某同學(xué)選同一門(mén)課程(id, couese_id, sec_id, semester, year, grade都相同)的信息,能否插入成功?解釋原因。4. 參照表student建立一張空表student1。要求用兩種方法實(shí)現(xiàn) (create table; create table as )。5. 增加section表上的約束條件,要求所輸入section的年號(hào)不大于當(dāng)前年號(hào)+1,且不小于當(dāng)前年號(hào)-2。插入一條2009年秋CS-101 開(kāi)設(shè)課的信息,觀察并解釋實(shí)驗(yàn)結(jié)果。6. 選擇某個(gè)約束,分別設(shè)置其有效、失效,觀察區(qū)別。出現(xiàn)問(wèn)題沒(méi)有問(wèn)題解決方案(列出遇到的問(wèn)題及其解決方法)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告三學(xué)號(hào)姓名實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)名稱數(shù)據(jù)查詢實(shí)驗(yàn)學(xué)時(shí)4準(zhǔn)備材料1. SQL Plus命令手冊(cè)2. Oracle數(shù)據(jù)字典擴(kuò)展實(shí)驗(yàn)1. 利用企業(yè)管理器的圖形界面構(gòu)造查詢語(yǔ)句,并察看查詢結(jié)果2. 利用企業(yè)管理器完成視圖、索引的創(chuàng)建與使用。3. 利用DBMS進(jìn)行對(duì)第三章習(xí)題所設(shè)計(jì)SQL語(yǔ)句的檢查 (此部分內(nèi)容不要求在實(shí)驗(yàn)室完成,不用寫(xiě)入實(shí)驗(yàn)報(bào)告。)實(shí)驗(yàn)環(huán)境Oracle 9i(及以上版本)服務(wù)器SQL Plus/ SQL Plus work sheet客戶端實(shí)驗(yàn)?zāi)康?掌握使用SQL語(yǔ)句進(jìn)行數(shù)據(jù)查詢的方法2. 掌握視圖的創(chuàng)建與使用方法3. 觀察索引的使用效果實(shí)驗(yàn)內(nèi)容及步驟1. 執(zhí)行文件ddl+drop.sql,創(chuàng)建數(shù)據(jù)庫(kù)University中所有表。執(zhí)行文件 smallRelationsInsertFile.sql,插入實(shí)驗(yàn)數(shù)據(jù)。2. 使用University數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)結(jié)構(gòu)和數(shù)據(jù)(smallRelations即可),完成下列查詢:(1) Find the names of courses in Computer science department which have 3 credits(2) For the student with ID 12345 (or any other value), show all course_id and title of all courses registered for by the student. (3) As above, but show the total number of credits for such courses (taken by that student). Dont display the tot_creds value from the student table, you should use SQL aggregation on courses taken by the student. (4) As above, but display the total credits for each of the students, along with the ID of the student; dont bother about the name of the student. (Dont bother about students who have not registered for any course, they can be omitted) (5) Find the names of all students who have taken any Comp. Sci. course ever (there should be no duplicate names) (6) Display the IDs of all instructors who have never taught a couse (Notes 1) Oracle uses the keyword minus in place of except; 2) interpret taught as taught or is scheduled to teach) (7) As above, but display the names of the instructors also, not just the IDs.(8) Find the maximum and minimum enrollment across all sections, considering only sections that had some enrollment, dont worry about those that had no students taking that section(9) As in Question (8), but now also include sections with no students taking them; the enrollment for such sections should be treated as 0. Do this in two different ways (and create require data for testing) 1). Using a scalar subquery 2). Using aggregation on a left outer join (use the SQL natural left outer join syntax)(10) Find all courses whose identifier starts with the string CS-101 (11) Find instructors who have taught all the above courses 1). Using the not exists . except . structure 2). Using matching of counts which we covered in class (dont forget the distinct clause!) 3. The university rules allow an F grade to be overridden by any pass grade (A, B, C, D). Now, create a view that lists information about all fail grades that have not been overridden (the view should contain all attributes from the takes relation).4. Find all students who have 2 or more non-overridden F grades as per the takes relation, and list them along with the F出現(xiàn)問(wèn)題解決方案(列出遇到的問(wèn)題及其解決方法)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告四學(xué)號(hào)姓名實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)名稱表數(shù)據(jù)管理實(shí)驗(yàn)學(xué)時(shí)2準(zhǔn)備材料1. SQL Plus命令手冊(cè)2. Oracle數(shù)據(jù)字典擴(kuò)展實(shí)驗(yàn)1. 利用企業(yè)管理器的圖形界面輸入數(shù)據(jù)2. 利用企業(yè)管理器或PL SQL Developer導(dǎo)入、導(dǎo)出TXT文檔、Excel表格中的數(shù)據(jù)。(此部分內(nèi)容不要求在實(shí)驗(yàn)室完成,不用寫(xiě)入實(shí)驗(yàn)報(bào)告。)實(shí)驗(yàn)環(huán)境Oracle 9i(及以上版本)服務(wù)器SQL Plus/ SQL Plus work sheet客戶端實(shí)驗(yàn)?zāi)康?掌握使用SQL語(yǔ)句對(duì)表進(jìn)行插入、修改和刪除數(shù)據(jù)的操作。2. 掌握索引創(chuàng)建與使用方法實(shí)驗(yàn)內(nèi)容及步驟1. 執(zhí)行文件ddl+drop.sql,創(chuàng)建數(shù)據(jù)庫(kù)University中所有表。執(zhí)行文件 smallRelationsInsertFile.sql,插入實(shí)驗(yàn)數(shù)據(jù)。2. 刪除department表中Physics記錄,觀察能否成功刪除。若不能刪除,說(shuō)明原因。若能刪除,觀察有外關(guān)聯(lián)的表中數(shù)據(jù)的變化。3. 插入一門(mén)新課,課程名“Weekly seminar”,課號(hào)CS-001,由Engineering department開(kāi)出,學(xué)分1,觀察實(shí)驗(yàn)結(jié)果,說(shuō)明原因。4. 調(diào)整各系員工工資,原工資50000的增加10%,否則 增加6%,觀察結(jié)果.5. 第3小題新插入的課程,課程名“Weekly seminar”,課號(hào)CS-001,改為由Comp. Sci.開(kāi)出,重新插入到course表中。觀察實(shí)驗(yàn)結(jié)果,說(shuō)明原因。6. 假設(shè)全體Comp. Sci.學(xué)生都要選課“Weekly seminar”,且課程要2013年秋季學(xué)期開(kāi)出,增加課程開(kāi)出信息、選課信息。7. 刪除學(xué)生Brown的“Weekly seminar”課程的選課記錄。8. 假設(shè)學(xué)期末,教師給出課程“Weekly seminar”的選課學(xué)生成績(jī)單,請(qǐng)依據(jù)選課成績(jī)給出每個(gè)學(xué)生學(xué)分。9. 將學(xué)生表中學(xué)分tot_cred100的學(xué)生選出來(lái)放進(jìn)對(duì)應(yīng)系的instructor表中,工資設(shè)置為10000.10.找出并刪除所有未被開(kāi)出過(guò)的課程。11. 在表takes上course_id字段創(chuàng)建索引,觀察查詢速度變化。12. 在takes表course_id字段上創(chuàng)建索引,試一試能否創(chuàng)建唯一性索引?出現(xiàn)問(wèn)題解決方案(列出遇到的問(wèn)題及其解決方法)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告五學(xué)號(hào)姓名實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)名稱權(quán)限與事務(wù)管理實(shí)驗(yàn)學(xué)時(shí)2準(zhǔn)備材料1. SQL Plus命令手冊(cè)2. Oracle數(shù)據(jù)字典擴(kuò)展實(shí)驗(yàn)1. 利用企業(yè)管理器的圖形界面進(jìn)行創(chuàng)建用戶、角色并進(jìn)行管理2.利用企業(yè)管理器的圖形 界面完成對(duì)數(shù)據(jù)操縱權(quán)限的授權(quán)與回收工作(此部分內(nèi)容不要求在實(shí)驗(yàn)室完成,不用寫(xiě)入實(shí)驗(yàn)報(bào)告。)實(shí)驗(yàn)環(huán)境Oracle 9i(及以上版本)服務(wù)器SQL Plus/ SQL Plus work sheet客戶端實(shí)驗(yàn)?zāi)康?掌握權(quán)限管理語(yǔ)句與視圖進(jìn)行安全性控制的方法 實(shí)驗(yàn)內(nèi)容及步驟每?jī)蓚€(gè)同學(xué)一組,自由組合完成下列操作要求(使用grant, revoke語(yǔ)句和視圖):1. 執(zhí)行教師提供的命令文件,建立university數(shù)據(jù)庫(kù),并輸入數(shù)據(jù)。2. 同學(xué)A設(shè)置同學(xué)B對(duì)A.course表具有查詢權(quán)限,對(duì)A.instructor表中salary字段具有更新權(quán)限;同學(xué)B查看元數(shù)據(jù)表,查找自己被子授權(quán)使用的數(shù)據(jù)。3. 同學(xué)B授權(quán)同學(xué)A對(duì)B. instructor表具有插入數(shù)據(jù)、刪除數(shù)據(jù)的權(quán)限,同學(xué)A用命令試驗(yàn)?zāi)芊裢瓿上鄳?yīng)操作。4. 同學(xué)A授權(quán)同學(xué)B,對(duì)A.student表具有修改表結(jié)構(gòu)的權(quán)限,同學(xué)B得到修改表結(jié)構(gòu)的命令驗(yàn)證授權(quán)是否成功。5. 同學(xué)B授權(quán)同學(xué)A對(duì)B. student表具有增、刪、改、查的權(quán)限,并允許他將權(quán)限授權(quán)給其它同學(xué)。同學(xué)A驗(yàn)證授權(quán)是否成功,并試驗(yàn)?zāi)芊駥?quán)限授予其它同學(xué)(例如同學(xué)C)。6. 同學(xué)A收回授權(quán)同學(xué)B的student表上的所有權(quán)限,同學(xué)B驗(yàn)證是否回收成功。7. 同學(xué)A通過(guò)視圖授權(quán)同學(xué)B具有察看每個(gè)部門(mén)職工最高、最低、平均工資的權(quán)限,但不允許他察看每個(gè)人的工資。同學(xué)B驗(yàn)證授權(quán)是否成功。8. 同學(xué)A、B撤銷所有已授給對(duì)方的權(quán)限,如果同學(xué)C從同學(xué)A得到對(duì)同學(xué)B student表的訪問(wèn) 權(quán)限,察看其權(quán)限是否一并收回。9.事務(wù)查看 使用如下命令,查看當(dāng)前事務(wù)、會(huì)話情況:(1)show parameter processes;show parametersession;(2)select name, type, value ,display_value, isses_modifiable, issys_modifiable from v$parameterwhere name=sessions;select name, type, value ,display_value, isses_modifiable, issys_modifiable from v$parameterwhere name=processes; SELECT * FROM V$SESSIONWHERE USERNAME = ORDERBY LOGON_TIME, SID;SELECT P.SPID, S.SID, S.SERIAL#FROM V$PROCESS PINNERJOIN V$SESSION S ON P.ADDR = S.PADDRWHERE S.AUDSID=USERENV(SESSIONID);注:此表可能學(xué)生沒(méi)有權(quán)限查看,如果有興趣,在自己電腦上試試。10事務(wù)提交方式有三種:顯式提交隱式提交和自動(dòng)提交。SQL PLUS中可通過(guò)命令可進(jìn)行提交方式設(shè)置,設(shè)置不同提交方式。事務(wù)命令有:BEGIN TRANSACTION、COMMIT、ROLLBACK、SAVEPOINT、RELEASE SAVEPOINT、SET ISOLATION LEVEL事務(wù)隔離級(jí)別:離層錯(cuò)讀|臟讀非重復(fù)讀取|不可重復(fù)讀假讀|幻讀READ UNCOMMITTED(非提交讀)是是是READ COMMITTED(提交讀)否是是Repeatable READ(可重復(fù)讀)否否是Serializable(串行讀)否否否Oracle只支持ead committed 、serializable和Repeatable READ三種,不支持READ UNCOMMITTED。完成下列和事務(wù)相關(guān)的操作:(1)修改事務(wù)隔離級(jí)別( Set transaction isolation level read committed、 Set transaction isolation level serializable),AB兩同學(xué)一起操作同一張表,A.instructor,B同學(xué)修改數(shù)據(jù),A同學(xué)查詢數(shù)據(jù),查看在什么情況下可查看到B同學(xué)剛剛修改的數(shù)據(jù)。(2)設(shè)置自動(dòng)提交,A、B同學(xué)同時(shí)操作同一張表的數(shù)據(jù),察看是否可看到最新修改結(jié)果。(3)B同學(xué)設(shè)置SAVEPOINT,進(jìn)行數(shù)據(jù)操作、rollback到該savepoint,A同學(xué)在各個(gè)步驟察看數(shù)據(jù)變化情況。在不同隔離級(jí)別下執(zhí)行相同操作,察看數(shù)據(jù)的不同點(diǎn)。出現(xiàn)問(wèn)題解決方案(列出遇到的問(wèn)題及其解決方法)數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告六學(xué)號(hào)姓名實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)名稱存儲(chǔ)過(guò)程、函數(shù)和事務(wù)實(shí)驗(yàn)學(xué)時(shí)2準(zhǔn)備材料1. SQL Plus命令手冊(cè)2. PL/SQL用戶手冊(cè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論