数据库管理系统选择原则(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库管理系统选择原则(1)
胡经国
本文作者的话
本文是根据有关文献和资料编写的《漫话云计算》系列文稿之一。

以此作为云计算学习笔录,供云计算业外读者进一步学习和研究参考。

希望能够得到大家的指教和喜欢!
下面是正文
通常采用的数据库管理系统的选择原则如下:
一、构建数据库的难易程度
需要分析数据库管理系统有没有范式的要求,即:
是否必须按照数据库管理系统所规定的数据模型分析现实世界,建立相应的模型;
数据库管理语句是否符合国际标准,符合国际标准便于系统的维护、开发和移植;
有没有面向用户的易用的开发工具;
所支持的数据库容量,数据库的容量特性决定了数据库管理系统的使用范围。

链接:数据库范式
在设计关系型数据库时,要遵从不同的规范要求,以便设计出合理的关系型数据库。

这些不同的规范要求,被称为不同的范式;各种范式呈递次规范,越高的范式,数据库冗余越小。

目前,关系型数据库有以下六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称为完美范式)。

满足最低要求的范式是第一范式(1NF)。

在第一范式的基础上,进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。

一般说来,数据库只需要满足第三范式(3NF)就行了。

范式是为了消除重复数据、减少冗余数据,从而让数据库内的数据更好地组织,让磁盘空间得到更有效利用的一种标准化标准;满足高等级范式的先决条件是满足低等级范式,比如满足2NF一定要满足1NF。

应用数据库范式可以带来许多好处,但是最重要的好处归结为以下三点:①、减少数据冗余(这是最主要的好处,其他好处都是由此而附带的);②、消除异常(插入异常、更新异常和删除异常);③、让数据组织得更加和谐。

二、程序开发的难易程度
1、有无计算机辅助软件工程工具
Engineering,CASE)有无计算机辅助软件工程(Computer Aided Software
工具。

计算机辅助软件工程工具,可以帮助开发者根据软件工程的方法提供各开发阶段的维护和编码环境,便于复杂软件的开发和维护。

2、有无第四代语言开发平台
Language,简称4GL))开发平台。

