你好,歡迎進入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!
發(fā)布時間:2023-06-21
瀏覽次數(shù):0
點擊關(guān)注上方“程序員的私房菜”,設(shè)為“頂級或明星”,技術(shù)干貨第一時間送出。
來源:blog.csdn.net////
1、原始收據(jù)與實體的關(guān)系
它可以是一對一、一對多或多對多關(guān)系。 通常情況下,它們是一對一的關(guān)系:即一張原始收據(jù)對應(yīng)一個且僅一個實體。 特殊情況下,可能是一對多或多對一的關(guān)系,即一張原始報檢單對應(yīng)多個單位,或者多張原始報檢單對應(yīng)一個單位。
這里的實體可以理解為基本表。 明確了這些對應(yīng)關(guān)系之后,對于我們設(shè)計輸入界面將會有很大的好處。
〖示例1〗:員工的簡歷數(shù)據(jù)對應(yīng)人力資源信息系統(tǒng)中的三個基本表:員工基本信息表、社會關(guān)系表、工作簡歷表。 這是典型的“一份報檢單對應(yīng)多個主體”的典型案例。
2.字段和主鍵
一般來說,一個實體不能同時是無域和無域的。 在ER圖中,葉子部分的實體可以定義字段,也可以不定義字段(因為它沒有后代),但它必須有主鍵(因為它有兒子)。
字段和字段的設(shè)計在全局數(shù)據(jù)庫的設(shè)計中起著重要的作用。 全局數(shù)據(jù)庫設(shè)計完成后,一位日本數(shù)據(jù)庫設(shè)計專家表示:“鑰匙,到處都有鑰匙,不僅有鑰匙,而且什么都沒有?!?系統(tǒng)核心(數(shù)據(jù)模型)的高度具體的想法。
因為:場是實體的高度具體化,場與場的配對代表了實體之間的聯(lián)系。
3.基本表的性質(zhì)
基本表不同于中間表和臨時表,因為它有以下四個特點:
了解了基本表的本質(zhì)后,在設(shè)計數(shù)據(jù)庫時就可以將基本表與中間表和臨時表區(qū)分開來。
4.范式標準
基本表及其數(shù)組之間的關(guān)系應(yīng)盡可能滿足第三范式。 而且,滿足第三范式的數(shù)據(jù)庫設(shè)計往往不是最好的設(shè)計。 為了提高數(shù)據(jù)庫的運行效率,往往需要增加范式標準:適當減少冗余,達到以空間換時間的目的。
〖例2〗:有一個存儲商品的基本表,如表1所示,數(shù)組“金額”的存在表明該表的設(shè)計不滿足第三范式。 由于“數(shù)量”可以通過“單價”乘以“數(shù)量”得到,也就是說“數(shù)量”是一個冗余數(shù)組。 而且,減少“量”的冗余數(shù)組可以提高查詢統(tǒng)計的速度,這就是用空間換時間的做法。
在中,規(guī)定的列有兩種:數(shù)據(jù)列和估計列。 “金額”等列稱為“計算列”,“單價”和“數(shù)量”等列稱為“數(shù)據(jù)列”。
表1 商品表表結(jié)構(gòu)
5. 三種范式的簡單理解
簡單了解這三種范式,對數(shù)據(jù)庫設(shè)計大有裨益。 在數(shù)據(jù)庫設(shè)計中,為了更好的應(yīng)用三大范式,需要了解三大范式(表面的理解是充分的理解,而不是最科學、最準確的理解):
沒有冗余的數(shù)據(jù)庫設(shè)計可以做到這一點。 而且,沒有冗余的數(shù)據(jù)庫不一定是最好的數(shù)據(jù)庫。 有時為了提高運行效率,需要降低范式標準,適當保留冗余數(shù)據(jù)。
具體方法是:在設(shè)計概念數(shù)據(jù)模型時,違反第三范式,在化學數(shù)據(jù)模型設(shè)計中考慮添加范式標準的工作。 添加范例意味著減少數(shù)組并允許冗余。
6、善于識別并正確處理多對多關(guān)系
如果兩個實體之間存在多對多關(guān)系,則應(yīng)刪除這些關(guān)系。 移除它的方法是降低中間的第三個實體。 這樣,原來的一對多關(guān)系現(xiàn)在變成了兩個一對多關(guān)系。 原本兩個實體的屬性要合理分配給三個實體。
這里的第三個實體其實是一個比較復(fù)雜的關(guān)系,它對應(yīng)一個基本表。 一般來說,數(shù)據(jù)庫設(shè)計工具無法識別多對多關(guān)系,但可以處理多對多關(guān)系。
〖例3〗:在“圖書館信息系統(tǒng)”中,“圖書”是一個實體,“讀者”也是一個實體。 這兩個實體之間的關(guān)系是典型的多對多關(guān)系:一本書可以在不同時間被多個讀者借閱,一個讀者可以借閱多本書。
因此,為了減少兩者之間的第三個實體,將該實體命名為“借還書”,其屬性為:借還時間、借還標志(0表示借書,1表示還書),此外,它還應(yīng)該有兩個字段(一個字段用于“Book”,一個字段用于“”),以便它可以與“Book”和“”鏈接。
7.野外PK的取值方法
PK是程序員在表之間使用的連接工具。 可以是一串沒有化學意義的數(shù)字,通過程序手動加1實現(xiàn)。 它也可以是具有化學意義的數(shù)組名稱或數(shù)組名稱的組合。 但后者優(yōu)于前者。 當PK為數(shù)組名組合時,建議數(shù)組個數(shù)不要過多。 如果太多,不僅索引會占用大量空間,而且速度也會變慢。
八、正確理解數(shù)據(jù)冗余
多個表中重復(fù)出現(xiàn)的字段和主鍵不屬于數(shù)據(jù)冗余。 這個概念一定要清楚。 其實很多人還不清楚。 非鍵數(shù)組的重復(fù)出現(xiàn)就是數(shù)據(jù)冗余! 而且是低級冗余,即重復(fù)冗余。 中間冗余不是數(shù)組的重復(fù)出現(xiàn),而是數(shù)組的派生出現(xiàn)。
〖示例4〗:商品中有“單價、數(shù)量、金額”三個數(shù)組。 “數(shù)量”由“單價”乘以“數(shù)量”得出。 它是冗余的,而且是一種中間冗余。 冗余的目的是提高處理速度。
只有低級冗余才能減少數(shù)據(jù)不一致,因為相同的數(shù)據(jù)可能會從不同的時間、地點和角色多次輸入。 為此,我們提倡中級冗余(派生冗余),反對低級冗余(重復(fù)冗余)。
9、E--R圖沒有標準答案
信息系統(tǒng)的ER圖沒有標準答案,因為它的設(shè)計和繪制方法并不是唯一的,只要覆蓋了系統(tǒng)需求的業(yè)務(wù)范圍和功能內(nèi)容,就是可行的。 反之,應(yīng)改變E--R圖。
雖然它沒有唯一的標準答案,但并不意味著可以隨便設(shè)計。 好的ER圖的標準是:結(jié)構(gòu)清晰、關(guān)聯(lián)簡單、實體數(shù)量適中、屬性分布合理、無低級冗余。
10、視圖技術(shù)在數(shù)據(jù)庫設(shè)計中的用處
與基本表、代碼表、中間表不同,視圖是依賴于數(shù)據(jù)源真實表而存在的虛擬表。 視圖是程序員使用數(shù)據(jù)庫的窗口,是合成基表數(shù)據(jù)的方式intellij idea 數(shù)據(jù)庫關(guān)系圖,是數(shù)據(jù)處理的方式,也是對用戶數(shù)據(jù)保密的手段。
為了進行復(fù)雜的處理、提高計算速度和節(jié)省存儲空間,視圖深度定義通常不能超過三層。 如果三層視圖還不夠,應(yīng)該在視圖上定義臨時表,然后在臨時表上定義視圖。 這樣,重復(fù)定義,并且視圖的深度不受限制。
對于關(guān)系到國家政治、經(jīng)濟、技術(shù)、軍事和安全利益的個人信息系統(tǒng),觀點的作用更為重要。 本系統(tǒng)基本表的數(shù)學設(shè)計完成后,立即在基本表上構(gòu)建第一層視圖。 這一層視圖的數(shù)量和結(jié)構(gòu)與基本表的數(shù)量和結(jié)構(gòu)完全相同。 而且規(guī)定所有程序員只允許對視圖進行操作。
只有數(shù)據(jù)庫管理員,擁有多人持有的“安全鑰匙”,才能直接對基礎(chǔ)表進行操作。 請讀者思考:為什么?
11. 中間表、報告和臨時表
中間表是存儲統(tǒng)計數(shù)據(jù)的表。 它是專為數(shù)據(jù)庫機房、輸出報表或查詢結(jié)果而設(shè)計的。 有時它沒有字段和主鍵(數(shù)據(jù)庫機房除外)。 臨時表是程序員設(shè)計的,用于存儲供個人使用的臨時記錄。 基表和中間表由DBA維護,臨時表由程序員自己手動維護。
12、誠信約束表現(xiàn)在三個方面
域的完整性:使用Check來實現(xiàn)約束。 在數(shù)據(jù)庫設(shè)計工具中,定義數(shù)組的取值范圍時,有一個勾選按鈕來定義數(shù)組的值。
參照完整性:通過 PK、FK 和表級觸發(fā)器實現(xiàn)。 用戶定義的完整性:是一些業(yè)務(wù)規(guī)則,通過存儲過程和觸發(fā)器來實現(xiàn)。
13、避免數(shù)據(jù)庫設(shè)計打補丁的方法是“三少原則”
1.數(shù)據(jù)庫中的表越少越好。 只要表的數(shù)量少,就可以表現(xiàn)出系統(tǒng)的ER圖小而精確,去除多余多余的實體,產(chǎn)生對客觀世界的高度表征,整合系統(tǒng)數(shù)據(jù),避免打補丁風格設(shè)計;
2. 表中組合字段的數(shù)組越少越好。 由于字段的作用,一是構(gòu)建字段索引,二是作為子表的主鍵,所以組合字段的數(shù)組數(shù)量較少,不僅節(jié)省了運行時間,而且也節(jié)省了索引存儲空間;
3.一張表中的數(shù)組越少越好。 只要數(shù)組的數(shù)量很少,就可以說明系統(tǒng)中不存在數(shù)據(jù)重復(fù),數(shù)據(jù)冗余很少。 更重要的是,敦促讀者學會“變列為行”,從而避免需要將子表中的數(shù)組拉入主表中,而在主表中留下許多空數(shù)組。 所謂“列轉(zhuǎn)行”,就是把主表中的部分內(nèi)容拉出來,單獨創(chuàng)建一個子表。 這個方法很簡單,有的人就是不習慣,不采納,不執(zhí)行。
數(shù)據(jù)庫設(shè)計的實用原則是在數(shù)據(jù)冗余和處理速度之間找到合適的平衡點。 “三少”是一個整體的概念,一個綜合的觀點,不能孤立地遵循一定的原則。
原則是相對的,不是絕對的。 “三個以上”的原則肯定是錯誤的。 試想:如果覆蓋系統(tǒng)相同的功能,100個實體(共1000個屬性)的ER圖肯定比200個實體(共2000個屬性)的ER圖好很多。
提倡“三少”原則,就是要求讀者學會使用數(shù)據(jù)庫設(shè)計技術(shù)進行系統(tǒng)的數(shù)據(jù)集成。 數(shù)據(jù)集成的步驟是將文件系統(tǒng)集成到應(yīng)用數(shù)據(jù)庫中,應(yīng)用數(shù)據(jù)庫集成到主題數(shù)據(jù)庫中,主題數(shù)據(jù)庫集成到全局綜合數(shù)據(jù)庫中。
集成度越高,數(shù)據(jù)共享越強,信息孤島現(xiàn)象越少,整個企業(yè)信息的全局ER圖中實體數(shù)、主鍵數(shù)、屬性數(shù)越少系統(tǒng)。
提倡“三少”原則的目的是防止讀者借助打補丁技術(shù)不斷對數(shù)據(jù)庫進行增刪改查,使企業(yè)數(shù)據(jù)庫成為隨意設(shè)計的數(shù)據(jù)庫表的“垃圾堆”,或數(shù)據(jù)庫表的“大院子”。 致使數(shù)據(jù)庫中的基礎(chǔ)表、碼表、中間表、臨時表雜亂無章intellij idea 數(shù)據(jù)庫關(guān)系圖,數(shù)不勝數(shù),企事業(yè)單位的信息系統(tǒng)難以維護和癱瘓。
任何人都可以實現(xiàn)“三多”原則,這是“打補丁”數(shù)據(jù)庫設(shè)計的謬論。 “三少”原則就是少而精的原則。 它對數(shù)據(jù)庫的設(shè)計方法和藝術(shù)要求很高,不是任何人都能達到的,因為這個原則是避免使用“打補丁”設(shè)計數(shù)據(jù)庫的理論基礎(chǔ)。
14.提高數(shù)據(jù)庫運行效率的方法
在給定的系統(tǒng)硬件和系統(tǒng)軟件條件下,提高數(shù)據(jù)庫系統(tǒng)運行效率的途徑是:
事實上,要提高數(shù)據(jù)庫的運行效率,必須在數(shù)據(jù)庫系統(tǒng)級優(yōu)化、數(shù)據(jù)庫設(shè)計級優(yōu)化和程序?qū)崿F(xiàn)級優(yōu)化三個層面下功夫。
以上十四種方法是很多人在大量的數(shù)據(jù)庫分析和設(shè)計實踐中逐漸總結(jié)出來的。 對于這種經(jīng)驗的應(yīng)用,讀者不要死記硬背,而要消化理解,實事求是,靈活掌握。 并逐步做到:在應(yīng)用中開發(fā),在開發(fā)中應(yīng)用。
(超過)
最近熱門推薦
1.
2.
3.
4.
5.
如有侵權(quán)請聯(lián)系刪除!
Copyright ? 2023 江蘇優(yōu)軟數(shù)字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服務(wù)提供商
13262879759
微信二維碼