数据与数据处理
关系数据模型
重要程度:10 分
<div>
<h2>关系数据模型</h2>
<p><strong>关系数据模型</strong>是目前应用最广泛的数据模型,它基于集合论的概念。关系数据模型由三部分组成:数据结构、数据操作和完整性约束。</p>
<h3>1. 数据结构</h3>
<p>在关系数据模型中,数据结构主要表现为二维表的形式,这些二维表被称为关系。每一个关系都有一个唯一的名称,并且由行和列组成。每一行代表一个元组(记录),每一列代表一个属性(字段)。</p>
<h3>2. 数据操作</h3>
<p>关系数据模型中的数据操作主要包括查询、插入、删除和更新。这些操作通常通过SQL语言来实现。</p>
<h3>3. 完整性约束</h3>
<p>关系数据模型中的完整性约束主要有实体完整性、参照完整性和用户定义的完整性。</p>
<ul>
<li><strong>实体完整性:</strong>要求关系中的主键不能有空值,即主键不能为空。</li>
<li><strong>参照完整性:</strong>要求外键的值必须来自于它所引用的表中的主键,或者为空。</li>
<li><strong>用户定义的完整性:</strong>指用户自定义的一些规则,例如某个字段不能为负数等。</li>
</ul>
<h3>例题说明</h3>
<p>假设有一个学生信息表(Student),包含以下字段:学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)。其中学号为主键。</p>
<table border="1">
<tr>
<th>学号 (Sno)</th>
<th>姓名 (Sname)</th>
<th>性别 (Ssex)</th>
<th>年龄 (Sage)</th>
<th>所在系 (Sdept)</th>
</tr>
<tr>
<td>S001</td>
<td>张三</td>
<td>男</td>
<td>20</td>
<td>计算机科学与技术系</td>
</tr>
<tr>
<td>S002</td>
<td>李四</td>
<td>女</td>
<td>22</td>
<td>软件工程系</td>
</tr>
</table>
<p>在这个例子中,学号(Sno)是主键,因此根据实体完整性约束,学号不能为空,且每个学生的学号都是唯一的。</p>
<p>假设还有一个课程表(Course),包含以下字段:课程号(Cno)、课程名(Cname)、学分(Credit)。课程号为主键。</p>
<table border="1">
<tr>
<th>课程号 (Cno)</th>
<th>课程名 (Cname)</th>
<th>学分 (Credit)</th>
</tr>
<tr>
<td>C001</td>
<td>数据结构</td>
<td>4</td>
</tr>
<tr>
<td>C002</td>
<td>数据库系统原理</td>
<td>3</td>
</tr>
</table>
<p>现在我们有一个选课表(SC),记录学生选修课程的信息,包含以下字段:学号(Sno)、课程号(Cno)、成绩(Grade)。其中(Sno, Cno)构成联合主键。</p>
<table border="1">
<tr>
<th>学号 (Sno)</th>
<th>课程号 (Cno)</th>
<th>成绩 (Grade)</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>根据参照完整性约束,选课表(SC)中的学号(Sno)必须存在于学生表(Student)中,课程号(Cno)必须存在于课程表(Course)中。</p>
</div>