数据库基础理论2.docx

上传人:小飞机 文档编号:5306274 上传时间:2023-06-24 格式:DOCX 页数:11 大小:132.42KB
返回 下载 相关 举报
数据库基础理论2.docx_第1页
第1页 / 共11页
数据库基础理论2.docx_第2页
第2页 / 共11页
数据库基础理论2.docx_第3页
第3页 / 共11页
数据库基础理论2.docx_第4页
第4页 / 共11页
数据库基础理论2.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《数据库基础理论2.docx》由会员分享,可在线阅读,更多相关《数据库基础理论2.docx(11页珍藏版)》请在三一办公上搜索。

1、A7r弟大量信息的产生、处理、存储、传播和使用推动了社会的进步和经济的发展。信息 系统是一种以加工处理信息为主的计算机系统。数据库技术作为一种存储和使用信息的 信息系统核心技术,在现在的银行、航空运输、电信业务、电子商务和其他Web应用等 领域正在发挥着越来越重要的作用。本章将主要介绍数据库的基本概念、技术以及关系数据库基础理论,为用户学习SQL Server 2000数据库打下扎实的基础知识。在本章中,我们将系统地学习数据库系统的概念及数据库管理系统的详细内容,还 将详细学习关系型数据库的相关知识,以及关系数据库的实体内容;最后我们介绍了本 书中所使用的“学生管理数据库”和“经销商管理数据库

2、”两个示例数据库。本章学习要点: 了解数据库系统的基本概念 了解关系数据模型和DBMS掌握关系规范化的使用 掌握实体-关系模型的概念数据库系统的概念计算机从诞生开始,就面临着处理大量数据的任务。使用计算机以后,数据处理的 速度和规模无论相对于手工方式还是机械方式都是无可比拟的。随着数据处理量的增长, 产生了数据管理技术。数据管理技术经历了人工管理、文件系统和数据库系统三个阶段。人工管理方式固然效率低下,就是对于文件系统而言,也存在着数据冗余、数据不 一致性和数据联系薄弱等缺点。而数据库系统克服了文件系统的缺点,提供了对数据更 高级、更有效的管理手段。数据库系统阶段的数据管理技术有以下特点:X采

3、用数据模型表示复杂的数据结构。M有较高的数据独立性。X数据库系统为用户提供了方便的用户接口。在数据库系统中,数据库的使用既可以在程序中实现,也可以在独立的数据操作界 面中实现,比如在SQL Server数据库系统中,我们既可以使用T-SQL语言操作数据库, 也可以使用SQL Server企业管理器实现对数据库的操作和管理。X 增加了系统灵活性X 数据库系统提供了四方面的数据控制功能数据库的并发控制、数据库的恢 复、数据完整性和数据安全性。数据库技术是在操作系统的文件系统基础上发展起来的,而且数据库管理系统本身 要在操作系统支持下才能工作。数据库与数据结构之间的联系也很密切。数据库管理系统(Da

4、taBase Management System,简称DBMS)是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分,我们对数据库系统 的一切操作,包括定义、查询、更新以及各种控制,都是通过数据库管理系统进行的。 DBMS由两大部分组成:查询处理器和存储管理器。查询处理器有四个组成部分:DDL 编译器、DML编译器、嵌入式DML的预编译器以及查询运行核心程序;存储管理器有 四个主要组成部分:权限和完整性管理器、事务管理器、文件管理器以及缓冲区管理器。 DBMS的工作示意图如图1-1所示。图1- 1 DBMS 的工作模式DBMS总是基于某种数据模型,根据DBMS的不同,DBMS

5、可以分成层次型、网状 型、关系型、面向对象型等。DBMS的工作模式如下:X 接受应用程序的数据请求和处理请求。X 将用户的数据请求(高级指令)转换成复杂的机器代码(低层指令)。X实现对数据库的操作。X从对数据库的操作中接受查询结果。M 对查询结果进行处理(格式转换)。X处理结果返回给用户。DBMS的主要功能有以下五个方面:X 数据库的定义功能 在DBMS中应该包括数据定义语言(DDL)的编译程序。X 数据库的操作功能 DBMS提供数据操作语言(DML)实现对数据的操作。其 基本的数据操作有两类:检索(查询)和更新(包括插入、删除、更新)。因此, 在DBMS中应包括DML的编译程序或解释程序。通

