连载之7
原创:胖子刘(转载请注明作者和出处,谢谢)
数据库物理模型设计的其他模式
除了上面提到的四种主要设计模式,还有一些其他模式,在某些项目中可能会用到,在这里先简单做个说明,暂不做深入讨论,等到以后的项目用到这些模式的时候,再结合实际需求详细解说。
(一)继承模式
继承模式,可以看作是“主从模式”的一种特殊情况(或者说是“变形”),它所代表的两个对象也是“一对多”的关系。它与“主从模式”的区别是,“继承模式”中从表的主键是复合主键,并且复合主键中必定包含主表的主键列。
根据从表继承主表的列的数量,继承模式又分以下两种情况:
1.       从表继承主表的全部列

在这种情况下,从表除了代表自身的专用字段以外,还冗余了主表的全部字段。这种设计方式的缺点显而易见:
  • 数据冗余度大
  •  一致性差
  • 磁盘存储量大
它的优点也显而易见:
  • 正因为它的冗余度大、所以它不易丢失数据。假设主表数据丢失、或者被误操作删改,也能依据从表数据重新生成主表数据;这种设计方式,可以在发生数据损坏的时候从应用的角度进行一定程度的数据恢复,等于是在SQL Server数据库级别的数据恢复功能之上又加了一道保险。
  • 正因为它一致性差、主表数据被重复存储,所以可依据外键关系进行数据验证。将主从表记录作关联比较,如果数据不一致,就可以得知数据要么被人为改动,或者要么程序代码中存在bug。
  • 尽管磁盘存储量大,但是数据在查询统计的时候,只需针对从表进行搜索即可,无需关联操作,可以加快检索的速度。这就是数据库模型设计中经常提到的“以空间换时间”。
2.       从表只继承主表的主键列

这种设计方式,从表只继承了主表的主键列,这种方式的优缺点与前面刚好相反。
优点:
  • 数据冗余度小
  • 一致性高
  • 磁盘存储量小
缺点:
  • 正因为它的冗余度小、所以它易丢失数据。假设主表数据丢失、或者被误操作删改,就只能通过SQL Server数据库级别的数据恢复操作来找回丢失的数据了。
  • 正因为它一致性高,所以无法进行应用程序级的数据验证。
  • 由于采用了一致性设计,磁盘存储量较小,但是数据在查询统计的时候,必须要对两个表进行内连接(INNER JOIN)操作,才能搜索到相关数据。而内连接操作时需要耗费一定的时间的。这就是数据库模型设计中经常提到的“以时间换空间”。
当然,在实际的数据库模型设计过程中,还会有介于上述两者之间的第3种情况出现,那就是从表继承了主表的主键列以及部分其他列。这就要求我们设计人员要依据实际的业务需求进行综合分析、权衡、折中,给出最符合业务需求的设计结果。


文章来源:http://blog.csdn.net/liu7537/archive/2006/04/13/661838.aspx

