Lịch sử của cơ sở dữ liệu: cơ sở dữ liệu và DBMS

Cách đây rất lâu tại một quốc gia Châu Mỹ, trong một công ty CNTT lớn, nhiệm vụ lưu trữ một lượng dữ liệu rất lớn đã từng nảy sinh. Có gì khó khăn về điều đó, bạn yêu cầu? Rốt cuộc, các công ty lớn có tiền, điều đó có nghĩa là bạn có thể mua thêm ổ cứng - và chỉ có thế.

Ý tưởng tuyệt vời, nhưng như họ nói, ma quỷ nằm trong chi tiết. Một lượng lớn dữ liệu không chỉ được lưu trữ mà còn phải thay đổi và nhiều mẫu khác nhau đã được tạo ra từ chúng. Hơn nữa, bạn cần chọn dữ liệu khác nhau từ những nơi khác nhau, đồng thời thực hiện nhanh chóng và đẹp mắt.

Nói chung, mọi thứ vẫn như thường lệ: khách hàng muốn thứ gì đó không tồn tại và quyết định mua ổ cứng lần này không có tác dụng.

Do đó, các lập trình viên của công ty CNTT này đã tự bỏ ra một khoản ngân sách lớn hơn, tiến hành công việc nghiên cứu và khi hết ngân sách, họ đã trình bày một bài thuyết trình trong đó đề xuất lưu trữ dữ liệu dưới dạng Cơ sở dữ liệu. Trong cơ sở dữ liệu, tất cả dữ liệu được lưu trữ trong các bảng và mỗi bảng được lưu trữ trong một tệp riêng biệt. Mọi thứ khéo léo đều đơn giản và mọi thứ đều hoạt động.

Nhưng cách trình bày như vậy không phù hợp với khách hàng, và việc soi mói vẫn tiếp tục:

  • Tiền đâu, Lebowski?
  • Tại sao Cơ sở dữ liệu tốt hơn kho lưu trữ dữ liệu cũ dưới dạng một tập hợp các tệp?
  • Chúng ta cần một giải pháp thực sự tốt chứ không phải vậy đâu!
  • Và nó đã lấy toàn bộ ngân sách?

Có sự im lặng chết chóc trong phòng thuyết trình. Tuy nhiên, thật bất ngờ cho mọi người, tình huống đã được cứu bởi một nhà phát triển cơ sở, người nói rằng một chương trình đặc biệt đã được gắn vào cơ sở dữ liệu - DBMS ( Hệ thống quản lý cơ sở dữ liệu), có thể:

  • Tạo, sửa đổi và xóa cơ sở dữ liệu
  • Thực hiện các thay đổi đối với cơ sở dữ liệu, cụ thể là: thêm bản ghi mới, xóa bản ghi cũ và thay đổi chúng
  • Và cũng siêu nhanh để thực hiện các lựa chọn khác nhau của bất kỳ dữ liệu nào

Và các lập trình viên thậm chí còn đang hoàn thiện việc thiết kế một siêu ngôn ngữ đặc biệt để lọc dữ liệu - SQL . Và họ nói rằng với sự trợ giúp của ngôn ngữ SQL kỳ diệu này, bất kỳ người quản lý nào cũng có thể dễ dàng lọc và lấy bất kỳ dữ liệu nào từ cơ sở dữ liệu.

Các lập trình viên vẫn chưa hoàn thành việc thiết kế ngôn ngữ nên không có từ nào về SQL và DBMS trong bài thuyết trình.

Trước sự vui mừng của mọi người, khách hàng đã bị ấn tượng bởi lời giải thích mà họ nghe được, bày tỏ một số ý kiến ​​​​trái chiều về ngôn ngữ mới này sẽ như thế nào và thậm chí còn phân bổ ngân sách để cải tiến nó.

Các nhà quản lý và Giám đốc kỹ thuật bắt đầu chúc mừng nhau về việc hoàn thành dự án thành công, và ngay lập tức đi ăn mừng sự kiện này mà không hoàn toàn nhận ra rằng lập trình viên cấp dưới trong toàn bộ câu chuyện này mới là người quan trọng nhất ...

DBMS và MySQL phổ biến

Hiện tại (mùa hè năm 2022) có hàng trăm DBMS phổ biến, vì vậy sẽ rất hữu ích nếu bạn tìm hiểu về một số trong số đó. Tôi nên bắt đầu với cái gì…

Một mặt, thị trường DBMS dành cho doanh nghiệp đã tồn tại hàng thập kỷ. Do đó, nó có cả những nhà lãnh đạo được công nhận và những người mới đầy triển vọng. Mặt khác, các yêu cầu kinh doanh không ngừng tăng lên, do đó, cách tiếp cận để xây dựng cơ sở hạ tầng CNTT của các công ty luôn thay đổi.

Giờ đây, bạn sẽ không làm ai ngạc nhiên với cơ sở dữ liệu từ một cụm gồm vài nghìn máy chủ với phân đoạn ngang và dọc, giao dịch phân tán, cũng như bộ phận CNTT gồm vài chục quản trị viên hệ thống đi thay đổi ổ cứng máy chủ theo một lịch trình định trước.

Nói chung, nếu bạn làm việc cho một công ty lớn, thì rất có thể họ sẽ trả rất nhiều tiền cho cơ sở dữ liệu của họ và sử dụng những thứ như thế này:

