網絡數(shù)據(jù)庫課程設計——學籍管理系統(tǒng).doc_第1頁
網絡數(shù)據(jù)庫課程設計——學籍管理系統(tǒng).doc_第2頁
網絡數(shù)據(jù)庫課程設計——學籍管理系統(tǒng).doc_第3頁
網絡數(shù)據(jù)庫課程設計——學籍管理系統(tǒng).doc_第4頁
網絡數(shù)據(jù)庫課程設計——學籍管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 網絡數(shù)據(jù)庫課程設計報告設計名稱:學籍管理系統(tǒng)學 院: * 專 業(yè):計算機科學與技術班 級:計科 * 姓 名: 學 號:08* 指導教師: * 目 錄引 言2第1章 題目背景與可行性分析31。1 設計背景31.2 開發(fā)環(huán)境可行性3第2章 學生學籍管理系統(tǒng)的需求分析42。1 用戶需求分析42.2 功能需求分析42.4 劃分系統(tǒng)模塊425 數(shù)據(jù)字典52。5。1 數(shù)據(jù)項52.5.2 數(shù)據(jù)結構72.5。3 數(shù)據(jù)流82。5.4 數(shù)據(jù)存儲92。5。5 處理過程9第3章 學生學籍管理系統(tǒng)設計103。1 數(shù)據(jù)庫設計103。1。1 概念結構設計103.2 前臺程序設計153。2。1 功能模塊設計153.2.2

2、程序模塊設計163.2。3 系統(tǒng)流程16第4章 學生學籍管理系統(tǒng)實現(xiàn)174.1 數(shù)據(jù)庫系統(tǒng)實現(xiàn)174。1.1 數(shù)據(jù)庫的設計與實現(xiàn)174.1.2 表的設計與實現(xiàn)184。1。4 約束的設計與實現(xiàn)214。1.5 觸發(fā)器的設計與實現(xiàn)224.1。6 索引的設計與實現(xiàn)254.1.7 存儲過程的設計與實現(xiàn)264.1。4 數(shù)據(jù)庫訪問及操作權限的設計與實現(xiàn)274.2 前臺應用程序的實現(xiàn)(略)28結束語28參考文獻29引 言學生學籍管理是教育教學單位不可缺少的部分,它的內容對教學管理和學校的決策者都非常重要.給學校教學管理提供了很大的方便性,提高了工作效率。但是一直以來人們用傳統(tǒng)人工的方式管理文件文檔,這種管理方

3、式效率低,保密性差,出錯不易更改,同時也耗費了大量的人力財力,時間一長,將產生大量的文件數(shù)據(jù),這對于查找,維護,更新都帶來了很大的困難.隨著科學技術的不斷發(fā)展,尤其是計算機軟件水平的日益提高,使得以上問題得到了很好的解決。使用計算機可以方便的對大量數(shù)據(jù)進行增加,刪除,更新等操作。它有著人工管理永遠無法比擬的優(yōu)點: 檢索迅速,查找方便,可靠性大,存儲量大,保密性好,壽命長,成本低等。例如:通過校園網,我們可以方便的進行學生信息查詢,學生成績的添加,以及最新的教務通知等。當然,這些都離不開數(shù)據(jù)庫技術和網絡技術的支持。數(shù)據(jù)庫是數(shù)據(jù)管理的最新技術,是計算機計算機技術的重要分支,也是計算機領域發(fā)展最快的

4、學科之一.學生學籍管理系統(tǒng)就是數(shù)據(jù)庫在網絡上應用。 綜上,開發(fā)這樣的一個學籍管理系統(tǒng)十分必要。同時舊的人工管理機制必將被以計算機為基礎的信息管理所取代,從而實現(xiàn)對數(shù)據(jù)的高效,長久,安全的管理。第1章 題目背景與可行性分析1.1 設計背景隨著我國教育體制改革的深入進行,教育系統(tǒng)得到了前所未有的發(fā)展.學生管理正在逐步邁向管理信息現(xiàn)代化。但是我國的學生管理信息化水平還處在初級階段,主要表現(xiàn)在對學生的交費管理、學生的檔案管理還是采用原有的人工管理方式.學校的規(guī)模不斷擴大,學生數(shù)量急劇增加,有關學生的各種信息量也成倍增長。由于大學生類別和專業(yè)的設置的多樣化,大學生的學籍管理歷來是非常繁瑣和復雜的的工作。