[导入]数据库物理模型设计的其他模式之继承模式相关推荐

  1. js对象赋值只保留存在的属性_js对象的创建对象模式和继承模式(上)---构建对象模式...

    ​前言 ECMAScript与其他面向对象语言不同的是,它没有类的概念,因此它的对象也和基于类的语言中的对象有所不同,深入理解js的对象是每个前端工程师的基本素养,本文将就创建对象模式的方面对对象进行 ...

  2. 转:[Asp.net]常见数据导入Excel,Excel数据导入数据库解决方案,总有一款适合你!...

    引言 项目中常用到将数据导入Excel,将Excel中的数据导入数据库的功能,曾经也查找过相关的内容,将曾经用过的方案总结一下. 方案一 NPOI NPOI 是 POI 项目的 .NET 版本.POI ...

  3. 为了彻底搞清楚数据库 E-R 模型设计,我肝了这篇万字长文

    文章简介 本文主要描述了关系型数据库设计的各个阶段及重要概念,并重点介绍了 概念设计 和 逻辑设计 两大核心阶段,着重强调了 E-R 模型的构造 步骤,除此之外还补充了 关系模式的规范化 及如何 求解 ...

  4. dm归档文件配置、sql 日志的开启和关闭以 及基本的操作、创建定时备份和删除备份的作业、数据库物理、逻辑备份还原

    1.达梦数据库中归档文件配置. 生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法: 设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB). 定期删除归档日志(设置定时作 ...

  5. postgis 导出 栅格_【FME HOWTO系列】08 导入数据库表、栅格数据、矢量数据

    概述 在本练习中,您将学习如何将数据导入数据库并使用FME从数据库导出数据.这是一个简单的拖放过程,支持超过400种数据类型; 但是,本教程仅提供从3个类别导入/导出数据的示例:数据库表,栅格数据和矢 ...

  6. Excel批量导入数据库

    在上个系统中需要用到Excel整体导入的功能整体的核心思路如下: 1. 首先将需要导入的Excel上传至服务器 2. 为了避免文件名重复,重命名上传的Excel文件 3. 将上传的Excel文件读入D ...

  7. mysql导出入数据库报错_mysql数据库导出导入数据库的搜索结果-阿里云开发者社区...

    mysql 数据库导入\导出(总结备忘) 数据库的基本导入\导出的命令 是 mysqldump 和 source 在linux下直接用命令行操作就可以 在windows下 一般情况下有两种方法一个也是 ...

  8. oracle逻辑备份和物理备份,oracle数据库物理备份和逻辑备份区别

    oracle数据库物理备份和逻辑备份区别 ORACLE中数据备份分为物理备份和逻辑备份两种.物理备份就是转储ORACLE物理文件(如数据文件.控制文件.归档日志文件等),一旦数据库发生故障,可以利用这 ...

  9. 从EXCEL文件将数据导入数据库的向导程序设计!

    原创文章,转载请注明出处! 最近在做一个向导程序,希望把EXCEL表中数据导入数据库,首先是选择数据源.字段匹配最后进行数据检验和错误设置!类的关系比较复杂,希望理清类与类之间的关系.程序的架构有些像 ...

最新文章

  1. 2018最具就业前景的7大编程语言,Java、Python和JavaScript?
  2. UICollectionView(一)基本概念
  3. c语言判断x的个位数是否为5,用C语言编程从键盘输入一个正整数,判断其个位数是否为5,若是5则输出“yes”,否则输出“no”...
  4. 从起源到未来:能自己编程和改进的超人工智能会出现吗?
  5. 容器编排技术 -- AWS EC2快速入门
  6. 大数据之-Hadoop3.x_Yarn_生产环境核心参数配置案例---大数据之hadoop3.x工作笔记0150
  7. Visual C++编译选项
  8. 轻松看懂概率论与图论基础数学知识
  9. 所有ghost操作系统大全
  10. Android自定义View实战:影院在线选座
  11. Matlab-信号处理工具箱
  12. scratch编程记忆力小游戏
  13. 音频基础概念及常见编码格式
  14. ansys 19.2无法连接到服务器证书,360运行时ansys19.0就无法连接许可服务了
  15. 百度的世界里,AI没有退路
  16. 高中生如何才能快速提高高二数学成绩
  17. 第一天:2个法则,你的第一桶金可以这么来
  18. 法语语法学习笔记——代词(2)
  19. Android网络通信(一)
  20. 阿拉伯字母及阿拉伯文排版规则

热门文章

  1. 用jquery阻止事件起泡
  2. Matlab数理统计工具箱应用简介
  3. 隐藏网页文件的后缀(IIS测试通过)!
  4. kk 服务器信息,手机kk服务器设置
  5. mysql rename所标时间_mysql rename命令
  6. java用easyexcel实现读取excell表格内容
  7. docker镜像为什么要采用分层结构
  8. 电脑知识:如何保养自己的电脑,看完你就懂了!
  9. 霸榜Github第一!谷歌重磅开源的“海啸”,我服了
  10. Shell中I/O重定向的用法笔记