【軟考--軟件設計師】10.2 關系型數據庫

在這里插入圖片描述
在這里插入圖片描述

10 模式分解

  • 分解
    模式分解:將一個關系模式分解為多個子模式
    模式分解就是模式規范化的工具,模式分解使用無損連接和保持函數依賴來衡量模式分解后是否導致原有模式中部分信息丟失。

  • 無損連接
    在這里插入圖片描述

  • 保持函數依賴
    在這里插入圖片描述

11、事務管理

事務的ACID性質:
(1)原子性(Atomicity):要么都做,要么都不做。
(2)一致性(Consistency):事務執行的結果必須從一個一致性狀態轉到另一個一致性狀態。中間狀態對外不可見。
(3)隔離性(Isolation):事務之間相互隔離,互不干擾。
(4)持久性(Durability):事務成功提交后,對數據庫的更新操作是永久有效的。

12、并發控制

  • 并發操作就是在多用戶系統中,可能出現多個事務同時操作同一數據的情況。并發操作會導致3種數據不一致的問題:
    • 丟失修改(丟失更新)
      當兩個事務T和T,讀入同一數據做修改,并發執行時,T把T或T,把T,的修改結果覆蓋掉,造成了數據的丟失更新問題,導致數據不一致。
    • 不可重復讀
      事務7,讀取了數據R,事務T,讀取并更新了數據R。當事務T,再讀取數據R以進行核對時,得到的兩次讀取數據不一致。
    • 讀臟數據
      事務T,更新了數據R,事務T,讀取了更新后的數據R,事務T,由于某種原因被撤銷,進行了事務回滾,數據R恢復原值,事務T,讀取了臟數據。
      造成以上3種數據不一致的主要原因是事務的并發操作破壞了事務的隔離性-
  • 并發控制類型:
    • 排他鎖(X鎖):
      事務T對數據A加X鎖:
      (1)只允許事務T讀取、修改數據A;
      (2)只有等該鎖解除之后,其他事務才能夠對數據A加任何鎖類型
    • 共享鎖(S鎖):
      解決了X鎖太嚴格,不允許其他事務并發讀的問題。事務T對數據A加S鎖,則:
      (1)只允許事務T讀取數據A但不能夠修改:
      (2)可允許其他事務對其加S鎖,但不允許加X鎖

13 數據庫備份與回復

  • 數據庫的故障類型
    ①事務內部故障:如運算溢出、除零錯誤、并發事務發生死鎖等;
    ②)系統故障:也稱為軟故障,是指造成系統停運的事件,如CPU故障、OS故障、突然停電等③介質故障:也稱為硬故障,如磁盤損壞等;
    ④計算機病毒:
  • 數據庫的備份方法
    數據庫的轉儲分為靜態轉儲和動態轉儲,海量轉儲、增量轉儲和差量轉儲,以及日志文件
    • 靜態轉儲:即冷備份,指在轉儲期間不允許對數據庫進行任何存取、修改操作。
      優點是非常快速、容易歸檔(直接物理復制操作)。
      缺點是只能提供到某一時間點上的恢復,不能做其他工作,不能按表或按用戶恢復。
    • 動態轉儲:即熱備份,在轉儲期間允許對數據庫進行存取、修改操作,因此,轉儲和用戶事務可以并發執行。
      優點是可在表空間或數據庫文件級備份,數據庫仍可使用,可達到秒級恢復。
      缺點是不能出錯,否則后果嚴重,若熱備份不成功,所得結果幾乎全部無效。
  • 海量轉儲(完全轉儲):是指每次轉儲全部數據庫。
  • 增量轉儲:是指每次只轉儲上次轉儲后更新過的數據,用于數據庫很大,事務處理頻繁的場景。
  • 差量轉儲:是對最近一次數據庫完全備份以來發生的數據變化進行備份,優點是速度快,占用較小的時間和空間。
  • 日志文件:在事務處理過程中,DBMS把事務開始、事務結束以及對數據庫的插入、刪除和修改的每一次操作寫入日志文件。一旦發生故障,DBMS的恢復子系統利用日志文件撤銷事務對數據庫的改變,回退到事務的初始狀態。