5、面對龐大的信息量, 這時的人工管理幾乎無法實現(xiàn),在這種情況下用數(shù)據(jù)庫進行管理變的尤為必要,這可以發(fā)揮計算機的優(yōu)勢,就需要有學生信息管理系統(tǒng)來提高學生管理工作的效率.通過這樣的系統(tǒng),可以做到信息的規(guī)范管理,科學統(tǒng)計和快速的查詢,從而減少管理方面的工作量和減少人為的錯誤。1。2 開發(fā)環(huán)境可行性本學生學籍管理系統(tǒng)(數(shù)據(jù)庫系統(tǒng))的開發(fā)與運行環(huán)境如下:開發(fā)環(huán)境:Windows XP輔助工具:PowerDesigner Trial 11數(shù)據(jù)庫管理系統(tǒng):SQL Server 2000運行環(huán)境:Windows 2000/XP/2003第2章 學生學籍管理系統(tǒng)的需求分析2.1 用戶需求分析本系統(tǒng)是針對高等院校的

6、學生學籍管理,因此學籍管理系統(tǒng)的用戶包括系統(tǒng)管理員、教師和學生。主要涉及系部信息、班級信息、任課教師信息、學生信息、課程信息以及選課記錄和成績等多種數(shù)據(jù)信息。2。2 功能需求分析 實現(xiàn)的具體功能如下:l 基本信息管理-系統(tǒng)管理員負責對各種基本信息的錄入、修改、刪除等操作。l 學生成績管理系統(tǒng)管理員負責對學生成績的錄入、修改、刪除等操作,學生可以查詢各科成績。l 信息查詢統(tǒng)計學生可以查詢基本信息和各科的考試成績,老師可以查詢基本信息和授課信息,系統(tǒng)管理員負責把老師提交的學生成績進行管理,計算總成績和平均成績,統(tǒng)計不及格學生信息和獲得獎學金學生的信息,最后再輸出所有的信息。l 系統(tǒng)用戶管理-系統(tǒng)管

7、理員負責用不同的權限來限制不同用戶對系統(tǒng)的使用.2。3 安全性與完整性需求分析系統(tǒng)要使得用戶對學生的學籍管理工作更加清晰、條理化、自動化,容易地完成學生信息的查詢、更新、修改等操作,這就要求系統(tǒng)的效率要高,查詢速度要快,比較小的冗余,易維護,具有較高的數(shù)據(jù)安全性。對于學生成績管理模塊,能更加容易的求得學生的平均成績、最高分、最低分等,可以按照學生的成績進行排序處理等。2.4 劃分系統(tǒng)模塊根據(jù)系統(tǒng)功能的需求分析和高等院校學籍管理的特點,經過模塊化的分析得到如下圖2-1所示的系統(tǒng)功能模塊結構圖。學籍管理系統(tǒng)學生基本信息模塊成績管理模塊院系、教師、課程模塊系統(tǒng)模塊圖 2-1 系統(tǒng)功能模塊圖25 數(shù)據(jù)

8、字典數(shù)據(jù)字典是系統(tǒng)中各類數(shù)據(jù)描述的集合,是進行詳細的數(shù)據(jù)收集和數(shù)據(jù)分析所獲得的主要成果,數(shù)據(jù)字典是對系統(tǒng)所用到的所有表結構的描述2.5。1 數(shù)據(jù)項數(shù)據(jù)項是數(shù)據(jù)庫的關系中不可再分的數(shù)據(jù)單位,學籍管理的主要數(shù)據(jù)項見以下各表,分別列出了數(shù)據(jù)的名稱(即碼)、注釋、數(shù)據(jù)類型、長度、取值范圍和是否是主碼。表 21 學生基本信息表序號名稱注釋數(shù)據(jù)類型長度主要的1班級varchar(16)16FALSE2學號唯一標識學生的信息varchar(20)20TRUE3院系代號varchar(20)5FALSE4專業(yè)號varchar(20)5FALSE5姓名varchar(6)6FALSE6性別varchar(2)2

9、FALSE7出生年月varchar(20)20FALSE8籍貫varchar(8)8FALSE9民族varchar(2)2FALSE10家庭住址varchar(20)20FALSE11入學時間varchar(20)20FALSE12政治面貌varchar(6)6FALSE13身份證號char(18)18FALSE14聯(lián)系電話varchar(20)20FALSE15備注varchar(14)14FALSE表 22 課程信息表序號名稱注釋數(shù)據(jù)類型長度主要的1課程號varchar(20)20TRUE2課程名varchar(20)203先行課smallintFALSE4學分integerFALSE5備

