数据模型概述
数据模型也是一种模型,它是对现实世界数据特征的抽象。也就是说,数据模型是用来描述数据、组织数据和对数据进行操作的。
现有的数据库系统均是基于某种数据模型的。数据模型是数据库系统的核心和基础。
数据模型应该满足三个方面的要求:
- 能比较真实地模拟现实世界;
- 容易为人所理解;
- 便于在计算机上实现
数据模型的组成要素:
数据结构:
数据结构描述数据库组成对象以及对象之间的联系。
数据结构描述的内容有两大类:一类是与对象的类型、内容、性质有关的,如网状模型中的数据项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,如网状模型中的系型;
数据结构是刻画一个数据模型性质最重要的方面。描述的是系统的静态特征。
数据操作:
对数据库中各种对象的实例允许执行的操作的集合,包括操作以及与操作有关的操作规则。
数据库主要有查询和更新(包括插入、删除和修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言。
数据操作描述的是系统的动态特征。
数据的完整性约束:
数据的完整性约束条件是一组完整性规则。
完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
除了数据模型应该反映和规定其必须遵守的基本和通用的完整性约束条件(指实体完整性和参照完整性)之外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,人的年龄应该大于0小于200,学校教职工信息表中教职工的年龄应该是20-65岁。
数据模型的分类
根据模型应用的不同目的,可以将数据模型大致分为概念模型,逻辑模型和物理模型。
概念模型也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
逻辑模型主要包括层次模型、网状模型、关系模型、面向对象数据模型、对象关系数据模型以及半结构化数据模型等。逻辑模型主要是按照计算机系统的观点对数据建模,主要用于数据库管理系统的实现。
物理模型是对数据最底层的抽象,它描述的是数据在系统内部的表示方式和存取方式,或者是在磁盘上的存取方式,是面向计算机系统的。
概念模型-信息世界中的基本概念:
实体:
客观存在并可以相互区别的事物称为实体。
实体可以是具体的人、事、物,也可以是抽象的概念或者联系。一个学生、一个部门,学生的一次选课、教师与院校的工作关系都是实体。
属性:
实体所具有的某一特性称为属性。
学生实体可以由学号、姓名、性别、出生年月、所在院系、入学时间等属性组成。
属性集合(001,张三,男,19950101,软件学院,2015)即表征了一个学生。
码:
可以唯一标识实体的属性集称为码。码是一个属性集,是一个或者一个以上属性的组合。
学号可以作为学生的码。
实体型:
用实体名及其属性名集合来抽象和刻画同类型实体,称为实体型。
学生(学号,姓名,性别,出生年月,所在院系,入学时间)就是一个实体型。
实体集:
统一类型的实体的集合称为实体集。如全体学生,全体教职工。
联系:
实体与实体之间的联系,这种联系通常是指不同类型的实体之间的联系。
不同实体之间的联系可以分为一对一,一对多,多对多类型。
概念模型的一种表示方法:实体-联系方法(E-R)
逻辑数据模型之层次模型
层次模型中的数据结构:
- 有且仅有一个结点没有双亲结点,这个结点称为根结点;
- 根以外的其他结点有且仅有一个双亲结点。
模型表示:
概念数据模型之网状模型
网状模型数据结构:
- 允许一个以上的结点无双亲结点;
- 一个结点可以有多个双亲结点。
模型表示:
概念数据模型之关系模型
关系模型中的数据结构
关系:
一个关系对应一张表。
元组:
表中的一行即为一个元组
属性:
表中的一列对应一个属性
码:
表中的某个属性组或者不同属性组组成的集合,可以唯一确定一个元组。
域:
具有相同类型的数据的值的集合。属性的值来自于某个域。不同的属性的值可以出自同一个域。
分量:
元组中的一个属性值。
关系模式:
对关系的描述。
一般表示为:关系名(属性1,属性2,···,属性n)。学生(学号,姓名,年龄,性别,所在院系,年级)
关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是关系中的每一个分量必须是一个不可分割的数据项,也就是不允许表中还有表。
关系模型的数据操纵与完整性约束:
关系模型的数据操纵主要有查询、插入、修改和删除。
完整性约束包括实体完整性、参照完整性和用户自定义完整性。