# 1.2需求分析
## 1.2.1 功能需求
系統的用戶有三個不同的角色,分別是教務教師,管理人員,學生,角色不同,需求不同。通過分析,各用戶的需求如下:
### 1.2.1.1 教師用戶需求
教師可以通過系統錄入成績,查看課表、培養計劃、學期計劃的教學信息。查詢空閑教室,打印學生點名冊,辦理調課申請、教室申請等教學業務
### 1.2.1.2 教務管理人員用戶需求
教務管理人員可以進行學生信息管理,包括錄入、查看、修改及刪除學生,處理并審核學生休學、退學、退學試讀、交流、保留學籍等學籍異動信息。可進行成績管理,包括維護、生成學生成績名單,管理成績錄入錯誤的修改、審批,打印學習成績一覽表、學期成績單、畢業成績單、成績存擋單,提供平均學分績、單科課程成績、綜合成績排名信息。可進行教師管理,包括錄入、查看、修改及刪除教師,根據教師的職稱、學歷、年齡、畢業院校進行結構分析。
### 1.2.1.3 學生用戶需求
學生可以進行教師考評,查詢教師,查看成績、成績單、課表、培養計劃等信息。
### 1.2.1.4基本功能分析
#### 教師管理系統(基本功能):
1 成績錄入:用于教師網上錄入學生成績,確定相應的課程信息。成績錄入成功后提交審核,審核通過打印成績單。
2 教學信息查詢:教師可以通過本模塊查看計劃、任務及課表,查看與打印學生點名冊。
3 教學業務辦理:包括調課申請、公共教室申請、空閑教室申請,需要調課時填寫調課申請單并提交管理人員審核,符合要求審核通過打印通知單,完成調課,審核不通過返回修改或取消:可以按照周數、節數等信息查詢某教學樓是否有空閑教室,使用教室需要填寫教室使用申請單并提交管理人員審核,符合要求審核通過打印通知單,完成占用,審核不通過返回修改或取消
#### 學生管理系統(基本功能):
1 教師考評:學生用戶登陸系統后,選擇教師考評鏈接,首先判斷當學期教師考評模塊是否開啟,如果沒有開啟,則跳轉頁面無信息:如果開啟,會進行第二次判斷是否己進行考評,如果己完成,則跳轉提示頁面,提示"已完成考評";否則進入教師考評界面,輸入考評結果,點擊提交完成教師考評操作。
2 教學信息查詢:包括培養計劃、課表、成績查詢、畢業成績單。
3 空閑教室查詢:可以按照周數、節數等信息查詢某教學樓是否有空閑教室。
#### 教務管理人員管理系統(基本功能)
1.學籍管理:管理學生的學籍信息,各種類型學籍異動的處理,主要功能包括:管理學籍信息、維護學生綜合異動、審核學生異動。
2.成績管理:管理全校學生所有的在校成績,主要功能包括;系統設置、學生名單維護、成績修改單管理、報表管理 。
3.教師管理: 用于教師基本資料的管理、維護,通過多種方式分析和統計師資力量。主要功能包括:信息維護、結構分析。
## 1.2.2 性能需求
保證數據的準確性,實時性,共享性、獨立性,完整性和一致性。
# 2、概念設計
## 2.1、概念數據庫設計
教務管理系統全局E-R圖如圖2-1所示:

