對象關系型資料庫
⑴ 面向對象資料庫和關系資料庫的區別
以關系資料庫為例,sql語言是一種非過程化的面向集合的語言,它雖然用起來非常簡單,但由於是解釋實現,效率不如人意。因此許多應用仍然是由高級程序設計語言(如C)來實現的,但是高級程序設計語言是過程化的,而且是面向單個數據的,這使得SQL與它之間存在著不匹配,我們把它叫做「阻抗失配」。不論你是用嵌入式SQL,還是CLI,都需要化很多工夫去完成兩種語言之間的相互轉化。 但是關系資料庫在資料庫系統方面發展地非常完善,有強大的管理功能和可操縱性。另外,關系模型具有堅實的數學基礎。
面向對象資料庫的產生主要是為了解決「阻抗失配」,它強調高級程序設計語言與資料庫的無縫連接。什麼叫無縫連接,假設你 不用資料庫,用C語言編了一個程序,你可以不需要(或基本不需要)任何改動就將它作用於資料庫,即你可以用C語言透明訪問資料庫,就好象資料庫根本不存在一樣,所以也有人把面向對象資料庫理解為語言的持久化。怎麼樣,聽起來挺玄的吧,可是我們自己開發的資料庫系統——OSCAR早就做到了這一點。 由於實現了無縫連接,使得面向對象資料庫能夠支持非常復雜的數據模型,從而特別適用於工程設計領域。打個比方,想像CAD中的一個復雜部件,它可能由成千上萬個不同的零件組成,要是用關系模型中的表來表達,得用多少張表啊?而描述這種復雜的部件,正好是高級程序設計語言的強項。
此外,面向對象資料庫還吸收了面向對象程序設計語言的思想,如支持類、方法、繼承等概念。 面向對象資料庫很好地解決了阻抗失配的問題,但它也有缺點。它的缺點正好是關系資料庫的強項,由於模型較為復雜(而且缺乏數學基礎),使得很多系統管理功能難以實現(如許可權管理),也不具備SQL處理集合數據的強大能力。
另一方面,隨著多媒體數據的大量出現和應用的日益復雜,關系資料庫也在不斷吸收面向對象資料庫的優點,出現了現在所謂的對象關系型資料庫(象ORACLE8i、DB2-5以上都是這種系統)。其主要改進包括支持自定義類型(UDT),方法,繼承(目前僅DB2-6支持),和引用(使得對象間可以直接引用,想想原來的關系資料庫需要靠連接來實現引用,性能真是慘不忍睹)。 總之,資料庫系統發展的趨勢是,面向對象資料庫和關系資料庫將不斷融合。而對象關系資料庫由於繼承了上述兩者的優點,已經成為目前資料庫發展的主流。
⑵ 對象型資料庫是什麼它與面向關系型資料庫的區別
關於面向對象資料庫,網上一搜一大堆,我給你簡明扼要的說一下。
面向對象資料庫就是把數據以對象的形式組織起來,而不是像關系型資料庫以表的形式來組織數據,並且根據需要也能提供ACID等事務特點。一開始的設計主要是要方便的配合面向對象編程語言的數據操作需要,漸漸的,成為了一種強大的資料庫類型。
主要區別:面向對象資料庫可以處理比關系型資料庫更復雜的數據類型以及復合數據類型,並建立相關索引;數據查詢時,不需要表格的join操作,直接通過指針和索引查找數據;數據之間可以有繼承關系;資料庫模式和程序類定義模式吻合;等等等等
⑶ 屬於關系型資料庫的有什麼
當前主流的關系型資料庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。
⑷ 什麼是對象關系數據模型
那叫對象關系資料庫映射。Hibernate的原理..核心部分.
對象關系映射(ORM)提供了概念性的、易於理解的模型化數據的方法。ORM方法論基於三個核心原則: 簡單:以最基本的形式建模數據。 傳達性:資料庫結構被任何人都能理解的語言文檔化。 精確性:基於數據模型創建正確標准化了的結構。 典型地,建模者通過收集來自那些熟悉應用程序但不熟練的數據建模者的人的信息開發信息模型。建模者必須能夠用非技術企業專家可以理解的術語在概念層次上與數據結構進行通訊。建模者也必須能以簡單的單元分析信息,對樣本數據進行處理。ORM專門被設計為改進這種聯系。對象-關系資料庫映射 規則表達式 ORM把應用程序世界表示為具有角色(關系中的部分)的一組對象(實體或值)。ORM有時也稱為基於事實的建模,因為它把相關數據描述為基本事實。這些事實如果分割為再小的事實就會丟失信息。 簡單事實的一些例子包括: 人有電話 人住在某個地方 人生於某個日期 人在某個日期被僱傭 ORM提供的不只是描述不同對象間關系的一個簡單而直接的方式。ORM還提供了靈活性。使用ORM創建的模型比使用其它方法創建的模型更有能力適應系統的變化。另外,ORM允許非技術企業專家按樣本數據談論模型,因此他們可以使用真實世界的數據驗證模型。因為ORM允許重用對象,數據模型能自動映射到正確標准化的資料庫結構。 ORM模型的簡單性簡化了資料庫查詢過程。使用ORM查詢工具,用戶可以訪問期望數據,而不必理解資料庫的底層結構。概念 對象關系映射(Object Relational Mapping,簡稱ORM)是一種為了解決面向對象與關系資料庫存在的互不匹配的現象的技術。 簡單的說,ORM是通過使用描述對象和資料庫之間映射的元數據,將java程序中的對象自動持久化到關系資料庫中。本質上就是將數據從一種形式轉換到另外一種形式。 這也同時暗示著額外的執行開銷;然而,如果ORM作為一種中間件實現,則會有很多機會做優化,而這些在手寫的持久層並不存在。 更重要的是用於控制轉換的元數據需要提供和管理;但是同樣,這些花費要比維護手寫的方案要少;而且就算是遵守ODMG規范的對象資料庫依然需要類級別的元數據。 對象-關系映射(Object/Relation Mapping,簡稱ORM),是隨著面向對象的軟體開發方法發展而產生的。面向對象的開發方法是當今企業級應用開發環境中的主流開發方法,關系資料庫是企業級應用環境中永久存放數據的主流數據存儲系統。對象和關系數據是業務實體的兩種表現形式,業務實體在內存中表現為對象,在資料庫中表現為關系數據。內存中的對象之間存在關聯和繼承關系,而在資料庫中,關系數據無法直接表達多對多關聯和繼承關系。因此,對象-關系映射(ORM)系統一般以中間件的形式存在,主要實現程序對象到關系資料庫數據的映射。 面向對象是從軟體工程基本原則(如耦合、聚合、封裝)的基礎上發展起來的,而關系資料庫則是從數學理論發展而來的,兩套理論存在顯著的區別。為了解決這個不匹配的現象,對象關系映射技術應運而生。 讓我們從O/R開始。字母O起源於"對象"(Object),而R則來自於"關系"(Relational)。幾乎所有的程序裡面,都存在對象和關系資料庫。在業務邏輯層和用戶界面層中,我們是面向對象的。當對象信息發生變化的時候,我們需要把對象的信息保存在關系資料庫中。 當你開發一個應用程序的時候(不使用O/R Mapping),你可能會寫不少數據訪問層的代碼,用來從資料庫保存,刪除,讀取對象信息,等等。你在DAL中寫了很多的方法來讀取對象數據,改變狀態對象等等任務。而這些代碼寫起來總是重復的。 如果打開你最近的程序,看看DAL代碼,你肯定會看到很多近似的通用的模式。我們以保存對象的方法為例,你傳入一個對象,為SqlCommand對象添加SqlParameter,把所有屬性和對象對應,設置SqlCommand的CommandText屬性為存儲過程,然後運行SqlCommand。對於每個對象都要重復的寫這些代碼。 除此之外,還有更好的辦法嗎?有,引入一個O/R Mapping。實質上,一個O/R Mapping會為你生成DAL。與其自己寫DAL代碼,不如用O/R Mapping。你用O/R Mapping保存,刪除,讀取對象,O/R Mapping負責生成SQL,你只需要關心對象就好。 對象關系映射成功運用在不同的面向對象持久層產品中,如:Torque,OJB,Hibernate,TopLink,Castor JDO, TJDO 等。
⑸ 什麼是關系型資料庫
關系型資料庫,是指採用了關系模型來組織數據的資料庫,其以行和列的形式存儲數據,以便於用戶理解,關系型資料庫這一系列的行和列被稱為表,一組表組成了資料庫。
用戶通過查詢來檢索資料庫中的數據,而查詢是一個用於限定資料庫中某些區域的執行代碼。關系模型可以簡單理解為二維表格模型,而一個關系型資料庫就是由二維表及其之間的關系組成的一個數據組織。
關系型資料庫設計的過程可大體分為四個時期七個階段。
存儲結構:關系型資料庫按照結構化的方法存儲數據,每個數據表都必須對各個欄位定義好(也就是先定義好表的結構),再根據表的結構存入數據,這樣做的好處就是由於數據的形式和內容在存入數據之前就已經定義好了,所以整個數據表的可靠性和穩定性都比較高,但帶來的問題就是一旦存入數據後,如果需要修改數據表的結構就會十分困難。
(5)對象關系型資料庫擴展閱讀:
關系型資料庫相比其他模型的資料庫而言。有著以下優點:
1、容易理解:關系模型中的二維表結構非常貼近邏輯世界,相對於網狀、層次等其他模型來說更容易理解。
2、使用方便:通用的SQL語言使得操作關系型資料庫非常方便,只需使用SOL語言在邏輯層面操作資料庫,而完全不必理解其底層實現。
3、易於維護:豐富的完整性(實體完整性、參照完整性和用戶定義的完整性)大大降低了數據冗餘和數據不一致的概率。
⑹ 常用的關系型資料庫有哪些
Nosql的全稱是Not Only Sql,這個概念很早就有人提出。Nosql指的是非關系型資料庫,而我們常用的都是關系型資料庫。就像我們常用的mysql,oralce、sqlserver等一樣,這些資料庫一般用來存儲重要信息,應對普通的業務是沒有問題的。但是,隨著互聯網的高速發展,傳統的關系型資料庫在應付超大規模,超大流量以及高並發的時候力不從心。而就在這個時候,Nosql應運而生。
上面說的是NOSQL 的定義.Nosql和關系型資料庫的區別,這里我說明一比較重要的區別。
存儲格式: 關系型資料庫是表格式的,存儲在表的行和列中。他們之間很容易關聯協作存儲,提取數據很方便。而Nosql資料庫則與其相反,他是組合在一起。通常存儲在數據集中,就像文檔、鍵值對或者圖結構。舉個例子,例如在游戲裡面玩家的背包數據,我們都知道一個游戲裡面的道具是很多,而且不確定玩家什麼時候獲取什麼道具,這個時候如果想在關系資料庫裡面存儲數據,這個表怎麼建立就是一個很大的問題,如果你把所有的道具ID 當做表頭 ,那麼後續每增加一個道具,就需要修改這張表。如果你的表結構是 :
用戶ID|道具ID|道具數量|道具特殊屬性
那麼可以想像一下 這張表隨著用戶的增多會變的多麼的龐大。所以這個時候我們就需要一個能直接像操作玩家對象一樣的資料庫,這里比較代表性的就是mongo ,通過這個我們就可以看出nosql 資料庫更適合存儲結構不確定的數據。
存儲擴展:這可能是兩者之間最大的區別,關系型資料庫是縱向擴展,也就是說想要提高處理能力,要使用速度更快的計算機。因為數據存儲在關系表中,操作的性能瓶頸可能涉及到多個表,需要通過提升計算機性能來克服。雖然有很大的擴展空間,但是最終會達到縱向擴展的上限。而Nosql資料庫是橫向擴展的,它的存儲天然就是分布式的,可以通過給資源池添加更多的普通資料庫伺服器來分擔負載。
上面的的例子已經說明了這個問題。在現代互聯網時代大家都是希望能橫線擴展服務。這樣付出的代價是最小的。
對於上面關系型資料庫和NOSQL 資料庫的區別其實還有很多。我相信大家在用的都會感覺到。上面列出的只是我感覺區別最大的。
那麼NOSQL 這么好用,是不是都可以用了呢,顯示不是這樣,NOSQL 對於聚合查詢顯示不是他的強項。這個時候就需要關系型資料庫。我是這樣建議,對於結構統一,應該存儲於關系型資料庫,對於結構不統一的可以存儲到NOSQL資料庫例如mongo 。但是這個不是絕對的,在實際的項目的開發過程中,需要根據的自己的業務,仔細揣摩一下,做好最合適的劃分。
常見關系型資料庫通常有SQL Server,Mysql,Oracle等。主流的Nosql資料庫有Redis,Memcache,MongoDb。大多數的關系型資料庫都是付費的並且價格昂貴,成本較大,而Nosql資料庫通常都是開源的。在互聯網行業用大多也是免費的MYSQL(這里偷笑一下)。
在實際的項目中大家的項目都是如何選擇的呢?大家可以關注我,私信或者在評論區留言。
⑺ 常見的關系型資料庫有哪些
關系資料庫,是建立在關系模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的數據。現實世界中的各種實體以及實體之間的各種聯系均用關系模型來表示。標准數據查詢語言SQL就是一種基於關系資料庫的語言,這種語言執行對關系資料庫中數據的檢索和操作。
關系模型由關系數據結構、關系操作集合、關系完整性約束三部分組成。
簡單說,關系型資料庫是由多張能互相聯接的二維行列表格組成的資料庫。當前主流的關系型資料庫有Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等。
1、Oracle
Oracle是1983年推出的世界上第一個開放式商品化關系型資料庫管理系統。它採用標準的SQL結構化查詢語言,支持多種數據類型,提供面向對象存儲的數據支持,具有第四代語言開發工具,支持Unix、Windows NT、OS/2、Novell等多種平台。除此之外,它還具有很好的並行處理功能。Oracle產品主要由Oracle伺服器產品、Oracle開發工具、Oracle應用軟體組成,也有基於微機的資料庫產品。主要滿足對銀行、金融、保險等企業、事業開發大型資料庫的需求。
2、DB2
DB2是美國IBM公司開發的一套關系型資料庫管理系統,它主要的運行環境為UNIX(包括IBM自家的AIX)、Linux、IBM i(舊稱OS/400)、z/OS,以及Windows伺服器版本。
DB2主要應用於大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用於所有常見的伺服器操作系統平台下。 DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規模應用程序的執行能力,具有與平台無關的基本功能和SQL命令。
DB2採用了數據分級技術,能夠使大型機數據很方便地下載到LAN資料庫伺服器,使得客戶機/伺服器用戶和基於LAN的應用程序可以訪問大型機數據,並使資料庫本地化及遠程連接透明化。
DB2以擁有一個非常完備的查詢優化器而著稱,其外部連接改善了查詢性能,並支持多任務並行查詢。 DB2具有很好的網路支持能力,每個子系統可以連接十幾萬個分布式用戶,可同時激活上千個活動線程,對大型分布式應用系統尤為適用。
3、Microsoft SQL Server
SQL Server 是Microsoft 公司推出的關系型資料庫管理系統。具有使用方便可伸縮性好與相關軟體集成程度高等優點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2012 的大型多處理器的伺服器等多種平台使用。
Microsoft SQL Server 是一個全面的資料庫平台,使用集成的商業智能 (BI)工具提供了企業級的數據管理。Microsoft SQL Server 資料庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用於業務的高可用和高性能的數據應用程序。
4、Microsoft Access
Access是由微軟發布的關系資料庫管理系統。它結合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項特點,是 Microsoft Office 的系統程序之一。
Access是微軟把資料庫引擎的圖形用戶界面和軟體開發工具結合在一起的一個資料庫管理系統。它是微軟OFFICE的一個成員, 在包括專業版和更高版本的office版本裡面被單獨出售。2018年9月25日,最新的微軟Office Access 2019在微軟Office 2019里發布。
MS ACCESS以它自己的格式將數據存儲在基於Access Jet的資料庫引擎里。它還可以直接導入或者鏈接數據(這些數據存儲在其他應用程序和資料庫)。
5、MySQL
MySQL是一個關系型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關系型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系資料庫管理系統) 應用軟體之一。
MySQL是一種關系資料庫管理系統,關系資料庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標准化語言。MySQL 軟體採用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。
⑻ SQL server是不是對象關系資料庫
SQL Server是對象關系資料庫這句話描述不準確,應該是SQL Server是由Microsoft開發和推廣的關系資料庫管理系統(DBMS)。
歷史:
SQL Server最初是由Microsoft、Sybase和Ashton-Tate三家公司共同開發的,並於1988年推出了第一個OS/2版本。Microsoft SQL Server近年來不斷更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用戶見面;SQL Server 2000是Microsoft公司於2000年推出,目前最新版本是2012年3月份推出的SQL SERVER 2012。
特點:
1.真正的客戶機/伺服器體系結構。
2.圖形化用戶界面,使系統管理和資料庫管理更加直觀、簡單。
3.豐富的編程介面工具,為用戶進行程序設計提供了更大的選擇餘地。
4.SQL Server與Windows NT完全集成,利用了NT的許多功能,如發送和接受消息,管理登錄安全性等。SQL Server也可以很好地與Microsoft BackOffice產品集成。
5.具有很好的伸縮性,可跨越從運行Windows 95/98的膝上型電腦到運行Windows 2000的大型多處理器等多種平台使用。
6.對Web技術的支持,使用戶能夠很容易地將資料庫中的數據發布到Web頁面上。
7.SQL Server提供數據倉庫功能,這個功能只在Oracle和其他更昂貴的DBMS中才有。
⑼ 面向對象資料庫有哪些
面向對象是一種認識方法學,也是一種新的程序設計方法學。
目前,商品化的資料庫管理系統以關系型資料庫為主導產品,技術比較成熟。
面向對象的資料庫管理系統雖然技術先進,資料庫易於開發、維護,但尚未有成熟的產品。國際國內的主導關系型資料庫管理系統有ORACLE、SYBASE、INFORMIX和INGRES。這些產品都支持多平台,如UNIX、VMS、WINDOWS,但支持的程度不一樣。在下面的分析中會比較他們的平台支持能力。IBM
的DB2也是成熟的關系型資料庫。
但是,DB2是內嵌於IBM的
AS/400系列機中,只支持OS/400操作系統。
⑽ 請教關系資料庫和面向對象資料庫的區別
我在找那個傳統資料庫與面向對象數據的區別,從四點著手區別,都提問好多天了,還是沒有人來回答我的問題,哎,看來,你也得等好久了……
呵呵……