DBMS 中的关系模型2025年5月14日 | 阅读10分钟 与分层或网络数据库系统相比,关系模型使得查询更加容易。E.F. Codd 于 1970 年开发了它。关系数据库被定义为一组独立的表,这些表通过每个相关表的某些公共字段相互链接。该模型可以表示为具有列和行的表格。每一行称为一个元组。每一列都有一个名称或属性。它在数据库技术中广为人知,因为它通常用于表示现实世界的对象及其之间的关系。如今,一些流行的关系数据库包括 Oracle、Sybase、DB2、MySQL Server 等。 关系模型术语以下是关系模型的术语
让我们结合示例逐一解释每个术语 示例:学生关系
关系(Relation):关系通常表示为表格,分为行和列。一个关系由多个记录组成。例如:学生关系,包含元组和属性。 元组(Tuple):关系中包含对应于属性的值的行称为元组。例如:在学生关系中有 5 个元组。 元组的值包含 (10112, Rama, 9874567891, islam ganj, F) 等。 数据项(Data Item):关系中最小的数据单位是单个数据项。它存储在行和列的交叉处,也称为单元格。例如:在学生关系中,10112、“Rama”等是数据项。 域(Domain):它包含一个属性可以取值的原子值集合。它可以显式地通过列出所有可能的值来完成,或者通过指定所有在该域中的值都必须确认的条件来完成。例如:性别属性的域是“M”(男性)和“F”(女性)的数据值集合。没有数据库软件能够完全支持域,通常只允许用户定义非常简单的数据类型,如数字、日期、字符等。 一个关系(表)中的一个以上的属性(列)可能从同一个域派生其值。例如:在学生关系中,我们添加了一个新列 Fath_name,其中包含一些值。现在,父亲的名字,即 Fath_name,可以与另一个学生的姓名(即 S_Name)相同。因此,所有名字都可以来自公共域。同样,在学生关系的情况下,同一个域可以用于 Home_Ph 属性(即住宅电话号码)和 Office_Ph 属性,后者表示父亲的办公室电话号码。域的其他一些例子是大学系的名称集合,如 Comp_Sc.、Economics、Physics 等。一周可能的值是星期一、星期二、星期三、星期四、星期五、星期六和星期日。它们构成了一个星期域。 域定义可以通过显式方式完成,即列出所有可能的值,或者通过指定该域的所有值应满足的条件。 属性(Attribute):关系模型中最小的数据单位是属性。它包含特定表中某一列的名称。每个属性 Ai 必须有一个域 dom(Ai)。例如:Stu_No、S_Name、PHONE_NO、ADDRESS、Gender 是学生关系的属性。在关系数据库中,任何行中的列条目都是单个值,仅包含一个项目。 基数(Cardinality):关系中随时拥有的总行数称为该关系的基数。例如:在一个学生关系中,该关系中的总元组数为 3,因此关系的基数是 3。关系的基数会随着时间的推移而变化,因为添加或删除了更多的元组。 度(Degree):关联的度称为关系中属性的总数。有一个属性的关系称为一元关系,有两个属性的关系称为二元关系,有三个属性的关系称为三元关系。例如:在学生关系中,属性的总数为 5,因此关系的度为 5。关系的度不会随着元组的添加或删除而随时间变化。 键(Keys):关系模型中的核心概念是键的概念。键是属性或属性的集合,它可以唯一地标识关系(表)中的特定元组(行)。 不同类型的键是
让我们看下面的员工关系示例。
在上面的示例中,Emp_ID 是主键,因为它不包含任何重复值。 让我们看下面的员工技能关系示例。
在上面的示例中,Emp_ID 和 E_Skill collectively 被称为主键,因为它们唯一地标识了一个元组。Emp_ID 属性被称为外键,因为它引用了 Employee Relation 的主键 Emp_ID。 关系实例(Relational instance):在关系数据库系统中,关系实例由有限的元组集合表示。关系实例不包含重复的元组。 关系模式(Relational schema):关系模式包含关系名称以及所有列或属性的名称。关系模式通常是静态的,不经常更改。 例如,添加一个属性来表示最初未存储在关系中的新信息并不经常发生。关系结构、其域规范以及对其可能施加的任何其他限制有时被称为关系的强度。它通常是静态的,除非关系的含义被更改以包含其他属性。例如,当定义关系时,列数在关系的持续时间内(表)保持不变。 我们通常对行执行插入、删除和更新操作,因此关系(表)中的行数必然会变化。当前的关系状态,代表给定时间仅有效的元组,称为关系的扩展(或状态)。 关系键(Relational key):在关系键中,每一行有一个或多个属性。它可以唯一地标识关系中的行。 关系属性
![]()
关系模型的优点以下是关系模型的各种优点
关系模型的缺点关系数据库的缺点大多数不是因为其缺陷,而是因为其实现方式,我们可以通过使用正确的設計技術和强制执行正確的數據庫標準來避免關係模型的缺點。以下是關係模型的各種缺點:
关系模型上的操作以下是可以对关系模型执行的基本操作列表
让我们逐一解释每个操作。 书籍表
店主表
Book_Order 表
插入操作(Insert operation):用于在表中插入新记录。与其他模型相比,向表中添加新记录要容易得多。例如:假设我们要插入一本新书 B5,与插入其他数据模型相比,可以轻松地将其插入表中。
删除操作(DELETE operation):此操作用于从表中删除记录,但当要删除的行包含一些作为外键属性的属性时,就会出现问题。 例如:让我们举个例子,店主 S1 取消了他的订单 B3,那么我们就必须从 Book_order 关系中删除连接 S1 和 B3 的记录。这可以很容易地从 Book_order 表中删除,而不会影响店主 S1 和 Book B3 的详细信息。 更新操作(Update operation):用于修改或更改表中的记录数据值。更新一个既不是主键也不是外键的属性只需要检查新值是否是正确的数据类型和域。如果我们修改了主键和外键属性的数据值,则需要检查
检索操作(Retrieval operation):用于从关系中保存记录。此操作非常简单且同质。 让我们看以下两个示例查询 示例 1:查找所有订购特定书籍 B2 的店主。 查询 方法:在上面的查询中,首先,我们必须逐一搜索 BOOKS ORDER 关系的所有记录,然后打印订购了书籍 B2 的店主的值。 示例 2:查找被特定店主 S1 订购的所有书籍。 查询 方法:在上面的查询中,我们必须逐一搜索 BOOKS_ORDER 关系的所有记录,然后打印被店主 S1 订购的书籍的值。 关系模型常见问题解答1. 什么是关系模型? 关系模型是一种清晰简单的模型,它使用表而不是图形或形状来表示关系。 2. 键在关系模型中的作用是什么? 键的基本作用是消除关系中的重复项,并唯一标识表中的行。 3. 列出关系模型中执行的各种操作类型?
4. 列出关系模型中属性的各种属性?
5. 列出一些流行的关系数据库管理系统?
下一主题DBMS 关系代数 |
我们请求您订阅我们的新闻通讯以获取最新更新。