数据库课程设计报告
- 格式:docx
- 大小:4.13 MB
- 文档页数:22
数据库原理及应用课程设计报告范文附完整代码大家好呀!今天我要和你们分享一下我这次数据库原理及应用课程设计的经历,这可真是一段有趣又充满挑战的旅程呢!一、课程设计背景与目标。
咱这个课程设计呀,主要就是为了让我们把在课堂上学到的那些数据库知识,真正地运用到实际项目中去。
你想啊,光知道理论知识,就像是纸上谈兵,真正到了战场上,那可就抓瞎啦!所以这次课程设计就是我们的“实战演习”,目标就是要设计一个完整的数据库应用系统,让我们看看自己到底学得怎么样。
我选的项目呢,是一个简单的图书管理系统。
为啥选这个呢?因为我觉得图书管理这个事儿吧,大家都比较熟悉,生活中经常会接触到,而且它涉及到的数据库操作也比较全面,像图书信息的录入、借阅、归还等等,正好可以把我们学的那些增删改查的操作都练一遍。
二、需求分析。
在开始动手写代码之前呀,咱得先搞清楚这个图书管理系统到底需要实现哪些功能。
这就好比盖房子,得先把图纸设计好,不然瞎忙活一通,最后盖出来的房子可能连自己都不满意。
我琢磨着,这个系统得有管理员和普通用户两种角色。
管理员呢,得能对图书信息进行管理,比如添加新书、删除旧书、修改图书信息啥的;还得能管理用户信息,要是有用户违规操作或者借书不还,管理员得有权处理。
普通用户嘛,主要就是能查询图书信息,看看有没有自己想看的书,然后能进行借阅和归还操作。
另外呀,系统还得有个查询功能,用户可以按照书名、作者、出版社这些信息来查找图书,这样找起书来就方便多啦!三、数据库设计。
需求分析清楚了,接下来就是设计数据库啦。
这可是整个系统的核心部分,就像房子的地基一样,要是地基没打好,房子肯定盖不高。
我设计的数据库里主要有三个表:图书表、用户表和借阅记录表。
图书表里面存放图书的各种信息,像书名、作者、出版社、ISBN号这些;用户表呢,就存用户的信息,比如用户名、密码、联系方式啥的;借阅记录表用来记录用户的借阅情况,包括借阅时间、归还时间这些。
在设计表结构的时候,我还得考虑各种约束条件,比如说图书的ISBN号得是唯一的,不然到时候图书信息不就乱套啦!还有用户的用户名也得是唯一的,不然登录的时候都不知道是谁啦!四、代码实现。
课程设计报告专业信息管理与信息系统课程名称数据库原理与应用设计题目长途汽车管理系统设计设计题目:长途汽车管理系统设计设计主要内容:一、开发平台:VB+ SQL SERVER 2000二、功能要求:1、设计内容设计一个长途汽车管理系统,该系统的用户由一般用户和管理员和司机组成,然后不同的用户拥有不同的权限,各自完成各自的管理功能,首先是欢迎界面,然后选择登录,登录的时候首先要判断用户的身份,合法的用户然后进入到系统主界面中,不同的用户看到不同的系统功能。
用sql server2000创建后台数据库,然后利用程序设计语言(VB)编写程序实现对数据库的操作,按照要求完成所有的功能和模块。
2、长途汽车管理信息系统主要功能(1)登录界面、本用户密码的修改界面.(2)普通用户管理:长途汽车路线查询界面(按照起点或者终点查询)(2)汽车管理(司机):长途汽车查询界面(按照车牌号或者司机名查询)。
(3)管理员管理:管理员登录界面、长途汽车登记界面(包括查询,添加、修改、删除等操作)、司机信息管理界面(包括查询、删除、修改)、长途路线界面(包括查询、添加、修改、删除等操作)。
3、长途汽车管理信息系统数据库表单(可以按照需求增加)(1)用户信息表单,主要字段有:用户名、密码、用户身份(管理员和普通用户、司机)(2)司机信息表单,主要字段有:车牌号(外码)、司机名、驾驶证号、性别、宅电、手机、出生日期、、邮编、地址、备注、(3)长途汽车管理表单,主要字段有:车牌号、路线编号(外码)、司机名(4)长途路线详细表单,主要字段有:路线编号、发车时间、沿途停靠点、到达时间、票价、起点、终点三、课程设计报告主要内容:1 长途汽车管理系统需求分析(给出系统的功能模块图,对各个功能作出详细介绍)2 长途汽车管理系统界面设计(给出界面截图及其主要控件的属性设置表格)3 长途汽车管理系统数据库设计(给出数据库各个表单中数据的字段名,数据类型及其相应的说明)4长途汽车管理系统程序设计(按照功能模块给出详细的程序代码,并给出重点语句的注释)1 长途汽车信息管理系统需求分析图1.1长途汽车信息管理系统1。
mysql课程设计报告设计心得一、教学目标本课程的教学目标是使学生掌握MySQL数据库的基本知识、安装与配置、SQL 语言、数据库的设计与维护以及数据库的安全管理。
通过本课程的学习,学生应能熟练使用MySQL进行数据库的设计、创建、查询和管理,具备数据库开发和应用的基本能力。
具体来说,知识目标包括:1.理解数据库的基本概念、特点和分类。
2.掌握MySQL的安装与配置方法。
3.熟悉SQL语言的基本语法和操作。
4.掌握数据库的设计原则和方法。
5.了解数据库的安全管理措施。
技能目标包括:1.能够独立安装和配置MySQL数据库。
2.能够使用SQL语言进行数据库的创建、查询、更新和管理。
3.能够设计和创建满足实际需求的数据库。
4.能够对数据库进行性能优化和维护。
5.能够实施基本的数据库安全策略。
情感态度价值观目标包括:1.培养学生对数据库技术的兴趣和好奇心。
2.培养学生团队合作精神和自主学习能力。
3.培养学生对数据库安全和数据隐私的重视。
二、教学内容本课程的教学内容主要包括以下几个部分:1.MySQL数据库概述:介绍数据库的基本概念、特点和分类,MySQL的发展历程和优势。
2.MySQL的安装与配置:讲解如何在不同操作系统上安装和配置MySQL,包括操作步骤和注意事项。
3.SQL语言基础:介绍SQL语言的基本语法和使用方法,包括数据类型、数据定义、数据查询、数据更新和数据控制。
4.数据库设计与维护:讲解数据库的设计原则和方法,包括实体-关系模型、关系数据库规范化和数据库的优化。
5.数据库安全与管理:介绍数据库的安全风险和防护措施,包括用户权限管理、数据加密和备份恢复等。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。
包括:1.讲授法:通过讲解和演示,使学生掌握MySQL的基本概念和操作方法。
2.案例分析法:通过分析实际案例,使学生学会解决实际问题。
3.实验法:安排实验课程,让学生动手操作,巩固所学知识。
数据库课程设计个人总结8篇篇1一、引言经过一个学期的学习与实践,本次数据库课程设计任务终于圆满完成。
这段经历让我深刻认识到理论知识与实践操作相结合的重要性,以及数据库设计在实际项目中的关键作用。
接下来,我将对本次课程设计进行总结,分享学习心得和成长体验。
二、课程背景与目标本次数据库课程设计旨在通过实践项目,使学生掌握数据库设计的基本原理和方法,提高数据库应用系统的开发能力。
课程的主要目标包括:掌握数据库设计流程、理解数据模型概念、熟悉SQL语言及数据库管理系统的应用等。
三、项目内容在课程设计的实践环节中,我们选择了“图书管理系统”作为项目主题。
具体工作内容包括:需求分析、概念设计、逻辑设计、物理设计以及系统实现。
在需求分析阶段,我们对系统用户、功能、性能等进行了详细分析。
概念设计阶段主要完成了实体关系图(E-R图)的绘制。
逻辑设计则涉及数据表的创建和关系的定义。
物理设计则关注数据库文件的存储和管理。
最后,系统实现阶段通过编程实现了各项功能。
四、实施过程在课程设计的实施过程中,我首先进行了充分的需求分析,明确了系统的功能需求和性能需求。
然后,根据需求进行了概念设计,绘制了实体关系图。
在逻辑设计阶段,我仔细设计了数据表的结构,确保数据的完整性和关联性。
物理设计阶段,我选择了合适的存储介质和存储方式,优化了数据库的性能。
最后,在系统实现阶段,我运用所学知识,通过编程实现了各项功能。
五、重点成果本次课程设计的重点成果包括:完成了图书管理系统的数据库设计,掌握了数据库设计的基本原理和方法,熟悉了SQL语言及数据库管理系统的应用。
此外,我还学会了如何进行团队协作,提高了解决实际问题的能力。
六、遇到的问题与解决方案在课程设计中,我遇到了一些问题,如数据表之间的关系定义不清晰、数据冗余等。
针对这些问题,我通过查阅相关资料和请教老师,逐渐找到了解决方案。
例如,通过优化数据表结构,消除了数据冗余;通过明确数据表之间的关系,保证了数据的完整性。
数据库课程设计报告 -------火车售票管理信息系统软件学院软件工程2013级x班姓名: xx学号:2013xxxxxxxx目录一、系统开发平台 (1)四、需求分析 (2)4.1 用户需求说明 (2)4.1.1 数据需求 (2)4.1.2 事务需求 (3)4.2 系统需求说明 (4)五、数据库逻辑设计 (4)5.1 ER图 (4)5.2 数据字典 (5)5.3 关系表 (7)六、数据库物理设计 (7)6.1 索引 (7)6.2 视图本节可选 (8)6.3 安全机制 (8)七、应用程序设计 (8)7.1 功能模块 (8)7.2 界面设计 (15)7.3 事务设计 (15)八、测试和运行 (16)九、总结 (16)一、系统开发平台题目:对火车站的售票进行管理。
主要功能:车次管理(车次、起止地点、到达时间、开车时间)、每一车次的车票管理(车厢号、座位号)、售票、退票、查询、异常处理。
开发工具:eclipse数据库:mysql操作系统:windows8.1二、数据库规划2.1 任务陈述:做一个火车票售票管理系统:对火车站的售票进行管理。
主要功能:车次管理(车次、起止地点、到达时间、开车时间)、每一车次的车票管理(车厢号、座位号)、售票、退票、查询、异常处理。
2.2 任务目标完成一个火车票售票管理系统,要实现管理员对车票的增添以及删改功能,同时需要实现用户对车票的查询购买,以及出现调整之后的退票服务。
三、系统定义3.1 系统边界管理员:可以对车票以及车次进行删改操作。
用户:可以买票,但是不可以对火车票进行添加操作3.2 用户视图3.2.1 管理员视图(1)列车管理:包括列车的录入、查询、修改和删除。
(2)用户管理:包括系统使用用户的添加、查询、修改、删除等。
在线支付用户身份信息用户注册车次设置管理员车次信息录入用户信息管理票务系统车站实际情况(3)系统数据处理:数据查询,根据关键字过滤,查看当前车次信息,车票信息,用户信息以及处理历史。
非关系型数据库课程设计报告一、设计目标本课程设计的目标是通过学习非关系型数据库的原理和实践,掌握非关系型数据库的设计和应用技术,培养学生在大数据环境下处理和管理海量数据的能力。
二、设计内容1.理论学习本课程设计将包括非关系型数据库的原理、分类、数据模型等理论知识的学习。
学生将学习非关系型数据库的特点和优势,并与关系型数据库进行横向对比。
通过对不同类型的非关系型数据库的学习和比较,学生将了解到选择适合场景的非关系型数据库的重要性。
2.实践应用本课程设计将利用已知的案例或场景,要求学生设计和搭建一个非关系型数据库系统,以满足特定的需求。
学生需要根据实际的场景需求,选择合适的非关系型数据库,并进行系统的设计和搭建。
学生需要考虑数据的存储方式、数据的读写性能、数据一致性等方面的设计和优化。
3.实验实践本课程设计将包括一定数量的实验实践环节。
通过实验实践,学生将实际操作非关系型数据库,熟悉数据库的基本命令和操作,并掌握非关系型数据库的基本使用方法和技巧。
4.项目开发本课程设计还将要求学生进行一个小型的非关系型数据库项目开发。
学生需要根据实际的需求,设计和实现一个具有一定规模和功能的非关系型数据库应用系统。
项目开发将要求学生运用学到的非关系型数据库知识,完成从需求分析到设计开发的全过程。
三、教学方法1.授课方法本课程设计将采用多种教学方法,包括理论讲解、案例分析、实验实践、项目开发等。
通过理论学习和案例分析,学生将对非关系型数据库有一个全面的了解和认识;通过实验实践,学生将学会操作非关系型数据库;通过项目开发,学生将综合运用所学知识,提高解决实际问题的能力。
2.学习评价本课程设计将采用多种评价方法,包括平时成绩、实验成绩、项目成绩、考试成绩等。
通过不同的评价方法,全面评价学生的学习成果,激发学生的学习兴趣和主动性。
四、教材参考《非关系型数据库原理与应用》,王海燕等著,机械工业出版社。
五、预期效果通过本课程设计,学生将掌握非关系型数据库的原理和应用技术,能够熟练操作非关系型数据库,具备设计和开发非关系型数据库应用系统的能力。
《sqlserver数据库》课程设计范例一、教学目标本课程的教学目标是使学生掌握SQL Server数据库的基本理论、操作方法和应用技巧。
通过本课程的学习,学生将能够:1.知识目标:理解数据库的基本概念、原理和SQL Server数据库的特点;掌握SQL语言的基本语法和用法,包括数据定义、数据查询、数据更新和数据控制;了解数据库设计和建立的基本步骤。
2.技能目标:能够使用SQL Server数据库管理系统进行数据库的创建、维护和管理;能够编写简单的SQL查询语句进行数据的增、删、改、查操作;能够进行数据库的安全性和完整性设置。
3.情感态度价值观目标:培养学生对数据库技术的兴趣和好奇心,提高学生的问题解决能力和创新意识;培养学生的团队协作精神和良好的编程习惯。
二、教学内容本课程的教学内容主要包括以下几个部分:1.SQL Server数据库的基本概念和特点:数据库的概念、发展历程、数据模型、SQL Server的特点。
2.SQL语言的基本语法和用法:数据定义语言(DDL)、数据查询语言(DQL)、数据更新语言(DML)、数据控制语言(DCL)。
3.数据库的创建和管理:数据库的创建、维护、备份和恢复。
4.数据的增、删、改、查操作:使用SQL语句进行数据的添加、删除、修改和查询。
5.数据库的安全性和完整性设置:用户管理、权限分配、约束设置等。
三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解SQL Server数据库的基本概念、原理和SQL语言的语法。
2.案例分析法:通过实际案例让学生掌握数据库的创建、维护和管理方法。
3.实验法:让学生动手实践,进行数据库的创建、数据的增、删、改、查操作以及安全性和完整性设置。
4.讨论法:学生进行小组讨论,分享学习心得和经验,提高团队协作能力。
四、教学资源本课程所需的教学资源包括:1.教材:《SQL Server数据库教程》。
《数据库技术课程设计》课程编号:088120课程性质:集中实践环节先修课程:数据结构C语言实践周数:一周学分:1适合层次:本科适合专业:通信技术、电子信息工程一、课程设计目的与任务数据库技术是电子信息类专业基础课,数据库技术应用能力是信息类专业学生必须具备的计算机应用能力之一,数据库技术是信息技术应用的基本手段和方法。
本课程也是实践性很强的课程。
因此,本课程的目的就是使学生在学完《数据库技术原理》这门课程后,为充分理解和掌握这门技术而设计的。
学生通过设计一个实际可行的、完整的数据库系统,学会并掌握数据库技术应用的基本技能,巩固已学的知识,补充未学的但又必要的内容。
二、课程设计的主要内容与要求1、课程设计选题每位学生可以从以下几个任务中选择一个作为自己的设计任务。
①学生学藉管理:内容:学生的基本信息(学号,班级,姓名,性别,出生年月,出生地,毕业学校,原籍住址,学校宿舍,联系方式(可以是电话,手机,邮件地址),是否有过处分奖励,担任班委,参加组织等)学生的成绩(各门必修课程成绩,各门选修课程成绩课(程的成绩包括补考、重修成绩)学生的学分管理毕业设计(设计的课题、指导教师、成绩等)学生的健康信息功能:学生的基本信息的录入、删除和修改,学生基本信息的查询、统计;学生的成绩的录入、删除和修改,学生成绩的查询、统计;学生的学分的查询和统计(学分不能手工输入,应该根据成绩自动录入);②医院管理系统内容:病人档案(病人编号,姓名,性别,出生年月,出生地,籍贯,住院情况,预交医疗费);就医档案(就医科别,主治医生、病因、处方、用药);价格管理(各种药物的价格(不包括中药)、化验价格、);收费管理(药物收费,挂号费,处置费,化验费等);功能:病人档案的录入、删除和修改,病人档案的查询、统计;各项价格录入、删除和修改,各项价格查询、统计;就医档案录入、删除和修改、查询、统计;对病人的收费录入、删除和修改、查询、统计;③图书馆图书管理内容:书库信息(书号,书名,架位,册数,目录,简介)学生档案(借书证号,学号,班级,姓名,性别,联系方式(可以是电话,手机,邮件地址),借书限制)借阅档案(借阅者,借阅书名,借阅日期,还期)功能:各种信息的录入,编辑,删除功能;根据书查询借阅者,根据借阅者查所借阅的书;书库的各种统计功能2、课程设计方案制定开发工具的选择:建议选用VB+SQL Server,但是学生可以根据自己所擅长的语言选择系统开发工具,但是数据库必须选用SQL server。
信息工程学院数据库课程设计报告题目:学生选课管理系统指导老师:张银玲学号:姓名:班级:软工1001B 时间:2012-12 分数:目录第一章需求分析 (2)1.1 系统需求 (2)1.2 数据需求 (2)1.3 处理需求 (3)1.4安全性需求 (3)1.5完整性需求 (4)1.6数据流图 (4)1.6.1 系统顶层数据流图 (4)1.6.2第0层数据流图 (5)1.6.3 数据流程图一层分解图 (5)1.6.3 数据流程图二层分解图 (9)1.7 数据字典 (11)1.7.1 数据流条目 (11)1.7.2 数据处理 (13)1.7.3 数据存储 (14)第二章概念设计 (15)2.1 实体之间的联系 (15)2.2 E-R图 (15)2.2.1 局部E-R图 (15)第三章逻辑设计 (19)3.1 概念模型向关系模型的转换 (19)3.1.1 1:N联系的转化的关系模式 (19)3.1.2 M:N联系的转化的关系模式 (19)3.2 概念模型的优化 (20)3.2.1 确定范式级别 (20)3.2.2 实施规范化处理 (20)3.3 数据库的表设计 (21)3.3 数据库视图的创建 (23)第四章物理设计 (24)4.1存储结构 (24)4.2关系模式的存取方法 (24)第五章数据库实施、运行与维护 (25)5.1 实现 (25)5.1.1 数据库和表的建立 (25)5.1.2 视图的实现 (26)5.1.3 数据的录入 (27)5.2建立触发器,存储过程 (28)GO (29)5.3 利用JSP连接数据库的代码 (30)5.4 用户登陆界面 (31)5.5 运行维护 (32)总结 (33)第一章需求分析需求分析阶段是数据库应用系统开发的最重要阶段。
需求分析要求应用系统的开发人员按照系统的思想,根据收集的资料,对系统目标进行分析,对业务的数据需求、处理需求以及管理中存在的问题等进行分析,抽取本质的、整体的需求,为设计一个结构良好的数据库应用系统的逻辑模型奠定坚实的基础。
数据库⼤作业课程设计报告数据库设计项⽬报告设计题⽬:ATM存取款数据库系统班级级计算机科学与技术学号姓名指导教师起⽌时间1 需求分析1.1 系统⽬标系统的主要⽬标是实现⼀个ATM存取款数据库系统,该系统的适⽤范围是针对⼀个银⾏(光华银⾏)的⽤户。
⽤户可以进⾏开户、办卡、存款、取款等银⾏基本业务。
1.2 系统功能需求1.2.1 功能模块划分系统主要分为⽤户基本信息模块,卡信息模块,⽤户基本操作模块等三个模块。
卡信息模块⼜可分为储蓄卡信息模块和信⽤卡信息模块。
1.2.1 功能描述(1)⽤户基本信息模块。
该模块主要实现⽤户的开户、⽤户授信等功能。
若⽤户只需办理储蓄卡,那么其只需在我⾏开户即可。
若其还想要办理信⽤卡,那么其需要经过我⾏的授信才能办理信⽤卡,即填写相关的财产、收⼊信息。
(2)卡信息模块卡信息模块主要实现⽤户的办卡、注销卡、储蓄卡的升级和降级操作。
由于⽤户办卡类型的不同,可将卡分为储蓄卡以及信⽤卡。
○1储蓄卡模块会记录办卡时⽤户所填的基本信息、储蓄卡类型,及不同储蓄卡所对应的不同属性,如存款利率、年费、转账费⽤等信息。
○2信⽤卡模块会记录办卡时⽤户所填的基本信息、信⽤卡类型,及不同信⽤卡所对应的不同属性,如额度、提现额度、提现额度、异地提现费⽤、年费等信息。
(3)⽤户基本操作模块该模块主要实现⽤户在任选⼀台ATM机,储蓄卡能够进⾏存款、取款、转账等的操作,其中取款若属于异地取款将收取相应费⽤。
⽽信⽤卡能够进⾏提现,还款等操作,⼀种异地取现将收取更多额外的费⽤。
⽤户使⽤储蓄卡和信⽤卡的操作记录会保存在相应的操作记录表中。
2数据库概念设计2.1系统的概念模型2.1.1整体E-R图(1)⽤户基本信息模块:⼀个账户只能对应⼀个⽤户授信信息,⼀个⽤户授信信息也只能对应⼀个账户,所以账户和⽤户授信信息是1:1的关系。
(2)卡信息模块⼀个账户可以拥有多张储蓄卡,⽽⼀张储蓄卡只能归属于⼀个账户,所以账户和储蓄卡是1:M的关系。
一.系统概述1.设计背景随着高校的扩招,学生数量不断增加,学生信息管理已成为学校管理的重中之重。
传统的管理方法不但效率低,而且还要耗费大量的已经不能满足学校对学生管理的要求。
本系统为提高学生管理的管理水平,优化资源而开发,它解决了学生管理中数据信息量大,修改不方便等问题。
虽然系统中还存在不足和缺陷,但是相信经过以后不断的完善,定会成为学校管理中不可缺少的管理工具。
2.设计目的使学生在解决现实生活中存在的问题的过程中,进一步巩固对数据哭这门知识的掌握,同时了解数据库系统的开发过程及应用范围,为学生将来的就业打下良好的基础。
3.设计内容完成一个数据库应用系统的设计全过程,包括需求分析、数据库设计、数据库建立、数据输入、应用系统的设计和开发、用户界面的设计和实现、系统安装和调试等。
二.需求分析1.功能分析通过对学生管理过程的研究和分析,要求本系统具有以下功能:1.学生信息录入。
2.学生成绩录入。
3.成绩等级设置。
4.学生违规处理。
5.学生成绩排行。
6.学生信息查询。
7.学生成绩查询。
用户要输入正确的用户名和密码以后才能登录学生管理系统。
在学生管理系统中,可以通过对主窗口上的按钮对科室信息、科目信息、教师信息、班级信息、班级科目、考试类别进行设置,也可以在“学生管理”菜单中录入学生信息和学生成绩,在录入成绩后,还要对成绩进行等级设置。
当叙述违反学校规定时,要通过学生违规处理将学生和所犯错误进行记录。
在“查询管理”菜单中可以快速队学生信息、学生成绩和学生违规信息进行查询。
2.工作流图系统工作流图如图2-1。
图2-13.数据流图本系统的数据流图如图2-2.考试时间安排,成绩通知处理试卷编写,评定成绩图2-24.数据字典本系统中采用卡片行式书写数据字典,每张卡片保存一个数据项或数据结构的信息。
其中数据项卡片有学号、学生姓名、班号、科目、教师姓名等,这里为了简洁,只列出学号数据项卡片,如图2-3。
数据结构卡片有科目、学生、教师等,这里也只给出学生数据结构卡片如图2-4。
数据存储卡片有考试结果数据存储卡片如图2-5。
数据流卡片有学生登记表数据流卡片如图2-6。
图2-3图2-4图2-5图2-6三. 概念模型设计本系统使用分散-集中设计法设计系统E-R 模型,本系统的数据库实体对象分别为管理员、教师、学生、违规信息、成绩等级、成绩信息。
下面给出这几个实体的E-R 模型图。
1. 管理员实体管理员实体包括管理员名称和管理员密码,管理员实体E-R 图如图2-1.图2-12. 教师实体教师实体包括教师姓名、编号、所在办公室、教师文凭和教师职称等,教师实体E-R图如图2-2.图2-23.学生实体学生实体包括学生编号、学生姓名、学生性别、所在班级、学生年龄、联系电话和联系地址等。
学生实体E-R图如图2-3。
图2-34.违规信息实体违规信息实体包括违规编号、违规内容、处理结果、备注信息和违规时间等。
违规信息E-R图如图2-4。
图2-45.成绩等级实体成绩等级实体包括等级名称、成绩上限和成绩下限。
成绩等级实体E-R图如图2-5。
图2-56.成绩信息实体成绩信息实体包括学生编号、考试科目、来时成绩、考试类别和考试时间。
成绩信息实体E_R图如图2-6。
图2-6合并局部E-R模型,得到全局E-R模型图,如图2-7.图2-7四.逻辑设计本部分实现的功能是,将上面讨论的E-R模式,转化为关系模型。
具体实现过程如下:1.E-R图向逻辑模型的转换数据库名:tb_Student科室(科室编号、科室名称、电话号码);班级(班级编号、班级人数);课程(课程编号、课程名称、任课教师);选课信息(课程编号、班级编号);成绩信息(学生学号、课程编号、成绩);学生信息(学生学号、学生姓名、班级编号、院系名称、性别、年龄、政治身份、民族、籍贯);违规记录(违规编号、违规时间、违规内容、备注信息、处理结果)成绩等级(等级名称、成绩上限、成绩下限)。
2.关系模式优化——函数依赖集F(科室)= { 院系编号<—>院系名称,院系编号—>电话}F(班级)= {班级编号—>班级人数}F(课程)= { 课程编号—>课程名称,课程编号—>任课教师}F(成绩)= {学生学号、课程学号—>成绩}F(学生信息)= { 学生学号—>学生姓名,学生学号—>班级编号,学生学号—>院系名称,学生学号—>性别,学生学号—>年龄,学生学号—>政治身份,学生学号—>民族,学生学号—>籍贯}3.分析:不存在非主属性和主属性对码的部分函数依懒和传递函数依赖,因此满足BCNF。
4.逻辑设计结果:本例使用的是SQL Sever2000数据库,在SQL Sever2000数据库中设计出本系统的表结构如下:(1)tb_user(管理员信息表),用来保存管理员的信息,如图4-1。
图4-1(2)tb_teacher(教师信息表),用来保存教师的信息,如图4-2.图4-2(3)tb_studentinfo(学生信息表),用来保存学生基本信息,如图4-3.图4-3(4)tb_regbreakinfo(违规信息表),用来保存学生的违规信息,如图4-4.图4-4(5)tb_gradelevel(成绩等级表),用来记录成绩等级信息,如图4-5。
图4-5(6)tb_examinfo_sub(成绩信息表),用来记录成绩信息。
如图4-6.图4-6五.源代码及查询截图1.公共类设计本系统使用ODBC连接数据源,可以通过CDatabase类的Open函数连接数据库,Open函数用于创建到数据源的连接。
其函数声明如下:virtual BOOL Open(LPCTSTR lpszDSN,BOOL bExclusive= FALSE,BOOL bReadOnly= FALSE, LPCTSTR lpszConnect = “ODBC;”,BOOL bUseCursorLib=TRUE);在CMystudentsysApp类中构造一个CDatabase类对象,在InitInstance函数中连接到数据源。
代码如下:BOOL CMystudentsysApp::InitInstance(){if (CoInitialize(NULL)!=0){AfxMessageBox("初始化COM支持库失败!");exit(1);}try{CString strConnect;strConnect.Format("DSN=mystudentsys;"); //设置连接字符串//判断连接是否成功if (m_DB.Open(NULL,false,false,"ODBC;DSN=mystudentsys;UID=Sa;PWD=;")==0){AfxMessageBox("Unable to Connect to the Specified Data Source");return FALSE ;}}catch(CDBException *pE){pE->ReportError();pE->Delete();return FALSE;}……}2.科目信息管理科目信息管理用于维护科目信息,主要实现科目的添加、修改和删除等操作。
本系统使用ODBC连接数据源,在进行对数据表的操作时可以以CRecordset类为基类派生一个数据表映射类,这样可以方便操作数据表。
派生数据表映射类的步骤如下:(1)创建一个与数据表映射的类名CSubjectinfo,其基类为CRecordset.(2)在Database Options对话框中选择ODBC,在其下拉列表中选择mystudentsys数据源。
(3)单击OK按钮打开“SQL Server登录”对话框,单击“确定”按钮,打开Select Database Tables对话框。
(4)在影射类CSubjectifo的头文件中引入afxdb.h头文件。
科目信息管理实现过程:(1)创建一个对话框,设置其ID为IDD_Dig_subjectinfo,标题为“科目信息管理”。
(2)向对话框中添加一个群组控件、两个静态文本控件和两个编辑对话框控件。
(3)创建一个工具栏资源IDR_TOOLBAR_subjectifo。
(4)为创建的对话框添加一个类,类名为CSubjectdlg。
在该类的头文件中引入Subjectinfo.h头文件,使其可以使用映射类CSubjectinfo。
(5)向对话框中添加OnInitDialog函数,在对话框初始化时创建工具栏并打开本模块实验的数据表。
具体代码见源代码。
(6)自定义一个DisplayRecord函数,在记录集指针移动时为控件赋值。
代码如下:bool CSubjectdlg::DisplayRecord(){if(mysubjectset->IsEOF()&&mysubjectset->IsBOF()) //判断是否移动到了开头和结尾{m_subjectname = "";m_subjectid = "";}else{if(mysubjectset->IsBOF()) //移动到了开头,就向后移动{mysubjectset->MoveNext();}else //否则前移{if(mysubjectset->IsEOF()){mysubjectset->MovePrev();}}}m_subjectname = mysubjectset->m_subject; //对应变量赋值m_subjectid = mysubjectset->m_code;UpdateData(FALSE);return TRUE;}(7)处理工具栏“添加”按钮的单击事件,代码如下:void CSubjectdlg::Onsubjectinfotoolbaradd(){// TODO: Add your command handler code herem_subjectname = "";m_subjectid = "";UpdateData(FALSE);}(8)处理工具栏中“保存”按钮的单击事件,代码如下:void CSubjectdlg::Onsubjectinfotoolbarsave(){// TODO: Add your command handler code hereUpdateData(TRUE);if(m_subjectname.IsEmpty()||m_subjectid.IsEmpty()){AfxMessageBox("请输入相应的数据!");return ;}CString sqlStr_findid;sqlStr_findid = "SELECT * FROM tb_subject WHERE tb_subject.code='"+m_subjectid+"' ";mysubjectset_find = new CSubjectinfo(&((CMystudentsysApp*)AfxGetApp())->m_DB);if(!mysubjectset_find->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findid )){AfxMessageBox("tb_subject 表打开失败!");}if(mysubjectset_find->GetRecordCount()!=0){AfxMessageBox("科目代码不能重复,请修改后再输入!");if(mysubjectset_find->IsOpen()){mysubjectset_find->Close();delete mysubjectset_find;}return;}if(mysubjectset_find->IsOpen()){mysubjectset_find->Close();delete mysubjectset_find;}mysubjectset->AddNew(); //调用添加记录的函数处理mysubjectset->m_subject = m_subjectname; //对应变量更新mysubjectset->m_code = m_subjectid;try{mysubjectset->Update();mysubjectset->Requery();AfxMessageBox("成功保存数据!");}catch( CDBException* e ){AfxMessageBox( e->m_strError,MB_ICONEXCLAMATION );e->Delete();}DisplayRecord(); //更新显示}(9)处理工具栏中的“删除”、“第一条”、“上一条”、“下一条”和“末一条”按钮的单击事件,源代码参见CSubjectdlg类中的Onsubjectinfotoolbardel()、Onsubjectinfotoolbarfirst()、Onsubjectinfotoolbarpre() 、Onsubjectinfotoolbarnext() Onsubjectinfotoolbarlast(),这里就不再一一列出了。