讨论数据库中复合键的优缺点 to 海阔天空:谢谢交流!我认为:在复合键比较大时,会很容易产生非主属性对该复合键的部分依赖,所以就只能达到最低的范式,即1NF,那么也就带来了严重的数据冗余和更新异常等问题。多多指教!呵呵!~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼上牛!hxd001_810(寒冬) 部分依赖不是符合键带来的,而是设计不够规范引起的,如果存在部分依赖,那应该把表拆分。 在讨论这个问题前,应该把楼主说的复合索引的概念搞清楚:楼主所说的复合主键指的是物理存在的primary key,还是只是逻辑概念上的复合主键?!如果是物理上的primary key,就不是避免了,而是应该坚决杜绝!!涉及业务相关的字段,绝对不允许作为物理primary key。其害处很多:1、如果有频繁的业务修改,其相应主键字段有修改的可能。会导致非聚集索引中的主键信息相应修改(假如主键默认为聚集索引),而且容易造成表中记录的物理移动。2、可能导致业务信息外泄。3、生成有业务含义的字段需要按照一定的规则生成,不可避免使用varchar等字符串类型,影响插入和查询效率。4、业务规则发生变化,造成的影响容易扩大。...所以建议设计表的物理primary key时采用无意义的数字(可以是顺序的)。如果楼主指的是逻辑主键,那么一般情况下是没有什么问题的。当需求人员在概要设计和逻辑设计阶段,按照业务模型划分的各个表就应该首先符合3nf,在物理设计阶段,可能由DBA进行进一步的优化。回退到1nf和2nf是非常普遍的事情。否则全是3nf和4nf的表的大系统,可以预期,其数据库服务器的CPU将很容易成为系统的性能瓶颈! 学习ashzs((可以包含中文字符)) lsqkeke(可可)太客气了,我都不好意思了。 :) sql server 2005连接问题 求一SQL语句 求一个存储过程,急(50分)。先到先得 请教大家:在sql server中如何设置恢复模式呀? 数据库用户问题! 如果1433端口被封,有什么办法可以远程传输数据,散分至少100 一个有趣的问题,怎样选出字段名可变的数据集 为什么我用ntext的数据类型,连2页word文档都放不下? dawugui 预测一下,何时变成一位数 sql server 服务器 启动问题! 难题求救(插入记录) 救命啊~~安装SQLServer的问题
部分依赖不是符合键带来的,而是设计不够规范引起的,如果存在部分依赖,那应该把表拆分。
1、如果有频繁的业务修改,其相应主键字段有修改的可能。会导致非聚集索引中的主键信息相应修改(假如主键默认为聚集索引),而且容易造成表中记录的物理移动。
2、可能导致业务信息外泄。
3、生成有业务含义的字段需要按照一定的规则生成,不可避免使用varchar等字符串类型,影响插入和查询效率。
4、业务规则发生变化,造成的影响容易扩大。
...所以建议设计表的物理primary key时采用无意义的数字(可以是顺序的)。
如果楼主指的是逻辑主键,那么一般情况下是没有什么问题的。
当需求人员在概要设计和逻辑设计阶段,按照业务模型划分的各个表就应该首先符合3nf,在物理设计阶段,可能由DBA进行进一步的优化。回退到1nf和2nf是非常普遍的事情。否则全是3nf和4nf的表的大系统,可以预期,其数据库服务器的CPU将很容易成为系统的性能瓶颈!