Cơ sở dữ liệu Oracle

Oracle đã phát hành cơ sở dữ liệu đầu tiên của mình vào năm 1979 (43 năm trước). Cô ngay lập tức lấy tên Oracle 2.0 để thuyết phục khách hàng rằng sản phẩm này không mới nhưng đã được thử nghiệm qua thời gian.

Phiên bản hiện tại của cơ sở dữ liệu là Oracle 21 c , trong đó chữ c là từ từ đám mây , như vậy, gợi ý rằng Oracle đang theo kịp thời đại và các giải pháp của nó tương thích hoàn hảo với tất cả các công nghệ đám mây.

Máy chủ Microsoft SQL

Microsoft kiếm được nhiều tiền không phải từ việc bán Windows mà bán các giải pháp máy chủ cho các doanh nghiệp vừa và lớn. Microsoft Office, Microsoft SharePoint, Microsoft Server, v.v. Và tất nhiên, tất cả những điều này đều yêu cầu một cơ sở dữ liệu tốt. Do đó, rất nhiều công ty, sử dụng các sản phẩm và giải pháp của Microsoft, buộc phải sử dụng cơ sở dữ liệu của nó.

DBMS của Microsoft được gọi đơn giản là SQL Server , vì vậy nếu bạn nghe câu hỏi “Bạn đã làm việc với SQL Server chưa?” tại một cuộc phỏng vấn, thì hãy biết rằng đây không phải là một DBMS trừu tượng mà là Microsoft SQL Server.

PostgreSQL

Đây là một DBMS miễn phí tốt, thường được sử dụng không chỉ bởi các công ty vừa và nhỏ mà còn bởi các tập đoàn lớn. Đây là một trong những cơ sở dữ liệu mà Amazon AWS cung cấp dưới dạng dịch vụ cơ sở dữ liệu.

mysql

MySQL là một cơ sở dữ liệu nguồn mở và miễn phí rất phổ biến. Nó được ghi lại đầy đủ, hoạt động nhanh và hỗ trợ nhiều tính năng. Đến nay, đã có phiên bản thứ 8 của DBMS này.

Vào năm 2008, nó đã được mua bởi Sun, được mua bởi Oracle vào năm 2009. Và nó chỉ mang lại lợi ích cho cô ấy - sản phẩm không ngừng phát triển và cải tiến.

Chúng ta sẽ học cách làm việc với cơ sở dữ liệu bằng cách sử dụng MySQL Community Server 8.0 làm ví dụ .

Bảng trong cơ sở dữ liệu: cột và cột

Các DBMS khác nhau có thể lưu trữ dữ liệu ở các định dạng khác nhau, vì vậy chúng tôi sẽ chọn tùy chọn đơn giản và cổ điển nhất - MySQL DBMS.

Và ngay lập tức câu hỏi đặt ra là: làm thế nào để lưu trữ, ví dụ, bất kỳ tài liệu kế toán nào? Tùy chọn đơn giản nhất là lưu trữ từng tài liệu dưới dạng tệp Excel. Sau đó, tất cả các tài liệu liên quan có thể được lưu trữ trong một thư mục. Đây là cách MySQL hoạt động.

Một sự tương tự khác: trong ngôn ngữ Java, bạn có các lớp và gói trong dự án của mình , nhưng đồng thời, các lớp và gói được biểu diễn trên đĩa dưới dạng tệp và thư mục . Một cái gì đó tương tự tồn tại trong MySQL.

Dữ liệu MySQL được lưu trữ dưới dạng bảng , được kết hợp thành cơ sở dữ liệu , nhưng đồng thời, bảng và cơ sở dữ liệu được trình bày trên đĩa dưới dạng tệp và thư mục . Cơ sở dữ liệu là một thư mục và các tệp trong đó là các bảng.

Mỗi bảng bao gồm các cộthàng . Ví dụ:

Quan trọng! Mỗi cột có một tênmột kiểu dữ liệu , vì vậy tất cả các ô trong cùng một cột phải lưu trữ các giá trị cùng kiểu .

Có thể rút ra sự tương tự giữa một bảng trong MySQL và một lớp trong Java. Một bảng là một lớp, một bảng, giống như một lớp, có một tên duy nhất. Các cột trong bảng là các trường lớp; các cột, giống như các trường, có tên và loại duy nhất. Các hàng của bảng là các thể hiện của lớp trong Java.

Một lớp có thể tồn tại mà không có đối tượng và một bảng có thể tồn tại mà không có hàng. Trong Java, bạn có thể tạo một đối tượng mới và trong MySQL, bạn có thể thêm một hàng mới vào bảng. Bạn có thể thay đổi các giá trị trường của một đối tượng và trong MySQL, bạn có thể thay đổi các giá trị liên tiếp.

Nói rằng bảng không phải là một lớp mà là một tập hợp các đối tượng của một lớp nào đó thì càng đúng. Nếu trong MySQL chúng ta có một bảng Employee chứa dữ liệu về nhân viên thì trong Java chúng ta sẽ sử dụng ArrayList collection.

Và, tất nhiên, câu hỏi ngay lập tức được đặt ra: làm thế nào để lấy một số dữ liệu nhất định từ bộ sưu tập này?