14 數據倉庫

在這里插入圖片描述
數據倉庫與數據庫對比:

數據倉庫數據庫
面向主題面向事務
數據結構是集成的,具有一致性數據結構更為復雜
是靜態的歷史數據,只能定期添加、刷新是動態變化的,業務發生,數據就更新
存儲歷史數據存儲實時、在線數據
設計需要引入冗余設計盡量避免冗余

15 分布式數據庫

  • 分布式數據庫通常使用較小的計算機系統,每臺算機可以單獨放在一個地方,每臺計算機中都可能有DBMS的一份完整拷貝副本或部分拷貝副本,并具自己局部的數據庫,位于不同地點的許多計算機通過網絡互相連接,共同組成一個完整的、全局的邏輯上集中、物理上分布的大型數據庫
  • 分布式數據庫的核心:
    • 數據分片:突破中心化數據庫單機的容量限,將數據分散到多節點,以更靈活、高效的方式來處理數據。
      分片方式包括:
      ①水平分片:按行進行數據被分割,數據分割為一個個數據組,分散到不同節點上;
      ②垂直分片:按列進行數據分割,一個數據表的模式被切割為多個子模式。
    • 數據同步:由于數據庫理論傳統上是建立在單機數據庫基礎上,而引入分布式理論后,一致性原則被打破。因此引入數據庫同步技術來幫助數據庫回復一致性。
  • 分布式數據庫特點:高可擴展性、高并發性、高可用性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89039.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89039.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89039.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python訓練day44 預訓練模型

預訓練模型發展史 預訓練模型的訓練策略 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt# 設置中文字體支持 plt.rcParams["…

[論文閱讀]MISSRce

論文title: MISSRec: Pre-training and Transferring Multi-modal Interest-aware Sequence Representation for Recommendation

Redis學習筆記——黑馬點評 附近商鋪到UV統計 完結

前言: 今天完結了Redis的所有實戰篇。 學習收獲: GEO數據結構: GEO就是Geolocation的簡寫形式,代表地理坐標。Redis在3.2版本中加入對Geo的支持,存儲、管理和操作地理空間數據的特殊數據結構,它能高效處…

【客戶端排查】mac電腦怎么查看客戶端的實時運行日志

先退出客戶端;打開訪達里的應用程序; 打開【顯示包內容】; 找到MacOS 雙擊里面的終端程序; 雙擊后,客戶端會自動啟動,且可以在終端中查看客戶端的實時日志啦~

HarmonyOS NEXT倉頡開發語言實戰案例:健身App

各位好,今日分享一個健身app的首頁: 這個頁面看起比之前的案例要稍微復雜一些,主要在于頂部部分,有重疊的背景,還有偏移的部分。重疊布局可以使用Stack容器實現,超出容器范圍的偏移可以使用負數間距來實現&…

TreeMap源碼分析 紅黑樹

今天嘗試刨一下TreeMap的祖墳。 底層結構對比 先來看一下與HashMap、LinkedHashMap和TreeMap的對比,同時就當是復習一下: HashMap使用數組存儲數據,并使用單向鏈表結構存儲hash沖突數據,同一個沖突桶中數據量大的時候&#xff…

華為云Flexus+DeepSeek征文|基于Dify構建拍照識題智能學習助手

華為云FlexusDeepSeek征文|基于Dify構建拍照識題智能學習助手 一、構建拍照識題智能學習助手前言二、構建拍照識題智能學習助手環境2.1 基于FlexusX實例的Dify平臺2.2 基于MaaS的模型API商用服務 三、構建拍照識題智能學習助手實戰3.1 配置Dify環境3.2 配置Dify工具…

題解:CF2120E Lanes of Cars

根據貪心,不難想到每次會把最長隊伍末尾的那輛車移動到最短隊伍的末尾。但由于 k k k 的存在,會導致一些冗余移動的存在。設需要挪動 C C C 輛車,則怒氣值可以表示為 f ( C ) k C f(C) kC f(C)kC,其中 f ( C ) f(C) f(C) 是…

Excel基礎:選擇和移動

