《SQL与关系数据库理论——如何编写健壮的SQL代码》一1.11 练习题

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

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

1.11 练习题

1.1 (重复本章内容,不过此处稍有变化。)通览本章,找出所有本应使用术语“关系变量”但是却用了“关系”的地方。
1.2 E. F. Codd是谁?
1.3 域是什么?
1.4 你怎样理解“参照完整性”一词?
1.5 本章中为关系值定义的术语“标题”、“主体”、“属性”、“元组”、“基数”和“度”用于关系变量时都可以很容易地解释。确保你理解了这个说明的含义。
1.6 区分“数据模型”的两种含义
1.7 用你自己的话来解释:(a)物理数据独立性;b)模型和实现的差异。
1.8 在本章中,类似于图1.1和1.3中那样的表不是关系而是关系的图示。那么这样的图示和对应的关系到底在哪些点上有差异呢?
1.9 (试着不回头翻看本章内容完成此习题)suppliers-and-parts数据库包含什么关系变量?它们有什么属性?有什么键和外键?(此习题的目的在于让你尽可能熟悉运行示例的结构。是否具体记住数据取值并不重要,但记住了更好。)
1.10 “只有一个关系模型”。对此说明进行解释。
1.11 下面内容摘抄于某个数据库教材:“区分存储关系(即表)与虚拟关系(即视图)是重要的…… [我们]在能用表或视图的地方应该只用‘关系’。当我们想强调存储的是一个关系而非视图时,我们应该用术语‘基关系’或‘基表’。”这段文字有不少背离关系模型的混淆和错误认识,尽你所能找出来。
1.12 下面内容摘抄于某本数据库教材:“[关系]模型……为每个关系和多对多关系定义了简单表。交叉引用键(cross-reference key)将表链接在一起,表示实体之间的关系。主索引和次索引根据限定提供对数据的快速存取。”这段文字被认为是关系模型的定义!有什么不对的地方?
1.13 为SQL版本的suppliers-and-parts数据库写出CREATE TABLE语句。
1.14 下面是针对suppliers-and-parts数据库典型的SQL INSERT语句:

INSERT INTO SP ( SNO , PNO , QTY ) VALUES ( 'S5' , 'P6' , 250 ) ;

写出等价的关系赋值运算。注意:本章还没有讲关系赋值的具体语法,所以别担心答案的语法问题,尽力做就行了。
1.15(难度大一点)下面是针对suppliers-and-parts数据库典型的SQL UPDATE语句:

UPDATE S SET STATUS = 25 WHERE CITY = 'Paris' ;

写出等价的关系赋值运算(此习题的目的是让你思考要涉及什么知识。本章中的知识并不足以让你完全回答此题。详细解释参见7.11节中的讨论)
1.16 在本章中简述过SQL并不直接支持关系赋值。那么它间接支持吗?如果是,怎么实现?一个相关问题是,所有的关系赋值都可以用INSERT和/或DELETE和/或UPDATE的形式表达吗?如果不能,为什么不能?这意味着什么?
1.17 从实用观点出发,为什么你认为重复元组、自顶至底的元组排序以及自左至右的属性排序都是很坏的主意?(本章有意识地不回答这些问题,并且本题最好作为小组讨论的基础。本书后续内容会对这些问题详细讨论。)

相关文章
|
5天前
|
SQL 关系型数据库 MySQL
创建SQL数据库的基本步骤与代码指南
在信息时代,数据管理显得尤为重要,其中数据库系统已成为信息技术架构的关键部分。而当我们谈论数据库系统时,SQL(结构化查询语言)无疑是其中最核心的工具之一。本文将详细介绍如何使用SQL创建数据库,包括编写相应的代码和必要的步骤。由于篇幅限制,本文可能无法达到您要求的2000字长度,但会尽量涵盖创建数
14 3
|
5天前
|
SQL 安全 关系型数据库
SQL错误代码1303解析与解决方案:深入理解并应对权限问题
在数据库管理和开发过程中,遇到错误代码是常见的事情,每个错误代码都代表着一种特定的问题
|
2月前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
32 1
|
1月前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
85 0
|
2月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
87 0
|
2月前
|
SQL 数据库 开发者
|
2月前
|
SQL 数据库 索引
SQL 编程最佳实践简直太牛啦!带你编写高效又可维护的 SQL 代码,轻松应对数据库挑战!
【8月更文挑战第31天】在SQL编程中,高效与可维护的代码至关重要,不仅能提升数据库性能,还降低维护成本。本文通过案例分析探讨SQL最佳实践:避免全表扫描,利用索引加速查询;合理使用JOIN,避免性能问题;避免使用`SELECT *`,减少不必要的数据传输;使用`COMMIT`和`ROLLBACK`确保事务一致性;添加注释提高代码可读性。遵循这些实践,不仅提升性能,还便于后期维护和扩展。应根据具体情况选择合适方法并持续优化SQL代码。
39 0
|
2月前
|
SQL Java 数据库连接
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
【Azure 应用服务】Java ODBC代码中,启用 Managed Identity 登录 SQL Server 报错 Managed Identity authentication is not available
|
2月前
|
SQL DataWorks 大数据
DataWorks操作报错合集之SQL代码行数过长产生报错,该如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
2月前
|
SQL 数据库
实时数仓 Hologres产品使用合集之如何找回之前的SQL查询代码
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。