SlideShare una empresa de Scribd logo
1 de 35
OPEN SOURCE DATABASE               2
                                   1
                                  CH


                – 關聯式資料庫
                – File-Based DB
                – NoSQL DB
關聯式資料庫

• 建立在關係模型基礎上的數據庫,借助於集合代數等數學
  概念和方法來處理數據庫中的數據。現實世界中的各種實
  體以及實體之間的各種聯繫均用關係模型來表示。
• 將複雜的現實資料,根據正規化去除重複性內容,並且根
  據實體與關係建立資料的存儲方式。
• 並且透過關係來還原原始資料呈現。
• 結構
 • TABLE
 • VIEW
 • INDEX


                          2
關聯式資料庫

• SQL(Structured Query Language)語言是1974年由
  Boyce和Chamberlin提出的一種介於關係代數與關係演
  算之間的結構化查詢語言,是一個通用的、功能極強的關
  係性數據庫語言。
• IBM 公司最早使用在其開發的數據庫系統中。
• 1987年得到國際標準組織的支持下成為國際標準。不過各
  種通行的數據庫系統在其實踐過程中都對 SQL 規範作了
  某些編改和擴充。所以,實際上不同數據庫系統之間的
  SQL不能完全相互通用。



                                        3
關聯式資料庫

• SQL 包含3個部分:
 • 「資料定義語言」(DDL : Data Definition Language)
 • 「資料操縱語言」(DML : Data Manipulation Language)
 • 「資料控制語言」(DCL : Data Control Language)
• 現行大部分關聯式資料庫皆實作與支援SQL。
• ANSI SQL89標準




                                                4
關聯式資料庫

• 開放原始碼選擇
 • MySQL
   • http://www.mysql.com/
 • PostgreSQL
   • http://www.postgresql.org/
 • Firebird
   • http://www.firebirdsql.org/




                                   5
物件關聯式資料庫
                  MYSQL
• Oracle
  • http://www.mysql.com/

• 社群版 GPL
  • 非商業用途
  • 開放原始碼
  • 主要功能清單 http://www.mysql.com/products/community/

• 商業版
  • 按授權拷貝與連線計價
  • 提供進階企業功能
    • 企業級備份
    • 企業級監控器
    • 查詢分析器


                                                      6
物件關聯式資料庫
                      POSTGRESQL
 • 開放原始碼
 • 完全免費不限使用用途
 • 支援已知各應用平台

Limit                       Value
Maximum Database Size       Unlimited
Maximum Table Size          32 TB
Maximum Row Size            1.6 TB
Maximum Field Size          1 GB
Maximum Rows per Table      Unlimited
                            250 - 1600 depending on column
Maximum Columns per Table
                            types
Maximum Indexes per Table   77                               7
物件關聯式資料庫
                   POSTGRESQL
•   支援複本同步抄寫
•   支援叢集
•   支援格網計算
•   完全客製化
•   可商業銷售用途
•   Grid Computing
    • Data Grid – 採用PostgreSQL




                                 8
物件關聯式資料庫
                   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
物件關聯式資料庫

•   非SQL為基礎的關聯式資料庫
•   採用程式語言物件導向作為資料庫的基礎設計
•   以物件作為資料的儲存概念
•   原因
    • 關聯式數據庫在管理複雜數據時顯得笨重
    • 現行程式語言皆為物件導向,用來轉化數據表示和關係數據庫元組的
      代碼很冗繁,執行時也有不尐耗時。
    • 在純物件式資料庫中,資料以物件的形式存儲,這些對象只能由其所
      屬的類中定義的方法來操作。
    • 訪問數據可以更快,表的聯合(join)常常是不必要的(在關係數據庫的
      表實現方式下)。這是因為無需查詢只需通過指針(Pointer)就可以直
      接獲得對象。
• 對版本的支援。一個對象可以看作是他所有版本的集合。無傳
  統關聯式的schema異動問題。


                                        10
• Neo4j
 • http://neo4j.org/
• Db4o
 • http://www.db4o.com/




                          11
物件關聯式資料庫
                 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
物件關聯式資料庫
                 NEO4J
• graph-oriented model
• storing data in the nodes and relationships of a
  graph.
• 利用資料結構的設計,建立的資料模型。




                                                     13
物件關聯式資料庫
                  DB4O
