软件设计师备考笔记(九):数据库技术基础

文章目录

  • 一、基本概念
  • 二、数据模型
    • (一)基本概念
    • (二)E-R模型
    • (三)数据模型
  • 三、关系代数
    • (一)关系数据库的基本概念
    • (二)五种基本的关系代数运算
    • (三)扩展的关系代数运算
  • 四、关系数据库SQL语言简介
    • (一)SQL体系结构
    • (二)SQL数据定义
    • (三)SQL数据查询
    • (四)SQL数据更新
    • (五)SQL数据控制
  • 五、关系数据库的规范化
    • (一)函数依赖
    • (二)规范化
    • (三)模式分解及分解应具有的特性
  • 六、数据库的控制功能
    • (一)事务管理
    • (二)数据库的备份与恢复
    • (三)并发控制
    • (二)数据库的备份与恢复
    • (三)并发控制


一、基本概念

  1. 数据库系统(DBS):广义上讲,数据库系统是由数据库、硬件、软件和人员组成的。DBS包括DB和DBMS。

  2. 数据库(DB):统一管理的、长期储存在计算机内的、有组织的相关数据的集合。

  3. 数据库管理系统(DBMS):实现功能包括数据定义、数据库操作、数据库运行管理、数据的组织存储和管理、数据库的建立和维护、其他功能。

  4. 数据库系统的体系结构:集中式数据库系统、客户端/服务器结构、并行数据库系统、分布式数据库系统。

    a. 分布式数据库相关概念:分片透明(无需知道如何分块存储)、复制透明(无需知道如何复制)、位置透明(无需知道物理位置)、逻辑透明(无需知道局部使用哪种模型)。

    b. 分布式数据库特性:共享性(不同节点数据共享)、自治性(独立管理本地数据)、可用性(使用副本避免瘫痪)、分布性(数据不同场地存储。)

  5. 数据库的三级模式结构:采用“三级模式和两级映像”。

    a. 概念模式(模式):数据库中全部数据的逻辑结构和特征的描述,若若干个概念记录类型组成。

    b. 外模式(用户模式或子模式):用户与数据库系统的接口,用户用到的那部分数据的描述。

    c. 内模式(存储模式):数据物理结构和存储方式的描述,定义所有的内部记录类型、索引和文件组织方式等内容。

    d. 两级映像:包括模式/内模式映像(保证数据的物理独立性)和外模式/模式映像(保证数据的逻辑独立性)。


二、数据模型

(一)基本概念

  1. 最常见的数据模型分为:概念数据模型、基本数据模型。

  2. 数据模型的三要素:数据结构、数据操作、数据的约束条件。

(二)E-R模型

  1. 实体。

  2. 联系:一对一、一对多、多对多。

  3. 属性:简单属性和复合属性、单值属性和多值属性、NULL属性(无意义或不知道)、派生属性(能从其他属性得来)。

  4. 实体-联系方法。

  5. 扩充的E-R模型:

    a. 弱实体:一个实体的存在必须以另一个实体为前提。用双线矩形框表示。

    b. 特殊化:从普遍到特殊的过程。超类-子类关系模型使用特殊化圆圈和连线的一般方式表示。

在这里插入图片描述

(三)数据模型

  1. 层次模型:树结构。

  2. 网状模型:图结构。

  3. 关系模型:目前最常用的数据模型之一,采用表格结构表达实体集以及实体集之间的联系。 由关系数据结构、关系操作集合和关系完整性约束三部分组成。

  4. 面向对象模型。


三、关系代数

