Tìm hiểu về các loại hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) và hướng dẫn cài đặt PostgreSQL cho thực hành truy vấn SQL

TM Data School - Trước cơ sở dữ liệu quan hệ, các doanh nghiệp sử dụng hệ thống cơ sở dữ liệu phân cấp, tương ứng các thư mục sao lưu trên máy tính. Tuy nhiên, cách lưu trữ dữ liệu này gặp phải hạn chế lớn trong việc thiếu tính linh hoạt khi khám phá dữ liệu, phức tạp và yêu cầu lớn về phần cứng để lưu trữ khi dữ liệu ngày càng nở ra.

Hệ quản trị cơ sở dữ liệu (DBMS) là giải pháp cho những vấn đề này, nhờ tách việc lưu trữ dữ liệu vật lý khỏi việc quản lý và sử dụng cơ sở dữ liệu.

Trong bài viết này, hãy cùng TM Data School tìm hiểu về hệ quản trị cơ sở dữ liệu của dữ liệu quan hệ (RDBMS) là gì và các RDBMS phổ biến nhất hiện nay nhé!

1. Cơ sở dữ liệu quan hệ là gì? Cấu thành của cơ sở dữ liệu quan hệ?

Cơ sở dữ liệu quan hệ là gì?

Giả sử, một doanh nghiệp có hai bảng dữ liệu lưu trữ về thông tin đơn hàng được xử lý: bảng thứ nhất là customer để lưu trữ thông tin của khách hàng, với các trường dữ liệu như tên, địa chỉ, số điện thoại và thông tin liên hệ khác, và bảng còn lại order lưu trữ thông tin về đơn hàng của mỗi khách hàng, mỗi bản ghi bao gồm ID của khách hàng đã đặt hàng, sản phẩm đặt hàng, số lượng, kích thước và màu sắc đã chọn, ngày tạo đơn hàng, ngày đơn hàng được giao hàng thành công, tình trạng đơn hàng,…

Trong bảng customer, customer_id là khóa định danh duy nhất khách hàng là ai trong cơ sở dữ liệu quan hệ. Không có khách hàng nào khác có cùng ID. Trong bảng order, order_id thì là khóa chính (primary key) để định danh một đơn hàng cụ thể.

Hai bảng này có thể kết nối thông qua hai cột giá trị chung: id trong bảng customer và customer_id trong bảng order - dựa vào đây, có thể tạo ra mối quan hệ giữa hai bảng. Khi truy vấn dữ liệu, có thể bổ sung các trường dữ liệu khách hàng tương ứng của mỗi đơn hàng.

Như vậy, cơ sở dữ liệu quan hệ là cấu trúc các bảng đối tượng (các bảng dữ liệu, view, chỉ mục) có mối quan hệ với nhau.

Mối quan hệ này tách biệt với cấu trúc lưu trữ vật lý. Database administrators sẽ quản lý việc lưu trữ dữ liệu vật lý mà không ảnh hưởng đến quyền truy cập vào dữ liệu đó dưới dạng cấu trúc logic. Ví dụ: đổi tên tệp cơ sở dữ liệu sẽ không đổi tên các bảng được lưu trữ trong đó.

Đặc điểm của cơ sở dữ liệu quan hệ

Một số thành phần chính của một cơ sở dữ liệu quan hệ

Data model

Dữ liệu trong cơ sở dữ liệu quan hệ được lưu trữ ở định dạng bảng có cấu trúc, đồng thời, mối quan hệ linh hoạt giữa các bảng và cho phép sử dụng SQL để viết các truy vấn có độ phức tạp khác nhau cũng mang lại tính linh hoạt cho việc quản lý dữ liệu.

Các thành phần của Data Model - Slide khóa học SQL for Data Analysis

Đọc thêm: Data Modeling là gì? Cách xây dựng Data Model trong Power BI

SQL

Ngôn ngữ truy vấn có cấu trúc (SQL) là phương thức chính để giao tiếp với cơ sở dữ liệu quan hệ. Tất cả các công cụ cơ sở dữ liệu quan hệ phổ biến đều hỗ trợ ANSI SQL tiêu chuẩn. SQL có thể được sử dụng để bổ sung, cập nhật, xóa hoặc truy xuất dữ liệu từ một cơ sở dữ liệu.

Transactions

Giao dịch của một cơ sở dữ liệu quan hệ là một hoặc nhiều câu lệnh SQL chạy dưới dạng một chuỗi các thao tác và tạo thành một đơn vị công việc logic duy nhất. Trong khái niệm cơ sở dữ liệu quan hệ, một giao dịch sẽ dẫn đến COMMIT hoặc ROLLBACK. Hệ thống quản lý cơ sở dữ liệu xử lý mọi giao dịch một cách mạch lạc và đáng tin cậy, độc lập và tách biệt với các giao dịch khác.

