《資料庫系統概論》知識點梳理

来源:https://www.cnblogs.com/liubaili/archive/2022/06/26/16413780.html
-Advertisement-
Play Games

第一章 緒論 1.1 資料庫系統概述 1.1.1 資料庫的4個基本概念 數據:描述事物的符號記錄,數據的含義稱為數據的語義,二者是不可分的。 資料庫:資料庫是長期存儲在電腦內、有組織的、可共用的大量數據的集合。 資料庫數據基本特點:永久存儲、有組織、可共用。 資料庫管理系統(DBMS):是電腦的 ...


第一章 緒論

1.1 資料庫系統概述

1.1.1 資料庫的4個基本概念

  1. 數據:描述事物的符號記錄,數據的含義稱為數據的語義,二者是不可分的。

  2. 資料庫:資料庫是長期存儲在電腦內、有組織的、可共用的大量數據的集合。 資料庫數據基本特點:永久存儲、有組織、可共用。

  3. 資料庫管理系統(DBMS):是電腦的基礎軟體。 主要功能:(1)數據定義功能(2)數據組織、存儲和管理功能(3)數據操縱功能(4)資料庫的事務管理和運行管理(5)資料庫的建立和維護功能(6)其他功能

  4. 資料庫系統(DBS):由資料庫、資料庫管理系統(及其應用開發工具)、應用程式和資料庫管理員組成的存儲、管理、處理和維護數據的系統

1.1.2 數據管理技術的產生和發展

數據管理三個階段的特點及其比較:

  人工管理階段 文件系統階段 資料庫系統階段
應用背景 科學計算 科學計算、數據管理 大規模數據管理
硬體背景 無直接存取存儲設備 磁碟、磁鼓 大容量磁碟、磁碟陣列
處理方式 批處理 聯機實時處理、批處理 聯機實時處理、分佈處理、批處理
       
數據的管理者 程式員 文件系統 資料庫管理系統
數據面向對象 某一應用程式 某一應用 部門企業
數據的共用程度 無共用,冗餘度極大 共用性差,冗餘度大 共用性高,冗餘度低
數據獨立性 不獨立 獨立性差 具有高度的物理獨立性和一定的邏輯獨立性
數據結構化 無結構 記錄內有結構、整體無結構 整體結構化,用數據模型描述
數據控制能力 應用程式自己控制 應用程式自己控制 DBMS提供數據安全性、完整性、併發控制和恢復能力

1.1.3 資料庫系統的特點:

  1. 數據結構化(與文件系統的本質區別)

  2. 共用性高,冗餘度低且易擴展

  3. 數據獨立性高:

    (1)物理獨立性:用戶的應用程式與資料庫中的數據的物理存儲是相互獨立的; (2)邏輯獨立性:用戶的應用程式與資料庫的邏輯結構是相互獨立的。

    數據獨立性是由資料庫管理系統提供的二級映像功能來保證的。

  4. 數據統一管理和控制

【聯想】資料庫系統的三級模式結構:外模式、模式和內模式。模式也稱邏輯模式,是所有用戶的公共數據視圖;外模式也稱用戶模式,是資料庫用戶的數據視圖;內模式也稱存儲模式,是數據在資料庫內部的組織方式。

1.2 數據模型

1.2.1 兩類數據模型

概念模型(實體-聯繫 E-R模型)、邏輯模型和物理模型

1.2.2 概念模型

基本概念:實體、屬性、碼、實體型、實體集、聯繫

1.2.3 數據模型的組成要素

數據結構、數據操作、數據的完整性約束條件

1.2.4 常用的數據模型

  • 層次模型

    優點:

    1. 數據結構比較簡單清晰

    2. 資料庫的查詢效率高

    3. 數據模型提供了良好的完整性支持

    缺點:

    1. 現實世界中很多聯繫是非層次化的

    2. 程式編寫複雜,插入刪除限制多

    3. 查詢子女節點必須通過雙親節點

    4. 由於結構嚴密,層次命令趨向於結構化

  • 網狀模型

    優點:

    1. 能夠更為直接的描述現實世界

    2. 具有良好的性能,存取效率較高

    缺點:

    1. 結構比較複雜

    2. DDL/DML複雜,不好掌握使用

    3. 因為聯繫是通過存取路徑實現的,用戶需要瞭解系統結構的細節

  • 關係模型

    優點:

    1. 建立在嚴格的數據概念基礎上

    2. 概念單一,都用關係表示

    3. 存取路徑對用戶透明,簡化工作

    缺點:

    1. 存取路徑隱蔽,導致查詢效率不高,為了提升性能,DMBS必須對用戶查詢請求進行優化

1.3 資料庫系統的結構