(一)关系数据库的基本概念

  1. 关系模型的一些基本术语。

    a. 关系:一个关系就是一张二维表,每个关系有一个关系名。

    b. 元组:表中的一行即为一个元组,对应存储文件中的一个记录值。

    c. 属性:表中的列称为属性,包括属性名和属性值。

    d. 域:属性的取值范围。

  2. 关系的相关名词。

    a. 码:能够唯一标识一个元组的属性或属性组合。

    b. 候选码(候选键):能够唯一标识一个元组的最小属性或属性组合。

    c. 主码(主键):在一个关系中可能有多个候选码,从中选择一个作为主码。

    d. 主属性:包含在任一候选码中的诸属性称为主属性,否则称为非主属性。

    e. 外码(外键):如果一个关系中的属性或属性组并非该关系的码但他们是另外一个关系的码,则称其为该关系的外码。

    f. 全码:关系模式中所有的属性为一组是这个关系模式的候选码,称为全码。

    g. 超码(超键):一个包含码的属性集称为超码。

  3. 关系模式:关系的描述称为关系模式。

    a. 可以形式化地表示为: R ( U , D , d o m , F ) R(U,D,dom,F) R(U,D,dom,F),其中R表示关系名,U是组成该关系式的属性名集合,D是属性的域,dom是属性向域的映像集合,F为属性间数据的依赖关系集合。

    b. 通常将关系模式简记为: R ( U ) R(U) R(U) R ( A 1 , A 2 , A 3 , … , A n ) R(A_1,A_2,A_3,…,A_n) R(A1,A2,A3,,An),其中 A 1 , A 2 , A 3 , … , A n A_1,A_2,A_3,…,A_n A1,A2,A3,,An为属性名或域名。

  4. 完整性约束:实体完整性、参照完整性、用户定义的完整性。

    a. 实体完整性:主属性不能取空值。

    b. 参照完整性:外码或者取空值或者取其作为主码所在关系中某个元组的主码值。

    c. 用户自定义完整性:针对某一具体的关系数据库的约束条件。

(二)五种基本的关系代数运算

  1. 并: R ∪ S = { t 丨 t ∈ R ∨ t ∈ S } R∪S=\{t丨t∈R∨t∈S\} RS={ttRtS}

  2. 差: R − S = { t 丨 t ∈ R ∧ t ∉ S } R-S=\{t丨t∈R∧t∉S\} RS={ttRt/S}

  3. 广义笛卡尔积: R × S = { t 丨 t = < t n , t m > ∧ t n ∈ R ∧ t m ∈ S } R×S=\{t丨t=<t^n,t^m>∧t^n∈R∧t^m∈S\} R×S={tt=<tn,tm>tnRtmS}

  4. 投影: π A ( R ) = { t [ A ] 丨 t ∈ R } π_A(R)=\{t[A]丨t∈R\} πA(R)={t[A]tR}。(垂直选择若干属性列)

  5. 选择: σ F ( R ) = { t 丨 t ∈ R ∧ F ( t ) = T r u e } σ_F(R)=\{t丨t∈R∧F(t)=True\} σF(R)={ttRF(t)=True}。(水平选择满足条件的元组行)

