Ngu ngơ học làm web (98) - MySQL - khái niệm

Tiếp theo của: Ngu ngơ học làm web (97) - Stateless, stateful, connectionless
-----

Phần 98. MySQL - khái niệm


Vào lại trang index.php của ứng dụng Openemr, sẽ thấy dòng mã này:
require_once "sites/$site_id/sqlconf.php";

Mở theo đường dẫn sites/default/sqlconf.php sẽ thấy các thông tin cấu hình liên quan đến MySQL.

Để có thể đọc, hiểu được mã nguồn của Openemr, phần này sẽ học tiếp các kiến thức cơ bản về cơ sở dữ liệu, về hệ quản trị cơ sở dữ liệu MySQL.

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


Cơ sở dữ liệu là một tập hợp thông tin có cấu trúc. Các thông tin này được duy trì dưới dạng một tập hợp các tập tin trong hệ điều hành, hoặc được lưu trữ trong các hệ quản trị cơ sở dữ liệu.

Ưu điểm của cơ sở dữ liệu:

  Giảm sự trùng lặp thông tin xuống mức thấp nhất

  Có thể truy xuất thông tin theo nhiều cách

  Cho phép nhiều người cùng sử dụng một lúc

Cơ sở dữ liệu phản ánh một phần của thế giới thật.

Có nhiều loại cơ sở dữ liệu, ví dụ:

Loại cơ sở dữ liệu
Đặc điểm
Cơ sở dữ liệu dạng tập tin
Dữ liệu được lưu trữ dưới dạng các tâp tin (text, ascii, .dbf).
Cơ sở dữ liệu quan hệ
Dữ liệu được lưu trữ trong các bảng dữ liệu gọi là các thực thể, giữa các thực thể này có mối liên hệ với nhau gọi là các quan hệ, mỗi quan hệ có các thuộc tính, trong đó có một thuộc tính là khóa chính. Các hệ quản trị hỗ trợ cơ sở dữ liệu quan hệ như: MS SQL server, Oracle, MySQL,…v.v.
Cơ sở dữ liệu hướng đối tượng
Dữ liệu cũng được lưu trữ trong các bảng dữ liệu, nhưng các bảng có bổ sung thêm các tính năng hướng đối tượng như lưu trữ thêm các hành vi, nhằm thể hiện hành vi của đối tượng. Mỗi bảng xem như một lớp dữ liệu, mỗi dòng dữ liệu trong bảng là một đối tượng. Các hệ quản trị có hỗ trợ cơ sở dữ liệu hướng đối tượng như: MS SQL server, Oracle, PostgreSQL (viết tắt Postgres).
Cơ sở dữ liệu bán cấu trúc
Dữ liệu được lưu dưới dạng XML, với định dạng này, thông tin mô tả về đối tượng thể hiện trong các thẻ (tag). Đây là cơ sở dữ liệu có nhiều ưu điểm, do lưu trữ được hầu hết các loại dữ liệu khác nhau. Đây là hướng mới trong nghiên cứu và ứng dụng. Ngoài ra, dữ liệu còn được lưu dưới dạng JSON, BSON.

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

Theo vi.wiki:

Hệ quản trị cơ sở dữ liệu (tiếng Anh: Database Management System – DBMS) là phần mềm hay hệ thống được thiết kế để quản trị một cơ sở dữ liệu.

Các DBMS cho phép lưu trữ, sửa chữa, xóa và tìm kiếm thông tin trong một cơ sở dữ liệu. Có nhiều loại DBMS khác nhau: từ phần mềm nhỏ chạy trên máy tính cá nhân đến những hệ quản trị phức tạp chạy trên một hoặc nhiều siêu máy tính.

Đa số các DBMS đều sử dụng ngôn ngữ truy vấn theo cấu trúc, tiếng Anh gọi là Structured Query Language (SQL).

Các DBMS phổ biến gồm: MySQL, Oracle, PostgreSQL, SQL server, DB2, Infomix.

Phần lớn các DBMS hoạt động tốt trên nhiều hệ điều hành khác nhau như Linux, Unix mà MacOS, trừ SQL server của Microsoft chỉ chạy trên hệ điều hành Windows.

