30/09/2018, 17:50

Tại sao phải dùng Database?

Mình định viết một phần mềm quản lý điểm học sinh.
Mình có tìm hiểu qua, người ta thường dùng cơ sở dữ liệu (SQL…) để lưu thông tin.
Nếu mình không dùng cái đó mà quyết định lưu ra file text (*.txt) bình thường thì sẽ thế nào??
Vì chưa từng làm về cơ sở dữ liệu nên mình chưa biết nó có tác dụng như thế nào?

Dùng database hay txt cũng chỉ là một cách lưu trữ dữ liệu có tác dụng như nhau.
Quan trọng của khái niệm database là hình thức tổ chức dữ liệu. Cơ bản của thông tin dựa trên hai toán tử write và read. Việc tạo ra các quy chuẩn về tổ chức dữ liệu (như SQL, noSQL) sẽ giúp hỗ trợ hoặc tăng cường khả năng cho hai toán tử này (Đọc nhanh hơn, viết nhanh hơn, sửa nhanh hơn…) Tùy vào các chương trình quản trị dữ liệu mà ta có thêm những công cụ tối ưu việc code tốt hơn.

Kết luận

  • Hai cái trên có tác dụng như nhau.
  • Dùng cơ sở dữ liệu sẽ có thêm một vài cái lợi:
  • Cấu trúc dữ liệu được chuẩn hóa theo quy tắc dễ dàng quản lí, đọc và viết hơn.
  • Nhiều nền tảng hỗ trợ việc xử lí dữ liệu hơn. (Các ngôn ngữ lập trình đã có nhiều bản support làm từ a đến gần z)
hacked viết 19:53 ngày 30/09/2018

Ý bác là Dùng database sẽ nhanh hơn?

Không chắc nhé.
Trước hết bạn cần có cái nhìn tổng quan về:

  • Xử lí txt.
  • Xử lí xml.
  • Xử lí json.
  • Xử lí database.

Bằng cách code thử demo thì bạn mới hiểu được.

hacked viết 20:06 ngày 30/09/2018

Thế là thế nào hả bác? Như ví dụ của em thì em nên làm bằng database hay simple text?

Truong Pham viết 19:53 ngày 30/09/2018

Nếu dùng txt thì sẽ rất mất công xử lý dữ liệu có lẽ nên dùng database,xml hoặc json

Nên dùng database.
Tại đang họp nên ngại viết dài. Tưởng tượng nhé, với bài toán trên dùng text nó sẽ lưu như sau:

Nguyễn Văn A, toán, 10, văn, 7
Nguyễn Văn B, toán, 6, văn, 7

Ví dụ muốn lấy được điểm của B cần rất nhiều thuật toán phức tạp để thực hiện. Tuy nhiên điều này dễ dàng hơn nhiều với database sql. (Chỉ cần 1 dòng lệnh không thích việc setup môi trường)

Tuy nhiên với bài toán sau:
Viết một ứng dụng ghi chú. Toàn bộ những gì cần lưu là nội dung note. Lúc này thì cài đặt database sẽ phức tạp và mất công hơn.
=> Cái mình nói còn tùy chính là tùy thuộc vào bài toán của bạn. Vậy nên bạn nên thử trải nghiệm cả 4 keyword kia của mình để có cái nhìn tổng quan hơn.

*grab popcorn* viết 20:01 ngày 30/09/2018

Tại sao không dùng Google?

hacked viết 19:54 ngày 30/09/2018

Google không hiểu ý mình hỏi.

Nguyễn Trọng Phương viết 19:59 ngày 30/09/2018

Google tìm hiểu DB dùng để làm gì, công dụng của nó, và tại sao người ta lại dùng DB thay thế cho các kiểu lưu trữ truyền thống (.txt, .doc, …)

lx viết 20:01 ngày 30/09/2018

bác phũ quá, mình đoán người ta cũng tìm hiểu qua rồi nhưng muốn hiểu rõ hơn thôi.

Mình thấy bác @GDGHN_AndroidTeam trả lời rất hay

Nguyễn Trọng Phương viết 19:57 ngày 30/09/2018

Nếu bác không thích dùng DB thì cũng có thể dùng Excel, việc truy xuất trong Excel thì mình chưa làm bao giờ nhưng mà lúc trước mình thấy có người dùng Excel để lưu dữ liệu của phần mềm quản lí thư viện.

Dũng Kon viết 19:57 ngày 30/09/2018

Tiện thể học database luôn đi, trước sau gì cũng phải học mà

nonStop viết 19:57 ngày 30/09/2018

Trước mình cũng như bạn , đang lập trình đơn giản nên chỉ muốn dùng txt cho đơn giản , sự thực thì lúc đấy mình chỉ thấy chưa đến lúc dùng vì mình đang học quá cơ bản (java swing) . Cho đến giờ mình thấy đó là một sai lầm khi không cố gắng dùng DATABASE sớm hơn . Đó mới là lập trình thực tế .

  • Gắn liền với mô hình MVC ( quá quan trọng )
  • 1 phần mềm tốt là một phần mềm được thiết kế DATABASE tốt

  • Mình không thể liệt kê hết vì lợi ích của nó là vô vàn nhé . mình xin trích ra từ một bài trên mạng cho bạn hiểu
    http://voer.edu.vn/c/tong-quan-ve-cac-he-thong-co-so-du-lieu/9d6bddd9/583a66bf
    > So sánh giữa lưu trữ bằng hệ thống file cổ điển với Database

