0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

帶你深入淺出了解C++中數(shù)據(jù)庫

C語言編程學習基地 ? 來源:C語言編程學習基地 ? 作者:C語言編程學習基地 ? 2021-10-29 10:33 ? 次閱讀

基本概念

數(shù)據(jù)(data):描述事物的符號記錄稱為數(shù)據(jù)。

數(shù)據(jù)庫(DataBase,DB):是長期存儲在計算機內、有組織的、可共享的大量數(shù)據(jù)的集合,具有永久存儲、有組織、可共享三個基本特點。

數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,DBMS):是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件。

數(shù)據(jù)庫系統(tǒng)(DataBase System,DBS):是有數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)(及其應用開發(fā)工具)、應用程序和數(shù)據(jù)庫管理員(DataBase Administrator DBA)組成的存儲、管理、處理和維護數(shù)據(jù)的系統(tǒng)。

實體(entity):客觀存在并可相互區(qū)別的事物稱為實體。

屬性(attribute):實體所具有的某一特性稱為屬性。

碼(key):唯一標識實體的屬性集稱為碼。

實體型(entity type):用實體名及其屬性名集合來抽象和刻畫同類實體,稱為實體型。

實體集(entity set):同一實體型的集合稱為實體集。

聯(lián)系(relationship):實體之間的聯(lián)系通常是指不同實體集之間的聯(lián)系。

模式(schema):模式也稱邏輯模式,是數(shù)據(jù)庫全體數(shù)據(jù)的邏輯結構和特征的描述,是所有用戶的公共數(shù)據(jù)視圖。

外模式(external schema):外模式也稱子模式(subschema)或用戶模式,它是數(shù)據(jù)庫用戶(包括應用程序員和最終用戶)能夠看見和使用的局部數(shù)據(jù)的邏輯結構和特征的描述,是數(shù)據(jù)庫用戶的數(shù)據(jù)視圖,是與某一應用有關的數(shù)據(jù)的邏輯表示。

內模式(internal schema):內模式也稱為存儲模式(storage schema),一個數(shù)據(jù)庫只有一個內模式。他是數(shù)據(jù)物理結構和存儲方式的描述,是數(shù)據(jù)庫在數(shù)據(jù)庫內部的組織方式。

常用數(shù)據(jù)模型

層次模型(hierarchical model)

網(wǎng)狀模型(network model)

關系模型(relational model)

(1)關系(relation):一個關系對應通常說的一張表

(2)元組(tuple):表中的一行即為一個元組

(3)屬性(attribute):表中的一列即為一個屬性

(4)碼(key):表中可以唯一確定一個元組的某個屬性組

(5)域(domain):一組具有相同數(shù)據(jù)類型的值的集合

(6)分量:元組中的一個屬性值

(7)關系模式:對關系的描述,一般表示為 關系名(屬性1, 屬性2, 。.., 屬性n)

面向對象數(shù)據(jù)模型(object oriented data model)

對象關系數(shù)據(jù)模型(object relational data model)

半結構化數(shù)據(jù)模型(semistructure data model)

關系型數(shù)據(jù)庫

基本關系操作:查詢(選擇、投影、連接(等值連接、自然連接、外連接(左外連接、右外連接))、除、并、差、交、笛卡爾積等)、插入、刪除、修改

關系模型中的三類完整性約束:實體完整性、參照完整性、用戶定義的完整性

索引

數(shù)據(jù)庫索引:順序索引、B+ 樹索引、hash 索引

數(shù)據(jù)庫完整性

數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。

完整性:為了防止數(shù)據(jù)庫中存在不符合語義(不正確)的數(shù)據(jù)。

安全性:為了保護數(shù)據(jù)庫防止惡意破壞和非法存取。

觸發(fā)器:是用戶定義在關系表中的一類由事件驅動的特殊過程。

關系數(shù)據(jù)理論

數(shù)據(jù)依賴是一個關系內部屬性與屬性之間的一種約束關系,是通過屬性間值的相等與否體現(xiàn)出來的數(shù)據(jù)間相關聯(lián)系。

最重要的數(shù)據(jù)依賴:函數(shù)依賴、多值依賴。

范式

第一范式(1NF):屬性(字段)是最小單位不可再分。

第二范式(2NF):滿足 1NF,每個非主屬性完全依賴于主鍵(消除 1NF 非主屬性對碼的部分函數(shù)依賴)。

第三范式(3NF):滿足 2NF,任何非主屬性不依賴于其他非主屬性(消除 2NF 非主屬性對碼的傳遞函數(shù)依賴)。

鮑依斯-科得范式(BCNF):滿足 3NF,任何非主屬性不能對主鍵子集依賴(消除 3NF 主屬性對碼的部分和傳遞函數(shù)依賴)。

第四范式(4NF):滿足 3NF,屬性之間不能有非平凡且非函數(shù)依賴的多值依賴(消除 3NF 非平凡且非函數(shù)依賴的多值依賴)。

數(shù)據(jù)庫恢復

