数据模型的概念
关系模型
重要程度:10 分
<div>
<h2>关系模型</h2>
<p><strong>概念:</strong>关系模型是一种把实体及其之间的联系均用<em>二维表</em>来表示的数据模型。</p>
<ul>
<li>在关系模型中,数据被组织成若干个二维表,每个表都有一个唯一的名称。</li>
<li>表中的每一行代表一个实例或记录,每一列代表一个属性。</li>
<li>每个属性有一个特定的数据类型。</li>
</ul>
<h3>关系模型的关键术语</h3>
<ul>
<li><strong>元组(Tuple):</strong>二维表中的行称为元组。</li>
<li><strong>属性(Attribute):</strong>二维表中的列称为属性。</li>
<li><strong>域(Domain):</strong>属性的取值范围。</li>
<li><strong>关系(Relation):</strong>二维表本身。</li>
<li><strong>主键(Primary Key):</strong>唯一标识一个元组的属性或属性组合。</li>
<li><strong>外键(ForeignKey):</strong>用于建立表间联系的属性,它引用另一个表的主键。</li>
</ul>
<h3>关系模型的操作</h3>
<ul>
<li><strong>选择(Selection):</strong>从一个关系中选择满足给定条件的元组。</li>
<li><strong>投影(Projection):</strong>从一个关系中选取特定的属性列。</li>
<li><strong>连接(Join):</strong>将两个关系合并为一个新的关系。</li>
<li><strong>并(Set Union):</strong>两个关系的所有元组组成新的关系。</li>
<li><strong>差(Set Difference):</strong>两个关系的差集。</li>
<li><strong>笛卡尔积(Cartesian Product):</strong>两个关系的所有可能的元组组合。</li>
</ul>
<h3>例题</h3>
<p>假设有一个学生表(Student)和一个课程表(Course),表结构如下:</p>
<table border="1">
<tr>
<th>Student</th>
<th>Course</th>
</tr>
<tr>
<td>学号(Sno)</td>
<td>课程号(Cno)</td>
</tr>
<tr>
<td>姓名(Sname)</td>
<td>课程名(Cname)</td>
</tr>
<tr>
<td>年龄(Sage)</td>
<td>学分(Credit)</td>
</tr>
</table>
<p>现在要查询所有选修了“数据库”课程的学生姓名。</p>
<ol>
<li>首先找到课程名为“数据库”的课程号:选择 Cname = '数据库' from Course;</li>
<li>然后找到选修了这门课程的学生:选择 Sname from Student where Sno in (选修了课程号为上述查询结果的学生).</li>
</ol>
</div>