无忧文档

关系数据库设计

目录

一Codd的RDBMS12法则——RDBMS的起源

二关系型数据库设计阶段

三设计原则

四命名规则

数据库设计,一个软件项目成功的基石。很多从业人员都认为,数据库设计其实不那么重要。现实中的情景也相当雷同,开发人员的数量是数据库设计人员的数倍。多数人使用数据库中的一部分,所以也会把数据库设计想的如此简单。其实不然,数据库设计也是门学问。

从笔者的经历看来,笔者更赞成在项目早期由开发者进行数据库设计(后期调优需要DBA)。根据笔者的项目经验,一个精通OOP和ORM的开发者,设计的数据库往往更为合理,更能适应需求的变化,如果追其原因,笔者个人猜测是因为数据库的规范化,与OO的部分思想雷同(如内聚)。而DBA,设计的数据库的优势是能将DBMS的能力发挥到极致,能够使用SQL和DBMS实现很多程序实现的逻辑,与开发者相比,DBA优化过的数据库更为高效和稳定。如标题所示,本文旨在分享一名开发者的数据库设计经验,并不涉及复杂的SQL语句或DBMS使用,因此也不会局限到某种DBMS产品上。真切地希望这篇文章对开发者能有所帮助,也希望读者能帮助笔者查漏补缺。

一 Codd的RDBMS12法则——RDBMS的起源

Edgar Frank Codd(埃德加·弗兰克·科德)被誉为“关系数据库之父”,并因为在数据库管理系统的理论和实践方面的杰出贡献于1981年获图灵奖。在1985年,Codd 博士发布了12条规则,这些规则简明的定义出一个关系型数据库的理念,它们被作为所有关系数据库系统的设计指导性方针。

1. 信息法则关系数据库中的所有信息都用唯一的一种方式表示——表中的值。

2. 保证访问法则依靠表名、主键值和列名的组合,保证能访问每个数据项。

3. 空值的系统化处理支持空值(NULL),以系统化的方式处理空值,空值不依赖于数据类型。

4. 基于关系模型的动态联机目录数据库的描述应该是自描述的,在逻辑级别上和普通数据采用同样

的表示方式,即数据库必须含有描述该数据库结构的系统表或者数据库描述信息应该包含在用

户可以访问的表中。

5. 统一的数据子语言法则一个关系数据库系统可以支持几种语言和多种终端使用方式,但必须至少

有一种语言,它的语句能够一某种定义良好的语法表示为字符串,并能全面地支持以下所有规

则:数据定义、视图定义、数据操作、约束、授权以及事务。(这种语言就是SQL)

6. 视图更新法则所有理论上可以更新的视图也可以由系统更新。

7. 高级的插入、更新和删除操作把一个基础关系或派生关系作为单个操作对象处理的能力不仅适应

于数据的检索,还适用于数据的插入、修改个删除,即在插入、修改和删除操作中数据行被视

作集合。

8. 数据的物理独立性不管数据库的数据在存储表示或访问方式上怎么变化,应用程序和终端活动都

保持着逻辑上的不变性。

9. 数据的逻辑独立性当对表做了理论上不会损害信息的改变时,应用程序和终端活动都会保持逻辑

上的不变性。

10. 数据完整性的独立性专用于某个关系型数据库的完整性约束必须可以用关系数据库子语言定

义,而且可以存储在数据目录中,而非程序中。

相关文档
热门文档
评论