Stored procedures

Truy cập dữ liệu bao gồm nhiều hành động lặp đi lặp lại. Ví dụ: một truy vấn đơn giản để lấy thông tin từ bảng dữ liệu có thể cần được lặp lại hàng trăm hoặc hàng nghìn lần để tạo ra kết quả mong muốn. Cơ sở dữ liệu quan hệ cho phép các thủ tục được lưu trữ (stored procedures), là các khối mã có thể được truy cập bằng một lệnh gọi ứng dụng đơn giản. Ví dụ: một thủ tục lưu trữ duy nhất có thể cung cấp việc gắn thẻ bản ghi nhất quán cho người dùng nhiều ứng dụng. Các thủ tục lưu trữ cũng có thể giúp nhà phát triển đảm bảo rằng một số chức năng dữ liệu nhất định trong ứng dụng được triển khai theo một cách cụ thể.

Database locking và concurrency

Trong các cơ sở dữ liệu chỉ có một người dùng, người dùng có thể sửa đổi dữ liệu trong cơ sở dữ liệu mà không cần lo lắng tới khả năng có người dùng khác cùng sửa đổi dữ liệu cùng một lúc. Tuy nhiên, trong cơ sở dữ liệu nhiều người dùng, mâu thuẫn có thể phát sinh khi nhiều người dùng hoặc ứng dụng read và write dữ liệu tại cùng một thời điểm. Do đó, cơ chế kiểm soát tính đồng thời của dữ liệu (data concurrency) và tính nhất quán (data consistency) của dữ liệu cũng là một phần của RDBMS có nhiều người dùng.

Khóa (locking) và kiểm soát đồng thời (simultaneous control - MVCC) là hai kỹ thuật được các RDBMS sử dụng để giải quyết bài toán này:

Ngoài ra, cơ sở dữ liệu còn bao gồm nhiều đối tượng khác, ví dụ:

Database Schema (Lược đồ cơ sở dữ liệu): Định nghĩa cấu trúc của một cơ sở dữ liệu, bao gồm các bảng, cột, kiểu dữ liệu, ràng buộc dữ liệu (constraints), và mối quan hệ (relationship) giữa các bảng.

Constraints (Ràng buộc): Bao gồm các quy tắc để bảo đảm tính toàn vẹn của dữ liệu như ràng buộc khóa chính (primary key), khóa ngoại (foreign key), ràng buộc duy nhất (unique), và các điều kiện kiểm tra (check conditions).

Indexes (Chỉ mục): Các cấu trúc dữ liệu giúp tăng tốc độ truy xuất dữ liệu từ cơ sở dữ liệu.

Views (Chế độ xem): Cấu trúc ảo cho phép truy cập vào dữ liệu của một hoặc nhiều bảng dưới dạng một bảng ảo.

2. Hệ cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS) là gì?

Hệ cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS) là phần mềm được thiết kế để lưu trữ, quản lý các đối tượng và truy xuất dữ liệu của một cơ sở dữ liệu quan hệ. Hệ thống cung cấp một bộ công cụ toàn diện để quản lý cơ sở dữ liệu, đảm bảo tính bảo mật, nhất quán và toàn vẹn dữ liệu.

RDBMS sẽ phù hợp với những doanh nghiệp:

Nguồn ảnh: Nextnet Solutions

3. Các Hệ Quản Trị Cơ Sở Dữ Liệu (DBMS) phổ biến

Oracle Database (PLSQL)

Oracle DB là cơ sở dữ liệu có cấu trúc nguồn đóng được thương mại hóa của tập đoàn Oracle và hỗ trợ các hệ điều hành macOS, Windows và Linux.

Oracle là hệ quản trị cơ sở dữ liệu nổi tiếng, lâu đời với khả năng lưu trữ dữ liệu và khả năng mở rộng, với một loạt các công cụ phân tích và lưu trữ dữ liệu, chẳng hạn khả năng nén nâng cao, chế độ xem cụ thể và phân vùng. Dù vậy, với mức chi phí cao bao gồm chi phí cho phần cứng và chi phí cấp phép, Oracle chủ yếu được sử dụng bởi các doanh nghiệp lớn với mô hình kinh doanh phức tạp và phát sinh khối lượng dữ liệu lớn hàng ngày, tại Việt Nam chủ yếu là các ngân hàng.

Điểm cộng:

Điểm trừ:

Microsoft SQL Server (T-SQL)

Microsoft SQL Server là sản phẩm thuộc quyền sở hữu của Microsoft, với điểm cộng lớn nhất là khả năng tích hợp liền mạch với các sản phẩm khác của hệ sinh thái Microsoft.

