Thứ Ba, 11 tháng 11, 2014

SQLite: Kiến thức cơ bản (Phần 1)

Mặc dù blog này chủ yếu viết về SQL Server, tuy nhiên trong công việc gần đây tôi có yêu cầu cần phải nghiên cứu một ít liên quan đến các HQTCSDL khác, tìm hiểu một ít về SQLite thấy có một số điều thú vị nên mở thêm một mục liên quan đến nó, sẽ tranh thủ viết một vài bài cho những ai quan tâm. Thực sự phải nói là SQLite cực kì đơn giản, dễ hiểu, đặc biệt cho những ai đã biết về một HQTCSDL nào đó nhự Access, SQL Server...

Trước hết, ta tìm hiểu: 
SQLite là gì?
Theo trang sqlite.com, SQLite là một thư viện thực thi các chức năng của một database engine với đặc điểm giống như một phần mềm portable, không cần cài đặt, không cần cấu hình, không cần server, những điểm này rất khác so với việc sử dụng SQL Server hoặc Oracle, nhưng nó vẫn có transaction để đảm bảo tính toàn vẹn và an toàn trong quá trình thao tác dữ liệu. Có thể so sánh nó có một vài điểm giống với Access, nhưng nhìn chung vẫn có nhiều sự khác biệt.

SQLite được đánh giá là nhanh, tin cậy và đặc biệt là làm cho trở nên đơn giản nhất cho việc học và sử dụng nó.  



Chi tiết về các đặc tính của SQLite
1. Zero-Configuration: 
Bạn hoàn toàn không phải thiết lập bất kỳ một cấu hình nào để có thể sử dụng SQLite, tất cả những gì bạn cần là một file SQLite.exe và chạy.

2. Serverless:
Các HQTCSDL như SQL Server, Oracle, Postgre... thường cần một server riêng để triển khai ứng dụng, cài đặt database engine, các máy khách sẽ kết nối đến server để xử lý dữ liệu một cách tập trung. Tuy nhiên SQLite không làm việc theo cách này mà ứng dụng sẽ truy xuất trực tiếp vào file database, các máy khách cũng có thể truy xuất một file database SQLite để trên một server thông qua cơ chế chia sẻ và bảo mật file của hệ điều hành,người dùng nào truy cập được vào thư mục và có quyền đọc - ghi thì sẽ có thể đọc ghi vào file database SQLite. Tuy nhiên sẽ có những hạn chế của kỹ thuật mà chi tiết bạn đọc có thể tham khảo tại đây.

3. Single Database File: Database do SQLite tạo ra là một file dữ liệu duy nhất. Tất cả chỉ có thế.
4. Stable Cross-Platform Database File
Bạn có thể copy file database SQLite từ hệ thống này sang hệ thống khác, từ hệ thống 32 hay 64 bit, từ phiên bản SQLite này sang phiên bản khác mà không cần chuyển đổi , nâng cấp hệ điều hành, cấu trúc hệ thống hay phải làm lại file database.

5. Compact: Cực kỳ nhỏ gọn.
6. Manifest typing (tạm dịch: kiểu dữ liệu đặc tả):
Khi bạn dùng SQLite sẽ để ý là số lượng kiểu dữ liệu của nó rất ít, điều này là một đặc trưng của nó, bởi trong SQLite, kiểu dữ liệu là một thuộc tính của chính giá trị được lưu chứ không phải là thuộc tính của cột lưu giá trị đó. Tuy vậy, cũng có một vài ràng buộc, là với cột khóa chính kiểu integer thì phải lưu giá trị phải chính xác là kiểu int, ngoài ra SQLite cũng cố gắng chuyển đổi kiểu của giá trị sang kiểu của cột lưu nó khi có thể. Mục đích của việc thiết kế kiểu dữ liệu  như vậy nhằm làm cho nó tin cậy và đơn giản hóa việc sử dụng, và cũng để dễ tương thích hơn khi sử dụng với các ngôn ngữ như Tcl hoặc Python. 

