MySQL (一) 数据库基础
数据库基础
【 数据库(DataBase)】
是按照一定的数据结构来组织、存放和管理数据的仓库。数据库由一些持久的相互关联数据的集合组成,并以一定的组织形式存放在计算机的存储介质中
【数据库管理系统(DataBase Management System 简称DBMS)】
是一种操纵和管理数据库的软件,用于创建、使用和维护数据库。数据库管理员(DataBase Administrator 简称DBA)通过使用DBMS提供的工具对数据库进行管理。像MySQL、SQL Server 都是DBMS
DBMS应提供如下功能:
(1)数据定义功能可定义数据库中的数据对象。
(2)数据操纵功能可对数据库表进行基本操作,如插入、删除、修改、查询。
(3)数据的完整性检查功能保证用户输入的数据应满足相应的约束条件。
(4)数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据。
(5)数据库的并发控制功能使多个应用程序可在同一时刻并发地访问数据库的数据。
(6)数据库系统的故障恢复功能使数据库运行出现故障时进行数据库恢复,以保证数据库可靠运行。
(7)在网络环境下访问数据库的功能。
(8)方便、有效地存取数据库信息的接口和工具。编程人员通过程序开发工具与数据库的接口编写数据库应用程序。数据库管理员(DBA,DataBase Adminitrator)通过提供的工具对数据库进行管理。
【数据库系统】
数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。图1.1描述了数据库系统的构成。

【数据模型】
数据库的发展史上主要有三种模型:层次模型、网状模型、关系模型,现在仅仅剩下关系模型在使用
● 关系模型
1、以二维表格(关系表)的形式组织数据库中的数据。
2、表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为:
关系表名(字段名1,…,字段名n),通常把关系表的结构称为关系模式。
3、在关系表中,如果一个字段或几个字段组合的值可唯一标志其对应记录,则称该字段或字段组合为码。例如,“学号”可唯一标志每一个学生,“课程号”可唯一标志每一门课,“学号”和“课程号”可唯一标志每一个学生一门课程的成绩。
4、有时一个表可能有多个码,如姓名不允许重名,则“学号”、“姓名”均是学生信息表码。对于每一个关系表通常可指定一个码为“主码”,在关系模式中,一般用下横线标出主码。设学生表的名字为XS,关系模式可分别表示为:XS(学号,姓名,专业名,性别,出生日期,总学分,备注)
设课程表的名字为KC,关系模式可分别表示为:KC(课程号,课程名,类别,开课学期,学时,学分)
设成绩表的名字为XS_KC,关系模式可分别表示为:XS_KC(学号,课程号,成绩)
关系数据库设计
【介绍】
1、所谓的关系数据库的设计就是设计一个具体系统中都有哪些表需要创建和存储,以及这些表之间的关系是怎么样的
2、关系数据库的设计一般遵循两步:
①概念设计(又分为 建立实体模型 和 建立实体模型之间的关系)
②逻辑设计
【概念设计】
概念设计的目标就是设计出如下的概念模型图:

一、概念设计——从具体的系统中抽象出最基本的实体集,画出实体集模型图
1、通常,把每一类数据对象的个体称为“实体”,而每一类对象个体的集合称为“实体集”,因此在学生成绩管理系统中主要涉及“学生”和“课程”两个实体集。其他非主要的实体可以很多,如班级、班长、任课教师、辅导员等实体。
2、每个实体集涉及的信息项称为属性。就“学生”实体集而言,它的属性有学号、姓名、专业名、性别、出生日期、总学分、备注。“课程”实体集属性有课程号、课程名、类别、开课学期、学时和学分。
3、实体集中的实体彼此是可区别的,如果实体集中的属性或最小属性组合的值能唯一标志其对应实体,则将该属性或属性组合称为码。对于每一个实体集,可指定一个码为主码。
4、如果用矩形框表示实体集,用带半圆的矩形框表示属性,用线段连接实体集与属性,当一个属性或属性组合指定为主码时,在实体集与属性的连接线上标记一斜线,则可以用上图描述学生成绩管理系统中的实体集及每个实体集涉及的属性。
二、概念设计——建立起上面建立起来的实体集模型图之间的关系——概念结构设计
1、实体集A和实体集B之间存在各种关系,通常把这些关系称为“联系”。通常将实体集及实体集联系的图表示为实体(Entity)-联系(Relationship)模型;
2、从分析用户项目涉及的数据对象及数据对象之间的联系出发,到获取E-R图的这一过程称为概念结构设计
3、联系用菱形表示,通过直线与实体相连。这样构成的图就是E-R图,E-R图就是E-R模型的描述方法。
4、两个实体集A和B之间的联系可能是以下三种情况之一:
①一对一的联系(1:1)
A中的一个实体最多与B中的一个实体相联系,B中的一个实体也最多与A中的一个实体相联系。例如,“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班只有一个班长,反过来,一个正班长只属于一个班。“班级”与“正班长”两个实体集的E-R模型如图

图 1.5
②一对多的联系(1:n)
A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为,一个班可有若干学生,反过来,一个学生只能属于一个班。“班级”与“学生”两个实体集的E-R模型如图

图1.6
③多对多的联系(m:n)
A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为,一个学生可选多门课程,反过来,一门课程可被多个学生选修。“学生”与“课程”两个实体集的E-R模型如图

图1.7
这里要注意:在菱形框旁边有是可以有属性的,比如上图,这个成绩属性就是两个实体产生关系的连接点
【逻辑设计】
1、这部分工作就是将上面得到的E—R图,转换成关系模式,从而最终形成一个系统中的各个表,这样的话,就能够在数据库中创建各个表了
2、下面介绍如何根据上面的三种E—R图,转化成关系模式表达式
①(1:1)联系的E-R图到关系模式的转换
对于(1∶1)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。例如,考虑图1.5描述的“班级(BJ)”与“正班长(BZ)”实体集通过属于(SY)联系E-R模型可设计如下关系模式(下横线表示该字段为主码):
BJ(班级编号,院系,专业名,人数)
BZ(学号,姓名)
SY(学号,班级编号)
(2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。例如,考虑图1.5描述的“班级(BJ)”与“正班长(BZ)”实体集通过属于(SY)联系E-R模型可设计如下关系模式:
BJ(班级编号,院系,专业名,人数)
BZ(学号,姓名,班级编号)
或者
BJ(班级编号,院系,专业名,人数,学号)
BZ(学号,姓名)
②(1:n)联系的E-R图到关系模式的转换
对于(1∶n)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。
(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。例如,考虑图1.6描述的“班级(BJ)”与“学生(XS)”实体集E-R模型可设计如下关系模式:
BJ(班级编号,院系,专业名,人数)
XS (学号,姓名,专业名,性别,出生日期,总学分,备注)
SY(学号,班级编号)
(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。例如,图1.6“班级(BJ)”与“学生(XS)”实体集E-R模型可设计如下关系模式:
BJ(班级编号,院系,专业名,人数)
XS (学号,姓名,专业名,性别,出生日期,总学分,备注,班级编号 )
③(m:n)联系的E-R图到关系模式的转换
对于(m∶n)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。例如,图1.7描述的“学生(XS)”与“课程(KC)”实体集之间的联系可设计如下关系模式:
XS (学号,姓名,专业名,性别,出生日期,总学分,备注)
KC(课程号,课程名称,类别,开课学期,学时,学分)
XS_KC (学号,课程号,成绩)
关系模式XS_KC的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。

浙公网安备 33010602011771号