事務:是用戶定義的一個數(shù)據(jù)庫操作序列,這些操作要么全做,要么全不做,是一個不可分割的工作單位。

事物的 ACID 特性:原子性、一致性、隔離性、持續(xù)性。

恢復的實現(xiàn)技術:建立冗余數(shù)據(jù) -》 利用冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復。

建立冗余數(shù)據(jù)常用技術:數(shù)據(jù)轉儲(動態(tài)海量轉儲、動態(tài)增量轉儲、靜態(tài)海量轉儲、靜態(tài)增量轉儲)、登記日志文件。

并發(fā)控制

事務是并發(fā)控制的基本單位。

并發(fā)操作帶來的數(shù)據(jù)不一致性包括:丟失修改、不可重復讀、讀 “臟” 數(shù)據(jù)。

并發(fā)控制主要技術:封鎖、時間戳、樂觀控制法、多版本并發(fā)控制等。

基本封鎖類型:排他鎖(X 鎖 / 寫鎖)、共享鎖(S 鎖 / 讀鎖)。

活鎖死鎖:

(1)活鎖:事務永遠處于等待狀態(tài),可通過先來先服務的策略避免。

(2)死鎖:事務永遠不能結束

a、預防:一次封鎖法、順序封鎖法;

b、診斷:超時法、等待圖法;

解除:撤銷處理死鎖代價最小的事務,并釋放此事務的所有的鎖,使其他事務得以繼續(xù)運行下去。

可串行化調度:多個事務的并發(fā)執(zhí)行是正確的,當且僅當其結果與按某一次序串行地執(zhí)行這些事務時的結果相同??纱行詴r并發(fā)事務正確調度的準則。

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫

    關注

    7

    文章

    3842

    瀏覽量

    64547
  • C++
    C++
    +關注

    關注

    22

    文章

    2113

    瀏覽量

    73747

原文標題:C++基礎語法梳理:數(shù)據(jù)庫!帶你深入淺出了解數(shù)據(jù)庫

