• 关系:整个二维表
  • 关系名:表格名称
  • 元组:行数据(记录)
  • 属性:列数据(字段/分量)
  • 属性名:列名称(字段名)
  • 主键:唯一确定元组的属性组(关键字)
  • 域:属性的取值范围
  • 关系模式:关系的描述,表示为:关系名(属性列表)

    例如:学生(学号,姓名,性别,年龄,系别)

  • 关系的约束:域完整性约束,实体完整性约束,参照完整性约束

一、关系依赖

  • 函数依赖:X—>Y,即X函数决定Y,或Y函数依赖于X。

    • 例:学号—>姓名       #学号决定姓名
  • 平凡函数依赖:X—>Y,但X包含Y (Y包含于X)。
    • 例:(学号,课号)—>课号  #课号存在于 (学号,课号) 之中。
  • 非平凡函数依赖: X—>Y,但X不包含Y。
    • 例:(学号,课号)—>成绩  #成绩不存在于 (学号,课号) 之中。
  • 完全函数依赖:X—>Y,对于X的任意一个真子集X'都有X'不能函数决定Y。
    • 例:(学号,课号)—>成绩  #只有学号或姓名无法决定成绩,二者缺一不可。
  • 部分函数依赖:X—>Y,存在X的某一个真子集X'能够函数决定Y。
    • 例:(学号,课号)—>姓名  #只有学号就能决定姓名,课号为冗余项。
  • 传递函数依赖:X—>Y,X不包含Y,Y不函数决定X,Y—>Z,即Z对X传递函数依赖。
    • 例:学号—>系号,(系号不函数决定学号) ,系号—>系主任,则系主任传递函数依赖于学号。
  • 多值依赖:X—>—>Y,设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X—>—>Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值有一组Y的值,这组值仅仅决定于x值而与z值无关。

    • 例:关系模式R(仓库,管理员,物品)

      • 一个仓库有若干个管理员

      • 一个仓库可以存放多个物品

      • 一个管理员管理一个仓库中的所有物品

      • 一种物品只能放在一个仓库里

       则:仓库—>—>物品,仓库—>—>管理员

      表中,R = 仓库+管理员+物品,(仓库,管理员)确定一组物品,但是物品其实与管理员无关,仅由仓库确定,所以:仓库—>—>物品。又因为(R-仓库-物品)不是空集,所以  仓库—>—>物品为非平凡多值依赖。

      表中,R = 仓库+管理员+物品,(仓库,物品)确定一组管理员,但是管理员其实与物品无关,仅由仓库确定,所以:仓库—>—>管理员。又因为(R-仓库-管理员)不是空集,所以  仓库—>—>管理员为非平凡多值依赖。

  • 平凡的多值依赖:若X—>—>Y, 并且X,Y,Z是U的子集,Z=U-X-Y,而Z为空集,则称X—>—>Y为平凡的多值依赖;
  • 非平凡的多值依赖:若X—>—>Y, 并且X,Y,Z是U的子集,Z=U-X-Y,若Z不为空,则称X—>—>Y为非平凡的多值依赖。
  • 连接依赖:为提高规范化程度,都是通过把低一级的关系模式分解为若干个高一级的关系模式来实现的,在此过程中,应该保证分解后产生的关系模式与原来的模式等价。常用的等价标准有两种:要求分解具有无损连接性和要求分解保持函数依赖。
    • 无损连接性的判别:将关系模式R<U,F>分解为关系模式R1<U1,F1>,R2<U2,F2>。如果(U1 ∩ U2 —>U1)∈F+(F的闭包,即F所蕴含的函数依赖的全体),或(U1 ∩ U2 —>U2)∈F+ ,即U1 ∩ U2 是R1的候选码或是R2的候选码,则这个分解一定是具有无损连接性的。

二、关系模式的规范化

  • 满足第一范式条件的关系模式(1NF):关系模式 R的每一个属性都是原子域,元组的每一个分量都是不可分割的数据项。
  • 满足第二范式条件的关系模式(2NF):关系模式 R∈1NF ,每一个非主属性完全函数依赖于码,消除非主属性对码的部分函数依赖。
  • 满足第三范式条件的关系模式(3NF):关系模式 R∈2NF ,每一个非主属性不传递依赖于码,消除非主属性对码的传递函数依赖(对非主属性的函数依赖)。
  • 满足Boyce-Code范式条件的关系模式(BCNF):关系模式 R∈3NF ,对于每一个非平凡函数依赖X—>Y,都有X包含码,消除主属性对于码的部分函数依赖与传递函数依赖。(在函数依赖的范畴内,BCNF达到了最高的规范化程度)
  • 满足第四范式条件的关系模式(4NF):关系模式 R∈BCNF ,对于每一个非平凡的多值依赖X—>—>Y(Y⊄X),都有X包含码。(限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖)
  • 满足第五范式条件的关系模式(5NF):关系模式 R∈4NF,消除属于4NF的关系模式中存在的连接依赖。

    规范程度层次:5NF4NF⊂BCNF⊂3NF⊂2NF⊂1NF

三、“好的”关系数据库系统应具有的特点

    • 适度减少数据冗余。
    • 关系明确,表与表之间主外键设置明确,表名称明确。
      • 对关系模式的属性间允许的数据依赖加以限制,减少表中非主属性间存在的函数依赖,避免更新异常问题。
      • 非主属性完全函数依赖于码,不允许有非主属性对码的部分函数依赖。
      • 非主属性不传递依赖于码。
    • 选择合理的数据库引擎,查询操作较多的与增删改操作较多的数据库分别使用不同的引擎。

