【数据库系统】关系模式

  数据库系统学习第六篇:关系模式。

文章目录

  • 前言
  • 数据库模式和关系模式基本概念
  • 关系模式深入了解
  • 合理设计关系模式

前言

  关系模型是常用的数据模型,它主要包括三方面的内容,即:

  1. 数据结构:表
  2. 数据操作:DDL DML DCL(DBAs常用)
  3. 完整性约束:实体完整性、参照完整性、自定义完整性。

  下面将进一步分析关系模式 。

数据库模式和关系模式基本概念

  谈这两个之前,需要知道 模式指的是设计,实例指的是某一时刻的快照
  数据库模式即是对数据库的设计,数据库实例指的是某一特定时刻整个数据库数据的快照,同理,关系模式是对关系,也就是表的设计,关系实例就是某一特定时刻整个表数据的快照
  如下图所示 ,即数据库的模式
【数据库系统】关系模式_第1张图片
  数据库实例就是某一个特定时刻,数据库数据的集合。

  以student表为例,它的关系模式即是下面标绿的地方。
【数据库系统】关系模式_第2张图片
  关系实例指的是某一特定时刻,表的数据的集合。
如下
在这里插入图片描述
在这里插入图片描述

关系模式深入了解

  关系模式可以理解为对表的属性的设计。一个关系模式 是由属性序列和属性的域组成,如下表示:
在这里插入图片描述
  其中Ai 代表第i个属性 ,di表示第i个属性所对应的域。
通常 我们表示一个关系模式时,不用展现属性的域是什么,举例如下:
在这里插入图片描述

  属性的域应当是原子性的,即属性不应该再分,我认为不是原子性主要指两个方面,

  1. 属性指代不明
  2. 属性仍可分割

1.如联系方式 指代不明 ,你可以分成QQ 微信 私人电话等等。
2.如地址 仍可分割 ,如地址可以下分为 省 市 区 … 门牌号等等。

  通常我们要让一些属性的取值能唯一确定一个元组,这些属性的集合称为超码

我们按范围来分的话,大概可以这么分,
  超码>=候选码 = 主码+备选码

  超码(SK)能唯一确定一个元组 ,候选码(CK) 也是超码 ,不过候选码的任意真子集不能确定唯一的元组。而主码(PK)是我们主观选定的候选码,而备选码(AK)则是除了主码以外的候选码。
  另外还一个码,叫做外码(FK),一个表的外码要么为null ,要么必然在另外一张表以主码的形式出现。这也就是参照完整性约束。

  以学生为例 ,它的属性可以有 学号 入学年份 院系 姓名 宿舍楼层 宿舍号。(我们忽略同一个寝室同名的极端情况

超码可以是学号 入学年份 院系 姓名 宿舍楼层 宿舍号。
候选码可以是学号 或是 入学年份 院系 姓名 宿舍楼层 宿舍号。
主码我们可以挑 学号 或是 学年份 院系 姓名 宿舍楼层 宿舍号。
备选码就是候选码 减去主码。

  我们挑选主码主要从性能方面考虑,如下所示:

  1. 单属性码优于组合码(显然学号作为主码更好)
  2. 整数优于字符串。

合理设计关系模式

  关系模式的设计优劣与增删改查的效率高低密切相关。
  比如我们可以在一个表里存储所有信息,这不是不行,但是问题就是,会造成数据的大量重复。比如两个人共享一个账户,那么这个账户的信息就重复了。除此外,大量的null值会造成许多问题,如对某一个属性的所有元组进行计算 却因为null值的存在导致计算失败等等。

  写完收工。

你可能感兴趣的:(数据库系统)