? ? 數(shù)據(jù)庫設計是專業(yè)數(shù)據(jù)庫工程師或者項目負責工程師的工作,數(shù)據(jù)庫通俗講就是數(shù)據(jù)存儲的一個盒子,會存儲所有的數(shù)據(jù)庫包括會員姓名、產(chǎn)品資料、交易數(shù)據(jù)等,數(shù)據(jù)庫結(jié)構(gòu)設計的合理會大大提高系統(tǒng)工作時所需要的時間、效率和儲存量。數(shù)據(jù)庫設計內(nèi)容包括:需求分析、概念結(jié)構(gòu)設計、邏輯結(jié)構(gòu)設計、物理結(jié)構(gòu)設計、數(shù)據(jù)庫的實施、運行和維護。而數(shù)據(jù)庫的設計就是應用中十分重要的一環(huán),數(shù)據(jù)庫設計好了之后,建立模型,然后編碼也可以開始了。
? ? 1、需求分析:了解用戶的數(shù)據(jù)需求、處理需求、安全性及完整性要求;
? ? 2、概念結(jié)構(gòu)設計階段:概念結(jié)構(gòu)設計階段是整個數(shù)據(jù)庫設計的關(guān)鍵,通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型;
? ? 3、邏輯設計:據(jù)轉(zhuǎn)換規(guī)則,把概念模型轉(zhuǎn)換為數(shù)據(jù)庫的邏輯模型,根據(jù)用戶業(yè)務特點。
? ? 邏輯模型的特點:
? ? 表達了數(shù)據(jù)的整體邏輯結(jié)構(gòu),是設計人員對整個應用項目數(shù)據(jù)庫的全面描述;
? ? 是從數(shù)據(jù)庫實現(xiàn)的觀點出發(fā),對數(shù)據(jù)建模;
? ? 獨立于硬件,依賴于軟件是數(shù)據(jù)庫設計人員與應用程序員之間進行交流的工具。
? ? 4、數(shù)據(jù)庫物理設計階段;
? ? 數(shù)據(jù)庫物理設計階段是利用數(shù)據(jù)庫管理系統(tǒng)提供的方法和技術(shù),對已經(jīng)確定的數(shù)據(jù)邏輯結(jié)構(gòu),以較優(yōu)的存儲結(jié)構(gòu)、數(shù)據(jù)存取路徑、合理的數(shù)據(jù)存儲位置及存儲分配,設計出一個高效的、可實現(xiàn)的無力數(shù)據(jù)結(jié)構(gòu)。
? ? 5、數(shù)據(jù)庫實施階段;
? ? 在數(shù)據(jù)庫實施階段運用DBMS提供的數(shù)據(jù)語言及宿主語言,根據(jù)邏輯設計和物理設計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應用程序,組織數(shù)據(jù)入庫,并進行試運行。
? ? 6、數(shù)據(jù)庫運行與維護階段;
? ? 數(shù)據(jù)庫應用系統(tǒng)經(jīng)過試運行后即可投入正式運行,在運行過程中需要不斷對其進行調(diào)整、修改與完善。
? ? 二、數(shù)據(jù)庫設計的基本原則
? ? (1)減少數(shù)據(jù)冗余,提高訪問數(shù)據(jù)庫的速度。
? ? (2)盡可能不要浪費大量存儲空間。
? ? (3)避免數(shù)據(jù)維護異常,最大限度消除了數(shù)據(jù)冗余、修改異常、插入異常、刪除異常,基本滿足關(guān)系規(guī)范化的要求。
? ? (4)設計數(shù)據(jù)表結(jié)構(gòu)時,應考慮表結(jié)構(gòu)的動態(tài)適應性。