数据描述
在数据处理中,数据描述将涉及到不同的范畴。从事物的特性到计算机中的具体表示,实际上经历了三个阶段——概念设计中的数据描述、逻辑设计中的数据描述和物理设计中的数据描述。本节先介绍这三个阶段的数据描述,再介绍数据之间联系如何描述。
概念设计中的数据描述
实体(entity):客观存在,可以相互区别的事物称为实体。
实体集(entity set):性质相同的同类实体的集合,称为实体集。
属性(attribute):实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。
实体标识符(identifier):能惟一标识实体的属性或属性集,称为实体标识符。有时也称为关键码(key),或简称为键。
逻辑设计中的数据描述
字段(field):标记实体属性的命名单位称为字段,或数据项。它是可以命名的最小信息单位,所以又称为数据元素或初等项。
记录(record):字段的有序集合称为记录。
文件(file):同一类记录的集合称为文件。
关键码(key):能惟一标识文件中每个记录的字段或字段集,称为记录的关键码(简称为键)。
术语的对应关系
概念设计 |
逻辑设计 |
实体……… |
记录 |
属性……… |
字段(数据项) |
实体集……… |
文件 |
实体标识符……… |
关键码 |
物理设计中的数据描述
位(bit,比特):一个二进制位称为“位”。一位只能取0或1两个状态。
字节(byte):8个比特称为一个字节,可以存放一个字符所对应的ASCII码。
字(word):若干个字节组成一个字。一个字所含的二进制位的位数称为字长。
块(block):又称为物理块或物理记录。块是内存和外存交换信息的最小单位,每块的大小,通常为210~214字节。
桶(bucket):外存的逻辑单位,一个桶可以包含一个物理块或多个在空间上不一定连续的物理块。
卷(volume):一个输入输出设备所能装载的全部有用信息,称为“卷”。
数据联系的描述
联系(relationship)是实体之间的相互关系。与一个联系有关的实体集个数,称为联系的元数。
二元联系有以下三种类型:
1,一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。
2,一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。
3,多对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。
例1.1
例1.2
数据模型
数据模型的简单定义: 能表示实体类型及实体间联系的模型称为“数据模型”。概念数据模型和逻辑数据模型。
概念数据模型:独立于计算机系统的数据模型,它完全不涉及信息在计算机中的表示,只是用来描述某个特定组织所关心的信息结构。这类模型中最著名的是“实体联系模型”。
逻辑数据模型应包含数据结构、数据操作和数据完整性约束三个部分:
1,数据结构是指对实体类型和实体间联系的表达和实现;
2,数据操作是指对数据库的检索和更新(包括插入、删除和修改)两类操作;
3,数据完整性约束给出数据及其联系应具有的制约和依赖规则。
实体联系模型
实体联系模型(Entity Relationship Model,简记ER模型)是P.P.Chen于1976年提出的。这个模型直接从现实世界中抽象出实体类型及实体间联系,然后用实体联系图(ER图)表示数据模型。设计ER图的方法称为ER方法。ER图是直接表示概念模型的有力工具。
ER图有三个基本成分:
1,矩形框,用于表示实体类型(考虑问题的对象)。
2,菱形框,用于表示联系类型(实体间联系)。
3,椭圆形框,用于表示实体类型和联系类型的属性。
层次模型用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型(hierarchical model)。
层次模型的特点是记录之间的联系通过指针来实现,查询效率较高。与文件系统的数据管理方式相比,层次模型是一个飞跃,用户和设计者面对的是逻辑数据而不是物理数据,用户不必花费大量的精力考虑数据的物理细节。逻辑数据与物理数据之间的转换由DBMS完成。
层次模型有两个缺点:一是只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系但较复杂,用户不易掌握;二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。
网状模型用有向图结构表示实体类型及实体间联系的数据模型称为网状模型(network model)。
网状模型的特点是记录之间联系通过指针实现,M:N联系也容易实现(一个M:N联系可拆成两个1:N联系),查询效率较高。
网状模型的缺点是数据结构复杂和编程复杂。