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

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

2022-07-14 10:17:57 資料庫

第一章 緒論

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

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/499180.html

標籤:SQL Server

上一篇:什么是 SQL GROUPING 運算子,如何使用 SQL GROUPING 運算子

下一篇:配置SQL Server AlwaysOn

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more