数据库系统讲义(1)

数据库系统讲义(1)
数据库系统讲义(1)

《数据库系统讲义》

第1章绪论

第一节数据库系统概述

1.1.1 数据、数据库、数据库管理系统、数据库系统

数据、数据库、数据库管理系统和数据库系统是与数据库技术密切相关的四个基本概念。

一、数据(DATA)

数据是数据库中存储的基本对象。数据在大多数人头脑中的第一个反应就是数字。其实数字只是最简单的一种数据,是数据的一种传统和狭义的理解。广义的理解,数据的种类很多,文字、图形、图像、声音、学生的档案记录、货物的运输情况等,这些都是数据。

可以对数据做如下定义:描述事物的符号记录称为数据。描述事物的符号可以是数字,也可以是文字、图形、图像、声音、语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机。

为了了解世界,交流信息,人们需要描述这些事物。在日常生活中直接用自然语言(如汉语)描述。在计算机中,为了存储和处理这些事物,就要抽出对这些事物感兴趣的特征组成一个记录来描述。例如:在学生档案中,如果人们最感兴趣的是学生的姓名、性别、年龄、出生年月、籍贯、所在系别、入学时间,那么可以这样描述:

(李明,男,21,1972,江苏,计算机系,1990)

因此这里的学生记录就是数据。对于上面这条学生记录,了解其含义的人会得到如下信息:李明是个大学生,1972年出生,男,江苏人,1990年考入计算机系;而不了解其语义的人则无法理解其含义。可见,数据的形式还不能完全表达其内容,需要经过解释。所以数据和关于数据的解释是不可分的,数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。

二、数据库(DataBase,简称DB)

数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。

人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息。在科学技术飞速发展的今天,人们的视野越来越广,数据量急剧增加。过去人们把数据存放在文件柜里,现在人们借助计算机和数据库技术科学地保存和管理大量的复杂的数据,以便能方便而充分地利用这些宝贵的信息资源。

所谓数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

三、数据库管理系统(DataBase Management System,简称DBMS)

了解了数据和数据库的概念,下一个问题就是如何科学地组织和存储数据,如何高效地获取和维护数据。完成这个任务的是一个系统软件——数据库管理系统。

数据库管理系统是位于用户与操作系统之间的一层数据管理软件。它的主要功能包括以下几个方面:

1. 数据定义功能

DBMS提供数据定义语言(Data Definition Language,简称DDL),用户通过它可以方便地定义对数据库中的数据对象进行定义。

2. 数据操纵功能

DBMS还提供数据操纵语言(Data Manipulation Language,简称DML),用户可以使用DML操纵

数据实现对数据库的基本操作,如查询、插入、删除和修改等。

3. 数据库的运行管理

数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

4. 数据库的建立和维护功能

它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能通常是由一些实用程序完成的。

数据库管理系统是数据库系统的一个重要组成部分。

四、数据库系统(DataBase System,简称DBS)

数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。应当指出的是,数据库的建立、使用和维护等工作只靠一个DBMS远远不够,还要有专门的人员来完成,这些人被称为数据库管理员(Data Base Administrator,简称DBA)。

在一般不引起混淆的情况下常常把数据库系统简称为数据库。

1.1.2 数据管理技术的产生和发展

数据库技术是应数据管理任务的需要而产生的。

数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。数据管理则是指对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的中心问题。

人们借助计算机进行数据处理是近三十年的事。研制计算机的初衷是利用它进行复杂的科学计算。随着计算机技术的发展,其应用远远地超出了这个范围。在应用需求的推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理、文件系统、数据库系统三个阶段。

1.1.3数据库系统的特点

与人工管理和文件系统相比,数据库系统的特点主要有以下几个方面。

一、数据结构化

数据结构化是数据库与文件系统的根本区别。

在文件系统中,相互独立的文件的记录内部是有结构的。传统文件的最简单形式是等长同格式的记录集合。

二、数据的共享性高,冗余度低,易扩充

数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。数据共享可以大大减少数据冗余,节约存储空间。数据共享还能够避免数据之间的不相容性与不一致性。

所谓数据的不一致性是指同一数据不同拷贝的值不一样。采用人工管理或文件系统管理时,由于数据被重复存储,当不同的应用使用和修改不同的拷贝时就很容易造成数据的不一致。在数据库中数据共享,减少了由于数据冗余(同一数据存储在不同的数据文件中的现象)造成的不一致现象。

由于数据面向整个系统,是有结构的数据,不仅可以被多个应用共享使用,而且容易增加新的应用,这就使得数据库系统弹性大,易于扩充,可以适应各种用户的要求。可以取整体数据的各种子集用于不同的应用系统,当应用需求改变或增加时,只要重新选取不同的子集或加上一部分数据便可以满足新的需求。

三、数据独立性高

数据独立性是数据库领域中一个常用术语,包括数据的物理独立性和数据的逻辑独立性。

物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。也就是说,数据在磁盘上的数据库中怎样存储是由DBMS管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。

逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,也就是说,数据的逻辑结构改变了,用户程序也可以不变。

数据独立性是由DBMS的二级映象功能来保证的,将在下面讨论。

数据与程序的独立,把数据的定义从程序中分离出去,加上数据的存取又由DBMS负责,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

四、数据由DBMS统一管理和控制

数据库的共享是并发的(Concurrency)共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。

为此,DBMS还必须提供以下几方面的数据控制功能:

(1)数据的安全性(Security)保护

数据的安全性是指保护数据以防止不合法的使用造成的数据的泄密和破坏。使每个用户只能按规定,对某些数据以某些方式进行使用和处理。

(2)数据的完整性(Integrity)检查

数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。

(3)并发(Concurrency)控制

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

(4)数据库恢复(Recovery)

计算机系统的硬件故障、软件故障、操作员的失误以及故意的破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能,这就是数据库的恢复功能。

综上所述,数据库是长期存储在计算机内有组织的大量的共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。DBMS在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性、安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对系统进行恢复。

数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。

目前,数据库已经成为现代信息系统的不可分离的重要组成部分。具有数百万甚至数十亿字节信息的数据库已经普遍存在于科学技术、工业、农业、商业、服务业和政府部门的信息系统。20世纪80年代后不仅在大型机上,在多数微机上也配置了DBMS,使数据库技术得到更加广泛的应用和普及。

数据库技术是计算机领域中发展最快的技术之一。数据库技术的发展是沿着数据模型的主线展开的。下面讨论数据模型。

第二节数据模型

是具体的模型。一眼望去,就会使人联想到真实生活中的事物。模型是现实世界特征的模拟和抽象。数据模型(Data Model)也是一种模型,它是现实世界数据特征的抽象。

数据库是某个企业、组织或部门所涉及的数据的综合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。由于计算机不可能直接处理现实世界中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据。在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。

现有的数据库系统均是基于某种数据模型的。因此,了解数据模型的基本概念是学习数据库的基础。

数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。一种数据模型要很好地满足这三方面的要求在目前尚很困难。在数据库系统中针对

不同的使用对象和应用目的,采用不同的数据模型。

不同的数据模型实际上是提供给我们模型化数据和信息的不同工具。根据模型应用的不同目的,可以将这些模型划分为两类,它们分属于两个不同的层次。

第一类模型是概念模型,也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。另一类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模,主要用于DBMS的实现。

数据模型是数据库系统的核心和基础。各种机器上实现的DBMS软件都是基于某种数据模型的。

为了把现实世界中的具体事物抽象、组织为某一DBMS支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。也就是说,首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个DBMS支持的数据模型,而是概念级的模型;然后再把概念模型转换为计算机上某一DBMS支持的数据模型。

1.2.1 数据模型的组成要素

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

一、数据结构

数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,它们包括两类,一类是与数据类型、内容、性质有关的对象,例如网状模型中的数据项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,例如网状模型中的系型(Set Type)。

数据结构是刻画一个数据模型性质最重要的方面。因此,在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。例如层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。

数据结构是对系统静态特性的描述。

二、数据操作

数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述。

三、数据的约束条件

数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。

数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。

此外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在学校的数据库中规定大学生入学年龄不得超过30岁,硕士研究生入学年龄不得超过38岁,学生累计成绩不得有三门以上不及格等。

1.2.2 概念模型

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

概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面它还应该简单、清晰、易于用户理解。

一、信息世界中的基本概念

信息世界涉及的概念主要有:

(1)实体(Entity)

客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或

联系,例如,一个职工、一个学生、一个部门、一门课、学生的一次选课、部门的一次订货、老师与系的工作关系(即某位老师在某系工作)等都是实体。

(2)属性(Attribute)

实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成。(94002268,张山,男,1976,计算机系,1994)这些属性组合起来表征了一个学生。

(3)码(Key)

唯一标识实体的属性集称为码。例如学号是学生实体的码。

(4)域(Domain)

属性的取值范围称为该属性的域。例如,学号的域为8位整数,姓名的域为字符串集合,年龄的域为小于38的整数,性别的域为(男,女)。

(5)实体型(Entity Type)

具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。

(6)实体集(Entity Set)

同型实体的集合称为实体集。例如,全体学生就是一个实体集。

(7)联系(Relationship)

在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。

两个实体型之间的联系可以分为三类:

①一对一联系(1 : 1)

如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1 : 1。

例如,学校里面,一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。