6、常查询语言是指数据操作 语言中的检索语句部分。X 数据库的保护功能 包括数据库的恢复、数据库的并发控制、数据完整性控制 和数据安全性控制。X数据库的维护功能包括数据库的数据导入、转换、存储,数据库性能监控等功能。X数据字典数据库系统中存放三级结构定义的数据库称为数据字典。对数据库 的操作都要通过数据字典才能实现。数据字典中还存放数据库运行时的统计信 息,例如记录个数、访问次数等。如图1-2所示是数据库管理系统的结构图。数据库管理系统提供了许多不同的结构 以满足在不同用途下的应用。例如,对于一般用途的普通用户,可以通过数据库管理系 统的应用界面对数据库进行简单操作;而对于经验丰富的数据库管理员,

7、则可以使用 DBMS提供的数据定义语言(DDL)来执行高级管理操作。结构图图 1-2 DBMS(应鬲界面(应用矗程序)(查福语句)(数据定义总言语句)据义言译行数定语编执关系数据模型建立数据库系统离不开数据模型。模型是对现实世界的抽象,在数据库技术中,我们用模型的概念描述数据库的结构与语义,对现实世界进行抽象。能表示实体类型及实 体间联系的模型称为“数据模型”。数据模型的种类很多,目前被广泛使用的可分为两种类型。一种是独立于计算机系 统的数据模型,完全不涉及信息在计算机中的表示,只是用来描述某个特定组织所关心 的信息结构,这种模型称为“概念数据模型”。概念模型是按用户的观点对数据建模,强 调其

8、语义表达能力,概念应该简单、清晰、易于用户理解,它是对现实世界的第一层抽 象,是用户和数据库设计人员之间进行交流的工具。其典型代表就是著名的“实体-关系 模型”,我们将在1.4节详细介绍实体-关系模型的知识。另一种数据模型是直接面向数据库的逻辑结构,它是对现实世界的第二层抽象。这 种模型直接与数据库管理系统有关,称为“逻辑数据模型”,包括层次模型、网状模型、 关系模型和面向对象模型。逻辑数据模型应该包含数据结构、数据操作和数据完整性约 束三个部分,通常有一组严格定义的无二义性语法和语义的数据库语言,人们可以用这 种语言来定义、操作数据库中的数据。在逻辑数据模型的四种模型中,层次模型和网状模型已

9、经很少应用,而面向对象模 型比较复杂,尚未达到关系模型数据库的普及程度。目前理论成熟、使用普及的模型就 是关系模型。关系模型是由若干个关系模式组成的集合,关系模式的实例称为关系,每 个关系实际上是一张二维表格。关系模型用键导航数据,其表格简单,用户只需用简单 的查询语句就可以对数据库进行操作,并不涉及存储结构、访问技术等细节。SQL语言 是关系数据库的代表性语言,已经得到了广泛的应用。典型的关系数据库产品有DB2、 Oracle、Sybase、SQL Server 等。 一1.2.1关系数据模型基本概念在关系数据模型中,关系可以看成由行和列交叉组成的二维表格,表中一行称为一 个元组,可以用来标

10、识实体集中的一个实体。表中的列称为属性,给每一列起一个名称 即为属性名,表中的属性名不能相同。列的取值范围称为域,同列具有相同的域,不同 的列也可以有相同的域。表中任意两行(元组)不能相同。能唯一标识表中不同行的属 性或属性组称为主键。尽管关系与传统的二维表格数据文件具有类似之处,但是它们又有区别,严格地说, 关系是一种规范化的二维表格,具有如下性质:X 属性值具有原子性,不可分解。M没有重复的元组。X 理论上没有行序,但是有时使用时可以有行序。在关系数据库中,关键码(简称键)是关系模型的一个重要概念,是用来标识行(元 组)的一个或几个列(属性)。如果键是唯一的属性,则称为唯一键;反之由多个属

11、性组 成,则称为复合键。键的主要类型如下:X 超键 在一个关系中,能唯一标识元组的属性或属性集称为关系的超键。X 候选键 如果一个属性集能唯一标识元组,且又不含有多余的属性,那么这个 属性集称为关系的候选键。M 主键 如果一个关系中有多个候选键,则选择其中的一个键为关系的主键。用 主键可以实现关系定义中“表中任意两行(元组)不能相同”的约束。例如,在本书的示例数据库图书管理系统中,我们以图书明细表为例。在该表中, 我们假设图书编号列是唯一的,因为图书馆管理员是通过该编号对图书进行操作的。因 此,把图书编号作为主键是最佳的选择,而如果使用图书名称列作为主键则会存在问题。 为此,最好创建一个单独的

12、键将其明确地指定为主键,这种唯一标识符在现实生话中很 普遍,例如,身份证号、牌照号、订单号、学生标识号和航班号等。X 外键 如果一个关系R中包含另一个关系S的主键所对应的属性组F,则称此 属性组F为关系R的外键,并称关系S为参照关系,关系R是依赖关系。为了 表示关联,可以将一个关系的主键作为属性放入另外一个关系中,第二个关系 中的那些属性就称为外键。例如,同样是在图书管理系统数据库,有一个出版社表用来描述出版社的各种信息, 像电话、地址和网址等,在该表中使用“出版社编号”作为主键。为了表示图书与出版 社之间的联系,我们可以将出版社表中的主键“出版社编号”作为新列添加到图书明细 表中。在这种情况

13、下,图书明细表中的“出版社编号”就被称为外键,因为“出版社编号” 是其所在表以外(出版社表)的一个主键。当出现外键时,主键与外键的列名称可以是不同的。但必须要求它们的值集相同, 即图书明细表中出现的“出版社编号”一定要和出版社表中的值匹配。1.2.2关系模型数据操作语言关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系数据库 的数据操作语言(DML)的语句分为查询语句和更新语句两大类。查询语句用于描述用 户的各类检索要求;更新语句用于描述用户的插入、修改和删除等操作。关系数据操作语言建立在关系代数基础上,具有以下特点:X 以关系为单位进行数据操作,操作的结果也是关系。X非过程性

14、强。很多操作只需指出做什么,而勿需步步引导怎么去做。X 以关系代数为基础,借助于传统的集合运算和专门的关系运算,使关系数据语 言具有很强的数据操作能力。下面我们介绍在数据操作语言中对数据库进行查询和更新等操作的语句:X SELECT语句 指定的条件在一个数据库中查询的结果,返回的结果被看作记 录的集合。X SELECT.INTO语句 用于创建一个查询表。X INSERT INTO语句 用于向一个表添加一个或多个记录。X update语句 用于创建一个更新查询,根据指定的条件更改指定表中的字段 值。UPDATE语句不生成结果集,而且当使用更新查询更新记录之后,不能取 消这次操作。X DELETE

15、语句 用于创建一个删除查询,可从列在FROM 子句之中的一个或多个表中删除记录,且该子句满足WHERE子句中的条件,可以使用DELETE 删除多个记录。M INNER JOIN操作 用于组合两个表中的记录,只要在公共字段之中有相符的 值。可以在任何FROM子句中使用INNER JOIN运算。这是最普通的连接类 型。只要在这两个表的公共字段之中有相符的值,内部连接将组合两个表中的 记录。M LEFT JOIN操作 用于在任何FROM子句中组合来源表的记录。使用LEFT JOIN运算来创建一个左边外部连接。左边外部连接将包含从第一个(左边) 开始的两个表中的全部记录,即使在第二个(右边)表中并没有

16、相符值的记录。M RIGHT JOIN操作 用于在任何FROM子句中组合来源表的记录。使用 RIGHT JOIN运算创建一个右边外部连接。右边外部连接将包含从第二个(右 边)表开始的两个表中的全部记录,即使在第一个(左边)表中并没有匹配值 的记录。M PARAMETERS声明 用于声明在参数查询中的每一个参数的名称及数据类 型。PARAMETERS声明是可选的,但是当使用时,需置于任何其他语句之前, 包括SELECT语句。M UNION操作 用于创建一个联合查询,它组合了两个或更多的独立查询或表 的结果。所有在一个联合运算中的查询,都须请求相同数目的字段,但是,字 段不必大小相同或数据类型相同

17、。r- 1.2.3 Codd准则和完整性规则根据关系数据理论和Codd准则的定义,一种语言必须能处理与数据库的所有通信 问题,这种语言有时也称为“综合数据专用语言”。该语言在关系型数据库管理系统中就 是SQL。SQL的使用主要通过数据操作、数据定义和数据管理三种操作实现。其中Codd 提出了 RDBMS的12项准则。M 信息准则 关系数据库中的所有信息都应在逻辑一级上用一种方法,即表中的 值,显示的表示。M 保证访问准则 依靠于表名、主键和列名,保证能以逻辑的方式访问数据库中 的每个数据项。M 空值的系统化处理 RDBMS支持空值(不同于空的字符串或空白字符串,并 且不为0)系统化地表示缺少的

18、信息,且与数据类型无关。M 基于关系模型的联机目录 数据库的描述在逻辑上应该和普通数据采用同样的 方式,使得授权用户可以使用查询一般数据所用的关系语言来查询数据库的描 述信息。M 统一的数据字语言准则 一个关系系统可以具有多种语言和多种终端使用方式 (如表格填空方式、命令行方式等)。但是,必须有一种语言,它的语句可以表 示为具有严格语法规定的字符串,并能全面地支持以下功能:数据定义、视图 定义、数据操作(交互式或程序式)、完整约束、授权、事务控制(事务开始、提交、撤销)。X视图更新准则所有理论上可更新的视图也应该允许由系统更新。X 高阶的插入,更新和删除 把一个基本关系或导出关系作为一个操作对

19、象进行 数据的检索以及插入、更新和删除。X数据的物理独立性无论数据库的数据在存储表示上或存取方法上做任何变 化,应用程序和终端活动要都保持逻辑上的不变性。X 数据的逻辑独立性 当基本表中进行理论上信息不受损害的任何变化时,应用 程序和终端活动都要保持逻辑上的不变性。X 数据完整性的独立性 关系数据库的完整性约束必须是用数据子语言定义并存 储在目录中的,而不是在应用程序中加以定义的。至少要支持以下两种约束: 实体完整性,即主键中的属性不允许为NULL。参照完整性,即对于关系数据 库中每个不同的非空的外码值,必须存在一个取自同一个域匹配的主键值。X 分布的独立性 一个RDBMS应该具有分布独立性。

20、分布独立性是指用户不必 了解数据库是否是分布式的。X 无破坏准则 如果RDBMS有一个低级语言(一次处理一个记录),这一低级语 言不能违背或绕过完整性准则以及高级关系语言(一次处理若干记录)表达的 约束。数据库管理系统是对数据进行管理的大型系统软件,它是数据库系统的核心组成部 分,用户在数据库系统中的一切操作,包括数据定义、查询、更新及各种控制,都是通过 DBMS进行的。关系模型的完整性规则是对数据的约束。关系模型提供了三类完整性规则:实体完 整性规则、参照完整性规则和用户定义的完整性规则。其中实体完整性规则和参照完整 性规则是关系模型必须满足的完整性的约束条件,称为关系完整性规则。X实体完整

21、性指关系的主属性(主键的组成部分)不能是空值。空值(null)就是指 不知道或是不能使用的值,它与数值0和空字符串的意义都不一样。X 参照完整性 如果关系的外键R1与关系R2中的主键相符,那么外键的每个值 必须在关系R2中主键的值中找到或者是空值。X 用户定义完整性 是针对某一具体的实际数据库的约束条件。它由应用环境所 决定,反映某一具体应用所涉及的数据必须满足的要求。关系模型提供定义和 检验这类完整性的机制,以便用统一的、系统的方法处理,而不必由应用程序 承担这一功能。1.3关系规范化在数据库中,数据之间存在着密切的联系。关系数据库由相互联系的一组关系所组 成,每个关系包括关系模式和关系值两

22、个方面。关系模式是对关系的抽象定义,给出关 系的具体结构;关系的值是关系的具体内容,反映关系在某一时刻的状态。一个关系包 含许多元组,每个元组都是符合关系模式结构的一个具体值,并且都分属于相应的属性。 在关系数据库中的每个关系都需要进行规范化,使之达到一定的规范化程度,从而提高数据的结构化、共享性、一致性和可操作性。关系模型原理的核心内容就是规范化概念,规范化是把数据库组织成在保持存储数 据完整性的同时最小化冗余数据的结构的过程。规范化的数据库必须符合关系模型的范 式规则。范式可以防止在使用数据库时出现不一致的数据,并防止数据丢失。关系模型 的范式有第一范式、第二范式、第三范式和BCNF范式等

23、多种。在这些定义中,高级范式根据定义属于所有低级的范式。第三范式中的关系属于第 二范式,第二范式中的关系属于第一范式。下面我们介绍规范化的过程。1 .第一范式第一范式是第二和第三范式的基础,是最基本的范式。第一范式包括下列指导原则:X数据组的每个属性只可以包含一个值X 关系中的每个数组必须包含相同数量的值X 关系中的每个数组一定不能相同如果关系模式R中的所有属性值都是不可再分解的原子值,那么就称此关系R是第 一范式(First Normal Form,简称1NF)的关系模式。在关系型数据库管理系统中,涉 及到的研究对象都是满足1NF的规范化关系,不是1NF的关系称为非规范化的关系。库徉拳号商品

24、给号商品名弥单册厚存教量供应商电称11WI上机25013中达恒业21005CD火痘24010海5韦叱科技31006CPU獭10海都业科技410()2 J006主机、CPU20海岳伟叱科技1003 x IWX见几、CPU43四削15畅通作业图1-3 原始数据例如,在本书示 例数据库经销商中的 关系,如图1-3所示。 其中的第四和第五行 的2、3数组违反了第 一范式,因为“商品 编号”和“商品名称” 属性每个都包含两 个值。如果要将这些数据规范化,就必须创建允许分离数据的附加表,这样才能使每个属 性只包含一个值,每个数组包含相同数量的值,并且每个数组各不相同,如图1-4所示。 这时的数据才符合第一

25、范式。库存编号商品编号库存数量110011521002203100315410041551005106100610图1-4 符合1NF的数据商品编号商品名称单价1001主机2501002主机8001003主机4501004CD光驱1261005CD光驱2401006CPU960供应商代号供应产名称1畅通伟业2冰峰网络3炎黄盈动4海岳伟业科技5中达恒业2.第二范式第二范式(2NF)规定关系必须在第一范式中,并且关系中的所有属性依赖于整个 候选键。候选键是一个或多个唯一标识每个数据组的属性集合。库存垸号商品编号库存数星商品名称供应产名称1100115K机250中诂恒业 |2101)220主机海岳伟

