1、数据库管理系统的简介数据库管理系统的简介关系运算关系运算数据模型数据模型范式和非范式化范式和非范式化数据库及表的创建数据库及表的创建SQL 语句语句索引与视图索引与视图存储过程、事务与触发器存储过程、事务与触发器游标游标第一章第一章数据库基础数据库基础-1数据库系统的基本概念数据库系统的基本概念信息世界的几个概念信息世界的几个概念关系模型关系模型1.信息:信息是人脑对现实世界中的客观事物以及事物之信息:信息是人脑对现实世界中的客观事物以及事物之间联系的抽象反映,它向我们提供了关于现实世界实际间联系的抽象反映,它向我们提供了关于现实世界实际存在的事物及其联系的有用知识。存在的事物及其联系的有用知
2、识。2.数据:数据是人们用各种物理符号,把信息按一定格式数据:数据是人们用各种物理符号,把信息按一定格式记载下来的有意义的符号组合。数据不仅仅是数字,还可记载下来的有意义的符号组合。数据不仅仅是数字,还可以是文字、图象、声音等各种表现形式。数据经数字化后以是文字、图象、声音等各种表现形式。数据经数字化后可以存入计算机中,是数据库中存储的基本对象。数据和可以存入计算机中,是数据库中存储的基本对象。数据和它的语义是不可分割的。它的语义是不可分割的。3.数据处理:指对各种形式的数据进行收集、整理、加工、数据处理:指对各种形式的数据进行收集、整理、加工、存储和传播的一系列活动的总和。存储和传播的一系列
3、活动的总和。4.数据库数据库(DB):以一定的方式保存在计算机存储设备上的:以一定的方式保存在计算机存储设备上的相互关联的数据的集合。相互关联的数据的集合。StuIDStuNameStuAgeDepID12001mary21112002tom20212003jack19312004nancy221DepIDDepName1English2Computer3Math5.执行数据库管理任务所需的软件称为数据库管理系统执行数据库管理任务所需的软件称为数据库管理系统(DBMS)(1)定义数据存储的结构定义数据存储的结构(数据定义功能数据定义功能)(2)提供数据操作的机制提供数据操作的机制(添加、删除、
4、修改,备份,恢复,查询添加、删除、修改,备份,恢复,查询)(3)提供数据安全性以防止未授权的访问提供数据安全性以防止未授权的访问(安全性,完整性、并发性安全性,完整性、并发性)(4)数据库通信功能数据库通信功能(分布式、网络操作功能分布式、网络操作功能)6.数据库管理员:数据库的建立、使用和维护只靠数据库管理员:数据库的建立、使用和维护只靠DBMS是不够的,还需要有专门的人员来完成,这些人员称为数据是不够的,还需要有专门的人员来完成,这些人员称为数据库管理员。库管理员。7.数据库系统数据库系统(DBS):在计算机系统中引入数据库的系统。:在计算机系统中引入数据库的系统。除了相关的硬件之外,数据
5、库系统还包括数据库、数据库管除了相关的硬件之外,数据库系统还包括数据库、数据库管理系统、应用系统、数据库管理员和用户。理系统、应用系统、数据库管理员和用户。人工管理阶段人工管理阶段的主要特点:的主要特点:(1)数据不保存。计算机主要用于科学计算,计算时输入数据不保存。计算机主要用于科学计算,计算时输入数据,用完就撤走数据。数据,用完就撤走数据。(2)还没有文件的概念。数据由每个程序的程序员自行组还没有文件的概念。数据由每个程序的程序员自行组织和安排。织和安排。(3)数据不共享:每组数据和一个应用程序相对应,因此数据不共享:每组数据和一个应用程序相对应,因此可能导致大量的数据重复。可能导致大量的
6、数据重复。(4)没有形成完整的数据管理的概念,更没有对数据进行没有形成完整的数据管理的概念,更没有对数据进行管理的软件系统。每个程序都要包括数据存取方法、输管理的软件系统。每个程序都要包括数据存取方法、输入入/输出方法和数据组织方法,程序直接面向存储结构,输出方法和数据组织方法,程序直接面向存储结构,因此存储结构的任何修改都将导致程序的修改。程序和因此存储结构的任何修改都将导致程序的修改。程序和数据不具有独立性数据不具有独立性。文件系统文件系统阶段阶段的主要特点:的主要特点:(1)数据可以长期保存在磁盘上,因此可以重复使用。数据不再属于某数据可以长期保存在磁盘上,因此可以重复使用。数据不再属于
7、某个特定的程序,可以由多个程序反复使用。个特定的程序,可以由多个程序反复使用。(2)数据的物理结构和逻辑结构有了区别,但较简单。程序开始通过数据的物理结构和逻辑结构有了区别,但较简单。程序开始通过文件名和数据打交道,不必关心数据的物理存放位置,对数据的读文件名和数据打交道,不必关心数据的物理存放位置,对数据的读/写方法由文件系统提供。写方法由文件系统提供。(3)程序和数据之间有了一定的独立性。应用程序通过文件系统对数程序和数据之间有了一定的独立性。应用程序通过文件系统对数据文件中的数据进行存取和加工,程序员不必过多地考虑数据的物据文件中的数据进行存取和加工,程序员不必过多地考虑数据的物理存储细
8、节,并且,数据在存储上的改变不一定反映在程序上,节理存储细节,并且,数据在存储上的改变不一定反映在程序上,节省了维护工作。省了维护工作。(4)出现了多种文件存储形式及相应的访问方式;但文件之间是独立出现了多种文件存储形式及相应的访问方式;但文件之间是独立的,它们之间的联系要通过程序去构造,文件的共享性也还比较差。的,它们之间的联系要通过程序去构造,文件的共享性也还比较差。数据的存取基本上以记录为单位。数据的存取基本上以记录为单位。数据库系统阶段的特点:数据库系统阶段的特点:(1)能根据不同的需要按不同的方法组织数据,以最大限度地提高用能根据不同的需要按不同的方法组织数据,以最大限度地提高用户或
9、应用程序访问数据的效率。户或应用程序访问数据的效率。(2)数据库不仅能够保存数据本身,还能保存数据之间的相互联系,数据库不仅能够保存数据本身,还能保存数据之间的相互联系,保证了对数据修改的一致性。保证了对数据修改的一致性。(3)相同的数据可以共享,降低了数据的冗余度。相同的数据可以共享,降低了数据的冗余度。(4)数据具有较高的独立性,数据的组织和存储方法与应用程序相互数据具有较高的独立性,数据的组织和存储方法与应用程序相互独立,互不依赖,大大降低了应用程序的开发代价和维护代价。独立,互不依赖,大大降低了应用程序的开发代价和维护代价。(5)提供了一整套的安全机制来保证数据的安全、可靠。提供了一整
10、套的安全机制来保证数据的安全、可靠。(6)可以给数据定义一些约束条件来保证数据的正确性。可以给数据定义一些约束条件来保证数据的正确性。现实世界中的数据要进入到数据库中,需要经过人们的认识、现实世界中的数据要进入到数据库中,需要经过人们的认识、理解、整理、规范和加工。可以把这一过程划分成三个主要理解、整理、规范和加工。可以把这一过程划分成三个主要阶段,即阶段,即现实世界阶段、信息世界阶段和机器世界阶段现实世界阶段、信息世界阶段和机器世界阶段。现实世界现实世界信息世界信息世界机器世界机器世界E-R图图E-R图到表的转换规则图到表的转换规则 人们对现实世界的对象进行抽象,并对其进行命名、分类,在信息
11、世人们对现实世界的对象进行抽象,并对其进行命名、分类,在信息世界用概念模型来对其进行描述。界用概念模型来对其进行描述。信息世界涉及的主要概念:信息世界涉及的主要概念:1.实体实例:对应于现实世界的实体。如一个学生、一门课等。实体实例:对应于现实世界的实体。如一个学生、一门课等。2.实体集(实体):同型实体的集合构成了实体集。实体集(实体):同型实体的集合构成了实体集。3.属性:对应于实体的特征。一个实体可以由若干个属性来刻画。例属性:对应于实体的特征。一个实体可以由若干个属性来刻画。例如,学生实体可以有学号、姓名、性别、班级、年龄等属性。如,学生实体可以有学号、姓名、性别、班级、年龄等属性。4
12、.码:对应于实体的标识特征。例如,学生实体可以用学号来唯一标码:对应于实体的标识特征。例如,学生实体可以用学号来唯一标识,因此学号可以作为学生实体的码。识,因此学号可以作为学生实体的码。5.域:属性的取值范围称为该属性的域。域:属性的取值范围称为该属性的域。6.实体型:用实体名及其属性名集合来描述实体实体型:用实体名及其属性名集合来描述实体 例如,学生实体例如,学生实体型描述为:型描述为:学生学生(学号,姓名,性别,年龄学号,姓名,性别,年龄)弱实体(弱实体(Dependent entity)实体实体中实例中实例的存在依赖于实体的存在依赖于实体中的其他某个实例中的其他某个实例,又称为,又称为弱
13、实体弱实体。即一个实体集的码部分或全部来自于另一个实即一个实体集的码部分或全部来自于另一个实体集。体集。常规实体常规实体(Independent entity)实体中实例的存在不依赖于其他实例,又成为实体中实例的存在不依赖于其他实例,又成为常规实体常规实体。7.联系:现实世界中的事物之间通常都是有联系的,这些联系联系:现实世界中的事物之间通常都是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常指组成实体的各属性之间的联系;实体之间的内部的联系通常指组成实体的各属性之间的联系;实体之间的联系通常指不同实体
14、集之间的联系。这些联系总的来说可以划联系通常指不同实体集之间的联系。这些联系总的来说可以划分为三种:分为三种:n一对一联系一对一联系n一对多一对多(或多对一或多对一)联系联系n 多对多联系。多对多联系。关系关系Chen 将关系定义为将关系定义为“实体间的联系实体间的联系”关系使用带有关系名的菱形表示关系使用带有关系名的菱形表示属性属性 属性是实体的特性属性是实体的特性属性使用标有名称的椭圆来表示,实体使用矩形表示。属性使用标有名称的椭圆来表示,实体使用矩形表示。如果实体集如果实体集A与实体集与实体集B之间存在联系,并且对于实体之间存在联系,并且对于实体集集A中的任意一个实体,在实体集中的任意一
15、个实体,在实体集B中至多只有一个实体与中至多只有一个实体与之对应;而对于实体集之对应;而对于实体集B中的任意一个实体,在实体集中的任意一个实体,在实体集A中中也至多只有一个实体与之对应,则称实体集也至多只有一个实体与之对应,则称实体集A和实体集和实体集B之之间存在着一对一的联系间存在着一对一的联系(表示为表示为1:1)。判断:系和系主任之间的关系?判断:系和系主任之间的关系?如果实体集如果实体集A与实体集与实体集B之间存在联系,并且对于实体集之间存在联系,并且对于实体集A中的任意一个实体,在实体集中的任意一个实体,在实体集B中可以有多个实体与之对应;中可以有多个实体与之对应;而对于实体集而对于
16、实体集B中的任意一个实体,在实体集中的任意一个实体,在实体集A中至多只有一中至多只有一个实体与之对应,则称实体集个实体与之对应,则称实体集A到实体集到实体集B的联系是一对多的的联系是一对多的联系联系(表示为表示为1:n)。判断:学生和系之间的关系?判断:学生和系之间的关系?如果实体集如果实体集A与实体集与实体集B之间存在联系,并且对于实体集之间存在联系,并且对于实体集A中的任意一个实体,在实体集中的任意一个实体,在实体集B中可以有多个实体与之对应;中可以有多个实体与之对应;而对于实体集而对于实体集B中的任意一个实体,在实体集中的任意一个实体,在实体集A中也可以有多中也可以有多个实体与之对应,则
17、称实体集个实体与之对应,则称实体集A到实体集到实体集B的联系是多对多的的联系是多对多的联系联系(表示为表示为m:n)。判断:学生和课程之间的关系?判断:学生和课程之间的关系?一个供应商可以提供若干种零件,某种特定的零件未一个供应商可以提供若干种零件,某种特定的零件未必只有一个供应商供应。必只有一个供应商供应。请画出实体关系图。请画出实体关系图。概念模型是独立于机器的,需要转换成具体的概念模型是独立于机器的,需要转换成具体的DBMS所能所能识别的数据模型,才能将数据和数据之间的联系保存到计算识别的数据模型,才能将数据和数据之间的联系保存到计算机上。在计算机中可以用不同的方法来表示数据与数据之间机
18、上。在计算机中可以用不同的方法来表示数据与数据之间的联系,把表示数据与数据之间的联系的方法称为数据模型。的联系,把表示数据与数据之间的联系的方法称为数据模型。数据库领域常见的数据模型有数据库领域常见的数据模型有4种:种:(1)层次模型层次模型(Hierarchical Model)(2)网状模型网状模型(Network Model)(3)关系模型关系模型(Relational Model)(4)面向对象的模型面向对象的模型(Object Oriented Model)其中,其中,关系模型是目前使用最广泛的数据模型关系模型是目前使用最广泛的数据模型。1.关系数据结构关系数据结构2.关系操作集合关
19、系操作集合3.关系完整性约束关系完整性约束4.对关系的限制对关系的限制 在用户观点下,关系模型中数据的逻辑结构是一张二维在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。表,它由行和列组成。例如,例如,Student表:表:StuIDStuNameStuAgeDepID12001mary21112002tom20212003jack19312004nancy221(1)关系关系:一个关系对应于一张二维表。一个关系对应于一张二维表。(2)关系名关系名:如如“Student”。(3)元组元组:表中的一行,对应于存储文件中的一个记录。表中的一行,对应于存储文件中的一个记录。(4)属
20、性属性:表中的一列。表中的一列。(5)属性名属性名:给每个属性起一个名字。对应于存储文件中给每个属性起一个名字。对应于存储文件中的字段。的字段。StuIDStuNameStuAgeDepID12001mary21112002tom20212003jack19312004nancy221(6)候选码:如果在一个关系中,存在多个属性候选码:如果在一个关系中,存在多个属性(或属性组合或属性组合)都能用来唯一标识该关系的元组,这些属性都能用来唯一标识该关系的元组,这些属性(或属性组合或属性组合)都称为都称为该关系的候选码该关系的候选码(或候选关键字或候选关键字)。例如,假设例如,假设“Student”
21、关系中的姓名没有重名现象,则关系中的姓名没有重名现象,则学号和姓名都是候选码。学号和姓名都是候选码。设设K是关系模式是关系模式R中的属性或属性组,中的属性或属性组,K是是K的任一子集。若的任一子集。若KU,而不存在,而不存在KU,则,则K为为R的候选码(的候选码(Candidate Key)StuIDStuNameStuAgeDepID12001mary21112002tom20212003jack19312004nancy221(最小属性集最小属性集)(7)主码:在若干个候选码中指定作为码的属性主码:在若干个候选码中指定作为码的属性(或属性组合或属性组合)称为该关系的主码称为该关系的主码(或
22、主关键字或主关键字)。例如,学号可以作为例如,学号可以作为“Student”关系的主码。关系的主码。注:主码不允许存放空值,一张表只允许一个主码。注:主码不允许存放空值,一张表只允许一个主码。StuIDStuNameStuAgeDepID12001mary21112002tom20212003jack19312004nancy221(8)全码全码:如果一个关系模型的所有属性一起构成该关系的码,则称为如果一个关系模型的所有属性一起构成该关系的码,则称为全码。全码。Books(StuID,BookID,BorrowTime)(9)主属性主属性:包含在候选码中的属性。如学号。包含在候选码中的属性。如
23、学号。(10)非主属性非主属性:不包含在任何候选码中的属性称为非码属性或非主属性。不包含在任何候选码中的属性称为非码属性或非主属性。如性别和年龄。如性别和年龄。(11)域:属性的取值范围。域:属性的取值范围。如,性别域如,性别域:(男、女男、女),年龄域,年龄域:大于大于0的整数。的整数。(12)分量:元组中的一个属性值。如分量:元组中的一个属性值。如“李明李明”。(13)关系模式:对关系的描述。一般表示为:关系模式:对关系的描述。一般表示为:关系名关系名(属性属性1,属性,属性2,属性,属性n)例如,例如,“Student”表表示为:表表示为:Student(StuID,StuName,St
24、uAge,DepID)关系操作主要包括关系操作主要包括:查询查询 插入插入 修改修改 删除删除 主要包括三类主要包括三类:实体完整性实体完整性参照完整性参照完整性用户定义的完整性。用户定义的完整性。其中,实体完整性和参照完整性是关系模型必须满足的其中,实体完整性和参照完整性是关系模型必须满足的完整性约束条件,用户定义的完整性是指针对具体应用需要完整性约束条件,用户定义的完整性是指针对具体应用需要自行定义的约束条件。自行定义的约束条件。(1)表中的每一个数据项必须是单值的,每一个属性必须是表中的每一个数据项必须是单值的,每一个属性必须是不可再分的基本数据项。不可再分的基本数据项。例如,下表就是一
25、个不满足该要求的表。例如,下表就是一个不满足该要求的表。职工编号姓名工资基本工资职务工资工龄工资001赵军2000500500002刘娜1800400300003李东2300700800(2)每一列中的数据项具有相同的数据类型,来自同一个域。每一列中的数据项具有相同的数据类型,来自同一个域。例如,姓名都是字符类型,成绩都是整数类型。例如,姓名都是字符类型,成绩都是整数类型。(3)每一列的名称在一个表中是唯一的。每一列的名称在一个表中是唯一的。(4)列次序可以是任意的。列次序可以是任意的。(5)表中的任意两行表中的任意两行(即元组即元组)不能相同。不能相同。(6)行次序可以是任意的。行次序可以是任意的。注注:丢失或未知信息可以用丢失或未知信息可以用NULL表示。表示。数据库系统的基本概念数据库系统的基本概念信息世界的几个概念信息世界的几个概念关系模型关系模型