首页 百科知识 数据库表设计之存储引擎

数据库表设计之存储引擎

时间:2022-06-09 百科知识 版权反馈
【摘要】:日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。数据仓库是决策支持系统和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。数据库架构的控制的中心就是其数据库管理系统。

6.3 数据库设计

6.3.1 常规文件和数据库

数据是指所有能输入到计算机并被计算机程序处理的符号的介质的总称,是用于输入电子计算机进行处理,具有一定意义的数字、字母、符号和模拟量等的通称。通常情况下数据存储在文件和数据库中。文件是具有相似记录的集合。而数据库则是相关文件的集合。文件和数据库之间的差别在于:在文件环境中,数据存储围绕使用文件的应用来构建;在数据库环境中应用围绕集成数据库进行构建。

常规文件:很多的组织,现有的信息系统和应用都是围绕常规文件进行构建的。常规文件的一个优点是常规文件的设计和实现相对容易,主要是它们通常用于单个的应用或信息系统。在理解了系统的用户输出需求后,就可以很容易地确定出为了产生那些输出而要收集和存储的数据,并定义最优化的需求的文件结构。常规文件的另一个优点就是处理速度快,它可以快速地对应用访问进行响应、进行优化,但一般不能同时对不同应用的共享使用而进行优化。虽然常规文件在这个方面很明显优于数据库,但是数据库的不足由于强大的计算机以及有效的数据库技术正在快速消失。常规文件的缺点也是很明显的。如在常规文件中有很多的数据项是重复的,这是文件的系统最主要缺点。其次,另一个明显的缺点是其不可扩展性和缺少灵活性,文件一般是支持单个应用的当前程序。在面对未来的变化需求,则需要对文件进行重新设计,从而造成大量的人力和资源的浪费。

数据库:数据库主要优点就是在多个应用和系统之间共享相同数据的能力。数据库技术另一个优点就是具有数据存储格式灵活,主要是因为数据库独立于使用它们的信息系统和应用程序。数据库技术还有很好的扩展性,也就是说,数据库可以随它的系统进行增长或扩展,来满足组织需求的变化。数据库的技术比文件技术显然要复杂得多。虽然这种技术比起文件技术来要慢,但这种劣势正在由于数据库技术的发展正在消失。数据库还具有一些优点如数据冗余最小化、改善数据一致性、提高应用开发的效率、改善数据质量等。数据库在带来便利的同时,也要为此付出代价——数据库技术需要大量投资。开发数据库的费用是很高的。数据库技术的别一个潜在的问题是由于使用共享数据而增加的脆弱性。

6.3.2 数据库的基本概念

1.字段

字段是数据属性中基本项,字段是一个数据属性的物理实现。同时字段也是数据库中的有意义的数据的最小单元。字段一般可以分为四类:主键、次键、外键和技术性字段。

2.主键

是被挑选出来,作表的行的唯一标识的候选关键字。一个表只有一个主关键字。主关键字又可以称为主键。 主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键。又称主码。

3.次键

是数据库的替代标识符。次键的值可以标识一个记录或所有记录的一个子集。也就是我们通常所说的索引字段,为了方便用户的查询的排序,经常为字段创建索引。通常在数据库中一个文件可能只有一个主键,但可以有多个次键。

4.外键

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字。

5.描述性字段

是其他存储业务数据的字段。

6.记录

记录是按照预定义格式安排的字段集合。

7.文件和表

文件是给定记录结构的具体值的集合。表在数据库中与文件是等价的。

6.3.3 数据库

严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。接下来我们将为大家来讲述数据库技术的构建。

1.数据架构

信息系统构建大部分是围绕着数据来进行的,程序员就是借助于程序使用户能够更好地访问数据。信息系统的日常运行和业务事务处理,由于运行的数据库可以代替以前支持应用的常规文件。当这些数据库的访问用于计算机程序时,它们就使用DBMS来处理事务维护数据并生成日志。

数据仓库是决策支持系统和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。数据仓库的特征在于面向主题、集成性、稳定性和时变性。数据仓库存储的数据是从运行数据库和常规文件中提取出来的。

典型的现代数据架构如图6-6所示。

img74

图6-6 典型的现代数据架构

2.数据库架构

我们已经讲述了几种关于数据库的技术,它们使得前面介绍的数据架构成为可能。那什么是库架构呢?数据库架构就是指数据库技术,包括库引擎、库工具、用于分析和设计的数据库工具和数据库应用开发工具。数据库架构的控制的中心就是其数据库管理系统。是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立、修改和询问数据库。它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库。

6.3.4 数据库设计

