版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成绩:____大连工业大学艺术与信息工程学院《数据库原理》课程设计报告设计题目:工资管理系统作者姓名:李曼曼学号:计091-19徐珊学号:计091-34指导教师:张玉2011年大连工业大学艺术与信息工程学院《数据库原理》课程设计报告 第4页 DATE\@"yyyy-M-d"2013-9-3《工资管理系统》系统设计文档一、设计要求本课程设计要求实现学籍管理的基本功能,主要的表有:学生基本信息、学院信息、系信息、专业信息、班级信息等,所设计的学籍管理信息系统应包含输入输出、查询、插入、删除等基本功能。此外还要保证数据库的一致性,完整性和安全性。一、需求分析(一)开发背景和意义(二)系统需求概况对于学校而言,学籍资源是学校重要的数据资源,面对如此众多的学籍信息,学籍管理的规范很重要,学籍管理系统可实现如下信息的管理:(1).学生基本信息管理学生基本信息包括:学号、姓名、年龄、性别、籍贯、所属的班级号、学生个人登陆密码等。(2).班级基本信息管理班级的基本信息包括:班级号、班级名称、班级负责人、该班所在的年级、专业号。(3).专业基本信息管理专业的基本信息包括:专业号、专业名称、专业负责人、、系号。(4).系基本信息管理系的基本信息包括:系号、系名称、系负责人、、学院号。(5).学院基本信息管理学院的基本信息包括:学院号、学院名称、学院负责人、学院地址、学院等。其中,班级号需要和实际存在的班级号对应起来,专业号需要和实际存在的专业号对应起来,系号需要和实际存在的系号对应起来,学院号需要和实际存在的学院号对应起来。此外,与本校实际情况相结合会涉及到管理权限的问题:如学生有权登陆查看自己的基本信息,除了密码以外无权修改其他信息,管理员无权查看学生的个人密码因此,在数据库设计和前台应用程序设计的时候,应对这些问题给予解决方案。二、概念结构设计(一)关系(括号内为属性,加直下划线的为主键,加波浪下划线的为外键)学生(学号、姓名、年龄、性别、籍贯、班级号、密码)班级(班级号、班级名称、班级负责人、年级、专业号)专业(专业号、专业名称、专业负责人、、系号)系(系号、系名称、系负责人、、学院号)学院(学院号、学院名称、学院负责人、学院地址、学院)(2)ER图系统的ER图如下:学生学生班级属于属于属于属于姓名年龄籍贯学号班号专业号负责人班名年级专业专业号系号负责人专业名系学院号系名负责人系号1n1nn1n1性别班号密码学院学院名学院号地址负责人(ER图要结合自己的题目画出来,这个必须用visio画出来,必须准确)三、逻辑结构设计(一)数据库存储的数据表如下(括号内为属性,加直下划线的为主键,加波浪下划线的为外键):Sudent(学号、学生姓名、学生年龄、学生性别、学生籍贯、班号、密码)Class(班号、班名、班负责人、年级、专业号)Specialty(专业号、专业名、专业负责人、专业、系号)Department(系号、系名、系负责人、系、学院号)College(学院号、学院名、学院负责人、学院地址、学院)数据表关系图如下:(二)各个数据库表(要求用三线表表示)1、管理员表(admin)用于存放管理员的姓名、密码。这些信息主要是为了管理员在登陆界面时所需要的。表1“管理员”表字段设置序号字段名称名称数据类型长度主键约束1Admin_name管理员名char10Y非空2Admin_password密码char10N非空2、用户表(parent)用于存放用户ID、幼儿ID、姓名、密码、性别、、地址。这些信息主要是为了用户登陆和显示幼儿信息时所需要的。表2“用户”表字段设置序号字段名称名称数据类型长度主键约束1Parent_id用户IDint4Y非空2Children_id幼儿IDchar10N非空3Paren_name用户姓名char10N非空4Paren_password密码char10N非空5Paren_sex性别char10N非空6Paren_tellchar10N非空7Paren_address地址char10N非空3、教师表(teacher)用于存放教师的ID、姓名、性别、身高、毕业学校、照片。这些信息主要是为了显示教师信息时所需要的。表3“教师”表字段设置序号字段名称名称数据类型长度主键约束1Teacher_idIdint4Y非空2Teacher_name姓名char10N非空3Teacher_sex性别char10N非空4Teacher_height身高char10N非空5Teacher_school毕业学校varchar50N非空6Teacher_photo照片nvarchar50N非空4、新闻表(news)用于存放新闻ID、标题、内容、时间。这些信息主要是为了发布和浏览新闻时所需要的。表4“新闻”表字段设置序号字段名称名称数据类型长度主键约束1News_idIdint4Y非空2News_title标题char10N非空3News_info内容varchar50N非空4News_date时间smalldatetime4N非空5、幼儿表(children)用于存放幼儿ID、姓名、性别、出生日期、入园日期、班级、照片。这些信息主要是为了显示幼儿信息时所需要的。表5“幼儿”表字段设置序号字段名称名称数据类型长度主键约束1Children_id幼儿Idint4Y非空2Children_name姓名char10N非空3Children_sex性别char10N非空4Children_age出生日期datetime8N非空5Children_date入园日期datetime8N非空6Children_class班级char10N非空7Children_photo照片nvarchar16N非空6、幼儿健康表(health)用于存放幼儿ID、身高、体重、饮食状况、睡眠状况、卫生状况。这些信息主要是为了显示幼儿健康状况时所需要的。表6“幼儿健康”表字段设置序号字段名称名称数据类型长度主键约束1Children_idIdint4Y非空2Health_height身高char10N非空3Health_weight体重char10N非空4Health_diet饮食char10N非空5Health_sleep睡眠char10N非空6Health_health卫生char10N非空7、留言板表(message)用于存放用户ID、幼儿ID、标题、内容、发布时间、回复内容、回复时间。这些信息主要是为了发布和回复留言板时所需要的。表7“留言板”表字段设置序号字段名称名称数据类型长度主键约束1Parent_id用户Idint4Y非空2Message_title标题char10N非空3Message_info内容varchar50N非空4Message_time发布时间datetime8N非空5Reply回复内容varchar50N非空6Reply_time回复时间datetime8N非空(三)视图为了使用户直观的查询数据,数据库中设置了以下视图:1、学生视图学生视图是通过基本表Student、Class、Specialty、Department、College连接得到的。代码为:SELECTdbo.Student.学号,dbo.Student.学生姓名,dbo.Student.学生年龄,dbo.Student.学生性别,dbo.Student.学生籍贯,dbo.College.学院名,dbo.Department.系名,dbo.Specialty.专业名,dbo.Class.班名,dbo.Class.年级,dbo.Student.密码FROMdbo.StudentINNERJOINdbo.ClassONdbo.Student.班号=dbo.Class.班号INNERJOINdbo.SpecialtyONdbo.Class.专业号=dbo.Specialty.专业号INNERJOINdbo.DepartmentONdbo.Specialty.系号=dbo.Department.系号INNERJOIN2、班级视图班级视图是通过基本表Class、Specialty、Department、College连接得到的。代码为:SELECTdbo.Class.班号,dbo.Class.班名,dbo.Class.年级,dbo.Class.班负责人,dbo.College.学院名,dbo.Department.系名,dbo.Specialty.专业名FROMdbo.ClassINNERJOINdbo.SpecialtyONdbo.Class.专业号=dbo.Specialty.专业号INNERJOINdbo.DepartmentONdbo.Specialty.系号=dbo.Department.系号INNERJOINdbo.CollegeONdbo.Department.学院号=dbo.College.学院号WHERE(dbo.Class.班号<>0)3、专业视图专业视图是通过基本表Specialty、Department、College连接得到的。代码为:SELECTdbo.Specialty.专业号,dbo.Specialty.专业名,dbo.Specialty.专业负责人,dbo.Specialty.专业,dbo.College.学院名,dbo.Department.系名FROMdbo.SpecialtyINNERJOINdbo.DepartmentONdbo.Specialty.系号=dbo.Department.系号INNERJOINdbo.CollegeONdbo.Department.学院号=dbo.College.学院号WHERE(dbo.Specialty.专业号<>0)4、系视图系视图是通过基本表Department、College连接得到的。代码为:SELECTdbo.Department.系号,dbo.Department.系名,dbo.Department.系负责人,dbo.Department.系,dbo.College.学院名FROMdbo.DepartmentINNERJOINdbo.CollegeONdbo.Department.学院号=dbo.College.学院号WHERE(dbo.Department.系号<>0)5、管理员视图鉴于管理员不能查看学生密码这一实际情况,在管理员登陆时,应不显示“密码”这一列,代码为:SELECTdbo.Student.学号,dbo.Student.学生姓名,dbo.Student.学生年龄,dbo.Student.学生性别,dbo.Student.学生籍贯,dbo.College.学院名,dbo.Department.系名,dbo.Specialty.专业名,dbo.Class.班名,dbo.Class.年级FROMdbo.StudentINNERJOINdbo.ClassONdbo.Student.班号=dbo.Class.班号INNERJOINdbo.SpecialtyONdbo.Class.专业号=dbo.Specialty.专业号INNERJOINdbo.DepartmentONdbo.Specialty.系号=dbo.Department.系号INNERJOINdbo.CollegeONdbo.Department.学院号=dbo.College.学院号四、物理结构设计与实现(一)开发方案的选择作为数据库课程设计,本系统分为两个部分:后台数据库和前台程序。考虑到基于SQL语言的数据库的先进性和安全性,并结合实用性,我选择了MicrosoftSQLServer2021作为后台数据库。考虑到与数据库结合的实用性,我选择了java作为前台程序的开发平台。后台数据库存储数据表,接受前台程序的查询和更新要求,并向前台程序提供数据库服务。此外,对于数据库数据的完整性、安全性的实现,也需要后台数据库的支持。前台程序实际上是一个人与数据库的接口,或称界面。它负责接受用户的查询和更新请求,并将这些请求转化为数据库管理系统(DBMS)能识别的数据库操作语言,再接受数据库管理系统发回的操作结果显示在界面上。在实现数据库数据的完整性和安全性上,前台程序提供了功能上的支持。(二)具体物理实现数据库物理结构设计(建库、建表、索引、视图、触发器、存储过程、事务);初始数据录入。1、建库createdatabaseSelectCourseon(name=selectcourse,filename='D:\SelectCourse\selectcourse.mdf')
2、建表(1)、用户表(用户名,用户密码)useSelectCoursecreatetableAdmins(
Namevarchar(10)notnullprimarykey,
Passwordsvarchar(8)notnull)
insertintoAdminsvalues('abc','123')insertAdminsvalues('bcd','123')insertAdminsvalues('vnd','128')insertAdminsvalues('khd','129')insertAdminsvalues('qwerty','125')
insertintoAdminsvalues('dfg','123')insertAdminsvalues('fds','123')insertAdminsvalues('gdg','128')insertAdminsvalues('gde','129')insertAdminsvalues('qwe','125')select*fromAdmins(2)、课程类别表(课程类别号,课程类别名称)useSelectCoursecreatetableCouCateTb(CouCateIdvarchar(6)notnullprimarykey,CouCatenvarchar(20)notnull)
insertintoCouCateTbvalues('101','计算机')insertCouCateTbvalues('102','管理类')insertCouCateTbvalues('103','化工类')insertCouCateTbvalues('104','机械类')insertCouCateTbvalues('105','艺术类')
select*fromCouCateTb
(3)、系别表(系别号,系别名称)useSelectCoursecreatetableDeptTb(DeptIdvarchar(2)notnullprimarykey,DeptNamenvarchar(20)notnull)
insertintoDeptTbvalues('JS','计算机系')insertDeptTbvalues('GL','管理系')insertDeptTbvalues('HG','化工系')insertDeptTbvalues('JC','机车系')insertDeptTbvalues('YS','艺术系')
select*fromDeptTb
(4)、学生表(学号,姓名,性别,籍贯,系别号,专业)useSelectCoursecreatetableStudentTb(StudentIdvarchar(8)notnullprimarykey,StudentNamevarchar(10)notnull,Sexchar(2)notnull,StuHomevarchar(30)notnull,DeptIdvarchar(2)notnull,constraintDeptId_StudentTbforeignkey(DeptId)referencesDeptTb(DeptId),majorvarchar(20)notnull)
insertStudentTbvalues('01080301','杨杨','男','广东广州','JS','软件测试','优秀')insertStudentTbvalues('01080302','李鹏','男','广东深圳','JS','软件测试','良好')insertStudentTbvalues('01080303','王海','男','广东珠海','JS','软件测试','优秀')insertStudentTbvalues('01080304','朱红','女','天津','JS','软件测试','良好')insertStudentTbvalues('01080305','李一','男','广东深圳','JS','软件测试','优秀')insertStudentTbvalues('01080306','王二','男','广东珠海','JS','软件测试','良好')insertStudentTbvalues('01080307','杨三','男','广东广州','JS','软件测试','良好')insertStudentTbvalues('01080308','李四','女','广东深圳','JS','软件测试','优秀')insertStudentTbvalues('01080309','王五','女','广东珠海','JS','软件测试','良好')insertStudentTbvalues('01080310','王六','女','广东珠海','JS','软件测试','中等')insertStudentTbvalues('01080311','杨二','男','广东广州','JS','软件测试','优秀')insertStudentTbvalues('01080312','李玲','女','广东深圳','JS','软件测试','中等')insertStudentTbvalues('01080313','王价','男','广东揭阳','JS','软件测试','优秀')insertStudentTbvalues('01080314','朱三','女','广东清远','JS','软件测试','中等')insertStudentTbvalues('01080315','李明','男','广东深圳','JS','软件测试','优秀')
insertintoStudentTbvalues('02080101','丁香','女','广东清远','GL','会计学','中等')insertintoStudentTbvalues('02080102','赵县','男','上海浦东','GL','会计学','优秀')insertintoStudentTbvalues('02080103','李静','女','广东揭阳','GL','会计学','中等')insertintoStudentTbvalues('02080104','王同同','男','上海','GL','会计学','优秀')insertintoStudentTbvalues('02080105','李茯苓','女','内蒙古','GL','会计学','中等')insertintoStudentTbvalues('02080106','张大','男','新疆','GL','会计学','中等')insertintoStudentTbvalues('02080107','陈明','女','广东清远','GL','会计学','良好')insertintoStudentTbvalues('02080108','林子','男','上海浦东','GL','会计学','良好')insertintoStudentTbvalues('02080109','何小敏','女','广东揭阳','GL','会计学','良好')insertintoStudentTbvalues('02080110','曾家国','男','上海','GL','会计学','中等')insertintoStudentTbvalues('02080111','李小龙','男','内蒙古','GL','会计学','优秀')insertintoStudentTbvalues('02080112','张三星','男','新疆','GL','会计学','中等')insertintoStudentTbvalues('02080113','任东东','男','上海','GL','会计学','优秀')insertintoStudentTbvalues('02080114','刘宁','女','内蒙古','GL','会计学','中等')insertintoStudentTbvalues('02080115','王强强','男','新疆','GL','会计学','中等')
select*fromStudentTb
(5)、教师表(教师编码,教师名字,教师职称,系别号)useSelectCoursecreatetableTeacherTb(TeacherIdchar(6)notnullprimarykey,TeaNamechar(10)notnull,TeaTitlechar(10)notnull,DeptIdvarchar(2)notnull,constraintDeptId_TeacherTbforeignkey(DeptId)referencesDeptTb(DeptId))
insertTeacherTbvalues('JS1001','林天','教授','JS')insertTeacherTbvalues('JS1002','刘海','副教授','JS')
insertintoTeacherTbvalues('GL1003','李立','教授','GL')insertintoTeacherTbvalues('GL1004','何敏','副教授','GL')
insertTeacherTbvalues('HG1005','张吕一','讲师','HG')insertTeacherTbvalues('HG1006','吕虹','副教授','HG')
insertTeacherTbvalues('JC1007','王山','副教授','JC')insertTeacherTbvalues('JC1008','高义义','讲师','JC')
insertTeacherTbvalues('YS1009','肖妮儿','讲师','YS')insertTeacherTbvalues('YS1010','李婷','教授','YS')select*fromTeacherTb
(6)、课程表(课程号,课程名称,课程类别号,课程总学分,任课教师编码)useSelectCoursecreatetableCourseTb(CouIdchar(4)notnullprimarykey,CouNamevarchar(10)notnull,CouCateIdvarchar(6)notnull,constraintCouCateId_CourseTbforeignkey(CouCateId)referencesCouCateTb(CouCateId),Creditsintnotnull,TeacherIdchar(6)notnull,constraintTeacherId_CourseTbforeignkey(TeacherId)referencesTeacherTb(TeacherId))
insertintoCourseTbvalues('J01','计算机基础','101','4','JS1001')
insertintoCourseTbvalues('J02','计算机应用','101','3','JS1002')
insertintoCourseTbvalues('J03','网页设计','101','4','JS1001')
insertintoCourseTbvalues('J04','计算机工程','101','3','JS1002')
insertintoCourseTbvalues('J05','C语言','101','4','JS1001')
insertintoCourseTbvalues('J06','JAVA语言','101','3','JS1002')
insertCourseTbvalues('G03','市场营销','102','3','GL1003')insertCourseTbvalues('G04','会计学','102','3','GL1004')insertCourseTbvalues('G05','网络营销','102','4','GL1003')insertCourseTbvalues('G06','财务管理学','102','2','GL1004')insertCourseTbvalues('G01','会计电算化','102','3','GL1003')insertCourseTbvalues('G02','会计基础','102','3','GL1004')
insertCourseTbvalues('H05','化工与材料','103','3','HG1005')insertCourseTbvalues('H06','化工实验','103','2','HG1006')insertCourseTbvalues('C07','车辆工程','104','1','JC1007')insertCourseTbvalues('C08','自动化','104','3','JC1008')insertCourseTbvalues('Y09','现代艺术','105','1','YS1009')insertCourseTbvalues('Y10','审美艺术','105','2','YS1010')
select*fromCourseTb
(7)、选课表(学号,课程号,课程名称,教师编号,教师名字,课程是否已选,是否已考试)useSelectCoursecreatetableSelectCourseTb(StudentIdvarchar(8)notnull,
CouIdchar(4)notnull,constraintCouId_SelectCourseTbforeignkey(CouId)referencesCourseTb(CouId),CouNamevarchar(10)notnull,TeacherIdchar(6)notnull,TeaNamechar(10)notnull,SelectYesOrNOchar(2)notnull,TestYesOrNOchar(2)notnull,Gradeintnull,constraintSprimarykey(StudentId,CouId,TeacherId))insertintoSelectCourseTbvalues('01080301','J01','计算机基础','JS1001','林天','是','否',null)insertintoSelectCourseTbvalues('01080301','J02','计算机应用','JS1002','刘海','是','否',null)insertSelectCourseTbvalues('01080301','J03','网页设计','JS1001','林天','是','是',null)insertintoSelectCourseTbvalues('01080301','J04','计算机工程','JS1002','刘海','是','是',95)insertSelectCourseTbvalues('01080301','J05','C语言','JS1001','林天','是','是',80)insertintoSelectCourseTbvalues('01080301','J06','JAVA语言','JS1001','林天','是','是',85)
insertSelectCourseTbvalues('01080302','J01','计算机基础','JS1001','林天','是','否',null)insertintoSelectCourseTbvalues('01080302','J02','计算机应用','JS1002','刘海','是','是',null)insertSelectCourseTbvalues('01080302','J03','网页设计','JS1001','林天','是','是',90)insertintoSelectCourseTbvalues('01080302','J04','计算机工程','JS1002','刘海','是','是',98)insertSelectCourseTbvalues('01080302','J05','C语言','JS1001','林天','是','是',92)insertintoSelectCourseTbvalues('01080302','J06','JAVA语言','JS1001','林天','否','否',null)
insertSelectCourseTb(StudentId,CouId,CouName,TeacherId,TeaName,SelectYesOrNO,TestYesOrNO)values('01080303','J01','计算机基础','JS1001','林天','是','是')
insertSelectCourseTbvalues('02080101','G03','市场营销','GL1003','李立','是','是',null)insertintoSelectCourseTbvalues('02080101','G04','会计学','GL1004','何敏','是','是',null)insertSelectCourseTbvalues('02080101','G05','网络营销','GL1003','李立','是','是',null)insertintoSelectCourseTbvalues('02080101','G06','财务管理学','GL1004','何敏','是','是',88)insertSelectCourseTbvalues('02080101','G01','会计电算化','GL1003','李立','是','是',92)insertintoSelectCourseTbvalues('02080101','G02','会计基础','GL1004','何敏','是','是',80)
insertSelectCourseTbvalues('02080102','G03','市场营销','GL1003','李立','是','否',null)insertintoSelectCourseTbvalues('02080102','G04','会计学','GL1004','何敏','是','是',88)insertSelectCourseTbvalues('02080102','G05','网络营销','GL1003','李立','是','是',75)insertintoSelectCourseTbvalues('02080102','G06','财务管理学','GL1004','何敏','是','是',90)insertSelectCourseTbvalues('02080102','G01','会计电算化','GL1003','李立','是','是',87)insertintoSelectCourseTbvalues('02080102','G02','会计基础','GL1004','何敏','否','否',null)
insertintoSelectCourseTbvalues('01080304','J01','计算机基础','JS1001','林天','是','是',null)insertintoSelectCourseTbvalues('01080305','J01','计算机基础','JS1001','林天','是','是',78)insertintoSelectCourseTbvalues('01080306','J01','计算机基础','JS1001','林天','是','是',85)insertintoSelectCourseTbvalues('01080307','J01','计算机基础','JS1001','林天','是','是',89)insertintoSelectCourseTbvalues('01080308','J01','计算机基础','JS1001','林天','是','是',62)insertintoSelectCourseTbvalues('01080309','J01','计算机基础','JS1001','林天','是','是',61)insertintoSelectCourseTbvalues('01080310','J01','计算机基础','JS1001','林天','是','是',82)insertintoSelectCourseTbvalues('01080311','J01','计算机基础','JS1001','林天','是','是',89)
insertintoSelectCourseTbvalues('01080312','J01','计算机基础','JS1001','林天','是','是',75)insertintoSelectCourseTbvalues('01080313','J01','计算机基础','JS1001','林天','是','是',96)insertintoSelectCourseTbvalues('01080314','J01','计算机基础','JS1001','林天','是','是',91)insertintoSelectCourseTbvalues('01080315','J01','计算机基础','JS1001','林天','是','是',71)
insertintoSelectCourseTbvalues('01080304','J02','计算机基础','JS1001','林天','是','是',null)insertintoSelectCourseTbvalues('01080305','J02','计算机基础','JS1001','林天','是','是',78)insertintoSelectCourseTbvalues('01080306','J02','计算机基础','JS1001','林天','是','是',85)insertintoSelectCourseTbvalues('01080307','J02','计算机基础','JS1001','林天','是','是',89)insertintoSelectCourseTbvalues('01080308','J02','计算机基础','JS1001','林天','是','是',88)insertintoSelectCourseTbvalues('01080309','J02','计算机基础','JS1001','林天','是','是',85)insertintoSelectCourseTbvalues('01080310','J02','计算机基础','JS1001','林天','是','是',82)insertintoSelectCourseTbvalues('01080311','J02','计算机基础','JS1001','林天','是','是',89)insertintoSelectCourseTbvalues('01080312','J02','计算机基础','JS1001','林天','是','是',85)insertintoSelectCourseTbvalues('01080313','J02','计算机基础','JS1001','林天','是','是',96)insertintoSelectCourseTbvalues('01080314','J02','计算机基础','JS1001','林天','是','是',91)insertintoSelectCourseTbvalues('01080315','J02','计算机基础','JS1001','林天','是','是',71)select*fromSelectCourseTb
(8)、授课表(编号,课程号,教师编号,教师名字,上课时间,上课地点)useSelectCoursecreatetableGivenCourse(GivenIdintnotnullprimarykey,CouIdchar(4)notnull,constraintCouId_GivenCourseforeignkey(CouId)referencesCourseTb(CouId),TeacherIdchar(6)notnull,constraintTeacherId_GivenCourseforeignkey(TeacherId)referencesTeacherTb(TeacherId),TeaNamechar(10)notnull,HaveTimevarchar(30)notnull,HaveAddesschar(10)null)
insertintoGivenCoursevalues('1','J01','JS1001','林天','每周星期二(09:00-11:00)','Jb302')insertintoGivenCoursevalues('3','J02','JS1002','刘海','每周星期三(14:00-15:35)','Ja301')insertGivenCoursevalues('2','g01','GL1003','李立','每周星期一(09:00-11:00)','Jc302')insertGivenCoursevalues('4','g02','GL1004','何敏','每周星期一(09:00-11:00)','Jc302')insertintoGivenCoursevalues('5','H05','HG1005','张吕一','每周星期四(09:00-11:00)','Jb302')insertGivenCoursevalues('6','H06','HG1006','吕虹','每周星期四(08:00-09:35)','Ja105')insertintoGivenCoursevalues('7','C07','JC1007','王山','每周星期五(14:00-15:35)','Ja301')insertGivenCoursevalues('8','C08','JC1008','高义义','每周星期一(09:00-11:00)','JD302')values('9','Y07','YS1009','肖妮儿','每周星期三(14:00-15:35)','JD301')insertGivenCoursevalues('10','Y08','YS1010','李婷','每周星期二(09:00-11:00)','JD302')
相关操作要求的实现1、为每个实体表和关系表创建合适的索引(聚簇索引、复合索引)、主码、外码;
createnonclusteredindexPK1onStudentTb(StudentId);createuniquenonclusteredindexCourseTbonCourseTb(Credits);createnonclusteredindexSelectCourseTbonSelectCourseTb(StudentId,CouId)
2、创建课程类别取值范围为计算机类、管理类、机械类、化工类的规则,并与相应的列绑定
;
createruleCouCateas@CouCatein('管理类','经济类','电子类','计算机类','化工类','艺术类')goexecsp_bindrule'CouCate','CouCateTb.CouCate'go
3、在成绩实体中创建成绩默认值为的默认,并与相应的列绑定;useSelectCoursealtertableSelectCourseTbADDCONSTRAINTpk_GradesDEFAULT(60)FORGrade
insertSelectCourseTb(StudentId,CouId,CouName,TeacherId,TeaName,SelectYesOrNO,TestYesOrNO)values('01080303','J01','计算机基础','JS1001','林天','是','是')
4、创建一个可以通过课程类别和任课教师进行查询课程的存储过程;
useSelectCoursegocreateprocproCourse@课程类别char(20),@任课教师char(10)asselectCouIdas课程号,CouNameas课程名称,CouCateIdas课程类别号,Creditsas课程总学分,TeacherIdas教师编号fromCourseTbwhereCouCateId=@课程类别andTeacherId=@任课教师
useSelectCoursegoEXECUTE
proCourse
@课程类别='101',@任课教师='JS1001'
useSelectCoursegoEXECUTE
proCourse
@课程类别='101',@任课教师='JS1002'
5、通过触发器定义已选课未考试的学生不能从学生实体中删除;useSelectCoursegocreatetriggerSelect_studentTreonSelectCourseTbAFTER
deleteasbegindeclare@StudentIdCHAR(8)declare@SelectYesOrNOchar(2)declare@TestYesOrNOchar(2)Select@StudentId=StudentId,@SelectYesOrNO=SelectYesOrNO,@TestYesOrNO=TestYesOrNOfromDELETEDif
notexists(selectSelectYesOrNO,TestYesOrNOfromSelectCourseTbwhere
SelectYesOrNO='是'andSelectYesOrNO=@SelectYesOrNOand
TestYesOrNO=@TestYesOrNOandTestYesOrNO='否')deleteStudentTbwhereStudentId=@StudentIdprint'已选课未考试的学生不能从学生实体中删除!'enddeletefromSelectCourseTbwhere
StudentId='01080301'andSelectYesOrNO='是'andTestYesOrNO='否'go6、通过触发器定义平均成绩低于分的学生不能评为优秀学生;
useSelectCoursegoifexists(selectnamefromsysobjects
wherename='student_tri'andtype='TR')droptriggerstudent_trigocreatetriggerstudent_trionstudentTbinsteadofupdateasbegindeclare@studentidchar(8)declare@tint
select@studentid=studentIdfrominsertedselect@t=avg(Grade)fromSelectCourseTbwherestudentId=@studentidgroupbystudentId
if@t<90print'平均成绩低于分的学生不能评为优秀学生!'endgoupdatestudentTbset
ExcelentYesOrNO='优秀'wherestudentid='01080301'
7、建立包括选课学生的学号,姓名,系别,所选课程号,课程名,和成绩的视图;createview选课学生的视图asselectS.StudentId,S.StudentName,S.DeptId,CouId,CouName,GradefromStudentTbSjoinSelectCourseTbSEonS.StudentId=SE.StudentIdgoSELECT*FROM选课学生的视图
8、使用事务,保证数据一致性。
useSelectCoursegobegintrantran_inst
insertintoAdmins(Name,Passwords)
values('ab5','153')
savetranint_poitinsertAdmins(Name,Passwords)values('bc3','143')goinsertAdmins(Name)values('b443')goif@@ERROR<>0
rollbacktranint_poit
go
committrantran_inst
go
9、统计查询(1)
在选课关系中,统计出选修课程超过4门以上的学生信息。
select*fromStudentTb
whereStudentIdin(selectStudentIdfrom
SelectCourseTb
groupbyStudentIdhavingcount(*)>4)
(2)
检索出成绩优秀的、性别为女的学生信息。
select*fromStudentTbwhereSex='女'andStudentId
in(selectStudentIdfromSelectCourseTbwhereGrade>=80)
(3)
统计出平均分在分以上的学生的信息,并将结果按平均分升序排列。selectStudentId,AVG(Grade)as平均分into#学生平均分表fromSelectCourseTbgroupbyStudentId
selectStudentTb.*,平均分fromStudentTb,#学生平均分表whereStudentTb.StudentId=#学生平均分表.StudentIdand平均分>80orderby平均分
(4)
统计出至少有名学生选修的课程的平均分,统计项包含课程编号和平均分。
selectCourseTb.CouId,avg(allGrade)平均分
fromStudentTb,CourseTb,SelectCourseTb
whe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届北京市海淀区首都师大附中初三下学期语文试题周测题三含解析
- 浙江省金华市金东区重点达标名校2026年初三年级模拟考试(一)语文试题含解析
- 标准化运营管理制度建设模板全面兼容
- 特色自然景观维护承诺函3篇
- 乡村振兴项目质量保障承诺书4篇范文
- 2026年广东省韶关市名校初三下学期第二次阶段性反馈英语试题含解析
- 供应商资质升级申请确认函(6篇范文)
- 信息资料完备与可靠公开承诺书(7篇)
- 绿色农业智能供应链优化方案
- 企业财务核算标准流程指南
- 醛-亚胺-壳聚糖水凝胶的构筑及性能研究进展
- 无人机行业信息安全培训
- 管理会计学 第10版 课件 第4章 经营预测
- HACCP计划年度评审报告
- 2023年华南师范大学教师招聘考试历年真题库
- 长春版小学一年级语文上册写字表虚宫格写法教学提纲教学课件
- 2023年新改版教科版五年级下册科学全册练习题(一课一练)
- 耳尖放血课件完整版
- GB/T 3292.1-2008纺织品纱线条干不匀试验方法第1部分:电容法
- GB/T 16177-2007公共航空运输服务质量
- GB/T 12149-2017工业循环冷却水和锅炉用水中硅的测定
评论
0/150
提交评论