10、注varchar(16)16FALSE表 23 院系表序號名稱注釋數(shù)據(jù)類型長度主要的1院系代號varchar(20)20TRUE2院系名varchar(10)10FALSE3系主任varchar(8)8FALSE4備注varchar(16)16FALSE表 2-4 專業(yè)表序號名稱注釋數(shù)據(jù)類型長度主要的1專業(yè)號varchar(20)20TRUE2院系代號varchar(20)20FALSE3專業(yè)名稱varchar(16)16FALSE4備注varchar(16)16FALSE表 25 教師表序號名稱注釋數(shù)據(jù)類型長度主要的1教師號varchar(20)20TRUE2院系代號varchar(20)2

11、0FALSE3姓名varchar(6)6FALSE4性別char(2)2FALSE5年齡integerFALSE6工齡integerFALSE7備注varchar(16)16FALSE表 26 學生課程成績表序號名稱注釋數(shù)據(jù)類型長度主要的1學號varchar(20)20TRUE2課程號varchar(20)20TRUE3成績varchar(5)5FALSE表 2-7 教師課程關系表序號名稱注釋數(shù)據(jù)類型長度主要的1課程號varchar(20)20TRUE2教師號varchar(20)20TRUE2.5.2 數(shù)據(jù)結構數(shù)據(jù)結構是為反映數(shù)據(jù)之間的組合關系,即 一個數(shù)據(jù)結構可以由若干個數(shù)據(jù)項組成,也可以

12、由若干個數(shù)據(jù)結構組成,或由若干個數(shù)據(jù)項和數(shù)據(jù)結構組成。本學籍管理系統(tǒng)的數(shù)據(jù)組成可根據(jù)系統(tǒng)模塊(圖 2-1)的劃分來設計,即分為四個數(shù)據(jù)結構,分別如下表所示.表 28 數(shù)據(jù)結構清單數(shù)據(jù)結構名含義說明組成學生基本信息學生基本信息的描述班級+學號+院系代號+專業(yè)號+姓名+性別+出生年月+籍貫+民族+家庭住址+入學時間+政治面貌+身份證號+聯(lián)系電話+備注;成績管理學生成績的管理與查詢管理描述學號+課程號+分數(shù);平均分數(shù)+最高分+最低分;院系教師課程信息學校的院系、教師信息以及課程信息的描述課程號+課程名+先行課+學分+備注;院系代號+院系名+系主任+備注;教師號+院系代號+姓名+性別+年齡+工齡+備注

13、;系統(tǒng)管理對系統(tǒng)中的所有表的更新、刪除、修改描述-2。5。3 數(shù)據(jù)流數(shù)據(jù)流是數(shù)據(jù)結構在系統(tǒng)內傳輸?shù)穆窂?。?-9是描述數(shù)據(jù)流的數(shù)據(jù)流定義表,其中包含了數(shù)據(jù)流名、說明、數(shù)據(jù)流組成、流量與備注等,表210是系統(tǒng)中的數(shù)據(jù)流描述,其中包括輸入數(shù)據(jù)流、輸出數(shù)據(jù)流等的描述。表 29 數(shù)據(jù)流定義表編號數(shù)據(jù)流名說明數(shù)據(jù)流組成流量備注L01學生基本信息學生的所有基本信息學生基本信息結構-L02學生成績所有學生的成績成績管理結構 L03分類信息同班級學生名單部分學生基本信息結構-L04各門成績學生的平均成績(包括所有學生和同班級學生的成績情況)成績管理結構L05科目成績學生的單科成績成績管理結構-L06教師、專業(yè)

14、、院系信息-學生相關信息-L07查詢結果-L04 L05L08統(tǒng)計分析L04+L05-表 2-10 數(shù)據(jù)流表使用者名稱輸入數(shù)據(jù)流數(shù)輸出數(shù)據(jù)流數(shù)備注管理員L01+L02+L06L07+L08系統(tǒng)管理員擁有所有權限教務處人員L01+L02+L06L07+L08擁有對學生和教師的管理權限任課教師L02L07可對成績進行查詢與更新學生L01L07查詢成績與學生基本信息2。5.4 數(shù)據(jù)存儲數(shù)據(jù)存儲是數(shù)據(jù)結構停留或保存的地方,也是數(shù)據(jù)流的來源和去向之一。其主要包括數(shù)據(jù)存儲名、說明、編號、輸入的數(shù)據(jù)流與輸出的數(shù)據(jù)流、組成、數(shù)據(jù)量,存取頻度、存取方式。下表表示了該學籍管理系統(tǒng)中的數(shù)據(jù)存儲描述。表 2.11 數(shù)

