• 《数据库原理》课程笔记 (Ch02-数据模型)


    * 层次数据模型(了解)

    用树型(层次)结构表示实体类型及实体间联系。只能表示1:N联系。编写应用程序比较复杂。

    除根以外,所有的记录型都应该有唯一的双亲。PCR:双亲子女关系

    现实世界中需多数据不是层次型的。而层次数据模型在表示多对多、多个祖先的关系时会产生数据冗余,浪费存储空间,且会导致数据的不一致。

    * 网状数据模型(了解)

    用有向图(网络结构)表示实体及实体之间联系。编写应用程序比较复杂。

    关系数据模型

    以集合论中的关系概念为基础。用表格结构表达实体集,用外键表示实体间联系。

    基本概念

    • 属性和域

      属性描述事物的特征,域是一个属性的所有合法取值的集合。

    • 关系和元组

      例如:学生的关系模式 STUDENT(学号,姓名),其中某一个学生 <9098138,李彤> 就是关系R的一个元组

      关系对应表,属性对应列,元组对应行。

    • 关系的某一个属性或属性组的值唯一地决定其它所有属性的值,而其任何真子集无此性质。通常从键中选一个作为主键。

    外键是引用其它关系的键或本关系的键

    完整性约束

    • 域完整性约束

      属性值应是域中的值,或在语义合法的前提下可为空。

    • 实体完整性约束

      每一个关系都应有一个值非空的主键,用来唯一识别一个元组。

    • 引用完整性约束

      外键要么是空缺,要么是引用实际存在的主键值。

    • 一般性完整性约束

    关系代数操作

    • 选择操作(sigma _{cond} (R))

      横向挑选,选出符合条件cond的记录。相当于SELECT * FROM R WHERE cond

      性质:

      后者效率更高。

    • 投影操作(Pi _{attrs}(R))

      竖向挑选,选出R中的attrs这些属性。

      与选择操作组合使用即可实现我们常用的SELECT attrs FROM R WHERE cond

    • 集合操作

      交并差。参与集合操作的项目必须有相同的目,且对应属性的域相同才有意义。

    • 连接操作$R ∞_{cond} S=sigma _{cond}(R imes S) $

      即作笛卡尔积后进行选择操作。笛卡尔积是将两个表强行拼在一起,属性数为两个表属性数的和,记录数为两个表记录数的积,如[a,b,c]×[1,2,3]=[[a,1], [a,2], [a,3], ...]

      连接条件

      • 等连接

        条件均为=构成。①做笛卡尔积;②选择出同时满足R.Ai=S.Ai的元组。

      • 自然连接

        在等连接后去除重复属性。

    • 除法

      R÷S就是判断关系R中,属性或属性集X的各种取值的属性或属性集Y构成的集合,是否包含关系S中属性Y的所有取值

    • 外连接

      外连接与连接操作的区别在于保留非匹配元组

      • 左外连接:保留左关系的非匹配元组
      • 右外连接:保留右关系的非匹配元组
      • 全外连接:保留左、右关系的非匹配元组

    关系演算

    关系代数表示关系的操作,用户必须指出运算方法步骤;而关系演算用谓词公式表示查询条件,指出“做什么”,而“怎么做”则由系统去完成。目前,面向用户的关系数据库语言基本上都以关系演算为基础。

    • 元组关系演算

      {t[〈属性表〉]|P(t)}

      t是元组变量,如查询整个t,则可省去属性表。P(t)是t应满足的谓词。

    • 域关系演算

      以域为变量。

      关系GRADE(学号,课程号,成绩),查询须补考的学生的学号和补考的课程号:

    E-R数据模型

    传统数据模型以记录为基础,不能很好地面向用户和应用,记录和实体不一定相对应。

    E-R数据模型是一种有代表性的统一的非传统数据模型。E-R不是面向实现,而是面向现实世界的。

    • 实体:可以相互区别、被人识别的事物
    • 属性:实体的特征
    • 实体键:能够唯一识别实体的属性或属性组
    • 联系:表示实体和实体间的关系,一对一、一对多、多对多
    • 实体参与度:实体参与联系的次数范围,例如学生的选课次数

    范式

    构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。

    • 第一范式(1NF)

      每个属性值都是不可再分的最小数据单位

      例如职工可能有多个电话,则电话应分属性或分记录存储,不能合起来存储

    • 第二范式(2NF)

      非主属性全部依赖于全部主键

    • 第三范式(3NF)

      非主键列必须直接依赖于主键,不能存在传递依赖

      例如:主键是课程编号,列1是教师名,列2是教师地址。教师地址传递依赖于教师名,不满足第三范式。

  • 相关阅读:
    Spring AOP获取拦截方法的参数名称跟参数值
    mybatis generator逆向工程自动生成带中文注释修改版(添加了实体类注释)文末附有git下载地址
    关于Java编写多行注释遇到方法字符串中正好也有注释符号产生冲突的解决办法
    SpringBoot入门学习以及整合MyBatis
    IO跟NIO的区别
    redis的配置文件详解redis.conf
    Redis入门基础内容(转载整理非原创)
    深入网络协议来理解数据传输三(http协议详解)
    深入网络协议来理解数据传输二(转载整理)
    Python编写ATM(初级进阶)
  • 原文地址:https://www.cnblogs.com/zxuuu/p/12943939.html
Copyright © 2020-2023  润新知