聊一聊元資料

2022-01-12 08:20:47 字數 936 閱讀 4282

這個話題來自我的msn space。這是原文:

元資料(metadata)這個詞現在到處氾濫。其實我對元資料充其量只能說有自己的理解而已,並不能確信這個理解是正確的。

我認為,資料結構分為三個層次(uml可是四層哦):

例項層:直接描述特異化的資料場景;

元資料層:描述例項的結構的一組資料;

元資料的元資料層:描述元資料的結構的一組資料。

元資料就是用來描述例項或者描述元資料的一種結構。

元資料的特徵有這樣幾個:第一是元資料一定不依賴業務反而被業務所依賴,相當業務的多變性,元資料是相對穩定的;第二是元資料具有廣泛的可復用性,而業務的可復用性極差;第三是元資料注重結構,而業務注重行為。

在xml中,元資料就是模式(schema),在資料庫中,元資料就是資料庫物件定義,包括表、檢視、關係約束、存貯過程、觸發器、函式、資料庫使用者、資料庫角色等等定義。在物件空間,元資料就是型別、介面、方法、方法引數、屬性的定義。在結構化程式空間,元資料就是函式及函式的引數。

我之所以反覆強調引數,是因為我們在定義乙個介面或者方法的引數時總是非常隨便,但定義乙個xml文件模式或者資料庫物件時總是小心翼翼的,很受束縛。這顯然有一定的不合理之處。仔細推敲,我的結論就是:第一,我們設計每個方法的引數時,特別是設計每個虛擬方法的引數時一定要小心一點,盡量不要濫用引數重構。第二,我們在設計乙個xml文件結構或者資料庫結構的時候可別那麼畏首畏尾的,就象平時寫程式時設計乙個方法的引數那樣。這樣就平衡了。

總結以往多年的資料庫設計,我歸納為兩個原則和兩個方法:

降冗優先原則(降冗是資料庫設計時的首要要素);

平行引用原則(所有的關係都必須是單向的並且不能交叉);

依職責拆分方法(同一基數不同職責或者不同的維護方法或者不同的維護期必須拆分);

依基數合併方法(同一基數且職責相同必須合併)。

忽然發現,其實這些原則和方法在整個元資料層都適用,不僅僅只針對資料庫設計。

聊一聊hive資料傾斜

info基本資訊表 user id name agegender 1henry16男 2jack17男 3anny18女 4candy19女 5kate20女 burke 21frank 22ellen 23ken 24mili 25.score成績表 user id subject id scor...

聊一聊資料結構

資料結構 2.棧和佇列 二 樹三 圖 線性結構是一種基本的資料結構,主要用於對客觀世界中具有單一前驅和後繼的資料關係進行描述。線性結構的特點是資料元素之間呈現一種線性關係,即元素 乙個接乙個排列 線性表常採用順序儲存和鏈式儲存,主要的操作是 插入 刪除 查詢 線性表的順序儲存是指用一組位址連續的儲存...

來聊一聊JavaScrip陣列刪除特定元素

說到刪除陣列特定元素你可能不止一種方法可以實現,下面且來看看我總結的這幾種方法,可能會對你有所幫助!var arr george john thomas james adrew martin 什麼是偽刪除呢?就是說將陣列元素值設定為null arr arr.indexof thomas null 刪...