專業(yè)信息管理系統(tǒng)數據庫課程設計--學生成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩30頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  課 程 設 計</b></p><p><b>  目錄</b></p><p>  一、需求分析……………………………………………………………4</p><p>  1.數據需求分析………………………………………………………....4</p><p>  2.系統(tǒng)功能

2、需求…………………………………………………………4</p><p>  二、概念結構設計(E-R圖)…………………………………………5</p><p>  三、邏輯結構設計……………………………………………………..7</p><p>  3.1關系模式設計………………………………………………………7</p><p>  3.2數據類型定義…

3、……………………………………………………8</p><p>  四、物理結構設計…………………………………………………….9</p><p>  五、數據庫實施……………………………………………………….10</p><p>  5.1基本表的建立………………………………………………………10</p><p>  5.2數據輸入…………………

4、………………………………………17</p><p>  5.3視圖的建立……………………………………………………….18</p><p>  5.4索引的建立……………………………………………………….22</p><p>  5.5存儲過程的建立…………………………………………………..24</p><p>  5.6數據查詢…………………

5、………………………………………..26</p><p>  六、實驗總結…………………………………………………………31</p><p>  七、參考文獻…………………………………………………………31</p><p><b>  一、需求分析</b></p><p>  計算機已經深入到日常工作和生活的方方面面,成為我

6、們學習和工作的得力助手,比如文字處理、信息管理、輔助設計、圖形圖像處理、教育培訓以及游戲娛樂等。隨著越來越多的應用軟件出現,人們對它的要求也越來越高;雖然現在世界上的各種軟件層出不窮,但它們依然不能滿足用戶的各種特殊需要,所以人們仍是不得不開發(fā)適合特殊需求的軟件。高校成績管理系統(tǒng)記錄了一個大學生成績的系統(tǒng),它的出現使得查詢、更新、插入簡單化,高效化,成本也隨之大大減少。使用計算機對成績信息的管理,具有手工管理所無法比擬的優(yōu)點:信息存儲及

7、時,檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優(yōu)點能夠極大地提高學生成績管理的效率,也是高校成績正規(guī)化管理的重要途徑。</p><p>  本課程設計均以中文形式表示,對普通程序使用者的查詢提供簡單方便的快捷操作,不需要技術含量。</p><p>  以SQL SERVER數據庫管理系統(tǒng)為平臺,通過設計數據庫概念模型、邏輯模型以及利用標準SQL語言的數據庫實現

8、,掌握關系數據庫系統(tǒng)的設計與實現方法,增強數據庫設計和數據庫應用系統(tǒng)開發(fā)能力。</p><p>  操作人員與維護人員應懂的SQL語言。</p><p>  1. 數據需求描述 </p><p><b>  數據流圖</b></p><p><b>  2.系統(tǒng)功能需求 </b></p>

9、<p> ?。?)學生成績按每學年進行成績統(tǒng)計; </p><p> ?。?)學生成績名次排定; </p><p>  (3)每門課程平均成績統(tǒng)計; </p><p>  學生所學課程及學分統(tǒng)計; </p><p>  輸入每個學生成績時,自動生成該學生已修總學分; </p><p><b> 

10、 學生成績查詢; </b></p><p><b>  教師任課查詢; </b></p><p>  班級課程開設查詢; </p><p><b>  二、概念結構設計</b></p><p><b>  E-R圖</b></p><p>&

11、lt;b>  實體:</b></p><p><b>  全局E-R圖:</b></p><p><b>  三、邏輯結構設計</b></p><p>  3.1 關系模式設計</p><p>  教師1h(教師編號1h、教師姓名1h、教師性別1h、教師年齡1h、職稱1h、聯系電話

12、1h)</p><p>  上課1h(教師編號1h、班級編號1h)</p><p>  授課1h(教師編號1h、課程編號1h)</p><p>  課程1h(課程編號1h、課程名稱1h、教師姓名1h、開課學期1h、學時1h、考試或考查1h、學分1h)</p><p>  學習1h(學號1h、課程編號1h、學期1h、課程名稱1h、成績1h、教師

13、姓名1h)</p><p>  學生1h(學號1h、學生姓名1h、學生性別1h、學生年齡1h、生源所在地1h、已修學分總數1h,班級編號1h)</p><p>  開設1h(課程編號1h、班級編號1h)</p><p>  班級1h(班級編號1h、班級名稱1h、專業(yè)編號1h)</p><p>  專業(yè)1h(專業(yè)編號1h、專業(yè)名稱1h)<

