数据库设计/关系数据模型
关系数据模型由 C. F. Codd 于 1970 年提出。目前,它是使用最广泛的数据模型。
关系模型为以下方面提供了基础:
- 关于数据/关系/约束理论的研究
- 大量数据库设计方法
- 称为结构化查询语言 (SQL) 的标准数据库访问语言
- 几乎所有现代商业数据库管理系统
关系数据模型将世界描述为“相互关联的关系(或表格)的集合”。
关系,也称为表格或文件,是域列表的笛卡尔积的子集,其特征是名称。表格中,每一行代表一组相关的数值。行,或记录,也称为元组。表格中的列是字段,也称为属性。也可以这样想:属性用于定义记录,而记录包含一组属性。
以下步骤概述了关系与其域之间的逻辑关系。
- 给定n 个域表示为 D1、D2、… Dn
- 并且r 是定义在这些域上的关系
- 则 r ⊆ D1×D2×…×Dn
数据库由多个表格组成,每个表格保存数据。图 7.1 显示了一个包含三个表格的数据库。
图 7.1. 包含三个表格的数据库。
数据库以有组织的方式存储信息或事实。理解如何使用数据库并充分利用数据库,需要我们了解这种组织方法。
主要的存储单元称为列、字段或属性。它们将数据的基本组件存储起来,您的内容可以分解成这些基本组件。在决定创建哪些字段时,您需要从通用角度考虑您的信息,例如,找出您将在数据库中存储的信息的通用组件,并避免区分各个项目的信息的细节。
查看图 7.2 中的身份证示例,了解字段与其数据之间的关系。
图 7.2. A. Watt 的身份证示例。
域是用于建模数据的原子值集。原子值的意思是,域中的每个值在关系模型中都是不可分割的。例如
- 婚姻状况域具有一组可能性:已婚、单身、离婚。
- 班次域包含所有可能的日期集:{周一、周二、周三…}。
- 薪资域包含所有大于 0 小于 200,000 的浮点数集。
- 姓氏域包含代表人名的字符字符串集。
总之,域是一列允许包含的一组可接受值。这基于列的各种属性和数据类型。我们将在另一章讨论数据类型。
就像任何文档或项目的内容都需要分解成其组成的数据位才能存储在字段中一样,它们之间的链接也需要可用,以便可以将它们重新组合成完整的形式。记录允许我们做到这一点。记录包含相关的字段,例如客户或员工。如前所述,元组是记录的另一个术语。
记录和字段是所有数据库的基础。一个简单的表格让我们最清楚地了解记录和字段如何在数据库存储项目中协同工作。
图 7.3. A. Watt 的简单表格示例。
图 7.3 中的简单表格示例向我们展示了字段如何保存各种类型的数据。这个表格有
- 一个记录 ID 字段:这是一个序数;其数据类型是整数。
- 一个发表日期字段:显示为日/月/年;其数据类型是日期。
- 一个作者字段:显示为首字母缩写. 姓氏;其数据类型是文本。
- 一个标题字段文本:此处可以输入自由文本。
您可以命令数据库筛选其数据并以特定方式对其进行组织。例如,您可以要求根据日期限制记录选择:1. 所有早于给定日期的记录,2. 所有晚于给定日期的记录,或 3. 所有介于两个给定日期之间的记录。同样,您也可以选择按日期排序记录。因为包含数据的字段或记录被设置为日期字段,所以数据库读取日期字段中的信息不仅是数字用斜杠隔开,而是日期,这些日期必须根据日历系统进行排序。
度是指表格中属性的数目。在我们图 7.3 中的示例中,度为 4。
- 表格有一个名称,该名称不同于数据库中的所有其他表格。
- 没有重复的行;每行都是唯一的。
- 列中的条目是原子的。表格不包含重复组或多值属性。
- 列中的条目来自同一域,基于它们的数据类型,包括
- 数字(数值、整数、浮点数、小整数……)
- 字符(字符串)
- 日期
- 逻辑(真或假)
- 不允许组合不同数据类型的操作。
- 每个属性都有一个唯一的名称。
- 列的顺序无关紧要。
- 行的顺序无关紧要。
- 原子值
- 域中的每个值在关系模型中都是不可分割的
- 属性
- 数据库中的主要存储单元
- 列
- 参见属性
- 度
- 表格中属性的数目
- 域
- 用于建模数据的原子值集;一列允许包含的一组可接受值
- 字段
- 参见属性
- 文件
- 参见关系
- 记录
- 包含相关的字段;参见元组
- 关系
- 一组域的笛卡尔积的子集,以名称为特征;表或文件的专业术语
- 行
- 参见元组
- 结构化查询语言 (SQL)
- 标准数据库访问语言
- 表
- 参见关系
- 元组
- 行或记录的专业术语
本章中使用的几个术语是同义词。除了上面的关键术语外,请参阅下面的表 7.1。替代方案 1 列中的术语最常使用。
表 7.1. 术语及其同义词,由 A. Watt 编写。
使用表 7.2 回答问题 1-4。
- 使用正确的术语,识别和描述表 7.2 中的所有组件。
- 字段 EmpJobCode 的可能域是什么?
- 显示了多少条记录?
- 显示了多少个属性?
- 列出表的属性。
表 7.2. 用于练习问题的表,由 A. Watt 编写。
数据库设计 (包括图片,除非另有说明) 的这一章是 Nguyen Kim Anh 撰写的 Relational Design Theory 的衍生作品,根据知识共享署名许可证 3.0 许可证授权
以下材料由 Adrienne Watt 撰写
- 关于关系、表、列和度的部分全部或部分内容
- 关键词
- 练习