15、據(jù)存儲描述數(shù)據(jù)存儲名組成輸入數(shù)據(jù)流輸出數(shù)據(jù)流存取頻度存取方式學生基本信息表學生基本信息結構L01L01, L07大順序檢索、更新院系教師及專業(yè)表學生相關信息數(shù)據(jù)結構L06L06。L07小順序檢索、更新學生成績表成績管理結構L02L07一般順序檢索、更新2.5。5 處理過程該學籍管理系統(tǒng)的處理過程比較少,主要包含了數(shù)據(jù)的追加,更新, 修改以及刪除,還有便是一些查詢處理,包括對學生成績的平均分、最高分最低分的查詢,以及一些分類處理。下圖顯示了這些最基本的處理以及其對應的數(shù)據(jù)流與說明。表2.12 處理過程列表處理名簡要說明輸入數(shù)據(jù)輸出數(shù)據(jù)備注添加數(shù)據(jù)L01, L06-刪除數(shù)據(jù)-L01,L06-更改數(shù)

16、據(jù)-L01, L06,L02L01,L06,L02查詢數(shù)據(jù)-L07統(tǒng)計分析L08第3章 學生學籍管理系統(tǒng)設計3。1 數(shù)據(jù)庫設計 學生學籍管理系統(tǒng)的數(shù)據(jù)庫設計是對于給定的應用環(huán)境,構造(設計)優(yōu)化的數(shù)據(jù)邏輯模式和物理結構,并據(jù)此建立數(shù)據(jù)庫及其應用系統(tǒng),使之能夠有效地存儲和管理數(shù)據(jù),滿足用戶的應用需求和數(shù)據(jù)操作要求.3.1.1 概念結構設計概念結構設計是整個數(shù)據(jù)庫設計的關鍵,它通過對用戶需求進行綜合、歸納與抽象,形成獨立于具體DBMS的概念模型.(1)數(shù)據(jù)流圖系統(tǒng)的管理模塊里面包含教務部門(系統(tǒng)管理員和教務處管理人員)、教師以及學生,下圖為該學籍管理系統(tǒng)的系統(tǒng)流圖,教務部門擁有對所有表的查詢更新與

17、刪除權利(分類信息屬于查詢結果除外);教師可對教師、專業(yè)以及院系信息,分類信息,學生情況進行查詢,對成績單進行查詢、更新以及刪除等所有操作;學生只可對所有模塊信息進行查詢,同時可對自己的部分學生情況進行一定的修改與更新。圖3-1系統(tǒng)數(shù)據(jù)流(2)局部ER圖: 學生與課程實體及其屬性圖 圖32 學生基本信息視圖 圖3-3 課程信息視圖根據(jù)學生與課程的關系可設計如下關系圖:圖34 學生與課程關系視圖專業(yè)、教師及院系實體及其屬性圖 圖3-5 專業(yè)、教師及院系信息視圖院系、教師以及專業(yè)的關系圖如下:圖3-6 院系教師以及專業(yè)關系圖(3) 系統(tǒng)ER圖:合并設計中的各個局部ER圖以及各個實體之間的關系生成系

18、統(tǒng)ER圖如下:圖37 系統(tǒng)E-R圖(4) 概念模型設計概念模型是在對用戶需求分析之后,通過畫出本系統(tǒng)抽象出的ER圖,由概念模型輔助工具PowerDesigner進行設計,通過具體地設置和繪圖,最后就形成了如下所示的概念模型圖,生成的概念結構就能真實、充分地反映現(xiàn)實世界,包括事物和事物之間的聯(lián)系,能滿足用戶對數(shù)據(jù)的處理要求,是對現(xiàn)實世界的一個真實模型。圖38 系統(tǒng)概念模型設計圖3。1。2 邏輯結構設計邏輯結構設計就是把概念結構設計階段設計好的基本ER圖轉換為與選用DBMS產品所支持的數(shù)據(jù)模型相符合的邏輯結構.(1)概念模型向物理模型的轉換在概念模型設計好了之后,可直接在powerdesigner

