Ứng dụng cơ sở dữ liệu. Các chương trình quản lý và làm việc với cơ sở dữ liệu. Giới thiệu về db ​​và thư mục dữ liệu

Giới thiệu

Cơ sở dữ liệu (DB) -đây là tập hợp dữ liệu được đặt tên phản ánh trạng thái của các đối tượng và mối quan hệ của chúng trong lĩnh vực chủ đề.

Cơ sở dữ liệu – là một chương trình máy tính chịu trách nhiệm tạo, chỉnh sửa, xóa và lưu trữ chung cơ sở dữ liệu (DB) hoặc bộ sưu tập các bản ghi dữ liệu.

Các chức năng của DBMS:

1. Xác định cấu trúc của cơ sở dữ liệu sẽ được tạo, khởi tạo và tải ban đầu.

2. Cung cấp cho người dùng khả năng thao tác dữ liệu (chọn dữ liệu cần thiết, thực hiện tính toán, phát triển giao diện đầu vào/đầu ra, trực quan hóa).

3. Đảm bảo tính độc lập về mặt logic và vật lý của dữ liệu.

4. Bảo vệ tính toàn vẹn logic của cơ sở dữ liệu.

5. Bảo vệ tính toàn vẹn vật lý.

6. Quản lý quyền truy cập cơ sở dữ liệu của người dùng.

7. Đồng bộ hóa công việc của nhiều người dùng.

8. Quản lý tài nguyên môi trường lưu trữ.

9. Hỗ trợ hoạt động của nhân sự hệ thống.

Chương 1

1.1.Các loại DBMS:

quan hệ

DBMS quan hệ là loại hệ thống quản lý cơ sở dữ liệu phổ biến nhất hiện nay. Chúng thực sự dễ sử dụng. Các DBMS quan hệ có tên này vì... họ lưu trữ dữ liệu theo thứ tự trong bảng. Mô hình quan hệ dựa trên việc lưu trữ dữ liệu được sắp xếp theo cột và hàng. Dữ liệu có thể được liên kết trong cùng một bảng hoặc trên các bảng khác nhau. Các loại quan hệcơ sở dữ liệu có thể thiếu hiệu suất so với các loại hệ thống quản lý cơ sở dữ liệu khác, nhưng chúng không có khả năng xử lý và các vấn đề tìm kiếm bộ nhớ của PC hiện đại. Dữ liệu trong loại DBMS này được lưu trữ ở dạng được xác định chính xác và chúng thường được quản lý bằng ngôn ngữ lập trình SQL (Ngôn ngữ truy vấn có cấu trúc). Bạn cũng có thể chỉ định các loại DBMS phổ biến nhất - Oracle, MSSqlServer, IBMDB2, PostgreSQL và nhiều loại khác.

Hệ thống quản lý cơ sở dữ liệu tệp phẳng

DBMS FlatFile có lẽ là loại đơn giản nhất. Chúng đôi khi còn được gọi là mô hình phẳng. Ý tưởng là khởi chạy một ứng dụng duy nhất chứa cài đặt chương trình và định dạng mô hình lưu trữ ban đầu. Các tệp phẳng trong các hàng và cột được định dạng giả định rằng mỗi phần tử trong một mô hình cụ thể đều chứa cùng một thông tin. Một ví dụ nổi tiếng về loại DBMS này là CSV (Giá trị được phân tách bằng dấu phẩy) và một ví dụ khác là các bảng như MS Excel.

Thứ bậc

Các DBMS phân cấp dựa trên mô hình cây gia đình. Ở đây, các phần tử thường có mối quan hệ một-nhiều và thật tốt khi lưu trữ thông tin kèm theo mô tả về các phần tử, đặc điểm, v.v. Tại đây bạn có thể lưu trữ một cuốn sách với các chương và câu thơ. Các loại phân cấpcơ sở dữ liệu có thể được sử dụng để lưu trữ cơ sở dữ liệu với các bài hát, công thức nấu ăn, kiểu điện thoại và nói chung là bất kỳ thứ gì có thể được lưu trữ ở định dạng lồng nhau. Các kiểu hệ thống quản lý cơ sở dữ liệu phân cấp có thể kém hiệu quả hơn khi làm việc với nhiều đối tượng thực khác nhau. Một ví dụ về các kiểu DBMS phân cấp là tài liệu XML.

Mạng

Hệ thống quản lý cơ sở dữ liệu mạng sử dụng mô hình dữ liệu tương tự như mô hình phân cấp. Sự khác biệt chính là cấu trúc của một mạng DBMS cho phép nhiều cha mẹ cho nhiều con. Các loại mạng của DBMS dựa trên các bản ghi và bộ và sử dụng SQL cho công việc của họ. Các hệ thống quản lý cơ sở dữ liệu dựa trên mạng có xu hướng rất linh hoạt nhưng chúng hiếm khi được sử dụng sau những năm 1960 và 1970. Khi tìm kiếm phần tử được yêu cầu, chương trình yêu cầu sẽ xem xét tất cả các phần tử được cài đặt, điều này có thể quá cồng kềnh. Loại hệ thống quản lý cơ sở dữ liệu này trên thực tế đã được thay thế bằng các hệ thống quan hệ.

Chọn chương trình để viết cơ sở dữ liệu

Trong khóa học của mình, tôi đã sử dụng cơ sở dữ liệu quan hệ bằng Microsoft Access.

Microsoft truy cập– một trong những DBMS phổ biến nhất dành cho hệ điều hành Microsoft Windows. Ngoài ra, Access DBMS là một nền tảng phát triển mạnh mẽ với môi trường tích hợp linh hoạt và đầy đủ chức năng. Microsoft Access có thể được sử dụng như một công cụ để phát triển và triển khai các hệ thống thông tin kinh doanh trên diện rộng.

Access sử dụng như sau các loại trường chính:

chữ: dành cho thông tin văn bản và số khi không cần thực hiện các phép toán với chúng;

số: dành cho các con số khi sử dụng trong tính toán toán học;

BẢN GHI NHỚ: được thiết kế để lưu trữ văn bản hoặc nhận xét tùy ý (dài tối đa 64.000 ký tự);

tiền tệ: được thiết kế để lưu trữ các số đại diện cho số tiền;

ngày giờ: được thiết kế để lưu trữ thông tin ngày và giờ;

quầy tính tiền: một trường số đặc biệt được thiết kế để tự động thêm một số duy nhất cho bản ghi hiện tại trong bảng dữ liệu.

hợp lý: được thiết kế để chỉ lưu trữ hai giá trị “Đúng” và “Sai”;

Trường đối tượng OLE: dùng để lưu trữ các đối tượng được tạo bởi các ứng dụng khác (bản vẽ, đồ thị, sơ đồ).

Trong Microsoft Access, có một số cách để chỉ chọn dữ liệu bạn cần khi tìm kiếm một giá trị cụ thể, một bản ghi hoặc một nhóm bản ghi.

