-----
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 trên vi.wiki: https://vi.wikipedia.org/wiki/C%C6%A1_s%E1%BB%9F_d%E1%BB%AF_li%E1%BB%87u
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.
|
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]
-----------