1.3.3 資料庫的二級映像功能與數據獨立性

  1. 外模式/模式映像 模式改變,對映象做修改,可以保證外模式不變,保證了邏輯獨立性

  2. 模式/內模式映象 內模式改變(資料庫的存儲結構改變),對映象做修改,可以保持模式不變,保證了物理獨立性

 

第二章 關係資料庫

2.1 關係模型數據結構及形式化定義

按照數據模型三要素,關係模型由數據結構、關係操作集合和關係完整性約束三部分組成

2.1.1 關係

  1. 關係:在域D上笛卡爾積的子集

  2. 關係可以有三種類型:基本關係(基本表)、查詢表、視圖表。

2.2 關係操作

2.2.1 基本的關係操作

  1. 查詢操作: 選擇、投影、連接、除、並、差、交、笛卡爾積 選擇、投影、並、差、笛卡爾積是五種基本操作

  2. 數據更新:插入、刪除、修改

2.3 關係的完整性

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

2.3.1 實體完整性

若屬性A是基本關係R的主屬性,則A不能取空值。

2.3.2 參照完整性

若屬性F是基本關係R的外碼,它與基本關係S的主碼K相對應,則對R中的每個元組在F上的值,必須為空值或者S中某個元組的主碼值

2.4 關係代數

運算符 含義
-
× 笛卡爾積
σ 選擇
Π 投影
連接
÷

前四種為傳統的集合運算,後四種為專門的關係運算

第三章 關係資料庫標準語言SQL

3.1 SQL概述

SQL功能 動詞
數據查詢 SELECT
數據定義 CREATE,DROP,ALTER
數據操縱 INSERT,UPDATE,DELETE
數據控制 GRANT,REVOKE

3.3 數據定義

  • 數據定義語句

    操作對象 創建 刪除 修改
    模式 CREATE SCHEMA DROP SCHEMA  
    CREATE TABLE DROP TABLE ALTER TABLE
    視圖 CREATE VIEW DROP VIEW  
    索引 CREATE INDEX DROP INDEX ALTER INDEX
  • 主要(常用)數據類型

    數據類型 含義
    int,smallint 整數
    char(n) 長度為n的字元串
    float(n) 可選精度的浮點數
    date 日期,格式為YYYY-MM-DD
    time 時間,格式為HH:MM:SS

3.4 數據查詢

  • 數據查詢語句

     select [all/distinct] <目標列表表達式>
     from <表名/視圖名> [as] <別名>
     [where <條件表達式>]
     [group by <列名>[having <條件表達式>]]
     [order by <列名>]  --升序或降序
  • where查詢常用條件

    查詢條件 謂詞
    比較 (not) =,>,<,>=,<=,!=,<>,!>,!<
    確定範圍 between and; not betweeen and
    確定集合 in, not in
    字元匹配 like, not like
    空值 is null, is not null
    多重條件 and, or, not
  • 字元匹配:(1)%(百分號):代表任意長度字元串;(2)_(下橫線):代表任意單個字元

  • 聚集函數:

    函數 含義
    count(*) 統計元組個數
    count([all/distinct] <列名>) 統計一列中值的個數
    sum([all/distinct] <列名>) 統計一列中值的總和
    avg([all/distinct] <列名>) 統計一列中值的平均值
    max([all/distinct] <列名>) 統計一列中值的最大值
    min([all/distinct] <列名>) 統計一列中值的最小值
  • 帶有EXISTS謂詞的子查詢不返回任何數據,只產生邏輯真值“true”或邏輯假值“false”。使用存在量詞後,若內層查詢結果非空,則外層的where字句返回真值,否則返回假值。

3.6 空值的處理

  • 空值的判斷:is null或者is not null

3.7 視圖

3.7.4 視圖的作用

  1. 視圖能夠簡化用戶的操作

  2. 視圖使用戶能以多種角度看待同一數據

  3. 視圖對重構資料庫提供了一定程度的邏輯獨立性

  4. 視圖能對機密數據提供安全保護

  5. 適當利用視圖可以更清晰地表達查詢

 

第四章 資料庫安全性

資料庫的安全性:保護資料庫以防止不合法使用所造成的的數據泄露、更改或破壞

4.2 資料庫安全性控制

4.2.4 授權:授予與收回

  1. grant授權語句一般格式:

     grant <許可權>
     on <對象類型><對象名>
     to <用戶>
     with grant option --該用戶可以將許可權授予他人
  2. revoke回收許可權語句:

     revoke <許可權>
     on <對象類型><對象名>
     from <用戶> [cascade|restrict]

第五章 資料庫完整性

5.1 實體完整性

  1. 檢查主碼是否唯一,拒絕插入或修改

  2. 檢查主碼的各個屬性是否為空,拒絕插入或修改

5.2 用戶定義的完整性

屬性上約束條件的定義:(1)列值非空(not null);(2)列值唯一(unique);(3)檢查列值是都滿足一個條件表達式(check短語)