14、/p><p>  3.2 數據類型定義</p><p> ?。?)教師Teachers1h</p><p> ?。?)上課Teach1h</p><p> ?。?)授課Instruct1h</p><p> ?。?)課程Courses1h</p><p> ?。?)學習Study1h</p&g

15、t;<p> ?。?)學生Students1h</p><p> ?。?)開設Setup1h</p><p>  (8)班級Classes1h</p><p> ?。?)專業(yè)Major1h</p><p><b>  四、物理結構設計</b></p><p>  索引就是表中數據和相

16、應存儲位置的列表,使用索引可以大大減少數據的查詢時間。</p><p>  對于一個確定的關系,通常在下列情況下可以考慮建立索引。</p><p>  以查詢?yōu)橹鞯年P系可建立盡可能多的索引。</p><p>  對等值連接,但滿足條件的元組較少的查詢可以考慮建立索引。</p><p>  如果查詢可以從索引直接得到結果而不必訪問關系,則對此種

17、查詢可以建立索引。</p><p>  該高校成績管理系統(tǒng)數據庫可建立以下索引:</p><p>  Courses(課程編號)</p><p>  Students(學生學號,班級編號)</p><p>  Classes(班級編號)</p><p>  Study(學號,課程編號)</p><p

18、><b>  五、數據庫實施</b></p><p><b>  5.1 基本表建立</b></p><p> ?。?)教師表Teachers1h</p><p><b>  SQL語句為:</b></p><p>  CREATE TABLE Teachers1h<

19、;/p><p><b>  (</b></p><p>  教師編號1h CHAR(20),</p><p>  教師姓名1h CHAR(10),</p><p>  教師性別1h CHAR(2),</p><p>  教師年齡1h INT,</p><p>  職稱1h

20、 CHAR(20),</p><p>  聯系電話1h CHAR(10),</p><p><b>  );</b></p><p><b>  SQL執(zhí)行結果:</b></p><p> ?。?)專業(yè)表Majorslh</p><p><b>  SQ

21、L語句為:</b></p><p>  CREATE TABLE Majorslh</p><p><b>  (</b></p><p>  專業(yè)編號lh CHAR(20),</p><p>  專業(yè)名稱lh CHAR(20),</p><p><b>  );<

22、/b></p><p>  SQL執(zhí)行結果截圖:</p><p>  (3)班級表Classeslh</p><p><b>  SQL語句為:</b></p><p>  CREATE TABLE Classeslh</p><p><b>  (</b></p

23、><p>  班級編號lh CHAR(20),</p><p>  班級名稱lh CHAR(20),</p><p>  專業(yè)編號lh CHAR(20),</p><p><b>  );</b></p><p>  SQL執(zhí)行結果截圖:</p><p> ?。?)課程表

24、Courseslh</p><p><b>  SQL語句為:</b></p><p>  CREATE TABLE Courseslh</p><p><b>  (</b></p><p>  課程編號lh CHAR(20) PRIMARY KEY,</p><p>

25、  課程名lh CHAR(20),</p><p>  教師姓名lh CHAR(10),</p><p>  學時lh INT,</p><p>  考試或考查lh CHAR(10),</p><p>  學分lh INT,</p><p><b>  )</b></

26、p><p>  SQL執(zhí)行結果截圖:</p><p>  (5)學生表Studentslh</p><p><b>  SQL語句為:</b></p><p>  CREATE TABLE Studentslh</p><p><b>  (</b></p><

27、;p>  學生學號lh CHAR(20),</p><p>  學生姓名lh CHAR(10),</p><p>  學生性別lh CHAR(2),</p><p>  學生年齡lh int,</p><p>  生源所在地lh char(20),</p><p>  已修學分總數lh i

28、nt,</p><p>  班級編號lh CHAR(20)</p><p><b>  )</b></p><p>  SQL執(zhí)行結果截圖:</p><p>  (6)上課表Teachlh</p><p><b>  SQL語句為:</b></p><