19、 中將設計好了的概念模型轉換成物理模型。其具體操作過程為 點擊主菜單的 ToolsàGenerate Physical Data Model 便可以將當前的概念模型轉換為物理模型,轉換后的物理模型如下圖所示:圖38 物理模型圖 因為一個實體模型轉換為一個關系模型時遵循以下規(guī)則1.一個1:1聯(lián)系可轉換為一個獨立的關系模式,也可以與任意一端對應的關系模式合并;2.一個1:n聯(lián)系可以轉換為獨立的關系模式,也可以與n端對應的關系模式合并;3。一個m:n聯(lián)系轉換為一個關系模式。與該聯(lián)系相連的各實體的碼以及聯(lián)系本身的屬性均轉換為關系的屬性,各實體的碼組成關系的碼或關系碼的一部分;所以在轉換中院系

20、與專業(yè)合并到學生基本信息關系中,院系與專業(yè)的主碼成為學生信息的外碼,同樣院系的主碼成為教師的外碼。學生與課程、教師與課程均是多對多的關系所以,單獨的生成了必修與教授兩個關系。(2) 數(shù)據(jù)庫物理模型設計在PowerDesigner中將概念模型轉換成物理模型之后,我們可以對物理模型進行設計,雙擊物理模型的關系,便彈出對其設置的對話框,在General選項卡中可以對該關系的名稱、注釋以及碼等信息進行設置。在Columns選項卡中可對該關系的屬性列進行設計,可分別設置其名稱、碼、數(shù)據(jù)類型以及主碼、是否為空等。 下圖顯示了課程與院系兩個關系的物理設計其中課程號與院系代號分別為兩個關系的住碼: 圖39 課

21、程與院系的物理設計 下圖是教師與專業(yè)兩個關系的物理設計,起中教師號與專業(yè)號分別為主碼,因為教師與專業(yè)均從屬于院系,所以院系代號分別是兩個關系的外碼: 圖3-10 教師與專業(yè)的物理設計SC與TC關系分別是學生基本信息與課程,教師與課程兩個多對多聯(lián)系合并生成的關系。SC關系描述了學生選擇什么課程以及該課程的分數(shù),其中來自兩個關系的主碼組成該關系的主碼同時也是外碼;TC關系是教師與課程的聯(lián)系,其描述了每個教師所教授的課程關系。 圖 3-11 SC與TC物理設計下面是學生基本信息的物理模型設計,學號作為主碼,因為學生基本信息與專業(yè)、院系的對應關系均是n:1的聯(lián)系,所以院系代號與專業(yè)號作為學生基本信息關

22、系的外碼.圖312 學生基本信息物理設計3。2 前臺程序設計3。2.1 功能模塊設計運行程序,出現(xiàn)如下登陸界面:身份驗證 用戶名 密 碼 現(xiàn)在以系統(tǒng)管理員的身份登陸,用戶名中輸入“Admin”,密碼也是“Admin”。然后單擊“確定”,進入程序的主窗口如下: 學生學籍管理系統(tǒng) × 院系管理 學生管理 教師管理 成績管理 課程管理 系統(tǒng)管理 3.2.2 程序模塊設計3.2。3 系統(tǒng)流程單擊“院系管理”,進入如下界面:院系班級管理 院系信息 可以對院系信息進行添加、修改和刪除,單擊“添加”或“修改”進入如下界面:編輯部門信息 第4章 學生學籍管理系統(tǒng)實現(xiàn)4.1 數(shù)據(jù)庫系統(tǒng)實現(xiàn)4。1。1

23、數(shù)據(jù)庫的設計與實現(xiàn)在實際設計中最常用的存取方法是索引法,使用索引可以大大減少數(shù)據(jù)的查詢時間,在建立索引時應遵循:在經常需要搜索的列上建立索引;在主關鍵字上建立索引;在經常用于連接的列上建立索引,即在外鍵上建立索引;在經常需要根據(jù)范圍進行搜索的列上創(chuàng)建索引,因為索引已經排序,其指定的范圍是連續(xù)的等規(guī)則。才能充分利用索引的作用避免因索引引起的負面作用。確定數(shù)據(jù)庫的存儲結構主要指確定數(shù)據(jù)的存放位置和存儲結構,包括確定關系、索引、日志、備份等的存儲安排及存儲結構,以及確定系統(tǒng)存儲參數(shù)的配置。因為該學籍管理系統(tǒng)的數(shù)據(jù)量小,而且只作課程設計之用,所以我們只用把數(shù)據(jù)存儲在使用的電腦硬盤上,不用作更多的安排。

24、具體設計如下:/*-創(chuàng)建數(shù)據(jù)庫-*/Use mastergoCreate database jinfangOn Primary ( name = jin1,filename = 'c:program filesmicrosoft sql servermssqldatajindata1.mdf,size = 10MB,maxsize = 200,filegrowth = 2),( name = jin2,filename = 'c:program filesmicrosoft sql servermssqldatajindata2。ndf,size = 10MB,maxsize

25、= 200,filegrowth = 2),( name = jin3,filename = c:program filesmicrosoft sql servermssqldatajindata3.ndf',size = 10MB,maxsize = 200,filegrowth = 2)Log on ( name = jinlog1,filename = 'c:program filesmicrosoft sql servermssqldatajinLog1.ldf',size = 1MB,maxsize = 20,filegrowth = 1),( name =

26、jinlog2,filename = c:program filesmicrosoft sql servermssqldatajinLog2。ldf,size = 1MB,maxsize = 20,filegrowth = 1)Go4.1。2 表的設計與實現(xiàn)由需求分析所需要創(chuàng)建的表有學生基本信息表、課程表、院系表、專業(yè)表、學生課程成績表、教師課程關系表、教師表等,具體實現(xiàn)代碼如下:-創(chuàng)建課程表-create table Course (課程號 varchar(20) not null,課程名 varchar(20) null,先行課 varchar(20) null,學分 int null,備

27、注 varchar(16) null,constraint PK_COURSE primary key (課程號))goexecute sp_addextendedproperty MS_Description', '學校所有課程描述','user', , table', Coursego-創(chuàng)建院系表-create table Department (院系代號 varchar(5) not null,院系名 varchar(10) null,系主任 varchar(8) null,備注 varchar(16) null,constraint PK

28、_DEPARTMENT primary key (院系代號))goexecute sp_addextendedproperty MS_Description, '學校所有的院系信息描述,user, ', table, Department'go-創(chuàng)建專業(yè)表-create table Major ( 專業(yè)號 varchar(5) not null, 院系代號 varchar(5) null, 專業(yè)名稱 varchar(16) null, 備注 varchar(16) null, constraint PK_MAJOR primary key (專業(yè)號) -創(chuàng)建學生與課程的