Sử dụng hộp thoại Tìm kiếm Thật dễ dàng để tìm thấy các bản ghi cụ thể hoặc các giá trị cụ thể trong các trường. Khi mỗi lần xuất hiện của phần tử bắt buộc được tìm thấy, nó sẽ di chuyển qua các bản ghi. Nếu bạn cần thay thế các giá trị cụ thể được tìm thấy trong quá trình tìm kiếm, bạn nên sử dụng hộp thoại Thay thế.

Yêu cầu cho phép làm việc với một bộ bản ghi cụ thể thỏa mãn các điều kiện được chỉ định cho một hoặc nhiều bảng cơ sở dữ liệu. Khi bạn chạy truy vấn, bạn có thể làm việc độc lập với tập hợp bản ghi này ở dạng hoặc đối tượng cụ thể trong chế độ xem bảng.

Sắp xếp cho phép sắp xếp các hàng trong bảng theo nội dung của một hoặc nhiều cột. Để sắp xếp, hãy chọn trường mà việc sắp xếp sẽ được thực hiện và nhấp vào nút “Sắp xếp tăng dần” hoặc “Sắp xếp giảm dần” trên thanh công cụ.

Lọc cho phép bạn tạm thời cách ly và xem một bộ hồ sơ cụ thể đáp ứng các điều kiện nhất định. Để lọc, hãy chọn dữ liệu bạn muốn lọc và nhấp vào nút “Lọc theo đã chọn” trên thanh công cụ. Để thay đổi bộ lọc, hãy sử dụng nút “Thay đổi bộ lọc”. Để đặt các điều kiện chi tiết hơn cho việc lọc trong menu “Ghi”, hãy sử dụng lệnh “Bộ lọc” và lệnh phụ “Bộ lọc nâng cao”. Để áp dụng bộ lọc thông thường hoặc nâng cao, hãy sử dụng nút “Áp dụng bộ lọc” trên thanh công cụ.

chương 2

Xây dựng vấn đề

Mục đích của cơ sở dữ liệu Khách sạn là tự động hóa quy trình hạch toán và phân tích dữ liệu khách sạn.

Nhiệm vụ giải quyết khi sử dụng cơ sở dữ liệu:

Lưu trữ và truy xuất dữ liệu về nhân viên khách sạn;

Lưu trữ và truy xuất thông tin về khách hàng của khách sạn;

Lưu trữ và truy xuất thông tin về các con số;

Lưu trữ dữ liệu đặt phòng, nhận phòng, trả phòng của khách hàng và tính toán thanh toán tiền lưu trú

Tính toán và phân tích thông tin về việc nhận thanh toán tiền lưu trú từ khách hàng của công ty;

Tìm kiếm thông tin các mục chính: phòng đã đặt, nhận phòng trong kỳ, trả phòng trong kỳ.

Tạo cơ sở dữ liệu

Để tạo cơ sở dữ liệu MS Access, Table Designer đã được sử dụng, cho phép bạn xác định cấu trúc bảng cần thiết.

Để hiển thị thông tin đầy đủ về tình trạng của khách sạn, các lĩnh vực hoạt động và báo cáo về công việc đã thực hiện, các bảng sau đã được tạo:

1. “Nhân viên”

Bảng có các trường sau: mã nhân viên(trường khóa) - kiểu dữ liệu: bộ đếm; Họ và tên– kiểu dữ liệu: văn bản, kích thước – 50, tùy chọn, không cho phép khớp; Ngày sinh–kiểu dữ liệu: ngày\giờ, tùy chọn; giáo dục– kiểu dữ liệu: thay thế chính – tập dữ liệu cố định (cao hơn, thứ cấp); chức danh công việc–người chỉ đạo thay người (danh sách các vị trí sẵn có); Địa chỉ– kiểu dữ liệu: văn bản, kích thước-50, tùy chọn; Điện thoại– kiểu dữ liệu: số, trường tùy chọn; lương– kiểu dữ liệu: tiền tệ, định dạng trường – rúp, tùy chọn. Bảng ở chế độ thiết kế trông như thế này:

2. “Chức vụ”

Bảng này có các trường sau: mã công việc– bộ đếm (trường khóa); chức danh công việc– kiểu dữ liệu: text (tập hợp các vị trí chính).

3. "Những con số"

Bảng này có các trường sau: mã số– bộ đếm kiểu dữ liệu (trường khóa); loại– kiểu dữ liệu: cài đặt chính (đơn, đôi, Junior Suite, sang trọng)

Lĩnh vực: mã danh mục– kiểu dữ liệu: bộ đếm (trường khóa), con số- chữ; loại- bậc thầy về sự thay thế (số); số lượng chỗ ngồi– kiểu dữ liệu: số nguyên dài, tùy chọn; số phòng- tương tự; thông tin thêm– kiểu dữ liệu: MEMO; chi phí mỗi ngày– kiểu dữ liệu: tiền tệ, định dạng – rúp, tùy chọn.

5. “Trạng thái số”

Lĩnh vực: mã số– bộ đếm, trường khóa; con số- tài liệu thay thế kiểu dữ liệu (trường tương tự từ bảng “Danh mục phòng”); người lao động(người giúp việc) - người thay thế chính (từ một truy vấn trên bảng “nhân viên”, với điều kiện lựa chọn là “người giúp việc”), các trường - đặt phòng, nhận phòng, trả phòng– kiểu dữ liệu: ngày\giờ, trường tùy chọn; khách hàng – ​​người thay thế chính (từ bảng “Khách hàng”).

6. “Khách hàng”

Lĩnh vực: Mã khách hàng Họ và tên– kiểu dữ liệu: văn bản, kích thước trường - 50, bắt buộc; Ngày sinh- kiểu dữ liệu: ngày\giờ, bắt buộc; sàn nhà- chủ sản xuất (vợ, chồng); loại tài liệu– người chủ sản xuất (hộ chiếu, giấy phép quân sự, chứng minh nhân dân), bắt buộc; loạt- văn bản, bắt buộc; con số– số, bắt buộc; phát hành bởi– văn bản, kích thước trường – 50, bắt buộc, ngày phát hành– ngày/giờ, bắt buộc.

Lĩnh vực: mã con– kiểu dữ liệu: bộ đếm (trường khóa); Mã khách hàng– kiểu dữ liệu: trình hướng dẫn thay thế (một trường tương tự từ bảng “khách hàng”); Họ và tên– kiểu dữ liệu: văn bản, kích thước trường – 50; Ngày sinh– Kiểu dữ liệu: ngày\giờ.

Lược đồ dữ liệu trông giống như:

Các bảng Tình trạng phòng và Nhân viên được liên kết thông qua một yêu cầu dành cho Nhân viên, với điều kiện lựa chọn là “người giúp việc”.

Để thuận tiện, các truy vấn đã được tạo cho cơ sở dữ liệu Khách sạn.

Yêu cầu số 1 – “Đặt chỗ”

Trong dòng điều kiện Lựa chọn, điều kiện sau được nhập:

>=[s] Và<=[по]

Có nghĩa là việc lựa chọn các trường trong một khoảng thời gian nhất định.

Truy vấn 2 và 3 được tạo tương tự.

Yêu cầu số 2 - “Nhận phòng”

Yêu cầu số 3 – “Trả phòng”

