学生成绩管理系统数据库设计文档 - (全)
- 格式:doc
- 大小:1.43 MB
- 文档页数:29
学生成绩管理系统数据库设计一、需求分析学生成绩管理系统是一个重要的教育管理系统,它主要用于学生的成绩管理和统计。
该系统需要具有以下功能:1. 学生信息管理:包括学生的基本信息(如姓名、性别、年龄、身份证号码等)和学籍信息(如班级、学号、入学时间等)。
2. 课程信息管理:包括课程的基本信息(如课程名称、授课教师、上课时间等)和课程成绩录入。
3. 成绩查询与统计:可以按照班级或个人查询成绩,并进行成绩统计分析。
二、概念结构设计在需求分析的基础上,我们可以根据实际情况设计出该系统的概念结构模型。
该模型包括以下实体:1. 学生(Student):包括学生的基本信息和学籍信息。
2. 课程(Course):包括课程的基本信息。
3. 教师(Teacher):包括教师的基本信息。
4. 成绩(Score):包括每个学生在每门课程中所获得的成绩。
三、逻辑结构设计在概念结构模型确定后,我们需要将其转化为逻辑结构模型。
根据实际情况,我们可以设计出以下数据库表:1. 学生表(Student):包括学生的基本信息和学籍信息,如姓名、性别、年龄、身份证号码、班级、学号、入学时间等。
2. 课程表(Course):包括课程的基本信息,如课程名称、授课教师、上课时间等。
3. 教师表(Teacher):包括教师的基本信息,如姓名、性别、年龄等。
4. 成绩表(Score):包括每个学生在每门课程中所获得的成绩,如学号、课程名称、成绩等。
四、物理结构设计在逻辑结构模型确定后,我们需要将其转化为物理结构模型。
根据实际情况,我们可以设计出以下数据库表:1. 学生表(Student):包括学生的基本信息和学籍信息,如姓名(varchar(20))、性别(char(2))、年龄(int)、身份证号码(varchar(20))、班级(varchar(20))、学号(varchar(20))、入学时间(date)等。
其中,身份证号码和学号应该设为主键。
数据库设计文档范文1.引言数据库是一个用于存储和管理数据的系统。
数据库设计文档描述了数据库的结构和功能,帮助开发人员理解和维护数据库。
本文档旨在描述一个名为“学生管理系统”的数据库设计。
2.目标和范围学生管理系统是一个用于管理学生信息的系统。
该系统需要存储和管理学生的基本信息(如姓名、学号、年龄、性别等)以及他们的成绩记录。
本文档的目标是设计一个满足系统需求的数据库结构。
3.数据库概述学生管理系统的数据库由两个主要的表组成:学生表和成绩表。
学生表用于存储学生的基本信息,成绩表用于存储学生的成绩记录。
两个表之间通过学号建立关联。
4.学生表设计学生表包含以下字段:-学号:主键,唯一标识学生-姓名:学生的姓名-年龄:学生的年龄-性别:学生的性别-班级:学生所在的班级5.成绩表设计成绩表包含以下字段:-学号:外键,关联学生表的学号字段-课程:成绩所对应的课程名称-成绩:学生在该课程中的成绩6.数据库关系设计学生表和成绩表之间的关系是一对多关系,一个学生可以有多条成绩记录,但每个成绩只能属于一个学生。
这个关系由学号字段在学生表和成绩表之间建立。
7.数据库功能设计学生管理系统需要支持以下功能:-添加学生:向学生表中插入一条学生记录-查询学生:根据学号或其他条件查询学生信息-更新学生:更新学生表中的学生记录-删除学生:根据学号删除学生表中的学生记录-添加成绩:向成绩表中插入一条成绩记录-查询成绩:根据学号或其他条件查询学生的成绩记录8.数据库安全性设计为了保证数据库的安全性,可以采取以下措施:-数据备份:定期对数据库进行备份,防止数据丢失-数据加密:对敏感数据进行加密存储-访问控制:设定合适的用户权限,限制对数据库的访问和修改9.数据库性能设计为了提高数据库的性能,可以采取以下措施:-索引设计:对常用的查询字段建立索引,提高查询速度-表分区设计:将大表分成多个小的子表,提高查询和插入性能-缓存使用:利用缓存技术缓存查询结果,减少数据库的访问次数10.总结本文档详细描述了学生管理系统的数据库设计。
学生成绩管理系统姓名:王一学号:200513理学院信息05-1班学生成绩管理系统概述学生成绩管理系统可以广泛应用于大专院校、职业学校、高中以及初中小学等。
该系统具有一些基本的学生查询、输入、修改等功能。
下图为系统的主界面系统工具部分提供了:初始化:用于清空各个数据表的数据。
密码修改:用于管理员修改密码。
退出输入编辑部分提供了:成绩输入:用于输入学生的成绩。
学生信息输入:用于添加新的学生信息。
专业信息输入:用于添加新的专业及成绩。
查询部分提供了:学生成绩查询:用于查询符合条件的学生的成绩。
专业查询:用于查询专业信息。
统计打印部分提供了:打印学生的成绩。
关于:提供本系统的信息以及作者的信息。
需求分析在学校的教学管理中老师的角色是管理员。
而学生只能查询因此系统应包含一下的功能:1.要求系统能够初始化,以便新学期输入新的学生信息,管理员权限管理,以便不同的老师能同一学期共同使用本系统。
2.要求系统提供学生的信息输入,成绩输入,专业信息输入,这是本系统能管理学生信息的基础。
3.要求系统提供学生的信息查询,专业查询功能,这是本系统的主要功能,使本系统能随时查询.4.要求系统提供打印学生成绩的功能,并能做成绩单以便学期末总结使用。
5.本系统的运行的要求,本软件的信息,便于维护软件;作者的联系信息,便于沟通。
6.系统运行时要有一个友好的系统界面,便于操作。
7.为了系统的安全以及学生信息的保密,系统进入时要核对用户名及密码。
系统配置运行稳定的数据库应用系统有一个相对最优的系统配置方案。
根据用户的实际情况以及维护水平来确定。
数据库设计在学生成绩管理系统中,首先要创建学生成绩管理系统的数据库概念模型,同时在上面的实体以及实体的关系的基础上,形成数据库中的表以及各表之间的关系。
本系统需要创建四个表系统数据表(xt)学生成绩管理系统的实体关系简图在需求分析,概念设计的基础上得到数据库的逻辑结构,创建一个数据库,包含上述三个表,首先创建一个项目保存为“学生成绩管理系统”给系统添加上述的三个表界面设计采用模块化思想可以大大提高设计的效率,减少不必要的错误。
数据库设计题目 思文学生管理系统姓 名班 级指导教师学 期2015年 12 月 21 日目录1.需求分析 ..................................... 错误!未定义书签。
1.2根据需求确定工作环境 (3)2.概念结构设计 (4)2.1 概念结构设计的原则 (4)2.2 将用户需求模块化 (4)3 数据库设计 (6)3.1根据数据信息构建表结构 (7)4. 系统功能设计 (8)5系统的测试 .................................... 错误!未定义书签。
1.1 基本需求学生信息管理系统软件,满足以下条件:(1)能完成学生的学籍注册(2)学生若不喜欢此时的专业,他们可以自动调剂专业(3)学生可以选课,并查看个人信息及日常表现情况。
(4)对学生信息、课程信息进行记录。
(5) 管理员可以对学生学籍信息的查询,添加,修改,删除;学生信息及成绩的录入,修改,删除。
修改密码等功能。
(6) 管理员拥有最高的权限。
允许添加教师信息和课程信息等。
学校需要的就是能满足以上需求的软件。
需求就是一套软件的终极目标,但并不是每一个需求都能达到的,分析人员还要根据开发环境一条条地分析这些需求。
1.1.1 该软件的主要功能(1)对学生信息的管理(2)对教师信息的管理(3)对课程信息的管理(4)对选课信息的管理(5) 对成绩的管理(6) 对学生的日常表现情况1.2 根据需求确定工作环境1.2.1 软件环境除了要安装学生管理系统外,还必须具备相应的软件环境,才能更好地运行。
(1)应采用统一的软件操作系统(win 7),这是为了更好地管理。
(2)服务器上安装数据库系统(SQL Server 2005),从而实现信息资源安全化管理。
(3)安装防病毒软件,病毒防火墙等。
因为所有的机器都是互连的,一旦有病毒侵入,容易造成整个系统的瘫痪。
2.概念结构设计2.1 概念结构设计概念结构设计是根据系统分析的需求和工作环境的情况对整个软件的总体结构进行大致的设计。
“学生成绩管理”数据库设计文档0、前言(一些必要的说明。
)0.1 数据库说明数据库名:PXSCJ逻辑名称:学生成绩数据库数据文件:PXSCJ.mdf日志文件:PXSCJ_Log登录名:admin,密码:1234560.2表命名说明Cjb:成绩表,保存选课信息Cxb:查询表,记录boolean值对应信息,1代表男,0代表女。
Kcb:课程表。
Tjb:统计表,统计成绩段分布。
Xsb:学生表。
Yhb:用户表,保存系统用户信息。
Jsb: 教师表。
Skb:授课表,记录授课信息。
0.3 系统功能模块图1、 需求分析阶段说明:学生成绩管理系统需要实现以下功能:一个学生可以选修多门课程,一门课程可以由多个学生选修,学生选修一门课会有一个成绩。
一个教师可以教授多个班级,一个教师也可以教授多门课程,一个班级有多个学生,一门课程也可以由多个老师来上,一个老师给一个班级上一门课有确定的时间和地点。
不同的用户根据身份不同拥有不同的权限。
(1) 数据流图老师----成绩管理,学生信息管理,权限管理---学生成绩管理系统—成绩查询--学生(要求:用visio 实现第一层数据流图,第二层数据流图,第三层数据流图)p121老师学生学生成绩管理系统成绩管理信息管理权限管理成绩查询修改密码第一层数据流图第二层数据流图第三层数据流图(略)(2)数据字典(每个实体的详细说明)2、 概念设计阶段(1) 分ER 图(两个分ER 图,1)学生和课程,2)教师,课程,班级)(2) 总ER 图(由分ER 图画出总ER 图)学生选课教师课程授课班级nm mnp3、逻辑设计阶段(1)表关系图(看是否可以画出)(2)表结构图Xsb结构Kcb结构Cjb结构Yhb结构Jsb结构Skb结构Tjb结构Cxb结构(3)表优化(判断每个关系是否达到3NF要求,如果没有达到,则继续规)按照(1nf->2nf->3nf进行判断和优化)Cjb(xh,kch,cj)码:(xh,kch)非主属性:cj因为cj完全依赖于(xh,kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFCxb(xb,xbm)码:(xbm)非主属性:xb因为xb完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFJsb(jsbh,jsxm,zy,fy,zc,zw,bz)码:(jsbh)非主属性:jsxm,zy,fy,zc,zw,bz因为jsxm,zy,fy,zc,zw,bz完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFKcb(kch,kcm,kkxq,xs,xf)码:(kch)非主属性:kcm,kkxq,xs,xf因为kcm,kkxq,xs,xf完全依赖于(kch),所以属于2NF 因为不存在传递函数依赖,所以属于3NFSkb(jsbh,kch,bj,sj,dd)码:(jsbh,kch,bj)非主属性:sj,dd因为sj,dd完全依赖于(jsbh,kch,bj),所以属于2NF因为不存在传递函数依赖,所以属于3NFTjb(kch,rs1,rs2,rs3,rs4,rs5)码:(kch)非主属性:rs1,rs2,rs3,rs4,rs5因为rs1,rs2,rs3,rs4,rs5完全依赖于(kch),所以属于2NF 因为不存在传递函数依赖,所以属于3NFXsb(xh,xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp)码:(xh)非主属性:xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp因为xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp完全依赖于(xh),所以属于2NF 因为不存在传递函数依赖,所以属于3NFYhb(yhbh,yhm,mm,bz)码:(yhbh)非主属性:yhm,mm,bz因为yhm,mm,bz完全依赖于(yhbh),所以属于2NF因为不存在传递函数依赖,所以属于3NF4、物理设计选择合适的DBMS(要求用sql server 2008)5、实施(把sql语句贴在下面)(1)创建数据库(把sql语句贴在下面)create database pxscj1on(name='pxscj1_data',filename='f:\pxscj1_data.mdf',size=3mb,filegrowth=10%)log on(name='pxscj1_log', filename='f:\pxscj1_log.ldf', size=4mb,maxsize=6mb,filegrowth=1mb)(2)创建表(把sql语句贴在下面)create table xsb(xh char(6)not null primary key, xm char(8)not null,xb bit,cssj datetime,bj varchar(50)not null,zy char(12),zxf int,bz varchar(500),lxfs varchar(50),zp varbinary(max))create table kcb(kch char(3)not null primary key, kcm char(16)not null,kkxq tinyint,xs tinyint,xf tinyint)create table cjb(xh char(6),kch char(6),cj int,constraint c1primary key(xh,kch) )create table yhb(yhbh char(6)primary key not null, yhm char(8),sf varchar(20),mm char(6),bz varchar(5))create table jsb(jsbh char(6)not null primary key,jsxm char(8),zy varchar(30),fy varchar(30),zc varchar(20),zw varchar(20),bz varchar(50))create table skb(jsbh char(6)not null,kch char(3)not null,bj varchar(50)not null,sj varchar(20),dd varchar(50),constraint c2primary key(jsbh,kch,bj) )create table tjb(kch char(3)primary key not null,rs1int,rs2int,rs3int,rs4int,rs5int)create table cxb(xb bit not null,xbm char(4)not null primary key)(3)数据库完整性2)视图学生选课情况视图(学号,姓名,课程号,课程名,成绩,学分,总学分,教师)create view xs_xk_viewasselect xsb.XH,XM,kcb.KCH,kcm,CJ,xf,zxf,jsb.jsbh,jsxmfrom xsb,KCB,CJB,jsb,skbwhere xsb.XH=cjb.XH and kcb.KCH=cjb.KCHand cjb.KCH=skb.kch and skb.jsbh=jsb.jsbhselect*from xs_xk_view3)自定义数据库类型学号,课程号可以考虑用自定义的数据类型。
学生成绩管理系统数据库课程设计在现代教育体系中,学生成绩管理是学校和教育机构管理的重要组成部分。
随着信息技术的发展,学生成绩管理系统数据库课程设计变得愈发重要。
这里,我们将从数据库的角度深入探讨学生成绩管理系统的设计。
1. 学生成绩管理系统概述学生成绩管理系统是用来记录、管理和分析学生的学业成绩和相关信息的系统。
它可以帮助学校更好地了解学生的学习状况,及时发现问题并采取相应措施。
在这个系统中,数据库起着至关重要的作用,它承担着存储学生成绩和相关信息的功能。
2. 数据库设计的重要性在学生成绩管理系统中,数据库设计对系统的性能、扩展性和稳定性有着直接的影响。
一个合理的数据库设计可以提高系统的查询效率,减少数据冗余,降低数据错误率,同时也更有利于系统的扩展和升级。
3. 学生成绩管理系统数据库课程设计要点(1)数据表设计在数据库课程设计中,首先需要设计好各个数据表的结构。
学生信息表、课程信息表、成绩信息表等。
在设计这些表时,需要考虑到各个字段的数据类型、长度、索引等,以及表与表之间的关联关系。
(2)数据字段设计数据字段的设计需要考虑到数据的准确性和完整性。
学生的学号、尊称、性别等信息都应该有相应的约束条件,以防止错误数据的输入。
(3)查询功能设计学生成绩管理系统中,查询功能是最常用的功能之一。
在数据库课程设计中,需要设计出高效、灵活的查询功能,使用户能够根据不同的条件查询到所需的信息。
4. 个人观点和理解作为一名资深的数据库课程设计师,我认为学生成绩管理系统数据库课程设计需要综合考虑到系统的可靠性、性能和用户体验。
合理的数据库设计对于整个系统的稳定运行和后续的维护都至关重要。
随着大数据和人工智能技术的发展,数据库设计还应该考虑到系统的可扩展性和智能化分析的需求。
总结通过以上的学生成绩管理系统数据库课程设计,我们可以看到数据库在整个系统中的重要性。
合理的数据库设计可以提高系统的性能和稳定性,为学生和教师提供更好的服务。
目录第一章系统概述1.1系统开发的背景和意义 (1)1.2系统所要实现功能 (1)1.3系统开发工具 (1)1.4系统模块分析 (1)第二章系统需求分析2.1系统目标分析 (3)2.2系统数据描述 (3)2.3系统数据流图 (5)2.4系统数据字典 (6)2.5系统数据库概念设计 (8)第三章系统总体设计3.1系统功能模块设计 (11)3.2系统主要功能描述 (11)3.3系统流程分析 (12)第四章系统详细设计4.1程序流程设计 (13)4.2系统结构的实现 (14)第五章系统界面设计及代码实现5.1系统登陆窗口界面 (17)5.2系统主程序窗口界面 (18)5.3住宿管理设计 (20)5.4客人信息查询 (27)5.5 系统管理 (29)5.6订房信息管理 (31)5.7结算信息管理 (34)第六章系统测试6.1 测试目的 (38)6.2 测试方法 (38)6.3 测试记录与运行结果 (38)总结参考文献第一章系统概述及可行性分析1.1系统开发的背景在信息时代,能够代表一个国家信息产业水平和竞争能力的就是软件产业。
作为21世纪的朝阳产业,软件是全球最具发展前景与开发潜力的产业之一,已成为全球经济新的增长点,而且也逐渐成为世界各国竞相占领的战略制高点。
软件市场大致可以分为应用软件、系统软件和工具软件。
应用软件仍是软件市场的主流,约占69%。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
成绩管理系统,在国内外早已有着成熟的研究成果和广泛的社会应用。
学生成绩管理数据库系统设计课程:数据库安全实验姓名:***学院:计算机学院专业:信息安全学号: *************一、需求分析1.1 编写目的本产品实现了一个基于mySQL数据库下的学生信息查询管理系统,而本需求分析报告的编写目的是为了提供一个由用户(学生、教师)和开发者双方共同确定的开发系统的业务需求目标,并对本系统所要实现的软件功能做一个全面的规格描述。
同时,在用户业务需求的基础上,经过需求分析和数据整理,以向整个开发期提供关于软件系统的业务和数据的技术信息和整体描述,做为软件开发的技术基础,也作为系统设计、实现的目标和测试以及维护阶段的依据。
本软件需求分析报告的适用读者为:软件用户(学生、教师)、软件需求分析人员、软件设计及开发者和相关的测试人员。
1.2 信息需求随着科学技术的不断提高,计算机科学飞速发展,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用,在学籍管理方面,各种学生信息管理系统也在不断的涌现出来,然而目前在我国仍有部分学校在应用一些旧的、功能单一而且效率低下的系统,甚至还有一些偏远学校的学生信息管理还在依靠人工进行管理和操作,这些管理方式存在着许多缺点,如:效率低,密保性差,另外时间一长,将产生大量的文件和数据,其中有些是冗余或者针对同一目的的数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少困难,同时也跟不上信息时代高速、快捷的要求,严重影响了消息的传播速度。
然而现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长,人工管理信息的缺点日渐突出,面对庞大的学生信息量,如何利用现代信息技术使其拥有快捷、高效的适应能力已成为当务之急。
正因为如此,学生信息管理系统成为了教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。
学生成绩管理系统数据库设计一、引言学生成绩管理系统是现代教育系统中必不可少的一部分。
数据库作为该系统的核心组成部分,用于存储和管理学生的个人信息和学业成绩数据。
本文将介绍学生成绩管理系统数据库设计的方案,包括数据库的结构、关系和各个表的字段及其类型。
二、数据库结构学生成绩管理系统数据库包含多个表,每个表对应一个实体或关系。
以下是数据库的主要结构:1. 学生表(Student)该表存储学生的个人信息,如学生ID、姓名、年龄、性别、班级等。
表结构如下:- 学生ID(StudentID):主键,用于唯一标识学生。
- 姓名(Name):学生的姓名。
- 年龄(Age):学生的年龄。
- 性别(Gender):学生的性别。
- 班级(Class):学生所在的班级。
2. 课程表(Course)该表存储所有开设的课程信息,如课程ID、课程名称、学分等。
表结构如下:- 课程ID(CourseID):主键,用于唯一标识课程。
- 课程名称(CourseName):课程的名称。
- 学分(Credit):课程的学分。
3. 成绩表(Grade)该表存储学生的成绩信息,包括学生ID、课程ID、成绩等。
表结构如下:- 学生ID(StudentID):外键,与学生表中的学生ID相关联。
- 课程ID(CourseID):外键,与课程表中的课程ID相关联。
- 成绩(Score):学生在某一门课程中的成绩。
三、关系说明学生成绩管理系统数据库中的表之间存在以下关系:1. 学生与课程的多对多关系一个学生可以选择多门课程,而一门课程也可以被多个学生选择。
这种关系可以通过成绩表来连接学生表和课程表。
2. 学生与成绩的一对多关系一个学生可以有多门课程的成绩,而一门课程只对应一个学生的成绩。
这种关系可以通过成绩表中的学生ID字段来建立。
3. 课程与成绩的一对多关系一门课程可以有多个学生的成绩,而一个学生只对应一门课程的成绩。
这种关系可以通过成绩表中的课程ID字段来建立。
“学生成绩管理”数据库设计文档0、前言(一些必要的说明。
)0、1 数据库说明数据库名:PXSCJ逻辑名称:学生成绩数据库数据文件:PXSCJ、mdf日志文件:PXSCJ_Log登录名:admin,密码:1234560、2表命名说明Cjb:成绩表,保存选课信息Cxb:查询表,记录boolean值对应信息,1代表男,0代表女。
Kcb:课程表。
Tjb:统计表,统计成绩段分布。
Xsb:学生表。
Yhb:用户表,保存系统用户信息。
Jsb: 教师表。
Skb:授课表,记录授课信息。
0、3 系统功能模块图1、 需求分析阶段说明:学生成绩管理系统需要实现以下功能:一个学生可以选修多门课程,一门课程可以由多个学生选修,学生选修一门课会有一个成绩。
一个教师可以教授多个班级,一个教师也可以教授多门课程,一个班级有多个学生,一门课程也可以由多个老师来上,一个老师给一个班级上一门课有确定的时间与地点。
不同的用户根据身份不同拥有不同的权限。
(1) 数据流图老师----成绩管理,学生信息管理,权限管理---学生成绩管理系统—成绩查询--学生(要求:用visio 实现第一层数据流图,第二层数据流图,第三层数据流图)p121老师学生学生成绩管理系统成绩管理信息管理权限管理成绩查询修改密码第一层数据流图第二层数据流图第三层数据流图(略) (2)数据字典(每个实体的详细说明)2、概念设计阶段(1)分ER图(两个分ER图,1)学生与课程,2)教师,课程,班级)(2)总ER图(由分ER图画出总ER图)3、逻辑设计阶段(1)表关系图(瞧就是否可以画出)(2)表结构图Xsb结构Kcb结构Cjb结构Yhb结构Jsb结构Skb结构Tjb结构Cxb结构(3)表优化(判断每个关系就是否达到3NF要求,如果没有达到,则继续规范) 按照(1nf->2nf->3nf进行判断与优化)Cjb(xh,kch,cj)码:(xh,kch)非主属性:cj因为cj完全依赖于(xh,kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFCxb(xb,xbm)码:(xbm)非主属性:xb因为xb完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFJsb(jsbh,jsxm,zy,fy,zc,zw,bz)码:(jsbh)非主属性:jsxm,zy,fy,zc,zw,bz因为jsxm,zy,fy,zc,zw,bz完全依赖于(kch),所以属于2NF 因为不存在传递函数依赖,所以属于3NFKcb(kch,kcm,kkxq,xs,xf)码:(kch)非主属性:kcm,kkxq,xs,xf因为kcm,kkxq,xs,xf完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFSkb(jsbh,kch,bj,sj,dd)码:(jsbh,kch,bj)非主属性:sj,dd因为sj,dd完全依赖于(jsbh,kch,bj),所以属于2NF因为不存在传递函数依赖,所以属于3NFTjb(kch,rs1,rs2,rs3,rs4,rs5)码:(kch)非主属性:rs1,rs2,rs3,rs4,rs5因为rs1,rs2,rs3,rs4,rs5完全依赖于(kch),所以属于2NF因为不存在传递函数依赖,所以属于3NFXsb(xh,xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp)码:(xh)非主属性:xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp因为xm,xb,cssj,bj,zy,zxf,bz,lxfs,zp完全依赖于(xh),所以属于2NF 因为不存在传递函数依赖,所以属于3NFYhb(yhbh,yhm,mm,bz)码:(yhbh)非主属性:yhm,mm,bz因为yhm,mm,bz完全依赖于(yhbh),所以属于2NF因为不存在传递函数依赖,所以属于3NF4、物理设计选择合适的DBMS(要求用sql server 2008)5、实施(把sql语句贴在下面)(1)创建数据库(把sql语句贴在下面)create database pxscj1on(name='pxscj1_data',='f:\pxscj1_data、mdf',size=3mb,=10%)log on(name='pxscj1_log',='f:\pxscj1_log、ldf',size=4mb,maxsize=6mb,=1mb)(2)创建表(把sql语句贴在下面)create table xsb(xh char(6)not null primary key, xm char(8)not null,xb bit,cssj datetime,bj varchar(50)not null,zy char(12),zxf int,bz varchar(500),lxfs varchar(50),zp varbinary(max))create table kcb(kch char(3)not null primary key,kcm char(16)not null,kkxq tinyint,xs tinyint,xf tinyint)create table cjb(xh char(6),kch char(6),cj int,constraint c1primary key(xh,kch) )create table yhb(yhbh char(6)primary key not null, yhm char(8),sf varchar(20),mm char(6),bz varchar(5))create table jsb(jsbh char(6)not null primary key, jsxm char(8),zy varchar(30),fy varchar(30),zc varchar(20),zw varchar(20),bz varchar(50))create table skb(jsbh char(6)not null,kch char(3)not null,bj varchar(50)not null,sj varchar(20),dd varchar(50),constraint c2primary key(jsbh,kch,bj))create table tjb(kch char(3)primary key not null,rs1int,rs2int,rs3int,rs4int,rs5int)create table cxb(xb bit not null,xbm char(4)not null primary key)(3)数据库完整性2)视图学生选课情况视图(学号,姓名,课程号,课程名,成绩,学分,总学分,教师)create view xs_xk_viewasselect xsb、XH,XM,kcb、KCH,kcm,CJ,xf,zxf,jsb、jsbh,jsxm from xsb,KCB,CJB,jsb,skbwhere xsb、XH=cjb、XH and kcb、KCH=cjb、KCHand cjb、KCH=skb、kch and skb、jsbh=jsb、jsbhselect*from xs_xk_view3)自定义数据库类型学号,课程号可以考虑用自定义的数据类型。
sp_addtype'xh','char(6)'sP_addtype'kch','char(3)'4)默认值对象Xsb:性别默认为1,总学分默认为0。
Kcb:学生人数默认为40,学分默认为2。
Jsb:zy计算机,fy信息,zc讲师,zw无。
Yhb:mm’123456’Xsb:性别默认为1,alter table xsb add constraint b1DEFAULT 1 for xb总学分默认为0。
alter table xsb add constraint b2DEFAULT 0 for zxf Kcb:学生人数默认为40,alter table kcb add constraint b3DEFAULT 40 for xs学分默认为2。
alter table kcb add constraint b4DEFAULT 2 for xfJsb:zy计算机,alter table jsb add constraint b5DEFAULT'计算机'for zy fy信息,alter table jsb add constraint b6DEFAULT'信息'for fyzc讲师,alter table jsb add constraint b7DEFAULT'讲师'for zc zw无。
alter table jsb add constraint b8DEFAULT'无'for zw Yhb:mm’123456’alter table yhb add constraint b9DEFAULT'123456'for mm 5)规则与check约束Xsb:zxf范围在0-160之间。
Kcb:kkxq范围在1-8之间,xf在1-15之间Cjb:cj范围在0-100之间Xsb:zxf在0-160之间。
alter table xsbadd constraint pk_1check (zxf between 0 and 160)Kcb:kkxq在1-8之间,xf在1-15之间alter table kcbadd constraint pk_2check (kkxq between 1 and 8)alter table kcbadd constraint pk_3check (xf between 1 and 15)Cjb:cj在0-100之间alter table cjbadd constraint pk_4check (cj between 0 and 100)6)参照关系cjb(xh)参照xsb(xh)cjb(kch)参照kcb(kch)yhb(yhbh)参照xsb(xh)与jsb(jsbh)–必须用触发器实现skb(jsbh)参照jsb(jsbh)skb(bj)参照xsb(bj)skb(kch)参照kcb(kch)cjb(xh)—xsb(xh)alter table cjbadd constraint fk_1foreign key (xh)references xsb(xh)cjb(kch)—kcb(kch)alter table cjbadd constraint fk_2foreign key (kch)references kcb(kch)skb(jsbh)—jsb(jsbh)alter table skbadd constraint fk_4foreign key (jsbh)references jsb(jsbh) skb(kch)—kcb(kch)alter table skbadd constraint fk_6foreign key (kch)references kcb(kch)skb(bj)—xsb(bj)--用触发器实现create trigger t1on skbfor insertasbeginif not exists(select*from xsb where bj=(select bj from inserted)) beginprint'插入的班级不存在!'rollback transactionendendyhb(yhbh)—xsb(xh)与jsb(jsbh) --必须用触发器实现alter trigger t2on yhbfor insertasbeginif not exists(select*from xsb where xh=(select yhbh from inserted))beginif not exists(select*from jsb where jsbh=(select yhbh from inserted))beginprint'插入的编号出错!'rollback transactionendendend(4)用户自定义函数(把sql语句贴在下面)(5)用户自定义存储过程1)根据学号查询学生的选课情况(把sql语句贴在下面)CREATE PROCEDURE xhcxxs@xh char(6)asbeginif exists(select*from cjb where xh=@xh) select*from cjb where xh=@xhelseprint'无此学生选课信息'end2)根据课程号查询课程的选修情况(把sql语句贴在下面)CREATE PROCEDURE kchcxxk@kch char(3)asbeginif exists(select*from cjb where kch=@kch) select*from cjb where kch=@kchelseprint'无此课程选课信息'end根据教师编号查询授课情况(把sql语句贴在下面)CREATE PROCEDURE jsbhcxsk@jsbh char(6)asbeginif exists(select*from skb where jsbh=@jsbh) select*from skb where jsbh=@jsbhelseprint'无此教师授课信息'end3)根据班级查询该班级的授课情况(把sql语句贴在下面)CREATE PROCEDURE bjcxsk@bj varchar(50)asbeginif exists(select*from skb where bj=@bj)select*from skb where bj=@bjelseprint'无此班级授课信息'end4)根据课程号号查瞧授课情况(把sql语句贴在下面)CREATE PROCEDURE kchcxsk@kch char(3)asbeginif exists(select*from skb where kch=@kch)select*from skb where kch=@kchelseprint'无此课程授课信息'end5)课程成绩分布统计。