鉴于企业对基于数据的决策依赖性日益增强,以及每个消费者每天产生的数据量呈指数增长,组织正在寻求收集、存储、保护和分析其数据资产的方法,以最大限度地提高洞察力和价值。事务数据库是这些努力中的关键。
本文将探讨什么是事务数据库,它们是如何工作的,以及为什么它们在今天很重要。
目录
简而言之,事务数据库存储的是两个或多个当事人之间互动产生的数据。这些互动,或交易,可以是电子商务销售、银行、保险索赔,甚至患者测试的医疗保健订单等。无论存储的数据类型如何,事务数据库都有以下属性。
高数据完整性:通过强制执行数据规则和约束,事务数据库可以防止不一致或无效数据的输入。请注意,数据库事务可以是任何业务交易(例如,电子商务销售)或单个文档(例如,保险索赔)。重要的是,交易必须是完整的,并符合与事务数据库相关的数据库管理系统(DBMS)中预定义的规则。
可扩展性:鉴于事务数据库的运营和信托性质,它们必须能够根据需要扩展,以适应所有组织数据。这些数据库可以垂直扩展(例如,单个机器上更多空间)或水平扩展(例如,更多机器以创建更多数据存储空间)。
实时处理:为了保持最新的、准确的数据记录,事务数据库的最佳实践表明,它们应实时更新以跟踪交易变化并避免数据冲突。
并发访问:当两个用户(或更多)上传数据库事务(例如,拥有多个店铺和多个收银台的零售商)时,事务数据库必须能够管理这种并发流量,同时防止数据冲突。当具有多个用户的协作软件查询和更新事务数据库时,这也同样重要。数据库操作必须能够跟上并保持数据库性能,而不会导致系统故障。
可审计性:审计跟踪(由数据库事务日志提供)是许多事务数据库的重要方面。无论是财务记录、特定医生的病历更新,还是供应链记录,许多组织都需创建和维护可审计文件,以符合治理和合规性要求。
事务数据库在存储和查询支撑应用程序所需的数据方面表现出色。然而,它们被称为“事务型”数据库,不是因为数据库的类型,而是因为它们所存储的数据类型(例如,由两个或更多方之间互动产生的数据)。
存在不同类型的数据库可以作为事务型数据库使用。它们包括
关系型数据库:关系型数据库将数据组织成行和列,这些行和列用于形成表。在一个关系型数据库中,可以通过外键在两个表之间创建关系。这些外键(例如,唯一标识符)维护表之间存在的预定义关系。这些数据库使用关系数据库管理系统(RDBMS)软件运行,并且在处理事务时通常使用SQL标准、MySQL或Python等编程语言。需要注意的是,由于其依赖于预定义的规则和格式,关系型数据库无法处理非结构化数据(例如,文本文件、照片、视频)。这些数据库主要用于支持查询结构化或半结构化类型数据的交易,例如业务交易,这些交易需要进行数据分析。
NoSQL数据库:NoSQL数据库用于存储非结构化数据,如文本文件、照片、视频等。这些数据库使用支持该数据库的任何编程语言进行交互。这使得数据库能够写入包括单个文档(例如,患者测试结果、保险照片)到文件系统(包括整个患者病史或保险案例文件)在内的数据库事务。
在事务型数据库中,存储了不同类型的交易。这些交易类型包括
单一交易:事务型数据库中的单一交易指的是一个工作单元(例如,可靠的单元)由一个或多个数据库操作组成。然而,无论包含多少数据库操作,交易都必须根据数据库管理系统定义的完整交易记录。这些交易的记录可以在事务日志中找到。例如,包括电子商务订单或从ATM提款在内的操作。
多交易:多交易,有时也称为分布式交易,包括多个相互依赖的交易,这些交易跨越了多种不同的数据库和系统。在这些数据库或系统中,可能发生一个或多个数据库操作。这些交易的记录也可能在事务日志中找到。这些交易的例子包括多文档交易,其中客户信息被更新,相关的发票和账单也必须更新,或者通过项目管理软件验证整个IT项目中的依赖关系。
事务型数据库依赖于原子性、一致性、隔离性和持久性(ACID)属性,以确保交易数据的可靠性和准确性。
原子性:原子性简单地说是指交易被视为一个单一单元(或工作单元)——要么整个交易被包含在内,要么它不会存储在数据库中,并且如果只有部分交易可用时会发生错误。这有助于确保在交易失败的情况下,保持交易数据的完整性。在事务型数据库中实现原子性的方法包括以下方式。
一致性:事务数据库通过执行预定义的规则和数据约束来维护数据一致性,这些规则不仅适用于摄入数据,也适用于数据修改。如果一个摄入或修改的事务违反了这些规则,该事务将不会被摄入或修改将不会被保存。此外,在两个用户(或更多)向数据库写入事务的情况下,每个用户在提交并锁定之前,都不能看到其他用户正在进行的更改。
隔离性:每个事务与其他事务隔离,以防止数据冲突并维护数据完整性的一致性状态。这也帮助数据库操作在管理多个条目和多级事务方面。例如,如果有两个用户试图修改相同的数据(或甚至事务),则DBMS锁管理器将在更改完成后挂起其他用户。
持久性:持久性确保存储的交易被保留——即使在系统故障的情况下。事务性DBMS使用多种方式来确保数据持久性,包括
考虑一个在线书店,该书店跟踪当前库存以及客户订单。这些信息可能存储在两个集合(或表)中——一个库存集合和一个订单集合。因此,此示例包含一个多文档ACID事务。
原子性:当下单时,库存集合必须更新以准确反映库存中剩余的副本数量。如果在更新库存或记录订单时发生错误,整个事务将被中止。这是因为在不记录订单的情况下更新库存,或者反之,将使事务数据处于不一致的状态。
隔离性:考虑两个用户同时下同一订单的情况。同时运行事务的最终结果应该与它们按顺序运行的结果相同,前提是所有库存都可用(例如,如果只有一本书可用,则一个订单会通过而另一个将被中止)。
持久性:如果在数据库确认事务已提交后立即发生系统故障怎么办?由于数据库在重做日志中仍然保留了已提交事务的更新库存和订单详细信息(尽管意外服务器崩溃),事务数据将得到保留。下面的插图描述了两个用户试图在断电时购买书籍副本的事件流。
2022年数据库管理系统(DBMS)的全球市场达到了超过653亿美元的价值,预计在2023年至2028年之间将以10.8%的复合年增长率(CAGR)增长。这并不奇怪,因为组织越来越多地依赖于大数据分析,目的是实现实时分析和数据驱动的决策,以提高竞争力。
然而,与大数据分析和事务数据库相关的一个主要趋势是从哑应用程序转向包含机器学习、人工智能和复杂自动化的智能应用程序。
这种转变将影响大多数行业的组织数据战略,不仅将增强分析数据库事务洞察力,还将使这些洞察力更容易获得。尽管如此,公司仍需升级其企业系统(例如,数据库服务器、生产系统、数据存储),无论是在本地还是云中,以支持向智能应用程序的转变和人工智能可以带来的好处。
高数据完整性
可扩展性
实时处理
并发访问
可审计性
ACID属性是数据库管理系统(DBMS)最佳实践的一部分,用于确定保证事务型数据库可靠性的标准。对于许多组织而言,证明ACID兼容性是其数据管理策略以及数据治理结构的一部分。
ACID属性具体关系到事务及其相关数据的原子性、一致性、隔离性和持久性。