1. 程式人生 > 其它 >|NO.Z.00004|——————————|Applications|——|Mysql&Mariadb概述.V3|

|NO.Z.00004|——————————|Applications|——|Mysql&Mariadb概述.V3|



[Applications:Mysql&Mariadb概述.V3]                                                                       [Applications.Databases] [|mysql5.7.35|centos7|安裝配置]








一、概述二:
### --- 什麼是資料庫:

### --- 資料:
~~~     描述事物的符號記錄;可以是數字、文字、圖形、聲音、語言等。資料有多種形式,
~~~     他們都有可以經過數字化後存入計算機。
### --- 資料庫:
~~~     儲存資料的倉庫,是長期存放在計算機內、有組織的,可共享的大量的資料集合,
~~~     資料庫中的資料按照一定的資料模型組織,描述和儲存,具有較小的冗餘度,
~~~     較高的獨立性和以擴充套件性,併為各種使用者共享,總結一下幾點:
~~~     資料結構化
~~~     資料共享性、冗餘度低、易擴充。
~~~     資料地理性高
~~~     資料由DBMS統一管理和控制(安全性,完整性,併發控制,故障恢復)

### --- 註釋:
~~~     DBMS資料庫管理系統(能夠操作和管理資料庫的大型軟體)
### --- 資料庫和檔案系統的區別:

### --- 檔案系統:
~~~     作業系統用於明確儲存裝置(常見的是磁碟)或分割槽上的檔案方法和資料結構,
~~~     既在儲存裝置上組織檔案的方法;
~~~     作業系統中負責管理和儲存檔案資訊的軟體機構為檔案系統管理,簡稱檔案系統

### --- 資料庫系統:
~~~     是一種操縱和管理資料庫的大型軟體,用於建立、使用和維護資料庫,
~~~     簡稱DBMS,他對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。
### --- 對比區別:

### --- 管理物件不同:
~~~     檔案系統管理物件是檔案;並非直接對資料進行管理,
~~~     不同的資料結構需要使用不精通的檔案型別進行儲存
~~~     (舉例:txt檔案和doc檔案不能通過修改檔名完成轉換)
~~~     而資料庫直接對資料進行儲存和管理。
### --- 儲存方式不同:
~~~     檔案系統使用不同的檔案將資料分類(.doc    .mp4    .jpg)儲存外部儲存上,
~~~     資料庫系統使用標準統一的資料型別進行資料儲存(字母、數字、符號、時間)

### --- 呼叫資料的方式不同:
~~~     檔案系統使用不同的軟體開啟不同型別檔案,
~~~     資料庫系統由DBMS統一呼叫和管理,如下圖:

### --- 優缺點總結:

~~~     由於DBMS的存在,使用者不在需要了解資料儲存和其他實現的細節。
~~~     直接通過DBMS就能獲取資料。為資料的使用帶來極大的便利。
~~~     具有以資料為單位的共享性,具有資料的併發訪問能力,
~~~     DBMS保證了在併發訪問時資料的一致性。
~~~     低延時訪問,典型的例子就是線下支付系統的應用。
~~~     支付閨蜜巨大的時候,資料庫系統的表現遠遠優於檔案系統。
~~~     能夠頻繁的對資料進行修改,在需要頻繁修改資料的場景下。
~~~     資料庫系統可以依賴DBMS來對資料進行操作切對效能的消耗相比檔案系統比較小。
~~~     對事物的支援;DBMS支援事務,既一系列對資料的操作集合要麼都完成,
~~~     要麼都不完成。在DBMS上對資料的各種操作都是原子級的。
### --- 常見資料庫型別:
~~~     關係型資料庫是建立在關係模型基礎上的資料庫;藉助於集合代數等數學概念和方式來處理資料庫中的資料。現實世界中的各種實體之間的各種聯絡君用於關係型模型來表示,簡單說;關係型資料庫是由多張能互相連線的二維行列表格組成的資料庫
~~~     關係模型就是指二維表格模型。因而一個關係型資料庫就是由二維表及其之間的聯絡組成的一個數據組織。當前主流的關係型資料庫有:oracle    DB2 Microsoft SqlServer MySQL,浪潮的KDB等
~~~     實體關係型簡稱E-R模型;是一套資料庫的設計工具,它運用真實世界中事物與關係的概念。來解釋資料庫中的抽象的資料結構,實體關係型模型利用圖形(實體-關係圖)來表示資料庫的概念設計,有助於設計過程中的構思及溝通討論。
~~~     非關係型資料庫:又稱NOSQL,意為不僅僅是SQL,是一種輕量、,開源不相容SQL的功能的資料庫,對NOSQL最普遍的定義是非關聯性,強調Key-Value儲存和文件資料庫的優點,而不是單純的反對RDBMS(關係型資料庫管理系統)


### --- 關係型資料庫(MySQL)的特徵及組成結構介紹。
~~~     關係型資料庫的發展歷程:層次模型:

網狀模型:
### --- 關係模型(relation)

~~~     關係模型以二維表結構來表示實體與實體之間的聯絡,
~~~     關係模型的資料結構是“二維表框架”組成集合,每個二維表又稱為關係,
~~~     在關係模型中,操作物件和結果都是二維表。
~~~     關係模型是目前最流行的資料庫模型,
~~~     支援關係模型的資料庫管理系統稱為關係資料庫管理系統,
~~~     ACCESS就是一種關係資料庫管理系統,
### --- 關係型資料庫的組成結構和名詞解釋:

