使用Java實現數據庫編程—01 第一章 數據庫的設計
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.在應用軟件的功能測試中,完善的數據庫完整性有助於盡早發現應用軟件的錯誤。
使用Java實現數據庫編程—01 第一章 數據庫的設計