《SQL与关系数据库理论——如何编写健壮的SQL代码》一1.3 原理而非产品

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

本节书摘来华章计算机《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),这位艺术大师很好地总结了这种情形:
热衷于实践而不要理论的人好像一个水手登上了一只没有舵和罗盘的船,他拿不准该往哪里航行。实践应以好的理论为基础。

相关文章
|
1月前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
67 10
|
2月前
|
SQL 安全 数据管理
DMS产品常见问题之历史数据清理SQL修改失败如何解决
DMS(数据管理服务,Data Management Service)是阿里云提供的一种数据库管理和维护工具,它支持数据的查询、编辑、分析及安全管控;本汇总集中了DMS产品在实际使用中用户常遇到的问题及其相应的解答,目的是为使用者提供快速参考,帮助他们有效地解决在数据管理过程中所面临的挑战。
|
13天前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之大数据计算MaxCompute即使用相同的SQL语句在DataWorks和Tunnel上执行,结果却不同,如何解决
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
1月前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
106 6
|
12天前
|
存储 算法 搜索推荐
矢量数据库基础:概念、原理与应用场景
【4月更文挑战第30天】矢量数据库,处理高维向量数据的工具,应用于GIS、推荐系统、图像搜索及语义搜索。核心原理是将原始数据嵌入到高维空间,通过索引算法优化搜索性能。现代深度学习模型如Word2Vec提升向量表示准确性,KD-Tree、LSH等算法加速相似性搜索。随着技术发展,矢量数据库在数据科学领域的重要性日益增强。
|
13天前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之DataWorks中,填写ODPS SQL任务中的参数和分区信息如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
25 0
|
13天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之在DataWorks的数据开发模式中,在presql和postsql中支持执行多条SQL语句如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
42 1
|
14天前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之阿里云MaxCompute对SQL语句的长度的长度限制是多少
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
20天前
|
存储 SQL 数据库
数据库库表结构设计:原理、实例与最佳实践
数据库库表结构设计:原理、实例与最佳实践
53 0
|
20天前
|
SQL 分布式计算 资源调度
一文解析 ODPS SQL 任务优化方法原理
本文重点尝试从ODPS SQL的逻辑执行计划和Logview中的执行计划出发,分析日常数据研发过程中各种优化方法背后的原理,覆盖了部分调优方法的分析,从知道怎么优化,到为什么这样优化,以及还能怎样优化。
103482 1