02关系数据库

  • 2.1关系数据结构及其形式化定义
    • 1970年E.F.Codd提出关系数据模型,关系数据库之父.1972提出关系代数和关系演算为sql奠定了基础
    • 什么是关系模型
      • 用二维表格表示实体集,用码进行数据导航的数据模型称为关系模型
    • 关系模型的三要素
      • 关系数据结构
      • 关系操作
      • 关系的完整性
    • 2.1.1关系
      • 单一的数据结构--关系
      • 逻辑结构---二维表
      • 建立在集合代数的基础上
        • 域:一组具有相同数据类型的值的集合
        • 笛卡尔积:所有的域所有的值的一个组合,不能重复
          • 笛卡尔积中的每一个元素叫作一个N元组或简称元组
          • 笛卡尔积元素中的每一个值叫作一个分量
          • D1*D2*DN=基数M
          • 笛卡尔积可表示一张二维表行为元组,列为域
        • 关系:(由笛卡尔积子集)
          • D1*D2*D3*.....*Dn的子集叫作在域D1,D2,D3,Dn的关系表示为 R(D1,D2,D3,Dn)
          • R:关系名 n:关系的目或度 (n个属性)
          • 关系中的每个元素=元组,用t表示,n=1单元关系(1个属性)
          • 关系是一个二维表行为元组,列为域,列的名字为属性,n目关系必有n个属性
          • 关系中的码

            • 候选码=主属性.不包含在任何候选码中的属性为非主属性或非码属性
          • 三类关系
            • 基本关系(基本表/基表) 实际存在的表是存储数据的逻辑表示
              • 列是同质的,不同列可出自同一个域,列行顺序无所谓,任意两个元组的候选码不能相同,候选码唯一标识一个元组,分量必取原子值不可表中表
            • 查询表 查询结果对应的表 虚表
            • 视图表 基本表.其他视图表导出的表 是虚表
    • 2.1.2关系模式
      • 1.什么是关系模式
        • 关系模式是型(模子) 静态的,稳定的
        • 关系是值 (零件) 动态的,随时间不断变化的 关系模式在某一时刻的状态或内容
        • 关系模式是对关系的描述,两者笼统称为关系
      • 2.定义关系模式

      • 3.关系模式与关系
        • sql的学生选修成绩表 域名及属性向域的映像常常直接说明为属性的类型长度

    • 2.1.3关系数据库
      • 在一个给定的应用领域中,所有关系的集合构成一个关系数据库(表的集合)
    • 2.1.4关系模型的存储结构
      • 有的关系数据库管理系统中一个表对应一个操作系统软件,将物理数据组织交给操作系统完成
      • 有的关系数据库管理系统从操作系统那里申请若干个大的文件,子集划分文件空间,组织表索引等存储管理
  • 2.2关系操作
    • 常用操作
      • 查询操作:选择 投影 并 差 笛卡尔积连接 除 交
      • 数据更新 :插入 删除 修改
      • 关系操作的特点:集合操作方式,操作的对象和结果都是集合,一次一集合
    • 具有关系代数和关系演算双重特点的语言 :sql
  • 2.3关系的完整性约束
    • 2.3.1实体完整性
      • 若属性A是基本关系R的属性,则属性A不能取空值 主属性不能为空 主属性=候选码 非主属性:不包含在主码中的属性
      • 实体完整性规则是针对基本关系而言的,一个基本表通常对应现实世界的一个实体集
    • 2.3.2参照完整性
      • 1.关系间的引用
        • 在关系模型中实体及实体间的联系都是用关系来描述的,自然存在着关系与关系间的引用(单一的数据结构)
      • 2.外码
        • 设F是基本关系R的一个或一组属性,但不是关系R的码.如果F与基本关系S的主码ks相对应,则称F是R的外码
        • 基本关系R称为参照关系(有外码)
        • 基本关系S称为被参照关系或目标关系(主码被参照)
        • 在参照完整性规则中,R和S可以是同一个关系。
          • 在学生(学号,姓名,性别,年龄,专业号,班长)关系中,“学号”属性是主键,“班长”属性表示该学生所在班级的班长的学号,因此它应用的本关系“学号”属性。按照参照完整性规则,“班长”属性可以取以下两类值:
          • (1)空值,表示该学生所在班级尚未选出班长。
          • (2)非空值,该值必须是本关系中某个元组的学号值,即某个当选班长的学生的学号值。
        • 主码,外码必须定义在同一个(或一组)域上
        • 外码并不一定要与相应的主码同名(外码主码属于不同关系的时候,往往取相同名字便于识别)
      • 3.参照完整性规则
        • 若属性或属性组 F 是基本关系R 的外码它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系)则对于R中每个元组在F上的值必为
        • 或者取空值(F的每个属性值均为空值) 或者等于S中某个元组的主码值
        • 外码所在的属性列值等于主码值或者为空值
    • 2.3.3用户定义的完整性
      • 数据满足语义要求
      • 关系模型应提供定义和检验这类完整性的机制,以便使用统一的系统的方法以便用统一的系统的方法处理它们,而不需由应用程序承担这一功能
  • 2.4关系代数
    • 关系代数运算

      • 关系代数是一种抽象的查询语言,它用对关系的运算来表达查询。运算对象结果都是关系。
      • 传统的几何运算是从关系的水平方向即行的角度进行
      • 专门的关系运算不仅涉及行而且涉及列
    • 四类运算符
      • 传统

        • 并差交仍为N目关系
        • 笛卡尔积:R:n目关系,K1个元组 S:m目关系,K2个元组
        • RxS 列:(n+m)列元组的集合 行:K1 x K2 个元组
      • 专门的关系运算符

        • 选择运算是从关系R中选取使逻辑表达式F为真的元组,从行的角度进行的运算

          • 例如查询年龄小于20岁的学生 𝝈𝖲𝖺𝗀𝖾<20(Studengt) 总分,域中取值
        • 投影
          • 分总 由值寻域

          • 查询学生的姓名和所在系,即求Student关系上学生姓名和所在系两个属性上的投影
            • π sname,sdept(Student)
        • 连接
          • 连接也称为θ连接

          • 两类常用连接运算
            • 等值连接
              • θ为=的连接运算称为等值连接
              • 从关系R与S的广义笛卡尔积中选取A B属性值相等的那些元组
            • 一般的连接从行的角度进行计算
            • 自然连接
              • 自然连接是一种特殊的等值连接
                • 两个关系中进行比较的分量必须是相同的属性组
                • 在结果中把重复的属性列去掉
              • 关系中(即表中)相同属性的做连接;桥接:至少三表连接
            • 自然连接取消重复列,同时从行和列角度进行计算
          • 悬浮元组(被舍弃的元组)
            • 两个关系R和S在做自然连接时,关系R中某些元组有可能在S中不存在公共属性上值相等的元组,从而造成R中这些元组在操作时被舍弃了,这些被舍弃的元组称为悬浮元组
            • 外连接:把悬浮组也保存在结果关系中,而在其他属性上填空值就叫做外连接
              • 左外连接:只保留左边关系R中的悬浮元组
              • 右外连接:只保留右边关系S中的悬浮元组
        • 除运算
          • 象集Z

          • 除运算同时从行和列进行运算

          • 打卡网红地带入理解

  • 2.5关系演算

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值