(三)扩展的关系代数运算

  1. 交: R ∩ S = { t 丨 t ∈ R ∧ t ∈ S } 。 R∩S=\{t丨t∈R∧t∈S\}。 RS={ttRtS}

  2. 连接:分为θ连接、等值连接、自然连接。

    a. θ连接: R ⋈ X θ Y S = { t 丨 t = < t n , t m > ∧ t n ∈ R ∧ t m ∈ S ∧ t n [ X ] θ t m [ Y ] } R⋈_{XθY}S=\{t丨t=<t^n,t^m>∧t^n∈R∧t^m∈S∧t^n[X]θt^m[Y]\} RYS={tt=<tn,tm>tnRtmStn[X]θtm[Y]}。(θ是比较运算符,θ连接可有笛卡尔积和选取运算导出)

    b. 等值连接: R ⋈ X = Y S = { t 丨 t = < t n , t m > ∧ t n ∈ R ∧ t m ∈ S ∧ t n [ X ] = t m [ Y ] } R⋈_{X=Y}S=\{t丨t=<t^n,t^m>∧t^n∈R∧t^m∈S∧t^n[X]=t^m[Y]\} RX=YS={tt=<tn,tm>tnRtmStn[X]=tm[Y]}。(即θ为“=”时)

    c. 自然连接: R ⋈ S = { t 丨 t = < t n , t m > ∧ t n ∈ R ∧ t m ∈ S ∧ R . B 1 = S . B 1 ∧ R . B 2 = S . B 2 ∧ … ∧ R . B k = S . B k } R⋈S=\{t丨t=<t^n,t^m>∧t^n∈R∧t^m∈S∧R.B_1=S.B_1∧R.B_2=S.B_2∧…∧R.B_k=S.B_k\} RS={tt=<tn,tm>tnRtmSR.B1=S.B1R.B2=S.B2R.Bk=S.Bk}。(比较分量必须是相同属性组且在结果集中将重复属性列去掉)

  3. 除: R ÷ S = { t n [ X ] 丨 t n ∈ R ∧ π y ( S ) ⊆ Y x } R÷S=\{t^n[X]丨t^n∈R∧π_y(S)⊆Y_x\} R÷S={tn[X]tnRπy(S)Yx}

  4. 广义投影: π F 1 , F 2 , . . . , F n ( R ) π_{F_1,F_2,...,F_n}(R) πF1,F2,...,Fn(R)。(允许在投影列表中使用算术运算)

  5. 外连接:分为左外连接、右外连接、全外连接。

    a. 左外连接: R = ⋈ S R=⋈S R=⋈S。(对于左侧关系中所有与右侧关系任意元组都不匹配的元组用空值null填充所有右侧关系的属性)

    b. 右外连接: R ⋈ = S R⋈=S R⋈=S。(对于右侧关系中所有与左侧关系任意元组都不匹配的元组用空值null填充所有左侧关系的属性)

    c. 全外连接: R = ⋈ = S R=⋈=S R=⋈=S。(完成左外连接和右外连接的操作)

在这里插入图片描述


四、关系数据库SQL语言简介

(一)SQL体系结构

  1. SQL支持三级模式结构:视图对应外模式,基本表对应模式,存储文件对应内模式。

  2. SQL语言的分类。

    a. 数据定义(DDL):CREATE、DROP、ALERT。

    b. 数据查询(DQL):SELECT。

    c. 数据操纵(DML):INSERT、UPDATE、DELETE。

    d. 数据控制(DCL):GRANT、REVORK。

(二)SQL数据定义

  1. 创建表。
    在这里插入图片描述

  2. 修改和删除表。

    在这里插入图片描述

    在这里插入图片描述

  3. 索引建立与删除。

    在这里插入图片描述

    在这里插入图片描述

  4. 视图创建与删除。

    在这里插入图片描述

    在这里插入图片描述

(三)SQL数据查询

  1. SELECT基本结构

    在这里插入图片描述

  2. 简单查询。

  3. 连接查询。

  4. 子查询与聚集函数。

  5. 分组查询。

  6. 更名运算。

  7. 字符串操作。

  8. 视图的查询。

在这里插入图片描述

(四)SQL数据更新

  1. 插入。

    在这里插入图片描述

  2. 删除。

    在这里插入图片描述

  3. 修改。

    在这里插入图片描述

(五)SQL数据控制

  1. 授权。

    在这里插入图片描述

  2. 收回权限。

    在这里插入图片描述
    在这里插入图片描述


五、关系数据库的规范化

(一)函数依赖

  1. 函数依赖: X → Y X→Y XY

  2. 非平凡的函数依赖: X → Y X→Y XY,但 Y ⊈ X Y⊈X YX

  3. 平凡的函数依赖: X → Y X→Y XY,但 Y ⊆ X Y⊆X YX

  4. 完全函数依赖: X → F Y X \overset F \rightarrow Y XFY(X的任一真子集都不能决定Y)。

  5. 部分函数依赖: X → P Y X \overset P \rightarrow Y XPY(存在X的真子集能决定Y)。

  6. 传递依赖: X → 传递 Z X \overset {传递} \rightarrow Z X传递Z X → Y X→Y XY,但 Y ⊈ X Y⊈X YX Y → Z Y→Z YZ)。

  7. 函数依赖的公理系统:设关系模式 R ( U , F ) R(U,F) R(U,F)

    a. 合并规则:若 X → Y X→Y XY X → Z X→Z XZ,则 X → Y Z X→YZ XYZ F F F所蕴涵。

    b. 伪传递率:若 X → Y X→Y XY W Y → Z WY→Z WYZ,则 X W → Z XW→Z XWZ F F F所蕴涵。

    c. 分解规则:若 X → Y X→Y XY Z ⊆ Y Z⊆Y ZY,则 X → Z X→Z XZ F F F所蕴涵。

