當前位置:首頁 » 操作系統 » 優良資料庫

優良資料庫

發布時間: 2022-05-10 09:29:05

⑴ 優秀資料庫的設計目標需要滿足第幾範式

資料庫範式1NF 2NF 3NF BCNF(實例)

設計範式(範式,資料庫設計範式,資料庫的設計範式)是符合某一種級別的關系模式的集合。構造資料庫必須遵循一定的規則。在關系資料庫中,這種規則就是範式。關系資料庫中的關系必須滿足一定的要求,即滿足不同的範式。目前關系資料庫有六種範式:第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、第四範式(4NF)、第五範式(5NF)和第六範式(6NF)。滿足最低要求的範式是第一範式(1NF)。在第一範式的基礎上進一步滿足更多要求的稱為第二範式(2NF),其餘範式以次類推。一般說來,資料庫只需滿足第三範式(3NF)就行了。下面我們舉例介紹第一範式(1NF)、第二範式(2NF)和第三範式(3NF)。
在創建一個資料庫的過程中,范化是將其轉化為一些表的過程,這種方法可以使從資料庫得到的結果更加明確。這樣可能使資料庫產生重復數據,從而導致創建多餘的表。范化是在識別資料庫中的數據元素、關系,以及定義所需的表和各表中的項目這些初始工作之後的一個細化的過程。
下面是范化的一個例子 Customer Item purchased Purchase price Thomas Shirt $40 Maria Tennis shoes $35 Evelyn Shirt $40 Pajaro Trousers $25
如果上面這個表用於保存物品的價格,而你想要刪除其中的一個顧客,這時你就必須同時刪除一個價格。范化就是要解決這個問題,你可以將這個表化為兩個表,一個用於存儲每個顧客和他所買物品的信息,另一個用於存儲每件產品和其價格的信息,這樣對其中一個表做添加或刪除操作就不會影響另一個表。

關系資料庫的幾種設計範式介紹

1 第一範式(1NF)

在任何一個關系資料庫中,第一範式(1NF)是對關系模式的基本要求,不滿足第一範式(1NF)的資料庫就不是關系資料庫。
所謂第一範式(1NF)是指資料庫表的每一列都是不可分割的基本數據項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重復的屬性。如果出現重復的屬性,就可能需要定義一個新的實體,新的實體由重復的屬性構成,新實體與原實體之間為一對多關系。在第一範式(1NF)中表的每一行只包含一個實例的信息。例如,對於圖3-2 中的員工信息表,不能將員工信息都放在一列中顯示,也不能將其中的兩列或多列在一列中顯示;員工信息表的每一行只表示一個員工的信息,一個員工的信息在表中只出現一次。簡而言之,第一範式就是無重復的列。

2 第二範式(2NF)

第二範式(2NF)是在第一範式(1NF)的基礎上建立起來的,即滿足第二範式(2NF)必須先滿足第一範式(1NF)。第二範式(2NF)要求資料庫表中的每個實例或行必須可以被惟一地區分。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。如圖3-2 員工信息表中加上了員工編號(emp_id)列,因為每個員工的員工編號是惟一的,因此每個員工可以被惟一區分。這個惟一屬性列被稱為主關鍵字或主鍵、主碼。
第二範式(2NF)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成一個新的實體,新實體與原實體之間是一對多的關系。為實現區分通常需要為表加上一個列,以存儲各個實例的惟一標識。簡而言之,第二範式就是非主屬性非部分依賴於主關鍵字。

3 第三範式(3NF)

滿足第三範式(3NF)必須先滿足第二範式(2NF)。簡而言之,第三範式(3NF)要求一個資料庫表中不包含已在其它表中已包含的非主關鍵字信息。例如,存在一個部門信息表,其中每個部門有部門編號(dept_id)、部門名稱、部門簡介等信息。那麼在圖3-2的員工信息表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的信息再加入員工信息表中。如果不存在部門信息表,則根據第三範式(3NF)也應該構建它,否則就會有大量的數據冗餘。簡而言之,第三範式就是屬性不依賴於其它非主屬性。

資料庫設計三大範式應用實例剖析

資料庫的設計範式是資料庫設計所需要滿足的規范,滿足這些規范的資料庫是簡潔的、結構明晰的,同時,不會發生插入(insert)、刪除(delete)和更新(update)操作異常。反之則是亂七八糟,不僅給資料庫的編程人員製造麻煩,而且面目可憎,可能存儲了大量不需要的冗餘信息。
設計範式是不是很難懂呢?非也,大學教材上給我們一堆數學公式我們當然看不懂,也記不住。所以我們很多人就根本不按照範式來設計資料庫。
實質上,設計範式用很形象、很簡潔的話語就能說清楚,道明白。本文將對範式進行通俗地說明,並以筆者曾經設計的一個簡單論壇的資料庫為例來講解怎樣將這些範式應用於實際工程。

範式說明

第一範式(1NF):資料庫表中的欄位都是單一屬性的,不可再分。這個單一屬性由基本類型構成,包括整型、實數、字元型、邏輯型、日期型等。

例如,如下的資料庫表是符合第一範式的:

欄位1 欄位2 欄位3 欄位4

而這樣的資料庫表是不符合第一範式的:

欄位1 欄位2 欄位3 欄位4
欄位3.1 欄位3.2

