久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

教務管理系統 數據庫實例設計

時間:2019-05-12 20:30:11下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《教務管理系統 數據庫實例設計》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《教務管理系統 數據庫實例設計》。

第一篇:教務管理系統 數據庫實例設計

第17章 數據庫系統設計實例

本章以一個考務管理系統的設計過程為例,介紹在VB 6.0+SQL Server 2000環境中開發數據庫系統的一般方法。

17.1 系統概述

17.1.1 系統功能

本系統用于從考生報名、產生準考證到錄取考生和打印成績單即對考生考試和錄取全過程進行管理的考務系統,包含主要功能如下:

? ? ? ? ? ? 考生報名,按報名順序產生報名號

產生準考生號和以緊湊方式打印準考證 輸入考生考試成績和輸入錄取合格標準 根據合格標準錄取上線考生 打印考生成績單和考生錄取通知書 設置系統用戶和系統初始化

17.1.2 設計技巧

本系統設計中的一些技巧如下: ? ? ? ? 公共模塊設計(參見17.4節的Module1.Bas模塊)SQL Server數據庫設計(參見17.3節)VB菜單設計方法(包括菜單項的有效性設計,對于“一般操作員”,使若干菜單項無效。參見menu多文檔窗體設計過程)統一的數據編輯設計方法:以ksb表為例進行說明:為了編輯其記錄,設計了edks窗體,在其中的DataGrid數據網格控件中顯示所有已輸入的考生記錄。用戶可以先通過“設置條件”框架查找到滿足指定條件的考生記錄,然后選擇“修改”或“刪除”命令按鈕進行考生記錄的修改或刪除,或者選擇“添加”命令按鈕輸入新的考生記錄。? ? ? VB報表設計方法(包括使用Data Report設計器和PrintForm方法)圖像數據的存取方法(參見edks窗體設計過程)事件編程技術:一些數據編輯窗體(如edks等窗體)上有兩個事件過程即Load和Activate,它們的執行過程是:在啟動本窗體時先執行Load(僅執行一次)事件過程,

第二篇:數據庫程序設計---教務輔助管理系統

數據庫設計實例 教務管理系統

數據庫實驗七 數據庫設計

題目要求:

設計一個教務管理系統。要求管理包括:學生的檔案,學生選課的情況,學生每學期的綜合測評,教師檔案,教師工作量等等。具體考核方法根據自己了解的實際情況處理。

假設此次設計的教務系統是整個學生管理系統數據庫中的一部分,整個系統至少還包括學籍管理等其他子系統。

在初期設計時,先關注與教務系統有關的數據。在完成對教務管理系統的建模后再對整個系統進行合并,總終得到整個系統的設計方案。

一、需求分析

1、根據分析可以畫出該教務管理系統的數據流圖:

學生 選課 上課 考試 測評 選課單 允許考試 成績單 老師檔案 課程簡介 教室安排 試卷 考場安排 測評報告單 學生名單 教師 選定教材 申報 課表

2、數據字典

數據結構:學生

含義說明:是教務管理系統的一個核心數據結構,定義了學生的有關信息

組成:學號、姓名

數據項:學號

含義說明:唯一標識每一個學生

別名:學生編號 類型:字符型 長度:9位

取值范圍:190000000 – 999999999

取值含義:前四位表明學生所在年級,后五位安順序編號

數據項:姓名

含義說明:表示學生的姓名 類型:字符型 長度:10位

取值范圍:任意字符

數據結構:教師

含義說明:教務管理系統的核心數據結構之一,定義了教師的有關信息 組成:教師號,教師姓名

數據項:教師號

含義說明:教師的編號 類型:字符型 長度:5位

取值范圍:10000 – 99999

數據項:教師姓名

含義說明:教師的姓名 類型:字符型 長度:10位

取值范圍:任意合法的字符

數據結構:課程

含義說明:教務管理系統的核心數據結構之一,定義了課程的有關信息 組成:課程號,課程名,課程描述,教師,教室,教科書,學分

數據項:課程號

含義說明:課程的編號 類型:字符型 長度:4

取值范圍:0001 – 9999

數據項:課序號

含義說明:對于同一課程,由不同老師教授,用課序號來區分 類型:字符型 長度:2

取值范圍:01 – 99

數據項:課程名

含義說明:課程的名稱 類型:字符型 長度:10

取值范圍:任意合法的字符

數據項:課程描述

含義說明:課程內容的基本描述 類型:字符型 長度:200

取值范圍:任意合法字符

數據項:教科書

含義說明:課程所用的教科書 類型:字符型 長度:20

取值范圍:任意合法字符

數據項:學分

含義說明:課程的學分 類型:整型 長度:1

取值范圍:1-9

數據結構:教室

含義說明:上課所用的教室

組成:教室編號,教室地址,教室容量

數據項:教室編號

含義說明:教室的編號 類型:字符 長度:5

取值范圍:00001-99999

數據項:教室地址

含義說明:標明教室的地址 類型:字符 長度:30

取值范圍:任意合法的字符

數據項:教室容量

含義說明:教室的容納學生的數量 類型:整型

取值范圍:正整數

數據結構:選課記錄

含義說明:紀錄學生選課的紀錄 組成:學生,課程,成績

數據項:成績

含義說明:選課學生本學期的成績

類型:浮點數

范圍:0.0 – 100.0

處理過程:分配教室

說明:為所有課程分配上課教室 輸入:課程,教室 輸出:教室安排

處理:學期課程決定后,要為每個課程安排上課地點,要求上課的地點不能沖突且上課人數不能超過教室容量。

處理過程:分配考場

說明:在考試日期,為所有課程分配考場

輸入:課程,教室

輸出:考場安排

處理:為每個課程安排考場,考試時間和地點不能沖突且考試人數不能超過考場容量。

數據存儲:成績單

說明:記錄學生本學期所有課程成績 流入數據流:學生所有的選課記錄 流出數據流:學生的成績單 數據量:由學生的人數決定 存取方式:隨機存取

二、概念結構設計

1、根據需求分析畫出E-R圖:

選修 學生 教師 課程 m n 講授 1 n 教科書 n

成績 教室 開設 1 n

2、根據E-R圖寫出各個實體的屬性描述

學生:{學號,姓名}

課程:{課程號,課程名,課程描述,學分} 教師:{教師號,教師名,課程數} 教室:{教室編號,地址,容量}

3、視圖的集成

假設在學生管理系統的學籍管理系統中存在另一個學生實體,其中還包括以下信息:性別,所屬專業,所屬班級。為了使兩個實體保持一致,對兩個實體取并集得到新的學生實體: 學生:{學號,姓名,性別,專業,班級}

三、邏輯結構設計

1、由E-R圖向數據模型的轉換

一個實體型轉換為一個關系模式。實體的屬性就是關系的屬性。實體的碼就是關系的碼。所以,E-R圖中的屬性描述可直接轉換為相應的關系模式。

2、對于剩余的一對多和多對多聯系可以如下表示

學生-課程:{學號,課程號,課序號,成績} 課程-教師:{課程號,課序號,教師號} 課程-教科書:{課程號,課序號,教科書}

教室-課程:{教室號,時間,課程號,課序號}

其中 課程-教師 與 課程-教科書 具有相同的主碼,可以合并成一個關系 教學:{課程號,課序號,教師號,教科書}

最后得到的關系模式為

學生:{學號,姓名,性別,專業,班級} 課程:{課程號,課程名,課程描述,學分} 教師:{教師號,教師名,課程數} 教室:{教室號,地址,容量}

學生-課程:{學號,課程號,課序號,成績} 教學:{課程號,課序號,教師號,教科書} 教室-課程:{教室號,時間,課程號,課序號}