②一对多联系(1 : n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1 : n。

例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。

③多对多联系(m : n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m : n。

二、概念模型的表示方法

概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示出上述信息世界中的常用概念。概念模型的表示方法很多,其中最为著名最为常用的是P.P.S.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。

这里介绍E-R图的要点。

E-R图提供了表示实体型、属性和联系的方法:

·实体型:用矩形表示,矩形框内写明实体名。

·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。

·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向

边旁标上联系的类型(1:1,1:n或m:n)。

需要注意的是,如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

实体-联系方法是抽象和描述现实世界的有力工具。用E-R图表示的概念模型独立于具体的DBMS 所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。

1.2.3 最常用的数据模型

目前,数据库领域中最常用的数据模型有四种,它们是:

·层次模型(Hierarchical Model)

·网状模型(Network Model)

·关系模型(Relational Model)

·面向对象模型(Object Oriented Model)

其中层次模型和网状模型统称为非关系模型。

非关系模型的数据库系统在20世纪70年代至80年代初非常流行,在数据库系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代,但在美国等一些国家里,由于早期开发的应用系统都是基于层次数据库或网状数据库系统的,因此目前仍有不少层次数据库或网状数据库系统在继续使用。

20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等各方面都产生了深远的影响,也促进数据库中面向对象数据模型的研究和发展。

本章简要介绍层次模型、网状模型和关系模型。

数据结构、数据操作和完整性约束条件这三个方面的内容完整地描述了一个数据模型,其中数据结构是刻画模型性质的最基本的方面。为了使读者对数据模型有一个基本认识,下面着重介绍三种模型的数据结构。

注意:这里讲的数据模型都是逻辑上的,也就是说是用户眼中看到的数据范围。同时它们又都是能用某种语言描述,使计算机系统能够理解,被数据库管理系统支持的数据视图。这些数据模型将以一定的方式存储于数据库系统中,这是DBMS的功能,是DBMS中的存储模型。

在非关系模型中,实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在非关系模型中转换成记录之间的两两联系。

1.2.4 层次模型

层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统,这是1968年IBM公司推出的第一个大型的商用数据库管理系统,曾经得到广泛的使用。

层次模型用树形结构来表示各类实体以及实体间的联系。现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、家族关系等。

一、层次数据模型的数据结构

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

(1)有且只有一个结点没有双亲结点,这个结点称为根结点;

(2)根以外的其他结点有且只有一个双亲结点。

在层次模型中,每个结点表示一个记录类型,记录(类型)之间的联系用结点之间的连线(有向边)表示,这种联系是父子之间的一对多的联系。这就使得层次数据库系统只能处理一对多的实体联系。

每个记录类型可包含若干个字段,这里,记录类型描述的是实体,字段描述实体的属性。各个记录类型及其字段都必须命名。各个记录类型、同一记录类型中各个字段不能同名。每个记录类型可以定义一个排序字段,也称为码字段,如果定义该排序字段的值是唯一的,则它能唯一地标识一个记录值。

一个层次模型在理论上可以包含任意有限个记录型和字段,但任何实际的系统都会因为存储容量

或实现复杂度而限制层次模型中包含的记录型个数和字段的个数。

在层次模型中,同一双亲的子女结点称为兄弟结点(Twin 或Sibling),没有子女结点的结点称为叶结点。

二、多对多联系在层次模型中的表示

前面已经说过,层次数据模型只能直接表示一对多(包括一对一)的联系,那么另一种常见联系-多对多联系能否在层次模型中表示呢?答案是肯定的,否则层次模型就无法真正反映现实世界了。但是用层次模型表示多对多联系,必须首先将其分解成一对多联系。分解方法有两种:冗余结点法和虚拟结点法。下面用一个例子来说明这两种分解方法。

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

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

进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值。例如在图1.18的层次数据库中,若新调入一名教师,但尚未分配到某个教研室,这时就不能将新教员插入到数据库中。

进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除。例如在图1.18的层次数据库中,若删除网络教研室,则该教研室所有老师的数据将全部丢失。

进行更新操作时,应更新所有相应记录,以保证数据的一致性。例如在图1.20(b)的层次模型中,如果一个学生要改姓名,则两处学生记录值的姓名字段都需更新。

三、层次数据模型的存储结构

层次数据库中不仅要存储数据本身,还要存储数据之间的层次联系。层次模型数据的存储常常是和数据之间联系的存储结合在一起的。

四、层次模型的优缺点

层次模型的优点主要有:

·层次数据模型本身比较简单。

·对于实体间联系是固定的,且预先定义好的应用系统,采用层次模型来实现,其性能优于关系模型,不低于网状模型。

·层次数据模型提供了良好的完整性支持。

层次模型的缺点主要有:

·现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据组织(引入虚拟结点)来解决。

·对插入和删除操作的限制比较多。

·查询子女结点必须通过双亲结点。

·由于结构严密,层次命令趋于程序化。

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

1.2.5 网状模型

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

网状数据库系统采用网状模型作为数据的组织方式。网状数据模型的典型代表是DBTG系统,亦称CODASYL系统。这是70年代数据系统语言研究会CODASYL(Conference On Data System Language)下属的数据库任务组(Data Base Task Group,简称DBTG)提出的一个系统方案。DBTG 系统虽然不是实际的软件系统,但是它提出的基本概念、方法和技术具有普遍意义。它对于网状数据库系统的研制和发展起了重大的影响。后来不少的系统都采用DBTG模型或者简化的DBTG模型。例如,Cullinet Software公司的IDMS、Univac公司的DMS1100、Honeywell公司的IDS/2、HP公司的IMAGE等。

一、网状数据模型的数据结构

在数据库中,把满足以下两个条件的基本层次联系集合称为网状模型:

(1)允许一个以上的结点无双亲;

(2)一个结点可以有多于一个的双亲。

网状模型是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系(称之为复合联系)。因此网状模型可以更直接地去描述现实世界。而层次模型实际上是网状模型的一个特例。

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

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

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

DBTG在模式DDL中提供了定义DBTG数据库完整性的若干概念和语句,主要有:

(1)支持记录码的概念,码即唯一标识记录的数据项的集合。例如,学生记录(如图1.25)中学号是码,因此数据库中不允许学生记录中学号出现重复值。

(2)保证一个联系中双亲记录和子女记录之间是一对多的联系。

(3)可以支持双亲记录和子女记录之间某些约束条件。例如,有些子女记录要求双亲记录存在才能插入,双亲记录删除时也连同删除。例如图1.26中SC记录就应该满足这种约束条件,学生选课记录值必须是数据库中存在的某一学生,某一门课的选修记录。DBTG提供了“属籍类别”的概念来描述这类约束条件。

三、网状数据模型的存储结构

网状数据模型的存储结构中关键是如何实现记录之间的联系。常用的方法是链接法,包括单向链接、双向链接、环状链接、向首链接等,此外还有其他实现方法,如指引元阵列法、二进制阵列法、索引法等依具体系统不同而不同。

四、网状数据模型的优缺点

网状数据模型的优点主要有:

·能够更为直接地描述现实世界,如一个结点可以有多个双亲。

·具有良好的性能,存取效率较高。

网状数据模型的缺点主要有:

·结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握。

·其DDL,DML语言复杂,用户不容易使用。

由于记录之间联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。

1.2.6 关系模型

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

1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。由于E.F.Codd的杰出工作,他于1981年获得ACM图灵奖。

20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都支持关系模型,非关系系统的产品也大都加上了关系接口。数据库领域当前的研究工作也都是以关系方法为基础。因此本书的重点也将放在关系数据库上,下面四章将详细讲解关系数据库。

一、关系数据模型的数据结构

关系模型与以往的模型不同,它是建立在严格的数学概念的基础上的。这里只简单勾画一下关系模型。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。

·关系(Relation):一个关系对应通常说的一张表,如图1.27中的这张学生登记表;

·元组(Tuple):表中的一行即为一个元组;

·属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。如上表有六列,对应六个属性(学号,姓名,年龄,性别,系和年级);

·主码(Key):表中的某个属性组,它可以唯一确定一个元组,如图1.27中的学号,可以唯一确定一个学生,也就成为本关系的主码;

·域(Domain):属性的取值范围,如人的年龄一般在1~150岁之间,大学生年龄属性的域是(14~38),性别的域是(男,女),系别的域是一个学校所有系名的集合;

·分量:元组中的一个属性值;

·关系模式:对关系的描述,一般表示为:

关系名(属性1,属性2,…,属性n)

例如上面的关系可描述为:

学生(学号,姓名,年龄,性别,系和年级)

在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生、课程、学生与课程之间的多对多联系在关系模型中可以如下表示:

学生(学号,姓名,年龄,性别,系和年级)

课程(课程号,课程名,学分)

选修(学号,课程号,成绩)

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

二、关系数据模型的操纵与完整性约束

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

关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合,而不像非关系模型中那样是单记录的操作方式。另一方面,关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”或“找什么”,不必详细说明“怎么干”或“怎么找”,从而大大地提高了数据的独立性,提高了用户生产率。

三、关系数据模型的存储结构

在关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式存储,有的系统一个表对应一个操作系统文件,有的系统自己设计文件结构。

四、关系数据模型的优缺点

关系数据模型具有下列优点:

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

·关系模型的概念单一。无论实体还是实体之间的联系都用关系表示。对数据的检索结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。

·关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。

所以关系数据模型诞生以后发展迅速,深受用户的喜爱。

当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如非关系数据模型。因此为了提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。

第三节数据库系统结构

从数据库管理系统角度看,数据库系统通常采用三级模式结构;这是数据库管理系统内部的系统

结构。

从数据库最终用户角度看,数据库系统的结构分为单用户结构、主从式结构、分布式结构和客户/服务器结构。这是数据库系统外部的体系结构。

本章介绍数据库系统的模式结构。

1.3.1 数据库系统模式的概念

在数据模型中有“型”(Type)和“值”(Value)的概念。型是指对某一类数据的结构和属性的说明,值是型的一个具体赋值。例如:学生记录定义为(学号,姓名,性别,系别,年龄,籍贯)这样的记录型,而(900201,李明,男,计算机,22,江苏)则是该记录型的一个记录值。

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到型的描述,不涉及到具体的值。模式的一个具体值称为模式的一个实例(Instance)。同一个模式可以有很多实例。模式是相对稳定的,而实例是相对变动的,因为数据库中的数据是在不断更新的。模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。

虽然实际的数据库管理系统产品种类很多,它们支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统之上,数据的存储结构也各不相同,但它们在体系结构上通常都具有相同的特征,即采用三级模式结构(早期微机上的小型数据库系统除外)并提供两级映象功能。

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

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

一、模式(Schema)

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序,与所使用的应用开发工具及高级程序设计语言(如C,COBOL,FORTRAN)无关。

模式实际上是数据库数据在逻辑级上的视图。一个数据库只有一个模式。数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。定义模式时不仅要定义数据的逻辑结构,例如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等,而且要定义数据之间的联系,定义与数据有关的安全性、完整性要求。

DBSM提供模式描述语言(模式DDL)来严格地定义模式。

二、外模式(External Schema)

外模式也称子模式(Subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

外模式通常是模式的子集。一个数据库可以有多个外模式。由于它是各个用户的数据视图,如果不同的用户在应用需求、看待数据的方式、对数据保密的要求等方面存在差异,则其外模式描述就是不同的。即使对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。

DBSM提供子模式描述语言(子模式DDL)来严格地定义子模式。

三、内模式(Internal Schema)

内模式也称存储模式(Storage Schema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。例如,记录的存储方式是顺序存储、按照B树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定等。

DBSM提供内模式描述语言(内模式DDL,或者存储模式DDL)来严格地定义内模式。

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

数据库系统的三级模式是对数据的三个抽象级别,它把数据的具体组织留给DBMS管理,使用户能逻辑地抽象地处理数据,而不必关心数据在计算机中的具体表示方式与存储方式。为了能够在内部

实现这三个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层映象:·外模式/模式映象

·模式/内模式映象

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

一、外模式/模式映象

模式描述的是数据的全局逻辑结构,外模式描述的是数据的局部逻辑结构。对应于同一个模式可以有任意多个外模式。对于每一个外模式,数据库系统都有一个外模式/模式映象,它定义了该外模式与模式之间的对应关系。这些映象定义通常包含在各自外模式的描述中。

当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的映象作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。

二、模式/内模式映象

数据库中只有一个模式,也只有一个内模式,所以模式/内模式映象是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。例如,说明逻辑记录和字段在内部是如何表示的。该映象定义通常包含在模式描述中。当数据库的存储结构改变了(例如选用了另一种存储结构),由数据库管理员对模式/内模式映象作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

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

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

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

特定的应用程序是在外模式描述的数据结构上编制的,它依赖于特定的外模式,与数据库的模式和存储结构独立。不同的应用程序有时可以共用同一个外模式。数据库的二级映象保证了数据库外模式的稳定性,从而从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改。

数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由DBMS管理,用户不必考虑存取路径等细节,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

第四节数据库系统的组成

据库管理员和用户构成。下面分别介绍这几个部分的内容。

一、硬件平台及数据库

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

(1)要有足够大的内存,存放操作系统、DBMS的核心模块、数据缓冲区和应用程序。

(2)有足够的大的磁盘等直接存取设备存放数据库,有足够的磁带(或微机软盘)作数据备份。

(3)要求系统有较高的通道能力,以提高数据传送率。

二、软件

数据库系统的软件主要包括:

(1)DBMS。DBMS是为数据库的建立、使用和维护配置的软件。

(2)支持DBMS运行的操作系统。

(3)具有与数据库接口的高级语言及其编译系统,便于开发应用程序。

(4)以DBMS为核心的应用开发工具。

应用开发工具是系统为应用开发人员和最终用户提供的高效率、多功能的应用生成器、第四代语言等各种软件工具。它们为数据库系统的开发和应用提供了良好的环境。

(5)为特定应用环境开发的数据库应用系统。

三、人员

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

1. 数据库管理员(DataBase Administrator,简称DBA)

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

(1)决定数据库中的信息内容和结构

数据库中要存放哪些信息,DBA要参与决策。因此DBA必须参加数据库设计的全过程,并与用户、应用程序员、系统分析员密切合作共同协商,搞好数据库设计。

(2)决定数据库的存储结构和存取策略

DBA要综合各用户的应用要求,和数据库设计人员共同决定数据的存储结构和存取策略以求获得较高的存取效率和存储空间利用率。

(3)定义数据的安全性要求和完整性约束条件

DBA的重要职责是保证数据库的安全性和完整性。因此,DBA负责确定各个用户对数据库的存取权限、数据的保密级别和完整性约束条件。

(4)监控数据库的使用和运行

DBA还有一个重要职责就是监视数据库系统的运行情况,及时处理运行过程中出现的问题。比如系统发生各种故障时,数据库会因此遭到不同程度的破坏,DBA必须在最短时间内将数据库恢复到正确状态,并尽可能不影响或少影响计算机系统其他部分的正常运行。为此,DBA要定义和实施适当的后备和恢复策略。如周期性的转储数据、维护日志文件等等。有关这方面的内容将在下面做进一步讨论。

(5)数据库的改进和重组重构

DBA还负责在系统运行期间监视系统的空间利用率、处理效率等性能指标,对运行情况进行记录、统计分析,依靠工作实践并根据实际应用环境,不断改进数据库设计。不少数据库产品都提供了对数据库运行状况进行监视和分析的实用程序,DBA可以使用这些实用程序完成这项工作。

另外,在数据运行过程中,大量数据不断插入、删除、修改,时间一长,会影响系统的性能。因此,DBA要定期对数据库进行重组织,以提高系统的性能。

当用户的需求增加和改变时,DBA还要对数据库进行较大的改造,包括修改部分设计,即数据库的重构造。

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

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

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

3. 应用程序员

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

4. 用户

这里用户是指最终用户(End User)。最终用户通过应用系统的用户接口使用数据库。常用的接口方式有浏览器、菜单驱动、表格操作、图形显示、报表书写等。(唐山市警用地理信息系统数据库)最终用户可以分为如下三类:

(1)偶然用户。这类用户不经常访问数据库,但每次访问数据库时往往需要不同的数据库信息,这类用户一般是企业或组织机构的高中级管理人员。

(2)简单用户。数据库的多数最终用户都是简单用户。其主要工作是查询和更新数据库,一般都是通过应用程序员精心设计并具有友好界面的应用程序存取数据库。银行的职员、铁路售票、航空公司的机票预定工作人员、旅馆总台服务员等都属于这类用户。

(3)复杂用户。复杂用户包括工程师、科学家、经济学家、科学技术工作者等具有较高科学技术背景的人员。这类用户一般都比较熟悉数据库管理系统的各种功能,能够直接使用数据库语言访问数据库,甚至能够基于数据库管理系统的API(Application Programming Interface,应用程序编程接口)编制自己的应用程序。

第五节数据库技术的研究领域

一、数据库管理系统软件的研制

DBMS是数据库系统的基础。DBMS的研制包括研制DBMS本身及以DBMS为核心的一组相互联系的软件系统,包括工具软件和中间件。研制的目标是提高系统的可用性、可靠性、可伸缩性;提高性能和提高用户的生产率。

DBMS核心技术的研究和实现是三十余年来数据库领域所取得的主要成就。DBMS是一个基础软件系统,它提供了对数据库中的数据进行存储、检索和管理的功能。

二、数据库设计

数据库设计的主要任务是在DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。其中主要的研究方向是数据库设计方法学和设计工具,包括数据库设计方法、设计工具和设计理论的研究,数据模型和数据建模的研究,计算机辅助数据库设计方法及其软件系统的研究,数据库设计规范和标准的研究等。

三、数据库理论

数据库理论的研究主要集中于关系的规范化理论、关系数据理论等。近年来,随着人工智能与数据库理论的结合、并行计算技术等的发展,数据库逻辑演绎和知识推理、数据库中的知识发现(Knowledge Discovery from Database,简称KDD)、并行算法等成为新的理论研究方向。

计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。数据库技术和其他计算机技术的互相结合、互相渗透,使数据库中新的技术内容层出不穷。数据库的许多概念、技术内容、应用领域,甚至某些原理都有了重大的发展和变化。建立和实现了一系列新型数据库系统,如分布式数据库系统、并行数据库系统、知识库系统、多媒体数据库系统等。它们共同构成了数据库系统大家族,使数据库技术不断地涌现新的研究方向。

本书介绍数据库系统的基本概念、基本技术和基本知识方面是进一步进行上述三个领域研究和开发的基础。

第六节小结

展的背景,也说明了数据库系统的优点。

数据模型是数据库系统的核心和基础。本章介绍了组成数据模型的三个要素、概念模型和三种主要的数据库模型。

概念模型也称信息模型,用于信息世界的建模,E-R模型是这类模型的典型代表,E-R方法简单、清晰,应用十分广泛。

数据模型的发展经历了格式化数据模型(包括层次模型和网状模型)、关系模型,正在走向面向对象等非传统数据模型。由于层次数据库和网状数据库已逐渐被关系数据库代替,本书不再用单独的章节讲解,因此,本章较为详细地讲解了层次模型和网状模型,而关系模型只是简单介绍,后面会详细讲解。

数据库系统三级模式和两层映象的系统结构保证了数据库系统中能够具有较高的逻辑独立性和物理独立性。

最后介绍了数据库系统的组成,使学生了解数据库系统不仅是一个计算机系统,而是一个人-机系统,人的作用特别是DBA的作用尤为重要。

学习这一章应把注意力放在掌握基本概念和基本知识方面,为进一步学习下面章节打好基础。本章新概念较多,如果是刚开始学习数据库,可在学习后面章节后再回来理解和掌握这些概念。

第2章关系数据库

第一节关系模型概述

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

一、单一的数据结构——关系

关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。

二、关系操作

关系模型给出了关系操作的能力,但不对RDBMS语言给出具体的语法要求。

关系模型中常用的关系操作包括:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等查询(Query)操作和增加(Insert)、删除(Delete)、修改(Update)操作两大部分。查询的表达能力是其中最主要的部分。

关系操作的特点是集合操作方式,即操作的对象和结果都是集合。这种操作方式也称为一次一集合(set-at-a-time)的方式。相应地,非关系数据模型的数据操作方式则为一次一记录(record-at-a-time)的方式。

早期的关系操作能力通常用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。关系代数是用对关系的运算来表达查询要求的方式。关系演算是用谓词来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。

关系代数、元组关系演算和域关系演算均是抽象的查询语言,这些抽象的语言与具体的DBMS中实现的实际语言并不完全一样。但它们能用作评估实际系统中查询语言能力的标准或基础。实际的查询语言除了提供关系代数或关系演算的功能外,还提供了许多附加功能,例如集函数、关系赋值、算术运算等。

关系语言是一种高度非过程化的语言,用户不必请求DBA为其建立特殊的存取路径,存取路径的选择由DBMS的优化机制来完成,此外,用户不必求助于循环结构就可以完成数据操作。

另外还有一种介于关系代数和关系演算之间的语言SQL(Standard Query Language)。SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、DDL、DML和DCL于一体的关系数据语言。它充分体现了关系数据语言的特点和优点,是关系数据库的标准语言。

因此,关系数据语言可以分为三类:

关系代数语言,例如ISBL

关系演算语言,(元组关系演算语言,例如APLHA,QUEL 和域关系演算语言,例如QBE)具有关系代数和关系演算双重特点的语言例如SQL

这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

三、关系的三类完整性约束

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

下面将分别介绍关系模型的三个方面。其中2.2节介绍关系数据结构,包括关系的形式化定义及有关概念;2.3节介绍关系的三类完整性;2.4节介绍关系代数;2.5节介绍关系演算;第三章将专门介绍SQL语言。

第二节关系数据结构及形式化定义

还是实体之间的联系均由单一的结构类型即关系(表)来表示。前面已经非形式化地介绍了关系模型及有关的基本概念。关系模型是建立在集合代数的基础上的,这里从集合论角度给出关系数据结构的形式化定义。

2.2.1 关系

1. 域(Domain)

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

例如,自然数、整数、实数、长度小于25字节的字符串集合、{0,1}、大于等于0且小于等于100的正整数等,都可以是域。

2. 笛卡尔积(Cartesian Product)

定义2.2 给定一组域D1,D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:

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

其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)。

元素中的每一个值di叫作一个分量(Component)。

笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。例如给出三个域:

D1=导师集合SUPERVISOR=张清玫,刘逸

D2=专业集合SPECIALITY=计算机专业,信息专业

D3=研究生集合POSTGRADUATE=李勇,刘晨,王敏

则D1,D2,D3的笛卡尔积为:

D1×D2×D3 ={(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),

(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),

(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),

(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),

(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),

(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) }

其中(张清玫,计算机专业,李勇)、(张清玫,计算机专业,刘晨)等都是元组。张清玫、计算机专业、李勇、刘晨等都是分量。

该笛卡尔积的基数为2×2×3=12,也就是说,D1×D2×D3一共有2×2×3=12个元组。这12个元组可列成一张二维表(如表2.1)。

3. 关系(Relation)

定义2.3 D1×D2×…×Dn的子集叫作在域D1,D2,…,Dn上的关系,表示为

R(D1,D2,…,Dn)

这里R表示关系的名字,n是关系的目或度(Degree)。

关系中的每个元素是关系中的元组,通常用t表示。

当n=1时,称该关系为单元关系(Unary relation)。

当n=2时,称该关系为二元关系(Binary relation)。

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

若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。

若一个关系有多个候选码,则选定其中一个为主码(Primary key)。主码的诸属性称为主属性(Prime attribute)。不包含在任何侯选码中的属性称为非码属性(Non-key attribute)。在最简单的情况下,候选码只包含一个属性。在最极端的情况下,关系模式的所有属性组是这个关系模式的候选码,称为全码(All-key)。

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

按照定义2.2,关系可以是一个无限集合。由于笛卡尔积不满足交换律,所以按照数学定义,(d1,d2,…,dn )≠(d2,d1,…,dn )。当关系作为关系数据模型的数据结构时,需要给予如下的限定和扩充:

(1)无限关系在数据库系统中是无意义的。因此,限定关系数据模型中的关系必须是有限集合。

(2)通过为关系的每个列附加一个属性名的方法取消关系元组的有序性,即(d1,d2 ,…,di ,dj ,…,dn)=(d1,d2 ,…,di,dj ,…,dn)(i,j = 1,2,…,n)。

因此,基本关系具有以下六条性质:

①列是同质的(Homogeneous),即每一列中的分量是同一类型的数据,来自同一个域。

②不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名。

例如在上面的例子中,也可以只给出两个域:

人(PERSON)=张清玫,刘逸,李勇,刘晨,王敏

专业(SPECIALITY)=计算机专业,信息专业

SAP关系的导师属性和研究生属性都从PERSON域中取值。为了避免混淆,必须给这两个属性取不同的属性名,而不能直接使用域名。例如定义导师属性名为SUPERVISOR-PERSON(或SUPERVISOR),研究生属性名为POSTGRADUA TE-PERSON(或POSTGRADUATE)。

③列的顺序无所谓,即列的次序可以任意交换。

由于列顺序是无关紧要的,因此在许多实际关系数据库产品中(例如Oracle),增加新属性时,永远是插至最后一列。

④任意两个元组不能完全相同。

⑤行的顺序无所谓,即行的次序可以任意交换。

⑥分量必须取原子值,即每一个分量都必须是不可分的数据项。

注意:在许多实际关系数据库产品中,基本表并不完全具有这六条性质,例如,有的数据库产品(如FoxPro)仍然区分了属性顺序和元组的顺序;许多关系数据库产品中,例如Oracle,FoxPro等,它们都允许关系表中存在两个完全相同的元组,除非用户特别定义了相应的约束条件。

关系模型要求关系必须是规范化的,即要求关系模式必须满足一定的规范条件。这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项。规范化的关系简称为范式(Normal Form)。

2.2.2 关系模式

在数据库中要区分型和值。关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述,

那么一个关系需要描述哪些方面呢?

首先,应该知道,关系实质上是一张二维表,表的每一行为一个元组,每一列为一个属性。一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。

其次,一个关系通常是由赋予它的元组语义来确定的。元组语义实质上是一个n目谓词(n是属性集中属性的个数)。凡使该n目谓词为真的笛卡尔积中的元素(或者说凡符合元组语义的那部分元素)的全体就构成了该关系模式的关系。

现实世界随着时间在不断地变化,因而在不同的时刻,关系模式的关系也会有所变化。但是,现实世界的许多已有事实限定了关系模式所有可能的关系必须满足一定的完整性约束条件。这些约束或者通过对属性取值范围的限定,例如职工年龄小于65岁(65岁以后必须退休),或者通过属性值间的相互关连(主要体现于值的相等与否)反映出来。关系模式应当刻划出这些完整性约束条件。

因此一个关系模式应当是一个5元组。

定义2.4 关系的描述称为关系模式(Relation Schema)。它可以形式化地表示为:

R(U,D,dom,F)

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

属性间的数据依赖将在第五章讨论,本章中关系模式仅涉及关系名、各属性名、域名、属性向域的映像四部分。

例如,在上面例子中,由于导师和研究生出自同一个域——人,所以要取不同的属性名,并在模式中定义属性向域的映象,即说明它们分别出自哪个域,如:

dom(SUPERVISOR-PERSON)= dom(POSTGRADUATE-PERSON)=PERSON

关系模式通常可以简记为

R (U)

或R (A1,A2,…,An)

其中R为关系名,A1,A2,…,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。

关系是关系模式在某一时刻的状态或内容。关系模式是静态的、稳定的,而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。但在实际当中,人们常常把关系模式和关系都称为关系,这不难从上下文中加以区别。

2.2.3 关系数据库

在关系模型中,实体以及实体间的联系都是用关系来表示的。例如导师实体、研究生实体、导师与研究生之间的一对多联系都可以分别用一个关系来表示。在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库。

关系数据库也有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常就称为关系数据库。

第三节关系的完整性

是对关系的某种约束条件。关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。

一、实体完整性(Entity Integrity)

规则2.1 实体完整性规则若属性A是基本关系R的主属性,则属性A不能取空值。

例如在关系“SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)”中,“研究生姓名

POSTGRADUATE”属性为主码(假设研究生不会重名),则“研究生姓名”不能取空值。

实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。例如学生选课关系“选修(学号,课程号,成绩)”中,“学号、课程号”为主码,则“学号”和“课程号”两个属性都不能取空值。

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

(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体集。例如学生关系对应于学生的集合。

(2)现实世界中的实体是可区分的,即它们具有某种唯一性标识。

(3)相应地,关系模型中以主码作为唯一性标识。

(4)主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与第(2)点相矛盾,因此这个规则称为实体完整性。

二、参照完整性(Referential Integrity)

现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。

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

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

·或者等于S中某个元组的主码值。

例如,对于[例1],学生关系中每个元组的“专业号”属性只能取下面两类值:

(1)空值,表示尚未给该学生分配专业;

(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中。即被参照关系“专业”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。

对于[例2],按照参照完整性规则,“学号”和“课程号”属性也可以取两类值:空值或目标关系中已经存在的值。但由于“学号”和“课程号”是选修关系中的主属性,按照实体完整性规则,它们均不能取空值。所以选修关系中的“学号”和“课程号”属性实际上只能取相应被参照关系中已经存在的主码值。

参照完整性规则中,R与S可以是同一个关系。例如对于[例3],按照参照完整性规则,“班长”属性值可以取两类值:

(1)空值,表示该学生所在班级尚未选出班长;

(2)非空值,这时该值必须是本关系中某个元组的学号值。

三、用户定义的完整性(User-defined Integrity)

任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某个非主属性也不能取空值、某个属性的取值范围在0~100之间等。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。

第四节关系代数

算来表达查询的。

任何一种运算都是将一定的运算符作用于一定的运算对象上,得到预期的运算结果。所以运算对象、运算符、运算结果是运算的三大要素。

关系代数的运算对象是关系,运算结果亦为关系。关系代数用到的运算符包括四类:集合运算符、专门的关系运算符、算术比较符和逻辑运算符。

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

其中传统的集合运算将关系看成元组的集合,其运算是从关系的“水平”方向即行的角度来进行。而专门的关系运算不仅涉及行而且涉及列。比较运算符和逻辑运算符是用来辅助专门的关系运算符进行操作的。

2.4.1 传统的集合运算

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

2.4.2 专门的关系运算

专门的关系运算包括选择、投影、连接、除等。为了叙述上的方便,先引入几个记号。

下面给出这些关系运算的定义:

1. 选择(Selection)

选择又称为限制(Restriction)。它是在关系R中选择满足给定条件的诸元组。

2. 投影(Projection)

关系R上的投影是从R中选择出若干属性列组成新的关系。

3. 连接(Join)

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

4. 除(Division)

给定关系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上投影的集合。

本节介绍了8种关系代数运算,其中并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用这5种基本运算来表达。引进它们并不增加语言的能力,但可以简化表达。

关系代数中,这些运算经有限次复合后形成的式子称为关系代数表达式。

关系代数语言中比较典型的例子是查询语言ISBL(Information System Base Language)。ISBL语言由IBM United Kingdom研究中心研制,用于PRTV(Peterlee Relational Test Vehicle)实验系统。

第五节关系演算

算和域关系演算。本节先介绍元组关系演算,然后介绍域关系演算。在讲解时都是先介绍一种具体的语言,再讲解抽象的语言。

2.5.1 元组关系演算语言ALPHA

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

ALPHA语言主要有GET,PUT,HOLD,UPDATE,DELETE,DROP 6条语句,语句的基本格式是:

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

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

一、检索操作

检索操作用GET语句实现。

二、更新操作

(1)修改操作

修改操作用UPDA TE语句实现。其步骤是:

①首先用HOLD语句将要修改的元组从数据库中读到工作空间中;

②然后用宿主语言修改工作空间中元组的属性;

③最后用UPDATE语句将修改后的元组送回数据库中。

需要注意的是,单纯检索数据使用GET语句即可,但为修改数据而读元组时必须使用HOLD语句,HOLD语句是带上并发控制的GET语句。有关并发控制的概念将在第八章中详细介绍。

(2)插入操作

插入操作用PUT语句实现。其步骤是:

①首先用宿主语言在工作空间中建立新元组;

②然后用PUT语句把该元组存入指定的关系中。

(3)删除

删除操作用DELETE语句实现。其步骤为:

①用HOLD语句把要删除的元组从数据库中读到工作空间中;

②用DELETE语句删除该元组。

2.5.2 元组关系演算

上一节讲解了一种具体的元组关系演算语言,这一节讲解抽象的元组关系演算。

为了讨论方便,先允许关系(的基数)是无限的。然后再对这种情况下定义的演算作适当的修改,保证关系演算中的每一个公式表示的是有限关系。

2.5.3 域关系演算语言QBE

关系演算的另一种形式是域关系演算。域关系演算以元组变量的分量即域变量作为谓词变元的基本对象。1975年由M.M.Zloof提出的QBE就是一个很有特色的域关系演算语言,该语言于1978年在IBM370上得以实现。QBE也指此关系数据库管理系统。

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

2.5.4 域关系演算

上一节讲解了一种实际的域关系演算语言,这一节讲解抽象的域关系演算。

域关系演算的谓词变元是域变量。

域演算表达式的定义类似于元组演算表达式的定义,所不同的是公式中的元组变量由域变量替代。域变量是表示域的变量。关系的属性名可以视为域变量。

第六节小结

20世纪70年代以后开发的数据库管理系统产品几乎都是基于关系的。更进一步,数据库领域近30年来的研究工作也主要是关系的。在数据库发展的历史上,最重要的成就是关系模型。

关系数据库系统与非关系数据库系统的区别是,关系系统只有“表”这一种数据结构;而非关系数据库系统还有其他数据结构,对这些数据结构有其他的操作。

关系理论的确立标志着关系数据库系统的基础研究已经接近顶峰。关系数据库系统已经占据了数据库系统的市场。

本章系统讲解了关系数据库的重要概念,包括关系模型的数据结构、关系的完整性以及关系操作。介绍了用代数方式或逻辑方式来表达的关系语言即关系代数、元组关系演算和域关系演算。在这一章从具体到抽象,先讲解了实际的语言ALPHA(元组关系演算语言)和QBE(域关系演算语言),然后讲解了抽象的元组关系演算和域关系演算。

南京理工大学《数据库系统基础教程》试题和答案

一、选择题60(选择一个最合适的答案,在答题纸上涂黑) 1.一个事务中的一组更新操作是一个整体,要么全部执行,要么全部不执行。这是事务的:A.原子性B.一致性 C.隔离性 D.持久性 2.在数据库的三级模式结构中,描述一个数据库中全体数据的全局逻辑结构和特性的是:A.外模式 B.模式 C.存储模式D.模式 3.关于联系的多重性,下面哪种说法不正确? A.一个多对多的联系中允许多对一的情形。 B.一个多对多的联系中允许一对一的情形。 C.一个多对一的联系中允许一对一的情形。 D.一个多对一的联系中允许多对多的情形。 4.考虑学校里的"学生"和"课程"之间的联系,该联系的多重性应该是: A. 一对一 B. 多对一 C. 一对多 D. 多对多 5.下面哪种约束要求一组属性在同一实体集任意两个不同实体上的取值不同。 A. 键(key)约束。 B. 单值约束。 C. 参照完整性。 D. 域(domain)约束 6.关系模型要求各元组的每个分量的值必须是原子性的。对原子性,下面哪种解释不正确:A.每个属性都没有部结构。 B.每个属性都不可再分解。 C.各属性值应属于某种基本数据类型。 D.属性值不允许为NULL。 7.对于一个关系的属性(列)集合和元组(行)集合,下面哪种说法不正确: A.改变属性的排列次序不影响该关系。 B.改变元组的排列次序不影响该关系。 C.改变元组的排列次序会改变该关系。 D.关系的模式包括其名称及其属性集合。 8.若R是实体集R1与R2间的一个多对多联系,将其转换为关系R',哪种说法不正确:A.R'属性应包括R1与R2的所有属性。 B.R'属性应包括R1与R2的键属性。 C.R1与R2的键属性共同构成R'的键。 D.R'的属性应包括R自身定义的属性。 9.关于函数依赖的判断,下面哪种说法不正确? A.若任意两元组在属性A上一致,在B上也一致,则有A → B成立。 B.若任意两元组在属性A上一致,在B上不一致,则A → B不成立。 C.若任意两元组在属性A上不可能一致,则不管在B上是否一致,有A → B成立。

数据库系统概论笔记_王珊版

第一章 1.数据库的四个基本概念:数据、数据库、数据库管理系统、数据库系统。 数据:是数据库中存储的基本对象。描述事物的符号称为数据。 数据库:是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库数据具有永久存储、有组织和可共享三个基本特点。 数据库管理系统:是计算机的基础软件。 数据库系统:是由数据库、数据库管理系统、应用程序和人组成的存储、管理、处理和维护数据的系统。 2.数据处理和数据管理。 数据处理:指对各种数据进行手机、存储、加工和传播的一系列活动的总和。 数据管理:指对数据进行分类、组织、编码、存储、检索和维护。 3. 数据独立性。 物理独立性:指用户的应用程序与数据库中数据的物理存储是相互独立 的。 逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立的。 4. 数据模型--- 是对现实世界数据特征的抽象(现实世界的模拟)。 数据模型是数据库系统的核心和基础。 概念模型:信息模型,按照用户的观点来对数据和信息建模,主要用于数据库设计逻辑模型:按照计算机系统的观点对数据建模。 物理模型:描述数据在计算机内部的表示方式和存取方法。数据模型组成要素:数据结构、数据操作、数据的完整性约束条件。 5.信息世界中的基本概念。 实体:客观存在并可相互区别的事物。 属性:实体所具有的某一特征。 码:唯一标识实体的属性集。 联系:失误内部以及事物之间是有联系的。实体内部的联系通常是指组成实体的个属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。实体之间的联系有一对一、一对多和多对多等各种类型。 6.数据完整性约束条件。

实体完整性:检查主码值是否唯一,检查主码的各个属性是否为空。实体完整性在 创建表时用primary key 主键来定义。 参照完整性:检查增删改时检查外码约束。在创建表时用外码foreign key 短语 定义。 用户定义完整性:创建表中定义属性的同时,可以根据应用要求定义属性上的约束条件,即属性值限制。 列值非空(not null )、列值唯一(unique )、检查列值是否满足一个条件表达式(check 短语) 7.数据库系统的模式。 型:是指对某一类数据的结构和属性的说明,对结构的描述和说明。 值:是型的一个具体赋值。 模式:是数据库中全体数据的逻辑结构和特征的描述,对结构进行描述,仅仅涉及 型。模式的一个具体值称为模式的一个实例。 模式反应的事数据的结构及其联系,而实例反应的是数据库某一时刻的状态。 8.数据库的三级模式结构。 模式(逻辑模式):是数据库中全体数据的逻辑结构和特征的描述,需要定义数据 想的名字,类型,取值范围和数据之间的联系,安全性完整性要求等。 夕卜模式(子模式):数据库中数据的局部逻辑结构。 内模式(存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式。 第二章 1.关系模型------关系数据结构、关系操作集合、关系完整性约束三部分组成。 2.关系。 域:一组具有相同数据类型的值的集合。 关系:笛卡尔积的有限子集。 候选码:关系中某一属性组的值能唯一地标识一个元组 候选码的诸属性称为主属性。不包含在任何候选码中的属性称为非主属性

数据库系统基础教程(第二版)课后习题答案

Database Systems: The Complete Book Solutions for Chapter 2 Solutions for Section 2.1 Exercise 2.1.1 The E/R Diagram. Exercise 2.1.8(a) The E/R Diagram Kobvxybz Solutions for Section 2.2 Exercise 2.2.1 The Addresses entity set is nothing but a single address, so we would prefer to make address an attribute of Customers. Were the bank to record several addresses for a customer, then it might make sense to have an Addresses entity set and make Lives-at a many-many relationship. The Acct-Sets entity set is useless. Each customer has a unique account set containing his or her accounts. However, relating customers directly to their accounts in a many-many relationship conveys the same information and eliminates the account-set concept altogether. Solutions for Section 2.3 Exercise 2.3.1(a) Keys ssNo and number are appropriate for Customers and Accounts, respectively. Also, we think it does not make sense for an account to be related to zero customers, so we should round the edge connecting Owns to Customers. It does not seem inappropriate to have a customer with 0 accounts;

数据库系统原理课程设计讲义

《数据库系统原理》课程设计讲义黑龙江大学软件学院

《数据库系统原理》课程设计讲义 一、开设本课程设计的目的 本课程是计算机专业中一门重要的专业理论课。为配合《数据库原理》课程的教学,通过模拟DBMS的实现,更深刻地领会DBMS的工作原理和实现方法,从而具有初步开发系统软件的实际能力,特开设此课程设计。 二、课程设计的题目 用高级程序设计语言实现《DBMS原型设计与实现》。 三、课程设计的主要内容 通过模拟DBMS的实现,使学生系统地掌握关系代数语言的运算功能;了解DBMS的DDL、DML、DCL等功能的实质含义;掌握结构化设计方法;了解大型软件的设计技术。 四、课程设计的具体内容和要求 1、创建数据库(DDL)功能模拟 在熟悉和掌握某一关系数据库语言的基础上,用高级程序设计语言创建数据库。具体包括: (1)建立“建库”功能的总体菜单,包括建立库结构、输入数据、显示数据库结构和内容、退出等功能。 (2)实现建立数据结构的功能。要求: ①能输入任意表名(即关系名) ②字段个数、名称任意给定(包括字段名、字段类型、长度任意)。 (3)实现输入数据库记录的功能。 (4)实现显示数据库结构和内容(最好以表格形式显示) (5)实现对主关键字的索引功能。 (6)实现建立视图的功能。 (7)建立数据字典保存三级模式中有关视图、基本表、存储文件的定义。 2、关系代数运算(DML)功能模拟 将关系代数语言的选取、投影、连接运算公式进行等价变换,以便输入计算机,被计算机接受和识别。 (1)用高级程序设计语言做工具,实现关系代数语言中集合的并、

(2)采用索引的方式,用高级语言实现数据库系统中选取运算的功能。包括带有“与”、“或”条件的查询,并以表格形式显示的运算结果。 (3)用高级语言实现数据库系统中投影运算的功能。并以表格形式 (4)采用索引的方式,用高级程序语言实现关系代数语言自然连接、 3、关系演算(DML)功能模拟 (1)系统掌握DBMS中关系演算语言的功能,以QUEL语言为样本,用C语言实现对用规定符号表达的简单查询命令行进行识别,以表格形 (2)熟悉QUEL语言的查询功能,用高级语言模拟实现对含有“与”、“或”、“非” 4、关系数据库系统的查询优化 掌握关系数据库的查询优化技术,用高级语言实现启发式关系代数优化算法以及启发式关系演算优化算法。 5、数据库保护(DCL)功能模拟 要求根据数据字典(DD)实现对数据库的安全性检查和完整性约束的机制;利用事务的封锁机制实现对事务处理的并发控制;利用建立日志文件及周期性备份的机制实现对数据库的恢复。 6、综合设计 (1)将前几个实验利用结构化设计方法综合为一个完整的程序系统。 (2)设计该系统的总体菜单。 (3)通过总体菜单选择某一功能进入子菜单。 (4)通过某一功能子菜单,进入相应各个子系统,完成具体的功能。 (5)通过辅助工具,进一步丰富和完善上述程序窗口界面的设计。 (6)采用软件工程的结构化设计方法,将上述各种程序综合为一个完整的软件系统,以达到系统掌握开发系统软件的方法和技术的目 教学文件:《数据库系统原理》李建中 教学形式:教学与实验同步进行,并按实验要求上机实验,编程调试。

大型数据库系统(SQL-Server-2005)--实验指导讲义

实验一SQL Server 2005数据库服务器界面使用及数据库原理知 识的应用 1.实验目的 (1)通过使用SQL Server 2005的控制界面感受SQL Server 2005。 (2)熟悉SQL Server 2005所需的软、硬件要求。 (3)熟悉SQL Server 2005支持的身份验证种类。 (4)掌握SQL Server 2005服务的几种启动方法。 (5)掌握SQL Server Management Studio的常规使用。 (6)掌握关系数据库的逻辑设计方法——E-R图。 2.实验准备 (1)了解SQL Server Management Studio的常规使用。 (2)了解SQL Server 2005所需的软、硬件要求。 (3)了解SQL Server 2005支持的身份验证种类。 (4)了解SQL Server 2005服务的几种启动方法。 (5)了解关系数据库的逻辑设计方法——E-R图。 3.实验内容 (1)分别使用“Windows身份验证模式”和“SQL Server和Windows身份验证模式”登录SQL Server 2005集成控制台。 (2)利用SQL Server Configuration Manager配置SQL Server 2005服务器。 (3)利用SQL Server 2005创建的默认帐户,通过注册服务器向导首次注册服务器。 (4)试着创建一些由SQL Server 2005验证的账户,删除第一次注册的服务器后用新建的账户来注册服务器。 (5)为某一个数据库服务器指定服务器别名,然后通过服务器别名注册该数据库服务器。 (6)熟悉和学习使用SQL Server Management Studio。 (7)设计E-R图。参照书上19页的优化模式,要求注明实体的主码、联系的类型和主码。

数据库系统的基本知识

第一章数据库系统概论 本章目的在于使读者对数据库系统的基本知识能有一个较为全面的了解,为今后的学习和工作打下基础。本章重点介绍了有关数据库结构和数据库系统组织的基本知识和基本概念,以及常见的三种类型的数据库系统的特点。重点介绍关系数据库的有关知识。 1.1 数据管理技术发展史 随着生产力的不断发展,社会的不断进步,人类对信息的依赖程度也在不断地增加。数据作为表达信息的一种量化符号,正在成为人们处理信息时重要的操作对象。所谓数据处理就是对数据的收集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列工作全部过程的概述。数据处理的目的就是使我们能够从浩瀚的信息数据海洋中,提取出有用的数据信息,作为我们工作、生活等各方面的决策依据。数据管理则是指对数据的组织、编码、分类、存储、检索和维护,它是数据处理的一个重要内容中心。数据处理工作由来以久,早在1880年美国进行人口普查统计时,就已采用穿孔卡片来存储人口普查数据,并采用机械设备来完成对这些普查数据所进行的处理工作。电子计算机的出现以及其后其硬件、软件的迅速发展,加之数据库理论和技术的发展,为数据管理进入一个革命性阶段提供有力的支持。根据数据和应用程序相互依赖关系、数据共享以及数据的操作方式,数据管理的发展可以分为三个具有代表性的阶段,即人工管理阶段、文件管理阶段和数据库管理阶段。

【1】人工管理阶段 这一阶段发生于六十年代以前,由于当时计算机硬件和软件发展才刚刚起步,数据管理中全部工作,都必须要由应用程序员自己设计程序完成去完成。由于需要与计算机硬件以及各外部存储设备和输入输出设备直接打交道,程序员们常常需要编制大量重复的数据管理基本程序。数据的逻辑组织与它的物理组织基本上是相同的,因此当数据的逻辑组织、物理组织或存储设备发生变化时,进行数据管理工作的许多应用程序就必须要进行重新编制。这样就给数据管理的维护工作带来许多困难。并且由于一组数据常常只对应于一种应用程序,因此很难实现多个不同应用程序间的数据资源共享。存在着大量重复数据,信息资源浪费严重。 【2】文件管理阶段 这一阶段发生于六十年代,由于当时计算机硬件的发展,以及系统软件尤其是文件系统的出现和发展,人们开始利用文件系统来帮助完成数据管理工作,具体讲就是:数据以多种组织结构(如顺序文件组织、索引文件文件组织和直接存取文件组织等)的文件形式保存在外部存储设备上,用户通过文件系统而无需直接与外部设备打交道,以此来完成数据的修改、插入、删除、检索等管理操作;使用这种管理方式,不仅减轻进行数据管理的应用程序工作量,更重要地是,当数据的物理组织或存储设备发生变化时,数据的逻辑组织可以不受任何影响,从而保证了基于数据逻辑组织所编制的应用程序也可以不受硬件设备变化的影响。这样就使得程序和数据之间具有了一定的相互独立性。 但由于数据文件的逻辑结构完全是根据应用程序的具体要求而设计,它的管理与维护完全是由应用程序本身来完成,因此数据文件的逻辑结构与应用程序密切相关,当数据的逻辑结构需要修改时,应用程序也就不可避免地需要进行修改;同样当应用程序需要进行变动时,常常又会要求数据的逻辑结构进行相应的变动。在这种情况下,数据管理中的维护工作量也是较大的。更主要的是由于采用文件的形式来进行数据管理工作,常常需要将一个完整的、相互关联的数据集合,人为地分割成若干相互独立的文件,以便通过基于文件系统的编程来实现来对它们的管理操作。这样做同样会导致数据的过多冗余和增加数据维护工作的复杂性。例如人事部门、教务部门和医务部门对学生数据信息的管理,这三个部门中

数据库系统基础讲义第15讲关系模式设计之规范化形式

数据库系统之三 --数据建模与数据库设计 课程1:基本知识与关系模型 课程2:数据库语言-SQL 课程3:数据建模与数据库设计课程4:数据库管理系统实现技术数据库系统

第15讲关系模式设计之规范形式 Research Center on I ntelligent C omputing for E nterprises & S ervices, H arbin I nstitute of T echnology 战德臣 哈尔滨工业大学教授.博士生导师黑龙江省教学名师教育部大学计算机课程教学指导委员会委员

战德臣教授数据库的规范性设计需要分析数据库Table中的属性在取值方面有什么依存关系?数据库设计过程中应遵循什么样的原则 数据库设计理论 ?数据依赖理论 ?关系范式理论 ?模式分解理论BCNF 3NF 2NF 1NF 4NF 5NF 函数依赖部分函数依赖/完全函数依赖传递函数依赖 多值依赖 联结依赖如何避免数据库的一致性问题—数据库的规范性设计无损连接分解保持依赖分解

战德臣教授基本内容 1. 关系的第1NF和第2NF 2. 关系的第3NF和Boyce-Codd NF 3. 多值依赖及其公理定理 4. 关系的第4NF 重点与难点 ●一组概念:1NF, 2NF, 3NF, BCNF, 4NF;多值依赖 ●熟练应用数据库设计的规范化形式,判断数据库设计的正确性及可 能存在的问题

关系的第1范式和第2范式 Research Center on I ntelligent C omputing for E nterprises & S ervices, H arbin I nstitute of T echnology 战德臣 哈尔滨工业大学教授.博士生导师黑龙江省教学名师教育部大学计算机课程教学指导委员会委员

数据库系统讲义(1)

《数据库系统讲义》 第1章绪论 第一节数据库系统概述 1.1.1 数据、数据库、数据库管理系统、数据库系统 数据、数据库、数据库管理系统和数据库系统是与数据库技术密切相关的四个基本概念。 一、数据(DATA) 数据是数据库中存储的基本对象。数据在大多数人头脑中的第一个反应就是数字。其实数字只是最简单的一种数据,是数据的一种传统和狭义的理解。广义的理解,数据的种类很多,文字、图形、图像、声音、学生的档案记录、货物的运输情况等,这些都是数据。 可以对数据做如下定义:描述事物的符号记录称为数据。描述事物的符号可以是数字,也可以是文字、图形、图像、声音、语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机。 为了了解世界,交流信息,人们需要描述这些事物。在日常生活中直接用自然语言(如汉语)描述。在计算机中,为了存储和处理这些事物,就要抽出对这些事物感兴趣的特征组成一个记录来描述。例如:在学生档案中,如果人们最感兴趣的是学生的姓名、性别、年龄、出生年月、籍贯、所在系别、入学时间,那么可以这样描述: (李明,男,21,1972,江苏,计算机系,1990) 因此这里的学生记录就是数据。对于上面这条学生记录,了解其含义的人会得到如下信息:李明是个大学生,1972年出生,男,江苏人,1990年考入计算机系;而不了解其语义的人则无法理解其含义。可见,数据的形式还不能完全表达其内容,需要经过解释。所以数据和关于数据的解释是不可分的,数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。 二、数据库(DataBase,简称DB) 数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。 人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息。在科学技术飞速发展的今天,人们的视野越来越广,数据量急剧增加。过去人们把数据存放在文件柜里,现在人们借助计算机和数据库技术科学地保存和管理大量的复杂的数据,以便能方便而充分地利用这些宝贵的信息资源。 所谓数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。 三、数据库管理系统(DataBase Management System,简称DBMS) 了解了数据和数据库的概念,下一个问题就是如何科学地组织和存储数据,如何高效地获取和维护数据。完成这个任务的是一个系统软件——数据库管理系统。 数据库管理系统是位于用户与操作系统之间的一层数据管理软件。它的主要功能包括以下几个方面: 1. 数据定义功能 DBMS提供数据定义语言(Data Definition Language,简称DDL),用户通过它可以方便地定义对数据库中的数据对象进行定义。 2. 数据操纵功能 DBMS还提供数据操纵语言(Data Manipulation Language,简称DML),用户可以使用DML操纵

数据库系统基础教程第八章答案

Section 1 Exercise 8.1.1 a) CREATE VIEW RichExec AS SELECT * FROM MovieExec WHERE netWorth >= 10000000; b) CREATE VIEW StudioPres (name, address, cert#) AS SELECT https://www.360docs.net/doc/1f4760770.html,, MovieExec.address, MovieExec.cert# FROM MovieExec, Studio WHERE MovieExec.cert# = Studio.presC#; c) CREATE VIEW ExecutiveStar (name, address, gender, birthdate, cert#, netWorth) AS SELECT https://www.360docs.net/doc/1f4760770.html,, star.address, star.gender, star.birthdate, exec.cert#, https://www.360docs.net/doc/1f4760770.html,Worth FROM MovieStar star, MovieExec exec WHERE https://www.360docs.net/doc/1f4760770.html, = https://www.360docs.net/doc/1f4760770.html, AND star.address = exec.address; Exercise 8.1.2 a) SELECT name from ExecutiveStar WHERE gender = ‘f’; b) SELECT https://www.360docs.net/doc/1f4760770.html, from RichExec, StudioPres where https://www.360docs.net/doc/1f4760770.html, = https://www.360docs.net/doc/1f4760770.html,; c) SELECT https://www.360docs.net/doc/1f4760770.html, from ExecutiveStar, StudioPres WHERE https://www.360docs.net/doc/1f4760770.html,Worth >= 50000000 AND StudioPres.cert# = RichExec.cert#; Section 2 Exercise 8.2.1 The views RichExec and StudioPres are updatable; however, the StudioPres view needs to be created with a subquery. CREATE VIEW StudioPres (name, address, cert#) AS SELECT https://www.360docs.net/doc/1f4760770.html,, MovieExec.address, MovieExec.cert# FROM MovieExec WHERE MovieExec.cert# IN (SELECT presCt# from Studio); Exercise 8.2.2 a) Yes, the view is updatable. b)

数据库系统概念答案(第五版)

C H A P T E R2 Exercises 2.4Describe the differences in meaning between the terms relation and relation schema. Answer:A relation schema is a type de?nition,and a relation is an instance of that schema.For example,student(ss#,name)is a relation schema and is a relation based on that schema. 2.5Consider the relational database of Figure2.35,where the primary keys are un- derlined.Give an expression in the relational algebra to express each of the fol-lowing queries: a.Find the names of all employees who work for First Bank Corporation. b.Find the names and cities of residence of all employees who work for First Bank Corporation. c.Find the names,street address,and cities of residence of all employees who work for First Bank Corporation and earn more than$10,000per annum. d.Find the names of all employees in this database who live in the same city as the company for which they work. e.Assume the companies may be located in several cities.Find all companies located in every city in which Small Bank Corporation is located. Answer: a.Πperson-name(σcompany-name=“First Bank Corporation”(works)) 7

数据库系统概论复习资料全

数据库系统概论复习资料 第一章 一、名词解释 1.Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。 2.Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。 3.DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学地 组织、存储和管理数据、高效地获取和维护数据。 4.DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管 理系统、应用系统、数据库管理员(DBA)构成。 5.数据模型:是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的 模拟,是数据库系统的核心和基础;其组成元素有数据结构、数据操作和完整性约束。 6., 7.概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。 8.逻辑模型:是按计算机系统的观点对数据建模,用于DBMS实现。 9.物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁 盘或磁带上的存储方式和存取方法,是面向计算机系统的。 10.实体和属性:客观存在并可相互区别的事物称为实体。实体所具有的某一特性称为属性。 11.E-R图:即实体-关系图,用于描述现实世界的事物及其相互关系,是数据库概念模型设 计的主要工具。 12.关系模式:从用户观点看,关系模式是由一组关系组成,每个关系的数据结构是一张规 范化的二维表。 13.型/值:型是对某一类数据的结构和属性的说明;值是型的一个具体赋值,是型的实例。 14.数据库模式:是对数据库中全体数据的逻辑结构(数据项的名字、类型、取值范围等) 和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述。 15.· 16.数据库的三级系统结构:外模式、模式和内模式。 17.数据库内模式:又称为存储模式,是对数据库物理结构和存储方式的描述,是数据在数 据库内部的表示方式。一个数据库只有一个内模式。 18.数据库外模式:又称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据 的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。 19.数据库的二级映像:外模式/模式映像、模式/内模式映像。 二、填空题 1.数据库系统由数据库、数据库管理系统、应用系统和数据库管理员构成。 2.数据管理是指对数据进行分类、组织、编码、存储、检索和维护等活动。 3.数据管理技术的发展经历了人工管理、文件系统、数据库系统3个阶段。 4.!

数据库系统讲义 (1)

数据库系统原理 第一节数据库系统概述 数据管理技术经历了人工管理、文件系统和数据库系统三个发展阶段。 一、数据库基本概念 1.数据(Data)是数据库系统中存储的基本对象,是描述事物的符号记录。包括文字、图形、图像、流媒体信息等。 2.数据库(DB)是存放数据的仓库,是长期存放在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较高的数据独立性和扩展性,可被用户所共享。 3.数据库管理系统(DBMS)是位于用户和操作系统之间的数据管理软件,如Oracle、DB2.Access等。其功能包括:数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护。 4.数据库系统(DBS)是指计算机系统中引入数据库后的系统,由数据库、数据库管理系统、应用系统、数据库管理员、数据库用户构成。 【要点】 1.数据、数据库、数据库管理系统和数据库系统的基本概念和英文缩写。 2.DBMS的功能:数据定义功能(DDL)、数据操纵功能(DML)、数据库的运行管理、数据库的建立和维护。 3.DBS由数据库、数据库管理系统、应用系统、数据库管理员、数据库用户构成。 4.数据库技术主要解决数据共享的问题,DBMS是系统软件。 【例题·单选题】(2010年×省信用社招聘考试真题)下面关于数据库管理系统和操作系统之间关系描述正确的是()。 A.操作系统可以调用数据库管理系统 B.互不调用 C.数据库管理系统可以调用操作系统 D.可以相互调用 『正确答案』C 『答案解析』硬件和操作系统是数据库管理系统的技术资源,数据库管理系统可以调用操作系统。二、数据库系统的特点

数据库系统基础教程课后答案

Solutions Chapter 4

4.1.1 4.1.2 a) b)

In c we assume that a phone and address can only belong to a single customer (1-m relationship represented by arrow into customer).

In d we assume that an address can only belong to one customer and a phone can exist at only one address. If the multiplicity of above relationships were m-to-n, the entity set becomes weak and the key ssNo of customers will be needed as part of the composite key of the entity set. In c&d, we convert attributes phones and addresses to entity sets. Since entity sets often become relations in relational design, we must consider more efficient alternatives. Instead of querying multiple tables where key values are duplicated, we can also modify attributes: (i) Phones attribute can be converted into HomePhone, OfficePhone and CellPhone. (ii) A multivalued attribute such as alias can be kept as an attribute where a single column can be used in relational design i.e. concatenate all values. SQL allows a query "like '%Junius%'" to search the multiple values in a column alias.

数据库系统概论复习资料(王珊版)

数据库系统概论笔记 数据 (Data) :是数据库中存储的基本对象 数据的定义:描述事物的符号记录 数据的种类:文字、图形、图象、声音等 数据的特点:数据与其语义是不可分的 数据库 (Database,简称 DB) :是长期储存在计算机内、有组织的、可共享的大量数据集合 数据库的特征: 数据按一定的数据模型组织、描述和储存 可为各种用户共享 冗余度较小 数据独立性较高 易扩展 数据库管理系统( Database Management System ,简称 DBMS ):是位于用户与操作系统之间的一层数 据管理软件。 DBMS 的用途:科学地组织和存储数据、高效地获取和维护数据 DBMS 的主要功能: 数据库的运行管理 保证数据的安全性、完整性、 多用户对数据的并发使用 发生故障后的系统恢复 数据库的建立和维护功能(实用程序) 数据库数据批量装载 数据库转储 介质故障恢复 数据库的重组织 性能监视等 数据库系统( Database System,简称 DBS)是指在计算机系统中引入数据库后的系统构成。 数据库系统的构成 由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。 数据管理 对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题 数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。 数据模型应满足三方面要求 能比较真实地模拟现实世界 容易为人所理解 便于在计算机上实现 数据模型分成两个不同的层次 (1)概念模型也称信息模型,它是按用户的观点来对数据和信息建模。 (2)数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。 客观对象的抽象过程--- 两步抽象

数据库系统基本知识讲解

三、数据库的概念与用途 数据库的概念 什么是数据库呢当人们从不同的角度来描述这一概念时就有不同的定义(当然是描述性的)。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该定义侧重于数据的组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个“数据仓库”我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种“数据库”,使其可以利用计算机实现财务、仓库、生产的自动化管理。 给数据库下了一个比较完整的定义:数据库是存储在一起的

相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。 数据库的优点 人事基本档案 使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等

数据库系统基本知识讲解

数据库系统基本知识讲解 This manuscript was revised by the office on December 10, 2020.

三、数据库的概念与用途 数据库的概念 什么是数据库呢当人们从不同的角度来描述这一概念时就有不同的定义(当然是描述性的)。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该定义侧重于数据的组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个“数据仓库”我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种“数据库”,使其可以利用计算机实现财务、仓库、生产的自动化管理。

给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。 数据库的优点 人事基本档案 使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间;实现数据资源的充分共享等等。此外,数据库技术还为用户提供了非常简便的使用手段使用户易于编写有关数据库应用程序。特别是近年来推出的微型计算机关系数据库管理系统dBASELL,操作直观,使用灵活,编程方便,环境适应广泛(一般的十六位机,如

数据库系统概论复习资料

《数据库系统概论》复习资料 ■第一章绪论 本章内容:数据库系统概述、数据模型、数据库系统结构 本章主要考点:数据、数据库、■数据库管理系统的概念、概念模型、■ER 图、三种数据模型、数据库的三级模式结构 1、试述数据、数据库、数据库系统、数据库管理系统的概念 (1)数据(Data) :描述事物的符号记录称为数据。 (2)数据库(Data Base ,简称 DB ):数据库是长期储存在计算机内的、有组织的、可共享的数据集合。 (3)数据库系统(Data Base System ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。 (4)数据库管理系统(DataBase Management System ,简称 DBMS ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。 2、对于DB、DBS、DBMS的关系,下列哪一种描述是正确的(B) A、DB包括DBS、DBMS B、DBS包括DB、DBMS C、DBMS包括DBS、DB D、以上都不对 3、概念模型中的术语:实体、属性、码、域、实体型、实体集 实体:客观存在并可以相互区分的事物叫实体。 属性:实体所具有的某一特性,一个实体可由若干个属性来刻画。 码:惟一标识实体的属性集称为码。

域:域是一组具有相同数据类型的值的集合。 实体型:具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。 实体集:同型实、体的集合称为实体集。 4、目前数据库领域中最常用的逻辑数据模型有层次模型、网状模型、关系模型等。 5、数据库管理系统的主要功能有哪些? (1)数据库定义功能(2)数据存取功能(3)数据库运行管理(4)数据库的建立和维护功能。 ■6、实体联系图(E— R图) 实体型:用矩形表示,矩形框内写明实体名; 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来; 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1或1:n或m:n)。 ▲例:假设教学管理规定: ①一个学生可选修多门课,一门课有若干学生选修; ②一个教师可讲授多门课,一门课只有一个教师讲授; ③一个学生选修一门课,仅有一个成绩。 学生的属性有学号、学生姓名;教师的属性有教师编号,教师姓名;课程的属性有课程号、课程名。要求:根据上述语义画出ER图,要求在图中画出实体的属性并注明联系的类型; 解:根据以上规则画出对于的E—R图如下 7、数据库系统的三级模式结构: 外模式:亦称子模式或用户模式,是数据库用户(包括应用程序员和最终用户)能

数据库系统基础教程第二章答案

Exercise 2.2.1a For relation Accounts, the attributes are: acctNo, type, balance For relation Customers, the attributes are: firstName, lastName, idNo, account Exercise 2.2.1b For relation Accounts, the tuples are: (12345, savings, 12000), (23456, checking, 1000), (34567, savings, 25) For relation Customers, the tuples are: (Robbie, Banks, 901-222, 12345), (Lena, Hand, 805-333, 12345), (Lena, Hand, 805-333, 23456) Exercise 2.2.1c For relation Accounts and the first tuple, the components are: 123456 → acctNo savings → type 12000 → balance For relation Customers and the first tuple, the components are: Robbie → firstName Banks → lastName 901-222 → idNo 12345 → account Exercise 2.2.1d For relation Accounts, a relation schema is: Accounts(acctNo, type, balance) For relation Customers, a relation schema is: Customers(firstName, lastName, idNo, account) Exercise 2.2.1e An example database schema is: Accounts ( acctNo, type, balance ) Customers ( firstName, lastName, idNo, account ) Exercise 2.2.1f A suitable domain for each attribute: acctNo → Integer type → String balance → Integer firstName → String lastName → String

相关文档
最新文档