Yêu cầu số 4 – “Khách hàng có trẻ em.”

Truy vấn trong chế độ thiết kế trông như thế này:

Yêu cầu này hệ thống hóa thông tin về việc khách hàng có con hay không, điều này cần thiết để nhận được một số chiết khấu, quyền lợi nhất định, v.v.

Yêu cầu số 5 – “Thanh toán tiền ăn ở.”

Yêu cầu chứa một biểu thức phản ánh việc tính toán chi phí sinh hoạt cho mỗi khách hàng.

Yêu cầu số 6 – “Đã thanh toán trong tháng.”

Yêu cầu chứa một biểu thức phản ánh cách tính chi phí sinh hoạt cho mỗi khách hàng:

Thanh toán chỗ ở: (Tình trạng phòng. Trả phòng - Tình trạng phòng. Nhận phòng + 1) * Loại phòng [Chi phí mỗi ngày].

Cũng như việc lựa chọn các lĩnh vực cho giai đoạn này.

Yêu cầu số 7 – “Thanh toán theo tiến độ.”

Tương tự như yêu cầu 6, ngoại trừ việc chọn khoảng thời gian để chọn trường. Dựa trên dữ liệu từ truy vấn này, các biểu đồ để phân tích cũng như bảng tổng hợp sẽ được xây dựng.

Yêu cầu số 8 – “Yêu cầu vị trí”.

Yêu cầu với điều kiện lựa chọn nhân viên “người giúp việc”. Dùng để thay thế dữ liệu vào bảng Trạng thái Số.

Việc tạo các truy vấn này giúp đơn giản hóa đáng kể các hoạt động báo cáo của khách sạn, hệ thống hóa thông tin một cách thuận tiện và cho phép bạn nhanh chóng sử dụng và thực hiện các thay đổi. Danh sách các yêu cầu được trình bày dưới đây:

Các báo cáo như sau:

Làm việc với cơ sở dữ liệu bắt đầu bằng cách mở biểu mẫu Khách sạn:

Bên trái là các nút mở báo cáo, bên phải để nhập và xem dữ liệu về các vị trí chính.

Ví dụ: biểu mẫu Thông tin phòng trông như thế này:

Tại đây bạn có thể xem toàn bộ thông tin về phòng khách sạn cũng như danh sách tất cả các phòng. Khi mình chọn một vị trí, chúng ta có thể xem ngay tất cả thông tin về phòng. Ở góc dưới bên trái có các nút để dễ dàng làm việc với các bản ghi. Ở phía trên bên phải có nút để mở biểu mẫu Nhập danh mục phòng.

Sử dụng nút Booking Check-in Check-out, chúng ta sẽ mở biểu mẫu:

Trong đó có ba tab:

Thông tin phòng – thông tin đầy đủ về các phòng có sẵn;

Động lực của các khoản thu – động lực của các khoản thu theo số lượng:

Tóm tắt thanh toán – tóm tắt thanh toán từng phòng:

Nút Nhân viên Khách sạn mở ra biểu mẫu sau:

Tại đây bạn có thể xem thông tin về nhân viên cũng như nhập các thông tin cần thiết.

Với sự hỗ trợ của việc hiển thị các báo cáo, các nhiệm vụ tìm kiếm thông tin về tình trạng phòng được giải quyết: đặt phòng, nhận phòng, trả phòng cũng như phản ánh thông tin thanh toán và hiển thị biên lai cho khách hàng.

Như vậy, cơ sở dữ liệu này giải quyết được các vấn đề được giao.

Phần kết luận

Trong quá trình thực hiện khóa học, cơ sở dữ liệu “Khách sạn” đã được tạo. Cơ sở dữ liệu này dành cho nhân viên vì nó đơn giản hóa quy trình dịch vụ khách hàng.

Cơ sở dữ liệu này bao gồm: bảng, truy vấn, biểu mẫu và báo cáo cũng như cửa sổ tự động chạy để dễ sử dụng.

Văn học:

1. Date, K., J. Giới thiệu về hệ cơ sở dữ liệu. tái bản lần thứ 6. - ĐẾN.; M., St. Petersburg: “Williams”, 2000. – 848 tr.

2. Khomonenko A.D., Tsygankov V.M., Maltsev M.G. Cơ sở dữ liệu: Sách giáo khoa cho các cơ sở giáo dục đại học / Ed. giáo sư ĐỊA NGỤC. Khomonenko. – St. Petersburg: Bản in CORONA, 2002. – 672 tr.

3. V.V. Korneev, A.F. Gareev, S.V. Vasyutin, V.V. Cơ sở dữ liệu Reich. Xử lý thông tin thông minh. – M.: Kiến thức, 2001.- 496 tr.

4. Prag K., Irwin M., “Truy cập Kinh thánh dành cho người dùng Windows 2000”, K.: Biện chứng, 2001 - 576 trang.

5. Garnaev A.S., “Người tự dạy VBA”, St. Petersburg, 1999. – 104 tr.

6. Microsoft Access 2010. Phát triển ứng dụng bằng ví dụ thực tế - G. Gurvits - 496 p.

7. Thiết kế cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu Microsoft Access. Sách giáo khoa - N. N. Grinchenko, E. V. Gusev, N. P. Makarov - 240 tr.

8. Access 2007. Sử dụng hiệu quả - V. E. Koshelev - 590 tr.

DbVisualizer 9.1.5

DbVisualizer là một công cụ cơ sở dữ liệu dành cho nhà phát triển và quản trị viên cơ sở dữ liệu, giúp bạn phát triển và bảo trì cơ sở dữ liệu của mình.

Chim lửa 2.5.2

Firebird là cơ sở dữ liệu quan hệ cung cấp nhiều tính năng tiêu chuẩn ANSI SQL chạy trên Linux, Windows và nhiều nền tảng Unix. Firebird cung cấp khả năng đồng thời tuyệt vời, hiệu suất cao và hỗ trợ ngôn ngữ mạnh mẽ cho các thủ tục được lưu trữ và trình kích hoạt.

Reitec.PMM 1.2.1.0

Reitec.PMM là một công cụ miễn phí để quản lý thiết bị kiểm tra như một phần của việc đảm bảo chất lượng.

WowBase 1.1

Tạo cơ sở dữ liệu của riêng bạn một cách nhanh chóng và dễ dàng.

Danh bạ của tôi 3.1

Quản lý danh bạ, ngày sinh nhật và ngày/công việc.

LibreOffice Rus cho Windows 3.6.4

Bộ ứng dụng văn phòng LibreOffice là giải pháp thay thế miễn phí tốt nhất cho Microsoft Office 2003, 2007 và thậm chí 2010.

PhpMyAdmin 3.5.3

phpMyAdmin Rus là một chương trình quản lý cơ sở dữ liệu MySQL mà bạn có thể tải xuống và sử dụng miễn phí - cả ở nhà và trong tổ chức. Phiên bản tiếng Nga.

Oracle MySQL cho Linux, UNIX, *BSD và *nix 5.5.28 Final / 6.0.6 Beta khác

