Your SlideShare is downloading. ×
開放原始碼 Ch2.4   app - oss - db (ver 1.0)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

開放原始碼 Ch2.4 app - oss - db (ver 1.0)

433
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
433
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. OPEN SOURCE DATABASE 2 1 CH – 關聯式資料庫 – File-Based DB – NoSQL DB
  • 2. 關聯式資料庫• 建立在關係模型基礎上的數據庫,借助於集合代數等數學 概念和方法來處理數據庫中的數據。現實世界中的各種實 體以及實體之間的各種聯繫均用關係模型來表示。• 將複雜的現實資料,根據正規化去除重複性內容,並且根 據實體與關係建立資料的存儲方式。• 並且透過關係來還原原始資料呈現。• 結構 • TABLE • VIEW • INDEX 2
  • 3. 關聯式資料庫• SQL(Structured Query Language)語言是1974年由 Boyce和Chamberlin提出的一種介於關係代數與關係演 算之間的結構化查詢語言,是一個通用的、功能極強的關 係性數據庫語言。• IBM 公司最早使用在其開發的數據庫系統中。• 1987年得到國際標準組織的支持下成為國際標準。不過各 種通行的數據庫系統在其實踐過程中都對 SQL 規範作了 某些編改和擴充。所以,實際上不同數據庫系統之間的 SQL不能完全相互通用。 3
  • 4. 關聯式資料庫• SQL 包含3個部分: • 「資料定義語言」(DDL : Data Definition Language) • 「資料操縱語言」(DML : Data Manipulation Language) • 「資料控制語言」(DCL : Data Control Language)• 現行大部分關聯式資料庫皆實作與支援SQL。• ANSI SQL89標準 4
  • 5. 關聯式資料庫• 開放原始碼選擇 • MySQL • http://www.mysql.com/ • PostgreSQL • http://www.postgresql.org/ • Firebird • http://www.firebirdsql.org/ 5
  • 6. 物件關聯式資料庫 MYSQL• Oracle • http://www.mysql.com/• 社群版 GPL • 非商業用途 • 開放原始碼 • 主要功能清單 http://www.mysql.com/products/community/• 商業版 • 按授權拷貝與連線計價 • 提供進階企業功能 • 企業級備份 • 企業級監控器 • 查詢分析器 6
  • 7. 物件關聯式資料庫 POSTGRESQL • 開放原始碼 • 完全免費不限使用用途 • 支援已知各應用平台Limit ValueMaximum Database Size UnlimitedMaximum Table Size 32 TBMaximum Row Size 1.6 TBMaximum Field Size 1 GBMaximum Rows per Table Unlimited 250 - 1600 depending on columnMaximum Columns per Table typesMaximum Indexes per Table 77 7
  • 8. 物件關聯式資料庫 POSTGRESQL• 支援複本同步抄寫• 支援叢集• 支援格網計算• 完全客製化• 可商業銷售用途• Grid Computing • Data Grid – 採用PostgreSQL 8
  • 9. 物件關聯式資料庫 FIREBIRD• http://www.firebirdsql.org• 1981起正式用在商業應用• 25 July, 2000 • 前身是Borland的Inprise 釋出原始碼成為開放原始碼專案。 • Mozilla Public Licence V.1.1 (MPL). • 可商業用途• 支援 • Linux, Windows, and a variety of Unix platforms。 9
  • 10. 物件關聯式資料庫• 非SQL為基礎的關聯式資料庫• 採用程式語言物件導向作為資料庫的基礎設計• 以物件作為資料的儲存概念• 原因 • 關聯式數據庫在管理複雜數據時顯得笨重 • 現行程式語言皆為物件導向,用來轉化數據表示和關係數據庫元組的 代碼很冗繁,執行時也有不尐耗時。 • 在純物件式資料庫中,資料以物件的形式存儲,這些對象只能由其所 屬的類中定義的方法來操作。 • 訪問數據可以更快,表的聯合(join)常常是不必要的(在關係數據庫的 表實現方式下)。這是因為無需查詢只需通過指針(Pointer)就可以直 接獲得對象。• 對版本的支援。一個對象可以看作是他所有版本的集合。無傳 統關聯式的schema異動問題。 10
  • 11. • Neo4j • http://neo4j.org/• Db4o • http://www.db4o.com/ 11
  • 12. 物件關聯式資料庫 NEO4J• http://neo4j.org/• Neo4j is a high-performance, NOSQL graph database with all the features of a mature and robust database.• 開放原始碼, GPLv3 Community edition• 不同授權差異 • Neo4j Community, a high performance, fully ACID transactional graph database – licensed under the GPL • Neo4j Advanced, adding advanced monitoring – licensed under the AGPL • Neo4j Enterprise, adding online backup and High Availability clustering – licensed under AGPL 12
  • 13. 物件關聯式資料庫 NEO4J• graph-oriented model• storing data in the nodes and relationships of a graph.• 利用資料結構的設計,建立的資料模型。 13
  • 14. 物件關聯式資料庫 DB4O• http://www.db4o.com/• 開放原始碼,Free Version is GPL license• 若要商業用途,建議購買商業授權。• 強力支援Java 與 .Net平台。• 真正物件導向關聯式資料庫 14
  • 15. FILE-BASED DB• 檔案型資料庫• 優勢 • 無安裝過程 • 精簡小巧 • 適用於行動裝置 • 與應用系統嵌入式整合 • 支援關聯式絕大部分功能• 缺點 • 不適用於巨量交易資料運作 • 受限作業系統檔案的限制 • 效能無法與獨立性伺服器相比 15
  • 16. FILE-BASED DB• JavaDB • Oracle• HyperSQL • http://hsqldb.org/• H2 • http://www.h2database.com/html/main.html• Apache Derby • http://db.apache.org/derby/• SQLite • http://www.sqlite.org/ 16
  • 17. FILE-BASED DB JAVADB• http://www.oracle.com/technetwork/java/javadb/ overview/index.html• Sun Java SDK/JRE 內建• 採用open source Apache Derby 100%所開發 • Java DB 10.5.3.0, based on Apache Derby 10.5.3.0• It is fully transactional, secure, easy-to-use, standards-based —SQL, JDBC API, and Java EE — yet small, only 2.5 MB.• Free under the Apache license.• Portable and 100% Java, CDC, SQL, and JDBC compliant. 17
  • 18. FILE-BASED DB APACHE DERBY• http://db.apache.org/derby/• Apache License, Version 2.0• IBM 捐贈• 純Java 設計開發• 約 2.6MB大小• 運作模式 • 一般Clinet – Server • 嵌入式 • In-Memory• 符合ANSI 89• 不需安裝直接使用 18
  • 19. FILE-BASED DB HYPERSQL• http://hsqldb.org/• 100% Java Database• fully multithreaded• full SQL-1992 Advanced Level and SQL:2008 core language features plus an extensive list of SQL:2008 optional features and many extensions.• over 6 years• 350K jar size 19
  • 20. FILE-BASED DB HYPERSQL• 商業版本 • http://www.hxsql.com/ • HyperXtremeSQL has been developed in parallel with the open-source HyperSQL (HSQLDB) engine. 20
  • 21. FILE-BASED DB H2• http://www.h2database.com• 運作模式 • Embedded and server modes; in-memory databases• Small footprint: around 1 MB jar file size• Browser based Console application• 支援全文搜尋 21
  • 22. FILE-BASED DB H2 H2 Derby HSQLDB MySQL PostgreSQLPure Java Yes Yes Yes No NoMemory Mode Yes Yes Yes No NoEncrypted Yes Yes Yes No NoDatabaseODBC Driver Yes No No Yes YesFulltext Search Yes No No Yes YesMulti Version Yes No Yes Yes YesConcurrencyFootprint (jar/dll ~1 MB ~2 MB ~1 MB ~4 MB ~6 MBsize) 22
  • 23. FILE-BASED DB SQLITE• http://www.sqlite.org/• 採用C 語言所開發• 被Android 、 iOS 及其他行動裝置採用作為嵌入式資料 庫。• HTML5 整合性高• 缺點 • 需要原生碼相依性檔案• 因為是原生碼開發,因此效能佳。• 支援Windows、Linux、OSX及UNIX-like平台• JAVA 需要額外JDBC驅動程式 23
  • 24. NOSQL DB• NoSQL 也是資料庫管理系統的範疇,在於不採用傳統關 聯式架構與SQL的標準語句。• 不是固定的table schemas,也沒有所謂的table schemas。因此沒有SQL中join的問題。• 傳統RDBMS遵循正規畫設計,NoSQL則是認為資料重複 是好事,愈多愈好愈分散更好。• 因為RDBMS在分散式有嚴重的先天架構問題,無法做到 延展性,因而無法在雲端環境有效提供滿足的資料儲存需 求。• NoSQL 就是為了分散計算,高度的容錯性。• NoSQL 可以達到水平性橫向規模擴充。 24
  • 25. NOSQL DB• 缺點 • 無法提供RDBMS的嚴格的完整性要求 • 因為NoSQL是以分散式環境為主,資料是散佈在各地,因此無法保證 資料的完整性。 • 無法保證資料的一致性,在交易機制下難以確保資料的一致性。 • 沒有提供SQL的 join,group by,sum/average,sort • 必須在應用系統中自行完成。 • 難以處理高度複雜性的資料集合,SQL已經很成熟且最佳化。因此不 太適合在OLAP的BI用途。 • 沒有SQL完整的工具來提供匯出與匯入,但是以後會逐漸完善。 • 資料儲存速度沒有SQL快 • 因為分散式環境 • NoSQL不是為了替代OLTP數據庫而生的,它的key-value存儲結構更 加適用於處理半結構化的數據。 25
  • 26. NOSQL DB• Map/Reduce based • Hadoop/Hbase • Google datastore • MongoDB/Apache CouchDB • Amazon SimpleDB 26
  • 27. NOSQL DB HADOOP/HBASE• http://hadoop.apache.org/• Google datastore • http://code.google.com/intl/zh/appengine/docs/python/d atastore/overview.html • 採用JPA 與 JDO 標準介面實作 • 支援Java 、Python 與 Go 語言 • 基於Google 雲端平台• reliable, scalable, distributed computing. 27
  • 28. NOSQL DB MONGODB/APACHE COUCHDB• http://www.mongodb.org/• http://couchdb.apache.org/ 28
  • 29. NOSQL DB MONGODB/APACHE COUCHDB• Document-oriented storage • 採用JSON格式• 支援全文檢索• 容易副本抄寫機制與快速擴充延展• 無table schemas• 採用Map/Reduce演算法• Enterprise class support, training, and consulting available. 29
  • 30. NOSQL DBMONGODB/APACHE COUCHDB 30
  • 31. NOSQL DB MONGODB/APACHE COUCHDBMySQL term Mongo termdatabase databasetable collectionindex indexrow BSON documentcolumn BSON fieldjoin embedding and linkingprimary key _id field 31
  • 32. NOSQL DB MONGODB/APACHE COUCHDBSQL Statement Mongo StatementCREATE TABLE USERS (a Number, b Number) implicit; can also be done explicitly withdb.createCollection("mycoll")ALTER TABLE users ADD ... implicitINSERT INTO USERS VALUES(3,5) db.users.insert({a:3,b:5})SELECT a,b FROM users db.users.find({}, {a:1,b:1})SELECT * FROM users db.users.find()SELECT * FROM users WHERE age=33 db.users.find({age:33}) 32
  • 33. NOSQL DB AMAZON SIMPLEDB• http://aws.amazon.com/simpledb/• Amazon SimpleDB is a highly available, flexible, and scalable non-relational data store that offloads the work of database administration. Developers simply store and query data items via web services requests, and Amazon SimpleDB does the rest. 33
  • 34. NOSQL DB AMAZON SIMPLEDB• Use CreateDomain, DeleteDomain, ListDomains, DomainMetadata to create and manage query domains• Use Put, Batch Put, & Delete to create and manage the data set within each query domain• 與其他Amazon服務容易整合• 按需取價 34
  • 35. NOSQL DB AMAZON SIMPLEDB• 免費版限制 每個月上限 • 25 SimpleDB Machine Hours • 1 GB of Storage for free 35