`
zzhonghe
  • 浏览: 248295 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL语言艺术(数据库建模要点)

    博客分类:
  • DB
SQL 
阅读更多
自从第一次数据库以来,我一直都在做所谓的建模。想来建模无非就是建建表,加加字段,最多还摆几个索引上去。建表的话,程序怎么方便怎么来,字段的话,甚至可以全部用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进行Oracle数据库建模,以及相关的操作步骤和技术要点。 首先,我们从创建新模型开始。在PowerDesign15中,启动建模过程的第一步是选择"File"菜单,然后点击"New Model"。这将...

    数据库设计 数据库建模

    ### 数据库设计与建模——基于论坛系统的案例分析 #### 一、背景介绍 随着互联网技术的迅速发展,论坛(BBS)作为一种重要的在线交流平台,已成为人们分享信息、交流观点的重要场所。为了更好地管理和利用论坛上的...

    PowerDesigner数据库建模技术

    《PowerDesigner数据库建模技术》是数据库设计领域中的一款强大工具,它被广泛应用于系统分析、数据库设计和数据仓库建模等环节。PowerDesigner不仅支持物理建模,还支持概念建模和逻辑建模,使得数据库设计过程更为...

    计算机四级数据库复习要点

    - 数据库建模:掌握实体-关系(ER)建模方法,进行概念设计和逻辑设计。 - 数据库索引:理解不同类型的索引(如B树、哈希索引)及其对查询性能的影响。 3. **数据库管理**: - 数据备份与恢复:学习如何进行...

    数据库课程设计 学生信息管理系统 VB+SQL 数据库 课程设计

    - **数据库建模**:在SQL Server 2000环境下实现数据库模型的建立,包括创建数据库、定义表结构、设置完整性约束条件等。 - **存储过程与触发器**:存储过程用于封装复杂的业务逻辑,减少客户端与服务器端的数据交互...

    员工薪资管理系统(jsp+sqlserver 2005)数据库课程设计

    设计报告文档是项目的重要组成部分,它详尽记录了系统的需求分析、概念模型设计、逻辑结构设计、物理结构设计、数据库建模、程序设计与实现、测试与调试等全过程,是理解和评估系统设计质量的关键资料。通过阅读设计...

    客户催款数据库设计要点说明.doc

    【客户催款数据库设计】 ...综上所述,客户催款数据库设计是一个涉及需求理解、概念建模、逻辑转换、物理实现、安全控制以及应用程序开发的综合过程,旨在为企业提供一个有效管理催款流程的工具。

    127个SQL+server热门资料汇总

    从给定的文件信息中,我们可以提炼出一系列与SQL Server相关的知识要点,这些资源涵盖了从基础知识到高级应用的广泛领域,对于希望深入了解SQL Server数据库管理系统的个人或团队来说,是宝贵的参考资料。...

    基于JavaEE的JSP电影管理系统_JSP网站设计_SqlServer数据库设计.rar

    2. 设计阶段:绘制数据库设计图,编写UML(统一建模语言)图,规划系统架构。 3. 编码实现:使用Java、JSP、Servlet进行编码,搭建服务器环境。 4. 测试调试:进行单元测试、集成测试,确保系统功能正常。 5. 部署...

    哈工大数据库课件(配额教材是数据库系统概念)

    书中详细介绍了数据库管理系统的基本原理,包括数据模型、关系代数、SQL语言、事务处理、并发控制、恢复机制、数据库安全性与完整性等关键概念。通过学习这本教材,学生能够了解数据库设计的基本过程,包括需求分析...

    数据库基础教程 包括sql,acess等

    #### 四、数据库建模与设计步骤 **4.1 数据库设计步骤** - **需求收集与分析**: 理解用户需求,明确用户关心的数据以及所需的结果。 - **概念结构设计**: 确定要存储的数据及其之间的关系。常用的方法包括实体-...

    2013数据库课程设计安排与参考资料.doc

    从给定的文件信息中,我们可以提炼出一系列关于数据库课程设计的重要知识点,这些知识点涵盖了数据库设计的基本流程、数据库建模方法、数据库访问技术以及具体的项目案例分析。下面将详细阐述这些知识点。 ### ...

    专题资料(2021-2022年)SQL081401要点.doc

    【SQL081401要点】专题资料主要围绕超市收银信息管理系统的设计展开,涉及了管理信息系统设计的基础理论和实践应用,特别是SQL Server 2000数据库的建模与实现。以下是针对该主题的详细知识点: 1. **管理信息系统...

    数据库原理课程教学大纲(2).doc

    课程结束后,学生应能熟练运用数据库设计方法,理解不同数据模型的优缺点,掌握SQL语言,以及具备分析和解决数据库相关问题的能力。这将为他们后续的专业课程学习和未来的职业生涯奠定坚实基础。

Global site tag (gtag.js) - Google Analytics