《你不可不知的关系数据库理论》——1.5 练习

1.5 练习

现在到了该做练习的时候了。当然,在本书中的第1章就进行查找练习是不可能的,下面大多数是复习题。尽管如此,我还是建议你们尽力独自去回答问题,而不要去看后面给出的答案。注意,前两个练习似乎有些不公平,因为我还没有�%

1这里仍然指的是计算机专业人员,而不是一个天才的“终端用户”,他可能会合理地忽略掉本书中讨论的大部分内容。
2本书的前言中曾提醒读者,在本书中我将用缩写形式“SQL and Relational Theory”代表我的著作SQL and Relational Theory: How to Write Accurate SQL Code(第二版,O’Reilly, 2012)。
3顺便说一下,虽然物理数据库不如逻辑数据库抽象,但它仍然是经过抽象后形成的。它一般包含很多成分,如存储的文件或索引,这些存储的文件或索引以一种更低级别的方式来表示,如页或磁盘空间。页或磁盘空间相应地又是一些更低级别组成成分的抽象,如二进制位或字节,当然,它们本身也是一种抽象(抽象的级别可以很深,只要你能想像的到)。
4这种极少的情况是很重要的,参见本章后面的练习1.2。
5一个典型的例子,大家几乎可以在Internet上随处看到这样一种现象:“MySQL 是世界上最受欢迎的开源数据库”。但是它不是,它也许是世界上最受欢迎的开源数据库管理系统(我也不太清楚),但不是数据库。
6这要比各种建议中提到的类似定义简单多了(但这种犯错太频繁了,这样说我感到非常抱歉),这是因为有关系模型作为替代(例如:XML、NoSQL、角色模型等)。顺便说一下,我从来没有看见过这样一种建议,即提出这种建议的人真正理解了关系模型。可以肯定的是,如果你想声明技术A不好,需要用技术B替代,那么对于你来说首先理解技术A就是一项义不容辞的职责,尤其是要证明技术B如何解决了特定的问题,而技术A不能解决。
7在本书第一版出版之后,Tutorial D已经修订并扩充了一些内容。修订版本的描述(在本书中我采用的就是修订版)可以在Hugh Darwen和我的另一本书中找到,即Database Explorations: Essays on The Third Manifesto and Related Topics (Trafford, 2010),也可以参见网页:www.thethirdmanifesto.com。
8事实上,是属于一种特定数据类型,除非有类型继承关系,但在本书中是不存在类型继承关系的。注意:类型是不能相交的(至少我们所关心的就是),即没有一个值会同时属于2个或者多个类型。
9这样就会出现一个很明显的问题,即是否还有类似于这样特性的运算符,但它是不是只读的呢?答案当然是肯定的。修改运算符就是在被借用时不返回值,但是修改一些变量。然而,我们将会在后面看到,任何给定的修改运算符的借用在功能上都等价于一个赋值操作。从逻辑上讲,赋值就是我们需要的修改运算符。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-09-25 20:19:15

《你不可不知的关系数据库理论》——1.5 练习的相关文章

《树莓派开发实战(第2版)》——导读

前言 树莓派开发实战(第2版)自从2011年诞生以来,树莓派已经成为基于Linux的低成本电脑和嵌入式计算平台这两个领域中的重要角色.同时,也受到了教育工作者和业余爱好者们的一致好评. 自从本书第1版问世以来,树莓派的销售量已超过了几百万台,同时还出现了许多新型号的树莓派.某些型号,比如B+.A+和B+型树莓派2等,还对该设备的规范进行了改进,出现了具有4核处理器的树莓派2和树莓派计算模块,即可以把树莓派作为一个插件式电路板用作更大系统的零部件. 针对出现的各种新型树莓派以及Raspbian操作

《树莓派开发实战(第2版)》——第2章 网络连接

第2章 网络连接 树莓派开发实战(第2版) 2.0 引言 树莓派在设计之初,便是要连接到互联网的.互联网通信是它的关键功能之一,这给其他各种用途铺平了道路,例如家庭自动化.Web服务.网络监控等. 树莓派既可以使用以太网线缆(这种情况至少要求是B型树莓派)联网,也可以使用USB Wi-Fi无线网卡连接网络.树莓派一旦连接到互联网上面,就意味着你可以通过其他计算机来远程连接树莓派.这对于本身难以接近,或者没有连接键盘.鼠标和显示器的树莓派来说,是非常有用的. 接下来,本章将详细介绍树莓派连接互联网

《树莓派开发实战(第2版)》——2.1 连接有线网络

2.1 连接有线网络 面临问题 你想通过有线网络将树莓派连接到互联网. 解决方案 首先,如果你的树莓派的型号为A.A+或Zero的话,那么它们自身并没有提供RJ45以太网接口.这种情况下,最好使用USB无线网卡来连接互联网(见2.5节). 如果你的树莓派是B型的,可以将以太网电缆插入RJ45接口,同时将线缆另一端接入家用路由器后方的空闲接口中即可.图2-1展示的是一款老版的树莓派1,它的网络LED就在音频接口旁边.对于树莓派2来说,这些LED位于以太网接口自身内部. 树莓派一旦连接到网络上面,它

