學(xué)生信息管理系統(tǒng)課程設(shè)計 (3)_第1頁
已閱讀1頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  數(shù)據(jù)庫課程設(shè)計報告</b></p><p>  題 目: 學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫設(shè)計 </p><p>  學(xué) 院: 計算機科學(xué)與技術(shù) </p><p>  姓 名: 

2、  學(xué) 號: </p><p>  專 業(yè): 物聯(lián)網(wǎng) </p><p>  班 級: </p><p>  

3、指導(dǎo)教師: </p><p><b>  目錄</b></p><p><b>  一、需求分析3</b></p><p>  1.1 需求概述3</p><p>  1.2 功能簡介3</p><p>

4、<b>  二、數(shù)據(jù)庫設(shè)計3</b></p><p>  2.1 確定聯(lián)系集及E-R圖3</p><p>  2.2 畫出E-R圖4</p><p>  2.3學(xué)生成績管理系統(tǒng)總E-R圖5</p><p>  三、邏輯數(shù)據(jù)庫設(shè)計階段6</p><p>  3.1 班級信息表(Class)

5、7</p><p>  3.2 學(xué)生信息表(Student)7</p><p>  3.3 課程信息表(Course)8</p><p>  3.4 成績表(Score)8</p><p><b>  四、建表8</b></p><p>  4.1 創(chuàng)建數(shù)據(jù)庫8</p>

6、<p>  4.2 創(chuàng)建數(shù)據(jù)表9</p><p>  五、數(shù)據(jù)庫的運行和維護10</p><p><b>  5.1 定義10</b></p><p>  5.1.1 基本表的創(chuàng)建,建表語句10</p><p>  5.1.2 基本表的刪除11</p><p>  5.2 數(shù)據(jù)

7、操作11</p><p>  5.2.1 單表查詢:11</p><p>  5.2.2 連接查詢11</p><p>  5.2.3 操作結(jié)果集查詢12</p><p>  5.2.4 嵌套查詢12</p><p>  5.3 數(shù)據(jù)庫更新操作13</p><p>  5.3.1 插

8、入數(shù)據(jù)13</p><p>  5.3.2 修改數(shù)據(jù)13</p><p>  5.3.3 刪除數(shù)據(jù)13</p><p>  5.4 為數(shù)據(jù)庫建立索引14</p><p>  5.4.1 索引的建立14</p><p>  5.4.2 索引的刪除14</p><p>  5.5 數(shù)據(jù)庫

9、的安全性14</p><p>  5.6 數(shù)據(jù)庫的完整性15</p><p>  5.6.1 實體完整性定義15</p><p>  5.6.2 參照完整性定義15</p><p><b>  六、模式求精15</b></p><p><b>  七、總結(jié)16</b&g

10、t;</p><p><b>  一、需求分析</b></p><p><b>  1.1 需求概述</b></p><p>  針對學(xué)校的成績管理工作量大、繁雜,人工處理非常困難。學(xué)生成績管理系統(tǒng)借助于計算機強大的處理能力,大大減輕了管理人員的工作量,并提高了處理的準(zhǔn)確性。學(xué)生成績管理系統(tǒng)的開發(fā)運用,實現(xiàn)了學(xué)生成績管理的

11、自動化,不僅把廣大教師從繁重的成績管理工作中解脫出來、把學(xué)校從傳統(tǒng)的成績管理模式中解放出來,而且對學(xué)生成績的判斷和整理更合理、更公正,同時也給教師提供了一個準(zhǔn)確、清晰、輕松的成績管理環(huán)境。</p><p><b>  1.2 功能簡介</b></p><p>  能夠進行數(shù)據(jù)庫的數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)控制等處理功能,進行聯(lián)機處理的相應(yīng)時間要短。</p>

12、<p>  具體功能應(yīng)包括:系統(tǒng)應(yīng)該提供課程安排數(shù)據(jù)的插入、刪除、更新、查詢;成績的添加、修改、刪除、查詢,學(xué)生及教職工基本信息查詢的功能。 </p><p><b>  二、數(shù)據(jù)庫設(shè)計</b></p><p>  2.1 確定聯(lián)系集及E-R圖</p><p>  根據(jù)前面對系統(tǒng)進行的分析,已經(jīng)初步了解了學(xué)生成績管理系統(tǒng)的數(shù)

