關係型數據庫

數據庫管理系統:DBMS
            Database Management System
                數據庫也是一段大型的管理程序,實現數據(高效存取)管理;專用於爲某一項目或某一方案使用數據集合即爲數據庫php

            層次模型:與應用程序耦合度太高,不利於使用
            網狀模型:
            關係模型:關係是指表之間
                行、列:二維關係表,行爲數據,列爲字段
                事務、範式(下降存儲空間的浪費,卻增長多張表之間的關係,浪費服務器的讀寫和計算能力)
            對象-關係模型:python

                Sybase, Infomix, Oracle
                PostgreSQL, MySQL, MariaDB, Sqlitemysql

            MySQL, MariaDBsql

            SQL: Structured Query Lanague
                CREATE
                DROP
                ALTER
                INSERT
                SELECT
                UPDATE
                DELETE數據庫

            事務:(多個語句綁成一個操做視爲事務,在一個操做完成前第二個操做必須等待)
                A:原子性,多個操做都完成纔算結束
                C:一致性,事務的部分操做結果寫入數據庫中,則庫的狀態就是不一致,數據庫必須一致性狀態
                I:隔離性,多個事務必須隔離開不能同時操做
                D:持久性,保證數據一旦修改能長久保存硬盤中編程

RDMBS設計範式基礎概念服務器

        設計關係數據庫時,聽從不一樣的規範要求,設計出合理的關係型數據庫,這些不一樣的規範要求被稱爲不一樣的範式,各類範式呈遞次規範,越高的範式數據庫冗餘越小。數據結構

        目前關係數據庫有六種範式:第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、巴德斯科範式(BCNF)、第四範式(4NF)和第五範式(5NF,又稱完美範式)。知足最低要求的範式是第一範式(1NF)。在第一範式的基礎上進一步知足更多規範要求的稱爲第二範式(2NF),其他範式以次類推。通常說來,數據庫只需知足第三範式(3NF)就好了。多線程

            (第1範式) 字段不可分割;
            (第2範式) 應該擁有主鍵;
            (第3範式) 表間不能擁相同的非主鍵字段;ide

    約束:constraint
        主鍵約束:新插入行的(單個字段或者字段集合)不能同已存行的,非空的必須字段賦值;(Not Null);一張表只能有一個唯一鍵;primary key
        唯一鍵約束:不能同已有數據;一張表上能夠存在多個唯一鍵;unique key
        外鍵約束:表之間對應字段間的約束關係;foreign key,該字段的值必須在另外個表上存在且爲另外表的主鍵
        檢查性約束:自定義的表達式約束;

    索引:將表中一個或多個字段抽取出來,按特定數據結構從新組織和存放的數據;(方便了讀操做,多了寫操做)

    關係運算:
        選擇和投影
            選擇:挑選行;
            投影:挑選字段;
            選擇和投影沒必要同時進行
        鏈接:當字段的值相等數據,鏈接表之間

   RDBMS的管理結構:
        C/S
            Client:客戶端程序(GUI, CLI)、應用編程接口(API);
                mysql客戶端mysql進程, php-mysqlphp鏈接mysq的組件, python-MySQL
            Server:DBMS (監聽在套接字上,接收、處理並響應客戶端請求);
                mysqld

            mysql --> mysql protocol --> mysqld
           
            mysql單進程多線程方式,全部客戶端都鏈接mysql單進程下的線程

    數據抽象:
        物理層:決定的數據的存儲格式,即RDBMS在磁盤上如何組織文件;(系統工程師)
        邏輯層:描述DB中存儲什麼數據,以及數據間存在什麼樣的關係;(數據庫DBA)
        視圖層:描述DB中的部分數據;(開發人員)

    數據模型的分類:         關係模型         實體-關係模型         基於對象的數據模型         半結構化數據模型

相關文章
相關標籤/搜索