数据库 教务管理系统 综合实验报告
- 格式:doc
- 大小:823.00 KB
- 文档页数:20
数据库系统实验报告组长: 周珊组员:李邓鹏、孙辉、张希磊、魏佳、程威、黄鹏飞班号:材实1001指导教师:庞盛永各成员任务分配周珊:数据库的总体结构设计、及相关查询功能代码张希磊:数据库表的设计,实习报告的填写(需求分析、概念设计等)黄鹏飞:数据库表的设计,数据库的备份等后续工作李邓鹏:实习报告的填写、流程图的制作孙辉: E-R 图的绘制,部分查询代码的书写魏佳:逻辑结构的设计,协助报告书写程威:查阅资料、报告总结实习题目:HUB系统一、需求分析1 实体和关系:教务管理系统涉及的实体有:1、教师(教师号、姓名、职称、工资)2、学生(学号、姓名、性别、出生年月、年龄、家庭情况)3、班级(班号、班长)4、学院(学院名、学院主任)5、课程(课程号、课程名、学分)这些实体之间的相互联系如下:每个学生都属于一个班,每个班都属于一个学院,每个教师也都属于一个学院。
2、一名教师可以教多门课,一门课可以有几位老师,但不同老师讲的同一门课其课序号是不同的。
3、一名同学可以选多门课,一门课可被若干同学选中。
4、一名同学选中课程有相应成绩。
5、一个学院可以开很多门课,一门课只能由一个学院开。
2 实现功能:教学系统主要提供数据维护、选课和信息查询。
学校为方便教务管理,需开发一个教务管理系统。
为便于学生,老师,教务管理人员信息查询,注册以及信息修改,学校把学生的信息,包括姓名、性别、年龄,成绩等信息输入教务管理系统的数据库,然后在管理终端可以对数据进行查询和修改操作。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求系统界面要简单明了,易于操作,程序利于维护3、完整性要求:1、各种信息记录的完整性,关键信息记录内容不能为空;2、各种数据间相互的联系的正确性;3、相同的数据在不同记录中的一致性。
二、概念设计1、概念模型(E-R图):数据流流程图三 、逻辑结构设计E-R 图向关系模型的转换(关系的码用下横线表出) 1、教师(教师号、姓名、职称、工资)此为“教师”实体对应的关系模式。
教务辅助管理系统数据库设计数据库设计一般包括以下四个部分:数据库需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构实现。
一、数据库需求分析:(1)通过调研得出教务辅助管理系统具备的功能:1)对上课教师基本信息进行管理。
2)对全院开设的课程进行管理。
3)录入教师基本上课信息。
4)实现自动排课功能。
5)简单计算工作量。
6)能够进行各种数据统计。
7)能够输出相应的报表。
8)具有数据备份和数据恢复功能。
(2)由以上功能得出数据库需求分析的DAD(数据流图)和DD(数据字典):<1>数据流图(DAD):图8.0 教务辅助管理系统最高数据流图图8.1.1教师基本信息管理数据流图图8.1.1 .A应聘数据流图图8.1.1. B编辑数据流图图8.1.2教师上课信息管理数据流图注:由于“编辑上课信息”与“图8.1.1 B编辑数据流图”类似,这里不再制定数据流图。
图8.2安全设置数据流图图8.3课程管理数据流图<2>数据字典(DD):1)教师基本信息,包括数据项有:教师编号、姓名、性别、职称、身份证号、专业、住址、电话等。
2)上课信息,包括数据项有:教师编号、姓名、性别、课程号、课程名称、上课时间、上课班级、月工资等。
3)课程信息,包括数据项有:课程号、课程名称、上课班级、上课时间、教师姓名等。
4)工资信息,包括数据项有:教师编号、教师姓名、月工资、总金额等。
二、数据库概念结构设计:根据上面设计规划出的实体,我们对各个实体具体描述的E-R图分析如下:(1)分E-R图:图1 教师基本信息E-R图图2 上课信息E-R图图3 课程信息E-R图图4 薪水信息E-R图(2)实体与实体之间的关系E-R图:三、数据库逻辑结构设计:教师基本信息表上课信息表课程信息表薪水信息表四、数据库物理结构实现:根据以上的逻辑分析所得到的表的关系,我们使用T_SQL语言得到数据库和数据表。
1、create database teacterHalpOn(Name=pos_dat,Filename=’D:\pos_dat.mdf’,Size=5,MaxSize=20,Filegroup=1)LOG on(Name= pos_log,Filename=’D:\pos_log.ldf’,Size=5,MaxSize=20,Filegroup=1)2、create table Teacher_information(T_no char (8) not nullconstraint PK_bno primary key,T_name char(8) not null,T_sex char(2) check CK_hy sex in(‘男’,’女’)not null,T_zc varChar(9) not null,T_sfno char(18) not null,T_zy varChar(20) not null,T_address varChar(20) not null,T_tel char(7) not null)go3、create table Class_information(T_no char(8) not null,C_no char(4) not nullconstraint PK_con primary key,T_salOne Money(4) not null)go4、create table Course_information(C_no char(4) not nullconstraint PK_don primary key,C_name char(8) not null,C_class char(8) not null,C_time char(8) not null)go5、create table Pay_information(T_no char(8) not nullconstraint PK_eon primary key,T_salOne Money(4) not null,T_salAll Money(4) not null)go五、数据库扩展功能实现:1、CREATE TRIGGER triger_1ON Class_informationafter insertupdata Pay_informationset T_salAll= T_salAll+(select Class_information from insert ) 2、3、4、。
数据库教务管理组织系统综合实验报告华北科技学院计算机系综合性实验实验报告课程名称《数据库系统A》实验学期2011 ⾄2012 学年第 2 学期学⽣所在系部计算机学院年级2010 专业班级⽹络B101班学⽣姓名学号任课教师实验成绩计算机系制_ 《数据库系统A》课程综合性实验报告开课实验室:软件开发实验室(⼀)2012年6⽉6⽇也被合并为班级的外码。
存在的函数依赖为Class →(Ccredit, Tno.Dno ),其中Class →Tno,⽽Tno →Dno,即存在对候选码的传递依赖,所以只满⾜2NF。
(2)设计合适的视图在将E-R图向关系模型转换后,还应根据局部应⽤的需求,对不同级别的⽤户定义不同的视图,这样不仅可以在视图中重新定义某些属性名,使⽤户使⽤更⽅便,⽽且还可以通过视图保证系统的安全性。
在本次的教务管理系统数据库中,我针对使⽤该数据库最频繁的学⽣和教师⽤户建⽴了相关视图,其中包括对系别、教师、课程的分配视图;对学⽣学号、成绩、等相关信息的查询和教师基本信息的查询等三个视图,这样,对这些经常使⽤的查询,⽤户就可以通过视图来查询,⼤⼤简化了⽤户的使⽤。
创建的三个视图的截图如下:教师授课安排视图:学⽣成绩查询视图:教师基本信息查询视图:4.物理设计该数据库中每⼀个关系模式的主码分别为系统⾃动设置的索引,如学⽣关系模式中的学号,教师关系模式中的⼯作证号,系别中的系别号等,同时,通过对实际操作的思考,为了查询某系的⽼师的⽅便,我们还需要在Teacher表中建⽴⼀个“系代号”Dno 的索引;⼜因为查询操作很多都通过学⽣姓名查找的,所以还需要在Student表姓名列sname上建⽴⼀个索引等,这样⼤⼤简化查询操作。
5.数据库的实现(1)创建库、表在该教务管理系统中包括了学⽣表、教师表、选课表、系别表、班级表、课程表、教师与班级的联系表等多个表。
在此,我以学⽣表为例进⾏说明表的创建。
另外,在创建表的同时还要注意有时需要创建两个表之间的级联,例如,此教务管理系统中SC表是参照学⽣表的学号和课程表的课号建⽴的,所以应该在SC表中建⽴其与Student表与Course表的级联;课程表⼜是参照教师表中的教师⼯作证号建⽴的,所以应该建⽴⼀个course表与教师teacher表的级联;班级表也是参照教师表中的教师⼯作证号建⽴的,所以也应该建⽴⼀个class表与教师teacher表的级联,这样当参照表发⽣改变时能同时在⽬标表中也发⽣相应改变,保证数据库中数据的正确有效性。
数据库系统课程设计学生姓名:班学号:指导教师:教务管理系统1、需求分析1. 1 信息要求:教务管理系统涉及的实体有:●教师——工作证号、姓名、职称、电话等;●学生—-学号、姓名、性别、出生年月等;●班级--班号、最低总学分等;●系——系代号、系名和系办公室电话等;●课程——课序号、课名、学分、上课时间及名额等。
这些实体之间的联系如下:●每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系。
●每个班的班主任都由一名教师担任.●一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一门课其课序号是不同的(课序号是唯一的 .●一名同学可以选多门课,一门课可被若干同学选中。
●一名同学选中的课若已学完,应该记录有相应成绩.●本单位学生、教师都有重名,工作证号、学号可以作为标识.1。
2 处理要求:教学系统主要提供数据维护、选课和信息查询。
其中常见的查询有:系统中各对象的基本信息查询。
查询指定班、系的学生信息(名单、人数等 .查询学生的成绩、学分情况。
查询教师授课情况和学生选课情况……。
1. 3 安全性与完整性要求:●安全性要求:1。
系统应设置访问用户的标识以鉴别是否是合法用户, 并要求合法用户设置其密码, 保证用户身份不被盗用;2。
系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;3。
系统应对不同用户设置不同的权限,区分不同的用户,如学生,教师,系统管理员。
●完整性要求:1. 各种信息记录的完整性,关键信息记录内容不能为空;2。
各种数据间相互的联系的正确性;3. 相同的数据在不同记录中的一致性。
1. 4 系统功能的设计和划分根据如上得到的用户需求,我们将本系统按照所完成的功能分成以下几部分:第一部分:用户管理部分第二部分:管理员管理部分各部分完成的功能如下:1、用户管理部分1、处理用户注册2、处理用户登录3、用户可以查询学生信息。
4、用户可以查询快件信息.5、用户可以提交与查询报修信息。
教务信息管理系统实验报告一、引言本实验旨在设计和实现一个简单的教务信息管理系统,通过该系统实现学生信息的录入、查询和删除功能,并能够对学生信息进行统计和打印。
二、系统概述本系统采用C++语言和面向对象的设计思想,具有用户友好的界面和易于操作的功能。
主要包括学生类、教务信息类和系统界面类三个类。
学生类用于存储学生的基本信息,包括学号、姓名、性别、年龄等。
教务信息类用于对学生信息进行管理,包括学生信息的输入、查询、删除和统计等。
系统界面类负责与用户进行交互,显示菜单选项供用户选择。
三、系统功能1.学生信息录入:通过输入学生的学号、姓名、性别、年龄等基本信息,将学生信息保存到文件中。
2.学生信息查询:根据学生的学号查询学生的基本信息,如姓名、性别、年龄等。
3.学生信息删除:根据学生的学号将学生的基本信息从文件中删除。
4.学生信息统计:统计学生的人数、男女比例、平均年龄等统计信息,并显示在界面上。
5.学生信息打印:将学生信息以表格形式打印出来,方便教务工作人员查阅。
四、系统设计1. 学生类设计:学生类包含学号、姓名、性别、年龄等属性,以及相应的get和set方法。
2.教务信息类设计:教务信息类包含学生信息的录入、查询、删除和统计等功能。
其中,学生信息的录入功能通过键盘输入学生的基本信息,并将其保存到文件中;查询功能通过输入学生的学号从文件中读取学生的基本信息并显示在界面上;删除功能通过输入学生的学号将学生的基本信息从文件中删除;统计功能通过读取文件中的学生信息进行统计并将结果显示在界面上。
3.系统界面设计:系统界面类负责显示菜单选项供用户选择,并根据用户的选择调用相应的功能。
五、系统实现1.学生类的实现:通过定义私有成员变量和公共成员函数的方式实现学生类。
其中,私有成员变量用于存储学生的基本信息,公共成员函数用于设置学生信息和获取学生信息。
2.教务信息类的实现:通过定义录入、查询、删除和统计等成员函数的方式实现教务信息类。
一、实训目的本次数据库系统综合实训旨在使学生通过实际操作,掌握数据库系统的基本原理、设计方法以及数据库管理系统的使用技巧。
通过实训,学生能够提高数据库系统的设计、开发、调试和维护能力,为今后从事数据库相关的工作打下坚实基础。
二、实训环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:Visual Studio Code三、实训原理1. 数据库系统的基本概念:数据库、数据库管理系统、数据库设计、数据库安全等。
2. 数据库设计方法:E-R图、关系模式设计、范式理论等。
3. SQL语言:数据定义语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)等。
四、实训过程1. 数据库系统基本概念的学习在实训过程中,我们首先学习了数据库系统的基本概念,包括数据库、数据库管理系统、数据库设计、数据库安全等。
通过学习,我们对数据库系统的组成和功能有了初步的认识。
2. 数据库设计方法的学习接下来,我们学习了数据库设计方法,包括E-R图、关系模式设计、范式理论等。
通过学习,我们掌握了数据库设计的基本流程和规范。
3. 数据库管理系统的使用在实训过程中,我们使用MySQL数据库管理系统进行数据库的创建、修改、删除等操作。
通过实际操作,我们熟悉了MySQL数据库管理系统的界面和功能。
4. 数据库设计实践根据实训要求,我们以“学生管理系统”为例,进行数据库设计实践。
首先,我们分析了系统需求,确定了数据表结构,然后使用E-R图表示实体之间的关系。
接着,我们使用SQL语言创建数据库、表和视图,并进行数据插入、查询、更新和删除等操作。
5. 数据库安全与优化在实训过程中,我们还学习了数据库安全与优化方面的知识,包括用户权限管理、SQL注入防范、索引优化等。
通过实际操作,我们掌握了数据库安全与优化的方法。
五、实训结果1. 成功创建了一个“学生管理系统”数据库,包含学生信息、课程信息、成绩信息等数据表。
第1篇一、实验目的本次实验旨在通过设计和实现一个学校管理系统,提高学校管理工作的效率和质量。
通过本实验,学生能够掌握数据库的基本操作、编程语言的使用以及系统设计的流程,从而培养学生的实际操作能力和综合应用能力。
二、实验内容1. 需求分析- 确定系统功能:包括学生信息管理、教师信息管理、课程信息管理、成绩管理、教务管理等。
- 确定系统用户:包括学生、教师、教务管理员等。
2. 系统设计- 数据库设计:设计学生表、教师表、课程表、成绩表等。
- 界面设计:设计用户登录界面、学生信息管理界面、教师信息管理界面等。
3. 系统实现- 数据库实现:使用MySQL数据库创建数据库和表。
- 编程实现:使用Java或Python等编程语言编写系统代码。
- 界面实现:使用Swing或Tkinter等图形界面库设计用户界面。
4. 系统测试- 功能测试:测试各个功能的正确性和稳定性。
- 性能测试:测试系统在高并发情况下的性能表现。
- 安全测试:测试系统的安全性,防止非法用户访问。
三、实验步骤1. 需求分析阶段- 通过查阅相关资料,了解学校管理的基本流程和需求。
- 与学校管理人员沟通,确定系统需要实现的功能。
2. 系统设计阶段- 使用E-R图或数据库设计工具设计数据库结构。
- 设计系统界面原型,确定用户界面布局。
3. 系统实现阶段- 使用数据库设计工具创建数据库和表。
- 使用编程语言编写系统代码,实现各个功能模块。
- 使用图形界面库设计用户界面。
4. 系统测试阶段- 编写测试用例,对系统进行功能测试、性能测试和安全测试。
- 根据测试结果,对系统进行修改和完善。
四、实验结果1. 系统功能实现- 学生信息管理:包括学生信息的增删改查、成绩查询、班级管理等。
- 教师信息管理:包括教师信息的增删改查、课程安排等。
- 课程信息管理:包括课程信息的增删改查、选课管理等。
- 成绩管理:包括成绩的录入、查询、统计等。
- 教务管理:包括教务工作的安排、通知发布等。
一、实验目的通过本次实验,使学生了解数据库管理系统的基本概念、原理和操作方法,掌握数据库设计、创建、查询、更新和删除等基本操作,提高数据库应用能力。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 8.03. 开发工具:MySQL Workbench三、实验内容1. 数据库设计(1)分析图书销售管理系统的需求,确定实体和实体属性。
实体:图书、读者、借阅记录、图书类别、出版社、作者实体属性:- 图书:图书编号、书名、作者、出版社、出版日期、价格、库存数量- 读者:读者编号、姓名、性别、年龄、电话、邮箱- 借阅记录:借阅记录编号、图书编号、读者编号、借阅日期、归还日期、罚款金额- 图书类别:类别编号、类别名称- 出版社:出版社编号、出版社名称- 作者:作者编号、姓名、性别、国籍(2)根据实体和实体属性,绘制E-R图。
(3)利用PowerDesigner数据库软件系统进行系统物理数据模型设计。
2. 数据库创建(1)打开MySQL Workbench,创建新数据库。
(2)根据E-R图,创建图书、读者、借阅记录、图书类别、出版社、作者等关系表。
3. 数据库查询(1)使用SQL语句进行简单查询,如查询所有图书信息。
SELECT FROM 图书;(2)使用SQL语句进行复杂查询,如查询特定图书类别下的图书信息。
SELECT FROM 图书 WHERE 类别编号 = (SELECT 类别编号 FROM 图书类别 WHERE 类别名称 = '计算机');4. 数据库更新(1)使用SQL语句进行数据插入。
INSERT INTO 读者 (读者编号, 姓名, 性别, 年龄, 电话, 邮箱) VALUES ('R001', '张三', '男',25,'138****8000','********************');(2)使用SQL语句进行数据修改。
数据库_教务管理系统_综合实验报告华北科技学院计算机系综合性实验实验报告课程名称《数据库原理及应用教程》实验学期 2019 至 2019 学年第 2 学期学生所在系部计算机学院年级专业班级学生姓名学号任课教师郭红实验成绩计算机系制《数据库原理及应用教程》课程综合性实验报告23456789--一、创建表 -- 建立系别表 CREATE TABLE sdept(Dno CHAR (10) PRIMARY KEY , Dname CHAR (20) UNIQUE , Dphone CHAR (20), );-- 建立教师表 create table teacher (Tno CHAR (10) PRIMARY KEY , Tname CHAR (20) not null,Tsex CHAR (2) CHECK (Tsex IN (' 男' , ' 女' )), Prof CHAR (4), Tage SMALLINT , Dno CHAR (10) ,FOREIGN KEY (Dno ) REFERENCES Sdept (Dno ) );-- 建立学生表 CREATE TABLE student (Sno CHAR (10) PRIMARY KEY , Sname CHAR (20) NOT NULL,Ssex CHAR (2) CHECK (Ssex IN (' 男' , ' 女' )), Sage SMALLINT ,Dno CHAR (10), FOREIGN KEY (Dno ) REFERENCES Sdept (Dno ) );-- 建立课程表 CREATE TABLE course(Cno CHAR (10) PRIMARY KEY , Cname CHAR (20) UNIQUE , Credit SMALLINT , ); --建立授课表CREATE TABLE TC (Cno CHAR (10), Tno CHAR (10), );-- 建立选课表 CREATE TABLE SC (Sno CHAR (10) , Cno CHAR (10),Grade SMALLINT CHECK (Grade >=0 AND Grade10PRIMARY KEY (Sno , Cno ),);------------------------------------------------------------学生的学号、成绩等信息查询的视图create view V_studentasselect student . Sno , Sname , cname , Credit , gradefrom student , SC , coursewhere student . Sno =SC . Sno andcourse . Cno =SC . Cno--教师基本信息查询的视图create view V_teacherasselect Tname , Prof , Dnamefrom teacher , sdeptwhere teacher . Dno =sdept . Dno------------------------------------------------在教师表中系代号列上建立索引create unique index teadnoon teacher (Tno , Dno );--在学生表姓名列上建立索引create unique index stusnameon student (Sno , sname );----------------------------------------------- --创建学生用户create login u1with password ='111'use GRADEcreate user 学生for login u1--对学生用户进行授权grant selecton studentto 学生grant selecton V_studentto 学生grant selecton SCto 学生grant selecton TCto 学生grant selecton V_teacherto 学生--创建教师用户create login u2with password ='111'use GRADEcreate user 教师for login u2--对教师用户进行授权grant selecton studentto 教师grant selecton TCto 教师grant select , updateon teacherto 教师grant select , insert , update (grade ) on SCto 教师--创建教务管理员用户create login u3with password ='111'use GRADEcreate user 教务处for login u3--对教务管理员用户进行授权grant select , update , insert , delete on teacherto 教务处grant select , update , insert , delete on studentto 教务处grant select , update , insert , delete on sdeptto 教务处grant select , update , insert , delete on courseto 教务处grant select , update , insert , delete on sdeptto 教务处grant select , update , insert , delete on courseto 教务处grant select , update , insert , delete on TCto 教务处grant select , update , insert , deleteon SCto 教务处--------------------------------------------删除教师信息触发器create trigger 删除教师信息on teacherfor deleteasif exists(select * from tc where tno =(select tno from deleted )) beginprint 'course 表里有该教师的课程,请先删除course 表里的记录!'rollbackend--演示删除教师信息触发器的操作deletefrom teacherwhere tno ='t1'--删除学生信息触发器create trigger 删除学生信息on studentfor deleteasif exists(select * from sc where sno =(select sno from deleted )) beginprint 'SC 表里有该学生的选课课程,请先删除SC 表里的记录!'rollbackend--演示删除学生信息触发器的操作deletefrom studentwhere sno ='s1'--选课触发器create trigger 选课on SCfor insertasif exists(select Cno from course where cno =(select cno from inserted )) beginprint ' 选课成功'end--演示执行“选课”触发器insertinto SC (sno , cno )values ('s1' , 'c3' )--查询选课结果select *from SC--删除选课触发器create trigger 删除选课on SCfor DELETEASif exists(select Cno from sc where cno =(select cno from deleted )) begin print ' 删除选课成功'end--演示执行“删除选课”触发器deletefrom scwhere sno ='s1' and cno ='c3'--------------------------------------------------- --查询成绩的存储过程 CREATE PROCEDURE 查询成绩 @sn char (10)asselect student . sno , sname , cname , Credit , gradefrom student , course , SCwhere student . sno =sc . sno andcourse . cno =sc . cno andstudent . sno =@sn--查询学号为“s1”的学生成绩exec 查询成绩 's1'。
《教务管理管理系统》设计报告学院:班级:学号:姓名:第一章绪论 (3)1.1数据库技术的国内外发展与应用现状 (3)1.2、教务管理数据库应用系统开发的意义 (4)1.3数据库应用系统开发方法概述 (5)第二章系统需求分析 (6)2.1 概述 (6)2.2 系统功能需求与数据需求 (6)1.2.1 数据流图 (6)1.2.2 系统功能需求 (6)1.2.3 系统数据需求(数据字典) (7)第三章系统设计 (8)3.1 概念设计(E-R图) (8)3.1.1 设计方法及关键技术 (8)3.2 逻辑设计(E-R图) (9)3.2.1 设计方法及关键技术 (9)3.2.2 系统的逻辑模型 (9)3.3.3系统的完整性与安全性设计 (9)3.3 系统功能设计(E-R图) (9)3.4 系统开发平台选择 (9)第四章数据库应用系统的实现 (10)4.1 数据库的定义 (10)4.1.1 数据库的定义 (10)4.2 应用系统的开发 (11)4.3小结 (17)第五章结束语 (18)附件----------------------------------------------------------------------------------------------------19第一章绪论1.1数据库技术的国内外发展与应用现状数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心。
数据库技术研究和解决了计算机信息处理过程中大量数据有效地组织和存储的问题,在数据库系统中减少数据存储冗余、实现数据共享、保障数据安全以及高效地检索数据和处理数据。
随着计算机技术与网络通信技术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络信息化管理系统的基础。
本章主要介绍数据库技术的应用与发展、关系模型的基本概念、关系数据库的设计理论及数据库设计方法等内容,是学习和掌握现代数据库技术的基础。
数据库系统设计实验报告――教务管理系统学院:计算机科学与技术专业:软件工程班级:学号:姓名:指导老师:一、概述项目背景:数据库课程设计系统名称:教务管理系统开发环境:SQL Server 2008二、需求分析1、系统的概述⏹一个学校由很多个学院组成,每个学院有多个专业,每个专业有1个或者多个班级。
一个学生只属于1个班级,学生有姓名、学号、性别、身份证号、入学时间等属性。
⏹每个专业的每个年级都有对应的教学计划。
教学计划指定了这个专业这个年级的某门课程在那个学期上,学分、学时是多少。
每个学院都设置有1个教务秘书,这些信息都由教务秘书进行输入。
每个院系的课程都有自己的唯一编码,比如计算机系上的C语言,和电子系上的C语言,虽然都是同一门课,但是编码是不同的。
但是同一个院系中的相同的课程,课程代码是唯一的。
比如计算机学院的07计算机软件专业和计算机学院的07计算机科学专业都有C语言课程,这两门课程的课程代码是相同的。
⏹教务秘书在每个学期的中间时刻,为下一个学期进行排课,排课的内容根据教学计划,比如08计算机软件专业的学生,在2009-2010年第2学期上的课程,可以通过教学计划得知要上什么课程,然后对这些课程安排上课教师(比如陈越)、上课时间(比如星期2,第1-2节)和地点(理工楼234),有的课程是单周上,有的双周,也有是每周都上的。
⏹在每个学期期末,学生登录到网站上选择下一个学期需要上的课,选择的时刻,可以选择是否需要教材,如果某门课程的人数选满了,则不能给任何学生选择了。
⏹学生根据选择的课程进行上课,参加考试。
每个老师可以用自己的用户名和密码登陆网站,选择这个学期自己所教的课程(一个老师可以上多个班级的课程),输入这个班级的成绩,成绩分为期末考试成绩、期中考试成绩、平时成绩、实验成绩以及总评成绩。
这些成绩都需要进行存储。
⏹为了保证安全性,老师输入的成绩并不是直接放到最终的成绩表中,而是放在一个临时的表中,只有当教务秘书审核过后,才导入到最终的成绩表中。
一、实训背景随着信息技术的不断发展,教务管理系统在高校教学管理中发挥着越来越重要的作用。
为了提高教务管理的效率和质量,培养具备数据库管理能力的专业人才,我们学校开展了数据库教务管理实训。
本次实训旨在使学生掌握数据库基本原理、数据库设计方法以及教务管理系统开发流程,提高学生的实际操作能力。
二、实训目的1. 掌握数据库基本原理和概念设计方法;2. 熟悉数据库设计工具,如E-R图、关系模型等;3. 熟练运用SQL语言进行数据库的创建、查询、修改和删除操作;4. 学会使用数据库管理系统(如MySQL、Oracle等)进行数据库管理;5. 熟悉教务管理系统的开发流程,掌握教务管理系统模块划分和功能实现;6. 提高学生团队协作能力和实际操作能力。
三、实训内容1. 数据库基本原理和概念设计(1)数据库基本概念:数据模型、实体、属性、实体间联系等;(2)关系模型:关系、关系模式、关系数据库等;(3)数据库设计方法:E-R图、关系模型等。
2. 数据库设计工具(1)E-R图设计:利用E-R图工具(如Visio、PowerDesigner等)进行教务管理系统数据库设计;(2)关系模型设计:根据E-R图转换成关系模型,确定关系模式。
3. SQL语言(1)SQL语句基本语法:SELECT、INSERT、UPDATE、DELETE等;(2)SQL语句高级功能:视图、索引、存储过程等。
4. 数据库管理系统(1)数据库的创建、查询、修改和删除操作;(2)数据库备份、恢复和优化。
5. 教务管理系统开发(1)教务管理系统模块划分:学生信息管理、教师信息管理、课程管理、成绩管理、选课管理、毕业设计管理等;(2)教务管理系统功能实现:使用SQL语言和数据库管理系统进行模块功能实现。
四、实训过程1. 阶段一:数据库基本原理和概念设计通过学习数据库基本原理和概念设计方法,学生掌握了E-R图、关系模型等设计工具,为后续数据库设计打下基础。
2. 阶段二:数据库设计工具学生利用E-R图工具进行教务管理系统数据库设计,并转换为关系模型,确定关系模式。
华北科技学院计算机系综合性实验实验报告课程名称《数据库原理及应用教程》实验学期2011 至2012 学年第 2 学期学生所在系部计算机学院年级专业班级学生姓名学号任课教师郭红实验成绩计算机系制《数据库原理及应用教程》课程综合性实验报告教师基信息与学生成绩查询视图:4.物理设计该数据库中每一个关系模式的主码分别为系统自动设置的索引,如学生关系模式中的学号,教师关系模式中的教师号,系别中的系号等,同时,通过对实际操作的思考,为了查询某系的老师的方便,我们还需要在Teacher表中建立一个“系号”Dno的索引;又因为查询操作很多都通过学生姓名查找的,所以还需要在Student表姓名列sname上建立一个索引等,这样大大简化查询操作。
5.数据库的实现(1)创建库、表在该教务成绩管理系统中包括了学生表、教师表、选课表、系别表、授课表、课程表六个表。
在此,我以学生表为例进行说明表的创建。
一个完整的表必须包括对实体完整性、参照完整性、用户定义完整性的三种完整性的定义。
在学生表中,首先考虑表的实体完整性要求,在该学生表中学号被设为主码,用PRIMARY KEY定义,且该表含有多个属性,所以学号就是表级约束条件,从而完成了学生表的实体完整性的定义。
其次,对于学生表的参照完整性,系号(Dno)是该学生表的外码,同时它还是班级系别Sdept表的主码,所以对其用FOREING KEY短语进行定义,并用REFERENCES短语指明该外码是参照那些表的主码,从而完成对表的参照完整性的定义。
最后,是表的用户定义完整性,在该学生表中,结合实际情况我们不难想到应该定义一个姓名Sname为非空的约束条件和性别Ssex只能为“男”或“女”二者选其一的约束条件,其中姓名的非空用NOT NULL定义即可,而性别用CHECK语句定义即可。
创建学生表的代码为:CREATE TABLE student(Sno CHAR(10)PRIMARY KEY,Sname CHAR(20)NOT NULL,Ssex CHAR(2)CHECK(Ssex IN('男','女')),Sage SMALLINT,Dno CHAR(10),FOREIGN KEY (Dno)REFERENCES Sdept(Dno));创建的学生表截图如下:(2)创建用户该教务管理系统的主要用户有学生用户,老师用户,教务管理员和系统管理员等四种,所以需要创建这四种类型的用户,并授予其相应的权限。
数据库教学管理系统实训报告数据库教学管理系统实训报告一、实训目的本次实训的目的是让学生掌握数据库的基本操作和应用,通过实践学习教学管理系统的设计、开发和运行,增强学生的实际操作能力和解决问题的能力。
二、实训内容本次实训的主要内容是设计和开发一个教学管理系统的数据库,包括学生信息管理、课程信息管理和教师信息管理。
具体实践过程中,我们首先对系统进行需求分析和概念设计,确定需求和实体关系,然后进行逻辑设计和物理设计,建立完整的数据库架构,并编写相关的程序脚本和页面展示。
三、实训过程(一)需求分析和概念设计在这一阶段,我们进行了对需求的收集,包括对学生、课程和教师等各方面信息的需求,以及查询和统计分析等需求。
根据这些需求,我们进行了概念设计,确定了实体关系和属性,画出了实体-关系图,并进行了ER模型的建立。
(二)逻辑设计和物理设计在这一阶段,我们利用ER模型进行逻辑设计,根据业务需求进行表的设计和属性的定义,建立了完整的数据库架构,同时进行了表的优化和索引的设计。
随后,根据逻辑设计结果进行物理设计,建立了具体的表和数据库的实现。
(三)程序脚本和页面展示在这一阶段,我们利用SQL语句编写了相关的程序脚本,完成了数据的初始化和插入等操作,并利用PHP语言编写了相关的页面展示程序,实现了各项功能的操作和查询。
四、实训成果通过本次实训,我们掌握了数据库设计和开发的流程和技能,能够熟练地使用相关工具进行需求分析、逻辑设计、物理设计和程序编写等操作。
同时,我们还了解了教学管理系统的特点和功能,能够根据相关需求进行数据设计和程序开发,具有较强的实际应用能力和实践能力。
五、实训感悟本次实训让我们深入了解了数据库管理和开发的流程和细节,同时也锻炼了我们的思维能力和解决问题的能力。
通过实践,我们不仅加深了对数据库的理解和掌握,同时也培养了团队合作和沟通协调的能力。
希望能够利用所学知识,不断提高自己的技能水平,为实际应用做出更大的贡献。
《数据库系统》实验报告实验1:数据库设计与应用开发学生:lgs基于教学管理系统的数据库设计与应用开发1.需求分析教学管理系统(TMS)是大学内部学院使用的教学辅助管理系统,系统主要功能包括学生信息、考试成绩、课程安排等的管理。
需求分析应包括对数据库应用系统所要处理的对象进行全面分析,收集用户对数据库的信息结构需求、处理需求、安全性、完整性等等。
1.1主要信息及联系需求分析教学管理系统中的信息结构包括Department(系),Teacher(教师),Major(专业),Course(课程),Class(班级),Student(学生)。
各实体固有属性(非最终结果):系:系ID,系名专业:专业ID,专业名老师:老师ID,姓名,性别,年龄班级:班级ID,班级名学生:学生ID,名字,性别,年龄,余额课程:课程ID,课名信息间约束(联系):Course(课程)与Student(学生)有m:n的Exam(考试)联系,并附带Grade成绩属性;Teacher(教师),Class(班级),Course(课程)三者有m:n:p的Arrange (排课)联系,并产生time(上课时间)与ClassNo(教室号)属性;Department(系)与Teacher(教师)具有1:n的Work(工作)联系;Class(班级)与Student(学生)具有1:n的Belong(属于)联系;Major(专业)和Class(班级)有1:n的Include(包含)联系;Department(系)与Major具有1:n的Own(拥有)联系;Major(专业)和Course(课程)间有m:n的MakePlan(制定计划)联系,并产生,Term(学期)和Credit(学分)1.2主要处理需求分析教务管理人员为教师安排课程并查看所有信息。
学生可以根据课程选择课程并查看分数。
教师输入和修改课程分数。
普通管理人员负责系、课程、专业、教师、班级、学生信息的添加、删除、查询、修改和维护。
数据库设计实验报告教务管理系统目录第1 章需求分析 (3)第2 章数据库设计 (4)2.1 E-R图分析 (4)2.2 数字库表设计 (4)2.2.1class表结构 (4)2.2.2course表结构 (4)2.2.3 facutly表结构 (5)2.2.4 grade表结构 (5)2.2.5 student表结构 (5)2.2.6 teacher表结构 (5)第3 章数据库程序设计 (6)3.1 数据库及表的定义 (6)3.2 数据库各建立视图 (6)3.3为数据库各表建立索引 (6)3.4 创建各表的存储过程 (7)3.4.1 普通存储过程(无参数) (7)3.4.2 带input参数的存储过程 (7)3.4.3 带output参数的存储过程 (8)3.5 触发器设计 (9)3.5.1 插入触发器 (9)3.5.2 更新触发器 (10)3.5.3 删除触发器 (10)3.6 游标的应用 (10)第4 章用户交互界面 (11)4.1 登录界面模块 (11)4.2 学生模块 (12)4.3 任课教师模块 (12)4.4 班主任模块 (13)4.5 系主任模块 (14)第5 章总结 (16)第1 章需求分析又到一年选课时,当老师和学生们的信息确定下来以后,系主任开始忙着排课,随后学生们便开始选课。
当学期结束时,系统又开始忙碌起来,老师要给分,学生要查分,班主任也要来看看自己班级的学生情况如何。
本教务管理系统包括以下4 个模块:1. 学生模块:学生通过登陆验证后进入系统,可以管理学生所修的课程信息,包括选课和查看成绩两个功能。
2. 任课教师模块:教师通过登陆验证后进入系统,可以给选修了自己所开课程的学生打分或者修改分数。
3. 班主任模块:班主任通过登陆验证后进入系统,可以实现对本班级学生信息的管理,包括添加新的学生,修改学生个人信息和修改学生成绩。
4.系主任模块:系主任通过登陆验证后进入系统,可以实现对本院系所开课程和教师的管理。
华北科技教院估计机系概括性真验之阳早格格创做真验报告课程称呼《数据库系统A》真验教期2011至2012教年第2教期教死地圆系部估计机教院年级2010博业班级搜集B101班教死姓名教号任课西席真验结果估计机系造《数据库系统A》课程概括性真验报告启课真验室:硬件启垦真验室(一)2012年6月 6日战传播依好,所以,谦脚BCNF.f.“班级”真体对付应的闭系模式:班级(班号,最矮总教分,处事证号,系代号)代码表示:Class ( Class, Ccredit, Tno.Dno )其中,班号为其候选码,又由于班级与系别之间是n:1的“属于”闭系,通过“班级”与“系别”二个真体闭系模式的合并后,系号被合并为班级对付应的闭系模式的中码.而班级与西席之间是n:1的“控造”闭系,所以依照确定,西席的处事证号也被合并为班级的中码.存留的函数依好为Class →(Ccredit, Tno.Dno ),其中Class →Tno,而Tno →Dno,即存留对付候选码的传播依好,所以只谦脚2NF.(2)安排符合的视图正在将E-R图背闭系模型变换后,还应根据局部应用的需要,对付分歧级别的用户定义分歧的视图,那样没有但是不妨正在视图中沉新定义某些属性名,使用户使用更便当,而且还不妨通过视图包管系统的仄安性.正在本次的教务管造系统数据库中,尔针对付使用该数据库最一再的教死战西席用户建坐了相闭视图,其中包罗对付系别、西席、课程的调配视图;对付教死教号、结果、等相闭疑息的查询战西席基础疑息的查询等三个视图,那样,对付那些时常使用的查询,用户便不妨通过视图去查询,大大简化了用户的使用.创造的三个视图的截图如下:西席授课安插视图:教死结果查询视图:西席基础疑息查询视图:该数据库中每一个闭系模式的主码分别为系统自动树坐的索引,如教死闭系模式中的教号,西席闭系模式中的处事证号,系别中的系别号等,共时,通过对付本质支配的思索,为了查询某系的教授的便当,咱们还需要正在Teacher表中建坐一个“系代号”Dno 的索引;又果为查询支配很多皆通过教死姓名查找的,所以还需要正在Student表姓名列sname上建坐一个索引等,那样大大简化查询支配.5.数据库的真止(1)创造库、表正在该教务管造系统中包罗了教死表、西席表、选课表、系别表、班级表、课程表、西席与班级的通联表等多个表.正在此,尔以教死表为例举止证明表的创造.一个完备的表必须包罗对付真体完备性、参照完备性、用户定义完备性的三种完备性的定义.正在教死表中,最先思量表的真体完备性央供,正在该教死表中教号被设为主码,用PRIMARY KEY定义,且该表含有多个属性,所以教号便是表级拘束条件,进而完毕了教死表的真体完备性的定义.其次,对付于教死表的参照完备性,系号(Dno)、班号(Class)是该教死表的中码,共时它仍旧班级系别Sdept表、Class表的主码,所以对付其用FOREING KEY短语举止定义,并用REFERENCES短语指明该中码是参照那些表的主码,进而完毕对付表的参照完备性的定义.终尾,是表的用户定义完备性,正在该教死表中,分离本质情况咱们没有易料到该当定义一个姓名Sname为非空的拘束条件战性别Ssex只可为“男”或者“女”二者选其一的拘束条件,其中姓名的非空用UNIQE定义即可,而性别用CHECK语句定义即可.别的,除了对付那三种完备性性央供的定义中,再加上该表中的一些其余的属性列如年龄Sage的创造,进而共共完毕了教死表的创造.创造教死表的代码为:CREATE TABLE student(Sno CHAR(10) PRIMARY KEY,Sname CHAR(20) NOT NULL,Ssex CHAR(2) CHECK(Ssex IN ('男','女')),Sage SMALLINT,Dno CHAR(10),Class CHAR(10),FOREIGN KEY (Class) REFERENCES Class(Class));创造的教死表截图如下:其余,正在创造表的共时还要注意偶尔需要创造二个表之间的级联,比圆,此教务管造系统中SC表是参照教死表的教号战课程表的课号建坐的,所以该当正在SC表中建坐其与Student表与Course表的级联;课程表又是参照西席表中的西席处事证号建坐的,所以该当建坐一个course表与西席teacher表的级联;班级表也是参照西席表中的西席处事证号建坐的,所以也该当建坐一个class表与西席teacher表的级联,那样当参照表爆收改变时能共时正在目标表中也爆收相映改变,包管数据库中数据的精确灵验性.(2)创造用户该教务管造系统的主要用户有教死用户,教授用户,教务管造员战系统管造员等四种,所以需要创造那四种典型的用户,并赋予其相映的权力.对付于教死用户便只可赋予其查询教死基础疑息student表的权力,教授相闭疑息视图V-teacher表的权力,查询教死结果视图V_student表的权力,以及查询西席授课调配图DTC表的权力;西席则具备查询教死基础疑息Student表的权力,查询西席授课的视图DTC表的权力,还具备建改自己基础疑息teacher表的权力,另有备案拔出教死结果疑息即建改SC表的权力;教务管造员具备建改本系十足相闭疑息的权力,包罗查询、简略、删加、建改,而系统管造员具备创造百般表、视图、触收器及保存历程并对付各个用户举止相映授权的权力.(3)使用触收器、保存历程等相闭技能.正在教务管造数据库中,基于存留西席的退戚及教死退教或者结业的情况,所以必定会有简略那些疑息的支配,为了便当起睹,所以有需要安排一个“简略西席疑息”触收器以及“简略教死疑息”触收器.共时教务管造系统的数据库必定波及到教死选课退课的问题,所以还需要安排一个闭于选课退课系统的“选课”触收器与“简略选课”触收器.“简略西席疑息”与“简略教死疑息”触收器的历程大概相共,便“简略西席疑息”触收器去道,当简略西席时如果该西席正在course表中有其授课疑息,则当简略该西席后必会引起course表没有成用,所以创造的该触收器当所要简略的西席号存留于course内中时,系统便该当给出“course内中有该西席的课程,请先简略course内中的记录!”的提示疑息;便“简略教死疑息”触收器去道,如果该教死退教时正在选课内中仍有其选课记录,则当简略该教死疑息后,正在SC内中的相闭选课记录必定成为无效,所以正在此树坐了一个推断将要退教的教死是可能简略的触收器,当退教教死正在SC内中有该教死的记录时该当给出“SC内中有该教死的选课课程,请先简略SC内中的记录!”的疑息提示.“简略西席疑息”触收器支配演示如下所示:“选课”与“简略选课”触收器的历程大概相共,便“选课”触收器去道当所选课程的课程号存留于课程内中时,系统便会将该条的选课记录增加到SC表中,并给出“选课乐成”的疑息提示,共样简略选课与此类似,当要简略的选课的课程号存留于SC表时,系统便会将该条的选课记录从SC表中简略,并给出“简略选课乐成”的疑息提示.演示真止“选课”触收器的支配截止截图如下:那样正在举止那些相闭数据的处理时便不妨通过触收器去统造,如果触收动做体真止波折,激活触收器的事变便会终止真止,触收器的目标表或者触收器大概做用的其余对付象没有爆收变更.除了创造相映触收器中,教务管造系统中还用到了数据库的保存历程,正在本数据库中尔建坐了闭于指定某个教号的“教死结果查询”的保存历程,那样教死只需要输进自己的教号便不妨查询出自己所选的科目以及其相映的结果,保存历程的编译及本去止历程如下截图所示:本去,触收器便是一种特殊的保存历程,那样创造完毕那些时常使用功能的保存历程后它们被编译后便能保存正在数据库中,它们便像函数一般不妨被反复调用,普及运止速度.四、真验截止及分解那次课程安排尔采用的是安排“教务管造系统”的数据库,通过本次自己独力的安排一个数据库,使尔更领会了安排数据库的步调,通过一步步的分解、支配、真施,表里通联本质,把课堂上所教的知识概括的使用起去,没有但是加深了对付SQL语句的明白,而且普及了对付所教知识的流利使用程度.正在真验历程中,尔相识到创造表时也需要注意一些咱们时常简单忽略的问题,比圆建表的程序问题,果为一些表格中的属性列的完备性央供是正在另一些表的属性列的前提上创造的,所以,那便决定了创造表的一定的程序问题,如果没有依照那个程序建表,则建表必定波折.其余,正在创造表的共时还得注意每个属性的数据典型,那个细节问题也是咱们时常忽略的问题,对付每个属性列皆要根据本质情况决定相映的数据典型,并定义一定的少度大小,以普及空间利用率.尔正在本次做业中的另一支获是精确了触收器中rollback语句的精确用法,当触收器所设定的支配能精确真止时便没有需要增加rollback语句,而当触收器所设定的支配没有克没有及完毕时需要用rollback语句回滚,并给出相映的提示疑息.终尾,正在本次做业中,尔改正了往日对付触收器及保存历程的认识误区,往日过得的认为触收器也是一个表格,而且不妨通过变动触收器的真质去变动手段表格的真质,本去,触收器相闭代码如下: -- 一、创造表CREATE TABLE sdept(Dno CHAR(10) PRIMARY KEY,Dname CHAR(20) UNIQUE,Dphone CHAR(20),);-- 建坐西席表create table teacher(Tno CHAR(10) PRIMARY KEY,Tname CHAR(20) not null,Salary char(10),Tel CHAR(20),Email char(20),Dno CHAR(10) UNIQUE,FOREIGN KEY (Dno) REFERENCES Sdept(Dno) );-- 建坐班级表CREATE TABLE class(Class CHAR(10) PRIMARY KEY,Ccredit BIGINT,Tno CHAR(10),Dno CHAR(10),FOREIGN KEY (Tno) REFERENCES Teacher(Tno) ON UPDATE CASCADE,FOREIGN KEY (Dno) REFERENCES Sdept(Dno) );-- 建坐教死表CREATE TABLE student(Sno CHAR(10) PRIMARY KEY,Sname CHAR(20) NOT NULL,Sage SMALLINT,Dno CHAR(10),Class CHAR(10),FOREIGN KEY (Class) REFERENCES Class(Class));-- 建坐课程表CREATE TABLE course(Cno CHAR(10) PRIMARY KEY,Cname CHAR(20) UNIQUE,Credit SMALLINT,Tno CHAR(10),Cnum CHAR(10),FOREIGN KEY (Tno) REFERENCES Teacher(Tno)ON UPDATE CASCADE,);-- 建坐选课表CREATE TABLE SC(Sno CHAR(10) ,Cno CHAR(10),Grade SMALLINT CHECK(Grade>=0 AND Grade<=100), Daigrade SMALLINT CHECK(Daigrade>=0 AND Daigrade<=100),Midbrade SMALLINT CHECK(Midbrade>=0 AND Midbrade<=100),Lasgrade SMALLINT CHECK(Lasgrade>=0 AND Lasgrade<=100),Fingrade SMALLINT CHECK(Fingrade>=0 AND Fingrade<=100), PRIMARY KEY (Sno, Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno)ON UPDATE CASCADE,FOREIGN KEY (Cno) REFERENCES Course(Cno) ON DELETE CASCADEON UPDATE CASCADE,);--二、创造视图--西席授课的调配视图create view DTCasselect sdept.Dno ,Dname,Tname,Cnamefrom sdept,teacher,coursewhere sdept.Dno=teacher.Dno and--教死的教号、结果等疑息查询的视图create view V_studentasselect student.Sno,Sname,cname,Credit,gradefrom student,SC,coursewhere student.Sno=SC.Sno ando=o--西席基础疑息查询的视图create view V_teacherasselect Tname,Dname,Telfrom teacher,sdeptwhere teacher.Dno=sdept.Dno--三、创造索引--正在西席表中系代号列上建坐索引create unique index teadnoon teacher(Dno);create unique index stusnameon student(sname);--四、创造用户并对付用户的权力搞相映树坐--创造教死用户create login u1with password='111'use 教务管造系统create user 教死for login u1--对付教死用户举止授权grant selecton studentto 教死grant selecton V_studentto 教死grant selecton DTCto 教死grant selecton V_teacherto 教死--创造西席用户create login u2with password='111'use 教务管造系统create user 西席for login u2--对付西席用户举止授权on studentto 西席grant selecton DTCto 西席grant select,updateon teacherto 西席grantselect,insert,update(grade,daigrade,midbrade,lasgrade,fingrade) on SCto 西席--创造教务管造员用户create login u3with password='111'use 教务管造系统create user 教务处for login u3--对付教务管造员用户举止授权grant select,update,insert,deleteon teacherto 教务处grant select,update,insert,deleteon studentto 教务处grant select,update,insert,deleteon sdeptto 教务处grant select,update,insert,deleteto 教务处grant select,update,insert,deleteon courseto 教务处--五、创造触收器--简略西席疑息触收器create trigger 简略西席疑息on teacherfor deleteasif((select tno from deleted) in (select tno from course))beginprint'course内中有该西席的课程,请先简略course内中的记录!'rollbackend--演示简略西席疑息触收器的支配deletefrom teacherwhere tno='04004'--简略教死疑息触收器create trigger 简略教死疑息on studentfor deleteasif((select sno from deleted)in (select sno from sc))beginprint'SC内中有该教死的选课课程,请先简略SC内中的记录!'end--演示简略教死疑息触收器的支配deletefrom studentwhere sno='020312'--选课触收器create trigger 选课on SCfor insertasif((select cno from inserted) in (select Cno from course) ) beginprint'选课乐成'end--演示真止“选课”触收器insertinto SC(sno,cno)values('020301','02')--简略选课触收器create trigger 简略选课on SCfor DELETEASif((select cno from deleted) in (select cno from sc)) beginprint'简略选课乐成'end--演示真止“简略选课”触收器deletewhere sno='010117'and cno='03'--六、保存历程--查询结果的保存历程CREATE PROCEDURE 查询结果 @sn char(10) asselect student.sno,sname,cname,Credit,gradefrom student,course,SCwhere student.sno=sc.sno ando=o andstudent.sno=@sn--查询教号为“010104”的教死结果exec 查询结果 '010104'。
教务管理系统实验报告教务管理系统实验报告引言:教务管理系统是现代教育管理的重要工具,它通过信息技术的应用,为学校提供了高效、便捷的管理方式。
本次实验旨在研究教务管理系统的设计与实现,并通过实际操作来验证其功能和效果。
一、系统需求分析在进行系统设计之前,我们首先对教务管理系统的需求进行了详细分析。
通过与教师、学生、教务处等相关人员的交流,我们确定了以下几个主要需求:1. 学生管理:包括学生信息的录入、查询和修改,学生选课、退课等功能。
2. 教师管理:包括教师信息的录入、查询和修改,教师课程的安排和调整等功能。
3. 课程管理:包括课程信息的录入、查询和修改,课程的开设和调整等功能。
4. 成绩管理:包括学生成绩的录入、查询和修改,成绩的统计和分析等功能。
5. 班级管理:包括班级信息的录入、查询和修改,班级学生的管理和调整等功能。
二、系统设计与实现基于以上需求,我们设计了一个基于Web的教务管理系统。
系统采用了B/S架构,使用Java语言开发,数据库采用MySQL。
1. 学生管理模块:学生可以通过系统进行个人信息的录入和修改,并可以查询选课情况和成绩。
教务处可以对学生信息进行管理,包括学生的添加、删除和修改等操作。
2. 教师管理模块:教师可以通过系统进行个人信息的录入和修改,并可以查询所教授课程的安排和调整情况。
教务处可以对教师信息进行管理,包括教师的添加、删除和修改等操作。
3. 课程管理模块:教务处可以通过系统进行课程信息的录入和修改,并可以查询课程的开设和调整情况。
学生和教师可以查询自己所选课程的信息。
4. 成绩管理模块:教师可以通过系统录入学生成绩,并可以查询和修改成绩。
教务处可以对成绩进行统计和分析。
5. 班级管理模块:教务处可以通过系统进行班级信息的录入和修改,并可以管理班级学生的调整和变动。
三、实验结果与分析经过系统设计与实现,我们进行了一系列实验来验证系统的功能和效果。
在实验过程中,我们发现以下几个问题:1. 系统性能问题:由于系统在实际运行中需要处理大量的数据和请求,因此在高并发情况下可能出现性能瓶颈。
华北科技学院计算机系综合性实验实验报告课程名称《数据库系统A》实验学期2011 至2012 学年第 2 学期学生所在系部计算机学院年级2010 专业班级网络B101班学生姓名学号任课教师实验成绩计算机系制《数据库系统A》课程综合性实验报告一、实验目的利用一种DBMS作为设计平台,理解并应用课程中关于数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。
同时能够正确应用各个阶段的典型工具进行表示。
二、设备与环境(1) 硬件设备:PC机一台(2) 软件环境:安装Windows操作系统,安装数据库管理系统SQL Server2008等。
三、实验内容1.需求分析首先,通过调查,教务管理系统中主要有四类用户,即学生用户,老师用户,教务管理员和系统管理员。
对应这些用户,其处理要求的主要的功能就是进行一系列的查询和各类数据的管理及维护。
其具体的处理要求如下:1)系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码,数据备份,数据还原,注销等功能。
2)教务管理:实现教务管理人员对系统的管理,包括课程安排,成绩审核,学生成绩管理,学生学籍管理等功能。
3)基本信息:实现显示学生和老师以及课程、班级、系别的基本信息(包括学生基本信息,教师基本信息,课程基本信息等)。
4)查询:包括实现学生查询,老师查询。
学生查询包括自己的基本信息,自己的课程,课表,成绩等,老师查询包括查询自己的信息,自己所带班的学生,自己的课表以及学生成绩等。
5)教师对成绩的录入以及自己信息的查询与维护。
其次,该教务管理系统中,结合以上用户种类以及其具体的处理功能要求,教务管理系统要具备以下信息要求:教务管理系统涉及的实体有:教师——工作证号、姓名、电话、工资、邮箱;学生——学号、姓名、性别、年龄、系代号等;班级——班号、最低总学分等;系——系代号、系名和系办公室电话等;课程——课序号、课名、学分、最大人数等;其中,这些实体之间的联系如下:每个学生都属于一个班,每个班都属于一个系,每个教师也都属于一个系。
每个班的班主任都由一名教师担任一名教师可以教多门课,一门课可以有几位主讲老师,但不同老师讲的同一门课其课序号是不同的(课序号是唯一的)。
一名同学可以选多门课,一门课可被若干同学选中。
一名同学选中的课若已学完,应该记录有相应成绩。
本单位学生、教师都有重名,工作证号、学号唯一。
另外,对于教务管理系统需求分析的安全性及完整性要求,首先,安全性方面,系统应对不同用户设置不同的权限,例如,学生用户不能随意更改自己的成绩信息等,从而保障数据库数据的安全。
其次,完整性方面,要求各种信息记录的完整性,关键信息记录内容不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性等。
2.概念结构设计在概念结构设计中,我采用自底向上设计概念结构的方法。
即第一步抽象数据并设计局部视图,第二步是集成局部视图,得到全局的概念结构。
该教务管理系统中的局部概念模型(E-R 图)如下: (1)、一个系内的关系模式图:(2)、选课系统的关系模式图:(3)、教师授课系统关系模型图:教班属最低总学分 班号 电话邮箱姓名 工作证号 系系办公室电话系名 系代号 属工学学号 年龄 性别 姓名 工资学课学号 年龄 性别姓名 名额学分课名 课序号 授教电话邮箱姓名工作证号课名额学分课名课序号工资系代号系代号选期中成绩平时成绩 最后成绩总评成绩期末成绩学生成绩查询视图:教师基本信息查询视图:另外,在创建表的同时还要注意有时需要创建两个表之间的级联,例如,此教务管理系统中SC表是参照学生表的学号和课程表的课号建立的,所以应该在SC表中建立其与Student表与Course表的级联;课程表又是参照教师表中的教师工作证号建立的,所以应该建立一个course表与教师teacher表的级联;班级表也是参照教师表中的教师工作证号建立的,所以也应该建立一个class表与教师teacher表的级联,这样当参照表发生改变时能同时在目标表中也发生相应改变,保证数据库中数据的正确有效性。
(2)创建用户该教务管理系统的主要用户有学生用户,老师用户,教务管理员和系统管理员等四种,所以需要创建这四种类型的用户,并授予其相应的权限。
对于学生用户就只能授予其查询学生基本信息student表的权限,老师相关信息视图V-teacher表的权限,查询学生成绩视图V_student表的权限,以及查询教师授课分配图DTC 表的权限;教师则具有查询学生基本信息Student表的权限,查询教师授课的视图DTC表的权限,还具有修改自己基本信息teacher表的权限,还有登记插入学生成绩信息即修改SC表的权限;教务管理员具有修改本系一切相关信息的权力,包括查询、删除、增添、修改,而系统管理员具有创建各种表、视图、触发器及存储过程并对各个用户进行相应授权的权力。
(3)使用触发器、存储过程等相关技术。
在教务管理数据库中,鉴于存在教师的退休及学生退学或毕业的情况,所以必然会有删除这些信息的操作,为了方便起见,所以有必要设计一个“删除教师信息”触发器以及“删除学生信息”触发器。
同时教务管理系统的数据库必然涉及到学生选课退课的问题,所以还需要设计一个关于选课退课系统的“选课”触发器与“删除选课”触发器。
“删除教师信息”与“删除学生信息”触发器的过程大致相同,就“删除教师信息”触发器来说,当删除教师时如果该教师在course表中有其授课信息,则当删除该教师后必会引起course表不可用,所以创建的该触发器当所要删除的教师号存在于course表里时,系统就应该给出“course表里有该教师的课程,请先删除course表里的记录!”的提示信息;就“删除学生信息”触发器来说,如果该学生退学时在选课表里仍有其选课记录,则当删除该学生信息后,在SC表里的相关选课记录必然成为无效,所以在此设置了一个判断即将退学的学生是否能删除的触发器,当退学学生在SC表里有该学生的记录时应该给出“SC表里有该学生的选课课程,请先删除SC表里的记录!”的信息提示。
“删除教师信息”触发器操作演示如下所示:“选课”与“删除选课”触发器的过程大致相同,就“选课”触发器来说当所选课程的课程号存在于课程表里时,系统就会将该条的选课记录添加到SC表中,并给出“选课成功”的信息提示,同样删除选课与此类似,当要删除的选课的课程号存在于SC表时,系统就会将该条的选课记录从SC表中删除,并给出“删除选课成功”的信息提示。
演示执行“选课”触发器的操作结果截图如下:这样在进行这些相关数据的处理时就可以通过触发器来控制,如果触发动作体执行失败,激活触发器的事件就会终止执行,触发器的目标表或触发器可能影响的其他对象不发生变化。
除了创建相应触发器外,教务管理系统中还用到了数据库的存储过程,在本数据库中我建立了关于指定某个学号的“学生成绩查询”的存储过程,这样学生只需要输入自己的学号就可以查询出自己所选的科目以及其相应的成绩,存储过程的编译及其实现过程如下截图所示:其实,触发器就是一种特殊的存储过程,这样创建完成这些常用功能的存储过程后它们被编译后就能保存在数据库中,它们就像函数一样可以被反复调用,提高运行速度。
四、实验结果及分析这次课程设计我选择的是设计“教务管理系统”的数据库,通过本次自己独立的设计一个数据库,使我更清楚了设计数据库的步骤,通过一步步的分析、操作、实施,理论联系实际,把课堂上所学的知识综合的运用起来,不仅加深了对SQL语句的理解,而且提高了对所学知识的熟练运用程度。
在实验过程中,我了解到创建表时也需要注意一些我们常常容易忽略的问题,例如建表的顺序问题,因为一些表格中的属性列的完整性要求是在另一些表的属性列的基础上创建的,所以,这就确定了创建表的一定的顺序问题,如果不按照这个顺序建表,则建表必然失败。
另外,在创建表的同时还得注意每个属性的数据类型,这个细节问题也是我们常常忽略的问题,对每个属性列都要根据实际情况确定相应的数据类型,并定义一定的长度大小,以提高空间利用率。
我在本次作业中的另一收获是明确了触发器中rollback语句的正确用法,当触发器所设定的操作能正确执行时就不需要添加rollback语句,而当触发器所设定的操作不能完成时需要用rollback语句回滚,并给出相应的提示信息。
最后,在本次作业中,我更正了以前对触发器及存储过程的认识误区,以前错误的认为触发器也是一个表格,并且可以通过更改触发器的内容来更改目的表格的内容,其实,触发器就是-- 一、创建表-- 建立系别表CREATE TABLE sdept(Dno CHAR(10) PRIMARY KEY,Dname CHAR(20) UNIQUE,Dphone CHAR(20),);-- 建立教师表create table teacher(Tno CHAR(10) PRIMARY KEY,Tname CHAR(20) not null,Salary char(10),Tel CHAR(20),Email char(20),Dno CHAR(10) UNIQUE,FOREIGN KEY (Dno) REFERENCES Sdept(Dno));-- 建立班级表CREATE TABLE class(Class CHAR(10) PRIMARY KEY,Ccredit BIGINT,Tno CHAR(10),Dno CHAR(10),FOREIGN KEY (Tno) REFERENCES Teacher(Tno) ON UPDATE CASCADE,FOREIGN KEY (Dno) REFERENCES Sdept(Dno));-- 建立学生表CREATE TABLE student(Sno CHAR(10) PRIMARY KEY,Sname CHAR(20) NOT NULL,Ssex CHAR(2) CHECK(Ssex IN ('男','女')),Sage SMALLINT,Dno CHAR(10),Class CHAR(10),FOREIGN KEY (Class) REFERENCES Class(Class));-- 建立课程表CREATE TABLE course(Cno CHAR(10) PRIMARY KEY,Cname CHAR(20) UNIQUE,Credit SMALLINT,Tno CHAR(10),Cnum CHAR(10),FOREIGN KEY (Tno) REFERENCES Teacher(Tno)ON UPDATE CASCADE,);-- 建立选课表CREATE TABLE SC(Sno CHAR(10) ,Cno CHAR(10),Grade SMALLINT CHECK(Grade>=0 AND Grade<=100), Daigrade SMALLINT CHECK(Daigrade>=0 AND Daigrade<=100), Midbrade SMALLINT CHECK(Midbrade>=0 AND Midbrade<=100), Lasgrade SMALLINT CHECK(Lasgrade>=0 AND Lasgrade<=100), Fingrade SMALLINT CHECK(Fingrade>=0 AND Fingrade<=100),PRIMARY KEY (Sno, Cno),FOREIGN KEY (Sno) REFERENCES Student(Sno) ON DELETE CASCADEON UPDATE CASCADE,FOREIGN KEY (Cno) REFERENCES Course(Cno) ON DELETE CASCADEON UPDATE CASCADE,);--二、创建视图--教师授课的分配视图create view DTCasselect sdept.Dno ,Dname,Tname,Cnamefrom sdept,teacher,coursewhere sdept.Dno=teacher.Dno andteacher.Tno=course.Tno--学生的学号、成绩等信息查询的视图create view V_studentasselect student.Sno,Sname,cname,Credit,gradefrom student,SC,coursewhere student.Sno=SC.Sno ando=o--教师基本信息查询的视图create view V_teacherasselect Tname,Dname,Telfrom teacher,sdeptwhere teacher.Dno=sdept.Dno--三、创建索引--在教师表中系代号列上建立索引create unique index teadnoon teacher(Dno);--在学生表姓名列上建立索引create unique index stusnameon student(sname);--四、创建用户并对用户的权限做相应设置--创建学生用户create login u1with password='111'use 教务管理系统create user 学生for login u1--对学生用户进行授权grant selecton studentto 学生grant selecton V_studentto 学生grant selecton DTCto 学生grant selecton V_teacherto 学生--创建教师用户create login u2with password='111'use 教务管理系统create user 教师for login u2--对教师用户进行授权grant selecton studentto 教师grant selecton DTCto 教师grant select,updateon teacherto 教师grant select,insert,update(grade,daigrade,midbrade,lasgrade,fingrade)on SCto 教师--创建教务管理员用户create login u3with password='111'use 教务管理系统create user 教务处for login u3--对教务管理员用户进行授权grant select,update,insert,delete on teacherto 教务处grant select,update,insert,delete on studentto 教务处grant select,update,insert,delete on sdeptto 教务处grant select,update,insert,delete on classto 教务处grant select,update,insert,delete on courseto 教务处--五、创建触发器--删除教师信息触发器create trigger 删除教师信息on teacherfor deleteasif((select tno from deleted) in (select tno from course))beginprint'course表里有该教师的课程,请先删除course表里的记录!' rollbackend--演示删除教师信息触发器的操作deletefrom teacherwhere tno='04004'--删除学生信息触发器create trigger 删除学生信息on studentfor deleteasif((select sno from deleted)in (select sno from sc))beginprint'SC表里有该学生的选课课程,请先删除SC表里的记录!' rollbackend--演示删除学生信息触发器的操作deletefrom studentwhere sno='020312'--选课触发器create trigger 选课on SCfor insertasif((select cno from inserted) in (select Cno from course) ) beginprint'选课成功'end--演示执行“选课”触发器insertinto SC(sno,cno)values('020301','02')--删除选课触发器create trigger 删除选课on SCfor DELETEASif((select cno from deleted) in (select cno from sc)) beginprint'删除选课成功'end--演示执行“删除选课”触发器deletefrom scwhere sno='010117'and cno='03'--六、存储过程--查询成绩的存储过程CREATE PROCEDURE 查询成绩@sn char(10) asselect student.sno,sname,cname,Credit,gradefrom student,course,SCwhere student.sno=sc.sno ando=o andstudent.sno=@sn--查询学号为“010104”的学生成绩exec 查询成绩'010104'。