MySQL · 关系模型的基本术语的更多相关文章

  1. 数据库设计和ER模型-------之关系模型的基本概念(第二章)

    关系模型的基本术语 定义:用二维表格来表示实体集,用关键码表示实体之间联系的数据模型称为关系模型 有时也习惯称呼关系为表或表格,元组为行(Row),属性为列.关系中属性个数称为“元数”,元组个数称为“ ...

  2. 数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型

    Data base: 长期存储在计算机内,有组织的,可共享的大量数据集合.基本特征:永久存储,可共享,有一定的物理和逻辑结构. Data base manage system(DBMS):用户和os之 ...

  3. Sequelize 关系模型简介

    Sequelize 关系模型简介 先介绍一下本文用到的术语: 源: 调用 sequelize 中关系方法的调用者 目标: 调用 sequelize 中关系方法中的参数 比如, User.hasOne( ...

  4. 数据库 之 E-R实体关系模型

    E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型. 1.表示方法 E-R是描述现实世界概念结构模型的 ...

  5. 关系、关系模式、关系模型blablabla...

    好久没碰<数据库系统概论>了,最近翻了翻发现好多专业名词都忘记了, 现在有空特地记录下. 名词解释 数据:数据就是数据库中存储的基本数据,比如学生的学号.学生的班级数据库:存放数据的仓库数 ...

  6. 【SQL】关系数据库概念及数据模型和关系模型

    一.关系数据库 目前关系数据库是数据库应用的主流,许多数据库管理系统的数据模型都是基于关系数据模型开发的. 1)关系数据库:在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库. 2 ...

  7. 数据库系统原理——ER模型与关系模型

    原文链接: http://blog.csdn.net/haovip123/article/details/21614887 犹记得第一次看<数据库系统原理>时看天书的感觉,云里雾里:现在已 ...

  8. ER模型到关系模型的转换规则

    E-R模型向关系模型的转换规则: 一.两元联系的转换规则 (1)实体类型的转换 将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系的键. (2)联系类型的转换 a实体间的联 ...

  9. 分享一个自己写的基于TP的关系模型

    为了说明问题,假设现在有表test1,test1有从表test2:test1属于test3,test1和test4多对多,关联表test1_test4. 1.定义关系 class Test1Model ...

随机推荐

  1. hdoj1045 Fire Net(二分图最大匹配)

    题意:给出一个图,其中有 . 和 X 两种,. 为通路,X表示墙,在其中放炸弹,然后炸弹不能穿过墙,问你最多在图中可以放多少个炸弹? 这个题建图有点复杂orz. 建图,首先把每一行中的可以放一个炸弹的 ...

  2. eclipse代码中使用到Launcher获取类加载器,找不到启动器类。

    解决:移除系统依赖的jar包,重新导入. 只需要在project build path中先移除JRE System Library,再添加库JRE System Library,重新编译后就一切正常了 ...

  3. 酷!美国国家安全局(NSA)开源了逆向工程工具 Ghidra

    简评:2019 RSA 大会期间,NSA 正式发布了这个工具.免费 + 开源,真的有吸引力,据说体验可以和 IDA 一较高下. Ghidra 是由美国国家安全局(NSA)研究理事会创建和维护的软件逆向 ...

  4. python学习笔记07-元组 字典

    元组: 元组里面的元素不可修改  创建后只可读  不可写 一个元素的时候 在后面加一个逗号 字典: 无序的 Python 中唯一的映射类型 采用键值对的形式存储数据 key必须是可哈希的  可哈希表示 ...

  5. 【LeetCode】462. 最少移动次数使数组元素相等 II

    给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1. 您可以假设数组的长度最多为10000. 例如: 输入: [1,2,3] 输出: 2 说明: 只 ...

  6. 目标检测算法—YOLO-V1

    为什么会叫YOLO呢? YOLO:you only look once.只需要看一眼,就可以检测识别出目标,主要是突出这个算法 快 的特点.(原文:Yolo系列之前的文章:主要是rcnn系列的,他们的 ...

  7. zabbix数据库表结构解析

     下面开始介绍: 1.添加监控表结构详解 (1)hosts,存储被监控的机器的信息,表结构如下: (2)items (3)hosts_templates,存储机器和模版或者模版和模版之间的关系 由于模 ...

  8. 利用Windows资源监视器解决文件夹无法改名无法删除问题

    在win7等Windows系统操作文件夹更名.删除时经常会报错,操作无法完成,balabala 这个时候仅凭在用的软件去一个一个找是很难的,即便软件全关了,还有后台进程,,,奔溃吧 好了,现在我们有了 ...

  9. Netty核心概念(8)之Netty线程模型

    1.前言 第7节初步学习了一下Java原本的线程池是如何工作的,以及Future的为什么能够达到其效果,这些知识对于理解本章有很大的帮助,不了解的可以先看上一节. Netty为什么会高效?回答就是良好 ...

  10. Observer观察者设计模式

    Observer设计模式主要包括以下两种对象: (1)被观察对象:Subject,它往往包含其他对象感兴趣的东西,上面例子中热水器中就是Subject(被监视对象); (2)观察对象:Observer ...