《01--数据库系统概述》由会员分享,可在线阅读,更多相关《01--数据库系统概述(70页珍藏版)》请在金锄头文库上搜索。
1、第1章 数据库系统概述本章要点1.数据库举例2.数据库发展阶段3.数据库定义和组成4.数据库的三级模式5.数据库管理系统6.数据库安全保护7.数据模型8.关系数据库1.1 数据库举例微软的微软的NorthwindNorthwind数据库数据库1.2 数据库发展阶段人工管理阶段文件系统阶段数据库系统阶段n n基本实现了数据共享,减少了数据冗余;基本实现了数据共享,减少了数据冗余;n n数据库采用特定的数据模型;数据库采用特定的数据模型;n n数据库具有较高的数据独立性;数据库具有较高的数据独立性;n n数据库系统有统一的数据控制和管理功能。数据库系统有统一的数据控制和管理功能。 数据库发展阶段分
2、布式数据库系统阶段n n分布式数据库是一个逻辑上的整体,是分布在分布式数据库是一个逻辑上的整体,是分布在不同地理位置的数据集合,是计算机网络环境不同地理位置的数据集合,是计算机网络环境下各个局部数据库的逻辑集合,它受分布式数下各个局部数据库的逻辑集合,它受分布式数据库管理系统的控制和管理。据库管理系统的控制和管理。 n n特点特点分布透明性。分布透明性。局部自治与集中控制相结合。局部自治与集中控制相结合。高可靠性和可用性。高可靠性和可用性。高效率和灵活性。高效率和灵活性。1.3 数据库系统定义和组成1 1、定义、定义n n数据库系统(数据库系统(DBSDBS,DataBaseDataBase
3、System System)是指安装和是指安装和使用了数据库技术的计算机系统;数据库系统由五部使用了数据库技术的计算机系统;数据库系统由五部分组成:硬件系统、数据库、数据库管理系统(分组成:硬件系统、数据库、数据库管理系统(DBMSDBMS,Database Management SystemDatabase Management System)、)、应用系统、数应用系统、数据库管理员(据库管理员(DBA DBA ,Database AdministratorDatabase Administrator)和人员。和人员。一般情况下,把数据库系统简称为数据库一般情况下,把数据库系统简称为数据库
4、。n n数据库(数据库(DBDB,DataBaseDataBase)是存放数据的仓库,这里的是存放数据的仓库,这里的仓库在计算机系统当中,并且其中的数据是有一定格仓库在计算机系统当中,并且其中的数据是有一定格式的。式的。n n数据库是长期保存在计算机系统中的、有组织的、可数据库是长期保存在计算机系统中的、有组织的、可以被共享的数据集合。以被共享的数据集合。 2 2、数据库的组成1)硬件平台(1 1)对内存的要求。)对内存的要求。(2 2)对外存空间的需求。)对外存空间的需求。(3 3)系统的数据通道能力。)系统的数据通道能力。2) 软件(1 1)数据库管理系统)数据库管理系统DBMSDBMS是
5、为数据库的建立、使是为数据库的建立、使用和维护所配制的软件系统。用和维护所配制的软件系统。(2 2)支持)支持DBMSDBMS和数据库运行的操作系统,例如,和数据库运行的操作系统,例如,WindowsWindows、Linux Linux 和和UnixUnix操作系统。操作系统。(3 3)有相关的数据库接口的高级语言和编译系统,)有相关的数据库接口的高级语言和编译系统,例如,例如,VBVB编程语言和其相关的编译系统。编程语言和其相关的编译系统。(4 4)以)以DBMSDBMS为核心的应用开发工具,为数据库系为核心的应用开发工具,为数据库系统的开发和使用提供了良好的环境。统的开发和使用提供了良好
6、的环境。3 3)人员)人员(1 1)数据库管理员。)数据库管理员。(2 2)系统分析员和数据库设计人员。)系统分析员和数据库设计人员。(3 3)应用程序员。)应用程序员。(4 4)用户。)用户。1.4 数据库系统的三级模式数据库系统的三级模式:模式、外模式和内模式;与之对应的是数据库的三级结构:全局逻辑结构、局部逻辑结构和物理存储结构。1、模式(Schema)概念n n是数据库中全体数据的逻辑结构和特征的描述,是数据库中全体数据的逻辑结构和特征的描述,模式与具体的数据值无关,也与具体的应用程模式与具体的数据值无关,也与具体的应用程序、高级语言以及开发工具无关。序、高级语言以及开发工具无关。n
7、n模式是数据库数据在逻辑上的视图。模式是数据库数据在逻辑上的视图。n n模式是唯一的,是以数据模型为基础的,模式模式是唯一的,是以数据模型为基础的,模式综合考虑所有用户的需求,并将其结合成有机综合考虑所有用户的需求,并将其结合成有机逻辑整体。逻辑整体。2、外模式(External Schema)n n又称子模式或用户模式,是用户和程序员最后又称子模式或用户模式,是用户和程序员最后看到并使用的局部数据的逻辑结构和特征。一看到并使用的局部数据的逻辑结构和特征。一个数据库可以有若干个外模式个数据库可以有若干个外模式 。3、内模式(Internal Schema)n n又称存储模式,是数据物理结构和存
8、储方式的又称存储模式,是数据物理结构和存储方式的描述,是数据在存储介质上的保存方式,例如,描述,是数据在存储介质上的保存方式,例如,数据保存在磁盘、磁带或者其它的存贮介质上,数据保存在磁盘、磁带或者其它的存贮介质上,是什么形式,是不是被压缩和加密等。是什么形式,是不是被压缩和加密等。n n内模式是物理的存储结构。内模式是物理的存储结构。4、模式之间的关系1.5 数据库管理系统1、功能n n数据库的定义功能数据库的定义功能n n数据操纵功能数据操纵功能n n数据库运行控制功能数据库运行控制功能n n数据字典数据字典2、数据独立性n n数据的物理独立性。数据的物理独立性。n n数据的逻辑独立性。数
9、据的逻辑独立性。1.6 数据库安全保护1、数据的完整性控制n n域完整性控制:是数据库的表中某个特定字段域完整性控制:是数据库的表中某个特定字段允许的数据元素的类型和范围。允许的数据元素的类型和范围。n n关联完整性控制:规定的约束条件以防止对数关联完整性控制:规定的约束条件以防止对数据进行增、删、改操作时,破坏本身及其它相据进行增、删、改操作时,破坏本身及其它相关数据的完整性,或产生不良影响,关数据的完整性,或产生不良影响,2、并发控制n n如果一个数据库是多个用户的,那么如果一个数据库是多个用户的,那么DBMSDBMS必必须对多用户的并发操作加以控制、协调,以保须对多用户的并发操作加以控制
10、、协调,以保证数据的准确性。证数据的准确性。3、数据的安全性控制n n数据安全性分为系统安全和环境安全两大类。数据安全性分为系统安全和环境安全两大类。4、数据库恢复n n为使数据库具有可恢复性,一旦被破坏或丢失,为使数据库具有可恢复性,一旦被破坏或丢失,可以使用保存的副本来恢复,所以基本原则就可以使用保存的副本来恢复,所以基本原则就是保存备份的副本。是保存备份的副本。1.7 数据模型模型是现实世界的特征和抽象。数据模型是工具,是用来抽象、表示和处理现实世界中的数据和信息的工具。数据模型应满足三个方面要求:n n能够比较真实地模拟现实世界。能够比较真实地模拟现实世界。n n非常容易被人理解。非常
11、容易被人理解。n n便于在计算机系统中实现。便于在计算机系统中实现。1、组成要素、组成要素1) 数据结构n n是所研究对象的集合,这些对象包括数据库的是所研究对象的集合,这些对象包括数据库的组成,例如表中的字段、名称等。对象分为两组成,例如表中的字段、名称等。对象分为两类,一是与数据类型内容等相关的对象,另一类,一是与数据类型内容等相关的对象,另一类是数据之间关系的对象。类是数据之间关系的对象。n n是描述一个数据模型性质最重要的方面,因此是描述一个数据模型性质最重要的方面,因此常按数据结构的类型命名数据模型,例如网状常按数据结构的类型命名数据模型,例如网状模型、层次模型和关系模型。模型、层次
12、模型和关系模型。2)数据操作n n是指对数据库中各种对象(型)的实例(值)是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及其有关的允许执行的操作的集合,包括操作及其有关的操作规则。操作规则。n n数据库的操作主要包括查询和更新两个大类,数据库的操作主要包括查询和更新两个大类,数据模型必须定义操作的确切含义、操作符号、数据模型必须定义操作的确切含义、操作符号、操作规则和实施操作的语言。操作规则和实施操作的语言。3)数据的约束条件n n数据及其联系所具有的制约和依存的规则是一数据及其联系所具有的制约和依存的规则是一组完整性规则,这些规则的集合构成数据约束组完整性规则,这些规
13、则的集合构成数据约束条件,确保数据的正确、有效和相容。条件,确保数据的正确、有效和相容。n n数据模型应该反映和规定此数据模型必须遵守数据模型应该反映和规定此数据模型必须遵守的基本完整性约束条件,还要提供约束条件的的基本完整性约束条件,还要提供约束条件的机制,以反映具体约束条件是什么。机制,以反映具体约束条件是什么。2、概念模型、概念模型1)三个世界的概念人们把客观存在的事物以数据的形式存储在计算人们把客观存在的事物以数据的形式存储在计算机中,经历了对现实社会中事物特性的认识、概机中,经历了对现实社会中事物特性的认识、概念化、到计算机数据库里的具体表示,是一个逐念化、到计算机数据库里的具体表示
14、,是一个逐级抽象的过程,是从现实到概念再到数据的三个级抽象的过程,是从现实到概念再到数据的三个领域。领域。有时也将概念世界称为信息世界;将数据世界称有时也将概念世界称为信息世界;将数据世界称为存储或机器世界。为存储或机器世界。 (1)现实世界n n人们管理的对象存于现实世界中,现实世界的人们管理的对象存于现实世界中,现实世界的事物及事物之间存在着联系,这种联系是客观事物及事物之间存在着联系,这种联系是客观存在的,是由事物本身的性质决定的。存在的,是由事物本身的性质决定的。n n举例:医院的医疗管理系统中有医生、患者、举例:医院的医疗管理系统中有医生、患者、专科等构成元素,医生为患者诊疗,患者被
15、送专科等构成元素,医生为患者诊疗,患者被送到不同科室诊治,医生、患者、专科是相互关到不同科室诊治,医生、患者、专科是相互关联的。联的。 (2)概念世界n n概念世界是现实世界在人们头脑中的反映,是概念世界是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述,从而产对客观事物及其联系的一种抽象描述,从而产生概念模型。生概念模型。n n比如,对医生的描述包括姓名、性别、专长、比如,对医生的描述包括姓名、性别、专长、电话、职称等不同项目。电话、职称等不同项目。n n术语: uu实体:把客观存在并且可以相互区别的事实体:把客观存在并且可以相互区别的事物称为实体。实体可以是实际事物,也可物称
16、为实体。实体可以是实际事物,也可以是抽象事件,例如一个医生记录。以是抽象事件,例如一个医生记录。 uu实体集:同一类实体的集合称为实体集。实体集:同一类实体的集合称为实体集。例如,全体医生的记录构成一个完整的医例如,全体医生的记录构成一个完整的医生表,是一个实体集。生表,是一个实体集。 uu属性:描述实体的特性称为属性。例如,属性:描述实体的特性称为属性。例如,医生的编号、姓名、性别、职称、科室等。医生的编号、姓名、性别、职称、科室等。 uu关键字:如果某个属性或属性组合的值能关键字:如果某个属性或属性组合的值能唯一地标识出实体集中的每一个实体,可唯一地标识出实体集中的每一个实体,可以选作关键
17、字,例如,医生编号是唯一标以选作关键字,例如,医生编号是唯一标识医生的不相重复信息,可选作关键字。识医生的不相重复信息,可选作关键字。 uu联系:实体集之间的对应关系称为联系,联系:实体集之间的对应关系称为联系,反映现实世界事物之间的相互关联。反映现实世界事物之间的相互关联。(3)数据世界n n存入计算机系统的数据是将概念世界中的事物存入计算机系统的数据是将概念世界中的事物数据化的结果。数据化的结果。n n为了准确地反映事物本身及事物之间的各种联为了准确地反映事物本身及事物之间的各种联系,数据库表中的数据一定存在一个结构,用系,数据库表中的数据一定存在一个结构,用数据模型表示这种结构。数据模型
18、表示这种结构。n n数据模型将概念世界中的实体及实体间的联系数据模型将概念世界中的实体及实体间的联系进一步抽象,便于计算机处理进一步抽象,便于计算机处理 。 ER图n nE ER R图也被称为图也被称为E ER R模型(实体联系模型),模型(实体联系模型),是描述概念世界、建立概念模型的实用工具。是描述概念世界、建立概念模型的实用工具。n nE ER R图包括三个要素:图包括三个要素: 实体(型):用矩形框表示,框内标注实体名称。实体(型):用矩形框表示,框内标注实体名称。 属性:用椭圆形表示,并用连线与实体连接起来。属性:用椭圆形表示,并用连线与实体连接起来。 实体之间的联系:用菱形框表示,
19、框内标注联系名实体之间的联系:用菱形框表示,框内标注联系名称,并用连线将菱形框分别与有关实体相连,并在称,并用连线将菱形框分别与有关实体相连,并在连线上注明联系类型。连线上注明联系类型。 关系的三种类型: n n一对一联系(一对一联系(1:11:1) 例如,医院的病人只有一个与他相关的病历记例如,医院的病人只有一个与他相关的病历记录;学院与院长之间是一对一的关系。录;学院与院长之间是一对一的关系。n n一对多联系(一对多联系(1:1:n n) 例如,医院的科室与医生之间的关系,学校的例如,医院的科室与医生之间的关系,学校的班级与学生就是一对多的联系。班级与学生就是一对多的联系。 n n多对多联
20、系(多对多联系(m:nm:n) 例如,医院的医生与病人之间的关系,学校的例如,医院的医生与病人之间的关系,学校的学生和课程间存在多对多的联系。学生和课程间存在多对多的联系。 E-RE-R图举例图举例图举例图举例实体与属性 实体与联系 3、 数据模型常用的数据模型包括:1.层次模型2.网状模型3.关系模型1) 层次模型有且仅有一个结点无父结有且仅有一个结点无父结点,此结点是根结点,例点,此结点是根结点,例如,在大学数据模型中的如,在大学数据模型中的校长;校长;其它结点有且仅有一个父其它结点有且仅有一个父结点,比如,校长下属的结点,比如,校长下属的学院院长,他们的父接点学院院长,他们的父接点就是大
21、学校长;就是大学校长;适合于表示一对多的联系,适合于表示一对多的联系,比如,一个校长下属若干比如,一个校长下属若干院长。院长。 2) 网状模型允许结点有多于一个允许结点有多于一个的父结点,可以有一的父结点,可以有一个以上的结点无父结个以上的结点无父结点。点。网状模型适用于表示网状模型适用于表示多对多的联系,例如,多对多的联系,例如,供应商与项目、项目供应商与项目、项目与库存间的关系等都与库存间的关系等都是是M:NM:N的关系,。的关系,。3) 关系模型关系模型一个关系的逻辑结构是一张二维表,二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。关系在磁盘上以文件形式存储,每个字段是表中
22、的一列,每个记录是表中的一行。医生编号姓名职称科室编号专长01104李博主任医师01牙科01106刘晓副主任医师0101020王林副主任医师0102100李颦医师0203002王西平主任医师0304005吴星智副主任医师0406007李可茹主任医师06医生关系患者关系患者病例号姓名性别年龄200212002李小青男36200306007羡平女28200307003王东男12200307006刘戈女40就疹关系就疹关系 序号序号日期日期患者病例号医生编号医生编号诊断结果诊断结果1 12001-10-12001-10-120021200201104牙龈炎牙龈炎2 22002-1-92002-1-9
23、20030600701104智齿智齿3 32002-11-32002-11-320030700601020牙周炎牙周炎4 42003-6-32003-6-320021200202100皮炎皮炎5 52003-10-72003-10-720030600701020牙龈炎牙龈炎术语(1)n n关系关系 一个关系就是一张二维表,每个关系有一个关一个关系就是一张二维表,每个关系有一个关系名。在计算机里,一个关系可以存储为一个数系名。在计算机里,一个关系可以存储为一个数据库文件的表,例如,医生表或患者表。据库文件的表,例如,医生表或患者表。 n n元组元组 表中的行称为元组。一行是一个元组,对应表中表中
24、的行称为元组。一行是一个元组,对应表中的一个记录。的一个记录。术语(2)n n属性属性 表中的列称为属性,每一列有一个属性名,对表中的列称为属性,每一列有一个属性名,对应数据表中的一个字段,例如医生编号、姓名、应数据表中的一个字段,例如医生编号、姓名、职称等字段。职称等字段。 n n域域 属性的取值范围,即不同元组对同一个属性的属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如,在取值所限定的范围。例如,在“ “患者患者” ”表表“ “女女” ”或或“ “男男” ”是性别的取值范围,对应是性别的取值范围,对应“ “性别性别” ”字段的一个域。字段的一个域。 术语(术语(3 3)n
25、n关键字关键字 属性或属性组合,其值能够唯一地标识一个元组。比如,属性或属性组合,其值能够唯一地标识一个元组。比如,“ “医生医生” ”表中的表中的“ “医生编号医生编号” ”字段,字段,“ “患者患者” ”表中的表中的“ “患者病历号患者病历号” ”都唯一地表示一名医生、一名患者,都唯一地表示一名医生、一名患者,那么它们都可以作为记录的关键字。那么它们都可以作为记录的关键字。n n候选码候选码 一个关系中可能有几个属性都可以惟一表示一个元组,一个关系中可能有几个属性都可以惟一表示一个元组,这些属性就是候选码。例如这些属性就是候选码。例如“ “医生编号医生编号” ”和身份证号和身份证号码都是候
26、选码。在码都是候选码。在 挂表牛膝的多个候选码中,选择一挂表牛膝的多个候选码中,选择一个作为主键,主键的个作为主键,主键的 属性被称为主属性。属性被称为主属性。术语(术语(4 4)n n外键外键 在关系在关系A A中存在一个属性,不是关系的主属性,但与另中存在一个属性,不是关系的主属性,但与另一个关系一个关系B B的主键对应,则称其为关系的主键对应,则称其为关系A A的外键。比如的外键。比如学生关系中院系代码属性,与院系关系的主键学生关系中院系代码属性,与院系关系的主键“ “院系院系代码代码” ”对应,所以是学生关系的外键。对应,所以是学生关系的外键。n n关系模式关系模式 对关系的描述称为关
27、系模式,其格式为:关系名(属性对关系的描述称为关系模式,其格式为:关系名(属性1 1,属性,属性2 2,属性,属性N N)。)。一个关系模式对应一个关系一个关系模式对应一个关系的结构。的结构。 关系模型的操作和完整性约束n n关系模型的操作主要包括查询、插入、删除和关系模型的操作主要包括查询、插入、删除和修改数据等。修改数据等。n n操作必须参照数据的完整性约束条件。操作必须参照数据的完整性约束条件。关系模型的存储结构n n在关系模型中实体与实体的联系都用表来表示。在关系模型中实体与实体的联系都用表来表示。1.8 关系数据库关系数据结构关系的完整性关系代数1、关系数据结构1 1)关系)关系n
28、n域:是一组具有相同数据类型值的集合。例如奇数、偶数、域:是一组具有相同数据类型值的集合。例如奇数、偶数、小于小于10241024的的2 2的倍数都可以是域。的倍数都可以是域。 n n笛卡尔积:给定一组域笛卡尔积:给定一组域D D1 1、D D2 2.D.DN N,那么那么D D1 1、D D2 2.D.DN N的笛卡尔积为:的笛卡尔积为: D D1 1XDXD2 2XXDXXDN N=(d d1 1,d d2 2,d dn n)| | d di i D Di i i=1 i=1,2 2,nn其中(其中(d d1 1,d d2 2,d dn n)是一个是一个n n元组或简称元组,其中的每个元组
29、或简称元组,其中的每个d dn n叫叫作一个分量。作一个分量。如果如果D Di i(i=1i=1,2 2,n )n )为有限集,其基数为为有限集,其基数为m m i i (i=1 (i=1,2 2,n)n),则则D D1 1XDXD2 2XXDXXDN N基数基数MM为:为:n nM=M=n n关系的定义关系的定义 D D1 1 D D2 2 .D.DN N笛卡尔积的子集叫做在域笛卡尔积的子集叫做在域D D1 1 D D2 2 .D.DN N上的关系,表示为:上的关系,表示为:R R( D D1 1 ,D D2 2, .D.DN N )R R是关系的名字。是关系的名字。关系中的每个元素用关系中
30、的每个元素用t t表示。表示。n n是关系的度或目。是关系的度或目。n=1n=1时,为单元关系;时,为单元关系;n=2n=2时,为二时,为二元关系。元关系。关系是笛卡尔积的有限子集,关系是二维表,每行对应关系是笛卡尔积的有限子集,关系是二维表,每行对应一个元组,表的列对应一个域。一个元组,表的列对应一个域。n n关系类型:关系类型: 包括基本表或基本关系、查询表和视图表。包括基本表或基本关系、查询表和视图表。基本表是实际存在的表;基本表是实际存在的表;查询表是查询结果对应的表;查询表是查询结果对应的表;视图表是虚表,不对应实际存储的数据,是由基视图表是虚表,不对应实际存储的数据,是由基本表和其
31、他视图表形成的。本表和其他视图表形成的。n n基本关系的性质基本关系的性质每列的分量是同种类型的数据,来自同一个域。每列的分量是同种类型的数据,来自同一个域。不同的列可以来源于同一个域,取不同的属性。不同的列可以来源于同一个域,取不同的属性。列的顺序可以是任意的。列的顺序可以是任意的。任何两元组不得完全相同。任何两元组不得完全相同。行的顺序可以是任意的。行的顺序可以是任意的。每一个分量都是不可分的。每一个分量都是不可分的。2 2)关系模式)关系模式n n关系模式定义:关系模式可以表示为:关系模式定义:关系模式可以表示为:R R(U U,D D,domdom,F F)。)。其中:其中:UU组成关
32、系的属性名集合;组成关系的属性名集合;DD属性组属性组U U中属性来自的域;中属性来自的域;domdom是属性向域的映像集合;是属性向域的映像集合;FF属性间数据的依赖关系集合。属性间数据的依赖关系集合。n n关系与关系模型关系与关系模型 关系模式是静态的,关系是关系模式在某一时刻的状态关系模式是静态的,关系是关系模式在某一时刻的状态或内容,关系是动态的。或内容,关系是动态的。n n模式图模式图 模式图不同于模式图不同于E-RE-R图,一个含有主键和外键的数据库模图,一个含有主键和外键的数据库模式可以用模式图表示,模式图很清楚表明表之间的关式可以用模式图表示,模式图很清楚表明表之间的关系,是很
33、有实用价值的。系,是很有实用价值的。模式图举例1)实体完整性实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主键整体不能取空值。2、关系的完整性对于实体完整性规则说明如下:n n实体完整性规则是针对基本关系而言的。一个实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。基本表通常对应现实世界的一个实体集。n n现实世界中的实体是可区分的,具有某种唯一现实世界中的实体是可区分的,具有某种唯一性标识。性标识。n n关系模型中以主键作为唯一标识。关系模型中以主键作为唯一标识。n n主属性不能取空值,
34、所谓空值就是主属性不能取空值,所谓空值就是“ “不知道不知道” ”或或“ “不确定不确定” ”的值。的值。n n引申实体完整性,主键不能取重复值。引申实体完整性,主键不能取重复值。2 2)参照完整性)参照完整性定义外键与主键之间的引用规则。定义外键与主键之间的引用规则。参照完整性规则参照完整性规则 若属性(或属性组)若属性(或属性组)F F是基本关系是基本关系R R的外键,它与的外键,它与基本关系基本关系S S的主键的主键KsKs相对应(基本关系相对应(基本关系R R和和S S不一不一定是不同的关系),则对于定是不同的关系),则对于R R中每个元组在中每个元组在F F上的上的值必须为:值必须为
35、:n n或者取空值(或者取空值(F F的每个属性值均为空值)。的每个属性值均为空值)。 n n或者等于或者等于S S中某个元组的主键值。中某个元组的主键值。 参照关系参照关系n n称基本关系称基本关系R R为参照关系,基本关系为参照关系,基本关系S S为被参照关系或为被参照关系或目标关系。目标关系。3)用户定义的完整性n n不同的关系数据库系统根据其应用环境的不同,不同的关系数据库系统根据其应用环境的不同,还需要一些特殊的约束条件,用户定义的完整还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。性就是针对某一具体关系数据库的约束条件。 例如,学生的成绩的取值必须在
36、例如,学生的成绩的取值必须在0 0100100之间。之间。 3、关系代数1)并n n设有两个关系设有两个关系R R和和S S具有相同的关系模式,具有相同的关系模式,R R和和S S的并是由属于的并是由属于R R和和S S的元组构成的集合,则并的元组构成的集合,则并表示为表示为R RS S。n n注意:注意:R R和和S S的元数(表的列数)相同。的元数(表的列数)相同。 【例】:本科生关系R(学生编号,姓名,性别,出生年月,班级,照片,简历),研究生关系S(学生编号,姓名,性别,出生年月,班级,照片,简历),两个关系具有相同的元数;n n做做并运算并运算之后的关系之后的关系R RS S的元组包
37、含本科生和的元组包含本科生和研究生元组的集合;研究生元组的集合;n n假设假设R R关系有关系有5 5个元组,个元组,S S有有1010个元组,那么个元组,那么R RS S运算之后,得到的关系之元组数为运算之后,得到的关系之元组数为1515个。个。2)差n n设有两个关系设有两个关系R R和和S S具有相同的关系模式,具有相同的关系模式,R R和和S S的差是由属于的差是由属于R R但不属于但不属于S S的元组构成的集合,的元组构成的集合,表示为表示为R RS S。n n注意:注意:R R和和S S的元数相同。的元数相同。 【例】学生关系R(学生编号,姓名,性别,出生年月,班级,照片,简历),
38、其中包含所有学生的元组,研究生关系S(学生编号,姓名,性别,出生年月,班级,照片,简历),两个关系具有相同的元数.n n假设学生关系假设学生关系R R的元组包含研究生、本科生元组,的元组包含研究生、本科生元组,S S关系只包含研究生的元组,那么经过差运算关系只包含研究生的元组,那么经过差运算R-R-S S后,后,R-SR-S的集合中只包含本科生的元组。的集合中只包含本科生的元组。3)交n n关系关系R R和和S S的交是由属于的交是由属于R R又属于又属于S S的元组构成的元组构成的集合,记为的集合,记为RSRS。R R和和S S要求定义在相同的关要求定义在相同的关系模式上。系模式上。n nR
39、S tRS t t t属于属于R Rt t属于属于SS,R R和和S S的元数相同。的元数相同。n n假设学生关系假设学生关系R R的元组包含研究生、本科生元的元组包含研究生、本科生元组,组,S S关系只包含研究生的元组,做交运算后,关系只包含研究生的元组,做交运算后,关系关系RSRS只包含研究生的元组。只包含研究生的元组。 4)笛卡尔积n n设关系设关系R R和和S S的元数分别为的元数分别为r r和和s s。n n定义定义R R和和S S的笛卡尔积是一个的笛卡尔积是一个( (r+s)r+s)元的元组集元的元组集合,每个元组的前合,每个元组的前r r个分量个分量( (属性值属性值) )来自来
40、自R R的一的一个元组,后个元组,后s s个分量来自个分量来自S S的一个元组,记为的一个元组,记为RSRS。n n若若R R有有mm个元组,个元组,S S有有n n个元组,则个元组,则RS RS 有有mnmn个元组。个元组。笛卡尔积举例Specialists李博王林SpecialistsSpecialtyPatients李博牙科李小青李博牙科羡平李博神经科李小青李博神经科羡平王林牙科李小青王林牙科羡平王林神经科李小青王林神经科羡平Patients李小青羡平Specialty牙科神经科XX5)选择n nF F(R R) t | t t | tR RF(t)=F(t)=真真 n nF F表示选择
41、条件,是一个逻辑表达式表示选择条件,是一个逻辑表达式, ,。n n选择运算是从关系选择运算是从关系R R中选取使逻辑表达式中选取使逻辑表达式F F为真为真的元组,是从行的角度进行的运算。的元组,是从行的角度进行的运算。【例】【例】有一个患者关系,找出有一个患者关系,找出6060岁以上的患者。岁以上的患者。 年龄年龄年龄年龄6060( (患者患者) )。6)投影n n关系关系R R上的投影是从上的投影是从R R中选择出若干属性列组成中选择出若干属性列组成新的关系。记做:新的关系。记做: A A(R R)。n n投影之后不仅取消了原关系中的某些列,而且投影之后不仅取消了原关系中的某些列,而且还可能
42、取消某些元组,因为取消了某些属性列还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同后,就可能出现重复行,应取消这些完全相同的行。的行。n n【例】【例】从医生关系中由选取医生编号和姓名形从医生关系中由选取医生编号和姓名形成的新关系:成的新关系: 医生编号,姓名医生编号,姓名( (医生医生) )7 7)自然联接)自然联接n n连接:是从两个关系的笛卡尔积中选取属性间满足一连接:是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。定条件的元组。n n自然连接是一种特殊的等值连接,它要求两个关系中自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同
43、的属性组,并且在结果中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。把重复的属性列去掉。n n如果如果R R和和S S具有相同的属性组具有相同的属性组A A,两个关系两个关系R R和和S S的自的自然联接用然联接用R R S S表示。表示。【例】【例】在一个银行的数据库中,有关系如下:在一个银行的数据库中,有关系如下:借款人(客户名字,贷款账户编号,支行名称,数额)借款人(客户名字,贷款账户编号,支行名称,数额)存款人(客户名字,存款存款人(客户名字,存款账户账户编号,支行名称,数额)编号,支行名称,数额)如果想找出既有存款又有借款的客户,表示为:如果想找出既有存款又有借款
44、的客户,表示为: 客户名字客户名字客户名字客户名字(借款人借款人 存款人存款人)。8)除法n n给定关系给定关系R(X,Y)R(X,Y)和和S(Y,Z)S(Y,Z),其中其中X X,Y Y,Z Z为属为属性组。性组。R R中的中的Y Y与与S S中的中的Y Y可以有不同的属性名,可以有不同的属性名,但必须出自相同的域。但必须出自相同的域。n nR R与与S S的除运算得到一个新的关系的除运算得到一个新的关系P(X)P(X),P P是是R R中满足下列条件的元组在中满足下列条件的元组在X X属性上的投影:元属性上的投影:元组在组在X X上分量值上分量值x x的象集的象集YXYX包含包含S S在在
45、Y Y上投影的上投影的集合。集合。【例】【例】在银行数据库中,寻找在北京所有支行都开设存款账在银行数据库中,寻找在北京所有支行都开设存款账户的客户户的客户支行支行( (支行名称,所在城市,评估支行名称,所在城市,评估) ) 存款人(客户名字,存款账户编号,支行名称,数额)存款人(客户名字,存款账户编号,支行名称,数额)先求北京的所有支行名字,先求北京的所有支行名字, 表示为:表示为: 支行名称支行名称( ( 所在城市所在城市=“=“北京北京” ”(支行支行)) )再列出存款人的客户名字和支行名称再列出存款人的客户名字和支行名称 支行名称,客户名字支行名称,客户名字(存款人存款人)找出在北京支行
46、有存款的客户找出在北京支行有存款的客户 支行名称,客户名字支行名称,客户名字(存款人存款人) 支行名称支行名称( ( 所在城市所在城市=“=“北京北京” ”(支行)(支行)) )关系运算示例设教学管理数据库中有三个关系:学生设教学管理数据库中有三个关系:学生S(S(学号,姓学号,姓名,年龄,性别名,年龄,性别) ),分数,分数SC(SC(学号,课程编号,分数学号,课程编号,分数) )和任课和任课C(C(课程编号,课程名字,主讲教师课程编号,课程名字,主讲教师) )。要求用关系代数表达式表示各个查询语句:要求用关系代数表达式表示各个查询语句:n n检索学习课程号为检索学习课程号为C2C2的学生成
47、绩。的学生成绩。 学号,分数学号,分数( 课程编号课程编号课程编号课程编号=C2C2(SCSC)n n 检索学习课程号为检索学习课程号为C2C2的学生学号与姓名。的学生学号与姓名。 学号,姓名学号,姓名( 课程编号课程编号课程编号课程编号=C2C2(S SCS SC)n n检索选修课程名为检索选修课程名为MATHSMATHS的学生学号与姓名。的学生学号与姓名。 学号学号学号学号,姓名,姓名( 课程名字课程名字课程名字课程名字=MATHS MATHS (S SC CS SC C)n n检索选修课程号为检索选修课程号为C2C2或或C4C4的学生。的学生。 学号学号学号学号,姓名,姓名( 课程编号课
48、程编号课程编号课程编号=C2C2课程编号课程编号课程编号课程编号=C4C4(SCSC)) )n n检索不学检索不学C2C2课的学生姓名、年龄等信息。课的学生姓名、年龄等信息。姓名,年龄姓名,年龄姓名,年龄姓名,年龄(S S) 姓名,年龄姓名,年龄姓名,年龄姓名,年龄( 课程编号课程编号课程编号课程编号=C2C2(S S SCSC)n n检索学习全部课程的学生姓名。检索学习全部课程的学生姓名。 学号,课程编号学号,课程编号学号,课程编号学号,课程编号(SCSC) 课程编号课程编号课程编号课程编号(C C)本章小结数据库的三种模式对应了数据库的结构,模式、数据库的三种模式对应了数据库的结构,模式、
49、内模式和外模式分别是数据库的全局逻辑结构、内模式和外模式分别是数据库的全局逻辑结构、物理结构和局部逻辑结构;物理结构和局部逻辑结构;数据模型有三种:网状、层次和关系型;数据模型有三种:网状、层次和关系型;关系型数据库的模式是静止的,关系是关系模式关系型数据库的模式是静止的,关系是关系模式某一时刻的取值,是动态的某一时刻的取值,是动态的; ;关系型数据库从三方面考虑完整性,一是实体完关系型数据库从三方面考虑完整性,一是实体完整性,二是参照完整性,三是用户定义完整性整性,二是参照完整性,三是用户定义完整性; ;关系代数是关系数据库操作的理论基础,尤其是关系代数是关系数据库操作的理论基础,尤其是选择、投影和连接运算。选择、投影和连接运算。