所有資料,包括員工輸入的資料和從客戶那裡收集來的資料,都存放在資料庫裡。使用者介面和應用邏輯會變化,業務會發展,人員會變動,但是資料會永遠保留下來。所以,建立牢固的資料模型要從第一天開始,這絕非言過其實。
敏捷方法盛行使很多人認為在有需要時才設計應用是可行的,甚至是更可取的。提前展開全面綜合技術設計的日子己經成為過去。新派觀念提倡盡早地、頻繁地部署應用;一行寫進產品的**比頭腦中的十行更有價值。這些聽起來近乎完善的觀點,對資料庫卻行不通。
儘管業務規則和使用者介面經常變化,但是採集來的資料的內部結構和關係通常不會變化。因此,通過正確分析,首先從結構上定義好資料模型非常關鍵。將資料原封不動地從一種模式遷移到另一種模式是非常困難的,不但耗費時間,而且容易出錯。應用層出錯還可以暫時忍受,資料庫出錯則是災難性的。一旦資料被破壞,即使事後能夠修正資料層的設計問題,丟失的資料也無法恢復了。
牢固的資料模型既可以保障當前資料的安全,又為今後提供可靠性。要保障資料安全,就必須隔離來自應用層的bug(在不斷變化的應用層中,這些bug無處不在,不會因為你的勤奮而消失);必須嚴格遵守引用完整性(refrential integrity)規則,盡可能使用域約束(domain constraints)規則;還要選擇恰當的鍵(keys),既保證資料的引用完整性,又遵守約束規則。要實現可擴充套件性,就必須正確地將資料標準化(normalizing),以便今後在資料模型上新增架構層;千萬不要偷懶走捷徑。
資料庫是保護珍貴資料的最後一道關卡。應用層的設計經常變動,無法保證自身的安全。為了妥善地保護資料庫,資料模型的設計必須做到能夠拒絕無效資料,阻止無意義的關係。在定義鍵、外來鍵和域約束時,應該採用簡潔的,容易被理解和驗證的名稱,使它們的含義不言自明(self-documenting)。資料模型中的域規則也要做到物理化和持久化(physical and persistent),避免它們在應用邏輯發生改變時被刪除。
為了充分發揮關聯式資料庫的作用——讓它真正成為應用的一部分,而不僅僅是存放資料的庫房——必須從開始構建資料庫時,就深刻地理解業務需求。隨著產品的演變,資料層也會發生變化,但無論何時,都要確保資料層像堡壘一樣堅固。如果你信任資料層,賦予它捕獲其他架構層bug的重任,它不會讓你失望的。
Node MySQL打造關係型資料庫
2.安裝mysql 2.1 解壓後雙擊執行等待 2.8 next next execute 等待 finish next finish 請參考文章 進入node專案根目錄執行 npm install mysql s新建test.jsconst mysql require mysql const op...
永久免費的資料庫防火牆 堡壘機
永久免費的資料庫防火牆 資料庫堡壘機 dbtwin 預防勒索及其他病毒 木馬的利器 當前勒索病毒猖獗,對廣大的資料庫系統產生了嚴重的威脅。一旦中招,資料庫系統會立即癱瘓,資料無法恢復,除非給勒索者匯錢購買解密秘鑰,或者用備份來恢復。對於此類病毒,最好的辦法是積極預防。除了常見的防火牆 防毒軟體,還需...
巨杉資料庫王濤 如何打造金融級資料庫
以銀行為首的金融行業佔據了50 以上的企業級it投入,接著才是 運營商等行業。一般來說,一家銀行通常擁有超過百種以上的業務系統,而且歷經幾十年的法律和業務規則的演進。因此,業界公認銀行在選擇技術產品過程中,對於安全性 可靠性 複雜度等企業級功能要求最為嚴苛。銀行作為企業級軟體應用的標桿行業,被其採用...