数据库教务管理系统综合试验报告_第1页
数据库教务管理系统综合试验报告_第2页
数据库教务管理系统综合试验报告_第3页
数据库教务管理系统综合试验报告_第4页
数据库教务管理系统综合试验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华北科技学院计算机系综合性实验实验报告课程名称数据库原理及应用教程实验学期 2011 至 2012学年 第 2 学期学生所在系部计算机学院年级 专业班级学生姓名 学号任课教师郭红实验成绩计算机系制华北科技学院计算机系综合性实验报告数据库原理及应用教程课程综合性实验报告开课实验室:软件开发实验室(一)2012年6月6日实验题目|教务成绩管理系统数据库设计一、实验目的利用一种DBMS作为设计平台,理解并应用课程中关丁数据库设计的相关理论,能按照数据库设计步骤完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够正确应用各个阶段的典型工具进行表示。二、设备与环境(1)硬件设

2、备:PC机一台 软件环境:安装 Windows操作系统,安装数据库管理系统 SQL Server200畴。三、实验内容1. 需求分析首先,通过调查,教务成绩管理系统中主要有四类用户,即学生用户,老师用户,教务管理员和系统管理员。对应这些用户,其处理要求的主要的功能就是进行一系列的查询和各类数据的管理及维护。其具体的处理要求如下:1)系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码,数据备份,数据还原,注销功能。2)教务管理:实现教务管理人员对系统的管理,包括课程安排,成绩审核,学生成绩管理功能。3)基本信息:实现显示学生和老师以及课程、班级、系别的基本信息。4)查询:包括实现

3、学生查询,老师查询。学生查询包括自己的基本信息,自己所修的课程,成绩,老师查询包括查询自己的信息和自己的所授的课程。5)教师对成绩的写入以及自己信息的查询与维护。其次,该教务管理系统中,结合以上用户种类以及其具体的处理功能要求,教务成绩管理系统要具备以下信息要求:教务管理系统涉及的实体有:教师一一教师号、姓名、性别、年龄、职称、系号;学生一一学号、姓名、性别、年龄、系号;授课关系一一教师号、课程号;选课关系一一学号、课程号、成绩;系- 系号、系名、电话;课程一一课程号、课程名、学分。其中,这些实体之间的联系如下:一个系有若干名学生和老师,但一名学生或一名老师只能属于一个系。一名教师可以教多门课

4、,一门课可以有几位老师讲授,但不同老师讲的同一门课其课程号是不同的,即对于授课教师或课程来说,课程号是唯一的。一名同学可以选多门课,一门课可被若干同学选中。本单位学生、教师可能有重名,所以教师号、学号才是唯一的。另外,对于教务成绩管理系统需求分析的安全性及完整性要求,首先,安全性方面, 系统应对不同用户设置不同的权限,例如,学生用户不能更改自己的成绩信息,从而保障 数据库数据的安全。其次,完整性方面,要求各种信息记录的完整性,关键信息记录内容 不能为空;各种数据间相互的联系的正确性;相同的数据在不同记录中的一致性等。2. 概念结构设计在概念结构设计中,我采用自底向上设计概念结构的方法。即第一步

