博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《SQL与关系数据库理论——如何编写健壮的SQL代码》一1.3 原理而非产品
阅读量:5871 次
发布时间:2019-06-19

本文共 1036 字,大约阅读时间需要 3 分钟。

本节书摘来华章计算机《SQL与关系数据库理论——如何编写健壮的SQL代码》一书中的第1章 ,第1.1节 C. J. Date 著 单世民 何英昊 许侃 译 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.3 原理而非产品

如同我早先提到的,“为什么你作为数据库领域专业人员需要懂得关系模型”这个问题是值得花时间去搞清楚的。原因是:关系模型不是特定的产品;相反,它关注于原理。这里的原理指的是什么?这里有一个定义(来源于《Chambers Twentieth Century Dictionary》)。

“原理:基础的、自然本质的、理论基础的源头,根本,本源:其他课题得以建立或发展的基础事实。”
关于原理的关键在于:原理具有普适性、稳定性。相反,产品和技术(以及SQL语言)总是在改变——而原理不变。举例来说,假设你懂Oracle;事实上,可以假设你是Oracle专家。而如果你仅仅懂得Oracle,那么你的知识就不一定是可移植的,比如DB2或SQL Server环境(甚至有可能会阻碍你在新环境中的进步)。但是如果你懂得底层原理(也就是说,如果你懂得关系模型),那么你就掌握了可移植的知识和技巧:这些知识和技巧可以应用于任何环境,永不过时。
因此,我们会在本书中关注于原理而非产品,关注于基础而非新奇的技术。我知道,你在现实世界中有时不得不进行妥协。比如,有时你会出于实用原因而不按照理论上的优化方法来设计数据库。再比如,重新考虑SQL。尽管以关系化方法使用SQL(至少在大部分情况下)是确实可行的,但是你有时会发现(因为已有的实现很不完美),关系化使用SQL存在严重的性能问题……此时你多少会被迫做一些不是“真正关系化”的事情(比如为了实现强制使用索引而以不自然的方式编写查询)。然而,我十分坚定地相信:你应该总是以理论为先的立场进行这样的妥协或权衡:

  • 在你决定进行权衡的时候,你应该理解你想要做什么。
  • 你应该知道理论上正确的情形,若要违反它你应该有十分有力的理由。
  • 你还应该把这些理由记录下来,以便在将来某个时刻这些理由不再成立的情况下(比如,你使用产品的新版本在某些方面进行了改善)可以撤销先前的权衡措施。

下面的引述来自于500多年前的达芬奇(Leonardo da Vinci ,1452—1519),这位艺术大师很好地总结了这种情形:

热衷于实践而不要理论的人好像一个水手登上了一只没有舵和罗盘的船,他拿不准该往哪里航行。实践应以好的理论为基础。

转载地址:http://sianx.baihongyu.com/

你可能感兴趣的文章
Servlet Filter 示例
查看>>
进程调度主要函数解析
查看>>
CCFollow和ActionCallFunc
查看>>
使用复制存储过程执行解决“事务复制中的表大量更新导致无法及时同步”的问题 (转)...
查看>>
飘逸的python - 简明gzip模块压缩教程
查看>>
POJ 1037 DP
查看>>
2013 Multi-University Training Contest 4
查看>>
Android中动态更新ListView(转)
查看>>
hdu 1874 畅通工程续(求最短距离,dijkstra,floyd)
查看>>
链表的基本操作
查看>>
第二代支付系统商业银行行内接入系统总体设计(初稿)
查看>>
大型网站系统架构分析
查看>>
一个worker thread服务一个客户端
查看>>
Android中AppWidget的分析与应用:AppWidgetProvider .
查看>>
【转载】徐国洪:好耶向移动广告技术产品转型
查看>>
g++优化选项
查看>>
编辑WCF配置不出现
查看>>
chrome 版本 29.0.1547.76 m 解决打开新标签页后的恶心页面的问题
查看>>
leetcode -- Clone Graph
查看>>
Microsoft Jet 数据库引擎打不开文件,它已经被别的用户以独占方式打开,或没有查看数据的权限。...
查看>>