數(shù)據(jù)庫課程設(shè)計 學(xué)生考勤
《數(shù)據(jù)庫課程設(shè)計 學(xué)生考勤》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫課程設(shè)計 學(xué)生考勤(15頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、- **文理學(xué)院 數(shù)據(jù)庫原理與應(yīng)用報告 專業(yè)班級:電信12101班 學(xué)生**:學(xué)生**:指導(dǎo)教師:*長青 設(shè)計時間:2021 .1.4-2021 .1.10 目錄 一、 需求分析 1、 數(shù)據(jù)需求 2、 數(shù)據(jù)流圖 3、 數(shù)據(jù)字典 二、 概念構(gòu)造設(shè)計 三、 邏輯構(gòu)造設(shè)計 四、 物理構(gòu)造設(shè)計 五、 數(shù)據(jù)庫的實施 1、 創(chuàng)立數(shù)據(jù)庫 2、 數(shù)據(jù)表的維護與創(chuàng)立 3、 數(shù)據(jù)庫索引和視圖 4、 查詢操作 六、 數(shù)據(jù)庫觸發(fā)器的規(guī)劃和設(shè)計 七、 數(shù)據(jù)庫的平安管理與維護 八、結(jié)論 學(xué)生考勤管理系統(tǒng) 一、 需求分析 為物電學(xué)院設(shè)計一個學(xué)生考勤管理系統(tǒng),該系
2、統(tǒng)主要實現(xiàn)對學(xué)生根本信息、教師根本信息、學(xué)生考勤等的管理,學(xué)生考勤管理系統(tǒng)功能需求包括:學(xué)生根本信息表,教師根本信息表,班級表,專業(yè)表,課程表,班主任表,請假信息表,上課出勤記錄表。 1、 數(shù)據(jù)需求: (1) 學(xué)生根本信息表:**,**,性別,班級,專業(yè),院系 (2) 教師根本信息表:**,性別,編號 (3) 班級表:班主任,名稱,編號 (4) 專業(yè)表:專業(yè)名稱,編號 (5) 課程表:課程號,課程名,課程性質(zhì) (6) 班主任表:編號,**,性別 (7) 請假信息表:編號,**,原因,開場時間,完畢時間,請假天數(shù),申請請假時間,班主任審批狀態(tài),班主任審批時間 (8) 上課出勤記
3、錄表:編號,上課時間,** 2、 數(shù)據(jù)流圖: 學(xué)生考勤 學(xué)生信息 課程 教師 請假信息表 ** 課程編號 編號 3、數(shù)據(jù)字典 〔1〕數(shù)據(jù)項 數(shù)據(jù)項:** 別名:學(xué)生編號 含義說明:唯一標(biāo)識每個學(xué)生 類型:字符型 長度:9位 取值范圍:00000099 取值含義:前四位表示學(xué)年,第5,6,7位表示專業(yè)和班級,第8,9,表示** 〔2〕數(shù)據(jù)構(gòu)造 數(shù)據(jù)構(gòu)造:學(xué)生 含義說明:學(xué)生考勤管理系統(tǒng)子系統(tǒng)的主體構(gòu)造數(shù)據(jù),定義了一個學(xué)生的有關(guān)信息 組成:**、**、性別、班級、專業(yè)、 〔3〕數(shù)據(jù)流 數(shù)據(jù)流名:請假信息表 說明:學(xué)生請假信息及相關(guān)課程 數(shù)據(jù)流
4、來源:學(xué)生根本信息表,教師根本信息表、課程信息表 數(shù)據(jù)流去向:請假學(xué)生、課程、 組成:請假原因+學(xué)生**+請假時間 平均流量:500條/年 頂峰流量:50/天 〔4〕數(shù)據(jù)存儲 數(shù)據(jù)存儲:學(xué)生根本信息表 說明:記錄學(xué)生的根本信息 寫文件的處理:新生入學(xué)報到后從學(xué)院新生登記表中獲取信息輸入 流出數(shù)據(jù)流:為請假信息表提供學(xué)生根本信息 組成:**、**、性別、班級、專業(yè)、手機、 數(shù)據(jù)量:平均每年2000條 存取方式:隨機存取 二、概念構(gòu)造設(shè)計 E-R模型: 學(xué)生 ** ** 性別 專業(yè) 班級 院系 專業(yè) 班級 班主任 屬于 管理 請假 考勤 課
5、程 授課 教師 假條 課程號 課程名 課程性質(zhì) ** 性別 編號 編號 ** …… 原因 編號 專業(yè)名稱 編號 名稱 班主任 編號 ** 性別 1 屬于 1 1 1 n n n n n n m m 三、邏輯構(gòu)造設(shè)計 1、學(xué)生表student 字段名 數(shù)據(jù)類型 可否為空 鍵引用 備注 stu_no char(10) 否 主鍵 學(xué)生** stu_name varchar(30) 否 學(xué)生** stu_se* char(2) 否 性別 stu_class char(
6、13) 否 外鍵 所屬班級 stu_major char(30) 否 外鍵 所屬專業(yè) Stu_tell varchar(20) 否 2、專業(yè)表major 字段名 數(shù)據(jù)類型 可否為空 鍵引用 備注 major_id number 否 主鍵 專業(yè)編號 major_name char(20) 否 專業(yè)名稱 3、教師表teacher 字段名 數(shù)據(jù)類型 可否為空 鍵引用 備注 tea_no char(10) 否 主鍵 任課教師編號 tea_name char(20) 否 任課教師** tea_se* c
7、har(2) 否 性別 tea_tell Varchar(20) 否 4、班主任表classteacher 字段名 數(shù)據(jù)類型 可否為空 鍵引用 備注 classtea_no char(5) 否 主鍵 任課教師編號 classtea_name char(20) 否 任課教師** classtea_se* char(2) 否 性別 classtea_major number 否 外鍵 所屬專業(yè) classtea_tell Varchar〔20〕 否 5、學(xué)生上課出勤記錄表kaoqin_record 字段
8、名 數(shù)據(jù)類型 可否為空 鍵引用 備注 kaoqin_id char(13) 否 主鍵 上課出勤編號 sk_time date 否 上課時間 stu_number char(10) 否 外鍵 ?學(xué)生** stu_status char(10) 否 學(xué)生上課考勤狀態(tài) teacher_no char(10) 否 外鍵 教師編號 course_no char(13) 否 外鍵 課程編號 6、課程信息表course 字段名 數(shù)據(jù)類型 可否為空 鍵引用 備注 course_no char(13) 否 主鍵 課程編
9、號 course_name char(20) 否 課程名稱 course_*z char(4) 否 課程性質(zhì) 7、班級表classes 字段名 數(shù)據(jù)類型 可否為空 鍵引用 備注 class_no char(10) 否 主鍵 課程編號 class_name char(20) 否 課程名稱 classtea_no char(5) 否 外鍵 課程性質(zhì) 8、請假信息表qingjia 字段名 數(shù)據(jù)類型 可否為空 鍵引用 備注 id number 否 主鍵 請假代號 class_id char(10) 否 外
10、鍵 班級代號 stu_no varchar2 (20) 否 外鍵 學(xué)生** leave_reason varchar2 (200) 否 請假原因 start_time date 否 開場時間 end_time date 否 完畢時間 day_number number 否 請假天數(shù) qingjia_time date 否 申請請假時間 class_tea_id char(5) 否 外鍵 class_tea_sp_status char(10) 否 班主任審批狀態(tài) class_tea_sp_time
11、 date 否 班主任審批時間 備注:status 表示審批狀態(tài):0為等待審批,1為同意請假,2為不同意請假。 四、物理構(gòu)造設(shè)計 確定數(shù)據(jù)庫的物理構(gòu)造 整個數(shù)據(jù)庫包括八個表,每個表都有不同的聯(lián)接關(guān)系,還有創(chuàng)立的視圖也將表聯(lián)系起來。 存取途徑:索引存取方法 〔1〕按學(xué)生所在班級建立索引,可提高查詢速度。 〔2〕查詢常用到的字段〔學(xué)生**、學(xué)生**、課程編號、教師**〕,可創(chuàng)立索引。 五、數(shù)據(jù)庫的實施 1、 創(chuàng)立數(shù)據(jù)庫 CREATEDATABASE [studentkaoqin] ONPRIMARY (NAME= N'studentkaoqin',
12、 FILENAME= N'E:\fsf\sql\studentkaoqin.mdf') (NAME= N'studentkaoqin_log', FILENAME= N'E:\fsf\sql\studentkaoqin_log.ldf') 2、 數(shù)據(jù)表的創(chuàng)立和維護 (1) 表的創(chuàng)立 -- 專業(yè)表major createtable major ( major_id intnotnull, major_name char(10)notnull, constraint pk_major primarykey(major_id) ) -- 教師表teacher c
13、reatetable teacher ( tea_no char(10)notnull, tea_name char(20)notnull, tea_se* char(2)check(tea_se*='男'or tea_se*='女'), tea_tell varchar(20)notnull, constraint pk_teacher primarykey(tea_no) -- 班級表classes createtable classes ( class_no char(10)primarykey, class_name char(20)notnull,
14、 ) ) -- 學(xué)生表student createtable student ( stu_no char(10)notnull, stu_name varchar(30)notnull, stu_se* char(2)check(stu_se*='男'or stu_se*='女'), stu_tell varchar(20)notnull, stu_class char(10)references classes(class_no), stu_major intreferences major(major_id), constraint pk_student p
15、rimarykey(stu_no) ) -- 課程信息表course createtablecourse ( course_no char(13)primarykey, course_name char(20)notnull, course_*z char(4)notnull ) -- 學(xué)生上課出勤記錄表kaoqin_record createtable kaoqin_record ( kaoqin_id char(13)primarykeynotnull, sk_time datetimenotnull, stu_number char(10)re
16、ferences student(stu_no), stu_status char(10)notnull, teacher_no char(10)references teacher(tea_no), course_no char(13)references course(course_no) ) -- 請假信息表qingjia createtable qingjia ( id intprimarykey, class_id char(10)references classes(class_no), stu_no char(10)references stud
17、ent(stu_no), leave_reason varchar(200)notnull, start_time datetimenotnull, end_time datetimenotnull, day_number intnotnull, qingjia_time datetimenotnull, class_tea_id char(5)references classteacher(classtea_no), class_tea_sp_status char(10), class_tea_sp_time datetime, ) -- 班主任表cl
18、assteacher createtable classteacher ( classtea_no char(5)notnull, classtea_name char(20)notnull, classtea_se* char(2)check(classtea_se*='男'or classtea_se*='女' ) classtea_tell varchar(20)notnull, classtea_major intreferences major(major_id), constraint pk_classteacher primarykey(classtea_
19、no) ) (2)添加約束 手機的限制 altertablestudent addconstraint ck_telphone1 check(Telphone like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') altertableclassteacher addconstraint ck_telphone2 check(Telphone like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') altertableteacher
20、addconstraint ck_telphone2 check(Telphone like'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') (3)添加內(nèi)容 --1、學(xué)生表student 添加內(nèi)容 insertintostudentvalues('202110101',' 黃小明','男','2021101','1','') insertintostudentvalues('202110102',' *樂','男','2021101','1','') insertintostudentvalues('2021202
21、11',' *丹','男','2021201','2','') insertintostudentvalues('202120212',' 程冬冬','男','2021201','2','') insertintostudentvalues('202130101',' 胡雪露','男','2021301','3','') insertintostudentvalues('202130102',' *亮','男','2021301','3','') --2、班主任表classteacher 添加內(nèi)容 insertintoclassteachervalues('01',' *敏','女'
22、,'1','') insertintoclassteachervalues('02',' *圓圓','女','1','') insertintoclassteachervalues('03',' *峰','女','2','') insertintoclassteachervalues('04',' 胡學(xué)達','女','2','') --3、課程表course 添加內(nèi)容 insertintocoursevalues('01',' 單片機原理及應(yīng)用','考試') insertintocoursevalues('02',' 大學(xué)物理','考試') insertintocourseval
23、ues('03',' 數(shù)據(jù)庫原理及應(yīng)用','考察') insertintocoursevalues('04',' 模擬電子技術(shù)','考試') insertintocoursevalues('05',' 高等數(shù)學(xué)','考試') insertintocoursevalues('06',' 大學(xué)英語','考試') insertintocoursevalues('07',' 大學(xué)體育','考察') --4、考勤記錄表kaoqin_record 添加內(nèi)容 insertintokaoqin_recordvalues('01',' 2021 /1/8 8:00','202110101','缺課'
24、,'01','01') insertintokaoqin_recordvalues('02',' 2021 /1/9 14:30','202120212','請假','06','02') insertintokaoqin_recordvalues('03',' 2021 /1/9 14:30','202130101','缺課','04','05') insertintokaoqin_recordvalues('04',' 2021 /1/10 9:00','202130102','缺課','05','03') insertintokaoqin_recordvalues('05',' 2
25、021 /1/10 14:30','202110102','請假','05','03') insertintokaoqin_recordvalues('06',' 2021 /1/11 7:00','202120211','缺課','02','06') --5、專業(yè)表major 添加內(nèi)容 insertintomajorvalues('1',' 電子信息') insertintomajorvalues('2',' 光電技術(shù)') insertintomajorvalues('3',' 物理') --6、請假表qingjia 添加內(nèi)容 insertintoqingjiavalues('
26、1','2021201','202120212','生病',' 2021 /1/8 0:00', ' 2021 /1/10 0:00','3','2021 /1/7 0:00','01','1',' 2021 /1/8 0:00',) insertintoqingjiavalues('2','2021101','202110102','考駕照',' 2021 /1/10 0:00', ' 2021 /1/11 0:00','1','2021 /1/9 0:00','02','1',' 2021 /1/9 0:00',) insertintoqingjiavalues('3','202120
27、1','202120211','兼職',' 2021 /1/11 7:00', ' 2021 /1/11 18:00','1','2021 /1/10 0:00','04','2',' 2021 /1/10 0:00',) --7、班級表classes 添加內(nèi)容 insertintoclassesvalues('2021101',' 電信') insertintoclassesvalues('2021201',' 光電') insertintoclassesvalues('2021301',' 物理') --8、教師表teacher 添加內(nèi)容 insertintoteacherva
28、lues('01',' *大磊','男','') insertintoteachervalues('02',' 趙霞','男','') insertintoteachervalues('03',' *天','男','') insertintoteachervalues('04',' *雪艷','女','') insertintoteachervalues('05',' *濤','女','') insertintoteachervalues('06',' 陳龍','男','') 3、 數(shù)據(jù)庫索引和視圖 (1) 創(chuàng)立索引 --為表student 和teacher 中的Telphon
29、e 字段創(chuàng)立一個唯一索引PK_telphone createuniqueinde* unq_ stu_tell 1 ONstudent(stu_tell) createuniqueinde* unq_ tea_tell 2 ONteacher(tea_tell) --為表course中的course_no字段創(chuàng)立升序的聚集索引 createclusteredinde*clu_ course_no on student(course_no) (2) 創(chuàng)立視圖 學(xué)生考勤視圖: CREATEVIEW [dbo].[考勤] AS SELECT dbo.student.stu_
30、name AS 學(xué)生**,dbo.kaoqin_record.stu_status AS 考勤狀態(tài), dbo.course.course_name AS 課程名, dbo.kaoqin_record.sk_time AS 上課時間, dbo.teacher.tea_name AS 教師**, dbo.teacher.tea_tel AS 教師 FROM student,kaoqin_record, course,teacher 請假視圖: CREATEVIEW [dbo].[請假] AS SELECT dbo.classes.class_name AS 班級,
31、dbo.student.stu_name AS 學(xué)生, dbo.qingjia.leave_reason AS 請假原因, dbo.qingjia.day_number AS 請假天數(shù), dbo.classteacher.classtea_name AS 班主任, dbo.qingjia.class_tea_sp_status AS 審批狀態(tài) FROM dbo.classes, dbo.classteacher , dbo.student , dbo.qingjia 4、查詢操作 〔1〕根本查詢 --1查詢student表中
32、所有學(xué)生的全部信息 SELECT*from student (2) 條件查詢 --1、查詢電信班,男學(xué)生 select*from student where stu_se*='男'and stu_class='2021101' (3) 排序查詢 -- 查詢考試的課程并按降序排列 SELECT course_no,course_name,course_*z FROM course WHERE course_*z='考試' ORDERBY course_no DESC (4) 篩選和分組查詢 --查詢請假天數(shù)小于2天的學(xué)生** SELECT stu_no,day_num
33、ber FROM qingjia GROUPBY stu_no,day_number HAVING day_number<2 (5) 聯(lián)結(jié)查詢 --查詢學(xué)生專業(yè) SELECTDISTINCT student.*,major.* FROM student,major WHERE student.stu_major=major.major_id (6) 嵌套查詢 --查詢電信專業(yè)的學(xué)生 SELECT stu_name FROM student WHERE stu_major ='1' 六、數(shù)據(jù)庫觸發(fā)器的規(guī)劃和設(shè)計 --為數(shù)據(jù)表qingjia創(chuàng)立一個觸發(fā)器qingjia
34、_t1,實現(xiàn)在更新操作中制止修改請假天數(shù) CREATETRIGGER qinjia_t1 on qingjia forupdate as ifupdate(day_number) begin print'請假天數(shù)不允許修改!' ROLLBACKTRANSACTION END 七、數(shù)據(jù)庫的平安管理與維護 --創(chuàng)立stu_admin 登錄賬號,密碼為'123',默認(rèn)數(shù)據(jù)庫為student_kaoqin createlogin stu_admin with password='123', default_database=student_kaoqin --在student_
35、kaoqin數(shù)據(jù)庫中為登錄賬號stu_admin 創(chuàng)立用戶賬號,并取名為U_1 createuser U_1 forlogin stu_admin --將kaoqin 的查詢權(quán)限授予用戶U_1 grantselecton kaoqin_record to U_1 八、 結(jié)論 兩個星期的時間非??炀瓦^去了,這兩個星期不敢說自己有多大的進步,獲得了多少知識,但起碼是了解了工程開發(fā)的局部過程。雖說上過數(shù)據(jù)庫上過管理信息系統(tǒng)等相關(guān)的課程,但是沒有親身經(jīng)歷過相關(guān)的設(shè)計工作細節(jié)。這次實習(xí)證實提供了一個很好的時機。 通過這次課程設(shè)計發(fā)現(xiàn)這其中需要的很多知識我們沒有接觸過,去圖書館查資料的時
36、候發(fā)現(xiàn)我們前邊所學(xué)到的僅僅是皮毛,還有很多需要我們掌握的東西我們根本不知道。同時也發(fā)現(xiàn)有很多已經(jīng)學(xué)過的東西我們沒有理解到位,不能靈活運用于實際,不能很好的用來解決問題,這就需要我們不斷的大量的實踐,通過不斷的自學(xué),不斷地發(fā)現(xiàn)問題,思考問題,進而解決問題。在這個過程中我們將深刻理解所學(xué)知識,同時也可以學(xué)到不少很實用的東西。 總之,這次課程設(shè)計使我收獲很多、學(xué)會很多、比以往更有耐心很多。感謝學(xué)校及教師給我們這次課程設(shè)計的時機,最真摯的感謝我們的*長青教師 ,在設(shè)計過程中,教師精心的輔導(dǎo)和不厭其煩地的態(tài)度才使得我們以順利的完成這次設(shè)計,他那無私的奉獻的精神照耀著我們對學(xué)習(xí)的熱愛,同時也增加我們對知識的追求和欲望度。 . z.
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。