MySQL数据库项目化教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

任务一 需求分析

学生竞赛项目管理系统以信息化技术为管理手段,实现竞赛系统的管理工作,可将竞赛相关信息存储在关系数据库服务器中,供用户随时随地进行存取,数据一致性高。赛前,可在系统上发布相关竞赛信息,方便竞赛的宣传,使用户只需通过浏览器就可以查看竞赛的相关内容。开始竞赛时,系统还提供用户报名注册功能,参赛选手可进行在线注册报名,方便竞赛工作人员统计报名人员情况。竞赛成绩出来后,参赛人员可通过系统查询比赛成绩。综上所述,学生竞赛项目管理系统可实现对赛事的提前宣传,参赛选手的注册报名,后台实时记录参赛选手报名情况,以及对比赛成绩的统计分析等功能,管理方便,效率较高。

学生竞赛项目管理系统是由广东创新科技职业学院与广州市金禧信息技术有限公司联合设计开发的。系统包括赛前发布信息、网上注册、在线报名、查询并发布竞赛成绩等功能。

学生竞赛项目管理系统的数据信息存储在关系数据库服务器中,数据库在管理系统中起到核心的作用,为竞赛相关的数据存储和数据管理提供了平台与手段。为了便于对竞赛进行组织管理,应采用科学的方法设计开发一个结构良好的数据库,这要求数据库开发人员充分掌握数据库的理论知识和设计技巧。

一、任务描述

本次任务依据学生竞赛项目管理系统,分析其需求情况,依据需求情况进行数据库设计,为学生竞赛项目管理系统设计一套科学、合理的数据库系统。

二、任务分析

数据库(Database,DB)是按照一定的数据结构对数据进行组织、存储和管理的容器,是存储和管理数据的仓库。数据库中存储着数据库的对象,如数据表、索引、视图、存储过程、函数、触发器、事件等。

数据库管理系统(DataBase Management System,DBMS)是安装在操作系统之上的,用来管理、控制数据库中各种数据库对象的系统。用户并不直接通过操作系统存取数据库中的数据,而是通过数据库管理系统调用操作系统的进程来管理和控制数据库对象。

关系数据库管理系统(Relational DataBase Management System,RDBMS)是管理关系数据库的系统。关系模型是数据模型的一种,是较常用的数据模型。数据模型除常用的关系模型外,还有层次模型、网状模型、面向对象模型等。目前,关系数据库管理系统有很多,例如,Microsoft SQL Server、DB2、Sybase、Oracle、MySQL等。其中,MySQL数据库具有开源、轻便、易用等特点,像淘宝、百度、新浪微博等很多应用都使用了MySQL数据库。

关系数据库管理系统的特征如下:

① 数据以数据表的形式存放在数据库中;

② 数据表中的每行称为记录,用于记录一个实体的各项属性;

③ 数据表中的每列称为字段,用于记录实体的某一属性;

④ 一张数据表是由许多的行和列组成的,一张数据表记录一个实体集;

⑤ 若干数据表组成数据库,数据库中的数据表与数据表之间存在一定的联系。

学生竞赛项目管理系统的数据库用来存储和管理参赛选手、参赛成绩等相关信息。具体数据涉及参赛选手信息、指导教师信息、赛前培训信息、比赛信息、管理员信息等。这些数据信息按照一定的规则存储在数据库中各张数据表内,并且数据表与数据表之间又存在一定的关联。如多个年级、多个专业的学生可参加多项竞赛,一名学生可参加多项竞赛,而每项竞赛又可以有多名学生参加,每名学生参加竞赛有指导教师进行指导,一名教师又可以指导多项比赛。这些关联关系需要经过分析进行提取,所以就需要进行数据库设计,理清这些数据表之间的关系。

数据库设计是系统开发过程中非常重要的一个环节,设计的好坏直接关系到后面系统的使用是否顺畅。在设计数据库时,可以借助ER/Studio、PowerDesigner等数据库设计工具软件,提高数据库设计的效率。

首先是对系统进行需求分析,分析系统需要存储哪些数据,数据之间存在哪些关系,需要建立哪些应用,对数据有哪些常用的操作,以及需要操作的对象有哪些。分析清楚这些关联关系后,再进行数据库概念设计,对需求分析所得到的数据进行更高层次的抽象描述;然后进行数据库逻辑设计,主要是将概念模型所描述的数据映射为某个特定的DBMS模式的数据;最后是对数据库进行物理设计,确定数据库中有哪些数据表。

