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

来源: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
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...