很顯然,在當前的任何關系資料庫管理系統(DBMS)中,傻瓜也不可能做出不符合第一範式的資料庫,因為這些DBMS不允許你把資料庫表的一列再分成二列或多列。因此,你想在現有的DBMS中設計出不符合第一範式的資料庫都是不可能的。

第二範式(2NF):資料庫表中不存在非關鍵欄位對任一候選關鍵欄位的部分函數依賴(部分函數依賴指的是存在組合關鍵字中的某些欄位決定非關鍵欄位的情況),也即所有非關鍵欄位都完全依賴於任意一組候選關鍵字。

假定選課關系表為SelectCourse(學號, 姓名, 年齡, 課程名稱, 成績, 學分),關鍵字為組合關鍵字(學號, 課程名稱),因為存在如下決定關系:
(學號, 課程名稱) → (姓名, 年齡, 成績, 學分)

這個資料庫表不滿足第二範式,因為存在如下決定關系:
(課程名稱) → (學分)
(學號) → (姓名, 年齡)
即存在組合關鍵字中的欄位決定非關鍵字的情況。

由於不符合2NF,這個選課關系表會存在如下問題:
(1) 數據冗餘:
同一門課程由n個學生選修,"學分"就重復n-1次;同一個學生選修了m門課程,姓名和年齡就重復了m-1次。
(2) 更新異常:
若調整了某門課程的學分,數據表中所有行的"學分"值都要更新,否則會出現同一門課程學分不同的情況。
(3) 插入異常:
假設要開設一門新的課程,暫時還沒有人選修。這樣,由於還沒有"學號"關鍵字,課程名稱和學分也無法記錄入資料庫。
(4) 刪除異常:
假設一批學生已經完成課程的選修,這些選修記錄就應該從資料庫表中刪除。但是,與此同時,課程名稱和學分信息也被刪除了。很顯然,這也會導致插入異常。

把選課關系表SelectCourse改為如下三個表:
學生:Student(學號, 姓名, 年齡);
課程:Course(課程名稱, 學分);
選課關系:SelectCourse(學號, 課程名稱, 成績)。

這樣的資料庫表是符合第二範式的, 消除了數據冗餘、更新異常、插入異常和刪除異常。
另外,所有單關鍵字的資料庫表都符合第二範式,因為不可能存在組合關鍵字。

第三範式(3NF):在第二範式的基礎上,數據表中如果不存在非關鍵欄位對任一候選關鍵欄位的傳遞函數依賴則符合第三範式。所謂傳遞函數依賴,指的是如果存在"A → B → C"的決定關系,則C傳遞函數依賴於A。因此,滿足第三範式的資料庫表應該不存在如下依賴關系:
關鍵欄位 → 非關鍵欄位x → 非關鍵欄位y

假定學生關系表為Student(學號, 姓名, 年齡, 所在學院, 學院地點, 學院電話),關鍵字為單一關鍵字"學號",因為存在如下決定關系:
(學號) → (姓名, 年齡, 所在學院, 學院地點, 學院電話)

這個資料庫是符合2NF的,但是不符合3NF,因為存在如下決定關系:
(學號) → (所在學院) → (學院地點, 學院電話)
即存在非關鍵欄位"學院地點"、"學院電話"對關鍵欄位"學號"的傳遞函數依賴。

它也會存在數據冗餘、更新異常、插入異常和刪除異常的情況,讀者可自行分析得知。
把學生關系表分為如下兩個表:
學生:(學號, 姓名, 年齡, 所在學院);
學院:(學院, 地點, 電話)。

這樣的資料庫表是符合第三範式的,消除了數據冗餘、更新異常、插入異常和刪除異常。
鮑依斯-科得範式(BCNF):在第三範式的基礎上,資料庫表中如果不存在任何欄位對任一候選關鍵欄位的傳遞函數依賴則符合第三範式。

假設倉庫管理關系表為StorehouseManage(倉庫ID, 存儲物品ID, 管理員ID, 數量),且有一個管理員只在一個倉庫工作;一個倉庫可以存儲多種物品。這個資料庫表中存在如下決定關系:
(倉庫ID, 存儲物品ID) →(管理員ID, 數量)
(管理員ID, 存儲物品ID) → (倉庫ID, 數量)
所以,(倉庫ID, 存儲物品ID)和(管理員ID, 存儲物品ID)都是StorehouseManage的候選關鍵字,表中的唯一非關鍵欄位為數量,它是符合第三範式的。但是,由於存在如下決定關系:
(倉庫ID) → (管理員ID)
(管理員ID) → (倉庫ID)
即存在關鍵欄位決定關鍵欄位的情況,所以其不符合BCNF範式。它會出現如下異常情況:
(1) 刪除異常:
當倉庫被清空後,所有"存儲物品ID"和"數量"信息被刪除的同時,"倉庫ID"和"管理員ID"信息也被刪除了。
(2) 插入異常:
當倉庫沒有存儲任何物品時,無法給倉庫分配管理員。
(3) 更新異常:
如果倉庫換了管理員,則表中所有行的管理員ID都要修改。

把倉庫管理關系表分解為二個關系表:
倉庫管理:StorehouseManage(倉庫ID, 管理員ID);
倉庫:Storehouse(倉庫ID, 存儲物品ID, 數量)。
這樣的資料庫表是符合BCNF範式的,消除了刪除異常、插入異常和更新異常。

範式應用