•   http://www.db4o.com/
•   開放原始碼,Free Version is GPL license
•   若要商業用途,建議購買商業授權。
•   強力支援Java 與 .Net平台。
•   真正物件導向關聯式資料庫




                                        14
FILE-BASED DB

• 檔案型資料庫
• 優勢
 •   無安裝過程
 •   精簡小巧
 •   適用於行動裝置
 •   與應用系統嵌入式整合
 •   支援關聯式絕大部分功能
• 缺點
 • 不適用於巨量交易資料運作
 • 受限作業系統檔案的限制
 • 效能無法與獨立性伺服器相比

                           15
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
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
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
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
FILE-BASED DB
                  HYPERSQL
• 商業版本
 • http://www.hxsql.com/
 • HyperXtremeSQL has been developed in parallel with the
   open-source HyperSQL (HSQLDB) engine.




                                                            20
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
FILE-BASED DB
                                   H2

                     H2       Derby   HSQLDB   MySQL   PostgreSQL

Pure Java            Yes      Yes     Yes      No      No

Memory Mode          Yes      Yes     Yes      No      No



Encrypted            Yes      Yes     Yes      No      No
Database



ODBC Driver          Yes      No      No       Yes     Yes

Fulltext Search      Yes      No      No       Yes     Yes




Multi Version        Yes      No      Yes      Yes     Yes
Concurrency




Footprint (jar/dll   ~1 MB    ~2 MB   ~1 MB    ~4 MB   ~6 MB
size)


                                                                    22
FILE-BASED DB
                SQLITE
• http://www.sqlite.org/
• 採用C 語言所開發
• 被Android 、 iOS 及其他行動裝置採用作為嵌入式資料
  庫。
• HTML5 整合性高
• 缺點
 • 需要原生碼相依性檔案
• 因為是原生碼開發,因此效能佳。
• 支援Windows、Linux、OSX及UNIX-like平台
• JAVA 需要額外JDBC驅動程式

                                    23
NOSQL DB

• NoSQL 也是資料庫管理系統的範疇,在於不採用傳統關
  聯式架構與SQL的標準語句。
• 不是固定的table schemas,也沒有所謂的table
  schemas。因此沒有SQL中join的問題。
• 傳統RDBMS遵循正規畫設計,NoSQL則是認為資料重複
  是好事,愈多愈好愈分散更好。
• 因為RDBMS在分散式有嚴重的先天架構問題,無法做到
  延展性,因而無法在雲端環境有效提供滿足的資料儲存需
  求。
• NoSQL 就是為了分散計算,高度的容錯性。
• NoSQL 可以達到水平性橫向規模擴充。

                               24
NOSQL DB

• 缺點
 • 無法提供RDBMS的嚴格的完整性要求
 • 因為NoSQL是以分散式環境為主,資料是散佈在各地,因此無法保證
   資料的完整性。
 • 無法保證資料的一致性,在交易機制下難以確保資料的一致性。
 • 沒有提供SQL的 join,group by,sum/average,sort
  • 必須在應用系統中自行完成。
 • 難以處理高度複雜性的資料集合,SQL已經很成熟且最佳化。因此不
   太適合在OLAP的BI用途。
 • 沒有SQL完整的工具來提供匯出與匯入,但是以後會逐漸完善。
 • 資料儲存速度沒有SQL快
  • 因為分散式環境
 • NoSQL不是為了替代OLTP數據庫而生的,它的key-value存儲結構更
   加適用於處理半結構化的數據。

                                         25
NOSQL DB

• Map/Reduce based
 •   Hadoop/Hbase
 •   Google datastore
 •   MongoDB/Apache CouchDB
 •   Amazon SimpleDB




                              26
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
NOSQL DB
    MONGODB/APACHE COUCHDB
• http://www.mongodb.org/
• http://couchdb.apache.org/




                               28
NOSQL DB
        MONGODB/APACHE COUCHDB
• Document-oriented storage
    • 採用JSON格式
•   支援全文檢索
•   容易副本抄寫機制與快速擴充延展
•   無table schemas
•   採用Map/Reduce演算法
•   Enterprise class support, training, and consulting
    available.




                                                         29
NOSQL DB
MONGODB/APACHE COUCHDB




                         30
NOSQL DB
           MONGODB/APACHE COUCHDB

MySQL term            Mongo term

database              database

table                 collection

index                 index

row                   BSON document

column                BSON field

join                  embedding and linking

primary key           _id field




                                              31
NOSQL DB
            MONGODB/APACHE COUCHDB
