学习数据库(2)——数据模型

版权声明:本文为博主原创,未经博主允许不得转载。 https://blog.csdn.net/weixin_36904568/article/details/89532448

一:基本概念

1. 数据模型的定义

对现实世界数据特征的抽象

2. 分类

  • 概念数据模型:按照用户的观点对数据和信息建模
    • 实体-关系模型
  • 基本数据模型:按照计算机的观点对数据建模
    • 层次模型:使用树型结构表示数据之间的联系
    • 网状模型:两个结点之间可以有多种联系
    • 关系模型:使用表格表示实体集和联系
    • 面向对象模型:以对象为单位,每个对象都具有属性和方法

3. 要素

  • 数据结构:研究对象类型的集合,是对系统的静态描述
  • 数据操作:对数据库各种对象的实例允许执行操作的集合,是对系统的动态描述
  • 数据约束条件:一组完整性规则的集合,保证数据的正确有效和相容

二:概念数据模型——实体-关系模型

1. 基本概念

(1)实体(一般用矩形表示)

客观存在的对象并且可区分

属性(一般用椭圆表示)

每个实体都具有属性

属性域:

属性的取值范围

种类:
  • 简单属性:只有一种属性
  • 复合属性:多种属性组合(用多个椭圆表示)
  • 单值属性:单一的值
  • 多值属性:属性对应多个值(用双椭圆表示)
  • 基属性:一个基本属性
  • 派生属性:一个属性可以由其他属性得到(用虚椭圆表示)
  • null属性:属性值未知
特例:
  • 超码:唯一标识实体的属性或属性组
  • 候选码:是一个最小超码,它的任意真子集都不是超码
    • 主属性:包含在任何候选码的属性
    • 非码属性:不包含在任何候选码的属性
  • 主码:用户明确定义的候选码,用下划线标识
  • 外码:当前实体的一个属性是另一个实体集或关系集的主键
  • 全码:所有属性组是候选码
实体集

具有相同属性的实体集合,具有相同的性质

弱实体集(一般用双矩形表示)

没有主键的实体集,强烈依赖它的标识实体集

  • 部分码:在弱实体集中区分实体的属性集合,用下划虚线标识
  • 主码:由强实体集的主码+自身的部分码组成

(2)联系(一般用菱形表示)

多个实体之间的相互关联

属性

联系也可以具有自己的属性

联系集

具有相同属性的联系集合,表示两个或以上的实体集之间的关联

参加联系的实体集个数,度为2的联系集成为二元联系集

参与度

实体集参与关联的实体个数

扫描二维码关注公众号,回复: 6039677 查看本文章
  • 弱参与:实体集可以部分实体参与到关联中
  • 强参与:实体集必须全部实体参与到关联中
映射基数

通过联系集关联的实体集的实体个数(可以是同一个实体集或多个实体集之间)

  • 一对一(1:1):实体集E1的一个实体可与实体集E2的一个实体相关联
  • 一对多(1:n):实体集E1的一个实体可与实体集E2的多个实体相关联
  • 多对一(n:1):实体集E1的多个实体可与实体集E2的一个实体相关联
  • 多对多(n:m):实体集E1的多个实体可与实体集E2的多个实体相关联
标志基数约束和参与约束

第1种:使用箭头和线的个数标志

  • “一”个实体:有向箭头或数字1
  • “多”个实体:无向直线或数字n
  • 实体部分参与到联系中:单线
  • 实体必须全部参与到联系中:双线

第2种:下限…上限

  • 0 . .:表示可以部分参与
  • 1 . .:表示必须全部参与
  • . . *:表示“多”个实体
  • . . 1:表示“一”个实体
标识性联系集(一般用双菱形表示)

将弱实体集与强实体集相关联(弱实体集对标识实体集是多对一的,参与全部的)

2. E-R图

(1)设计

  • 确定实体和对应的属性、主码(弱实体集、部分码)
    • 若一个对象只对名称和值感兴趣,则定义为属性
    • 若一个对象除了名字,还有其他属性需要描述,则定义为实体
      • 若一个实体需要依赖于另一个实体才能存在,则定义为弱实体集
    • 如果一个实体的属性信息过于冗余,则可以把部分属性集单独作为实体
  • 确定联系和对应的属性、基数标识、参与标识(标志联系集)
    • 确定对象之间的动作 ,一般直接定义为联系集
      • 若联系集关联强实体集和弱实体集,则定义为标志联系集
    • 如果对象间的联系是多对多的,则需要额外定义一个实体集,再分别定义联系集
    • 如果有多个对象发生关联,可以转换为多个二元关系

(2)特性

非二元关系的转换
  1. 创建新的实体集E, 为E创建标识属性。或者从所有实体集中分离出一个实体集E
  2. 把R的所有属性加给E
  3. 分离关系R为RA,RB,RC
  4. 将E分别与A、B、C…关联——RA、RB、RC
特化与概化
高层实体集:具有公共性质的实体集
低层实体集:实体集的一个具有特殊属性或者参与特殊联系的子集
特化:在高层实体集中确定一个具有特殊性质的实体集
  • 全特化:全部低层实体集属于一个高层实体集
  • 部分特化:部分特殊实体集可以不属于高层实体集
概化:将若干个共享相同特性的实体集组合为高层实体集
  • 不相交:只属于一个低层实体集
  • 重叠:属于多个低层实体集
  • 全概化:必须属于一个低层实体集
  • 部分概化:可以不属于任何低层实体集
表示:

1:圆圈法

  • 圆圈
    • d:不相交概化
    • o:重叠概化
  • 高层实体集和圆圈之间
    • 单线:部分概化
    • 双线:全概化
  • 低层实体集(双竖边矩形)
  • 低层实体集和圆圈之间
    • 有∪:特化
    • 无∪:没有特化

2:三角形法
使用倒三角形ISA表示,顶点连接低层实体集,底边连接高层实体集

3:箭头法:
低层实体集用空心箭头指向高层实体集

聚集

为了消除多个重叠联系的冗余,将其中一个多元联系抽象为一个复合实体,从而允许多个联系之间产生联系

三:基本数据模型——关系模型

关系模型

由若干关系模式组成的集合

关系模式(类)

相当于一个记录型,由关系名、关系的属性、属性域、映像、函数依赖集组成,主码用下划线标识。

表示为R(A1,A2…AN) Dom(A1)=A2

关系/关系实例(变量)

一张由行和列构成的二维表,表中的每一行称为一个元组。

  • 元数:关系中属性的个数
  • 基数:关系中元组的个数

类型

  • 基本关系:实际存储数据的逻辑表示
  • 查询表:查询结果对应的表
  • 视图表:虚拟存在的表,只存储定义。

完整性约束

  • 实体完整性:主属性不能为空
  • 参照完整性:外码的属性值要么为空,要么等于依赖关系的某个主码值
  • 自定义完整性

猜你喜欢

转载自blog.csdn.net/weixin_36904568/article/details/89532448
今日推荐