我們來逐步搞定一個論壇的資料庫,有如下信息:
(1) 用戶:用戶名,email,主頁,電話,聯系地址
(2) 帖子:發帖標題,發帖內容,回復標題,回復內容

第一次我們將資料庫設計為僅僅存在表:
用戶名 email 主頁 電話 聯系地址 發帖標題 發帖內容 回復標題 回復內容
這個資料庫表符合第一範式,但是沒有任何一組候選關鍵字能決定資料庫表的整行,唯一的關鍵欄位用戶名也不能完全決定整個元組。我們需要增加"發帖ID"、"回復ID"欄位,即將表修改為:
用戶名 email 主頁 電話 聯系地址 發帖ID 發帖標題 發帖內容 回復ID 回復標題 回復內容
這樣數據表中的關鍵字(用戶名,發帖ID,回復ID)能決定整行:
(用戶名,發帖ID,回復ID) → (email,主頁,電話,聯系地址,發帖標題,發帖內容,回復標題,回復內容)
但是,這樣的設計不符合第二範式,因為存在如下決定關系:
(用戶名) → (email,主頁,電話,聯系地址)
(發帖ID) → (發帖標題,發帖內容)
(回復ID) → (回復標題,回復內容)
即非關鍵欄位部分函數依賴於候選關鍵欄位,很明顯,這個設計會導致大量的數據冗餘和操作異常。

我們將資料庫表分解為(帶下劃線的為關鍵字):
(1) 用戶信息:用戶名,email,主頁,電話,聯系地址
(2) 帖子信息:發帖ID,標題,內容
(3) 回復信息:回復ID,標題,內容
(4) 發貼:用戶名,發帖ID
(5) 回復:發帖ID,回復ID

這樣的設計是滿足第1、2、3範式和BCNF範式要求的,但是這樣的設計是不是最好的呢?
不一定。

觀察可知,第4項"發帖"中的"用戶名"和"發帖ID"之間是1:N的關系,因此我們可以把"發帖"合並到第2項的"帖子信息"中;第5項"回復"中的"發帖ID"和"回復ID"之間也是1:N的關系,因此我們可以把"回復"合並到第3項的"回復信息"中。這樣可以一定量地減少數據冗餘,新的設計為:
(1) 用戶信息:用戶名,email,主頁,電話,聯系地址
(2) 帖子信息:用戶名,發帖ID,標題,內容
(3) 回復信息:發帖ID,回復ID,標題,內容

資料庫表1顯然滿足所有範式的要求;

資料庫表2中存在非關鍵字「標題」、「內容」對關鍵欄位「發帖ID」的部分函數依賴,即不滿足第二範式的要求,但是這一設計並不會導致數據冗餘和操作異常;

資料庫表3中也存在非關鍵欄位"標題"、"內容"對關鍵欄位"回復ID"的部分函數依賴,也不滿足第二範式的要求,但是與資料庫表2相似,這一設計也不會導致數據冗餘和操作異常。

由此可以看出,並不一定要強行滿足範式的要求,對於1:N關系,當1的一邊合並到N的那邊後,N的那邊就不再滿足第二範式了,但是這種設計反而比較好!

對於M:N的關系,不能將M一邊或N一邊合並到另一邊去,這樣會導致不符合範式要求,同時導致操作異常和數據冗餘。

對於1:1的關系,我們可以將左邊的1或者右邊的1合並到另一邊去,設計導致不符合範式要求,但是並不會導致操作異常和數據冗餘。

結論

滿足範式要求的資料庫設計是結構清晰的,同時可避免數據冗餘和操作異常。這並意味著不符合範式要求的設計一定是錯誤的,在資料庫表中存在1:1或1:N關系這種較特殊的情況下,合並導致的不符合範式要求反而是合理的。

在我們設計資料庫的時候,一定要時刻考慮範式的要求。

⑵ 什麼是常用的三個資料庫

目前,資料庫管理系統關系型資料庫為主導產品的商品化,技術相對成熟。雖然面向對象的資料庫管理系統的先進技術,資料庫易於開發,維護,但尚未成熟的產品。國際和國內領先的關系資料庫管理系統,甲骨文,Sybase,Informix和INGRES。這些產品支持多種平台,如UNIX,VMS,Windows上,而不是同一級別的支持。和成熟的IBM的DB2關系資料庫。但是,DB2是內嵌於IBM的AS/400系列機,只支持OS/400操作系統。

?1.Mysql

?MySQL是最受歡迎的開源SQL資料庫管理系統,由MySQL AB公司,發布和支持。 MySQL AB是基於MySQL開發一個商業公司,它是利用與開源值相結合的一個成功的商業模式?和方法論的第二代開源公司。 MySQL是MySQL AB的注冊商標。

?MySQL是一個快速,多線程,多用戶和健壯的SQL資料庫伺服器。 MySQL伺服器支持關鍵任務,重負載生產系統的使用,它可以嵌入到一個大配置(大規模部署)軟體。

?的MySQL與其他資料庫管理系統相比,具有以下優點:
?(1)MySQL是一個關系資料庫管理系統。
?(2)MySQL是開源。
?(3)MySQL伺服器是一個快速,可靠和易於使用的資料庫伺服器。
?(4)在MySQL伺服器的客戶機/伺服器或嵌入式系統。
?(5)可以使用MySQL軟體。

2.SQL Server的嗎?