文章出處:【微信號:cyuyanxuexi,微信公眾號:C語言編程學習基地】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    從Delphi、C++ Builder和Lazarus連接到Oracle數(shù)據(jù)庫

    從 Delphi、C++ Builder 和 Lazarus 連接到 Oracle 數(shù)據(jù)庫 Oracle 數(shù)據(jù)訪問組件 (ODAC) 是一個組件,它為 32 位和 64 位平臺提供從
    的頭像 發(fā)表于 01-15 10:01 ?66次閱讀

    MySQL數(shù)據(jù)庫的安裝

    MySQL數(shù)據(jù)庫的安裝 【一】各種數(shù)據(jù)庫的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL 介紹
    的頭像 發(fā)表于 01-14 11:25 ?91次閱讀
    MySQL<b class='flag-5'>數(shù)據(jù)庫</b>的安裝

    數(shù)據(jù)庫是哪種數(shù)據(jù)庫類型?

    數(shù)據(jù)庫是一種部署在虛擬計算環(huán)境數(shù)據(jù)庫,它融合了云計算的彈性和可擴展性,為用戶提供高效、靈活的數(shù)據(jù)庫服務。云數(shù)據(jù)庫主要分為兩大類:關系型
    的頭像 發(fā)表于 01-07 10:22 ?105次閱讀

    數(shù)據(jù)庫加密辦法

    企業(yè)對于數(shù)據(jù)的重視程度不言而喻,也衍生出了數(shù)據(jù)=資產(chǎn)的概念。但是數(shù)據(jù)泄漏的事件頻繁發(fā)生,為了保護數(shù)據(jù)資產(chǎn),企業(yè)有必要對
    的頭像 發(fā)表于 12-24 09:47 ?128次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復流程

    Mysql數(shù)據(jù)庫故障: Mysql數(shù)據(jù)庫表記錄丟失。 Mysql數(shù)據(jù)庫故障表現(xiàn): 1、Mysql數(shù)據(jù)庫無任何
    的頭像 發(fā)表于 12-16 11:05 ?191次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—Mysql<b class='flag-5'>數(shù)據(jù)庫</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復流程

    數(shù)據(jù)庫數(shù)據(jù)恢復—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復案例

    mysql數(shù)據(jù)庫故障: mysql數(shù)據(jù)庫文件ibdata1、MYI、MYD損壞。 故障表現(xiàn):1、數(shù)據(jù)庫無法進行查詢等操作;2、使用mysqlcheck和myisamchk無法修復數(shù)據(jù)庫
    的頭像 發(fā)表于 12-09 11:05 ?192次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復—通過拼接數(shù)據(jù)庫碎片恢復SQLserver數(shù)據(jù)庫

    一個運行在存儲上的SQLServer數(shù)據(jù)庫,有1000多個文件,大小幾十TB。數(shù)據(jù)庫每10天生成一個NDF文件,每個NDF幾百GB大小。數(shù)據(jù)庫包含兩個LDF文件。 存儲損壞,數(shù)據(jù)庫
    的頭像 發(fā)表于 10-31 13:21 ?289次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—通過拼接<b class='flag-5'>數(shù)據(jù)庫</b>碎片恢復SQLserver<b class='flag-5'>數(shù)據(jù)庫</b>

    Oracle數(shù)據(jù)恢復—異常斷電后Oracle數(shù)據(jù)庫報錯的數(shù)據(jù)恢復案例

    Oracle數(shù)據(jù)庫故障: 機房異常斷電后,Oracle數(shù)據(jù)庫報錯:“system01.dbf需要更多的恢復來保持一致性,數(shù)據(jù)庫無法打開”。數(shù)據(jù)
    的頭像 發(fā)表于 09-30 13:31 ?342次閱讀
    Oracle<b class='flag-5'>數(shù)據(jù)</b>恢復—異常斷電后Oracle<b class='flag-5'>數(shù)據(jù)庫</b>啟<b class='flag-5'>庫</b>報錯的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server數(shù)據(jù)庫出現(xiàn)823錯誤的數(shù)據(jù)恢復案例

    SQL Server數(shù)據(jù)庫故障: SQL Server附加數(shù)據(jù)庫出現(xiàn)錯誤823,附加數(shù)據(jù)庫失敗。數(shù)據(jù)庫沒有備份,無法通過備份恢復數(shù)據(jù)庫。
    的頭像 發(fā)表于 09-20 11:46 ?382次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—SQL Server<b class='flag-5'>數(shù)據(jù)庫</b>出現(xiàn)823錯誤的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    深入淺出系列之代碼可讀性

    原創(chuàng)聲明:該文章是個人在項目中親歷后的經(jīng)驗總結和分享,如有搬運需求請注明出處。 這是“深入淺出系列”文章的第一篇,主要記錄和分享程序設計的一些思想和方法論,如果讀者覺得所有受用,還請“一鍵三連
    的頭像 發(fā)表于 08-09 16:00 ?282次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復—SQL Server數(shù)據(jù)庫所在分區(qū)空間不足報錯的數(shù)據(jù)恢復案例

    SQL Server數(shù)據(jù)庫數(shù)據(jù)恢復環(huán)境: 某品牌服務器存儲中有兩組raid5磁盤陣列。操作系統(tǒng)層面跑著SQL Server數(shù)據(jù)庫,SQL Server數(shù)據(jù)庫存放在D盤分區(qū)
    的頭像 發(fā)表于 07-10 13:54 ?538次閱讀

    數(shù)據(jù)庫數(shù)據(jù)恢復—數(shù)據(jù)庫所在分區(qū)空間不足導致sqlserver故障的數(shù)據(jù)恢復案例

    數(shù)據(jù)。服務器上部署sql server數(shù)據(jù)庫,數(shù)據(jù)庫存放在C盤。 數(shù)據(jù)庫故障: 工作人員發(fā)現(xiàn)服務器的
    的頭像 發(fā)表于 05-22 13:16 ?503次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—<b class='flag-5'>數(shù)據(jù)庫</b>所在分區(qū)空間不足導致sqlserver故障的<b class='flag-5'>數(shù)據(jù)</b>恢復案例

    數(shù)據(jù)庫數(shù)據(jù)恢復—raid5陣列上層Sql Server數(shù)據(jù)庫數(shù)據(jù)恢復案例

    數(shù)據(jù)庫數(shù)據(jù)恢復環(huán)境: 5塊硬盤組建一組RAID5陣列,劃分LUN供windows系統(tǒng)服務器使用。windows系統(tǒng)服務器內運行了Sql Server數(shù)據(jù)庫,存儲空間在操作系統(tǒng)層面劃分了三個邏輯分區(qū)
    的頭像 發(fā)表于 05-08 11:43 ?536次閱讀
    <b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復—raid5陣列上層Sql Server<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復案例

    ?通過Modbus讀寫數(shù)據(jù)庫數(shù)據(jù)

    本文是將數(shù)據(jù)庫數(shù)據(jù)轉為Modbus服務端/從站,實現(xiàn)數(shù)據(jù)庫內的數(shù)據(jù)也可以走Modbus協(xié)議通過網(wǎng)口或串口讀寫的案例,下圖是通過智能網(wǎng)關的參數(shù)軟件(在附件
    發(fā)表于 03-14 13:44

    數(shù)據(jù)庫數(shù)據(jù)恢復】Oracle數(shù)據(jù)庫ASM實例無法掛載的數(shù)據(jù)恢復案例

    oracle數(shù)據(jù)庫ASM磁盤組掉線,ASM實例不能掛載。數(shù)據(jù)庫管理員嘗試修復數(shù)據(jù)庫,但是沒有成功。
    的頭像 發(fā)表于 02-01 17:39 ?549次閱讀
    【<b class='flag-5'>數(shù)據(jù)庫</b><b class='flag-5'>數(shù)據(jù)</b>恢復】Oracle<b class='flag-5'>數(shù)據(jù)庫</b>ASM實例無法掛載的<b class='flag-5'>數(shù)據(jù)</b>恢復案例