1、 資料庫設計:將資料庫中的數據實體及這些數據實體之間的關係進行規劃和結構化的過程; 良好的資料庫設計: 節省數據的存儲空間 能夠保證數據的完整性 方便進行資料庫應用系統的開發 糟糕的資料庫設計: 數據冗餘、存儲空間浪費 記憶體空間浪費 數據更新和插入的異常 2、 資料庫設計的步驟: 1、 需求分析 ...
1、 資料庫設計:將資料庫中的數據實體及這些數據實體之間的關係進行規劃和結構化的過程;
良好的資料庫設計: 節省數據的存儲空間 能夠保證數據的完整性 方便進行資料庫應用系統的開發 |
糟糕的資料庫設計: 數據冗餘、存儲空間浪費 記憶體空間浪費 數據更新和插入的異常 |
2、 資料庫設計的步驟:
1、 需求分析階段:分析客戶的業務和數據處理需求 |
2、概要設計階段:設計資料庫的E-R模型圖,確認需求信息的正確和完整 |
3、 詳細設計階段:將E-R圖轉換為多張表,進行邏輯設計,確認各表的主外鍵,並應用三大範式審核資料庫結構 |
4、 代碼編寫階段:物理實現資料庫,編碼實現應用 |
5、軟體測試階段:…… |
6、 安裝部署:…… |
3、 資料庫分析的步驟:
1、 收集信息:與該系統有關人員進行交流、座談,充分瞭解用戶需求,理解資料庫需要完成的任務 |
2、 標識實體(Entity):標識資料庫要管理的關鍵對象或實體,實體一般是名詞,一個實體只描述一件事,不能出現含義相同的實體 |
3、 標識每個實體需要存儲的詳細信息;標識每個實體的屬性(Attribute),在進行實體屬性分解時,含義相同的成員信息不能重覆出現。 |
4、 標識實體之間的關係(Relationship):關係型資料庫有一項非常強大的功能,即它能夠關聯資料庫中各個項目的相關信息; |
4、E-R圖:
符號 |
含義 |
實體(集),一般是名詞 |
|
|
屬性(集),一般是名詞 |
|
聯繫(集),一般是動詞 |
用來連接屬性和實體集,也用來連接實體集和聯繫集 (直線是可以有方向的(在末端有一個箭頭),用來表示聯繫集的映射基數) |
●實體:現實世界中具有區分其他事物的特征或屬性並於其他事物有聯繫的事物;
●屬性:實體的特征;
●聯繫:兩個或多個實體之間的聯繫;
●映射基數:一對一,一對多,多對一,多對多;
●實體關係圖;
5、關係資料庫模式:用二維表的形式表示實體和實體間聯繫的數據模型即關係模式;
●關係資料庫模式是對關係數據結構的描述;
◆形式:R(U) 或 R(A,B)
★R 表示屬性集合,A,B分別表示U在中的屬性;
●E-R圖轉換為關係模式的步驟:
1. 把每個實體都轉化為關係模式R(U) 或 R(A,B)形式
2. 建立實體間聯繫的轉換;
6、 數據規範化:
●不合規範的表設計
信息重覆
更新異常
插入異常(無法正確表示某些信息)
刪除異常(丟失有效信息)
7、使用三大範式規範資料庫表的設計:(Normal Formate)
◆第一範式 (Normal Formate ,1NF):
★第一範式的目標是確保每列的原子性,如果每列都是不可再分的最小數據單元(也稱為最小的原子單元),則滿足第一範式(1NF);
◆第二範式 (Normal Formate ,2NF):第二範式要求每個表只描述一件事情;
★目標:確保表中的每列都和主鍵相關,如果一個關係滿足第一範式(2NF),並且除了主鍵以外的其他列全都依賴於該主鍵;
◆第三範式 (Normal Formate ,3NF):
★目標:確保每列都和主鍵直接相關聯,而不是間接相關聯,如果一個關係滿足2NF,並且除了主鍵以外的其他列都不傳遞依賴於主鍵列,列和列之間不存在相互依賴關係,則滿足第三範式(3NF);
8、規範化和性能的關係:
● 為滿足某種商業目標,資料庫性能比規範化資料庫更重要
1、通過在給定的表中添加額外的欄位,以大量減少需要從中搜索信息所需的時間
2、通過在給定的表中插入計算列(如成績總分),以方便查詢
• 在數據規範化同時,要綜合考慮資料庫的性能
9、 資料庫的完整性:資料庫完整性(Database Integrity)是指資料庫中數據在邏輯上的一致性、正確性、有效性和相容性。
資料庫完整性由各種各樣的完整性約束來保證,因此可以說資料庫完整性設計就是資料庫完整性約束的設計。
資料庫完整性約束可以通過DBMS或應用程式來實現,基於DBMS的完整性約束作為模式的一部分存入資料庫中。
通過DBMS實現的資料庫完整性按照資料庫設計步驟進行設計,而由應用軟體實現的資料庫完整性則納入應用軟體設計(本文主要討論前者)。
10、資料庫完整性的作用:
1.資料庫完整性約束能夠防止合法用戶使用資料庫時向資料庫中添加不合語義的數據。
2.利用基於DBMS的完整性控制機制來實現業務規則,易於定義,容易理解,而且可以降低應用程式的複雜性,提高應用程式的運行效率。同時,基於DBMS的完整性控制機制是集中管理的,因此比應用程式更容易實現資料庫的完整性。
3.合理的資料庫完整性設計,能夠同時兼顧資料庫的完整性和系統的效能。比如裝載大量數據時,只要在裝載之前臨時使基於DBMS的資料庫完整性約束失效,此後再使其生效,就能保證既不影響數據裝載的效率又能保證資料庫的完整性。
4.在應用軟體的功能測試中,完善的資料庫完整性有助於儘早發現應用軟體的錯誤。