Restart Study MySQL-01資料庫概述(基礎)

来源:https://www.cnblogs.com/changming06/archive/2023/12/03/17873952.html
-Advertisement-
Play Games

C(Chapter) C-01.資料庫概述 1.為什麼要用資料庫 持久化(persistence):把數據保存到可掉電式存儲設備(硬碟)中以供之後使用。大多數情況下,特別是企業應用,數據持久化是將記憶體中的數據保存到硬碟上加以"固化",而持久化的實現過程大多使用各種關係資料庫來完成。 持久化的主要作用 ...


C(Chapter)

C-01.資料庫概述

1.為什麼要用資料庫

  • 持久化(persistence):把數據保存到可掉電式存儲設備(硬碟)中以供之後使用。大多數情況下,特別是企業應用,數據持久化是將記憶體中的數據保存到硬碟上加以"固化",而持久化的實現過程大多使用各種關係資料庫來完成。
  • 持久化的主要作用是將記憶體中的數據存到關係型資料庫中,當然也可以存儲在磁碟文件,XML數據文件中。

2.資料庫與資料庫管理系統

2.1 資料庫的相關概念

DB:資料庫(Database)。存儲數據的倉庫,其本質是一個文件系統。保存了一系列有組織的數據。
DBMS:資料庫管理系統(Database Management System)。是一種操作和管理資料庫的大型軟體,用於建立,使用和維護資料庫,對資料庫進行統一的管理和控制。用戶通過資料庫管理和訪問資料庫中表的數據。
SQL:結構化查詢語言(Structured Query Language)。專門用來與資料庫交互的語言。

2.2 資料庫和資料庫管理系統的關係

資料庫管理系統(DBMS)可以管理多個資料庫,一般開發人員會針對每一個應用創建一個資料庫。為保存應用中實體的數據,一般會在資料庫中創建多個表,以保存程式中用戶的數據。

3.MySQL優勢

為什麼很多廠商選擇MySQL?
  • 1.開放源代碼,使用成本低。
  • 2.性能卓越,服務穩定。
  • 3.軟體體積小,使用簡單,並且易於維護。
  • 4.歷史悠久,社區用戶活躍,遇到問題容易解決。
  • 5.很多互聯網公司再用,經過了時間的考驗。

4.RDBMS與非RDBMS

RDBMS(Relationship Database Management System)

4.1 關係型資料庫(RDBMS)

4.1.1 實質
  • 關係型資料庫是最古老的資料庫類型,關係型資料庫模型是把複雜的數據結構歸結為簡單的二元關係(二維表格)。
  • 關係型資料庫以行(row)列(column)的形式存儲數據,以便於用戶理解。這一系列的行和列被稱為表(table),一組表組成了一個庫(database)。
  • 表和表之間的數據記錄有關係(relationship)。現實世界里的各種實體以及實體之間的各種關係均用關係模型來表示。關係型資料庫,就是建立在關係模型基礎上的資料庫。
  • SQL就是關係型資料庫的交互語言。
4.1.2 優勢
  • 複雜查詢 可以用SQL語句方便的在一個表以及各個表之間,做非常複雜的數據查詢。
  • 事務支持 使得對於安全性很高的數據訪問要求得以實現。

4.2 非關係型資料庫(非DBMS)

4.2.1 介紹

非關係型資料庫,可以看成關係型資料庫的簡化版本,基於鍵值對存儲數據,不需要經過SQL層的解析,性能非常高。同時,減少了很多不常用的功能,進一步提高了性能。
目前主流的非關係型資料庫都是免費的。

4.2.2 有那些非關係型資料庫

相比於SQL,NoSQL泛指非關係型資料庫,包括了鍵值型資料庫,文檔型資料庫,搜索引擎和列存儲等,還有圖形資料庫。也只有NoSQL才能將這些資料庫都概括。
鍵值型資料庫
鍵值型資料庫,通過key-value鍵值的方式來存儲數據,其中key和value可以是簡單的對象,也可以是複雜的對象。key作為唯一的標識符,優點是查找速度快,而且明顯優於關係型資料庫,確定是無法像關係型資料庫一樣使用條件過濾(比如WHERE),如果不知道去哪裡找數據,就會遍歷所有的鍵,消耗大量的CPU資源。
鍵值型資料庫典型的使用場景就是作為記憶體緩存。Redis是最流行的鍵值型資料庫。
文檔型資料庫
可以存放文檔,可以是xml格式,json格式。再資料庫中文檔作為處理信息的基本單位,一個文檔相當於一條記錄。文檔資料庫所存放的文檔,就相當於鍵值資料庫所存放的值。MongoDB是最流行的文檔型資料庫。此外還有CouchDB等。
搜索引擎資料庫
關係型資料庫雖然採用了索引提升了檢索效率,但是針對全文索引效率卻較低。搜索引擎資料庫是應用在搜索引擎領域的數據存儲形式,由於搜索引擎會爬取大量的數據,並以特定的格式進行存儲,這樣在檢索的時候,才能保證性能最優。核心原理是倒排索引
典型產品:ES(Elasticsearch),Solr,Splunk等。
列式資料庫
列式資料庫是相對於行式存儲的資料庫,Oracle,MySQL,SQL Server等資料庫都是採用的行式存儲(Row-based),而列式資料庫是將數據按照列存儲到資料庫中,這樣做的好處是可以大量降低系統的I/O,適合於分散式文件系統,不足在於功能相對有限。
典型產品:HBase。
圖形資料庫
圖形資料庫,利用了圖這種數據結構存儲了實體(對象)之間的關係,圖形資料庫最典型的例子就是社交網路中人與人的關係,數據模型主要是以節點和邊(關係)來實現,特點在於能高效的解決複雜的關係問題。
圖形資料庫顧名思義,就是一種存儲圖形關係的資料庫,它利用了圖這種數據結構,存儲了實體(對象)之間的關係。關係型數據用於存儲明確關係的數據,但對於複雜關係的數據存儲卻有些力不從心。如社交網路中人物之間的關係,如果使用關係型資料庫會非常複雜,用圖形資料庫將非常簡單。
典型產品:Neo4J,InfoGrid等。

4.2.3 NoSQL的演變

NoSQL對SQL做出了很好的補充,比如實際開發中,有很多業務需求,其實並不需要完整的關係型資料庫功能,非關係型資料庫的功能就足夠使用了。這種情況下,使用性能更高成本更低的的非關係型資料庫當然是更好的選擇,比如:排行榜,定時器等。

5.關係型資料庫設計規則

  • 關係型資料庫的典型數據結構就是數據表,這些數據表的組成都是結構化的(Structured)。
  • 將數據放到表中,表再放到庫中。
  • 一個資料庫中可以有多個表,每個表都有一個名字,用來標識自己。表名具有唯一性。
  • 表具有一些特性,這些特性定義了數據在表中如何存儲,類似Java中“類”的設計。

5.1 表,記錄,欄位

  • E-R(entity-relationship,實體-聯繫),模型中有三個主要概念是:實體集屬性聯繫集
  • 一個實體集(Class)對應資料庫中的一張表(Table),一個實體(Instance)則對應於資料庫表中的一行(Row),也稱為一條記錄(Record)。一個屬性(Attribute)對應於資料庫中的一列(Cloumn),也成為一個欄位(Field)。
  • ORM思想(Object Relational Mapping)體現:資料庫中的一張表 <----> Java中一個類,表中的一條數據 <----> 類的一個對象(實體),
    表中的一個列 <----> 類中的一個欄位,屬性(Field)。

5.2 表的關聯關係

  • 表與表之間的數據記錄有關係。現實世界的實體及實體之間的關係均用關係模型來表示。
  • 四種,一對一關係,一對多關係,多對多關係,自我引用。

學習視頻是尚矽谷宋紅康老師主講的b站視頻,BV1iq4y1u7vj
只是為了記錄自己的學習歷程,且本人水平有限,不對之處,請指正。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • acwing week2 基礎演算法3總結 總結點1:雙指針演算法 //常用模版框架 for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; } 常見問題分類: (1) 對於一個序列,用兩個指針維護一段區間 ( ...
  • 小市值選股策略的核心在於通過綜合分析公司的基本面、行業定位、財務健康狀況以及市場趨勢, 來尋找那些被市場低估但具備顯著成長潛力的股票,同時也要重視風險管理和投資組合的多樣化。 今天來給大家分享下小市值策略代碼如下: # 顯式導入 BigQuant 相關 SDK 模塊 from bigdatasour ...
  • 選項用來提供對相關設置的強類型訪問,讀取配置首選使用選項模式。選項無法脫離容器使用,依賴容器,實現了選項不同的訪問方式。選項模式使用了泛型包裝器,因此具備瞭如下優點: 不需要顯示註冊選項具體類型,只需要將泛型包裝器註入到容器中; 對於選項實例的評估推遲到獲取IOptions.Value時進行,而不是 ...
  • 前面老周給大伙伴們演示了過濾器的運行流程,大伙只需要知道下麵知識點即可: 1、過濾器分為授權過濾、資源訪問過濾、操作方法(Action)過濾、結果過濾、異常過濾、終結點過濾。上一次咱們沒有說異常過濾和終結點過濾,不過老周後面會說的。對這些過濾器,你有印象就行了。 2、所有過濾器介面都有同步版本和非同步 ...
  • 眾所周知,當我們使用IIS的時候,在使用負載均衡的情況下,想停掉一個站點,通常會點擊Sites(網站)中的Stop(停止)來停止一個站點。但是這樣做,會帶來一個問題,當點擊Stop(停止)時,正在響應中的請求會立刻被切斷,使客戶端無法收到響應,後續也無法連接該站點,在某些業務場景中,比如涉及金額交易 ...
  • 在.NET生態系統中,有許多出色的依賴註入(DI)框架可供選擇。每個框架都有其獨特的特點和優點,可以根據項目需求和偏好進行選擇。下麵詳細介紹一些.NET中優秀的DI框架,它們的優點以及適用場景。 1、Microsoft.Extensions.DependencyInjection: 官方支持:Mic ...
  • 模塊--》文件 包--》文件夾 我們將類似功能的模塊放到一起(包)內,要用時直接導入即可 語法: import 模塊名 as 別名: 》取別名是為了可以節省時間,簡化代碼 import win32process as pro # 以後直接用pro即可 模塊分為三種: 1.內置模塊 2.第三方模塊 3 ...
  • SQL處理日期 在資料庫操作中,處理日期是一個關鍵的方面。確保插入的日期格式與資料庫中日期列的格式匹配至關重要。以下是一些常見的SQL日期數據類型和處理方法。 SQL日期數據類型 MySQL日期數據類型 DATE - 格式為YYYY-MM-DD DATETIME - 格式為YYYY-MM-DD HH ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...