SQL Statement                             Mongo Statement


CREATE TABLE USERS (a Number, b Number)   implicit; can also be
                                          done explicitly withdb.createCollection("mycoll")



ALTER TABLE users ADD ...                 implicit



INSERT 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
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
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
NOSQL DB
            AMAZON SIMPLEDB
• 免費版限制 每個月上限
 • 25 SimpleDB Machine Hours
 • 1 GB of Storage for free




                               35

Más contenido relacionado

La actualidad más candente

数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)frogd
 
Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012James Chen
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构XiaoJun Hong
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese Vickie Zeng
 
Spark sql培训
Spark sql培训Spark sql培训
Spark sql培训Jiang Yu
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介昱劭 劉
 
分布式存储的元数据设计
分布式存储的元数据设计分布式存储的元数据设计
分布式存储的元数据设计LI Daobing
 
豆瓣数据架构实践
豆瓣数据架构实践豆瓣数据架构实践
豆瓣数据架构实践Xupeng Yun
 
数据库内核分享——第一期
数据库内核分享——第一期数据库内核分享——第一期
数据库内核分享——第一期frogd
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践孙立
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践Li Map
 
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点 大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点 Chao Zhu
 
自助工具助Dba提升效率
自助工具助Dba提升效率自助工具助Dba提升效率
自助工具助Dba提升效率Chao Zhu
 
No sql@vip new
No sql@vip newNo sql@vip new
No sql@vip newChao Zhu
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈Tim Y
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introductionTianwei Liu
 
数据架构方面的一些探讨
数据架构方面的一些探讨数据架构方面的一些探讨
数据架构方面的一些探讨Chao Zhu
 
Elasticsearch search engine_development_tips
Elasticsearch search engine_development_tipsElasticsearch search engine_development_tips
Elasticsearch search engine_development_tipsYI-CHING WU
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现iammutex
 

La actualidad más candente (20)

数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
数据库内核分享第二期(Inno db 日志 回滚段 & 崩溃恢复实现详解)
 
Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012
 
新浪微博Feed服务架构
新浪微博Feed服务架构新浪微博Feed服务架构
新浪微博Feed服务架构
 
Couchbase introduction - Chinese
Couchbase introduction - Chinese Couchbase introduction - Chinese
Couchbase introduction - Chinese
 
Spark sql培训
Spark sql培训Spark sql培训
Spark sql培训
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介
 
分布式存储的元数据设计
分布式存储的元数据设计分布式存储的元数据设计
分布式存储的元数据设计
 
豆瓣数据架构实践
豆瓣数据架构实践豆瓣数据架构实践
豆瓣数据架构实践
 
Mongo db 特性
Mongo db 特性Mongo db 特性
Mongo db 特性
 
数据库内核分享——第一期
数据库内核分享——第一期数据库内核分享——第一期
数据库内核分享——第一期
 
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
 
Hbase架构简介、实践
Hbase架构简介、实践Hbase架构简介、实践
Hbase架构简介、实践
 
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点 大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点
 
自助工具助Dba提升效率
自助工具助Dba提升效率自助工具助Dba提升效率
自助工具助Dba提升效率
 
No sql@vip new
No sql@vip newNo sql@vip new
No sql@vip new
 
分布式Key Value Store漫谈
分布式Key Value Store漫谈分布式Key Value Store漫谈
分布式Key Value Store漫谈
 
Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
 
数据架构方面的一些探讨
数据架构方面的一些探讨数据架构方面的一些探讨
数据架构方面的一些探讨
 
Elasticsearch search engine_development_tips
Elasticsearch search engine_development_tipsElasticsearch search engine_development_tips
Elasticsearch search engine_development_tips
 
redis 适用场景与实现
redis 适用场景与实现redis 适用场景与实现
redis 适用场景与实现
 

Destacado

Sencha touch 2 訓練課程 1 建置專案環境
Sencha touch 2 訓練課程 1 建置專案環境Sencha touch 2 訓練課程 1 建置專案環境
Sencha touch 2 訓練課程 1 建置專案環境My own sweet home!
 
文創產業網路行銷_Ch1 1 - 常用服務申請與使用
文創產業網路行銷_Ch1 1 - 常用服務申請與使用文創產業網路行銷_Ch1 1 - 常用服務申請與使用
文創產業網路行銷_Ch1 1 - 常用服務申請與使用My own sweet home!
 
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)My own sweet home!
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)My own sweet home!
 