~~~     資料以表格的形式出現,每行為單獨的一條記錄,每列為一個單獨的欄位,
~~~     許多的記錄和欄位組成一張表單(table)若干的表單組成庫(database)
~~~     記錄(一條資料):在資料庫當中,表當中的行稱之為記錄
~~~     欄位(id name......)在資料庫當中,表當中的列稱之為欄位。
### --- MySQL資料型別:

~~~     資料型別用於指定欄位所包含資料的規則;它決定了資料儲存在欄位的方式,
~~~     包括分配給欄位的寬度,以及值是否可以是字母,數字,日期和時間等。
~~~     任何資料或資料的組合都有對應的資料型別,
~~~     用於儲存字母,數字,日期時間,影象,二進位制資料等。
~~~     資料型別是資料本身的特徵,其特性被設定到表裡的欄位。
### --- MySQL常見基礎資料型別:

~~~     * 字串型別(CHAB 0-255固定長度,VARCHAR 0-255可變長度)
~~~     * 數值型別(INT 整數型、FLOAT 浮點型)
~~~     * 日期和時間型別(DATE年月日,TIME時分秒)
### --- mysql約束型別:約束是一種限制,它通過對錶的行或列的資料做出限制,
### --- 來確保表的資料的完整性,唯一性。

### --- 主鍵約束:        
~~~     相當於唯一約束+非空約束的組合,主鍵約束列不允許重複,也不允許出現空值,
~~~     每個表最多隻允許一個主鍵,建立主鍵約束可以列級別建立,也可以在表級別建立,
~~~     當建立主鍵約束時,系統預設會在所有的列和列組合上建立對應的唯一索引。
### --- 外來鍵約束:        
~~~     保證一個或兩個表之間的參照完整性,
~~~     外來鍵一構建一個表的兩個欄位或是兩個表的兩個欄位之間的參照關係。

### --- 唯一約束:        
~~~     唯一約束時指定table的列和列組合不能重複,保證資料的唯一性,
~~~     唯一約束不允許出現重複的值,但是可以為多個null,同一個表可以有多個唯一約束,
~~~     多個列組合的約束。在建立唯一的約束時,如果不給唯一約束名稱,就預設和列明相同,
~~~     唯一約束不僅可以在一個表內建立,而且可以同時多表建立組合唯一約束。
### --- 非空約束與預設值: 

~~~     用於確保當前列的值不能為空值,只能出現在表物件的列上,Null型別特徵,
~~~     所有的型別的值都可以是Null,包括int、float等資料型別。6、MySQL索引:
~~~     索引是一個單獨的,物理的資料庫結構,它是某個表中一欄位或若干欄位值的集合,
~~~     表的儲存由兩部分組成,一部分用來存放資料,另一部分存放索引頁面,
~~~     通常,索引頁面相當於對於資料頁面來說小得多。
~~~     資料檢索花費的大部分開銷是磁碟讀寫,沒有索引就需要從磁碟上讀表的每一個數據頁,
~~~     如果有索引,則只需要找索引頁面就可以,所以建立合理的索引,就能加速資料的檢索過程。
### --- MySQL鎖:資料庫是一個多使用者使用的共享資源。
### --- 當多個使用者併發地存取資料時。在資料庫中就會產生多個事務同時存取同一個資料的情況。
### --- 若對併發操作不加控制就可能就會讀取和存取不正確的資料。破壞資料庫的一致性。

~~~     加鎖是實現資料庫併發控制的一個非常重要的技術,當事務對某個資料物件進行操作前,
~~~     現象系統發出請求。對其加鎖。加鎖後事務就對資料物件有一定的控制。
~~~     在該事物釋放鎖之前。其他的事務不能對此資料物件進行更新操作。
### --- MySQL儲存引擎:

~~~     就是儲存資料,建立索引。更新查詢資料等等技術的實現方式,儲存引擎是基於表的,
~~~     而不是基於庫,所以儲存引擎也可被稱為表型別,
~~~     oracle SQLserver等資料庫只是一種儲存引擎。
~~~     MySQL提供了外掛的儲存引擎架構,所以MySQL存在多種儲存引擎,
~~~     可以根據需要使用相應的引擎或者編寫儲存引擎。
### --- MYISAM:
~~~     預設支援;插入和查詢速度較快,支援全文索引,不支援事務,行級鎖和外來鍵約束等功能。

### --- INNODB:
~~~     支援事務、行級鎖和外來鍵約束等功能。

### --- MEMORY:
~~~     工作在記憶體中,通過雜湊欄位儲存資料,速度快,不能永久儲存資料。
### --- 事務是併發控制的基本單位:

~~~     可以把一系列要執行的操作稱為事務,
~~~     而事務管理就是管理這些操作要麼完全執行,要麼完全不執行。
### --- 經典案例:

~~~     銀行轉賬工作,從一個賬號扣款並使用另一個賬號增款,
~~~     這兩個操作要麼都執行要麼都不執行,所以應該把它們看成一個事務,
~~~     事務是資料庫維護資料一致性的單位,在每個事務結束時,都要保持資料的一致性。

附錄一:
### --- 視訊學習地址:

~~~     https://ke.qq.com/webcourse/index.html#cid=335124&term_id=100397760&taid=2654285494295828&vid=5285890788154455797








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)