数据处理的抽象过程(涉及三个领域):
抽象 转换
现实世界 =====> 信息世界 =====> 机器世界
建立概念模型, 建立数据模型
(便于用户和DB设计人员交流) (便于机器实现)
一、概念模型(信息模型)
把现实世界中的客观对象抽象成的某种信息结构,主要用于数据库设计。
独立于具体的计算机系统
独立于具体的DBMS支持的数据模型
1、实体与记录
信 {实体:客观存在并可相互区分的事物
息 {实体集:性质相同的同类实体的集合
世 {属性:实体具有的某一特性
界 {实体标识符:能将一个实体与其它实体区分开来的一个或一组属性
数 {记录< - - -> 实体(抽象表示)
据 {文件< - - -> 实体集
世 {字段或数据项< -- - > 属性
界 {关键字 < - -- > 实体标识符,唯一的标识一个记录,又称码,键
2、型与值
在DBS中,每一个对象在广义上讲都有型和值之分:
型是对象的结构或特性描述
值是一个具体的对象实例
类似于程序设计语言中数据类型和数据值的概念。
(1) 实体型:对实体固有特性或结构的描述。用实体及其属性名集合来抽象和 刻画。
如 汽车(车牌号, 车型, 车主)
实体值:实体型的一个实例,即一个具体的实体。
如 (豫A00001, 丰田, 张三)
(2) 记录型:记录格式
记录值:一个具体的记录
(3) 几点说明
区分型与值得本质
DBS中讨论的重点是型
通常只说实体、记录,含义根据上下文自明
3、实体间的联系
实体内部的联系(属性间的联系):
反映在数据上就是记录内部数据项间的联系
实体之间的联系:
反映在数据上就是记录之间的联系
实体之间的联系可归为三类:
(1) 1对1联系(1:1):两个实体集中的每一个实体至多和另一个实体集中的一个实体有联系。
例如:国家 ------- 总统
(2) 1对多联系(1:n):若实体集A中的每个实体与实体集B中0个或多个实体有联系,且B中每个实体至多与A中的一个实体有联系,则称从A到B为1对多的联系。
例如:国家-------- 干部
(3) 多对多联系(m:n):两个实体集中的每一个实体都和另一个实体集中0个或多个实体有联系。
例如:学生-------- 课程
DBS的核心问题之一:
如何表示和处理实体及实体间的联系。
4、概念模型的表示方法之一:
实体-联系方法用E-R图(Entity-Relationship Diagram)描述:
实体型:用长方形表示
联系:用菱形表示
属性:用椭圆形表示
框内写上相应的名称
用无向边连接:
实体与其属性
联系与其属性
联系与有关实体,并标上联系类型
说明:
联系也必须命名
多个实体之间也可以有联系
单个实体之间也可以有联系
联系也可以有属性
例:某工厂物资管理E-R图
图1 工厂物资管理E-R图
二、数据模型
是对现实世界进行抽象的工具,它按计算机系统的观点对数据建模,用于提供数据库系统中信息表示和操作手段的形式框架,主要用于DBMS的实现,是数据库系统的核心和基础。
1常用的数据模型
层次模型 网状模型 关系模型 面向对象模型
称作非关系模型,是下列基本层次联系的集合
2数据模型的三要素
形式化描述数据、数据之间的联系 数据结构(静态)
以及数据操作 数据操作(动态)
和有关的语义约束规则的方法 完整性约束
数据结构:如何表示实体及联系,难点是表示联系:根据现实世界实体间联系的特征,用四种不同的方法进行抽象
{层次模型
{网状模型
{关系模型
{面向对象模型
(因此是按照数据结构的类型来命名数据模型)
数据操作:如何实现增、删、改、查
完整性约束:如何保证数据的约束条件得到满足
3层次模型
根据一个单位的组织结构直观地得出
方框表示一个实体型(结点)
线表示联系(边)
(1) 定义:用树形结构来表示实体以及实体间联系的模型。
其特征是:(a)有且仅有一个结点无双亲(根结点)
(b)其它结点有且仅有一个双亲
(2)说明:
(a)树中实体间联系只能是从父到子的1:1或1:n联系,对m:n联系,须使用辅助手段转换成多个1:n联系,但不易掌握
(b)简单直观,结构清晰,运行效率高,但编程复杂
4网状模型
(1) 定义:用图结构来表示实体以及实体间联系的模型。
其特征是:任一结点都可以无双亲或有一个以上的双亲
例:
(2) 优:可表示m:n的联系,运行效率高
缺:过于复杂,实现困难
(3) 说明
(a) 即使对于网状模型,具体在计算机上实现时,m:n的联系仍需分解成若干个1:n的联系(因此,网状模型的图结构实质上是有向图),如
(b) 网状模型中允许两结点间有多条边,层次模型则不允许
5关系模型
层次、网状模型基本上是面向专业人员的,使用极不方便
问题:寻找一种能面向一般用户的数据模型
(1) 定义:用二维表(关系)来描述实体及实体间联系的模型
(2) 关系:对应一张表,每张表起一个名字即关系名
元组:表中的一行
属性:表中一列,每列起一个名称即属性名
主码:唯一确定一个元组的属性组
域:属性的取值范围
(3) 关系模式:对关系的描述,一般表示为:
关系名(属性1,属性2,… ,属性n)
(4) 优点:
无论实体还是实体间的联系都可以用统一的数据结构(二维表、关系)来表示,可方便地表示m:n联系,因此概念简单,用户易懂易用
如
可表示为:
学生(学号,姓名,性别,系,年级)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
表中行、列次序无关
有坚实的理论基础(关系理论)
存取路径对用户透明,用户只需指出“做什么”,不需说明“怎么做”,因此数据独立性更高
缺点:由于存取路径对用户透明,查询效率不够高,必须对查询请求进行优化。
说明:关系必须规范化,关系的每个分量必须是一个不可分的数据项,不允许表中嵌表。
(5) 关系模型与非关系模型的比较
| 关系模型 | 非关系模型 |
实体及实体间联系采用的数据结构 | 统一均为关系 | 不统一 |
操作方式 | 一次一集合 | 一次一记录 |
存取路径 | 对用户透明 | 对用户不透明 |