29、;p>  CREATE TABLE Teachlh</p><p><b>  (</b></p><p>  教師編號lh CHAR(20) ,</p><p>  班級編號lh CHAR(20) ,</p><p><b>  )</b></p><p>  S

30、QL執(zhí)行結果截圖:</p><p> ?。?)授課表Instructlh</p><p><b>  SQL語句為:</b></p><p>  CREATE TABLE Instructlh</p><p><b>  (</b></p><p>  教師編號lh CHA

31、R(20),</p><p>  課程編號lh CHAR(20),</p><p><b>  )</b></p><p>  SQL執(zhí)行結果截圖:</p><p> ?。?)學習表Studylh</p><p><b>  SQL語句為:</b></p>&

32、lt;p>  CREATE TABLE Studylh</p><p><b>  (</b></p><p>  學生學號lh CHAR(20),</p><p>  課程編號lh CHAR(20),</p><p>  學期lh char(10),</p><p>  課程名稱lh

33、 char(20),</p><p>  成績lh int,</p><p>  教師姓名lh char(10),</p><p><b>  )</b></p><p>  SQL執(zhí)行結果截圖:</p><p>  (9)開設Setuplh</p><p><

34、b>  SQL語句為:</b></p><p>  CREATE TABLE Setuplh</p><p><b>  (</b></p><p>  課程編號lh CHAR(20),</p><p>  班級編號lh char(20),</p><p><b>

35、  )</b></p><p>  SQL執(zhí)行結果截圖:</p><p><b>  5.2 數據輸入</b></p><p>  專業(yè)表Majorslh:</p><p>  班級表Classeslh:</p><p>  課程表Courseslh:</p><p

36、>  教師表Teacherslh:</p><p>  學生表Studentslh:</p><p>  學習表Studylh:</p><p>  上課表Teachlh:</p><p>  授課表Instructlh: </p><p>  開設表Setuplh:</p><p>&l

37、t;b>  5.3視圖的建立</b></p><p><b>  (1)學生成績統(tǒng)計</b></p><p>  CREATE VIEW dbo.學生成績統(tǒng)計</p><p><b>  AS</b></p><p>  SELECT dbo.Studentslh.學生學號1h,

38、dbo.Studentslh.學生姓名1h, </p><p>  dbo.Studylh.課程名稱1h, dbo.Studylh.教師姓名1h, dbo.Studylh.成績1h</p><p>  FROM dbo.Studentslh INNER JOIN</p><p>  dbo.Studylh ON dbo.Studentslh.學生學號1h = dbo

39、.Studylh.學生學號1h</p><p> ?。?)學生所學課程及學分統(tǒng)計</p><p>  CREATE VIEW dbo.學生所學課程及學分統(tǒng)計</p><p><b>  AS</b></p><p>  SELECT dbo.Studentslh.學生學號1h, dbo.Studentslh.已修學分總數

40、1h, </p><p>  dbo.Studylh.課程名稱1h</p><p>  FROM dbo.Studentslh INNER JOIN</p><p>  dbo.Studylh ON dbo.Studentslh.學生學號1h = dbo.Studylh.學生學號1h</p><p><b> ?。?)教師任課查詢&

41、lt;/b></p><p>  CREATE VIEW dbo.教師任課查詢</p><p><b>  AS</b></p><p>  SELECT dbo.Teachers1h.教師姓名1h, dbo.Courseslh.課程編號1h, </p><p>  dbo.Courseslh.課程名1h, dbo

42、.Courseslh.學時1h, dbo.Courseslh.學分1h, </p><p>  dbo.Teachers1h.教師編號1h</p><p>  FROM dbo.Courseslh INNER JOIN</p><p>  dbo.Teachers1h ON dbo.Courseslh.教師姓名1h = dbo.Teachers1h.教師姓名1h&l

43、t;/p><p> ?。?)班級課程開設查詢</p><p>  CREATE VIEW dbo.班級課程開設查詢</p><p><b>  AS</b></p><p>  SELECT dbo.Classeslh.班級編號1h, dbo.Classeslh.班級名稱1h, </p><p>  

