【BUAA】数据库管理技术-概念模型
数据管理技术第二周:数据模型之概念模型
什么是数据模型
模型
- 模型是对现实世界的抽象
- 模型常常用于帮助人们提取问题的本质,从而更容易找到解决问题的办法
- 一个小例子:飞机模型->飞机
数据模型
基本定义
- 数据模型是模型的一种,是现实世界数据特征的抽象,是用来描述数据的一组概念和定义;
- 由于计算机不能直接处理现实世界中的具体事物,所以人们必须将具体事物转换成计算机能够处理的数据;
- 数据本身是没有含义的,需要将它组织成固定格式,并用相应的语义去解释它,才能还原成人们想要的信息。
- 数据在计算机中的组织结构,和施加在这个结构上的处理方法,即是数据模型;
- 不同的数据模型代表了不同的观察世界的角度,代表了不同的抽象方法;
- 数据模型是数据库的核心和基础,是数据科学领域的研究重点。
- 数据库相对于文件系统的诸多优点,都源于它采用了更符合现实世界的数据模型
- 数据模型是划分数据库种类的依据,因为它根本性的决定了数据库的功能/性能特点
信息世界
- 现实世界的问题,要抽象为计算机能理解的数据才可以被处理;
- 从现实世界到计算机世界的直接转换是非常困难的,我们引入一个信息世界作为现实世界通向计算机实现的桥梁;
- 一方面,信息世界是对现实世界的抽象,从纷繁的现实世界中抽取出能反映现实本质和概念的基本关系;另一方面,信息世界中的概念和关系,要以一定的方式映射到计算机世界中去在计算机系统上最终实现。信息世界起到了承上启下的作用。
数据模型是对现实世界的抽象,属于信息世界。
数据模型的分类
数据模型的抽象级别:
概念数据模型
- 独立于计算机系统的数据模型,不涉及信息在计算机中的表示,之用来描述某个特定组织所关心的信息结构,是对现实世界的第一层抽象;
- 从实际的人、物、事和概念中抽取所关心的共同特征,忽略非本质的细节
- 把这些特征用各种概念精确第地加以描述
- 概念模型是按用户的观点对数据建模,强调其予以表达能力,是用户和数据库设计人员之间进行交流的语言和工具。
逻辑数据模型
- 直接面向数据库的逻辑结构,是对现实世界的第二层抽象。它直接与DBMS有关,有严格的形式化定义,以便在计算机系统中实现;
- 它通常由一组严格定义的无二义性语法和语义的DB语言,人们可以用这种语言来定义、操纵DB中的数据;
- 该类数据模型有层次模型、网状模型、关系模型等;
- 逻辑数据模型是区分不同类型数据库的依赖,并在很大程度上决定了数据库的性能和应用范围;
- 通常所说的数据模型即指逻辑数据模型。
物理数据模型
- 反映了数据在存储介质上的组成结构,并描述了访问机制;
- 如何表达记录结构、记录顺序和访问路径等信息。
概念模型
什么是概念模型
- 概念模型用于信息世界的建模,是对现实世界进行第一层的抽象;
- 概念模型独立于计算机系统;
- 概念模型是数据库设计的有力工具;
- 概念模型是数据库设计人员和用户之间进行交流的语言。
对概念模型的基本要求
- 较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;
- 简单、清晰、易于用户理解。
ER模型(Entity-Relationship Data Model)
这种模型是最常用的一种概念数据模型,华人计算机科学家从汉字起源中得到灵感,用图形化方法为现实世界的实体建模。
- 观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的
- 三个基本元素:实体(Entity)、属性(Attribute)、联系(Relation)
- 设计过程:实体 -> 联系 -> 属性
实体
- 客观存在并可以相互区分的客观事物或抽象事件称为实体
- 实体集(可简称“实体”):同型实体的集合
属性
- 实体所具有的某一特性称为属性
- 一个是实体可以由若干个属性来刻画
- 属性类型不同的实体属于不同的实体集
- 属性类型相同,仅取值不同的实体属于同一个实体集
- 域:属性的取值范围,所有可能的取值的集合
- 属性的分类
- 简单属性:不可再分属性(学号、年龄等等)
- 复合属性:可以划分为更小的属性,每个小属性的域不同(地址=城市、区县等)
- 键:实体集中能唯一标识实体属性或属性组称为实体集的键,两个以上的属性组成的键称为复合键。举个例子,学生(学号,年龄,性别,班级)是一个键,成绩单(学生,课程,学期成绩)是一个复合键。实体集中每一个实体,在键属性上的取值各不相同。
联系
- 数学定义:如果$A$、$B$是集合,则联系$R$是$A\times B$的一个子集,上面的乘积是笛卡尔积
- 直接定义:联系由一系列的实体间对饮关系所组成(因此联系的键必然是复合键,来自于各相关实体集的键组成)
- 可以用属性来刻画联系的特征
ER图
用图形化的方法来表示ER数据模式
- 用矩形框表示实体,把实体名写在框内;
- 实体的属性用椭圆框表示,框内写上属性名,并用联线连到相应的实体;
- 实体之间的联系用菱形框表示,框内写上联系名,并用连线与有关的实体相连。
联系相关定义
- 联系的元:参与联系的实体的个数称为联系的元。
- 联系的基数比约束:一个实体可以通过联系关联到的另一个实体集中实体的数量,可以分为一对一联系、一对多联系、多对多联系。
- 联系中的角色:联系中关联的每个实体集应是相互区别的。在一元联系中,需要用角色来区分同一实体集的不同副本。
约束
- 约束是一种对数据库的断言,断言内容是对插入数据库中的数据进行限定,数据库应该保持该断言成立
- 常见的约束:非空约束、唯一值约束、主键约束、外键约束、check约束等
- 约束是数据库模式的重要组成部分:
- 丰富了数据的语义
- 保证数据的有效性和完整性
- 实现更高效的存储和数据查询
键约束
- 用键约束可以容易的引用实体
- 超键是实体集中的一个或一组属性,用它们可以唯一的确定每一个实体
- 候选键是某个超键的最小集
- 若存在多个候选键,则可以任选一个作为该实体集的主键
根据需求建模:一个例子
- 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。
- 某种零件在某个仓库中的数量用库存量描述。
- 一个仓库由多个职工当仓库保管员,一个职工只能在一个仓库工作。
- 职工之间具有领导被领导的关系,即仓库主任领导若干保管员。
一些建模准则
- 设计上避免冗余(用两个以上不同的实例描述同一件事情)
- 能抽象为属性的,不要抽象成实体