自从第一次数据库以来,我一直都在做所谓的建模。想来建模无非就是建建表,加加字段,最多还摆几个索引上去。建表的话,程序怎么方便怎么来,字段的话,甚至可以全部用varchar....
经常也会考虑到怎样的表,怎样的模型才是最高效的模型,最好扩展的模型,最能够体现业务的模型。在仔细读这本书之前,一直不得其法。 虽然也会努力的想设计好这些模型,比如采用面向对象的方式,但做出来的东西,还是缺乏保障,需求稍微抖一抖,数据模型就稀里哗啦,程序就更不用说了。
SQL语言艺术这本书,开篇就说明了不适合SQL的所谓精通者,如果没有经历过海量数据的折磨,就不能够领悟都里面的要点。 2年前买这本书的时候还不信邪,果然最后还是没有啃下来。
下面列出数据建模的几个基本原则:
1. 确保属性的原子性,这个原子性和业务相关,某些时候的原子,在另外的业务场景下并不原子。
2. 确保没有冗余(最近非3NF的设计总是吸引眼球,用故意冗余来提高效率)
3. 确保依赖关系的独立性,依赖到足够的键 (冗余是键多了,这里是键少了)
4. 限制用1/0这种开关值,用富有意义的值来代替。isComplet < completDate, 为了避免Null值,completeDate可以用单独表划出来
5. 值不能出现三元逻辑,Y/N/Unknow
6. 不能有null值的属性,更不能出现两个字段,A有值则B=null, B有值则A=null
7. 出现null的时候,就表示需要添加子类型。
8. 子类型的规则,a.主键就是父类型的外键 b.是父类型的子集 c.各个子类型之间没有交集。
9. 不要建立什么通用表,即把表名,字段名,等都存入value,用以获取最通用的效果
10. 保存History的数据要规范,每个时间点保存一个数据,不要太取巧
11. 考虑数据量,考虑访问的方式 同步还是异步, 处理的方式。
12. 考虑架构的方式,是集中还是多台服务器,集群呢还是网格
13. 表中切勿包含隐藏的业务规则,比如某个值只能>1000,应该包含明确的约束。定义好外键和约束有助于DBMS进行优化
总之,以后设计表,要一条条过,争取获得最好的设计。
分享到:
相关推荐
本文将详细探讨如何使用PowerDesign15进行Oracle数据库建模,以及相关的操作步骤和技术要点。 首先,我们从创建新模型开始。在PowerDesign15中,启动建模过程的第一步是选择"File"菜单,然后点击"New Model"。这将...
### 数据库设计与建模——基于论坛系统的案例分析 #### 一、背景介绍 随着互联网技术的迅速发展,论坛(BBS)作为一种重要的在线交流平台,已成为人们分享信息、交流观点的重要场所。为了更好地管理和利用论坛上的...
《PowerDesigner数据库建模技术》是数据库设计领域中的一款强大工具,它被广泛应用于系统分析、数据库设计和数据仓库建模等环节。PowerDesigner不仅支持物理建模,还支持概念建模和逻辑建模,使得数据库设计过程更为...
- 数据库建模:掌握实体-关系(ER)建模方法,进行概念设计和逻辑设计。 - 数据库索引:理解不同类型的索引(如B树、哈希索引)及其对查询性能的影响。 3. **数据库管理**: - 数据备份与恢复:学习如何进行...
- **数据库建模**:在SQL Server 2000环境下实现数据库模型的建立,包括创建数据库、定义表结构、设置完整性约束条件等。 - **存储过程与触发器**:存储过程用于封装复杂的业务逻辑,减少客户端与服务器端的数据交互...
设计报告文档是项目的重要组成部分,它详尽记录了系统的需求分析、概念模型设计、逻辑结构设计、物理结构设计、数据库建模、程序设计与实现、测试与调试等全过程,是理解和评估系统设计质量的关键资料。通过阅读设计...
【客户催款数据库设计】 ...综上所述,客户催款数据库设计是一个涉及需求理解、概念建模、逻辑转换、物理实现、安全控制以及应用程序开发的综合过程,旨在为企业提供一个有效管理催款流程的工具。
从给定的文件信息中,我们可以提炼出一系列与SQL Server相关的知识要点,这些资源涵盖了从基础知识到高级应用的广泛领域,对于希望深入了解SQL Server数据库管理系统的个人或团队来说,是宝贵的参考资料。...
2. 设计阶段:绘制数据库设计图,编写UML(统一建模语言)图,规划系统架构。 3. 编码实现:使用Java、JSP、Servlet进行编码,搭建服务器环境。 4. 测试调试:进行单元测试、集成测试,确保系统功能正常。 5. 部署...
书中详细介绍了数据库管理系统的基本原理,包括数据模型、关系代数、SQL语言、事务处理、并发控制、恢复机制、数据库安全性与完整性等关键概念。通过学习这本教材,学生能够了解数据库设计的基本过程,包括需求分析...
#### 四、数据库建模与设计步骤 **4.1 数据库设计步骤** - **需求收集与分析**: 理解用户需求,明确用户关心的数据以及所需的结果。 - **概念结构设计**: 确定要存储的数据及其之间的关系。常用的方法包括实体-...
从给定的文件信息中,我们可以提炼出一系列关于数据库课程设计的重要知识点,这些知识点涵盖了数据库设计的基本流程、数据库建模方法、数据库访问技术以及具体的项目案例分析。下面将详细阐述这些知识点。 ### ...
【SQL081401要点】专题资料主要围绕超市收银信息管理系统的设计展开,涉及了管理信息系统设计的基础理论和实践应用,特别是SQL Server 2000数据库的建模与实现。以下是针对该主题的详细知识点: 1. **管理信息系统...
课程结束后,学生应能熟练运用数据库设计方法,理解不同数据模型的优缺点,掌握SQL语言,以及具备分析和解决数据库相关问题的能力。这将为他们后续的专业课程学习和未来的职业生涯奠定坚实基础。