## 2.2教務管理系統實體及所轄屬性定義表
表2-1教務管理系統應用實體所轄屬性定義表
序號 實體 所轄屬性
1 專業 專業名稱,專業編號,所屬院系 專業編號
2 班級 班級名稱,專業編號,人數,班級編號 班級編號
3 學生 院系,學號,姓名,班級,出生日期,入學時間,性別,專業,民族 學號
4 用戶 類型,姓名,密碼,賬號,用戶編號 用戶編號
5 教師 職稱,入職時間,民族,姓名,性別,最后學位,最后學歷,出生日期,教師編號,政治面貌 教師編號
6 課程 教研室,實驗學時,課程類型,考核方式,周學時,理論學時,課程編號,課程名稱,學分,上級學時,總學時,院系,授課對象,課程性質 課程編號
# 3、邏輯數據庫設計
## 3.1教務管理系統關系模式序號 關系名
1 學生-班級(組成)
2 學生-課程(選修)
3 教師-課程(任課)
4 專業-課程(開設)
5 班級-專業(隸屬)
## 3.2教務管理系統關系模式定義表
經數據分析后該系統需建立八張表。
序號 表名 中文名
1 UPC_STUDENT 學生表
2 UPC_TEACHER 教師表
3 UPC_SPECIALITY 專業表
4 UPC_CLASSES 班級表
5 UPC_COURSE 課程表
6 UPC_GRADE 成績表
7 UPC_MCOURSE 專業課程設置表
8 UPC_USER 用戶表
表3-1:學生表
序號 屬性名 字段名 類型 寬度 約束
1 學號 XH VARCHAR 50 主鍵
2 姓名 XM VARCHAR 50 無
3 性別 XB CHAR 2 無
4 出生日期 CSRQ DATE 無
5 民族 MZ VARCHAR 50 無
6 院系 YX VARCHAR 50 無
7 專業 ZY VARCHAR 50 外鍵
8 班級 BJ VARCHAR 50 外鍵
9 入學時間 RXRQ DATE 無
表3-2:教師表
序號 屬性名 字段名 類型 寬度 約束
1 教師編號 JSBH VARCHAR 50 主鍵
2 姓名 XM VARCHAR 50 無
3 性別 XB CHAR 2 無
4 出生日期 CSRQ DATE 無
5 民族 MZ VARCHAR 50 無
6 政治面貌 ZZMM VARCHAR 50 無
7 最后學歷 ZHXL VARCHAR 50 無
8 最后學位 ZHXW VARCHAR 50 無
9 職稱 ZC VARCHAR 50 無
10 聘任時間 PRSJ DATE 無
表3-3:專業表
序號 屬性名 字段名 類型 寬度 約束
1 專業編號 ZYBH VARCHAR 20 主鍵
2 專業名稱 ZYMC VARCHAR 50 無
3 所屬院系 SSYX VARCHAR 50 無
表3-4:班級表
序號 屬性名 字段名 類型 寬度 約束
1 班級編號 BJBH VARCHAR 20 主鍵
2 班級名稱 BJMC VARCHAR 50 無
3 人數 RX INT 無
4 專業編號 ZYBH VARCHAR 50 外鍵
表3-5:課程表
序號 屬性名 字段名 類型 寬度 約束
1 課程編號 KCBH VARCHAR 50 主鍵
2 課程名稱 KCMC VARCHAR 50 無
3 學分 XF NUMBER 50 無
4 總學時 ZXS NUMBER 5 無
5 理論學時 LLXS NUMBER 5 無
6 實驗學時 SYXS NUMBER 5 無
7 上級學時 SJXS NUMBER 5 無
8 周學時 ZXS NUMBER 5 無
9 考核方式 KHFS VARCHAR 10 無
10 課程性質 KHXZ VARCHAR 50 無
11 課程類型 KHLX VARCHAR 50 外鍵
12 授課對象 SKDX VARCHAR 50 無
13 院系 YX VARCHAR 50 無
14 教研室 JYS VARCHAR 50 無
表3-6:成績表
序號 屬性名 字段名 類型 寬度 約束
1 學年學期 XNXQ VARCHAR 20 無
2 課程編號 KCBH VARCHAR 50 外鍵
3 課程名稱 KCMC VARCHAR 100 無
4 學號 XH VARCHAR 50 外鍵
5 姓名 XM VARCHAR 20 無
6 期中成績 QZCJ VARCHAR 20 無
7 平時成績 PSCJ VARCHAR 20 無
8 期末成績 QMCJ VARCHAR 20 無
9 總成績 ZCJ VARCHAR 20 無
10 學分 XF VARCHAR 20 無
11 學時 XS VARCHAR 50 無
12 成績類型 CJLX VARCHAR 50 無
13 課程性質 KCXZ VARCHAR 50 無
14 考核方式 KHFS VARCHAR 50 無
15 課程類型 KCLX VARCHAR 50 無
16 開課院系 KKYX VARCHAR 50 無
17 班級名稱 BJMC VARCHAR 50 無
18 專業名稱 ZYMC VARCHAR 50 無
19 學生院系 XSYX VARCHAR 50 無
20 任課教師 RKJS VARCHAR 50 無
表3-7:專業課程設置表
序號 屬性名 字段名 類型 寬度 約束
1 專業編號 ZYBH VARCHAR 20 外鍵
2 課程編號 KCBH VARCHAR 50 外鍵
3 開課學期 KKXQ VARCHAR 50 無
表3-8:用戶表
序號 屬性名 字段名 類型 寬度 約束
1 編號 BH NUMBER 10 主鍵
2 賬號 ZH VARCHAR 20 無
3 密碼 MM VARCHAR 20 無
4 姓名 XM VARCHAR 10 無
5 類型 LX VARCHAR 20 無
- 空白目錄
- 1、數據庫概述及數據準備
- 1.1、SQL概述
- 1.2、什么是數據庫
- 1.3、MySql概述
- 1.4、MySql的安裝
- 1.5、表
- 1.6、SQL的分類
- 1.7、導入演示數據
- 1.8、表結構描述
- 2、常用命令
- 2.1、查看msyql版本
- 2.2、創建數據庫
- 2.3、查詢當前使用的數據庫
- 2.4、終止一條語句
- 2.5、退出mysql
- 3、查看“演示數據”的表結構
- 3.1、查看和指定現有的數據庫
- 3.2、指定當前缺省數據庫
- 3.3、查看當前使用的庫
- 3.4、查看當前庫中的表
- 3.5、查看其他庫中的表
- 3.6、查看表的結構
- 3.7、查看表的創建語句
- 4、簡單的查詢
- 4.1、查詢一個字段
- 4.2、查詢多個字段
- 4.3、查詢全部字段
- 4.4、計算員工的年薪
- 4.5、將查詢出來的字段顯示為中文
- 5、條件查詢
- 5.1 概述
- 5.2 等號操作符
- 5.3不等號操作符
- 5.4 between … and …操作符
- 5.5 is null
- 5.6 and
- 5.7 or
- 5.8 表達式的優先級
- 5.9 in
- 5.10 not
- 5.11 like
- 6、排序數據
- 6.1、單一字段排序
- 6.2、手動指定排序順序
- 6.3、多個字段排序
- 6.4、使用字段的位置來排序
- 7、分組函數/聚合函數/多行處理函數
- 7.1、count
- 7.2、sum
- 7.3、avg
- 7.4、max
- 7.5、min
- 7.6、組合聚合函數
- 7.7 函數總結(了解內容)
- 7.1數據處理函數(單行處理函數)
- 8、分組查詢
- 8.1、group by
- 8.2、having
- 8.3、select語句總結
- 9、連接查詢
- 9.1、SQL92語法
- 9.2、SQL99語法
- 10、子查詢
- 10.1、在where語句中使用子查詢,也就是在where語句中加入select語句
- 10.2、在from語句中使用子查詢,可以將該子查詢看做一張表
- 10.3、在select語句中使用子查詢
- 11、union
- 11.1、union可以合并集合(相加)
- 12、limit 的使用
- 12.1、取得前5條數據
- 12.2、從第二條開始取兩條數據
- 12.3、取得薪水最高的前5名
- 13、表
- 13.1、創建表
- 13.2、增加/刪除/修改表結構
- 13.2.1、添加字段
- 13.2.2、修改字段
- 13.2.3、刪除字段
- 13.3、添加、修改和刪除
- 13.3.1、insert
- 13.3.2、update
- 13.3.3、delete
- 總結
- 13.4、創建表加入約束
- 13.4.1、非空約束,not null
- 13.4.2、唯一約束,unique
- 13.4.3、主鍵約束,primary key
- 13.4.4、外鍵約束,foreign key
- 13.4.5、級聯更新與級聯刪除
- 13.4.5.1、on update cascade;
- 13.4.5.2、on delete cascade;
- 13.5、t_student和t_classes完整示例
- 14、存儲引擎(了解)
- 14.1、存儲引擎的使用
- 14.2、常用的存儲引擎
- 14.2.1、MyISAM存儲引擎
- 14.2.2、InnoDB存儲引擎
- 14.2.3、MEMORY存儲引擎
- 14.3、選擇合適的存儲引擎
- 15、事務
- 15.1、概述
- 15.2、事務的提交與回滾演示
- 15.3、自動提交模式
- 15.4、事務的隔離級別
- 15.4.1、隔離級別
- 15.4.2、四個隔離級別
- 15.4.3、隔離級別與一致性問題的關系
- 15.4.4、設置服務器缺省隔離級別
- 15.4.5、隔離級別的作用范圍
- 15.4.6、查看隔離級別
- 15.4.7、并發事務與隔離級別示例
- 16、索引
- 16.1、索引原理
- 16.2、索引的應用
- 16.2.1、創建索引
- 16.2.2、查看索引
- 16.2.3、使用索引
- 16.2.4、刪除索引
- 17、視圖
- 17.1、什么是視圖
- 17.2、創建視圖
- 17.3、修改視圖
- 17.4、刪除視圖
- 18、DBA命令(了解)
- 18.1、新建用戶
- 18.2、授權
- 18.3、回收權限
- 18.4、導出導入
- 18.4.1、導出
- 18.4.1.1、導出整個數據庫
- 18.4.1.2、導出指定庫下的指定表
- 18.4.2、導入
- 19、數據庫設計的三范式
- 19.1、第一范式
- 19.2、第二范式
- 19.3、第三范式
- 19.4、三范式總結
- 作業
- 1、取得每個部門最高薪水的人員名稱
- 2、哪些人的薪水在部門的平均薪水之上
- 3、取得部門中(所有人的)平均的薪水等級
- 4、不準用組函數(Max),取得最高薪水
- 5、取得平均薪水最高的部門的部門編號
- 6、取得平均薪水最高的部門的部門名稱
- 7、求平均薪水的等級最低的部門的部門名稱
- 8、取得比普通員工(員工代碼沒有在mgr字段上出現的)的最高薪水還要高的領導人姓名
- 9、取得薪水最高的前五名員工
- 10、取得薪水最高的第六到第十名員工
- 11、取得最后入職的5名員工
- 12、取得每個薪水等級有多少員工
- 13、面試題
- 14、列出所有員工及領導的姓名
- 15、列出受雇日期早于其直接上級的所有員工的編號,姓名,部門名稱
- 16、列出部門名稱和這些部門的員工信息,同時列出那些沒有員工的部門.
- 17、列出至少有5個員工的所有部門
- 18、列出薪金比"SMITH"多的所有員工信息.
- 19、列出所有"CLERK"(辦事員)的姓名及其部門名稱,部門的人數.
- 20、列出最低薪金大于1500的各種工作及從事此工作的全部雇員人數.
- 21、列出在部門"SALES"<銷售部>工作的員工的姓名,假定不知道銷售部的部門編號.
- 22、列出薪金高于公司平均薪金的所有員工,所在部門,上級領導,雇員的工資等級.
- 23、列出與"SCOTT"從事相同工作的所有員工及部門名稱.
- 24、列出薪金等于部門30中員工的薪金的其他員工的姓名和薪金.
- 25、列出薪金高于在部門30工作的所有員工的薪金的員工姓名和薪金.部門名稱.
- 26、列出在每個部門工作的員工數量,平均工資和平均服務期限.
- 27、列出所有員工的姓名、部門名稱和工資。
- 28、列出所有部門的詳細信息和人數
- 29、列出各種工作的最低工資及從事此工作的雇員姓名
- 30、列出各個部門的MANAGER(領導)的最低薪金
- 31、列出所有員工的年工資,按年薪從低到高排序
- 32、求出員工領導的薪水超過3000的員工名稱與領導名稱
- 33、求出部門名稱中,帶'S'字符的部門員工的工資合計、部門人數.
- 34、給任職日期超過30年的員工加薪10%.
- 教務管理系統(項目)