1. 程式人生 > >mariadb(mysql)基本介紹

mariadb(mysql)基本介紹

mariadb(mysql):

資料結構模型:層次模型、網狀結構、關係模型

關係模型:
    二維關係:row, column

資料庫管理系統:DBMS
    關係:Relational,RDBMS

補充材料:RDMBS設計正規化基礎概念

設計關係資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高的正規化資料庫冗餘越小。

目前關係資料庫有六種正規化:第一正規化(1NF)、第二正規化(2NF)、第三正規化(3NF)、巴德斯科範式(BCNF)、第四正規化(4NF)和第五正規化(5NF,又稱完美正規化)。滿足最低要求的正規化是第一正規化(1NF)。在第一正規化的基礎上進一步滿足更多規範要求的稱為第二正規化(2NF),其餘正規化以次類推。一般說來,資料庫只需滿足第三正規化(3NF)就行了。

(1) 第一正規化(1NF)

所謂第一正規化(1NF)是指在關係模型中,對域新增的一個規範要求,所有的域都應該是原子性的,即資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。即實體中的某個屬性有多個值時,必須拆分為不同的屬性。在符合第一正規化(1NF)表中的每個域值只能是實體的一個屬性或一個屬性的一部分。簡而言之,第一正規化就是無重複的域。

說明:在任何一個關係資料庫中,第一正規化(1NF)是對關係模式的設計基本要求,一般設計中都必須滿足第一正規化(1NF)。不過有些關係模型中突破了1NF的限制,這種稱為非1NF的關係模型。換句話說,是否必須滿足1NF的最低要求,主要依賴於所使用的關係模型。

(2) 第二正規化(2NF)

第二正規化(2NF)是在第一正規化(1NF)的基礎上建立起來的,即滿足第二正規化(2NF)必須先滿足第一正規化(1NF)。第二正規化(2NF)要求資料庫表中的每個例項或記錄必須可以被唯一地區分。選取一個能區分每個實體的屬性或屬性組,作為實體的唯一標識。

第二正規化(2NF)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關係。為實現區分通常需要為表加上一個列,以儲存各個例項的唯一標識。簡而言之,第二正規化就是在第一正規化的基礎上屬性完全依賴於主鍵。

(3) 第三正規化(3NF)

第三正規化(3NF)是第二正規化(2NF)的一個子集,即滿足第三正規化(3NF)必須滿足第二正規化(2NF)。簡而言之,第三正規化(3NF)要求一個關係中不包含已在其它關係已包含的非主關鍵字資訊。簡而言之,第三正規化就是屬性不依賴於其它非主屬性,也就是在滿足2NF的基礎上,任何非主屬性不得傳遞依賴於主屬性。

RDBMS:
MySQL: MySQL, MariaDB, Percona-Server
PostgreSQL: 簡稱為pgsql --> EnterpriseDB
Oracle:
MSSQL:

事務:多個操作被當作一個整體對待
ACID:
A: 原子性;
C:一致性;
I: 隔離性;
D:永續性;

SQL: Structure Query Language
結構化查詢語言;

SQL直譯器:

資料儲存協議:應用層協議,C/S
    S:server, 監聽於套拼字,接收並處理客戶端的應用請求;
    C:Client
        程式介面
            CLI
            GUI
        應用程式設計介面
            ODBC:Open DataBase Connection

基礎概念:
約束:constraint,向資料表提供的資料要遵守的限制;
主鍵:一個或多個欄位的組合,填入的資料必須能在本表中唯一標識本行;必須提供資料,即NOT NULL;
一個表只能存在一個
惟一鍵:一個或多個欄位的組合,填入的資料必須能在本表中唯一標識本行;允許為NULL;
一個表可以存在多個
外來鍵:一個表中的某欄位可填入資料取決於另一個表的主鍵已有的資料;
檢查性:

索引:將表中的一個或多個欄位中的資料複製一份另存,並且此些需要按特定次序排序儲存;

關係運算:
    選擇:挑選出符合條件的行(部分);
    投影:挑選出需要的欄位;
    連線:

資料抽象:
物理層:決定資料的儲存格式,即RDBMS在磁碟上如何組織檔案;
邏輯層:描述DB儲存什麼資料,以及資料間存在什麼樣的關係;
檢視層:描述DB中的部分資料;

關係模型的分類:
關係模型
實體-關係模型
基於物件的關係模型
半結構化的關係模型

MariaDB:

Unireg

MySQL AB --> MySQL 
    Solaris: 二進位制版本

安裝MySQL:
    原始碼:編譯安裝
    二進位制格式的程式包:展開至特定路徑,並經過簡單配置後即可使用
    程式包管理管理的程式包:
        rpm:
            OS Vendor
            專案官方
        deb

MariaDB的特性:
    外掛式儲存引擎:儲存管理器有多種實現版本,功能和特性可能均略有差別;使用者可根據需要靈活選擇;

    儲存引擎也稱之為“表型別”;

    (1) 更多的儲存的儲存引擎
        MyISAM --> Aria, 
        InnoDB --> XtraDB
    (2) 諸多擴充套件和新特性
    (3) 提供了較多測試元件
    (4) truly open source