MyBatis知多少(8)关系型数据库

MyBatis的存在就是为了简化对关系数据库的访问。数据库的确很是复杂,要正确地使用它们须要作不少的工做。数据库负责管理数据和修改数据。咱们使用数据库而不简简单单地使用一个 平板文件的缘由就在于数据库为咱们提供了许多好处,特别是在数据完整性、性能以及安全性方面。html

数据完整性算法

数据完整性多是数据库提供的最重要的好处了,由于没有数据完整性,其余一切就没有意义了。若是数据不是一致的、可靠的以及正确的,那它们又有多少价值呢。数据库经过使用强数 据类型,强制约束,以及使用事务从而实现数据完整性的要求。数据库

数据库是强类型的,即一旦建立了一个数据库表,那么它的每一个列就被指定为只能存储某种特定类型的数据。数据库管理系统保证了存储在表中的数据的类型相对于列是正确的。举个例子, 某个表可能将其某列定义为VARCHAR(25> NOT NULL。这就保证了存储在该列中的数据是字符且 长度不会超过25,另外定义中的NOT NULL部分保证了该数据是必需的,也即你必须为该列提供 一个值。缓存

除了强数据类型,还能够对数据库表使用一些其余约束。这些约束一般在范围上更广,由于 它们处理的每每不仅是某一列。约束一般涉及对表中多条记录(甚至是多个表)的验证。例如 UNIQUE约束就要保证表中指定列的值不重复。再如外键(FOREIGN KEY)约束,这种约束保证 表中某列的取值必定来自于关联表中的相关列。外键约束是用于描述表间关系的,所以它对于关 系数据库设计以及数据完整性很是重要,不可或缺。安全

数据库维护数据完整性最重要的方式之一就是使用事务。大多数业务功能都须要使用不少种类型的数据,它们每每来自不一样的数据库。一般这些数据会以某种方式相互关联,所以须要一致 更新。使用事务,数据库管理系统能够保证全部的相关数据以一种一致的方式被更新。更重要的是,事务容许系统的多个用户同时更新数据而不形成冲突。关于事务还有许多知识须要了解。服务器

性能网络

关系数据库能够帮助咱们得到使用平板文件时很难得到的高性能。也就是说,数据库性能并非免费的,要想得到高性能你须要大量的时间和专家经验。数据库性能可被分为3个关键因素: 设计、软件调整以及硬件。数据库设计

要提升数据库的性能,首先要考虑的因素就是设计。一个糟糕的关系数据库设计带来的低效 可能用再多的软件调整和额外的硬件也没法纠正。糟糕的设计可能形成死锁、指数级的关系运算 或者是几百万条记录的数据库表扫描。正确的设计很是重要。性能

对大型数据库来讲,软件调整是提升性能要考虑的第二重要的因素。调整关系数据库系统需 要有相应的对咱们使用的特定RDBMS软件有过专门训练且富有经验的专业人士。虽然RDBMS 软件的某些特征号称是跨越各个不一样的产品的,但一般每种产品都有其精妙而细微的差异,所以 须要针对该特定软件的专业人士。性能调整能够带来某些巨大的好处。例如仅仅是数据库索引的 调整就能够将本来须要执行几分钟的复杂查询变为只需几秒种。RDBMS中可调整的部分有不少, 如高速缓存、文件管理、各类索引算法,甚至还能够考虑操做系统。同一个RDBMS软件在不一样 的操做系统上表现出的行为可能也是不一样的,所以计对不一样的操做系统也要进行不一样的调整。不 用多说了,反正调整数据库软件须要付出大量的努力。数据库到底应该如何调整己经超出了本书 的讨论范围,可是知道软件调整也是一种很是重要的提升数据库性能的因素仍是很重要的。请与 DBA (即数据库管理员)好好协调。加密

大型关系数据库系统一般对计算机硬件的要求都比较高。也正是由于这个缘由,许多公司里性能最强大的服务器每每都是数据库服务器。在许多公司里,数据库就是他们的“宇宙中心”,所以 针对数据库的硬件投入大量的资金也就不足为奇了。快速磁盘阵列、I/O控制器、硬件高速缓存以 及网络接口,全部这一切对于大型数据库管理系统的性能来讲都是相当重要的。有了这些,你就再 不能将硬件做为糟糕的数据库设计的借口或者做为RDBMS调整的替代了。硬件不该该拿来解决性 能问题——它应当用来知足性能需求。关于硬件更深刻的讨论一样也超出了本书的范围,但当你使 用一个大型数据库系统时,考虑到这个因素仍是很重要的。也还请你与DBA好好协调。

安全性

关系数据库系统也提供了额外的安全性。咱们在平常工做中使用的大量数据都是保密的。近年来,我的隐私愈来愈受到关注,安全性已经成为全部数据都需具有的一个基本要求。基于这个 缘由,甚至一我的的全名这样的简单信息也能够被认为是保密的,由于它是潜在的惟一标识信息。
其余的信息(例如,社会保险号码和信用卡帐号)须要像强加密这样的更高级别的安全保护。大 多数商务性质的关系数据库都包括许多先进的安全特性,容许更细粒度的安全性以及数据加密。 每一个数据库都有其独特的安全需求。最重要的是你要理解它们,由于应用程序代码毫不能削弱数 据库的安全策略。

不一样的数据库有不一样级别的数据完整性、性能和安全性。一般来讲,数据库的大小、数据的价值以及数据库相关人员的多少会决定这些级别。

系列文章:

MyBatis知多少(1)

MyBatis知多少(2)

MyBatis知多少(3)

MyBatis知多少(4)MyBatis的优点

MyBatis知多少(5)业务对象模型

MyBatis知多少(6)表现层与业务逻辑层

MyBatis知多少(7)持久层

相关文章
相关标签/搜索