《树莓派开发实战(第2版)》——1.10 优化性能

1.10 优化性能 面临问题你感觉自己的树莓派运行得太慢了,所以,想通过超频来提速. 解决方案如果你使用的是4核处理器的树莓派2的话,你不会有太慢的感觉.但是,如果你使用的是单核心处理器的老版树莓派的话,感觉就像是老牛拉破车. 为了提高树莓派的运行速度,你可以使用超频方法. 当然,这会使树莓派的耗电量有所增加,同时也会使它变得更热(参考后面的讨论). 这里使用的超频方法称为动态超频,因为它会自动检测树莓派的温度,并且一旦温度过高,时钟频率就会自动下调. 为了给树莓派超频,可以在终端输入下列命令来

《树莓派开发实战(第2版)》——2.5 配置无线网络连接

2.5 配置无线网络连接 面临问题你想通过USB无线网卡将树莓派连接到互联网上. 解决方案如果你的Raspbian是最新版本的话,那么配置Wi-Fi的任务将易如反掌.你只需插入USB Wi-Fi无线网卡,然后在屏幕右上方单击Network图标即可(见图2-3).之后,你会看到一个无线网络清单.你选择网络后,系统将提示你输入Pre Shared Key,即密码. 输入密码,稍等片刻,Network图标就会变为标准的Wi-Fi标志,说明无线网络已经连接成功. 如果你使用的是老版的Raspbian的话

《树莓派开发实战(第2版)》——1.3 选择电源

1.3 选择电源 面临问题 你需要为树莓派选择电源. 解决方案 树莓派对电源的基本电气规格的要求为提供5V稳压直流电. 至于电源在电流大小方面的要求,这要取决于树莓派的具体型号以及其连接的外围设备.你最好采用一款能够轻松驱动树莓派的电源,因此电流一般不宜小于700mA.如果你在同一个卖家那里购买树莓派和电源的话,他通常能够告诉你某款电源是否与你的树莓派相匹配. 如果你打算使用无线上网卡或其他大功率的USB外设的话,那么最好选用能够提供1.5A甚至2A电流的电源. 此外需要注意的是,那些非常廉价的

《树莓派开发实战(第2版)》——2.6 使用控制台线联网

2.6 使用控制台线联网 面临问题 虽然没有网络连接可用,但是,你仍然希望能够从另一台计算机远程访问树莓派. 解决方案 使用控制台线来连接树莓派. 如果你打算以无外设的方式来使用树莓派的话,即不用键盘.鼠标或显示器,那么控制台线将是不二之选.控制台线的外观如图2-5所示,可以从Adafruit(https://www.adafruit.com/ )网站购买. 控制台线的连接方式如下. 1.将红色(5V)导线连接到GPIO接口左边缘上的5V引脚. 2.将黑色(GND)导线连接至上面用到的5V引脚左

《树莓派开发实战(第2版)》——1.2 为什么使用概率编程

1.2 为什么使用概率编程 概率推理是机器学习的基础技术之一.Google.Amazon和Microsoft等公司使用它理解可用数据.概率推理已经用于各种各样的应用程序,如预测股价.推荐电影.诊断计算机和检测网络入侵.许多应用都使用了本书中将要学习的技术. 前一小节中,有两个引人注目的要点. 概率推理可用于预测未来.推断过去,以及从过去的事实中学习更好地预测未来. 概率编程是使用图灵完备编程语言作为表示语言的概率推理. 将上面两个要点结合起来,可以得到如下表示. 事实:概率推理+图灵完备=概率编

《树莓派开发实战(第2版)》——1.14 安装树莓派摄像头模块

1.14 安装树莓派摄像头模块 面临问题 你想使用树莓派的摄像头模块(见图1-14). 解决方案 树莓派摄像头模块(见图1-14)是通过排线连接到树莓派上面的. 这个排线需要连到介于树莓派2的音频和HDMI接口之间的那个专用连接器上面.对于早先的B型树莓派来说,这个连接器位于以太网接口的后面.若要安装该模块,需要拉开连接器两边的扳手,使连接器处于解锁状态,然后将排线插入插槽,注意要让排线连接器的衬垫背对以太网接口.之后,按下两边的扳手,锁住排线(见图1-15)即可. 摄像头包装上面的说明文字指出

《树莓派开发实战(第2版)》——2.8 利用VNC远程控制树莓派

2.8 利用VNC远程控制树莓派 面临问题 你需要通过VNC从Mac OS X或个人电脑(Windows或Linux)远程访问树莓派完整的Raspbian图形桌面. 解决方案 安装VNC(Virtual Network Connection,VNC)服务器. 在树莓派上打开终端会话(或SSH会话),然后运行下列命令. $ sudo apt-get update $ sudo apt-get install tightvncserver``` 安装好VNC服务器之后,请使用下列命令来运行它. $