?SQL Server是由微軟開發的資料庫管理系統,是目前最流行的資料庫,用於存儲在網路上的數據,它已被廣泛用於電子商務,銀行,保險,電力和其他資料庫相關的產業。

?SQL Server 2005的最新版本,它只能在Windows作業系統的穩定運行是非常重要的資料庫。並行實施和共存模型並不成熟,這是很難對付越來越多的用戶和數據量是有限的,可擴展性。

?SQL Server提供了網路和電子商務功能,如豐富的XML和Internet標準的支持,輕松且安全地通過Web訪問的數據的范圍很廣,有一個強大,靈活和網路,基於安全和應用管理。此外,由於它的易用性和友好的用戶界面,通過廣大用戶的好評,。

?3.Oracle

?提出的資料庫,該公司首先想到的,通常是甲骨文(Oracle)。該公司成立於1977年,原是一個專門開發的資料庫公司。甲骨文一直在資料庫領域的領導者。 1984年,第一個關系資料庫轉移到一台台式電腦。然後,Oracle5率先推出的分布式資料庫,客戶機/伺服器體系結構的新概念。甲骨文公司的第一行鎖定模式和對稱多處理計算機的支持......最新的Oracle對象技術,成為關系 - 對象資料庫系統。目前,甲骨文的產品涵蓋了幾十個型號的大,中,小型機,Oracle資料庫已成為世界上使用最廣泛的關系數據。

Oracle資料庫產品具有以下優良特性。

?(一)兼容性

?Oracle產品使用標準的SQL,和美國國家標准技術局(NIST)測試後。兼容IBM的SQL / DS,DB2中,安格爾的IDMS / R。

?(2)可移植性

??甲骨文的產品,可以廣泛的硬體和操作系統平台上運行。可以安裝在超過70種大不同,VMS系統的DOS,UNIX上,Windows和其他操作系統,小型機;

?(3)協會

甲骨文與各種通信網路連接,支持各種協議(TCP / IP協議說,DECnet,LU6.2工作等)。?

?(4)高生產率

?Oracle提供了多種開發工具,可以極大地方便進一步的發展。

?(5)開放

?Oracle的兼容性,可移植性,連接性和高生產力的Oracle RDBMS具有良好的開放性。

?4.Sybase

?馬克B. Hiffman和羅伯特·愛潑斯坦,1984年,創建了Sybase公司,並於1987年推出了Sybase資料庫產品。 SYBASE主要有三種版本:一是UNIX操作系統版本下運行的Novell Netware環境下運行的版本; Windows NT環境下運行的版本。 UNIX操作系統,目前應用最廣泛使用的SCO UNIX SYBASE 10 SYABSE- 11。

??的Sybase資料庫的特點:
?(1)它是基於客戶機/伺服器體系結構的資料庫。
?(2)它是真正開放的資料庫。
?(3)它是一種高性能的資料庫。

?5.DB2

?DB2是內嵌在IBM的AS/400系統的資料庫管理系統,直接從硬體支持。它支持標準的SQL語言,異構資料庫連接的網關。因此,它具有速度快,可靠性好等優點。但是,只有硬體平台選擇了IBM的AS/400,可以選擇使用DB2資料庫管理系統。

?DB2可以運行在所有主要平台(包括Windows),最適於海量數據。

?DB2是使用最廣泛的企業級,而國內約5%,在1997年,在世界最大的500家企業,近85%的DB2資料庫伺服器。

?此外,微軟的Access資料庫,FoxPro資料庫。現在有這么多的資料庫系統,在游戲中進行編程,應該選擇什麼樣的資料庫?首要的原則,根據實際需要,另一方面,考慮游戲開發預算。現在常用的資料庫:SQL Server中,我的SQL,甲骨文,FoxPro的。 MySQL是一個免費的資料庫系統,其功能與一個標準的資料庫功能,因此,建議使用獨立製片人。甲骨文雖然功能強大,但它是用於商業用途,是目前在比賽中很少使用。

⑶ 該選擇哪個開源資料庫哪一個更好