13、據(jù)處理流程,找出與系統(tǒng)有關(guān)的各個實體及其相互聯(lián)系如下:</p><p>  ①、標(biāo)示實體集:班級,課程,學(xué)生,成績四個關(guān)系。</p><p><b> ?、?、標(biāo)示聯(lián)系集:</b></p><p>  學(xué)生和班級:一個班由多個學(xué)生組成,一個學(xué)生只能歸屬于某個班;</p><p>  存在“歸屬”的關(guān)系:N:1</p&

14、gt;<p>  學(xué)生和課程:一個學(xué)生可以選修多門課程,一門課程提供給多個學(xué)生選修;</p><p>  存在“選修”的關(guān)系:N:M</p><p>  關(guān)系Score的主碼是{studentNo,courseNo,term}顯然同一個學(xué)生在同一個學(xué)期不允許修讀同一門課程多次</p><p>  關(guān)系Course的priorCourse屬性參照本關(guān)系的

15、主碼courseNo屬性。這里假設(shè)一門課程最多只需要定義一門先修課程。</p><p><b> ?、邸?biāo)示屬性集:</b></p><p>  班級(班級編號,班級名稱,所屬學(xué)院,年級,班級人數(shù))</p><p>  課程(課程號,課程名,學(xué)分,課時數(shù),先修課程)</p><p>  學(xué)生(學(xué)號,姓名,性別,出生日期,

16、籍貫,所屬班級)</p><p>  成績(學(xué)號,課程號,開課學(xué)期,成績)</p><p>  2.2 畫出E-R圖</p><p><b>  班級信息圖如下:</b></p><p>  圖2-2-1班級實體集的E-R圖</p><p><b>  學(xué)生信息圖如下:</b>

17、;</p><p>  圖2-2-2學(xué)生實體集E-R圖</p><p><b>  課程信息圖如下:</b></p><p>  圖2-2-3課程實體集E-R圖</p><p><b>  成績信息圖如下: </b></p><p>  圖2-2-4成績實體集E-R</

18、p><p>  2.3學(xué)生成績管理系統(tǒng)總E-R圖</p><p>  根據(jù)上面對實體聯(lián)系的分析,可以畫出E-R圖如下:</p><p>  圖2-2-5學(xué)生成績管理系統(tǒng)總E-R圖</p><p>  三、邏輯數(shù)據(jù)庫設(shè)計階段</p><p>  邏輯結(jié)構(gòu)是獨立于任何一種數(shù)據(jù)模型的信息結(jié)構(gòu)。邏輯結(jié)構(gòu)的任務(wù)是把概念結(jié)構(gòu)設(shè)計階段設(shè)

19、計好的基本E-R圖轉(zhuǎn)化為宜選用的DBMS所支持的數(shù)據(jù)模型相符合的邏輯結(jié)構(gòu),并對其進行優(yōu)化。</p><p>  E-R圖向關(guān)系模型轉(zhuǎn)化要解決的問題是如何將實體型和實體間的聯(lián)系轉(zhuǎn)化為關(guān)系模式,如何確定這些關(guān)系模式的屬性和碼。</p><p>  設(shè)計學(xué)生成績管理數(shù)據(jù)庫,包括課程、學(xué)生、教師、成績四個關(guān)系, 其關(guān)系模式中對每個實體定義的屬性如下:</p><p><

20、;b>  課程信息表</b></p><p>  Class:(班級編號,班級名稱,所屬學(xué)院,年級,班級人數(shù))</p><p><b>  學(xué)生信息表</b></p><p>  Student: (學(xué)號,姓名,性別,出生日期,籍貫,所屬班級)</p><p><b>  課程信息表</

21、b></p><p>  Course: (課程號,課程名,學(xué)分,課時數(shù),先修課程)</p><p><b>  成績表</b></p><p>  Score:(學(xué)號,課程號,開課學(xué)期,成績)</p><p>  設(shè)計出E-R圖后,可將E-R圖轉(zhuǎn)換為數(shù)據(jù)庫模式。本系統(tǒng)建立的數(shù)據(jù)庫為“ScoreDB”,運行本系統(tǒng)時