Oracle MySQL - Máy chủ cơ sở dữ liệu nổi tiếng. Nổi tiếng với sự ổn định và tốc độ hoàn hảo.

Oracle MySQL cho Windows 5.5.28 Cuối cùng / 6.0.6 Beta

MySQL là một trong những cơ sở dữ liệu nguồn mở phổ biến nhất và hoàn toàn miễn phí để tải xuống và sử dụng.

Nhiều công ty tạo ra nhiều ứng dụng giàu tính năng khác nhau để tạo điều kiện thuận lợi cho việc quản lý, phát triển và quản trị cơ sở dữ liệu.

Hầu hết các cơ sở dữ liệu quan hệ, ngoại trừ MS Access, bao gồm hai thành phần riêng biệt: "back-end" nơi dữ liệu được lưu trữ và "front-end" - giao diện người dùng để tương tác với dữ liệu. Kiểu thiết kế này khá thông minh vì nó song song với mô hình lập trình hai lớp, tách lớp dữ liệu khỏi giao diện người dùng và cho phép thị trường phần mềm tập trung trực tiếp vào việc cải tiến sản phẩm của mình. Mô hình này mở ra cơ hội cho các bên thứ ba xây dựng ứng dụng của riêng họ để tương tác với các cơ sở dữ liệu khác nhau.

Trên Internet, bất kỳ ai cũng có thể tìm thấy nhiều sản phẩm để phát triển và quản trị cơ sở dữ liệu MySQL. Chúng tôi quyết định tập hợp 10 công cụ phổ biến nhất trong một bài viết để bạn có thể tiết kiệm thời gian của mình.

1.Bàn làm việc

Vị trí đầu tiên thuộc về công cụ Workbench (do Sun Systems/Oracle phát triển), có thể chạy trên nền tảng Microsoft Windows, Mac OS X và Linux. Workbench kết hợp phát triển và quản trị cơ sở dữ liệu và là phiên bản kế thừa của DBDesigner4.

Bàn làm việc MySQLđược phân phối theo giấy phép miễn phí - Phiên bản cộng đồng và đăng ký trả phí hàng năm - Phiên bản tiêu chuẩn. Cái sau bao gồm các tính năng bổ sung có thể cải thiện đáng kể năng suất của cả nhà phát triển và quản trị viên cơ sở dữ liệu.

Chi phí là miễn phí.

Điều gì khiến Workbench trở nên phổ biến?

  • khả năng trình bày mô hình cơ sở dữ liệu ở dạng đồ họa, cũng như chỉnh sửa dữ liệu trong bảng;
  • sự hiện diện của một cơ chế đơn giản và chức năng để tạo mối quan hệ giữa các trường bảng, trong đó mối quan hệ “nhiều-nhiều” được triển khai với khả năng tạo bảng quan hệ;
  • chức năng Kỹ thuật đảo ngược cho phép bạn khôi phục cấu trúc của các bảng và mối quan hệ từ cấu trúc đã được triển khai trước đó và được lưu trữ trên máy chủ cơ sở dữ liệu;
  • sự hiện diện của trình soạn thảo truy vấn SQL, giúp khi được gửi đến máy chủ, có thể nhận được phản hồi ở dạng bảng và các tính năng khác.

2. Điều hướng

Nơi thứ hai điều hướng(được phát triển bởi PremiumSoft CyberTech Ltd) là một công cụ để phát triển và quản trị cơ sở dữ liệu chạy trên bất kỳ máy chủ MySQL nào bắt đầu từ phiên bản 3.21. Đối với MySQL, Navicat có sẵn để chạy trên nền tảng Microsoft Windows, Mac OS X và Linux.

Giá sản phẩm dao động từ $199 đến $379.

Điều gì khiến Navicat được ưa chuộng?

  • Sự sẵn có của một nhà thiết kế truy vấn trực quan;
  • khả năng nhập, xuất và sao lưu dữ liệu;
  • khả năng tạo báo cáo;
  • Đường hầm SSH và HTTP;
  • di chuyển và đồng bộ hóa dữ liệu và cấu trúc;
  • công cụ lập kế hoạch nhiệm vụ và các tính năng khác.

3. PHPMyAdmin

PHPMyAdmin là một ứng dụng mã nguồn mở miễn phí được thiết kế để quản lý MySQL DBMS. PHPMyAdmin là một giao diện web mà bạn có thể quản trị máy chủ MySQL, chạy lệnh và xem nội dung của các bảng và cơ sở dữ liệu thông qua trình duyệt.

Chi phí là miễn phí.

Điều gì khiến PHPMyAdmin trở nên phổ biến?

  • khả năng quản lý MySQL DBMS mà không cần nhập trực tiếp các lệnh SQL;
  • như một bảng điều khiển PHPMyAdmin cung cấp khả năng quản trị cơ sở dữ liệu chuyên dụng;
  • phát triển chiều sâu;
  • khả năng tích hợp PHPMyAdmin vào sự phát triển của riêng bạn nhờ Giấy phép Công cộng GNU và các tính năng khác.

4. dbForge Studio cho MySQL

dbForge Studio cho MySQL- một công cụ được cả người dùng MySQL và nhà phát triển cơ sở dữ liệu quan tâm. Với sự trợ giúp của nó, bạn có thể dễ dàng tự động hóa công việc thường ngày và tiết kiệm thời gian. Ngày nay, dbForge Studio cho MySQL có sẵn ba phiên bản: Express, Standard và Professional, cho phép bạn chọn công cụ bạn cần. Bạn có thể sử dụng dbForge Studio cho MySQL ở cả phiên bản thương mại và miễn phí.

Có cả phiên bản miễn phí và trả phí, phiên bản sau có giá 49,95 USD (phiên bản tiêu chuẩn) và 99,99 USD (phiên bản chuyên nghiệp).

Điều gì khiến dbForge Studio trở nên phổ biến?

  • nguồn vốn sẵn có cho việc quản lý tập trung;
  • công cụ so sánh cơ sở dữ liệu;
  • trình hồ sơ truy vấn trực quan;
  • khả năng quản lý đặc quyền của người dùng;
  • sự sẵn có của Trình thiết kế cơ sở dữ liệu, cho phép bạn xây dựng sơ đồ trực quan;
  • cải thiện công việc với các dự án cơ sở dữ liệu và các tính năng khác.

5.HeidiSQL

HeidiSQL là một công cụ quản lý cơ sở dữ liệu miễn phí. Một giải pháp thay thế xứng đáng cho PHPMyAdmin, cho phép bạn tạo và chỉnh sửa bảng, dạng xem, trình kích hoạt, quy trình cũng như xem và chỉnh sửa dữ liệu. HeidiSQL cũng cung cấp khả năng xuất dữ liệu sang cả tệp SQL và vào bảng tạm trên các máy chủ khác.

Chi phí là miễn phí.

Điều gì khiến HeidiSQL trở nên phổ biến?

  • khả năng kết nối với máy chủ bằng dòng lệnh;
  • khả năng tối ưu hóa hàng loạt và khôi phục bảng;
  • khả năng chỉnh sửa các cột, chỉ mục và khóa ngoại của bảng, chỉnh sửa nội dung và tham số của các thủ tục SQL, trình kích hoạt, v.v.;
  • dễ dàng định dạng SQL không có thứ tự;
  • đồng bộ hóa bảng giữa các cơ sở dữ liệu khác nhau và các tính năng khác.

