【BUAA】数据库管理技术-概念模型

数据管理技术第二周:数据模型之概念模型

什么是数据模型

模型

  • 模型是对现实世界的抽象
  • 模型常常用于帮助人们提取问题的本质,从而更容易找到解决问题的办法
  • 一个小例子:飞机模型->飞机

数据模型

基本定义
  • 数据模型是模型的一种,是现实世界数据特征的抽象,是用来描述数据的一组概念和定义;
    • 由于计算机不能直接处理现实世界中的具体事物,所以人们必须将具体事物转换成计算机能够处理的数据;
    • 数据本身是没有含义的,需要将它组织成固定格式,并用相应的语义去解释它,才能还原成人们想要的信息。
  • 数据在计算机中的组织结构,和施加在这个结构上的处理方法,即是数据模型;
  • 不同的数据模型代表了不同的观察世界的角度,代表了不同的抽象方法;
  • 数据模型是数据库的核心和基础,是数据科学领域的研究重点。
    • 数据库相对于文件系统的诸多优点,都源于它采用了更符合现实世界的数据模型
    • 数据模型是划分数据库种类的依据,因为它根本性的决定了数据库的功能/性能特点
信息世界
  • 现实世界的问题,要抽象为计算机能理解的数据才可以被处理;
  • 从现实世界到计算机世界的直接转换是非常困难的,我们引入一个信息世界作为现实世界通向计算机实现的桥梁;
  • 一方面,信息世界是对现实世界的抽象,从纷繁的现实世界中抽取出能反映现实本质和概念的基本关系;另一方面,信息世界中的概念和关系,要以一定的方式映射到计算机世界中去在计算机系统上最终实现。信息世界起到了承上启下的作用。

86258181a35599b77ba0324a1ca013d.jpg

数据模型是对现实世界的抽象,属于信息世界。

数据模型的分类

数据模型的抽象级别:

b16eddf9e082b4c587e3d7ce2ac1091.jpg

概念数据模型
  • 独立于计算机系统的数据模型,不涉及信息在计算机中的表示,之用来描述某个特定组织所关心的信息结构,是对现实世界的第一层抽象
    • 从实际的人、物、事和概念中抽取所关心的共同特征,忽略非本质的细节
    • 把这些特征用各种概念精确第地加以描述
  • 概念模型是按用户的观点对数据建模,强调其予以表达能力,是用户和数据库设计人员之间进行交流的语言和工具。
逻辑数据模型
  • 直接面向数据库的逻辑结构,是对现实世界的第二层抽象。它直接与DBMS有关,有严格的形式化定义,以便在计算机系统中实现;
  • 它通常由一组严格定义的无二义性语法和语义的DB语言,人们可以用这种语言来定义、操纵DB中的数据;
  • 该类数据模型有层次模型、网状模型、关系模型等;
  • 逻辑数据模型是区分不同类型数据库的依赖,并在很大程度上决定了数据库的性能和应用范围;
  • 通常所说的数据模型即指逻辑数据模型。
物理数据模型
  • 反映了数据在存储介质上的组成结构,并描述了访问机制;
  • 如何表达记录结构、记录顺序和访问路径等信息。

概念模型

什么是概念模型

  • 概念模型用于信息世界的建模,是对现实世界进行第一层的抽象;
  • 概念模型独立于计算机系统;
  • 概念模型是数据库设计的有力工具;
  • 概念模型是数据库设计人员和用户之间进行交流的语言。

对概念模型的基本要求

  • 较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;
  • 简单、清晰、易于用户理解。

ER模型(Entity-Relationship Data Model)

这种模型是最常用的一种概念数据模型,华人计算机科学家从汉字起源中得到灵感,用图形化方法为现实世界的实体建模。

  • 观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的
  • 三个基本元素:实体(Entity)、属性(Attribute)、联系(Relation)
  • 设计过程:实体 -> 联系 -> 属性
实体
  • 客观存在并可以相互区分的客观事物或抽象事件称为实体
  • 实体集(可简称“实体”):同型实体的集合

567bd62d917d7adfbb41acde2f1be68.jpg

属性
  • 实体所具有的某一特性称为属性
  • 一个是实体可以由若干个属性来刻画
  • 属性类型不同的实体属于不同的实体集
  • 属性类型相同,仅取值不同的实体属于同一个实体集

d86cd5a7853550e4f3a1fefeda67cde.jpg

  • 域:属性的取值范围,所有可能的取值的集合
  • 属性的分类
    • 简单属性:不可再分属性(学号、年龄等等)
    • 复合属性:可以划分为更小的属性,每个小属性的域不同(地址=城市、区县等)

a5d88bd01b3b8ba873c6b5e587ff323.jpg

  • 键:实体集中能唯一标识实体属性或属性组称为实体集的键,两个以上的属性组成的键称为复合键。举个例子,学生(学号,年龄,性别,班级)是一个键,成绩单(学生课程,学期成绩)是一个复合键。实体集中每一个实体,在键属性上的取值各不相同。
联系
  • 数学定义:如果$A$、$B$是集合,则联系$R$是$A\times B$的一个子集,上面的乘积是笛卡尔积
  • 直接定义:联系由一系列的实体间对饮关系所组成(因此联系的键必然是复合键,来自于各相关实体集的键组成)
  • 可以用属性来刻画联系的特征
ER图

用图形化的方法来表示ER数据模式

  • 用矩形框表示实体,把实体名写在框内;
  • 实体的属性用椭圆框表示,框内写上属性名,并用联线连到相应的实体;
  • 实体之间的联系用菱形框表示,框内写上联系名,并用连线与有关的实体相连。

ab8e23f0ff43527f6f543646826e9f7.jpg

联系相关定义
  • 联系的元:参与联系的实体的个数称为联系的元。
  • 联系的基数比约束:一个实体可以通过联系关联到的另一个实体集中实体的数量,可以分为一对一联系、一对多联系、多对多联系。
  • 联系中的角色:联系中关联的每个实体集应是相互区别的。在一元联系中,需要用角色来区分同一实体集的不同副本。

9053c2417ff5ccd4f9a7c126ae2e26d.jpg

约束
  • 约束是一种对数据库的断言,断言内容是对插入数据库中的数据进行限定,数据库应该保持该断言成立
  • 常见的约束:非空约束、唯一值约束、主键约束、外键约束、check约束等
  • 约束是数据库模式的重要组成部分:
    • 丰富了数据的语义
    • 保证数据的有效性和完整性
    • 实现更高效的存储和数据查询
键约束
  • 用键约束可以容易的引用实体
  • 超键是实体集中的一个或一组属性,用它们可以唯一的确定每一个实体
  • 候选键是某个超键的最小集
  • 若存在多个候选键,则可以任选一个作为该实体集的主键
根据需求建模:一个例子
  • 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中。
  • 某种零件在某个仓库中的数量用库存量描述。
  • 一个仓库由多个职工当仓库保管员,一个职工只能在一个仓库工作。
  • 职工之间具有领导被领导的关系,即仓库主任领导若干保管员。

6dc42ea5b9d1f5b44a5174673ade633.jpg

一些建模准则
  • 设计上避免冗余(用两个以上不同的实例描述同一件事情)
  • 能抽象为属性的,不要抽象成实体