開放原始碼 Ch0 intro- final group porject (ver 1.5)
開放原始碼 Ch0   intro- final group porject (ver 1.5)開放原始碼 Ch0   intro- final group porject (ver 1.5)
開放原始碼 Ch0 intro- final group porject (ver 1.5)My own sweet home!
 
行動商務實務 - PhoneGap Basic
行動商務實務 - PhoneGap Basic 行動商務實務 - PhoneGap Basic
行動商務實務 - PhoneGap Basic My own sweet home!
 
行動開店 交易與支付 APPZ - 101-1學期 行動商務管理實務 第六週
行動開店   交易與支付 APPZ - 101-1學期 行動商務管理實務 第六週行動開店   交易與支付 APPZ - 101-1學期 行動商務管理實務 第六週
行動開店 交易與支付 APPZ - 101-1學期 行動商務管理實務 第六週My own sweet home!
 
行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto MarketMy own sweet home!
 

Destacado (8)

Sencha touch 2 訓練課程 1 建置專案環境
Sencha touch 2 訓練課程 1 建置專案環境Sencha touch 2 訓練課程 1 建置專案環境
Sencha touch 2 訓練課程 1 建置專案環境
 
文創產業網路行銷_Ch1 1 - 常用服務申請與使用
文創產業網路行銷_Ch1 1 - 常用服務申請與使用文創產業網路行銷_Ch1 1 - 常用服務申請與使用
文創產業網路行銷_Ch1 1 - 常用服務申請與使用
 
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)開放原始碼 Ch2.1   app - oss - oss ide (ver1.2)
開放原始碼 Ch2.1 app - oss - oss ide (ver1.2)
 
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)開放原始碼 Ch1.2   intro - oss - apahce foundry (ver 2.0)
開放原始碼 Ch1.2 intro - oss - apahce foundry (ver 2.0)
 
開放原始碼 Ch0 intro- final group porject (ver 1.5)
開放原始碼 Ch0   intro- final group porject (ver 1.5)開放原始碼 Ch0   intro- final group porject (ver 1.5)
開放原始碼 Ch0 intro- final group porject (ver 1.5)
 
行動商務實務 - PhoneGap Basic
行動商務實務 - PhoneGap Basic 行動商務實務 - PhoneGap Basic
行動商務實務 - PhoneGap Basic
 
行動開店 交易與支付 APPZ - 101-1學期 行動商務管理實務 第六週
行動開店   交易與支付 APPZ - 101-1學期 行動商務管理實務 第六週行動開店   交易與支付 APPZ - 101-1學期 行動商務管理實務 第六週
行動開店 交易與支付 APPZ - 101-1學期 行動商務管理實務 第六週
 
行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market行動商務 - PhoneGapBuild and Upto Market
行動商務 - PhoneGapBuild and Upto Market
 

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

Hadoop con 2015 hadoop enables enterprise data lake
Hadoop con 2015   hadoop enables enterprise data lakeHadoop con 2015   hadoop enables enterprise data lake
Hadoop con 2015 hadoop enables enterprise data lakeJames Chen
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介Herman Wu
 
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo dbLucien Li
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践mysqlops
 
Sequoia db 技术概述_sacc
Sequoia db 技术概述_saccSequoia db 技术概述_sacc
Sequoia db 技术概述_saccwangzhonnew
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercuryZoom Quiet
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2redhat9
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管Will Huang
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面Tianwei Liu
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结redhat9
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQLjasonfuoo
 

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

Hadoop con 2015 hadoop enables enterprise data lake
Hadoop con 2015   hadoop enables enterprise data lakeHadoop con 2015   hadoop enables enterprise data lake
Hadoop con 2015 hadoop enables enterprise data lake
 
内存数据库[1]
内存数据库[1]内存数据库[1]
内存数据库[1]
 
Azure Data Lake 簡介
Azure Data Lake 簡介Azure Data Lake 簡介
Azure Data Lake 簡介
 
深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
 
MySQL应用优化实践
MySQL应用优化实践MySQL应用优化实践
MySQL应用优化实践
 
Sequoia db 技术概述_sacc
Sequoia db 技术概述_saccSequoia db 技术概述_sacc
Sequoia db 技术概述_sacc
 
File api
File apiFile api
File api
 
File api
File apiFile api
File api
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
No sql
No sqlNo sql
No sql
 