22、在庫中所建立的表分別介紹如下:</p><p>  3.1 班級信息表(Class)</p><p>  3.2 學(xué)生信息表(Student)</p><p>  3.3 課程信息表(Course)</p><p>  3.4 成績表(Score)</p><p><b>  四、建表</b>&l

23、t;/p><p><b>  4.1 創(chuàng)建數(shù)據(jù)庫</b></p><p>  打開SQL工具“查詢分析器”</p><p>  在查詢窗口中鍵入下列SQL語句</p><p>  create database student</p><p>  執(zhí)行上述SQL語句即可新建一名為s的數(shù)據(jù)庫。</

24、p><p><b>  4.2 創(chuàng)建數(shù)據(jù)表</b></p><p>  一個完整的數(shù)據(jù)庫不可缺少的就是數(shù)據(jù)表,若干個數(shù)據(jù)表的集合成一個數(shù)據(jù)庫。數(shù)據(jù)表主要用來存放一定格式的記錄,數(shù)據(jù)表中的行被稱為記錄,列被稱為字段。創(chuàng)建數(shù)據(jù)表的過程其實就是定義字段的過程。</p><p>  在此學(xué)生成績管理系統(tǒng)中需要創(chuàng)建四個表,即班級信息表、學(xué)生信息表、課程信息表

