学生成绩管理系统数据库设计-(全)
学生成绩管理系统数据库设计
学生成绩管理系统数据库设计一、需求分析学生成绩管理系统是一个重要的教育管理系统,它主要用于学生的成绩管理和统计。
该系统需要具有以下功能: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. 数据库表设计基于上述实体-关系模型,我们设计了以下数据库表:- 学生表(Student):包括学生编号、学生姓名、性别、年级等信息。
- 课程表(Course):包括课程编号、课程名称、学分等信息。
- 教师表(Teacher):包括教师编号、教师姓名、职称等信息。
- 成绩表(Score):包括学生编号、课程编号、成绩等信息。
四、系统功能设计1. 学生信息管理教师和管理员可以对学生信息进行增、删、改和查操作。
包括学生的基本信息和选课情况等。
2. 课程管理教师和管理员可以对课程信息进行增、删、改和查操作。
包括课程的基本信息和授课教师等。
3. 成绩录入与查询教师可以根据课程和学生信息录入成绩,同时学生和管理员可以根据课程和学生信息查询成绩。
五、系统界面设计学生成绩管理系统应具有用户友好的界面,便于用户操作和信息浏览。
界面设计应符合人机工程学的原则,以实现良好的用户体验。
六、系统安全设计为了确保学生成绩的保密性和完整性,学生成绩管理系统应具备一定的安全措施。
数据库课程设计报告(学生成绩管理系统)
学生成绩管理系统姓名:王一学号:200513理学院信息05-1班学生成绩管理系统概述学生成绩管理系统可以广泛应用于大专院校、职业学校、高中以及初中小学等。
该系统具有一些基本的学生查询、输入、修改等功能。
下图为系统的主界面系统工具部分提供了:初始化:用于清空各个数据表的数据。
密码修改:用于管理员修改密码。
退出输入编辑部分提供了:成绩输入:用于输入学生的成绩。
学生信息输入:用于添加新的学生信息。
专业信息输入:用于添加新的专业及成绩。
查询部分提供了:学生成绩查询:用于查询符合条件的学生的成绩。
专业查询:用于查询专业信息。
统计打印部分提供了:打印学生的成绩。
关于:提供本系统的信息以及作者的信息。
需求分析在学校的教学管理中老师的角色是管理员。
而学生只能查询因此系统应包含一下的功能:1.要求系统能够初始化,以便新学期输入新的学生信息,管理员权限管理,以便不同的老师能同一学期共同使用本系统。
2.要求系统提供学生的信息输入,成绩输入,专业信息输入,这是本系统能管理学生信息的基础。
3.要求系统提供学生的信息查询,专业查询功能,这是本系统的主要功能,使本系统能随时查询.4.要求系统提供打印学生成绩的功能,并能做成绩单以便学期末总结使用。
5.本系统的运行的要求,本软件的信息,便于维护软件;作者的联系信息,便于沟通。
6.系统运行时要有一个友好的系统界面,便于操作。
7.为了系统的安全以及学生信息的保密,系统进入时要核对用户名及密码。
系统配置运行稳定的数据库应用系统有一个相对最优的系统配置方案。
根据用户的实际情况以及维护水平来确定。
数据库设计在学生成绩管理系统中,首先要创建学生成绩管理系统的数据库概念模型,同时在上面的实体以及实体的关系的基础上,形成数据库中的表以及各表之间的关系。
本系统需要创建四个表系统数据表(xt)学生成绩管理系统的实体关系简图在需求分析,概念设计的基础上得到数据库的逻辑结构,创建一个数据库,包含上述三个表,首先创建一个项目保存为“学生成绩管理系统”给系统添加上述的三个表界面设计采用模块化思想可以大大提高设计的效率,减少不必要的错误。
数据库课程设计_学生成绩管理系统
1。
概述1.1 简单介绍本系统实现的内容该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。
此系统主要完成用户密码登录、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能.(一)用户密码登录:在登录程序之前会先弹出一个登录对话框,在正确的输入了数据库中存储的用户和密码后才能登录程序.(二)用户密码的修改在成功登录了程序之后用户可以根据自己的需要修改当前密码.(三)成绩查询1。
成绩修改前选中要修改的成绩信息,然后进行修改。
2.成绩添加直接弹出添加对话框,然后进行添加。
3.成绩删除前选中要删除的成绩信息,然后直接删除。
(四) 课程查询1。
课程修改实现对课程名、学时、学分的修改。
2.课程添加对一门新开设的课程进行录入,并存入数据库。
3。
课程删除对一门不再开设的课程进行删除,并从数据库中删除。
(五)学生查询1。
学生信息修改修改选中当前学生的信息。
2。
学生信息添加增加新学生的信息。
3。
学生信息删除删除选中当前学生信息。
1。
2 开发环境简介1)Microsoft visual c++ 6。
0Visual C++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出Visual C++1。
0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具.Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。
Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具. 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
2)Microsoft SQL Server 2000和与系统相关的SQL 语言介绍数据定义DDL(data definition language)数据定义语言是指对数据的格式和形态下定义的语言,他是每个数据库要建立时候时首先要面对的,举凡数据分哪些表格关系、表格内的有什么栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的.2。
数据库课程设计(学生成绩管理系统)
正文:数据库原理和使用课程设计说明书题目:长途汽车信息管理系统院系:经济和管理系专业班级:12级信管本1学号:1214060711学生姓名:刘凯文教师指导:苏红畏2013年12 月22 日目录数据库原理和使用.................................... - 1 -一概述 (3)二需求分析 (3)三概念结构设计 (4)四概念模型设计 (6)五逻辑和物理结构设计 (12)六数据库的实施和维护 (15)七总结 (15)一概述1.1目的和要求随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
数据库长途汽车信息管理系统运用在汽车站部门的系统工具,方便此系统部门的工作人员的工作,该系统主要根据此部门的特点建立的,是记录和查询汽车站信息的的依据。
早期的长途汽车站信息主要是人工记录和人工管理的,不仅不容易记录,而且还不容易保存。
随着计算机的不断普及和软件系统的不断发展加上信息系统开发的迫切需求,计算机长途汽车站信息管理系统应运而生了。
1.2设计环境① Microsoft SQL Server 2000② Microsoft Visual C++ 6.0二需求分析2.1 系统功能要求设计此系统实现如下系统功能:线路模块:用来管理汽车线路号、出发地、目的地、出发时间、所需时间。
汽车模块:用来管理汽车汽车编号、汽车的种类及相应的票价、最大载客量、剩余座位数。
车票模块:用来管理汽车车票编号、售票情况、查询、打印。
乘客模式:用来管理汽车乘客出发地、出发地、目的地。
三、概念结构设计经分析,本系统的e-r 图如下:各实体及其属性:车票售票情况车票编号票价线路所需时间出发时间目的地出发地线路编号汽车最大载客量汽车编号汽车种类乘客出发地目的地出发时间各实体间关系的e-r 图如下:车票售票乘客乘车汽车供应行驶线路售票情况车票编号出发地目的地出发时间最大载客量汽车编号汽车种类所需时间出发时间目的地出发地票价线路编号关系图:四逻辑结构设计1. 工厂管理基本信息表(1).汽车基本信息表列名数据类型长度是否为空备注汽车票号char 10 否主码汽车种类char 10 是最大载客量smallint 是(2).线路信息表属性名类型长度是否为空备注线路号char 10 主码出发地Char 10目的地char 10出发时char 10间所需时datetime 8间(3).车票信息表属性名类型长度是否为空备注车票编号char 10 主码售票情况char 10票价smallint(4).乘客信息表属性名类型长度是否为空说明出发时间char 10 否主码出发地char 10目的地char 102.长途汽车管理基本数据信息表(1). 车票信息表车票编号售票情况票价线路号拥挤85 101 良好90 102 稀疏110 103 拥挤109 104 拥挤120 105 良好160 106(2).汽车基本信息表汽车编号汽车种类最大载客量线路号1 A 35 1012 B 50 1023 C 45 1034 D 55 1045 E 45 1056 F 60 106(3).线路信息表线路号出发地目的地出发时间所需时间101 南昌市抚州市18:00 2102 景德镇鄱阳县10:20 1103 鄱阳县南昌市15:40 4104 抚州市南昌市14:30 2105 抚州市南昌市13:00 3106 南昌市景德镇09:00 5 (4).乘客信息表出发时间出发地目的地汽车编号线路号18:09 南昌市抚州市 1 101 07:00 南昌市景德镇 6 106 10:23 景德镇鄱阳县 2 102 14:30 抚州市南昌市 5 105 15:28 鄱阳县南昌市 3 103对应SOL语句如下:(1)建库create database 长途汽车信息管理系统(2)建表CREATE TABLE 汽车基本信息表(汽车编号 CHAR(10) PRIMARY KEY,汽车种类 CHAR(10),最大载客量 INT,线路号 CHAR(10))CREATE TABLE 车票信息表(车票编号 CHAR(10) PRIMARY KEY,售票情况 CHAR(10),票价 INT,线路号 CHAR(10))CREATE TABLE线路信息表(线路号 CHAR(10) PRIMARY KEY,出发地 CHAR(10),目的地 CHAR(10),出发时间 CHAR(10),所需时间 INT)CREATE TABLE 乘客信息表(汽车编号 CHAR(10) PRIMARY KEY,线路号 CHAR(10),出发地 CHAR(10),目的地 CHAR(10),出发时间 CHAR(10))(3)插入数据INSERTINTO 车票信息表VALUES('20110001','拥挤','85','101') INSERTINTO 车票信息表VALUES ('20110002','良好','90','102') INSERTINTO 车票信息表VALUES ('20110003','稀疏','110','103') INSERTINTO 车票信息表VALUES ('20110004','拥挤','109','104') INSERTINTO 车票信息表VALUES ('20110005','拥挤','120','105') INSERTINTO 车票信息表VALUES ('20110006','良好','160','106') INSERTINTO 汽车基本信息表VALUES ('1','A','35','101')INSERTINTO 汽车基本信息表VALUES ('2','B','50','102')INSERTINTO 汽车基本信息表VALUES ('3','C','45','103')INSERTINTO 汽车基本信息表VALUES ('4','D','55','104')INSERTINTO 汽车基本信息表VALUES ('5','E','45','105')INSERTINTO 汽车基本信息表VALUES('6','F','60','106')INSERTINTO 线路信息表VALUES ('101','南昌市','抚州市','18:00','2') INSERTINTO 线路信息表VALUES ('102','景德镇','鄱阳县','10:20','1') INSERTINTO 线路信息表VALUES ('103','鄱阳县','南昌市','15:40','4') INSERTINTO 线路信息表VALUES ('104','抚州市','南昌市','14:30','2')INSERTINTO 线路信息表VALUES ('105','抚州市','南昌市','13:00','3')INSERTINTO 线路信息表VALUES ('106','南昌市','景德镇','09:00','5')INSERTINTO 乘客信息表VALUES ('18:09','南昌市','抚州市','1','101')INSERTINTO 乘客信息表VALUES ('07:00','南昌市','景德镇','6','106')INSERTINTO 乘客信息表VALUES ('10:23','景德镇','鄱阳县','2','102')INSERTINTO 乘客信息表VALUES('14:30','抚州市','南昌市','5','105')INSERTINTO 乘客信息表VALUES('15:28','鄱阳县','南昌市','3','103')五逻辑和物理结构设计系统模块设计1.索引①建立索引create unique index id_ix on车票信息表(车票编号);create unique index im_in on 汽车基本信息表(汽车编号);create unique index ik_il on 线路信息表(线路号);create unique index ih ig on 乘客信息表(汽车编号);②删除索引Drop index 车票信息表id ix2.视图①创建视图create view view_1as select车票编号,售票情况,票价,线路号from 汽车信息表create view view_2as select汽车编号,汽车种类,最大载客量,线路号from 汽车基本信息表create view view_3as select 线路号,出发地,目的地,出发时间,所需时间from 线路信息表create view view_4as select出发时间,出发地,目的地,汽车编号,线路号from 乘客信息表②视图的撤消drop view view_1;③视图的查询select * from view_3;select * from view_2;④视图的更新insert into view_1values(‘20110001’,’拥挤’’85’’80’);3.存储过程①创建存储过程create proc proc_zgasselect 车票编号,票价from 车票信息表where 线路号='103';②存储过程的查询exec proc_zg;③存储过程的修改alter proc proc_zgasselect车票编号,票价from车票信息表where 线路号='104'4、触发器①创建触发器create trigger z_select on 车票信息表after insertasselect * from 车票信息表select * from insertedgoinsert into 车票信息表(车票编号,票价)values('20110001','80')②触发器的删除drop trigger z_select;5、数据更新①插入(前面已插入)②修改Update 车票信息表Set 票价=90Where 车票编号=’20110001’;③删除delete from车票信息表where 车票编号=’20110002’;6、数据查询SELECT 出发时间,汽车编号FROM 乘客信息表WHERE 汽车编号='2'SELECT 售票情况,票价FROM 车票信息表WHERE 线路号='101'SELECT 售票情况,票价FROM 车票信息表WHERE 线路号='102'SELECT 售票情况,票价FROM 车票信息表WHERE 线路号='103'SELECT 售票情况,票价FROM 车票信息表WHERE 线路号='104'SELECT 汽车种类,最大载客量FROM 汽车基本信息表WHERE 线路号='101'SELECT 汽车种类,最大载客量FROM 汽车基本信息表WHERE 线路号='102'SELECT 汽车种类,最大载客量FROM 汽车基本信息表WHERE 线路号='103'SELECT 汽车种类,最大载客量FROM 汽车基本信息表WHERE 线路号='104'SELECT售票情况,票价FROM 车票信息表WHERE 线路号='106'SELECT 出发时间,线路号,目的地FROM 乘客信息表ORDER BY 线路号SELECT 车票编号FROM 车票信息表WHERE 票价 BETWEEN 90 AND 110六数据库的实施和维护当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,应为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在sqlserver中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。
基于SQL数据库设计的学生成绩管理系统
基于SQL数据库设计的学生成绩管理系统随着教育信息化的不断深入,学生成绩管理系统在学校教务管理中扮演着越来越重要的角色。
为了更好地管理学生成绩信息,提高教学效率,设计一个基于SQL数据库的学生成绩管理系统显得尤为重要。
本文将从数据库设计的角度出发,探讨如何构建一个高效、稳定的学生成绩管理系统。
1. 数据库设计在设计学生成绩管理系统的数据库时,首先需要考虑的是数据库的表结构。
一般来说,可以设计以下几张表:学生表(Student):包含学生的基本信息,如学号、姓名、性别、年龄等字段。
课程表(Course):包含课程的信息,如课程编号、课程名称、学分等字段。
成绩表(Score):记录学生的成绩信息,包括学生学号、课程编号、成绩等字段。
2. 数据库关系在学生成绩管理系统中,不同表之间存在着一定的关系。
一般来说,可以建立以下几种关系:学生与成绩之间是一对多的关系,即一个学生可以有多条成绩记录。
课程与成绩之间是多对一的关系,即多个学生可以选择同一门课程。
3. SQL查询设计完数据库结构和关系后,接下来就是编写SQL查询语句来实现对学生成绩信息的增删改查操作。
以下是一些常用的SQL查询语句示例:查询某个学生的所有成绩:SELECT * FROM Score WHEREstudent_id = 'xxx';查询某门课程的平均成绩:SELECT AVG(score) FROM Score WHERE course_id = 'xxx';查询某个学生某门课程的成绩:SELECT score FROM Score WHERE student_id = 'xxx' AND course_id = 'xxx';4. 数据库优化为了提高系统性能和查询效率,需要对数据库进行优化。
可以采取以下措施:添加索引:对经常用于查询条件的字段添加索引,加快查询速度。
规范化设计:避免数据冗余和不一致,提高数据存储效率。
学生成绩管理系统数据库设计实验报告
学生成绩管理系统数据库课题: 雇员信息管理系统姓名:学号:同组姓名:专业班级:指导教师:设计时间:2012年6月4号----2012年6月10日一、需求分析阶段1.信息需求对学校而言,学生成绩管理系统是所有工作的首要之选,但是高校学生的成绩管理工作量大、繁杂,人工处理非常困难。
因此,借助于强大计算机的处理能力,能够把人从繁重的成绩管理工作中解脱出来,并且更加准确、安全、清晰的管理环境。
2.功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。
具体功能应包括:系统应该提供课程安排数据的添加、插入、删除、更新、查询;成绩的添加、修改、删除、查询,学生及教职工基本信息查询的功能。
3. 安全性与完整性要求对于学生成绩管理系统数据库来讲,由于其主要数据是学生成绩,只能由本人以及所教老师及教务处知道,因此做好数据安全性是重中之重。
另外,要求所有在校学生的信息都要录入其中,并且要设计好个别情况。
二、概念结构设计阶段概念结构设计阶段是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
设计成绩管理数据库包括学生、成绩、课程、教师四个关系。
E-R图如下三、详细设计阶段详细结构是独立于任何一种数据模型的信息结构。
详细结构的任务是把概念结构设计阶段设计好的基本E-R图转化为宜选用的DBMS所支持的数据模型相符合的逻辑结构,并对其进行优化。
E-R图向关系模型转化要解决的问题是如何将实体型和实体间的联系转化为关系模式,如何确定这些关系模式的属性和码。
设计学生成绩管理数据库,包括课程、学生、教师、成绩四个关系, 其关系模式中对每个实体定义的属性如下:课程信息表Class:(课程号,课程名,教师号,学分,学时)学生信息表Student1:(学号,姓名,性别,年龄,专业,系别)成绩表Score:(学号号,课程名,成绩)教师表Teacher1:(教师号,教师名,教师性别,教师系别)2、学生信息表(student1)四、数据库实现数据库实施是指建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
网络数据库课程设计(学生成绩管理系统)
目录第一章系统概述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 信息需求随着科学技术的不断提高,计算机科学飞速发展,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着越来越重要的作用,在学籍管理方面,各种学生信息管理系统也在不断的涌现出来,然而目前在我国仍有部分学校在应用一些旧的、功能单一而且效率低下的系统,甚至还有一些偏远学校的学生信息管理还在依靠人工进行管理和操作,这些管理方式存在着许多缺点,如:效率低,密保性差,另外时间一长,将产生大量的文件和数据,其中有些是冗余或者针对同一目的的数据不相吻合,这对于查找、更新和维护文件等管理工作带来了不少困难,同时也跟不上信息时代高速、快捷的要求,严重影响了消息的传播速度。
然而现今学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长,人工管理信息的缺点日渐突出,面对庞大的学生信息量,如何利用现代信息技术使其拥有快捷、高效的适应能力已成为当务之急。
正因为如此,学生信息管理系统成为了教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
作为计算机应用的一部分,使用计算机对学生信息进行管理,具有着手工管理所无法比拟的优点。
学生管理系统的数据库设计
学生管理系统的数据库设计随着教育的发展和学生人数的增加,学生管理系统在学校和教育机构中变得越来越重要。
一个高效的学生管理系统可以帮助学校管理学生的信息、课程安排和学术成绩。
在设计学生管理系统的数据库时,我们应该考虑到各种需求,同时保证数据的精准性和安全性。
本文将讨论如何设计一个完整的学生管理系统数据库,并提供适当的解决方案。
表一:学生信息表(Students)在学生管理系统中,学生信息表是最基本且最重要的表之一。
以下是学生信息表的字段设计建议:- 学号(Student_ID):学生的唯一标识符,作为主键使用。
- 姓名(Name):学生的姓名。
- 性别(Gender):学生的性别,可以使用枚举类型(Enum)表示。
- 出生日期(Date_of_Birth):学生的出生日期,使用日期(Date)类型。
- 班级(Class):学生所在的班级。
- 年级(Grade):学生所在的年级。
表二:课程表(Courses)课程表存储了学校提供的所有课程信息。
以下是课程表的字段设计建议:- 课程编号(Course_ID):课程的唯一标识符,作为主键使用。
- 课程名称(Course_Name):课程的名称。
- 授课教师(Teacher):负责教授该课程的教师。
- 学分(Credit):该课程的学分。
- 上课时间(Class_Time):该课程的上课时间和地点。
表三:成绩表(Grades)成绩表记录了学生在每门课程中的成绩信息。
以下是成绩表的字段设计建议:- 学号(Student_ID):学生的学号,作为外键与学生信息表关联。
- 课程编号(Course_ID):课程的课程编号,作为外键与课程表关联。
- 成绩(Grade):学生在该门课程中的得分。
表四:班级表(Classes)班级表存储了学校中的班级信息。
以下是班级表的字段设计建议:- 班级编号(Class_ID):班级的唯一标识符,作为主键使用。
- 班级名称(Class_Name):班级的名称。
学生成绩管理系统数据库设计
关键词 : S O L S e r v e r ; 成绩 管理系统; 数 据
关 系 数 据 库 中所 有 的 数 据 都 存 储 在 关 系 存储过 程不仅 可以极大地 降低应 用程序 的实 表 中, 通过 需求分析 , 我们 可以在学 生成绩管 现 难度, 而 且 还 可 以极 大 地 提 高 系 统 的 运 行 速 理 系 统 中创 建 以 下 数 据 表 ( 此 处 只 列 举 主 要 的 度 、 效率。 S QL S e r v e r 2 0 0 5中存 储 过 程 分 为 : 系
查询 : ( 1 ) 经 常用于查 询的列 : ( 2 ) 经 常 用 于 分
DENT W HERE S t u Na me =@n a me )
—
表1 T e a c h e r 表结构 字段名
T e a I d T e a N a m e
END
五、 触 发 器
C h a r ( 1型
C h a r ( 8 ) V a r e h a r ( 2 O )
I : S t u — I d 、 S t u — N a me 、 T e a _ I d 、 T e a _ N a m e 、 s p e 一 据 的操 作 , 并 自动 地 级 联 影 响 到 整 个 数 据 库 的
T e a S e x T e a N a t i o n
索 引是 提 高 查 询 的 主 要 方 法 , 在 图书 管 理 储过 程实现 按照学生姓名查询成绩。实现代码
系统 中, 因为图书数量 的庞大 , 所 以建 立 索 引 如 下 :
CREATE P ROCEDURE g r a d eb y nam
学生成绩管理系统数据库设计
学生成绩管理系统数据库设计一、引言学生成绩管理系统是现代教育系统中必不可少的一部分。
数据库作为该系统的核心组成部分,用于存储和管理学生的个人信息和学业成绩数据。
本文将介绍学生成绩管理系统数据库设计的方案,包括数据库的结构、关系和各个表的字段及其类型。
二、数据库结构学生成绩管理系统数据库包含多个表,每个表对应一个实体或关系。
以下是数据库的主要结构: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字段来建立。
数据库学生成绩管理系统课程设计
课程设计报告•1问题描述1.1 背景1)某大学有学生若干万名,每个学生每学期必须学习若干门课程。
2)每个学生有学号、姓名、性别、班级、出生日期等基本信息。
3)每门课程有课程号,课程名称、任课教师、学分等信息。
4)学校需要对每个学生的基本信息、所学课程、成绩进行统一管理,以便于对信息进行查询、浏览和修改。
1.2 数据需求学生成绩管理系统主要用于学生成绩信息管理,据分析学生成绩管理系统的数据表可浓缩为:学生基本信息表、课程基本信息表和学生成绩信息表。
根据学校的情况,可按下面的步骤来分析:(1)确定学生所在的院系、所学的专业以及所在的班级。
(2)确定学生所在班级的课程以及该课程学生的成绩;另外还需要知道学生所在班级、学号和学期。
(3)分析学生的基本信息,如姓名、性别、出生年月、家庭住址、联系电话。
(4)用户信息分析,通常包括用户名和密码。
• 2 解决方案 ( 或数据库系统设计 )2.1 E-R 模型设计根据E—R图,将其转化为如下数据实体,数据库:学生成绩管理系统.dbc,包括如下的表和视图:1)学生登记表——学生表.dbf。
字段名称字段类型字段宽度xh 字符型 10xm 字符型 6xb 字符型 2csrq 日期型 8bj 字符型 42)课程登记表——课程表.dbf。
字段名称字段类型字段宽度kch 字符型 2kcm 字符型 10js 字符型 10xf 字符型 103)成绩登记表——成绩表.dbf字段名称字段类型字段宽度xh 字符型 10kch 字符型 2cj 数值型 34) 借书视图(lyxview)。
为了进行浏览总表的需要,需要设计了一个总表浏览视图,该视图从学生表.dbf等3个表中提取了10个字段的数据:学生表.xh学生表.xm学生表.xb学生表.csrq学生表.bj课程表.kch课程表.kcm课程表.js课程表.xf成绩表.cj其视图关系可由以下SQL语句定义:SELECT 学生表.*, 课程表.*, 成绩表.cj;FROM 学生成绩管理系统!学生表, 学生成绩管理系统!课程表,;学生成绩管理系统!成绩表;WHERE 学生表.xh = 成绩表.xh;AND 课程表.kch = 成绩表.kch所建数据库如下图所示:2.2 数据表•3系统实现3.1 开发环境本系统由SQL语言编写,在Visual Foxpro 6.0软件环境下可以正常运行3.2 系统流程图系统流程图模块主要由刘龙洋同学设计,而系统的功能设计主要由李江滨同学完成,我主要负责程序主要功能界面的设计,下面是部分流程图:3.3 程序主要功能界面1、登录界面的设计:第一步:在表单上单击鼠标右键,并在弹出菜单中选择“数据环境”项,打开数据环境设计器,添加数据表mm.dbf;第二步:创建表单并保存为“登录”;第三步:添加lable1,并设置其caption属性为“欢迎使用学生成绩管理系统!”;第四步:添加lable2和text1并设置相关属性;第五步:添加timer控件,并设置其Enabled属性为“真”,用于设计窗口动画。
(完整word版)学生成绩管理系统数据库设计
JIANGXI AGRICULTURAL UNIVERSITY数据库课程设计报告题目:学生成绩管理系统数据库设计学院:姓名:学号:专业:班级:指导教师:二0一二年6 月目录一、需求分析 (4)1。
1 需求概述 (4)1。
2 功能简介 (4)二、数据库设计 (4)2。
1 确定联系集及E—R图 (4)2。
2 画出E—R图 (5)2.3学生成绩管理系统总E-R图 (6)三、逻辑数据库设计阶段 (7)3。
1 班级信息表(Class) (8)3。
2 学生信息表(Student) (8)3。
3 课程信息表(Course) (9)3.4 成绩表(Score) (9)四、建表 (10)4.1 创建数据库 (10)4。
2 创建数据表 (10)五、数据库的运行和维护 (11)5。
1 定义 (11)5。
1。
1 基本表的创建,建表语句 (11)5。
1.2 基本表的删除 (12)5.2 数据操作 (12)5.2.1 单表查询: (12)5.2。
2 连接查询 (12)5.2。
3 操作结果集查询 (13)5。
2.4 嵌套查询 (13)5.3 数据库更新操作 (14)5.3.1 插入数据 (14)5.3。
2 修改数据 (14)5。
3.3 删除数据 (14)5.4 为数据库建立索引 (15)5。
4。
1 索引的建立 (15)5。
4。
2 索引的删除 (15)5。
5 数据库的安全性 (15)5。
6 数据库的完整性 (16)5。
6.1 实体完整性定义 (16)5.6.2 参照完整性定义 (16)六、模式求精 (16)七、总结 (17)一、需求分析1。
1 需求概述针对江西农大的成绩管理工作量大、繁杂,人工处理非常困难.学生成绩管理系统借助于计算机强大的处理能力,大大减轻了管理人员的工作量,并提高了处理的准确性.学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。
(完整版)学生成绩管理系统数据库表结构说明
否
否
最高学历
HighestDegree
char(4)
否
否
职务
Position
Narchar(8)
否
否
备注
Notes
varchar(255)
否
是
6、课程表tb_Course
字段描述
字段名
数据类型
是否主键
是否为空
课程编号
CourseID
char(8)
是
否
课程名称
CourseName
varchar(25)
否
否
政治面貌
PoliticalFace
Nchar(12)
否
否
家庭住址
Address
Nvarchar(50)
否
否
个人电话
PerPhone
Nchar(11)
否
否
家庭电话
HPhone
Nchar(11)
否
否
身份证号
IDNum
varchar(18)
否
否
照片
Photo
varbinary(max)
否
否
班级编号
ClassID
LoginTime
DateTime
否
否
操作用户
UserID
Varchar(16)
否
否
操作类型
OperationType
Varchar(20)
否
否
19、参加工作访问进修情况tb_StudyVisit
字段描述
字段名
数据类型
是否主键
是否为空
自动编号
AutomaticNum
数据库课程设计--学生成绩管理系统
数据库原理与应用课程设计说明书题目:学生成绩管理系统院系:专业班级:学号:学生姓名:指导教师:2008年12 月22 日一概述1.1目的与要求随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。
要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
1.2设计环境① Microsoft SQL Server 2000② Microsoft Visual C++ 6.0二需求分析2.1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。
(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。
容易地完成学生信息的查询操作。
(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。
2.2 系统模块设计成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信2.3 数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:三概念模型设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。
学生成绩管理系统数据库设计全(一)
学生成绩管理系统数据库设计全(一)学生成绩管理系统数据库设计全随着教育信息化的不断推进,学生成绩管理系统逐渐成为学校教育管理的重要组成部分。
本文将从数据库设计角度,介绍学生成绩管理系统数据库的全面设计。
一、需求分析学生成绩管理系统需要支持以下功能:1.录入学生、课程、教师、班级、成绩信息2.查询学生、课程、教师、班级、成绩信息3.修改学生、课程、教师、班级、成绩信息4.删除学生、课程、教师、班级、成绩信息5.统计成绩信息、排名6.计算平均分、总分、最高分、最低分7.生成成绩单、班级报告等报表二、数据库设计基于需求分析结果,我们可以设计以下数据库模型:1.学生信息表(student_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增name | varchar(20) | 姓名gender | varchar(2) | 性别birthday | date | 出生日期class_id | int | 外键,班级ID2.班级信息表(class_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增name | varchar(20) | 班级名称3.教师信息表(teacher_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增name | varchar(20) | 姓名gender | varchar(2) | 性别4.课程信息表(course_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增name | varchar(20) | 课程名称5.成绩信息表(score_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增course_id | int | 外键,课程ID student_id | int | 外键,学生ID teacher_id | int | 外键,教师ID score | int | 分数6.报表信息表(report_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增student_id | int | 外键,学生ID course_id | int | 外键,课程ID teacher_id | int | 外键,教师ID score | int | 分数mean_score | float(2) | 平均分top_score | int | 最高分low_score | int | 最低分rank | int | 排名三、系统架构学生成绩管理系统的整体架构如下:1.数据采集模块该模块用于录入、修改、删除学生成绩信息。
数据库学生成绩查询与管理系统课程设计
数据库学生成绩查询与管理系统课程设计数据库原理课程设计任务书班级:学号:姓名:成绩:电子与信息工程学院计算机科学系1设计题目名称"电信学院学生成绩管理系统" 2系统功能模块设计学生信息管理:学生对自己的信息进行查询,学生基本信息包括:学号、姓名、性别、年龄、专业、班级、密码、各科成绩等。
教师信息管理:老师自己信息的管理,教师基本信息包括:教师号、姓名、课程号、性别、电话、密码等,可以对学生成绩进行录入、修改等。
再者便是课程管理,在该模块中应该包含有对学生成绩信息的查询和处理,如包括各科成绩单、获奖学金信息查询统计、补考名单,及格率、优秀率、平均分统计等。
电信学院学生成绩管理系统基本信息管理选课及成绩管理查询统计学生信息各科成绩单获奖学金信息查询补考名单及格率优秀率平均分统计课程信息教师信息专业班级信息成绩信息的录入选课信息修改学生成绩课程学号班级密码专业姓名性别课程号学分教师号课程名教师选择分数教师号姓名性别课程号密码MNNP年龄电话将E-R图转换为关系模型实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个独立的关系模式。
与该联系相联的个实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同的关系模式可合并。
具体的基本E—R图向关系模式的转化如下:(1)学生(学号,姓名,性别,年龄,专业,班级,密码),其主关键字为学号;(2)课程(课程号,课程名,教师名,学分),其中主关键字为课程号;(3)成绩(学号,课程号,分数),其中主关键字为学号和课程号;(4)教师(教师号,姓名,课程号,性别,电话,密码),其中主关键字为教师号;5数据库物理设计数据库中用到的表数据库表名关系模式名称备注Student 学生学生学籍信息表Course 课程课程基本信息表Score 成绩选课成绩信息表Teacher 教师教师基本信息表Student基本情况数据表字段名字段类型长度备注Student _sno Char 10 学号(主键)Student _sname char 10 姓名Student _sex char 4 性别Student_age int 2 年龄Student_ major char 10 专业Student_ classes char 10 班级Student_password char 10 密码Course数据表字段名字段类型长度备注Course_cno char 10 课程号(主键)Course_cname char 10 课程名Teaher_sno char 10 教师号Course_score int 2 学分Score情况数据表字段名字段类型长度备注Student_sno char 10 学号(主键)Course_cno char 10 课程号(主键)Score int 4 分数Teacher基本情况数据表字段名字段类型长度备注Teaher_sno char 10 教师号(主键)Teaher_name char 10 教师姓名Course_cname char 10 课程名Teaher _sex char 4 性别Teaher _password char 10 密码Teaher _telephone char 10 电话6程序运行环境和开发环境Micsoft SQL Server 20007主要模块程序流程图电信学院学生成绩管理系统学生教师查询学生信息返回学生信息查询教师信息返回教师信息返回选课信息查询选课信息查询选课信息返回选课信息查询成绩信息查询成绩信息查询成绩信息返回成绩信息查询学生信息返回学生信息查询教师信息返回教师信息8主要功能实现的程序段8.1创建基本表(1)学生信息表的建立。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“学生成绩管理”数据库设计文档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)自定义数据库类型学号,课程号可以考虑用自定义的数据类型。
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 zyfy信息,alter table jsb add constraint b6DEFAULT'信息'for fyzc讲师,alter table jsb add constraint b7DEFAULT'讲师'for zczw无。
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=@kch elseprint'无此课程选课信息'end根据教师编号查询授课情况(把sql语句贴在下面)CREATE PROCEDURE jsbhcxsk@jsbh char(6) asbeginif exists(select*from skb where jsbh=@jsbh) select*from skb where jsbh=@jsbh elseprint'无此教师授课信息'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)课程成绩分布统计。