版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、& rf x 4 ft数据库原理与应用实验指导与报告2010 / 2011学年第2学期姓 名:季亚学 号:090709118班 级:09数媒(1)班指导教师:周番计算机科学与工程学院2011目录实验八数据库设计.1一、 概要设计.11.1目的和意义.11.2内容和要求.1二、 需求分析.22.1背景.22.2概要分析.22.3开发技术.22.4系统主要功能 .3三、E-R图.43.1概念设计.43.2 E-R图.4四、 逻辑结构.64.1逻辑转换.64.2细化表结构.6五、 数据库实施.85.1创建表.95.2创建必要视图.105.3创建必要触发器.115.4创建必要存储过程 .13六
2、、 总结.14参考文献.161实验八数据库设计一、 概要设计1.1目的和意义随着无纸化办公的普遍实现,信息的自动处理以及网络式的信息交互方式已 经被人们广泛应用。 让计算机来管理学生的信息是现在各个高校都在积极进行的 工作之一,也是高校教学管理工作的重要内容之一。网上选课与传统的选课方式 相比更加节约资源,增加了学生选课自主权。学生选课系统作为一种现代化的教学技术, 越来越受到人们的重视,是一个 学校不可或缺的部分,学生选课系统就是为了管理好选课信息而设计的。学生选 课系统的将使选课管理工作规范化、系统化、程序化,避免选课管理的随意性, 提高信息处理的速度和准确性,能够准确、及时、 有效的查询
3、和修改学生选课情 况。与传统的选课方式相比,网上选课系统利用局域网为学生选课带来了极大的 便捷。学生在公共机房,或者宿舍的个人电脑上便可以通过校园网络来选课。在 选课期间内,学生能够使用选课系统灵活的修改自己的选课情况,大大提高了学校选课工作的效率。教务处的教师则可以通过选课系统的管理员子系统来管理学 生的选课情况,使得学生选课工作达到系统化和自动化, 大大提高了学校的工作 效率,为广大师生及相关人员节省了极多的时间。数据库对于一个应用系统的意义是相当重要的,一个设计良好的数据库系统 一方面,能够给开发者带来便捷,更轻松的进行系统设计与编码;另一方面,对 于系统的后期维护也非常重要,一个良好的
4、数据库系统能够保证系统的可扩充 性,以及系统的移植性等问题。1.2内容和要求本实验将设计出一个高校网上选课数据库系统,其要求简要如下:(1)系统用户由三类组成:教师、学生和管理员(2)管理员负责的主要功能:21用户管理(老师、学生及管理员的增、删、改);2课程管理(添加、删除和修改);3选课管理(实现选课功能开放和禁止、老师成绩输入开放和禁止)(3)学生通过登录,可以查询课程的基本信息、实现选课、退课和成绩查询; 老师通过登录,可以查看选课学生的基本信息,可以输入成绩。二、需求分析全校性选修课开设的目的在于扩大学生的知识面、加强学生素质教育、培养复合型高级人才,具有不可替代的重要性。随着教育改
5、革的不断深入和素质教育 的加强,学分制的实施,选修课在一个学生的培养计划中占的比重将越来越大。网上选课系统的出现使同学们能够更加自主、 便捷、准确的进行选课。但是, 由于一般高校中的学生都比较多,因此带来了诸多如信息管理等问题,鉴于需要 将学生信息、选课信息等信息数字化以便于管理维护,我们便想到了利用数据库能够比较良好地解决此类问题,由此下面我将设计出一个高校选课系统以供参 考。2.2概要分析根据1.2节中所描述的系统分析要求,我们的高校选课系统将包含学生、教 帅、管理员等实体,学生可以在规定的时间内选课、退选和成绩查询等操作;教 师可以查看学生的相关信息,录入学生成绩等操作;管理员可以添加管
6、理员,管理教师、学生等信息。2.3开发技术开发工具:Microsoft SQL Server 2000开发语言:SQL开发技术:数据库开发技术图2-1系统功能模块3面向对象:需求者SQL Server 2000是Microsoft公司推出的SQL Server数据库管理系统,该 版本继承了SQL Server 7.0版本的优点,同时乂比它增加了许多更先进的功能。 具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows98的膝上型电脑到运行Microsoft Windows 2000的大型多处理器的服 务器等多种平台使用。本实验中最终将使用Microso
7、ft SQL Server 2000数据库管理系统将我们设计的数据库实现。2.4系统主要功能实验选课系统分为教师,学生及系统管理员三类用户,学生的功能包括选课、 退选、查询选课信息等,教师的功能包括学生成绩录入,查询实验信息等。管理 员的功能包括新建教师、学生账户,添加课程信息,其系统功能模块如图2-1 :4三、E-R图本章节主要包含概念设计、E-R图,以及如何将E-R图转换为实际的物理模 型等内容。3.1概念设计在我们的数据库系统中共有6个实体:学生、教师、管理员、专业、院系、课程。(1)学生的届性:学号、姓名、性别、生日、密码(2)教师的届性:工号、姓名、性别、生日、密码、职称(3)管理员
8、的届性:工号、姓名、性别、生日、密码、权限标志(4)专业的届性:专业号码、专业名、辅导员、联系方式、专业介绍(5)院系的届性:系号码、系名称、系主任、联系方式、系介绍(6)课程的届性:课程号码、学时、学分、课程介绍(7)控制设置届性:选课控制、成绩录入控制3.2 E-R图各个实体的E-R图如下所示:(匚:(姓名 性别)(生日.)(密码图3管理员(d :(姓名(性别)(生日,(密码图1学生图2教师管理员5(专业号码)(专业名辅导员)联系方式)专业介绍图4专业I系I.-k f ._L 二_.I_-二_(系号码)系名:c系主任联系方式)(系介绍_- . ,J、_-X_x X-图5系课程一一/ j 7
9、=_ _二1r1”1-s j.(课程号-(课程名 学时D (-学分课程介绍_-X_ _ _ _J*_rj/rs,_ ”_ jiX图6课程然后,将以上实体之间联系表示出来,画出数据库系统的(专业号码:、(系号码)G系名:.c系主任)联系方式)(系介绍 辅导员联系方式专业介绍1M厂心 n(3姓名管理员性别jr(密码/- /上1生日)生日成绩、-二二.M/ :/_,-姓名S 7、一. .一】二M教师;.- T 性别:M讲授密码i lLL仃生日职称姓名-).,性别.1Y管理1M课程N选课图7数据库系统E-R图E-R图,如图7所示:属于i专业6四、逻辑结构4.1逻辑转换根据3.2节中的E-R图可以将系统
10、中的概念模型转换为具体的表(即关系)结构,共分为7个关系,详细信息如下所示:学生(学号、专业号码、姓名、性别、生日、密码)教师(教师工号、系号码、姓名、性别、生日、密码、职称)管理员(管理员工号、姓名、性别、生日、密码、权限标志)专业(专业号码、系号码、专业名、辅导员、联系方式、专业介绍)院系(系号码、系名称、系主任、联系方式、系介绍)课程(课程号码、学时、学分、课程介绍)选课信息(学号、课程号码、教师工号、成绩)4.2细化表结构为方便,根据上述文字描述,用英文简写为表和列取名,确定列的数据类型 及必要的约束规则,给出如下所示数据库表的基本结构及说明:(1)学生信息表列名说明数据类型约束Stu
11、dentNum学号char(10)主码MajorNum专业号码char(10)not null ,引用tb_major的外码StudentName姓名varchar(10)Not nullStudentSex性别char(2)not null,取“男”或“女”StudentBirthday生日datetimenot nullStudentPassword密码varchar(20)not null,(2)教师信息表列名说明数据类型约束7TeacherNum教师工号char(10)主码8DeptNum院系号码char(10)not null ,引用tb_dept的外码TeacherName姓名va
12、rchar(10)not nullTeacherSex性别char(2)not null,取“男”或“女”TeacherBirthday生日datetimenot nullTeacherTitle职称varchar(20)(3)管理员信息表列名说明数据类型约束ManagerNum管理员工号char(10)主码ManagerName姓名varchar(10)not nullManagerSex性别char(2)not null,取“男”或“女”ManagerBirthday生日datetimenot null(4)专业信息表列名说明数据类型约束MajorNum专业号码char(10)主码Dept
13、Num系号码char(10)not null ,引用tb_dept的外码MajorName专业名varchar(20)not nulMajorAssistant辅导员varchar(10)not nullMajorTel联系方式varchar(15)not null(5)院系信息表列名说明数据类型约束DeptNum系号码char(10)主码DeptName系名称varchar(20)not nullDeptChairman系主任varchar(10)not nullDeptTel联系方式varchar(15)not nullDeptDesc系介绍textnot null9(6)课程信息表列名说
14、明数据类型约束CourseNum课程号码char(10)主码CourseName课程名varchar(20)not nullCourseCredit学分floatnot nullCourseClass学时smallintnot nullCourseDesc课程介绍textnot null(7)选课信息表列名说明数据类型约束StuCourseID选课编号int主码,自动递增StudentNum学号char(10)not null ,引用tb_student的外码CourseNum课程号码char(10)not null ,引用tb_course的夕卜码TeacherNum教师工号char(10)
15、not null ,引用tb_student的外码Grade成绩smallint(8)控制设置表列名说明数据类型约束IfTakeCourse选课控制char(1)not null,取“0”或“1”IfInputGrade成绩录入控制char(1)not null,取“0”或“1”备注:选课和成绩录入功能的开放和禁止,0为禁止,1为开放五、数据库实施本章节主要包含创建表、添加数据和创建必要的视图、触发器和存储过程等10内容5.1创建表考虑到各个表之间的约束条件以及外键索引等要求,在创建表的时候应当按 照一定的次序进行创建,否则会出现错误,还有一种方法是先创建各个基本表, 然后在对特定的表添加列和
16、外码约束,在本报告册中将采取第一种方法。(1)tb_dept院系信息表CREATE TABLE tb_dept(DeptNum char(10) NOT NULL PRIMARY KEY,DeptName varchar(20) NOT NULL,DeptChairman varchar(10) NOT NULL,DeptTel varchar(15) NOT NULL,DeptDesc text NOT NULL,)(2 tb_majorCREATE TABLE tb_major(MajorNum char(10) NOT NULL PRIMARY KEY,DeptNum char(10)
17、NOT NULL,MajorName varchar(20) NOT NULL,MajorAssistant varchar(10) NOT NULL,MajorTel varchar(15) NOT NULL,FOREIGN KEY (DeptNum) REFERENCES tb_dept(DeptNum)(3)tb_student学生信息表CREATE TABLE tb_student(StudentNum char(10) NOT NULL PRIMARY KEY,MajorNum char(10) NOT NULL,StudentName varchar(10) NULL,Studen
18、tSex char(2) NOT NULL,StudentBirthday datetime NOT NULL,StudentPassword varchar(20) NOT NULL,FOREIGN KEY (MajorNum) REFERENCES tb_major(MajorNum)(4)tb_teacher教师信息表CREATE TABLE tb_teacher(TeacherNum char(10) NOT NULL PRIMARY KEY,DeptNum char(10) NOT NULL,TeacherName varchar(10) NOT NULL,11TeacherSex
19、char NOT NULL,TeacherBirthday datetime NOT NULL,TeacherTitle varchar(20) NULL,FOREIGN KEY (DeptNum) REFERENCES tb_dept(DeptNum) )(5)tb_manager管理员信息表CREATE TABLE tb_manager(ManagerNum char(10) NOT NULL PRIMARY KEY,ManagerName varchar(10) NOT NULL,ManagerSex char(2) NOT NULL,ManagerBirthdate datetime
20、NOT NULL,ManagerRights int NOT NULL)(6 tb_courseCREATE TABLE tb_course(CourseNum varchar(10) NOT NULL PRIMARY KEY,CourseName varchar(20) NOT NULL,CourseCredit float NOT NULL,CourseClass smallint NOT NULL,CourseDesc text NOT NULL, )(7tb_stucourse学生选课信息表CREATE TABLE tb_stucourse(StudentNum char(10) NO
21、T NULL,CourseNum char(10) NOT NULL,TeacherNum char(10) NOT NULL,Grade smallint NULL,FOREIGN KEY (StudentNum) REFERENCES tb_student(StudentNum),FOREIGN KEY (CourseNum) REFERENCES tb_Course(CourseNum),FOREIGN KEY (TeacherNum) REFERENCES tb_teacher(TeacherNum), )(8)tb_control控制设置表CREATE TABLE tb_contro
22、l(IfTakeCourse char(1) NOT NULL check(IfTakeCourse in ( 0, 1),IfInputGrade char(1) NOT NULL check(IfInputGrade in ( 0, 1), )5.2创建必要视图(1)建立学生成绩视图vi_grade,从学生、老师、选课表中选择Grade不为空的记录,其关键代码如下所示:CREATE VIEW vi_gradeAS12SELECT tb_stucourse.StudentNum,StudentName,CourseName ,CourseCredit,TeacherName,GradeFRO
23、M tb_stucourse,tb_student,tb_course,tb_teacherwhere tb_stucourse.StudentNum=tb_student.StudentNum andtb_stucourse.TeacherNum=tb_teacher.TeacherNum andtb_stucourse.CourseNum=tb_course.CourseNum and Grade is not null(2)建立专业学生信息视图vi_major,从学生、专业表中选择学生中的专业号码与专业表中专业号码相等的记录,其关键代码如下所示:CREATE VIEW vi_majorA
24、SSELECT tb_major.MajorName,StudentNum,StudentName,StudentSex,StudentBirthdayFROM tb_major,tb_studentWHERE tb_major.MajorNum=tb_student.MajorNum5.3创建必要触发器(1)建立学生添加院系触发器tri_adddept,当该表中已存在所对应院系号码的院系时,系统给与错误提示并回滚,其关键代码如下所示:CREATE TRIGGER tri_adddept ON tb_deptFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM
25、tb_dept,insertedWHERE tb_dept.DeptNum=inserted.DeptNum)0BEGINPRINT 院系号码产生冲突,请核对后重试!ROLLBACKEND(2)建立学生添加专业触发器tb_major,当专业信息中的院系号不对或者该表中已存在所对应专业号码的专业时,系统给与错误提示并回滚,其关键代码如下所示:CREATE TRIGGER tri_addmajor ON tb_majorFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM tb_dept,insertedWHERE tb_dept.DeptNum=inserted.
26、DeptNum)=0BEGINPRINT 未找到该专业的院系信息,请添加相应院系后重试!ROLLBACK13ENDELSE IF(SELECT COUNT(*) FROM tb_major,insertedWHERE tb_major.MajorNum=inserted.MajorNum)0BEGINPRINT 院系号码产生冲突,请核对后重试!ROLLBACKEND(3)建立添加学生触发器tri_addstudent,当学生信息中的专业号不对或者系 统中已存在所对应学号的学生时,系统给与错误提示并回滚,其关键代码如下所 示:CREATE TRIGGER tri_addstudent ON tb
27、_studentFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM tb_major,insertedWHERE tb_major.MajorNum=inserted.MajorNum)=0BEGINPRINT 未找到该学生的专业信息,请添加相应专业后重试!ROLLBACKENDELSE IF(SELECT COUNT(*) FROM tb_student,insertedWHERE tb_student.StudentNum=inserted.StudentNum)0BEGINPRINT 学号产生冲突,请核对后重试!ROLLBACKEND(4)建立学生选课触
28、发器tri_takecourse,课程选课人数超过40个或者对应学 生选课门数超过5门或者当前时间不是选课时间段时,系统给与错误提示并回 滚,其关键代码如下所示:CREATE TRIGGER tri_takecourse ON tb_stucourseFOR INSERT,UPDATEASIF(SELECT COUNT(*) FROM tb_stucourse,insertedWHERE tb_stucourse.CourseNum=inserted.CourseNum)40BEGINPRINT 所对应课程选课人数不能超过40个!ROLLBACKEND14ELSE IF(SELECT COUN
29、T(*) FROM tb_student,insertedWHERE tb_student.StudentNum=inserted.StudentNum)5BEGINPRINT 对应学生的选课不能超过5门!ROLLBACKENDELSE IF(SELECT IfTakeCourse FROM tb_control)=0BEGINPRINT 当前不是选课时间段!ROLLBACKEND5.4创建必要存储过程(1)建立学生选课存储过程tri_takecourse,其作用为查询所有学生的选课记录,其关键代码如下所示:CREATE PROC proc_getcourse StudentNum char(
30、10) OUT, StudentName char(10) OUT, CourseNamevarchar(20) OUT, CourseCredit float OUT, TeacherName char(10) OUT ASSELECTStudentNum=tb_student.StudentNum ,StudentName=tb_student.StudentName ,CourseName=tb_course.CourseName ,CourseCredit=tb_course.CourseCredit ,TeacherName=tb_teacher.TeacherNameFROM tb
31、_stucourse,tb_course,tb_student,tb_teacherWHERE tb_stucourse.StudentNum=tb_student.StudentNum ANDtb_stucourse.CourseNum=tb_course.CourseNum ANDtb_stucourse.TeacherNum=tb_teacher.TeacherNum(2)建立查询教师课程存储过程proc_teachercourse其作用为查询指定教师所有课程的选课记录,其关键代码如下所示:CREATE PROC proc_teachercourse TeacherNum char(10
32、),StudentNum char(10) OUT,StudentName char(10) OUT,CourseName varchar(20) OUT,CourseCredit float OUT, TeacherName char(10) OUTASSELECTStudentNum=tb_student.StudentNum ,StudentName=tb_student.StudentName ,CourseName=tb_course.CourseName ,CourseCredit=tb_course.CourseCredit ,TeacherName=tb_teacher.TeacherName15FROM tb_stucourse,tb_course,tb_student,tb_teacherWHERE tb_stucourse.StudentNum=tb_student.StudentNum ANDtb_stucourse.Cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合伙固定分红合同范本
- 合同权利义务让与协议
- 利雅德酒店住宿协议书
- 保理合同协议文本模板
- 修车协议合同模板模板
- 农村供水工艺流程优化
- 兼职托管教师合同范本
- 会所转让委托合同范本
- 合同对数据的保密协议
- 合伙合同增资补充协议
- 2024年国家公务员考试《行测》真题卷(行政执法)答案和解析
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- 完整版全国行政区域身份证代码表(EXCEL版)TextMarkTextMark
- 仙居县国企招聘考试真题及答案
- 工业机器人系统集成(高职)PPT全套完整教学课件
- 美学原理PPT课件:技术美
- 应力腐蚀和氢脆
- GA/T 830-2021尸体解剖检验室建设规范
- 责任担当斗争精神自查问题清单
- 基于STM32的自动灌溉系统
- 《等边三角形》第1课时-示范教学课件【初中数学人教版八年级上册】
评论
0/150
提交评论