Cùng xem và làm thực hành theo loạt bài giảng của thầy Nguyễn Anh Tuấn, Trung tâm tin học – Đại học KHTN TP.HCM.

Đây là clip số 1:

Các kĩ năng đầu tiên cần làm được là:

 Tạo database

 Tạo table

 Import dữ liệu

 Export dữ liệu

Phần này thực hành trên phần mềm XAMPP.

Để thực hành với MySQL, vào trình duyệt nhập vào đường dẫn: http://localhost:8888/phpmyadmin/ (lưu ý: cổng 8888 là cổng của giao thức HTTP chạy trên XAMPP, vì vậy bạn có thể đổi cho phù hợp trên máy của bạn)

Vị trí lưu cơ sở dữ liệu trên máy local là: C:\xampp\mysql\data

Mỗi bảng trong cơ sở dữ liệu gồm ba tập tin: tập tin lưu cấu trúc (.frm), tập tin lưu nội dung (.MYD), và tập tin lưu chỉ mục (.MYI).

Chọn database, vào Operations để đổi tên, xóa một database.

Trong một bảng có thể có hoặc không có khóa chính (primary). Khóa chính là duy nhất. Khóa chính có thể chứa một hoặc nhiều hơn một trường (field).

Unique: không cho phép giá trị trùng nhau.

Ghi lại phần mô tả các bảng để tham khảo:

loai_mon_an (Loại món ăn)
#
Name
Type
Collation
Attributes
Null
Default
Extra
1
ma_loai
int(11)


No
None
AUTO_INCREMENT
2
ten_loai
varchar(200)
utf8_unicode_ci

No
None

3
mo_ta
varchar(500)
utf8_unicode_ci

No
None

4
hinh
varchar(100)
utf8_unicode_ci

No
None


mon_an (Món ăn)
#
Name
Type
Collation
Attributes
Null
Default
Extra
1
ma_mon
int(11)


No
None
AUTO_INCREMENT
2
ma_loai
int(11)


No
None

3
ten_mon
varchar(100)
utf8_unicode_ci

No
None

4
noi_dung_tom_tat
varchar(200)
utf8_unicode_ci

No
None

5
noi_dung_chi_tiet
varchar(500)
utf8_unicode_ci

No
None

6
don_gia
double


No
None

7
don_gia_khuyen_mai
double


No
None

8
khuyen_mai
varchar(200)
utf8_unicode_ci

No
nước ngọt, khăn lạnh

9
hinh
varchar(100)
utf8_unicode_ci

No
None

10
ngay_cap_nhat
date


No
None

11
dvt
varchar(50)
utf8_unicode_ci

No
đĩa

12
trong_ngay
boolean


No
0


khach_hang (Khách hàng)
#
Name
Type
Collation
Attributes
Null
Default
Extra
1
ma_khach_hang
int(11)


No
None
AUTO_INCREMENT
2
ten_khach_hang
varchar(100)
utf8_unicode_ci

No
None

3
email
varchar(50)
utf8_unicode_ci

No
None

4
dia_chi
varchar(100)
utf8_unicode_ci

No
None

5
dien_thoai
varchar(20)
utf8_unicode_ci

No
None

6
ghi_chu
varchar(200)
utf8_unicode_ci

No
None


hoa_don (Hóa đơn)
#
Name
Type
Collation
Attributes
Null
Default
Extra
1
ma_hoa_don
int(11)


No
None
AUTO_INCREMENT
2
ma_khach_hang
int(11)


No
None

3
ngay_dat
date


No
None

4
tong_tien
double


No
None

5
tien_dat_coc
double


No
None

6
con_lai
double


No
None

7
hinh_thuc_thanh_toan
varchar(100)
utf8_unicode_ci

No
None

8
ghi_chu
varchar(200)
utf8_unicode_ci

No
None


chi_tiet_hoa_don (Chi tiết hóa đơn)
#
Name
Type
Collation
Attributes
Null
Default
Extra
1
ma_hoa_don
int(11)


No
None

2
ma_mon
int(11)


No
None

3
so_luong
int(11)


No
None

4
don_gia
double


No
None

5
mon_thuc_don
boolean


No
1


-----------
Cập nhật [19/10/2020]
-----------
Xem thêm:
Tổng hợp các bài viết về Ngu ngơ học làm web