25、和成績表。</p><p>  創(chuàng)建數(shù)據(jù)庫后,為ScoreDB數(shù)據(jù)庫添加數(shù)據(jù)表,步驟如下。</p><p><b>  新建查詢窗口</b></p><p>  在查詢窗口中鍵入下列SQL語句</p><p>  create table Class( //創(chuàng)建班級信息表

26、</p><p>  classtudentNo char(10) primary key, //班級編號</p><p>  classtudentName varchar(30) not null, //班級名稱</p><p>  institute varchar(30) Not null //所屬學(xué)院</p>&

27、lt;p>  grade smallint, Not null //年級</p><p>  classNum tinyint, Not null //班級人數(shù)</p><p>  ) </p><p>  執(zhí)行上述SQL語句即可創(chuàng)建課程信息表相關(guān)表格</p><p>  create tab

28、le Student( //創(chuàng)建學(xué)生信息表</p><p>  studentNo char(10) primary key, //學(xué)號</p><p>  studentName varchar(30) not null, //姓名</p><p>  sex

29、 char(2) not null, //性別 </p><p>  birthday datetime not null, //出生日期</p><p>  native varchar(30) not null, //民族</p><p>  classtudentNo Char(

30、10) not null, / /所屬班級</p><p><b>  )</b></p><p>  執(zhí)行上述SQL語句即可創(chuàng)建學(xué)生信息表相關(guān)表格</p><p>  create table Course( //創(chuàng)建教師信息表</p><p>  courseNo char(10)

31、 primary key, //課程號</p><p>  courseName varchar(30) not null, //課程名</p><p>  creditHour numeric not null, //學(xué)分</p><p>  courseHour tinyint not null, //課時數(shù)<

32、;/p><p>  priorCourse varchar(30) not null, //先修課程</p><p><b>  )</b></p><p>  執(zhí)行上述SQL語句即可創(chuàng)建教師信息表相關(guān)表格</p><p>  create table Score( //創(chuàng)建成績表</p>

33、;<p>  studentNo char(10) primary key, //學(xué)號</p><p>  courseNo char(10) primary key, //課程號</p><p>  term char(10) not null, //開課學(xué)期</p><p>  sc

34、ore numeric not null, //成績</p><p><b>  )</b></p><p>  執(zhí)行上述SQL語句即可創(chuàng)建成績表相關(guān)表格</p><p>  五、數(shù)據(jù)庫的運行和維護</p><p><b>  5.1 定義</b></p>

35、<p>  基本表的創(chuàng)建、修改及刪除;索引的創(chuàng)建和刪除。</p><p>  5.1.1 基本表的創(chuàng)建,建表語句</p><p>  create table Student( // 創(chuàng)建學(xué)生表 </p><p>  studentNo char(10) not null,

36、 </p><p>  studentName varchar(30) not null, </p><p>  sex char(2) not null, </p><p>  birthday datetime not null, </p>

37、<p>  native varchar(20) not null, </p><p>  classtudentNo Char(10) not null ,</p><p>  constraint studentPK primary key(StudentNO),</p><p>  constrai

38、nt studentPK1 foreign key(classtudentNo)references class(classtudentNo)</p><p><b>  )</b></p><p>  5.1.2 基本表的刪除</p><p>  drop table Student</p><p><b>

39、  5.2 數(shù)據(jù)操作</b></p><p>  5.2.1 單表查詢:</p><p>  查詢學(xué)號為“0800006”生的姓名</p><p>  select studentName</p><p>  from Student</p><p>  where studentNo=' 0800

40、006'</p><p><b>  結(jié)果:</b></p><p>  5.2.2 連接查詢</p><p>  查詢學(xué)生的學(xué)號、姓名,所選課程的課程號、課程名和成績</p><p>  Select Student.studentNo,Student.studentName,Class.classNo,Cla

41、ss.className,Score.score</p><p>  from Student,Class,Score,Course</p><p>  Where Student.studentNo=Score.studentNo and Student.classNo=Class.classNo and Course.courseNo=Score.courseNo</p>

42、<p><b>  結(jié)果:</b></p><p>  5.2.3 操作結(jié)果集查詢</p><p>  查詢0700003號同學(xué)和0800002號同學(xué)共同選修的課程</p><p>  Select courseNo</p><p>  From Score</p><p>  Whe

43、re studentNo='0700003'</p><p><b>  Intersect</b></p><p>  Select courseNo</p><p>  From score</p><p>  Where studentNo='0800002'</p>

44、<p><b>  查詢結(jié)果:</b></p><p>  5.2.4 嵌套查詢</p><p>  查詢選修了“CS0701”這門課的所有學(xué)生的學(xué)號、姓名、出生日期以及籍貫。</p><p>  Select studentNo,studentName,birthday,native</p><p>  Fr

45、om Student</p><p>  Where studentNo in</p><p>  (select studentNo</p><p>  From score</p><p>  Where classNo='CS0701')</p><p><b>  查詢結(jié)果:</

46、b></p><p>  5.3 數(shù)據(jù)庫更新操作</p><p>  5.3.1 插入數(shù)據(jù)</p><p>  向Student表中添加一項記錄:</p><p>  姓名:葉問,學(xué)號:0800016,性別:男,出生年月:1992-6-19,籍貫:南昌,班級編號:CP0802</p><p><b> 

47、 Insert</b></p><p><b>  Into </b></p><p>  Student(studentNo,studentName, sex,birthday,native,classNo)</p><p>  Values ('0800016',' 葉問', '男'

48、;,'1992-6-19',' 南昌', 'CP0802'</p><p><b>  結(jié)果:</b></p><p>  5.3.2 修改數(shù)據(jù)</p><p>  修改吳敏的學(xué)號為0800019</p><p>  Update Student</p>&l

49、t;p>  Set StudentNo='0800019'</p><p>  Where StudentName='吳敏’;</p><p>  5.3.3 刪除數(shù)據(jù)</p><p>  刪除所有金融學(xué)院學(xué)生的記錄</p><p><b>  Delete </b></p>

50、<p>  from Class</p><p>  Where(institute='金融學(xué)院');</p><p>  5.4 為數(shù)據(jù)庫建立索引</p><p>  5.4.1 索引的建立</p><p>  create index studentNameSM on Student(studentName) &

51、lt;/p><p>  5.4.2 索引的刪除</p><p>  drop index studentNameSM on Student(studentName)</p><p>  5.5 數(shù)據(jù)庫的安全性</p><p>  所謂計算機系統(tǒng)安全性,是指為計算機系統(tǒng)建立和采取的各種安全保護措施,以保護計算機系統(tǒng)中的硬件,軟件及數(shù)據(jù),防止其偶然或

52、惡意的原因使系統(tǒng)遭到破壞,數(shù)據(jù)遭到更改或泄露等。為防止因用戶非法使用數(shù)據(jù)庫造成數(shù)據(jù)泄露、更改或破壞,必須采取一些安全性控制措施以保證數(shù)據(jù)庫中數(shù)據(jù)的安全、可靠和正確有效。安全性控制的防范對象是非法用戶和非法操作,防止他們對數(shù)據(jù)庫數(shù)據(jù)的非法存取。主要采用用戶標(biāo)識及鑒定,使用用戶名或用戶標(biāo)識號來標(biāo)明用戶身份。</p><p>  用戶想要對對數(shù)據(jù)庫內(nèi)容進行相關(guān)操作,必須申請一個用戶名或用戶標(biāo)識號,每次登陸都必須輸入該用

53、戶名以及相應(yīng)正確的口令,然后系統(tǒng)對其進行驗證,只有通過驗證的用戶方可對數(shù)據(jù)庫進行操作。</p><p>  5.6 數(shù)據(jù)庫的完整性</p><p>  5.6.1 實體完整性定義:在班級表Class中將classNo定義為主碼。</p><p>  create table Class( //創(chuàng)建class表 </p>

54、<p>  classNo char(10) not null , </p><p>  className varchar(30) not null , </p><p>  institute varchar(30) Not null, </p><p>  grade smal

55、lint Not null, </p><p>  classNum tinyint null ,</p><p>  constraint ClassPK primary key(classNo) </p><p><b>  ) </b></p><p>  5.6.2 參

56、照完整性定義:在學(xué)生成績表Score中將studentNo、courseNo定義為外碼。</p><p>  create table Score(</p><p>  studentNo char(10) not null,</p><p>  courseNo char(10) not null,</p><p>  term char(

57、10) not null,</p><p>  score numeric(5,1) default 0 not null,</p><p>  Check(Score between 0.0 and 100.0),</p><p>  Constraint ScorePK primary key(studentNo,courseNo),</p>&l

58、t;p>  Constraint ScoreFK1 foreign key(studentNo)</p><p>  References Student(studentNo),</p><p>  Constraint ScoreFK2 foreign key(courseNo)</p><p>  References Course(courseNo)&l

59、t;/p><p><b>  六、模式求精</b></p><p>  通常,如果能仔細(xì)分析用戶的需求,并正確的識別出所有的實體集和聯(lián)系集,有E-R圖生成的數(shù)據(jù)庫模式往往不需要太多的進一步模式求精。然而,如果一個實體集中的屬性之間存在函數(shù)依賴(不包括主碼的依賴關(guān)系),則需要根據(jù)函數(shù)依賴?yán)碚搶⑵溥M行規(guī)范化。</p><p>  通過分析以上關(guān)系可知C

60、ourse關(guān)系模式中存在一個對非主屬性的函數(shù)依賴關(guān)系:courseName-> priorCourse,由此導(dǎo)致的問題是數(shù)據(jù)冗余,即每一個相同等級會員都需要存放priorCourse信息。該模式不滿足BCNF范式。因此,需要對Course進行分解。依據(jù)BCNF可分解為一下兩個模式:</p><p>  NewCourse1(classNo,courseName,creditHour,courseHour)&

61、lt;/p><p>  NewCourse2 (courseName,priorCourse)</p><p><b>  程序執(zhí)行窗口</b></p><p><b>  八、總結(jié)</b></p><p>  本學(xué)生成績查詢系統(tǒng)主要參照課本,相對來說比較簡單。但是由于主要以課本為依據(jù),所以整個設(shè)計做下

62、來基本掌握了課本上數(shù)據(jù)庫的基礎(chǔ)操作。設(shè)計過程中我也遇到了一些問題,再向其他同學(xué)請教的過程中我收獲了很多。</p><p> ?。?)在設(shè)計表時應(yīng)注意使用正確的字段類型。(2)在建表語句中,如果這個表的主鍵是多個屬性的組合主鍵,則必須作為表級完整性進行定義。</p><p>  隨著學(xué)生成績管理類型的不斷增加和成績管理要求的不斷提高,管理方面的工作量將會越來越大,并且其工作將是一件十分煩瑣和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論