版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計說明書</b></p><p> 課程設計名稱: 數據庫系統概論 </p><p> 課程設計題目: 學生選課系統 </p><p> 學 院 名 稱: 信息工程學院 </p>&l
2、t;p> 20 13 年 1 月 6 日</p><p><b> 一、需求分析</b></p><p> 作為數據庫課程設計題目,鑒于設計時間有限,我們不追求大而全,只是把學生選課所涉及的核心內容作為數據庫管理的對象來進行設計。要完成對學生選課的管理,系統必須管理學院的教師信息、學生選修課程的信息、學院開設的所有課程信息、學院的專業信息、教
3、師開設課程信息等。</p><p> 選課系統主要滿足三類用戶的要求,這三類用戶分別是系統管理員、教師和學生,他們所具有的操作權限以及操作內容是不同的。要求選課系統可以滿足以下功能:系統管理員能對學生信息、教師信息、課程信息等進行有效的管理和維護,包括增加刪除和修改等基本的維護功能和靈活的查詢功能;教師和學生能夠對個人的基本信息、授課、選課所涉及的有關信息進行查詢、更新等操作。具體的需求分析如下。</p&
4、gt;<p><b> ?。?)系統管理員</b></p><p> 1)維護學生的個人基本信息,實現對學生個人信息的增加、刪除、更新等。學生信息包括學生的學號、姓名、性別、專業、年齡、電話、郵件等。</p><p> 2)維護教師的個人基本信息,實現對教師個人信息的增加、刪除、更新等。教師信息包括教師的工號、姓名、性別、職稱、年齡、電話、郵件等。&
5、lt;/p><p> 3)維護課程信息,實現對課程信息的增加、刪除、修改等。課程信息包括課程號、課程名、課程性質、學分等。</p><p><b> ?。?)學生用戶</b></p><p> 1)查詢和修改個人信息。</p><p> 2)進行選課操作,包括查看課程設置信息、選課、退選、查看已選課程等。</p&
6、gt;<p> 3)學生可以查看自己當前所選課程的信息和以前所選課程的成績信息。</p><p><b> ?。?)教師用戶</b></p><p> 1)查詢和修改個人信息。</p><p> 2)課程結束后,教師對所教授的學生進行成績登記。</p><p> 3)教師可以查看自己的教學安排,包括
7、講授課程、學時數、以往所教授的課程的學生成績等信息。</p><p> 教學管理的基本規定是:每門課程可以由多個教師開設,不同的老師開設的同名課程有不同的代碼;每個教師可以開設多門課程;每個學生可以選修多門課程,每門課程有多個學生選修,每個學生選修每門課程都會獲得一個成績。</p><p><b> 二、系統功能分析</b></p><p>
8、; 系統功能分析圖如下所示:</p><p><b> 系統分析功能圖</b></p><p><b> 三、系統結構設計</b></p><p><b> ?。ㄒ唬└拍罱Y構設計</b></p><p> 分析學生選課系統的基本需求,利用概念結構設計的抽象機制,對所需分
9、析結果中的信息進行分類、組織,得到系統的實體、實體屬性、實體的鍵、實體之間的聯系以及聯系的類型,就可以設計出系統的概念模型。</p><p> 通過前述分析,可以抽取出學生選課系統的基本實體有:學生、教師、課程;這三個實體是通過教師授課、學生選課產生聯系的,學生與教師、課程三者之間是多對多的聯系。</p><p> 下面介紹概念結構設計的具體步驟。</p><p&g
10、t; 1、抽象出系統的實體</p><p> 根據分析,學生選課系統主要包括學生、教師、課程3個實體,畫出3個實體的局部E-R圖,并在圖中標出實體的主鍵(加下劃線的屬性),如圖1、圖2、圖3所示。</p><p> 圖 1 學生實體及屬性</p><p> 圖2 教師實體及屬性</p><p> 圖3 課程實體及屬性</
11、p><p><b> 2、設計分E-R圖</b></p><p> 在學生選課系統中,涉及3個實體:學生、教師、課程,3個實體之間均存在聯系。根據需求分析的結果可以得到,在學生選課系統中,一個學生可以選擇多門課程,一個教師也可以教授不同的課程,一門課程可以被多個學生選修,同時也可以被多個教師教授。由此可知,學生、教師、課程三者之間是通過選課進行聯系的。</p&g
12、t;<p> ?、賹W生與教師:一個教師可以教授多名學生,每個學生可以選修多個教師的課程。所以。學生與教師之間是通過選課進行聯系的,并且二者之間的關系式多對多的聯系。</p><p> ?、趯W生與課程:一個學生可以選擇多門課程,一門課程可以對多個學生開放。因此,學生與課程之間是多對多的聯系。學生選修一門課程會有一個成績。</p><p> ?、劢處熍c課程:一個教師可以教授多門課
13、程,一門課程同時也可以被多名教師教授。因此,教師與課程之間的關系是多對多的聯系。</p><p> 根據上述分析,得到各個局部的E-R圖,如圖4、圖5、圖6所示。</p><p><b> mm</b></p><p><b> nn</b></p><p> 圖4 學生與教師之間的
14、E-R圖 圖5 教師與課程之間的E-R圖</p><p><b> m</b></p><p><b> n</b></p><p> 圖6 學生與課程之間的E-R圖</p><p> 3、合并分E-R圖,生成初步E-R圖</p><p> 合并分E
15、-R圖并不是單純地將各個分E-R圖畫在一起,而是必須消除各個分E-R圖中不一致,以形成一個能為全系統中所有用戶共同理解和接受的統一的概念模型。如何合理消除各個分E-R圖的沖突是生成初步E-R圖的關鍵所在。各個分E-R圖之間的沖突包括三種:屬性沖突、命名沖突和結構沖突。</p><p> 經過分析,得到學生、教師和課程三者之間可以通過選課這個聯系進行關聯。因此,合并上述分E-R圖,生成學生選課系統初步E-R圖,如
16、圖7所示。</p><p><b> m</b></p><p><b> np</b></p><p> 圖7 學生選課系統初步E-R圖</p><p><b> 4、全局E-R圖</b></p><p> 將各個實體的屬性加入形成全局E
17、-R圖,如圖8所示。</p><p><b> m</b></p><p><b> np</b></p><p> 圖8 學生選課系統全局E-R圖</p><p><b> ?。ǘ┻壿嫿Y構設計</b></p><p> 邏輯結構設計就是將
18、概念結構設計中的全局E-R圖轉換為與選用的DBMS產品所支持的數據模型相符合的邏輯結構。</p><p> 在關系數據庫系統中,數據庫的邏輯設計就是根據概念模型設計的E-R圖,按照E-R圖到關系數據模型的轉換規則,將E-R圖轉換成關系模型的過程,即將所有的實體和聯系轉化為一系列的關系模式的過程。E-R圖向關系模型的轉換要解決的問題是,如何將實體和實體間的聯系轉換為關系模式,以及如何確定這些關系模式的屬性和鍵。&
19、lt;/p><p> 根據前面介紹的E-R圖向關系模式數據模型轉換的相關規則,將圖8所示E-R圖轉換為關系數據模型,得到學生選課系統的關系模式如下:</p><p> 教師(工號,姓名,性別,年齡,職稱,電話,郵件)為教師實體對應的關系模式,其中工號是教師關系的主鍵。</p><p> 學生(學號,姓名,性別,專業,年齡,電話,郵件)為學生實體對應的關系模式,其中
20、學號是學生關系的主鍵。</p><p> 課程(課程號,課程名,學分,課程性質)為課程實體對應的關系模式,其中課程號是課程關系的主鍵。</p><p> 選課(學號,工號,課程號,成績)為聯系“選課”對應的關系模式,因為選課是學生、課程和教師之間的多對多聯系,因此學生、教師和課程的主屬性,以及選課聯系本身的屬性“成績”,共同構成了選課關系模式的屬性,其中學號,工號,課程號的組合是選課關
21、系的主鍵。</p><p> 四、數據庫對象的設計及實現</p><p> 本系統是一個小型的學生選課系統,經過分析,“學生選課系統”數據庫的初始大小可以設為10MB,增長率設置為10%,并將數據文件和日志文件分別命名為:“學生選課系統_data”和“學生選課系統_log”,其存儲路徑選擇為“D:\data”文件夾下。</p><p> 首先,為學生選課系統建
22、立數據庫“學生選課系統”。在這里采取利用Management Studio圖形工具交互向導方式。</p><p> 1)啟動SQL Server 2008并連接到服務器。創建數據庫“學生選課系統”。在SQL Server 2008數據庫管理系統的左側“對象資源管理器”中右擊數據庫對象,在彈出的快捷菜單中單擊“新建數據庫”命令,如圖9所示。</p><p> 圖9 新建數據庫菜單<
23、;/p><p> 在彈出的“新建數據庫”對話框中,輸入數據庫名稱“學生選課系統”,改變數據庫的初始大小、增長方式(如圖10所示),以及數據文件、日志文件的存儲路徑,單擊“確定”按鈕。</p><p> 圖10 更改數據庫增長方式對話框</p><p> 創建數據庫之后,在左側的“對象資源管理器”中國右擊“數據庫”,在彈出的快捷菜單中單擊“刷新”命令,可以看到新建
24、的數據庫“學生選課系統”。如圖11所示。</p><p> 圖11 數據庫“學生選課系統”創建成功</p><p> 2)建立和管理基本表</p><p><b> 1建立基本表</b></p><p> 經過上面的分析,需要為“學生選課系統”數據庫建立學生、教師、課程和選課4張基本表。建立數據表利用SQL Se
25、rver2008的Management Studio圖形工具建表。</p><p><b> 建立學生表</b></p><p> 在邏輯結構建立的時候,已經得到學生表的數據模式如下:</p><p> 學生(學號,姓名,新別,專業,年齡,電話,郵件),其中各個屬性列的名稱以及數據類型參見表1,根據表中所列出的信息建立學生表。經分析,學號
26、是主鍵,不允許為空,性別的取值只能是“男”,“女”,并且,根據常識,將年齡的取值限制在1~100內。</p><p> 表1 學生表的屬性信息</p><p> 1)打開SQL Server 2008,在“對象資源管理器”中,單擊“學生選課系統”數據庫的展開,右擊“表”,在快捷菜單中單擊“新建表”,如圖12所示。</p><p> 圖12 新建表示意圖&l
27、t;/p><p> 在打開的創建表的窗口中,按照表1的要求進行建表操作,如圖13所示。</p><p> 圖13 交互式建立學生表的屬性列</p><p> 根據表1的要求,將“學號”屬性設置為主鍵,方法為:右擊“學號”這一列,單擊“設置主鍵”,如圖14所示。設置成功后,“學號”屬性列上面出現。</p><p> 圖14 設置主鍵快捷
28、菜單</p><p> 保存學生表并將此表命名為“學生”。</p><p> 2)設置約束條件。根據表1的要求,需要為“性別”屬性列設置約束條件。設置約束條件的方法為:選中“性別”列,右擊“CHECK約束”,在彈出的”CHECK約束”對話框中,單擊”添加”按鈕,出現如圖15所示。將“標識”名稱改為“CK_學生_性別”(如圖16所示)。在此對話框中單擊“常規”標簽頁,單擊“表達式”,其右
29、邊出現按鈕,單擊該按鈕,彈出“CHECK約束表達式”對話框,在此對話框中輸入約束條件(如圖17所示),單擊“確定”按鈕,再單擊“關閉”按鈕即可。</p><p> 對“年齡”屬性設置約束條件的方法一次類似,只是約束名與約束條件不同。如圖18所示。</p><p> 圖15 設置CHECK約束標識名</p><p> 圖16 設置CHECK約束標識名<
30、/p><p> 圖17 CHCEK約束表達式</p><p> 圖18 設置年齡CHECK約束表達式</p><p><b> 再保存表。</b></p><p> 3)右擊“對象資源管理器”中的“學生選課系統”中的“表”,單擊“刷新”命令即可看到建立的表。</p><p><b&g
31、t; 2,建立教師表</b></p><p> 教師表的屬性信息如表2所示。并按表2建立教師表,如圖19所示。</p><p> 表2 教師基本表的屬性信息</p><p> 圖19 交互式建立教師表屬性列</p><p><b> 3,建立課程表</b></p><p>
32、; 課程表的屬性信息如表3所示。并按表3建立教師表,如圖20所示。</p><p> 表2 課程基本表的屬性信息</p><p> 圖19 交互式建立課程表屬性列</p><p><b> 4,建立選課表</b></p><p> 選課表的屬性信息如表4所示。并按表4建立教師表,如圖21示。</p&g
33、t;<p> 表2 選課基本表的屬性信息</p><p> 圖21 交互式建立選課表屬性列</p><p> 再將選課表中的“學號”,“工號”,“課程號”設置為外鍵。步驟如圖22,23,24,15。</p><p> 圖22 右擊“鍵”單擊“新建外鍵”</p><p> 圖23 選中“表和列規范”后面的<
34、/p><p> 圖24 在此設置外鍵</p><p><b> 圖25 設置外鍵</b></p><p><b> 依次設置外鍵。</b></p><p><b> 3)建立和管理視圖</b></p><p> 數據庫中的視圖時常用的數據對象,
35、它用于定義數據庫某類用戶的外模式。通過創建視圖可以限制不同的用戶查看不同的信息,屏蔽用戶不關心的或者不應該看到的信息。</p><p> 視圖是從一個或者多個基本表中導出的表,他與基本表不同,視圖是一個虛表。其數據不單獨保存在一個基本文件中,仍然保存在導出視圖的基本表文件中,數據庫系統中只保存視圖的定義。視圖一經定義,就和基本表一樣,也是關系,可以進行查詢、刪除等操作。</p><p>
36、 打開“對象資源管理器”,找到“學生選課系統”數據庫,找到,右擊“視圖”,在菜單中單擊“新建視圖”。出現如圖26所示對話框。選中學生表并單擊“添加”按鈕,再單擊“關閉”按鈕得到如圖27所示。此處添加一個“計算機科學與技術視圖”,實現對計算機科學與技術專業學生的信息查詢。</p><p> 圖26 添加表對話框</p><p> 圖27 創建計算機科學與技術視圖</p>
37、<p> 在圖28中選中所有屬性項,并在“專業”這一行對應的“篩選器”這一列中輸入“計算機科學與技術”,如圖29所示。保存視圖命名為“計算機科學與技術”。在左側的“對象資源管理器”中右擊“視圖”,在彈出的快捷菜單中單擊“刷新”命令即可看到新建的視圖“見算計科學與技術”。</p><p> 圖28 選中所有學生屬性列</p><p> 圖29 篩選器寫入計算機科學與技
38、術</p><p> 類似的再創建“通信”,“信號與信息處理”,“電路與系統”三個視圖。</p><p><b> 4)建立和管理索引</b></p><p> 打開“對象資源管理器”,將課程表展開,找到“索引”,右擊“新建索引”,再打開的“新建索引”窗口中,輸入索引名稱,索引類型選擇“非聚集”,單擊“添加”按鈕,在新打開的窗口中,單擊“
39、課程號”,“課程名”,“學分”,“課程性質”(如圖30所示),單擊“確定”按鈕。</p><p> 圖30 新建課程索引</p><p> 類似的,新建學生,教師索引。</p><p><b> 5)創建觸發器</b></p><p> 觸發器是數據庫中一種確保數據完整性的方法,同時也是DBMS執行的特殊類型的
40、存儲過程,觸發器都定義在基本表上,每個基本表都可以插入、刪除、修改3中操作定義觸發器。對基本表進行插入,修改,刪除操作都會使得相應的觸發器運行,以保證不會破壞數據的完整性。</p><p> 1,先在學生表上定義一個觸發器,當插入或修改學生信息時,年齡低于20歲,自動修改為18歲。</p><p> 創建此觸發器的SQL語句如下:</p><p> Creat
41、e trigger insert_or_update_學生</p><p><b> On 學生</b></p><p> For insert,update</p><p><b> As</b></p><p><b> Update 學生</b></p>
42、;<p><b> Set 年齡=20</b></p><p> From 學生 t,inserted i</p><p> Where t.學號=i.學號 AND i.年齡<20</p><p> 打開“新建查詢窗口”,選擇數據庫“學生管理系統”。在新建查詢窗口中,輸入以上代碼,并執行,當命令完成以后,此觸發器即創
43、建成功。如圖31所示。</p><p> 圖31 創建插入或修改學生信息觸發器</p><p> 2,創建刪除觸發器,當學生表中的某“學號”的學生被刪除時,自動將選課表中的該學生的選課疾苦刪除,即為學生表建立刪除觸發器,實現學生表和選課表的級聯刪除。</p><p> 創建刪除觸發器的SQL語句如下:</p><p> Create
44、 trigger delete_學生</p><p><b> On 學生</b></p><p> For delete</p><p><b> As</b></p><p> Delete from 選課</p><p> Where 學號 in (selec
45、t 學號 from deleted)</p><p> 圖32 創建刪除學生觸發器</p><p> create trigger delete_教師</p><p><b> on 教師</b></p><p> for delete</p><p><b> as<
46、/b></p><p> delete from 選課</p><p> where 工號 in(select 工號 from deleted)</p><p> 6)新建數據庫關系圖</p><p> 在“對象資源管理器”中選中數據庫關系圖,右擊在菜單中單擊新建數據庫關系圖,得到如圖33所示對話框。</p>&l
47、t;p> 圖33 創建數據庫關系圖</p><p><b> 7)創建存儲過程</b></p><p> ?、傧葎摻ㄒ粋€按學號和課程號刪除學生選課信息的存儲過程。SQL語句如下:</p><p> create Procedure 刪除選課信息</p><p><b> (</b>&
48、lt;/p><p> @學號 char(10),</p><p> @課程號 char(10)</p><p><b> )</b></p><p><b> as</b></p><p> delete from 選課 where(學號=@學號 and 課程號=@課程
49、號)</p><p> 并執行,如圖34所示。</p><p> ?、谠趧摻ㄒ粋€添加學生信息存儲過程,SQL語句如下:</p><p> USE [學生選課系統]</p><p><b> GO</b></p><p> /****** Object: StoredProcedure [
50、dbo].[添加學生信息] Script Date: 01/06/2013 14:38:42 ******/</p><p> SET ANSI_NULLS ON</p><p><b> GO</b></p><p> SET QUOTED_IDENTIFIER ON</p><p><b>
51、GO</b></p><p> ALTER Procedure [dbo].[添加學生信息]</p><p><b> (</b></p><p> @學號 char(10) ,</p><p> @姓名 char(20),</p><p> @性別 char(2),<
52、/p><p> @專業 char(20),</p><p> @年齡 tinyint,</p><p> @電話 char(15),</p><p> @郵件 varchar(30)</p><p><b> )</b></p><p><b> as&l
53、t;/b></p><p> insert into 學生信息表 values(@學號,@姓名,@性別,@專業,@年齡,@電話,@郵件)</p><p> ?、厶砑咏處煷鎯^程,SQL語句如下:</p><p> create Procedure 添加教師信息</p><p><b> (</b></p
54、><p> @工號 char(10) ,</p><p> @姓名 char(20),</p><p> @性別 char(2),</p><p> @年齡 tinyint,</p><p> @職稱 char(10),</p><p> @電話 char(15),</p>
55、<p> @郵件 varchar(30)</p><p><b> )</b></p><p><b> as</b></p><p> insert into 教師信息表 values(@工號,@姓名,@性別,@年齡,@職稱,@郵件)</p><p> 工號刪除教師存儲過程,
56、SQL語句如下:</p><p> create Procedure 工號刪除教師信息</p><p><b> (</b></p><p> @工號 char(10) </p><p><b> )</b></p><p><b> as</
57、b></p><p><b> begin</b></p><p> if exists (select * from 選課 where 工號=@工號)</p><p> delete from 選課 where 工號=@工號</p><p><b> else</b></p&g
58、t;<p> print '此教師不存在'</p><p> delete from 教師 where 工號=@工號</p><p><b> end</b></p><p> --exec 工號刪除教師信息'T1'</p><p> --select * from
59、 教師</p><p> 課程號查找課程信息存儲過程SQL語句如下所示:</p><p> create Procedure 課程號查找課程信息</p><p><b> (</b></p><p> @課程號 char(10)</p><p><b> )</b>
60、</p><p><b> as</b></p><p> if (@課程號 is null)</p><p><b> begin</b></p><p> print '課程號不能為空,請重新輸入課程號!'</p><p><b> r
61、eturn 13</b></p><p><b> end</b></p><p> select * from 課程</p><p> where (課程號=@課程號)</p><p> 圖34 創建刪除學生信息存儲過程</p><p><b> 參考文獻&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數據庫課程設計---學生選課系統
- 數據庫課程設計--學生選課管理系統
- 數據庫課程設計---學生選課管理系統
- 數據庫課程設計--學生選課管理系統
- 數據庫課程設計學生選課管理系統
- 數據庫課程設計----學生選課管理系統
- 數據庫課程設計---學生選課管理系統
- 數據庫課程設計--選課系統
- 數據庫課程設計--學生選課成績管理系統
- sql數據庫課程設計 學生選課
- 《數據庫技術》課程設計--學生選課管理系統設計
- 數據庫選課管理系統課程設計
- 數據庫課程設計--高校學生選課管理系統
- 學生選課信息系統數據庫課程設計報告
- 數據庫課程設計(實驗選課系統)
- 數據庫課程設計--學生選課信息管理系統
- sqlserver數據庫課程設計--選課管理系統
- 數據庫設計(學生選課系統)
- 數據庫課程設計-學生管理系統
- 數據庫課程設計——學生管理系統
評論
0/150
提交評論