3、用戶外模式

根據需求,為計算綜合測評增加一個外模式,因為綜合測評只在學期末進行,查詢次數不多,所以沒有必要用冗余的方法來提高查詢效率,只需要建立一個外模式視圖即可。

測評{學號,學生姓名,平均成績}

4、根據設計寫出相應的SQL語句:

CREATE TABLE student(Sno

VARCHAR(9)

CONSTRAINT pk_student PRIMARY KEY,Sname

VARCHAR(10)NOT NULL,Sex

VARCHAR(1)

NOT NULL,Major

VARCHAR(10)

NOT NULL,Class

VARCHAR(10)

NOT NULL,CHECK

(Sex = 'f' OR Sex = 'm'))

CREATE TABLE course(Cno

VARCHAR(4)

CONSTRAINT pk_course PRIMARY KEY,Cname

VARCHAR(10)

NOT NULL,Describe

VARCHAR(200),Mark

INTEGER)

CREATE TABLE teacher(Tno

VARCHAR(5)

CONSTRAINT teacher_pk PRIMARY KEY,Tname

VARCHAR(10)

NOT NULL,Ccnt

INTEGER

NOT NULL DEFAULT 0)

CREATE TABLE classroom(Rno

VARCHAR(5)CONSTRAINT pk_classroom PRIMARY KEY,Locate

VARCHAR(30)NOT NULL,Cap

INTEGER CHECK

(Cap > 0))

CREATE TABLE tech(Cno

VARCHAR(4)NOT NULL CONSTRAINT fk_course_cno FOREIGN KEY REFERENCES course(Cno)ON UPDATE CASCADE

--級聯更新

ON DELETE CASCADE,--級聯刪除

SCno

VARCHAR(2)NOT NULL,Tno

VARCHAR(5)CONSTRAINT fk_teacher_tno FOREIGN KEY REFERENCES teacher(Tno)

ON UPDATE CASCADE

ON DELETE CASCADE,Book

VARCHAR(20)

CONSTRAINT pk_tech PRIMARY KEY(Cno,SCno))

CREATE TABLE SC(Sno

VARCHAR(9)NOT NULL CONSTRAINT fk_student_sno FOREIGN KEY REFERENCES student(Sno)

ON UPDATE CASCADE

ON DELETE CASCADE,Cno

VARCHAR(4)NOT NULL CONSTRAINT fk_sc_course_cno FOREIGN KEY REFERENCES course(Cno)

ON UPDATE CASCADE

ON DELETE CASCADE,SCno

VARCHAR(2)NOT NULL,Score FLOAT

CONSTRAINT pk_sc PRIMARY KEY(Sno,Cno,SCno))

CREATE TABLE RC(Rno

VARCHAR(5)CONSTRAINT fk_classroom_rno FOREIGN KEY REFERENCES classroom(Rno)

ON UPDATE CASCADE

ON DELETE CASCADE,Time

DATETIME,Cno

VARCHAR(4)NOT NULL CONSTRAINT fk_rc_course_cno FOREIGN KEY REFERENCES course(Cno)

ON UPDATE CASCADE

ON DELETE CASCADE,SCno

VARCHAR(2)NOT NULL

CONSTRAINT pk_rc PRIMARY KEY(Rno,Time))

為進行綜合測評增加一個外模式 CREATE VIEW assess AS

SELECT SC.sno, sname, AVG(score)as average FROM SC,Student where SC.sno = student.sno

GROUP BY SC.sno,sname

為了符合數據的參照完整性約束,避免學生選課的時候選擇一個不存在的課程號-課序號組,增加一個外鍵約束。ALTER TABLE sc

ADD CONSTRAINT fk_sc_tech FOREIGN KEY(Cno,SCno)REFERENCES tech(Cno,SCno)

ON UPDATE CASCADE

ON DELETE CASCADE

為了在插入一個新課程時能級聯更新教師的工作量,增加一個觸發器。此任務也可以通過建立一個外模式視圖來動態統計,為了練習的目的這里采用了觸發器

CREATE TRIGGER workcnter On tech AFTER INSERT ,UPDATE, DELETE AS BEGIN

DECLARE @T VARCHAR(5)

IF EXISTS

(SELECT TOP 1 Tno FROM INSERTED)

BEGIN

SET @T =(SELECT TOP 1 Tno FROM INSERTED)

UPDATE teacher SET Ccnt = Ccnt + 1 WHERE Tno = @T

END

IF EXISTS

(SELECT TOP 1 Tno FROM DELETED)

BEGIN

SET @T =(SELECT TOP 1 Tno FROM DELETED)

UPDATE teacher SET Ccnt = Ccnt1 WHERE Tno = @T END END 關于課程容量:如何保證選課的學生數量不超過教室的容量?

初步解決辦法是:在學生選課時建立暫時不考慮容量問題,都加滲透一個臨時的SC表中。然后,在選課結束后將未超額的記錄直接加滲透SC表,超額的課程進行抽簽,將命中部分學生的選課記錄插入SC表,直到人數符合課程容量的要求為止。

抽簽的功能較適合用頂層的高級語言來實現。在選課結束后,選超額課程的學生需登陸選課系統進行抽簽,抽簽的過程可以使用概率算法,如果抽中,系統再將選課記錄插入SC表,否則就從臨時表中刪除。所以,在數據庫系統中,沒有對SC表的插滲入滲出操作進行約束。

本文來自CSDN博客,轉載請標明出處: http://blog.csdn.net/lesky/archive/2006/12/25/1460 966.aspx

數據庫設計---教務管理系統

2009年12月03日 星期四 11:04 P.M.題目要求:

設計一個教務管理系統。要求管理包括:學生的檔案,學生選課的情況,學生每學期的綜合測評,教師檔案,教師工作量等等。具體考核方法根據自己了解的實際情況處理。

假設此次設計的教務系統是整個學生管理系統數據庫中的一部分,整個系統至少還包括學籍管理等其他子系統。

在初期設計時,先關注與教務系統有關的數據。在完成對教務管理系統的建模后再對整個系統進行合并,總終得到整個系統的設計方案。

一、需求分析

1、根據分析可以畫出該教務管理系統的數據流圖: 學生

選課

上課

考試

測評

選課單

允許考試

成績單

老師檔案

課程簡介

教室安排

試卷

考場安排

測評報告單 學生名單

教師

選定教材

申報

課表

2、數據字典 數據結構:學生

含義說明:是教務管理系統的一個核心數據結構,定義了學生的有關信息 組成:學號、姓名 數據項:學號

含義說明:唯一標識每一個學生 別名:學生編號 類型:字符型 長度:9位

取值范圍:190000000 – 999999999

取值含義:前四位表明學生所在年級,后五位安順序編號 數據項:姓名

含義說明:表示學生的姓名 類型:字符型 長度:10位 取值范圍:任意字符

數據結構:教師 含義說明:教務管理系統的核心數據結構之一,定義了教師的有關信息

組成:教師號,教師姓名

數據項:教師號

含義說明:教師的編號

類型:字符型

長度:5位

取值范圍:10000 – 99999

數據項:教師姓名

含義說明:教師的姓名

類型:字符型

長度:10位

取值范圍:任意合法的字符

數據結構:課程

含義說明:教務管理系統的核心數據結構之一,定義了課程的有關信息 組成:課程號,課程名,課程描述,教師,教室,教科書,學分

數據項:課程號 含義說明:課程的編號 類型:字符型 長度:4 取值范圍:0001 – 9999 數據項:課序號

含義說明:對于同一課程,由不同老師教授,用課序號來區分 類型:字符型 長度:2