26、业科技3100315E机烦情朝业4100415CD光至126中达恒业5101)510CD光驱240海岳悻业科技6100610CPU960海岳伟业电技图1-5设置候选键后的数据例如,在图1-5所 示的关系中,可以将 “商品名称”和“供应 商”名称指定为候选 键。这些值共同唯一标 识每个数组。在该图 中,“库存编号”属性 只依赖于“商品名称”, 而不依赖于“供应商名 称”属性。3.第三范式第三范式(3NF)同2NF 一样依赖于关系的候选键。为了遵循3NF的指导原则,关 系必须在2NF中,非键属性相互之间必须无关,并且必须依赖于键。库徉 蝙号商品 编号商品品祢单价咋存 散最供应商 代号供应商名秫11

27、(X11E机项)155中达恒业21005LD光驱04海岳伟科技11006CPU顾104海岳-伟山科技41002卜机袖)204海岳伟业科技51003主机45051情诵伟业|图1-6 理想的3NF数据例如,在图1-6所 示的关系中,候选键 “供应商代号”是属性。 “商品名称”和“供应 商名称”的属性都依赖 于主键“库存编号”, 并且相互之间进行关 联。“供应商代号”属 性依赖于“商品编号”, 而不依赖于主键“库存 编号。对于关系设计,理想的设计目标是按照规范化规则存储数据。但是,在数据库实现 的现实世界中,将数据解规范化却是通用的惯例,也就是要专门违反规范化规则,尤其 是违反第二范式和第三范式。当

