1、第第1章章 数据库系统概论数据库系统概论本章学习目标 理解数据库的基本术语和概念理解数据库的基本术语和概念 了解数据管理技术的发展过程了解数据管理技术的发展过程 掌握数据库系统的组成掌握数据库系统的组成 掌握关系数据库掌握关系数据库 掌握关系数据库的规范化理论掌握关系数据库的规范化理论 掌握数据库设计过程掌握数据库设计过程1.1 数据库基础知识1.1.1 数据库基本概念 1.数据数据 数据(数据(Data)是描述事物的符号记录)是描述事物的符号记录。用数据描述现实世界中的对象可以是实在用数据描述现实世界中的对象可以是实在的事物的事物:(B1051211,丁小玲,女,丁小玲,女,20,计算机系)
2、,计算机系)也可以是抽象的事物:也可以是抽象的事物:(柳文艳,数据库原理与应用,(柳文艳,数据库原理与应用,95)1.1.1 数据库基本概念 1.数据数据 数据和关于数据的解释是不可分的数据和关于数据的解释是不可分的 数据的解释是对数据含义的说明,数据的数据的解释是对数据含义的说明,数据的含义称为数据的语义。含义称为数据的语义。1.1.1 数据库基本概念 2数据库数据库 通俗地讲,数据库(通俗地讲,数据库(DataBase)是存放数)是存放数据的仓库,只不过数据是按一定的存储格据的仓库,只不过数据是按一定的存储格式存放在计算机存储设备上。式存放在计算机存储设备上。严格地讲,数据库是长期存储在计
3、算机内严格地讲,数据库是长期存储在计算机内的、有组织的、可共享的大量数据的集合。的、有组织的、可共享的大量数据的集合。1.1.1 数据库基本概念 3.数据库管理系统数据库管理系统 位于计算机系统中用户与操作系统之间的位于计算机系统中用户与操作系统之间的一层数据管理软件,它是数据库系统的核一层数据管理软件,它是数据库系统的核心组成部分,用户在数据库系统中的一切心组成部分,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种操作,包括数据定义、查询、更新及各种控制,都是通过控制,都是通过DBMS进行的。进行的。DBMS把用户抽象的逻辑数据处理、转换成把用户抽象的逻辑数据处理、转换成计算机中
4、的具体的物理数据。计算机中的具体的物理数据。1.1.1 数据库基本概念 3.数据库管理系统数据库管理系统 DBMS的主要功能有以下几个方面:的主要功能有以下几个方面:(1)数据定义功能)数据定义功能(2)数据操纵功能)数据操纵功能(3)数据库的事务管理和运行管理)数据库的事务管理和运行管理(4)数据库的建立和维护功能)数据库的建立和维护功能(5)数据通信)数据通信1.1.1 数据库基本概念 4.数据库系统数据库系统 数据库系统(数据库系统(DataBase System,DBS)是指)是指在计算机系统中引入数据库后的系统,一在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开
5、发般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户工具)、应用系统、数据库管理员和用户构成,构成,1.1.1 数据库基本概念 4.数据库系统数据库系统用户用户用户应用系统应用开发工具数据库管理操作系统数据库数据库管理员1.1.2 数据管理技术发展 数据库技术即数据管理技术,是对数据的数据库技术即数据管理技术,是对数据的分类、组织、编码、存储、检索和维护的分类、组织、编码、存储、检索和维护的技术。技术。数据管理技术大致经历了如下三个阶段:数据管理技术大致经历了如下三个阶段:人工管理阶段人工管理阶段 文件系统阶段文件系统阶段 数据库系统阶段数据库系统阶段1.1.2 数据管理
6、技术发展 1人工管理阶段人工管理阶段 20世纪世纪50年代中期以前年代中期以前 人工管理阶段的特点是:人工管理阶段的特点是:数据不保存数据不保存 数据无专门软件进行管理数据无专门软件进行管理 数据不共享(冗余度大)数据不共享(冗余度大)数据不具有独立性(完全依赖于程序)数据不具有独立性(完全依赖于程序)数据无结构数据无结构1.1.2 数据管理技术发展 2文件系统阶段文件系统阶段 20世纪世纪50年代后期到年代后期到60年代中期年代中期 文件系统管理数据的特点:文件系统管理数据的特点:数据可以长期保存数据可以长期保存 由文件系统管理数据由文件系统管理数据 程序与数据有一定的独立性程序与数据有一定
7、的独立性 数据共享性差(冗余度大)数据共享性差(冗余度大)数据独立性差数据独立性差 记录内部有结构(但整体无结构)记录内部有结构(但整体无结构)1.1.2 数据管理技术发展 3数据库系统阶段数据库系统阶段 20世纪世纪60年代后期年代后期 数据库系统管理数据的特点如下数据库系统管理数据的特点如下:(1)数据结构化)数据结构化(2)数据共享性高、冗余少,易扩充)数据共享性高、冗余少,易扩充(3)数据独立性高)数据独立性高(4)有统一的数据控制功能)有统一的数据控制功能1.1.2 数据管理技术发展 3数据库系统阶段数据库系统阶段 数据库管理系统提供下述四方面的数据控数据库管理系统提供下述四方面的数
8、据控制功能。制功能。数据的安全性(数据的安全性(Security)控制)控制 数据的完整性(数据的完整性(Integrity)控制)控制 并发(并发(Concurrency)控制)控制 数据恢复(数据恢复(Recovery)1.1.2 数据管理技术发展1.1.3 数据模型 数据模型是对现实世界数据特征的抽象,数据模型是对现实世界数据特征的抽象,是现实世界的模拟。是现实世界的模拟。数据模型应满足三方面要求:数据模型应满足三方面要求:能比较真实的模拟现实世界能比较真实的模拟现实世界 容易为人理解容易为人理解 便于计算机实现便于计算机实现 在数据库系统中针对不同的使用对象和应在数据库系统中针对不同的
9、使用对象和应用目的,采用不同的数据模型。用目的,采用不同的数据模型。1.1.3 数据模型 1两类数据模型两类数据模型 根据模型应用的目的不同,可以将这些模根据模型应用的目的不同,可以将这些模型分为两类:型分为两类:概念模型概念模型 逻辑模型和物理模型逻辑模型和物理模型1.1.3 数据模型 1两类数据模型两类数据模型 概念模型概念模型 也称信息模型,是按用户的观点对数据和也称信息模型,是按用户的观点对数据和信息进行抽象,主要用于数据库设计。信息进行抽象,主要用于数据库设计。1.1.3 数据模型 1两类数据模型两类数据模型 逻辑模型逻辑模型 主要包括层次模型、网状模型、关系模型、面向主要包括层次模
10、型、网状模型、关系模型、面向对象模型和对象关系模型等对象模型和对象关系模型等 它是按照计算机系统的观点对数据建模,主要用它是按照计算机系统的观点对数据建模,主要用于于DBMS的实现。的实现。物理模型物理模型 是对数据最低层的抽象,它描述数据在计算机系是对数据最低层的抽象,它描述数据在计算机系统内部的表示方式和存取方法,以及在存储设备统内部的表示方式和存取方法,以及在存储设备上的存储方式和存取方法,是面向计算机系统的。上的存储方式和存取方法,是面向计算机系统的。物理模型由物理模型由DBMS实现。实现。1.1.3 数据模型 1两类数据模型两类数据模型 从事物的客观特性到计算机里的具体表示经从事物的
11、客观特性到计算机里的具体表示经历了三个数据领域:现实世界、信息世界和历了三个数据领域:现实世界、信息世界和机器世界。机器世界。为了把现实世界中的具体事物抽象、组织为为了把现实世界中的具体事物抽象、组织为某一某一DBMS支持的数据模型,常常首先将现实支持的数据模型,常常首先将现实世界抽象为信息世界,然后将信息世界转换世界抽象为信息世界,然后将信息世界转换为机器世界。为机器世界。1.1.3 数据模型1.1.3 数据模型 2数据模型的组成要素数据模型的组成要素(1)数据结构)数据结构(2)数据操作)数据操作(3)数据约束)数据约束1.1.3 数据模型 2数据模型的组成要素数据模型的组成要素(1)数据
12、结构)数据结构 数据模型中的数据结构主要描述数据的类型、数据模型中的数据结构主要描述数据的类型、内容、性质以及数据间的联系等。内容、性质以及数据间的联系等。(2)数据操作)数据操作 数据模型中的数据操作主要描述在相应的数据数据模型中的数据操作主要描述在相应的数据结构上的操作类型和操作方式。结构上的操作类型和操作方式。1.1.3 数据模型 2数据模型的组成要素数据模型的组成要素(3)数据约束)数据约束 数据模型中的数据约束主要描述数据结构内数数据模型中的数据约束主要描述数据结构内数据间的语法、词义联系、它们之间的制约和依据间的语法、词义联系、它们之间的制约和依存关系,以及数据动态变化的规则,以保
13、证数存关系,以及数据动态变化的规则,以保证数据的正确、有效和相容。据的正确、有效和相容。1.1.3 数据模型 3概念模型概念模型 概念模型是按用户的观点对数据和信息概念模型是按用户的观点对数据和信息进行抽象。进行抽象。“实体联系方法实体联系方法”是表示概念模型最常是表示概念模型最常用的方法。用的方法。1.1.3 数据模型 3概念模型概念模型(1)实体()实体(Entity)(2)属性()属性(Attribute)(3)实体集()实体集(Entity Set)(4)实体型(实体型(Entity Type)(5)码()码(Key)(6)域()域(Domain)1.1.3 数据模型 3概念模型概念模
14、型(7)联系()联系(Relationship)两个实体型之间的联系可以分为三类:两个实体型之间的联系可以分为三类:一对一联系(一对一联系(1:1)一对多联系(一对多联系(1:n)多对多联系(多对多联系(m:n)1.1.3 数据模型 4概念模型的一种表示方法:实体概念模型的一种表示方法:实体-联系方联系方法法 该方法用该方法用E-R图来描述现实世界的概念模型,称为图来描述现实世界的概念模型,称为实体实体-联系模型,简称联系模型,简称E-R模型。模型。E-R图提供了表示实体型、属性和联系的方法。图提供了表示实体型、属性和联系的方法。实体型:用矩形表示,矩形框内写明实体名。实体型:用矩形表示,矩形
15、框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的分别与有关实体连接起来,同时在无向边旁标上联系的类型。类型。1.1.3 数据模型 4概念模型的一种表示方法:实体概念模型的一种表示方法:实体-联系方联系方法法 该方法用该方法用E-R图来描述现实世界的概念模型,称为图来描述现实世界的概念模型,称为实体实体-联系模型,简称联系模型,简称E-R模型。模型。E-R图提供了表示实体型、
16、属性和联系的方法。图提供了表示实体型、属性和联系的方法。实体型:用矩形表示,矩形框内写明实体名。实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的分别与有关实体连接起来,同时在无向边旁标上联系的类型。类型。1.1.3 数据模型 5最常用的数据模型最常用的数据模型(1)层次模型()层次模型(Hierarchical Model)数据库系统中最早出现的数据
17、模型,典型的采用层数据库系统中最早出现的数据模型,典型的采用层次模型的数据库系统是美国次模型的数据库系统是美国IBM公司于公司于1968年推出年推出的的IMS(Information Management System)数据库管理数据库管理系统,这个系统在系统,这个系统在20世纪世纪70年代在商业上得到广泛年代在商业上得到广泛应用。应用。1.1.3 数据模型 5最常用的数据模型最常用的数据模型(1)层次模型()层次模型(Hierarchical Model)层次模型是用树型结构来表示各类实体及实体间的层次模型是用树型结构来表示各类实体及实体间的联系。这种模型描述数据的组织形式像一棵倒置的联系。
18、这种模型描述数据的组织形式像一棵倒置的树,它由节点和连线组成,其中节点表示实体。根树,它由节点和连线组成,其中节点表示实体。根节点只有一个,向下分支,是一种一对多的关系。节点只有一个,向下分支,是一种一对多的关系。层次模型的查询效率很高,但它只能表示一对多联层次模型的查询效率很高,但它只能表示一对多联系,对数据进行查询和更新操作时则很复杂,所以系,对数据进行查询和更新操作时则很复杂,所以编写应用程序也很复杂。编写应用程序也很复杂。1.1.3 数据模型 5最常用的数据模型最常用的数据模型(1)层次模型()层次模型(Hierarchical Model)优点:层次分明、结构清晰、不同层次间的优点:
19、层次分明、结构清晰、不同层次间的数据关联直接简单。数据关联直接简单。缺点:数据将不得不纵向向外扩展,节点之缺点:数据将不得不纵向向外扩展,节点之间很难建立横向的关联。对插入和删除操作间很难建立横向的关联。对插入和删除操作限制较多,查询非直系的节点非常麻烦。限制较多,查询非直系的节点非常麻烦。1.1.3 数据模型1.1.3 数据模型 5最常用的数据模型最常用的数据模型(2)网状模型()网状模型(Network Model)用有向图结构表示实体类型及实体间联系的数据模用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。型称为网状模型。用节点表示数据元素,节点间连线表示数据间的联用节点表示数
20、据元素,节点间连线表示数据间的联系。系。它允许多个节点没有双亲节点,允许节点有多个双它允许多个节点没有双亲节点,允许节点有多个双亲节点,还允许两个节点之间有多种联系。节点之亲节点,还允许两个节点之间有多种联系。节点之间是平等的,无上下层关系。间是平等的,无上下层关系。1.1.3 数据模型1.1.3 数据模型 5最常用的数据模型最常用的数据模型(3)关系模型()关系模型(Relational Model)目前最重要的一种数据模型。目前最重要的一种数据模型。用二维表格来表示实体及相互之间的联系。用二维表格来表示实体及相互之间的联系。建立在严格的数学基础之上。建立在严格的数学基础之上。目前采用关系模
21、型的数据库管理系统:目前采用关系模型的数据库管理系统:Microsoft SQL Server、Oracle、IBM DB2、Access1.1.3 数据模型 5最常用的数据模型最常用的数据模型(4)面向对象模型()面向对象模型(Object-Oriented Model)在面向对象的数据模型中,最基本的概念为在面向对象的数据模型中,最基本的概念为对象和类。面向对象的数据模型可完整地描对象和类。面向对象的数据模型可完整地描述现实世界的数据结构,比层次、网状、关述现实世界的数据结构,比层次、网状、关系数据模型具有更加丰富的表达能力,能表系数据模型具有更加丰富的表达能力,能表达嵌套、递归的数据结构
22、。达嵌套、递归的数据结构。1.1.4 数据库系统的体系结构 1数据库的三级模式结构数据库的三级模式结构 数据库结构分为三级:数据库结构分为三级:面向用户或应用程序员的用户级面向用户或应用程序员的用户级 面向建立和维护数据库人员的概念级面向建立和维护数据库人员的概念级 面向系统程序员的物理级。面向系统程序员的物理级。用户级对应外模式,概念级对应模式,物理用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库级对应内模式,使不同级别的用户对数据库形成不同的视图。形成不同的视图。1.1.4 数据库系统的体系结构 1数据库的三级模式结构数据库的三级模式结构(1)模式)模式 模式又
23、称概念模式或逻辑模式,对应于概念级。模式又称概念模式或逻辑模式,对应于概念级。是对数据库中全部数据的逻辑结构和特征的总体描是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。述,是所有用户的公共数据视图(全局视图)。由数据库管理系统提供的数据模式描述语言(由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的,体)来描述、定义的,体现、反映了数据库系统的整体观。现、反映了数据库系统的整体观。1.1.4 数据库系统的体系结构 1数据库的三级模式结构数据库的三级模式结构(2)外模式)外模式 外模式又称子模
24、式,对应于用户级。它是某个或某外模式又称子模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用模式),也可以利用数据操纵语言数据操纵语言对这些数据记录对这些数据记录进行操作。外模式反映了数据库的用户观。
25、进行操作。外模式反映了数据库的用户观。1.1.4 数据库系统的体系结构 1数据库的三级模式结构数据库的三级模式结构(3)内模式)内模式 内模式又称内模式又称存储模式存储模式,对应于物理级,它是数据库,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述。一级的逻辑描述。描述了数据在描述了数据在存储介质存储介质上的存储方式即上的存储方式即物理结构物理结构,对应着实际存储在外存储介质上的数据库。对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据内模式由内模式描述语言来描述、定义,它是数据库的存
26、储观。库的存储观。1.1.4 数据库系统的体系结构 1数据库的三级模式结构数据库的三级模式结构 在一个数据库系统中,只有唯一的数据库,在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也式和定义、描述数据库逻辑结构的模式,也是唯一的;但建立在数据库系统之上的应用是唯一的;但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能是唯一的。不是唯一的,也不可能是唯一的。1.1.4 数据库系统的体系结构 2三级模式间的映射三级模式间的
27、映射 (1)外模式)外模式/模式映像模式映像 定义了该外模式与模式之间的对应关系。定义了该外模式与模式之间的对应关系。当模式改变时,由数据库管理员对各个外模式当模式改变时,由数据库管理员对各个外模式/模模式映像做相应的改变,就可以使外模式保持不变。式映像做相应的改变,就可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简序不必修改,保证了数据与程序的逻辑独立性,简称为数据的逻辑独立性。称为数据的逻辑独立性。1.1.4 数据库系统的体系结构 2三级模式间的映射三级模式间的映射 (2)模式)模式/
28、内模式映像内模式映像 定义了数据库全局逻辑结构与物理存储结构之间的定义了数据库全局逻辑结构与物理存储结构之间的对应关系。对应关系。当数据库的物理存储结构改变时,由数据库管理员当数据库的物理存储结构改变时,由数据库管理员对模式对模式/内模式映像做相应的改变,就可以使模式内模式映像做相应的改变,就可以使模式保持不变。从而应用程序也不必改变。这样就保证保持不变。从而应用程序也不必改变。这样就保证了程序与数据的物理独立性,简称为数据的物理独了程序与数据的物理独立性,简称为数据的物理独立性。立性。1.1.4 数据库系统的体系结构 3数据库的三级模式结构的好处数据库的三级模式结构的好处(1)保证了数据的独
29、立性)保证了数据的独立性(2)简化用户接口)简化用户接口(3)有利于数据共享)有利于数据共享(4)有利于数据安全保密)有利于数据安全保密1.2 关系数据库1.2.1 关系数据模型 在关系数据库里,所有的数据都按表(按在关系数据库里,所有的数据都按表(按关系理论的术语,表被称为关系理论的术语,表被称为“关系关系”)进)进行组织和管理。实体和联系均用二维表来行组织和管理。实体和联系均用二维表来表示的数据模型称为关系数据模型,二维表示的数据模型称为关系数据模型,二维表由行和列组成。表由行和列组成。1.2.1 关系数据模型1.2.1 关系数据模型(1)关系()关系(Relation):一个关系可用一个
30、二维):一个关系可用一个二维表格来表示,常称为表。每个关系(表)都有与表格来表示,常称为表。每个关系(表)都有与其它关系(表)不同的名称。其它关系(表)不同的名称。(2)元组()元组(Tuple):表中的一行数据统称为一):表中的一行数据统称为一个元组。一个元组即为一个实体的所有属性值的个元组。一个元组即为一个实体的所有属性值的总称。一个关系中不能有两个完全相同的元组。总称。一个关系中不能有两个完全相同的元组。(3)属性()属性(Attribute):表中的每一列即为一个):表中的每一列即为一个属性。每个属性都有一个属性名,在每一列的首属性。每个属性都有一个属性名,在每一列的首行显示。一个关系
31、中不能有两个同名属性。行显示。一个关系中不能有两个同名属性。1.2.1 关系数据模型(4)域()域(Domain):一个属性的取值范围就是):一个属性的取值范围就是该属性的域。该属性的域。(5)分量()分量(Component):一个元组在一个属性):一个元组在一个属性上的值称为该元组在此属性上的分量,一个上的值称为该元组在此属性上的分量,一个n元组元组是由是由n个分量组成。个分量组成。(6)候选键()候选键(Candidate Key):如果一个属性集):如果一个属性集能唯一标识元组,且又不含有多余的属性,那么能唯一标识元组,且又不含有多余的属性,那么这个属性集称为关系的候选键或候选码。候选
32、码这个属性集称为关系的候选键或候选码。候选码中的所有属性都为主属性。中的所有属性都为主属性。1.2.1 关系数据模型(7)主关键字()主关键字(Primary Key):如果一个关系中):如果一个关系中有多个候选键,则选择其中的一个键为关系的主关有多个候选键,则选择其中的一个键为关系的主关键字,简称主键或主码。键字,简称主键或主码。(8)外键()外键(Foreign Key):如果一个关系中某个属):如果一个关系中某个属性或属性组合并非主关键字,但却是另外一个关系性或属性组合并非主关键字,但却是另外一个关系的主关键字,则称此属性或属性组合为本关系的外的主关键字,则称此属性或属性组合为本关系的外
33、部关键字或外键。在关系数据库中,用外键表示两部关键字或外键。在关系数据库中,用外键表示两个关系间的联系。个关系间的联系。(9)关系模式:一个关系的关系名及其全部属性)关系模式:一个关系的关系名及其全部属性的集合,简称为关系模式。一般表示为:的集合,简称为关系模式。一般表示为:关系名(属性关系名(属性1,属性,属性2,属性,属性n)1.2.1 关系数据模型 关系模式是型,描述了一个关系的结构。关系模式是型,描述了一个关系的结构。关系是值,是元组的集合,是某一时刻关系关系是值,是元组的集合,是某一时刻关系模式的状态或内容。模式的状态或内容。关系模式是稳定的、静态的,而关系则是随关系模式是稳定的、静
34、态的,而关系则是随时间变化的、动态的。时间变化的、动态的。在不引起混淆的场合,两者都称为关系。在不引起混淆的场合,两者都称为关系。1.2.1 关系数据模型 关系模型要求关系必须是规范化的,即要求关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件:关系必须满足一定的规范条件:(1)关系中的每一列都必须是不可分的基本数据)关系中的每一列都必须是不可分的基本数据项,即不允许表中还有表。项,即不允许表中还有表。(2)一个关系中有唯一确定的属性名,不可重名。)一个关系中有唯一确定的属性名,不可重名。(3)任何列中的值必须是同一类型的,各列被指)任何列中的值必须是同一类型的,各列被指定一个相
35、异的名字。定一个相异的名字。(4)在一个关系中,属性间的顺序、元组间的顺)在一个关系中,属性间的顺序、元组间的顺序是无关紧要的。序是无关紧要的。1.2.1 关系数据模型 在关系数据库中具有相同属性的记录的集合在关系数据库中具有相同属性的记录的集合构成一个构成一个“数据表数据表”。一个或多个数据表的集合组成一个一个或多个数据表的集合组成一个“数据数据库库”。隶属于某个数据库的数据表叫隶属于某个数据库的数据表叫“相关表或数相关表或数据表据表”。独立存在于任何数据库之外的表叫独立存在于任何数据库之外的表叫“自由自由表表”。1.2.2 关系的完整性约束 数据库完整性(数据库完整性(DataBase I
36、ntegrity)是指数)是指数据库中数据的正确性和相容性。据库中数据的正确性和相容性。数据库完整性约束可以通过数据库完整性约束可以通过DBMS或应用程或应用程序来实现,基于序来实现,基于DBMS的完整性约束作为模的完整性约束作为模式的一部分存入数据库中。在关系数据模式的一部分存入数据库中。在关系数据模型中一般将数据完整性分为三类:实体完型中一般将数据完整性分为三类:实体完整性、参照完整性和用户定义完整性。整性、参照完整性和用户定义完整性。1.2.2 关系的完整性约束 1实体完整性实体完整性 实体完整性规定表的每一行在表中是唯一实体完整性规定表的每一行在表中是唯一的实体。实体完整性和参照完整性
37、是关系的实体。实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作模型必须满足的完整性约束条件,被称作是关系的两个不变特性。是关系的两个不变特性。1.2.2 关系的完整性约束 1实体完整性实体完整性 实体完整性规则如下:实体完整性规则如下:实体完整性要保证关系中的每个元组都是可识别的实体完整性要保证关系中的每个元组都是可识别的和唯一的。和唯一的。实体完整性规则内容:若属性实体完整性规则内容:若属性A是关系是关系R的主属性,的主属性,则属性则属性A不可以为空值。不可以为空值。实体完整性是关系模型必须满足的完整性约束条件。实体完整性是关系模型必须满足的完整性约束条件。关系数据库管理系统
38、可用主关键字实现实体完整性,关系数据库管理系统可用主关键字实现实体完整性,这是由关系数据库默认支持的。这是由关系数据库默认支持的。1.2.2 关系的完整性约束 2参照完整性参照完整性 参照完整性是指两个表的主关键字和外关键参照完整性是指两个表的主关键字和外关键字的数据对应一致。它确保了有主关键字的字的数据对应一致。它确保了有主关键字的表中对应其他表的外关键字的数据存在,即表中对应其他表的外关键字的数据存在,即保证了表之间的数据的一致性,防止数据丢保证了表之间的数据的一致性,防止数据丢失或无意义的数据在数据库中扩散。失或无意义的数据在数据库中扩散。参照完整性是建立在外关键字和主关键字之参照完整性
39、是建立在外关键字和主关键字之间或外关键字和唯一性关键字之间的关系上间或外关键字和唯一性关键字之间的关系上的。的。1.2.2 关系的完整性约束 3用户定义完整性用户定义完整性 用户定义的完整性即是针对某个特定关系数用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用所涉据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。及的数据必须满足的语义要求。在用户定义完整性中最常见的是限定属性的在用户定义完整性中最常见的是限定属性的取值范围,即对值域的约束,所以在用户定取值范围,即对值域的约束,所以在用户定义完整性中最常见的是域完整性约束,如某义完整性中最常见的是域完整性
40、约束,如某个属性的值必须唯一;某个属性的值必须在个属性的值必须唯一;某个属性的值必须在某个范围内等。某个范围内等。1.2.3 关系运算 关系代数是一种抽象的查询语言,是关系数关系代数是一种抽象的查询语言,是关系数据操纵语言的一种传统表达方式。它用于关据操纵语言的一种传统表达方式。它用于关系运算及表达式查询。关系运算符有四类:系运算及表达式查询。关系运算符有四类:集合运算符集合运算符 专门的关系运算符专门的关系运算符 算术比较运算符算术比较运算符 逻辑运算符逻辑运算符1.2.3 关系运算1.2.3 关系运算 1传统的集合运算传统的集合运算 传统的集合运算是从关系的水平方向进传统的集合运算是从关系
41、的水平方向进行的,主要包括:行的,主要包括:并并 交交 差差 广义笛卡儿积广义笛卡儿积1.2.3 关系运算 1传统的集合运算传统的集合运算(1)并()并(Union)运算)运算 关系关系R、S同为同为n元关系,则元关系,则R与与S的并记作:的并记作:R StRtS。其结果仍是。其结果仍是n元关系,由属于元关系,由属于R或属或属于于S的元组组成。的元组组成。(2)交()交(Intersection)运算)运算 关系关系R、S同为同为n元关系,则关系元关系,则关系R与与S的交记作:的交记作:R StRtS。其结果仍是。其结果仍是n元关系,由属于元关系,由属于R且属于且属于S的元组组成。的元组组成。
42、1.2.3 关系运算 1传统的集合运算传统的集合运算(3)差()差(Difference)运算)运算 关系关系R、S同为同为n元关系,则关系元关系,则关系R与与S的差记作:的差记作:R-StRt S。其结果仍是。其结果仍是n元关系,由属于元关系,由属于R且且不属于不属于S的元组组成。的元组组成。(4)广义笛卡儿积()广义笛卡儿积(Extended Cartesian Product)两个分别为两个分别为n目和目和m目的关系目的关系R和和S,R和和S的广义笛卡的广义笛卡儿积是一个(儿积是一个(n+m)列元组的集合。)列元组的集合。1.2.3 关系运算 1传统的集合运算传统的集合运算(4)广义笛卡
43、儿积()广义笛卡儿积(Extended Cartesian Product)元组的前元组的前n列是关系列是关系R的一个元组,后的一个元组,后m列是关系列是关系S的的一个元组。若一个元组。若R有有K1个元组,个元组,S有有K2个元组,则个元组,则R和和S的广义笛卡儿积有的广义笛卡儿积有 K1K2 个元组。记作:个元组。记作:RS trts|trRtsS。trts表示由两个元组表示由两个元组tr 和和ts前后前后有序连接而成的一个元组。任取元组有序连接而成的一个元组。任取元组tr 和和ts,当且仅,当且仅当当tr属于属于R中元组且中元组且ts属于属于S中元组时,中元组时,tr 和和ts前后有前后有
44、序连接即为序连接即为RS的一个元组。的一个元组。1.2.3 关系运算 1传统的集合运算传统的集合运算(4)广义笛卡儿积()广义笛卡儿积(Extended Cartesian Product)实际操作时,可从实际操作时,可从R的第一个元组开始,依次与的第一个元组开始,依次与S的的每一个元组组合,然后对每一个元组组合,然后对R的下一个元组进行相同的下一个元组进行相同的操作,直至的操作,直至R的最后一个元组也进行了相同的操的最后一个元组也进行了相同的操作为止,即可得到作为止,即可得到RS的所有元组。的所有元组。由广义笛卡儿积可得关系的数学定义:设由广义笛卡儿积可得关系的数学定义:设A1,A2,An为
45、任意集合,为任意集合,A1A2An的任意一个的任意一个子集称为子集称为A1,A2,An上的一个上的一个n元关系。元关系。1.2.3 关系运算 2专门的关系运算专门的关系运算 专门的关系运算可以从关系的水平方向进行专门的关系运算可以从关系的水平方向进行运算,也可以从关系的垂直方向运算。运算,也可以从关系的垂直方向运算。(1)选择运算(选择运算(Selection)(2)投影运算()投影运算(Projection)(3)连接运算()连接运算(Join)(4)除运算()除运算(Division)1.2.3 关系运算 2专门的关系运算专门的关系运算(1)选择运算(选择运算(Selection)选择运算
46、又称为限制(选择运算又称为限制(Restriction)运算,它是从)运算,它是从给定的关系给定的关系R中选取满足条件的元组,即从数据表中选取满足条件的元组,即从数据表中进行选行操作,记作中进行选行操作,记作 F(R)=t|tRF(t)=真真 其中其中F表示选择条件,它是一个逻辑表达式,取逻表示选择条件,它是一个逻辑表达式,取逻辑值辑值“真真”或或“假假”。公式。公式F中的运算对象是常量中的运算对象是常量(用引号括起来)或元组分量(属性名或列的序(用引号括起来)或元组分量(属性名或列的序号),运算符有算术比较运算符和逻辑运算符。号),运算符有算术比较运算符和逻辑运算符。1.2.3 关系运算 2
47、专门的关系运算专门的关系运算(1)选择运算(选择运算(Selection)选择运算提供了一种选择运算提供了一种“横向分割关系横向分割关系”的手段。以的手段。以逻辑表达式为选择条件,筛选满足表达式的所有记逻辑表达式为选择条件,筛选满足表达式的所有记录。选择操作的结果构成关系的一个子集,是关系录。选择操作的结果构成关系的一个子集,是关系中的部分行,其关系模式不变。选择操作是从二维中的部分行,其关系模式不变。选择操作是从二维表中选择若干行的操作。表中选择若干行的操作。例例1-1:在:在AWLT数据库中,查询颜色为红色的所有数据库中,查询颜色为红色的所有产品。产品。Color=Red(Product)
48、1.2.3 关系运算 2专门的关系运算专门的关系运算(2)投影运算()投影运算(Projection)这个操作是对一个关系进行垂直分割,消去某些列,这个操作是对一个关系进行垂直分割,消去某些列,并重新安排列的顺序,再删去重复元组。并重新安排列的顺序,再删去重复元组。投影是从给定关系的所有字段中按某种顺序选取指投影是从给定关系的所有字段中按某种顺序选取指定的属性组,即从数据表中进行选择列操作。定的属性组,即从数据表中进行选择列操作。所选择的若干属性将形成一个新的关系数据表,其所选择的若干属性将形成一个新的关系数据表,其关系模式中属性的个数由用户来确定,或者排列顺关系模式中属性的个数由用户来确定,
49、或者排列顺序不同,同时也可能减少某些元组。序不同,同时也可能减少某些元组。1.2.3 关系运算 2专门的关系运算专门的关系运算(2)投影运算()投影运算(Projection)例例1-2:AWLT数据库中,查询所有产品的产品编号、数据库中,查询所有产品的产品编号、名称及其颜色。名称及其颜色。?ProductNumber,Name,Color(Product)1.2.3 关系运算 2专门的关系运算专门的关系运算(3)连接运算()连接运算(Join)连接运算用来连接相互之间有联系的两个关系,从连接运算用来连接相互之间有联系的两个关系,从而形成一个新的关系。连接操作是广义笛卡儿积和而形成一个新的关系
50、。连接操作是广义笛卡儿积和选择操作的组合。一般情况下这个连接属性是出现选择操作的组合。一般情况下这个连接属性是出现在不同关系中的语义相同的属性,属性名称有可能在不同关系中的语义相同的属性,属性名称有可能不同。不同。连接运算也称连接运算也称 连接。连接运算形式定义如下:连接。连接运算形式定义如下:RS=A B(RS)A B1.2.3 关系运算 2专门的关系运算专门的关系运算(3)连接运算()连接运算(Join)其中,其中,A和和B分别是关系分别是关系R和和S上语义相同的属性或属上语义相同的属性或属性组,性组,是比较运算符。连接运算从关系是比较运算符。连接运算从关系R和和S的笛的笛卡儿积卡儿积RS