自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

全面解析關(guān)系數(shù)據(jù)模型存在的不足之處

數(shù)據(jù)庫
關(guān)系數(shù)據(jù)模型是以關(guān)系數(shù)學理論為基礎(chǔ)的,用二維表結(jié)構(gòu)來表示實體以及實體之間聯(lián)系的模型稱為關(guān)系模型。在關(guān)系模型中把數(shù)據(jù)看成是二維表中的元素,操作的對象和結(jié)果都是二維表,一張二維表就是一個關(guān)系。 本文將為大家解析關(guān)系數(shù)據(jù)模型的不足之處。

導讀:關(guān)系數(shù)據(jù)模型的存在推動了數(shù)據(jù)庫技術(shù)的發(fā)展,關(guān)系數(shù)據(jù)模型有很多的優(yōu)點,關(guān)系數(shù)據(jù)庫以其完備的理論基礎(chǔ)、簡單的模型、說明性的查詢語言和使用方便等優(yōu)點得到了最廣泛的應(yīng)用,盡管如此,關(guān)系數(shù)據(jù)模型仍然存在著一些不足之處。下面就一一為大家例舉。

一.對“現(xiàn)實世界”實體的表達能力比較弱

  規(guī)范化通常導致表與“現(xiàn)實世界”中的實體不對應(yīng),它將“現(xiàn)實世界”中的實體分割成幾張表來顯示,以物理表示法來反映實體結(jié)構(gòu),這樣效率會比較差,常常要在查詢處理中進行很多連接操作。

二.語義過載

  關(guān)系模型表達數(shù)據(jù)和數(shù)據(jù)間關(guān)系的構(gòu)造只有一種——表。例如,為了表達實體A和實體B之間的多對多(*:*)關(guān)系、我們需要創(chuàng)建三張表,兩個分別用于表達實體A和B,第三張表用于表達實體間的關(guān)系。它沒有一種機制來區(qū)分實體和關(guān)系,也無法區(qū)分在實體間存在的不同種類的關(guān)系。例如,一個1:*關(guān)系可能是Has、Supervises、Manages等等。如果可以進行區(qū)分,也許我們就可以將語義構(gòu)建到操作中。所以,我們說關(guān)系模型語義過載了。

三.不能很好的支持業(yè)務(wù)規(guī)則

  很多商業(yè)化系統(tǒng)不能完全支持實體和參照完整性、域等業(yè)務(wù)規(guī)則,所以需要將它們內(nèi)置到應(yīng)用程序中。這樣當然是危險的,而且容易導致做重復的工作。更糟糕的是,可能還會引起不一致現(xiàn)象。而且,在關(guān)系模型中不支持其他類型的業(yè)務(wù)規(guī)則,這又意味著它們需要被構(gòu)建到DBMS或應(yīng)用程序中。

四.有限的操作

  關(guān)系模型只有一些固定的操作集,例如面向集合和記錄的操作,操作是在SQL規(guī)格說明中提供的。但是,SQL目前不允許指定新的操作。因此,在給許多“現(xiàn)實世界”對象的行為建模就有了太多的限制。例如,一個GIS應(yīng)用程序典型的使用點、線、線組、多邊形和一些處理距離、交叉點和包含關(guān)系的操作。

五.處理遞歸查詢困難

  數(shù)據(jù)的原子性意味著在關(guān)系模型中不允許出現(xiàn)重復的數(shù)據(jù)組,這樣就導致了處理遞歸查詢極為困難。遞歸查詢就是那些有關(guān)表和自身直接或間接的關(guān)系的查詢。為了解決這個問題,SQL可以嵌入在一個高級程序設(shè)計語言中,由高級程序設(shè)計語言來提供支持反復操作的功能。而且,很多RDBMS提供了具有類似結(jié)構(gòu)的報表書寫程序。不管是哪種情況,都是應(yīng)用程序而不是系統(tǒng)的內(nèi)在功能提供了所需的功能。

六.阻抗失配

  直到最新版本的SQL標準,都缺少完全的計算功能。為了解決這個問題并且提供更多的靈活性,SQL標準提供嵌入式SQL來幫助開發(fā)更加復雜的數(shù)據(jù)庫應(yīng)用程序。但是,這引起了阻抗不匹配(impedance mismatch)的問題,因為我們將兩種不同的程序設(shè)計模式混合在了一起。

  1.SQL是一種處理行數(shù)據(jù)的聲明性語言,而諸如C語言這樣的高級語言則是過程化的語言,一次只能處理一行數(shù)據(jù)。

  2.SQL和3GL使用不同的模型來表達數(shù)據(jù)。比如,SQL提供內(nèi)置的數(shù)據(jù)類型Date(日期型)和Interval(時間間隔型),而在傳統(tǒng)的編程語言中卻沒有這樣的類型。因此,就需要應(yīng)用程序在兩種表示法之間進行轉(zhuǎn)換。而這樣做無論從程序設(shè)計的工作量還是運行時資源的使用來看都是低效的。而且,由于我們使用兩種不同的系統(tǒng),因此,不可能將類型檢測作為一個整體自動進行。

  注:SQL標準(SQL3)通過引入許多新的特征已經(jīng)彌補了上文中講述的一些不足之處。

通過上文中的介紹,大家在以后的關(guān)系數(shù)據(jù)模型的使用中藥盡量避開這些不足之處,要最大程度的發(fā)揮關(guān)系數(shù)據(jù)模型的優(yōu)點。盡管關(guān)系數(shù)據(jù)模型有這些不足的地方,但我堅信有一天關(guān)系數(shù)據(jù)模型一定會變的很完善。

【編輯推薦】

  1. 后關(guān)系數(shù)據(jù)庫必將有用武之地
  2. Digg投奔NoSQL 關(guān)系數(shù)據(jù)庫行將就木
  3. 關(guān)系數(shù)據(jù)庫的根本問題分析及數(shù)據(jù)庫革命之走向
責任編輯:迎迎 來源: 希賽網(wǎng)
相關(guān)推薦

2013-10-10 13:57:27

VMwareVMware Mira

2010-07-06 14:53:09

UML業(yè)務(wù)流程

2013-05-22 10:37:57

Windows SerRDS

2009-12-31 09:51:16

無線Mesh接入技術(shù)

2010-07-12 15:16:04

SQL Server

2010-09-13 08:48:04

Visual Stud

2013-06-18 16:58:12

HDFS分布式文件系統(tǒng)

2012-11-14 11:03:33

2013-11-05 11:14:47

Windows 8.1

2022-12-09 09:39:01

數(shù)據(jù)治理

2010-03-26 09:48:43

Python嵌入C++

2009-12-01 11:38:54

蘋果應(yīng)用軟件商店

2021-09-14 14:44:30

CISA勒索軟件RRA

2010-06-28 18:52:49

UML關(guān)系符號

2012-03-05 10:54:03

NoSQL

2010-05-26 14:37:56

Cassandra數(shù)據(jù)

2021-02-28 22:20:25

2017-06-27 10:08:29

數(shù)據(jù)倉庫模型

2010-08-04 14:34:35

Flex編程模型

2009-09-18 14:07:51

LINQ to SQL
點贊
收藏

51CTO技術(shù)棧公眾號