6. Maestro SQL cho MySQL

SQL Maestro cho MySQL- một công cụ để quản trị, phát triển và quản lý DBMS phổ biến nhất. Giao diện đồ họa thuận tiện cho phép thực thi các truy vấn và tập lệnh SQL, quản lý đặc quyền của người dùng, xuất và tạo bản sao lưu dữ liệu.

Tùy thuộc vào giấy phép đã chọn và trường hợp sử dụng, chi phí của công cụ này dao động từ 99 USD đến 1.949 USD.

Điều gì khiến SQL Maestro cho MySQL trở nên phổ biến?

  • hỗ trợ các phiên bản máy chủ MySQL từ phiên bản 3.23;
  • Sự sẵn có của một nhà thiết kế cơ sở dữ liệu;
  • khả năng chỉnh sửa, nhóm, sắp xếp và lọc dữ liệu;
  • trình tạo truy vấn trực quan;
  • Đường hầm SSH và HTTP;
  • Trình chỉnh sửa BLOB và các tính năng khác.

7. Trình quản lý EMS SQL cho MySQL

Trình quản lý EMS SQL cho MySQL là một công cụ quản trị và phát triển cơ sở dữ liệu hỗ trợ nhiều tính năng khác nhau của MySQL và hoạt động với tất cả các phiên bản MySQL cũ hơn 3.23. Với sự trợ giúp của nó, bạn có khả năng chỉnh sửa, nhập và xuất cơ sở dữ liệu một cách trực quan, thực thi tập lệnh SQL, quản lý đặc quyền người dùng, thiết kế trực quan cơ sở dữ liệu MySQL.

Có một phiên bản trả phí và miễn phí của ứng dụng. Sau này có một số hạn chế về chức năng. Chi phí của phiên bản trả phí dao động trong khoảng 95 – 245 đô la Mỹ.

Điều gì khiến EMS SQL Manager cho MySQL trở nên phổ biến?

  • Hỗ trợ dữ liệu UTF8;
  • quản lý dễ dàng các đối tượng MySQL khác nhau;
  • tương thích với tất cả các phiên bản từ 3.23 đến 6.0;
  • sự sẵn có của các công cụ đồ họa và văn bản để tạo truy vấn;
  • Đường hầm SSH và HTTP;
  • thiết kế báo cáo thuận tiện và các tính năng khác.

8. SQLyog

SQLyog là một trong những công cụ mạnh mẽ nhất kết hợp khả năng của MySQL Administrator, PHPMyAdmin và một số công cụ khác để quản trị và phát triển cơ sở dữ liệu. SQLyog chạy trên nền tảng Microsoft Windows, Windows NT. và Linux sử dụng Wine.

Có cả phiên bản SQLyog miễn phí và trả phí. Phiên bản trả phí có giá từ $99 đến $1,499 (thay đổi tùy thuộc vào số lượng người dùng và giấy phép, có hoặc không có hỗ trợ).

Điều gì khiến SQLyog trở nên phổ biến?

  • trình tạo truy vấn thuận tiện;
  • khả năng đồng bộ hóa dữ liệu;
  • Hỗ trợ Unicode;
  • Đường hầm SSH và HTTP, HTTPS;
  • tự động tắt máy “thông minh”;
  • hoàn thành mã thông minh và các tính năng khác.

9. Trình quản lý DBTools

Trình quản lý DBTools- một ứng dụng quản lý dữ liệu có hỗ trợ tích hợp cho MySQL, PostgreSQL, MSAccess, MSSQL Server, Oracle và các cơ sở dữ liệu khác. Nền tảng hỗ trợ: Windows 2000, XP, Vista, 7.

Trình quản lý DBTools có sẵn ở phiên bản miễn phí (Tiêu chuẩn) và trả phí (Doanh nghiệp). Chi phí là 69,90 USD cho mỗi giấy phép, có giảm giá khi mua nhiều giấy phép.

Bạn có thể tìm hiểu thêm và mua DBTools Manager tại đây

Hãy tạo một ứng dụng cơ sở dữ liệu đơn giản hiển thị thông tin từ bảng "Khách du lịch" và bản ghi bảng "Thông tin du lịch" từ cơ sở dữ liệu Microsoft Access được liên kết với bản ghi hiện tại của bảng "Khách du lịch".

Để làm điều này, hãy tạo một ứng dụng Windows trống. Môi trường xuất hiện

phát triển được thể hiện trong Hình 39.

Cơm. 39. Ứng dụng trống

Hình 39 nêu bật nhóm thành phần “Dữ liệu”, chứa các thành phần để truy cập và thao tác dữ liệu.

Việc liên kết dữ liệu cơ sở dữ liệu với biểu mẫu được thực hiện bởi thành phần “Nguồn liên kết”. Hãy chuyển nó sang biểu mẫu. Sau khi đặt nó vào biểu mẫu, môi trường phát triển sẽ có dạng sau (Hình 40).

Cơm. 40. Thành phần Binding Source trên biểu mẫu

Thành phần này không trực quan nên nó được hiển thị trong một bảng bổ sung. Thuộc tính chính của thành phần là thuộc tính DataSource, trỏ đến nguồn dữ liệu. Theo mặc định, thuộc tính trống, vì vậy bạn cần định cấu hình giá trị của nó. Khi bạn chọn thuộc tính này trong cửa sổ thuộc tính, cửa sổ sau sẽ xuất hiện (Hình 41).

Cơm. 41. Danh sách nguồn dữ liệu

Danh sách hiện trống, vì vậy bạn cần tạo nguồn dữ liệu mới bằng cách chọn lệnh Thêm nguồn dữ liệu dự án để tạo nguồn dữ liệu mới và kết nối với nó. Hộp thoại sau xuất hiện (Hình 42).

Cơm. 42. Danh sách nguồn dữ liệu

Hộp thoại này cung cấp lựa chọn nguồn dữ liệu sau:

Cơ sở dữ liệu - Cơ sở dữ liệu;

Dịch vụ - Dịch vụ là một số dịch vụ cung cấp dữ liệu. Thông thường đây là một dịch vụ Web;

Đối tượng - Đối tượng để chọn một đối tượng sẽ tạo ra dữ liệu và các đối tượng để làm việc với nó.

Trong trường hợp của chúng tôi, bạn cần chọn mục “Cơ sở dữ liệu”. Cửa sổ chọn kết nối dữ liệu xuất hiện (Hình 43).

Cơm. 43. Chọn kết nối dữ liệu

Mục đích của hộp thoại này là tạo một chuỗi kết nối mô tả các tham số kết nối cho công cụ ADO, chẳng hạn như loại cơ sở dữ liệu, vị trí của nó, tên người dùng, tính năng bảo mật, v.v.

Danh sách thả xuống của hộp thoại chứa tất cả các kết nối đã tạo trước đó. Nếu kết nối được yêu cầu không có trong danh sách thì bạn nên sử dụng nút “Kết nối mới”. Nhấn nút sẽ xuất hiện hộp thoại sau (Hình 44).