数据库在设计过程中需要遵循一定的原则,如实体的属性应该仅存在于某一实体中,如果存在于多个实体中就会造成数据冗余,数据冗余会造成数据存储容量的增加和存储空间的浪费。但是,也不能因为担心数据冗余而使数据不完整。实体是一个单独的个体,不能存在于另一个实体中成为其属性,即一张数据表中不能包含另一张数据表。数据库如果设计得不完美,将会直接影响后期对数据的操作,如数据查询、数据添加、数据修改、数据删除等。

在表1-1中,给出了学生实体,其包括学号、姓名、性别、专业、班级名、所在院系等属性,学生实体中出现了表中套表的现象。因为班级名和所在院系联系紧密,所以应该将班级名、所在院系属性抽取出来,分别放入班级实体、院系实体中。

表1-1 学生表

数据库在设计过程中需要根据用户需求将信息挖掘出来,用户需求信息是现实世界客观存在的事物,事物是相互区别的,也是普遍联系的。需将这些客观存在的事物的联系转换为信息世界的模型,即概念模型。概念模型用于信息世界的建模,有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,简单、清晰、易于用户理解。信息建模是现实世界到机器世界的一个中间层次,是数据库设计的有力工具,概念模型是数据库设计人员和用户之间进行交流的语言。

关系数据库中涉及以下几个基本概念。

① 实体(Entity):客观存在并可相互区分的事物称为实体,可以是具体的人、事、物或抽象的概念。

② 属性(Attribute):实体所具有的某一特性称为属性,一个实体可由多个属性来描述。

③ 码(Key):唯一标识实体的属性集称为码,又称键。

④ 域(Domain):属性的取值范围称为该属性的域。

⑤ 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。

⑥ 实体集(Entity Set):同一类型实体的集合称为实体集。

⑦ 联系(Relationship):在现实世界中事物内部及事物之间的联系,在信息世界中反映为实体内部的联系和实体之间的联系。

三、任务完成

在数据库设计过程中,可使用实体-联系图(Entity-Relationship Diagram)来建立数据模型。实体-联系图简称E-R图,相应地,可将用E-R图描绘的数据模型称为E-R模型。E-R图中包含了实体、属性和联系,通常用矩形框代表实体,矩形框内写明实体名称,用椭圆形代表实体(或联系)的属性,用菱形框代表联系,并用直线将实体(或联系)与其属性连接起来。

例如,在学生实体中,学生的姓名、学号、性别都是属性。如果是多值属性的话,可在椭圆形外面再套椭圆形。学生实体集E-R图、教师实体集E-R图、参赛关系E-R图分别如图1-1、图1-2、图1-3所示。

图1-1 学生实体集E-R图

图1-2 教师实体集E-R图

图1-3 参赛关系E-R图

联系也称关系,可分为一对一联系、一对多联系、多对多联系3种类型。

(1)一对一联系(1∶1)

如果对于实体集A中的每个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1∶1,如图1-4所示。

图1-4 一对一联系

例如,一个班级只有一名正班长,而每名正班长只属于一个班级,则班级与班长的联系是一对一联系。

(2)一对多联系(1∶n

如果对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1∶n,如图1-5所示。

图1-5 一对多联系

例如,某校教师与课程之间存在一对多联系(“教”),即每位教师可以教多门课程,但是每门课程只能由一位教师来教。

(3)多对多联系(mn

如果对于实体集A中的每个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为mn,如图1-6所示。

图1-6 多对多联系

例如,学生与课程之间的联系是多对多联系(“学”),即一名学生可以学多门课程,而每门课程也可以有多名学生来学。

学生竞赛项目管理系统的E-R实体模型如下:一名学生可以参加多项竞赛,一个竞赛项目也可以有多名学生来参加,故参赛学生与竞赛项目之间属于多对多联系。教师指导学生参加竞赛,一位教师可以指导多名学生参加竞赛,一名学生可以参加多项竞赛,可以被多位教师指导,学生参加竞赛与教师指导竞赛之间也是属于多对多联系。

根据分析,学生竞赛项目管理系统的E-R图如图1-7所示。

图1-7 学生竞赛项目管理系统的E-R图

四、任务总结

MySQL是一种开源的关系数据库管理系统,目前,中小型企业大多使用MySQL数据库来存储和管理企业的数据,MySQL使用最常用的数据库管理语言——结构化查询语言(Structured Query Language,SQL)进行数据库管理。

本任务介绍了关系数据库管理系统的基本概念和相关理论知识,以及如何将客观世界的事物转换成信息世界的关系模型。又对学生竞赛项目管理系统中的数据库进行了需求分析,根据需求分析完成了实体集及属性的定义,并用E-R图描述了实体集。其中,介绍了E-R图的三要素:实体集、属性和联系。