版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、湖南文理学院数据库原理与应用报告 专业班级: 电信12101班 学生姓名: 学生学号: 指导教师: 刘长青 设计时间: 2015.1.4-2015.1.10 目录一、 需求分析1、 数据需求2、 数据流图3、 数据字典二、 概念结构设计三、 逻辑结构设计四、 物理结构设计五、 数据库的实施1、 创建数据库2、 数据表的维护与创建3、 数据库索引和视图4、 查询操作六、 数据库触发器的规划和设计七、 数据库的安全管理与维护八、结论学生考勤管理系统一、 需求分析为物电学院设计一个学生考勤管理系统,该系统主要实现对学生基本信息、教师基本信息、学生考勤等的管理,学生考勤管理系统功能需求包括:学生基本信
2、息表,教师基本信息表,班级表,专业表,课程表,班主任表,请假信息表,上课出勤记录表。1、 数据需求:(1) 学生基本信息表:学号,姓名,性别,班级,专业,院系(2) 教师基本信息表:姓名,性别,编号(3) 班级表:班主任,名称,编号(4) 专业表:专业名称,编号(5) 课程表:课程号,课程名,课程性质(6) 班主任表:编号,姓名,性别(7) 请假信息表:编号,学号,原因,开始时间,结束时间,请假天数,申请请假时间,班主任审批状态,班主任审批时间(8) 上课出勤记录表:编号,上课时间,学号2、 数据流图:学生考勤学生信息课程教师请假信息表学号课程编号编号3、数据字典(1)数据项数据项:学号别名:
3、学生编号含义说明:唯一标识每个学生类型:字符型长度:9位取值范围:000000000-999999999取值含义:前四位表示学年,第5,6,7位表示专业和班级,第8,9,表示学号(2)数据结构数据结构:学生含义说明:学生考勤管理系统子系统的主体结构数据,定义了一个学生的有关信息组成:学号、姓名、性别、班级、专业、电话号码(3)数据流数据流名:请假信息表说明:学生请假信息及相关课程数据流来源:学生基本信息表,教师基本信息表、课程信息表数据流去向:请假学生、课程、组成:请假原因+学生学号+请假时间平均流量:500条/年高峰流量:50/天(4)数据存储数据存储:学生基本信息表说明:记录学生的基本信息
4、写文件的处理:新生入学报到后从学院新生登记表中获取信息输入流出数据流:为请假信息表提供学生基本信息组成:学号、姓名、性别、班级、专业、手机号码、数据量:平均每年2000条存取方式:随机存取二、概念结构设计E-R模型:学生学号姓名性别专业班级院系专业班级班主任属于管理请假考勤课程授课教师假条课程号课程名课程性质姓名性别编号编号学号原因编号专业名称编号名称班主任编号姓名性别1属于111nnnnnnmm电话电话电话三、逻辑结构设计1、学生表student字段名数据类型可否为空键引用备注stu_nochar(10)否主键学生学号stu_namevarchar(30)否学生姓名stu_sexchar(2
5、)否性别stu_classchar(13)否外键所属班级stu_majorchar(30)否外键所属专业Stu_tellvarchar(20)否电话号码2、专业表major字段名数据类型可否为空键引用备注major_idnumber否主键专业编号major_namechar(20)否专业名称3、教师表teacher字段名数据类型可否为空键引用备注tea_nochar(10)否主键任课老师编号tea_namechar(20)否任课老师姓名tea_sexchar(2)否性别tea_tellVarchar(20)否电话号码4、班主任表classteacher字段名数据类型可否为空键引用备注class
6、tea_nochar(5)否主键任课老师编号classtea_namechar(20)否任课老师姓名classtea_sexchar(2)否性别classtea_majornumber否外键所属专业classtea_tellVarchar(20)否电话号码5、学生上课出勤记录表kaoqin_record字段名数据类型可否为空键引用备注kaoqin_idchar(13)否主键上课出勤编号sk_timedate否上课时间stu_numberchar(10)否外键 学生学号stu_statuschar(10)否学生上课考勤状态teacher_nochar(10)否外键教师编号course_
7、nochar(13)否外键课程编号6、课程信息表course字段名数据类型可否为空键引用备注course_nochar(13)否主键课程编号course_namechar(20)否课程名称course_xzchar(4)否课程性质7、班级表classes字段名数据类型可否为空键引用备注class_nochar(10)否主键课程编号class_namechar(20)否课程名称classtea_nochar(5)否外键课程性质8、请假信息表qingjia字段名数据类型可否为空键引用备注idnumber否主键请假代号class_idchar(10)否外键班级代号stu_novarchar2 (20
8、)否外键学生学号leave_reasonvarchar2 (200)否请假原因start_timedate否开始时间end_timedate否结束时间day_numbernumber否请假天数qingjia_timedate否申请请假时间class_tea_idchar(5)否外键class_tea_sp_statuschar(10)否班主任审批状态class_tea_sp_timedate否班主任审批时间备注:status 表示审批状态:0为等待审批,1为同意请假,2为不同意请假。四、物理结构设计确定数据库的物理结构整个数据库包括八个表,每个表都有不同的联接关系,还有创建的视图也将表联系起来
9、。 存取途径:索引存取方法 (1)按学生所在班级建立索引,可提高查询速度。 (2)查询常用到的字段(学生学号、学生姓名、课程编号、教师姓名),可创建索引。五、数据库的实施1、 创建数据库CREATE DATABASE studentkaoqin ON PRIMARY ( NAME = N'studentkaoqin', FILENAME = N'E:fsfsqlstudentkaoqin.mdf' ) ( NAME = N'studentkaoqin_log', FILENAME = N'E:fsfsqlstudentkaoqin_log
10、.ldf')2、 数据表的创建和维护(1) 表的创建- 专业表major create table major(major_id int not null,major_name char(10) not null,constraint pk_major primary key (major_id)- 教师表teachercreate table teacher(tea_no char(10) not null,tea_name char(20) not null,tea_sex char(2) check (tea_sex='男' or tea_sex='女
11、39;), tea_tell varchar(20) not null,constraint pk_teacher primary key (tea_no)- 班级表classescreate table classes(class_no char(10) primary key,class_name char(20) not null,)- 学生表studentcreate table student(stu_no char(10) not null,stu_name varchar(30) not null,stu_sex char(2) check (stu_sex='男'
12、; or stu_sex='女'), stu_tell varchar(20) not null,stu_class char(10) references classes(class_no),stu_major int references major(major_id),constraint pk_student primary key(stu_no)- 课程信息表coursecreate table course(course_no char(13) primary key,course_name char(20) not null,course_xz char(4) n
13、ot null)- 学生上课出勤记录表kaoqin_recordcreate table kaoqin_record(kaoqin_id char(13) primary key not null,sk_time datetime not null,stu_number char(10) references student(stu_no),stu_status char(10) not null,teacher_no char(10) references teacher(tea_no),course_no char(13) references course(course_no)- 请假信
14、息表qingjiacreate table qingjia(id int primary key,class_id char(10) references classes(class_no),stu_no char(10) references student(stu_no),leave_reason varchar(200) not null,start_time datetime not null,end_time datetime not null,day_number int not null,qingjia_time datetime not null,class_tea_id ch
15、ar(5) references classteacher(classtea_no),class_tea_sp_status char(10),class_tea_sp_time datetime,)- 班主任表classteachercreate table classteacher( classtea_no char(5) not null,classtea_name char(20) not null,classtea_sex char(2) check (classtea_sex='男' or classtea_sex='女' )classtea_tel
16、l varchar(20) not null,classtea_major int references major(major_id),constraint pk_classteacher primary key (classtea_no)(2)添加约束手机号码的限制alter table studentadd constraint ck_telphone1check(Telphone like '0-90-90-90-90-90-90-90-90-90-90-9')alter table classteacheradd constraint ck_telphone2 che
17、ck(Telphone like '0-90-90-90-90-90-90-90-90-90-90-9')alter table teacheradd constraint ck_telphone2 check(Telphone like '0-90-90-90-90-90-90-90-90-90-90-9')(3)添加内容-1、学生表student 添加内容insert into student values('201210101', ' 黄小明','男','2012101','1'
18、;,'#39;)insert into student values('201210102', ' 张乐', '男','2012101','1','#39;)insert into student values('201220101', ' 刘丹', '男','2012201','2','#39;)insert into student va
19、lues('201220102', ' 程冬冬','男','2012201','2','19829742194')insert into student values('201230101', ' 胡雪露','男','2012301','3','#39;)insert into student values('201230102', ' 张亮', '
20、男','2012301','3','#39;) -2、班主任表classteacher 添加内容insert into classteacher values('01', ' 刘敏', '女', '1','12882492124')insert into classteacher values('02', ' 刘圆圆','女', '1','12421412444')
21、insert into classteacher values('03', ' 刘峰', '女', '2','21325252255')insert into classteacher values('04', ' 胡学达','女', '2','#39;)-3、课程表course 添加内容insert into course values('01', ' 单片机原理及应用', '考
22、试')insert into course values('02', ' 大学物理', '考试')insert into course values('03', ' 数据库原理及应用', '考察')insert into course values('04', ' 模拟电子技术', '考试')insert into course values('05', ' 高等数学', '考试')insert
23、into course values('06', ' 大学英语', '考试')insert into course values('07', ' 大学体育', '考察')-4、考勤记录表kaoqin_record 添加内容insert into kaoqin_record values('01', ' 2015/1/8 8:00', '201210101', '缺课', '01' ,'01')insert
24、 into kaoqin_record values('02', ' 2015/1/9 14:30', '201220102', '请假', '06' ,'02')insert into kaoqin_record values('03', ' 2015/1/9 14:30', '201230101', '缺课', '04' ,'05')insert into kaoqin_record values(&
25、#39;04', ' 2015/1/10 9:00', '201230102', '缺课', '05' ,'03')insert into kaoqin_record values('05', ' 2015/1/10 14:30', '201210102', '请假', '05' ,'03')insert into kaoqin_record values('06', ' 2015/1/1
26、1 7:00', '201220101', '缺课', '02' ,'06')-5、专业表major 添加内容insert into major values('1', ' 电子信息')insert into major values('2', ' 光电技术')insert into major values('3', ' 物理')-6、请假表qingjia 添加内容insert into qingjia values('
27、;1', '2012201', '201220102', '生病', ' 2015/1/8 0:00', ' 2015/1/10 0:00', '3','2015/1/7 0:00', '01' ,'1',' 2015/1/8 0:00',)insert into qingjia values('2', '2012101', '201210102', '考驾照',
28、' 2015/1/10 0:00', ' 2015/1/11 0:00', '1','2015/1/9 0:00', '02' ,'1',' 2015/1/9 0:00',)insert into qingjia values('3', '2012201', '201220101', '兼职', ' 2015/1/11 7:00', ' 2015/1/11 18:00', '1
29、39;,'2015/1/10 0:00', '04' ,'2',' 2015/1/10 0:00',)-7、班级表classes 添加内容insert into classes values('2012101', ' 电信')insert into classes values('2012201', ' 光电')insert into classes values('2012301', ' 物理')-8、教师表teacher 添加内容i
30、nsert into teacher values('01', ' 刘大磊', '男', '#39;)insert into teacher values('02', ' 赵霞', '男', '#39;)insert into teacher values('03', ' 张天', '男', '#39;)insert into teacher values(
31、'04', ' 张雪艳', '女', '#39;)insert into teacher values('05', ' 刘涛', '女', '#39;)insert into teacher values('06', ' 陈龙', '男', '#39;)3、 数据库索引和视图(1) 创建索引-为表student 和teacher 中的Telphone 字段创
32、建一个唯一索引PK_telphonecreate unique index unq_ stu_tell 1 ON student(stu_tell)create unique index unq_ tea_tell 2 ON teacher(tea_tell)-为表course中的course_no字段创建升序的聚集索引create clustered index clu_ course_no on student(course_no)(2) 创建视图学生考勤视图:CREATE VIEW dbo.考勤ASSELECT dbo.student.stu_name AS 学生姓名,dbo.kaoqi
33、n_record.stu_status AS 考勤状态, 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 请假视图:CREATE VIEW dbo.请假ASSELECT dbo.classes.class_name AS 班级, dbo.student.stu_name AS 学生, dbo.qingjia.lea
34、ve_reason AS 请假原因, dbo.qingjia.day_number AS 请假天数, dbo.classteacher.classtea_name AS 班主任, dbo.qingjia.class_tea_sp_status AS 审批状态FROM dbo.classes, dbo.classteacher , dbo.student , dbo.qingjia4、查询操作(1)基本查询-1查询student表中所有学生的全部信息SELECT * from student(2) 条件查询-1、查询电信班,男学生 select * from student where stu_sex='男' and stu_class='2012101'(3) 排序查询- 查询考试的课程并按降序排列SELECT course_no,course_name,course_xz FROM courseWHERE course_xz='考试'ORDER BY course_no DESC(4) 筛选和分组查询-查询请假天数小于2天的学生学号SELECT stu_no,day_number FROM qingjiaGROUP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级科学上册第二单元人与植物4保护植物教案首师大版1
- 生活培训课件下载
- 《芳香油植物资源》课件
- 辞退告知书-企业管理
- 护理肝脓肿考试试题及答案
- 《复习课鲁教版》课件
- 五年级数学(小数除法)计算题专项练习及答案
- 北师大版八年级数学下册全册单元测试题
- 小班运动安全课件
- 三位数除以一位数(首位不够除)
- 办公室行政培训
- 2023部编新人教版五年级(上册)道德与法治全册教案
- (完整版)python学习课件024600
- 湖南省岳阳市2023-2024学年高一上学期1月期末质量监测试题+物理 含答案
- 圆柱的表面积课件
- 2024年高等教育法学类自考-00226知识产权法考试近5年真题附答案
- 金匮要略2022-2023-2学期学习通超星期末考试答案章节答案2024年
- 四川省巴中市2023-2024学年七年级上学期期末数学试题(含答案)
- DB31-T 1502-2024 工贸行业有限空间作业安全管理规范
- 2025届成都市青羊区数学六上期末检测试题含解析
- 【课件】Unit+5+Fun+Clubs-+Section+B+(1a-2b)课件人教版(2024)七年级英语上册++
评论
0/150
提交评论