• 【SQL Server + MySQL一】数据库基本知识、关系数据模型、关系数据语言--关系代数


    极其感动!!!当时学数据库的时候,没白学!!

    • 时隔很长时间回去看数据库的笔记都能看懂,每次都靠这份笔记巩固
    • 真的是语雀分享要花钱,要不一定把笔记给贴出来
    • (;´༎ຶД༎ຶ`) ,除了vue和react之外,最常看的一份笔记了!!!!

    xd们,一定要收藏粘贴下来,真的没有自夸!!!!

    • 当时学的时候,想来:就一份笔记么?脑子有病的人才一直记来记去的【框框自嘲】!有啥可分享的?现在,真香!!!

    一、 数据库基本知识

    1-1

    1. 基本概念 :

      • 数据(Data) : 数据是数据库中存储的基本对象,是描述事物的符号记录
      • 数据库(Database , DB): 存储数据的仓库
        • 永久存储: 长期存在计算机中,
        • 有组织、
        • 可共享
      • 数据管理系统(Database ManagementSystem , DBMS): 专门用于数据库创建和管理的软件
        • DDL :数据定义语言,定义数据库中的数据对象
        • DML: 数据操纵语言,增删改查
        • 运行管理:
        • 数据库的建立和维护
      • 数据库系统(DatabaseSystem ,DBS): 支持数据库的相关计算机硬件/软件、人员
        • 构成: 数据库
        • 数据库管理系统(Database Administrator,DBA)
        • 应用系统
        • 相关人员
    2. 数据的发展趋势:

      • 人工管理阶段

        image-20220304155528308

      • 文件系统阶段

        image-20220304155612019

      • 数据库系统阶段 :

        • 数据具结构化
        • 数据共享
        • 数据独立性高
        • 数据统一由DBMS管理和控制

    1-2 数据库系统的体系结构

    三层模式和二级映像

    1-2-1 三层模式

    三层模式是 对数据的三个抽象级别

    1-2-1-1 模式:
    1. 在 用户(应用程序)到数据库之间,DB的数据结构 由3个层次:

      • 外部模型,逻辑模型和内部模型

      • 三个层次要用DB的数据定义语言(DDL),定义为“模式”

    2. image-20220304112211027

    3. 逻辑模式 ( 模式):

      • 数据库中全体数据 的逻辑结构和特征的描述,综合了所有用户的需求的公共数据视图
      • 一个数据库只有一个逻辑模式
    4. 逻辑模式的地位 :

      • 数据库系统模式结构的中间层

      • 与 数据的物理存储细节 和 硬件环境无关

        • 与具体的应用程序、开发工具及高级程序设计语言无关
    5. 逻辑模式的内容:【Student(id,name,)】

    • 数据的逻辑结构(数据项的名字。类型。取值范围)
    • 数据之间的联系
    • 数据有关的安全性、完整性要求
    1-2-1-2 外模式(子模式或用户模式)

    一个用户对应多个外模式,一个外模式对应多个应用程序

    1. 数据库用户(包含应用程序员和最终用户)使用的局部数据逻辑结构和特征的描述

    2. 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示

    3. 外模式的地位:

      • 介于模式和应用之间
      • 逻辑模式与外模式的关系 : 一对多
      • 外模式通常是逻辑模式的子集
    4. 外模式与应用的关系 : 一对多

    5. 外模式用途 :

      • 保证数据库安全性的一个有力措施,每个用户只能看见和访问所对应的外模式中的数据
      • 保证数据独立性的有力措施
    1-2-1-3 内模式(存储模式)
    1. 是数据物理结构和存储方式的描述
    2. 是数据在数据库内部的表示方式
      • 记录的存储方式(顺序存储,按照B树结构存储,按hash方法存储)
      • 索引的组织方式
      • 数据是否压缩存储
      • 数据是否加密
      • 数据存储记录结构的规定
    3. 内模式只有一个

    1-2-2 二级映像

    二级映像在DBMS内部实现这三个抽象层次的联系 和转换

    • 外模式/逻辑模式映像
    • 逻辑模式/内模式映像
    1. 外模式/模式映像 :
      • 定义外模式与逻辑模式之间的对应关系
      • 每一个外模式都对应一个 外模式/模式映像
      • 映像定义通常包含在各自外模式的描述中
    2. 逻辑模式/内模式映像
      • 定义了数据全局
        • 逻辑结构和存储结构之间的对应关系
        • 例子: 说明逻辑记录和字段在内部是如何表示的
      • 数据库中模式/内模式映像是唯一的
      • 该影响定义通常包含在逻辑模式描述中

    1-2-3

    1. 保证了数据独立性
      • 指用户的应用程序 与 数据库的逻辑结构是相互独立的
      • 数据的逻辑结构改变,应用程序不变
      • 外模式/ 模式映像保证了数据的逻辑独立性
    2. 物理独立性 :
      • 用户的应用程序与 存储在磁盘上的数据库中数据是相互独立的
      • 当数据的物理存储改变,应用程序不用改变

    1-3 数据模型

    1. 在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息
    2. 数据模型 三要素:
      • 数据结构 :用于描述静态特性
      • 数据操作 : 用于描述动态特性
      • 数据的约束条件 : 是一组完整性规则的集合
    3. 数据模型的分类 :
      • 关系模型
      • 半结构化的数据模型
        • 网状模型
        • 层次模型
        • XML
        • JSON

    1-3-1 关系模型

    1. 数据机构 – 表

    1-3-2 XML

    1. XML是可扩展标记语言(eXtensible Markup Language)的缩写
    2. 常用于传输和存储数据

    1-3-3 JSON

    1. JSON : JavaScript Object Notation的缩写,去除所有JS执行代码,只保留JavaScript 的对象格式
    2. JSON作为数据传输的格式,显著优点:
      • JSON只允许使用双引号作为key,特殊字符用\转义
      • 浏览器内置JSON支持,把数据用JSON发送给浏览器,可以用JavaScipr直接处理

    二、 关系数据模型【章节思路不清】

    2-1 数据结构

    1. 关系型 : 表、SQL

      • mysql
      • oracle
      • sql server
    2. 非关系型 : noSQL,21世纪, 特殊需求

      • hadoop
      • mongoDB
      • redis
      • cassar
    3. 关系数据库系统 :

      • 关系数据库系统是支持 关系模型 的数据库系统

      • 1970年 IBM 公司的E.F.Codd 提出 关系数据模型

      • 之后 提出了关系代数关系演算的概念

      • 1972年提出了关系的第一、第二、第三范式

      • 1974年 提出了关系的BC范式

    2-2 关系数据结构

    1. 关系数据结构
    2. 关系操作
    3. 完整性约束
    1. 关系数据结构 :

      • 单一的数据结构–关系 : 现实世界的实体 以及实体之间的各种联系均用关系来表示
      • 数据的逻辑结构 – 二维表
        • 用户角度:关系模型中数据的逻辑结构 是一张二维表
    2. 关系模型建立在集合代数的基础上

      • 笛卡尔积

      • 关系

      • 关系模型

      • 关系数据库

    2-2-1 域: 一组具有 相同数据 类型的值的集合

    • 整数
    • 实数
    • 指定长度的字符串集合
    • 介于某个取值 范围 的整数
    • {,}
    • 介于某个取值范围的日期

    image-20220304161920080

    2-2-2 笛卡尔积

    • 给定一组域D1…Dn

      • 这些域可以完全不同
      • 也可部分或全部相同
    • D1…Dn 的笛卡尔积为:

      • image-20220304162124709
      • 所有域的所有取值的一个组合
      • 不能重复
      • image-20220304162317070
    • 笛卡尔积 的二维表示方法 :

      • 表中的 每行 对应一个元组
      • 表中的每列对应一个域
      • image-20220304162456754

    2-2-3 关系 (Relation):

    1. D1 × D2 × … ×Dn子集 叫做 在域 D1 , D2 . … ,Dn 上的关系

    2. 表示为 :R (D1 , D2 . … ,Dn)

      • R : 关系名
    • n: 关系的目或度(Degree)
        • 当n=1时,称该关系为单元关系(Unary relation)
      • 当n=2时,该关系为 二元关系(Binary relation)
    1. 关系举例: 在笛卡尔积中取出有 实际意义的元组来构造关系
      • SAP(SUPERVISOP, SPECIALITY,POSTGRADUATE)
      • 假设 :
        • 专业与导师 : 1: a
        • 倒是与研究生: 1:n
    2. 关系的表示 :
      • 关系也是一个二维表
        • 表的每行对应一个元组
        • 表的每列对应一个域
      • image-20220304163726388
    2-2-3-1 关于属性的几个概念:
    1. 码(Key,键) : 由一个或多个属性组成

      • 候选码(Candidate Key): 在关系中能唯一标识元组的属性或属性集
      • 主属性(Prime Attribute):候选码的各个属性
      • 主码(Primary Key) : 用户选作元组标识的候选键
      • 全码(All-key) :关系的所有属性 是这个关系的候选码
    2. 一个关系 必须 有一个key

      image-20220307142745040

    2-2-3-2 三类关系
    1. 基本关系(基本表或基表):
      • 实际存在的表,是实际存储数据的逻辑表示
    2. 查询表:
      • 查询结果对应的表
    3. 视图:
      • 由基本表或其他试图导出来的表,是虚表,不对应实际存储
    4. 基本关系的性质:
      • 列是同质的
        • 每一列中的分量 是同一类型 的数据,来自同一个域
      • 不同的列可出自同一个域
        • 其中的每一列称为一个属性,不同的属性要给予不同的属性名
      • 列的 顺序无所谓
      • 任意两个元组不能完全相同
      • 行的顺序无所谓
      • 分量必须取 原子值
    5. 一个关系有多少种等价形式?
    2-2-3-3 关系的性质
    1. 一个关系实力的属性个数和元组个数,考虑到元组的顺序和属性的顺序,则这个实例有多少种不同的表示形式?
      • 3个属性,3个元组。例如关系Account?
        • 3!× 3! = 36
    2. image-20220421121219918

    2-3 关系模式:

    1. 什么是关系模式

      • 关系模式(Relation Schema)是对关系的描述
      • 关系模式是型,关系是值
      • 弹幕 : 关系模式是类 关系是对象,类的实例
    2. image-20220307144231084

      1. 关系和关系模式 :
      2. 关系模式通常记为 : R(U) 或 R(A1,A2,…,An)
      3. R : 关系名
      4. A1,A2,…,An :属性名

      学生(学号,姓名,年龄,性别,籍贯)

      • 关系模式
        • 对关系的描述
        • 静态的、稳定的
      • 关系
        • 关系模式在某一时刻的状态或内容
        • 动态的、随时间不断变化的

    2-4 关系数据库

    1. 在一个给定的应用领域中,所有实体及实体之间联系的关系的集合构成一个关系数据库

      • 教学管理数据库中有四个关系 :

        教室关系T,课程关系C,学生关系S,选课关系SC

    2. 关系数据库模式是关系数据库的型,是对关系数据库的描述

      • 教学管理数据库中有四个 关系模式

        image-20220307145251097

    2-5 关系操作

    1. 常用的关系操作: 查询、插入、删除、修改
    2. 关系操作的特点 : 集合操作方式
    3. 关系数据语言的种类:
      • 关系代数语言
      • 关系演算语言
      • 具有上两者 双重特点的语言,SQL
    4. 关系数据语言的特点 :
      • 一种高度过程化的语言
      • 能够嵌入高级语言中使用

    2-6 关系的完整性约束

    1. 关系模型的完整性规范是指对关系的某种约束条件
    2. 关系模型中的三类完整性约束:
      • 实体完整性
      • 参照完整性
      • 用户定义的完整性
    3. 实体完整性 和 参照完整性 是关系模型必须满足的完整性约束条件,被称为关系的两个不变性

    2-6-1 实体完整性

    1. 实体完整性 :
      • 主码唯一且不为空
      • 主属性不能取空值
      • image-20220307151711531

    2-6-2 参照完整性

    1. 关系间的引用

      image-20220307151859956

    2. 外码必须是另一个关系的主码,或者有唯—约束的列

    3. Foreign Key (外键) : 如果一个关系R中的一个属性F 对应着 另一关系S 的主码K

      • 那么F在关系R中称为外码

    2-6-3 用户自定义完整性

    六、 关系数据语言–关系代数【13练习没看】

    • 关系代数,关系演算
    • SQL

    6-1 基础

      • 并、差、交
      • 投影、选择
      • 笛卡尔积、连接
      • 重命名
    1. 关系代数 :

      • 一种抽象的数据查询语言
      • 用对关系的运算来表达查询
        • 运算对象 : 关系
        • 运算符: 4类
        • 运算结果: 关系
    2. 关系运算符 :

      • 传统集合运算符:

        • U – ∩
        • 将关系看成元组的集合
        • 所有的运算对象必须具有相同的结构
      • 专门的关系运算符

        image-20220307154606422

      • 辅助 专门的关系运算符 :

        image-20220307154637316

    6-2 传统的集合运算

    1. image-20220314150130326

    2. 并运算的例子 :

      image-20220314150235946

      1. 差运算
    3. 交运算

    6-3 投影和选择

    6-3-1 投影
    1. 用于从R中选择出 若干属性列组成新的关系

      ΠL®

      • L为R属性列表
      • 结果为只包含R中某些列的新的关系
      • 结果要去掉重复元组
    2. 例子:

      image-20220314151211995

      image-20220314151322565

    3. 例子二:

      image-20220314151427594

    6-3-2 选择(Selection)
    1. 用于在关系R中选择满足 给定条件的各个元组

      image-20220314151553703

      • C : 选择条件,是一个逻辑表达式
      • 结果为只包含R中某些元组的新的关系
    2. image-20220314152004866

    3. 例子二:

      image-20220314152159224

    4. 例子三:

      image-20220314152437588

    5. 例子四 : 投影+选择

      image-20220314152703835

    6-4 笛卡尔积,连接

    6-4-1 笛卡尔积(Cartesian Product)
    1. R关系 : n个属性,k1个元组

    2. S关系: m个属性,k2个元组

    3. R×S :

      • 将R中的每个元组t1和S中的每个元组t2配对连接
      • 列数: n+m
        • 前n列是关 系R的一个元组t1
        • 后m列是关系S的一个元组t2
      • 行数 : K1 ×k2
      • 当R和S中有重名属性A时,则采用R.A和S.A分别命名对应的属性列表

      image-20220314153443196

    6-4-2 连接(Join)
    1. image-20220314153709866
    2. 连接运算 : 从R和S的笛卡尔积 R×S中 选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较条件的元组
    6-4-3 两类常用连接运算 — 等值连接
    1. 等值连接概念:
      • 为“=”的连接运算称为等值运算
    2. image-20220314154351920
    3. 等值连接的含义 :
      • 从关系R与S的笛卡尔积中选取A、B属性值相等的那些元组
      • image-20220314154459807
    6-4-3 两类常用连接运算 —自然连接
    1. 自然连接 : 在公共属性(组)上进行的等值连接

      • 两个关系中必须具有公共属性(组)

      • 在结果中把重复的属性列去掉

        image-20220314155024580

    6-4-4 重命名
    1. image-20220315105209376
    2. image-20220315105241845

    6-5 练习

    1. image-20220422174543653
  • 相关阅读:
    当鼠标移入一个元素时、其它隐藏部分的元素展示出来【如何将隐藏的操作展示、将只读信息变为可输入的内容】
    VR结合|山海鲸虚拟展厅解决方案
    哈佛结构和冯诺依曼结构
    剑指offer(C++)-JZ53:数字在升序数组中出现的次数(算法-搜索算法)
    C语言中常用的字符串处理函数(strlen、strcpy、strcat、strcmp)
    将Servlet项目改为SSM项目
    数字时代的探索与革新:Socks5代理的引领作用
    第六十一章 CSP的常见问题 - 我希望我的页面每60秒自动刷新一次。我应该怎么做
    【算法刷题 | 贪心算法03】4.25(最大子数组和、买卖股票的最佳时机|| )
    phpstrom 快速注释:
  • 原文地址:https://blog.csdn.net/hannah2233/article/details/128093927