| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1222 人关注过本帖
标题:糗大了 问个问题 求安慰
只看楼主 加入收藏
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用TonyDeng在2014-1-24 22:50:08的发言:

數據是永久的,視圖是臨時使用的。

那么说 视图对一个系统来讲是不重要的? 视图的复杂度会影响到系统的性能么?

梅尚程荀
马谭杨奚







                                                       
2014-01-26 23:06
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
以下是引用tlliqi在2014-1-26 22:04:20的发言:

没有摸数据库 摸什么呢
摸计算机 简称摸机。

梅尚程荀
马谭杨奚







                                                       
2014-01-26 23:07
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用有容就大在2014-1-26 23:07:29的发言:

摸计算机 简称摸机。
2014-01-26 23:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用有容就大在2014-1-26 23:06:05的发言:


那么说 视图对一个系统来讲是不重要的? 视图的复杂度会影响到系统的性能么?

視圖是非常重要的,那就是所謂的“邏輯”數據。并需要被玄幻的名詞術語唬倒,什麽視圖、邏輯關係,舉個例子是這樣理解:比如姓名這個信息,它實際上包含姓和名兩個元素,那麽你在設計數據結構的時候,是把姓名作爲一個字段還是拆分姓、名兩個字段呢?拆分了兩個字段,在運行時可以按邏輯把它們聯係起來得到完整的姓名,而又保持按姓氏檢索的優勢,這樣得到的姓名,就是視圖。一個字段就相當於原子,是基本單元,但世界是由分子構成的,程序員應按天道思考問題,創建數據庫記錄的基本信息,是記錄到原子級,原子是有限的,但由原子構成的分子、世界是無限的,數據庫需要永久記錄下來的數據,是要占用物理存儲資源的,應該盡量優化和裁減,用有限的原始資料提取盡可能多的信息,祇有無法運算得到的數據才應該被永久記錄下來。明白了這一點,就知道人家說盡量使用邏輯、少用物理是什麽意思。計算機的優勢,是它運行時能做最繁瑣的臨時計算,讓它做這些事即可,提高機器的執行速度,不過是爲減少物理儲存空間的消耗而生,時間和空間永遠是一對矛盾,不要在運算速度已經很高效的計算機上再用舊式低速計算機的思考方式,把臨時數據轉存到物理設備上以減少再計算的時間——這也是綜合平衡的問題,故人家說編程實際上是藝術。

數據庫的設計,重點在基本數據的記錄,以及將來如何利用這些數據得到最多的邏輯信息,視圖是臨時用的,不需要永久占用物理空間,用完可以抛棄。其實看看瀏覽器使用臨時文件的情況,就知道這個原理了(麻煩在很多軟件不主動清掃垃圾)。

授人以渔,不授人以鱼。
2014-01-27 20:52
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 24楼 TonyDeng
老大 你这么一讲我有点明白了

不过还有点疑问,我在实际操作时是无法修改视图数据的
为什么有些书上说:由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。
还有:视图可帮助用户屏蔽真实表结构变化带来的影响。 如果我基表干掉了一个字段 视图怎么屏蔽这个影响?

梅尚程荀
马谭杨奚







                                                       
2014-01-27 23:38
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
答案就在我上面舉的例子中

授人以渔,不授人以鱼。
2014-01-28 12:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用有容就大在2014-1-27 23:38:54的发言:

老大 你这么一讲我有点明白了

不过还有点疑问,我在实际操作时是无法修改视图数据的
为什么有些书上说:由于逻辑上的原因,有些视图可以修改对应的基表,而有些则不能(仅仅能查询)。
还有:视图可帮助用户屏蔽真实表结构变化带来的影响。 如果我基表干掉了一个字段 视图怎么屏蔽这个影响?

視圖,其實是一個查詢結果,具體實現的手段,不同語言有不同的方式。比如我上面所舉的例子,數據結構本身拆分爲姓、名兩個字段,查詢時構建一個臨時變量,用這兩個字段拼接而成,那麽修改這個臨時變量就不能修改字段本身,有些查詢操作也不允許修改這個臨時變量,寫程序的都知道,能否做什麽事,是程序員自己決定的,你當然也可以設定能够修改,并且在修改時把内部的字段本身也改動了,那是隱式操作。諸如SQL這類查詢語言,是把數據庫中的數據提取、運算之後構建成一個全新的臨時表供應給用戶的,相當於複印,修改複印件不能修改正本,是顯而易見的。但有一些語言,在查詢不是很複雜預算的視圖時,在可以將臨時字段與正本字段建立對應關係時,卻可能提供附帶變動源數據的功能(像新版vfp提供的某些SQL語句就有update參數,可以在修改視圖的時候修改源數據)。這就是所謂基於邏輯的原因,能或不能,邏輯,不過是具體實現的意思。

屏蔽的問題,還是那個例子。你新構建的查詢字段,可以是先姓後名,也可以先名後姓,甚至把名改了其他什麽東西再拼接起來,都是自由的,從得到的視圖結構,反推不到原本的字段結構。你幹掉一個字段,祇要查詢的公式(其實查詢視圖不過是一條公式,查詢臨時表是用這條公式在運行時新建的,是動態邏輯數據,與原表的物理永久數據不同性質)不涉及這個字段,就屏蔽掉了。其實,從同一個數據庫,根據不同用戶的需求,查詢出不同的結果,就是數據庫的用途——你的身份證數據,可以被社保局用,也可以被公安局用,兩者所需的身份證數據,存在同一數據庫中,按各自的需求提取各自的信息,但社保局的查詢查不到公安局才用得著的字段,反過來也一樣。所謂“大數據”,不過是這種意思而已。

授人以渔,不授人以鱼。
2014-01-28 21:11
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 27楼 TonyDeng
谢谢老大讲解的这么详尽, 看完后 我对视图的理解比以前清晰多了。 敬茶。

梅尚程荀
马谭杨奚







                                                       
2014-01-28 22:41
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
其實這個問題你在學C#的屬性概念時就應該明白了

授人以渔,不授人以鱼。
2014-01-29 16:46
快速回复:糗大了 问个问题 求安慰
数据加载中...
 
   



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

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