29、成績表-create table SC ( 學號 bigint not null, 課程號 varchar(5) not null, 成績 varchar(5) not null, constraint PK_SC primary key (學號, 課程號)-創(chuàng)建學生基本信息表-create table Student( 班級 varchar(16) null, 學號 bigint not null, 院系代號 varchar(8) null, 專業(yè)號 varchar(10) null, 姓名 varchar(6) null, 性別 varchar(2) null, 出生年月 datetime

30、 null, 籍貫 varchar(8) null, 民族 varchar(2) null, 家庭住址 varchar(20) null, 入學時間 datetime null, 政治面貌 varchar(6) null, 身份證號 char(18) null, 聯(lián)系電話 varchar(12) null, 備注 varchar(14) null, constraint PK_STUDENTSINFO primary key (學號))-創(chuàng)建教師與課程關系表-create table TC ( 課程號 varchar(5) not null, 教師號 varchar(5) not null,

31、constraint PK_TC primary key (課程號, 教師號)-創(chuàng)建 教師表- -create table Teacher ( 教師號 varchar(5) not null, 院系代號 varchar(5) null, 姓名 varchar(6) null, 性別 char(2) null, 年齡 int null, 工齡 int null, 備注 varchar(16) null, constraint PK_TEACHER primary key (教師號)-當上面的代碼運行成功后后,在數(shù)據(jù)庫的Student中便會生成相應的表,包括學生基本信息表、課程表、教師,專業(yè)和學院

32、表、以及SC和TC表。數(shù)據(jù)庫中生成表后,可以對其進行設計,如下圖便是數(shù)據(jù)庫中的學生基本信息表,我們可以對其每一列以及其數(shù)據(jù)類型、取值范圍和是否是主碼是否可以為空等信息進行設置后或修改。例如下圖,該表的初始狀態(tài)只有學號不允許為空,但是這是很不符合實際情況的,在實際中我們往往還需要確定學生的班級、姓名、入學時間所在院系與所屬專業(yè)等情況,要求把這些信息也設置為不為空。表4-1 數(shù)據(jù)庫中學生基本信息表數(shù)據(jù)的載入是一個非常繁雜和重要的過程需要很大的工作量,可分為人工輸入與其它格式數(shù)據(jù)文件導入。該系統(tǒng)只是一個簡單的實驗系統(tǒng),所以采用手工輸入少量的數(shù)據(jù)可滿足實驗要求即可。下面兩個表分別顯示了學生基本信息的錄

33、入與課程信息的錄入。表4-2 學生基本信息的錄入表4-3 課程信息的錄入4。1.3 視圖的設計與實現(xiàn)視圖是從一個或幾個基本表(或視圖)導出的表.它與基本表不同,是一個虛表.視圖一經定義,就可以和基本表一樣被查詢、被刪除.也可以在一個視圖之上再定義新的視圖,但對視圖的更新操作則有一定的限制。具體設計實現(xiàn)代碼如下:-建立課程信息視圖-create view Course_jinAsselect 課程號,課程名,先行課,學分 From course-建立院系視圖-create view Department_jinAsSelect 院系代號,院系名,系主任,備注From department-建立專

34、業(yè)視圖-create view Major_jin AsSelect 專業(yè)號,院系代號,專業(yè)名稱,備注 From major -建立學生與課程關系視圖-create view SC_jin Asselect 學號,課程號,成績 From SC -建立學生基本信息視圖-create view Student_jin Asselect班級,學號,院系代號,專業(yè)號, 姓名,性別,出生年月,籍貫, 民族, 家庭住址,入學時間,政治面貌,身份證號,聯(lián)系電話,備注 From student -建立教師與課程關系視圖-create view TC_jinAs select 課程號,教師號From TC -建

35、立教師信息視圖-create view Teacher _jin AsSelect 教師號,院系代號,姓名,性別,年齡,工齡,備注From teacher 4。1.4 約束的設計與實現(xiàn)數(shù)據(jù)庫完整性(Database Integrity)是指數(shù)據(jù)庫中數(shù)據(jù)的正確性和相容性。數(shù)據(jù)庫完整性由各種各樣的完整性約束來保證,因此可以說數(shù)據(jù)庫完整性設計就是數(shù)據(jù)庫完整性約束的設計。數(shù)據(jù)庫完整性約束可以通過DBMS或應用程序來實現(xiàn),基于DBMS的完整性約束作為模式的一部分存入數(shù)據(jù)庫中。alter table Major add constraint FK_MAJOR_DM_DEPARTME foreign key

36、 (院系代號) references Department (院系代號)goalter table SC add constraint FK_SC_SC_STUDENTS foreign key (學號) references Student (學號)goalter table SC add constraint FK_SC_SC2_COURSE foreign key (課程號) references Course (課程號)goalter table Student add constraint FK_STUDENTS_SD_DEPARTME foreign key (院系代號) refe

37、rences Department (院系代號)goalter table Student add constraint FK_STUDENTS_SM_MAJOR foreign key (專業(yè)號) references Major (專業(yè)號)goalter table TC add constraint FK_TC_TC_COURSE foreign key (課程號) references Course (課程號)goalter table TC add constraint FK_TC_TC2_TEACHER foreign key (教師號) references Teacher (教

38、師號)goalter table Teacher add constraint FK_TEACHER_TD_DEPARTME foreign key (院系代號) references Department (院系代號)Go4。1.5 觸發(fā)器的設計與實現(xiàn)觸發(fā)器是用戶定義在關系表上的一類由事件驅動的特殊過程。一旦定義,任何用戶對表的增、刪、改操作均由服務器自動激活相應的觸發(fā)器,在DBMS核心層進行集中的完整性控制。由于本系統(tǒng)的觸發(fā)器比較多,在這里我只寫出了其中的一部分觸發(fā)器,具體如下所示.1Student 表上的出發(fā)器觸發(fā)器:對于學生基本信息表,當學生信息修改時,其它表中若有對應的該信息時,應該

39、對其進行修改;當學生信息刪除時,對應的如SC表中的對應學生成績信息也應該自動修改: Supdata:CREATE TRIGGER Supdate ON dbo.Student FOR UPDATE AS update SC set 學號 = ( select 學號 from inserted) where SC.學號=(select 學號 from deleted) ; Sdelete:CREATE TRIGGER Sdelete ON dbo。Student FOR DELETE AS DELETE FROM SC WHERE SC.學號=(select 學號 from deleted) ;

40、2. Course表上的觸發(fā)器:其功能是當一個課程的信息改變時,或當一個課程的信息被刪除時,相應的在SC和TC表中的相應信息修改或刪除. Cupdata:CREATE TRIGGER Cupdate ON dbo。Course FOR UPDATE ASupdate SCset 課程號 = ( select 課程號 from inserted)where SC.課程號=(select 課程號 from deleted) update TCset TC.課程號 = ( select 課程號 from inserted)where TC。課程號=(select 課程號 from deleted)

41、; Cdelete:CREATE TRIGGER Cdelete ON dbo.Course FOR DELETE AS DELETE FROM SCwhere SC.課程號=(select 課程號 from deleted)delete from TCwhere TC.課程號=(select 課程號 from deleted) 3Department表上的觸發(fā)器:當院系的代號改變時,對應的學生所在院系、專業(yè)所屬院系以及教師所在院系都應當做相應的更改. Dupdata:CREATE TRIGGER Dupdate ON dbo。Department FOR UPDATE ASupdate St

42、udentsInfoset StudentsInfo.專業(yè)號 = ( select專業(yè)號from inserted)where StudentsInfo.專業(yè)號=(select 專業(yè)號 from deleted) update Majorset Major。專業(yè)號 = ( select專業(yè)號from inserted)where Major。專業(yè)號=(select 專業(yè)號 from deleted)update Teacherset Teacher.專業(yè)號 = ( select專業(yè)號from inserted)where Teacher。專業(yè)號=(select 專業(yè)號 from deleted

43、);4Teacher 表上的觸發(fā)器:當教師號改變或教師離任時,TC表上的信息應相應的得到改變。 Tupdata:CREATE TRIGGER Tupdate ON dbo.Teacher FOR UPDATE ASupdate TCset TC。教師號 = ( select 教師號 from inserted)where TC.教師號=(select 教師號 from deleted) ; Sdelete:CREATE TRIGGER Tdelete ON dbo.Teacher FOR DELETE ASDELETE from TCWhere TC.教師號=(select 教師號 from

44、deleted) ; 5Major表上的觸發(fā)器:當專業(yè)編號發(fā)生改變或專業(yè)取消,對應的學生表的專業(yè)號應該發(fā)生改變或置為空。 Mupdata:CREATE TRIGGER Mupdate ON dbo.MajorFOR UPDATEASupdate Studentset 專業(yè)號= ( select 專業(yè)號 from inserted)where 專業(yè)號=(select 專業(yè)號 from deleted) ; Mdelete:CREATE TRIGGER Mupdate ON dbo。MajorFOR DELETEASupdate StudentsInfoset 專業(yè)號 = NULLwhere 專業(yè)

45、號=(select 專業(yè)號 from deleted) ;6。觸發(fā)器的試運行在對Student上的SUpdate觸發(fā)器的驗證時,先運行sql語句: select * from dbo.SC;得到在update操作前的SC表的所有內容,如下圖6-2所示,接著執(zhí)行對Student表的Update操作,即如下語句: update dbo。Student set 學號=082002110500' where 學號='082002110000'; select from dbo。SC;得到新的SC表,如圖45所示, 學號為082002110000的自動修改為082002110500。 表44 update執(zhí)行前SC表 表4-5 update執(zhí)行后SC表4.1。6 索引的設計與實現(xiàn)索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結構,索引提供指向存儲在表的指定列中的數(shù)據(jù)值的指針,然后根據(jù)您指定的排序順序對這些指針排序。數(shù)據(jù)庫使用索引的方式與您使用書籍中的索引的方式很相似:它搜索索引以找到特定值,然后順指針找到包含該值的行.在數(shù)據(jù)庫關系圖中,我們可以在選定表的“索引/鍵"屬性頁中創(chuàng)建、編輯或刪除每個索引類型。當保存索引所附加到的表,或保存該表所在的關系圖時,索引將保存在數(shù)據(jù)庫中。例如 學生表的姓名列.如果要按姓查找特定學生,與必須搜索表中的

溫馨提示

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

評論

0/150

提交評論