1.MySQL 5
作為當今最流行的開放源碼資料庫之一,MySQL資料庫為用戶提供了一個相對簡單的 解決方案,適用於廣泛的應用程序部署,能夠降低用戶的TCO。MySQL是一個多線程、結構化查詢語言(SQL)資料庫伺服器。MySQL的執行性能高, 運行速度快,容易使用。
MySQL包括以下幾個關鍵優勢:
◆ 可靠的性能和服務MySQL向公眾提供所有資料庫伺服器軟體的早期版本,都是利用開放源碼進行為期幾個月的測試之後才發布作為生產之用。
◆ 易於使用和部署MySQL的結構體系易於定製,運行速度快,其獨特的多存儲引擎結構為企業客戶提供了靈活性, 為資料庫管理系統帶來緊致性和穩定性,易於部署。
◆ 自由獲得源碼可以隨時訪問MySQL源代碼,其策略確保了自由性,避免鎖定某家公司或平台。
◆ 跨平台支持MySQL可用於20多種不同平台,包括主要的linux系統、Mac OS X、Unix和Windows
◆ 可信賴的開發力量MySQL擁有大量的用戶基礎,也擁有高素質、有經驗的開發團隊。
◆ 滿足企業需求MySQL結構體系簡單易用,運行速度極快,能夠處理企業資料庫絕大多數的應用需求。
2008年12月8日,Sun Microsystems公司宣布,正式對外提供MySQL 5.1軟體 —— 這是全球最受歡迎的開源資料庫MySQL的一個極其重要的新版本。MySQL 5.1 GA版現通過以下三種模式提供,以滿足不同用戶的各種特殊需求:
◆MySQL Community Server —— Sun的MySQL 資料庫的免費開源版。這一GPL許可的全功能軟體的目標用戶是個人技術用戶,他不需要商業支持或是享有優惠的機上服務。
◆MySQL Enterprise Server —— 它作為MySQL Enterprise訂購的一部分來提供,它最可靠、最安全,提供的是MySQL資料庫的最新版本,其目標用戶是有法人的IT用戶。該模式的訂戶每月可收 到快速軟體升級服務,每個季度可收到帶有最新補丁程序的「服務包」 —— 還能訪問僅供預覽的監測工具,享受全天候7*24的生產技術支持。
◆MySQL Embedded Server —— 這是MySQL軟體的商業許可模式,讓ISV和OEM將一個高速的、佔用空間很小的資料庫嵌入或打包到他們自己的產品中,而不需要免費的GPL許可。
2. PostgreSQL
PostgreSQL是一個功能齊全、開放源碼的對象一關系性資料庫管理系統 (ORDBMS)。目前,PostgreSQL的穩定版本為8.4版,具有豐富的特性和商業級資料庫管理系統的特質。這是一次向高質量大型資料庫管理系統 方向的飛躍。PostgreSQL是很富特色的開源資料庫管理系統,其特性覆蓋SQL-2/SQL-92和SQL-3/SQL-99。
◆ 豐富的數據類型PostgreSQL包括了豐富的數據類型支持,其中有些數據類型連商業資料庫都不具備,比如IP類型和幾何類型等。
◆ 功能全面PostgreSQL是全功能的開源軟體資料庫,全面支持事務、子查詢、多版本並行控制系統和數據完整性檢查等特性。
◆ 活躍的開發隊伍PostgreSQL擁有一支活躍的開發隊伍,在他們的努力下,PostgreSQL的質量日益提高,增強了人們使用PostgreSQL 的信心。
◆ 豐富的介面PostgreSQL支持幾乎所有類型的資料庫客戶端介面。
◆ 支持多種平台PostgreSQL是目前支持平台最多的資料庫管理系統之一,所支持的平台多達十幾種,包括不同的系統和不同的硬體體系。
◆ 滿足商用需求PostgreSQL的特性已經完全可以滿足絕大部分用戶的需要,勝任任何中上規模的應用業務,甚至可以支持生產資料庫達TB級大小的數據 量,已經逼近32位計算的極限。
◆ 強大的擴展能力PostgreSQL擁有強大的擴展能力,可以容易地擴展數據類型、內部函數和操作符等。
從技術角度來說,POStgreSQL採用經典的C/S(Client /Server)結構,即一個客戶端對應一個伺服器端守護進程的模式。這個守護進程分析客戶端來的查詢請求,生成規劃樹,進行數據檢索,並最終把結果格式 化輸出後返回給客戶端。為了便於客戶端的程序編寫,由資料庫伺服器提供統一的客戶端C介面。不同的客戶端介面都源自這個C介面, 比如ODBC、JDBC、Python、Perl、Tcl、C/C++和ESQL等。
PostgreSQL還欠缺的是一些高端資料庫管理系統所需的特性,比如聯機熱備 份、資料庫集群、更優良的管理工具、更加自動化的系統優化功能和用以提高資料庫性能的機制等。這些也是PostgreSQL正在不斷努力的。

