试述数据库系统中数据抽象的三级模式(什么是模式,外模式,内模式)??

试述数据库系统中数据抽象的三级模式(什么是模式,外模式,内模式)??,第1张

三级模式结构:外模式、概念模式和内模式

一、概念模式(schema)

定义:也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。

理解:

一个数据库只有一个概念模式;

是数据库数据在逻辑级上的视图;

数据库模式以某一种数据模型为基础;

定义模式时不仅要定义数据的逻辑结构(如数据记录由哪些数据项构成,数据项的名字、类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

二、外模式(external

schema)

定义:也称子模式(subschema)或用户模式,是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

理解:

一个数据库可以有多个外模式;

外模式就是用户视图;

外模式是保证数据安全性的一个有力措施。

三、内模式(internal

schema)

定义:也称存储模式(storage

schema),它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式(例如,记录的存储方式是顺序存储、按照b树结构存储还是按hash方法存储;索引按照什么方式组织;数据是否压缩存储,是否加密;数据的存储记录结构有何规定)。

理解:

一个数据库只有一个内模式;

一个表可能由多个文件组成,如:数据文件、索引文件。

它是数据库管理系统(dbms)对数据库中数据进行有效组织和管理的方法

其目的有:

为了减少数据冗余,实现数据共享;

为了提高存取效率,改善性能。

The general technique of isolating the parts of a program that deal with how data are represented from the parts that deal with how data are manipulated is a powerful design methodology called data abstraction.

分离数据的形式和处理过程。

An abstraction barrier violation occurs whenever a part of the program that can use a higher level function instead uses a function in a lower level.

当函数运行时,本应调用高级别子函数却使用低级别子函数时,即遇到抽象隔离。

首先,代码规划必须规范,即整个系统使用同一个数据对象实例,并且使用同一个较好的数据库抽象层。如果有一天用户要求将Oracle切换到MySQL,则只需要改变系统的配置文件即可。

在当今工业领域中,每个数据库开发商如微软、Oracle、MySQL,都有自己的一套SQL标准,它们声称是按照ANSI SQL92标准而增加自己的特性,以达到垄断或占领市场的目的。

优秀的数据库抽象层,会根据我们使用的数据库自动调整一些SQL性能。当没有使用数据库本身特定的特性时,就不必更改太多的数据库连接和数据库SQL查询。

使用数据库抽象层的其他好处是:其性质、概念简化了复杂的任务。因此,我们不必学习某个数据库系统的全新特性,而只用一个标准的抽象层的代码特性即可。

虽然这是一种理想化,但随着技术的发展,相信数据库抽象层会为我们做更多的事。

使用PHP进行不同的数据库系统开发,这些系统很不相同,而许多数据库抽象层在PHP的层次有所不同,但彼此使用方法相当,它的发展无疑会提高开发效率。

请看图17-1,观察有数据抽象层和没有数据抽象层的区别。

数据库抽象层的主要性能指标是速度,由于数据库抽象层是额外的代码层,因为面向不同的架构与体系,因此有的效率较高,有的则相对比较慢些。

如Metabase是PHP中较慢的一个数据抽象层,它使用C语言编写,因为它的设计与可移植性最高,而PDO和ADODB是当今世界最快的数据库抽象类。

图17-1

如果您非常关注系统的效率和性能,则可以按自己的基准,设置模拟环境,编写代码,测试每个数据库抽象层(类)的性能。

用数据库抽象层,意味着当从一个数据库系统向另一个数据库系统迁移时,几乎不用更改太多的程序代码,如将MS SQL Server迁移到MySQL。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10013001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存