SQL Server 資料庫版本控管
SQL Server 資料庫版本控管SQL Server 資料庫版本控管
SQL Server 資料庫版本控管
 
Why use MySQL
Why use MySQLWhy use MySQL
Why use MySQL
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
Databases on AWS
Databases on AWSDatabases on AWS
Databases on AWS
 
大數據
大數據大數據
大數據
 
Mr&ueh数据库方面
Mr&ueh数据库方面Mr&ueh数据库方面
Mr&ueh数据库方面
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
現代資料庫
現代資料庫現代資料庫
現代資料庫
 

Más de My own sweet home!

Sencha touch 2 訓練課程 3 phonegap整合
Sencha touch 2 訓練課程 3 phonegap整合Sencha touch 2 訓練課程 3 phonegap整合
Sencha touch 2 訓練課程 3 phonegap整合My own sweet home!
 
自造世代下的新創模式
自造世代下的新創模式自造世代下的新創模式
自造世代下的新創模式My own sweet home!
 
Sencha touch 2 訓練課程 2 android環境建置
Sencha touch 2 訓練課程 2 android環境建置Sencha touch 2 訓練課程 2 android環境建置
Sencha touch 2 訓練課程 2 android環境建置My own sweet home!
 
Ch3 文創產業網路行銷_Ch3-露天拍賣入門與實務 商品管理
Ch3   文創產業網路行銷_Ch3-露天拍賣入門與實務 商品管理Ch3   文創產業網路行銷_Ch3-露天拍賣入門與實務 商品管理
Ch3 文創產業網路行銷_Ch3-露天拍賣入門與實務 商品管理My own sweet home!
 
文創產業網路行銷_Ch2 露天拍賣入門與實務 基本操作
文創產業網路行銷_Ch2   露天拍賣入門與實務 基本操作文創產業網路行銷_Ch2   露天拍賣入門與實務 基本操作
文創產業網路行銷_Ch2 露天拍賣入門與實務 基本操作My own sweet home!
 
文創產業網路行銷_Ch1 課程介紹與準備
文創產業網路行銷_Ch1   課程介紹與準備文創產業網路行銷_Ch1   課程介紹與準備
文創產業網路行銷_Ch1 課程介紹與準備My own sweet home!
 
Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹My own sweet home!
 
電子商務軟體 管理與實務 Course Introduction
電子商務軟體 管理與實務 Course Introduction電子商務軟體 管理與實務 Course Introduction
電子商務軟體 管理與實務 Course IntroductionMy own sweet home!
 
行動商務實務 - PhoneGap Advance
行動商務實務 - PhoneGap Advance行動商務實務 - PhoneGap Advance
行動商務實務 - PhoneGap AdvanceMy own sweet home!
 
Apache cordova 開發環境建置
Apache cordova 開發環境建置Apache cordova 開發環境建置
Apache cordova 開發環境建置My own sweet home!
 
Web based mobile devlopment 快速簡介
Web based mobile devlopment 快速簡介Web based mobile devlopment 快速簡介
Web based mobile devlopment 快速簡介My own sweet home!
 
開放原始碼 Ch3.2 mobile - oss - oss行動領域-2 (ver1.0)
開放原始碼 Ch3.2  mobile - oss - oss行動領域-2 (ver1.0)開放原始碼 Ch3.2  mobile - oss - oss行動領域-2 (ver1.0)
開放原始碼 Ch3.2 mobile - oss - oss行動領域-2 (ver1.0)My own sweet home!
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0) My own sweet home!
 
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0) 開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0) My own sweet home!
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)My own sweet home!
 
開放原始碼 Ch2.2 app - oss - google client api & app engine(ver 1.0)
開放原始碼 Ch2.2   app - oss -  google client api & app engine(ver 1.0)開放原始碼 Ch2.2   app - oss -  google client api & app engine(ver 1.0)
開放原始碼 Ch2.2 app - oss - google client api & app engine(ver 1.0)My own sweet home!
 

Más de My own sweet home! (20)

Sencha touch 2 訓練課程 3 phonegap整合
Sencha touch 2 訓練課程 3 phonegap整合Sencha touch 2 訓練課程 3 phonegap整合
Sencha touch 2 訓練課程 3 phonegap整合
 
自造世代下的新創模式
自造世代下的新創模式自造世代下的新創模式
自造世代下的新創模式
 
物聯網 雲端智慧家庭
物聯網 雲端智慧家庭物聯網 雲端智慧家庭
物聯網 雲端智慧家庭
 