第有无第四代语言(Fourth-Generation
四代语言具有非过程语言的设计方法,用户不需编写复杂的过程性代码,易学、易懂、易维护。

3、有无面向对象的设计平台
有无面向对象的设计平台。

面向对象的设计思想,十分接近人类的逻辑思维方式,便于开发和维护。

4、有无对多媒体数据类型的支持
有无对多媒体数据类型的支持。

多媒体数据(图形、图像、声音和视频等)需求是今后发展的趋势,支持多媒体数据类型的数据库管理系统必将减少应用程序的开发和维护工作。

链接:计算机辅助软件工程
,CASE)是帮计算机辅助软件工程(Computer Aided Software Engineering
助进行应用程序开发的软件,包括分析、设计和代码生成。

CASE工具为设计和文件编制传统结构编程技术提供了自动的方法。

CASE是一组工具和方法的集合,可以辅助软件开发生命周期各个阶段进行软件开发。

链接:第四代语言
Language,简称4GL)的出现是源于商业第四代语言(Fourth-Generation
需要。

4GL这个词最早是在20世纪80年代初期出现在软件厂商的广告和产品介绍中的。

因此,这些厂商的4GL产品不论从形式上看还是从功能上看,差别都很大。

但是,人们很快发现,这一类语言由于具有“面向问题”、“非过程化程度高”等特点,可以成数量级地提高软件生产率,缩短软件开发周期,因此赢得了很多用户。

1985年,美国召开了全国性的4GL研讨会,也正是在这前后,许多著名的计算机科学家对4GL展开了全面研究,从而使 4GL进入了计算机科学的研究范畴。

4GL原意是非过程化程序设计语言,是针对以处理过程为中心的第三代语
言提出的;希望通过某些标准处理过程的自动生成,使用户只说明要做什么,而把具体的执行步骤的安排交给软件自动处理。

链接:面向对象编程
面向对象编程(Object Oriented P rogramming,OOP,即面向对象程序设计)是一种计算机编程架构。

OOP的一条基本原则是:计算机程序是由单个能够起到子程序作用的单元或对象组合而成的。

OOP达到了软件工程的三个主要目标:重用性、灵活性和扩展性。

为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。

一项由 Deborah J. Armstrong 进行的长达40年之久的计算机著作调查,显示出了一系列面向对象程序设计的基本理论。

三、数据库管理系统的性能分析
包括性能评估(响应时间和数据单位时间吞吐量)、性能监控(内、外存使用情况,系统输入/输出速率,SQL语句的执行,数据库元组控制)和性能管理(参数设定与调整)。

链接:响应时间和吞吐量
数据库性能一般用两个方面的指标来衡量:响应时间和吞吐量。

响应越快,即响应时间越短,吞吐量越大,数据库性能也就越好。

在有些情况下,响应时间和吞吐量不能一起得到改善。

链接:数据库元组
元组(Tuple)是关系数据库中的一个基本概念。

关系数据库是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。

在二维表里,元组也称为记录。

四、对分布式应用的支持
包括数据透明与网络透明程度。

数据透明是指用户在应用中不需指出数据在网络中的什么节点上,数据库管理系统可以自动搜索网络,提取所需数据。

网络透明是指用户在应用中无需指出网络所采用的协议,数据库管理系统自动将数据包转换成相应的协议数据。

五、并行处理能力
支持多CPU模式的系统(SMP,Cluster,MPP),负载的分配形式,并行处理的颗粒度和范围。

链接:SMP
SMP(Symmetrical Multi-Processing
,对称多处理机),是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。

它是相对于非对称多处理技术而言的、应用十分广泛的并行技术。

在这种架构中,一台电脑不再由单个CPU组成,而同时由多个处理器运行操作系统的单一复本,并共享内存和一台计算机的其他资源。

虽然同时使用多个CPU,但是从管理的角度来看,它们的表现就像一台单机一样。

系统将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。

所有的处理器都可以平等地访问内存、I/O和外部终端。

在对称多处理系统中,系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上。

从而,提高了整个系统的数据处理能力。

链接:Cluster
一个计算机集群(Cluster),是指一组连接起来的电脑(服务器),它们共同工作,对外界来说就像一台电脑(服务器)一样。

集群一般由局域网连接,但也有例外。

集群一般用于单个电脑无法完成的高性能计算,拥有较高的性价比。

例如,Baidu和Google的后台服务器就是一个Cluster。

链接:MPP
大规模并行处理计算机(Massive Parallel Processor,MPP),由大量通用微处理器构成的多处理机系统,适合多指令流和多数据流处理。

在计算机体系结构中,MPP在20世纪90年代盛行。

如今,世界上排名靠前的大型机都是MPP。

MPP是由许多松耦合处理单元组成的,要注意的是这里所指的是处理单元而不是处理器。

每个处理单元内的CPU都有自己私有的资源,如总线、内存、硬盘等。

在每个单元内,都有操作系统和管理数据库的实例复本。

这种结构最大的特点在于不共享资源。

链接:并行性、并行处理颗粒度
所谓并行性包含同时性和并发性。

同时性是指两个或两个以上的事件在同一时刻发生;而并发性则是指两个或多个事件在同一时间段发生。

这就是说,在同一时刻或同一时间段内完成两个或两个以上性质相同或性质不同的功能,只要在时间上存在相互重叠,就存在并行性。

并行性又分为粗粒度并行和细粒度并行两类。

粗粒度并行是指在多个处理机上分别运行多个进程,由多台处理机合作完成一个程序,一般用算法实现。

细粒度并行是指在处理机的指令级和操作级的并行性。

相对而言,并行处理的颗粒度分为粗粒度和细粒度。

一般来说,细粒度并行度更高,但是通信也更多;而粗粒度并行则正好相反。

因为,在并行计算中,粒度定义为计算与通信之比。

细粒度的并行:计算强度低;没有足够的任务来隐藏长时间的异步通信;容易通过提供大量可管理的(即更小的)工作单元来实现负载均衡。

粗粒度的并行:计算强度高;完整的应用可以作为并行的粒度;难以有效
实现负载均衡。

链接:算法
算法(Algorithm)是指对解题方案的准确而完整的描述,是一系列解决问题的清晰指令;算法代表着用系统方法描述解决问题的策略机制。

也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。

如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。

不同的算法可能用不同的时间、空间或效率来完成同样的任务。

一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

算法可以理解为由基本运算及运算规定的运算顺序所构成的完整的解题步骤,或者看成是按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。

2016年12月22日编写于重庆
2019年3月28日修改于重庆。

相关文档
最新文档