Apache Derby Bài 05: Khám phá thư mục cài đặt Derby và các công cụ dòng lệnh đi kèm
1. Cấu trúc cây thư mục của bản phân phối Apache Derby
Sau khi giải nén tệp lưu trữ nhị phân (db-derby-X.Y.Z-bin), cấu trúc thư mục tiêu chuẩn của Derby được bố trí trực quan theo từng phân vùng chức năng:
Plaintext
db-derby-X.Y.Z-bin/
├── bin/ # Các script dòng lệnh thực thi trên Windows (.bat) và Linux/Unix (.sh / không đuôi)
├── lib/ # Toàn bộ các gói thư viện Java Archive (.jar) của engine, client, server, tools
├── demo/ # Mã nguồn ví dụ mẫu bằng Java minh họa các kịch bản sử dụng
├── javadoc/ # Tài liệu API dạng HTML dành cho nhà phát triển
├── test/ # Các kịch bản kiểm thử (test suite) của Derby
├── docs/ # Tài liệu hướng dẫn sử dụng chi tiết (User Guides, Reference Manuals)
├── LICENSE # Giấy phép mã nguồn mở Apache 2.0
├── NOTICE # Thông báo bản quyền và xuất xứ nguồn gốc
└── README-FIRST # Hướng dẫn nhanh cho người dùng mới
2. Giải mã các file thư viện trong thư mục lib/
Thư mục lib/ là "trái tim" của Apache Derby. Để tối ưu dung lượng phân phối khi tích hợp vào ứng dụng Java, bạn chỉ cần chọn lọc đúng các file JAR tương ứng với kiến trúc mong muốn thay vì nạp toàn bộ.
| Tên file JAR | Kích thước xấp xỉ | Vai trò & Khi nào cần sử dụng? |
|---|---|---|
| derby.jar | ~3.5 MB | Database Engine cốt lõi. Chứa toàn bộ logic xử lý SQL, quản lý lưu trữ, giao dịch. Bắt buộc phải có trong Embedded Mode. |
| derbyclient.jar | ~600 KB | Client JDBC Driver. Chứa lớp ClientDriver. Chỉ cần dùng khi ứng dụng kết nối từ xa tới Derby Network Server qua giao thức mạng DRDA. |
| derbynet.jar | ~300 KB | Network Server Engine. Chứa mã nguồn để khởi động và vận hành máy chủ Derby lắng nghe kết nối socket (cổng 1527). |
| derbytools.jar | ~250 KB | Bộ công cụ tiện ích. Chứa mã nguồn thực thi của các tiện ích CLI như ij, sysinfo, dblook. |
| derbyshared.jar | ~80 KB | Mã nguồn chia sẻ. Chứa các lớp dùng chung giữa engine, server và client (xuất hiện từ các bản Derby 10.15+). |
| derbyLocale_*.jar | ~100 KB/file | Gói ngôn ngữ/bản địa hóa. Cung cấp thông báo lỗi và chuỗi văn bản cho các ngôn ngữ ngoài tiếng Anh mặc định. |
3. Bộ công cụ dòng lệnh (CLI Tools) trong thư mục bin/
Trong thư mục bin/, mỗi công cụ thường đi kèm 2 phiên bản: script file chạy trên nền tảng Unix/Linux (như ij, sysinfo) và tệp batch chạy trên Windows (như ij.bat, sysinfo.bat).
+-------------------------------------------------------------------------+
| Các công cụ CLI trong bin/ |
+-------------------+--------------------+--------------------------------+
| Công cụ quản trị | Công cụ truy vấn | Công cụ máy chủ mạng |
| & Chuẩn đoán | & Trích xuất | |
| - sysinfo | - ij | - startNetworkServer |
| | - dblook | - stopNetworkServer |
+-------------------+--------------------+--------------------------------+
1. ij (Interactive SQL Tool)
-
Chức năng: Trình thông dịch lệnh SQL tương tác qua Terminal, tương đương với
psqlcủa PostgreSQL hoặcmysqlclient của MySQL. -
Tác vụ hỗ trợ: Kết nối database qua JDBC URL, tạo bảng, chèn/xóa/sửa dữ liệu, quản lý giao dịch, và thực thi các file kịch bản SQL hàng loạt (
run 'script.sql';).
2. sysinfo (System Information)
-
Chức năng: Tiện ích kiểm tra môi trường chạy của JVM và tình trạng của các thư viện Derby.
-
Tác dụng: Giúp phát hiện nhanh xung đột phiên bản JDK, thiếu file JAR trong biến
CLASSPATH, hoặc đường dẫnDERBY_HOMEtrỏ sai thư mục.
3. dblook (Schema DDL Dumper)
-
Chức năng: Trích xuất cấu trúc định nghĩa dữ liệu (DDL - Data Definition Language) từ một database Derby sẵn có ra file văn bản hoặc màn hình console.
-
Cú pháp sử dụng:
Bash
dblook -d "jdbc:derby:ten_csdl" -o schema_backup.sql -
Kết quả: Sinh ra toàn bộ các câu lệnh
CREATE TABLE,CREATE INDEX,CREATE TRIGGER,ALTER TABLEcần thiết để tái tạo lại bộ khung database.
4. startNetworkServer & stopNetworkServer
-
startNetworkServer: Khởi chạy một tiến trình JVM chạy nền đóng vai trò là Derby Network Server lắng nghe trên IP và cổng mạng mặc định (localhost:1527). Có thể truyền thêm tham số-h <host> -p <port>. -
stopNetworkServer: Gửi tín hiệu ngắt an toàn đến máy chủ Derby đang chạy để đóng các tệp dữ liệu, giải phóng file lockdb.lckvà kết thúc tiến trình sạch sẽ.
4. Tóm tắt
-
Việc hiểu rõ vai trò của từng tệp trong thư mục
lib/giúp bạn cấu hình tệppom.xml(Maven) hoặcbuild.gradlechuẩn xác: chỉ cần kéoderby.jarcho ứng dụng nhúng hoặcderbyclient.jarcho ứng dụng kết nối từ xa. -
Thư mục
bin/cung cấp đầy đủ các tiện ích độc lập mà không cần phải cài thêm bất kỳ phần mềm bên thứ ba nào.
Trong bài kế tiếp, chúng ta sẽ bắt tay thực hành trực tiếp với công cụ quan trọng nhất: Apache Derby Bài 06: Thực hành công cụ ij: Kết nối và tạo cơ sở dữ liệu đầu tiên.
All rights reserved