Trong hộp thoại này, bạn chọn loại nguồn dữ liệu (trong trường hợp này là Microsoft Access), tên cơ sở dữ liệu (trong trường hợp này là tên và vị trí của tệp cơ sở dữ liệu), tên người dùng và mật khẩu được sử dụng để kết nối với cơ sở dữ liệu. Nút "Nâng cao" cho phép bạn đặt một số lượng lớn các tham số liên quan đến các bộ phận khác nhau của công cụ ADO. Sử dụng nút “Kiểm tra kết nối” sẽ đảm bảo rằng các tham số đã nhập là chính xác và kết nối đang hoạt động.

Cơm. 44. Tạo kết nối mới

Bước cuối cùng của cuộc đối thoại là chọn các bảng hoặc đối tượng cơ sở dữ liệu khác cần thiết trong nguồn dữ liệu này. Cửa sổ lựa chọn được hiển thị trong Hình 45.

Cơm. 45. Chọn các bảng cần thiết

Trong cửa sổ này, bảng “Du khách” và “Thông tin du lịch” được chọn. Vì không có đối tượng nào ngoài các bảng được tạo trong cơ sở dữ liệu nên chỉ có các bảng được hiển thị trong Hình 45. Điều này hoàn thành việc tạo nguồn dữ liệu. Sau khi nhấp vào nút “Hoàn tất”, thành phần DataSet sẽ xuất hiện bên cạnh thành phần BindingSource trên biểu mẫu.

Bây giờ dữ liệu được kết nối ở trên cần được hiển thị trên biểu mẫu. Cách đơn giản nhất để hiển thị dữ liệu là sử dụng thành phần DataGridView từ nhóm thành phần Dữ liệu. Thành phần này ở dạng trực quan và trông như thế này trên biểu mẫu (Hình 46).

Cơm. 46. ​​Thành phần DataGridView

Cửa sổ cài đặt thành phần ngay lập tức xuất hiện, xác định khả năng chỉnh sửa dữ liệu của nó: “Bật thêm”, “Bật chỉnh sửa”, “Bật xóa”; khả năng thay đổi thứ tự các cột: “Kích hoạt khả năng thay đổi thứ tự các cột” (“Kích hoạt sắp xếp lại cột”); cũng như khả năng được gắn vào vùng chứa chính.

Để thành phần hiển thị dữ liệu, bạn phải chọn nguồn dữ liệu trong danh sách thả xuống. Việc chọn danh sách thả xuống sẽ làm xuất hiện hộp thoại sau (Hình 47).

Cơm. 47. Chọn nguồn dữ liệu cho DataGridView

Trong trường hợp này, chúng tôi đã chọn bảng “Khách du lịch” làm nguồn dữ liệu. Lựa chọn này thay đổi dạng màn hình như sau (Hình 48).

Cơm. 48. Thành phần DataGridView hiển thị cấu trúc bảng

Hình vẽ cho thấy một thành phần BindingSource khác đã xuất hiện và một thành phần TableAdapter hoạt động với bảng “Du khách”. Xin lưu ý rằng trong thời gian thiết kế hoặc trong quá trình phát triển, dữ liệu từ bảng sẽ không được hiển thị.

Bây giờ bạn cần hiển thị dữ liệu từ bảng được liên kết “Thông tin du lịch”. Để thực hiện việc này, hãy đặt một thành phần DataGridView khác trên biểu mẫu và chọn thành phần sau làm nguồn dữ liệu (Hình 49).

Cơm. 49. Chọn nguồn dữ liệu cho DataGridView thứ hai

Ở đây, nguồn dữ liệu không phải là bảng “Thông tin du lịch” mà là kết nối (Nguồn liên kết) giữa bảng “Khách du lịch” và “Thông tin du lịch”. Lựa chọn này đảm bảo rằng chỉ những hàng từ bảng Thông tin Du lịch được liên kết với hàng hiện tại trong bảng Du lịch mới được chọn. Lựa chọn này cũng đảm bảo rằng dữ liệu liên quan được cập nhật và xóa chính xác. Hoạt động của ứng dụng kết quả được thể hiện trong Hình 50.

Cơm. 50. Ứng dụng cơ sở dữ liệu tại nơi làm việc

Điều hướng qua dữ liệu bằng các phím mũi tên thật bất tiện. Để đơn giản hóa việc điều hướng dữ liệu, có thành phần BindingNavigator. Hãy đặt nó vào biểu mẫu (Hình 51).

Cơm. 51. Thành phần BindingNavigator trên form

Thành phần này cho phép bạn điều hướng giữa các bản ghi trong bảng, thêm và xóa các hàng trong bảng. Chức năng và hình thức của thành phần có thể được tùy chỉnh vì đây là dải menu ToolStripContainer.

Thuộc tính xác định bảng mà qua đó việc điều hướng được thực hiện là thuộc tính BindingSource. Hãy đặt giá trị của thuộc tính này thành "tourismBindingSource". Khi hoạt động, thành phần này trông như thế này (Hình 52).

Cơm. 52. Thành phần BindingNavigator đang hoạt động

Có thể chỉnh sửa dữ liệu trong các ô của thành phần DataGridView với các cài đặt phù hợp, nhưng nó bất tiện và không hợp lý. Đặc biệt, rất khó để kiểm tra lỗi các giá trị đã nhập. Do đó, đối với bảng “Khách du lịch”, chúng tôi sẽ tạo một biểu mẫu màn hình cho phép bạn hiển thị dữ liệu trong các thành phần TextBox và chỉnh sửa chúng. Để thực hiện việc này, hãy đặt một vùng chứa loại Panel trên biểu mẫu và trên đó ba thành phần TextBox như sau (Hình 53).

Cơm. 53. Màn hình chỉnh sửa thông tin trong bảng “Du khách”

Bây giờ bạn cần liên kết các thành phần TextBox với các trường tương ứng của bảng “Khách du lịch”. Để thực hiện điều này, chúng tôi sử dụng thuộc tính từ nhóm DataBindings - Advanced, được hiển thị trong Hình 54.

Cơm. 54. Thuộc tính “DataBindings - Advanced”

Việc chọn thuộc tính này sẽ dẫn đến sự xuất hiện của hộp thoại như trong Hình 55. Hộp thoại này cho phép bạn không chỉ liên kết dữ liệu mà còn thiết lập một sự kiện trong đó dữ liệu sẽ được cập nhật, cũng như định dạng dữ liệu khi xuất nó.

Đối với thành phần TextBox trên cùng, trong danh sách thả xuống Ràng buộc, hãy chọn “khách du lịchBmdmgSource” làm nguồn dữ liệu và trường nguồn là “Họ”. Đối với các thành phần TextBox ở giữa và dưới cùng, hãy chọn cùng một nguồn dữ liệu và các trường “Tên” và “Bổ trợ” tương ứng.

Ứng dụng đã phát triển đang hoạt động trông như thế này (Hình 56).

Cơm. 55. Cửa sổ hộp thoại cho thuộc tính “DataBindings - Advanced”