SQL Server hỗ trợ các hệ điều hành Windows và Linux, có khả năng tạo điều kiện truy cập thông qua các truy vấn SQL và giao diện đồ họa người dùng.

SQL Server được biết đến với độ tin cậy, khả năng mở rộng và dễ sử dụng. Nó cũng cung cấp một loạt tính năng để lưu trữ và phân tích dữ liệu, bao gồm các chỉ mục của kho lưu trữ cột, OLTP trong bộ nhớ và polybase.

Các ứng dụng doanh nghiệp lớn thường sử dụng cơ sở dữ liệu Microsoft SQL Server và tận dụng nhiều tính năng với phiên bản SQL Server hiện tại, bao gồm tính toàn vẹn tham chiếu (referential integrity), kiểm soát đồng thời nhiều phiên bản (multi-version concurrency control), tính sẵn có của dữ liệu (higher availability), khả năng khóa chi tiết (fine-grained locking) và độ ổn định cao hơn (greater stability).

Điểm cộng:

Điểm trừ:

MySQL

MySQL là máy chủ cơ sở dữ liệu SQL mã nguồn mở, phổ biến và dễ sử dụng nhất được sử dụng rộng rãi để phát triển ứng dụng web. Bên cạnh phiên bản nguồn mở được thiết kế để hỗ trợ các câu lệnh SQL cơ bản, phiên bản thương mại dành cho doanh nghiệp cũng cung cấp một loạt tiện ích mở rộng và plugin bổ sung.

Cơ sở dữ liệu được viết bằng C và C++ và hỗ trợ nhiều nền tảng khác nhau như Hệ điều hành Windows Server và các bản phân phối Linux như RHEL 7 và Ubuntu. MySQL cũng tuân thủ hệ thống ACID để đảm bảo tính nhất quán trong giao dịch và cung cấp nhiều Connectors và API khác nhau như C, C++, Java, PHP,…

Điểm cộng:

Điểm trừ:

PostgreSQL

PostgreSQL là mã nguồn mở (open-source) và không bị kiểm soát bởi bất kỳ doanh nghiệp nào mà được xuất bản trên GitHub và duy trì bởi Nhóm Phát triển Toàn cầu PostgreSQL. PostgreSQL có cả hai lựa chọn hỗ trợ cộng đồng và thương mại. Mặc dù PostgreSQL có thị phần nhỏ hơn so với MySQL, nhưng PostgreSQL đã có một danh sách khách hàng ấn tượng như AWS RedShift, Instagram, ViaSat và Cloudera.

Tổng quan về PostgreSQL - Slide khóa học SQL for Data Analysis

Không giống MySQL, PostgreSQL là một hệ thống quản lý cơ sở dữ liệu có cấu trúc đối tượng (ORDBMS) được thiết kế để hỗ trợ các mô hình dữ liệu phức tạp và đa dạng hơn. PostgreSQL cung cấp một loạt các tính năng dành cho doanh nghiệp, bao gồm khả năng mở rộng, bảo mật và hỗ trợ tự động hóa tốt hơn thông qua giao diện dòng lệnh hoặc truy cập trực tiếp qua web. PostgreSQL hỗ trợ Windows, macOS và một số bản phân phối Linux.

Điểm cộng:

Điểm trừ:

Vậy điểm khác biệt của 4 RDBMS này là gì?

OracleSQL ServerMySQLPostgreSQLKiến trúc (Architecture)Hệ điều hành hỗ trợ (Server OS)Công nghệ cơ sở dữ liệu (Tech base)Mã nguồn (Source)Ngôn ngữ lập trình chính (Base Code)Ngôn ngữ lập trình hỗ trợ (Supported programming language)Cơ chế xử lý (Process)Các gói đăng ký (Edition)Kiểu dữ liệu hỗ trợ (Data type)Khả năng quản lý đồng thời (Simultaneous control) để đảm bảo tính nhất quán của dữ liệu khi read-write diễn ra song songCơ chế lập chỉ mục (Indexing)Hiệu suất (Performance)Cơ chế nhân bản dữ liệu dự phòng (Replication)Cơ chế phân vùng (Portioning Mechanism)Ứng dụng phổ biến (Use case)Giải pháp cơ sở dữ liệu đám mây (Database as a service - DBaaS)Đường cong học tập (Learning curve)Khách hàng nổi tiếng (Key customer)

Cần chú ý điều gì khi lựa chọn hệ quản trị cơ sở dữ liệu quan hệ

Lựa chọn RDBMS nào sẽ còn tùy thuộc vào nhu cầu cụ thể của dự án, tính bảo mật, công nghệ của RDBMS, quy mô, yêu cầu về hiệu suất, cân nhắc chi phí và nhiều yếu tố khác.

