数据库设计笔记——有效设计数据库的目标(二)

参考《数据库设计解决方案》

数据设计关系到整个系统/软件的质量。数据库是一种存储数据的工具,允许以某种方式创建、阅读、更新和删除数据

理想的数据库特性

CRUD

  • 创建、阅读、更新、删除(必备的四个操作)

检索

  • 能快速、可靠地查找到数据库中的所有数据。

  • 数据库应用允许组织数据以便可以采用一种或多种特殊的方法找到特定的数据。

一致性

  • 数据库应用提供一直的检索/读取结果。

有效性(与一致性思想紧密相连)

  • 在需要的地方,相对数据库中的其他数据段对数据进行验证。在CRUD术语中,当C、U、D记录时可以对数据进行验证,即对数据库操作的有效性。

轻松纠错

  • 及时完美的设计也无法确定绝对的有效性,要能够较容易纠正错误。

速度

  • C、R、U、D操作要快速。

原子事务处理

  • 类似操作系统中的互斥资源,当开始某个操作后,必须要某个操作完成后,才能对备操作的当前数据进行另外的操作,这有利于维护一致性和有效性。

ACID

一个有效的事物处理系统应提供下面四种特性:

  • Atomicity(原子性):事务处理是原子的,事务处理中操作要么全部完成,要么不执行。

  • Consistency(一致性):事务处理确保数据库前后处于一致状态,如果事务处理内的操作违反了数据库的规则,则回滚事务处理(即不执行事务)。

  • Isolation(隔离性):事务处理向除了执行以外的人隐藏其细节。

  • Durability(持久性):一旦提交了一个事务处理,就不能消失,且不能更改。

持久性和备份

  • 数据必须是持久的,他不应该自动更改或消失。

    为了保持数据的安全和持久,要对DB进行常规的备份。

  • 备份

    • 现场备份:浪费资源,恢复时间短

    • 日常日志备份:节省资源,恢复时间长

低成本和可扩展性

  • 易用性
  • 便携性
  • 安全性
  • 共享s
  • 执行复杂计算的能力