7. Variable-length records
Dữ liệu lưu bao nhiều thì hệ thống cấp phát cho bấy nhiêu không gian bộ nhớ cho từng dòng dữ liệu, không cấp phát thừa hoặc thiếu không gian lưu trữ cho dữ liệu, nhờ đó mà file database trở nên nhỏ gọn và tốc độ xử lý dữ liệu cũng nhanh hơn.

...  Và một số thuộc tính khác, tham khảo chi tiết tại đây: tại đây. 
Các bước để sử dụng SQLite?

Hãy hình dung các bước để sử dụng SQLite như sau: bạn download một file zip có chứa SQLite.exe về giải nén vào một thư mục, sau đó mở cmd lên, chuyển đến thư mục chứa SQLite, chạy SQLite.exe và thực hiện các lệnh tạo database, table, insert dữ liệu, select... hoàn toàn bằng dòng lệnh. Một file chứa database và dữ liệu sẽ được tạo ra vào một thư mục nào đó. Đơn giản chỉ có vậy :D.

Nếu không thích sử dụng dòng lệnh, bạn có thể sử dụng giao diện đồ họa bằng cách tải SQLite studio hoặc SQLite Browser về, các ứng dụng này hoàn toàn miễn phí, gọn nhẹ, không cần cài đặt, tải về chạy file exe và dùng ngay.

Tính phổ biến?

Theo như giới thiệu thì SQLite là HQTCSDL được triển khai phổ biết nhất trên thế giới, (lý do có thể là do được sử dụng rộng rãi trên các thiết bị di động). Và SQLite là một hệ quản trị CSDL mã nguồn mở, hoàn toàn miễn phí.

Một số công ty và sản phẩm sử dụng SQLite như: Oracle, Bentley, Mozilla ( Firefox), Bloomberg...
Search từ khóa "SQLite and Adroid" cũng cho kết quả rất phong phú.

http://sql-note.blogspot.com/

SQL phù hợp với tình huống nào? Có thay thế được cho SQL Server, Oracle, Postgre... được không?
Trả lời luôn là không.
SQLite phù hợp trong các tình huống sau:
  1. Ứng dụng sử dụng dạng flat file để lưu trữ dữ liệu: như từ điển, các ứng dụng nhỏ, lưu cấu hình ứng dụng... Nó mạnh mẽ hơn nhiều kỹ thuật lưu trữ file thông thường..
  2. Sử dụng trong các thiết bị nhúng: smart phone, PDA và các thiết bị di động rất phù hợp với SQLite.
  3. Các website có khoảng 100 nghìn lượt xem/ ngày, mặc dù về mặt lý thuyết thì SQLite có thể đáp ứng gấp 10 lần conn số này.
  4. Là thay thế hoàn hảo cho database dạng file: nhiều ứng dụng sử dụng fopen(), fread(), fwite() để lưu trữ dữ liệu, SQLite sẽ thay thế hoàn toàn kỹ thuật đó bằng kỹ thuật hiện đại hơn, dễ dùng và tin cậy hơn.
  5. Sử dụng làm database tạm để lưu trữ dữ liệu lấy về từ các database trên SQL server, Oracle...
  6. Làm database demo cho các ứng dụng lớn, dùng để làm mô hình khái niệm cho ứng dụng.
  7. Dùng cho giảng dạy: để giảng dạy cho những người mới làm quen với ngôn ngữ truy vấn SQL.
Ngoài các trường hợp trên, tốt hơn hết là bạn sử dụng SQL Server, Oracle, PostgreSQL để xây dựng các ựng dụng cho doanh nghiệp.

1 nhận xét:

  1. mình làm y thế nhưng bị lỗi ở dòng adapter.Fill(dt1);
    dòng 3 từ dưới lên ấy.

    Trả lờiXóa