主頁 > 資料庫 > 資料庫概論筆記第一章

資料庫概論筆記第一章

2021-04-05 10:48:13 資料庫

資料庫概述

一、資料庫基本概念

1.資料庫系統

資料庫(DB)通常包含企業資訊的集合,(存在于硬碟上)

區分DB:業務是否相關

資料庫管理系統(DBMS):存盤和檢索資料(要求方便和高效)(MySQL)

資料庫系統(DBS):引入資料庫后整個系統(包含DB、DBMS

DBS 包括 資料庫本身的軟體(資料庫管理系統DBMS、作業系統OS、應用系統)、硬體、資料庫管理員

2.計算機硬體

!

OS指作業系統的檔案系統

3.使用資料庫系統的目的

1.使用檔案系統的缺點

? a. 資料的冗余和不一致(語言不同導致無法編譯)

? b.資料訪問困難(難以從資料中篩選有用的)

? c.資料孤立(格式不同)

? d.完整性問題(難以添加約束)

? e.原子性問題(難以在更改程序中進行復原)

? f.多個用戶的并發訪存(多個用戶同時 更改資料)

? g.安全性問題

4.資料視圖

資料庫系統為用戶提供資料的抽象視圖,隱藏了資料存盤和維護的某些細節

屏蔽復雜性的三個層次:

1.物理層

? 描述資料是怎么被存盤的

2.邏輯層

? 描述資料庫中資料是怎么存盤的和資料之間的關系

? 是描述整個資料庫是怎么存盤資料的

3.視圖層

? 描述一部分資料庫中的資料

!

Secondary Memory:二級存盤器(硬碟)

5.模式schema和實體Instance

資料庫的模式:資料庫的總體設計

模式分為三種模式:物理模式(內模式)(1個)、邏輯模式(1個)、子模式(外模式)(里面可以有多個視圖),分別對應三種層次

物理資料獨立性:程式員通過邏輯模式來構造應用程式,應用程式不依賴于物理模式,即使物理模式改變,通過改變物理模式和邏輯模式之間的映射來保證邏輯模式不變

邏輯資料獨立性:即使邏輯模式改變,也可以保證子模式不變

資料庫的實體:特定時刻儲存在資料庫中資訊的集合

二、資料模型

用什么樣的結構組織資料

1.關系模型(Relational Model)

關系資料庫基于關系資料模型,使用表來表示資料和資料間的聯系,

表就是行的集合,也就是記錄的集合,每個記錄有多個分量,分量就叫做屬性,每一列就對應屬性,

每一個表就是一個關系,基于關系構建的就是關系資料模型

2.物體聯系模型Entity-relationship data model(E-R模型)

資料庫設計使用的模型,基于現實世界認識構成,

物體Entity:現實世界中可區別于其他物件的事情或物體,如人、夢、賬戶,

物體的特征稱為屬性Attribute,如人所在街道,

聯系Relationship:物體之間的聯系

物體集Entity Set:具有相同屬性所有物體的集合,如某所大學的所有教師,

聯系集Relationship set:相同種類所有聯系的集合

圖形化表示

!

矩形:物體集 橢圓:屬性 菱形:物體間的聯系

3.基于物件的資料模型Object-based data model

面向物件的資料模型(E-R模型擴展)

4.半結構化資料模型Semistructured data model

XML

5.其他模型

網狀資料模型Network data model、層次資料模型Hierarchical data model

三、資料庫語言

語言分類:程序性語言procedural(指出需要的資料和怎么得到資料)C、java、非程序性語言(宣告性語言)declarative(指出需要什么資料)SQL語言

1.SQL語言(基于關系模型構建的語言):結構化查詢語言,純pure資料庫語言

!

在customer表中查詢id為,,的名字

a.資料庫定義語言DDL:資料庫從無到有或從有到無,建立資料庫、表

!

把表的定義存盤于資料字典里,資料字典以的形式存在,包含的資料稱為元資料metadata,

元資料:關于資料的資料,包含資料庫的模式database schema、完整性約束Integrity constraints、權限資料Authorization,

b.資料操縱語言DML(查詢語言):資料庫查詢更新,可以使用現有的資料庫

訪問或者操縱按照某種適當資料模型組織起來的資料,

操作型別:檢索資料庫中的資訊、插入新的資訊、洗掉、修改資訊,(增刪改查)(大部分是查詢操作,)

四、資料庫程式語言

將SQL與其他高級語言配合時其他語言叫陣列語言

1.在應用程式中訪問資料庫方法

1.擴展陣列語言,嵌入SQL陳述句(特殊字符作為SQL開始),整個程式通過SQL預編譯器轉變為陣列語言程序呼叫,然后陣列語言再解釋執行.

2.提供應用程式介面,如ODBC(微軟),JDBC(Java),

2.關系Relational資料庫

基于關系模型構建,

資料和資料之間的聯系通過表的集合來表示,

關系資料庫包含DML和DDL(一般就是SQL語言),

五、資料庫設計(最重要邏輯設計、物理設計)

1.邏輯設計Logical design

找到最優表的模式的集合,(業務層面:需要記錄哪些屬性,計算機科學方面:使用什么模式、屬性如何分布在模式里)

2.物理設計

決定資料庫物理布局,包括檔案組織形式、內部的存盤結構等,

六、資料庫用戶

1.資料庫普通用戶

分為應用程式員Application programmers(通過資料操作語言呼叫)、老練用戶Sophisticated users(用資料庫查詢語言研究資料)、專門用戶Specialized users(撰寫資料庫應用)、無經驗用戶Naive users(使用寫好的應用程式)

2.資料庫管理員DBA

職責

1.模式定義(資料庫初始表的定義)

2.存盤結構和存取方法定義

3.資料訪問授權

4.定義完整性約束(條件合不合理)

5.與用戶聯絡

6.監控性能并根據需求進行變更

七、資料庫管理系統DBMS的功能

1.存盤管理

資料庫存盤于硬碟,使用作業系統、檔案系統,

存盤管理器storage manager提供資料庫的資料和應用程式之間的介面,將各種DML查詢操作翻譯為底層的檔案系統命令,

1.存盤管理器包括
a.權限級完整性管理器manager

資料是否滿足完整性約束和檢查用戶的權限,

b.事務Transaction管理器

保證及時系統故障,資料庫也可以保證正確

保證并發的事務執行不發生沖突

資料庫應用中完成單一邏輯功能的操作集合,確保資料庫處于一致性狀態,

事務管理器確保意外情況資料庫正常,

并發控制管理器就是控制事件并發情況,

c.檔案管理器

分配磁盤存盤空間

管理磁盤存盤資訊的資料結構

d.緩沖區管理器

將資料從磁盤取到記憶體中

決定哪些資料應該被快取到磁盤中

2.存盤管理器部件應該實作的資料結構
a.資料檔案data file

存盤資料庫的資料

b.資料字典data dictionary

存盤資料庫的元資料和資料庫的模式

data about data

c.索引indices

提供資料庫的快速訪問

對一列資料進行排序,排序的那個屬性后面還有一個指標,指向原資料位置,

2.查詢Query處理(可以在視圖層次作業)

實作:資料抽象、非程序性語言(SQL)

查詢處理器Query processor將SQL的陳述句翻譯成物理層的操作序列

1.組成
1.DDL解釋器interpreter

解釋DDL陳述句,并將定義記錄在字典中

2.DML編譯器compiler and organizer

將查詢語言的DML陳述句翻譯成執行方案(低級指令),查詢的優化

3.查詢執行引擎Query evaluation engine

執行DML陳述句生成的執行計劃

2.執行給定查詢的其他方法(替代查詢):

1.計算等價的運算式

2.采用不同的演算法

評估中間統計結果的資訊來計算運算式的代價,來找到最小的代價

計算代價取決于資料庫必須維護的統計資訊,通過統計資訊statistical data(相當于人類的經驗)來計算代價

3.查詢處理步驟

1.將查詢陳述句決議并翻譯parsing and translation成查詢處理器可以理解的關系代數運算式

2.系統對查詢進行優化,結合統計資訊盡可能選出最小查詢執行代價的查詢執行計劃 optimization

3.查詢執行引擎查詢并執行evaluation

!

3.整體功能介紹

通過代碼想資料發出查詢請求:code -> engine

DML編譯器: 資料字典查詢權限資訊,統計資訊進行優化

檔案管理和緩沖管理:訪問資料和索引(也相當于一種資料)

!

4.系統的體系結構Architecture

取決于資料庫運行的計算機系統,

1.集中式的Centralized
2.客戶-服務器式的Client-server
3.并行Parallel

針對并行的計算體系設計的

4.分布式Distributed

地理上分離的多臺計算機的

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

標籤:其他

上一篇:Redis常見面試題

下一篇:mysql知識點整理

標籤雲
其他(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