28、过于规范化的结构使实现方式复杂化时,解规范化主要 用于提高性能或减少复杂性。尽管如此,规范化的目标仍然是确保数据的完整性,在解 规范化时应该注意。实体-关系模型在1.2节中我们学习到,数据库的数据模型有概念模型,其典型代表就是著名的“实 体-关系模型”(E-R模型),是用户和数据库设计人员之间进行交流的工具,在设计数据库系统之前,我们需要使用E-R图将现实世界中的实体和实体之间的联系转换为概念模 型。E-R模型的基本元素是:实体、属性和联系。下面我们就分别介绍这些知识。复一 1.4.1实体实体(entity)是一个数据对象,指可以区别客观存在的事物,如人、部门、表格、 项目等。同一类实体的所有

29、实例就构成该对象的实体集(entity classes)。也就是说,实 体集是实体的集合,由该集合中实体的结构形式表示,而实例则是实体集中的某一个特 例,例如,销售订单6380号是销售实体集的一个实例,通过其属性值表示。图1-7Sales实体及其两个实例在E-R模型中,实体用方框表 示,方框内注明实体的命名。实体 名常用以大写字母开头的有具体 意义的英文名词表示,联系名和属 性名也采用这种方式。通常实体集中有多个实体实 例。例如,数据库中存储的每笔订 单都是销售实体集的实例图1-7所 示为一个实体集和它的两个实例。1.4.2属性一一一一一一一一一一一一属性用来描述实体的特征。在图书管理系统数据

30、库中属性的例子包括:图书名称、出 版社、出版日期、价格和图书作者等E-R模型中假定实体集的所有实例具有相同的属性。同时,依据系统的需求,每个属性都有它的数据类型及特性。特性包括指定该属性在 某些情况下是否必需、属性是否有默认值、属性的取值范围、是否为主键或候选键等。如图1-8所示描述了实体、实例和属性的关系,其中使用黑体表示属性为主键,斜 体表示属性为外键。AuthorsAu_idAu_lnameAufnameAdressCityStateZipEntity172-32-1176WhiteJohnson10932 Bigge Rd.Menlo ParkCA94025TitilesTitle_idTitleTypePub_idPriceEntityBul032The Busy Executives Database GuideBusiness138920TitileauthorsAuidTitlejdAuordRoyaltyperEntity172-32-1176PS33331100

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号