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

文章目录

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

前言

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

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

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

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

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

  数据库实例就是某一个特定时刻,数据库数据的集合。

  以student表为例,它的关系模式即是下面标绿的地方。

  关系实例指的是某一特定时刻,表的数据的集合。
如下

关系模式深入了解

  关系模式可以理解为对表的属性的设计。一个关系模式 是由属性序列和属性的域组成,如下表示:

  其中Ai 代表第i个属性 ,di表示第i个属性所对应的域。
通常 我们表示一个关系模式时,不用展现属性的域是什么,举例如下:

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

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

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

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

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

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

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

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

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

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

合理设计关系模式

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

  写完收工。

【数据库系统】关系模式相关推荐

  1. 数据库系统-关系模式

    二.DB的抽象与演变 2.1 DB的标准结构 DBMS管理数据的三个层次 ● (局部模式)Entrenal Level 外部层次 = User Level 用户层次 ○ 用户能够看到雨处理的数据,全局 ...

  2. 2.1 《数据库系统概论》关系数据结构及形式化定义(关系、关系模式、关系数据库)

    文章目录 0.思维导图 1. 关系 (1)域(Domain) (2)笛卡尔积(Cartesian Product) (3)关系(Relation) (4)三类关系 2.关系模式 (1)什么是关系模式 ...

  3. ER图转为关系模式(超详细,超简单)

    相关系列: ER图转为关系模式 无损分解和保持依赖 3NF分解与BCNF分解 正则覆盖与候选码 如何设计ER图(弱实体集) 如何设计ER图(映射基数) 目录 1.简单属性的强实体集 2.派生属性不出现 ...

  4. 求关系模式r的所有候选码_关系数据理论基础概念

    数据库系统最基础的就是关系数据理论这一块,简单来讲,为了数据使用更加高效.快捷,必须用规范化理论对关系模式进行改造.不多说了,直接列重点: 1.关系模式的表示R<U,F>,其实R指的是关系 ...

  5. DBMS-数据库设计与E-R模型:E-R模型、约束、E-R图、E-R扩展特性、E-R图转换为关系模式、UML建模...

    设计过程概览 1. 设计阶段 ·最初阶段:刻画未来数据库用户的数据需求,产品为用户需求规格说明: ·概念设计阶段(conceptual-design phase):(关注描述抽象数据及其联系,通常使用 ...

  6. 【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)

    关系数据库 笔记目录 关系模型 关系数据结构 域 关系 关系模式 关系的三类完整性 实体元整性(Entity Integrity) 参照完整性 用户定义的完整性 关系代数 关系代数运算符 传统的集合运 ...

  7. 数据库:ER图↔关系模式

    常考题目: ①如何画ER图 ②如何将ER图转化为关系模式 1,ER图 概念: 实体关系图 (Entity-Relationship,E-R),有三个组成部分:实体.属性.联系.用来进行关系型数据库系统 ...

  8. 数据库 关系模式和关系的区别

    定义 关系(Relation) D1 × D2 × ··· × Dn 的子集叫做在域D1,D2,···,Dn 上的关系,表示为 R(D1,D2,···,Dn ),其中R就是关系名,n就是目或度. 一个 ...

  9. 关系;关系模式;关系数据库

    为了更好的描述这三个概念,必须对关系模型的一些概念进行解释. 表Student 在关系模型的术语中,关系用来指代表,而元组用来指代行.类似地,属性指代的是表中的列. 在表Student中有五个属性:S ...

最新文章

  1. 模型大十倍,性能提升几倍?谷歌研究员进行了一番研究
  2. python安装win32api pywin32 后出现 ImportError: DLL load failed
  3. linux中设置环境变量PATH的方法(转)
  4. Spring 嵌套方法AOP不生效问题
  5. spring mail 发送邮件
  6. Java微信公众平台获取签名
  7. Git 少用 Pull 多用 Fetch 和 Merge
  8. 微信小程序开发---小程序框架---小程序的逻辑层---3
  9. Navicat Premium 简体中文版 12.0.16 以上版本国外官网下载地址(非国内)
  10. 教你打通 Git 任督二脉
  11. oracle imp 分隔符,Oracle的imp/exp 各版本之间的规则
  12. jQuery ajax get与post后台交互中的奥秘
  13. JavaScript 高级教程
  14. DirectX SDK 安装时出现错误 [Error Code:S1023] 的解决方案
  15. rgss3a解包器_Rgss3a解包器下载
  16. 计算机中堆栈指针的作用,堆栈指针是什么_有什么作用
  17. dim c语言,编程基础-C程序的组成
  18. [论文笔记]Vision-based Control of 3D Facial Animation
  19. 快递(EMS)增值业务解决方案
  20. QT 软键盘实现

热门文章

  1. zuul 1.x 2.x(netflix 组件)
  2. matlab 求余集,求模和求余 - moziqi - OSCHINA - 中文开源技术交流社区
  3. 【iOS】MVP模式
  4. MySql数据库基本练习题(带答案)
  5. how to use godoc
  6. 母胎级教学,工业路由器远程维护PLC详细操作指南
  7. 开学季到来该入手哪些数码好物,盘点开学必入手的几款好物
  8. 福建师范大学网络教育计算机考试,福建师范大学网络与继续教育学院《计算机应用基础》2020期末考试A卷(20200831135923).pdf...
  9. Android蓝牙打印机例子
  10. 老照片修复软件哪个好?这些软件值得收藏