3.Ingres r3
CA 公司在2004年11月發布適用於linux的Ingres r3資料庫軟體。Ingres r3按照C A Trusted Open Source License(CATOSL,CA可信開放源代碼許可)授杖,取得此授權的人可以查看Ingres r3資料庫的源代碼,並免費下載該軟體。CATosL由通用公共許可衍生而來, 符合Open Source Iniliative (OSI) 的要求。
Ingres r3資料庫平台的新功能如下:
◆ 高可用性
Ingres r3包含集群軟體,當集群配置中的一個資料庫或伺服器節點出現故障時,仍能保證服務的不問斷性。在預防系統故障的同時,Ingres r3還提供「縮放自如」的功能,讓用戶把眾多低成本的伺服器連結起來. 以強化信息處理的性能。
◆ 可擴展性和可靠性
Ingres通過並行查詢處理將單個查詢細分為多個組件,利用所有現有資源並行處理 這些組件,從而提供可伸縮性能。同時,Ingres支持Oracle Cluster File System(OCFS)for Linux 和IBM Distributed Lock Manager(OpenDLM ),為用戶提供全新的群集功能,獲得所需的可擴展性和可靠性。
◆ 技術與性能
Ingres是第一個以Zope RDBMS Persistence引擎為基礎的初始資料庫(Initial Database),其表分區和索引功能滿足超大型資料庫部署的需求。
◆ 集成性
Ingres可以在異構環境中與其它應用程序和數據進行無縫集成。隨著Linux在 企業IT環境中的漸趨流行,這一集成功能尤為重要。其易於集成的特點使它能夠與多種應用開發工具一起使用。此外,Ingres使用行業標準的連接選件,支 持開發人員在J2EE框架、.NET環境,或者同時在兩個環境下工作,特別適用於嵌入式應用。
◆ 服務
CA 公司將為Ingres r3提供支持和保障服務, 同時CA技術服務中心還提供多種可定製的培訓課程和服務,包括現場培訓或遠程培訓,這些培訓和服務可以幫助客戶更加有效地利用Ingres r3的特性。
4.MaxDB
MaxDB 前身是企業級的開源資料庫SAP DB,現由MySQL繼續組織開發。MaxDB是一個適應繁重任務、經過SAP認證的開源OLTP資料庫,OLTP的使用為其提供了可靠性、可用性、擴展 性和高性能。MaxDB擁有大型資料庫的全面特點,與Oracle具有一定的兼容性,體積不大,可以在Linux上運行, 即將推出的MaxDB 7.6版本將支持64位計算技術,可以運行於64位的Linux平台和HP-UX。
MaxDB和MySQL這兩個產品的外型相似。MySQL的優勢主要集中於產品的運 行性能和穩定性,用戶通過一個簡單界面就可以容易地執行操作和管理。MaxDB提供的先進性能則主要體現在企業級資料庫的運用上。和MySQL相 比,MaxDB體型稍大,但與Oracle、DB2相比,幾十兆的體積就能實現相近的功能,是相當錯的。目前,MaxDB的各種管理器、查詢器和客戶端還 在不斷地完善中。
為吸引Java開發者,MaxDB 7.6將支持由IBM創建的、基於Java的Eclipse開發框架。它還支持MySQL代理程序,允許MaxDB和MySQL產品共享數據,並允許開發 者創建能透明使用這兩種資料庫的應用。MaxDB還具備有監視性能,和能夠自動提出保持平滑運行建議的工具。
MaxDB適用於大型mySAP Business Suite環境,其它需要大型企業級資料庫功能的場合, 以及用來補充MySQL資料庫伺服器的不足。高性能、可用性、運行的可靠性、可擴展性、易於使用,以及較低的總體成本正是企業部署DBMS環境所需要的若 干特性。MaxDB滿足了企業用戶的這些需求,其具體特性包括如下:
◆ 降低企業SAP運行的費用成本;
◆ 配置簡單,管理維護成本低廉;
◆ 完善的備份和恢復功能;
◆ 為大容量的用戶和工作量而設計;
◆ 資料庫容量可達TB級;
◆ 提供集群和熱備份支持,帶來高可用性;
◆ 同步管理器(Synchronization Manager)可以控制企業范圍內的數據復制;
◆ 輕松使用圖形化的資料庫工具;
◆ 可用於所有的企業硬體和操作系統平台;
目前,全世界大約有60000名用戶部署和應用MaxDB資料庫,其中包 NToyota、Intel、DaimlerChrysler、Braun-Gillette、Bayer、Colgate、Yamaha和 Deutsche Post (德國郵政局)等。作為一個目標指向企業級應用的開源資料庫,MaxDB正在不斷地發展和完善中。
◆ 支持所有主要的SAP解決方案。
你可以去范果網裡面看看,還有很多都是不錯的,選擇最適合的。

⑷ 請問資料庫有哪些種類呢

資料庫共有3種類型,為關系資料庫、非關系型資料庫和鍵值資料庫。

1、關系資料庫

MySQL、MariaDB(MySQL的代替品,英文維基網路從MySQL轉向MariaDB)、Percona Server(MySQL的代替品·)、PostgreSQL、Microsoft Access、Microsoft SQL Server、Google Fusion Tables、FileMaker、Oracle資料庫、Sybase、dBASE、Clipper、FoxPro、foshub。

幾乎所有的資料庫管理系統都配備了一個開放式資料庫連接(ODBC)驅動程序,令各個資料庫之間得以互相集成。

2、非關系型資料庫(NoSQL)

BigTable(Google)、Cassandra、MongoDB、CouchDB。

3、鍵值(key-value)資料庫

Apache Cassandra(為Facebook所使用):高度可擴展、Dynamo、LevelDB(Google)。

(4)優良資料庫擴展閱讀:

資料庫模型:對象模型、層次模型(輕量級數據訪問協議)、網狀模型(大型數據儲存)、關系模型、面向對象模型、半結構化模型、平面模型(表格模型,一般在形式上是一個二維數組。如表格模型數據Excel)。

資料庫的架構可以大致區分為三個概括層次:內層、概念層和外層。

⑸ 常用的資料庫軟體有哪些它們的優缺點是什麼

目前,商品化的資料庫管理系統以關系型資料庫為主導產品,技術比較成熟。面向對象的資料庫管理系統雖然技術先進,資料庫易於開發、維護,但尚未有成熟的產品。國際國內的主導關系型資料庫管理系統有Oracle、Sybase、INFORMIX和INGRES。這些產品都支持多平台,如 UNIX、VMS、Windows,但支持的程度不一樣。IBM的DB2也是成熟的關系型資料庫。但是,DB2是內嵌於IBM的AS/400系列機中,只支持OS/400操作系統。

1.MySQL

MySQL是最受歡迎的開源SQL資料庫管理系統,它由 MySQL AB開發、發布和支持。MySQL AB是一家基於MySQL開發人員的商業公司,它是一家使用了一種成功的商業模式來結合開源價值和方法論的第二代開源公司。MySQL是MySQL AB的注冊商標。

