《学生成绩管理系统数据模型的设计与实现(21页).doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统数据模型的设计与实现(21页).doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-学生成绩管理系统数据模型的设计与实现-第 16 页 论文编码(原论文分类号): 首都师范大学本科毕业论文成教学生成绩管理系统数据模型的设计与实现The Design and Implementation of Data model in Adult Educational Student Performance Management System作 者 刘 伟 院 系 教育技术系 专 业 教育技术学 学 号 1077500031 指导教师 王晓春 日 期 2011年5月6日 中文摘要在计算机高度普及的今天,信息系统已经成为众多企事业单位、教育机构、医疗机构所不可或缺的数据管理仓库。这些数据与
2、人们的生活息息相关。它的查询效率直接影响着人们的工作效率。数据模型设计的好坏直接决定着信息系统的工作效率,所以在系统开发之前进行详细的数据模型设计是十分必要的。本文以成教学生成绩管理系统为背景深入分析了数据模型设计的方法,讲述了需求分析,概念结构设计,逻辑结构设计直至最终建立数据库的详细过程。关键字:成绩管理系统;信息化;数据库;需求分析;数据流图;AbstractToday, the development of computer is highly popular. Either to educational or institutions, and medical institution
3、s, information system has became a very important data management warehouse. These data are sufficient to peoples daily life. Its efficiency directly has impact on the peoples work efficiency. The quality of the data model design directly determines the efficiency of information systems, so the deta
4、iled design of the data model before the development of the system is very necessary. In this paper, we deeply analyze the way to Data Model Design in the background of the development of Adult Educational Student Performance Management System. It describes the requirements analysis, conceptual desi
5、gn, and logic design until the process to establish a database.Key words: Performance management system; Information; Database; Demand Analysis; DFD;目录0 引言10.1 研究背景10.2 数据模型设计与实现过程20.3 论文内容与组织21 需求分析31.1 简述31.2 数据流图31.3 数据字典62 概念结构设计112.1 概念结构设计的方法112.2 局部视图设计112.2.1 选择局部应用112.2.2 设计分E-R图112.3 视图集成1
6、32.3.1 生成初步E-R图132.3.2 修改与重构143 逻辑结构设计163.1 逻辑结构设计的概念和方法163.2 概念结构(E-R图)向逻辑结构的转换163.3 数据模型的优化194 数据库实现204.1 数据库系统的选择204.2 实现步骤和方法204.3 建表语句22参考文献27致谢290 引言0.1 研究背景在计算机高度发达,信息更新速度飞快的今天。学校在管理、教学、办公各个方面也在悄悄地变化。一个学校的信息化建设水平体现在这个学校信息系统建设的完善程度上。以现代化工具代替传统手工作业。无疑使用信息化管理使教学更先进、办公更高效、管理更科学,信息交流更迅速。学生成绩管理系统是学
7、校信息系统的重要组成部分,教学人员和学生对它的利用率极高。所以,学生成绩信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但是本系的成教学生成绩管理系统存在诸多问题,远远不能满足广大师生的的需求。比如不能联网操作,大量数据信息需要管理员一人完成,工作量巨大。还有查询速度缓慢,查询不准确,报错率高等问题。因此,开发一套功能完善的管理软件成为很有必要的事情,故决定选择学生成绩管理系统来作为本人的课程设计,在很短的时间里开发出一套界面友好,功能强大,使用简单的适用于各规模学院的学生成绩管理系统。该学生成绩管理系统能有效的处理在校学生的成绩管理,具有学生信息管理、成绩输入、成绩查询及打印功能。
8、建立数据模型是数据仓库开发过程中必不可少的一步,它在系统的开发过程中具有非常重要的作用:1、建立数据模型可以使系统分析师更好的理解商业需求,以确保最终开发的系统可以满足需求。许多商业领域专家可以清楚的说明白问题和解决方法,但是这是受当时的环境限制的,并不是真正的商业需求。通过建立数据模型,可以不断的修正和完善商业需求.系统分析师则由这些商业需求出发,选择最合适的开发模式,最终得到正确的系统。2、数据模型有利于复用和共享。数据模型建立了基本的逻辑数据结构,新项目可以根据自己的项目范围,复用这个模型。这扩大了数据模型的应用范围,并且使应用这个模型的所有项目之间具有一致性。3、数据模型有利于降低系统
9、开发和维护的时间和成本。在初始阶段定义完整的需求可以使后期的设计,编码,测试和实施更为迅速,过渡更为平滑。纠正一个模型的错误也远比纠正一个真实系统错误的代价低。而且,它可以降低用户需求变化带来的成本,当用户提出某些新的需求的时候,修改模型要比修改整个系统简单多了。4、不对数据模型进行设计将导致很多不良后果。传统的设计人员是根据数据流程图和分析阶段产生的报告来进行系统的设计,并不是根据数据模型.由于没有建立数据模型,数据结构是比较混乱,需求定义也不够完善,这必然导致最终的系统无法满足需求,出现修改甚至返工的代价。建立数据模型可以促使开发人员在独立于操作系统的层面上完整考虑需求,因此可以提取出最重
10、要的需求,从而建立完善的系统。0.2 数据模型设计与实现过程数据模型的设计是以需求分析为基础,在了解了用户对系统的功能需求之后,我们依照这些需求进行数据模型的设计。把现实世界中的实体通过数据模型设计转换为抽象的概念型的数据,并把实体间的联系转换为数据间的联系。再依据这些数据和数据间的联系建立数据库。数据模型的设计包括概念结构设计、逻辑结构设计、物理模型设计。本论文从需求分析阶段开始论述,可以更清晰的剖析数据模型的设计过程。即数据流程图、数据字典转换为E-R图,E-R图转换为关系数据模型,再由关系数据模型建立数据库的过程。0.3 论文内容与组织本文包括五大部分,分别是:引言、需求分析、概念结构设
11、计、逻辑结构设计、数据库实现以及参考文献。其中引言又包括研究背景、数据模型设计与实现过程、论文内容与组织。需求分析包括简述、数据流图、数据字典。概念结构设计包括概念与方法、局部视图设计、视图集成。逻辑结构设计包括概念与方法、概念模型向数据模型的转换、数据模型优化。数据库实现包括数据库系统的选择、实现步骤和方法、建表语句。1 需求分析1.1 简述需求分析是软件开发过程中不可或缺的重要部分。它的做事就是明确系统“做什么”的问题。通过与客户的商讨,制定出一套具有完整功能的开发方案,作为今后开发过程中的准绳。 在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、
12、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。 在软件工程的历史中,很长时间里人们一直认为需求分析是整个软件工程中最简单的一个步骤,但在过去十年中越来越多的人认识到它是整个过程中最关键的一个过程。假如在需求分析时分析者们未能正确地认识到顾客的需要的话,那么最后的软件实际上不可能达到顾客的需要,或者软件无法在规定的时间里完工。 需求分析既然如此重要,自然与本文所论述的“数据模型”设计有着紧密联系,所以在谈模型设计之前就不得不涉及到一些需求分析的问题。我们仅仅给出数
13、据流图和数据字典,至于需求分析的其他内容本文不做赘述。1.2数据流图图1-1为成教学生成绩管理系统的顶层数据流图,反映了整个系统的总体概念。真正的系统功能并没有得到细化。只为了用户对系统有一个整体认识,并宏观的看到系统所处理的数据流。管理员负责把学生的、教师、课程、班级的基本信息录入到系统中,然后系统通过一定的操作把这些基本信息加工成有用的信息。即学生信息、课程安排信息、教师信息、成绩。然后这些数据流按照不同用户的需求流向不同的地方。如当学生向系统发出查询请求后,系统会返回给学生他的个人信息、成绩和他的课程信息。教师登陆系统后,系统会把教师的相关信息直接呈现给教师,包括教师的个人信息和教师所教
14、课程的信息。图1-1 顶层数据流图图1-2为成教学生成绩管理系统的0层数据流图。即把顶层数据流图的“成绩管理系统”进行了细化。细化为一个个的“加工”,这些“加工”是数据流发生变化的地方。本图的“加工”是由系统功能确定的,即学生管理、课程管理、成绩管理、重修管理。比如班级基本信息和学生基本信息通过“学生管理”这一加工变成了学生信息,学生信息是班级基本信息和学生基本信息的综合体,包含了学生和班级的有用信息。图1-2 0层数据流图图1-3为成教学生成绩管理系统的子层数据流图。由于0层数据流图中的“学生管理”加工又涉及两个分加工,所以需要继续将其分解。学生管理数据流图1就是把“学生管理”这一加工再进行
15、细化后得到的数据流图。我们可以看到学生管理被分为了“1.1学生录入”、“1.2学生安排”。图1-3 学生管理数据流图图1-4为成教学生成绩管理系统的子层数据流图。由于0层数据流图中的“课程管理”加工又涉及两个分加工,所以需要继续将其分解。课程管理数据流图2就是把“课程管理”这一加工再进行细化后得到的数据流图。我们可以看到学生管理被分为了“2.1课程录入”、“2.2课程安排”。图1-4 课程管理数据流图图1-5为成教学生成绩管理系统的子层数据流图。由于0层数据流图中的“成绩管理”加工又涉及三个分加工,所以需要继续将其分解。成绩管理数据流图3就是把“成绩管理”这一加工再进行细化后得到的数据流图。我
16、们可以看到成绩管理被分为了“3.1成绩录入”、“3.2成绩查询”和“3.3改分权限管理”。图1-5 成绩管理数据流图1.3 数据字典表1-1至表1-6为数据项:表1-1 学生信息数据项含义说明别名类型长度取值含义学号唯一标识每个学生学生编号char8前2位标别该学生所在年级,后六位按顺序编号学生名记录学生姓名学生姓名char8年龄记录学生年龄学生年龄int2学员年龄必须在18到45岁之间性别记录学生性别学生性别char1表1-2 教师信息数据项含义说明别名类型长度取值含义教师号唯一标识每个教师教师编号char8前2位标别该教师所交年级,后六位按顺序编号教师名记录教师姓名教师姓名char8表1-
17、3 班级信息数据项含义说明别名类型长度取值含义班级号唯一标识每个班级班级编号char4前2位标别该班级所属年级,后两位按顺序编号班级名记录班级名称班级名称char8表1-4 课程信息数据项含义说明别名类型长度取值含义课程号唯一标识每门课程课程编号char8前2位标别该课程所在年级,后六位按顺序编号课程名记录课程名称课程名称char8表1-5 用户信息数据项含义说明别名类型长度取值含义账号记录用户登录名登录名char8学生,教师的编号密码记录用户登陆密码登陆密码char8由8位数字和字母混合组成权限记录登陆权限登录权限int1表1-6 课设信息数据项含义说明别名类型长度取值含义教师号唯一标识每个
18、教师教师编号char8前2位标别该教师所交年级,后六位按顺序编号班级号唯一标识每个班级班级编号char4前2位标别该班级所属年级,后两位按顺序编号课程号唯一标识每门课程课程编号char8前2位标别该课程所在年级,后六位按顺序编号分数修改权限记录分数是否为可更改状态修改权限int40表示可修改,1表示不可修改上课地点备注上课地点,时间等信息课程备注char40表1-7至表1-13为数据结构:表1-7 班级数据结构数据结构:班级含义说明:记录班级有关信息组 成:班级号+班级名表1-8 学生数据结构数据结构:学生含义说明:记录学生有关信息组 成:学号+姓名+年龄+性别表1-9 教师数据结构数据结构:
19、教师含义说明:记录教师有关信息组 成:教师号+教师名表1-10 课程数据结构数据结构:课程含义说明:记录课程有关信息组 成:课程号+程名表1-11 用户数据结构数据结构:用户含义说明:记录用户有关信息组 成:密码+权限表1-12选课数据结构数据结构:选课含义说明:记录学生成绩组 成:学生号+课程号+成绩表1-13 课设数据结构数据结构:课设含义说明:记录课程安排情况组 成:班级号+课程号+教师号+分数修改权限+上课地点表1-14至表1-18为数据流:表1-14 学生基本信息数据流数 据 流:学生基本信息说 明:记录学生基本信息数据来源:管理员数据去向:学生管理表1-15 课程基本信息数据流数
20、据 流:课程基本信息说 明:记录课程基本信息数据来源:管理员数据去向:课程管理表1-16 班级基本信息数据流数 据 流:班级基本信息说 明:记录班级基本信息数据来源:管理员数据去向:学生管理、课程管理表1-17 学生信息数据流数 据 流:学生信息说 明:记录与学生相关的所有信息数据来源:学生管理数据去向:成绩管理表1-18 课程信息数据流数 据 流:课程信息说 明:记录与课程相关的所有信息数据来源:课程管理数据去向:成绩管理、重修管理表1-19至表1-22为处理过程:表1-19 成绩管理处理过程处理过程:成绩管理说 明:为每名学生记录成绩输 入:学生、课程、成绩输 出:成绩查询处 理:记录每个
21、学生每门课程的成绩表1-20 课程安排处理过程处理过程:课程管理说 明:为班级安排课程输 入:班级、教师、课程输 出:课程安排处 理:安排出每个班上什么课,由哪个老师教表1-21 重修管理处理过程处理过程:重修管理说 明:帮重修的学生重新选课输 入:课程输 出:新旧课程参照处 理:把某个学生没过的课的旧课名与现在的新课名进行对照表1-22 学生管理处理过程处理过程:学生管理说 明:为学生分配班级输 入:学生、班级输 出:班级安排处 理:每个学生有一个班级2 概念结构设计通过需求分析,我们已经得到了用户的应用需求,但这些应用需求还是现实世界的具体需求,我们应该首先把他们抽象为信息世界的结构,才能
22、更好地、更准确地用某一个DBMS实现用户的这些需求。本文论述的第二章概念结构设计,就是为了讲述成教学生成绩管理系统的概念结构是如何设计的。本章节分为两大部分来论述,第一部分是局部视图设计,根据需求分析中得到了数据流图和数据字典对每一个应用子模块进行设计;第二部分是视图集成,这部分主要论述如何把第一部分得出的各个子视图结合成一个总视图。2.1 概念结构设计的方法设计概念结构通常有四种方法:第一种:自顶向下。即首先定义全局概念结构的框架,然后逐步细化。第二种:自底向上。即首先定义各局部应用的概念结构,然后将他们集成起来,得到全局概念结构。第三种:逐步扩张。首先定义最重要的核心概念结构,然后向外扩充
23、,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。第四种:混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。本文采用自底向上的方法,以E-R模型为工具来描述概念结构。2.2 局部视图设计2.2.1 选择局部应用选择局部应用是局部视图设计的第一步。在需求分析阶段,我们已经得到了多层数据流图和数据字典。这一节中,我们需要在多层数据流图中选择适当的一层,让这一层中的每一部分对应一个局部应用,即可以这一层的数据流图为出发点,设计分E-R图。但是顶层数据流图概括性很强,只能反映系统的全貌,所以这一层不适合作为设计的
24、出发点。而底层数据流图又过于局限,不能显示出整个系统的应用组成,故一般我们选择中层数据流图。在本系统中即为0层数据流图。在这里我们选择的局部应用分别为:学生管理、课程管理、成绩管理、重修管理。2.2.2 设计分E-R图如图2-1,学生管理过程中,有两个实体参与。分别是学生和班级。学生和班级为组成关系,一个学生对一个班级,一个班级对多个学生。为了节省篇幅,E-R图中省略了各实体的属性描述,这些实体的属性分别为(下同):学生:学号,学生名,性别,年龄,班级号班级:班级号,班级名,班级人数图2-1 学生管理部分E-R图如图2-2,课程管理过程中,有三个实体参与。分别是课程、班级、教师。课程、班级和老
25、师指教是课设关系。一个课程对应多个老师,一个老师对应多个课程。一个课程对应多个班级,一个班级对应多个课程。一个班级对多个老师,一个老师对多个班级。实体的属性分别是:课程:课程号,课程名教师:教师号,教师名班级:班级号,班级名课设:班号,课程号,教师号,上课地点图2-2 课程管理部分E-R图如图2-3和图2-4,成绩管理过程中,有四个实体参与。分别是学生、课程、老师、班级。学生和课程之间是选课关系。一个学生对多门课程,一门课程对多个学生。课程、班级和老师指教是课设关系。一个课程对应多个老师,一个老师对应多个课程。一个课程对应多个班级,一个班级对应多个课程。一个班级对多个老师,一个老师对多个班级。
26、实体的属性分别是:学生:学号,学生名,性别,年龄,班级号课程:课程号,课程名教师:教师号,教师名班级:班级号,班级名选课:学生号,课程号,成绩课设:班号,课程号,教师号,分数修改权限图2-3 成绩管理部分E-R图(1)图2-4 成绩管理部分E-R图(2)2.3 视图集成 2.3.1 生成初步E-R图如图2-5为初步E-R图,成绩管理与课程管理的分E-R图具有相同部分,即课程,教师,班级,课设,可以合并处理,但是应该注意各实体和关系的属性要全面,在后面逻辑设计的时候应该避免属性。图2-5 学生成绩管理系统初步E-R图2.3.2 修改与重构如图2-6为基本E-R图,学生:学号,学生名,性别,年龄,
27、班级号,学生和班级两实体间存在“组成”关系,通过“组成”可以导出学生的班级号,所以学生实体中的班级号是冗余数据,应该去掉。学生:学号,学生名,性别,年龄图2-6 学生成绩管理系统基本E-R图3 逻辑结构设计3.1 逻辑结构设计的概念和方法概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。但是仅仅靠概念模型是不能设计数据库的,我们还需要把概念模型转化为数据模型,这就是本章所要论述的逻辑结构设计。逻辑结构设计一般要分三步进行:第一步:将概念结构转化为一般的关系,网状,层次模型。第二步:将转化来的关系,网状,层次模型向特定的DBMS支持下的数据模型转换。第三步:对数据
28、模型进行优化。本文采用的是现在较为流行的关系模型。如图3-1是系统的完整数据模型图,3.2节会对此图进行详细分析。图3-1 系统的完整数据模型图3.2 概念结构(E-R图)向逻辑结构的转换如图2-6,“学生”、“班级”、“课程”、“教师”都是单个实体。可以直接转换成关系,只要注意属性不要遗漏,名称不要冲突即可。学生:学号,学生名,性别,年龄,见表3-1。班级:班级号,班级名,见表3-2。课程:课程号,课程名,见表3-3。教师:教师号,教师名,见表3-4。表3-1 学生数据模型字段名类型长度说明学生号Char8学生编号学生名Char8学生姓名年龄Int2学生年龄性别Char1学生性别表3-2 班
29、级数据模型字段名类型长度说明班级号Char8班级编号班级名Char8班级名称表3-3 课程数据模型字段名类型长度说明课程号Char8课程编号课程名Char8课程名称表3-4 教师数据模型字段名类型长度说明教师号Char8教师编号教师名Char8教师姓名如图2-6,“组成”是学生和班级的关系。学生、班级是n:1的关系,这种关系有两种转换方法,一种是把1合并到n里,关系的码为n端实体的码。另一种方法是转换为一个独立的关系模式,关系的属性分别是两端实体的码,和关系本身的属性,关系的码是n端实体的码。组成:学号,班级号,见表3-5。表3-5 组成数据模型字段名类型长度说明学号Char8学生编号班级号C
30、har8班级编号“课设”是课程、班级、教师的关系。课程、班级、教师是n:m:z的关系,应该转换为一个独立的、关系,关系的码为各实体的码。分数修改权限和上课地点都是关系本身的属性,是由课程管理和成绩管理两个分E-R图的课设关系合并后得到的总属性。课设:班级号,课程号,教师号,分数修改权限,上课地点,见表3-6。表3-6 课设数据模型字段名类型长度说明班级号Char8班级编号教师号Char8教师编号课程号Char8课程编号分数修改权限Int4以0、1表示备注Char40记录上课地点等信息“选课”是学生和课程的关系。学生、课程是n:m的关系,应该转换为一个独立的关系,关系的码为各实体的码。成绩是关系
31、本身的属性。选课:学号,课程号,成绩,见表3-7。表3-7 选课数据模型字段名类型长度说明学号Char8学生编号课程号Char8课程编号成绩Char2成绩“新旧参照”是临时表,为了避免当课程改名后,系统出错的问题。新旧参照(temp):原班级名,原课程名,现班级名,现课程名,见表3-8。表3-8 新旧参照数据模型字段名类型长度说明原班级名Char8班级旧名原课程名Char8课程旧名现班级名Char8班级新名先课程名Char8课程新名“用户”是临时表,可以验证用户登录,修改用户密码用。“账号”就是其他表中各实体的主属性。用户(temp):账号,密码,登陆权限,见表3-9。表3-9 用户数据模型字
32、段名类型长度说明账号Char8用户登录名密码Char8用户登录密码权限Char1登录权限3.3 数据模型的优化学生关系模式内部存在如下数据依赖:学生号学生名学生号性别学生号年龄班级关系模式内部存在如下数据依赖:班级号班级名教师关系模式内部存在如下数据依赖:教师号教师名课设关系模式内部存在如下数据依赖:班级号,课程号,教师号分数修改权限班级号,课程号,教师号上课地点选课关系模式内部存在如下数据依赖:学生号,课程号成绩各关系已经达到第三范式,无需进一步优化。这里需要说明的是“用户”关系。用户的码是账号,实际上账号就是各实体的编号,如学生就是学号,教师是教师号。当两个关系的码相同时,根据消除冗余数据
33、的原则,应该把这两个关系合并为一个关系。即密码和权限应该放在学生、教师表中,作为学生、教师实体的属性。但在这里为了提高查询速度,方便管理,我们把账号,密码,权限单提出来作为一张独立的表也是可以的。4 数据库实现4.1 数据库系统的选择对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySql和SQL Server。这两者最基本的相似之处在于数据存储和查询系统,二者也都提供支持XML的各种格式。他们的区别在于MySQL有一个用于改变数据的二进制日志。因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上。即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏。在S
34、QL服务器中,你也可以记录SQL的有关查询,但这需要付出很高的代价。mysql的读写性能一流,即使针对大数据量也没问题,但是前提是必须使用简单查询,就是最好不要使用函数/join/group等方式查询。而sqlserver的简单查询速度不如mysql,但复杂查询时,性能降低不多。针对本系统数据量大,维护工作复杂,但是查询方式现对简单等特性,我选择了mysql数据库。4.2 实现步骤和方法在建立数据库是我使用了可视化工具和sql语句两种方式,下面以“选课表”的创建过程为例:1、如图4-1,首先创建一个空表,起名为选课表图 4-12、如图4-2,在表中建立一个字段,起名为sno图 4-23、如图4
35、-3,建立第二个字段,起名为kcno图 4-34、如图4-4,建立第三个字段,起名为score图 4-45、如图4-5,建立kcno外键图 4-56、如图4-6,建立sno外键图 4-6通过上面留个步骤,选课表就建立好了。下面是其他表建完后的截图,见图4-7至图4-14:图4-7 学生表图4-8 课程表图4-9 班级表图4-10 教师表图4-11 组成表图4-12 课设表图4-13 新旧参照表图4-14 用户表4.3 建表语句下面是建表的sql语句:- Table structure for table classDROP TABLE IF EXISTS class;CREATE TABLE
36、class ( cno char(8) NOT NULL DEFAULT , cname char(8) DEFAULT NULL, PRIMARY KEY (cno) ENGINE=InnoDB DEFAULT CHARSET=gb2312;- Table structure for table class_teacher_kcDROP TABLE IF EXISTS class_teacher_kc;CREATE TABLE class_teacher_kc ( cno char(8) NOT NULL DEFAULT 0, tno char(8) NOT NULL DEFAULT 0,
37、kcno char(8) NOT NULL, score_change_right int(4) NOT NULL, other char(40) DEFAULT NULL, PRIMARY KEY (cno,tno,kcno), KEY kcno_index (kcno), KEY cno_index (cno), KEY tno_index (tno), CONSTRAINT cno_index FOREIGN KEY (cno) REFERENCES class (cno), CONSTRAINT kcno_index FOREIGN KEY (kcno) REFERENCES kc (
38、kcno), CONSTRAINT tno_index FOREIGN KEY (tNo) REFERENCES teacher (tno) ENGINE=InnoDB DEFAULT CHARSET=gb2312;- Table structure for table kcDROP TABLE IF EXISTS kc;CREATE TABLE kc ( kcno char(8) NOT NULL, kcname char(8) DEFAULT NULL, PRIMARY KEY (kcno) ENGINE=InnoDB DEFAULT CHARSET=gb2312;- Table stru
39、cture for table old-newDROP TABLE IF EXISTS old-new;CREATE TABLE old-new ( oldCname char(8) NOT NULL, oldKCname char(8) NOT NULL, newCname char(8) NOT NULL, newKCname char(8) NOT NULL, PRIMARY KEY (oldCname,oldKCname,newCname,newKCname) ENGINE=InnoDB DEFAULT CHARSET=gb2312;- Table structure for tabl
40、e studentDROP TABLE IF EXISTS student;CREATE TABLE student ( sno char(8) NOT NULL, sname char(8) DEFAULT NULL, ssex char(8) DEFAULT NULL, sage int(20) DEFAULT NULL, PRIMARY KEY (sno) ENGINE=InnoDB DEFAULT CHARSET=gb2312;- Table structure for table student-kcDROP TABLE IF EXISTS student-kc;CREATE TAB
41、LE student-kc ( sno char(8) NOT NULL, kcno char(8) NOT NULL, score char(8) DEFAULT NULL, PRIMARY KEY (sno,kcno), KEY kc_index (kcno), KEY student_index (sno), CONSTRAINT kc_index FOREIGN KEY (kcno) REFERENCES kc (kcno), CONSTRAINT sno_index FOREIGN KEY (sno) REFERENCES student (sno) ENGINE=InnoDB DE
42、FAULT CHARSET=gb2312;- Table structure for table teacherDROP TABLE IF EXISTS teacher;CREATE TABLE teacher ( tno char(8) NOT NULL, tname char(8) DEFAULT NULL, PRIMARY KEY (tno) ENGINE=InnoDB DEFAULT CHARSET=gb2312;- Table structure for table userloginDROP TABLE IF EXISTS userlogin;CREATE TABLE userlo
43、gin ( username char(8) NOT NULL, password char(8) NOT NULL, permission char(8) NOT NULL, PRIMARY KEY (username) ENGINE=InnoDB DEFAULT CHARSET=gb2312;参考文献1王珊,陈红.数据库系统原理教程.清华大学出版社,1998.184-2182黄明,梁旭.JSP信息系统设计与开发实例.机械工业出版社,2004.152-1553姜力,高群.SQL Server数据库设计与管理.中国林业出版社,2006.12-164普雷斯曼,郑人杰,马素霞,白晓颖.软件工程实践者的研究方法.机械工业出版社, 2007.164-1965萨默维尔,程成,陈霞.软件工程.机械工业出版社,2007.88-1036普雷斯曼.大学计算机教育国外著名教材系列软件工程:实践者之路.清华大学出版社,2006.157-1887胡圣明,褚华.软件设计师教程.清华大学出版社,2009.233-2678孙鑫.Java Web开发三部曲Servlet JSP深入详解:基