Employee(person-name, street, city) Works(person-name, company-name, salary) Company(company-name, city) |
图2-14 习题2.1, 2.7, 2.12的关联数据库
答:
上图中的所有关系模型,需要所有属性组合成主码,因为任何单个属性均不是单独构成主码的好选择。
答:
在department中,如果同一个系有两个以上的楼,那么就破坏了外码约束条件。
在instructor中,如果增加了一个department中没有的系的信息,也同样破坏了外码约束。
答:
因为时间段的时间是确定的,确定了start_time就可以推算出end_time,所以end_time不用放在主码的必要条件选项里。
答:
不可以,暂时的名字没有相同的不代表永远都所有名字不相同,名字这个东西能容易就会变成相同的。
答:
首先笛卡尔积描述了每个学生和所有老师的关系,
然后ID应该是表示学生的ID,s_id代表什么,现在为止,所以不好作答。
A 。 在takes关系中找出它里面的year属性大于等于2009的,然后在于student关系自然连接。
B 。将takes关系与student关系自然连接,然后筛选出新表格中的year属性中year大于等于2009的。
C 。先将takes关系与student关系自然连接,然后输出一个在新关系的基础上只包含ID,name,course.id属性的一个新关系。
A. 找出居住在“Miami”城市的所有员工姓名。
B. 找出工资在100000美元以上的所有员工姓名。
C. 找出居住在“Miami”并且工资在100 000美元以上的所有员工姓名。
答:答案见笔记本
A. 找出位于“Chicago”的所有支行名字。
B. 找出在支行“Downtown”有贷款的所有贷款人姓名。
答:答案见笔记本
Branch(branch_name, branch_city, assets) Customer(customer_name, customer_street, customer_city) Loan(loan_number, branch_name, amount) Borrower(customer_name, loan_number) Account(account_number, branch_name, balance) Depositor(customer_name, account_number) |
图2-15 习题2.8, 2.9, 2.13的银行数据库
A. 适当的主码是什么?
B. 给出你选择的主码,确定适当的外码。
答:
红色主码,黄色外码
Branch(branch_name, branch_city, assets)
Customer(customer_name, customer_street, customer_city)
Loan(loan_number, branch_name, amount)
Borrower(customer_name, loan_number)
Account(account_number, branch_name, balance)
Depositor(customer_name, account_number)
答:
S_id是什么,如果是老师编号,那么当然可以做主码啦。
答:
关系的概念对应于程序设计语言中变量的概念,而关系模式的概念对应于程序设计语言中类型定义的概念。
我们总会在一种关系模式下创建一个特定的关系用于使用。
A. 找出为“FirstBank Corporation”工作的所有员工姓名。
B. 找出为“FirstBank Corporation”工作的所有员工的姓名和居住城市。
C. 找出为“FirstBank Corporation”工作且挣钱超过10000美元的所有员工的姓名、街道地址和居住城市。
答:答案见笔记本
A. 找出贷款额度超过10000美元的所有贷款号。
B. 找出所有这样的存款人姓名,他拥有一个存款额大于6000美元的账户。
C. 找出所有这样的存款人姓名,他在“Uptown”支行拥有一个存款额大于6000美元的账户。
答:答案见笔记本
答:
A. 某个元组的某个属性未知
B. 某个元组的某个属性不存在
答:
非过程化语言比较用户使用友好方便。
过程化语言运行速度肯定是要比非过程化语言快的。