5、抽象数据并设计局部视图,第二步是集成局部视图,得到全局的概念结构。该教务管理系统中的局部概念模型(E-R图)如下:(1 )、一个系内的关系模式图:(2)、选课关系与授课关系模式图:学生卞选修N(成绩课程N教师号)姓名 性别)K年龄5 职称«授课该教务管理系统中的全局概念模型为:(学号_N选修课程 N 1V教授 mA教师(学分】N-属于-1,系别教师号"性别)K年龄J职称JN1 拥有(性别(姓名)系名,(系号)(电话3. 逻辑结构设计(1)关系模式的设计与优化E-R图向关系模型的转换:a. “教师”实体对应的关系模式:教帅(教帅号,姓名,性别,年龄,职称)代码表示为: Tea

6、cher (Tno. Tname. Tsex. Tage. Prof)其中,教师号为其主码,又因为教师与系别之间是n: 1的工作关系,经过与系别关系模式的合并后,系别号Dno成为教师关系模式的外码,存在的关系依赖为Tno(Tname, Tsex,Tage, Prof,Dno),不存在对候选码的部分依赖与传递依赖,所以满足 BCNFb. “学生”实体对应的关系模式:学生(学号,姓名,性别,年龄)代码表示: Student ( Sno, Sname, Ssex, Sage)其中,学号为其候选码,又因为学生与班级之间是n: 1的属于关系,存在的关系依赖为Sno(Sname,Ssex.Sage,Dno

7、),不存在对候选码的传递依赖,所以满足BCNF.c. 系(系代号,系名,系办公室电话)代码表示:Sdept ( Dno, Dname, Dphone )系代号为候选码,存在的函数依赖为Dno (Dname, Dphone),且不存在部分依赖与传递依赖,所以满足BCNFd. “选修”联系对应的关系模式:选课(学号,课程号,成绩)代码表示:SC ( Sno, Cno,Grade.)此为m: n联系"选修"所对应的关系模式。Sno和Cno均为外码。存在的函数依赖为完全函数依赖(Sno, Cno)grade,且不存在部分依赖与传递依赖,所以满足BCNFe. “课程”实体对应的关系模

8、式:课程(课程号,课名,学时)代码表示:Course ( Cno, Cname, Credit )f. “授课”联系对应的关系模式:授课(课程号,教师号)代码表示:TC ( Tno, Cno.)此为m: n联系"授课"所对应的关系模式。Tno和Cno均为外码。(2) 设计合适的视图在将E-R图向关系模型转换后,还应根据局部应用的需求,对不同级别的用户定义不 同的视图,这样不仅可以在视图中重新定义某些属性名,使用户使用更方便,而且还可以 通过视图保证系统的安全性。在本次的教务成绩管理系统数据库中,我针对使用该数据库最频繁的学生和教师用户 建立了相关视图,其中包括对系别、教师、

9、课程的分配视图;对学生学号、成绩、等相关 信息的查询,教师基信息的查询两个视图,这样,对这些经常使用的查询,用户就可以通 过视图来查询,大大简化了用户的使用。创建的三个视图的截图如下:对魏资源管理爵华X0 cD53 席RL Server 10.0.1BD0 - e051 studfrr -_J数据库Lt 一|系螃麒费摩咨q数据库快照1= , J.虱数据库关系图系统表dbo.SC db*.dbo. studentdbo.TCdbo. teacherd+ J系统视图Hl O' d、4匕戒必+ 陞;dbt>. V_teaeher司_U同建词+ 一,可编程性tl .一L Sirvi Br

10、aktr± _j存儒tl .4安萱性+安全性.土 -J板各器对愈+复制t. _J管理+:% SQL Server 代理SqLQ&Tj2, s. . . nlent. (53)*select 才'select *T啊mePtofDneme1i李力1教授计算机2讲师信息3讲瞄计箕机4张雪自刎5张兰副眼n结果-消息SnoSnamecname口成疗de1 s1 E哉亦程序被计3302二厂愁亦鼬机处理4明3s2数存菇构4704?2敬话阵3575s3程序设计3756s3澈机处理4707$3数军结构曲es4耳3田 子心程序设计3333艘季思勤机处理i龄10s4率思数字谡辑38311

11、s5周对瞰叽处理4S34. 物理设计该数据库中每一个关系模式的主码分别为系统自动设置的索引,如学生关系模式中的 学号,教师关系模式中的教师号,系别中的系号等,同时,通过对实际操作的思考,为了 查询某系的老师的方便,我们还需要在Teacher表中建立一个"系号” Dno的索引;又因为查询操作很多都通过学生姓名查找的,所以还需要在 Student表姓名列sname上建立一个索引等,这样大大简化查询操作。5. 数据库的实现(1)创建库、表在该教务成绩管理系统中包括了学生表、教师表、选课表、系别表、授课表、课程表 六个表。在此,我以学生表为例进行说明表的创建。一个完整的表必须包括对实体完整性

12、、参照完整性、用户定义完整性的三种完整性的 定义。在学生表中,首先考虑表的实体完整性要求,在该学生表中学号被设为主码,用 PRIMARY KEY定义,且该表含有多个属性,所以学号就是表级约束条件,从而完成了学 生表的实体完整性的定义。其次,对于学生表的参照完整性,系号(Dno)是该学生表的外码,同时它还是班级系别Sdept表的主码,所以对其用FOREING KEY短语进行定义,并用 REFERENCES短语指明该外码是参照那些表的主码,从而完成对表的参照完整性的定义。最后,是表的用户定义完整性,在该学生表中,结合实际情况我们不难想到应该定义 一个姓名Sname为非空的约束条件和性别 Ssex只

13、能为"男”或"女”二者选其一的约束条 件,其中姓名的非空用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) );创建的学生表截图如下:c051.

