1、第六章第六章 数据库技术基础数据库技术基础本章要点本章要点q 数据库系统概述数据库系统概述 q 关系数据库关系数据库q 数据库设计数据库设计数据库系统概述数据库系统概述 数据管理技术的发展分三个阶段:数据管理技术的发展分三个阶段:人工管理阶段人工管理阶段 文件系统管理阶段文件系统管理阶段 数据库系统管理阶段数据库系统管理阶段数据管理技术的发展数据管理技术的发展数据库数据库(Database,(Database,简称简称DB)DB)是是储存在计算机内、储存在计算机内、有有的、可的、可的的数据集合数据集合。数据库系统概述数据库系统概述 一、数据库数据库二、数据库管理系统数据库管理系统数据库管理系统
2、数据库管理系统(DataBase(DataBase Management Management SystemSystem,DBMS)DBMS)位于应用程序和操作系统之间,位于应用程序和操作系统之间,是为建立、使用和维护数据库而配置的一层是为建立、使用和维护数据库而配置的一层数据管理软件,负责对数据库中的数据进行数据管理软件,负责对数据库中的数据进行统一的管理和控制。统一的管理和控制。o目前常用的数据库目前常用的数据库nOracle oLarry Ellison 和另两个编程人员在和另两个编程人员在1977创办,目前创办,目前Oracle关关系数据库产品的市场占有率名列前茅。系数据库产品的市场占
3、有率名列前茅。nSQL Servero1989年,微软发布了年,微软发布了SQL Server 1.0 版。版。nmySQL omySQL是一个小型关系型数据库管理系统,目前是一个小型关系型数据库管理系统,目前MySQL被广被广泛地应用在泛地应用在Internet上的中小型网站中。由于其体积小、速度上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了网站为了降低网站总体拥有成本而选择了MySQL作为网站数作为网站数据库。据库。nSybase o公司成立于公司成立于19
4、84年,公司名称年,公司名称“Sybase”取自取自“system”和和“database”相结合的含义。相结合的含义。数据库系统概述数据库系统概述 oAcess 数据库数据库n由微软发布的关联式由微软发布的关联式数据库管理系统数据库管理系统。n一些不熟练的程序员和非程序员的一些不熟练的程序员和非程序员的“进阶用户进阶用户”能使能使用它来开发简单的应用软件用它来开发简单的应用软件 nAccess 的可扩放性并不高的可扩放性并不高 数据库系统数据库系统(Data(Data Base SystemBase System,DBS)DBS)是指带有数据库的是指带有数据库的计算机系统。包括计算机系统。包
5、括数据库、数据库管数据库、数据库管理系统、应用程序、理系统、应用程序、数据库管理员以及数据库管理员以及用户等部分用户等部分 数据库系统概述数据库系统概述 三、数据库系统数据库系统用户1用户2用户n 数据库系统示意图数据库管理系统数据库应用程序数据库管理员q 数据的整体结构化。数据的整体结构化。q目前数据库以二维目前数据库以二维表的形式存在表的形式存在 q 数据的共享性高,冗余数据的共享性高,冗余度低。度低。q 数据的独立性高。数据的独立性高。q 数据的统一管理和控制。数据的统一管理和控制。数据库系统概述数据库系统概述 四、数据库系统的特点数据库系统的特点学号姓名性别班级200805360蔡汶庭
6、女机械081200805361宋艳美女机械081200805362苗圆圆女机械081200805363曹永玲女机械081200805364王丹波女机械081200805365邓玮玮女机械081模型是现实世界特征的模拟和抽象。模型是现实世界特征的模拟和抽象。数据模型应满足三方面要求:数据模型应满足三方面要求:q能比较真实地模拟现实世界;能比较真实地模拟现实世界;q容易为人所理解;容易为人所理解;q便于在计算机上实现。便于在计算机上实现。根据数据模型的应用目的不同,数据模型分为两类根据数据模型的应用目的不同,数据模型分为两类 q概念模型,也称信息模型,它是按用户的观点来对数概念模型,也称信息模型,
7、它是按用户的观点来对数据进行描述据进行描述 q逻辑数据模型,它是按计算机系统的观点对数据进行逻辑数据模型,它是按计算机系统的观点对数据进行描述描述 数据模型数据模型数据库系统概述数据库系统概述 数据结构:数据结构:所研究的对象类型的集合。所研究的对象类型的集合。数据操作数据操作:对相应数据结构允许执行的操作的集合:对相应数据结构允许执行的操作的集合数据的完整性约束:数据的完整性约束:一组完整性规则的集合。完整性规则一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的是给定的数据模型中数据及其联系所具有的制约和依存规则,以保证数据的正确、有效制约和依存规则,以保证数据的正确、有
8、效和相容和相容。数据模型数据模型数据库系统概述数据库系统概述 一、数据模型的组成要素一、数据模型的组成要素实体:客观存在并可相互区别的事物称为实体实体:客观存在并可相互区别的事物称为实体(Entity)(Entity)。实体可以是具体的人、事、物,也可以是抽象实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如,一个职员、一名学生、的概念或联系。例如,一个职员、一名学生、一个车间、学生选课、车间领料等都是实体一个车间、学生选课、车间领料等都是实体。属性:实体的特性称为实体的属性属性:实体的特性称为实体的属性(Attribute)(Attribute)。一个。一个实体可以由若干个属性来刻画
9、。例如,学生可实体可以由若干个属性来刻画。例如,学生可以由学号、姓名、专业、班级等属性刻画以由学号、姓名、专业、班级等属性刻画。数据模型数据模型数据库系统概述数据库系统概述 二、概念模型(实体二、概念模型(实体-联系数据模型)联系数据模型)联系:在现实世界中,事物内部以及事物之间是有联系联系:在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体集内部的的,这些联系在信息世界中反映为实体集内部的联系和实体集之间的联系联系和实体集之间的联系。二、实体二、实体-联系数据模型联系数据模型数据模型数据模型数据库系统概述数据库系统概述 两个实体集之间的联系分为三类:两个实体集之间的
10、联系分为三类:一对一联系一对一联系(1(1:1)1)o如果对于实体集如果对于实体集A A中的每一个实体,实体集中的每一个实体,实体集B B中至多有一个实体与之联系,反之亦然,中至多有一个实体与之联系,反之亦然,则称实体集则称实体集A A与与B B具有一对一联系,记为具有一对一联系,记为1 1:1 1。o例如:班级实体和班长实体,一个班级有例如:班级实体和班长实体,一个班级有一个班长,一个班长只能是一个班级的班一个班长,一个班长只能是一个班级的班长长二、实体二、实体-联系数据模型联系数据模型数据模型数据模型数据库系统概述数据库系统概述 一对多联系一对多联系(1(1:n)n)n如如果对于实体集果对
11、于实体集A A中的每一个实体,实体集中的每一个实体,实体集B B中有中有n n个实体个实体(n0)(n0)与之联系,反之,对于与之联系,反之,对于实体实体B B中的每一个实体,实体集中的每一个实体,实体集A A中至多只中至多只有一个实体与之联系,则称实体集有一个实体与之联系,则称实体集A A与与B B具具有一对多联系,记为有一对多联系,记为1 1:n n。n班级实体和学生实体:一个班级有多个学生,而一班级实体和学生实体:一个班级有多个学生,而一个学生只能属于一个班级个学生只能属于一个班级二、实体二、实体-联系数据模型联系数据模型两个实体集之间的联系分为三类:两个实体集之间的联系分为三类:数据模
12、型数据模型数据库系统概述数据库系统概述 多对多联系多对多联系(m(m:n)n)n如果对于实体集如果对于实体集A A中的每一个实体,实体集中的每一个实体,实体集B B中有中有n n个实体个实体(n0)(n0)与之联系,反之,对于实体集与之联系,反之,对于实体集B B中的中的每一个实体,实体集每一个实体,实体集A A中也有中也有m m个实体个实体(m0)(m0)与之联与之联系,则称实体集系,则称实体集A A与与B B具有多对多联系,记为具有多对多联系,记为m m:n n。n学生实体和教师实体:一个学生可以有多个老师教学生实体和教师实体:一个学生可以有多个老师教授,一个老师可以教多名学生授,一个老师
13、可以教多名学生二、实体二、实体-联系数据模型联系数据模型两个实体集之间的联系分为三类:两个实体集之间的联系分为三类:数据模型数据模型数据库系统概述数据库系统概述 E-RE-R图的表示:图的表示:n实体型:实体型:用用矩形矩形表示,矩形框内写明实体名。表示,矩形框内写明实体名。n属性:属性:用用椭圆椭圆形表示,椭圆形内写明属性名,形表示,椭圆形内写明属性名,并用无向边将其与相应的实体连接起来。并用无向边将其与相应的实体连接起来。n联系:联系:用用菱形菱形表示,菱形框内写明联系名,表示,菱形框内写明联系名,并用并用无向边无向边分别与有关实体或联系连接起来,分别与有关实体或联系连接起来,同时在无向边
14、旁标上联系的类型。同时在无向边旁标上联系的类型。数据模型数据模型数据库系统概述数据库系统概述 二、实体二、实体-联系数据模型联系数据模型例:在学生选课子系统中涉及到的实体以及例:在学生选课子系统中涉及到的实体以及实体的属性为:实体的属性为:o 学生实体:学号、姓名、性别学生实体:学号、姓名、性别o 课程实体:编号、名称、性质、学分课程实体:编号、名称、性质、学分有关的语义如下:有关的语义如下:o 每个学生可以选修多门课程;每个学生可以选修多门课程;o 每门课程可以被多个学生选修;每门课程可以被多个学生选修;o 每个学生选修的每门课程都有一个成绩。每个学生选修的每门课程都有一个成绩。可见学生实体
15、和课程实体之间是多对多的联可见学生实体和课程实体之间是多对多的联系,而且联系也有属性,其属性为成绩。系,而且联系也有属性,其属性为成绩。二、实体二、实体-联系数据模型联系数据模型E-RE-R图图数据模型数据模型数据库系统概述数据库系统概述 nm学生学生学生选课子系统学生选课子系统E-R图图课程课程选修选修学号学号姓名姓名性别性别编号编号名称名称性质性质学分学分成绩成绩二、实体二、实体-联系数据模型联系数据模型E-RE-R图图数据模型数据模型数据库系统概述数据库系统概述 基本术语如下:基本术语如下:o关系关系(Relation)(Relation):一个关系对应一张二:一个关系对应一张二维表。维
16、表。o元组元组(Tuple(Tuple):表中的一行即为一个元:表中的一行即为一个元组。组。o属性属性(Atturibute(Atturibute):表中的一列即为一:表中的一列即为一个属性,每一列的第一行是属性名,其个属性,每一列的第一行是属性名,其余行是属性值。余行是属性值。o候选码:候选码:表中的某个属性或属性组合,表中的某个属性或属性组合,它可以唯一的标识一个元组它可以唯一的标识一个元组o主码:主码:在多个候选码中选择一个作为主在多个候选码中选择一个作为主码码一、关系数据结构一、关系数据结构学号姓名性别200805360蔡汶庭女200805361宋艳美女200805362苗圆圆女200
17、805363曹永玲女200805364王丹波女200805365邓玮玮女关系应满足如下性质:关系应满足如下性质:关系必须是规范化的,即要求关系必须满足一定的关系必须是规范化的,即要求关系必须满足一定的规范条件,其中规范条件,其中最基本的一条就是,关系的每一列最基本的一条就是,关系的每一列不可再分不可再分。关系中必须有关系中必须有主码主码,使得元组唯一。,使得元组唯一。如学生关系中,如学生关系中,学号属性是主码,课程关系中,编号是主码,选修学号属性是主码,课程关系中,编号是主码,选修关系中,学号和编号一起是主码。关系中,学号和编号一起是主码。一、关系数据结构一、关系数据结构元组的个数是有元组的个
18、数是有限的且元组的顺限的且元组的顺序可以任意交换。序可以任意交换。属性名是唯一的属性名是唯一的且属性列的顺序且属性列的顺序可以任意交换。可以任意交换。姓名学号性别苗圆圆200805362女曹永玲200805363女蔡汶庭200805360女宋艳美200805361女实体完整性规则实体完整性规则v主码的属性值不能为空值。因为如果出现空值,主码的属性值不能为空值。因为如果出现空值,那么主码就无法保证元组的唯一性。那么主码就无法保证元组的唯一性。参照完整性规则参照完整性规则v关系之间的联系是靠公共属性实现的关系之间的联系是靠公共属性实现的v如果这个公共属性是一个关系如果这个公共属性是一个关系R1R1
19、的主码,那么在的主码,那么在另一个与它有联系的关系另一个与它有联系的关系R2R2中就称为外码。中就称为外码。二、关系完整性规则二、关系完整性规则学号学号姓名姓名性别性别20080536200805360 0蔡汶庭蔡汶庭女女20080536200805361 1宋艳美宋艳美女女20080536200805362 2苗圆圆苗圆圆女女20080536200805363 3曹永玲曹永玲女女学号学号课程课程成绩成绩200805360200805360大学计算机基础大学计算机基础9292200805360200805360程序设计程序设计8080200805362200805362大学计算机基础大学计算机
20、基础8585200805363200805363大学英语大学英语7575学生表学生表选课表选课表 选课表中的学号是外码选课表中的学号是外码v参照完整性规则:外码的取值只有两种可能,要么是空参照完整性规则:外码的取值只有两种可能,要么是空值,要么等于值,要么等于R1中某个元组的主码值。中某个元组的主码值。用户定义完整性用户定义完整性v反映某一具体应用所涉及的数据必须满足的语义要反映某一具体应用所涉及的数据必须满足的语义要求求。二、关系完整性规则二、关系完整性规则关系操作的对象是关系,结果也是关系。关系操作的对象是关系,结果也是关系。查询:就是在一个关系或多个关系中查找满足条件的列查询:就是在一个
21、关系或多个关系中查找满足条件的列或行,得到一个新的关系。或行,得到一个新的关系。插入:在指定的关系中插入一个或多个元组。插入:在指定的关系中插入一个或多个元组。删除:将指定关系中的一个或多个满足条件的元组删除删除:将指定关系中的一个或多个满足条件的元组删除。修改:针对指定关系中满足条件的一个或多个元组修改修改:针对指定关系中满足条件的一个或多个元组修改其数据项的值。其数据项的值。三、关系操作三、关系操作应能真实、充分地反映现实世界,应能真实、充分地反映现实世界,是现实世界中具体应用的一个真实是现实世界中具体应用的一个真实模型模型易于向关系等各种数据逻辑模型转易于向关系等各种数据逻辑模型转换。换
22、。转换原则:转换原则:一个实体型转换为一个关系模式。一个实体型转换为一个关系模式。:实体型的属性实体型的属性:实体型的码实体型的码例如:学生实体可以转换为如下关系模式:例如:学生实体可以转换为如下关系模式:学生(学生(学号学号,姓名,性别),姓名,性别)课程(课程编号,课程名称,性质,学分)课程(课程编号,课程名称,性质,学分)nm学生学生学生选课子系统学生选课子系统E-R图图课程课程选修选修学号学号姓名姓名性别性别编号编号名称名称性质性质学分学分成绩成绩 一个一个m:n联系转换为一个关系模式。联系转换为一个关系模式。:与该联系相连的各实体的码以及联系与该联系相连的各实体的码以及联系本身的属性
23、本身的属性:各实体码的组合各实体码的组合例,例,“选修选修”联系是一个联系是一个m:n联系,可以将它转换为联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:如下关系模式,其中学号与课程号为关系的组合码:选修(选修(学号学号,课程号课程号,成绩),成绩)nm学生学生课程课程选修选修成绩成绩选修表选修表学号学号课程号课程号成绩成绩201100120110011 19595201100220110021 18383201100120110012 27474课程表课程表课程号课程号课程名称课程名称课程性质课程性质1 1 大学计算机基础大学计算机基础 必修必修2 2 程序设计语言程序设计
24、语言必修必修学号学号姓名姓名性别性别20110012011001蔡汶庭蔡汶庭女女20110022011002宋艳美宋艳美女女学生表学生表 一个一个1:n联系可以转换为一个独立的关系模式,也可以联系可以转换为一个独立的关系模式,也可以与与n端对应的关系模式合并。端对应的关系模式合并。1)转换为一个独立的关系模式转换为一个独立的关系模式:与该联系相连的各实体的码与该联系相连的各实体的码以及联系本身的属性以及联系本身的属性:n端实体的码端实体的码例如:例如:“组成组成”联系为联系为1:n联系。联系。将其转换为关系模式的两种方法:将其转换为关系模式的两种方法:1)使其成为一个独立的关系模式:使其成为一
25、个独立的关系模式:组成(组成(学号学号,班号),班号)2)将其学生关系模式合并:将其学生关系模式合并:学生(学生(学号学号,姓名,性别,姓名,性别,班号班号)n1学生学生班级班级组成组成学号学号姓名姓名性别性别班号班号名称名称人数人数2)与与n端对应的关系模式合并端对应的关系模式合并:在在n端关系中加入端关系中加入1端关系的码和联系本身的属性端关系的码和联系本身的属性:不变不变可以减少系统中的关系个数,一般情况下更倾向于采可以减少系统中的关系个数,一般情况下更倾向于采用这种方法用这种方法 一个一个1:1联系可以转换为一个独立的关系模式,也可以联系可以转换为一个独立的关系模式,也可以与任意一端对
26、应的关系模式合并。与任意一端对应的关系模式合并。1)转换为一个独立的关系模式转换为一个独立的关系模式:与该联系相连的各实体的码与该联系相连的各实体的码以及联系本身的属性以及联系本身的属性:每个实体的码均是该关系每个实体的码均是该关系的候选码的候选码2)与某一端对应的关系模式合并与某一端对应的关系模式合并:加入对应关系的:加入对应关系的码和联系本身的属性码和联系本身的属性:不变:不变例如:班主任和班级的例如:班主任和班级的“管理管理”联系为联系为1:11:1联系,可以有三种转联系,可以有三种转换方法:换方法:(1 1)转换为一个独立的关系模式:)转换为一个独立的关系模式:管理(管理(职工号职工号
27、,班号)或管理(,班号)或管理(班号班号,职工号),职工号)(2 2)“管理管理”联系与班级关系模式合并,则只需在班级关系中联系与班级关系模式合并,则只需在班级关系中加入教师关系的码,即职工号:加入教师关系的码,即职工号:班级(班级(班号班号,学生人数,学生人数,职工号职工号)(3 3)“管理管理”联系与教师关系模式合并,则只需在教师关系中联系与教师关系模式合并,则只需在教师关系中加入班级关系的码,即班级号:加入班级关系的码,即班级号:教师(教师(职工号职工号,姓名,性别,职称,姓名,性别,职称,班号班号)小结o数据库、数据库管理系统、数据库系统的概念及数据库、数据库管理系统、数据库系统的概念及数据库系统的特点数据库系统的特点o数据库的三级模式两级映射数据库的三级模式两级映射o实体实体-联系模型的基本概念和联系模型的基本概念和E-R图的画法图的画法o关系数据库的基本概念及性质,关系的完整性规关系数据库的基本概念及性质,关系的完整性规则则o数据库的逻辑结构设计数据库的逻辑结构设计作业题作业题习题习题6:6-16-2