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

来源: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
  • 一:背景 1.講故事 在分析的眾多dump中,經常會遇到各種奇葩的問題,僅通過dump這種快照形式還是有很多問題搞不定,而通過 perfview 這種粒度又太粗,很難找到問題之所在,真的很頭疼,比如本篇的 短命線程 問題,參考圖如下: 我們在 t2 時刻抓取的dump對查看 短命線程 毫無幫助,我根 ...
  • 在日常後端Api開發中,我們跟前端的溝通中,通常需要協商好入參的數據類型,和參數是通過什麼方式存在於請求中的,是表單(form)、請求體(body)、地址欄參數(query)、還是說通過請求頭(header)。 當協商好後,我們的介面又需要怎麼去接收這些數據呢?很多小伙伴可能上手就是直接寫一個實體, ...
  • 許多情況下我們需要用到攝像頭獲取圖像,進而處理圖像,這篇博文介紹利用pyqt5、OpenCV實現用電腦上連接的攝像頭拍照並保存照片。為了使用和後續開發方便,這裡利用pyqt5設計了個相機界面,後面將介紹如何實現,要點包括界面設計、邏輯實現及完整代碼。 ...
  • 思路分析 註冊頁面需要對用戶提交的數據進行校驗,並且需要對用戶輸入錯誤的地方進行提示! 所有我們需要使用forms組件搭建註冊頁面! 平時我們書寫form是組件的時候是在views.py裡面書寫的, 但是為了接耦合,我們需要將forms組件都單獨寫在一個地方,需要用的時候導入就行! 例如,在項目文件 ...
  • 思路分析 登錄頁面,我們還是採用ajax的方式提交用戶數據 唯一需要學習的是如何製作圖片驗證碼! 具體的登錄頁面效果圖如下: 如何製作圖片驗證碼 推導步驟1:在img標簽的src屬性里放上驗證碼的請求路徑 補充1.img的src屬性: 1.圖片路徑 2.url 3.圖片的二進位數據 補充2:字體樣式 ...
  • 哈嘍,兄弟們! 最近有許多小伙伴都在吐槽打工好難。 每天都是執行許多重覆的任務 例如閱讀新聞、發郵件、查看天氣、打開書簽、清理文件夾等等, 使用自動化腳本,就無需手動一次又一次地完成這些任務, 非常方便啊有木有?! 而在某種程度上,Python 就是自動化的代名詞。 今天就來和大家一起學習一下, 用 ...
  • 作者:IT王小二 博客:https://itwxe.com 前面小二介紹過使用Typora+PicGo+LskyPro打造舒適寫作環境,那時候需要使用水印功能,但是小二在升級LskyPro2.x版本發現有很多不如人意的東西,遂棄用LskyPro使用MinIO結合代碼實現自己需要的圖床功能,也適合以後 ...
  • OpenAI Gym是一款用於研發和比較強化學習演算法的工具包,本文主要介紹Gym模擬環境的功能和工具包的使用方法,並詳細介紹其中的經典控制問題中的倒立擺(CartPole-v0/1)問題。最後針對倒立擺問題如何建立控制模型並採用爬山演算法優化進行了介紹,並給出了相應的完整python代碼示例和解釋。要... ...
  • python爬蟲瀏覽器偽裝 #導入urllib.request模塊 import urllib.request #設置請求頭 headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, l ...
  • 前端代碼搭建 主要利用的是bootstrap3中js插件里的模態框版塊 <li><a href="" data-toggle="modal" data-target=".bs-example-modal-lg">修改密碼</a></li> <div class="modal fade bs-exam ...