数据库系统第七章练习题答案解析

4星 · 超过85%的资源 需积分: 50 68 下载量 116 浏览量 更新于2024-07-26 收藏 64KB DOC 举报
"数据库系统第七章答案" 在数据库设计中,创建关系型数据库的表结构是至关重要的步骤。这里给出了几个SQL语句示例,用于创建`Movies`和`StarsIn`两个表,以及讨论了与外键(Foreign Key)相关的删除和更新规则。这些语句展示了如何在数据库中定义实体之间的关联,以及处理这些关联时的约束条件。 a) 和 b) 都是创建`Movies`表的语句,它们包含电影的基本信息,如标题(title)、年份(year)、时长(length)、类型(genre)、制作公司名(studioName)和制片人证书号(producerC#)。关键的区别在于外键约束的处理。在a)中,`producerC#`引用`MovieExec(cert#)`,但没有明确的删除和更新规则。而在b)中,同样引用了`MovieExec(cert#)`,但在删除或更新`MovieExec`时,`Movies`表中的相应记录将被设置为NULL,这是通过`ONDELETE SET NULL`和`ONUPDATE SET NULL`实现的。 c) 与a)和b)相比,当`MovieExec`表中的记录被删除或更新时,`Movies`表中的`producerC#`也将跟随删除或更新,这称为级联删除(ONDELETE CASCADE)和级联更新(ONUPDATE CASCADE)。这意味着`MovieExec`表的更改会直接影响到`Movies`表。 d) 创建`StarsIn`表,表示明星(starName)参与的电影(movieTitle, movieYear),这里的`movieTitle`和`movieYear`组合作为主键,同时`movieTitle`是`Movies`表的外键,确保明星与电影的关联是有效的。 e) 类似于d),`StarsIn`表的创建语句也包含了`movieTitle`作为外键,但在这个例子中,当`Movies`表中的某条记录被删除时,`StarsIn`表中对应的记录也会被级联删除(ONDELETE CASCADE),这可以确保当电影信息被移除时,所有与之相关的明星信息也一并清除。 这些SQL语句展示了数据库设计中的关系约束,特别是外键约束和其对数据完整性的维护,以及在实体间操作时如何处理关联数据的生命周期。理解这些概念对于设计和管理高效、稳定的数据库系统至关重要。在实际应用中,数据库设计师需要根据业务需求来决定合适的约束策略,以确保数据的一致性和完整性。