490 likes | 609 Vues
第 一 章 数据库系统基础知识. 本 章 目 录. 第一节 数据管理技术的发展 第二节 数据库系统 第三节 数据模型 第四节 关系数据库. 第一节 数据管理技术的发展. 一 、 数据与数据处理 数据是指存储在某一种媒体上能够被识别的物理符号 。数据有数字、 文字 、图形、图象、声音等多种表现形式。 信息是一种已经被加工为特定形式的数据 , 信息是以某种数据形式表现的。 在计算机中,通过计算机软件来管理数据,通过应用程序来对数据进行加工处理。用外存储器来存储数据。
E N D
本 章 目 录 • 第一节 数据管理技术的发展 • 第二节 数据库系统 • 第三节 数据模型 • 第四节 关系数据库
第一节 数据管理技术的发展 一、数据与数据处理 数据是指存储在某一种媒体上能够被识别的物理符号。数据有数字、文字、图形、图象、声音等多种表现形式。 信息是一种已经被加工为特定形式的数据,信息是以某种数据形式表现的。 在计算机中,通过计算机软件来管理数据,通过应用程序来对数据进行加工处理。用外存储器来存储数据。 数据处理是指将数据转换成信息的过程。数据处理的内容主要包括:数据的收集、整理、存储、加工、分类、维护、排序、检索和传输等一系列活动的总和。数据处理的目的是从大量的数据中,根据数据自身的规律和及其相互联系,通过分析、归纳、
推理等科学方法,利用计算机技术、数据库管理等技术手段,提取有效的信息资源,为进一步分析、管理、决策提供依据。数据处理也称信息处理。推理等科学方法,利用计算机技术、数据库管理等技术手段,提取有效的信息资源,为进一步分析、管理、决策提供依据。数据处理也称信息处理。 二、计算机数据处理技术的发展 计算机对数据的管理是指对数据的组织、分类、编码、存储、检索和维护提供操作手段。 计算机数据管理经历了:人工管理、文件系统、数据库系统、分布式数据库系统和面向对象数据库系统等几个阶段。
1.人工管理阶段 早期的计算机主要用于科学计算,计算处理的数据量很小,基本上不存在数据管理的问题。从50年代初开始,开始将计算机应用于数据处理。当时的计算机没有专门管理数据的软件,也没有像磁盘这样可随机存取的外部存储设备,对数据的管理没有一定的格式,数据依附于处理它的应用程序,使数据和应用程序一一对应,互为依赖。 由于数据与应用程序的对应、依赖关系,应用程序中的数据无法被其他程序利用,程序与程序之间存在着大量重复数据,称为数据冗余;同时,由于数据是对应某一应用程序的,使得数据的独立性很差,如果数据的类型、结构、存取方式或输入输出方式发生变化,处理它的程序必须相应改变,数据结构性差,而且数据不能长期保存。
应用程序1 数据组1 应用程序2 数据组2 … … 应用程序n 数据组n 在人工管理阶段,应用程序与数据之间的关系如图1-1所示。 图1-1
2.文件管理阶段 从50年代后期开始至60年代末为文件管理阶段,应用程序通过专门管理数据的软件即文件系统管理来使用数据。由于计算机存储技术的发展和操作系统的出现,同时计算机硬件也已经具有可直接存取的磁盘、磁带及磁鼓等外部存储设备,软件则出现了高级语言和操作系统,而操作系统的一项主要功能是文件管理,因此,数据处理应用程序利用操作系统的文件管理功能,将相关数据按一定的规则构成文件,通过文件系统对文件中的数据进行存取、管理,实现数据的文件管理方式。
文件管理阶段中,文件系统为程序与数据之间提供了一个公共接口,使应用程序采用统一的存取方法来存取、操作数据,程序与数据之间不再是直接的对应关系,因而程序和数据有了一定的独立性。程序和数据分开存储,有了程序文件和数据文件的区别。数据文件可以长期保存在外存储器上被多次存取。文件管理阶段中,文件系统为程序与数据之间提供了一个公共接口,使应用程序采用统一的存取方法来存取、操作数据,程序与数据之间不再是直接的对应关系,因而程序和数据有了一定的独立性。程序和数据分开存储,有了程序文件和数据文件的区别。数据文件可以长期保存在外存储器上被多次存取。 数据和程序相互依赖。同一数据项可能重复出现在同一个文件中,这就导致了数据冗余度大。造成数据的不一致性。
应用程序1 数据组1 数据组2 应用程序2 操作系统 数据组n 应用程序n 在文件管理阶段,应用程序与数据之间的关系如图1-2所示。 图1-2
3.数据库系统 数据库管理阶段是20世纪60年代后期开始在文件管理基础上发展起来的。为了实现计算机对数据的统一管理,达到数据共享的目的,发展了数据库技术。 数据库技术的主要目的是有效地管理和存取大量的数据资源。 数据库管理系统(DataBase Management System,DBMS)数据库管理系统利用了操作系统提供的输入/输出控制和文件访问功能。Vf就是一种在操作系统上运行的数据库管理系统软件。数据库技术使数据有了统一的结构,对所有的数据实行统一、集中、独立的管理,以实现数据的共享,保证数据的完整性和安全性,提高了数据管理效率。数据库也是以文件方式存储数据的,但它是数据的一种高级组织形式。在应用程序和数据库之间,由
应用程序1 应用程序2 数据库 数据库管理系统 应用程序n 数据库管理软件DBMS把所有应用程序中使用的相关数据汇集起来,按统一的数据模型,以记录为单位存储在数据库中,为各个应用程序提供方便、快捷的查询、使用。 在数据库管理阶段,应用程序与数据之间的关系如图1-3所示。 ┆ 图1-3
1)分布式数据库 分布式数据库系统(Distributed DataBase System,DDBS)是在集中式数据库基础上发展起来的,是数据库技术与计算机网络技术、分布处理技术相结合的产物。分布式数据库系统是地理上分布在计算机网络不同结点,逻辑上属于同一系统的数据库系统,能支持全局应用,同时存取两个或两个以上结点的数据。 分布式数据库系统的主要特点是: (1)数据是分布的。数据库中的数据分布在计算机网络的不同结点上,而不是集中在一个结点,区别于数据存放在服务器上由各用户共享的网络数据库系统。 (2)数据是逻辑相关的。分布在不同结点的数据,逻辑上属于同一个数据库系统,数据间存在相互关联,区别于由计算机网络连接的多个独立数据库系统。
(3)结点的自治性。每个结点都有自己的计算机软、硬件资源、数据库、数据库管理系统(即Local DataBase Management System,LDBMS局部数据库管理系统),因而能够独立地管理局部数据库。
2)面向对象数据库 面向对象数据库系统(Object-Oriented DataBase System,OODBS)是将面向对象的模型、方法和机制,与先进的数据库技术有机地结合而形成的新型数据库系统。它从关系模型中脱离出来,强调在数据库框架中发展类型、数据抽象、继承和持久性;它的基本设计思想是,一方面把面向对象语言向数据库方向扩展,使应用程序能够存取并处理对象,另一方面扩展数据库系统,使其具有面向对象的特征,提供一种综合的语义数据建模概念集,以便对现实世界中复杂应用的实体和联系建模。因此,面向对象数据库系统首先是一个数据库系统,具备数据库系统的基本功能,其次是一个面向对象的系统,针对面向对象的程序设计语言的永久性对象存储管理而设计的,充分支持完整的面向对象概念和机制。
数据库新技术 数据库技术发展之快、应用之广是计算机科学其他领域技术无可比拟的。随着数据库应用领域的不断扩大和信息量的急剧增长,占主导地位的关系数据库系统已不能满足新的应用领域的需求,如:CAD(计算机辅助设计)/CAM(计算机辅助制造)、CIMS(计算机集成制造系统)、CASE(计算机辅助软件工程)、OA(办公自动化)、GIS(地理信息系统)、MIS(管理信息系统)、KBS(知识库系统)等,都需要数据库新技术的支持。 这些新应用领域的特点是:存储和处理的对象复杂,对象间的联系具有复杂的语义信息;需要复杂的数据类型支持,包括抽象数据类型、无结构的超长数据、时间和版本数据等;需要常驻内存的对象管理以及支持对大量对象的存取和计算;支持长事务和嵌套事务的处理。这些需求是传统关系数据库系统难以满足的。
第二节 数据库系统 一、几个概念 1.数据库 数据库(DataBase,DB )是指存储在计算机存储设备上结构化的相关数据集合。它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。可以被多个用户共享的、与应用程序相互独立。数据库中的数据也是以文件的形式存储在存储介质上的,它是数据库系统操作的对象和结果。数据库中的数据具有集中性和共享性。所谓集中性是指把数据库看成性质不同的数据文件的集合,其中的数据冗余很小。所谓共享性是指多个不同用户使用不同语言,为了不同应用目的可同时存取数据库中的数据。数据库中数据由
DBMS进行统一管理和控制,用户对数据库进行各种数据操作都是通过DBMS实现的。DBMS进行统一管理和控制,用户对数据库进行各种数据操作都是通过DBMS实现的。 2.数据库管理系统 数据库管理系统(DataBase Management System,DBMS)是指负责数据库存取、维护、管理的系统软件。DBMS提供对数据库中数据资源进行统一管理和控制的功能,将用户应用程序与数据库数据相互隔离。它是数据库系统的核心,其功能的强弱是衡量数据库系统性能优劣的主要指标。 DBMS必须运行在相应的系统平台上,在操作系统和相关的系统软件支持下,才能有效地运行。 较流行的微机中小型数据库管理系统有Foxbase、FoxPro、Visual FoxPro、Access等。
应用程序 语言编译 DBMS OS 硬件 3. 数据库系统的组成 数据库应用系统简称为数据库系统(DataBase System,DBS),是一个计算机应用系统。它由计算机硬件、数据库管理系统、数据库、应用程序和用户等部分组成。 最终 用户 开发人员 数据库管 理人员
数据库系统的组成 数据库系统是五部分组成: 硬件系统; 数据库集合; 数据库管理系统及相关软件; 数据库管理员; 用户;
二、数据库的三级模式 数据库的三级模式结构图
1. 模式 模式又称概念模式或逻辑模式,对应概念级。 是所有用户的公共数据视图,由数据库管理系统 提供的数据模式描述语言(DDL)来描述、定义 的,体现、反映了数据库系统的整体观。 2. 外模式 外模式又称子模式,对应于用户级。它是某 个或某几个用户所看到的数据库的数据视图。外 模式是从模式导出的一个子集,外模式反映了数 据的用户观。
3. 内模式 内模式又称存储模式,对应于物理级。它是数 据库中全体数据的内部表示或底层描述,是数据库 最低一级的逻辑描述。内模式由内模式描述语言来 描述、定义,它是数据库的存储观。 4. 三级模式间的映射 通过外模式---模式映射,定义和建立某个外 模式与模式间的对应关系,将外模式与模式联系起 来。 通过模式---内模式映射,定义建立数据的逻辑 结构(模式)与存储结构(内模式)间的对应关系。
三、据库系统的特点 数据库系统的出现是计算机数据处理技术的重大进步,它具有以下特点。 1. 数据模型表示复杂的数据 数据库中数据的结构通过数据模型描述,不仅描述数据本身的特点,而且描述数据之间的联系。 2.实现数据共享,减少数据冗余 数据的最小单位是字段,即可以按字段的名称存取库中某一个或某一组字段,也可以存取一条记录或一组记录。数据冗余就是数据重复。
3.具有较高的数据独立性 所谓数据独立是指数据与应用程序之间的彼此独立,它们之间不存在相互依赖的关系。应用程序不必随数据存储结构的改变而变动。 在数据库系统中,数据库管理系统通过映像,实现应用程序对数据的逻辑结构与物理存储结构之间较高的独立性。数据库的数据独立包括两个方面: (1)物理数据独立:数据的存储格式和组织方法改变时,不影响数据库的逻辑结构,从而不影响应用程序。 (2)逻辑数据独立:数据库逻辑结构的变化(如数据定义的修改,数据间联系的变更等)不影响用户的应用程序。 数据独立提高了数据处理系统的稳定性,从而提高了程序维护的效益。
4.有统一的数据控制功能 数据的存取是并发的,既多个用户同时使用一个数据库。所以,数据库管理系统必须要提供必要的保护措施,(并发访问控制、数据安全控制和数据的完整性控制).
第三节 数据模型 一、数据的描述 1. 现实世界 现实世界是存在于人脑之外的客观世界。 2. 信息世界 信息世界是现实世界在人们头脑中的反映。 (1) 实体 客观事物在信息世界中称为实体(Entity),它是现实世界中任何可区分、识别的事物。实体可以是具体的人或物,也可以是抽象概念。
(2)属性 实体具有许多特性,实体所具有的特性称为属性(Attribute)。一个实体可用若干属性来刻画。每个属性都有特定的取值范围即值域(Domain),值域的类型可以是整数型、实数型、字符型等。 (3)实体型和实体集 属性值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型。同类型的试题的集合称为实体集。 性质相同的同类实体的集合称实体集。如:一个班的学生。 (4) 键(key) 唯一标识实体集中每个实体的属性或属性集称为实体的键。如:学生的学号。
3. 机器世界 机器世界以数据形式存储信息世界中的信息。 (1) 字段(Field) 标识实体属性的符号集称为字段或数据项。 (2) 记录(Record) 字段的有序集合称为记录,用以描述一个实体。 (3) 文件(File) 同一类记录的汇集称为文件,用来描述实体集。 (4) 键(key) 唯一标识文件中每个字段或字段集称为文件的键。
二、数据关系的描述 (1)一对一联系(1:1) 若两个不同型实体集中,任一方的一个实体只与另一方的一个实体相对应,称这种联系为一对一联系。如班长与班级的联系。 (2)一对多联系(1:n) 若两个不同型实体集中,一方的一个实体对应另一方若干个实体,而另一方的一个实只对应本方一个实体,称这种联系为一对多联系。如班长与学生的联系。 (3)多对多联系(m:n) 若两个不同型实体集中,两实体集中任一实体均与另一实体集中若干个实体对应,称这种联系为多对多联系。如教师与学生的联系,一位教师为多个学生授课,每个学生也有多位任课教师。
班长 班长 教师 1 1 m 班长-班级 班长-学生 教师-学生 1 n n 班级 学生 学生 (a) (b) (c) 实体联系示意 建立实体模型的一个主要任务就是要确定实体之间的联系。常见的实体联系有3种:一对一联系、一对多联系和多对多联系。如图1-4所示。 图1-4
三、数据模型 数据模型是指数据库中数据与数据之间的关系。 数据模型是数据库系统中一个关键概念,数据模型不同,相应的数据库系统就完全不同,任何一个数据库管理系统都是基于某种数据模型的。数据库管理系统常用的数据模型有下列三种: 层次模型 网状模型 关系模型
1.层次数据模型(Hierarchical Model) 层次模型是用树型结构来表示实体类型以及实体间联系的模型。他只能表示1:n的联系,不能表示多种以上的实体类型之间的复杂联系和实体类型之间的多对多的联系。 层次模型示意图如图1-5所示。 图1-5
2.网状数据模型(Network Model) 网状模型是用网状结构来表示实体类型以及实体间联系的模型。网中的每一个结点表示一个实体类型。它能够表示实体间的多种复杂联系和实体类型之间的对对多的联系。 支持网状模型的DBMS称为网状数据库管理系统,这种系统中建立的数据库是网状数据库。 网络结构可以直接表示多对多联系,这也是网状模型的主要优点。
3.关系模型(Relational Model) 关系模型是用二维表格结构来表示实体以及实体联系间模型。关系是由若干个二维表组成的集合。每个二维表又称为关系。 Visual FoxPro是一种典型的关系型数据库管理系统。
第四节 关系数据库 一、常用关系术语 1.关系 一个关系就是一张二维表,每个关系有一个关系名。每个关系(数据库表)用一个文件来存储,扩展名为.DBF。 如表1-1读者表就是一个关系。 2.关系模式 对关系结构的描述称为关系模式,一个关系模式对应一个关系的结构。
对关系的描述称为关系模式,其格式为: 关系名(属性名1, 属性名2, …, 属性名n) 关系既可以用二维表格描述,也可以用数学形式的关系模式来描述。一个关系模式对应一个关系的数据结构,也就是表的数据结构。 如表1-1对应的关系,其关系模式可以表示为: 读者(读者编号,姓名,性别,出生日期,少数民族否,籍贯,联系电话,照片) 其中,“读者”为关系名,括号中各项为该关系所有的属性名。
3. 元组 二维表的每一行在关系中称为元组。 在Visual FoxPro中,一个元组对应表中一个记录。 4.属性 二维表的每一列在关系中称为属性,每个属性都有一个属性名。每个属性包括属性名,数据类型,长度。 在Visual FoxPro中,一个属性对应表中一个字段,属性名对应字段名。 5.域 属性的取值范围称为域。
6.关键字 关系中能唯一区分、确定不同元组(记录)的属性或属性组合,称为该关系的一个关键字。单个属性组成的关键字称为单关键字,多个属性组合的关键字称为组合关键字。需要强调的是,关键字的属性值不能取“空值”,所谓空值就是“不知道”或“不确定”的值,否则导致无法唯一地区分、确定元组。 表1-1中“读者编号”及“联系电话”属性可以作为单关键字,因为读者编号和联系电话不允许相同。而“姓名”及“出生日期”则不能作为关键字,因为考生中可能出现重名或相同出生日期。如果所有同名考生的出生日期不同,则可将“姓名”和“出生日期”组合成为组合关键字。
7.候选关键字 关系中能够成为关键字的属性或属性组合可能不是惟一的。凡在关系中能够唯一区分、确定不同元组的属性或属性组合,称为候选关键字。如表1-1中“读者编号”和“联系电话”属性都是候选关键字。 8.主关键字 在候选关键字中选定一个作为关键字,称为该关系的主关键字。关系中主关键字是唯一的。 9.外部关键字 关系中某个属性或属性组合并非关键字,但却是另一个关系的主关键字,称此属性或属性组合为本关系的外部关键字。关系之间的联系是通过外部关键字实现的。
二、关系的基本特点 在关系模型中,关系具有以下基本特点: (1)关系必须规范化,字段不可再分割。 规范化是指关系模型中每个关系模式都必须满足一定的要求,最基本的要求是关系必须是一张二维表,每个属性值必须是不可分割的最小数据单元,即表中不能再包含表。 (2)在同一关系中不允许出现相同的属性名。 (3)关系中不允许有完全相同的元组(记录)。 (4)在同一关系中元组及属性的顺序可以任意。 以上是关系的基本性质,也是衡量一个二维表格是否构成关系的基本要素。在这些基本要素中,有一点是关键,即属性不可再分割,也即表中不能套表。
关系模型实例 外部关键字 外部关键字 主关键字 学生表 成绩表 主关键字 学分表
三、关系运算 1.传统的集合运算(并、差、交等) 2.专门的关系运算(选择、投影、联接) 1. 传统的集合运算 进行并、差、交集合运算的两个关系必须是具有相 同的关系模式,既结构相同。 1) 并 两个相同结构关系的并是由属于这两个关系的元组(记录)组成的集合。 2) 差(R-S) 关系R和关系S,是有属于R而不属于S的元组组成的 集合,从R中去掉S中也有的元组。 3) 交 关系R和关系S,既属于R又属于S的元组组成的集合。
2.专门的关系运算 在关系数据库中查询用户所需数据时,需要对关系进行一定的关系运算。关系运算主要有选择、投影和联接三种。 选择(Selection)运算是从关系中查找符合指定条件元组的操作。(对记录) 投影(Projection)运算是从关系中选取若干个属性的操作。 (对字段) 联接(Join)运算是将两个关系模式的若干属性拼接成一个新的关系模式的操作,对应的新关系中,包含满足联接条件的所有元组。(对字段) 自然联接:按照字段值对应相等为条件进行的联接操作称为等值联接。自然连接就是去掉重复属性(字段)的等值联接。
3.举例: 设有如下考生考试成绩表:
准考证号 姓名 性别 出生日期 笔试成绩 上机成绩 总分 250199990001 赵 娜 女 12/01/70 85 92 177 250199990003 张晓云 女 05/05/69 64 75 139 1)对表按照“性别 = ”女“”的条件进行选择运算,可得到如下结果。 选择运算结果
姓名 笔试成绩 上机成绩 赵 娜 85 92 李 小军 73 80 张晓云 64 75 刘志学 95 90 孙 亮 67 74 李建国 53 57 2)选取表姓名、笔试成绩、上机成绩三列的投影操作,可得到如表1-5所示结果。 投影运算结果