1、资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。赤峰学院数据库原理与技术课程设计报告 题 目 教室管理系统 院 系 计算机与信息工程学院 专业班级 级计算机科学与技术2班 设计成员 赵立超、 尚小苓、 李美静、 张志义、 付雪松 指导教师 韩志强 二一二 年 十二 月 二十 日课程设计教室管理系统设计1、 课程设计的目的和意义 教室作为一所学校的重要资源, 然而在许多学校特别大学, 这种资源往往显得稀缺, 必须借助先进的计算机信息技术对教室进行合理分配和管理, ”教室管理系统”能够说是对学校的教室管理部门而言是一项基础而重要的工作。教室管理这样一个系统, 能够涉及到大多数SQL Se
2、rver数据库的重要数据库对象、 重要功能和特性, 比如: 视图、 触发器和存储过程等。由此, 经过这个课程设计能够加深对这些SQL Server数据库知识的学习、 理解, 积累在实际工程应用中运用各种数据库对象的经验, 使学生掌握使用应用软件开发工具开发数据库管理系统的基本方法。在实用性方面, 教室管理系统是很普遍的一种应用, 选择该系统作为课程设计也能够为学生以后可能遇到的实际开发提供借鉴。2、 需求分析阶段2.1处理对象 教室: 教室编号、 教室类型、 上课时间 班级: 班级名称、 教师编号、 教室编号、 课程、 上课时间、 备注 教师: 教师编号、 教师姓名、 性别、 职称、 教授课程
3、、 备注2.2处理功能及要求2.2.1能够存储一定数量的教室信息,并方便有效的进行相应的教室如何分配和管理, 这主要包括: 1) 教室信息的录入、 删除及修改。2) 教室的空闲时间2.2.2能够对一定数量的班级、 教师进行相应的信息存储与管理, 这其中包括: 1) 班级信息的登记、 删除及修改。 2) 教师信息的增加、 删除及修改。 3) 班级和教师资料的查询。能够提供一定的安全机制, 提供数据信息授权访问, 防止随意删改、 查询。对查询的结果能够列表显示。2.3安全性和完整性要求2.3.1 安全性要求 系统安全性要求体现在数据库安全性、 信息安全性和系统平台的安全性等方面。安全性先经过视图机
4、制, 不同的用户只能访问系统授权的视图, 这样可提供系统数据一定程度上的安全性, 再经过分配权限、 设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性; 系统平台的安全性体现在操作系统的安全性、 计算机系统的安全性和网络体系的安全性等方面。2.3.2完整性要求系统完整性要求系统中数据的正确性以及相容性。可经过建立主、 外键, 使用check约束, 或者经过使用触发器和级联更新。2.4需求分析阶段成果表1 课程表MTWSF数据库1班尚老师101TCP2班李老师102数据结构1班付老师103( 多媒体) TCP2李老师102TCP实验机房( 二) 1.2班李老师TCP实验( 一)
5、1.2班李老师数据库2班尚老师101数据结构机房( 一) 1.2班付老师数据结构2班付老师103( 多媒体) 数据结构1班付老师103( 多媒体) 数据结构机房( 一) 1.2班付老师3、 概念结构设计3.1教室管理信息系统数据流图 教师教室管理系统班级图1 数据流程图3.2教室管理系统局部E-R模型 教师性别备注教师编号教师名称职称课程教师编号班级班级编号上课时间教师名称mingmingcheng chrng称教室教室编号上课时间教室类型上课时间备注备注图2 分E-R图4、 结构逻辑设计4.1 E-R 图向关系模型的转换教室表( 教室编号、 教室类型、 上课时间) 主键: 教室编号班级表(
6、班级名称、 教师编号、 教室编号、 课程、 上课时间、 备注) 主键: 班级名称 外键: 教室编号、 教师编号教师表( 教师编号、 教师姓名、 性别、 职称、 教授课程、 备注) 主键: 教师编号4.2数据模型优化数据库德逻辑结构设计的结果不是唯一的。为了提高数据库应用系统的性能, 还应该根据应用需要适当的修改, 调整关系模式, 这就是数据模型的优化。规范化理论为数据库设计人员判断关系模式的优劣提供了理论标准, 可用来预测模式可能出现的问题, 使数据库设计工作有了严格的理论基础。关系数据模型的优化一般以规范化理论为指导, 方法为: ( 1) 确定数据依赖。分别写出每个关系内部属性的以及不同关系
7、模式属性间的数据依赖。( 2) 对于各个关系模式之间的数据依赖进行极小化处理, 消除冗余的联系。( 3) 按照数据依赖的理论对关系模式逐一分析, 考察是否存在部分函数依赖, 传递函数依赖, 根据各个函数依赖的依赖集可知各个关系模式没有部分函数依赖和传递函数依赖因此所有的关系模式都是属于3NF。不需要进一步进行模式分析。4.3数据库的结构表2 班级信息表结构列名数据类型大小空 值键班级编号int否主键教室编号char20否外键教师编号char20否外键课程char10否上课时间char50否备注char10是表3 教师信息表结构列名数据类型大小空 值键教师编号char10否主键教师名称char1
8、0否性别char10否职称char10否教授课程char10否备注nchar10是表4 教室信息表结构列名数据类型大小空 值键教室编号char10否主键教师类型char30否上课时间nchar20是备注nchar10是5、 物理设计阶段5.1数据存储方面5.2系统功能模块5.2.1教室表信息查询和更新模块将实现对教室信息的查询和更新( 修改、 插入、 删除) 操作, 方便于对教室基本信息的管理 5.2.2班级表的查询和更新模块将完成班级基本信息的查询、 更新( 修改、 插入、 删除) 操作, 便于对学生信息的集中管理5.2.3教师表的查询和更新模块将完成教师基本信息的查询、 更新( 修改、 插
9、入、 删除) 操作, 便于对教师信息的集中管理5.3物理设计阶段结果表5 存储过程插入表编号存储过程作用1 教室表_select在教室表中查询一元组2班级表_select在班级表中查询一元组3教师表_select在教师表中查询一元组6、 数据库实施阶段6.1建立数据库create class;6.2建立数据表教室表的建立: create table 教室( 教室编号 char(20) not null,教室类型 char(30) not null,上课时间 nchar(30) not null, 备注 nchar( 10) ) 教师表的建立: create table 教师( 教师编号 cha
10、r(10) not null,教师名称 char(10) not null,性别 char(10) not null,职称 char(10) not null,教授课程 char(10) not null,备注 char(10)班级表的建立: create table 班级( 班级编号 int not null,教室编号 char(20) not null,课程 char(20) not null,教师编号 char(10) not null,上课时间 char(50) not null,备注 char(10)向表中插入数据: use class go insert 班级 (班级编号,教室编号
11、,课程,教师编号,上课时间) values (1001,101,数据库,001,周一第一节) Go use class go insert 班级 (班级编号,教室编号,课程,教师编号,上课时间) values (1001,102,TCP,002,周四第一节) go use class go insert 教师 (教师编号,教师名称,性别,职称,教授课程) values (101,尚老师,女,教授,数据库) go use class go insert 教室 (教室编号,教室类型,上课时间) values (1001,普通教室,上午第一节下午第二节) go主键约束的建立: use classgo
12、alter table 教室add constraint pk_jsbhprimary key clustered(教室编号)go唯一约束的建立: use classgoalter table 教师add constraint uk_jsbhunique nonclustered(教师编号)go默认约束的建立: use classgoalter table 教师add constraint df_xbdefault 女 for 性别go视图的建立: create view 教室占用情况asselect dbo.教室.教室编号,dbo.班级.班级编号,dbo.班级.课程,dbo.班级.上课时间f
13、rom dbo.教室INNER join dbo.班级on dbo.教室.教室编号=dbo.班级.教室编号where (dbo.教室.教室编号=101)教室编号存储过程的建立: use classgoif exists(select name from sys.objects where name =教室 and type=p)drop procedure 教室查询gocreate procedure 教室查询js char(8)with encryptionasselect 教室.教室编号,教室类型,班级.课程,班级.上课时间from 教室,班级where 教室.教室编号=班级.教室编号 a
14、nd 教室.教室编号=jsorder by 教室.教室编号go普通教室存储过程的建立: use classgoif exists(select name from sys.objects where name=普通教室查询 and type=p)drop procedure 普通教室查询gocreate procedure 普通教室查询with encryptionasselect 教室.教室编号,教室类型,教室.上课时间from 教室where 教室类型=普通教室go实验教室存储过程的建立: use classgoif exists(select name from sys.objects
15、where name=实验室教室查询 and type=p)drop procedure 实验室教室查询gocreate procedure 实验室教室查询with encryptionasselect 教室.教室编号,教室类型,教室.上课时间from 教室where 教室类型=实验室一go计算机教室存储过程的建立: use classgoif exists(select name from sys.objects where name=计算机机房教室查询 and type=p)drop procedure 计算机机房教室查询gocreate procedure 计算机机房教室查询with e
16、ncryptionasselect 教室.教室编号,教室类型,教室.上课时间from 教室where 教室类型=计算机机房一go触发器的建立: use classgocreate trigger ins_kcon 班级for insertasinsert 教师( 教师编号) select 004from insertedGouse classgocreate trigger ins_kcon 班级for insertasinsert 教室( 教室编号,上课时间) select 101,周一第二节from insertedgouse classgocreate trigger del_bjsjo
17、n 班级 for deleteasdelete 教师where 教师编号in (select 教室编号from deleted)go7、 数据库实施阶段主界面程序: /package parent_window;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class surFace extends JFrameJButton findSt,addSt,chanSt ,delSt,exitSt;/查找,添加,删除,推出/构造函数public surFace()Container c=this.getC
18、ontentPane();c.setLayout(new GridLayout (2,1);JPanel lowerPanel=new JPanel();c.setFont(new Font(plain,Font.PLAIN,13);JLabel label=new JLabel(欢迎进入教室管理系统,SwingConstants.CENTER);label.setFont(new Font(BOLD,Font.BOLD,30);c.add(label);/创立按钮 addSt=new JButton(录入);addSt.setToolTipText(添加教室信息);findSt=new JB
19、utton(查询);findSt.setToolTipText(查询信息);chanSt=new JButton(修改);chanSt.setToolTipText(修改教室信息);delSt=new JButton(删除);delSt.setToolTipText(删除教室信息);exitSt=new JButton(退出);exitSt.setToolTipText(安全退出统);lowerPanel.add(findSt);lowerPanel.add(addSt);lowerPanel.add(delSt);lowerPanel.add(exitSt);c.add(lowerPanel
20、);/注册监听器, 新建独立监听器类 查找: fin( ) , 添加: ads( ) , 删除: del( ) , 退出本系统: ext( ) /main 方法, 实现主界面public static void main (String args )surFace su=new surFace();su.setSize(500,400);su.setTitle(欢迎进人教室管理系统!);su.setVisible(true);图3 主界面查询界面: import java.awt. *;import java.awt.event. *;import java.sql. *;import jav
21、ax.swing. *;class DataWindow extends JFrame implements ActionListenerJTextField 待输入教室编号;JButton 确定按钮;public DataWindow()super(教室管理系统);setBounds(150,150,300,120);setVisible(true);Container c=this.getContentPane();c.setLayout(new GridLayout(2,1);待输入教室编号=new JTextField(15);确定按钮=new JButton(确定);JPanel p
22、1=new JPanel(),p2=new JPanel();p1.add(new JLabel(请选择将要查询的教室编号);p1.add(待输入教室编号);p2.add(new JLabel();p2.add(确定按钮);c.add(p1);c.add(p2);确定按钮.addActionListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)setVisible(false); System.exit(0););public void actionPerforme
23、d(ActionEvent e)public class Apublic static void main(String args)DataWindow window=new DataWindow();window.validate();/window.setSize(500,400);图4 查询界面删除程序: import java.awt. *;import java.awt.event. *;import java.sql. *;import javax.swing. *;class DataWindow extends JFrame implements ActionListenerJ
24、TextField 待输入教室编号;JButton 确定按钮;public DataWindow()super(教室管理系统);setBounds(150,150,300,120);setVisible(true);Container c=this.getContentPane();c.setLayout(new GridLayout(2,1);待输入教室编号=new JTextField(15);确定按钮=new JButton(确定);JPanel p1=new JPanel(),p2=new JPanel();p1.add(new JLabel(请输入将要删除的教室编号! ! );p1.
25、add(待输入教室编号);p2.add(new JLabel();p2.add(确定按钮);c.add(p1);c.add(p2);确定按钮.addActionListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)setVisible(false); System.exit(0););public void actionPerformed(ActionEvent e)public class Bpublic static void main(String args)
26、DataWindow window=new DataWindow();window.validate();/window.setSize(500,400);图5 删除界面录入程序: import java.awt. *;import java.awt.event. *;import java.sql. *;import javax.swing. *;class DataWindow extends JFrame implements ActionListenerJTextField 待输入教室编号;JButton 确定按钮;public DataWindow()super(教室管理系统);se
27、tBounds(150,150,300,120);setVisible(true);Container c=this.getContentPane();c.setLayout(new GridLayout(2,1);待输入教室编号=new JTextField(15);确定按钮=new JButton(确定);JPanel p1=new JPanel(),p2=new JPanel();p1.add(new JLabel(请输入录入教室编号);p1.add(待输入教室编号);p2.add(new JLabel();p2.add(确定按钮);c.add(p1);c.add(p2);确定按钮.ad
28、dActionListener(this);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)setVisible(false); System.exit(0););public void actionPerformed(ActionEvent e)public class Cpublic static void main(String args)DataWindow window=new DataWindow();window.validate();/window.setSize(500,
29、400);图6 录入界面8、 系统调试和测试对该教室管理系统进行测试, 验证每个功能是否符合要求, 具体的测试如下: ( 1) 经过视图查看各个基本表和视图中的数据。( 2) 检测各个存储过程的功能。9、 总结经过近几个星期的努力, 终于设计出一个达到程序设计要求的数据库。其功能完整, 用户界面良好, 可是也存在着某些缺陷。经过这一段时间的工作努力, 最后的结果固重要, 但更重要的是它让我们熟悉了系统设计的整体步骤。系统设计大致可分为需求分析、 概念设计、 逻辑设计、 物理设计、 数据库的实施及调试测试六大步骤。其中, 让我们感触最深的是需求分析阶段, 在这个阶段, 必须对所要设计的系统有总体
30、的构思和了解, 知道自己要做什么, 要实现什么, 而且要实际的进行相关的调查, 不能凭想象或自己的了解, 这样会避免在后续的工作中遇到很多的问题。同时, 经过这次课程设计使我们进一步掌握了相关的SQL语句方面的知识。不但纠正了以前的错误认识和理解, 而且学会了建立存储过程和触发器。经过查阅资料, 我们还明白了存储过程是编译后放在服务器端的程序, 它能够被别的模块调用, 且不需要重新编译, 这样就大大减轻了客户端的负担, 且有效的提高了系统执行的效率。 赤 峰 学 院数据库原理与技术课程设计报告评阅意见表课程设计小组成员赵立超、 尚小苓、 李美静、 张志义、 付雪松指导教师韩志强院、 系计算机与信息工程学院专业、 班级10级计算机与科学技术专业2班题 目教室管理系统对课程设计报告的评阅意见: 小组设计成员成绩: 赵立超: 尚小苓: 李美静: 张志义: 付雪松: 评阅教师签名: 年 月 日
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100