取值范圍:01 – 99 數據項:課程名 含義說明:課程的名稱 類型:字符型 長度:10

取值范圍:任意合法的字符 數據項:課程描述

含義說明:課程內容的基本描述 類型:字符型 長度:200

取值范圍:任意合法字符 數據項:教科書

含義說明:課程所用的教科書 類型:字符型 長度:20

取值范圍:任意合法字符 數據項:學分 含義說明:課程的學分 類型:整型 長度:1 取值范圍:1-9 數據結構:教室

含義說明:上課所用的教室

組成:教室編號,教室地址,教室容量 數據項:教室編號 含義說明:教室的編號 類型:字符 長度:5

取值范圍:00001-99999 數據項:教室地址 含義說明:標明教室的地址 類型:字符 長度:30

取值范圍:任意合法的字符 數據項:教室容量

含義說明:教室的容納學生的數量 類型:整型 取值范圍:正整數 數據結構:選課記錄

含義說明:紀錄學生選課的紀錄 組成:學生,課程,成績

數據項:成績

含義說明:選課學生本學期的成績

類型:浮點數 范圍:0.0 – 100.0 處理過程:分配教室

說明:為所有課程分配上課教室 輸入:課程,教室 輸出:教室安排

處理:學期課程決定后,要為每個課程安排上課地點,要求上課的地點不能沖突且上課人數不能超過教室容量。

處理過程:分配考場

說明:在考試日期,為所有課程分配考場

輸入:課程,教室

輸出:考場安排

處理:為每個課程安排考場,考試時間和地點不能沖突且考試人數不能超過考場容量。

數據存儲:成績單

說明:記錄學生本學期所有課程成績 流入數據流:學生所有的選課記錄 流出數據流:學生的成績單 數據量:由學生的人數決定 存取方式:隨機存取

二、概念結構設計

1、根據需求分析畫出E-R圖:

選修

學生

教師

課程

m n 講授 n 教科書

n 成績

教室

開設 n

2、根據E-R圖寫出各個實體的屬性描述 學生:{學號,姓名}

課程:{課程號,課程名,課程描述,學分} 教師:{教師號,教師名,課程數} 教室:{教室編號,地址,容量}

3、視圖的集成

假設在學生管理系統的學籍管理系統中存在另一個學生實體,其中還包括以下信息:性別,所屬專業,所屬班級。為了使兩個實體保持一致,對兩個實體取并集得到新的學生實體: 學生:{學號,姓名,性別,專業,班級}

三、邏輯結構設計

1、由E-R圖向數據模型的轉換

一個實體型轉換為一個關系模式。實體的屬性就是關系的屬性。實體的碼就是關系的碼。所以,E-R圖中的屬性描述可直接轉換為相應的關系模式。

2、對于剩余的一對多和多對多聯系可以如下表示 學生-課程:{學號,課程號,課序號,成績} 課程-教師:{課程號,課序號,教師號} 課程-教科書:{課程號,課序號,教科書} 教室-課程:{教室號,時間,課程號,課序號}

其中 課程-教師 與 課程-教科書 具有相同的主碼,可以合并成一個關系 教學:{課程號,課序號,教師號,教科書} 最后得到的關系模式為

學生:{學號,姓名,性別,專業,班級} 課程:{課程號,課程名,課程描述,學分} 教師:{教師號,教師名,課程數} 教室:{教室號,地址,容量}

學生-課程:{學號,課程號,課序號,成績} 教學:{課程號,課序號,教師號,教科書} 教室-課程:{教室號,時間,課程號,課序號}

3、用戶外模式

根據需求,為計算綜合測評增加一個外模式,因為綜合測評只在學期末進行,查詢次數不多,所以沒有必要用冗余的方法來提高查詢效率,只需要建立一個外模式視圖即可。測評{學號,學生姓名,平均成績}

4、根據設計寫出相應的SQL語句: CREATE TABLE student(Sno VARCHAR(9)CONSTRAINT pk_student PRIMARY KEY, Sname VARCHAR(10)NOT NULL, Sex VARCHAR(1)NOT NULL, Major VARCHAR(10)NOT NULL, Class VARCHAR(10)NOT NULL, CHECK(Sex = 'f' OR Sex = 'm'))

CREATE TABLE course(Cno VARCHAR(4)CONSTRAINT pk_course PRIMARY KEY, Cname VARCHAR(10)NOT NULL, Describe VARCHAR(200), Mark INTEGER)

CREATE TABLE teacher(Tno VARCHAR(5)CONSTRAINT teacher_pk PRIMARY KEY, Tname VARCHAR(10)NOT NULL,Ccnt INTEGER NOT NULL DEFAULT 0)

CREATE TABLE classroom(Rno VARCHAR(5)CONSTRAINT pk_classroom PRIMARY KEY, Locate VARCHAR(30)NOT NULL, Cap INTEGER CHECK(Cap > 0))

CREATE TABLE tech(Cno VARCHAR(4)NOT NULL CONSTRAINT fk_course_cno FOREIGN KEY REFERENCES course(Cno)ON UPDATE CASCADE--級聯更新 ON DELETE CASCADE,--級聯刪除 SCno VARCHAR(2)NOT NULL,Tno VARCHAR(5)CONSTRAINT fk_teacher_tno FOREIGN KEY REFERENCES teacher(Tno)ON UPDATE CASCADE ON DELETE CASCADE, Book VARCHAR(20)

CONSTRAINT pk_tech PRIMARY KEY(Cno,SCno))

CREATE TABLE SC(Sno VARCHAR(9)NOT NULL CONSTRAINT fk_student_sno FOREIGN KEY REFERENCES student(Sno)ON UPDATE CASCADE ON DELETE CASCADE,Cno VARCHAR(4)NOT NULL CONSTRAINT fk_sc_course_cno FOREIGN KEY REFERENCES course(Cno)ON UPDATE CASCADE ON DELETE CASCADE, SCno VARCHAR(2)NOT NULL, Score FLOAT

CONSTRAINT pk_sc PRIMARY KEY(Sno,Cno,SCno))

CREATE TABLE RC(Rno VARCHAR(5)CONSTRAINT fk_classroom_rno FOREIGN KEY REFERENCES classroom(Rno)ON UPDATE CASCADE ON DELETE CASCADE, Time DATETIME,Cno VARCHAR(4)NOT NULL CONSTRAINT fk_rc_course_cno FOREIGN KEY REFERENCES course(Cno)ON UPDATE CASCADE ON DELETE CASCADE, SCno VARCHAR(2)NOT NULL

CONSTRAINT pk_rc PRIMARY KEY(Rno,Time))

為進行綜合測評增加一個外模式 CREATE VIEW assess AS

SELECT SC.sno, sname, AVG(score)as average FROM SC,Student where SC.sno = student.sno GROUP BY SC.sno,sname

為了符合數據的參照完整性約束,避免學生選課的時候選擇一個不存在的課程號-課序號組,增加一個外鍵約束。ALTER TABLE sc

ADD CONSTRAINT fk_sc_tech FOREIGN KEY(Cno,SCno)REFERENCES tech(Cno,SCno)ON UPDATE CASCADE ON DELETE CASCADE

為了在插入一個新課程時能級聯更新教師的工作量,增加一個觸發器。此任務也可以通過建立一個外模式視圖來動態統計,為了練習的目的這里采用了觸發器 CREATE TRIGGER workcnter On tech AFTER INSERT ,UPDATE, DELETE AS BEGIN

DECLARE @T VARCHAR(5)IF EXISTS(SELECT TOP 1 Tno FROM INSERTED)BEGIN

