--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

Ebook2LateX (5) - Cài đặt hệ quản trị cơ sở dữ liệu

Bài trước: Ebook2LateX (4) - Khởi tạo dự án
-----

5. Cài đặt hệ quản trị cơ sở dữ liệu

Phần này sẽ cài đặt hệ quản trị cơ sở dữ liệu để lưu trữ thông tin cho dự án.

5.1 PostgreSQL

Bước 1. Cài đặt PostgreSQL

- Tải phần mềm: Truy cập trang chủ PostgreSQL (https://www.postgresql.org/) và tải bản cài đặt phù hợp với hệ điều hành bạn đang sử dụng (Windows/Linux/macOS)

- Thực hiện cài đặt như một chương trình bình thường

- Cấu hình ban đầu: Thiết lập mật khẩu cho tài khoản quản trị mặc định (tài khoản: postgres; mật khẩu: p@ssword1)

- Ghi nhớ cổng kết nối mặc định (thường là 5432)

- Sau khi cài đặt PostgreSQL thành công, sử dụng công cụ pgAdmin4 (được cài đặt tự động với quá trình cài đặt PostgreSQL) để đăng nhập vào hệ thống

Bước 2. Tạo Database cho dự án

(sử dụng pgAdmin4)

- Mở pgAdmin4 và đăng nhập với mật khẩu đã tạo ở bước cài đặt (postgres - p@ssword1)

- Chuột phải vào mục Databases -> chọn Create -> Database…

- Tại ô Database, nhập tên: ebook2latex_db

- Nhấn Save

Bước 3: Cấu hình chuỗi kết nối trong tập tin .env

Để ứng dụng Backend (FastAPI) có thể giao tiếp với cơ sở dữ liệu mà vẫn đảm bảo tính bảo mật, chúng ta lưu thông tin cấu hình trong tập tin môi trường.

- Trong thư mục gốc của dự án (Ebook2LateX), tạo thư mục backend

- Truy cập vào thư mục backend/

- Tạo một tập tin mới tên là .env (nếu chưa có)

- Thêm nội dung cấu hình chuỗi kết nối theo định dạng của SQLAlchemy như sau:

[.env]

# Định dạng: postgresql://[user]:[password]@[host]:[port]/[database_name]

DATABASE_URL=postgresql://postgres:mat_khau_cua_ban@localhost:5432/ebook2latex_db

Giải thích các thành phần của đoạn mã trên:

- postgres: Tên người dùng mặc định

- mat_khau_cua_ban: Thay bằng mật khẩu bạn đã thiết lập ở bước cài đặt

- localhost: Chạy trên máy cục bộ (hoặc db nếu bạn chạy trong Docker)

- 5432: Cổng mặc định của PostgreSQL

- ebook2latex_db: Tên cơ sở dữ liệu vừa tạo

Việc tách và lưu thông tin cấu hình ra tập tin .env giúp bạn dễ dàng thay đổi môi trường (từ máy cá nhân sang Docker hoặc Cloud) mà không cần sửa mã nguồn ứng dụng.

5.2 Bài tập và câu hỏi

Bài tập

Bài tập 5a. Thực hiện cài đặt các nội dung trong bài học.

Câu hỏi

Câu 5.1 Tại sao thông tin kết nối cơ sở dữ liệu nên được lưu trữ trong tập tin .env thay vì viết trực tiếp vào mã nguồn của ứng dụng Backend?

A. Để giúp cơ sở dữ liệu PostgreSQL chạy nhanh hơn

B. Để đảm bảo tính bảo mật và giúp dễ dàng thay đổi cấu hình khi chuyển đổi môi trường (như từ máy cá nhân lên Cloud) mà không cần sửa mã nguồn

C. Vì tập tin .env là nơi duy nhất mà công cụ pgAdmin4 có thể đọc được tên cơ sở dữ liệu

D. Để hệ điều hành Windows/Linux tự động cài đặt PostgreSQL khi ứng dụng khởi chạy

Câu 5.2 Trong chuỗi kết nối postgresql://postgres:p@ssword1@localhost:5432/ebook2latex_db, thành phần "5432" đóng vai trò gì?

A. Là mã định danh (ID) của tài khoản người dùng quản trị

B. Là mật khẩu truy cập vào hệ quản trị cơ sở dữ liệu

C. Là cổng kết nối (port) mặc định để ứng dụng giao tiếp với PostgreSQL

D. Là phiên bản của hệ quản trị cơ sở dữ liệu PostgreSQL đang sử dụng

Câu 5.3 Giả sử bạn đã cài đặt PostgreSQL với mật khẩu là 123456 và tạo một database tên là project_math. Bạn cần cấu hình tập tin .env trong thư mục backend như thế nào để ứng dụng kết nối đúng (giả sử các thông số khác để mặc định)?

A. DATABASE_URL=postgresql://admin:123456@localhost:5432/project_math

B. DATABASE_URL=postgresql://postgres:123456@localhost:5432/project_math

C. DATABASE_URL=postgresql://123456:postgres@localhost:5432/project_math

D. DATABASE_URL=postgresql://postgres:123456@localhost:8000/project_math

-----

Bài sau: Ebook2LateX (6) - Phân tích và thiết kế các bảng