MySQL是一個快速的、多線程、多用戶和健壯的SQL資料庫伺服器。MySQL伺服器支持關鍵任務、重負載生產系統的使用,也可以將它嵌入到一個大配置(mass- deployed)的軟體中去。

與其他資料庫管理系統相比,MySQL具有以下優勢:

(1)MySQL是一個關系資料庫管理系統。

(2)MySQL是開源的。

(3)MySQL伺服器是一個快速的、可靠的和易於使用的資料庫伺服器。

(4)MySQL伺服器工作在客戶/伺服器或嵌入系統中。

(5)有大量的MySQL軟體可以使用。

2.SQL Server

SQL Server是由微軟開發的資料庫管理系統,是Web上最流行的用於存儲數據的資料庫,它已廣泛用於電子商務、銀行、保險、電力等與資料庫有關的行業。

目前最新版本是SQL Server 2005,它只能在Windows上運行,操作系統的系統穩定性對資料庫十分重要。並行實施和共存模型並不成熟,很難處理日益增多的用戶數和數據卷,伸縮性有限。

SQL Server 提供了眾多的Web和電子商務功能,如對XML和Internet標準的豐富支持,通過Web對數據進行輕松安全的訪問,具有強大的、靈活的、基於Web的和安全的應用程序管理等。而且,由於其易操作性及其友好的操作界面,深受廣大用戶的喜愛。

3.Oracle

提起資料庫,第一個想到的公司,一般都會是Oracle(甲骨文)。該公司成立於1977年,最初是一家專門開發資料庫的公司。Oracle在資料庫領域一直處於領先地位。 1984年,首先將關系資料庫轉到了桌面計算機上。然後,Oracle5率先推出了分布式資料庫、客戶/伺服器結構等嶄新的概念。Oracle 6首創行鎖定模式以及對稱多處理計算機的支持……最新的Oracle 8主要增加了對象技術,成為關系—對象資料庫系統。目前,Oracle產品覆蓋了大、中、小型機等幾十種機型,Oracle資料庫成為世界上使用最廣泛的關系數據系統之一。

Oracle資料庫產品具有以下優良特性。

(1)兼容性

Oracle產品採用標准SQL,並經過美國國家標准技術所(NIST)測試。與IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。

(2)可移植性

Oracle的產品可運行於很寬范圍的硬體與操作系統平台上。可以安裝在70種以上不同的大、中、小型機上;可在VMS、DOS、UNIX、Windows等多種操作系統下工作。

(3)可聯結性

Oracle能與多種通訊網路相連,支持各種協議(TCP/IP、DECnet、LU6.2等)。

(4)高生產率

Oracle產品提供了多種開發工具,能極大地方便用戶進行進一步的開發。

(5)開放性

Oracle良好的兼容性、可移植性、可連接性和高生產率使Oracle RDBMS具有良好的開放性。

4.Sybase

1984年,Mark B. Hiffman和Robert Epstern創建了Sybase公司,並在1987年推出了Sybase資料庫產品。Sybase主要有三種版本:一是UNIX操作系統下運行的版本; 二是Novell Netware環境下運行的版本;三是Windows NT環境下運行的版本。對UNIX操作系統,目前應用最廣泛的是SYBASE 10及SYABSE 11 for SCO UNIX。

Sybase資料庫的特點:

(1)它是基於客戶/伺服器體系結構的資料庫。

(2)它是真正開放的資料庫。

(3)它是一種高性能的資料庫。

5.DB2

DB2是內嵌於IBM的AS/400系統上的資料庫管理系統,直接由硬體支持。它支持標準的SQL語言,具有與異種資料庫相連的GATEWAY。因此它具有速度快、可靠性好的優點。但是,只有硬體平台選擇了IBM的AS/400,才能選擇使用DB2資料庫管理系統。

DB2能在所有主流平台上運行(包括Windows),最適於海量數據。

DB2在企業級的應用最為廣泛,在全球的500家最大的企業中,幾乎85%以上都用DB2資料庫伺服器,而國內到1997年約佔5%。

除此之外,還有微軟的 Access資料庫、FoxPro資料庫等。既然現在有這么多的資料庫系統,那麼在游戲編程時應該選擇什麼樣的資料庫呢?首要的原則就是根據實際需要,另一方面還要考慮游戲開發預算。現在常用的資料庫有:SQL Server、My SQL、Oracle、FoxPro。其中MySQL是一個完全免費的資料庫系統,其功能也具備了標准資料庫的功能,因此,在獨立製作時,建議使用。 Oracle雖然功能強勁,但它畢竟是為商業用途而存在的,目前很少在游戲中使用到。

⑹ 常用的關系型資料庫有哪些

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(這里偷笑一下)。

在實際的項目中大家的項目都是如何選擇的呢?大家可以關注我,私信或者在評論區留言。

⑺ 國內幾家優秀的資料庫公司都是哪幾家啊

不知道樓主要做什麼形式的合作,我知道幾家還不錯。比如:羅維,拓鵬,新華信,Acxiom等一些資料庫營銷公司,他們都算是國內非常優秀的公司。不過他們都是有自己本身的營銷優勢產品的。就看樓主做什麼了。

做呼叫中業務,那可以選擇一下羅維,他們的優勢就是呼叫中心,因為它是做呼叫中心出身的。

做EDM、SMS可以選擇拓鵬公司,因為他們的優勢就是EDM、SMS,已經有了多年服務國內外大客戶的經驗,在業界也具有了很好的口碑。