数据库的设计需要有数据库人员和系统分析人员共同参与,因此他们能够处理技术细节和交叉的应用问题。计算机辅助系统工程可以很好地帮助系统分析人员和设计人员设计出质量很高的数据库。因此掌握一个很好的CASE工具对于一个分析人员来说是很重要的。不但可以大大提高工作效率,还可以避免一些不必要的问题产生。

1.数据库设计的目标

数据库应该能够提供对数据的效存储、修改和访问等需求。数据库应该可靠——存储的数据应该具有高度的完整性。还应该有一定的灵活性可适应未预料到的新需求。同时能够支持信息系统的业务需求。

2.数据库模式

为了有效地组织、管理数据,提高数据库的逻辑独立性和物理独立性,人们为数据库设计了一个严谨的体系结构,数据库领域公认的标准结构是三级模式结构,它包括外模式、模式和内模式。

用户级对应外模式,概念级对应模式,物理级对应内模式,使不同级别的用户对数据库形成不同的视图。所谓视图,就是指观察、认识和理解数据的范围、角度和方法,是数据库在用户“角度”的反映,很显然,不同层次用户所“看到”的数据库是不相同的。

(1)模式

模式又称概念模式或逻辑模式,对应于概念级。它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。它是由数据库管理系统提供的数据模式描述语言(Data Description Language,DDL)来描述、定义的,体现、反映了数据库系统的整体观。

(2)外模式

外模式又称子模式,对应于用户级。它是某个或某几个用户所看到的数据库的数据视图,是与某一应用有关的数据的逻辑表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。用户可以通过外模式描述语言来描述、定义对应于用户的数据记录(外模式),也可以利用数据操纵语言(Data Manipulation Language,DML)对这些数据记录进行。外模式反映了数据库的用户观。

(3)内模式

内模式又称存储模式,对应于物理级,它是数据库中全体数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上的存储方式和物理结构,对应着实际存储在外存储介质上的数据库。内模式由内模式描述语言来描述、定义,它是数据库的存储观。

在一个数据库系统中,只有唯一的数据库,因而作为定义、描述数据库存储结构的内模式和定义、描述数据库逻辑结构的模式,也是唯一的,但建立在数据库系统之上的应用则是非常广泛、多样的,所以对应的外模式不是唯一的,也不可能是唯一的。

三级模式间的关系:数据库的三级模式是数据库在三个级别上的抽象,使用户能够逻辑地、抽象地处理数据而不必关心数据在计算机中的物理表示和存储。实际上,对于一个数据库系统而言物理级数据库是客观存在的,它是进行数据库操作的基础,概念级数据库中不过是物理数据库的一种逻辑的、抽象的描述,用户级数据库则是用户与数据库的接口,它是概念级数据库的一个子集。

用户应用程序根据外模式进行数据操作,通过外模式—模式映射,定义和建立某个外模式与模式间的对应关系,将外模式与模式联系起来,当模式发生改变时,只要改变其映射,就可以使外模式保持不变,对应的应用程序也可保持不变;另一方面,通过模式—内模式映射,定义建立数据的逻辑结构(模式)与存储结构(内模式)间的对应关系,当数据的存储结构发生变化时,只需改变模式—内模式映射,就能保持模式不变,因此应用程序也可以保持不变。

3.数据完整性

数据完整性就是指为数据库设定一些规则,来帮助管理数据库内的数据,从而使数据更有效。一般数据库中包括以下三类完整性:

(1)键完整性。每个表如果按科学的方法设计都应该有一个主键,主键可以使表中没有相同的主键值。主键的值不允许有Null值存在。

(2)域完整性。在为表设计字段都有一个其有效的范围加以约束的。

(3)参照完整性。参照完整性属于表间规则。对于永久关系的相关表,在更新、插入或删除记录时,如果只改其一不改其二,就会影响数据的完整性:例如修改父表中关键字值后,子表关键字值未做相应改变;删除父表的某记录后,子表的相应记录未删除,致使这些记录称为孤立记录;对于子表插入的记录,父表中没有相应关键字值的记录。对于这些设计表之间数据的完整性,统称为参照完整性。

4.规划数据库容量

在数据库逻辑设计完成之后要对数据库存储进行估计。因为数据库是存储在磁盘中的,我们要保证有足够的存储空间来存储数据。下面介绍一个简单的算法,这个算法忽略了一些因素,如封装、编码和压缩。但它还是能大致的估算出数据库的空间。

(1)对于每个表,对字段求和,从而得到一条记录的大小。似每个存储的字符和数据占用一个存储字节。

(2)对每个表,在记录大小上乘上要被包含在表中的实体实例数量,且要考虑合理的时间段的增长。

(3)对每个表求和,从而就得到数据库的大小。

(4)在最后可以为数据库容量加上一个10%的空间缓冲。至此就可以大致估算到数据库的容量了。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