本文演示Excel中基礎的選擇和移動操作,并在最后提供了一張思維導圖,方便記憶。 文章目錄 一、選擇1.1 基礎選擇1.1.1 選擇單個單元格1.1.2 選擇連續范圍 1.2 行列選擇1.2.1 選擇整行整列1.2.2 選擇多行多列 1.3 全選1.3.1 全選所有單元格1.3.2 智能選擇…

Java面試寶典:基礎四

80. int vs Integer 維度intInteger類型基本數據類型(8種之一)包裝類默認值0null應用場景性能敏感場景(計算密集)Web表單、ORM框架(區分null和0)特殊能力無提供工具方法(如parseInt())和常量(如MAX_VALUE)示例:

RabbitMQ + JMeter 深度集成指南:中間件性能優化全流程解析!

在 2025 年的數字化浪潮中,中間件性能直接決定系統的穩定性和用戶體驗,而 RabbitMQ 作為消息隊列的“老大哥”,在分布式系統中扮演著關鍵角色。然而,高并發場景下,消息堆積、延遲激增等問題可能讓系統不堪重負&#xf…

uniapp image引用本地圖片不顯示問題

1. uniapp image引用本地圖片不顯示問題 在uniapp 開發過程中采用image引入本地資源圖片。 1.1. 相對路徑和絕對路徑問題 在UniApp中開發微信小程序時,引入圖片時,相對路徑和絕對路徑可能會有一些差異。這差異主要涉及到小程序和UniApp框架的文件結構、…

論文閱讀:arxiv 2025 ThinkSwitcher: When to Think Hard, When to Think Fast

總目錄 大模型安全相關研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 ThinkSwitcher: When to Think Hard, When to Think Fast https://arxiv.org/pdf/2505.14183#page2.08 https://www.doubao.com/chat/10031179784579842 文章目錄 速覽一、…

智能體記憶原理-prompt設計

智能體記憶的管理與設計開發分為以下幾步: 1.記憶的抽取; 2.記憶的存儲; 3.記憶的搜索; 一、記憶抽取一: FACT_RETRIEVAL_PROMPT f"""你是一位個人信息整理助手,專門負責準確存儲事實、用…

026 在線文檔管理系統技術架構解析:基于 Spring Boot 的企業級文檔管理平臺

在線文檔管理系統技術架構解析:基于Spring Boot的企業級文檔管理平臺 在企業數字化轉型的進程中,高效的文檔管理系統已成為提升協作效率的核心基礎設施。本文將深入解析基于Spring Boot框架構建的在線文檔管理系統,該系統整合公告信息管理、…

AWTK-MVVM的一些使用技巧總結(1)

在項目中用了一段時間的AWTK-MVVM框架,由于AWTK-MVVM本身的文檔十分欠缺,自己經過一段時間的研究折騰出了幾個技巧,在此記錄總結。 用fscript啟用傳統UI代碼 AWTK-MVVM里面重新設計了navigator機制,重定位了navigator_to的調用方…

openwrt使用quilt工具制作補丁

前言:簡單聊一下為什么需要制作補丁,因為openwrt的編譯是去下載很多組件放到dl目錄下面,這些組件都是壓縮包。如果我們要修改這些組件里面的源碼,就需要對這些組件打pacth,也就是把我們的差異點在編譯的時候合入到對應…

強化學習 (1)基本概念

grid-world example 一個由多個格子組成的二維網格 三種格子:accessible可通行的; forbidden禁止通行的; target目標 state狀態 state是智能體相對于環境的狀態(情況) 在grid-world example里,state指的…

【Typst】縱向時間軸

概述 6月10日實驗了一個縱向時間軸排版效果,當時沒有做成單獨的模塊,也存在一些Bug。 今天(6月29日)在原基礎上進行了一些改進,并總結為模塊。 目前暫時發布出來,可用,后續可能會進行大改。 使用案例 導入模塊使用…

【Visual Studio Code上傳文件到服務器】

在 Visual Studio Code (VS Code) 中上傳文件到 Linux 系統主要通過 SSH 協議實現,結合圖形界面(GUI)或命令行工具操作。以下是具體說明及進度查看、斷點續傳的實現方法: ?? 一、VS Code 上傳文件到 Linux 的機制 SSH 遠程連接 …