Bài 7 - Cơ sở dữ liệu, Hệ quản trị cơ sở dữ liệu, Ngôn ngữ truy vấn dữ liệu SQL

Trong các trường đại học, cao đẳng giảng dạy về công nghệ thông tin thì ở năm cuối bạn sẽ được học 1 môn rất quan trọng là phân tích thiết kế hệ thống và cơ sở dữ liệu. Vậy cơ sở dữ liệu là gì? Nó đóng vai trò như nào trong xây dựng chương trình, phần mềm máy tính. Bạn hãy đọc bài viết này để hiểu rõ về nó nhé.

1. Cơ sở dữ liệu là gì?

Cơ sở dữ liệu (Database) hiểu một cách đơn giản nhất là nơi lưu trữ dữ liệu phục vụ cho chương trình máy tính. Một cơ sở dữ liệu sẽ bao gồm nhiều bảng và nhiều khi các bảng này sẽ có mối quan hệ với nhau (theo khóa ngoại chẳng hạn). Bạn sẽ hiểu khái niệm khóa chính, khóa ngoại ngay sau khi đọc ví dụ sau:

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

Chúng ta sẽ cùng quay trở lại bài toán "quản lý danh sách sinh viên" mà mình đã viết ở các bài trước. Ở đây chúng ta cần quản lý thông tin cơ bản 1 sinh viên như Số thứ tự, mã sinh viên, họ tên, ngày sinh, số điện thoại, địa chỉ...và bây giờ sẽ thêm 1 thông tin nữa là "mã khoa quản lý sinh viên" đó. Giả sử 1 sinh viên chỉ thuộc 1 khoa quản lý thôi (liên kết 1-1) thì ta sẽ thiết kế Cơ sở dữ liệu như sau:

Đầu tiên ta sẽ có bảng "tbl_danh_sach_sinh_vien" (tên bạn tùy thích đặt) chứa danh sách sinh viên với khóa chính là "mã sinh viên". Tiêu chuẩn của khóa chính là duy nhất, không được trùng lặp. Tiếp theo là ta sẽ có bảng thông tin khoa là "tbl_danh_sach_khoa" với các trường tên khóa, mã khoa, số điện thoại, khu nhà chẳng hạn. Và "mã khoa" cũng là khóa chính của bảng "tbl_danh_sach_khoa" luôn. Lúc này ở bảng "tbl_danh_sach_sinh_vien" thì trường "mã khoa quản lý sinh viên" sẽ lưu thông tin là "mã khoa" của bảng  "tbl_danh_sach_khoa" nên trường "mã khoa quản lý sinh viên" gọi là khóa ngoại của bảng "tbl_danh_sach_khoa". Hay nói cách khác thì chỉ cần dựa vào thông tin "mã khoa quản lý sinh viên" trong "tbl_danh_sach_sinh_vien" là ta có thể "chọc" vào bảng "tbl_danh_sach_khoa" để lấy ra thông tin khoa ta mong muốn. Dễ hiểu hơn nữa thì mình sẽ ví dụ dữ liệu cụ thể như sau:

Ví dụ cơ sở dữ liệu bảng danh sách sinh viên

Ví dụ cơ sở dữ liệu bảng danh sách khoa

Bảng "tbl_danh_sach_sinh_vien" có 2 bản ghi: Sinh viên 1 tên là Hoảng, mã sinh viên là 0001, mã khoa CNTT. Sinh viên 2 tên là Ngân, mã sinh viên là 0002, mã khoa TCNH. Bảng "tbl_danh_sach_khoa" có 2 bản ghi: bản ghi 1 là mã khoa "CNTT", tên là "Công nghệ thông tin", khu nhà C, bản ghi 2 là "TCNH" có tên là "Tài chính ngân hàng", khu nhà A. Trong đó 0001, 0002 là giá trị của khóa chính "mã sinh viên" trong bảng "tbl_danh_sach_sinh_vien", tương tự 2 giá trị mã khoa CNTT và TCNH là khóa chính của bảng "tbl_danh_sach_khoa". Còn giá trị CNTT ở sinh viên 1 có tên là Hoàng là khóa ngoại link đến bản ghi CNTT trong "tbl_danh_sach_khoa".  

Đương nhiên đây là ví dụ rất đơn giản, trên thực tế 1 hệ thống quản lý sẽ phức tạp hơn nhiều, có thể lên đến vài chục bảng. Bạn sẽ được học kỹ và sâu hơn trong khóa học "phân tích hệ thống và thiết kế CSDL" do mình tổ chức. Tiếp theo bạn sẽ được tìm hiểu về khái niệm hệ quản trị dữ liệu là gì

2. Hệ quản trị cơ sở dữ liệu là gì?

Hệ quản lý cơ sở dữ liệu (Database Management System - DBMS) là phần mềm để quản trị cơ sở dữ liệu. Các thao tác thường sử dụng như tạo mới Cơ sở dữ liệu (database), đổi tên database, xóa bảng, xóa bản ghi, update bản ghi, thêm bản ghi....Trong lập trình web bằng PHP thì ta thường sử dụng hệ quản trị dữ liệu là MySql hoặc PostGresql. Bạn sẽ được học kỹ hơn phần này trong seriez "Hệ quản trị dữ liệu MySQL".

Hệ quản trị dữ liệu MySql, phpmyadmin

3. Ngôn ngữ truy vấn dữ liệu SQL là gì?

Hiểu cách đơn giản thì SQL giúp ta viết các câu lệnh truy vấn để "chọc" vào cơ sở dữ liệu để thực hiện thao tác ta mong muốn (lấy bản ghi, thêm bản ghi, update bản ghi, đổi tên bảng, đổi tên CSDL).

Truy vấn dữ liệu là gì

Trở lại ví dụ quản lý danh sách sinh viên ở trên, ta muốn lấy danh sách tất cả sinh viên ở khoa CNTT thì ta sẽ viết câu lệnh truy vấn sau:

SELECT * FROM `tbl_danh_sach_sinh_vien` WHERE `ma_khoa`='CNTT'

Bạn cũng sẽ được học kỹ hơn phần này trong seriez "Truy vấn dữ liệu Sql".

Tác giả: Admin