关系模型
关系的完整性约束
重要程度:8 分
<div>
<h2>关系模型的完整性约束</h2>
<p>关系模型的完整性约束主要包括实体完整性、参照完整性和用户定义的完整性。</p>
<h3>1. 实体完整性</h3>
<p>实体完整性要求关系中的每个元组在主键上必须有唯一的值,并且不能为NULL。</p>
<p><strong>例题:</strong></p>
<table border="1">
<tr>
<th>学生ID</th>
<th>姓名</th>
<th>年龄</th>
</tr>
<tr>
<td>001</td>
<td>张三</td>
<td>20</td>
</tr>
<tr>
<td>002</td>
<td>李四</td>
<td>21</td>
</tr>
</table>
<p>在这个例子中,学生ID是主键,不能重复也不能为NULL。</p>
<h3>2. 参照完整性</h3>
<p>参照完整性要求一个关系中的外键值必须是另一个关系中主键的有效值,或者为空。</p>
<p><strong>例题:</strong></p>
<table border="1">
<tr>
<th>课程ID</th>
<th>课程名称</th>
</tr>
<tr>
<td>C001</td>
<td>数据库原理</td>
</tr>
<tr>
<td>C002</td>
<td>计算机网络</td>
</tr>
</table>
<br>
<table border="1">
<tr>
<th>学号</th>
<th>课程ID</th>
<th>成绩</th>
</tr>
<tr>
<td>S001</td>
<td>C001</td>
<td>85</td>
</tr>
<tr>
<td>S002</td>
<td>C002</td>
<td>90</td>
</tr>
</table>
<p>在这个例子中,学生成绩表中的课程ID必须是课程表中的有效课程ID。</p>
<h3>3. 用户定义的完整性</h3>
<p>用户定义的完整性是指由用户根据应用需求定义的约束条件,例如特定字段的取值范围或格式等。</p>
<p><strong>例题:</strong></p>
<p>假设有一个“员工”表,其中包含“年龄”字段,用户定义的约束条件为:年龄必须在18到60岁之间。</p>
<p>这种情况下,如果插入一条记录时,年龄小于18或大于60,则会违反用户定义的完整性约束。</p>
</div>