1、第1章 数据库系统基础,1.1 信息、数据与数据处理 1.2 数据库技术的发展 1.3 数据库系统的组成 1.4 数据库体系结构 1.5 数据库系统的分类,下一页,第1章 数据库系统基础,1.6 概念模型 1.7 数据模型 1.8 数据库设计概述,上一页,1.1.1 信息与数据 信息是现实世界中各种事物的存在方式、运动形态以及它们之间的相互联系等诸要素在人脑中的反映,通过人脑的抽象后形成概念。 数据一般是指信息的一种符号化表示方法,就是说用一定的符号表示信息,而采用什么符号,完全是人为规定。所以数据的概念包括两方面含义:一是数据的内容是信息,二是数据的表现形式是符号。,1.1 信息、数据与数据
2、处理,下一页,返回,1.1.2 信息与数据的关系 信息是用数据来表示的,但两者是不可分离而又有一些区别的概念。一方面并非任何数据都能表达信息,信息是数据的内涵,是对数据的语义解释;另一方面,数据是信息的符号表示或载体,是信息的具体表现。数据是承载信息的物理符号或称之为载体,而信息是数据的内涵。 两者的区别是:数据可以表示信息,但不是任何数据都能表示信息,同一数据也可以有不同的解释。信息是抽象的,同一信息可以有不同的数据表示方式。,1.1 信息、数据与数据处理,下一页,返回,上一页,1.1.3 数据处理 所谓数据处理,就是对各种形式的数据进行收集、组织、存储、加工与传播等,1.1 信息、数据与数
3、据处理,返回,上一页,数据管理随着计算机软硬件的发展及电子数据处理技术的发展经历了人工管理、文件系统、数据库系统3个阶段。 1.2.1 人工管理阶段 人工管理阶段主要是指20世纪50年代中期以前的这段时间,此时的计算机还很简陋,连完整的操作系统都没有。因此,数据只能放在卡片上或其他介质上,由人来手工管理。,1.2 数据库技术的发展,下一页,返回,1.2.2 文件系统阶段 文件系统主要是指20世纪50年代后期到20世纪60年代中期的这段时间,此时的计算机已经有了操作系统。在操作系统基础之上建立的文件系统已经成熟并广泛应用。因此,人们自然想到用文件把大量的数据存储在磁盘这种介质上,以实现对数据的永
4、久保存和自动管理以及维护。,1.2 数据库技术的发展,下一页,返回,上一页,1.2.3 数据库系统阶段 数据库系统阶段是从20世纪60年代后期开始至今,这一时期,管理规模更庞大,从而数据量急剧增长,共享性要求更强。 数据库系统的目标就是解决上面提到的在文件处理系统中存在的问题。为了解决这些问题,数据库系统产生了,并且提出了很多新的概念和算法,加速了数据库系统的发展。,1.2 数据库技术的发展,返回,上一页,从上面一节中我们已经知道了数据库系统是由数据库、数据库管理系统、支持数据库系统运行的软硬件、应用程序、数据库管理员和用户等组成,如图1.3所示。 1.3.1 数据库 数据库可以理解为是一个结
5、构化的相关数据集合。数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织提供多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。,1.3 数据库系统的组成,下一页,返回,主要是通过汇总各个数据库用户的文件,除去不必要冗余,然后使各个文件相互联系,从而形成整体数据结构。联系是数据库的重要特点,至于怎样实现这种联系,取决于数据库类型,类型不同,联系手段也不一样。 1.3.2 数据库系统硬件 数据库系统硬件与一般计算机硬件一样也包括中央处理器CPU、内存储器、输入输出设备等基本设备
6、,但为了满足数据存储的要求它还应包括外存储器、数据通道等各种存储、处理和传输数据的硬件设备。,1.3 数据库系统的组成,下一页,返回,上一页,1.3.3 数据库系统软件 数据库系统的软件包括以下几类: 操作系统(OS)。 各种语言,如Pascal,C语言等高级语言。 应用程序,它是用户根据自己的应用需要而编写的。 数据库管理系统。,1.3 数据库系统的组成,下一页,返回,上一页,1.3.4 数据库系统用户 管理、开发和使用数据库系统的人员主要包括以下4类。 1. 应用程序员 这类用户主要负责编写应用程序用以数据库与普通用户之间进行沟通。 2. 系统程序员 负责安装DBMS、调整DBMS与操作系
7、统及其他部件的接口,设立维护DBMS及相关软件的工具,平衡用户间的资源,进行系统性能监视与调整及系统能力规划等。,1.3 数据库系统的组成,下一页,返回,上一页,3. 数据库管理员(Database Administrator,DBA) 数据库管理员是支持数据库系统的专业技术人员。DBA必须熟悉企业全部数据的性质和用途。由于职责重要和任务复杂,DBA一般是由业务水平较高,资历较深的人员担任。 4. 操作员 负责与用户交换信息,保持系统的联机运行,确定系统问题,执行数据库重新组织,参与设备与故障的恢复过程,以及运行日志的管理。,1.3 数据库系统的组成,返回,上一页,为了有效地组织、管理数据,人
8、们为数据库设计了一个严谨的体系结构。目前,尽管实际应用中的数据库系统软件多种多样,但它们都具有三级模式和二级映射的结构特征。 1.4.1 数据库系统的层次 数据库管理系统的一个主要作用就是隐藏关于数据存储和维护的某些细节,而为用户提供数据在不同层次上的抽象视图,这就是数据抽象。数据库管理系统通过3个层次的抽象来向用户屏蔽复杂性,简化系统的用户界面。这3个层次也称为三级模式结构,由内模式、模式和外模式组成。三级模式结构如图1.4所示。,1.4 数据库体系结构,下一页,返回,1. 内模式(物理级) 物理层次的抽象,描述数据实际上是如何存储的。 2. 模式(概念级) 比物理层稍高层次的逻辑层抽象,描
9、述数据库中存储什么数据以及这些数据间存在什么关系。 3. 外模式(用户级) 最高层次的视图层抽象,但只描述整个数据库的某个部分。,1.4 数据库体系结构,下一页,返回,上一页,通过以上三级模式结构,可以从3种不同的观点出发去观察数据库中的数据,这就是3种不同的数据观:外部数据观、概念数据观和内部数据观,它们之间的差别在于对数据有不同的看法和理解。 1.4.2 数据库系统层次间的映射 数据库系统3个层次间的联系是通过二级映射来完成的。 (1)模式与外模式的映射 模式与外模式的映射定义了某个外模式和模式的对应关系。对应同一个模式,可以有任意多个外模式。当模式发生改变时,只要改变其映射以保证外模式保
10、持不变。,1.4 数据库体系结构,下一页,返回,上一页,(2)模式与内模式的映射 模式与内模式的映射定义了数据的逻辑结构和存储结构之间的对应关系,它说明逻辑记录和字段在内部是如何表示的。当数据的存储结构发生变化时,改变模式与内模式的映射就能使模式改变。,1.4 数据库体系结构,返回,上一页,从用户角度来看,数据库系统分为单用户结构、主从式结构、分布式结构和客户服务器结构。 1.5.1 单用户数据库系统 单用户的数据库系统是最早期的最简单的数据库系统。在单用户系统中,整个数据库系统包括应用程序、DBMS、数据等都装在一台计算机上,由一个用户独占,不同的机器间不能共享数据。,1.5 数据库系统的分
11、类,下一页,返回,1.5.2 主从式结构的数据库系统 主从式结构是指一个主机带多个终端的多用户结构。在这种结构中,数据库系统,包括应用程序、DBMS、数据等集中存放在主机上,所有任务都由主机完成,各个用户通过主机的终端并发地存取数据,共享数据资源。,1.5 数据库系统的分类,下一页,返回,上一页,1.5.3 分布式结构的数据库系统 分布式结构的数据库系统是指数据库中的数据在逻辑上是个整体,但物理分布在计算机网络的不同结点上。网络的每一个结点都可以独立处理本地数据库中的数据,执行局部应用;也可以同时存取和处理多个异地数据库中的数据,执行全局应用。,1.5 数据库系统的分类,下一页,返回,上一页,
12、1.5.4 客户机/服务器结构的数据库系统 主从式数据库系统中的主机或者分布式数据库系统中的每个结点机都是一台通用计算机,既执行DBMS功能,又执行应用程序。随着工作站功能的增强和广泛使用,人们开始把DBMS的功能和应用分开。网络中某些结点上的计算机专门执行DBMS功能,称为数据库服务器,简称服务器,其他结点上的计算机安装DBMS外围应用开发工具,支持用户的应用,称为客户机,这就是客户/服务器结构的数据库系统。,1.5 数据库系统的分类,返回,上一页,概念模型也称为“实体联系模型”。实体联系模型就是人们为正确直观地反映客观事物及其联系,对所研究的信息世界建立的一个抽象的模型,是现实世界到信息世
13、界的第一层抽象,是数据库设计人员和用户之间进行交流的语言。 1.6.1 概念模型名词术语 实体(Entity):客观存在并可相互区别的事物称为实体。实体既可以是实际的事物,也可以是抽象的概念或联系。,1.6 概念模型,下一页,返回, 属性(Attribute):属性就是实体所具有的特性,一个实体可以由若干个属性描述。实体有很多特性,每一个特性称为属性。属性的具体体现称为属性值。属性值集合的取值范围成为属性值域。 域(Domain):属性的取值范围称为该属性的域。 实体集(Entity Set):具有相同属性的实体的集合称为实体集。性质相同的同类实体的集合称为实体集。 键(Key):键是能够唯一
14、地标识出一个实体集中每一个实体的属性或属性组合,键也被称为关键字或码。,1.6 概念模型,下一页,返回,上一页, 联系(Relationship):联系分为两种,一种是实体内部各属性之间的联系,另一种是实体之间的联系。 1.6.2 实体间的联系 联系是实体间的相互关联。实体间的联系有两种方式:一种是实体集与实体集之间的联系,另一种是实体集内部的联系。 1.6.3 E-R图画法 描述概念模型的主要工具为E-R图,1976年P.P.S.Chen提出了实体联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型。,1.6 概念模型,下一页,返回,
15、上一页,1. E-R图的基本元素 矩形:代表实体集;在框内写上实体名,如 椭圆:代表属性;在椭圆内写上属性名,如 菱形:代表实体间的联系集;联系以适用含义命名,名字写在菱形框内,并用无向边将菱形分别与有关的实体连接,联系的类型可以是1:1,1:n或m:n(一对一、一对多、多对多联系)。图1.10表示实体间的3种联系。 连线:将属性与实体集相连或将实体集与联系集相连。除连线以外,每个元素上都标有它所代表的实体、属性或联系。,1.6 概念模型,下一页,返回,上一页,学生,学号,需要说明的是,除了这些基本的E-R图构件以外,在实际应用当中,为了更加准确、形象、简单地描述被建模的对象,有时候也允许设计
16、人员自定义一些E-R图的构件。在这件事情上,没有严格的规定,只要事先约定好了就可以。 2. E-R图画法 下面以教师、学生、课程3个实体集为例解释如何画出其E-R图。,1.6 概念模型,下一页,返回,上一页,信息如下: 教师:职工号、姓名、年龄、职称。 学生:学号、姓名、性别、年龄。 课程:课程号、课程名、学时数。 这个E-R模型的具体建立过程如下: 确定实体类型。3个实体类型分别为教师、学生及课程。 确定联系类型。学生和课程之间是n:m联系,课程和教师之间是n:1联系,分别定义联系类型是学习、任课。,1.6 概念模型,下一页,返回,上一页, 确定实体类型和联系类型属性。实体类型“学生”的属性
17、是:学号、姓名、性别、年龄。实体类型“课程”的属性是:课程号、课程名、学时数。实体类型“教师”的属性是:职工号、姓名、年龄、职称。 确定联系类型的属性。联系类型的属性应为两实体联系以后产生的属性。联系类型“学习”有属性“成绩”,联系类型“任课”有属性“班级”。 画出E-R图,如图l.11所示。,1.6 概念模型,下一页,返回,上一页,3. 具体设计E-R图时应遵循的原则 针对特定用户的应用,确定实体、属性和实体间的联系,做出反映该用户视图的局部E-R图。 综合各个用户的局部E-R图,产生反映数据库整体概念的总体E-R图。在综合时,出现于不同E-R图中的同名实体,只能在总体E-R图中出现一次,以
18、便消除冗余。要消除那些同名异义或同义异名的现象,以保持数据一致性。,1.6 概念模型,下一页,返回,上一页,另外,在综合时也可以在总体E-R图中增加新的联系。经过综合后生成的总体E-R图必须满足以下条件: 能准确地反映原来的局部E-R图,包括属性、实体及相互联系。 整体概念一致性,不能存在相互矛盾的表达。应该指出,一个系统的E-R图不是唯一的。强调不同侧面和不同联系,生成的E-R图可能有很大的差别。,1.6 概念模型,返回,上一页,1.7.1 数据模型的类型 数据库类型根据数据模型可划分为:层次模型、网状模型和关系模型。 1. 层次模型 层次模型是三大经典数据模型中出现得最早的一个,基于层次模
19、型的数据库管理系统IMS是IBM公司于1968年推出的世界上第一个数据库管理系统DBMS。层次模型是以记录型为结点的有向树。在树中,把无双亲的记录称为根记录,其他记录称为从属记录。除根记录外,任何记录只有一个父记录。一个父记录可以有多个子记录。,1.7 数据模型,下一页,返回,2. 网状模型 网状模型也是较早出现的数据模型,其典型代表是美国CODASYL组织的下属机构数据库任务组(DBTG)于1971年4月提出的DBTG报告。目前实际运行的大多数网状数据库系统都是按DBTG规范实现的。 网状模型和层次模型在本质上是一样的,网状是层次的一般形式,而层次是网状的特殊形式。网状模型和层次模型一样都是
20、用指针来实现两个文件之间的联系。其差别在于网状模型中的连线或指针更加复杂,更加纵横交错,数据结构不像层次模型那样简单、清晰。,1.7 数据模型,下一页,返回,上一页,3. 关系模型 IBM公司的EFCdd在1970年至1974年发表了一系列有关关系模型的论文,从而奠定了关系数据库的设计基础。 用表格数据来表示实体和实体间联系的模型叫关系模型。在关系模型中不存在指针,描述各个实体之间联系的信息也隐含在关系中,所以在关系中应存放两类数据:实体本身的数据和实体间的联系。,1.7 数据模型,下一页,返回,上一页,1.7.2 E-R模型到关系模型的转换 E-R模型反映的是现实世界,无法定义数据库。当前大
21、部分数据库都是关系数据库管理系统。我们可以把E-R模型转换成关系模型,从而实现数据库的定义。 1. E-R模型到关系模型基本转换规则 E-R图中所有实体都用关系来表示,该关系包括对应实体的全部属性。 E-R图中的联系,依据联系方式的不同,采用不同的方法进行转换。,1.7 数据模型,下一页,返回,上一页,2. 几种不同联系情况E-R图的转换 (1)两实体间1:n联系 两实体分别转换为关系,实体中的所有属性都对应为关系的属性,如果联系包括属性,也一并放入表示“n”方实体对应的关系中。 (2)两实体间的m:n联系 两实体分别转换为一个关系。 为联系单独建立一个关系,把两实体关系中的关键字均放入联系中
22、作为其关键字。,1.7 数据模型,下一页,返回,上一页,(3)两实体间1:1联系 这种情况实际上是两实体间1:n联系的特例,可在两实体对应的任一关系中多设一个字段作为外部关键字。,1.7 数据模型,返回,上一页,数据库是数据库应用系统处理信息的核心和基础,因而数据库设计是数据库应用系统设计与开发的关键性工作。 数据库设计包括信息系统数据模型的静态模型,即模式与子模式的设计称为数据库的结构设计。在模型上的动态操作,即应用程序设计称为数据库的行为设计。现代数据库设计方法强调数据库的结构设计与行为设计相结合,这是数据库设计的特点之一。,1.8 数据库设计概述,下一页,返回,对于从事数据库设计的人员来
23、讲,应该具备多方面的技术和知识,主要有如下几项: 计算机科学基础知识和程序设计技术。 数据库基本知识和数据库设计技术。 软件工程的原理和方法。 应用领域的知识。,1.8 数据库设计概述,下一页,返回,上一页,1.8.1 数据库设计方法简述 在数据库发展初期,数据库设计主要采用手工试凑法。此方法与设计人员的经验和水平直接相关。缺乏科学的理论和工程原则支持,很难保证设计质量。通常是在数据库投入使用后才能发现问题,使维护代价昂贵。 人们经过探索提出了运用软件工程的思想和方法进行数据库设计的规范化设计方法。比较著名的有新奥尔良方法,基于E-R模型的数据库设计方法,基于3NF(第三范式)的设计方法,基于
24、抽象语法规范的设计方法等,这些是在数据库设计的不同阶段支持实现的具体技术和方法。,1.8 数据库设计概述,下一页,返回,上一页,1.8.2 数据库设计步骤 按规范设计的方法将数据库设计分为以下6个阶段。 (1)系统需求分析阶段 进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础。 (2)概念设计阶段 概念设计是整个数据库设计的关键步骤,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念。,1.8 数据库设计概述,下一页,返回,上一页,(3)逻辑设计阶段 逻辑设计任务就是将概念设计的产物转换为某个DBMS所支持的数据模型,并对其进行优
25、化。 (4)数据库物理设计阶段 物理设计的任务是将逻辑模型转换为特定的计算机系统所接受的数据库(包括存储结构和存取方法)。 (5)应用程序编码、调试、试运行阶段 在这个阶段,设计人员运用DBMS提供的数据语言及其他一些程序设计语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。,1.8 数据库设计概述,下一页,返回,上一页,(6)数据库的运行维护阶段 数据库投入正常运行标志着数据库设计与应用开发工作结束和运行维护阶段的开始。 这种设计方法称为数据库设计的生命周期法。在这6个阶段中,前两个阶段面向“问题”,即现实世界或用户的应用要求;中间两个阶段面向数据
26、库管理系统;最后两个阶段面向“实现”。 1.8.3 数据库设计目标 数据库设计过程的主要目标是完整性、一致性、可恢复性、安全性和效率性。,1.8 数据库设计概述,下一页,返回,上一页,1.8.4 编写技术文档 数据库设计其实也是一项软件工程,它与一般软件系统开发有许多相似之处,因此对于技术文档的编写也是一项重要工作。 1. 软件文档的作用 文档是指某种数据媒体和其中所记录的数据。在软件工程中,文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面和图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。文档也是软件产品的一部分,没有文档就不称其为软
27、件。,1.8 数据库设计概述,下一页,返回,上一页,2. 需求说明书 需求说明书对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。 3. 技术说明书 技术说明书主要包括设计全过程所采用的技术手段和实现措施,对各环节的技术资料进行归纳、整理、存档。应包括以下方面:,1.8 数据库设计概述,下一页,返回,上一页,4. 用户操作手册 用户操作手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件有具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。,1.8 数据库设计概述,返回,上一页,图1.3 数据库系统方式,返回,图1.4 数据库系统体系结构,返回,图1.10 各种联系类型示例,返回,图1.11 一个E-R图实例,返回,