① Android中五中存儲方式的區別和優劣性
數據存儲在開發中是使用最頻繁的,在這里主要介紹Android平台中實現數據存儲的5種主要方式,分別是:
1 使用SharedPreferences存儲數據
2 文件存儲數據
3 SQLite資料庫存儲數據
4 使用ContentProvider存儲數據
5 網路存儲數據
第一種: 使用SharedPreferences存儲數據
適用范圍:保存少量的數據,且這些數據的格式非常簡單:字元串型、基本類型的值。比如應用程序的各種配置信息(如是否打開音效、是否使用震動效果、小游戲的玩家積分等),解鎖口 令密碼等
核心原理:它的本質是基於XML文件存儲key-value鍵值對數據,通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/< >/shared_prefs目錄下。
SharedPreferences本身是一個介面,程序無法直接創建SharedPreferences實例,只能通過Context提供的getSharedPreferences(String name, int mode)方法來獲取SharedPreferences實例,該方法中K值name表示要操作的xml文件名,第二個參數鍵值具體如下:
實現SharedPreferences存儲的步驟如下:
一、根據Context獲取SharedPreferences對象
二、利用edit()方法獲取Editor對象。
三、通過Editor對象存儲key-value鍵值對數據。
四、通過commit()方法提交數據。
Context.MODE_PRIVATE: 指定該SharedPreferences數據只能被本應用程序讀、寫。
Context.MODE_WORLD_READABLE: 指定該SharedPreferences數據能被其他應用程序讀,但不能寫。
Context.MODE_WORLD_WRITEABLE: 指定該SharedPreferences數據能被其他應用程序讀,寫
SharedPreferences與SQLite資料庫相比,免去了創建資料庫,創建表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。但是SharedPreferences也有其自身缺陷,比如其只能存儲boolean,int,float,long和String五種簡單的數據類型,比如其無法進行條件查詢等。所以不論SharedPreferences的數據存儲操作是如何簡單,它也只能是存儲方式的一種補充,而無法完全替代如SQLite資料庫這樣的其他數據存儲方式。
第二種: 文件存儲數據
關於文件存儲,Activity提供了openFileOutput()方法可以用於把數據輸出到文件中,具體的實現過程與在J2SE環境中保存數據到文件中是一樣的。
文件可用來存放大量數據,如文本、圖片、音頻等。
默認位置:/data/data/< >/files/***.***。
可以在設備本身的存儲設備或者外接的存儲設備中創建用於保存數據的文件。同樣在默認的狀態下,文件是不能在不同的程序間共享。
寫文件:調用Context.openFileOutput()方法根據指定的路徑和文件名來創建文件,這個方法會返回一個FileOutputStream對象。
讀取文件:調用Context.openFileInput()方法通過制定的路徑和文件名來返回一個標準的JavaFileInputStream對象。
第三種:SQLite存儲數據
SQLite Database資料庫。Android對資料庫的支持很好,它本身集成了SQLite資料庫,每個應用都可以方便的使用它,或者更確切的說,Android完全依賴於SQLite資料庫,它所有的系統數據和用到的結構化數據都存儲在資料庫中。 SQLite是輕量級嵌入式資料庫引擎,它支持 SQL 語言,並且只利用很少的內存就有很好的性能。此外它還是開源的,任何人都可以使用它。許多開源項目((Mozilla, PHP, Python)都使用了 SQLite.SQLite 由以下幾個組件組成:SQL 編譯器、內核、後端以及附件。SQLite 通過利用虛擬機和虛擬資料庫引擎(VDBE),使調試、修改和擴展 SQLite 的內核變得更加方便。
SQLite它具有以下優點:
1..效率出眾
2. 十分適合存儲結構化數據
3. 方便在不同的Activity,甚至不同的應用之間傳遞數據。
4.面向資源有限的設備
5.沒有伺服器進程,
6.所有數據存放在同一文件中跨平台,
7.可自由復制。
資料庫存儲在 data/< 項目文件夾 >/databases/ 下。 Android 開發中使用 SQLite 資料庫 Activites 可以通過 Content Provider 或者 Service 訪問一個資料庫。
第四種:ContentProvider
Android系統中能實現所有應用程序共享的一種數據存儲方式,由於數據通常在各應用間的是互相私密的,所以此存儲方式較少使用,但是其又是必不可少的一種存儲方式。例如音頻,視頻,圖片和通訊錄,一般都可以採用此種方式進行存儲。每個ContentProvider都會對外提供一個公共的URI(包裝成Uri對象),如果應用程序有數據需要共享時,就需要使用ContentProvider為這些數據定義一個URI,然後其他的應用程序就通過Content Provider傳入這個URI來對數據進行操作。
第五種:網路存儲
網路一般用於需要實時傳輸數據,由於移動產生流量需要資費,並且現在中國大陸地區的網路速度不盡人意,所以通過網路發送數據時需要注意數據量,如非必要,也不要使用網路發送。但是如果有些數據在移動端不能處理或者處理比較麻煩時,可以考慮通過網路發送到伺服器處理。
② 幾個著名Java開源緩存框架介紹
為String類中中實現了用加號「+」來連接兩個字元串而沾沾自喜。我認為這是Java中最甜的語法糖,甚至甜到掉牙。兩個字元串str1和str2。如果你使用:
str1 + str2;
這樣的語法並不會改變str1的字元串內容。要寫作:
str1 = str1 + str2;//str1 += str2;
你或許很清楚這個語法。而這背後所做的操作其實在內存中新建了一
③ 開源數據來源一般分幾種
開源數據來源一般分種:包括公司或者機構的內部來源和外部來源。
大數據技術利用這些數據,以更快的速度和更好的邏輯清洗分析這些數據。以及通過一些演算法,挖掘出這些龐雜數據中有價值的部分,為公司提供關系效益的新的隱蔽參數,並提供科學指導。意味著免費和自由的進行二次開發,如當下最為廣泛使用的hadoop生態系統。
數據物理結構:
它包括數據元素的機內表示和關系的機內表示。由於具體實現的方法有順序、鏈接、索引、散列等多種,所以,一種數據結構可表示成一種或多種存儲結構。
數據元素的機內表示(映像方法): 用二進制位(bit)的位串表示數據元素。通常稱這種位串為節點(node)。當數據元素有若干個數據項組成時,位串中與各個數據項對應的子位串稱為數據域(data field)。因此,節點是數據元素的機內表示(或機內映像)。
④ 請問資料庫有哪些種類呢
資料庫共有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)。
資料庫的架構可以大致區分為三個概括層次:內層、概念層和外層。
⑤ java redis有什麼作用
Java連接redis的使用示例 Redis是開源的key-value存儲工具,redis通常用來存儲結構化的數據,因為redis的key可以包含String、hash、listset和sorted list。
⑥ 四大開源資料庫是哪些
如果打算為項目選擇一款免費、開源的資料庫,那麼你可能會在MySQL與PostgreSQL之間猶豫不定。MySQL與PostgreSQL都是免
費、開源、強大、且功能豐富的資料庫。你主要的問題可能是:哪一個才是最好的開源資料庫,MySQL還是PostgreSQL呢?該選擇哪一個開源資料庫
呢?
在選擇資料庫時,你所做的是個長期的決策,因為後面如果再改變決定將是非常困難且代價高昂的。你希望一開始就選擇正確。兩個流行
的開源資料庫MySQL與PostgreSQL常常成為最後要選擇的產品。對這兩個開源資料庫的高層次概覽將會有助於你選擇最適合自己需要的。
MySQL
MySQL相對來說比較年輕,首度出現在1994年。它聲稱自己是最流行的開源資料庫。MySQL就是LAMP(用於Web開發的軟體包,包括
Linux、Apache及Perl/PHP/Python)中的M。構建在LAMP棧之上的大多數應用都會使用MySQL,包括那些知名的應用,如
WordPress、Drupal、Zend及phpBB等。
一開始,MySQL的設計目標是成為一個快速的Web伺服器後端,使用
快速的索引序列訪問方法(ISAM),不支持ACID。經過早期快速的發展之後,MySQL開始支持更多的存儲引擎,並通過InnoDB引擎實現了
ACID。MySQL還支持其他存儲引擎,提供了臨時表的功能(使用MEMORY存儲引擎),通過MyISAM引擎實現了高速讀的資料庫,此外還有其他的
核心存儲引擎與第三方引擎。
MySQL的文檔非常豐富,有很多質量不錯的免費參考手冊、圖書與在線文檔,還有來自於Oracle和第三方廠商的培訓與支持。
MySQL近幾年經歷了所有權的變更和一些頗具戲劇性的事件。它最初是由MySQL
AB開發的,然後在2008年以10億美金的價格賣給了Sun公司,Sun公司又在2010年被Oracle收購。Oracle支持MySQL的多個版
本:Standard、Enterprise、Classic、Cluster、Embedded與Community。其中有一些是免費下載的,另外一
些則是收費的。其核心代碼基於GPL許可,對於那些不想使用GPL許可的開發者與廠商來說還有商業許可可供使用。
現在,基於最初的
MySQL代碼還有更多的資料庫可供選擇,因為幾個核心的MySQL開發者已經發布了MySQL分支。最初的MySQL創建者之一Michael
"Monty"
Widenius貌似後悔將MySQL賣給了Sun公司,於是又開發了他自己的MySQL分支MariaDB,它是免費的,基於GPL許可。知名的
MySQL開發者Brian Aker所創建的分支Drizzle對其進行了大量的改寫,特別針對多CPU、雲、網路應用與高並發進行了優化。
PostgreSQL
PostgreSQL標榜自己是世界上最先進的開源資料庫。PostgreSQL的一些粉絲說它能與Oracle相媲美,而且沒有那麼昂貴的價格和傲慢的客服。它擁有很長的歷史,最初是1985年在加利福尼亞大學伯克利分校開發的,作為Ingres資料庫的後繼。
PostgreSQL是完全由社區驅動的開源項目,由全世界超過1000名貢獻者所維護。它提供了單個完整功能的版本,而不像MySQL那樣提供了多個
不同的社區版、商業版與企業版。PostgreSQL基於自由的BSD/MIT許可,組織可以使用、復制、修改和重新分發代碼,只需要提供一個版權聲明即
可。
可靠性是PostgreSQL的最高優先順序。它以堅如磐石的品質和良好的工程化而聞名,支持高事務、任務關鍵型應用。
PostgreSQL的文檔非常精良,提供了大量免費的在線手冊,還針對舊版本提供了歸檔的參考手冊。PostgreSQL的社區支持是非常棒的,還有來
自於獨立廠商的商業支持。
數據一致性與完整性也是PostgreSQL的高優先順序特性。PostgreSQL是完全支持ACID特性
的,它對於資料庫訪問提供了強大的安全性保證,充分利用了企業安全工具,如Kerberos與OpenSSL等。你可以定義自己的檢查,根據自己的業務規
則確保數據質量。在眾多的管理特性中,point-in-time
recovery(PITR)是非常棒的特性,這是個靈活的高可用特性,提供了諸如針對失敗恢復創建熱備份以及快照與恢復的能力。但這並不是
PostgreSQL的全部,項目還提供了幾個方法來管理PostgreSQL以實現高可用、負載均衡與復制等,這樣你就可以使用適合自己特定需求的功能
了。
⑦ 如何看待開源指令集RISC-V
RISC是簡化指令集計算機的簡略縮寫,其風格是強調計算機結構的簡單性和高效性。RISC設計是從足夠的不可缺少的指令集開始的。它的速度比那些具有傳統復雜指令組計算機結構的機器快得多,而且RISC機由於其較簡潔的設計,較易使用,故具有更短的研製開發周期。RISC結構一般具有如下的一些特點:
①單周期的執行:它統一用單周期指令。從根本上克服了CISC指令周期數有長有短,造成運行中偶發性不確定,致使運行失常的問題。
②採用高效的流水線操作:使指令在流水線中並行地操作,從而提高處理數據和指令的速度。
③無微代碼的硬連線控制:微代碼的使用會增加復雜性和每條指令的執行周期。
④指令格式的規格化和簡單化:為與流水線結構相適應且提高流水線的效率,指令的格式必須趨於簡單和固定的規式。比如指令採用16位或32位的固定的長度,並且指令中的操作碼欄位、操作數欄位都盡可能具有統一的格式。此外,盡量減少定址方式,從而使硬體邏輯部件簡化且縮短解碼時間,同時也提高了機器執行效率和可靠性。
⑤採用面向寄存器堆的指令:RISC結構採用大量的寄存器——寄存器操作指令,使指令系統更為精簡。控制部件更為簡化,指令執行速度大大提高。由於VLSI技術的迅速發展,使得在一個晶元上做大量的寄存器成為可能。這也促成了RISC結構的實現。
⑥採用裝入/存儲指令結構:在CISC結構中。大量設置存儲器——存儲器操作指令,頻繁地訪問內存,將會使執行速度降低。RISC結構的指令系統中,只有裝入/存儲指令可以訪問內存,而其它指令均在寄存器之間對數據進行處理。用裝入指令從內存中將數據取出,送到寄存器;在寄存器之間對數據進行快速處理,並將它暫存在那裡,以便再有需要時。不必再次訪問內存。在適當的時候,使用一條存儲指令再將這個數據送回內存。採用這種方法可以提高指令執行的速度。
⑦注重編譯的優化,力求有效地支撐高級語言程序。
通常使用的單片機中,MCS一51系列的單片機屬於CISC的體系結構;AVR系列的單片機則屬於RISC的體系結構。
⑧ oracle資源管理的問題
2.甲骨文股份有限公司是全球最大的資料庫軟體公司,總部位於美國加州的紅木灘。
公司類型 上市公司 (NASDAQ: ORCL)
口號 Oracle is the information company
成立於 加利福尼亞 (1977年)[1]
總部位於 美國加州紅木灘市
重要人物 勞倫斯·埃里森 Lawrence (Larry) J. Ellison, 首席執行官
產業 資料庫軟體
雇員數目 35000+
產品
資料庫伺服器
應用伺服器
開發工具
中間件產品
BI
客戶關系管理
供應鏈管理
JDE
收入 179億美元 (2007財年)
主要產品
甲骨文公司主要的產品目前分為兩大類:
* 伺服器(伺服器)及工具(主要競爭對手:國際商用機器、微軟)
* 資料庫伺服器:2008年最新版本11G
* 應用伺服器: Oracle Application Server
* 開發工具:Oracle JDeveloper,Oracle Designer,Oracle Developer,等等
* 應用軟體(主要競爭對手:德國SAP公司。)
* 企業資源計劃(ERP)軟體。已有10年以上的歷史。2005年,並購了開發企業軟體的人科軟體公司(PeopleSoft)以增強在這方面的競爭力。
* 客戶關系管理(CRM)軟體。自1998年開始研發這種軟體。2005年,並購了開發客戶關系管理軟體的希柏軟體公司(Siebel)。
Oracle公司是全球最大的信息管理軟體及服務供應商,成立於1977年,總部位於美國加州 Redwood shore。2000財年(99年6月到2000年5月)營業額達101億美元,再創Oracle公司銷售額歷史新高,比去年增長了13億美元,盈利增長61%,達到21億美元。Oracle公司現有員工超過三萬六千人,服務遍及全球145個國家。Oracle公司擁有世界上唯一一個全面集成的電子商務套件Oracle Applications R11i,它能夠自動化企業經營管理過程中的各個方面,深受用戶的青睞,促使Oracle應用軟體在2000財年第四季度的銷售額達4.47億美元,與SAP公司的同期應用軟體銷售額3.52億美元相比,多出近1億美元,這一事實表明,Oracle已經是世界最大的應用軟體供應商。Oracle電子商務套件涵蓋了企業經營管理過程中的方方面面,雖然它在不同的方面分別面對不同的競爭對手,而Oracle電子商務解決方案的核心優勢就在於它的集成性和完整性,用戶完全可以從Oracle公司獲得任何所需要的應用功能,更重要的是,它們具有一致的基於Internet技術的應用體系結構,而如果用戶想從其它廠商處獲得Oracle電子商務所提供的完整功能,不僅需要從多家廠商分別購買不同的應用,而且需要另請咨詢公司把這些不同的應用裝配起來,還必須確保它們能夠協同地工作。
先進的產品和高效率的企業運作,是Oracle公司利潤得以繼續增長的重要原因,一年前,Oracle公司確定了通過採用自身的Internet電子商務解決方案,實現每年節省10億美元企業日常運作費用的目標,這一數據相當於將我們的年度利潤率提高10%。
四年前電子商務在全球范圍內還僅處於萌芽狀態時,Oracle公司便前瞻性地作出了從領先的資料庫廠商向以Internet計算為基礎的完整的電子商務解決方案供應商轉型的戰略部署。這一前瞻性戰略為Oracle帶來了巨大的利益,今天,Oracle能夠領先於競爭對手提供包括平台產品、應用產品和完善的服務在內的先進的、完整的、集成的電子商務解決方案,可以無縫集成供應鏈管理(SCM)、企業資源管理(ERP)、客戶資源管理(CRM)和企業商業智能(BI)和電子商務應用IP(Internet Pocurement)、Exchange、Portal-to-go等產品。Oracle從低端到高端的所有方案100%基於Internet應用體系結構,都可以通過Web安全、直接地訪問,使企業能夠通過Web完成包括報價、定單、支付、執行、服務等在內的企業業務過程的所有環節,幫助企業將現有業務內容快速轉移到電子商務,迅速獲得來自電子商務的高效益。
Oracle應用產品包括財務、供應鏈、製造、項目管理、人力資源和市場與銷售等150多個模塊,榮獲多項世界大獎,現已被全球近7600多家企業所採用。由於在電子商務方面的傑出表現,Oracle公司在美國Mongan Stanley公司最新公布的權威性全球企業1000強中,從去年的第122名一躍成為第13名,成為全球第二大獨立軟體公司和最大的電子商務解決方案供應商。目前, Amazon和Dell等全球十個最大的Internet電子商務網站、全球十個最大的B-to-B網站中的九個、93%的上市.COM公司、65家「財富全球100強」企業均不約而同地採用Oracle電子商務解決方案。
Oracle中國公司
1989年Oracle公司正式進入中國市場,成為第一家進入中國的世界軟體巨頭,標志著剛剛起飛的中國國民經濟信息化建設已經得到Oracle的積極響應,由Oracle首創的關系型資料庫技術開始服務於中國用戶。1991年7月,經過了近兩年時間的努力開拓,為了更好地與迅速發展的業務相適應,Oracle在北京建立獨資公司。今天的Oracle中國公司擁有超過3500名員工,並在全國十二個城市設立了分公司。
為了幫助中國用戶及時、充分利用世界最先進的計算機軟體技術與產品,Oracle中國公司在產品漢化方面投入了大量的資源,目前,Oracle的大部分產品均已實現了全面中文化,中文版產品的更新節奏與美國本土基本同步一致。與此同時,Oracle在中國得到了數以百計的國內計算機企業的合作與支持,除了惠普、Sun、康柏、Cisco、Intel等Oracle全球聯盟合作夥伴和普華永道咨詢有限公司、安達信企業咨詢有限公司、安盛咨詢、德勤企業管理咨詢公司、凱捷安永咨詢(亞太)有限公司等Oracle全球系統集成商外,Oracle公司在中國還建立起完整的合作夥伴體系,6家增值經銷商、72家獨立軟體開發商、3家應用軟體合作夥伴、180家授權分銷商和4家授權培訓中心,他們共同構成了基於Oracle技術產品基礎的全國性市場開拓、系統集成、增值開發與技術服務體系,為Oracle在中國的業務發展提供了強有力的支持。由他們開發的數百個基於Oracle平台的商品化應用軟體包,已經廣泛應用於國內的政府部門、電信、郵政、公安、金融、保險、能源電力、交通、科教、石化、航空航天、民航等各行各業。
甲骨文公司主要產品簡介
1. Oracle電子商務套件(Oracle E-Business Suite)
Oracle電子商務套件是行業中第一個集成的基於互聯網的商務應用套件,它將前台與後台運營中的關鍵業務流程自動化。Oracle電子商務套件涵蓋了營銷、銷售、服務、合同、定單管理、產品設計、采購、供應鏈、製造、財務、項目管理、人力資源與專業服務自動化在內的企業中每一個領域的業務。2001年全球共有1100多家企業實施了Oracle電子商務套件,目前全球已經有超過12000家用戶正在獲益於Oracle電子商務套件所帶來的前所未有的好處。
自從Oracle電子商務套件首次面世以來,甲骨文公司已經推出了6種電子商務套件的增強版本,從而形成了一整套成熟的、功能齊全的應用套件。Oracle電子商務套件能夠使用戶在實施業務應用時擁有前所未有的可選擇性與靈活性,它的開放式基礎架構與單一數據模型使用戶在部署套件中的應用軟體時擁有多種選擇,既可以單獨使用,也可以組成業務流,還可以作為一個整體的集成套件來部署。Oracle電子商務套件既可以作為用CD ROM為載體的傳統軟體的形式,也可以作為一種在線服務的形式來提供給用戶。
2. Oracle10g —— 新一代電子商務平台
Oracle10g是業界第一個完整的、智能化的新一代Internet基礎架構,Oracle10g電子商務平台實際上是指Oracle資料庫10g、Oracle應用伺服器10g和Oracle開發工具套件10g的完整集成。
Oracle資料庫10g是第一套具有無限可伸縮性與高可用性,並可在集群環境中運行商業軟體的互聯網資料庫,具有400多個領先的資料庫功能,在集群技術、高可用性、商業智能、安全性、系統管理等方面都實現了新的突破。作為甲骨文公司長達十年的軟體技術研發成果,真正應用集群技術(Real Application Clusters)能夠提供近乎無限的擴充能力與整體可用性,為用戶帶來透明的、高速增長的集群功能。
Oracle應用伺服器10g是J2EE認證的、最輕、最快、最具伸縮性的應用伺服器,提供了企業門戶軟體、無線支持、高速緩存、輕量級J2EE引擎、商務智能、快速應用開發、應用與業務集成、Web 服務等多種應用開發功能,形成完整的電子商務應用開發和部署環境。使用了Oracle應用伺服器10g的用戶可以通過升級軟體來取代升級硬體,大大的節省了基礎設施的成本花費。
Oracle開發工具套件10g是一套完整的集成開發工具,可用於快速開發使用Java和XML語言的互聯網應用和Web服務,支持任何語言、任何操作系統、任何開發風格、開發生命周期的任何階段以及所有最新的互聯網標准。
9i之後的Oracle的硬體要求很高,(Windows版本)9i建議配512M內存,10g建議配1G內存。
Oracle資料庫的體系結構
Oracle資料庫包括Oracle資料庫伺服器和客戶端。
Oracle資料庫伺服器:
Oracle Server是一個對象一關系資料庫管理系統。它提供開放的、全面的、和集成的信息管理方法。每個Server由一個 Oracle DB和一個 Oracle Server實例組成。它具有場地自治性(Site Autonomy)和提供數據存儲透明機制,以此可實現數據存儲透明性。每個 Oracle資料庫對應唯一的一個實例名SID,Oracle資料庫伺服器啟動後,一般至少有以下幾個用戶:Internal,它不是一個真實的用戶名,而是具有SYSDBA優先順序的Sys用戶的別名,它由DBA用戶使用來完成資料庫的管理任務,包括啟動和關閉資料庫;Sys,它是一個 DBA用戶名,具有最大的資料庫操作許可權;System,它也是一個 DBA用戶名,許可權僅次於 Sys用戶。
客戶端:
為資料庫用戶操作端,由應用、工具、SQL* NET組成,用戶操作資料庫時,必須連接到一伺服器,該資料庫稱為本地資料庫(Local DB)。在網路環境下其它伺服器上的 DB稱為遠程資料庫(Remote DB)。用戶要存取遠程 DB上的數據時,必須建立資料庫鏈。
Oracle資料庫的體系結構包括物理存儲結構和邏輯存儲結構。由於它們是相分離的,所以在管理數據的物理存儲結構時並不會影響對邏輯存儲結構的存取。
1.邏輯存儲結構
它由至少一個表空間和資料庫模式對象組成。這里,模式是對象的集合,而模式對象是直接引用資料庫數據的邏輯結構。模式對象包括這樣一些結構:表、視圖、序列、存儲過程、同一詞、索引、簇和資料庫鏈等。邏輯存儲結構包括表空間、段和范圍,用於描述怎樣使用資料庫的物理空間。而其中的模式對象和關系形成了資料庫的關系設計。
數據塊(Block):是資料庫進行UO操作的最小單位,它與操作系統的塊不是一個概念。oracle資料庫不是以操作系統的塊為單位來請求數據,而是以多個Oracle資料庫塊為單位。
段(Segment):是表空間中一個指定類型的邏輯存儲結構,它由一個或多個范圍組成,段將佔用並增長存儲空間。
其中包括:
數據段:用來存放表數據;.
索引段:用來存放表索引;
臨時段:用來存放中間結果;
回滾段:用於出現異常時,恢復事務。
范圍(Extent):是資料庫存儲空間分配的邏輯單位,一個范圍由許多連續的數據塊組成,范圍是由段依此分配的,分配的第一個范圍稱為初始范圍,以後分配的范圍稱為增量范圍。
年表
約70年代 一間名為Ampex的軟體公司,正為中央情報局設計一套名叫Oracle的資料庫,Ellison是程序員之一。
1977 年艾利森與女上司Robert Miner創立「軟體開發實驗室」(Software Development Labs),當時IBM發表「關聯資料庫」的論文,艾利森以此造出新資料庫,名為甲骨文。
1978 年 公司遷往矽谷,更名為「關系式軟體公司」 (RSI),兩年後,共有8名員工,年收入少於100萬美金。最先提出「關聯資料庫」的IBM採用RSI的資料庫。1982年再更名為甲骨文(Oracle)。
1984年 三年內,先後進軍加、荷、英、奧地利、日、德、瑞士、瑞典、澳洲、芬蘭、法、香港、挪威、西班牙。1986年上市時,年收入暴升至5500 萬美元,同年3月招股,集資3150萬美元。
1987年 年收入達到 1.31 億美元,甲骨文一年後成為世界第四大軟體公司。兩年內再進軍墨西哥、巴、中、塞普勒斯、馬來西亞及紐西蘭。一年後,收入再升一倍至2.82億美元。
1990年 甲骨文兩年內揮軍進入智利、希臘、韓、葡、土、委內瑞拉、台、比利是、阿根延、哥倫比亞、哥斯大黎加及菲等地,但市甲骨文首次錄得虧蝕,市值急跌80%,艾利森首次安排資深管理人員參與經營。
1992年 旗鑒產品Oracle 7面世,該公司重拾升軌,年收入達到 11.79 億美元。曾被視為甲骨文接班人、但後來被踼出局的Raymond Lane擔任營運總監。
1995年 艾利森宣布PC已死,把全數產品推向網際網路發展,並另組「網路電腦公司」(Network Computer),銷售「網路電腦」,最終被淘汰收場。
2000年 科網接近尾聲時,推出E-Business Suite,搶占應用產品市場,與昔日的生意夥伴構成嚴重利益沖突。同期微軟及IBM數據技術提升,此後Oracle新增訂單數目的佔有率,在兩年內下跌6.6%,業務倒退10%。
2003年 敵意收購仁科軟體公司(Peoplesoft),引起業界轟動。兩公司的爭嗌新聞層出不窮。同年美國司法部落案阻止甲骨文收購。
補充內容:
oracle11g
2007年7月12日,甲骨文公司在美國紐約宣布推出資料庫Oracle 11g,這是Oracle資料庫的最新版本。甲骨文介紹說,Oracle 11g有400多項功能,經過了1500萬個小時的測試,開發工作量達到了3.6萬人/月。
有意思的是,根據甲骨文以往幾個版本的發行經驗,發布新版Oracle資料庫的頻率在3年左右,以此類推,Oracle 11g應該在07年年底發布,選擇在7月份發布,不知道是否和代號Katmai的SQL Server 2008有關,因為目前還處於測試階段的SQL Server 2008將在08年2月發布,業內用Oracle 10g和SQL Server 2003做比較也曾一度惹惱了甲骨文。
XML顯高溫
當XML面世之時,也許沒有哪個資料庫廠商會對這種技術給以足夠的關注,然而在今天,XML已經開始對數據存儲產生巨大的影響。到現在,這種可擴展標記語言已是各種數據,特別是文檔的首選格式,國際主流的資料庫廠商們自然也隨行就市,全都推出了兼容傳統關系型數據與XML數據混合應用的新一代資料庫產品。
XML在數據存儲方面有一個明顯的優點,那就是可以直接將邏輯關系編寫在XML文件當中。一個時髦的XML資料庫應該提供哪些功能呢?歸納起來應該有四個基本功能:使用、存儲、查詢和產生XML的能力。
在Oracle 10g中,曾被人們津津樂道的最重要的改進是增加了對XML schema(XML語法)轉換的支持,它允許用戶通過將現有的數據映射為新的schema來實現XML schema轉換。而不必把所有XML數據輸出後再重新輸入進去,其它事情將由資料庫自動完成。
在Oracle 11g中, XML DB的性能又獲得很大提高,XML DB是Oracle資料庫的一個組件,客戶可以以本機方式存儲和操作XML數據。11g增加了對二進制XML數據的支持,現在客戶可以選擇適合自己特定應用及性能需求的XML存儲選項。
當然,不僅僅是甲骨文看好XML,為吸引Oracle用戶,IBM公司DB2 9打XML旗號直接把XML作為其新產品的最大賣點;微軟和Sybase也宣稱它們的產品也可以實現高性能XML存儲與查詢,使現有應用更好地與XML並存。
網格計算有點冷
新的Oracle 11g仍使用g(Grid)作為後綴,以代表這是一個包含了網格技術基礎的資料庫。甲骨文稱,Oracle 11g能更方便地在低成本伺服器和存儲設備組成的網格上運行。不過,目前僅有IBM DB2資料庫也支持網格計算技術。
網格計算將多個伺服器和存儲器當作一台大型電腦協調使用,使它們在高速網路上動態地共享計算機資源,以滿足不斷變化的計算需求。簡而言之,即將多個伺服器和存儲器當作一台主機協調使用。網格計算被廣泛視為未來的計算方式。
盡管微軟對網格計算的興趣也很濃厚,承諾要讓Windows能夠更好地適應高數據強度的計算網格。但微軟除了在內部研究之外,似乎一直在這個話題上非常沉默。對於資料庫中網格計算,微軟和Sybase方面表示,網格應用在技術上還需解決一些問題(如:多節點性能問題) ,網格技術要成為商業應用的主流,還需要幾年時間在應用和產品上進一步完善。
不容樂觀的是,在咨詢公司Quocirca發布的調查顯示,我國網格實際採用率仍然偏低,總體網格指數在15個被調查國家中只排第9位,處於中下游,甲骨文表示,中國用戶可能對網格的價值還沒有真正接受。很多中國企業有一種觀望的心態,覺得應用網格存在風險。
11g安全了嗎?
有業內人士曾表示,Oracle 10g只能算是一個過渡版本。因為06年,下一代安全軟體機構NGSS對微軟SQL Server和Oracle資料庫做了一個弱點對比,結果表明Oracle的資料庫產品存在更多的弱點。
NGSS的研究人員稱,Oracle有233個缺陷點,而SQL Server只有59個。這些缺陷在SQL Server7、2000以及2005中,在Oracle8、9以及10g版本中被報道,並被修復。分析機構ESG也發布調查報告表示,在安全性方面微軟擊敗了甲骨文,似乎甲骨文資料庫「無懈可擊」的安全神話已不復存在。
針對那些不斷對甲骨文安全性能表示批評的專家,甲骨文終於開始猛烈還擊。2006年底,甲骨文全球技術事業部的安全經理Eric Maurice在公司的博客上表示,甲骨文在開發和安全方面的技術水平居業界領先位置。與微軟資料庫的安全性能比較,不過是別有用心的人在玩數字游戲,甲骨文不會讓外部的壓力改變其既定的安全策略。
到現在,起碼可以從資料上看到,Oracle的安全認證獲得最高認證級別的ISO標准認證,而SQL Server並沒有獲得什麼安全認證。從這方面證明了Oracle的安全性不應該被受到如此指責。
從甲骨文此次推出的11g可以看到,在安全方面除了10g已經存在的數據閥門和加密外,11g又增加了四項安全功能,即安全備份、非對稱數據的授權安全檢索、監控、管理和報警。
Oracle 11g資料庫增強了Oracle透明數據加密功能,將這種功能擴展到了卷級加密之外。11g還增加了表空間加密功能,可用來加密整個表、索引和所存儲的其它數據。存儲在資料庫中的大型對象也可以加密。
看來甲骨文很注重11g在安全上的表現,閃回交易技術可以撤銷錯誤交易以及任何相關交易,並行備份和恢復功能。另外,一種新的顧問軟體—數據恢復顧問,可自動調查問題,智能地確定恢復計劃並處理多種故障情況。
Oracle 11g的Oracle Data Guard組件可用於對生產資料庫的報告、備份、測試和「滾動」升級。通過將工作量從生產系統卸載到備用系統,並組成一個更經濟的災難恢復解決方案。
也許正是在安全性上的增強,才使得甲骨文公司資料庫伺服器技術高級副總裁Andy Mendelsohn自信地表示:「Oracle 11g真正克服了挑戰並實現了真正的創新。」
一個瘋狂的發燒友在自家的車庫中改造了小型IDC,並利用Sun Enterprise 220R Server架設了Oracle 10g資料庫
增強信息生命周期管理和存儲管理能力:引入了更多的自助式管理和自動化功能;
◆透明的加密:Oracle將這種功能擴展到了卷級加密之外;
◆提高信息可用性:免受計劃停機和意外宕機影響;
◆更快的XML:通過XML DB組件,客戶可以本機方式存儲和操作XML數據;
◆增強了自助式管理和自動化能力:增加了自動SQL和存儲器微調等管理功能;
◆增強了應用開發能力:提供多種開發工具供開發人員選擇,包括Java實時編譯器。
開源資料庫成熟時
以MySQL、PostgreSQL為代表的開源資料庫系統,已成為取代閉源資料庫的一種頗具吸引力的選擇。
成熟的開源資料庫,讓Oracle這樣的閉源廠商難以騰飛
知名的網路游戲The Matrix Online(駭客帝國Online),每天有數萬名網上玩家同時在線,為了能夠支撐龐大的在線游戲玩家同時進行游戲,Sony Online Entertainment(索尼在線娛樂公司,以下簡稱SOE)需要密集使用資料庫。
以往SOE會使用大量的Oracle RAC集群提供服務,但是由於Oracle資料庫的授權證十分昂貴及欠缺彈性,加上公司需要更多額外資料庫。所以從2005年開始,該公司就開始尋求既具有較低總擁有成本,又具有較好靈活性的開源資料庫以取代Oracle資料庫。
踢開Oracle
SOE對資料庫的需求相當可觀,其資料庫應用程序是關鍵任務應用程序的最恰當詮釋:每天有數十萬在線玩家在玩SOE的游戲,而每款游戲都是一個資料庫及其密集的應用程序。
事實上,SOE在應用開放源代碼的應用上有很長歷史,曾經就使用過Linux、Tomcat、Apache、Hibernate架設系統,此次的開源抉擇,SOE更注重尋覓能夠利用其寶貴資產(內部能夠熟練使用Oracle的資料庫人才)的方法,在選擇開源資料庫時,列出了四項標准:
1、能夠充分發揮其現有資料庫管理員和開發人員的潛能;
2、易於將SOE現有的Oracle應用程序遷移到新的資料庫;
3、能夠提供商用級別質量可靠性,包括備份和恢復標准,以支持關鍵任務應用程序;
4、可擴展,具有高性能。
在選擇開源資料庫之前,SOE需要使用許多Oracle 9i RAC群集。另外,SOE在其後台運營中部署了資料庫。與如今的很多企業一樣,SOE希望開源軟體能夠提供應對這些業務挑戰的解決方案。
根據SOE對不同開放源碼資料庫的評估,他們選擇了兼容Oracle資料庫的EnterpriseDB,因為SOE有八成以上的特定Oracle應用程式,可以在極少、甚至無需修改的情況下在EnterpriseDB執行,以現有開支比較,利用EnterpriseDB後,每款線上游戲的整體擁有成本可降低80%,每年節省總額過百萬,在2007至2008年度,SOE將使用數百台EnterpriseDB資料庫集群伺服器。
開源更有前途
使用Oracle資料庫的企業一般都會對開源資料庫感興趣,主要有三個方面原因:首先,通過部署開源資料庫,這些企業可以顯著降低資料庫的總擁有成本(TCO),有時降幅甚至高達90%;其次,他們通常可以從其他廠商獲得更大的許可靈活性以及業務便利;最後,這些企業會發現其他廠商更渴望為他們提供出色技術。
對於開源資料庫,企業多少也會有些擔心,因為許多企業僅限於將開源資料庫用於一些簡單的應用程序,如一些網站的支持應用。因為這些企業普遍認為開源資料庫可能不夠穩定,可靠性或者可擴展性不夠高,因而無法滿足他們的關鍵任務應用需求。另外,企業可能還覺得更改資料庫的代價,例如,與應用程序重新編碼,人員重新培訓相關的成本,可能會超出預期的節省目標。
MySQL、FireBird、EnterpriseDB和Postgre(PostgreSQL的前身)都是非常健壯的開源資料庫,而EnterpriseDB又是基於PostgreSQL進行開發的,不僅保留了PostgreSQL的穩定性,而且可實現50%的速度增長,系統可以自動監測是否有補丁程序存在,大大減輕管理員的工作。
近幾年來,美國一些大企業紛紛採用開放源碼資料庫,它們往往在總部採用商業資料庫,而在分支機構的Linux伺服器上採用開源產品。這些資料庫除了費用便宜,還各有獨到之處。與商業化產品相比,開源資料庫結構簡單,但功能不簡單,讀取操作快捷,易管理,甚至不需要全職的管理員。由此吸引了像Cisco、Yahoo這樣的大公司,以及眾多的中小企業。而在國內,我們熟悉的新浪、網易等大型門戶網站也是開源資料庫的使用者。
該企業品牌在世界品牌實驗室(World Brand Lab)編制的2006年度《世界品牌500強》排行榜中名列第三十六。