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

来源: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
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...