Để hiểu được sự cần thiết của DBMS, chúng ta cùng nhau xem xét ví dụ sau: Một công ty có một tập hợp dữ liệu lớn (khoảng 500GB

Một kilobyte (KB) bằng 1024 bytes, một megabyte (MB) bằng 1024 KBs, một gigabyte (GB) bằng 1024 MBs, một terabyte (TB) bằng 1024 GBs, và một petabyte (PB) bằng 1024 terabytes.
) để lưu thông tin về nhân viên, các phòng, sản phẩm, doanh số bán hàng v.v…Những dữ liệu này có thể được một số nhân viên truy cập vào đồng thời. Những yêu cầu (câu hỏi) về dữ liệu phải được đáp ứng nhanh chóng, những thay đổi trên dữ liệu được thực hiện bằng những người dùng khác nhau phải được cập nhật một cách nhất quán, và phải có giới hạn truy cập đến các phần dữ liệu khác nhau đối với từng đối tượng người dùng khác nhau.
Chúng ta có thể giải quyết các vấn đề về quản lý dữ liệu bằng việc lưu trữ dữ liệu trên hệ thống file riêng rẽ. Tuy nhiên, cách tiếp cận này gặp một số khó khăn, bao gồm:

  • Có lẽ chúng ta không có bộ nhớ trong nào đủ 500GB để lưu trữ tất cả dữ liệu. Vì thế, chúng ta phải lưu trữ dữ liệu này thông qua các thiết bị lưu trữ như đĩa, băng từ và sau đó chuyển từng phần vào bộ nhớ trong để xử lý khi cần thiết.
    Thậm chí, nếu chúng ta có một bộ nhớ trong có dung lượng 500GB trên hệ thống máy tính 32-bits, chúng ta cũng không thể tham chiếu trực tiếp đến nhiều hơn 4GB dữ liệu! Chúng ta phải lập trình một vài phương pháp để có thể định vị được tất cả dữ liệu.
  • Chúng ta phải viết các chương trình đặc biệt để trả lời từng câu hỏi của người sử dụng đối với dữ liệu. Những chương trình này rất phức tạp vì không gian tìm kiếm quá lớn.
    Chúng ta phải bảo đảm sự đúng đắn của dữ liệu đối với những thay đổi không nhất quán của nhiều người sử dụng đồng thời tác động lên dữ liệu. Nếu những chương trình được viết cho phép truy cập đồng thời thì nó thực sự rất phức tạp.
  • Chúng ta phải đảm bảo rằng dữ liệu được lưu trữ phải có tính chất nhất quán nếu như hệ thống gặp trục trặc trong khi đang thực hiện một phiên giao dịch có sự thay đổi dữ liệu.
    Hệ điều hành chỉ cung cấp duy nhất một mật khẩu cho máy tính để đảm bảo an toàn. Điều này không đủ khả năng để cung cấp quyền cho các đối tượng người dùng khác nhau để họ chỉ được phép thực hiện trên các vùng dữ liệu nào đó của cơ sở dữ liệu.
    DBMS là tập hợp các phần mềm được thiết kế để có thể thực hiện các công việc nói trên một cách dễ dàng. Bằng việc lưu trữ dữ liệu trên DBMS thay vì việc lưu trữ vào các file riêng rẽ, chúng ta có thể sử dụng các chức năng của DBMS để quản lý dữ liệu dễ dàng. Với dung lượng dữ liệu khổng lồ và số lượng rất lớn những người sử dụng đồng thời, những tính năng mà DBMS hỗ trợ đã trở nên vô cùng quan trọng và không thể thiếu.

> Những lợi ích của DBMS

Sử dụng DBMS để quản lý dữ liệu có rất nhiều lợi ích:

Độc lập dữ liệu: Những chương trình ứng dụng nên được độc lập tối đa có thể đối với việc biểu diễn và lưu trữ dữ liệu. DBMS có thể cung cấp các khung nhìn trừu tượng trên dữ liệu cách ly với lưu trữ vật lý của dữ liệu.**
Truy cập dữ liệu hiệu quả: Hàng loạt những tính năng của DBMS có thể giúp lưu trữ và truy cập cơ sở dữ liệu hiệu quả. Những tính năng này đặc biệt quan trọng nếu dữ liệu được lưu trữ trên các thiết bị lưu trữ ngoài.
Toàn vẹn và an toàn dữ liệu: Nếu dữ liệu luôn luôn được truy cập thông qua DBMS, thì DBMS có thể thiết đặt các ràng buộc toàn vẹn trên dữ liệu. Ví dụ, trước khi thêm thông tin về lương của một nhân viên, DBMS có thể kiểm tra số lương đó không vượt quá số tiền hiện có của phòng. Hoặc, DBMS có thể thiết đặt các quyền truy cập để giới hạn các đối tượng người dùng khác nhau đối với các phần bên trong cơ sở dữ liệu.
Quản trị dữ liệu: Khi một vài người dùng chia sẻ dữ liệu, người quản trị hệ thống có thể đưa ra những đề xuất mang lại hiệu quả đáng kể. Những chuyên gia có kinh nghiệm hiểu rõ dữ liệu đang được quản lý như thế nào và những nhóm người sử dụng nào có thể sử dụng từng phần trong cơ sở dữ liệu, từ đó họ có thể đưa ra được cách thức tổ chức dữ liệu để giảm được tối đa dư thừa và truy cập trở nên hiệu quả.
Truy cập đồng thời và khôi phục dữ liệu: DBMS lập lịch cho việc truy cập đồng thời đến dữ liệu để người sử dụng có cảm giác rằng chỉ có một người đang sử dụng dữ liệu trong một khoảng thời gian. Thêm vào đó, DBMS bảo vệ người sử dụng tránh những ảnh hưởng khi hệ thống gặp sự cố.
Giảm thời gian phát triển ứng dụng: DBMS hỗ trợ rất nhiều các tính năng quan trọng được sử dụng trong rất nhiều các ứng dụng truy cập tới dữ liệu được lưu trữ trong DBMS. Thông qua lược đồ mức cao (high-level interface), những ứng dụng được phát triển nhanh chóng và dễ dàng hơn vì rất nhiều những công việc đã được DBMS hỗ trợ thay vì bạn phải xây dựng trong chương trình ứng dụng.
Với những lợi ích nêu trên thì có lý do nào để chúng ta không sử dụng DBMS? DBMS là sự kết hợp của những gói phần mềm phức tạp, được tối ưu cho những kiểu công việc có sự kế thừa, chồng lên nhau, và nó không thích hợp với những ứng dụng quá hẹp. Ví dụ những ứng dụng có ít ràng buộc hoặc chỉ có một vài các phép toán phải thực hiện. Lý do khác để không sử dụng DBMS là với những ứng dụng không cần có ngôn ngữ truy vấn hỗ trợ. Trong trường hợp này, lưu trữ dữ liệu một cách trừu tượng hóa như trong DBMS là không phù hợp và nó không tận dụng được những tính năng của DBMS như: thực hiện truy vấn phức tạp, bảo mật, điều khiển tương tranh, tự động khôi phục khi có sự cố.

hacked viết 19:52 ngày 30/09/2018

Cám ơn anh đã chia sẻ.

Chi Ngo viết 20:02 ngày 30/09/2018

Bạn xem hướng dẫn này hướng dẫn đọc ghi dữ liệu trong excel nhé: http://chingovan.blogspot.com/2015/08/doc-ghi-du-lieu-excel-trong-java.html
Nhưng mà câu hỏi Tại sao phải dùng Database(cơ sở dữ liệu) thì khó trả lời quá. Nhưng khi mình đi học đại học thì có được biết là có sự tiến hóa dần dần từ hệ quản trị tệp, qua nhiều bước nữa mới đến cơ sở dữ liệu quan hệ. Nói như vậy có nghĩa là điều bạn đang băn khoăn tại sao không dùng tệp dữ liệu để lưu dữ liệu mà phải dùng cơ sở dữ liệu. Rõ ràng điều này người ta đã trả lời từ lâu rồi, và bây giờ chúng ta chỉ làm trên phần ngọn của vấn đề thôi. Sẽ dễ dàng hơn nhiều để phát triển ứng dụng, chúng ta không cần biết dữ liệu được tổ chức như thế nào trong ổ địa, đọc bản ghi nào, xóa bản ghi nào database sẽ làm cho chung ta, như vậy chẳng tốt hơn sao?

Nguyễn Trọng Phương viết 20:02 ngày 30/09/2018

Cám ơn bác nha. Thông tin của bác rất bổ ích nhưng mà rất tiếc là em không học Java . Nhưng dù sao cũng cám ơn bác. Để dành sau này có thì xem

Khánh Hưng Nguyễn viết 19:53 ngày 30/09/2018

Sự tối ưu.
1 số trường hợp text sẽ tốt. Và ngược lại !

Nguyễn Hữu Quyền viết 20:00 ngày 30/09/2018

Bạn @DucDuong_94 đã trả lơi quá hoàn chỉnh rồi, mình xin góp thêm vài
ý nhỏ nữa đó là khi lưu trữ dữ liệu có một việc cực kỳ quan trọng đó là đảm bảo toàn vẹn và an toàn của dữ liệu , việc này database đáp ứng rất tốt nhất là về phần an toàn dữ liệu. Nếu bạn muốn lưu dữ liệu ra file text thì bạn nên sử dụng cách lưu ra File .xml và file .csv là tốt nhất . Khi lưu ra hai loại file bạn hoàn
toàn có thể chuyển đổi vào database dễ dàng và an toàn , thông thường cách này thường dùng trong việc sao lưu CSDL ra ngoài để đọc được dễ dàng. Chúc bạn học tốt

Bài liên quan
0