Bạn có thể trả lời một số câu hỏi dưới đây để tìm hiểu về nhu cầu của doanh nghiệp:

Đọc thêm: Có nhiều loại SQL như vậy, bạn nên học loại SQL nào?

4. Hướng dẫn từng bước cài PostgreSQL

Bước 1: Download PostgreSQL

Để cài đặt PostgreSQL trên máy tính, truy cập installer by EDB, và download phiên bản mới nhất tương ứng với hệ điều hành của máy tính.

Bước 2: Bắt đầu cài đặt

Sau khi download, click chuột chọn file đã download và bắt đầu quá trình thiết lập:

Bước 3: Chỉ định thư mục cài đặt

Bạn có thể lựa chọn thư mục nơi PostgreSQL sẽ được cài đặt.

Bước 4: Lựa chọn thành phần sẽ cài đặt

Để sử dụng PostgreSQL, bạn sẽ cần cài đặt PostgreSQL Server, pgAdmin 4, và Command Line Tools, trong đó:

Bước 5: Lựa chọn thư mục lưu trữ

Bạn cũng có thể lựa chọn nơi sẽ lưu trữ dữ liệu của cơ sở dữ liệu, hoặc đồng ý theo mặc định sẽ được lưu trữ tại tệp tin của chương trình:

Bước 6: Cài đặt mật khẩu

Bạn sẽ cần cài đặt mật khẩu để truy cập cơ sở dữ liệu. Bởi đây là cơ sở dữ liệu local (tại môi trường cá nhân) và không có kết nối tới những cơ sở khác, hãy giả sử mật khẩu là 12345678:

Bước 7: Lựa chọn Port (cổng truy cập)

Bạn có thể lựa chọn số port của server (mặc định của PostgreSQL sẽ là 5432), đồng thời hãy đảm bảo rằng không có ứng dụng nào khác sử dụng port này

Bước 8: Lựa chọn ngôn ngữ

Thiết lập ngôn ngữ bằng cách lựa chọn vị trí địa lý của máy chủ cơ sở dữ liệu. Nếu để trống, mặc định của PostgreSQL sẽ sử dụng ngôn ngữ của hệ điều hành:

Bước 9: Check lại lần cuối

Sau khi đảm bảo các thông tin cài đặt đã chính xác, click chọn ‘Next’ để tiếp tục:

Bước 10: Bắt đầu cài đặt

Click ‘Next’ để bắt đầu cài đặt, quá trình này sẽ mất một vài phút:

Bước 11: Hoàn tất cài đặt

Bạn đã hoàn thiện quá trình cài đặt PostgreSQL trên máy tính cá nhân!

Bước 12: Kiểm tra stack builder prompt

Sau khi quá trình cài đặt kết thúc, sẽ có hộp thoại Stack Builder xuất hiện. Tick không lựa chọn sử dụng Stack Builder và click Finish.

Bước 13: Khởi động PostgreSQL

Vào Start Menu và tìm kiếm pgAdmin 4.

Bước 14: Kiểm tra pgAdmin

Bạn có thể thấy homepage của pgAdmin

Bước 15: Tìm PostgreSQL 10.

Click chọn Servers và chọn PostgreSQL 10 ở phía bên trái.

Bước 16: Nhập mật khẩu

Nhập mật khẩu đã cài đặt trong quá trình cài đặt và click OK.

Bước 17: Kiểm tra dashboard

Tạm kết

Bởi mỗi RBDMS đều có điểm cộng và điểm trừ khác nhau và có thể được ứng dụng trong nhiều use case khác nhau, một doanh nghiệp có thể sử dụng tới một vài RBDMS để lưu trữ - ví dụ, dữ liệu về giao dịch tài chính được lưu tại MySQL, trong khi dữ liệu của các đơn hàng có thể được lưu tại PostgreSQL,…

Nếu bạn muốn trang bị kiến thức căn bản về các hệ quản trị cơ sở dữ liệu, biết cách truy vấn dữ liệu bài bản từ hệ thống dữ liệu SQL, hãy tham khảo SQL for Data Analysis của TM Data School.

Khóa học sẽ mang đến cho bạn:

Ngoài khi tham gia khóa học bạn còn được hướng dẫn bài bản từ các anh chị trainers được đào tạo về Data Science ở nước ngoài.

Tham khảo chi tiết khóa học tại đây!

Bài viết được tổng hợp và biên dịch bởi TM Data School, xin vui lòng không sao chép dưới mọi hình thức!

Link nội dung: https://melodious.edu.vn/trong-co-so-du-lieu-quan-he-lien-ket-giup-he-quan-tri-co-so-du-lieu-nhu-the-nao-a67205.html