data abstraction(資料抽象化):這個名詞我第一次是在資料庫系統(database management system)中看到的,但那時不是很清楚,因為他定義的方式是「讓使用者看不到資料是如何被儲存的」就能使用該資料,但是程式語言中也提到data abstraction讓programming language讓程式語言有著很大的進步,那時就在卡住了有點想不通,所以就去查了:
data abstraction的確是為了讓隱藏資料的實際實作,使programer能更專注於資料本身,真要說的話「物件」的觀念就是data abstraction的一種,我們不考慮這個物件他用了多少的基礎型別而組合而成這個特定的type,我們只要知道有這個型別,存放的東西有什麼特性即可;即使以非物件導向的觀點來看,基礎型別就是一種data abstraction的概念,不需要考慮整數是怎麼存在記憶體中的(這部份python做更好,python沒有所謂的int是用32-bit儲存的概念,不管多大他都會幫你處理…(因為python的直譯器多是以C實作,所以其實是python會自動幫你做大數法則,不過在使用時不用管這個…)),在使用時可以專心處理整數的問題即可,而不用去管實際上是動到了哪個bit
資料庫也是這樣的,除了剛才所說的「不用讓使用者看到資料是怎麼儲存的」之外,DB的entity和relational的概念也是這種狀況,我只要知道他是代表「系所」即可……
結論:其實資料庫的書一開始就沒有說錯,只是因為自己腦袋一時轉不過來而已……
沒有留言:
張貼留言