资源预览内容
第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
第9页 / 共32页
第10页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 关系数据库,第2章 关系数据库,一、 关系数据库及其特征 二、 关系模式 三、 关系的完整性 四、 关系数据库语言SQL,一、 关系数据库及其特征,1.1 什么是关系数据库 关系数据库是因为采用关系模型而得名, 20世纪70年代末以后所问世的数据库产品大多为关系模型 关系数据库之所以得到广泛应用,是因为它是建立在严格的数学理论基础上的,概念清晰、简单,能够用统一的结构来表示实体集合和它们之间的联系。 关系系统只有“表”这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构还有其他的操作。,一、 关系数据库及其特征,1.2 关系数据库的特点 (1)数据结构简单。关系数据库系统采用统一的二维表作为数据结构,不存在复杂的内部联系,具有高度的简洁性与方便性。 (2)功能强。可以直接构造复杂的数据模型,特别是多联系间的联系表达,可以一次得到一条完整记录,也可以修改数据间的联系,同时还具备一定程度的修改数据模式的能力。此外,路径选择的灵活性、存储结构的简单性都是它的优点。,一、 关系数据库及其特征,1.2 关系数据库的特点 (3)使用方便。关系数据库系统数据结构简单,它的使用不涉及系统内部物理结构,用户不必了解,更无须干预内部组织,所用数据语言均为非过程性语言,因此操作、使用都很方便。 (4)数据独立性高。关系数据库系统的组织、使用由于不涉及物理存储因素,不涉及过程性因素,因此数据的物理独立性很高,数据的逻辑独立性也有一定的改善。 (5)对事务处理领域应用效果较好,但对非事务性应用及分析领域的应用尚显不足。,一、 关系数据库及其特征,1.3 关系数据库的发展 (1)数据库可方便的移植。目前的关系数据库产品大多能同时适应多个操作系统,如SQL SERVER 2000能适应70多种操作系统。 (2)开发工具。由于数据库在应用中大量使用,用户需要对它直接操作,这就要求数据库不仅有数据定义、操纵与控制等操作,还需要大量用户界面生成及开发的工具软件以利于用户开发应用。因此,自20世纪80年代以来,关系数据库所提供的软件还包括大量用户界面生成软件以及开发工具。如ORACLE Developer-2000、Microsoft公司的Visual Basic以及PowerBuilder、Delphi等。,一、 关系数据库及其特征,1.3 关系数据库的发展 (3)标准化。数据库语言的标准化工作经过多年的努力之后,目前以SQL为代表的结构化查询语言已陆续被美国标准化组织ANSI、国际标准化组织ISO以及我国标准化组织确定为关系数据库使用的标准化语言,从而完成了其使用的统一性,这被称为是一次关系数据库领域的革命。而其中SQL-92又被认为是典型的关系数据库系统语言。 (4)分布式功能。由于数据库在计算机网络上的大量应用以及数据共享的要求,数据库的分布式功能已在应用中成为迫切需要,因此目前多数关系数据库系统都提供此类功能,它们的方式有数据库远程访问、客户/服务器方式、浏览器/服务器方式。,一、 关系数据库及其特征,1.3 关系数据库的发展 (5)开放性。现代关系数据库系统大都具有较好的开放性,能与不同的数据库、不同的应用接口结合,并能扩充与发展。一般关系数据库系统都具有通用的ODBC与JDBC接口以及快速的专用接口。,一、 关系数据库及其特征,1.4 关系模型的基本术语 (1)关系。一个关系对应一个二维表,二维表名就是关系名。图2.1中包含两个二维表,即两个关系:学生信息关系及选课信息关系。,一、 关系数据库及其特征,1.4 关系模型的基本术语 (2)属性及值域。二维表中的列(字段)称为关系的属性。属性的个数称为关系的元数,又称为度。度为1的关系称为一元关系,度为n的关系称为n元关系。 关系的属性包括属性 名和属性值两部分, 其列名即为属性名, 列值即为属性值。 属性值的取值范围 称为值域,每一个 属性对应一个值域, 不同属性的值域可以 相同。,一、 关系数据库及其特征,1.4 关系模型的基本术语 (3)关系模式。二维表中的行定义(表头)、记录的类型,即对关系的描述称为关系模式,关系模式的一般形式为:关系名(属性1,属性2,属性n) 图2.1中的两个关系 模式表示为: 学生信息关系 (学号,姓名, 性别,年龄) 选课信息关系 (学号,课程号, 成绩),一、 关系数据库及其特征,1.4 关系模型的基本术语 (4)元组。二维表中的一行,即每一条记录的值称为关系的一个元组。其中,每一个属性的值称为元组的分量。关系由关系模式和元组的集合组成。 图2.1中学生信息关系有以下元组: (101001,王军,男,24) (103018,张华,女,35) 选课信息关系有以下元组: (101001,001,75) (101003,003,80),一、 关系数据库及其特征,1.4 关系模型的基本术语 (5)键(或码)。由一个或多个属性组成。在实际使用中,有下列几种键。 候选键(Candidate Key):若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选键。 主键(Primary Key):若一个关系有多个候选键,则选定其中一个为主键。 外键(Foreign Key):设F是关系R的一个或一组属性,但不是关系R的键。如果F与关系S的主键相对应,则称F是关系R的外键,关系R称为参照关系,关系S称为被参照关系或目标关系。 如图2.1所示,在学生信息关系中,学号就是主键,在选课信息关系中,(学号,课程号)为主键,而学号称为外键。,一、 关系数据库及其特征,1.5 关系的性质 (1)关系中每个属性值都是不可分解的,即关系的每个元组分量必须是原子的。从二维表的角度讲,不允许表中嵌套表。,不符合规范的表 符合规范的表,一、 关系数据库及其特征,1.5 关系的性质 (2)关系中不允许出现相同的元组。从语义角度看,二维表中的一行即一个元组,代表着一个实体。现实生活中不可能出现完全一样、无法区分的两个实体,因此,二维表不允许出现相同的两行。同一关系中不能有两个相同的元组存在,否则将使关系中的元组失去唯一性,这一性质在关系模型中很重要。 (3)在定义一个关系模式时,可随意指定属性的排列次序,因为交换属性顺序的先后,并不改变关系的实际意义。例如,在定义表2.2所示的关系模式时,可以指定属性的次序为(课程,理论学时,实验学时),也可以指定属性的次序为(课程,实验学时,理论学时)。,一、 关系数据库及其特征,1.5 关系的性质 (4)在一个关系中,元组的排列次序可任意交换,并不改变关系的实际意义。由于关系是一个集合,因此不考虑元组间的顺序问题。在实际应用中,常常对关系中的元组排序,这样做仅仅为了加快检索数据的速度,提高数据处理的效率。 对性质(3)和性质(4),需要再补充一点。判断两个关系是否相等,是从集合的角度来考虑的与属性的次序无关,与元组次序无关,与关系的命名也无关。如果两个关系仅仅是上述差别,在其余各方面完全相同,就认为这两个关系相等。 (5)关系模式相对稳定,关系却随着时间的推移不断变化。这是由数据库的更新操作(包括插入、删除、修改)引起的。,二、 关系模式,关系模式是对关系的描述。关系模式是型,而关系是值。定义关系模式必须指明: (1)元组集合的结构包括属性构成、属性来自的域、属性与域之间的映像关系; (2)元组语义以及完整性约束条件; (3)属性间的数据依赖关系集合。 关系实际上是关系模式在某一时刻的状态或内容。也就是说,关系模式是型,关系是它的值。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际应用中,常常把关系模式和关系统称为关系,读者可以从上下文中加以区别。,二、 关系模式,关系模式可以形式化地表示为 R(U, D, dom, F) R: 关系名; U: 组成该关系的属性名集合; D: 属性组U中属性所属的域; dom: 属性向域的映像集合; F: 属性间的数据依赖关系集合。 关系模式通常可以简记为R(U)或R(A1,A2,An),其中:R为关系名,A1,A2,An为属性名。,三、关系的完整性,关系模型的完整性规则是对关系的某种约束条件。关系模型中可以有3类完整性约束:实体完整性、参照完整性和用户定义的完整性。 1实体完整性(Entity Integrity) 一个基本关系通常对应现实世界的一个实体集,如学生关系对应于学生的集合。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应的,关系模型中以主键作为唯一性标识。主键中的属性即主属性,不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。 实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。,三、关系的完整性,2参照完整性(Referential integrity) 现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。 设F是基本关系R的一个或一组属性,但不是关系R的键,如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键(Foreign key),并称基本关系R为参照关系(Referencing relation),基本关系S为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是不同的关系。 参照完整性规则就是定义外码与主码之间的引用规则。 参照完整性规则:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应,则对于R中每个元组在F上的值必须为: 或者取空值(F的每个属性值均为空值); 或者等于S中某个元组的主键值。,三、关系的完整性,2参照完整性(Referential integrity) 【例2.1】下面各种情况说明了参照完整性规则在关系中如何实现的。 在关系数据库中有下列两个关系模式。 学生关系模式:S(学号,姓名,性别,年龄,班级号,系别),PK(学号) 学习关系模式:SC(学号,课程号,成绩),PK(学号,课程号),FK1(学号),FK2(课程号) 根据规则要求,关系SC中的“学号”值应该在关系S中出现。如果关系SC中有一个元组(S07,C04,80),而学号S07却在关系S中找不到,那么就认为在关系SC中引用了一个不存在的学生实体,这违反了参照完整性规则。另外,在关系SC中“学号”不仅是外键,也是主键的一部分,因此这里“学号”值不允许空。,三、关系的完整性,3用户定义的完整性(User-defined integrity) 实体完整性和参照性适用于任何关系数据库系统。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。 用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理,而不是由应用程序承担这一功能。 【例2.2】例2.1中的学生关系模式S中,学生的年龄定义为两位整数,但范围仍然太大,为此用户可以写出如下规则把年龄限制在1530岁之间: CHECK(AGE BETWEEN 15 AND 30),四、 关系数据库语言SQL,结构化查询语言SQL(Structured Query Language) 1.SQL语言是关系数据库管理系统中最流行的数据查询和操作语言,用户可以使用SQL语言对数据库执行各种操作,包括数据定义、数据操纵和数据控制等与数据库有关的全部功能。 2. SQL语言是在1974年由美国IBM公司的San Jose研究所中的科研人员Boyce和Chamberlin提出的,并于19751979年在关系数据库管理系统原型System R上实现了这种语言。 3. 不同的数据库管理系
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号