44、dbo.Setuplh.課程編號1h, dbo.Courseslh.課程名1h, dbo.Courseslh.學時1h, </p><p>  dbo.Courseslh.學分1h</p><p>  FROM dbo.Setuplh INNER JOIN</p><p>  dbo.Courseslh ON </p><p>  dbo.S

45、etuplh.課程編號1h = dbo.Courseslh.課程編號1h INNER JOIN</p><p>  dbo.Classeslh ON dbo.Setuplh.班級編號1h = dbo.Classeslh.班級編號1h</p><p><b>  5.4 索引的建立</b></p><p>  因為每一個表建立,SSMS會自動生成

46、一個聚集索引,所以不需要再手動建立聚集索引。</p><p>  下面根據4來建立索引:</p><p>  專業(yè)編號lh:create unique index SY_專業(yè)編號lh on Majorslh(專業(yè)編號lh)</p><p>  課程編號lh:create unique index SY_課程編號lh on Courseslh(課程編號lh)</

47、p><p>  學生學號lh,班級編號lh:create unique index SY_學班l(xiāng)h on Studentslh(學生學號lh,班級編號lh)</p><p>  學生學號lh,課程編號lh:create unique index SY_學課lh on Studylh(學生學號lh,課程編號lh)</p><p>  5.5 存儲過程的建立</p&g

48、t;<p> ?。?)建立一個對學生表插入信息的存儲過程</p><p><b>  sql語句如下:</b></p><p>  @sno char(20),</p><p>  @sname char(12),</p><p>  @ssex char(2),</p><p> 

49、 @sage int,</p><p>  @ssourcead char(20),</p><p>  @scredit int,</p><p>  @sclass char(12)</p><p><b>  as </b></p><p>  insert Studentslh(學生學號

50、lh, 學生姓名lh, 學生性別lh, 學生年齡lh, 生源所在地lh, 已修學分總數lh, 班級編號lh) </p><p>  Values(@sno,@sname,@ssex,@sage,@ssourcead,@scredit,@sclass)</p><p><b>  SELECT *</b></p><p>  FROM Stud

51、entslh</p><p><b>  Go</b></p><p>  Sql執(zhí)行結果如下:</p><p>  (2)建立一個輸入成績,自動生成其總學分的存儲過程</p><p><b>  sql語句如下:</b></p><p>  create procedure

52、 pro_輸入成績自動生成學分lh</p><p>  @學生學號lh char(20),</p><p>  @課程編號lh char(12),</p><p>  @課程名lh char(20),</p><p>  @學期lh char(10),</p><p>  @成績lh int,</p>&

53、lt;p>  @教師姓名lh char(10),</p><p><b>  @學分lh int</b></p><p><b>  as </b></p><p><b>  begin</b></p><p>  insert into pro選修lh &

54、lt;/p><p>  values( @學生學號lh,@課程編號lh,@成績lh ) </p><p>  update Studentslh</p><p>  set Studentslh.已修學分總數lh = Studentslh.已修學分總數lh + @學分lh</p><p>  where Studentslh.學生學號lh=@

55、學生學號lh</p><p><b>  end</b></p><p>  Sql執(zhí)行結果如下:</p><p><b>  5.6數據查詢</b></p><p>  (1)查詢dbo.Courseslh表里的課程編號1h, 課程名1h, 教師姓名1h, 學時1h</p><

56、p><b>  的所有記錄。</b></p><p>  use yuqiule</p><p>  SELECT 課程編號1h, 課程名1h, 教師姓名1h, 學時1h</p><p>  FROM dbo.Courseslh</p><p>  (2)查詢“小林”的相關信息。</p><p&

57、gt;  use yuqiule</p><p>  SELECT *FROM Studentslh where 學生姓名1h='小林'</p><p> ?。?)查詢“課程編號1h”對應的“課程名稱1h”。</p><p>  use yuqiule</p><p>  SELECT 課程編號1h, 課程名1h</p&

58、gt;<p>  FROM dbo.Courseslh</p><p>  where 課程編號1h='CO01'</p><p> ?。?)查詢students1h表中年齡<21的所有信息。</p><p>  use yuqiule</p><p>  SELECT *FROM Studentslh&l