SET @T =(SELECT TOP 1 Tno FROM INSERTED)UPDATE teacher SET Ccnt = Ccnt + 1 WHERE Tno = @T END

IF EXISTS(SELECT TOP 1 Tno FROM DELETED)BEGIN

SET @T =(SELECT TOP 1 Tno FROM DELETED)UPDATE teacher SET Ccnt = Ccnt-1 WHERE Tno = @T END END 關于課程容量:如何保證選課的學生數量不超過教室的容量?

初步解決辦法是:在學生選課時建立暫時不考慮容量問題,都加入一個臨時的SC表中。然后,在選課結束后將未超額的記錄直接加入SC表,超額的課程進行抽簽,將命中部分學生的選課記錄插入SC表,直到人數符合課程容量的要求為止。

抽簽的功能較適合用頂層的高級語言來實現。在選課結束后,選超額課程的學生需登陸選課系統進行抽簽,抽簽的過程可以使用概率算法,如果抽中,系統再將選課記錄插入SC表,否則就從臨時表中刪除。

所以,在數據庫系統中,沒有對SC表的插入操作進行約束。

第三篇:數據庫實習報告-教務管理系統.

數據庫系統課程設計 學生姓名: 班 學 號: 指導教師:

教務管理系統

1、需求分析 1.1 信息要求: 教務管理系統涉及的實體有: ●教師——工作證號、姓名、職稱、電話等;●學生——學號、姓名、性別、出生年月等;●班級——班號、最低總學分等;

●系——系代號、系名和系辦公室電話等;●課程——課序號、課名、學分、上課時間及名額等。這些實體之間的聯系如下: ●每個學生都屬于一個班,每個班都屬于一個系,每個教師也都屬于一個系。●每個班的班主任都由一名教師擔任。

