1.数据库系统概述
数据库是被存储起来的数据及数据间逻辑关系的集合体,它通过数据库管理系统(DBMS)对其进行建立、存取和维护,并为用户提供有效服务。在只有少量数据或数据独自使用的领域,文件系统有很大的实用性和方便性。但在大批数据集中管理、大规模共享的场合,数据库具有明显的优势。
数据库是比文件系统更有效率的数据组织技术。数据库中的数据可以同时为多种应用程序提供共享数据服务,由专门的数据库管理系统(DBMS)对所有数据进行合理的组织与集中统一管理,使之具有内在的统一性和集成性,增强了数据的安全性,并使数据冗余最小。它彻底改变了各个应用程序使用各自独立的数据文件的局面,如图2-14所示。数据库成为支持多个用户共享、支持多种应用程序的公共数据平台。
图2-14 数据库管理系统
数据库管理系统(DBMS)是在计算机操作系统支持下,对数据库的装入、检索、更新、重新组织等各种操作进行指挥、调度和控制的专用软件,是用户与数据库的接口工具。数据库管理系统主要包括数据描述语言、数据操作程序和实用管理程序3部分。用户借助它可以开发和建立数据库;可以进行数据查询,从数据库文件中取出符合条件的数据;可以进行各种数据库的维护工作,如数据的更新、删除、修改等操作;可以对数据库进行开发,建立各种应用系统,完成各种复杂的数据管理工作。
(1)用数据库方法管理数据的优点
数据库技术已经成为企业组织管理大规模数据的“看家本领”。美国学者热夫·斯泰尔指出,在采用数据库方法之前,需要考虑成本、可控性、复杂性等多方面的因素。他比较全面地概括了数据库方法的优点,如下所示:
● 改善公司数据的战略性应用。数据库管理系统设计了最接近用户的编程语言,使编程工作大为简化;设计了丰富的数据统计功能,使操作更加简单。在数据库管理系统的支持下,计算机能够从繁杂的数据中以极快的速度向用户提供所需的信息,可随时以决策者满意的形式提供准确、完备的数据,为用户的经营决策、业务处理、资料分析等工作提供了极大的方便。
● 减少数据冗余。数据冗余是指数据被重复存储。在文件管理方式下,数据文件是通过各自的应用程序而建立的,不同的用户即使有许多数据是相同的,也只能各自存储自己所需要的数据,因此造成存储的数据大量重复。既浪费了大量的存储空间,也使数据的修改变得十分困难。
● 提高数据的完整性。数据库中没有包含相同数据字段的表文件。
● 容易修改和更新数据。复杂的协调任务由数据库管理系统(DBMS)完成。
● 数据独立。数据独立是指数据的存取独立于使用它的程序。在数据库方法下,各应用程序一般不再与具体物理存储器上的某一数据文件相对应,它们各自对应于一个逻辑数据文件。数据库中的数据在进行了增、删、修改等处理后,一般无需改动应用程序,从而提高了整个数据库应用系统的工作效率。
● 程序的独立性。应用程序不受数据位置或类型的影响,引入新数据时不必担心数据文件的兼容问题或编写新程序。
● 更妥善地存取数据和信息,DBMS有十分方便的检索和存取数据的功能。
● 数据存取和应用程序开发的标准化,都由DBMS统一管理。
● 对数据更为全面的保护,安全性更好,在数据库中,对用户是否属于非法或越权使用数据设有严格的检查措施,规定了使用数据的规程,从而保证了数据的可靠性、完整性和正确性。
● 数据资源共享。数据库中的数据允许不同的用户使用,也允许多个用户同时存取数据而互不影响。目前在许多计算机网络中建立的数据库系统,允许多个用户按照各自的权限使用同一数据库中的数据,实现了数据资源的多用户共享,提高了数据的利用率。
(2)数据库的主要类型
当今的企业有丰富多样的数据资源,数据管理的用途也不完全一样,实践当中数据库的种类也就越来越多。这里主要从数据库的应用形式和数据内容上对数据库进行简单的分类。
1)不同应用形式的数据库。
从用户对数据的使用要求和来源上进行区分,可以将数据库概括成6种形式,如图2-15所示。这6种数据库分别是:操作数据库、管理数据库、数据仓库、分布式数据库、用户数据库和外部数据库。
图2-15 不同应用形式的数据库
● 操作数据库:主要保存支持企业组织业务运作的详细数据,其数据内容是在企业操作事务运行过程中产生的,也称为业务库或生产库。比较典型的有客户资料库、人事档案库、库存资料库等。
● 管理数据库:含有组织内部关键性的管理数据,它从操作库及外部库中提取指定的信息进行存储,这些信息与管理决策有关,经过处理后提供给相关的管理者。
● 数据仓库:从各个操作库和管理库中提取出特定的现实数据与历史数据来集中存储,以便于决策分析之用。这些数据经过专门的集成和标准化处理过程,并定期更新,具有统一的用户界面,尤其方便管理人员和企业内部的专家调用。
● 分布式数据库:数据库中数据分别存放在多个地点,如总部、分部、车间和基层办公室等。每个库中既有业务共享所需的数据,又有本地的局部数据。比如,原材料的库存数量、价格、规格型号等数据为公共数据,可为其他车间调用;材料的货位、进货批量、检验结果、进货日期等数据只能由本部门使用。分布式数据库的更新与集成是必须要考虑的问题。
● 用户数据库:由用户在各自的工作站上自行设计的数据库文件组成。
● 外部数据库:取自网络的联机数据库和其他外部数据库,一般是由公共信息服务组织所建立的数据库,如统计数据库、报刊、财经信息、文献汇编库等。
2)不同存储内容的数据库。
传统的数据库主要存储字符、数字数据,严格依据数据的层次性规律来组织信息,很像手工的账簿、表格或卡片簿。随着电子信息处理技术的发展,数据库存储和管理的数据形式也逐渐拓展,文本和多媒体信息逐渐成为数据库存储的内容。
● 传统型数据库:主要存储字符、数字、日期、逻辑值等普通类型的数据,数据字段的长度也是有限的。一般企业的库存材料库、员工管理库、商品库等都是传统数据库。
● 文本数据库:存储了大段的文本及文本摘要内容,比如出版公司的经济文摘和报刊资料库、学校的个人简历库、杂志社的文稿库等。目前人们可以在市场上找到大量的以光盘为存储介质的文本数据库,它们可以通过输入关键字,如书籍的作者、出版日期、书刊名称等数据进行检索。
● 多媒体数据库:可以存储图、文、声、像等多媒体信息。如医院档案库不仅包括病人资料等常规信息,还包括分析结果、医嘱等文本信息,甚至X光片图像;信用卡公司的数据库可以保存条形码图像,甚至保留用户的指纹图像,可以根据这些图像对客户信息进行分类管理。
(3)数据库的数据模型
数据模型是数据库系统中用于提供信息表示和操作手段的形式构架。目前,数据库管理系统通常采用的数据模型有3种基本类型,即层次模型、网状模型及关系模型。关系模型是使用最为广泛的数据库逻辑模型。人们耳熟能详的Microsoft Access、FoxPro、Paradox、Fox-BASE等是个人计算机上经常使用的关系数据库软件,DB2、Oracle、Sybase、Informix等是大型机上常用的关系数据库软件。
关系式数据模型可以理解为一张二维表,其结构如表2-4所示,表格中的每一行代表一个实体,称为记录;每一列代表实体的一个属性,称之为字段。实体的多方面特性可用多个数据项(字段值)所组成。这样的二维表格也称作一个“关系”。关系具有如下性质:
● 关系中的列是同性质的,称为属性或字段。用字段名来区分不同的属性。
● 关系中不能出现相同的记录,记录的顺序无限制。
● 每个关系都有一个关键字,它能唯一标识关系中的一个记录。
● 关系中列的顺序不重要。
表2-4 关系数据库中的关系表
关系数据库中的表都从“实体—联系”模型转化而来,并且经过某种“规范化”过程的严格检验,以满足数据独立性好、数据冗余最小、数据表间彼此关联等基本要求。关系数据库响应用户查询的方法有以下三种,这三种操作已能够满足绝大部分用户对数据的使用要求。
● 选择:查找和选择符合条件的记录。
● 投影:查找和选择某些列(属性)构成子表。
● 连接:跨表查找,提供多于一张表的信息。
关系数据库是发展较晚的一种数据库,由于关系式数据结构具有坚实的数学理论基础,简单、明了、直观、容易理解和掌握,在现实生活中应用最多,因此关系数据库得到了非常广泛的应用。
(4)分布式数据库
分布式处理技术是对不同的数据处理场所进行集成后的网络系统。分布式数据库也涉及同样的原理,是由多个较小的数据库用通信设备相连接后形成的数据库系统。如图2-16所示,某服装公司的计算机可能放置在公司总部、研究与开发中心、仓库和零售店中,通过通信网络相互连接。用户尽管分散在各地,但他们不必了解数据实际存放在哪里,只要提出数据使用要求,DBMS就会确定数据的物理位置并获得检索结果。
分布式数据库给企业的数据管理带来极大的方便,但是分布式数据库允许用户在不同的地点直接存取,在数据的维护、管理和及时传输等方面都增大了难度,而且必须设法解决数据在不同的DBMS平台间的交换问题。
2.数据库设计
数据库的建立就是将企业的数据加以合理组织,用数据库文件的形式存入计算机存储器,以备用户快速提取和方便使用的过程。在构建数据库时必须认真考虑下面的问题。
● 数据的内容:应当收集哪些数据,准备支付多少成本来收集这些数据?
图2-16 分布式数据库的应用
● 数据的存取:何种数据、在何时提供给何种用户?(www.daowen.com)
● 数据的逻辑结构:应当如何组织数据才能对特定的用户有意义?
● 数据的物理组织:数据应当存放在什么地方?
进行数据库设计时,要将反映客观事物状态的数据经过一定的组织成为计算机机内的数据,需经历4个不同的状态,即现实世界、信息世界、计算机世界、数据世界,如图2-17所示。
图2-17 数据的转换关系
在不同的世界中使用的概念与术语是不同的,但它们在转换过程中都有一一对应关系,如表2-5所示。
表2-5 3个不同世界术语对照表
(1)数据库的设计流程
只有解决了应当收集哪些数据,以及谁将访问这些数据等基本问题之后,才能进入数据库的设计环节。数据库的设计分为逻辑设计和物理设计两个部分。逻辑设计用抽象模型表示所有数据的组织构架,明确各个数据项之间的关系,并进行必要的分组。逻辑模型的设计需要组织中各个业务/用户部门的参与。物理模型涉及数据在数据存储设备中的具体存放方式,通常由专业人员完成。数据库设计的基本过程可以用图2-18所示的流程表示。首先要对企业数据的实际状况进行分析,明确需要存储的数据;分析数据之间的相关关系,完成“实体—联系”模型(E-R模型)的数据建模;根据用户的使用要求,将其制作成规范化的逻辑模型;最后设计物理模型,并装入实际数据,成为可以使用的数据库。
图2-18 数据库的设计流程
(2)用“实体—联系”模型实现数据建模
数据的层次性是与数据的“实体—属性”关系相对应的,当考虑数据之间的关系,并用特定的图形符号来表示这种关系时,最常用的表示概念性数据模型的方法是实体—联系模型,又称为E-R模型(Entity-Relationship Approach)。E-R模型于1976年由P.Chen提出,它以自然和简单的方式描述了现实世界的数据关系,描述现实世界中的实体、属性和关系,而不涉及这些实体在系统中的实现方法,实现了对现实世界的数据抽象。“实体—联系”模型有以下三个要素。
● 实体:需要为之收集数据的事务或对象,在图中用矩形框表示。
● 属性:对实体特性的描述数据,在图中用与矩形框相连的椭圆表示。
● 联系:是实体间的相互关系,分别有一对一(1∶1)、一对多(1∶n)、多对多(m∶n)
等几种联系形式,用图中的菱形框表示。
【例2-1】根据某工厂的供应商、产品和材料之间的数据关系,设计一个简单的“实体—联系”模型,如图2-19所示。
图2-19 “实体—联系”模型示例
【例2-2】下面给出E-R图的另外一个例子,表示两个实体间的三种不同的联系方式(1∶1,1∶n,m∶n),如图2-20所示。由图2-20可以看到实体有属性,联系也有可能有属性,如图2-20c中的联系“学习”也有属性“成绩”,它反映了某个学生学习某课程的成绩。
图2-20 E-R图表示
a)厂长与工厂1∶1关系 b)仓库与产品1∶n关系 c)学生与课程m∶n关系
E-R图直观易懂,能比较准确地反映出现实世界的信息联系,并从概念上表示一个数据库的信息组织情况。数据库系统设计人员可根据E-R图并结合具体DBMS所提供的数据模型类型,再演变为DBMS所能支持的数据模型。如果某组织的结构比较复杂,可以先画出各个部门的E-R图,然后再综合起来,成为整个企业的E-R图。下面用一个例子进行说明。
【例2-3】假定某企业的信息系统,要求适应以下不同用户的应用要求:人事科处理职工档案,供应科处理采购业务,生产科处理产品组装业务,总务科处理仓储业务。根据要求,假定各个用户的局部E-R图如图2-21所示。
图2-21 企业各部门局部E-R图
a)人事科 b)供应科 c)生产科 d)总务科
现在需要对各部门E-R图加以综合,产生总体E-R图,如图2-22所示。
图2-22 综合后的E-R图
注意:
● 在综合中,同一实体只出现一次。
● 保存基本关系,除去导出关系。总体E-R图中并未反映“产品”与“材料”之间的联系,即供应科图中出现的“产品”与“材料”之间的联系在总体E-R图中被除去了。因为这种联系是多余的,它可以从“零部件”所“消耗”的“材料”,一种更为基本的联系中推导出来。
● 总体E-R图中“供应商”与“材料”之间被增加了新的联系“合同”,该联系并未出现在局部E-R图中,这里增加它是允许的,表示该信息系统能支持“材料”合同处理。
(3)建立数据库逻辑模型
数据建模完成之后,需要把“实体—联系”模型转换成数据库的逻辑模型,即确定各个数据记录彼此连接的方式。首先从E-R图导出关系数据模型。E-R图是建立数据模型的基础,从E-R图出发导出计算机系统上安装的DBMS所能接受的数据模型,这一步工作在数据库设计中称为逻辑设计。重点是掌握由E-R图转换为关系型数据模型,即把E-R图转换为一个个关系框架,使之相互联系构成一个整体结构化了的数据模型。具体转换方法如下:
1)E-R图中每个实体都相应地转换为一个关系。该关系应包括对应实体的全部属性,并应根据该关系表达的语义确定关键字,因为关系中的关键字属性是实现不同关系联系的主要手段。
2)对于E-R图中的联系,要根据联系方式的不同,采取不同的手段以使它联系的实体所对应的关系彼此实现某种联系。具体方法如下。
● 如果两实体间是1:n联系,就将“1”方的关键字纳入“n”方实体对应关系中作为外部关键字,同时把联系的属性也一并纳入“n”方的关系中。如图2-20b所示,E-R图对应的关系数据模型为
仓库(仓库号,地点,面积)
产品(货号,品名,价格,仓库号,数量)
● 如果两实体间是m:n联系,则需对联系单独建立一个关系,用来联系双方实体,该关系的属性中至少要包括被它所联系的双方实体的关键字,如果联系属性有属性,也要归入这个关系中。图2-20c表示“学生”与“课程”两实体间是m:n联系,根据上述转变原则,对应的关系数据模型为
学生(学号,姓名,性别,助学金)
课程(课程号,课程名,学时数)
学习(学号,课程号,成绩)
● 如果两实体间是1:1联系,如图2-21a表示“工厂”与“厂长”两实体间联系,联系本身并无属性,转换时只要在“工厂”的关系中增加“厂长”的关键字作为属性项,就能实现彼此间1:1联系。如
厂长(厂长号,厂号,姓名,年龄)
工厂(厂号,厂名,地点)
或:
厂长(厂长号,姓名,年龄)
工厂(厂号,厂长号,厂名,地点)
一般来说,只要两张表间有一个共同的字段,便可使两张表的数据建立起联系,如图2-23所示。图2-23中的项目名称、负责项目的部门、部门负责人的名字与聘用日期等数据分别存在3个表中:项目表、部门表和经理表。这种数据的存储与组织方式满足了数据逻辑模型规范化的要求,数据的独立性好。用户从项目表中可以得到“客户关系管理”这个项目名称,如果想要知道负责该项目的部门、部门负责人的名字与聘用日期等相关数据时,数据库会先对项目表数据进行筛选,找到匹配数据“客户关系管理”,然后通过表间的共同字段(如部门号“005”以及员工编号“0152”)分别实现与其他两张表的数据链接,提取匹配数据后,把最终查询结果提供给用户。这项查询的具体结果:“客户关系管理”项目由“大客户部”负责,部门“经理”是“郑雨露”,“1996年12月1日”受聘出任此职位。
如果某类用户经常查询这4个数据,数据库还可以把这几项数据专门组成一个固定的界面表,专门针对这类用户的查询。这个专门制作的表在数据库设计中被称为“视图”,它实际上是数据库的某个子集。视图的设计除了可以方便特定用户的使用之外,还可以满足其他的目的,比如数据安全性、保密性、查询效率、用户友好性要求等。视图的设计极大地提高了数据库的灵活性和适用性,也是数据库设计阶段的重要内容。基本数据表、视图与查询工具的配合,使得关系数据库成为极受用户欢迎的数据管理工具。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。