(二)规范化

  1. 范式之间, 5 N F ⊂ 4 N F ⊂ B C N F ⊂ 3 N F ⊂ 2 N F ⊂ 1 N F 5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF 5NF4NFBCNF3NF2NF1NF 成立。

  2. 1 N F 1NF 1NF(第一范式):关系模式R的每一个分量是不可再分的数据项。

    a. 可能存在部分函数依赖,不能排除数据冗余和更新异常等问题。

  3. 2 N F 2NF 2NF(第二范式):关系模式 R ∈ 1 N F R∈1NF R1NF ,且每一个非主属性完全依赖于码。

    a. 相较 1 N F 1NF 1NF 消除了部分函数依赖。

    b. 可能存在传递函数依赖,不能排除数据冗余和更新异常等问题(但能排除插入异常、删除异常和修改复杂等问题)。

  4. 3 N F 3NF 3NF(第三范式):关系模式 R ( U , F ) ∈ 1 N F R(U,F)∈1NF R(U,F)1NF 中不存在这样的码 X X X ,属性组 Y Y Y 及非主属性 Z ( Z ⊈ Y ) Z(Z⊈Y) Z(ZY) 使得 X → Y ( Y ↛ X ) X→Y(Y↛X) XY(YX) Y → Z Y→Z YZ 成立。

    a. 相较 2 N F 2NF 2NF 消除了非主属性对码的传递函数依赖。

    b. 产生冗余和异常的两个重要原因是部分函数依赖和传递依赖。

  5. B C N F BCNF BCNF(BC范式):关系模式 R ( U , F ) ∈ 1 N F R(U,F)∈1NF R(U,F)1NF X → Y X→Y XY Y ⊈ X Y⊈X YX X X X 必含有码。

    a. 排除了任何属性对码的传递依赖与部份依赖。

    b. 所有非主属性对每一个码都是完全函数依赖,所有主属性对每一个不含它的码也是完全函数依赖,没有任何属性完全依赖于非码的任何一组属性。

在这里插入图片描述

(三)模式分解及分解应具有的特性

  1. 分解。

  2. 无损连接。

  3. 保持函数依赖。


六、数据库的控制功能

(一)事务管理

  1. 事务。

  2. 事务定义语句:BEGIN TRANSACTION(事务开始)、COMMIT(事务提交)、ROLLBACK(事务回滚)。

  3. 事务的ACID性质。

    a. 原子性:要么都做,要么都不做。

    b. 一致性:数据库只包含成功事务提交的结果。

    c. 隔离性:多个事务并发执行时对其他事物都不可见。

    d. 持久性:一旦事务成功提交即使崩溃也将永久有效。

(二)数据库的备份与恢复

  1. 故障类型。

  2. 备份方法。

  3. 恢复。

  4. 数据库镜像。

(三)并发控制

  1. 并发操作带来的三类数据不一致性:丢失修改、不可重复读、读脏数据。

  2. 并发控制技术:封锁。

    a. 排它锁(X锁或写锁):只允许读取和修改,其他事物不能再加任何锁。

    b. 共享锁(S锁或读锁):只允许读取而不能修改,其他事物只能再加共享锁。
    b. 一致性:数据库只包含成功事务提交的结果。

    c. 隔离性:多个事务并发执行时对其他事物都不可见。

    d. 持久性:一旦事务成功提交即使崩溃也将永久有效。