14、grade - dbo teacherSQLQueryZ. s.xident (53 J J*百 select 士from studentpn结果心消息Sno Sname Ssex SageDno1赴亦 女 17di2s2 钱尔 男18d33s3 孙皿 玄2Dd34李思 男21d25s5 周武 男19di(2 )创建用户该教务管理系统的主要用户有学生用户,老师用户,教务管理员和系统管理员等四种,所以需要创建这四种类型的用户,并授予其相应的权限。对于学生用户就只能授予其查询学生基本信息student表的权限,老师相关信息视图V-teacher表的权限,查询学生成绩视图 V_student表的权限

15、,以及查询教师授课TC表的权限;教师则具有查询学生基本信息Student表的权限,查询教师授课 TC表的权限,还具有修改自己基本信息 teacher表的权限,还有登记插入学生成绩信息即修改SC表的权限;教务管理员具有修改本系一切相关信息的权力,包括查询、删除、增添、修改,而系 统管理员具有创建各种表、视图、触发器及存储过程并对各个用户进行相应授权的权力。下面是建立学生(u1)、教师(u2)、教务处(u3)的用户(登陆名)截图:on TC-to学生grant selecton herF孚生"二L ,创建教师用户白 create login u2W询安垒柱国二登录名.i 珊ol i cy

16、EvfiD t Fm 眼潟 ngto gi n# oli cyT sqlEx e cutionLogi n#& J5J-8F3BD92F877s tudtnt二 UT AUTHORITYSYSTEM& 51& M& u2& 113(3) 使用触发器、存储过程等相关技术。在教务成绩管理数据库中,鉴于存在教师的退休及学生退学或毕业的情况,所以必然 会有删除这些信息的操作,为了方便起见,所以有必要设计一个“删除教师信息”触发器 以及“删除学生信息”触发器。同时教务成绩管理系统的数据库必然涉及到学生选课退课 的问题,所以还需要设计一个关于选课退课系统的“选课”触

17、发器与“删除选课”触发器。“删除教师信息”与“删除学生信息”触发器的过程大致相同,就“删除教师信息”触发器来说,当删除教师时如果该教师在 TC表中有其授课信息,则当删除该教师后必会引 起TC表不可用,所以创建的该触发器当所要删除的教师号存在于TC表里时,系统就应该给出“TC表里有该教师的课程,请先删除 TC表里的记录! ”的提示信息;就“删除学生信 息”触发器来说,如果该学生退学时在选课表里仍有其选课记录,则当删除该学生信息后,所以在此设置了一个判断即将退学的学生是否能在SC表里的相关选课记录必然成为无效,删除的触发器,当退学学生在SC表里有该学生的记录时应该给出“SC表里有该学生的选课课程,

18、请先删除 SC表里的记录!”的信息提示。“删除教师信息”触发器操作演示如下所示:庄LJ列E Ei LJ约哀也8鞍理翼H- LJ堑引二统t梅息d 3 dbo.SCit J dbo.sdepl+ J dbo,student任二I dbo.TC:T J dbo.teacher, _J 图* J曲词田司9曜i Service Broker a ,_i。,j安全性2OLL-2O11L12 3VQ.G RADE - dbc.SC SQ LQu- 2。”出 mini St 怕 to r (551),F®瞬甲言息瓯瑟on teachex for deiece asif exists select f

19、rem to where tna= iaelect tno from deleted ) beginpnnt-couz表里有该教师的课程,请先删除表里的记录| - rollback end一海示的腺教师信息触发器的操作deletefZDEH teacherwhere ti1消息世蜘n瀛里有该教师的课程,清常地除”心*表里的记录! 消息非皱别项状态1,第1行 事务在袖发器中结束.批处理已中止,“选课”与“删除选课”触发器的过程大致相同,就“选课”触发器来说当所选课程的课程号存在于课程表里时,系统就会将该条的选课记录添加到 SC表中,并给出“选课成 功”的信息提示,同样删除选课与此类似,当要删除的

