zoukankan      html  css  js  c++  java
  • 数据库系统原理(二)

    数据库系统原理(二)


    关系数据模型

    • 数据模型的三要素:

      • 数据结构
      • 数据操作
      • 数据约束
    • 关系数据模型的三要素:

      • 关系数据结构
      • 关系操作集合
      • 关系完整性约束

    表:也称为关系,是一个二维的数据结构,由表名、列、和若干行数据组成

    • 关系的三种类型

      • 基本关系(基本表、基表) ------------------真是存在的表
      • 查询表 ---------------------------------------导出的虚表
      • 视图表 ---------------------------------------导出的虚表
    • 关系(表)中的相关概念和别称:

      • 列:也称 字段属性
      • 属性的个数称为关系的
      • 列的值称为属性值,取值范围称为值域
      • 行:也称 元组记录,表中的数据按行存储
      • 分量:元组(行)中的一个属性值,称为分量,具体的数据项(或者说具体的一个单元格)
      • 码或键(Key):一个属性(或属性组)的值都能用来唯一标识该关系的元组,则称这个属性(或属性组)为该关系的码或键
      • 超码或超键: 在码中去除某个属性,它仍然是这个关系的码;一个关系中有多个超码或超键
      • 候选码或候选键或候选关键字: 在码中不能从中移去任何一个属性,否则它就不再是这个关系的码或键,这样的码称为候选码或候选键;候选码或候选键是这个关系的最小超码或超键
      • 主属性或非主属性:包含在任何一个候选码中的属性称为主属性或码属性
      • 主码或主键: 在若干个候选码中指定一个唯一标识关系的元组(行)
      • 全码或全键: 一个关系模式的所有属性集合是这个关系的主码或主键,这样的主码或主键称为全码或全键
      • 外码或外键: 某个属性(或属性组)不是这个关系的主码或候选码,而是另一个关系的主码,这个属性称为这个关系的外码或外键
      • 参照关系和被参照关系: 参照关系也称为从关系,被参照关系也称为主关系,它们是指以外码相关联的两个关系
      • 域: 表示属性的取值范围
      • 数据类型: 每个列都有相应的数据类型,它用于限制(或容许)该列中存储的数据
      • 关系模式: 关系模式是型(type),关系是 值(value),即关系模式是对关 系的描述;关系模式是静态的、稳定的;关系是动态的、随时间不断变化的
      • 关系数据库: 所有关系的集合,构成一个关系数据库;以关系模型作为数据的逻辑模型,并采用关系作为数据组织方式的一类数据库,其数据库操作建立在关系代数的基础上

    基本的关系操作

    • 查询(Query)
      • 选择
      • 投影
      • 笛卡尔积
    • 插入(insert)
    • 删除(Delete)
    • 修改(Update)

    关系操作的特点是:集合操作方式(一次一集合)

    • 关系语言的分类

      • 关系代数语言
      • 关系演算语言
        • 元组关系演算
        • 域关系演算
        • SQL 结构化查询语言
    • 传统集合运算:

      • 并(U) 多表求和
      • 差(-) 多表求差
      • 交(∩) 多表求交集
      • 笛卡尔积(X) 多表求积
    • 专门的关系运算

      • 选择:σF(R) F表示表名,R表示条件,得到的是一行行的数据
      • 投影:πA(R) A表示表名,R表示字段,多个字段用,隔开;得到的是属性对应的值

    共同特点:具有完备的表达能力,是非过程化的集合操作语言,功能强,能够独立使用也可以嵌入高级语言中使用

    • 任何一种操作都包含三大要素:
      • 操作对象
      • 操作符
      • 操作结果
    • 关系数据库对关系的限定/要求:
      • 每一个属性都是不可分解的(不允许表中有表)
      • 每一个关系仅仅有一种关系模式
      • 每一个关系模式中的属性必须命名,属性名不同
      • 同一个关系中不允许出现候选码或候选键值完全相同的元组
      • 在关系中元组的顺序(即行序)是无关紧要的,可以任意交换
      • 在关系中属性的顺序(即列序)是无关紧要的,可以任意交换。

    同一库中,表名必须唯一;同一表中,字段名必须唯一

    关系完整性约束

    数据完整性是指数据库中数据的正确性、相容性、一致性

    • 实体完整性约束
      • 主码的组成不能为空,主属性不能是空值null
    • 参照完整性约束
      • 定义外码和主码之间的引用规则
      • 外码等于主码中某个元组的主码值或者为空值
    • 用户定义完整性约束
      • 域完整性约束(针对某一应用环境的完整性约束)

    关系模式中可能存在的冗余和异常问题

    • 数据冗余:指同一数据被反复存储的情况
    • 更新异常:数据冗余造成的
    • 插入异常
    • 删除异常
  • 相关阅读:
    js每天进步一点点
    优化数据库的方法及SQL语句优化的原则
    实用js代码大全
    【怒转】 idea快捷键说明大全(中英文对照)
    正则表达式手册
    Flink分布式缓存Distributed Cache
    初识Flink广播变量broadcast
    怒转一波,此人整理的Flink特别好
    flink批处理中的source以及sink介绍
    初识Flink-从WorldCount开始
  • 原文地址:https://www.cnblogs.com/SunArmy/p/11340321.html
Copyright © 2011-2022 走看看