"数据库系统基础教程的第7章主要讲解了约束和触发器在数据库设计中的重要性。这一章详细阐述了SQL中的不同类型的约束,包括键、参照完整性、域约束和元组约束,并介绍了SQL3引入的触发器机制。约束是确保数据完整性的关键元素,它们在数据库状态发生变化时自动执行,以维护数据的一致性。"
在SQL中,约束分为多种类型,其中键和外键是核心概念。键是识别表中唯一记录的关键属性,每个表可以有多个候选键,但只能选择一个作为主键。主键的定义可以通过`CREATE TABLE`语句中的`PRIMARY KEY`关键字来实现,或者通过`UNIQUE`约束来指定。如果一个属性被声明为`UNIQUE`,那么它的所有值必须在表中是唯一的。此外,外键是一个引用其他表主键的属性,确保了表间数据的参照完整性。
创建主键有两种方法:一是将`PRIMARY KEY`放在特定属性的定义后;二是将`PRIMARY KEY`放在属性列表的末尾,括号内包含所有的键属性。对于包含多个属性的键,必须使用第二种方法。同样,`UNIQUE`约束也可以用于单一或多个属性,确保数据的唯一性。
举例来说,`SalesMan`关系模式可以通过以下两种方式创建:
1. 使用`PRIMARY KEY`和`UNIQUE`声明键:
```sql
CREATE TABLE SalesMan(
empid VARCHAR(10) PRIMARY KEY,
idno VARCHAR(18) UNIQUE,
name VARCHAR(30),
gender CHAR(1),
birthday DATE,
address VARCHAR(255),
phone VARCHAR(13)
);
```
2. 只使用`UNIQUE`声明键:
```sql
CREATE TABLE SalesMan(
empid VARCHAR(10),
idno VARCHAR(18),
name VARCHAR(30),
gender CHAR(1),
birthday DATE,
address VARCHAR(255),
phone VARCHAR(13),
PRIMARY KEY (empid),
UNIQUE (idno)
);
```
此外,触发器是SQL3引入的新特性,它允许在特定事件(如INSERT、UPDATE或DELETE)发生时自动执行一段程序代码,增强了数据库的主动性。触发器可以用来实施复杂的业务规则,或执行一些在数据更改时需要同步的操作,以确保数据的完整性和一致性。
本章内容对理解数据库设计中的数据完整性以及如何利用约束和触发器来维护数据的正确性具有重要意义。学习这些概念对于数据库管理员和开发人员来说至关重要,因为它们直接关系到数据库系统的可靠性和稳定性。