●一名教師可以教多門課,一門課可以有幾位主講老師,但不同老師講的同一門課其課序號是不同 的(課序號是唯一的。

●一名同學可以選多門課,一門課可被若干同學選中。●一名同學選中的課若已學完,應該記錄有相應成績。

●本單位學生、教師都有重名,工作證號、學號可以作為標識。1.2 處理要求: 教學系統主要提供數據維護、選課和信息查詢。其中常見的查詢有:系統中各對象的基本信息查詢。查 詢指定班、系的學生信息(名單、人數等。查詢學生的成績、學分情況。查詢教師授課情況和學生選課情 況??。

1.3 安全性與完整性要求: ●安全性要求: 1.系統應設置訪問用戶的標識以鑒別是否是合法用戶, 并要求合法用戶設置其密碼, 保證用戶身份不被 盜用;2.系統應對不同的數據設置不同的訪問級別,限制訪問用戶可查詢和處理數據的類別和內容;

3.系統應對不同用戶設置不同的權限,區分不同的用戶,如學生,教師,系統管理員。

●完整性要求: 1.各種信息記錄的完整性,關鍵信息記錄內容不能為空;2.各種數據間相互的聯系的正確性;3.相同的數據在不同記錄中的一致性。1.4 系統功能的設計和劃分

根據如上得到的用戶需求,我們將本系統按照所完成的功能分成以下幾部分: 第一部分:用戶管理部分 第二部分:管理員管理部分 各部分完成的功能如下:

1、用戶管理部分

1、處理用戶注冊

2、處理用戶登錄

3、用戶可以查詢學生信息。

4、用戶可以查詢快件信息。

5、用戶可以提交與查詢報修信息。

6、用戶可以插入與刪除用戶自己的離返校信息。

7、用戶可以修改用戶自己密碼。

2、管理員管理部分

1、處理管理員登錄

2、管理員可以查詢學生信息。

3、管理員可以發布與更新快件信息。

4、管理員可以插入、修改與查詢報修信息。

5、管理員可以插入與查詢學生夜歸信息。

6、管理員可以查詢在校與離校學生信息。

7、管理員可以修改管理員密碼。

2、概念設計(1 概念模型(E-R 圖 :

選修聯系的分 E-R 圖 負責聯系的分 E-R 圖

授課聯系的分 E-R 圖

教務管理系統的總 E-R 圖(2 數據字典 :

(3數據流圖

查詢 課程信息 課程信息表 課程信息 查詢 課 程 成績信息 信 息 教師 學 生 選課信息信 息 查詢學 生信息 修改教 師信息 教 師 信 息 系 信 息 課 程 選課信息 信 息 學生 學 生 信 息 選課信息 修改學 教 師 信 息 生信息 查詢教 師信息 選課信息 選課 已 選 課 信 息 成績信息 選 課 表 登記 成績 成 績 信 息 查詢 選課信息 選課信息 查詢 系 信 息 班 級 信 息 學生信息 學生信息表 教師信息 教師信息表 學生信息 教師信息 班 級 信 息 班級信息 查詢 系信息 班級信息表 系信息表 總 數 據 流 圖 班級信息 查詢 系信息

3、邏輯結構設計

-R 圖向關系模型的轉換(關系的碼用下橫線表出)教師(工作證號,姓名,職稱,電話,系代號)代碼表示:Teacher(Tno, Tname, Title, Tel, Dno 此為“教師”實體對應的關系模式。其中 1:n 聯系“工作”與此關系模式合并,Dno 為外碼。存在的函數 依賴為 Tno →(Tname,Title,Tel,Dno),且不存在多值依賴,所以滿足 4NF。學生(學號,姓名,性別,出生年月,班號)代碼表示:Student(Sno, Sname, Ssex, Sbirth, Class 此為“學生”實體對應的關系模式。其中 1:n 聯系“屬于”與此關系模式合并,Class 為外碼。存在的函數 依賴為 Sno →(Sname,Ssex,Sbirth,Class),且不存在多值依賴,所以滿足 4NF。系(系代號,系名,系辦公室電話)代碼表示:Department(Dno, Dname, Dphone 此為“系”實體對應的關系模式。存在的函數依賴為 Dno →(Dname,Dphone),且不存在多值依賴,所 以滿足 4NF。課程(課序號,課名,學分,上課時間,名額,工作證號)代碼表示:Course(Cno, Cname, Credit, Ctime, Cnum, Tno 此為“課程”實體對應的關系模式。其中 1:n 聯系“授課”與此關系模式合并,Tno 為外碼。存在的函數 依賴為 Cno →(Cname,Credit,Ctime,Cnum,Tno),且不存在多值依賴,所以滿足 4NF。選課(學號,課序號,成績)代碼表示:SC(Sno, Cno, Grade 此為 m: 聯系 n “選修” 所對應的關系模式。Sno 和 Cno 均為外部碼。存在的函數依賴為完全函數依賴(Sno,Cno)→ Grade,且不存在多值依賴,所以滿足 4NF。班級(班號,最低總學分,工作證號,系代號)代碼表示:Class(Class, TotalCredit, Tno, Dno 此為“班級”實體對應的關系模式。其中 1:n 聯系“屬于”和 1:1 聯系“負責”與此關系模式合并,Tno 和 Dno 為外碼。該關系模式中存在傳遞函數依賴:Class → Tno,(Tno Class,Tno → Dno,可得 Class → Dno,故 Class 不屬于

3NF。解決方法是將其模式分解為:Class(Class, TotalCredit, Tno 和 T-D(Tno, Dno,分解后的關系模式滿足 4NF,并且 T-D 與 Teacher 的碼相同,可合并為同一模式。但 是考慮到系統要經常進行系的學生信息查詢,此時就不得不對 Student、Class 和 Teacher 三個表進行連接 查詢,而連接是影響查詢效率的主要原因,所以取消對 Class 的模式分解。此時 Class 關系模式滿足 2NF。

設計用戶子模式 為了方便程序查詢,建立了如下用戶視圖:

1、某系的學生信息視圖(學號,姓名,性別,出生年月,班號)

2、某系的教師信息視圖(工作證號,教師姓名,職稱,電話,負責班級)

3、某課程的學生成績單(學號,姓名,班級,成績)

4、教師授課信息表(工作證號,教師姓名,職稱,教授課程,學分,上課時間)

5、學生已選課表(課序號,課名,學分,授課教師,上課時間,名額)

4、物理設計 4.1 選擇存取方法

1、數據庫管理系統自動在每個表的主碼上建立索引,通常為 B + 樹索引。

2、在 Student 表 Sname 列上建立 Stu_name 索引,因為查詢操作很多都使通過學生姓名進行的。

3、在 Teacher 表 Tname 列上建立 Tea_name 索引,因為查詢操作很多都使通過教師姓名進行的。4.2 確定數據庫的存儲結構

1、為了提高系統性能,根據具體情況將數據的易變部分與穩定部分、經常存取部分和存取頻率較低部 分分開存放。

2、DBMS 產品一般都提供了一些系統配置變量、存儲分配參數,根據應用環境確定這些參數值,并且 在系統運行時還要根據系統實際運行情況進行調整,以使系統性能最佳。4.3 評價物理結構 根據所選用的 DBMS,如 SQL Server 2000,從定量估算各種方案的存儲空間、存取時間和維護代價入 手,對估算結果進行權衡、比較,選擇一個較優的合理的物理結構。

5、系統實施 編寫關系模式,載入數據。分期分批地組織數據入庫,先輸入小批量數據做調試用,待試運行基本合 格后,再大批量輸入數據,逐步增加數據量,逐步完成運行評價。需要注意的是,要首先調試運行 DBMS 的 恢復功能,做好數據庫的轉儲和恢復工作。基本 SQL 語言代碼如下: CREATE SCHEMA “TeachAffair” AUTHORIZATION Gao CREATE TABLE Department(Dno CHAR(3 PRIMARY KEY, Dept CHAR(20 UNIQUE NOT NULL, Dphone CHAR(11,;CREATE TABLE Teacher(Tno CHAR(6 PRIMARY KEY, Tname CHAR(20 NOT NULL, Title CHAR(8, Tel CHAR(11,Dno CHAR(3, FOREIGN KEY(Dno REFERENCES Department(Dno;CREATE TABLE Class(Class CHAR(6 PRIMARY KEY, TotalCredit NUMERIC(4,1, Tno CHAR(6, Dno CHAR(3, FOREIGN KEY(Tno REFERENCES Teacher(Tno, FOREIGN KEY(Dno REFERENCES Department(Dno;CREATE TABLE Student(Sno CHAR(11 PRIMARY KEY, Sname CHAR(20 NOT NULL, Ssex CHAR(2, Sbirth DATETIME, Class CHAR(6, FOREIGN KEY(Class REFERENCES Class(Class;CREATE TABLE Course(Cno CHAR(6 PRIMARY KEY, Cname CHAR(20 NOT NULL, Credit NUMERIC(2,1, Ctime DATETIME, Cnum SMALLINT, Tno CHAR(6, FOREIGN KEY(Tno REFERENCES Teacher(Tno;CREATE TABLE SC(Sno CHAR(11 NOT NULL, Cno CHAR(6 NOT NULL, Grade SMALLINT CHECK(Grade>=0 AND Grade<=100, PRIMARY KEY(Sno, Cno, FOREIGN KEY(Sno REFERENCES Student(Sno ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY(Cno REFERENCES Course(Cno ON DELETE NO ACTION ON UPDATE CASCADE,;/*建立索引*/ CREATE UNIQUE INDEX Stu_name ON Student(Sname;CREATE UNIQUE INDEX Tea_name ON Teacher(Tname;CREATE UNIQUE INDEX SCno ON SC(Sno ASC, Cno DESC;/*查詢某個系的學生信息*/ CREATE VIEW GIS_Student AS SELECT * FROM Student WHERE Class IN(SELECT Class FROM Class WHERE Dname='GIS' WITH CHECK OPTION;SELECT * FROM GIS_Student;SELECT COUNT(* FROM GIS_Student;/*查詢班級的學生信息*/ SELECT Sno, Sname, Ssex, Birth FROM Student WHERE Class = '114072';SELECT COUNT(* FROM Student WHERE Class='114072';/*查詢學生的成績、學分*/ SELECT SC.Cno, Cname, Credit, Grade FROM Course, SC WHERE Sno = '20071000500' AND SC.Cno=Course.Cno;SELECT SUM(Credit FROM SC,Course WHERE Sno='20071000500' AND SC.Cno=Couse.Cno;/*查詢教師授課信息*/ SELECT Course.* FROM Course WHERE Tno='100123';SELECT Student.Sno,Sname,Class,Grade FROM Course,SC,Student WHERE Tno='100123' AND Course.Cno=SC.Cno AND SC.Sno=Student.Sno;

6、運行維護

1、針對不同的應用要求制定不同的轉儲計劃,一旦發生故障盡快將數據庫恢復到某種一致的狀態,并

盡可能減少對數據庫的破壞;

2、根據實際情況修改數據庫原有的安全性、完整性控制;

3、在數據庫運行過程中,監督系統運行,對監測數據進行分析,找出改進系統性能的方法;

4、數據庫運行一段時間后,由于記錄不斷增、刪、改,會使數據庫的物理存儲情況變壞,降低數據的 存取效率,數據庫性能下降。這時應按原設計要求重新安排存儲位置、回收垃圾、減少指針鏈等,提高系 統性能。當原有的數據庫設計不能滿足新的需求,需要重構造數據庫,調整數據庫的模式和內模式。

7、用戶手冊(<五號宋體>,具體內容:使用、操作說明。)

8、附錄(<五號宋體>,源程序清單和結果:源程序必須有注釋,以及必要的測試數據和運行結果數據,提倡 用英文描述。)

第四篇:數據庫課程設計 計算機教務管理系統

中北大學

數據庫課程設計

說 明 書

學 院、系: 專

業: 學 生 姓 名: 設 計 題 目:

李翰超

軟件學院 軟件工程

學 號: 1221010619

計算機等級考試教務管理系統

起 迄 日 期: 2014年5月26日-2014年6月20日 指 導 教 師:

2012 年 6月 21 日.引言

隨著全國計算機等級考試的全面推廣,我市學生每年參加兩次全國計算機等級考試,考試管理工作量相當大。但是靠人工的方式管理等級考試相關的信息,這種管理方式存在著許多缺點,如:工作效率低、統計容易出錯,另外時間一長,將產生大量的文件和數據,這對于查找、更新和維護都帶來了不少的困難。所以開發一個計算機等級考試成績管理系統是非常必要的。2.需求分析

計算機等級考試分為若干種類:如:計算機一級VB、C語言;計算機二級VB、C語言、C++;計算機三級數據庫、網絡技術;計算機四級數據庫工程師、網絡工程師。對于每個種類,考試分為筆試和機試.計算機等級考試工作過程如下:每個考生在報名時,登記姓名、性別、報考種類、學校、身份證號、個人照片等。考試辦公室根據考生報考的種類,以及所在的考區來安排考場,編排準考證號碼,打印準考證。考生參加考試后,登記每個考生每項的成績,并計算出每個考生筆試和機試的成績是否都>=60分。對機試和筆試都>=60分的考生,按所在考區打印通過證書,同一考區按準考證號碼順序打印出通過證書,分發給考生;計算機四級只要筆試成績>=60則通過;打印成績表供考試辦公室留存、備查。

開發計算機等級考試成績管理系統,有計算機輔助實現上述過程,代替人工操作,節省人力、時間,提高工作效率。

2.1 處理對象(1)用戶帳號密碼管理 對考點代碼,考點名稱進行管理 用戶與密碼進行管理(2)報名管理功能模塊

報各庫錄入(姓名不能不空,之間不能有空格)增加、刪除、修改、瀏覽(3)準考證管理模塊

準考證生成規則:xxx+yy+zz+kk 其中XXX為考點代碼;YY為語言代碼,XX為考場號,KK為座位號(4)考務管理功能模塊

考生信息查詢、瀏覽 成績管理模塊

成績數據錄入、接收

成績合成(總成績=筆試成績*0.6+上機成績*0.4),按大于或等于60合格

2.2數據字典:

考生信息表(考生主鍵(主鍵),姓名,性別,出生年份,民族,身份證號,聯系地址,聯系電話,備注)

準考證表(準考證號主鍵,準考證號)

成績表(成績表主鍵,筆試成績,上機成績,總成績)

級別語言代碼表(級別語言代碼主鍵,級別語言代碼,級別,語言)考生考點信息表(考生考點主鍵,考點代碼,考點名稱,)用戶帳號管理(用戶帳號主鍵,用戶名,密碼)

信息操作表(考生主鍵(主鍵),準考證號主鍵, 級別語言代碼主鍵,考生考點主鍵,用戶帳號主鍵)

3.E-R圖

4.關系模型

考生信息表(考生主鍵(主鍵),姓名,性別,出生年份,民族,身份證號,聯系地址,聯系電話,備注)

準考證表(準考證號主鍵,準考證號)

成績表(成績表主鍵,筆試成績,上機成績,總成績)

級別語言代碼表(級別語言代碼主鍵,級別語言代碼,級別,語言)

考生考點信息表(考生考點主鍵,考點代碼,考點名稱,)用戶帳號管理(用戶帳號主鍵,用戶名,密碼)

信息操作表(考生主鍵(主鍵),準考證號主鍵, 級別語言代碼主鍵,考生考點主鍵,用戶帳號主鍵)

其模式定義:

見附件:模式定義。

5.物理設計

本數據庫共有5張表組成,其中t_manage表為管理表,而其他4張表:t_grade,t_information,t_level,t_regist都為基本表,當要查詢所需要的信息時,就用連接查詢將管理表和基本表連接在一起,從而看到想看到信息。

6.數據庫實施

create table t_grade(grade number primary key, write number, shangji number, totalgrade number);alter table t_grade add constraint write check(write<=40 and write>=0);alter table t_grade add constraint shangji check(shangji<=60 and

shangji>=0);alter table t_grade add constraint totalgrade check

(totalgrade=write+shangji);

insert into t_grade values(001,40,50,90);insert into t_grade values(002,30,50,80);insert into t_grade values(003,20,60,80);insert into t_grade values(004,25,50,75);insert into t_grade values(005,30,40,70);create table t_information(information number, sname varchar2(20)not null, gender varchar2(2)check(gender='n' or gender='v'), birth number, nation varchar2(20)not null, idnumber char(18), address varchar2(20)not null, phone number not null, note varchar2(20),primary key(information));alter table t_information add constraint birth check(birth<=20020101 and

birth>=19200101);

insert into t_information values

(006,'ling','n',19950302,'han','***014','shanxi','0101111',null);insert into t_information values

(007,'wang','n',19950607,'han','***014','shanxi','0101241',null);insert into t_information values

(008,'john','n',19950504,'german','***014','german','010234511' ,'forgien');insert into t_information values

(009,'liu','v',19930407,'han','***014','shanxi','010123511',nul l);insert into t_information values

(010,'yuan','n',19910408,'han','***014','shanxi','0101211',null);create table t_level(leve number primary key, codes number not null, language varchar2(15)not null);insert into t_level values(015,01,'chinese');insert into t_level values(016,01,'chinese');insert into t_level values(017,02,'chinese');insert into t_level values(018,01,'english');insert into t_level values(019,01,'chinese');

create table t_regist(regist number, place varchar2(14), registnumber varchar2(9), primary key(regist));

insert into t_regist values(020,10101,'14010101');insert into t_regist values(021,10201,'14010102');insert into t_regist values(022,11101,'14010103');insert into t_regist values(023,12101,'14010104');insert into t_regist values(024,15103,'14010105');create table t_user(use number, username varchar2(14)not null, code varchar2(20)not null, primary key(use));

insert into t_user values(025,'ling','asasn');insert into t_user values(026,'wang','asasn');insert into t_user values(027,'john','sdrhy');insert into t_user values(028,'liu','eryery');insert into t_user values(029,'yuan','hjlmyu');

create table t_manage(information number, grade number, leve number, use number, regist number, foreign key(grade)references t_grade(grade), foreign key(information)references t_information(information), foreign key(leve)references t_level(leve), foreign key(regist)references t_regist(regist), foreign key(use)references t_user(use));

insert into t_manage values(006,001,015,025,020);5

insert into t_manage values(007,002,016,026,021);insert into t_manage values(008,003,017,027,022);insert into t_manage values(009,004,018,028,023);insert into t_manage values(010,005,019,029,024);

7.系統調試

通過sql語句對其進行調試,以測試其正確性,如圖1,2,3,4,5

圖 1 6

圖 2

圖 3 7

圖 4 用自然連接查詢:

圖 5

8.心得體會

本次課程設計主要設計一個計算機管理系統,我的大體思路就是將基本信息錄入到基本表當中,并保證沒有重復屬性,然后設計一個管理表,讓其它基本表參照這個管理表,這個管理表當中只有各表主鍵,需要查看信息時,就將兩表連接。。

這次課設我覺得有兩個難點,一個是表間的參照,另一個是約束條件的設置,尤其是約束條件一定要充分考慮到,還有當有那種范圍值的約束時要在建表后要用alter修改,而不是在定義時直接約束。

最后一點是關于主鍵的問題,主鍵最好別用學號什么的,最好應該用連續的、無意義的數字,create sequence之后,每加一個元組就用一次nextval,這樣可以讓電腦自動排號。

第五篇:數據庫課程設計之教務管理系統

源代碼:

CREATE DATABASE JWGL

/*建立教務管理系統*/ ON

(NAME = JWGL_Data,FILENAME = 'e:sql_dataJwgl_Data.mdf', SIZE = 20, MAXSIZE = 500, FILEGROWTH = 25%)LOG ON

(NAME = JWGL_LOG,FILENAME = 'e:sql_dataJwgl_Log.ldf', SIZE = 10, MAXSIZE = 100, FILEGROWTH = 1%);

CREATE TABLE Student

/*建立學生表*/(Sno CHAR(8)PRIMARY KEY NOT NULL, Sname VARCHAR(10)NOT NULL,Sex CHAR(2)CHECK(Sex IN('男','女'))NOT NULL,Age TINYINT CHECK(Age BETWEEN 15 AND 30)NOT NULL, Phonenumber CHAR(12)UNIQUE, Sdept VARCHAR(20)NOT NULL,);

CREATE TABLE Course

/*建立課程表*/(Cno CHAR(10)PRIMARY KEY NOT NULL, Cname VARCHAR(20)UNIQUE NOT NULL,Total_perior TINYINT CHECK(Total_perior BETWEEN 32 AND 108),/*總學時*/ Week_perior TINYINT CHECK(Week_perior BETWEEN 2 AND 7),/*周學時*/ Credit TINYINT CHECK(Credit BETWEEN 1 AND 7)NOT NULL,/*學分*/ Pcno CHAR(10)/*先修課*/);

CREATE TABLE SC

/*建立學生選課表*/(Sno CHAR(8)NOT NULL, Cno CHAR(10)NOT NULL,Grade TINYINT CHECK(Grade BETWEEN 1 AND 100), PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno), FOREIGN KEY(Cno)REFERENCES Course(Cno));

DROP TABLE Student

/*刪除學生表*/ DROP TABLE Course

/*刪除課程表*/ DROP TABLE SC

/*刪除學生選課表*/

INSERT

/*向學生表中插入數據*/ INTO Student

VALUES('04111020','張倩','女',19,'***','計算機');INSERT

INTO Student

VALUES('04111021','張花','女',20,'***','信息');INSERT

INTO Student

VALUES('04111022','李強','男',20,'***','英語');INSERT

INTO Student

VALUES('04111023','王若','女',19,'***','計算機');INSERT

INTO Student

VALUES('04111024','小淼','男',20,'***','信息');INSERT

INTO Student

VALUES('04111025','李新','男',20,'***','英語');INSERT INTO Student

VALUES('04111026','劉浮','男',19,'***','信息');INSERT

INTO Student

VALUES('04111027','二毛','男',20,'***','英語');INSERT

INTO Student

VALUES('04111028','朱琪','女',19,'***','計算機');INSERT

INTO Student

VALUES('04111029','小馬','男',20,'***1','信息');INSERT

INTO Student

VALUES('04111030','吳欣','女',20,'***','英語')

INSERT

/*向課程表中插入數據*/ INTO Course

SELECT '0011','數據結構','64','2','3','c語言'

UNION SELECT '0012','數據庫','64','2','3','離散數學' UNION SELECT '0013','信息管理','64','2','3','計算機基礎' UNION SELECT '0014','專業英語','64','2','4','基礎英語' UNION SELECT '0015','電氣學','64','2','4','電子科技'

INSERT

/*向學生選課表中插入數據*/ INTO SC

SELECT '04111020','0011','90' UNION SELECT '04111020','0012','87' UNION SELECT '04111022','0012','85' UNION SELECT '04111022','0015','76' UNION SELECT '04111023','0014','69' UNION SELECT '04111024','0013','90' UNION SELECT '04111025','0011','92' UNION SELECT '04111026','0011','83' UNION SELECT '04111027','0012','87' UNION SELECT '04111027','0013','79' UNION SELECT '04111028','0011','88' UNION SELECT '04111028','0014','85' UNION SELECT '04111029','0012','97' UNION SELECT '04111030','0013','69' UNION SELECT '04111028','0015','88'

CREATE TABLE Student_temp

/*建立 Student_temp空表*/(Sno CHAR(8)PRIMARY KEY NOT NULL, Sname VARCHAR(10)NOT NULL,Sex CHAR(2)CHECK(Sex IN('男','女'))NOT NULL,Age TINYINT CHECK(Age BETWEEN 15 AND 30)NOT NULL, Phonenumber CHAR(12)UNIQUE, Sdept VARCHAR(20)NOT NULL,);

INSERT INTO

Student_temp

/*在Student_temp表中保存計算機系所有學生的情況*/ SELECT * FROM Student

WHERE Sdept = '計算機';

ALTER TABLE Student ADD Address CHAR(20);

/*向Student表中插入地址列*/

DELETE FROM SC

/*刪除計算機系學生的選課記錄*/ WHERE Sno IN(SELECT Sno FROM Student

WHERE Sdept ='計算機');

UPDATE Student

/*將每個學生的年齡增加1歲*/ SET Age=Age+1;UPDATE

SC SET Grade=0 WHERE Sno IN(SELECT Sno FROM Student

WHERE Sdept = '計算機');

SELECT Sno,Sname,Sdept

/*查詢學生表中所有學生的學號、姓名、所在系*/ FROM Student;

SELECT *

/*查詢學生表中的所有信息*/ FROM Student;

SELECT Sname,2013-Age AS Birthday

/*查詢學生表中所有學生的出生年份,用2013-Age的值作為Birthday的列值*/ FROM Student;

SELECT *

/*查詢課程表中的所有信息*/ FROM Course;

SELECT *

/*查詢學生選課表中的所有信息*/ FROM SC;

SELECT DISTINCT Sno

/*查詢所有選了課程的學生的學號*/ FROM SC;

SELECT Sno,Sname

/*查詢計算機系所有學生的學號和姓名*/ FROM Student

WHERE Sdept ='計算機';

SELECT Sno

/*查詢考試成績在80分以上的學生學號*/ FROM SC

WHERE Grade >=80;

SELECT Sname,Sdept,Age /*查詢年齡在20-23歲的學生姓名、所在系和年齡*/ FROM Student

WHERE Age >=20 AND Age <=23;

SELECT Sname,Sdept,Age,Sex /*查詢計算機和英語系的學生姓名、年齡和性別*/ FROM Student

WHERE Sdept IN('計算機','英語');

SELECT Sname,Sdept,Age,Sex /*查詢不是計算機和英語系的學生姓名、年齡和性別*/ FROM Student

WHERE Sdept NOT IN('計算機','英語');

SELECT *

/*查詢信息系所有學生的情況*/ FROM Student

WHERE Sdept LIKE '信息';

SELECT *

/*查詢姓張的學生所有信息*/ FROM

Student

WHERE Sname LIKE '張%';

SELECT

Cno,Credit

/* 查詢'數據結構'課程的課程號和學分*/ FROM Course

WHERE Cname LIKE '數據結構';

SELECT Sno,Cno

/*查詢沒有考試成績的課程后和學分*/ FROM SC

WHERE Grade IS NULL;

SELECT *

/*查詢全體學生的信息,查詢結果按所在系的升序排列,同一系中的學生按年齡降序排列*/ FROM Student

ORDER BY Sdept ,Age DESC;

SELECT AVG(Grade)AS '平均成績'

/*查詢選修'0014'號課程的學生的平均分*/ FROM SC

WHERE Cno ='0014';

SELECT MIN(DISTINCT Grade)AS '最低分' /*查詢成績表中的最低分*/ FROM SC;

SELECT COUNT(*)AS'總人數'

/*統計學生總人數*/ FROM Student;

SELECT COUNT(DISTINCT Sno)/*統計選修了課程的學生人數*/ FROM SC;

SELECT Cno ,COUNT(Sno)/*查詢每門課程的課程號及選課人數*/ FROM SC GROUP BY Cno;

SELECT Student.*,SC.*

/*查詢每個學生及其選修課的情況*/ FROM Student ,SC

WHERE Student.Sno=SC.Sno;

SELECT Student.Sno,Sname,Grade

/*查詢選修了'數據庫'課程并且成績在85分以上的學生的學號和姓名*/

FROM Student ,Course,SC

WHERE Student.Sno = SC.Sno AND SC.Cno

= Course.Cno AND Cname = '數據庫'AND Grade>85;

SELECT Sno,Sname

/*查詢和王若在同一個系學習的學生的學號和姓名*/ FROM Student

WHERE Sdept =

(SELECT Sdept

FROM Student

SELECT Sname ,Age

/*查詢其他系中比英語系某一學生年齡小的學生是姓名和年齡*/ FROM Student

WHERE Sdept <>'英語'

AND AGE

FROM Student

WHERE Sdept ='英語');

SELECT Sname /*查詢選修了0014號課程的學生的姓名*/ FROM Student

WHERE EXISTS

(SELECT * FROM SC

WHERE Sno =Student.Sno AND Cno='0014');

SELECT Cno FROM Course

UNION ALL

/*ALL表示合并兩個查詢輸出的全部記錄,沒有ALL表示結果中不包含重復行*/ SELECT Cno FROM SC ORDER BY Cno;

CREATE PROCEDURE Student_Course

/*在學生-課程數據庫中創建存儲過程,查看和'小馬'有關的基本信息及選修課程*/ AS

SELECT Student.Sno,Sname,Cname,Grade

FROM Student,Course,SC

WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Sno AND Sname='王若' IF EXISTS(SELECT name FROM sysobjects

WHERE name='Student_Course' AND type='P')

DROP PROCEDURE Student_Course;WHERE Sname = '王若');EXECUTE Student_Course;/*查看存儲的信息*/

SELECT Sno

/*查詢選修'0012'或'0015'號課程的所以學生的學號*/ FROM SC

WHERE Cno='0012' UNION SELECT Sno FROM SC

WHERE Cno='0015';

CREATE UNIQUE INDEX Stusno ON Student(sno);/*建立索引*/ CREATE UNIQUE INDEX Coucon ON Course(Cno);

CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Grade DESC);

drop index Stusno ON Student/*刪除索引*/ drop index Coucon ON Course drop index SCno ON SC

CREATE VIEW C_Student

/*建立計算機系學生的視圖,進行修改和插入操作時只能對計算機系的學生操作*/ AS

SELECT Sno,Sname,Sex,Age FROM Student WHERE Sdept='計算機' WITH CHECK OPTION

CREATE VIEW Student_Course_0013(Sno,Sname,Sex,Age,Grade)/*建立選擇0013號課程并且成績在80分以上的學生視圖*/ AS

SELECT Student.Sno,Sname,Sex,Age,Grade FROM Student,SC

WHERE Student.Sno=SC.Sno AND Grade>=80 AND Cno='0013'

CREATE VIEW Student_Birth(Sno,Sname,Sbirth)/*建立反應學生出生年份的視圖*/ AS

SELECT Sno,Sname,2013-Age FROM Student

CREATE PROCEDURE student_count/*創建一個存儲過程,返回選修某門課程的學生人數*/ @CourseName VARCHAR(20), @StudentSum INT OUTPUT AS SELECT @StudentSum=COUNT(*)FROM Course ,SC

WHERE Course.Cno=SC.Cno AND Cname =@CourseName;

drop procedure student_count;/*

DELCARE @StudentSum INT;

EXECUTE student_count '專業英語',@StudentSum output;SELECT 'the result is:',@Student_Sum;*/

CREATE PROCEDURE student_course1 /*通過參數@StudentName將指定學生的姓名傳遞給存儲過程*/

@StudentName VARCHAR(10)AS

SELECT Student.Sno,Sname,Cname,Grade

FROM Student,Course,SC

WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno

AND Sname=@StudentName;

EXECUTE

student_course1 '小馬';/*調用存儲過程*/

/*刪除視圖*/

DROP VIEW C_Student;

DROP VIEW Student_Course_0013;DROP VIEW Student_Birth;

CREATE TRIGGER student_change/*創建觸發器,當學生表中的記錄被更新時,顯示表中的所有記錄*/

ON Student AFTER INSERT,UPDATE,DELETE AS

SELECT * FROM Student;

CREATE TRIGGER sc_insert3 ON SC

/*在SC表上創建觸發器,當向SC表中添加學生的選課記錄時,檢查學生的學號是否存在。若不存在,不能插入改條記錄*/ AFTER INSERT AS

IF(SELECT COUNT(*)FROM Student ,inserted WHERE Student.Sno=inserted.Sno)=0 BEGIN

PRINT'學號不存在,不能插入記錄' ROLLBACK TRANSACTION END;

INSERT INTO SC

VALUES('04111098','0015',73)

ALTER TABLE SC

/*刪除觸發器*/

DISABLE TRIGGER sc_insert2

下載教務管理系統 數據庫實例設計word格式文檔
下載教務管理系統 數據庫實例設計.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    教務系統數據庫總結報告

    教務系統數據庫總結報告 常州信息學院 網絡095 在信息時代的今天,數據成為傳遞信息的重要載體,而隨著信息的不斷增加,數據也變得相當繁瑣。因此數據庫的出現,正是為數據的處理提......

    圖書管理系統數據庫設計

    3 數據庫設計 ................................................................. 2 3.1 專門術語的定義 ................................................... 2 3.1.1......

    數據庫管理系統

    8.1 知識點 8.1.1 數據庫管理系統概述 DBMS的系統目標 數據庫管理系統是數據庫系統的核心,從用戶角度來看,一個DBMS應盡可能具備的 系統目標是:用戶界面友好、結構清晰和開放性......

    數據庫項目總結(完整的教務系統設計流程)

    網絡工程3組 系統名稱:系教務管理系統 組員:劉宇明,林昉,李龍騑,黃德志,胡嚴正,曾宇燎 主要界面: ----?功能選擇界面 -------------?登陸界面! --?排課界面 ----?專業介紹 ----?專業添加界......

    教務管理系統參考

    引言 教務管理系統是教學領域中一個重要的系統。隨著計算機的普及,人們迫切希望在計算機上能夠實現教務管理操作,希望把人從教學資源,教學評估,編排課程,教學檢查等等這些繁瑣的......

    圖書管理系統數據庫設計示例

    圖書管理系統數據庫設計 一個簡單的圖書管理系統包括圖書館內書籍的信息、學校在校學生的信息以及學生的借閱信息。此系統功能分為面向學生和面向管理員兩部分,其中學生可以......

    圖書管理系統的數據庫設計

    圖書管理系統的數據庫設計 摘要:虛擬為某公司建立的圖書館管理系統進行數據庫設計,目的在于使該系統的運行能提高該公司的資料管理水平和現代化管理水平。本系統是一個中小型......

    圖書管理系統數據庫的設計

    圖書管理系統數據庫的設計 摘 要:書籍是人類不可缺少的精神食糧,尤其對一些學校來說,尤其重要。所以圖書館借閱信息管理系統應該能夠為用戶提供充足的信息和快捷的查詢手段。文......

主站蜘蛛池模板: 色多多性虎精品无码av| 国产精品欧美一区二区三区不卡| 众筹模特内部视频2023年最新一期| 免费一区二区无码东京热| 97久久超碰国产精品…| 影音先锋中文字幕无码资源站| 中国亚洲女人69内射少妇| 在线精品视频一区二区| 国产超碰人人爽人人做| 成人福利视频| 欧美a级情欲片在线观看免费| 两个人看的www中文在线观看| 99热这里只有精品免费播放| 人禽伦免费交视频播放| 亚洲爆乳中文字幕无码专区网站| 国产精品天天狠天天看| 国产v综合v亚洲欧美久久| 亚洲人成网亚洲欧洲无码| 强壮的公次次弄得我高潮A片日本| 性欧美暴力猛交69hd| 国产aⅴ人妻互换一区二区| 久久久视频2019午夜福利| 奇米影视7777狠狠狠狠影视| ,亚洲AV午夜精品无码专区| 国产成人精选在线观看不卡| 国产精品 视频一区 二区三区| 中文字幕亚洲欧美日韩在线不卡| 婷婷综合缴情亚洲狠狠小说| 精品人妻午夜一区二区三区四区| 69天堂人成无码麻豆免费视频| 日本在线一区二区三区欧美| 亚洲精品无码不卡在线播放| 日韩av片无码一区二区三区不卡| 国产乱人伦偷精品视频不卡| 久久精品国产只有精品2020| 色噜噜狠狠色综合久夜色撩人| 午夜大片男女免费观看爽爽爽尤物| 国产成人免费永久播放视频平台| 97国产精华最好的产品久久久| 久久人搡人人玩人妻精品| 香港三日本8a三级少妇三级99|