20、选课的课程号存在于SC表时,系统就会将该条的选课记录从 SC表中删除,并给出“删除选课成功”的信息提示。Filil 疝l+j+,一|累引.t LJ统计建 J dt?o,SC dbo.sdept Z3 dbo-student dbo.TCn dbo-teacherend一演示执行”选课“触发器into SCfno gtio1) values ( * al1 f 1 c3 1 ) 一查询选课结果S二现囹El _J同义词El Zi可蝙程性0 _J Service Broker回一(司| j I i bra pysystemffl J ReportS-erver+ jJ ReportServerTem

21、pDBB | J ScoreSystemlj学生辆管统l± ._l安全在iZ 一I展名互豪务制4结果淌息Cno Gradef rciffi 5Csisi9DE5 NULL?D57757085633383-选课触发器create trigger选课on SCfor asinsertifbeginexists( select Cno cno =( selectprint end'选课成功'fromcnocourse fromwhere inserted )演示执行“选课”触发器的操作结果截图如下:这样在进行这些相关数据的处理时就可以通过触发器来控制,如果触发动作体执行失

22、败,激活触发器的事件就会终止执行,触发器的目标表或触发器可能影响的其他对象不发 生变化。除了创建相应触发器外,教务成绩管理系统中还用到了数据库的存储过程,在本数据 库中我建立了关于指定某个学号的“学生成绩查询”的存储过程,这样学生只需要输入自 己的学号就可以查询出自己所选的科目以及其相应的成绩,存储过程的编译及其实现过程如下截图所示:网言译器以XSQLQucry? cql J0.dminiEtratDF (55)*6- |羽曷日富-一查询成%责的存储过程CREATE.杳苗1 成*寄尘碧i± .一 j票玩袁rdbo.course田列田一1鎏+ *我釜+1粟引as select stde

23、nx.sno> snajnfCreditrgradefrom sLudenufcourse,SC wheresna ±ndcourse enoc eno and scuden-t -一查询学号士仲的学生成绩L exe cS LJ统计信息.0 3 dbo,SC田 J dbonsdeptE dbo,studentE 3 dbo,TCE J dboeacher* rn结果*消息snoenamflgrade1N逖亦程序设i+390N矿斑亦微机处理4853 al瑟亦撕fi逻揖3NULL' 其实血发器就是一种特殊的存储过程,这样创建完成这些常用功能的存储过程后它们被编译后就能保存在

24、数据库中,它们就像函数一样可以被反复调用,提高运行速度。四、实验结果及分析这次实验报告我选择的是设计“教务成绩管理系统”的数据库。通过本次自己独立的设计 一个数据库,我更清楚了设计数据库的方法和步骤。通过一步步的分析、实施、操作,我将理 论联系于实际,并把课本上所学的和老师所讲的知识综合的运用起来,这样不仅使我加深了对 SQL语句的理解,而且提高了对所学知识的熟练运用程度。在实验过程中,我了解到创建表时也需要注意一些我们常常容易忽略的问题。例如:建表 中的元组顺序问题,还有一些表格中的属性列的完整性要求是在另一些表的属性列的基础上创 建的,所以,这就存在创建表是的一些的顺序问题,如果不按照这个

25、顺序建表,则建表必然会 失败。另外,在创建表的同时还得注意每个属性的数据类型,这个细节问题也是我们常常忽略的 问题,对每个属性列都要根据实际情况确定相应的数据类型,并定义一定的长度大小,以提高 空间利用率。我在本次作业中的另一收获是明确了触发器中rollback语句的正确用法,当触发器所设定的操作能正确执行时就不需要添加rollback语句,而当触发器所设定的操作不能完成时需要用rollback语句回滚,并给出相应的提示信息。这次大作业中,我也看出了我还存在的许多问题,在一些步骤中思考的不够缜密,对某些 方面也有些疏漏之处。所以,这就要求我们查询更多的信息,理论充分联系实际,多多参与在 实际数

26、据库的创建中去,在实践中积累经验,不断学习,才能提高自己在数据库方面的能力。评定项目ABCD评定项目ABCD需求分析清楚安全性设计概念结构符合需求游标或存储过程的使用逻辑结构设计操作熟练索引设计文字流畅完整性设计报告规范教 师 评 价其他:评价教师签名:年月日19-一、创建表-建立系别表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( 2

27、0) 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 C

28、HAR( 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 Grade

29、 <= 100 ),PRIMARY KEY ( Sno , Cno),);-学生的学号、成绩等信息查询的视图create view V_studentasselect student . Sno , Sname, cname , Credit , grade from student , SC, coursewhere student . Sno =SC. Sno andcourse . Cno =SC. Cno-教师基本信息查询的视图create view V_teacherasselect Tname , Prof , Dnamefrom teacher , sdeptwhere t

30、eacher . Dno =sdept . Dno-在教师表中系代号列上建立索引 create unique index teadno on teacher ( Tno , Dno);-在学生表姓名列上建立索引 create unique index stusnameon student ( Sno , sname );-创建学生用户create login u1 with password ='111 use GRADEcreate user 学生 for login u1-对学生用户进行授权grant selecton studentto 学生grant selecton V_st

31、udentto 学生grant selecton SCto 学生grant select on TC to 学生grant selecton V_teacher to 学生-创建教师用户create login u2with password ='111' use GRADE create user 教师 for login u2-对教师用户进行授权grant select on student to教师grant selecton TCto教师grant select , update on teacher to教师grant select , insert , update

32、 (grade ) on SC to教师-创建教务管理员用户create login u3with password ='111' use GRADE create user 教务处 for login u3-对教务管理员用户进行授权grant select , update , insert , deleteon teacherto教务处grant selecton studentto教务处grant selecton sdeptto教务处grant selecton courseto教务处grant selecton sdeptto教务处grant selecton courseto教务处grant selecton TCto教务处grant selecton SCto教务处,update,update,update,update,update,update,update,insert , delete,insert , delete,insert , delete,insert , delete,insert , delete,insert , delete,insert , delete-删除教师信息触发器create trigger删除教师信息on teacher

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论