(二)数据库的备份与恢复

  1. 故障类型。

  2. 备份方法。

  3. 恢复。

  4. 数据库镜像。

(三)并发控制

  1. 并发操作带来的三类数据不一致性:丢失修改、不可重复读、读脏数据。

  2. 并发控制技术:封锁。

    a. 排它锁(X锁或写锁):只允许读取和修改,其他事物不能再加任何锁。

    b. 共享锁(S锁或读锁):只允许读取而不能修改,其他事物只能再加共享锁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/636248.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

日处理100吨污水处理设备安装需要多久

日处理100吨污水处理设备的安装时间取决于多种因素&#xff0c;包括设备的复杂性、安装地点的条件、所需的基础设施建设、以及安装团队的经验和效率等。以下是一个大致的安装时间框架和相关的考虑因素&#xff1a; 前期准备&#xff1a; 现场勘查和设计&#xff1a;1-2周&#…

创新力作 焕新首发丨捷顺科技·捷曜系列智慧停车新品全新上市

2024捷顺科技智慧停车全家族新品全面上市 全新外观、全新特性、全新体验 新控制机、新道闸、新超眸相机... 每款新品都有哪些功能亮点 带您一探究竟

DOS学习-目录与文件应用操作经典案例-xcopy

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 xcopy命令是DOS系统中一个强大的文件和目录复制工具&…

变电站设备状态识别无人值守巡检系统

变电站设备状态识别无人值守巡检系统基于智能视频分析技术和深度学习技术&#xff0c;变电站设备状态识别无人值守巡检系统通过现场已经装好的监控摄像机实时对变电站的设备状态进行监测识别&#xff0c;例如&#xff0c;对隔离开关的分合状态进行实时检测、识别开关柜刀闸的位…

医疗废水处理一体化设备维护成本有哪些

医疗废水处理一体化设备的维护成本主要包括以下几个方面&#xff1a; 能源消耗&#xff1a; 包括电力、燃气或其他能源的消耗&#xff0c;用于驱动设备运行&#xff0c;如泵、风机、加热器等。 化学品费用&#xff1a; 用于消毒、中和、沉淀等化学处理的药剂费用&#xff0…

计网期末复习指南:万字总结计算机网络体系结构 | 计算机网络的组成、类别、性能

目录 一.互联网的发展阶段 二.计算机网络的类别 三.互联网的组成 ▐ 网络边缘部分 客户/服务器方式&#xff08;C/S方式&#xff09; 对等方式&#xff08;P2P方式&#xff09; ▐ 网络核心部分 电路交换 报文交换 分组交换 四.计算机网络的性能 ▐ 速率 ▐ 带宽 …

javascript 防抖 节流

在前端开发中&#xff0c;性能优化是提升用户体验的关键环节。防抖&#xff08;Debounce&#xff09;和节流&#xff08;Throttle&#xff09;作为两种常见的优化技术&#xff0c;能够有效管理和控制频繁触发的事件&#xff0c;减少不必要的计算和资源消耗。无论是在处理用户输…

2024电工杯B题保姆级分析完整思路+代码+数据教学

2024电工杯B题保姆级分析完整思路代码数据教学 B题题目&#xff1a;大学生平衡膳食食谱的优化设计及评价 接下来我们将按照题目总体分析-背景分析-各小问分析的形式来 总体分析&#xff1a; 题目要求对两份一日膳食食谱进行营养分析和调整&#xff0c;然后设计优化的平衡膳…

Webpack源码泄露到Vue快速入门

前言 1.webpack 源码泄露 1.1漏洞简介 1.2存在泄露的站点 1.3 如何判断是否存在漏洞 方法1: 方法2: 1.4.如何将js.map文件还原为项目文件 1. 4.1查看npm版本 1.4.2 安装reverse-sourcemap 1. 4.3.检查是否安装 ​1. 4.4 使用reverse-sourcemap进行js.map文件还原操作…

RedisTemplate操作Redis, 看这一篇文章就够了

