数据库技术应用中,经常用到的基本概念有:数据库(DB)、数据库管理系统(DBMS)、数据库系统(DBS)、数据库技术及数据模型。
(一)数据库概述
1.数据库
数据库是以一定的方式存储在计算机内有组织的、统一管理的相关数据的集合。从完整意义上讲,数据库是表、视图和链接等的集合。数据库能为各种用户共享,冗余小,数据间联系紧密而且有较高的独立性。
2.数据库系统
数据库系统是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软硬件和数据资源组成的系统,即它是采用数据库技术的计算机系统。数据库系统的组成部分包括计算机系统、数据库、数据库管理系统和有关人员。
(1)计算机系统。计算机系统是指用于数据库管理的计算机硬软件系统。数据库需要大容量的主存用以存放和运行操作系统、数据库管理系统程序、应用程序以及数据库、目录、系统缓冲区等,辅存方面则需要大容量的直接存取设备。此外,系统应具有较高的网络功能。
(2)数据库。数据库既有存放实际数据的物理数据库,也有存放数据逻辑结构的描述数据库。
(3)数据库管理系统。数据库管理系统是一组对数据库进行管理的软件,通常包括数据定义语言及其编译程序、数据操纵语言及其编译程序以及数据管理例行程序。
(4)人员。开发、管理和使用数据库系统的人员主要有:数据库管理员(DBA)、系统分析员和数据库设计人员、应用程序员和最终用户。不同的人员涉及不同的数据抽象级别,具有不同的数据视图,其各自的职责分别是:
●数据库管理员。为了保证数据库的完整性、正确性和安全性,必须有人来对数据库进行有效的控制。行使这种控制权的人叫数据库管理员,他负责建立和维护模式,提供数据的保护措施和编写数据库文件。
●系统分析员和数据库设计人员。系统分析员负责应用系统的需求分析和规范说明,要和用户及DBA相结合,确定系统的硬件软件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。数据库设计人员必须参加用户需求调查和系统分析,然后进行数据库设计。在很多情况下,数据库设计人员就由数据库管理员担任。
●应用程序员。负责编制和维护应用程序,如库存控制系统、工资核算系统等。
●最终用户。最终用户通过应用程序的用户接口使用数据库。常用的接口方式有浏览器、菜单、表格操作、图形显示、报表书写等,给用户提供简明直观的数据表示。
3.数据库管理系统
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它充当应用程序和物理数据文件的接口,为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新及各种数据控制等。例如,当应用程序需要一个数据项,DBMS会在数据库中查找这一数据项,并把它提供给应用程序。
可以用图书管理来通俗地解释数据库管理系统。图书管理员在查找一本书时,首先要通过目录检索找到那本书的分类号和书号,然后在书库里找到那一类书的书架,并在那个书架上按书号的大小次序查找,这样很快就能找到借书人所需要的那本书。如果所有的书都不按规则,胡乱堆在各个书架上,那么借书的人就很难快速找到他们想要的书。数据库里的数据像图书馆里的图书一样,也要让人能够很方便地找到才行。人们将越来越多的资料存入计算机中,并通过一些编制好的计算机程序对这些资料进行管理,这些程序后来被称为“数据库管理系统”。它们可以管理输入到计算机中的大量数据,就像图书馆的管理员。
数据库管理系统由三个部分组成:数据定义语言、数据操纵语言和数据字典。
(1)数据定义语言是程序员用于确定数据库内容和结构的规范化语言。数据定义语言在数据被转换为应用程序所需要的格式前,定义了数据库中出现的每个数据元素。
(2)数据操纵语言。数据操纵语言结合一些传统的第三代或第四代程序语言去操纵数据库中的数据。它包含一些命令,允许终端用户和程序设计专家从数据库中获取数据来满足信息需求和开发应用系统,常用的如第四代程序设计语言:结构化查询语言(SQL)。
(3)数据字典(DD)。数据字典中存放着对数据库体系结构的描述,是一种自动或人工文件。它存储数据元素的定义和数据特征,如数据元素的用法、所有权、授权和安全性。对于应用程序的操作,DBMS都要通过查阅数据字典进行。数据字典中还存放数据库运行时的统计信息,如记录个数、访问次数等。
数据库管理系统的功能包括如下几个方面:
(1)数据定义:DBMS提供数据定义语言(Data Definition Language,DDL),供用户定义数据库的三级模式结构、两级映像以及完整性约束和保密限制等约束。DDL主要用于建立、修改数据库的库结构。DDL所描述的库结构仅仅给出了数据库的框架,数据库的框架信息被存放在数据字典中。
(2)数据操作:DBMS提供数据操作语言(Data Manipulation Language,DML),供用户实现对数据的插入、删除、更新、查询等操作。
(3)数据库的运行管理:数据库的运行管理功能是DBMS的运行控制、管理功能,包括多用户环境下的并发控制、安全性检查和存取限制控制、完整性检查和执行、运行日志的组织管理、事务的管理和自动恢复,即保证事务的原子性。这些功能保证了数据库系统的正常运行。
(4)数据组织、存储与管理:DBMS要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等,需确定以何种文件结构和存取方式在存储器上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率,选择合适的存取方法提高存取效率。
(5)数据库的保护:数据库中的数据是信息社会的战略资源,所以数据的保护至关重要。DBMS对数据库的保护通过4个方面来实现:数据库的恢复、并发控制、完整性控制和安全性控制。
●数据库的恢复:在数据库破坏或数据不正确时,系统有能力把数据库恢复到正常状态。
●数据库的并发控制:在多个用户同时对同一个数据进行操作时,系统应能加以控制,防止数据库被破坏,杜绝提供给用户不正确的数据。
●数据库的完整性控制:系统保证数据库中的数据及语义的正确性和有效性,防止任何会对数据造成错误的操作。例如,预订同一班飞机的乘客不能超过飞机的定员数;订购货物中,库存量不能小于发货量。使用数据库管理系统提供的存取方法,设计一些完整性规则,对数据值之间的联系进行校验,可以保证数据库中数据的正确性。
●数据库的安全性控制:系统能防止未经授权的用户存取数据库中的数据,以避免数据被泄露、更改或破坏。例如,在一个公民档案数据库中,只有被授权的访问者才可以读取数据,并进行修改,其他访问者的权限一般限于浏览特定的数据项,而不是全部数据。
(6)数据库的维护:这一部分包括数据库的数据载入、转换、转储、数据库的重组与重构以及性能监控等功能,这些功能分别由各个应用程序来完成。
(7)数据通信:DBMS具有与操作系统的联机处理、分时系统及远程作业输入的相关接口,负责处理数据的传输。对网络环境下的数据库系统,还应该包括DBMS与网络中其他软件系统的通信功能以及数据库之间的互操作功能。
(二)数据模型
数据模型是对客观事物及其联系的数据化描述。在数据库系统中,对现实世界中数据的抽象、描述以及处理等都是通过数据模型来实现的。数据模型是数据库系统设计中用于提供信息表示和操作手段的形式构架,是数据库系统实现的基础。目前,在实际数据库系统中支持的数据模型主要有三种:层次模型、网状模型和关系模型。
1.层次模型
层次模型是数据库系统中最早出现的数据模型,它用树形结构表示各类实体以及实体间的联系。层次模型数据库的典型代表是IBM公司的信息管理系统(Information Management System,IMS),这是一个曾经被广泛使用的数据库管理系统。如果用图来表示,层次模型是一棵倒立的树。这种树具有如下特征:
(1)树的最高位结点只有一个,称为根;(www.daowen.com)
(2)根以外的其他结点只有一个父结点与它相连,同时还可能有一个或多个子结点与它相连;
(3)没有子结点的结点称为叶,它处于树的末端。
在现实世界中,许多实体之间本身就存在着一种自然的层次关系,如家族关系、行政关系等,图2—11表示某学院行政机构的层次模型。
图2—11 某学院行政机构层次模型
用层次模型来表示“1∶1”和“1∶m”的关系是简单清晰的。但是,想要用层次模型来表示“m∶ n”关系就比较复杂,首先必须设法将这种关系分解为“1∶m”的关系,然后用层次模型来表示。
2.网状模型
网状模型是用网络来表示实体之间联系的模型。它与树型结构相比,具有如下特征:
(1)可以有一个以上的结点无父结点;
(2)至少有一个结点有多于一个的父结点。
显然,层次模型是网状模型的特殊形式,网状模型是层次模型的一般结构。图2—12表示网状模型的一般形式。
图2—12 网状模型的表示形式
网状模型与层次模型的不同之处主要表现在:在层次模型中,从子结点到父结点的联系是唯一的;而在网状模型中,从子结点到父结点的联系不是唯一的。相对于描述“1∶1”和“1∶m”关系的层次模型,网状模型则能够描述“m∶n”关系。网状模型的典型代表是CODASYL委员会下属的DBTG小组发表的DBTG报告。它于1968年提出,后经多次修改完善。在这个报告的指导下,很多计算机公司推出了基于网状模型的数据库管理系统。
3.关系模型
关系模型是目前使用最广泛的一种模型。一般来说,用二维表格数据的形式来表示实体与实体之间联系的模型称为关系模型。它与人们日常生活中所接触到的表格是类似的。例如,在物资销售中常用到如表2—2、表2—3、表2—4所示的登记表。从表2—4可以看出,它解决了“用户”和“物资”之间“m∶n”的关系。通过这个表,可以查出哪家单位购买了何种物资,何种物资被哪些单位购买。如果要想进一步了解某物资或某单位的详细资料,可以到表2—2和表2—3中去查找。
表2—2 物资登记表
表2—3 用户单位登记表
表2—4 购物登记表
值得注意的是,在层次模型和网状模型中,文件中存放的是实体数据,各个数据之间是通过指针来连接的,而在关系模型中,文件中存放有两类数据:一是实体本身的数据,二是实体间联系的数据。
关系模型把数据看成是二维表中的元素,一个表是一个关系,表中的每一行称为一个元组,它相当于一个记录值,表中的每一列是一个属性值集,属性的取值范围称为域,属性相当于数据项或字段。关系具有如下性质:
(1)关系中的每一列属性都是不能再分的;
(2)一个关系中的各列都被指定了相异的名字;
(3)各行相异,不允许重复;
(4)行、列的次序均无关;
(5)每个关系都有唯一一个标识各元组的主关键字,它可以是一个属性或属性的组合。
关系模型是三种数据模型中最重要的模型。20世纪80年代以来,计算机系统商推出的数据库管理系统几乎全部是支持关系模型的。
关系模型是建立在数学概念的基础上的应用关系代数和关系演算等数学理论处理数据库系统的方法。应用这类方法进行数据处理,最早是从1962年CODSYL发表的“信息代数”开始的,其后,1968年大卫·蔡尔德(David Child)在7090机上实现了“集合论的数据结构”(Set-theoretic Data Structure),但系统而严格地提出关系模型的是美国IBM公司的科德(E.F.Codd)。他从1970年起连续发表了多篇论文,奠定了关系数据库的理论基础。从用户的观点来看,在关系模型下,数据的逻辑结构是一张二维表。每一个关系为一张二维表,相当于一个文件。实体间的联系均通过关系进行描述。
关系模型中,用户对数据的检索和操作实际上是从原二维表中得到一个子集,该子集仍是一个二维表,因而易于理解,操作直接、方便,而且由于关系模型把存取路径向用户隐藏起来,用户只需指出“做什么”,而不必关心“怎么做”,从而大大提高了数据的独立性。
由于关系模型概念简单、清晰、易懂、易用,并有严密的数学基础以及在此基础上发展起来的关系数据理论,简化了程序开发及数据库建立的工作量,因而迅速获得了广泛的应用,并在数据库系统中占据了统治地位。
(三)数据库设计
数据库是信息系统的核心部分,数据库的设计在管理信息系统的开发中占有重要的地位。数据库设计的质量将影响信息系统的运行效率及用户对数据使用的满意度。创建数据库必须履行两种设计原则:概念设计和实体设计。概念设计是按企业观点来建立数据库中的抽象模型,实体设计则表示数据库是如何实际安装在直接存储设备中的。
数据库设计包含两方面的内容:一是数据模型与数据库结构的设计,二是应用程序的设计。在数据模型与数据库结构设计时,要汇总各用户的要求,尽量减少冗余,实现数据共享,设计出满足各用户的统一的数据模型。它可以分为需求分析、逻辑设计、物理设计、应用程序设计及测试、性能测试及企业确认、装配数据库等几个步骤。其中,需求分析部分是在对被设计对象进行调查研究的基础上提出的对系统的描述形式,它不依赖于任何形式的数据库管理系统。逻辑设计与物理设计部分是在需求分析的基础上,将系统描述形式转换成与选用的数据库管理系统相适应的数据模型。
数据库设计的步骤及过程将在第六章进行详细讲解。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。