2021-12-10
90
上传者:管理员
摘要:论文介绍了第二代关系型数据库和第三代非关系型数据库的分类、特性和关联概念,概述了关系型数据库的性能优化方向和主要优化方法,阐述了关系型数据库在企业级软件中的应用架构,介绍了关系型数据库在云计算和大数据等新兴IT技术中的应用方式,最后简要介绍了NoSQL数据库的分类和应用。
加入收藏
1、引言
数据库是按照数据结构来组织、存储和管理数据的载体,在信息时代特指“一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合”。管理数据库的计算机软件称为数据库软件,一般简称为“数据库”。
2、数据库分类及概述
2.1 数据库的分类
IBM在1969年推出了第一代层次模型数据库管理系统IMS,20世纪70年代DBTG又推出了网状模型数据库,其优点是查询效率高,但表示数据具有局限性,不太适合多对多的节点关系。
20世纪70年代开始,IBM、微软和ORACLE等公司逐步推出了DB2、SQLServer和Oracle等关系型数据库软件,因为关系型数据库严格基于数学基础,优点是数据结构简单清晰、易学易用,但查询效率不如层次或网状型数据库,因此,关系型数据库的查询性能调优是数据库技术研究和应用的一个重点领域。日常办公常用的Excel软件也可视作一种关系型数据库软件。
从20世纪80年代末期开始,随着互联网特别是近年来移动互联网的发展,网络数据已不局限于传统二维表示的结构化数据,图片、语音、视频等没有预定义数据模型的非结构化数据成为网络数据的主流,第三代非关系型数据库逐渐兴起,采用“键-值”对、列簇或者图结构等方式来存储和查找数据,具有支持分布式、可扩展性强和开放性好等优点,很好地支持了人工智能、机器学习和大数据技术的各类应用。
相比于关系型数据库,非关系型数据库在操作原子性、一致性、隔离性和持久性的支持能力不足,很多场合还需要依赖关系型数据库。因此,虽然非关系型数据库已成为今天大数据、机器学习等行业应用的热点,但传统的关系型数据库仍具有不可撼动的行业地位。
2.2 关系型数据库的ACID特性
在关系型数据库操作中,一个任务执行单元称为事务,例如,一次数据插入或者一次数据更新,为保证数据库事务操作的正确可靠,关系型数据库必须具备4个特性:原子性、一致性、隔离性和持久性。
所谓原子性,是借用早期人类认为的原子所具有的不可分割性,在数据库中指一个事务中的所有操作,要么都成功,要么就全部不执行。如果部分成功部分失败,已经成功完成的操作要进行回滚操作,就好像没有执行过一样。
所谓一致性,是指事务操作前后,数据库的完整性不受破坏。一致性往往与数据库的隔离性联系起来,即多个并行处理的事务同时操作数据后,数据的完整性不受破坏,在多个并行事务中呈现的数据值是一致的。隔离性的主要功能就是防止多个事务并发执行而导致的数据不一致问题。
所谓持久性是指事务一旦被数据库执行,其对数据的修改就是永久性的,不因数据库或计算机故障而丢失。
2.3 结构化查询语言SQL
结构化查询语言(StructuredQueryLanguage)简称SQL,是专用于管理关系型数据库的编程语言,用于对数据库数据的插入、修改、删除和查找等功能,用户在操纵数据库时,仅需要编写SQL语句来指明具体操作,剩下的工作都可以由数据库自动完成。SQL语句大大提高了数据库管理的效率和易用性,目前所有的关系型数据库基本上都支持标准的SQL语句,仅有极少数功能需要使用非标准的SQL语句。
SQL语言从功能上可以划分为数据定义、数据操纵和数据控制。数据定义是指定义数据库的三级模式结构:外模式、概念模式和内模式。其规定了数据的物理结构、逻辑结构和数据视图,如数据库和用户表的建立等。数据操纵指针对用户数据表的增删改查等具体操作。数据控制则规定了数据的访问和使用权限。
2.4 数据库安全
数据是现代社会活动的核心,也是黑客重点攻击的方向,勒索病毒攻击加密数据库数据,往往给企事业单位带来重大损失,为数据库建立可靠的防护措施是必不可少的步骤。数据库防护的核心是数据安全,因此在数据库的访问控制和权限设置、用户操作行为和审计、数据维护等方面都应建立完备的制度和手段,如关闭不必要的网络端口、最小化用户操作权限、敏感数据加密存储等。
3、关系型数据库性能优化
3.1 表结构优化
数据库在建立时,就应该进行良好的设计,遵守数据库设计范式。关系型数据库有5种设计范式:第1~5范式,所有设计范式都是为了提高数据库的使用性能和提高其可扩展性。
第1范式要求数据表的列具有原子性,即单表每列的数据只对应程序的一个属性,不能是对应多个属性的集合;如果一定要对应集合,应该使用从数据表,并且从数据表的每一列也要保持原子性。第2范式要求必须在满足第1范式的基础上,表格中的每一条数据都可以被区分,不能有两条数据完全一致。实际上,要求数据库的每个数据表都应设置主键(PrimaryKey),主键的值在单表中具有唯一性。主键可以是1个,若1个主键不满足唯一性,则可以设置多主键,多主键的组合必须具有唯一性,但设置多主键会引起数据库增加开销,导致读写性能下降。第3范式要求必须满足第2范式,它要求在单表中的属性具有独立性,互相之间不具有依赖关系,如果具有依赖关系,则应该将所有具有依赖关系的数据列单独划分为一个数据表,并通过设置外键来表示两张数据表之间的关联性。
在查询数据时,可以通过左连接查询或者右连接查询来形成用户需要获得的完整数据。对于一些关联关系特别复杂的情况,满足第3范式可能导致性能下降,此时可以建立视图,预置复杂的连接查询,提高查询效率。第4范式在第3范式的基础上,要求消除数据表的多值依赖,即数据表中不能存在若干行多列数据完全一致的情况。第5范式在第4范式的基础上,进一步消除传递依赖,即多个数据列之间不能形成依赖关系链。但实际上,数据库设计满足第3范式即可,过度追求完美的第5范式,将导致数据表设计过于复杂、零散,不利于实际使用,在数据量过大时,反而会引起数据库查询性能下降。
3.2 并发性能优化
(1)单机并发能力优化主要目标是提高单数据库的并发能力。实际上,大型数据库一般都有单独的服务器,首先,确保所有计算机资源都用于数据库服务;其次,提高存储数据库文件的计算机硬盘I/O能力,如将机械硬盘改为固态硬盘;再次,提高网络带宽和QoS服务质量,降低网络传输时延和时延抖动;最后,优化数据库的连接池,合理设置连接池的大小、等待时间、保持时间和检测参数等。(2)部署优化主要指应用分布式部署来提高数据库的并发性能。一是可以对数据表进行横向分裂,将数据表数据按特定规则排序后,横向拆分到不同的数据库服务器上,即通过数据分库来提高并发服务能力。
二是针对并发读写冲突的问题,通过分布式服务器实现读写分离:先在后端构建一个主从同步数据库集群,将主数据库数据自动同步到从数据库,在前端服务器部署读写控制器。当要写数据时,由控制器向主数据库发起写请求,主数据库完成事务操作后,再将相同的操作同步到从服务器,实现主从数据同步;当要读数据时,前端控制器直接到从数据库读取数据。如果进一步对主数据库和从数据库进行分库,还能继续提高数据库集群的并发服务能力。读写分离的优点不仅在于提高了系统的读写并发能力,而且实现了数据的冗余备份,提高了数据的可靠性,如图1所示。
3.3 SQL语句优化
数据库的性能主要体现为操作响应时间,在使用SQL语句查询时,也需要根据查询目标进行优化:(1)避免“select*”这样的全局查询和使用“like”关键字的模糊查询,这种查询方式需要进行全表扫描,对于列数较多且数据量巨大的表来说将消耗大量系统资源,造成系统响应时间将显著延长。(2)缩小查询范围,通过where字句、between等范围关键字和分页查询等方式,缩小查询范围。使用子查询时,应将查询范围最小的查询语句写在最内层,这样可以快速缩小查询范围,降低后续子查询的难度。(3)连接查询时,使用数据量较小的表去连接查询数据量大的表,同时可以在连接的字段上建立索引,可进一步提高查询效率。
SQL语句是影响数据库性能的重要因素,数据库大部分数据访问都属于查询操作,不合理的查询操作甚至有可能阻塞数据库的其他查询服务,因此,SQL语句执行查询操作时必须要优化查询效能。
4、关系型数据库的应用
4.1 在传统企业级软件中的应用
数据库是企业级软件必不可少的核心组成部分,企业级软件的核心架构是依据数据库结构来设计和确定的,后台业务核心逻辑就是对数据的运用、分析和持久化。以ERP、CRP等软件为代表的企业级软件,以结构化数据管理为主,基本都采用关系型数据库作为持久化存储软件。业界主流的企业级关系型数据库有MySQL、MariaDB、PostgreSQL、SQLServer和Oracle等。近年来,随着自主软件的发展和信息安全要求,国产数据库管理软件也在兴起,如南大通用、武汉达梦、华为高斯等。
由于软件功能具有不确定性,随着企业业务发展和社会需求变迁,软件功能也在不断发生变化。但是数据库的表结构一旦确定并在实际运行中写入大量数据,是很难随着软件功能随意变化的,一般仅在必要的情况下才会更改已形成的表结构,此时需要有专门的表结构升级脚本,操作烦琐且风险巨大,一旦因断电或其他意外原因造成升级失败又不能回滚,将给软件客户造成极大损失,因此,在企业级软件体系中,往往设置持久化中间层来兼容软件功能变化对数据库的影响,如图2所示。
持久层通过实体类与数据库的数据表建立映射关系,例如,在Java中可以通过XML或者注解的方式,在Java实体类与数据库表之间建立一对一映射关系,由持久化层来维护与数据库的连接和访问操作请求,并向上层业务逻辑代码提供API(应用可编程接口)。对数据库表的增删改查操作,简化为通过持久化层提供的API来操作实体类,由持久层将相应的操作转换为SQL语句去操作数据库,而不是程序代码直接通过SQL语句去访问数据库。在这种应用模式下,数据库不直接与软件业务逻辑代码发生关系,持久化层向业务逻辑代码屏蔽了不同厂商数据库的不一致性,提高了程序的可移植性,向数据库屏蔽了业务逻辑字段频繁变化对数据库的冲击,有利于提高软件和数据库的稳定性。
4.2 在云计算和大数据体系中的应用
对于开源云计算管理平台OpenStack来说,MariaDB或者其他关系型数据库是部署云计算平台必不可少的基础环境,Nova、Glance和Keystone等组件都依赖数据库存放系统管理必要的结构化数据,一旦数据库遭到攻击,极有可能导致整个云计算系统崩溃。
基于开源大数据处理平台Hadoop的数据仓库工具Hive,则可以视作大数据版本的关系型数据库。Hive将结构化数据文件映射为数据库表,通过HiveSQL可以将SQL查询语句转换为MapReduce程序来执行大数据查找和分析,它借鉴了关系型数据库的数据结构并结合Hadoop的MapReduce工具,实现了对海量关系型数据的离线查询。
5、NoSQL数据库的分类和应用
互联网和移动互联网的发展催生了无数应用模式,微博、网购、外卖、抖音和移动社交网络等应用产生了各种不同类型的非结构化数据以及对应的数据应用,非关系型数据库发展了多个分支来适应这种需求。(1)“键值对”型数据库,这类数据库基于哈希算法构建哈希表,通过将一个特定的“键”和“数据”进行绑定来实现数据管理,优点是简单易部署,单数据查询效率高,但是批量数据查询效率低下,常用于大型网站的分布式缓存,如Redis等。(2)列存储数据库,主要用于海量数据存储。传统关系型数据库是行存储数据库,特点是以“行”为单位来管理和使用数据。
大数据处理往往有选择的处理数据的部分维度,如微博词频统计、评论分析等,此时列存储更有利于数据快速读取。列存储更有利于数据读取,不利于数据插入、更新和删除等操作,同时列数据的重复性更有利于数据压缩。因此,列存储主要用于大数据领域,如HBase等。(3)文档数据库与“键值对”数据库类似,其以特定的格式来存储文档信息,如Json、XML等,其更高级的功能是允许键值嵌套,常用于网页数据、表单数据处理。(4)图型数据库适用于多对多类型的数据存储,如微博、微信等社交网络数据。图形数据库一般由结点集和结点关系集两部分组成,其查找算法需要特殊定制,但在近年兴起的知识图谱和较早应用的专家推荐系统中应用较为广泛。
6、结语
随着互联网技术的深入发展,网络资源形式愈加丰富,非关系型数据库已经成为新一代网络应用的主流,但仍然不能放弃传统的关系型数据库。当前网络行业依然存在海量的结构化数据存储需求,并且随着非结构化数据的增长,与之相对应的结构化数据也将保持同步增长,关系型数据库在未来仍将保持旺盛的生命力,与非关系型数据库同步发展。
参考文献:
[1]王珊,萨师煊.数据库系统概论(第5版)[M].北京:高等教育出版社,2014.
[2]姜明俊.分布式关系数据库事务管理器的设计与实现[D].南京:东南大学,2019.
[3]李小莲.对数据库范式的分析与应用[J].电脑知识与技术,2018,14(8):7-8,16.
[4]杨键.分布式关系型数据库查询方法优化与实现[D].成都:电子科技大学,2021.
文章来源:贺峰,杨青丰.计算机数据库技术在信息管理中的有效应用[J].中小企业管理与科技(下旬刊),2021,(12):173-175.
分享:
脑机接口(brain-computer interfaces,BCI)旨在为大脑和外部设备(计算机或其他电子设备)之间建立直接通信,而不依赖于任何肌肉或外周神经.BCI技术的应用有助于患有肌萎缩性侧索硬化、脑卒中、脑瘫、脊髓损伤等“闭锁综合征”的病患恢复日常交流和生活的能力.
2024-12-07随着我国公路建设的蓬勃发展,高速公路的隧道数量持续增加。当前,我国高速公路隧道主要采用人工巡检方式。尽管这种方式具有一定的便利性,如设备操作简单、巡检流程灵活以及问题处理及时等,但在实践中却面临诸多挑战。由于隧道内车流密集、空间有限且环境质量较差,使设备的日常维护和事故排查工作变得异常困难。
2024-10-14随着高速公路网络的日益庞大,其运营管理和维护保养工作也面临着前所未有的挑战,特别是在隧道等复杂路段,由于其特殊的环境和构造,安全问题尤为突出。因此,利用先进的技术手段,提高隧道的巡检效率和质量,已成为当前高速公路管理领域亟待解决的问题。传统的隧道巡检主要依赖人工完成。
2024-10-14随着建筑行业的快速发展,电梯的安装质量直接关系到乘客的生命安全。因此,对电梯安装质量的检测有重要意义。传统的电梯安装质量检测方法依赖于人工目视检查和简单的工具测量,容易受到人为因素和环境因素的影响,难以保证检测的准确性和可靠性。本研究旨在探讨计算机视觉技术在电梯安装质量检测中的应用,通过分析电梯安装质量检测的特点和需求。
2024-06-25在数字化时代,电力企业面临巨大挑战和机遇[1]。客户需求激增,市场竞争激烈,迫使电力企业寻求创新和改进[2]。为应对这一挑战,基于Hadoop大数据框架的电力智能客服辅助决策系统成为解决方案,助力电力企业提升客户服务质量和运营效率[3]。
2024-06-06目前,中药饮片的识别分类方法主要还停留在人工阶段,需要大量的专业人才,费时费力。随着科学技术的进步,利用计算机视觉技术进行中药饮片的识别是未来社会的发展趋势[1]。随着人工智能技术的不断发展,它给各行各业的发展带来了日新月异的变化[2]。通过神经网络提取中药饮片的特征参数,建立识别分类模型进行分析,使得中药饮片识别也变得不再那么困难。
2024-01-17ChatGPT全称是Chat Generative Pre-trained Transformer, 是OpenAI公司于2022年11月发布的一款聊天机器人程序。ChatGPT能根据用户提出的问题,经人工标注数据集训练的算法智能生成回答内容,而不仅仅只是加工现有内容。它能够像人类一样自然地进行对话,并且具备完成各种任务的能力,包括邮件撰写、视频脚本创作、文案编写、翻译以及代码生成等。
2024-01-16汉字的结构复杂、形态多样,每个汉字都具有结构的唯一性,汉字骨架作为汉字字形的重要拓扑描述具有重要意义。汉字骨架生成广泛应用于字形技术[1]、汉字识别[2]、汉字生成[3]等汉字信息处理领域。汉字骨架可由一段书写序列进行表示,与图像表示相比,序列格式的汉字骨架包含更多的动态信息,如时间顺序、轨迹等,这些信息对汉字的笔画连接、拓扑结构等有更为清晰的描述,同时书写序列可以很容易地转换为图像[4]。
2024-01-03图像融合是信息融合的一个分支。红外传感器抗干扰能力强,但其空间分辨率较低,缺少纹理细节。可见光图像具有更多细节信息和高分辨率,但在光照很弱或物体被遮挡的情况下效果不好[1]。为了利用可见光和红外图像的互补信息,红外和可见光图像融合非常必要,现已广泛应用于众多领域中[2]。
2024-01-03国际石油勘验领域由于受行业划分的缘故,各系统之间难以兼容,使井场内部形成了一个个的信息孤岛。为了实现不同施工主体之间数据信息的兼容共享与远程控制,甲方在招投标合同及其澄清中明确地规定了乙方必须能够提供WITSML(Well Site Information Transfer Standard Markup Language,井场信息传输标准标记语言)数据流。
2023-09-25人气:7529
人气:3150
人气:2216
人气:1784
人气:1631
我要评论
期刊名称:电子技术与软件工程
期刊人气:3232
主管单位:中国科学技术协会
主办单位:中国电子学会
出版地方:北京
专业分类:科技
国际刊号:2095-5650
国内刊号:10-1108/TP
创刊时间:2012年
发行周期:半月刊
期刊开本:16开
见刊时间:7-9个月
影响因子:1.079
影响因子:0.408
影响因子:0.260
影响因子:0.727
影响因子:0.489
您的论文已提交,我们会尽快联系您,请耐心等待!
你的密码已发送到您的邮箱,请查看!