2012-01-12 24 views
8

Đây là lần đầu tiên tôi cố gắng làm việc với một cơ sở dữ liệu, vì vậy hãy chịu đựng với tôi.Sự khác biệt giữa cơ sở dữ liệu MySQL/SQLite/etc?

Tôi cần viết chương trình sẽ sử dụng cơ sở dữ liệu mà tôi chưa có quyền truy cập. Tôi biết có MySQL, SQLite, và một loạt các thứ SQL khác, nhưng tôi không chắc chắn sự khác biệt giữa chúng là gì. Tôi có cần phải biết loại cơ sở dữ liệu nào trước khi tôi có thể sử dụng nó (ví dụ, một tệp MySQL .db khác với tệp .db SQLite không?) Hoặc chính tệp đó sẽ giống nhau và sự khác biệt là cách nó được truy cập?

EDIT: Tôi đang lập trình cho máy tính bảng Android, có thể là vấn đề. Nhưng tôi sẽ không tạo ra cơ sở dữ liệu, nó sẽ được trao cho tôi và tôi phải làm việc với nó.

+0

Tất cả các câu trả lời đều rất tốt. Kiểm tra tất cả chúng ra. –

Trả lời

8

Bạn có thể muốn xem qua hướng dẫn xem tạo cơ sở dữ liệu MySQL và một phiên bản SQLite để xem cách chúng hoạt động và cách bạn có thể dễ dàng tương tác với chúng.

Quyền truy cập vào mỗi bộ điều hợp liên quan đến bộ điều hợp, bất kể việc tạo bảng bạn cần, quyền truy cập của người dùng (tên người dùng/mật khẩu/vai trò để truy cập bảng).

Dưới đây là một hướng dẫn sqlite thẳng về phía trước: http://zetcode.com/db/sqlite/

Dưới đây là một staight-forward sql hướng dẫn: http://zetcode.com/databases/mysqlphptutorial/

Tôi nhớ bị choáng ngợp với cơ sở dữ liệu thời gian đầu tiên của tôi. Lời khuyên của tôi là bắt đầu với một thứ được hỗ trợ tốt, với một cộng đồng tốt đẹp và kết quả tìm kiếm rất nhiều hướng dẫn, nơi bạn có thể nắm bắt các nguyên tắc cơ bản.

Sau đó, dựa trên các yêu cầu ứng dụng của bạn và các ràng buộc nền tảng, bạn có thể xác định nơi sẽ xoay vòng. Nhưng xem xét sự khác biệt giữa các cơ sở dữ liệu mà không thực sự làm việc với họ cũng giống như cố gắng miếng sushi mà không bao giờ ăn cá.

EDIT:

Nếu bạn đang xây dựng trên Android, vâng, học SQLite.

tôi khuyên bạn nên hướng dẫn này để giúp bạn xem SQLite sử dụng trong một dự án Android: http://developer.android.com/resources/tutorials/notepad/index.html

Đối với dữ liệu trừu tượng/ORM, bạn nên làm quen với các nhà cung cấp nội dung và Cursors (http://developer.android.com/guide/topics/providers/content-providers.html)

Tốt Truy vấn !

4

Trước hết, bạn sẽ cần biết loại cơ sở dữ liệu nào trước khi có thể kết nối với nó vì bạn sẽ cần sử dụng trình điều khiển cơ sở dữ liệu thích hợp cho nền tảng của mình. mySQL, Oracle, Postgres, SQL Server, vv tất cả sẽ sử dụng các trình điều khiển khác nhau như giao thức nhị phân được sử dụng để nói chuyện với họ (xác thực và chuyển thông tin qua lại) khác nhau.

Theo như mã SQL thực tế của bạn, nó phụ thuộc. Đối với hầu hết các phần, bạn có thể đếm trên SELECT * FROM Foo làm việc với bất kỳ cơ sở dữ liệu tuân thủ SQL nào trên hành tinh. Tuy nhiên, một khi bạn bắt đầu làm bất cứ điều gì phức tạp hơn hoặc sử dụng các từ khóa không chuẩn, bạn có thể gặp rắc rối. Ví dụ: một số cơ sở dữ liệu hỗ trợ từ khóa USING cho JOIN và một số không.

Một điều bạn có thể xem xét là ORM.Điều này sẽ cho phép bạn trừu tượng phương ngữ SQL thực tế từ chương trình của bạn và sau đó (đối với hầu hết các phần) không phải lo lắng về SQL thực tế. Một số ORM phổ biến là ActiveRecord (cho Ruby on Rails) và Entity Framework cho .NET. Hi vọng điêu nay co ich!

UPDATE:

Kể từ khi thẻ Android vừa được thêm vào bài viết, tôi đã làm một tìm kiếm nhanh cho ORMs SqlLite có hỗ trợ Android và đã đưa ra this. Có thể đáng để kiểm tra, hoặc có lẽ ai đó có thể bình luận về việc nó có tốt không :)

3

Lớp trừu tượng cơ sở dữ liệu là chiến lược có một người trung gian thông minh để bạn có thể lập trình mà không biết chính xác hệ thống cơ sở dữ liệu nào bạn có bên dưới. Cơ sở dữ liệu trừu tượng không phải là không tưởng trong thực tế vì nó âm thanh, và hầu hết mọi người kết thúc lập trình trực tiếp cho một cơ sở dữ liệu cụ thể. Bạn có thể sẽ thấy rằng càng có nhiều kinh nghiệm bạn có được với cơ sở dữ liệu của bạn lựa chọn, bạn càng muốn bạn biết sắc thái cụ thể của nó tốt hơn. Vì vậy, câu trả lời ngắn là có đủ sự khác biệt cho vấn đề!

Nếu bạn sử dụng mẫu kiến ​​trúc phần mềm như Model-View-Controller, nó có thể cho phép bạn thực hiện rất nhiều chương trình của mình bất kể cơ sở dữ liệu bạn sử dụng. Lấy Model-View-Controller làm ví dụ, bạn có thể lập trình các Controller và Views của bạn mà không biết bạn đang sử dụng cơ sở dữ liệu nào.

Hạn chế đối với những gì bạn có thể làm trước khi quyết định hệ thống cơ sở dữ liệu là thực tế bất tiện khi thực hành lập trình tốt yêu cầu Mô hình chất béo và Bộ điều khiển gầy. Vì vậy, một phần lớn của nỗ lực lập trình thực tế của bạn được giữ làm con tin bằng sự lựa chọn của bạn về một giải pháp cơ sở dữ liệu.

Nếu tôi không biết cơ sở dữ liệu nào sẽ được sử dụng, tôi sẽ bắt đầu lập trình Chế độ xem và sau đó là Bộ điều khiển của mình. Nếu PHP là ngôn ngữ của bạn, bạn có thể tìm thấy một hướng dẫn khai báo CodeIgniter.

2

Một bài viết về "Sử dụng thích hợp cho SQLite"

http://www.sqlite.org/whentouse.html

Tóm tắt: Danh sách kiểm tra để chọn Database Engine Ngay

  1. Là các dữ liệu tách ra khỏi ứng dụng bằng một mạng? → chọn máy khách/máy chủ
  2. Nhiều nhà văn đồng thời? → chọn máy khách/máy chủ
  3. Dữ liệu lớn? → chọn máy khách/máy chủ
  4. Nếu không → hãy chọn SQLite!
Các vấn đề liên quan