1、2018年11月20日星期二,2018年11月20日星期二,第1章 数据库的基本概念,本章要点,数据库的基本概念 数据库技术的发展 数据库系统的组成与结构 数据模型的概念与分类,2018年11月20日星期二,1.1 基本概念,数据库技术涉及到许多基本概念,主要包括:数据、数据处理、数据库、数据库管理系统以及数据库系统等。,1.1.1数据,数据是指是人们用来反映客观世界而记录下来的可以鉴别的数字、字母或符号,可以存储在某一种媒体上被识别。所以数据的概念包括两个方面含义:一是描述事物特性的数据内容,也就是我们常说的信息,二是存储在某一种媒体上的数据形式,即符号。例如某人的出生日期是“1977年4月
2、21日“,当然也可以将该形式改写为“04/21/77“,但其含义并没有改变。现在数据已经有了更广泛的含义,除了数字、字母、文字和其他特殊字符组成的文本形式的数据,图形、图像、动画、影像、声音(包括语音、音乐)等多媒体数据也已成为了计算机的处理对象。,2018年11月20日星期二,1.1.2 信息,信息是具有特定含义对社会生产有用的数据,信息能影响到人们的行为与决策。例如:1500是一个数据,但不是信息,将1500加上特定含义“工资”后,则某职工工资为1500元则成为信息,且信息“1500元”会影响该职工是否留在公司的决策。,1.1.3 数据处理,数据处理是指对各种形式的数据进行收集、组织、加工
3、、储存、抽取和传播的一系列活动的总和。,1.1.4 数据管理,数据管理是指对数据的组织、存储、检索和维护,是数据处理的中心环节,主要围绕提高数据独立性、降低数据的冗余度、提高数据共享性、提高数据的安全性和完整性等方面来进行改进,使用户能有效地管理和使用数据资源。,2018年11月20日星期二,数据库管理技术大致经历了人工管理阶段、文件系统阶段和数据库系统阶段。,一、人工管理阶段,20世纪50年代以前,计算机主要用于数值计算。这一时期的数据,数据量小,无结构,由用户直接管理,且数据间缺乏逻辑组织,由于是面向应用程序的,数据缺乏独立性,应用程序与其处理的数据结合成一个整体。程序与数据的关系如下图所
4、示:,图1-1 人工管理阶段程序与数据的关系,1.1.5 数据库管理技术的发展,2018年11月20日星期二,(1)硬件:外存只有纸带、卡片、磁带,并没有磁盘等直接存 取的存储设备。 (2)软件:实际上,当时还未形成软件的整体概念,这一时期,没有操作系统,没有管理数据的软件。 (3)特点: 数据不保存。应用程序管理数据。应用程序承担设计数据的逻辑结构和物理结构任务。数据不能共享。一组数据只能对应一个程序。数据不具有独立性。数据的逻辑或物理结构改变,应用程序随之改变。,二、文件系统阶段,在20世纪50年代后期到60年代中期,文件系统阶段程序与数据的关系如图所示。图1-2 文件系统阶段程序与数据的
5、关系 (1)硬件:磁盘、磁鼓等直接存取存储设备。 (2)软件:操作系统中有了专门的数据管理软件-文件系统。,2018年11月20日星期二,(3)特点:数据可以长期保存。由文件系统进行数据管理。数据按文件名访问,按记录 进行存取,可以对文件进行修改、插入和删除操作。数据共享性差,冗余度大。a)一个文件对应一个应用程序。b)不同的应用程序具有部分相同的数据时,也必须建立各自的文件而不能共享相同的数据。数据独立性差。(4)在数据文件中常涉及下列术语: 数据项:描述事物性质的最小单位。记录:若干数据项的集合,一个记录表达一个具体事物。文件:若干记录的集合。,2018年11月20日星期二,三、数据库系统
6、阶段,20世纪60年代后期至今,数据库系统阶段程序与数据的关系如下图所示:图1-3 数据库系统阶段程序与数据的关系 (1)硬件:大容量磁盘,价格下降。 (2)软件:价格上升,编制、维护系统软件及应用程序的成本相对增加,因此出现了统一管理数据的专门软件-数据库管理系统。,2018年11月20日星期二,(3)特点数据结构化。数据库系统与文件系统是有根本区别的。对于文件系统来讲,相互独立的文件的记录内部是有结构的,而数据库系统主要实现整体数据的结构化。数据的共享性高,冗余度低,易扩充。a)数据可以被多个用户、多个应用共享使用。b)数据共享可以大大减少数据冗余、节约存储空间。c)数据共享还能够避免数据
7、之间的不相容性与不一致性,所谓的不一致性是指同一数据的不同拷贝值不一样。数据独立性高。数据独立性主要从物理独立性和逻辑独立性两个方面体现。从物理独立性角度讲,用户的应用程序与存储在磁盘上的数据库是相互独立的。从逻辑独立性角度讲用户的应用程序与数据库的逻辑结构是相互独立的,即数据的逻辑结构改变了,用户程序也可以不变。,2018年11月20日星期二,(4)数据由DBMS统一管理和控制。DBMS提供以下几个方面的数据控制功能:数据库的安全性(security)保护。保护数据以防止不合法的使用造成的数据的泄密和破坏。 数据的完整性检查(integrity)。数据的完整性指数据的正确性和一致性。完整性检
8、查是指将数据控制在有效的范围内,或保证数据之间满足一定的关系。并发(concurrency)控制。当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。数据库恢复(recovery)。当计算机系统遭遇硬件故障、软件故障、操作员误操作或恶意破坏时,可能导致数据错误或全部、部分丢失,此时要求数据库具有恢复功能。所谓的数据库恢复是指DBMS将数据库从错误状态恢复到某一已知的正确状态,即完整性状态。,2018年11月20日星期二,1.2.1 数据库,数据库是指长期存储在计算机内的,有组织的,可共享的、可以表
9、现为多种形式的数据集合。数据库中的数据具有如下特点:(1)按一定的数据模型组织、描述和存储;(2)具有较小的冗余度;(3)具有较高的数据独立性和易扩展性;(4)可为各种用户共享。,1.2 数据库系统,2018年11月20日星期二,1.2.2 数据库管理系统,数据库管理系统(DataBase Management System,简称DBMS)是计算机系统软件,正如使用高级语言需要解释/编译程序的支持一样,使用数据库语言也需要一个特定的支持软件,这就是“数据库管理系统“。 数据库管理系统的主要任务是科学地有效地组织和存储数据、高效地获取和管理数据,接受和完成用户提出的访问数据的各种请求。 数据库管
10、理系统的主要功能包括以下几个方面: (1)数据定义功能 (2)数据操纵功能 (3)数据库运行控制功能 (4)数据库的建立和维护功能,2018年11月20日星期二,1.2.3 数据库系统,数据库系统(DataBase System,DBS)是指拥有数据库技术支持的计算机系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。数据库系统可以实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享服务。 与文件系统相比,数据库系统具有以下特点: (1)数据的结构化。 (2)最小的冗余度。 (3)数据的共享。 (4)数据与程序独立。 (5)数据的安全性和完整性。,
11、2018年11月20日星期二,1.2.4 数据库系统的组成数据库系统是指引进数据库技术后的计算机系统。数据库系统一般由支持数据库运行的软硬件、数据库、数据库管理系统、数据库管理员和用户等部分组成的,如下图所示。图1-4 数据库系统的组成,2018年11月20日星期二,(1)硬件与软件 (2)数据库管理系统(DBMS) (3)数据库系统(DBS) (4)数据库管理员(DataBase Administrator,DBA) (5)用户,2018年11月20日星期二,1.3 数据模型,模型是现实世界特征的模拟和抽象,数据模型(Data Model)是现实世界数据特征的抽象。 1.3.1数据模型的概念
12、数据模型通常由数据结构、数据操作和数据的约束条件三部分组成。(1)数据结构数据结构是所研究的对象类型的集合,这些对象组 成 数据库,它们包括两类:一类是与数据类型、内容、性质有关的对象,另一类是与数据之间联系有关的对象。按照数据结构类型的不同,又可以将数据模型划分为层次模型、网状模型和关系模型。,2018年11月20日星期二,(2)数据操作数据操作指对数据库中各种对象实例的操作。 (3)数据的约束条件数据的约束条件是一组完整性规则的集合。数据模型应反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。数据的完整性约束是指在给定的数据模型中,数据及其数据关联所遵守的一组规则。用以保证数据库中
13、数据的正确性、一致性。,2018年11月20日星期二,1.3.2 概念模型,一、概念模型的名词术语 (1)实体(Entity):客观存在并可相互区别的事物称为实体。 实体既可以是实际的事物,也可以是抽象的概念或联系。 (2)属性(Attribute):属性就是实体所具有的特性,一个实体可以由若干个属性描述。 (3)域(Domain):属性的取值范围称为该属性的域。 (4)实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体。如:教师(教师编号,教师姓名,性别,出生年份,工作年限,工资)。,2018年11月20日星期二,(5)实体集(Entity Set):具有相同属性的
14、实体的集合称为实体集。 (6)键(Key):键是能够惟一地标识出一个实体集中每一个实体的属性或属性组合,键也被称为关键字或码。 (7)联系(Relationship):联系分为两种:一种是实体内部各属性之间的联系,另一种是实体之间的联系。 二、实体之间的联系 (1)一对一联系:如果对于实体集A中的每个实体,实体集B 中至多有一个(可以没有)与之相对应,反之亦然,则称实体集A与实体集B具有一对一联系,记作:1:1。 (2)一对多联系:如果对于实体集A中的每个实体,实体集B中有n个实体(n0)与之相对应,反过来,实体集B中的每个实体,实体集A中至多只有一个实体与之联系, 则称实体集A与实体集B具有
15、一对多联系。记作:1:n。,2018年11月20日星期二,(3)多对多联系:如果对于实体集A中的每个实体,实体集B中有n个实体(n0)与之相对应,反过来,实体集B中的每个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体集B具有多对多联系,记作:m:n。 (a) 1:1 联系 (b) 1:n 联系 (c)m:n 联系 图1-5 实体之间的三种联系,2018年11月20日星期二,三、E-R模型 E-R图有三个要素: (1)实体:用矩形表示实体,矩形内标注实体名称。 (2)属性:用椭圆表示属性,椭圆内标注属性名称。并用连线与实体连接起来。 (3)实体之间的联系:用菱形表示,菱形内注明
16、联系名称,并用连线将菱形框分别与相关实体相连,并在连线上注明联系类型。 下面用E-R图来表示某个工厂物资管理的概念模型。 物资管理涉及的实体有: 仓库 属性有仓库号、面积。货物 属性有货号、名称。职工 属性有职工号、姓名、年龄、职称。,2018年11月20日星期二,图1-6 完整的实体联系图,2018年11月20日星期二,1.4.3 层次模型,层次模型按树型结构组织数据,它是以记录类型为结点,以结点间联系为边的有序树,数据结构为有序树或森林。图1-7 层次模型层次模型有以下两个特点: (1)有且仅有一个结点无父结点,该结点称为根; (2)根以外的其他节点有且只有一个双亲节点。上面特点就使得用层
17、次模型表示1:n联系非常简便,这是它的突出优点,但是它不能直接表示m:n的联系。,2018年11月20日星期二,1.4.4 网状模型,网状模型用网状结构表示实体及其之间的联系,网中结点之间的联系不受层次限制,可以任意发生联系。图1-8 网状模型网状模型有如下几个特点:(1)一个子结点可以有两个或多个父结点。(2)允许一个以上的节点无双亲。(3)在两个结点之间可以有两种或多种联系。(4)可能有回路存在。,2018年11月20日星期二,网状模型的优缺点: (1)优点:能够更为直接地描述现实世界;具有良好的性能,存取效率高。 (2)主要缺点:结构复杂,不利于扩充;不容易实现。 1.4.5关系模型关系
18、数据模型是由IBM公司的E.F.Codd于1970年首次提出,以关系数据模型为基础的数据库管理系统,称为关系数据库系统(RDBMS),目前广泛使用。,2018年11月20日星期二,一、关系数据模型的定义实体和联系均用二维表来表示的数据模型称之为关系数据模型。一张二维表,由行和列组成。图1-9 关系模型,2018年11月20日星期二,二、关系数据模型的基本概念 (1)关系(Relation)对应于关系模式的一个具体的表称为关系,又称表(Table)。 (2)关系模式(Relation Scheme)二维表的表头那一行称为关系模式,又称表的框架或记录类型,是对关系的描述。 关系模式可表示为:关系模
19、式名(属性名1,属性名1,.,属性名n)的形式。例如:学生(学号,姓名,性别,出生日期,籍贯)。 (3)元组(Tuple)关系中的每一行称为关系的一个元组,又称行(Row)或记录(Record)。 (4)属性(Attributes)关系中的每一列称为关系的一个属性,又称列(Column)。给每一个属性起一个名称即属性名。,2018年11月20日星期二,(5)变域(Domain)关系中的每一属性所对应的取值范围叫属性的变域,简称域。 (6)主键(Primary Key)如果关系模式中的某个或某几个属性组成的属性组能惟一地标识对应于该关系模式的关系中的任何一个元组,这样的属性组为该关系模式及其对应
20、关系的主键。 (7)外键(Foreign Key)如果关系R的某一属性组不是该关系本身的主键,而是另一关系的主键,则称该属性组是R的外键。 三、关系数据模型完整性约束关系数据模型完整性约束主要包括三大类:实体完整性、参照完整性和用户定义完整性。关系数据模型中的查询、插入、删除、修改数据等常用操作都要满足这些条件。,2018年11月20日星期二,四、关系数据模型优缺点 (1)优点由于实体和联系都用关系描述,保证了数据操作语言的一致性;结构简单直观、用户易理解; 有严格的设计理论; 存取路径对用户透明,从而具有更高的独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作量。 (2)主
21、要缺点由于存取路径对用户透明,造成查询速度慢,效率低于非关系型数据模型。,2018年11月20日星期二,1.4.1 模式的概念模式(Schema) 是数据库中全体数据的逻辑结构和特征的描述,它仅仅涉及到“型“的描述,不涉及到具体的“值“。其中型是数据模型中对某一类数据结构和属性的说明,而值是型的一个具体赋值。模式具有如下特点: (1)模式的一个具体描述称为模式的一个实例。(2)模式是相对稳定的,而实例是相对变动的。(3)模式反映的是数据的结构及其联系,而实例反映的是数据库某一时刻的状态。,1.4 数据库系统的体系结构,2018年11月20日星期二,1.4.2 数据库系统的三级模式结构数据库系统
22、的三级模式结构是指数据库系统是由外模式、模式、内模式三级构成。图1-10 数据库系统的三级模式结构,2018年11月20日星期二,(1)模式模式(Schema)也称逻辑模式或概念模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,是数据库系统模式结构的中间层。一个数据库只有一个模式。模式是数据项值的框架。数据库系统模式通常还包含有访问控制、保密定义、完整性检查等方面的内容。 (2)外模式外模式也称为子模式或用户模式,它是数据和用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据和用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式一般是模式的子集。一个模式可以有
23、多个外模式。一个应用程序只能使用一个外模式。外模式是保证数据库安全性的一个有力措施。 (3)内模式内模式也称存储模式,是数据库在物理存储器上具体实现的描述,是数据在数据库内部的表示方法,也是数据物理结构和存储方式的描述。一个数据库只有一个内模式。,2018年11月20日星期二,1.4.3 数据库的二级映像功能与数据独立性 (1)外模式/模式映像对于每一个外模式,数据库管理系统都有一个外模式/模式映像,它定义了外模式与模式之间的对应关系。当模式改变时,由数据库管理员对各个外模式/模式映射做相应的改变,这里的映射是把用户数据库与概念数据库联系起来,从而使外模式保持不便,这就保证了数据库的逻辑独立性。 (2)模式/内模式的映像数据库只有一个模式,也只有一个内模式,所以模式/内模式的映射是唯一的,这种映射把概念数据库与物理数据库联系起来,定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变了,由数据库管理员对模式/内模式的映射做相应的改变,可以使模式保持不便,从而应用程序也不必改变。这就保证了数据与程序的物理独立性。,