正文
数据库涉及到大量的数据读写操作,所以,性能就显得非常重要。
如果数据库的用户少,问题倒是不大。但是如果用户多,例如12306、淘宝双11等场景,瞬时并发读写特别大,就要看数据库是否能hold得住。
这里就要提到著名的
ACID(原子性、一致性、隔离性、持久性)
特性。
原子性(Atomicity):为避免纠纷,数据库中的事务执行被视作原子不可再分,事务(例如转账)中的操作要么全部执行,要么失败回滚(Rollback)。
一致性(Consistency):为保证业务逻辑的一致性,数据库通过设置约束和触发器来保证其完整性约束不被破坏,即每个事务能够看到的数据总是保持一致。
隔离性(Isolation):为防止事务之间的脏读、幻读、不可重复读,数据库通过加锁,保证多个事务并发访问时,事务之间是隔离的,互不干扰。
持久性(Durability):为防止意外事故(例如断电)导致数据缺失,数据库保证事务对其所作的修改被永久保存,不会被回滚。
现在业务需求变化很快,数据库的数据很可能迅猛增长。所以,数据库也需要具备一定的扩展性和弹性,能够灵活地变大或者变小,满足需求和成本之间的平衡。
数据安全的重要性,无需多言。一个优秀的数据库,需要拥有完善的安全机制,保护数据免受未授权的访问,以及来自外部的攻击。
数据库也需要有完善的备份和恢复机制,在极端情况下,能够快速恢复到最近的状态。
数据库需要遵循开放标准的API,使得自身更容易与其它应用和服务集成,促进数据共享和互操作性。
总之,数据库的作用远不止于简单的数据存放。作为一个核心组件,它必须经过严格且缜密的设计,能够为各类应用程序提供稳定可靠的支撑,保障数据的安全性、完整性和高效利用。
数据库的种类很多,分类方法也很多。我们不妨就以历史时间线的维度,对几种主要的分类方式进行介绍。
上世纪60年代,随着计算机技术的不断发展和成熟,越来越多的大型机开始应用于金融证券、航空航天、工业制造、军事国防等领域,掀起了一场信息化革命。
有了信息化,就催生了大量的数据。为了更好地管理这些数据,就有人开始提出数据库系统的概念。
1961年,美国通用电气公司的查尔斯·巴赫曼(Charles Bachman),成功开发出世界上第一个数据库管理系统——IDS(IntegratedData Store,集成数据存储),奠定了网状数据库的基础,并在当时得到了广泛的发行和应用。
1968年,IBM公司创建了层次式数据库管理系统IMS(Information Management System),是世界上首个商业数据库系统。
又过了两年,到了1970年,IBM公司的研究员埃德加·弗兰克·科德(Edgar Frank Codd)发表了一篇名为《大型共享数据库数据的关系模型》的重磅论文。在论文中,他提出了数据库的关系模型,开创了关系数据库时代。