数据库系统原理

第一章 绪论

数据库系统概述

数据

概念:数据是用来记录信息的可识别的符号组合,是信息的具体表现形式。

包括数字,字母,文字,特殊字符组成的文本数据,也可以是图形,动画,影像,声音等多媒体数据。

数据库

数据库(Database,DB)是长期存储在计算机中的有组织的、可共享的大量数据集合。

数据库中存储的数据具有永久存储,有组织可共享三个基本特点。

数据库管理系统

数据库管理系统的控制功能:数据的安全性保护、数据的完整性检查、并发控制、数据库恢复。

数据的安全性是指保护数据以防止不合法使用造成的数据泄露和破坏。(security

数据的完整性是指数据的正确性、有效性和相容性。

并发控制:当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。

数据库恢复:计算机系统的硬件故障、软件故障、操作员的失误以及故意破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。

数据库管理系统中必须具有将数据从错误状态恢复到某一已知的正确状态(或完整性状态或一致状态)的功能,这就是数据库的恢复功能。

数据库系统

数据库系统特点

  1. 数据结构化
  2. 数据的共享性高、冗余度低且易扩充。
  3. 数据独立性高。
  4. 数据由数据库管理系统统一管理和控制。

所谓整体结构化是指数据库中的数据不再仅仅针对某一应用,而是面向整个组织和企业;不仅数据内部结构化,而且整体是结构化的,数据之间是具有联系的。

数据共享可以大大减少数据冗余,节约存储空间。数据贡献还能避免数据之间的不相容性和不一致性。

所谓数据不一致是指同一数据不同副本数值不一样。

物理独立性是指用户的应用程序与数据库数据的物理存储是相互独立的。

逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。

综上所述

数据库是长期存储在计算机中的、有组织的、可共享的数据集合。它可以供多用户共享。数据库中的数据按照一定数据模型组织、描述和存储数据,具有较小的数据冗余度和较高的数据独立性和易扩展性。数据库管理系统在数据库的建立、使用和维护时对数据库进行统一的管理和控制,以保证数据的完整性和完全性,并为多用户同时使用数据库时进行并发控制,在发生故障后的数据库进行恢复。

数据库系统的出现使信息系统以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。

数据模型

数据库技术的发展是沿着数据模型的主线推进的。

模型是对现实世界中某个对象特征的模拟和抽象。

数据模型:也是一种模型,是对现实世界数据特征的抽象。也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。

数据模型是数据库系统的核心和基础。

两类数据模型

数据模型应满足三方面要求:

  1. 能够比较真实地模拟现实世界。
  2. 容易为人所理解。
  3. 便于在计算机上实现。

根据模型应用的不同目的,可以将这些模式划分为两大类,它们分别属于两个不同的层次。第一类是概念模型,第二类是逻辑模型和物理模型。

第一个概念模型也称为信息模型,它是按照用户的观点来对数据进行建模,主要用于数据库设计。

第二类中的逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系模型、半结构化模型等。它是按计算机系统的观点来对数据建模,主要用于数据库管理系统的设计。

第二类中的物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方法和存取方法,或在磁盘或磁带上的存储路径和存取方法,是面向计算机系统的。物理模型的具体实现是数据库管理系统的任务,数据库设计人员要了解和选择物理模型,最终用户则不必考虑物理级的细节。

从现实世界到概念模型的转换是数据库设计人员实现的;从概念模型到逻辑模型的转换可以由数据库设计人员完成,也可以用数据库的设计工具协助设计人员完成;从逻辑模型到物理模型的转换主要由数据库管理系统完成的。

概念模型

概念模型是从现实世界到机器世界的一个中间层次。

概念模型一方面应该具有较强的语言表达能力,能够方便、直接地表达应用中的各种语言。另一方面它还应该简单、清晰、易于用户理解。

信息世界中的基本概念:

(1) 实体:客观存在并可相互区别的事物称为实体。
(2) 属性:实体所具有的某一特性称为属性。
(3) 码:唯一标识实体的数据集称为码。
(4) 实体型:用实体名及其属性名来抽象和刻画同类实体,称为实体型。
(5) 实体集:同一类型实体的集合称为实体集。
(6) 联系:在现实世界中,事物内部及事物之间具有与联系,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。

概念模型的一种表示方法:实体-联系方法

概念模型的表示方法很多,其中最常用的是P.P.S.Chen在1976年提出的实体-联系方法。该方法用E-R图来描述现实世界的概念模型,E-R方法称为E-R模型。

数据模型的组成要素

一般来讲,数据模型是严格定义的一组概念的集合。这些概念准确的描述了系统的静态特征、动态特征和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束条件三部分组成。

数据结构描述数据库的组成对象以及对象之间的联系。

总之数据结构是所描述的对象类型的集合,是对系统静态特性的描述。

数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。

数据操作是对系统动态特征的描述。

数据的完整性约束条件是一组完整性规则。

常用的数据模型

数据库领域中主要的逻辑数据模型有:

层次模型
网状模型
关系模型
面向对象数据模型
对象关系数据模型
半结构化数据模型

其中层次模型和网状模式是格式化模型

层次数据库系统和网状数据库系统的使用和实现上都涉及到数据库物理层的复杂结构。

数据结构是刻画模型性质的最基本的方面

在格式化模型中实体用记录表示,实体的数据对应记录的数据项(字段)。实体之间的联系在格式化模型中转换成记录之间的两两联系。

在格式化模型中数据结构的基本单位是基本层次联系。所谓基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系。

层次模型

层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织形式。典型代表是IBM公司的IMS系统。

层次模型用树形结构表示实体以及实体间的联系。

层次模型的数据结构

在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:

(1) 有且只有一个结点没有双亲结点,这个结点称为根结点。
(2) 根以外的其他结点有且仅有一个双亲结点。

层次模型像一棵倒立的树,结点的双亲是唯一的。

层次模型的基本特点是:任何一个给定的记录值只能按其层次路径查看,没有一个子女记录值能够脱离双亲记录值而独立存在。

层次模型的数据操纵与完整性约束

层次模型的数据操纵主要有查询、修改、更新和删除。进行插入、删除、更新操作要满足层次数据模型的完整性约束条件。

进行插入操作,如果没有相应的双亲结点值就不能插入它的子女结点值。
进行删除操作时,如果删除双亲结点值,则相应的子女结点值也将被同时删除。

层次模型的优缺点

层次模型的优点:
(1)层次模型的数据结构比较简单清晰。
(2)层次数据库的查询效率高。
(3)层次数据库提供良好的完整性支持。

层次及模型的缺点:
(1)现实世界之中很多联系是非层次性的,如结点之间具有多对多联系,不适合用层次模型表示。
(2)如果一个结点具有多个双亲结点时等,用层次模型表示这类的联系就很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据结构(引入虚拟结点)来解决。对插入和删除的操作限制比较多,因此应用程序的编写比较复杂。
(3)查询子女结点必须通过双亲结点。
(4)由于结构严密,层次命令趋于程序化。

可见,用层次模型对于具有一对多的层次联系的部门描述非常自然、直观、容易理解,这是层次模型的突出优点。

网状数据模型

在现实世界中事物之间的联系更多的是非层次关系的,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊病。

网状数据库系统采用网状模型作为数据的组织方式。网状数据模型的典型代表是DBTG系统,亦称为CODASYL系统。

网状模型的数据结构

在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:
(1)允许一个以上的结点无双亲。
(2)一个结点可以有多于一个的双亲。

网状模型可以更直接地去描述现实世界。而层次模型实际上是网状模型的一个特例。

与层次模型一样,网状模型的每个结点表示记录类型,每个记录类型包含若干个字段,结点之间的连线表示记录类型之间一对多的父子联系。

从定义可以看出,层次模型的子女结点与双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一。

DBTG模型不能表示记录之间多对多的联系。

网状模型的数据操纵与完整性约束

网状模型一般来说没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统对数据操纵增加了一些限制,提供了一些完整性约束条件。

例如:DBTG模式数据定义语言中提供了定义DBTG数据库完整性的若干概念和语句,主要有:
(1)支持记录码的概念,码是唯一标识记录的数据项的集合。
(2)保证一个联系中双亲记录和子女记录之间是一对多联系。
(3)可以支持双亲记录和子女记录之间的某些约束条件。

网状模型的优缺点

网状模型的优点主要有:
(1)能够更为直接的描述现实世界。如一个结点可以有多个双亲或结点之间可以有多种联系。
(2)具有良好的性能,存取效率较高。

网状模型的缺点主要有:
(1)结构比较复杂,随着应用环境的不断扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。
(2)网状模型的DDL、DML复杂,并且要嵌入一个高级语言(如COBOL、C),用户不容易掌握,不容易使用。
(3)由于记录之间的联系是通过存储路径实现的,应用程序在访问数据时必须选择合适的存取路径,因此,用户必须了解系统的结构,加重了编写应用程序的负担。

关系模型

关系模型是最重要的数据模型。关系数据库系统采用关系模型作为数据的组织方式。

关系模型的数据结构

关系模型与以往的模型不同的是,它是建立在严格的数学概念的基础上。

每个关系的数据结构都是一张规范化的二维表。

以下表为例,介绍关系模型中的一些术语:

学号 姓名 年龄 性别 系名 年级
2013004 王小明 19 社会学 2013
2013006 黄大鹏 20 商品学 2013
2013008 张文斌 18 法律 2013

(1)关系(relation):一个关系对应通常说的一张表,例如上面所说的这张表。
(2)元组(tuple):表中的一行即为一个元组。
(3)属性(atttribute):表中的一列即为一个属性,给每一个属性起一个名称即为属性名。上表中所示,有6个列,即有6个属性(学号,姓名,年龄,性别,系名,年级);
(4)码(key):也称为码键。表中某个属性组,它可以唯一确定一个元组。如表中的学号可以唯一确定一个学生,也就称为本关系的码。
(5)域(domain):域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。如人的年龄一般在1~20之间等等。
(6)分量:元组中的一个属性值。
(7)关系模式:对关系的描述,一般表示为关系名(属性1,属性2,...,属性n)

关系模型要求关系必须规范化,即要求关系必须满足一定的规范条件。这些规范条件中最基本的一条是:关系的每一个分量必须是一个不可分的数据项;

可以把关系和现实生活中的表格术语做一个粗略的对比:

关系术语 一般表格术语
关系名 表名
关系模式 表头(表格的描述)
关系 (一个)二维表
元组 记录或行
属性
属性名 列名
属性值 列值
分量 一条记录中的一个列值
非规范关系 表中有表(大表中嵌套小表)

关系模型的数据操纵和完整性约束

关系模型的数据操纵主要包括查询、插入、删除和更新数据,这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户自定义的完整性。

关系模型把存取路径向用户屏蔽起来,用户只要指出“干什么”或“找什么”,不必要详细说明“怎么干”或“怎么找”,从而大大提高了数据的独立性,提高了用户的生产率。

关系模型的优缺点

关系模型的优点:
(1)关系模型与格式化模型不同,它是建立在严格的数学概念的基础上。
(2)关系模型的概念单一。无论是实体还是实体之间的联系都是用关系来表示,对数据的检索和更新结果也是关系(即表)。所以其数据结构简单、清晰、易懂易用。
(3)关系模型的存取路径对用户透明,从而具有较高的数据独立性、更好的安全保密性,也简化了程序员对工作和数据库开发建立的工作。

关系模型的缺点:
(1)由于存取路径对用户透明,查询效率往往不如格式化数据模型。
(2)为了提高性能,数据库管理系统必须对用户的查询请求进行优化,因此增加了开发数据库管理系统的难度。
(3)硬件开销。关系数据模型需要更高效的计算机硬件和物理存储设备来完成RDBMS安排的任务。因此,它们可能比其他系统更慢。但是随着计算机技术和更高效的操作系统的快速开发,速度慢已不成为问题。
(4)容易设计出不合理或性能低下的数据库。关系数据库易于使用特点,容易导致未经过严格训练的人员在没有充分理解和深入思考的情况下,设计出不合理的或性能低下的数据库从而导致系统更慢,性能下降和数据不可靠。

不过用户不必考虑这些系统内部的优化技术细节。

数据库系统的结构

数据库系统的内部体系结构:三级模式结构(从数据库管理系统角度看)
数据库系统的外部体系结构:单用户结构、主从式结构、分布式结构、客户机/服务器结构、浏览器-应用服务器/数据库服务器多层结构等(从数据库系统的最终用户角度看)

数据库系统模式的概念

在数据模型中有的概念。

型是针对某一类数据的结构和属性的说明,值是型的一个具体赋值。

例如:学生(学号,姓名,性别,年龄,系名,籍贯)为一个记录型,(2013262
0,李明,男,19,计算机系,江苏南京市)则该记录的一个值。

模式(Schema)是数据库全体数据的逻辑结构和特征的描述,它仅仅涉及型的描述,不涉及具体的值。

模式的一个具体值称为模式的一个实例(instance

模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

数据库系统的三级模式结构

数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。

模式(schema)

模式也称为逻辑模式,是数据库全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

模式实际上数据在逻辑层上的视图。一个数据库只有一个模式。

定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项名称,类型与取值范围,还要定义数据之间的联系,定义与数据有关的安全性要求和完整性要求。

数据库管理系统提供模式数据描述语言(模式DDL)来严格定义模式。

外模式(extern schema)

外模式也称为用户模式或子模式,是数据库在视图层上的数据视图,是所有数据库用户所能看到使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

外模式通常是模式的子集,一个数据库可以有多个外模式,因为不同用户有不同的需求,以及拥有不同的访问权限,因此,对不同的用户提供不同的外模式的描述,即每一个用户只能看到和访问所对应的外模式的描述。另外,一个外模式可以为多个应用程序使用,但一个应用程序只能有一个外模式。

外模式是保证数据库安全性的一个有力措施。

数据库管理系统提供外模式数据描述语言(外模式DDL)来严格定义外模式。

内模式(internal schema)

内模式也称为存储模式,一个数据库只有一个内模式,它是对数据库物理结构和存储方式的描述,是数据在数据库内部的组织形式。

数据管理系统提供内模式数据描述语言(内模式DDL)来严格定义内模式。

数据库的二级映像功能与数据独立性

数据库系统的三级模式是数据的三个抽象级别。为了能够在系统内部实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映像:外模式/模式模式/内模式映像。

正是这两层映像保证了数据库中的数据能够具有较高的逻辑独立性和物理独立性。

外模式/模式映像

当模式改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以是外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据和程序的逻辑独立性,简称数据的逻辑独立性。

该映像的定义通常包含在各个外模式的描述中。

模式/内模式映像

该映像的定义通常包含在模式的描述中。

当数据库的存储结构发生改变时,由数据库管理员对模式/内模式作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证数据与程序的物理独立性,简称物理独立性。

总结

在数据库的三级模式中,数据库模式即全局逻辑结构数据库的中心与关键,它独立于数据库的其他层次。因此设计数据库模式结构时应当首先确定数据库的逻辑模式。

数据库的内模式依赖于它的全局逻辑结构,又独立于数据库的用户视图,即外模式,也独立于具体的存储设备,它是将全局逻辑结构所定义数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间和空间效率。

数据库的外模式面向具体的应用程序,它定义在逻辑模式之上,但独立于存储结构和存储设备。当应用需求发生较大变化,相应的外模式不能满足其视图要求时,该外模式得做相应的改动,所以设计外模式时应当充分考虑到应用的扩充性。

数据与程序之间的独立性使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由数据库管理系统管理,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

数据库系统的组成

数据库系统一般由数据库、数据库管理系统、数据库应用系统和数据库管理员构成。

硬件平台及数据库

由于数据库系统的数据量都很大,加之数据库管理系统的丰富的功能使得其本身规模都很大,因此整个数据库系统对硬件资源提出了较高的要求,这些要求是:

(1)要有足够大的内存,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序。
(2)要有足够的磁盘或磁盘阵列存放数据库,有足够大的磁带(光盘)作数据备份。
(3)要求系统有较高的通道能力,提高数据的传输率。

软件

(1)数据库管理系统。数据库管理系统为数据库的建立、使用和维护配置的系统软件。
(2)支持数据库管理系统运行的操作系统。
(3)具有与数据库接口的高级语言及其编译系统,便于开发应用程序。
(4)以数据库管理系统为核心的应用开发工具。
(5)为特定的应用环境开发特定的数据库应用系统。

人员

开发、管理和使用数据库系统的人员主要包括数据库管理系统、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员涉及不同的抽象级别,具有不同的数据视图。这些人员分别包括如下职责:

数据库管理员(DataBase Administrator,DBA)

在数据库系统环境下有两类共享资源:一类是数据库,另一类是数据库管理系统软件。
因此需要专门的管理机构来监督和管理数据库系统,数据库管理员则是这个机构的一个人员,负责全面管理和控制数据库系统。具体包括如下职责:

(1)决定数据库中的信息内容和结构。
(2)决定数据库的存储结构和存储策略。
(3)定义数据的完全性要求和完整性约束条件。
(4)监督数据库的使用和运行。
(5)数据库的改进和重组、重构。

系统分析员和数据库设计人员

系统分析员负责应用系统的需求分析和规范说明,要和用户和数据库管理员相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。

数据库设计人员负责数据库中数据的确定以数据库各级模式的设计,数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员由数据库管理员担任。

应用程序员

应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。

用户

这里的用户是指最终用户。最终用户通过应用系统的用户接口使用数据库。

最终用户可以分为如下三类:偶然用户、简单用户、复杂用户。

习题

试述数据、数据库、数据库管理系统、数据库系统的概念。

答:数据:描述事物的符号记录。数据的种类有:数字、图片、视频、音频、正文等。数据与其语义是密不可分的。
数据库:数据库是长期存储在计算机中的、有组织的、可共享的大量数据的集合。数据库中的数据按照一定的数据模型组织、描述和存储数据,具有较小的数据冗余、较高的数据独立性和易扩展性,并为多用户共享。
数据库管理系统:数据库管理系统是位于用户和操作系统之间的一层数据管理软件,用于科学组织和存储数据,用于高效地获取和处理数据。数据库管理系统的主要功能是数据定义功能、数据操纵功能、数据库的运行和事务管理、数据库的建立和维护功能。
数据库系统:数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统、数据库应用系统和数据库管理员构成。

使用数据库系统有什么好处?

答:使用数据库系统的好处是由数据库管理系统的特点和优点决定的。使用数据库系统的好处有很多。例如:可以大大提高应用的开发效率,方便用户的使用,减低数据库系统管理人员的维护负担,等等。

试述文件系统与数据库系统的区别和联系。

答:文件系统与数据库系统的区别:文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记录内有结构,整体无结构,由应用程序自己控制。数据库系统是面向现实世界,共享性高,冗余度低,具有较高的物理独立性和逻辑独立性,整体结构化,用数据模型描述,由数据库管理系统提供数据的完全性、完整性、并发控制和恢复能力。
文件系统与数据库系统的联系:文件系统和数据库系统都是计算机系统中的管理数据的软件。解析文件系统是操作系统的重要组成部分,而数据库管理系统是独立于操作系统的软件。但是DBMS是在操作系统的基础上实现的;数据库中数据的组织和存储是通过操作系统的文件系统来实现的。

举出适合用文件系统而不是数据库系统的例子,再举出用数据库系统的应用例子。

答:(1)适合用文件系统而不是数据库系统的例子:数据的备份、软件或应用程序使用过程中的临时数据存储一般使用文件比较合适。早期功能比较简单,比较固定应用系统也使用文件系统。
(2)用数据库系统的应用例子:几乎所有企业或部分的信息系统都是以数据库系统为基础,都是使用数据库。例如:一个工厂的信息管理系统,学校的学生管理系统等等。都适合用数据库系统。

试述数据库系统的特点。

答:数据库系统的主要特点有:(1)数据结构化。数据库系统实现整体数据结构化,这是数据库系统的主要特征之一,也是区别数据库系统和文件系统的的本质区别。
(2)数据的共享性高、冗余度低且易扩展。数据库的数据不再面向某一应用程序,而是面向系统整体,因此多个用户、多个应用程序可以共享数据库中的数据。数据库中的数据是面向系统,是具有结构的整体,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统的弹性大且容易扩充。数据的共享可以大大减少数据的冗余,节省存储空间,同时还能够数据之间的不相容性与不一致性。
(3)数据独立性高。数据的独立性包括逻辑独立性和物理独立性。数据库管理系统的模式结构和二级映像功能保证了数据库中数据具有很高的逻辑独立性和物理独立性。
(4)数据由数据库管理系统统一管理和控制。数据库管理系统提供了以下几个方面的数据控制功能:数据库数据的安全性、数据库数据的完整性、并发控制和恢复能力;数据安全性是指保护数据以防止数据库数据被非法修改和使用而造成数据泄露和破坏。数据库数据的完整性是指数据的正确性、有效性和相容性。当多个用户的并发进程同时存取、同时修改数据库,可能产生相互干扰而得到错误的信息或数据的完整性遭到破坏,因此数据库应该应该对多个用户的并发操作加以控制和协调。数据库恢复:当计算机硬件故障、软件故障、操作员的失误操作以及以及故意破坏都会影响数据库数据的正确性,甚至造成部分数据或全部数据的丢失时,能将错误的状态恢复到某一确定的正确状态。

数据库管系统的主要功能有哪些?

答:(1)数据库定义功能。
(2)数据组织、存储和管理。
(3)数据操纵功能。
(4)数据库管理系统的运行管理和事务管理。
(5)数据库的建立和维护。
(6)其他功能。

什么是概念模型?试述概念模型的作用?

答:概念模型:也称为信息模型。是按照用户的观点对数据和信息建模,主要用于数据库设计。

概念模型的作用:用于信息世界的建模,是现实世界到机器世界的一个中间层次。使数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。

定义并解释概念模型中以下术语:实体、实体型、实体集、实体之间的联系。

答:实体:客观存在并且可以相互识别的事物叫实体。
实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名来抽象和刻画同类实体,称为实体型。
实体集:同类实体的集合称为实体集。
实体之间的联系:通常是指不同实体型的实体集之间的联系,实体之间的联系有一对一、一对多、多对多等多种类型。

试述数据模型的概念、数据模型的作用和数据模型的三要素。

答:数据模型是数据库用来对现实世界进行抽象的工具,是数据库中用以提供信息表示和操作手段的形式框架。
一般来说,数据模型是严格定义的一组概念的集合,这些概念准确的描述了系统的静态特征、动态特征和完整性约束条件。因此数据模型通常由数据结构、数据操作和完整性约束条件三部分组成。
(1)数据结构是所描述的对象类型的集合,是对系统静态特征的描述。
(2)数据操作:是指对数据库中的对象(型)的实例(值)运行进行的操作的集合,包括操作和有关的操作规则,是对系统动态特征的描述。
(3)数据完整性约束条件:是一组完整性规则。完整性规则是给定的数据模型中的数据及其联系具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的改变,用以数据的正确、有效和相容。

试述层次、网状数据库的优缺点:

答:层次数据库优点:
(1)层次模型结构简单,对于具有一对多层次联系的部门描述比较自然、直观且容易理解。
(2)查询效率高。因为层次模型之间的联系是通过有向边表示,这种联系在数据库管理系统中是通过指针实现的,因此这种联系也是记录之间的存取路径。当要存取某个结点的记录值时,DBMS沿着这条路径查找很快能找到该记录值,所以层次数据模型的查询效率比关系数据库高,不低于网状数据库。
(3)提供了良好的数据完整性支持。
层次数据库缺点:
(1)现实世界中很多联系是非层次性的,如结点之间多对多联系,不适合使用层次数据库表示。
(2)如果一个结点存在多个双亲结点,用层次数据库表示比较笨拙,只能通过引入冗余数据(容易造成数据不一致)或创建非自然的数据结构(引入一个虚拟结点)来解决.对于插入和删除存在比较多的限制,因此应用程序的编写比较复杂。
(3)查询子女结点必须通过双亲结点。
(4)结构比较严密,层次命令趋于程序化。
网状数据库优点:
(1)能够更为直接的描述现实世界。如一个结点可以有多个双亲。
(2)具备良好的性能,存取效率高。
网状数据库缺点:
(1)结构比较复杂,随着应用环境不断扩大,数据库的结构越来越复杂,不利用最终用户的使用。
(2)网状模型的DDL、DML复杂,并且嵌入一种高级语言(COBOL、C),用户不容易掌握,不容易使用。
(3)网状模式各数据之间的联系是通过存取路径实现的,应用程序在访问数据库时要选择合适的存储路径,因此,用户需要了解系统结构的细节,加重编写应用程序的负担。

试述关系模型的关系,定义并解释以下术语:(1)关系(2)属性(3)域(4)元组(5)主码(6)分量(7)关系模式

答:关系模型由关系数据结构、关系数据操作和关系完整性约束条件三部分组成。在用户观点下 :关系模型的数据结构是一张规范化的二维表,它由行和列组成。
(1)关系:一个关系对于通常所说的一张表。
(2)属性:表中的一列即为一个属性。
(3)域:具有相同数据类型的值的集合。
(4)元组:表中的一行即为一个元组。
(5)主码:表中的某个属性组,它可以唯一标识一行记录。
(6)分量:元组中的一个属性值。
(7)关系模式:对关系的描述,一般表示为关系名(属性1,属性2,...,属性n)

试述关系数据库的特点:

答:(1)关系模式与菲关系模型不同,它是建立在严格的数学概念的基础上。
(2)关系模型的概念单一。无论是实体还是实体之间联系都是同一结构类型关系表示,对于查询和更新结果也是用关系表示。因此关系数据库的数据结构简单、清晰、易懂易用。
(3)关系数据库的存取路径对用户透明,从而使关系数据库具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库的开发和建立的工作。当然关系数据库也有缺点,因为存储路径对用户透明,所以查询效率往往不如非关系数据库。因此为了提高性能,需要对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

试述数据库系统三级模式结构,这种结构的优点是什么?

答:数据库系统的三级模式结构为外模式、模式和内模式。
外模式也称为用户模式或子模式,是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。
模式:也称为逻辑模式,是在逻辑层上描述数据库的设计,是数据库全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,模式实质上是在逻辑层的数据视图。
内模式:也称为存储模式,它是对数据的物理结构和存储方式的描述,是数据在数据库内部的组织形式。
数据库系统的三级模式对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑抽象地处理数据,而不必关心数据在计算机中的表示和存储。为了能够在内部实现这三个抽象的联系和转换,数据库系统为这三级模式之间提供了两层映像,外模式/模式映像,模式/内模式映像。正是这两层映像保证了数据库系统中的数据能够较高的逻辑独立性和物理独立性。

定义并解释以下术语:模式、外模式、内模式、DDL、DML

答:模式亦称逻辑模式,是数据库全体数据的逻辑结构和特征的描述。
外模式:亦称子模式或用户模式,外模式涉及的是局部数据的逻辑结构,是模式的子集。
内模式:亦称存储模式,它是对数据的物理结构和存储方式的描述。
数据定义语言(DDL):用来定义数据库模式、外模式、内模式的语言。
数据操作数据(DML):用来对数据库中的数据进行查询、删除、修改和插入的语句。

什么叫数据与程序的物理独立性?什么叫数据与程序的物理独立性?为什么数据库系统具有数据与程序的独立性?

答:数据与程序的逻辑独立性:当模式发生改变时,由数据库管理员对各个外模式/模式的映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序可以不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据与程序的物理独立性:当数据库的存储结构发生改变时,由数据库管理员对模式/内模式的映像作相应的改变,可以是模式保持不变,从而应用程序也可以保持不变,保证了数据与程序的物理独立性,简称数据的物理独立性。
数据库管理系统在三级模式之间提供的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

试述数据库系统的组成。

答:数据库系统一般由数据库、数据库管理系统、数据库应用系统(及其开发工具)、数据库管理员和用户构成

数据库管理员、系统分析员、数据库设计人员、应用程序员的职责是什么?

答:数据库管理员的职责:(1)决定数据库的信息内容和结构。(2)决定数据库中数据的存储结构和存储策略(3)定义数据的安全性要求和完整性约束条件(4)监控数据库管理系统的使用和运行。(5)数据库的改进和重组、重构。
系统分析员的职责:系统分析员负责应用的需求和规范说明,系统分析员要与数据库管理员和用户相结合,确定系统的硬件和软件配置,并参与数据库系统的概要设计。
数据库设计人员的职责:数据库设计人员负责参数数据库中数据的确定和数据库各级模式的设计。数据库设计人员必须参数用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员由数据库管理员担任。
应用程序员的职责:应用程序员负责设计和编写应用系统的程序模块,并进行调试和安装。

第二章 关系数据库

关系数据库应用数学方法来处理数据库中的数据。

系统、严格地提出关系模型的是美国IBM公司的E.F.Codd

1970年,E.F.Codd在美国计算机学会刊《Communications of the ACM》上发表了题为“大型共享数据银行数据的关系模式(A Relation Model of Data for Shared Banks Datas)”的论文,开创了数据库系统的新纪元。此后,E.F.Codd连续发表了几篇论文,奠定了关系数据库的基础。

典型的实验系统:System R,University INGRES

典型的商用系统:Oracle,Sybase,Infomix,IBM DB2 MS SQL Server

PC段小型数据库系统:Foxpro,Access,Mysql

关系数据结构及其形式化定义

关系数据库系统是支持关系模式的数据库系统。

按照数据模型的三个要素,关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

关系

关系模式的数据结构非常简单,只包含单一的数据结构–关系,在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。

在关系模型中,现实世界的实体以及实体间的各种联系均用单一的结构类型,即关系表示。

关系模型是建立在集合代数的基础上的,这里从集合论的角度给出关系数据结构的形式化定义。

域(domain)

定义:是一组具有相同数据类型的值的集合。

例如:自然数、证书、实数,长度小于25字节的字符串的集合等等都可以是域。

笛卡尔积

笛卡尔积是域上的一种集合运算。

定义:给定一组域D1,D2,…,Dn,允许其中某些域相同,域D1,D2,…,Dn的笛卡尔积为:

D1 × D2 × D3×...×Dn={(d1,d2,...,dn)| di∈Di,i=1,2,...,n}

其中每一个(d1,d2,...,dn)叫做一个n元组,或称元组,元素中每一个值di叫做一个分量。

一个域允许的不同取值个数称为这个域的基数。

笛卡尔积可以表示为一张二维表,表的每一行为一个元组,表的每一列的值必须来自一个域。

关系

定义 D1 × D2 × D3×...×Dn的子集叫做在域D1,D2,…,Dn上的n元关系,表示为R(D1,D2,...,Dn);

其中R为关系名,n是关系的度和目。

关系中的每一个元素为一个元组,通常用字母t表示。

当n=1时,称为关系的单元关系,或一元关系。
当n=2时,称为关系的二元关系。

关系是笛卡尔积的有限子集,所以关系也是一张二维表,表的每行对应于一个元组,表的每列对应于一个域。由于域可以相同,为了加以区分,必须对每列取一个名字。n目关系必有n个属性。

关系的码

若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码

若一个关系中有多个候选码,则选定其中一个为主码

候选码中的诸属性称为主属性

不包含在任何候选码中的属性称为非主属性非码属性

在最简单情况下,候选码只包含一个属性,在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码

一般来说,D1,D2,…,Dn的笛卡尔积没有实际语义的,只要它的某个真子集才有实际含义。

关系可以有三种类型:基本关系(通常又称为基本表或基表)、查询表和视图表。其中:基本表是实际存在的表,它是实际存储数据的逻辑表示;查询表是查询结果对应的表;视图表是由基本表或其他视图表导出的表,是基表,不对应实际存储的数据。

关系的性质

  1. 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。
  2. 不同的列可以出自同一个域,称其中每一列为一个属性,不同的属性都必须有唯一可区分的名称。
  3. 列的顺序无所谓,即列的次序可以任意交换。由于列的顺序都是无关紧要的,因此许多实际关系数据库产品中增加新属性时,永远是插至最后一列。
  4. 任意两个元组的候选码不能取相同的值。
  5. 行的顺序无所谓,即行的次序可以任意交换。
  6. 分量必须取原子值,即每一个分量都必须是不可分的数据项。

关系模型要求关系必须是规范化,即要求关系必须满足一定的规范条件。这些规范条件中最基本的一条就是,关系的每一个分量都必须是不可再分的数据项。

规范化的关系简称为范式。

关系模式

在数据库中要区分型和值。关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,那么一个关系需要描述哪些方面呢?

关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映像关系。

定义:关系的描述称为关系模式。他可以形式化定义为R(U,D,DOM,F)

其中R为关系名,U为组成该关系的属性名集和,D为U中的属性所来自的域,DOM为属性向域的映像集合,F为属性间数据的依赖关系集合。

关系模式可以通常简记为:R(U)R(A1,A2,..,An)

其中R为关系名称,U为属性名集合,A1,A2,..,An为属性名。而域名即属性向域的映像通常直接说明为属性的类型、长度。

关系是关系模式某一时刻的状态和内容,关系模式是静态的、稳定的、而关系是动态的、随时间不断变化的,因为关系操作在不断地更新数据库中的数据。

关系数据库

在关系模型中,实体及实体间的联系都是用关系来表示。

在一个给定的应用领域中,所有实体及实体间联系所对应的关系的集合,称为一个关系数据库。

关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述。关系数据库模式包含若干域以及在这些域上定义的若干关系模式。

关系数据库的值是关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

关系模型的存储结构

我们已经知道,在关系数据模型中实体以及实体之间的联系都用关系来表示,但表是关系数据的逻辑表示。

在关系数据库的物理组织中,有的关系数据库管理系统中一个表对应一个操作系统文件,将物理数据组织交给操作系统完成;有的关系数据库管理系统从操作系统那里申请若干个大的文件,自己划分文件空间,组织表、索引等存储结构,并进行存储管理。

关系操作

基本的关系操作

关系模型中常用的关系操作包括查询操作和插入、删除、修改操作两大部分。

关系的查询表达能力很强,是关系操作中最主要的部分。查询操作又可以分为选择、投影、连接、除、并、交、差、笛卡尔积中。其中选择、投影、并、差、笛卡尔积是5种基本操作,其他操作都可以从基本操作来定义和导出。

关系操作的特点是集合操作,即操作的对象和结果都是集合这种方式也称为一次一集合方式。

相应地,非关系数据模型的数据操作是一次一记录的方式。

关系数据语言的分类

早期的关系操作能力通常用代数式子和逻辑式子表达,分别称关系代数和关系演算。关系代数是用对关系的运算来表达查询要求,关系演算是用谓词表达查询要求。关系演算按谓词变元的基本对象是元组变量还是域变量又可以分为元组关系演算和域关系演算。

一个关系数据语言能够表示关系代数可以表示的查询,称为具有完备的表达能力,简称关系完备性。

关系代数和元组关系演算和域关系演算均是抽象的查询语言。

还有一个介于关系代数和关系演算之间的结构化语言:SQL,SQL不仅具有丰富的查询功能,还提供数据定义功能和数据控制功能,是级数据查询、数据定义语言、数据操纵语言、数据控制语言为一体的关系数据库语言。它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。

关系数据语言可以分为三类:关系代数语言、关系演算语言、结构化语言SQL。

关系完整性

关系模型的完整性规则是对关系提出的某种约束条件。也就是说关系的值随时间不断发生变化时必须满足一些约束条件,这些约束条件就是现实世界的要求。任何关系在任何时刻都必须满足一些语义约束。

关系模型中有三类完整性约束:实体完整性、参照完整性和用户自定义完整性。其中实体完整性和惨遭完整性是关系模型必须满足的约束条件,被称为关系的两个不变性,应该由关系系统自动支持,而用户自定义完整性是应用领域需要遵循的约束条件,体现了具体领域中约束语义。

实体完整性

关系数据库每个元组应该是可区分的,唯一的。这样的约束条件用实体完整性来保证。

实体完整性规则:若属性(一个或一组属性)A是基于关系R的主属性,则A不能取空值。所谓空值就是不知道不确定无意义的值。

对实体完整性规则说明如下:

  1. 实体完整性是针对基本关系而言的,一个基本表通常对应于现实世界的一个实体集。例如学生关系是对应于学生集合。
  2. 现实世界中实体是可区分的,即它们具有某种唯一性标识。例如每个学生都是独立的个体,是不一样的。
  3. 相应地,关系模型中以主码作为唯一性标识。
  4. 主码中的属性即主属性不能取空值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,与第2点相矛盾,因此这个规则称为实体完整性。

参照完整性

外码:设F是基本关系R的一个或一组属性组,但不是关系R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。

参照完整性规则就是定义外码与主码之间的引用规则。

参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系的主码Ks相对应(关系R和guanxS不一定是不同的关系),则对于关系R中每个元组在F上的值必须:

或者等于空值。
或者等于基本关系S中主码的某个值。

用户定义完整性

任何关系数据库系统都应该支持实体完整性和参照完整性。这是关系模型所要求的。除此之外,不同的关系数据库系统根据其环境的不同,往往还需要一些特殊的约束条件。

用户定义的完整性约束就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。

关系模型应该提供定义和检验这类完整性的机制。以便用统一的系统和方法来处理它,而不需由应用程序承担这一功能。

关系代数

关系代数是一种抽象的查询语言,它是用对关系的运算来表达查询要求

运算的三大要素:运算符、运算对象、运算结果。

关系代数的运算对象是关系,运算结果也是关系,运算符包括两类:集合的运算符和专门的关系运算符。

关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算两类

其中,传统的集合运算将关系看成元组的集合,其运算从关系的“水平”方向,即行的角度进行的。而专门的关系运算不仅涉及行、也涉及列的运算。

比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。

传统的集合运算

传统的集合运算是二目运算,包括并、交、差、笛卡尔积

设关系R和关系S具有相同的度n(即两个关系都有n个属性),且对应的属性取自同一个域,t是元组变量,t∈R表示t是R的一个元组。

并、交、差、笛卡尔积的定义如下

并(union)

关系R和关系S的并记作:R∪S={t|t∈R∨t∈S}

其结果关系仍为n目关系,由属于R或属于S的元组构成的集合。

差(expect)

关系R和关系S的差记作:R-S={t|t∈R∧¬t∈S}

其结果关系仍为n目关系,由属于R而不属于S的所有元组组成。

交(intersection)

关系R和关系S的交记作:R∩S={t|t∈R∧t∈S}

其结果关系仍为n目关系,由属于R且属于S的所有元组组成。关系的交可以用关系的差来表示,即R-(R∩S)

笛卡尔积(cartesian product)

这里的笛卡尔积严格地讲应该广义笛卡尔积,因为这里的笛卡尔积的元素是元组。

两个分别为n目和m目的关系R和S的笛卡尔积是一个(n+m)列的元组的集合。元组的前n个元组来自关系R的一个元组,元组的后n个元组来自关系S中的一个元组。若关系关系有k1个元组,关系S有k2个元组,则关系R和关系S的笛卡尔积有k1×k2个元组。记作:R×S={tr ∩ ts | tr ∈ R ∧ ts ∈S }

专门的关系运算

专门的关系运算包括选择、投影、连接、除运算等

选择

选择又称为限制。它是在关系R中选择满足给定条件的诸元组,记作:σF(R)={t|t∈R∧F(t)=’真’}

其中σ是选择运算符,F表示选择条件,它表示一个逻辑表达式,取逻辑值为

选择运算实际上是从关系R中选取使逻辑表达式为真的元组。这是从行的角度进行运算。

投影

关系R上的投影是从关系R中选择出若干属性列组成新的关系,记作:πA(R)={t[A]|t∈R}

其中A为R中的属性列。

投影是从列的角度进行运算。

连接

连接也称为θ连接,它是两个关系的笛卡尔积中选取属性间满足一定条件的元组。

连接运算中两种最常用最重要的连接为:一种是等值连接、一种是自然连接。

一般的连接操作是从行的角度进行运算,而自然连接还需要取消重复列,所以同时从行和列的角度进行运算。

此时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成关系R中这些元组在操作时被舍弃了,同时,S中的某些元组在操作时也可能被舍弃。这些被舍弃的元组称为悬浮元组。

如果把这些悬浮元组也保存在结果中,而在其他属性上填空值(NULL),那么这种连接称为外连接。记作R∞S;如果只保留左边关系R中的悬浮元组就叫左外连接,记作R∞S;如果只保留右边关系S中的悬浮元组就叫右外连接,记作`R∞S。

除运算

设关系R除以关系S的结果为关系T,则T包含所有在R但不在S中的属性及其值,且T的元组与S的元组的所有组合都能在R中。

下面用像集来定义除法:

给定关系R(X,Y)和S(Y,Z),其中x,y,z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。

R与S的除运算得到一个新的关系P(x),P是R中满足下列条件的元组在X属性列的投影:元组在X的分量值为x的像集Yx包含S在Y的投影的集合,记作:R÷S={tr [X] | tr∈R ∧ πy(S)Yx }

除操作是同时从行和列的角度进行运算。

关系演算

关系演算是以数据逻辑中的谓词演算为基础的。按谓词变元的不同,关系演算可分为元组关系演算和域关系演算。

元组关系演算语言ALPHA

元组关系演算是以元组变量作为谓词变元的基本对象。一种典型的元组关系演算语言是E.F.codd提出的ALPHA语言。这一语言虽然没有实际实现,但是关系数据库管理系统INGRES最初所用的QUEL语言是参照ALPHA语言研制的,与ALPHA语言十分相似。

ALPHA主要由PUTGETHOLDDELETEUPDATEDROP 6条语句,语句的基本格式如下:

操作语句 工作空间名(表达式): 操作条件

其中表达式用于指定语句的操作对象,它可以是关系名或(和)属性名,一条语句可以同时操作多个关系或多个属性。操作条件是一个逻辑表达式,用于将操作结果限定在满足条件的元组上,操作条件可以为空。除此之外,还可以在基本格式的基础上加上排序要求以及返回元组的条数。

检索操作

检索操作用GET语句实现。

元组变量定义格式 RANGE 关系名 元组变量名

修改操作

修改操作用update语句完成,其步骤如如下:

  1. 先用Hold语句将要修改的元组从数据库中读到工作空间中。
  2. 再用宿主语言修改工作空间中元组的属性值。
  3. 最后用UPDATE语句将修改后的元组送回数据库中。

在ALPHA语言中,修改关系的主码的操作是不允许的。

插入操作

插入操作用PUT语句实现,其步骤如下:

  1. 先用宿主语言在工作空间中建立新元组。
  2. 然后用PUT语句将该元组存入指定的关系中。

PUT语言只能对一个关系操作,也就是说表达式必须为单个关系名。

删除

删除操作用DELETE语言实现,其步骤如下:

  1. 用HOLD语句把要删除的元组从数据库中读到工作空间中。
  2. 用DELETE语句删除该元组。

元组关系演算

自由元组变量和约束元组变量

在元组关系演算中,各种运算符的优先级如下:

  1. 算术运算符最高。
  2. 量词次之。
  3. 逻辑运算符。
  4. 加括号时,括号中运算符优先,同一括号内运算符的优先级遵循第1、2、3点。

域关系演算语言QBE

关系演算的另一种形式是域关系演算。域关系演算是以元组变量的分量(域变量)作为谓词变元的基本对象。

1975年由M.M.Zloof提出的QBE就是一个很有特色的域关系演算语言,该语言在1978年在IBM 370上实现。

QBE是Query By Example(即通过例子进行查询)的简称,它最突出的特点是操作方式。它是一种高度非过程化的基于屏幕表格的查询语言,用户通过终端屏幕编辑程序以填写表格的方式构建查询语言,其查询结果也是以表格的形式存在,所以非常直观、易懂易用。

QBE通过示例元素表示查询结果可能的情况,示例元素实质上就是域变量。

查询操作的操作符:P.
修改操作的操作符:U.
插入操作的操作符:I.
删除操作的操作符:D.

习题

试述关系模型的三个重要组成部分?

答:关系模型是由关系数据结构、关系操作集合和关系完整性约束三部分组成。

简述关系数据语言的特点和分类?

答:关系数据语言分为三类:
关系代数据语言。
关系演算语言:元组关系演算语言和与关系演算语言。
SQL:具有关系代数和关系演算双重特点的语言。
这些关系数据语言具有完备的表达能力,非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

定义并理解下列术语,说明他们之间的联系与区别:
(1)域,笛卡尔积,关系,元组,属性
(2)主码,候选码,外码
(3)关系模式,关系,关系数据库

答:(1)域:是指一组具有相同数据类型的值的集合。
笛卡尔积:给定一组域D1,D2,…,Dn,这些域中可以有相同的域,D1,D2,…,Dn的笛卡尔积为D1×D2×,...,×Dn={(d1,d2,...,dn)|di∈Di,i=1,2,..,n},其中,每一个元素为一个n元组,简称元组,元组中的每一个值di称为一个分量。
关系:在域D1,D2,…,Dn上,笛卡尔积为D1×D2×,...,×Dn的子集称为关系,表示为R(D1,D2,...,Dn)
元组:关系中的每个元素是关系中元组。
属性:关系也是一个二维表,表的每一行对应于一个元组,表的每列对应于一个域,由于域可以相同,为了加以区分,必须为每列取一个名字,称为属性。
(2)候选码:能唯一标识关系中元组的一个或属性集,称为候选码。候选码:若关系中存在某个属性组的值能唯一标识一个元组,则称该属性组为候选码。
主码:若关系中存在多个候选码,则选定其中一个为主码。
外码:设F是基本关系R中的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F为基本关系R的外码。基本关系R为参照关系,基本关系S为被参照关系,关系R和关系S可以是同一个属性。
(3)关系模式:关系的描述称为关系模式,可以形式化定义为:R(U,D,DOM,F)
其中R为关系名,U为组成该关系的属性名集合,D域为属性集U中属性值所对应的域,DOM是属性与域的映像集合,F是属性间函数依赖关系的集合。
关系:关系是关系模式在某一时刻的状态和内容。关系模式是静态的,稳定的。而关系是动态的,随时间不断发生变化的。因为关系操作在不断更新数据库中的数据。
关系数据库:关系数据库中也有型和值之分。关系数据库的型称为关系数据模式,是对关系数据库的描述,它包含若干域的定义以及在域上定义的各关系模式,即对关系数据库框架的描述,而关系数据库的值对应于关系模式的某一时刻所对应的关系的集合,通常称为关系数据库。

举例说明关系模式和关系的区别

关系模式 关系
对关系的描述 关系模式在某一时刻的状态或内容
静态的、稳定的 动态的、随时间不断变化的

试述关系模型的完整性规则。在参照完整性中,什么情况下外码属性的值可以取空值。

答:关系模型的完整性规则是对关系提出的某种约束条件。关系模型中可以有3类完整性约束:实体完整性、参照完整性、用户自定义完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称为关系的两个不变性,应该由关系系统支持。
(1)实体完整性:若属性A是基本关系R的主属性,则属性A不能取空值。
(2)参照完整性:若属性(属性组)F是基本关系R的外码,与基本关系R的主码Ks相对于(基本关系R和S不一定是不相同的关系),则对于R中每个元组在F上的值必须为一下两者之一:或者取空置,或者是基本关系S某个元组的主码值。
(3)用户自定义完整性:是针对某一具体关系数据库决定的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
参照完整性中,外码的属性值可以为空,表示该属性的值未确定。但前提条件是该外部码属性不是其所在关系的主属性。

试述自然连接和等值连接的区别和联系?

答:连接运算符是“=”的连接称为等值连接。它是从关系R与S的广义笛卡尔积上选取A,B属性值相等的那些元组。
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的数据列去掉。

关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?

答:基本运算:并、差、笛卡尔积、选择和投影。其他3中运算,即交、连接、除均可以用这5中基本运算来表达。