《數(shù)據(jù)庫實驗報告》word版.docx
《《數(shù)據(jù)庫實驗報告》word版.docx》由會員分享,可在線閱讀,更多相關《《數(shù)據(jù)庫實驗報告》word版.docx(43頁珍藏版)》請在裝配圖網上搜索。
長 沙 學 院 數(shù)據(jù)庫實驗報告 題目 數(shù)據(jù)庫實驗報告 系(部) 數(shù)學與計算機科學系 專業(yè)(班級) 軟件工程 姓名 學號 指導教師 李妙祥 實驗1:關系數(shù)據(jù)庫模式的設計 一.實驗目的 通過本實驗使學生掌握根據(jù)需求說明設計概念模型的方法;掌握將概念模型轉化為關系模型的方法;掌握創(chuàng)建數(shù)據(jù)庫關系圖的方法。 二.實驗類型 設計型 三.實驗學時 4學時 四.實驗原理及知識點 1.概念模型。 2.將概念模型轉化為關系模型。 3.創(chuàng)建數(shù)據(jù)庫。 4.創(chuàng)建數(shù)據(jù)表。 5.創(chuàng)建數(shù)據(jù)庫關系圖。 五.實驗環(huán)境 1.硬件設備要求:PC及其聯(lián)網環(huán)境; 2.軟件設備要求:Windows操作系統(tǒng);MS SQL Server數(shù)據(jù)庫管理系統(tǒng)。 六.實驗內容及步驟 假設要根據(jù)某大學的業(yè)務規(guī)則設計一個數(shù)據(jù)庫,這個大學的業(yè)務規(guī)則如下: 1、該大學有多個學院:文學院、法學院,商學院、藝術學院等。每一個學院有一個院長,且每一位院長只能主管一個學院。學院包括學院編號、學院名稱、學院地址等信息。院長包括院長編號、姓名、電話號碼和辦公室等信息。 2、每一個學院有多個系。每一個系僅屬于一個學院。系包括系代號、系名稱、電話號碼和系地址等信息。 3、每一個系聘用多名教師,但每一位教師只屬于一個系。教師包括教工號、姓名、學歷、職稱、工資、電話號碼等信息。 4、一位教師可能講多門課,每一門課可由多位教師講授。課程包括課程號、課程名稱、學時數(shù)和學分等信息。 5、每一個系有多名學生,且每一名學生只能屬于一個系。學生包括學號、姓名、性別、出生年月、專業(yè)、電話號碼等信息。 6、每一名學生可選修多門課,且一門課有多名學生選。 實驗內容及步驟: 1.根據(jù)需求說明設計某大學數(shù)據(jù)庫的概念模型。 2.將概念模型轉化為關系模型。 3.創(chuàng)建大學數(shù)據(jù)庫及其相關的數(shù)據(jù)表。 4.創(chuàng)建大學數(shù)據(jù)庫關系圖。 Course表: Dean表: Department表: SC表: School表: Student表: TC表: Teacher表: 數(shù)據(jù)庫關系圖 七.實驗總結 通過這次實驗我學會了初步設計一個簡單的數(shù)據(jù)庫,把實體所具有的屬性分析出來,然后根據(jù)屬性之間的關系,畫出ER圖最后建一個簡單的數(shù)據(jù)庫,感覺收獲很多。 實驗2:關系數(shù)據(jù)庫標準語言SQL 一.實驗目的 通過本實驗使學生掌握SQL語言的數(shù)據(jù)定義功能、數(shù)據(jù)查詢功能和數(shù)據(jù)操縱功能。 二.實驗類型 驗證型 三.實驗學時 4學時 四.實驗原理及知識點 1.SQL語言的數(shù)據(jù)查詢功能 2.SQL語言的數(shù)據(jù)定義功能 3.SQL語言的數(shù)據(jù)操縱功能 五.實驗環(huán)境 1.硬件設備要求:PC及其聯(lián)網環(huán)境; 2.軟件設備要求:Windows操作系統(tǒng);MS SQL Server數(shù)據(jù)庫管理系統(tǒng)。 六.實驗內容及步驟 在STUDENT數(shù)據(jù)庫中,根據(jù)要求使用SQL語言完成下列操作,將SQL語句以.sql文件的形式保存在自己的目錄下。 1.查詢選修了課程的學生的學號。 2.查詢學生學號和出生年份。 3.查詢計算機系學生的學號、姓名。 4.查詢年齡在20歲與22歲之間(包括20和22歲)的學生姓名和年齡。 5.查詢學生姓名中含有“波”字的學生情況。 6.查詢缺少學習成績的學生學號和課程號。 7.查詢選修C601課程的學生的學號和成績,并按分數(shù)的降序排列。 8.求選修了課程的學生人數(shù)。 9.求課程C601的平均成績。 10.求選修課程超過2門的學生學號。 11.查詢參加學習的學生所學的課程號和總分。 12.查詢選修高等數(shù)學課程且成績在80分以上的學生的學號、姓名。 13.查詢每一課程的間接先行課(即先行課的先行課)。 14.查詢年齡低于所有工程系學生的學生姓名、所在系、年齡。 15.找出劉建平老師所開全部課程的課程號、課程名。 16.找出全部課程的任課教師。 17.求學生1203所學課程的總分。 18.找出所有姓張的學生的姓名和籍貫。 19.找出至少一門課程的成績在90分以上的女學生的姓名。 20.求每一年齡上人數(shù)超過2的男生的具體人數(shù),并按年齡從小到大排序。 21.把學生的學號及他的平均成績定義為一個視圖GRADE_VIEW。 22.創(chuàng)建一個從student、course、study表中查出計算機系的學生及其成績的視圖computer_view,要求顯示學生的學號sno、姓名name、課程號cno、課程名稱cname、成績grade。 23.在Student表中依據(jù)學生姓名創(chuàng)建索引name_index。 24.在Study表中依據(jù)sno和cno創(chuàng)建索引main_index。 25.將課程C603的任課老師改為“趙明”。 26.在Student表中插入兩個學生記錄: 1201,吳華, 女,20,成都,計算機系 1102,張軍, 男,21,上海,工程系 27.刪除年齡在21歲以上的學生記錄。 --1 SELECT DISTINCT Sno 學號 FROM Student_course; --2 SELECT Sno 學號, 2015-Sage 出生年份 FROM Student; --3 SELECT Sno 學號, Sname 姓名 FROM Student WHERE Sdept = CS; --4 SELECT Sname 姓名, Sage 年齡 FROM Student WHERE Sage >=20 and Sage <= 22; --5 SELECT * FROM Student WHERE Sname LIKE %波%; --6 SELECT Sno 學號, Cno 課程號 FROM Student_course WHERE Grade is NULL; --7 SELECT Sno 學號, Grade 成績 FROM Student_course WHERE Cno = C601 ORDER BY Grade DESC; --8 SELECT COUNT(DISTINCT Sno) FROM Student_course; --9 SELECT AVG(Grade) FROM Student_course WHERE Cno = C601; --10 SELECT Sno 學號 FROM Student_course GROUP BY Sno HAVING COUNT(Cno) > 2; --11 SELECT Cno課程號, SUM(Grade)總分 FROM Student_course GROUP BY Cno; --12 SELECT Student.Sno, Student.Sname FROM Student,Student_course,Course WHERE Student.Sno = Student_course.Sno and Course.Cno = Student_course.Cno and Course.Cname = 高等數(shù)學 and Student_course.Grade > 80; --13 SELECT FIRST.Cno, SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno = SECOND.Cno; --14 SELECT Sname, Sdept, Sage FROM Student WHERE Sage < ANY(SELECT Sage FROM Student WHERE Sdept = EG); --15 SELECT Cno 課程號, Cname 課程名 FROM Course WHERE Cteacher = 劉劍平; --16 SELECT DISTINCT Cteacher 教師 FROM Course WHERE Cteacher is not NULL; --17 SELECT SUM(Grade)總成績 FROM Student_course GROUP BY Sno HAVING Sno = 201215122; --18 SELECT Sname 姓名, Snative 籍貫 FROM Student WHERE Sname like 張%; --19 SELECT Sname 姓名 FROM Student WHERE Ssex = 女 and Sno in( SELECT Sno FROM Student_course WHERE 90 <= Grade); --20 SELECT Sage 年齡, COUNT(*) 男生人數(shù) FROM Student WHERE Ssex = 男 and Sage in (SELECT Sage FROM Student GROUP BY Sage HAVING COUNT(*) >= 2) GROUP BY Sage ORDER BY Sage; --21 CREATE VIEW GRADE_VIEW AS SELECT Sno, AVG(Grade)Savg FROM Student_course GROUP BY Sno; --22 CREATE VIEW COMPUTER_VIEW AS SELECT Student.Sno, Student.Sname, Course.Cno, Course.Cname, Student_course.Grade FROM Student,Student_course,Course WHERE Student.Sno = Student_course.Sno and Student_course.Cno = Course.Cno; --23 CREATE INDEX NAME_INDEX ON Student(Sname); --24 CREATE INDEX MAIN_INDEX ON Student_course(Sno,Cno); --25 UPDATE Course SET Cteacher = 趙明 WHERE Cno = C603; --26 INSERT INTO Student VALUES (1201,吳華,女,20,成都,CS), (1102,張軍,男,21,上海,EG); --27 DELETE FROM Student WHERE Sage > 21; 七.實驗總結 通過這次實驗學會使用SQL查詢語句、使用SQL語句插入元組,使用SQL語句刪除元組,使用SQL語句創(chuàng)建索引和刪除索引,但任然不是很熟練,有很多地方需要查閱書籍才能完成,還是需要多加練習。 實驗3:數(shù)據(jù)庫安全性的設計與實現(xiàn) 一.實驗目的 通過本實驗使學生加深對數(shù)據(jù)庫安全性的理解,并掌握數(shù)據(jù)庫管理系統(tǒng)中有關用戶、角色及操作權限的管理方法。 二.實驗類型 驗證型 三.實驗學時 2學時 四.實驗原理及知識點 1.安全模式的設置 2.服務器登錄標識管理 3.數(shù)據(jù)庫用戶管理 4.權限管理 五.實驗環(huán)境 1.硬件設備要求:PC及其聯(lián)網環(huán)境; 2.軟件設備要求:Windows操作系統(tǒng);MS SQL Server數(shù)據(jù)庫管理系統(tǒng)。 六.實驗內容及步驟 1.使用企業(yè)管理器在你的SQL Server中創(chuàng)建一個登錄名teacher,且 1)它使用SQL Server 認證; 2)能夠創(chuàng)建和修改數(shù)據(jù)庫; 3)能訪問pubs數(shù)據(jù)庫、student數(shù)據(jù)庫和OrderCenter數(shù)據(jù)庫,并且能夠在這些庫中分配語句和對象權限; 4)對OrderCenter數(shù)據(jù)庫中的products表具有插入、修改和刪除的權限。 2.在查詢分析器中使用SQL語句完成下列任務: 1)創(chuàng)建一個登錄名student,口令為123,缺省數(shù)據(jù)庫為student; 2)將其加入到student數(shù)據(jù)庫的用戶中; 3)將其加入到sysadmin角色中; 4)將其加入到student數(shù)據(jù)庫的db_owner角色中; 5)授予他在student數(shù)據(jù)庫中創(chuàng)建視圖、創(chuàng)建表的權限; 6)授予他對student數(shù)據(jù)庫中的study表具有所有權限,且可將這些權限授予他人; 7)撤銷他對student數(shù)據(jù)庫中的study表的修改權限; 8)禁止他對student數(shù)據(jù)庫中的study表的刪除權限。 七.實驗總結 通過這次實驗學會給不同的用戶設置不同的角色,知道了數(shù)據(jù)庫角色之間的不同,明白了數(shù)據(jù)庫安全性的重要性。 實驗4:數(shù)據(jù)庫完整性——約束、規(guī)則、默認 一.實驗目的 通過本實驗使學生加深對數(shù)據(jù)完整性的理解,熟悉通過SQL對數(shù)據(jù)進行完整性控制。 二.實驗類型 驗證型 三.實驗學時 2學時 四.實驗原理及知識點 1.約束 2.規(guī)則 3.默認 五.實驗環(huán)境 1.硬件設備要求:PC及其聯(lián)網環(huán)境; 2.軟件設備要求:Windows操作系統(tǒng);MS SQL Server數(shù)據(jù)庫管理系統(tǒng)。 六.實驗內容及步驟 1. 將Student表中的Sno屬性定義為碼 2. 將SC表中的Sno、Cno屬性組定義為碼 3. 定義SC中的參照完整性 4. 顯示說明參照完整性的違約處理示例 5. 在定義SC表時,說明Sno、Cno、Grade屬性不允許取空值 6.建立部門表DEPT,要求部門名稱Dname取值唯一部門編號Deptno列為主碼 7.Student表的Ssex只允許取‘男’或‘女’ 8.SC表的Grade的值應該在0和100之間 9.當學生性別是男時,其名字不能以Ms.打頭 10.建立學生登記表Student,要求學號在90000~99999之間,姓名不能去空值,年齡小于30,性別只能是‘男’或‘女’。 11.建立教師表TEACHER,要求每個教師應發(fā)工資不低于3000元 12.去掉10 Student表中的對性別的限制 13.修改Student表中的約束條件,要求學號改為在900 000 ~ 999 999之間,年齡由小于30改為小于40 --1 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY(Sno) ); CREATE TABLE Course (Cno CHAR(4) NOT NULL, Cname CHAR(10) NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, PRIMARY KEY(Cno) ); 結果: --2 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT PRIMARY KEY(Sno,Cno), ); 結果: --3 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) ); 數(shù)據(jù)庫關系圖: --4 CREATE TABLE SC (Sno CHAR(9), Cno CHAR(4), Grade SMALLINT, PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(Cno) REFERENCES Course(Cno) ON DELETE CASCADE ON UPDATE CASCADE ); 表的設計: 數(shù)據(jù)庫關系圖: --5 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(9) NOT NULL, Grade SMALLINT NOT NULL, PRIMARY KEY(Sno,Cno), ); 表的設計: --7 CREATE TABLE Stduent (Sno CHAR(9) NOT NULL, Sname CHAR(8) NOT NULL, Ssex CHAR(2) CHECK (Ssex IN (男,女)), Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY(Sno) ); 表的設計: 當性別處填寫’男’,’女’以外的值的時候,無法保存該元祖。 --8 CREATE TABLE SC (Sno CHAR(9), Cno CHAR(4), Grade SMALLINT CHECK(Grade >= 0 AND Grade <= 100), PRIMARY KEY(Sno,Cno), FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) ); --9 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(8) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY(Sno), CHECK(Ssex = 女 OR Sname NOT LIKE MS.%) ); --10 CREATE TABLE Student (Sno NUMERIC(6) CONSTRAINT C1 CHECK(Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC(3) CONSTRAINT C3 CHECK(Sage <30), Ssex CHAR(2) CONSTRAINT C4 CHECK(Ssex IN (男,女)), CONSTRAINT StudentKey PRIMARY KEY(Sno) ); 表的設計: 學號未在約束范圍內: 姓名為空: 年齡不在范圍內: --11 create table TEACHER (Eno numeric(4) primary key, Ename char(10), Job char(8), Sal numeric(7,2), Deduct numeric(7,2), Deptno numeric(2), constraint TEACHERFKey foreign key(Deptno) references DEPT(Deptno), constraint C1 check(sal + Deduct >= 3000) ); --12 drop constraint C4; --13 alter table Student drop constraint C1; alter table Student add constraint C1 check(Sno between 9000000 and 999999); alter table Student drop constraint C3; alter table Student add constraint C3 check(Sage < 40); 七.實驗總結 通過這次實驗學會了定義各種完整性約束的定義,例如不能為空,取值唯一,還有CHECK約束,學會了用constraint語句定義約束,這種方式比在create語句中直接定義完整性約束更加靈活,主要是方便增加和刪除一個完整性約束條件。 實驗5:數(shù)據(jù)庫編程——存儲過程 一.實驗目的 通過本實驗使學生掌握存儲過程的基本概念和創(chuàng)建、執(zhí)行、刪除方法。 二.實驗類型 驗證型 三.實驗學時 2學時 四.實驗原理及知識點 1.Transact-SQL編程 2.存儲過程的創(chuàng)建和執(zhí)行 3.存儲過程的修改和刪除 五.實驗環(huán)境 1.硬件設備要求:PC及其聯(lián)網環(huán)境; 2.軟件設備要求:Windows操作系統(tǒng);MS SQL Server數(shù)據(jù)庫管理系統(tǒng)。 六.實驗內容及步驟 利用存儲過程實現(xiàn)下面的應用:從賬戶1轉指定數(shù)額的款項到賬戶2中。假設賬戶關系表為Account(Accountnum,total) 存儲過程 create procedure pro_transfer (@inAccount int, @outAccount int, @amount float) as declare @totalDepositOut float, @totalDepositIn float, @inAccountnum int; begin select @totalDepositOut = (select total from Account where accountnum = @outAccount); if (@totalDepositOut is null) begin rollback; return; end if (@totalDepositOut < @amount) begin rollback; return; end select @inAccount = (select accountnum from Account where accountnum = @inAccount) if(@inAccountnum is null) begin rollback; return; end update Account set total = toal - @amount where accountnum = @outAccount; update Account set total = total + @amount where accountnum = @inAccount; commit; end 七.實驗總結 通過這次實驗學會寫簡單的存儲過程,了解了在sql server 2008中的存儲過程的基本語法,發(fā)現(xiàn)存儲過程的語法和pascal有很大的相似之處,不過sql server 2008的語法和書上的語法有很大的不同,只能自己去網上找資料,不過這鍛煉了我的自學能力,不過就寫一個存儲過程還是有很多不夠,還是要勤加練習。 實驗7:數(shù)據(jù)庫的備份與恢復 一.實驗目的 通過本實驗使學生掌握數(shù)據(jù)庫備份的方法和數(shù)據(jù)庫恢復的方法。 二.實驗類型 驗證型 三.實驗學時 2學時 四.實驗原理及知識點 1.事務的基本概念 2.數(shù)據(jù)庫恢復技術 3.數(shù)據(jù)庫恢復策略 4.SQL Server 的恢復技術 五.實驗環(huán)境 1.硬件設備要求:PC及其聯(lián)網環(huán)境; 2.軟件設備要求:Windows操作系統(tǒng);MS SQL Server數(shù)據(jù)庫管理系統(tǒng)。 六.實驗內容及步驟 --create device exec sp_addumpdevice disk, student_full, d:\acm\student_full.bak --full backup backup database cldog to student_full with init --diff backup backup database cldog to disk = d:\acm\student_diff.back with noinit,differential --log backup backup log cldog to disk = d:\acm\student_log.bak with noinit --full restore restore database cldog from student_full 執(zhí)行命令前: 執(zhí)行命令后: --diff restore restore database cldog from student_diff with norecovery --log restore restore log cldog from student_log with recovery 七.實驗總結 通過這次實驗學會了基本的數(shù)據(jù)庫的備份與還原,了解了完全備份、差異備份和日志備份的差異,備份和恢復是一個經常使用的功能,感覺用的很不熟練,需要完全掌握還需多加練習。- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- 數(shù)據(jù)庫實驗報告 數(shù)據(jù)庫 實驗 報告 word
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
相關資源
更多
正為您匹配相似的精品文檔
相關搜索
鏈接地址:http://m.appdesigncorp.com/p-8351207.html