5.4 完整性約束命名字句

 constraint<完整性約束條件名><完整性約束條件>

5.7 觸發器

  • 定義格式:

     CREATE TRIGGER <觸發器名>
     BEFORE|AFTER <觸發事件> ON <表名>
     REFERENCING NEW|OLD ROW AS <變數>
     FOR EACH{ROW|STATEMENT}
     [WHEN<觸發條件>]<觸發動作體>
  • 觸發事件:可以是insert、delete或update;after/before表示觸發的時機

 

第六章 關係數據理論

6.1 問題的提出

常見的關係模式問題:

  • 數據冗餘

  • 更新異常

  • 插入異常

  • 刪除異常

6.2 規範化

6.2.1 函數依賴

X函數確定Y或Y函數依賴X,記做X->Y; F(X)=Y

  • X->Y,但Y不屬於X,則稱X->Y是非平凡的函數依賴

  • X->Y,但Y屬於X,則稱X->Y是平凡的函數依賴

  • 區別:完全函數依賴x-^F>y)、部分函數依賴(x-^P>y)、傳遞函數依賴

6.2.2 碼

  • R<U,F>,若U對K存在完全函數依賴,則K為R的候選碼

  • 如果U函數依賴於K,即K->U,則K稱為超碼

  • 若候選碼多餘一個,則選定其中一個為主碼

  • 包含在任何一個候選碼中的屬性稱為主屬性,其餘為非主屬性

6.2.3 範式

  • NF:碼X,非主屬性Z,不存在X->Y,Y->Z成立,且Y不函數依賴於Z。

  • 2NF:在NF的基礎上刪除非主屬性對碼的部分函數依賴

  • 3NF:在2NF的基礎上消除非主屬性對碼的傳遞函數依賴

  • BCNF:在3NF的基礎上消除主屬性對碼的部分和傳遞函數依賴

 

第七章 資料庫設計

7.1 資料庫設計概述

7.1.3 資料庫設計步驟

  1. 需求分析

  2. 概念結構設計

  3. 邏輯結構設計

  4. 物理結構設計

  5. 資料庫實施

  6. 資料庫運行和維護

 


由於期末考核需要,整理了一份發一下叭

 

製作:BDT20040


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Redis 的定義? 百度百科: Redis(Remote Dictionary Server ),即遠程字典服務,是一個開源的使用ANSI C語言編寫、支持網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。 中文官網: Redis是一個開源(BSD許可),記憶體存 ...
  • 安裝 Redis # 首先安裝依賴gcc, 後面需要使用make編譯redis yum install gcc -y # 進入 /usr/local/src 目錄, 把源碼下載到這裡 cd /usr/local/src # 下載 redis 7.0.2 的源碼,github被牆,可以使用國內的地址 ...
  • 一、前言 項目中之前涉及到胎兒心率圖曲線的繪製,最近項目中還需要添加心電曲線和血樣曲線的繪製功能。今天就來分享一下心電曲線的繪製方式; 二、正文 1、胎兒心率曲線的繪製是通過DrawingVisual來實現的,這裡的心電曲線我也是採用差不多相同的方式來實現的,只是兩者曲線的數據有所區別。心電圖的數據 ...
  • 效果圖先附上: 首先 這是我是參考 教程:使用 SignalR 2 和 MVC 5 實時聊天 | Microsoft Docs 先附上教程: 在“添加新項 - SignalRChat”中,選擇 InstalledVisual> C#>WebSignalR>,然後選擇 SignalR Hub 類 (v ...
  • 這次iNeuOS升級主要升級圖形渲染引擎和增加豐富的圖元信息,可以很快的方案應用。總共增加41個通用和行業領域的圖元應用,增加2154個圖元信息,現在iNeuOS視圖建模功能模塊總共包括5894個行業圖元信息。現在完全支持製作高保真的工藝流程和大屏展示效果。 ...
  • 什麼是工廠模式 工廠模式是最常用的設計模式之一,屬於創建型模式。 有點: 解耦,可以把對象的創建和過程分開 減少代碼量,易於維護 什麼時候用? 當一個抽象類有多個實現的時候,需要多次實例化的時候,就要考慮使用工廠模式。 比如:登錄的抽象類ILoginBusiness,它有2個實現,一個用用戶名密碼登 ...
  • 遠程連接ubuntu 提前準備: 在Ubuntu中安裝好ssh 安裝步驟:1.安裝openssh-server 😒udo apt-get install openssh-server ​ (過程中會確認是否希望繼續執行,按y就可) ​ 2.查看是否安裝成功:ps -e |grep ssh ​ 3. ...
  • 1 學習參考 MySQL官方文檔 https://dev.mysql.com/doc/refman/8.0/en/delete.html 節選自 MySQL 8.0 Reference Manual_SQL Statements_Data Manipulation Statements_DELETE ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...