Cơm. 56. Liên kết dữ liệu với các thành phần trực quan

Tuy nhiên, khi thực hiện thay đổi, tất cả dữ liệu mới chỉ còn lại trên biểu mẫu. Chúng không được lưu trong cơ sở dữ liệu và khi ứng dụng được gọi lại, tất nhiên chúng sẽ bị thiếu. Điều này xảy ra do dữ liệu đã được tải vào đối tượng DataSet, đối tượng này là bản sao trong bộ nhớ của bảng. Tất cả các hành động được thực hiện với bản sao này. Để các thay đổi được phản ánh trong cơ sở dữ liệu, bạn phải thực thi phương thức Update của lớp TableAdapter. Vì vậy, trong ứng dụng đang được phát triển, cần phải đặt nút “Cập nhật” và viết mã chương trình sau vào trình xử lý sự kiện Click:

khách du lịchTableAdapterUpdate(bDTur_firmDataSet); information_about_touristsTableAdapter.Update(bDTur_firmDataSet);

Mã này cập nhật thông tin trong các bảng Thông tin du lịch và Khách du lịch do nguồn dữ liệu cung cấp. Lưu ý rằng phương pháp này bị quá tải và các biến thể của nó cho phép bạn cập nhật cả một hàng trong bảng riêng lẻ và một nhóm hàng.

  • Phát triển cho Android,
  • SQLite
    • Hướng dẫn
    • Chế độ phục hồi

    Chào mọi người! Tên tôi là Oleg và tôi là một lập trình viên Android nghiệp dư. Một người nghiệp dư vì hiện tại tôi đang kiếm tiền bằng cách lập trình theo một hướng hoàn toàn khác. Và đây là sở thích mà tôi dành thời gian rảnh rỗi của mình. Thật không may, tôi không biết bất kỳ lập trình viên Android nào và tôi có được tất cả kiến ​​thức cơ bản từ sách hoặc từ Internet. Trong tất cả các sách và bài viết trên Internet mà tôi đã đọc, việc tạo cơ sở dữ liệu cho một ứng dụng chiếm rất ít không gian và trên thực tế, toàn bộ mô tả đều tập trung vào việc tạo một lớp kế thừa SQLiteOpenHelper và triển khai mã SQL sau đó thành mã Java. Ngoài thực tế là chúng tôi nhận được mã khó đọc (và nếu có hơn 10 bảng xuất hiện trong ứng dụng của chúng tôi, thì việc ghi nhớ tất cả các mối quan hệ giữa các bảng này là một điều tồi tệ), thì về nguyên tắc, tất nhiên chúng tôi có thể sống, nhưng bằng cách nào đó chúng tôi không muốn ĐẾN.
    Tôi quên nói điều quan trọng nhất, bạn có thể nói rằng đây là lần đầu tiên tôi thử viết ở đây. Và thế là chúng ta hãy đi thôi.

    Về câu hỏi muôn thuở: tại sao?

    Thành thật mà nói, tôi thực sự không biết tại sao sách và bài viết về lập trình cho Android không mô tả các công cụ để thiết kế kiến ​​trúc cơ sở dữ liệu và một số mẫu để làm việc với cơ sở dữ liệu ở giai đoạn tạo. Có vẻ dễ dàng khi chỉ thêm một vài trang vào một cuốn sách hoặc viết một bài báo riêng (như tôi đang làm bây giờ) - nhưng không. Trong bài viết này, tôi sẽ giới thiệu ngắn gọn về các công cụ mà tôi sử dụng trong công việc của mình và chi tiết hơn về mã chịu trách nhiệm tạo cơ sở dữ liệu ban đầu, theo quan điểm của tôi, mã này trông dễ đọc và thuận tiện hơn.


    Nếu ứng dụng của chúng ta có nhiều hơn 5 bảng thì nên sử dụng một số công cụ để thiết kế trực quan kiến ​​trúc cơ sở dữ liệu. Vì đây là sở thích của tôi nên tôi sử dụng một công cụ hoàn toàn miễn phí có tên là Oracle SQL Developer Data Modeler (bạn có thể tải xuống).

    Chương trình này cho phép bạn vẽ các bảng một cách trực quan và xây dựng mối quan hệ với chúng. Nhiều lỗi thiết kế kiến ​​trúc cơ sở dữ liệu có thể tránh được bằng phương pháp thiết kế này (tôi đã nói với bạn điều này với tư cách là một lập trình viên cơ sở dữ liệu chuyên nghiệp). Nó trông giống như thế này:

    Sau khi tự thiết kế kiến ​​trúc, chúng ta tiến tới phần tẻ nhạt hơn, bao gồm việc tạo mã SQL để tạo bảng. Để giải quyết vấn đề này, tôi đã sử dụng một công cụ có tên SQLiteStudio (bạn có thể tải xuống công cụ này tại đây).

    Công cụ này tương tự như các sản phẩm nổi tiếng như SQL Naviagator, Toad, v.v. Nhưng đúng như tên gọi, nó được thiết kế để hoạt động với SQLite. Nó cho phép bạn tạo cơ sở dữ liệu một cách trực quan và lấy mã DDL của các bảng đã tạo. Nhân tiện, nó cũng cho phép bạn tạo Chế độ xem mà bạn cũng có thể sử dụng trong ứng dụng của mình nếu muốn. Tôi không biết cách tiếp cận sử dụng chế độ xem trong các chương trình Android chính xác đến mức nào nhưng tôi đã sử dụng chúng trong một trong các ứng dụng của mình.

    Trên thực tế, tôi không còn sử dụng bất kỳ công cụ nào của bên thứ ba nữa và sau đó điều kỳ diệu bắt đầu với Android Studio. Như tôi đã viết ở trên, nếu chúng ta bắt đầu triển khai mã SQL thành mã Java, thì kết quả đầu ra mà chúng ta sẽ nhận được là mã khó đọc và do đó khả năng mở rộng kém. Vì vậy, tôi đặt tất cả các lệnh SQL vào các tệp bên ngoài nằm trong thư mục của tôi tài sản. Trong Android Studio, nó trông giống như thế này:


    Giới thiệu về db ​​và thư mục dữ liệu

    Bên trong thư mục tài sản Tôi đã tạo hai thư mục db_01dữ liệu_01. Các số trong tên thư mục tương ứng với số phiên bản cơ sở dữ liệu mà tôi đang làm việc. Trong thư mục db Tôi lưu trữ các tập lệnh SQL để tự tạo bảng. Và trong thư mục dữ liệu Dữ liệu cần thiết cho việc điền bảng ban đầu được lưu trữ.


    Bây giờ hãy xem mã bên trong của tôi Trình trợ giúp DB mà tôi sử dụng trong các dự án của mình. Đầu tiên, các biến lớp và hàm tạo (không có gì ngạc nhiên ở đây):

    Chuỗi cuối cùng tĩnh riêng tư TAG = "RoadMap4.DBHelper"; Chuỗi mDb = "db_"; Chuỗi mData = "dữ liệu_"; Bối cảnh mContext; int mVersion; public DBHelper(Context context, String name, int version) ( super(context, name, null, version); mContext = context; mVersion = version; )
    Bây giờ phương pháp onTạo và ở đây nó trở nên thú vị hơn:

    @Ghi đè public void onCreate(SQLiteDatabase db) ( ArrayList bảng = getSQLTables(); for (Bảng chuỗi: bảng)( db.execSQL(table); ) ArrayList > dataSQL = getSQLDatas(); cho (HashMap hm: dataSQL)( for (Bảng chuỗi: hm.keySet())( Log.d(TAG, "insert to " + table + " " + hm.get(table)); long rowId = db.insert(table, null, hm.get(bảng));
    Về mặt logic, nó được chia thành hai chu kỳ, trong chu kỳ đầu tiên, tôi nhận được một danh sách các hướng dẫn SQL để tạo cơ sở dữ liệu và sau đó thực thi chúng, trong chu kỳ thứ hai, tôi đã điền dữ liệu ban đầu vào các bảng đã tạo trước đó. Vì vậy, bước một:

    Danh sách mảng riêng tư getSQLTables() (ArrayList bảng = ArrayList mới<>(); Lập danh sách tập tin = ArrayList mới<>(); Trình quản lý tài sản AssetManager = mContext.getAssets(); Chuỗi dir = mDb + mVersion; thử ( String listFiles = assetsManager.list(dir); for (Tệp chuỗi: listFiles)( files.add(file); ) Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String query; String line; for (Tệp chuỗi: files)( Log.d(TAG, "file db is " + file); bufferedReader = new BufferedReader(new inputStreamReader(assetManager.open(dir + "/" + file))); query = ""; while ((line = bufferedReader.readLine()) != null)( query = query + line; ) bufferedReader.close(); table.add(query) ) bắt (IOException e) ( e.printStackTrace(); ) return những cái bàn; )
    Mọi thứ ở đây khá đơn giản, chúng ta chỉ cần đọc nội dung của các tệp và ghép nội dung của từng tệp thành một phần tử mảng. Xin lưu ý rằng tôi đang sắp xếp danh sách các tệp, vì các bảng có thể có khóa ngoại, nghĩa là các bảng phải được tạo theo một thứ tự nhất định. Tôi sử dụng cách đánh số trong tên của các tập tin và với sự trợ giúp của nó, tôi sắp xếp.

    Lớp riêng QueryFilesComparator triển khai Trình so sánh ( @Override public int so sánh(String file1, String file2) ( Integer f2 = Integer.parseInt(file1.substring(0, 2)); Integer f1 = Integer.parseInt(file2.substring(0, 2)); return f2 .compareTo(f1);
    Việc điền vào các bảng khiến trò chơi ngày càng thú vị hơn. Các bảng của tôi không chỉ chứa đầy các giá trị được mã hóa cứng mà còn chứa các giá trị từ tài nguyên và khóa UUID (Tôi hy vọng một ngày nào đó sẽ có phiên bản mạng của chương trình của tôi để người dùng của tôi có thể làm việc với dữ liệu được chia sẻ). Cấu trúc của các tệp với dữ liệu ban đầu trông như thế này:


    Mặc dù thực tế là các tệp của tôi có phần mở rộng sql, nhưng không có mã sql bên trong, nhưng đại loại như thế này:

    Ưu tiên
    pri_id:UUID:UUID

    pri_name:chuỗi:bình thường
    pri_color:color:colorGreen
    pri_default:int:1
    ưu tiên
    pri_id:UUID:UUID
    pri_object:chuỗi:object_task
    pri_name:chuỗi:giữ
    pri_color:color:colorBlue
    pri_default:int:0
    ưu tiên
    pri_id:UUID:UUID
    pri_object:chuỗi:object_task
    pri_name:chuỗi:quan trọng
    pri_color:màu:màuĐỏ
    pri_default:int:0
    ưu tiên
    pri_id:UUID:UUID

    pri_name:chuỗi:bình thường
    pri_color:color:colorGreen
    pri_default:int:1
    ưu tiên
    pri_id:UUID:UUID
    pri_object:chuỗi:object_project
    pri_name:chuỗi:giữ
    pri_color:color:colorBlue
    pri_default:int:0
    ưu tiên
    pri_id:UUID:UUID
    pri_object:chuỗi:object_project
    pri_name:chuỗi:quan trọng
    pri_color:màu:màuĐỏ
    pri_default:int:0

    Cấu trúc tập tin như thế này: Tôi thực hiện lệnh gọi hàm tách ra(":") liên quan đến một dòng và nếu tôi hiểu rằng kích thước của nó là 1 thì điều này có nghĩa là tên của bảng nơi dữ liệu sẽ được ghi. Nếu không thì đó là dữ liệu. Trường đầu tiên là tên của trường trong bảng. Trường thứ hai là loại mà tôi xác định những gì tôi cần viết trong chính trường này. Nếu đó là UUID, điều đó có nghĩa là tôi cần tạo một giá trị UUID duy nhất. Nếu chuỗi có nghĩa là tôi cần trích xuất một giá trị chuỗi từ tài nguyên. Nếu là màu thì một lần nữa, bạn cần trích xuất mã màu từ tài nguyên. Nếu là int hoặc text thì tôi chỉ cần chuyển đổi giá trị này thành int hoặc String mà không cần bất kỳ chuyển động vật lý nào. Bản thân mã trông như thế này:

    Danh sách mảng riêng tư > getSQLDatas() ( ArrayList > dữ liệu = ArrayList mới<>(); Lập danh sách tập tin = ArrayList mới<>(); Trình quản lý tài sản AssetManager = mContext.getAssets(); Chuỗi thư mục = mData + mVersion; thử ( String listFiles = assetsManager.list(dir); for (Tệp chuỗi: listFiles)( files.add(file); ) Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String line; int Separator = 0 ; ContentValues ​​​​cv = null; Chuỗi nameTable = null; Chuỗi góiName = mContext.getPackageName(); ừm; for (Tệp chuỗi: files)( Log.d(TAG, "file db is " + file); bufferedReader = new BufferedReader(new inputStreamReader(assetManager.open(dir + "/" + file))); while ((line = bufferedReader.readLine()) != null)( field = line.trim().split(://); if (fields.length == 1)( if (flag == true)( hm = new HashMap<>(); hm.put(nameBảng, cv); dữ liệu.add(hm); ) // tên bảng nameTable = line.trim(); cv = Giá trị nội dung mới(); Tiếp tục; ) else ( if (fields.equals("UUID"))( cv.put(fields, UUID.randomUUID().toString()); ) else if (fields.equals("color") || field.equals( "chuỗi"))( int resId = mContext.getResources().getIdentifier(fields, field, packageName); Log.d(TAG, field + " " + resId); switch (fields)( case "color": cv. put(fields, resId); break; trường hợp "chuỗi": cv.put(fields, mContext.getString(resId)); break; field); ) else if (fields.equals("int"))( cv.put(fields, Integer.parseInt(fields)); ) ) flag = true; ) bufferedReader.close(); ) ) bắt (IOException e) ( e.printStackTrace(); ) trả về dữ liệu; )