Derby數據庫簡單介紹和使用方法


引言

從軟件角度來說,數據庫分類為兩種:

  • 第一種:數據庫服務器(Database Server)
  • 第二種:嵌入式數據庫(Embedded Database)

像 Oracle、PostgreSQL、MySQL 和 SQL Server 等這些大家熟知的數據庫,我們一般稱它為數據庫服務器,當然也不排除某些數據庫也提供嵌入式版本,例如 MySQL Embedded 就是一個嵌入式的數據庫。

而像 SQLite、Berkeley DB、Derby、H2、HSQL DB 等數據庫,一本內嵌在應用程序中,與應用程序一起運行,我們稱它為嵌入式數據庫

嵌入式數據庫跟數據庫服務器最大的區別在於它們運行的地址空間不同。通常,數據庫服務器獨立地運行一個守護進程(daemon),而嵌入式數據庫與應用程序運行在同一個進程。

在實際開發中,平時接觸最多的應該是數據庫服務器,對嵌入式數據庫使用的比較少。最近學習nacos,其底層所用存儲是derby,本文主要介紹derby數據庫.

一、 Derby 數據庫介紹
Apache Derby 是100% Java 編寫的內存數據庫,屬於 Apache 的一個開源項目。並且是一個容易管理的關系數據庫管理系統,可以和一些商業產品的特性進行交付。
Apache Derby 是一個與平台無關的數據庫引擎,它以 Java 類庫的形式對外提供服務。與其他難以部署的數據庫不同, Derby 數據庫體積小、安裝非常簡單,只需要將其 *.jar 文件復制到系統中並為用戶的項目添加該 *.jar 文件即可
二、 Derby 數據庫的兩種運行模式
1) 內嵌模式。Derby數據庫與應用程序共享同一個JVM,通常由應用程序負責啟動和停止,對除啟動它的應用程
序外的其它應用程序不可見,即其它應用程序不可訪問它;
2) 網絡模式。Derby數據庫獨占一個JVM,做為服務器上的一個獨立進程運行。在這種模式下,允許有多個應用
程序來訪問同一個Derby數據庫。
三、可以從許多技術方面來區分 Derby 和其他數據庫系統
Derby 易於管理。當嵌入到客戶機應用程序中時, Derby 系統不需要任何管理干預。
Derby 是可嵌入的。應用程序可以將數據庫管理系統( Database Management System , DBMS )引擎嵌入應用
程序進程中,從而無需管理單獨的數據庫進程或服務。通過網絡服務器( Network Server )架構或您選擇的服務器架構,可以將 Derby 作為單獨的進程來運行。
Derby 是一個純 Java 的類庫:對於 Java 開發人員,這點十分重要,因為他們正試圖維護 Java 技術的優點,

例如平台無關性、易於配置以及易於安裝。

Derby 不需要專有的 Java 虛擬機( Java Virtual Machine , JVM )。因為完全是用 Java 語言編寫的,所以
它適應所有合格的 JVM 。
DerbyDBMS 引擎是輕量級的。類文件大小大約是 2MB ,並且只使用了 4MB 的 Java 堆。
Derby 支持使用 Java 編寫存儲過程和函數,這些存儲過程和函數可以在應用程序的任何層上運行。 Derby 沒有
專用的存儲過程語言,它使用 JDBC 。
四、 Derby 數據庫的優缺點
1 、 Derby 定位是小型數據庫 , 特別是嵌入式 . 支持的數據庫小於 50GB, 對於小型網站 , 事務不復雜的應用
, 使用它的還是很不錯的 . 另外大型桌面應用也可以用它來保存配置和其他數據 , 可以做到與文件格式無關 ,
因為都是訪問數據庫 .
2 、功能: Derby 支持標准 SQL92, SQL1999, SQL2003, 支持臨時表 , 索引 , 觸發器 , 視圖 , 存儲過程 ,
外鍵 , 約束 , 並行 , 事務 , 加密與安全等 . 只要有 JDK(>=1.3), 就可以運行 Derby.
3 、安全性: Derby 的安全性也做得很到位 , 包括用戶鑒權和加密解密 .
4 、性能: Derby 的性能也是不錯的 . 在插入 100 萬條記錄時 , CPU 的占用率一直低於 40%, 平均每插一條
記錄耗時小於 0.3 毫秒 . 這對於滿足桌面應用程序是綽綽有余的 . 但是比 Oracle 、 MySql 等專業數據庫性
能要低

五、 使用方法
1、安裝Derby數據庫
只需要從Derby官方網站下載Derby的zip或者tar包,解壓就可以了。這里以db-derby-10.4.1.3-bin版本為例,解
壓后得到以下目錄:
1) bin目錄,包含了一些工具腳本和設備環境的腳本;
2) demo目錄,包含了一些實例程序;
3) docs目錄,包含了Derby的文檔;
4) javadoc目錄,包含了Derby的API文檔;
5) lib目錄,包含了Derby數據庫的jar文件;
6) test目錄,Derby的一些測試jar包;
2、使用ij腳本
1) 運行內嵌模式的Derby數據庫
在命令行中找到bin目錄,使用輸入ij使用ij工具(或單擊ij.bat后啟動ij工具)。然后通過如下命令創建數據庫,並與數據庫創建連接:

connect ‘jdbc:derby:firstdb;create=true';


(通過connect命令可以與指定數據庫創建連接,通過一個JDBC URL來指定與哪個數據庫創建連接。ij命令是不區分大小寫的。參數中jdbc:derby是Derby數據庫的驅動協議;firstdb是數據庫名稱,由於沒有指定路徑,數據庫將會被創建在當前你命令行下所在的目錄下;create=true表示如果數據庫不存在,則創建該數據庫;";"是ij命令的終止符。當數據庫創建成功時,Derby會在當前你命令行下所在的目錄下創建一個與數據庫命一致(這里是firstdb)的目錄,其中存放了數據庫的文件。)
與數據庫連接上后,就可以開始執行SQL腳本了,如創建一個表格:

create table firsttable(id int primary key, name varchar(20));

然后插入記錄:

insert into firsttable values(1, ‘Hotpepper');

也可以執行查詢:

select * from firsttable;

也可以通過run命令來執行sql文件:

run 'E:/derby/demo/ToursDB_schema.sql';

最后通過exit;來退出ij工具。
你可以在當前你命令行下所在的目錄中找到一個derby.log的日志文件,derby在其中記錄的數據庫啟動、關閉的信息。
2) 運行網絡模式的Derby數據庫
這種模式下,需要使用兩個控制台窗口,一個用於啟動Derby數據庫服務端,另一個做為訪問Derby數據庫的客戶端。需要在命令行進入bin目錄,運行startNetworkServer.bat啟動數據庫服務器,另一個端口跟運行內嵌模式的Derby數據庫類似,只是連接的命令不同:

connect 'jdbc:derby://localhost:1527/G:/CSESI_DATA/CSESI;create=true';

(其中localhost:1527是本地和端口號,后面的是G盤某個數據庫,也可以是網上的)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM