| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1099 人关注过本帖
标题:关系数据库的规范化
取消只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
结帖率:100%
收藏
 问题点数:0 回复次数:7 
关系数据库的规范化
這裏學數據庫的學生不少,但從這些時間看來,很多人問的問題,總是顯得對關係數據庫的規範化理論完全不懂似的,我想問一下從事這方面教學的老師,現在教學數據庫都不提這個的嗎?

[ 本帖最后由 TonyDeng 于 2014-6-3 13:16 编辑 ]
搜索更多相关主题的帖子: 关系数据库 
2014-06-03 13:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
參考文獻:http://wenku.baidu.com/view/ac5e8205cc175527072208a4.html

授人以渔,不授人以鱼。
2014-06-03 13:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用taifu945在2014-6-3 13:40:08的发言:

如果是专门教授数据库知识的课程可能会讲,但若是讲解FoxPro的课程则未必。

很多跑過來提問的人都是學SQL Server之類的。何況,既學習或從事數據庫編程,以此爲業,豈有不知此基本理論之理。其實,就算不是使用專門數據庫編程,普通的程序,也要用到這些理論,編制數據和查尋等都用得著啊。

授人以渔,不授人以鱼。
2014-06-04 02:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
關於不會移動記錄指針的情形,在我看來,更多地是平時學習就沒使用記錄指針的習慣,因爲教的基本上用記錄集篩選,是SQL服務程序用的,極少有人教他們自己動手檢索數據。經常可以看到的,哪怕很簡單的對一條記錄操作,比如刪除一條記錄,他們也要用where查找刪除,這樣一來,記錄指針根本就不重要,不懂也無妨。

授人以渔,不授人以鱼。
2014-06-04 11:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不要说老师,现在社会上靠数据库吃饭的挨踢人也有不清楚的。我曾经外委一个网站的制作,连数据库的结构都亲自写好了给他们,居然前后两个班组都说看不懂,说MySQL不用这样的,似乎一切都可以靠SQL SELECT搞定,结果可想而知,网页界面做得再漂亮,最终都栽在后台的数据处理上。

授人以渔,不授人以鱼。
2014-06-12 23:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 16 楼 taifu945
第三规范根据实际情况是可以放松的。冗余数据必须可控,亦即程序自己能够严格同步所有数据。增加冗余度的确可以使编程相对简单,但同步也要消耗时间和增加复杂度,不会无代价的,自己把握一个“度”字而已。

授人以渔,不授人以鱼。
2014-06-13 10:01
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
冗余数据的危险在同步。举个例子,本论坛的用户头像,很多时候,某个用户变更了头像,我们是看不到的,需要机缘巧合,刷新了浏览缓存(按F5键),才会把新头像显示出来,原因在于浏览器为了加快速度,会把诸如头像这类(相对)静态的资源缓存在本地计算机存储设备上,下次显示网页时就不去网路上读数据了,这就是本地和远程服务器上各有一份数据,而当远程的源数据更新后,没有有效的机制通知本地浏览器重新读取,结果呈现了旧的数据——如果数据只有一份是不会出现这种问题的。这个风险对头像这类数据来说,可能没什么大碍,但对商业或法律、官方等的应用来说,可能会造成重大损失,第一是会发生上述看不到新数据的问题,第二是会发生不同的用户看到不同的数据的问题,那官司就有得打了。别以为贪点编程省事那么好玩,总求快必定有风险的,《老子》都说了,欲速恐不达,安全必定要付出某种代价,世界是守恒的,片面追求某方面的效率,最怕的是不自知在那些方面失去了多少(知道还好办,就怕不知道)。

数据的简单重复,以及永久储存运算结果,都属于冗余。

[ 本帖最后由 TonyDeng 于 2014-6-13 11:42 编辑 ]

授人以渔,不授人以鱼。
2014-06-13 11:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
冗余数据没有及时与源数据同步,就会脏,编程时贪求速度直接读中间数据就会这样。为了编程方便,有时设计冗余字段是有必要的,但必须注意那是用过即弃的,不要返回头再去读取,因为原始数据可能已经变化,特别是在多用户环境下。速度慢,比使用错误数据导致错失好得多。我之所以反感某些学编程的片面追求效率,就是这个原因,我发现他们除了追求效率这一指标,似乎从来不关心别的更重要的问题。

授人以渔,不授人以鱼。
2014-06-13 14:06
快速回复:关系数据库的规范化
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012305 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved