本節書摘來自華章出版社《資料庫原理與應用(第3版)》一 書中的第1章,第1.3節,作者:何玉潔,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
資料獨立性是指應用程式不會因資料的實體表示方式和通路技術的改變而改變,即應用程式不依賴于任何特定的實體表示方式和通路技術。資料獨立性包含兩個方面:實體獨立性和邏輯獨立性。實體獨立性是指當資料的存儲位置或存儲結構發生變化時,不影響應用程式的特性;邏輯獨立性是指當表達現實世界的資訊内容發生變化時,比如增加一些列、删除無用列等,也不影響應用程式的特性。要了解資料獨立性的含義,最好先搞清什麼是非資料獨立性。在資料庫技術出現之前,也就是在使用檔案管理資料的時候,實作的應用程式常常是資料依賴的,也就是說資料的實體表示方式和有關的存取技術都要在應用程式中考慮,而且,有關實體表示的知識和通路技術直接展現在應用程式的代碼中。例如,如果資料檔案使用了索引,那麼應用程式必須知道有索引存在,也要知道記錄的順序是索引的,這樣應用程式的内部結構就是基于這些知識而設計的。一旦資料的實體表示方式改變了,就會對應用程式産生很大的影響。例如,如果改變了資料的排序方式,則應用程式不得不進行相應的修改。而且在這種情況下,應用程式修改的部分恰恰是與資料管理密切聯系的部分,而與應用程式最初要解決的問題毫不相幹。
在資料庫管理方式中,可以盡量避免應用程式對資料的依賴,這有如下兩種情況。
1)不同的使用者關心的資料并不完全相同,即使對同樣的資料不同使用者的需求也不盡相同。比如前述的學生基本資訊資料,包括學号、姓名、性别、出生日期、聯系電話、所在系、專業、班号,配置設定宿舍的部門可能隻需要學号、姓名、班号、性别,教務部門可能隻需要學号、姓名、所在系、專業和班号。好的實作方法應根據全體使用者對資料的需求存儲一套完整的資料,而且隻編寫一個針對全體使用者的公共資料的應用程式,但能夠按每個使用者的具體要求隻展示其需要的資料,當公共資料發生變化時(比如增加新資訊),可以不修改應用程式,每個不需要這些變化資料的使用者也不需要知道有這些變化。這種獨立性(邏輯獨立性)在檔案管理方式下是很難實作的。
2)随着科學技術的進步以及應用業務的變化,有時必須要改變資料的實體表示方式和通路技術以适應技術發展及需求變化,比如改變資料的存儲位置或存儲方式(就像一個機關可以搬到新的位址,或者是調整機關各科室的布局)以提高資料的通路效率。在理想情況下,這些變化不應該影響應用程式(實體獨立性)。這在檔案管理方式下也是很難實作的。
是以,資料獨立性的提出是一種客觀應用的要求。資料庫技術的出現正好克服了應用程式對資料的實體表示和通路技術的依賴。