Sencha touch 2 訓練課程 2 android環境建置
Sencha touch 2 訓練課程 2 android環境建置Sencha touch 2 訓練課程 2 android環境建置
Sencha touch 2 訓練課程 2 android環境建置
 
Ch3 文創產業網路行銷_Ch3-露天拍賣入門與實務 商品管理
Ch3   文創產業網路行銷_Ch3-露天拍賣入門與實務 商品管理Ch3   文創產業網路行銷_Ch3-露天拍賣入門與實務 商品管理
Ch3 文創產業網路行銷_Ch3-露天拍賣入門與實務 商品管理
 
文創產業網路行銷_Ch2 露天拍賣入門與實務 基本操作
文創產業網路行銷_Ch2   露天拍賣入門與實務 基本操作文創產業網路行銷_Ch2   露天拍賣入門與實務 基本操作
文創產業網路行銷_Ch2 露天拍賣入門與實務 基本操作
 
文創產業網路行銷_Ch1 課程介紹與準備
文創產業網路行銷_Ch1   課程介紹與準備文創產業網路行銷_Ch1   課程介紹與準備
文創產業網路行銷_Ch1 課程介紹與準備
 
Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹Java API for WebSocket 實作介紹
Java API for WebSocket 實作介紹
 
電子商務軟體 管理與實務 Course Introduction
電子商務軟體 管理與實務 Course Introduction電子商務軟體 管理與實務 Course Introduction
電子商務軟體 管理與實務 Course Introduction
 
行動商務實務 - PhoneGap Advance
行動商務實務 - PhoneGap Advance行動商務實務 - PhoneGap Advance
行動商務實務 - PhoneGap Advance
 
JQuery Mobile UI
JQuery Mobile UIJQuery Mobile UI
JQuery Mobile UI
 
Apache cordova 開發環境建置
Apache cordova 開發環境建置Apache cordova 開發環境建置
Apache cordova 開發環境建置
 
創業從零開始
創業從零開始創業從零開始
創業從零開始
 
行動技術開發概論
行動技術開發概論行動技術開發概論
行動技術開發概論
 
Web based mobile devlopment 快速簡介
Web based mobile devlopment 快速簡介Web based mobile devlopment 快速簡介
Web based mobile devlopment 快速簡介
 
開放原始碼 Ch3.2 mobile - oss - oss行動領域-2 (ver1.0)
開放原始碼 Ch3.2  mobile - oss - oss行動領域-2 (ver1.0)開放原始碼 Ch3.2  mobile - oss - oss行動領域-2 (ver1.0)
開放原始碼 Ch3.2 mobile - oss - oss行動領域-2 (ver1.0)
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
 
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0) 開放原始碼 Ch2.5   app - oss - 3rd party api(ver 1.0)
開放原始碼 Ch2.5 app - oss - 3rd party api(ver 1.0)
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
 
開放原始碼 Ch2.2 app - oss - google client api & app engine(ver 1.0)
開放原始碼 Ch2.2   app - oss -  google client api & app engine(ver 1.0)開放原始碼 Ch2.2   app - oss -  google client api & app engine(ver 1.0)
開放原始碼 Ch2.2 app - oss - google client api & app engine(ver 1.0)
 

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

  • 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 Value Maximum Database Size Unlimited Maximum Table Size 32 TB Maximum Row Size 1.6 TB Maximum Field Size 1 GB Maximum Rows per Table Unlimited 250 - 1600 depending on column Maximum Columns per Table types Maximum 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 PostgreSQL Pure Java Yes Yes Yes No No Memory Mode Yes Yes Yes No No Encrypted Yes Yes Yes No No Database ODBC Driver Yes No No Yes Yes Fulltext Search Yes No No Yes Yes Multi Version Yes No Yes Yes Yes Concurrency Footprint (jar/dll ~1 MB ~2 MB ~1 MB ~4 MB ~6 MB size) 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
  • 31. NOSQL DB MONGODB/APACHE COUCHDB MySQL term Mongo term database database table collection index index row BSON document column BSON field join embedding and linking primary key _id field 31
  • 32. NOSQL DB MONGODB/APACHE COUCHDB SQL Statement Mongo Statement CREATE TABLE USERS (a Number, b Number) implicit; can also be done explicitly withdb.createCollection("mycoll") ALTER TABLE users ADD ... implicit INSERT 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