文章目录 1. String 命令1.1 添加缓存1.2 设置过期时间(单独设置)1.3 获取缓存值1.4 删除key1.5 顺序递增1.6 顺序递减1.7 常用的 2. Hash命令2.1 添加缓存2.2 设置过期时间(单独设置)2.3 添加一个Map集合2.4 提取所有的小key2.5 提取所有的value值2.6 根据key提取value值2.7 获…

展厅设计对企业有哪些作用

1、增强品牌形象 企业展厅对于增强企业品牌形象、提升企业的知名度和市场竞争力具有显著作用和意义。展厅作为企业对外的窗口&#xff0c;是客户和访客了解企业的第一印象。通过独特的设计风格和精心的展示布局&#xff0c;企业可以将自身的核心价值和文化理念巧妙地融入到展厅…

工程机械租赁平台数字化平台系统油耗与排放管理创新与应用

在快速发展的城市建设和基础设施项目中&#xff0c;工程机械扮演着举足轻重的角色。随着工程规模的扩大和施工技术的不断进步&#xff0c;工程机械租赁平台应运而生&#xff0c;为建设项目提供了灵活高效的解决方案。然而&#xff0c;随着租赁机械数量的增加&#xff0c;如何有…

调试时JSON库一直提示 PDB找不到 使用需要对象文件来进行调试的 /DEBUG:Fastlink生成的

最近调试时一直提示上面的提示框&#xff0c;很是烦躁。 为什么会出现这个错误呢&#xff0c;我一直使用的是/DEBUG。出现原因没有找出来&#xff0c;理论上市使用了/DEBUG:Fastlink这个模式才会出&#xff0c;但是就是一直在报这个错误。 /DEBUG&#xff08;生成调试信息&am…

Vue开发实例(十三)用户登录功能

使用Vue实现登录具有以下几个好处&#xff1a; 响应式界面&#xff1a;Vue框架的响应式特性可以帮助开发者轻松地实现用户登录界面的交互效果&#xff0c;包括表单验证、实时错误提示等&#xff0c;从而提升用户体验。组件化开发&#xff1a;Vue框架支持组件化开发&#xff0c;…

4月手机行业线上市场销售数据分析

政府对智能手机行业的支持政策&#xff0c;如5G推广&#xff0c;以及相关的产业政策&#xff0c;都在一定程度上推动了智能手机市场的发展&#xff0c;再加上AI应用的推广和全球科技迅猛发展&#xff0c;中国手机市场在2024年迎来了恢复性增长。 据鲸参谋数据统计&#xff0c;…

vue+canvas实现逐字手写效果

在pc端进行逐字手写的功能。用户可以在一个 inputCanvas 上书写单个字&#xff0c;然后在特定时间后将这个字添加到 outputCanvas 上&#xff0c;形成一个逐字的手写效果。用户还可以保存整幅图像或者撤销上一个添加的字。 <template><div class"container"…

MS1112芯片ADC采样测试

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

VUE3-form表单保存附件与基本信息

element-ui代码 <el-dialog :title"上传附件" v-model"dialogAdds.visible" width"500px" append-to-body> <el-form-item label"唯一标识"> <dict-tag v-if"form.groupId" :options"unique_identifica…

生成模型 | 从 VAE 到 Diffusion Model (上)

文章目录 一&#xff0c;GAN(对抗式生成网络&#xff09;二&#xff0c;Auto-Encoder(AE) 和 Denoising Auto-Encoder (DAE)三&#xff0c;VAE四&#xff0c;VQ-VAE (Vector Quantized Variational Autoencoder)VQ-VAE 2小总结&#xff1a; 五&#xff0c;DALL-E &#xff08;O…

翻译《The Old New Thing》- How do I mark a shortcut file as requiring elevation?

How do I mark a shortcut file as requiring elevation? - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20071219-00/?p24103 Raymond Chen 2007年12月19日 如何将快捷方式标记为需要提升权限 简要 文章介绍了如何通过设置SLDF_RUNAS_US…