59、t;/p><p>  where 學生年齡1h<21</p><p> ?。?)查詢Classes1h表中班級名稱為大學英語的相關信息(班級名稱1h 命名為Expr1, 專業(yè)編號1h 命名為Expr2, 班級編號1h命名為 Expr3)。</p><p>  use yuqiule</p><p>  SELECT *, 班級名稱1h AS

60、 Expr1, 專業(yè)編號1h AS Expr2, 班級編號1h AS Expr3</p><p>  FROM Classeslh </p><p>  where 班級名稱1h='大學英語'</p><p>  (6)在[dbo].[Majorslh]中插入數據行('M03','數據庫')。</p>&

61、lt;p>  use yuqiule</p><p>  insert into [dbo].[Majorslh] values('M03','數據庫')</p><p> ?。?)多表查詢1(classes1h,majors1h)</p><p>  use yuqiule</p><p>  SELE

62、CT dbo.Classeslh.班級編號1h, dbo.Classeslh.班級名稱1h, </p><p>  dbo.Majorslh.專業(yè)名稱1h, dbo.Classeslh.專業(yè)編號1h</p><p>  FROM dbo.Classeslh INNER JOIN</p><p>  dbo.Majorslh ON dbo.Classeslh.專業(yè)編號

63、1h = dbo.Majorslh.專業(yè)編號1h</p><p>  (8)多表查詢2(classes1h,majors1h, Teachlh)</p><p>  use yuqiule</p><p>  SELECT dbo.Teachlh.教師編號1h, dbo.Classeslh.班級編號1h, </p><p>  dbo.Cla

64、sseslh.班級名稱1h, dbo.Classeslh.專業(yè)編號1h</p><p>  FROM dbo.Classeslh INNER JOIN</p><p>  dbo.Majorslh ON </p><p>  dbo.Classeslh.專業(yè)編號1h = dbo.Majorslh.專業(yè)編號1h INNER JOIN</p><p&

65、gt;  dbo.Teachlh ON dbo.Classeslh.班級編號1h = dbo.Teachlh.班級編號1h</p><p>  (9)修改數據行([dbo].[Studylh]成績字段都減10)。</p><p>  use yuqiule</p><p>  update [dbo].[Studylh]set 成績1h = 成績1h-10</

66、p><p>  (10)在[dbo].[Majorslh]中刪除數據行('M03','數據庫')。</p><p>  use yuqiule</p><p>  delete from [dbo].[Majorslh] where 專業(yè)名稱1h='數據庫'</p><p><b>  (

67、11)嵌套查詢</b></p><p>  use yuqiule</p><p>  select 課程編號1h</p><p>  from [dbo].[Setuplh]</p><p>  where 班級編號1h in </p><p>  (select 班級編號1h</p>&l

68、t;p>  from [dbo].[Classeslh]</p><p>  where 專業(yè)編號1h='M01');</p><p><b>  六、實驗總結</b></p><p>  從總的方面來講,在整個系統(tǒng)的穩(wěn)定性方面做的不足,另外,在創(chuàng)建表的時候,有些問題還未解決。本系統(tǒng)只適用于文本式的課程設計,而不能運用于實

69、際,所以還需要不斷地完善。(后期設計改進方案如下)</p><p>  首先,可以將數據庫的設計方面考慮的更完善一些,做到簡潔而準確。</p><p>  其次,可以在代碼方面加強安全性和穩(wěn)定性,通過不斷完善、改善代碼,不斷提高數據庫系統(tǒng)系統(tǒng)的實用性和穩(wěn)定性。</p><p>  通過這次課程設計,我學到了很多東西。以前上課時感覺都聽懂的東西,放到實踐中來一用,發(fā)現

70、都不會,還得細細得找資料、問問題。在課程設計不斷進行下去的途中,發(fā)現自己在每天學習著新的知識,這樣的感覺很好。當然,在課程設計中也遇到了各種各樣的問題,以下是我的幾點領悟:</p><p>  做事情一定要保持耐心,特別像做科研搞項目的,可能一開始拿到手的東西是你根本無法去下手的,但是你一步步的做下去,會發(fā)現其實還是可以步步跟進的,而且在層層推進的過程中,你會體驗到成功的快樂。</p><p&

溫馨提示

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

評論

0/150

提交評論