设计。而大多数数据库设计员采用两步法进行数据库设计:首先进行逻辑设计,而后进行物理设计。数据库逻辑设计去除了所有冗余数据,提高了数据吞吐速度,保证了数据的完整性,清楚地表达数据元素之间的关系。而对于多表之间的关联查询(尤其是大数据表)时,其性能将会降低,同时也提高了客户端程序的编程难度,因此,物理设计需折衷考虑,根据业务规则,确定对关联表的数据量大小、数据项的访问频度,对此类数据表频繁的关联查询应适当提高数据冗余设计。数据库模实体生成后,应根据应用系统的事物大小、服务器的性能调整数据库服务器的系统参数,一般来讲,有两个系统参数锁(Locks)的数量、内存(Memory)和过程高速缓存(Procedure cache)大小应加以提高,可以提高数据库的操作性能。
数据类型的选择。数据类型的合理选择对于数据库的性能和操作具有很大的影响,有关这方面的书籍也有不少的阐述,这里主要介绍几点经验。
1. Identify字段不要作为表的主键与其它表关联,这将会影响到该表的数据迁移。
2. Text 和Image字段属指针型数据,主要用来存放二进制大型对象(BLOB)。这类数据的操作相比其它数据类型较慢,因此要避开使用。
3. 各种类型字段的均有众多的相关函数支持,例如日期型函数,在日期的大小比较、加减操作上非常简单。但是,在按照日期作为相等条件的查询操作也要用函数,而使用函数作为查询的条件时,服务器无法用先进的性能策略来优化查询而只能进行表扫描遍历每行,因此,在选择大数据表的关键字段数据类型时应根据在选择查询策略尽可能避开使用函数的原则加以考虑
设计数据库的基本步骤
1.确定新建数据库的目的
设计数据库的第一步是确定数据库的目的以及如何使用。要首先确定希望从数据库得到什么信息,由此进一步确定需要什么主题来保存有关事件(表)和需要什么事件来保存每一个主题(中的字段)。
为了实现设计目标,首先要进行下述准备工作:
(1)与数据库的最终用户交流,了解用户希望从数据库中得到什么样的信息。
(2)集体讨论数据库所要解决的问题,并描述数据库需要生成的报表。
(3)收集当前用于记录数据的表格。
(4)参考某个设计得好,而且与当前要漫计的数据库相似的数据库。
总之,在设计数据库之前应进行系统调查和分析,以搜集足够的数据库设计的依据。
2.规划数据库中的表
表是数据库的基本信息结构。确定表可能是数据库设计过程中最难处理的步骤,因为要从数据库获得的结果(如要打印的报表,要使用的格式,要解决的
问题等),不一定能够提供用于生成它们的表的结构的线索。
在设计表时,应按以下设计原则对信息进行分类:
(1)表中不应该包含重复信息,而且信息不应该在表之间复制。如果每条信息只保存在一个表中,则只需在一处进行更新,这样效率更高,同时也消除了包含不同信息的重复项的可能性。例如,在一个表中,对每个客户的地址和电话号码只保存一次。
(2)每个表应该只包含关于一个主题的信息。如果每个表只包含关于一个主题的事件,则可以独立于其他主题来维护每个主题的信息。例如,将客户的地址与客户订单存放在不同的表中,这样就可以在删除某个订单后仍然保留客户的信息。
3.确定表中的字段
每个表中都包含关于同一主题的信息,表中的每个字段则包含关于该主题的各个事件。例如,"客户"表可以包含公司的名称、地址、城市、省份和电话号码的字段。在草拟每个表的字段时,要注意以下问题:
(1)每个字段都直接与表的主题相关。
(2)不包含推导或计算的数据,如表达式的计算结果。
(3)包含所需的所有