亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 什么是數據庫設計

    數據庫設計就是根據業務系統的具體要求,結合我們所選擇的DBMS,為這個業務系統構造出最優的數據存儲模型。并建立好數據庫中的表結構及表于表之間的關聯關系的過程。使之能有效的對應用系統中的數據進行存儲,并可以高效的對已經存儲的數據進行訪問。


    優良的數據庫設計

    1、減少數據冗余

    2、避免數據維護異常

    3、節約存儲空間

    4、高效訪問


    數據庫設計大致步驟

    1、需求分析(數據有哪些、數據有哪些屬性,數據和屬性它們各自的特點有哪些)

    2、邏輯設計(ER圖對數據庫進行邏輯建模)

    3、物理設計(根據選擇數據庫的特點把邏輯設計轉換為物理設計)

    4、維護優化(新的需求建表、索引優化、大表拆分)


    數據庫需求分析

    1、了解系統中所要存儲的數據

    實體與實體之間的關系(1對1,1對多,多對多)

    2、了解數據的存儲特點

    實體的屬性特點(唯一標識一個實體)

    3、了解數據的生命周期

    數據的存儲特點(永久、暫時)


    數據庫邏輯設計

    1、將需求轉化為數據庫的邏輯模型

    2、通過ER圖的型式對邏輯模型進行展示

    矩形:表示實體集

    菱形:表示關系集

    橢圓:表示實體屬性

    線段:將屬性連接到實體集;將實體連接到聯系集

    3、與DBMS的選擇無關


    數據庫邏輯設計中的規范

    1、第一范式

    要求數據庫中的表都是二維表(由行和列組成)

    2、第二范式

    所有單關鍵字段的表都符合第二范式。

    數據庫中的表不存在非關鍵字段對任一候選關鍵字段的部分依賴

    3、第三范式

    數據表中的非關鍵字段對任意候選關鍵字段的傳遞函數依賴

    4、BC范式

    數據表中不存在任意字段對任意候選字段的傳遞函數依賴


    數據庫物理設計

    1、選擇合適的數據庫管理系統

    Oracle:商業數據庫、基于服務器核心數收費、適用于企業級項目、金融業

    SQLServer:商業數據庫、基于服務器核心數收費

    MySQL:開源數據庫、互聯網項目

    PgSQL:開源數據庫

    2、定義數據表、表及字段的命名規范

    a、可讀性原則

    b、表意性原則

    c、長名原則

    3、根據所選的DBMS系統選擇合適的字段類型

    列的數據類型一方面會影響數據存儲空間的開銷,另一方面也會影響數據查詢性能

    選擇原則:優先考慮數字類型、其次是日期或二進制類型、最后是字符類型。對于相同級別 的數據類型,應該優先選擇占用空間小的數據類型

    選擇角度:

    1、對數據進行操作時,同樣數據字符的處理要比數字處理慢

    2、數據處理以頁為單位,列的長度越小,利于性能提升

    同級別的選擇:

    char和varchar

    1、列中存儲的數據長度都差不多一致時,選char否則選varchar

    2、如果列的最大數據長度小于50Byte選char,否則varchar

    3、如果這個列很少用,基于節省空間和減少I/O考慮,選擇varchar

    float和decimal

    1、decimal精確存儲,float非精確,精確存儲選decimal

    2、float存儲空間開銷一般比decimal小,非精確選float

    int與datetime

    1、字段長度int小于datetime

    2、int每次使用要進行函數轉換

    3、int只能存儲到2037-1-19-11-14-07

    4、datetime要考慮時間粒度的問題

    4、反范式化設計(空間換時間)

    目的:為了性能和讀取效率的考慮而適當對第三范式的要求進行違反

    1、減少表的關聯數量

    2、增加數據的讀取效率

    3、反范式化一定要適度

    5、其他注意事項

    a、如何選擇主鍵

    業務主鍵:標識業務數據,進行表于表間的關聯

    數據庫主鍵:為了優化數據存儲(Innodb會自動生成6個字節的隱含主鍵)

    b、主鍵是否要順序增長

    c、主鍵的字段類型所占的空間盡可能小

    d、少用外鍵

    1、降低數據的導入效率

    2、增加維護成本

    3、雖然不建議使用外鍵、但相關聯的列上一定要建立索引

    e、避免使用觸發器

    1、降低數據導入的效率

    2、可能會出現意想不到的數據異常

    3、使業務邏輯變的復雜

    f、嚴禁使用預留字段(無任何意義)


    MYSQL常用的存儲引擎

    MylSAM:不支持事務、支持表級鎖、不適合讀寫頻繁、但讀寫速度快

    MRG_MYLSAM:不支持事務、支持表級鎖、不適合全局查找較多、但適合分段歸檔,數據倉庫

    Innodb:支持事務、支持MVCC的行級鎖、適合事務處理,讀寫高效

    Archive:不支持事務、行級鎖、但支持insert,select、占用空間小

    Ndb cluster:支持事務、行級鎖、高可用性


    數據庫的優化

    1、維護數據字典

    a、第三方工具對數據字典進行維護

    b、利用數據庫本身的備注字段來維護數據字典

    2、維護索引

    a、選擇在where中、group by從句、order by從句中的列

    b、可選擇性高的列要放在索引前面

    c、索引中不要包括太長的數據結構

    注意

    a、索引不是越多越好,過多的索引會降低讀與寫的效率

    b、定期維護索引碎片

    c、在SQL語句中不要使用強制索引關鍵字

    3、維護表結構

    a、使用在線變更表結構工具

    b、同時對數據字典進行維護

    c、控制表的寬度與大小

    4、數據庫適合操作

    a、盡量使用批量操作而不是逐條操作

    b、禁止使用select *

    c、控制用戶使用自定義函數

    d、不要使用數據庫中的全文索引

    5、在適當的時候對表進行水平拆分或垂直拆分

    a、垂直拆分

    經常一起查詢的列放在一起

    text,blog等大字段拆分出到附加表

    b、水平拆分

    Hash Key的方式進行平均拆分


    查看全部
  • 列的數據類型影響存儲空間開銷,另一方面影響查詢性能,當一個列可以選擇多種數據類型時,優先選擇數字類型,其次是日期和二進制類型,最后才是字符串類型;

    注意:在對數據處理時(查詢提條件,join條件及排序)操作時,同樣的數據,字符往往比數據處理慢;

    在數據庫中,數據處理以頁為單位,列的長度越長,利于性能提升;

    5c93422c0001165512800720.jpg5c52726a0001767c12800720.jpg

    查看全部
  • 數據庫表及字段的命名規則:

    1. 可讀性原則(用大小寫區分來提高可讀性等);

    2. 表意性原則(表的名稱應能體現其存儲內容等);

    3. 長名原則(少用縮寫)。


    查看全部
  • 常用存儲引擎

    日志記錄archivehttps://img1.sycdn.imooc.com//5ca358870001264c06470361.jpg

    查看全部
  • 第二范式

    單關鍵字:都符合第二范式

    多關鍵字:如學生和課程或班級在一張表里,那就應該拆分開來

    查看全部
    0 采集 收起 來源:第二范式

    2019-04-02

  • 定義:所有字段單一且不可再分

    ->?第一范式要求數據庫中的表都是二維表。

    查看全部
    0 采集 收起 來源:第一范式

    2019-04-02

  • 常見的存儲贏你去哪個

    查看全部
  • MySQL常用存儲引擎

    查看全部
  • 數據庫操作異常

    查看全部
    0 采集 收起 來源:設計范式概要

    2019-03-30

  • 實力演示!

    查看全部
    0 采集 收起 來源:ER圖

    2019-03-30

  • 名詞解釋!

    查看全部
    0 采集 收起 來源:ER圖

    2019-03-30

  • 電子商務網站關系

    查看全部
    0 采集 收起 來源:需求分析舉例

    2019-03-30

  • 插入異常,更新異常,刪除異常

    數據冗余:重復數據


    查看全部
    0 采集 收起 來源:設計范式概要

    2019-03-23

  • 需求分析過程:(電子商務舉例)

    1. 模塊劃分:用戶、商品、訂單、購物車、供應商

    2. 模塊分析

      具體屬性,可選唯一標識屬性[組],存儲特點(永久、歸檔、分表分庫)

    3. 模塊關系:一對一,一對多,多對多

    查看全部
    0 采集 收起 來源:需求分析舉例

    2019-03-23

  • 需求分析需要了解啥:

    1. 數據內容

    2. 數據存儲特性:時效性

    3. 數據生命周期:增長快、量大、非核心,分庫分表,歸檔清理規則

    ????實體間及實體與表的關系,1對1,1對多,多對多

    ????實體的屬性,單一屬性or屬性組合 可以唯一標識實體的

    ????

    ????

    查看全部

舉報

0/150
提交
取消
課程須知
本課程適合程序開發人員及數據庫管理運維人員
老師告訴你能學到什么?
1、了解數據庫設計的重要性 2、如何設計出簡潔高效的數據庫結構 3、如何對數據庫結構進行優化調整

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!