《交互式程序设计 第2版》一1.1 关系模型被严重地误解了

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

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

1.1 关系模型被严重地误解了

任何学科的专业人士都需要知道自己所在专业的基础。所以,如果你是数据库领域的专家,就需要知道关系模型,因为它是数据库领域的基础(至少是基础的主体)。当今,不论是商业化的应用培训还是学术化的理论课程,任何课程都至少提到关系模型的内容,但是大多数教学从结果上看都很糟。可以确定的是,数据库领域中的大多数人并没有很好地理解关系模型。造成这种情形的可能原因包括:

  • 脱离实践的关系模型教学。就是说,至少对于初学者,理解关系模型知识的关联性或关系模型所要解决的问题是很难的。
  • 授课的教师本身并没有充分理解或意识到关系模型知识内容的重要性。
  • 在实践中更可能存在的问题:就根本没教关系模型,授课中取而代之的是SQL语言,或者SQL语言的一些方言(比如Oracle的SQL方言)。

所以这本书的目标读者就是那些数据库实践人员,他们接触过关系模型,但仍然缺乏本应具有的全部知识(尤其是SQL实践人员)。这本书绝不是针对初学者而写的;不过,它也不是一个进修课程。具体而言,我可以确定你确实知道一些关于SQL的知识,但是请容我在此冒昧地说一句,如果你关于关系模型的知识仅仅来源于你所掌握的SQL知识,那么恐怕你并很好地理解关系模型,而且你所知道的还有可能是错的。我认为:SQL和关系模型不是一回事。这一点怎么强调都不过分不夸张地说,下面是一些SQL并不十分明确的关系化问题(下面的列表并不是全部的列表):

  • 数据库、关系及元组的确切含义;
  • 关系值和关系变量的区别;
    U谓词和命题的关联性;
  • 属性名称的重要性;
  • 完整性约束的关键角色;
  • 信息原理及其重要性。

所有这些问题以及其他很多问题,都在这本书中进行了阐述。
我再说一遍:如果你对于关系模型的知识仅仅来源于你对于SQL的知识,那么你所知道的有可能是错的。所以,你在阅读本书过程中可能会得到一个结论:你不得不进行一些反学习(unlearning,即把以前学习到的错误知识忘掉并重新学习正确的知识,避免以前的错误知识产生不利影响——译者注)。不幸的是,反学习是非常困难的。

相关文章
|
自然语言处理 算法
向量检索服务的优缺点
使用向量检索服务的好处是它可以将文本信息转化为向量表示,并进行相似度计算。这使得能够高效地搜索与查询进行语义匹配的文本
1442 3
|
8月前
|
搜索推荐 应用服务中间件 Apache
全面解析301重定向:从原理到实践
301重定向是HTTP状态码,表示“永久移动”,用于将旧URL跳转到新URL,传递SEO权重并减少404错误。适用于域名变更、URL结构调整、HTTP到HTTPS迁移等场景。支持Apache、Nginx、IIS等服务器配置,是网站管理和SEO优化的重要工具。
1136 9
|
7月前
|
JavaScript 前端开发 IDE
TypeScript vs. JavaScript:技术对比与核心差异解析
TypeScript 作为 JavaScript 的超集,通过静态类型系统、编译时错误检测和强大的工具链支持,显著提升代码质量与可维护性,尤其适用于中大型项目和团队协作。相较之下,JavaScript 更灵活,适合快速原型开发。本文从类型系统、错误检测、工具支持等多维度对比两者差异,并提供技术选型建议,助力开发者合理选择。
1309 1
|
6月前
|
数据采集 安全 数据可视化
数据清洗必看的7个要点
数据清洗是确保分析准确的关键。本文详解七大要点:了解数据、处理缺失值、去重、统一格式、处理异常值、转换类型及验证逻辑一致性,助你打好数据分析基石,避免“垃圾进垃圾出”。
|
移动开发 资源调度 JavaScript
Vue2使用触摸滑动插件(Swiper)
这篇文章介绍了在Vue 3框架中如何使用Swiper插件来创建不同类型的触摸滑动组件,包括轮播图、淡入淡出效果和走马灯效果,并提供了详细的配置选项和使用示例。
1398 1
Vue2使用触摸滑动插件(Swiper)
|
存储 人工智能 安全
操作系统的心脏——内核深度解析
【10月更文挑战第29天】 本文深入探讨了操作系统的核心组件——内核,包括其定义、功能、架构以及在现代计算中的重要性。通过对比不同操作系统内核的设计哲学和技术实现,揭示了内核如何影响系统性能、稳定性和安全性。此外,文章还讨论了未来内核技术的潜在发展方向,为读者提供了一个全面了解内核工作原理的平台。
|
11月前
|
缓存 Go
如何解决Golang开发中校验和不匹配问题
以上就是解决Golang开发中校验和不匹配问题的一些方法。这就像小刺猬解决他的“果酱瓶”问题一样,清理错误、替换新的、打破旧的,希望对你有所帮助!
200 5
|
敏捷开发 运维 Prometheus
构建高效运维体系:从基础架构到自动化管理
本文探讨了如何通过优化基础架构、引入自动化工具和流程,以及加强团队协作,构建高效的运维体系。通过案例分析和实践建议,帮助运维人员实现系统的稳定性、可靠性和可维护性。
385 22
|
安全 编译器 开发者
Python打包成.exe文件直接运行
Python打包成.exe文件直接运行
2655 1
|
监控 网络协议 安全
使用 Scapy 库编写 TCP RST 脚本
使用 Scapy 库编写 TCP RST 脚本