數據庫基本操作和知識

一、數據庫基本操作
    1、開啓mysql服務命令
        net start mysql 

    2、進入mysql的兩種方式
        明文進入:mysql -uroot -proot  格式:mysql -u帳號 -p密碼
        密文進入:mysql -uroot -p 
        按enter會提示你輸入密碼(Enter pssword:),此時你寫的密碼就會顯示爲***這樣。 
             
    3、查看mysql中所有的數據庫(一般在固定的單詞命令就會是用大寫,這個要習慣,看多了敲多了就認識了)
        前面四個數據庫是mysql中自帶的,也就是必須的.
        SHOW DATABASES;

    4、創建名爲test_1的數據庫
        格式:CREATE DATABASE 數據庫名
        CREATE DATABASE test_1;

    5、刪除名爲test_1的數據庫
        格式:DROP DATABASE 數據庫名
        DROP DATABASE test_1;


二、數據庫表的基本操作  
                   

1.創建表結構

CREATE TABLE Employee
    (Eno CHAR(4) NOT NULL UNIQUE,
    Ename CHAR(8)NOT NULL,
    Sex CHAR(2) NOT NULL ,
    Age INT NULL,
    Is_Marry CHAR(1) NULL,
    Title CHAR(6) NULL,
2.添加列   
    ALTER TABLE Employee ADD Emgr CHAR(4) NULL;

    3.修改列的數據類型
        ALTER TABLE Employee CHANGE Emgr Emgr CHAR(12);
        ALTER TABLE Employee MODIFY Emgr CHAR(12);

        注:mysql中alter語句中change和modify的區別:
        Change :對列進行重命名或更改列的類型,需給定舊的列名稱和新的列名稱、當前的類型;
        modify :可以改變列的類型,此時不需要重命名(不需給定新的列名稱)。

    4.刪除列
        ALTER TABLE Employee DROP COLUMN Emgr;

    5.增加某列必須取唯一值的約束條件
        ALTER TABLE Employee  ADD CONSTRAINT UQ_name UNIQUE(Ename);//用戶爲該唯一值約束設定約束名
        ALTER TABLE Employee  ADD UNIQUE(Ename);//系統自動命名

三、細節
    1.一個表或者視圖只允許有一個聚簇索引(CLUSTERED),建立聚簇索引後,表在磁盤中的物理存儲順序將與聚簇索引中的一致。
    在最常查詢的列上建立聚簇索引可以加快查詢速度;在經常更新的列上建立聚簇索引,則DBMS維護所以代價太大。

四、關係數據庫規範化理論
    1.未規範的問題
        1.1 數據冗餘度大
        1.2 修改異常
            冗餘度大,不僅蘭妃存儲空間,在對數據進行修改時,易造成數據的不一致性。如當某個表中的工資變化時,滿足某個條件的人的工資都需要修改,一旦遺漏就會使數據不一致,產生修改異常。
        1.3 插入異常
            無法插入某部分信息的插入異常。因爲碼爲空的情況下無法插入相應的數據
        1.4 刪除異常
            刪除掉不應刪除的信息爲刪除異常。在刪除某個信息時連帶其他信息被刪除。

    2. 函數依賴
        2.1 函數依賴是指在關係R中,X、Y爲R的兩個屬性或屬性組,如果對於R的所有關係r都存在:對於X的每一個具體值,Y都只有一個具體值與之對應。
        則稱屬性Y函數依賴於屬性X。或者說屬性X函數決定屬性Y,記做X->Y

        2.2 聯繫中存在的依賴
            1)如果兩屬性集X、Y是一對一聯繫,則存在函數依賴 X<-->Y
            2) 如果兩屬性集X、Y是多對一聯繫,則存在函數依賴 X-->Y
            3)如果兩屬性集X、Y是多對多聯繫,則不存在函數依賴 
            4)假設兩屬性集X、Y間 X-->Y成立,如果Y屬於X,則稱X-->Y是平凡函數依賴,反之是非平凡函數依賴。

    3. 關係模式的規範化
        當一個關係中的所有分量都是不可分的數據項時,該關係是規範化的。
        注:規範化程度較高者必定是較低者的子集。

        1)部分函數依賴與完全函數依賴:
            設X、Y是關係R的兩個不同的屬性或屬性組,且X-->Y。如果存在X的某一個真子集X1,使得X1-->Y,則稱Y部分函數依賴於X
            反正則爲完全函數依賴。

        2)傳遞依賴:
            在關係R中,如果X、Y、Z是R中的三個不同的屬性或屬性組,如果X-->Y,Y-->Z,但Y-/->X,且Y不是X的子集,則稱Z傳遞依賴於X

        3.1 範式的種類:
            1NF,2NF,3NF(BCNF),4NF,5NF

        3.2 第一範式(1NF)
            定義:如果關係模式R中不包含多值屬性,則R滿足第一範式
            存在問題:存在部分函數依賴不是2NF,存在傳遞函數依賴不是3NF

        3.3 第二範式 
            如果一個關係R屬於1NF,且它的所有非主屬性都完全依賴於R的任意候選碼,則R屬於第二範式。
            即:第二範式中不存在部分函數依賴

            推論:如果關係模式是第一範式,且它的每一個候選碼都是單碼,則這個關係模式是第二範式。

        3.4 第三範式
            如果關係模式R屬於第二範式,且它的每一個非主屬性都不傳遞依賴於任何候選碼,則稱R是第三範式。

            推論1:如果關係模式屬於第一範式,且它的每一個非主屬性既不部分依賴、也不傳遞依賴於任何候選碼,則該模式屬於第三範式。
            推論2:不存在非主屬性的關係模式一定爲第三範式。

        3.5 改進的第三範式:BCNF
            定義:設關係模式是第一範式,若F的任一函數依賴X-->Y(且Y不屬於X)中X都包含了R的一個碼,則稱R是BCNF範式。

            推論:
                1)R中所有非主屬性對每一個碼都是完全函數依賴
                2)R中所有主屬性對每一個不包含它的碼,都是完全函數依賴
                3)R中沒有任何屬性完全函數依賴於非碼的人格一組屬性

            定理:如果R是BCNF範式,則R一定是第三範式

            3NF比BCNF放寬了一個限制,即允許因素不包含碼。

如有錯誤,還請指正哦~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章