7.1 逻辑设计的基本概念
在第1、2章,我们介绍了关系模型的主要术语,下面简单回顾一下。
(1)关系
关系(Relation)就是通常说的表(Table),由行和列组成。一般而言,概念模型中的实体和多对多联系被转换为逻辑模型后,会产生相应的表。其中,实体对应的表描述了客观数据对象在具体DBMS上的逻辑结构,而多对多联系对应的表则表达了两个客观数据对象之间的联系所依赖的数据项以及在看待关联的数据对象上所体现的角度。例如,采购订单实体对应采购订单表(tbPurchaseOrder);商品实体对应商品表(tbCommodity);商品和营业员之间的多对多联系就对应一张商品营业员表,我们可以从一个营业员看其所销售的商品情况,也可从一种商品看所有营业员的销售情况。
(2)元组
表中的一行称为一个元组(Tuple),即一条记录(Record)。如供应商表中的一个供应商,商品表中的一种商品。
(3)属性
表中的一列(Column)称为一个属性(Attribute),也称为字段(Field)。如供应商表包括供应商编号、名称、简称、地址、邮编、电话、传真、联系人等属性。
(4)域
域(Domain)是属性的可能取值范围,也称为属性的值域。如服装尺码的取值范围是{S,M,L,XL,XXL}。所有商品的名称构成属性“商品名称”的域。
(5)超键
超键(Super Key)就是唯一标识表中一条记录的单列或一组列。一个表可能有多个超键。如供应商表就有供应商编号、供应商名称和简称3个超键。商品表有“商品编号”、“商品条码”和“商品名称+颜色+尺码”3个超键。
(6)候选键
候选键(Candidate Key)是指只包含用于唯一标识记录的最少的列的超键。一个表也可能有多个候选键。如商品表就有“商品编号”和“商品条码”两个候选键。
(7)主键
主键(Primary Key)就是被选出来唯一标识表中记录的候选键。最糟的情况是,将表中所有的列组合起来作为主键。如果构成主键的列数较多或选不出构成主键的列时,往往需要创建一个自增量列或编号列,用作主键。因此,作为主键:① 必须能唯一区分表中的每个记录;② 必须包含唯一的键值;③ 不能为空;④ 其值极少更改,以便于维护。例如,供应商表可选择“供应商编号”作为主键。商品表可选择“商品编号”或“商品条码”作为主键,对于这种情况,需要根据用户的需求和数据项所赋予的实际意义来决定。
(8)外键
所谓外键(Foreign Key)就是一张表中的一列或多列与其他表的候选键相匹配。外键的意义在于建立起了多个表中的数据记录之间的关系,沿着这个关系路径,可以从一条数据记录出发找到其他相关的数据记录。
在后续的数据库设计过程中,我们统一使用更常用的术语:表、记录和列。图7-1标识了关系模型主要术语之间的联系。
图7-1 部门表和员工表举例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。