做市場調研可以選擇新華信,因為他們是這個方面的專家,且具有權威性。

策略咨詢業務可以選擇Acxiom,他們只做策略,因為他們沒有數據。
不知道這樣回答樓主是否滿意,希望可以幫到樓主。

⑻ 簡述3個常用的關系型資料庫

1.Oracle

Oracle是1983年推出的世界上第一個開放式商品化關系型資料庫管理系統。它採用標準的SQL結構化查詢語言,支持多種數據類型,提供面向對象存儲的數據支持,具有第四代語言開發工具,支持Unix、Windows NT、0S/2、Novell等多種平台。除此之外,它還具有很好的並行處理功能。Oracle產品主要由Oracle伺服器產品、Oracle開發工具、Oracle應用軟體組成,也有基於微機的資料庫產品。主要滿足對銀行、金融、保險等企業、事業開發大型資料庫的需求。

2.SQL Server

SQL即結構化查詢語言(Structured Query Language,簡稱為SQL)。SQL Server最早出現在1988年,當時只能在0S/2操作系統上運行。2000年12月微軟發布了SQL Server 2000,該軟體可以運行於Windows NT/2000/XP等多種操作系統之上,是支持客戶機/伺服器結構的資料庫管理系統,它可以幫助各種規模的企業管理數據。

隨著用戶群的不斷增大,SQL Server在易用性、可靠性、可收縮性、支持數據倉庫、系統集成等方面日趨完美。特別是SQLServer的資料庫搜索引擎,可以在絕大多數的操作系統之上運行,並針對海量數據的查詢進行了優化。目前SQLServer己經成為應用最廣泛的資料庫產品之一。

由於使用SQL Server不但要掌握SQL Server的操作,而且還要能熟練掌握Windows NT/2000 Server的運行機制,以及SQL語言,所以對非專業人員的學習和使用有一定的難度。

3.Sybase

1987年推出的大型關系型資料庫管理系統Sybase,能運行於0S/2、Unix、Windows NT等多種平台,它支持標準的關系型資料庫語言SQL,使用客戶機/伺服器模式,採用開放體系結構,能實現網路環境下各節點上伺服器的資料庫互訪操作。技術先進、性能優良,是開發大中型資料庫的工具。Sybase產品主要由伺服器產品Sybase SQL Server、客戶產品Sybase SQL Too1Set和介面軟體Sybase Client/Server Interface組成,還有著名的資料庫應用開發工具PowerBuilder。

4.DB2

DB2是基於SQL的關系型資料庫產品。20世紀80年代初期DB2的重點放在大型的主機平台上。到90年代初,DB2發展到中型機、小型機以及微機平台。DB2適用於各種硬體與軟體平台。各種平台上的DB2有共同的應用程序介面,運行在一種平台上的程序可以很容易地移植到其他平台。DB2的用戶主要分布在金融、商業、鐵路、航空、醫院、旅遊等各個領域,以金融系統的應用最為突出。

5.Access

Access是在Windows操作系統下工作的關系型資料庫管理系統。它採用了Windows程序設計概念,以Windows特有的技術設計查詢、用戶界面、報表等數據對象,內嵌了VBA(全稱為Visual Basic Application)程序設計語言,具有集成的開發環境,Access提供圖形化的查詢工具和屏幕、報表生成器,用戶建立復雜的報表、界面無需編程和了解SQL語言,它會自動生成SQL代碼。
Access被集成到office中,具有office系列軟體的一般特點,如菜單、工具欄等。與其他資料庫管理系統軟體相比,更加簡單易學,一個普通的計算機用戶,沒有程序語言基礎,仍然可以快速地掌握和使用它。最重要的一點是,Access的功能比較強大,足以應付一般的數據管理及處理需要,適用於中小型企業數據管理的需求。當然,在數據定義、數據安全可靠、數據有效控制等方面,它比前面幾種數據產品要遜色不少。

⑼ 運算量大哪個資料庫好

ForeLib資料庫
它是一種高效率、高安全性的,適應高吞吐量的資料庫解決方案。作為非關系資料庫,同時也支持傳統SQL操作;作為通用的資料庫系統,它具有極簡又完整的數據管理模式;作為分布式資料庫它具備分布式處理的優良性能。佔用內存少,並發能力強,基於大數據的高性能和針對性設計,既可以快速搭建Web服務系統,也為企業內部構建IT信息系統提供了較完整的解決方案。

熱點內容
代碼分析演算法 發布:2024-10-09 00:47:11 瀏覽:160
晶元寫程序需要配置哪些文件 發布:2024-10-09 00:38:39 瀏覽:934
存儲儲存搬運 發布:2024-10-09 00:28:42 瀏覽:717
吃雞電腦適合什麼配置 發布:2024-10-09 00:18:24 瀏覽:228
java線程實例 發布:2024-10-09 00:05:34 瀏覽:193
文檔放在安卓手機哪裡 發布:2024-10-08 23:35:00 瀏覽:439
我的世界伺服器拔刀強化 發布:2024-10-08 22:59:37 瀏覽:430
伺服器換ip寶塔面板 發布:2024-10-08 22:58:56 瀏覽:433
如何通過伺服器搭建網站 發布:2024-10-08 22:58:54 瀏覽:240
賽爾編程 發布:2024-10-08 22:30:12 瀏覽:164