Mỗi cột có tên duy nhất và định nghĩa kiểu dữ liệu của ● Khóa ngoại Foreign Key: Khóa ngoại là một cột trong bảng được sử dụng để thiết lập mối quan hệ giữa hai bảng.. ● Các bước chuyển
Trang 1UỶ BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC SÀI GÒN
BÁO CÁO KẾT THÚC HỌC PHẦN CƠ SỞ DỮ LIỆU NÂNG CAO
Đề tài: Fabric Agency Database
Thành viên tham gia:
Trang 2MỤC LỤC
MỤC LỤC 1
LỜI CẢM ƠN 4
CHƯƠNG 1 GIỚI THIỆU VỀ NỘI DUNG ĐỀ TÀI 5
1.1 Tổng quan về đề tài 5
1.2 Mục tiêu 6
CHƯƠNG 2 KIẾN THỨC NỀN TẢNG 7
2.1 Các kiến thức liên quan đến lược đồ ERD (Enhanced Entity-Relationship Diagram) 7
2.2 Các kiến thức liên quan đến lược đồ quan hệ 9
2.3 Công nghệ BACK-END 13
2.3.1 Giới thiệu về thư viện Java.sql trong java 13
2.3.2 Cấu trúc của Java.sql 13
2.3.3 Giới thiệu về XAMPP 14
2.3.3.1 XAMPP là gì? 14
2.3.3.2 Các thành phần của XAMPP 14
2.3.3.3 Vì sao nên sử dụng XAMPP? 16
2.3.3.4 Ưu và nhược điểm của XAMPP 17
2.3.4 Tổng quan về hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) 18
2.3.4.1 Hệ quản trị cơ sở dữ liệu - DBMS là gì? 18
2.3.4.2 Database Management System dùng làm gì? 18
2.3.4.3 Các thành phần của DBMS là gì? 19
2.3.4.4 Top 10 loại DBMS phổ biến hiện nay 21
2.3.4.5 Lợi ích của việc sử dụng DBMS 23
2.3.4.6 Hạn chế của DBMS 23
2.3.5 Giới thiệu về hệ quản trị cơ sở dữ liệu MariaDB 24
2.3.5.1 Lịch sử của MariaDB 24
2.3.5.2 Thông tin cần biết về MariaDB 25
2.3.5.3 Ưu điểm của MariaDB là gì? 25
2.3.6 Giới thiệu sơ lược về MySQL 26
2.3.6.1 MySQL là gì? 26
Trang 32.3.6.2 Đôi nét về MySQL 27
2.3.6.3 Kiến trúc cơ sở dữ liệu của MySQL 28
2.3.6.4 Ưu và nhược điểm của MySQL 30
2.3.6.5 Một số tính năng và tùy chọn của cơ sở dữ liệu MySQL 32
2.3.7 Tổng quan về SQL (Structured Query Language) 34
2.3.8 Cách kết nối cơ sở dữ liệu 35
2.4 Công nghệ FRONT-END 37
2.4.1 Giới thiệu về AWT trong Java 37
2.4.1.1 Phân cấp Java AWT 37
2.4.1.2 Các phương thức hữu ích của lớp Component 38
2.4.1.3 Ví dụ về AWT trong java 39
2.4.2 Giới thiệu về Swing trong Java 41
2.4.2.1 Sự khác nhau giữa AWT và Swing 41
2.4.2.2 JFC là gì? 42
2.4.2.3 Phân cấp các lớp trong Java Swing 42
2.4.2.4 Các phương thức thường dùng của lớp Component 43
2.4.2.5 Ví dụ về Swing trong Java 43
CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 45
3.1 Mô hình thực thể mối kết hợp (ER) của Fabric Agency 45
3.2 Lược đồ quan hệ 47
3.3 Thao tác với cơ sở dữ liệu 49
3.3.1 Câu lệnh SQL để tạo các bảng 49
3.3.2 Phân tích từng bảng 56
3.3.3 Danh sách các bảng 64
3.4 Chứng minh một trường hợp sử dụng hiệu suất chỉ mục 64
CHƯƠNG 4 KIỂM THỬ HỆ THỐNG 69
4.1 Kiểm thử chức năng đăng nhập 69
4.2 Kiểm thử chức năng Material search 70
4.3 Kiểm thử chức năng thêm mới nhà cung cấp 73
4.4 Kiểm thử chức năng tìm danh mục theo nhà cung cấp 75
CHƯƠNG 5 KẾT LUẬN 77
5.1 Kết quả đạt được 77
5.2 Những gì chưa đạt được 77
Trang 45.3 Hướng phát triển của hệ thống 77
Trang 5LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn các thầy cô trong khoa Côngnghệ thông tin của trường đại học Sài Gòn, những người đã trực tiếpgiảng dạy cung cấp kiến thức và phương pháp, truyền đạt hết kinhnghiệm của bản thân trong năm tháng qua cho chúng em, đó là nhữngnền tảng cơ bản, là những hành trang vô cùng quý giá để em có thểbước vào sự nghiệp trong tương lai Để có được thành tựu như bâygiờ chúng em xin đặc biệt gửi lời cảm ơn chân thành nhất tới thầyPhan Trọng Nhân đã quan tâm giúp đỡ, đưa ra kế hoạch hướng dẫn,dẫn dắt chúng em hoàn thành một cách tốt nhất đồ án của mình trongthời gian qua Trong quá trình hoàn thành đồ án, sẽ không tránh khỏinhững thiếu sót không đáng có Kính mong nhận được sự góp ý, nhậnxét từ các thầy để kiến thức của chúng em ngày càng hoàn thiện hơn
và rút ra được nhiều kinh nghiệm bổ ích, giúp chúng em chuẩn bị mộthành trang kiến thức đầy đủ để tiến bước trên con đường tương lai
Chúng em xin chân thành cảm ơn!
Trang 6CHƯƠNG 1 GIỚI THIỆU VỀ NỘI DUNG ĐỀ TÀI
1.1 Tổng quan về đề tài
Công ty Y cung cấp vải sỉ theo cuộn cho khách hàng của họ Mỗi cuộnthuộc một danh mục cụ thể như: lụa, khaki, crewel, jacquard, lụa giả, vàdamask Mỗi cuộn có một mã duy nhất trong một danh mục và mộtchiều dài Mỗi loại vải có một mã, tên, màu sắc, giá hiện tại (bao gồmgiá và ngày giá đó được đưa ra), và số lượng (số cuộn của loại nàytrong kho)
Công ty thu vải từ nhiều nhà cung cấp Mỗi nhà cung cấp cung cấpnhiều loại vải khác nhau cho công ty Tuy nhiên, mỗi loại chỉ xuất phát
từ một nhà cung cấp duy nhất Cơ sở dữ liệu cần lưu trữ một số thôngtin về nhà cung cấp như: một mã duy nhất, tên, địa chỉ, tài khoản ngânhàng, mã số thuế, số điện thoại.Khi nguồn vải được nhập vào kho, cầnlưu trữ số lượng của mỗi loại, ngày nhập, giá mua vào cơ sở dữ liệu.Mỗi khách hàng có một mã duy nhất, tên (tên và họ), địa chỉ, số điệnthoại, số nợ (nợ chưa thanh toán), và thanh toán theo đợt (bao gồmngày và số tiền) Ví dụ, một khách hàng nợ $1000, được phép thanhtoán một phần cho công ty (ví dụ, anh ấy hoặc cô ấy thanh toán $200lần đầu, sau đó $300 cho lần tiếp theo, và cứ như vậy cho đến khi anh
ấy hoặc cô ấy thoát khỏi nợ)
Một khách hàng đặt hàng Mỗi đơn hàng chứa một hoặc nhiều cuộn vàđược xử lý bởi một nhân viên vào một ngày và giờ cụ thể Một đơnhàng có một mã duy nhất và một tổng giá Thông tin về nhân viên baogồm một mã duy nhất, tên (tên và họ), giới tính, địa chỉ, và số điệnthoại Khi một khách hàng đặt hàng, hệ thống cần theo dõi tình trạngđơn hàng theo thời gian, bao gồm "mới", "đã đặt hàng", "đã thanh toánmột phần", "đã thanh toán đầy đủ", hoặc "đã hủy" Nếu đơn hàng bị hủy,nhân viên công ty cần nhập lý do cho việc hủy đó
Trang 7Hơn nữa, công ty muốn theo dõi lịch sử thanh toán của mỗi khách hàngcho mỗi đơn hàng anh ấy hoặc cô ấy đã đặt thành công Trong trườnghợp nợ nhiều hơn $2000, hệ thống phải đưa khách hàng đó vào chế độ
"cảnh báo" và thông báo cho công ty Nếu tình trạng này kéo dài hơn 6tháng, số nợ sẽ được đánh dấu là "nợ xấu"
Công ty có các loại nhân viên khác nhau: quản lý, nhân viên đối tác,nhân viên vận hành và nhân viên văn phòng Một nhân viên đối tác sẽchăm sóc một hoặc nhiều nhà cung cấp trong khi một nhân viên vănphòng sẽ chịu trách nhiệm về một hoặc nhiều khách hàng Một nhàcung cấp chỉ được chăm sóc bởi một nhân viên đối tác trong khi mộtkhách hàng chỉ được chăm sóc bởi một nhân viên văn phòng Nhânviên vận hành sẽ chịu trách nhiệm cho đơn đặt hàng của khách hàng.Lưu ý: "Cuộn" là một đơn vị đo lường được sử dụng như một tiêuchuẩn trong ngành công nghiệp cho nhiều loại vật liệu từ gỗ đến bố,thường là các vật liệu được lưu trữ dưới dạng cuộn
- Ánh xạ (E)ER diagram của bạn ở trên sang một lược đồ cơ sở dữliệu quan hệ và xác định tất cả các ràng buộc không được hiển thịtrong (E)ER diagram của bạn
- Xây dựng một ứng dụng với các yêu cầu sau:
● Tìm kiếm thông tin mua vật liệu: Kết quả tìm kiếm bao gồm tên,
số điện thoại của các nhà cung cấp và thông tin về nguồn cung
● Thêm thông tin cho một nhà cung cấp mới
● Liệt kê chi tiết của tất cả các loại hàng mà một nhà cung cấpcung cấp
Trang 8● Tạo một báo cáo cung cấp đầy đủ thông tin về đơn đặt hàngcho mỗi loại hàng của một khách hàng.
- Chứng minh một trường hợp sử dụng hiệu suất chỉ mục
- Giải quyết một trường hợp sử dụng bảo mật cơ sở dữ liệu
Các thành phần của mô hình thực thể mối kết hợp:
● Thực thể (Entities): Thực thể là các đối tượng hoặc khái niệm có ýnghĩa độc lập trong hệ thống Chúng có thể là các đối tượng vật lýnhư người, sách, xe hơi, hoặc đối tượng trừu tượng như kháchhàng, đơn hàng, sự kiện Thực thể trong lược đồ ERD được biểudiễn bằng hình chữ nhật hoặc hình chữ nhật có 2 nét nếu là thực thểyếu
● Quan hệ (Relationships): Quan hệ mô tả sự tương tác hoặc mốiquan hệ giữa các thực thể trong hệ thống Chúng xác định cách cácthực thể liên kết với nhau và mối quan hệ giữa chúng Ví dụ, mộtquan hệ "Một đến Nhiều" (One-to-Many) giữa thực thể "Khách hàng"
và "Đơn hàng" cho biết một khách hàng có thể có nhiều đơn hàng,trong khi một đơn hàng chỉ thuộc về một khách hàng Quan hệ tronglược đồ ERD được biểu diễn bằng hình thoi hoặc hình thoi 2 nét nếu
là quan hệ yếu.Ký hiệu (Min-Max) :
● Đặc tả ràng buộc cấu trúc trên các mối quan hệ
● Thay thế tỉ lệ cardinality (1:1, 1:N, M:N) và ký hiệu đơn/đôiđường cho ràng buộc tham gia
● Liên kết mỗi sự tham gia của một loại thực thể E trong một loạimối quan hệ R với một cặp số nguyên (min, max)
Trang 9● Thuộc tính (Attributes): Thuộc tính là thông tin cụ thể về mỗi thực thểhoặc quan hệ Chúng mô tả các đặc điểm, đặc tính hoặc thuộc tínhcủa thực thể hoặc quan hệ đó Ví dụ, thuộc tính của thực thể "Sách"
có thể bao gồm tiêu đề, tác giả, năm xuất bản, và ISBN
- Thuộc tính dẫn xuất: thuộc tính đại diện cho một giá trị có thể tạo ra
từ giá trị của một thuộc tính liên quan, hoặc từ một tập hợp các thuộctính
- Thuộc tính phức tạp: vừa là thuộc tính phức hợp, vừa là thuộc tính
đa trị
Khóa: một thuộc tính được gọi là khóa khi được dùng để phân biệtthể hiện của thực thể có cùng loại thực thể.Một thực thể có thể cónhiều hơn một khóa
● Lược đồEER (Enhanced Entity-Relationship) model bao gồm tất cả
(Entity-Relationship).Ngoài ra, EER bao gồm:
- Subclasses and superclasses
- Specialization and generalization
- Category or union type
- Attribute and relationship inheritance
Trang 102.2 Các kiến thức liên quan đến lược đồ quan hệ
● Bảng (Table): Mỗi bảng trong lược đồ quan hệ đại diện cho một thựcthể hoặc một tập hợp các thực thể trong hệ thống Mỗi bảng có mộttên duy nhất và chứa các cột và dòng dữ liệu
+ Ví dụ: trong một hệ thống quản lý sinh viên, có thể có một bảng
"Students" đại diện cho thông tin sinh viên với các cột như
"StudentID", "Name", "DateOfBirth", v.v
● Cột (Column): Mỗi cột trong bảng đại diện cho một thuộc tính cụ thểcủa thực thể Mỗi cột có tên duy nhất và định nghĩa kiểu dữ liệu của
● Khóa ngoại (Foreign Key): Khóa ngoại là một cột trong bảng được
sử dụng để thiết lập mối quan hệ giữa hai bảng Khóa ngoại thamchiếu đến khóa chính trong bảng gốc, tạo mối quan hệ giữa haibảng
+ Ví dụ:, trong bảng "Courses", có thể có một cột "StudentID" là khóangoại tham chiếu đến khóa chính "StudentID" trong bảng "Students"
● Ràng buộc (Constraint): Ràng buộc trong lược đồ quan hệ là cácquy tắc được áp dụng để xác định các giới hạn và quy định về dữliệu trong cơ sở dữ liệu
Các ràng buộc bao gồm:
Trang 11- Ràng buộc duy nhất (Unique Constraint): Đảm bảo rằng giá trị trong
một cột là duy nhất trong bảng
- Ràng buộc khóa ngoại (Foreign Key Constraint): Đảm bảo rằng giá
trị trong cột khóa ngoại phải tham chiếu đến giá trị hợp lệ trong bảngtham chiếu
- Ràng buộc kiểm tra (Check Constraint): Áp dụng một biểu thức
hoặc điều kiện để kiểm tra tính hợp lệ của dữ liệu trong cột
- Ràng buộc khóa chính (Primary Key Constraint): Đảm bảo rằng giá
trị trong cột khóa chính là duy nhất và không được phép để trống
● Chuẩn hóa (Normalization): Hạn chế là quá trình tổ chức dữ liệutrong các bảng để đảm bảo tính nhất quán, hiệu quả và tránh sựtrùng lặp dữ liệu Các hình thức chuẩn hóa giúp cải thiện cấu trúc vàhiệu suất của cơ sở dữ liệu Các dạng chuẩn hóa bao gồm NormalForm 1NF, 2NF, 3NF, BCNF và 4NF
● Các bước chuyển từ lược đồ thực thể kết hợp sang lược đồ quanhệ:
○ Bước 1: Ánh xạ các loại thực thể mạnh
■ Thực thể > Mối quan hệ
■ Thuộc tính của thực thể > Thuộc tính của mối quan hệ
■ Khóa chính của thực thể > Khóa chính của mối quan hệ
○ Bước 2: Ánh xạ các loại thực thể yếu (yếu)
■ Đối với mỗi loại thực thể yếu W trong lược đồ ER với loạithực thể chủ sở hữu E, tạo một mối quan hệ R và baogồm tất cả các thuộc tính đơn (hoặc thành phần đơn củacác thuộc tính hợp thành) của W
■ Ngoài ra, bao gồm các thuộc tính khóa ngoại của R làcác thuộc tính khóa chính của các mối quan hệ tươngứng với loại thực thể chủ sở hữu
Trang 12■ Khóa chính của R là sự kết hợp giữa các khóa chính củathực thể mạnh sở hữu W và khóa chính của loại thực thểyếu W, nếu có.
○ Bước 3: Ánh xạ các loại mối quan hệ (0,1) và (0,1):
■ Mối kết hợp R được chuyển thành một lược đồ quan hệS
■ Các thuộc tính của S gồm hai khóa của T và Q và cácthuộc tính của mối kết hợp R
○ Bước 4: Ánh xạ các loại mối kết hợp (1,1) và (0,1) hoặc (1,1):thêm khóa của loại thực thể này và các thuộc tính của R vàotập thuộc tính của lược đồ quan hệ ứng với tập thực thể kia
○ Bước 5: Ánh xạ các loại mối kết hợp (0,1) và (0,n) hoặc (1,n):mối kết hợp R được chuyển thành một lược đồ quan hệ S.Cácthuộc tính của S gồm hai khóa của T và Q và các thuộc tínhcủa mối kết hợp R
○ Bước 6: Ánh xạ các loại mối kết hợp (1,1) và (0,n) hoặc (1,n):Nếu giá trị (min,max) của T là (1,1) và của Q là (0,n) hoặc (1,n)thì mối kết hợp R sẽ được chuyển hóa vào lược đồ quan hệcủa T bằng cách thêm một khóa của Q và các thuộc tính của Rvào tập thuộc tính của lược đồ quan hệ ứng với tập thực thể T
○ Bước 7: Ánh xạ các loại mối kết hợp (0,n) và (1,n): mối kết hợp
R được chuyển thành một lược đồ quan hệ S Các thuộc tínhcủa S gồm khóa của hai thực thể và các thuộc tính của mốikết hợp R
○ Bước 8: Các Lựa chọn để Ánh xạ Chuyên hóa hoặc Tổng quáthóa
Chuyển đổi mỗi chuyên hóa với m subclasses {S1, S2, , Sm}
và superclass Tổng quát C, trong đó các thuộc tính của C là {k,a1, , an} và k là khóa (chính), thành các lược đồ quan hệbằng cách sử dụng một trong bốn lựa chọn sau:
- Lựa chọn 8A: Nhiều lược đồ quan hệ - Superclass vàsubclasses
Trang 13- Lựa chọn 8B: Nhiều lược đồ quan hệ - Chỉ quan hệ củaSubclass
- Lựa chọn 8C: Một lược đồ quan hệ với một thuộc tínhloại
- Lựa chọn 8D: Một lược đồ quan hệ với nhiều thuộc tínhloại
○ Bước 9: Ánh xạ các Union Types (Categories):Đối với việc ánh
xạ một loại Union Type mà superclass xác định có các khóakhác nhau, thường quy định việc chỉ định một thuộc tính khóamới, gọi là khóa thay thế, khi tạo một mối quan hệ tương ứngvới loại hợp nhất
Các dạng chuẩn của lược đồ quan hệ:
Dạng chuẩn 1NF (First Normal Form):
● Một bảng cơ sở dữ liệu được gọi là dạng chuẩn chuẩn hóa dữliệu 1NF khi toàn bộ các miền giá trị của các cột trong bảng đềuchỉ chứa các giá trị nguyên tử (nguyên tố) và mỗi cột chỉ chứamột giá trị từ miền
Dạng chuẩn 2NF (Second Normal Form):
● Để đạt chuẩn 2NF thì một quan hệ phải đủ hai tiêu chí là quan
hệ đó đã đạt dạng chuẩn 1NF và các thuộc tính khóa phải phụthuộc hàm đầy đủ vào khóa chính (khóa chính cột đơn).Dạng chuẩn 3NF (Third Nomal Form):
● Để đạt chuẩn 3NF thì một quan hệ phải đủ hai tiêu chí là quan
hệ đó đã đạt dạng chuẩn 2NF và các thuộc tính không khóaphải phụ thuộc trực tiếp vào khóa chính
Dạng chuẩn BCNF (Boyce - Codd Normal Form):
● Để đạt chuẩn BCNF thì một quan hệ phải đủ hai tiêu chí làquan hệ đó đã đạt dạng chuẩn 3NF và không có thuộc tínhkhóa mà phụ thuộc hàm vào thuộc tính không khóa
Trang 142.3 Công nghệ BACK-END
2.3.1 Giới thiệu về thư viện Java.sql trong java
Thư viện Java.SQL là một API chuẩn dùng để tương tác vớicác loại cơ sở dữ liệu quan hệ (database relationship) từ ứng dụngJava Thư viện này được phát triển bởi Java Community Process(JCP) và là một phần của Java Platform, Standard Edition (Java SE).Thư viện Java.SQL cung cấp các lớp và giao diện cho việc đăng ký,kết nối, gửi và nhận câu lệnh SQL, xử lý kết quả và ngoại lệ, quản lýgiao dịch và metadata, v.v…
2.3.2 Cấu trúc của Java.sql
1 DriverManager: Quản lý danh sách các trình điều khiển cơ sở
dữ liệu mà ứng dụng Java có thể sử dụng để kết nối với cơ sở
dữ liệu
2 Driver: Cung cấp thông tin về cơ sở dữ liệu mà nó có thể kếtnối
3 Connection: Đại diện cho một phiên làm việc với cơ sở dữ liệu
4 Statement: Được sử dụng để thực thi câu lệnh SQL
5 PreparedStatement: Là một đối tượng Statement được tối ưuhóa, được sử dụng để thực thi câu lệnh SQL nhiều lần
6 CallableStatement: Được sử dụng để gọi các thủ tục lưu trữtrong cơ sở dữ liệu
7 ResultSet: Đại diện cho tập hợp các bản ghi được trả về từmột câu lệnh SQL
Trang 152.3.3 Giới thiệu về XAMPP
2.3.3.1 XAMPP là gì?
● XAMPP là một phần mềm miễn phí và mã nguồn mở cung cấpmôi trường phát triển ứng dụng web đầy đủ cho các nhà pháttriển XAMPP là viết tắt của "X (dành cho các hệ điều hànhkhác nhau), Apache, MySQL, PHP và Perl"
● Được phát triển bởi Apache Friends, XAMPP là một giải phápđơn giản và dễ sử dụng cho việc cài đặt, cấu hình và chạy cácứng dụng web trên máy tính cá nhân hoặc máy chủ VớiXAMPP, bạn có thể tạo và thử nghiệm các ứng dụng web trênmáy tính của mình mà không cần kết nối Internet hoặc cài đặtcác phần mềm riêng lẻ
2.3.3.2 Các thành phần của XAMPP
● XAMPP được sử dụng để tượng trưng cho việc phân loại cácgiải pháp cho các công nghệ khác nhau Nó cung cấp cơ sở đểthử nghiệm các dự án dựa trên các công nghệ khác nhauthông qua một máy chủ cá nhân XAMPP là một dạng viết tắtcủa mỗi bảng chữ cái đại diện cho từng thành phần chính củanó
● Nhiều thành phần khác cũng là một phần của bộ sưu tập phầnmềm này và được giải thích bên dưới
● Đa nền tảng: Các hệ thống cục bộ khác nhau có cấu hình hệđiều hành khác nhau được cài đặt trong đó Thành phần của
đa nền tảng đã được đưa vào để tăng tiện ích và đối tượngcho gói phân phối Apache này Nó hỗ trợ các nền tảng khácnhau như các gói Windows, Linus và MAC OS
● Apache: Nó là một HTTP một máy chủ web đa nền tảng Nóđược sử dụng trên toàn thế giới để cung cấp nội dung web.Ứng dụng máy chủ đã được thực hiện miễn phí để cài đặt vàđược sử dụng cho cộng đồng các nhà phát triển dưới sự bảo
Trang 16trợ của Apache Software Foundation Máy chủ từ xa củaApache cung cấp các tệp, hình ảnh và các tài liệu khác đượcyêu cầu cho người dùng.
● MariaDB: Ban đầu, MySQL DBMS là một phần của XAMPP,nhưng bây giờ nó đã được thay thế bởi MariaDB Nó là mộttrong những DBMS quan hệ được sử dụng rộng rãi nhất, đượcphát triển bởi MySQL Nó cung cấp các dịch vụ trực tuyến vềlưu trữ, thao tác, truy xuất, sắp xếp và xóa dữ liệu
● PHP: Đây là ngôn ngữ kịch bản phụ trợ chủ yếu được sử dụng
để phát triển web PHP cho phép người dùng tạo các trangweb và ứng dụng động Nó có thể được cài đặt trên mọi nềntảng và hỗ trợ nhiều hệ thống quản lý cơ sở dữ liệu khác nhau
Nó được thực hiện bằng ngôn ngữ C PHP là viết tắt của Bộ
xử lý siêu văn bản Nó được cho là có nguồn gốc từ các công
cụ Trang chủ Cá nhân, giải thích sự đơn giản và chức năngcủa nó
● Perl: Nó là sự kết hợp của hai ngôn ngữ động cấp cao, đó làPerl 5 và Perl 6 Perl có thể được áp dụng để tìm giải pháp chocác vấn đề dựa trên quản trị hệ thống, phát triển web và mạng.Perl cho phép người dùng lập trình các ứng dụng web động
Nó rất linh hoạt và mạnh mẽ
● phpMyAdmin: Nó là một công cụ được sử dụng để đối phó vớiMariaDB Phiên bản 4.0.4 của nó hiện đang được sử dụngtrong XAMPP Quản trị DBMS là vai trò chính của nó
● OpenSSL: Nó là triển khai mã nguồn mở của Giao thức lớpcổng bảo mật và Giao thức lớp truyền tải Phiên bản hiện tại0.9.8 là một phần của XAMPP
● XAMPP Control Panel: Nó là một bảng điều khiển giúp vậnhành và điều chỉnh các thành phần khác của XAMPP Phiênbản 3.2.1 là bản cập nhật mới nhất Mô tả chi tiết về bảng điềukhiển sẽ được thực hiện trong phần tiếp theo của hướng dẫn
Trang 17● Webalizer: Đây là một giải pháp phần mềm Phân tích trangweb được sử dụng cho nhật ký người dùng và cung cấp chi tiết
về việc sử dụng
● Mercury: Nó là một hệ thống vận chuyển thư, và phiên bản mớinhất của nó là 4.62 Nó là một máy chủ thư, giúp quản lý cácthư trên web
● Tomcat: Phiên bản 7.0.42 hiện đang được sử dụng trongXAMPP Nó là một servlet dựa trên JAVA để cung cấp cácchức năng JAVA
● Filezilla: Nó là một Máy chủ giao thức truyền tệp, hỗ trợ vàgiảm bớt các hoạt động truyền được thực hiện trên các tệp.Phiên bản cập nhật gần đây của nó là 0.9.41
2.3.3.3 Vì sao nên sử dụng XAMPP?
● Dễ dàng cài đặt và sử dụng: XAMPP là một phần mềm miễnphí và mã nguồn mở, có giao diện đơn giản và dễ sử dụng,giúp người dùng dễ dàng cài đặt và sử dụng
● Cung cấp môi trường phát triển đầy đủ: XAMPP cung cấp môitrường phát triển đầy đủ cho ứng dụng web, bao gồm Apache,MySQL, PHP và Perl, cho phép người dùng phát triển và kiểmthử các ứng dụng trên máy tính cá nhân của mình
● Tính linh hoạt: XAMPP có thể chạy trên nhiều hệ điều hànhkhác nhau, bao gồm Windows, macOS và Linux Nó cũng hỗtrợ nhiều phiên bản PHP khác nhau để phù hợp với các yêucầu phát triển khác nhau
● Tiết kiệm thời gian: XAMPP giúp tiết kiệm thời gian cho cácnhà phát triển bằng cách cung cấp các công cụ quản lý cơ sở
dữ liệu như phpMyAdmin và trình duyệt FTP tích hợp sẵn đểquản lý các file trên máy chủ
● Được cập nhật thường xuyên: XAMPP được cập nhật thườngxuyên để hỗ trợ các phiên bản mới nhất của các thành phần
Trang 18chính, đảm bảo tính ổn định và bảo mật cho ứng dụng web củabạn.
2.3.3.4 Ưu và nhược điểm của XAMPP
❖Ưu điểm
➢Dễ dàng cài đặt và sử dụng: XAMPP có giao diện đơngiản và dễ sử dụng, giúp người dùng dễ dàng cài đặt và
sử dụng môi trường phát triển đầy đủ cho ứng dụng web
➢Tiết kiệm thời gian: XAMPP giúp tiết kiệm thời gian chocác nhà phát triển bằng cách cung cấp các công cụ quản
lý cơ sở dữ liệu như phpMyAdmin và trình duyệt FTP tíchhợp sẵn để quản lý các file trên máy chủ
➢Tính linh hoạt: XAMPP có thể chạy trên nhiều hệ điềuhành khác nhau và hỗ trợ nhiều phiên bản PHP khácnhau để phù hợp với các yêu cầu phát triển khác nhau
➢Miễn phí và mã nguồn mở: XAMPP là một phần mềmmiễn phí và mã nguồn mở, giúp người dùng tiết kiệm chiphí và có thể tùy chỉnh mã nguồn theo nhu cầu của mình
❖Nhược điểm
➢Bảo mật: XAMPP không được cài đặt với cấu hình bảomật mặc định, điều này có thể khiến máy chủ của bạn trởnên dễ bị tấn công Do đó, người dùng cần phải cấu hình
và bảo mật chúng theo các hướng dẫn được cung cấp
➢Các phiên bản cũ không được hỗ trợ: XAMPP chỉ hỗ trợcác phiên bản mới nhất của các thành phần chính, điềunày có thể gây khó khăn cho người dùng sử dụng cácphiên bản cũ hơn của các ứng dụng
➢Không thể sử dụng cho môi trường sản xuất: XAMPPđược thiết kế cho môi trường phát triển và kiểm thử,không được khuyến khích sử dụng cho môi trường sản
Trang 19xuất Người dùng cần phải sử dụng các giải pháp kháccho môi trường sản xuất.
2.3.4 Tổng quan về hệ quản trị cơ sở dữ liệu (Database
Management System - DBMS)
● Đối với những doanh nghiệp lớn và các tập đoàn đa quốc giaviệc quản lý dữ liệu là vấn đề được đặt lên hàng đầu Công tycàng lớn mạnh thì thông tin cần lưu trữ ngày càng nhiều vì thếrất cần đến sự hỗ trợ của hệ quản trị cơ sở dữ liệu (DBMS)
2.3.4.1 Hệ quản trị cơ sở dữ liệu - DBMS là gì?
● DBMS (Database Management System – hệ quản trị cơ sở dữliệu) là một phần mềm hệ thống được dùng để tạo và quản lý
cơ sở dữ liệu Nó cho phép người dùng cuối được tạo, đọc,cập nhật, bảo vệ và xóa dữ liệu mà không cần đến các chươngtrình khung Hiểu đơn giản thì DBMS đóng vai trò như một giaodiện để người dùng tương tác với cơ sở dữ liệu
2.3.4.2 Database Management System dùng làm gì?
● DBMS có nhiệm vụ quản lý dữ liệu, cho phép người dùng truycập, khóa, sửa đổi dữ liệu và xác định cấu trúc logic của cơ sở
dữ liệu Ba yếu tố then chốt này đã cung cấp các thủ tục quảntrị dữ liệu thống nhất đảm bảo mọi dữ liệu được bảo mật vàtoàn vẹn Bên cạnh đó DBMS còn còn có chức năng thay đổiquyền quản lý, giám sát, điều chỉnh hiệu suất, bảo mật, sao lưu
Trang 20mà người dùng có thể xem đồng thời nó cũng giới hạn cách
mà họ tương tác với dữ liệu (thêm, xóa, chỉnh sửa…)
2.3.4.3 Các thành phần của DBMS là gì?
Hệ quản trị cơ sở dữ liệu là sự hợp nhất của nhiều thành phầnkhác nhau Những thành phần này tích hợp nhằm cung cấpmột môi trường nhất quán, quản lý việc tạo, truy cập và sửađổi dữ liệu trong cơ sở dữ liệu Dưới đây là những bộ phậnkhông thể thiếu của phần mềm DBMS:
● Storage engine (Công cụ lưu trữ): Đây là một phần tử quantrọng của DBMS có nhiệm vụ lưu trữ dữ liệu DBMS phải giaotiếp với các file ở cấp hệ điều hành (OS) và sử dụng các thànhphần bổ sung để lưu trữ dữ liệu
● Metadata catalog (Danh mục siêu dữ liệu): Thành phần nàycòn được gọi là system catalog (danh mục hệ thống) hoặcdatabase dictionary (từ điển cơ sở dữ liệu) Sau khi cácdatabase object (cơ sở dữ liệu đối tượng) được tạo DBMS sẽ
tự động đăng ký thông tin của chúng trong Metadata catalog
Và Metadata catalog trở thành một kho lưu trữ database object
để cung cấp cho DBMS hoạt động
● Database access language (Ngôn ngữ truy cập cơ sở dữ liệu):DBMS cũng phải cung cấp một số API để truy cập, sửa đổi,bảo mật dữ liệu và thậm chí là tạo các database object APIthường gặp nhất là Database access language và SQL chính
là ngôn ngữ lập trình tiêu chuẩn mà DBMS sử dụng
● Optimization engine (Công cụ tối ưu hóa): Hệ quản trị cơ sở dữliệu có thể cung cấp một công cụ tối ưu hóa dùng để phân tích
cú pháp các yêu cầu của database access language và biếnchúng thành các lệnh để truy cập, sửa đổi dữ liệu
● Query processor (Bộ xử lý truy vấn): Sau khi một truy vấnđược tạo thì DBMS có nhiệm vụ cung cấp một phương tiện để
xử lý và trả kết quả Phương tiện đó chính là Query processor
Trang 21● Lock manager (Trình quản lý khóa): Đây là một bộ phận quantrọng trong DBMS có chức năng quản lý việc truy cập đồngthời vào cùng một dữ liệu Lock manager sẽ không cho phépnhiều người chỉnh sửa một dữ liệu trong cùng một thời điểm.
● Log manager (Trình quản lý nhật ký): DBMS sẽ ghi lại tất cảnhững thay đổi được thực hiện với cơ sở dữ liệu mà nó quản
lý DBMS sử dụng Log manager trong quá trình tắt và khởiđộng để bản ghi nhật ký chính xác, đầy đủ và đảm bảo tínhtoàn vẹn cho dữ liệu
● Data utility (Các tiện ích dữ liệu): DBMS cung cấp rất nhiều tiệních để quản lý và kiểm soát mọi hoạt động của cơ sở dữ liệu.Một số ví dụ về data utility như sắp xếp dữ liệu, chạy chươngtrình, sao lưu, sao chép, phục hồi…
Trang 222.3.4.4 Top 10 loại DBMS phổ biến hiện nay
MySQL
● MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở Đây làlựa chọn phổ biến cho các ứng dụng web MySQL mang lạihiệu suất cao, tính ổn định và bảo mật
PostgreSQL
● PostgreSQL là một cơ sở dữ liệu mã nguồn mở Nó được thiết
kế cho tính mở rộng và tính nhất quán PostgreSQL hỗ trợnhiều kiểu dữ liệu phức tạp và cho phép mở rộng linh hoạt
Microsoft SQL Server
● Microsoft SQL Server là một hệ quản trị cơ sở dữ liệu củaMicrosoft Nó được sử dụng rộng rãi trong các doanh nghiệplớn SQL Server cung cấp nhiều công cụ hỗ trợ và tích hợp vớicác sản phẩm khác của Microsoft
MongoDB
● MongoDB là một cơ sở dữ liệu không SQL, được thiết kế cho
dữ liệu lớn và phân tán MongoDB giúp xử lý dữ liệu lớn vàphức tạp một cách dễ dàng và nhanh chóng
Oracle Database
Trang 23● Oracle Database là một cơ sở dữ liệu phổ biến của OracleCorporation Oracle Database mang lại hiệu suất cao, tính bảomật và tính ổn định.
SQLite
● SQLite là một cơ sở dữ liệu nhúng, thích hợp cho các ứngdụng di động và máy tính để bàn SQLite dễ sử dụng, nhẹnhàng và không yêu cầu cài đặt
MariaDB
● MariaDB là một cơ sở dữ liệu mã nguồn mở, được phát triển
từ MySQL MariaDB cung cấp hiệu suất tốt hơn MySQL và hỗtrợ nhiều tính năng mới
Amazon DynamoDB
Trang 24● Amazon DynamoDB là một cơ sở dữ liệu không SQL, đượccung cấp bởi Amazon Web Services DynamoDB mang lại tính
mở rộng, độ bền và tính khả dụng cao cho các ứng dụng
2.3.4.5 Lợi ích của việc sử dụng DBMS
Một trong những ưu điểm lớn nhất của DBMS là cung cấp kho
dữ liệu “khủng” và bảo vệ toàn vẹn những dữ liệu đó Bên cạnh
đó DBMS còn mang lại những lợi ích sau:
● Hỗ trợ người dùng lưu trữ và truy xuất dữ liệu nhanh chóng,hiệu quả bằng các phương thức khác nhau
● Sử dụng lock manager để quản lý việc truy cập đồng thời
● Sao lưu tự động dữ liệu và phục hồi nhanh sau sự cố
● DBMS hỗ trợ và cân bằng nhu cầu để các ứng dụng được sửdụng cùng một dữ liệu
● DBMS cho phép người dùng truy cập và chia sẻ dữ liệu
● Cập nhật nhật ký hoạt động trên cơ sở dữ liệu mà DBMS quản
lý để đảm bảo tính toàn vẹn cho dữ liệu
2.3.4.6 Hạn chế của DBMS
DBMS là một phần mềm có kích thước lớn và được tạo thành
từ nhiều bộ phận Mặc dù sở hữu nhiều ưu điểm nhưng DBMScũng không tránh khỏi những hạn chế chưa thể khắc phụcchẳng hạn như:
● Chi phí phần cứng, phần mềm và nhân sự cần thiết để chạymột DBMS khá đắt đỏ, đó chính là nhược điểm lớn nhất củaDBMS
● Doanh nghiệp cần bỏ ra một khoản tiền lớn để thuê nhân viênDBA và nhà lập trình để quản lý và cài đặt DBMS vào cơ sở hạtầng công nghệ thông tin Ngoài ra doanh nghiệp cũng phải tổ
Trang 25chức các hội thảo để đào tạo nhân sự sử dụng thành thạoDBMS.
● DBMS tương tác với nhiều thành phần CNTT khác như hệ điềuhành, ngôn ngữ lập trình, phần mềm mạng, hệ thống xử lý giaodịch…Với tính chất phức tạp như vậy đòi hỏi khi dùng DBMSphải có kiến thức chuyên sâu Trường hợp không biết cáchthao tác, sử dụng sẽ làm giảm hiệu suất thậm chí ngừng hoạtđộng cả hệ thống
2.3.5 Giới thiệu về hệ quản trị cơ sở dữ liệu MariaDB
● MariaDB là hệ quản trị cơ sở dữ liệu miễn phí được phát triển
từ hệ quản trị cơ sở dữ liệu mã nguồn mở MySQL MariaDBđược phát triển nhằm thay thế công nghệ cơ sở dữ liệuMySQL, vì thế nó tương thích và cho một hiệu suất cao hơn sovới MySQL
● MySQL là gì?(Tham khảo ở phần 2.3.6)
2.3.5.1 Lịch sử của MariaDB
● Nền móng cơ sở đầu tiên của MariaDB được phát triển bởi “trụcột” của MySQL AB là Michael “Monty” Widenius Năm 2008,sau khi Sun mua lại MySQL AB, Michael “Monty” Widenius rờikhỏi MySQL AB và tiếp tục phát triển một hệ cơ sở quản trịmới của mình
● Đầu năm 2009, Michael cùng với 1 vài đồng nghiệp khác bắtđầu tiến hành dự án chuyên sâu về công cụ lưu trữ MySQL,sau này trở thành MariaDB Tên gọi MariaDB được đặt têntheo tên con gái út của Widenius – Maria Sau nhiều lần nângcấp và phát triển, hiện tại MariaDB đã ra mắt phiên bản mớinhất là MariaDB 10.1
Trang 262.3.5.2 Thông tin cần biết về MariaDB
● MariaDB được hình thành dựa trên nền tảng của MySQL, vìthế nó kế thừa được hầu hết các chức năng cơ bản cần thiếtcủa MySQL Bên cạnh đó, MariaDB cũng phát triển thêm nhiềutính năng mới và có sự nâng cấp hơn về cơ chế lưu trữ, tối ưumáy chủ
● MariaDB có 2 bản trả phí và không cần trả phí Tuy nhiên, vớiphiên bản không trả phí, người dùng vẫn có thể sử dụng đầy
đủ các tính năng mà không ảnh hưởng đến việc chạy hệ thống
2.3.5.3 Ưu điểm của MariaDB là gì?
Hoàn toàn miễn phí
● Đây là một hệ quản trị sử dụng mã nguồn mở hoàn toàn miễnphí Do đó, người dùng không cần phải bỏ tiền mua bản quyền
và vẫn có thể sử dụng đầy đủ những tính năng của phần mềmnày
Bổ sung thêm nhiều Engine hơn
Trang 27● Ngoài các storage engines cơ bản như MyISAM,BLACKHOLE, CSV, MEMORY, ARCHIVE, MERGE; MariaDBcòn phát triển thêm các storage engines khác bao gồm: Aria,XtraDB, FederatedX, OQGRAPH, SphinxSE, IBM DB2I, Spider,PBXT,…
Kết hợp cả SQL và NoSQL
● MariaDB là sự kết hợp của cả 2 loại cơ sở dữ liệu là SQL vàNoSQL Việc kết hợp sẽ giúp hệ thống này có thể tích hợpđược tất cả ưu điểm của cả 2 cơ sở dữ liệu này là DynamicColumn và Cassandra Storage Engine
Hỗ trợ tiếng Việt
● Một ưu điểm tuyệt vời của MariaDB là đã có bản tiếng Việt.Mặc dưa thật sự hoàn hảo nhưng vẫn có thể hỗ trợ nhiều chongười dùng
2.3.6 Giới thiệu sơ lược về MySQL
2.3.6.1 MySQL là gì?
● MySQL là một hệ thống quản trị cơ sở dữ liệu quan hệ mãnguồn mở (RDBMS) được sử dụng rộng rãi Nó là một phầnquan trọng của bộ công cụ LAMP, tức là Linux, Apache,MySQL và PHP/Python/Perl, được sử dụng để xây dựng vàtriển khai ứng dụng web
● MySQL được phát triển, phân phối và duy trì bởi công tyOracle Corporation Tuy là một dự án mã nguồn mở, MySQL
Trang 28vẫn có một phiên bản cung cấp dịch vụ và hỗ trợ từ Oracle chocác doanh nghiệp và tổ chức có nhu cầu cao cấp.
● MySQL sử dụng ngôn ngữ truy vấn SQL (Structured QueryLanguage) để thực hiện các thao tác truy vấn và quản lý cơ sở
dữ liệu Nó hỗ trợ nhiều tính năng như giao dịch, khóa chínhngoại, các hàm và thủ tục lưu trữ, cũng như các tính năng bảomật để bảo vệ dữ liệu
● Với khả năng linh hoạt, hiệu suất đáng kể, và sự ổn định,MySQL thường được sử dụng trong nhiều ứng dụng web và
dự án phát triển phần mềm
2.3.6.2 Đôi nét về MySQL
● MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) phổbiến và mã nguồn mở Dưới đây là một số đặc điểm quantrọng về MySQL:
● Mã nguồn mở: MySQL là một dự án mã nguồn mở, điều này
có nghĩa là mã nguồn của nó có sẵn và có thể được sửa đổi,phát triển bởi cộng đồng người dùng trên toàn thế giới
● Quản trị Cơ sở Dữ liệu Quan hệ: MySQL là một hệ quản trị cơ
sở dữ liệu quan hệ, nghĩa là dữ liệu được tổ chức thành cácbảng có mối quan hệ với nhau thông qua các khóa
● Ngôn ngữ Truy vấn SQL: MySQL sử dụng ngôn ngữ truy vấnSQL để thực hiện các thao tác như truy vấn dữ liệu, cập nhật,xóa và thêm mới
● Tính Di động và Độ linh hoạt: MySQL có thể chạy trên nhiều hệđiều hành như Linux, Windows, macOS và nhiều nền tảng
Trang 29khác Nó cũng hỗ trợ nhiều ngôn ngữ lập trình và có khả năngtích hợp dễ dàng với nhiều loại ứng dụng.
● Hiệu suất Cao: MySQL nổi tiếng với hiệu suất cao, đặc biệt làtrong các ứng dụng web nơi cần xử lý đồng thời nhiều truy vấn
từ nhiều nguồn
● Cộng đồng Lớn và Hỗ trợ Chính thức: Có một cộng đồngngười dùng lớn xung quanh MySQL, cùng với sự hỗ trợ chínhthức từ Oracle Điều này đảm bảo người dùng có nguồn lực vàthông tin để giải quyết vấn đề và tối ưu hóa hiệu suất
● Tính Năng Mở Rộng: MySQL hỗ trợ nhiều tính năng như giaodịch, khóa chính ngoại, xác thực người dùng và quản lý quyềntruy cập
● Phổ Biến trong Ứng dụng Web: Do tính linh hoạt và hiệu suất,MySQL thường được sử dụng trong các ứng dụng web nhưcác trang web thương mại điện tử, blog, diễn đàn, và nhiềuứng dụng khác
Tổng kết:
MySQL là một lựa chọn phổ biến cho các dự án phát triểnphần mềm và ứng dụng web, đặc biệt là khi cần một giải pháp
cơ sở dữ liệu đơn giản, mạnh mẽ và hiệu suất cao
2.3.6.3 Kiến trúc cơ sở dữ liệu của MySQL
Kiến trúc cơ sở dữ liệu của MySQL là một cấu trúc linh hoạt và
có thể mở rộng để đáp ứng nhu cầu của các ứng dụng cơ sở
dữ liệu đa dạng Dưới đây là mô tả tổng quan về kiến trúc củaMySQL:
Trang 30MySQL hỗ trợ nhiều "Storage Engines" (đôi khi được gọi là
"table types") để lưu trữ dữ liệu Mỗi Storage Engine có đặcđiểm và tính năng riêng
Các Storage Engines phổ biến bao gồm InnoDB (mặc định từMySQL 5.5 trở đi, hỗ trợ giao dịch và khóa ngoại), MyISAM(đơn giản, hiệu suất cao), MEMORY (lưu trữ tạm thời trong bộnhớ), và nhiều loại khác
Các cột đại diện cho các thuộc tính của đối tượng, trong khicác dòng chứa dữ liệu cụ thể
5 Cột (Column):
Mỗi cột trong bảng đại diện cho một thuộc tính cụ thể của đốitượng Các cột có kiểu dữ liệu xác định (ví dụ: INT, VARCHAR,DATETIME)
Trang 316 Dòng (Row):
Mỗi dòng trong bảng chứa thông tin cụ thể về một thực thểhoặc đối tượng
7 SQL Layer:
SQL Layer giữ vai trò quan trọng trong kiến trúc của MySQL
Nó bao gồm trình thông dịch SQL, trình tối ưu hóa truy vấn, vàtrình quản lý bộ nhớ đệm để tối ưu hóa hiệu suất truy vấn
8 Connector API:
MySQL cung cấp các API (Application Programming Interface)
để kết nối từ ứng dụng và các ngôn ngữ lập trình khác nhau.Các Connector giúp ứng dụng tương tác với cơ sở dữ liệuMySQL
9 Buffer Pool (InnoDB):
Đối với InnoDB, một trong những Storage Engine phổ biến củaMySQL, có một thành phần quan trọng là Buffer Pool Đây làmột khu vực trong bộ nhớ RAM được sử dụng để lưu trữ dữliệu và chỉ mục, giúp tăng cường hiệu suất bằng cách giảm sốlần truy cập đĩa
2.3.6.4 Ưu và nhược điểm của MySQL
❖Ưu điểm:
➢Dễ dàng sử dụng: là hệ thống khá dễ sử dụng, khiến nótrở thành sự chọn lựa khá phổ biến dành cho các nhàphát triển ở tất cả cấp độ kỹ năng Sử dụng ngôn ngữ
Trang 32truy vấn đơn giản sẽ giúp dễ dàng truy xuất và thao tác
dữ liệu
➢Khả năng tương thích rộng – MySQL tương thích vớinhiều nền tảng, bao gồm Windows, Linux và macOS.Điều này có nghĩa là nó có thể được sử dụng trên nhiềuloại thiết bị, từ máy tính để bàn đến thiết bị di động
➢Hiệu suất cao – được thiết kế cho hiệu suất cao, cónghĩa là nó có thể xử lý lượng lớn dữ liệu và lưu lượngtruy cập mà không bị chậm Nó sử dụng các kỹ thuật lậpchỉ mục nâng cao và cơ chế lưu vào bộ nhớ đệm để tối
ưu hóa hiệu suất
➢Các tính năng bảo mật mạnh mẽ – cung cấp các tínhnăng bảo mật mạnh mẽ, bao gồm xác thực người dùng,
mã hóa và kiểm soát truy cập Điều này có nghĩa là dữliệu nhạy cảm có thể được bảo vệ khỏi truy cập trái phép,giúp ngăn chặn vi phạm dữ liệu và các sự cố bảo mậtkhác
➢Hỗ trợ từ cộng đồng – có một cộng đồng lớn và tích cựcbao gồm các nhà phát triển và người dùng, những ngườiđóng góp cho sự phát triển của nó và cung cấp hỗ trợcho những người khác sử dụng nó
❖Nhược điểm:
➢Khả năng mở rộng – đặc biệt khi xử lý một lượng lớn dữ liệu.Điều này là do nó sử dụng một kiến trúc tập trung, có thể dẫnđến các vấn đề về hiệu suất khi cơ sở dữ liệu tăng kích thước
➢Độ phức tạp – để thiết lập và bảo trì, đòi hỏi kiến thức và kỹnăng chuyên môn Điều này có thể gây khó khăn cho các tổchức hoặc cá nhân nhỏ hơn trong việc sử dụng hiệu quả
➢Bảo mật – có thể dễ bị vi phạm bảo mật, đặc biệt nếu nó khôngđược cấu hình đúng cách hoặc nếu các bản cập nhật khôngđược áp dụng kịp thời
Trang 33➢Chức năng hạn chế – có chức năng hạn chế so với một số hệthống quản lý cơ sở dữ liệu khác, đặc biệt khi xử lý các cấutrúc dữ liệu hoặc kiểu dữ liệu phức tạp.
➢Chi phí – Mặc dù MySQL là nguồn mở và miễn phí, nhưng cóthể có chi phí liên quan đến việc sử dụng nó một cách hiệuquả Ví dụ: các tổ chức có thể cần thuê nhân viên chuyên tráchhoặc mua phần mềm hoặc phần cứng bổ sung để hỗ trợ việc
sử dụng MySQL
2.3.6.5 Một số tính năng và tùy chọn của cơ sở dữ liệu MySQL
MySQL là một hệ quản trị cơ sở dữ liệu rất linh hoạt và mạnh
mẽ, cung cấp nhiều tính năng và tùy chọn để đáp ứng các yêucầu đa dạng của người dùng Dưới đây là một số tính năng vàtùy chọn quan trọng của cơ sở dữ liệu MySQL:
3 Khóa Ngoại (Foreign Key):
Cơ sở dữ liệu MySQL hỗ trợ khóa ngoại, cho phép xác địnhmối quan hệ giữa các bảng và đảm bảo tính nhất quán trong
cơ sở dữ liệu
4 Xác Thực Người Dùng và Quản Lý Quyền Truy Cập:
Trang 34MySQL cung cấp hệ thống xác thực người dùng và quản lýquyền truy cập chi tiết, giúp bảo vệ dữ liệu và tài nguyên cơ sở
MySQL hỗ trợ việc định nghĩa và sử dụng stored procedures
và functions, giúp tăng cường khả năng xử lý logic trên cơ sở
9 Partitioning (Phân vùng):
MySQL hỗ trợ phân vùng bảng để tăng hiệu suất và quản lý dữliệu một cách hiệu quả trong các bảng lớn
10 Full-Text Search (Tìm kiếm toàn văn bản):
MySQL cung cấp tính năng tìm kiếm toàn văn bản, cho phépthực hiện các truy vấn tìm kiếm phức tạp trên dữ liệu văn bản
11.Event Scheduler:
Trang 35Event Scheduler cho phép lên lịch thực hiện các sự kiện tựđộng trong cơ sở dữ liệu theo khoảng thời gian được xác địnhtrước.
12 JSON Support:
Tính năng hỗ trợ JSON cho phép lưu trữ và truy vấn dữ liệudưới dạng JSON, tương tác với ứng dụng web và di động mộtcách thuận lợi
13.InnoDB Cluster và Group Replication:
MySQL cung cấp InnoDB Cluster và Group Replication cho cácgiải pháp mô hình máy chủ và cụm máy chủ, giúp tăng khảnăng mở rộng và sẵn sàng
2.3.7 Tổng quan về SQL (Structured Query Language)
● SQL, viết tắt của "Structured Query Language" trong tiếng Anh,
là một ngôn ngữ truy vấn có cấu trúc, cho phép người dùngtruy cập và thao tác dữ liệu trong cơ sở dữ liệu, bao gồm tạo,xóa, sửa đổi, và truy xuất dữ liệu
● SQL cũng là ngôn ngữ tiêu chuẩn cho các hệ cơ sở dữ liệuquan hệ (RDBMS) Các hệ thống quản trị cơ sở dữ liệu nhưMySQL, MS Access, Oracle, Sybase, Informix, Postgres vàSQL Server đều sử dụng SQL làm ngôn ngữ cơ sở dữ liệu tiêuchuẩn
● Trong ngữ cảnh của SQL Server của Microsoft, ngôn ngữ truyvấn chính là SQL, nhưng nó cũng sử dụng Transact-SQL(T-SQL) như một phần mở rộng, cung cấp các tính năng đặc
Trang 36biệt cho hệ thống này Tương tự, Oracle sử dụng PL/SQL làmmột phần của hệ thống của mình.
● SQL đã bắt đầu phát triển từ những năm 1970, khi tiến sĩEdgar F "Ted" Codd của IBM mô tả một mô hình quan hệ cho
cơ sở dữ liệu Mặc dù SQL xuất hiện vào khoảng cuối nhữngnăm 1970, thông tin cụ thể về năm 1974 cần được xem xét lại
2.3.8 Cách kết nối cơ sở dữ liệu
● Để kết nối Java với cơ sở dữ liệu, bạn có thể sử dụng JDBC(Java Database Connectivity) Đây là một ví dụ đơn giản vềcách kết nối Java với cơ sở dữ liệu MySQL bằng JDBC:
Trang 37Hình 01 Kết nối database bằng java
Hình 02 Ví dụ về truy vấn SQL trong Java
Trang 382.4 Công nghệ FRONT-END
2.4.1 Giới thiệu về AWT trong Java
● Java AWT (Abstract Window Toolkit) là một API để phát triểncác ứng dụng dựa trên GUI hoặc cửa sổ trong java
● Các thành phần Java AWT là các thành phần phụ thuộc vàonền tảng được hiển thị theo giao diện của hệ điều hành AWT
có nghĩa là các thành phần của nó sử dụng các tài nguyên của
hệ điều hành
● Gói java.awt cung cấp các lớp cho api AWT như TextField,Label, TextArea, RadioButton, CheckBox, Choice, List, v.v
2.4.1.1 Phân cấp Java AWT
Hình 03 Hệ thống phân cấp của các lớp Java AWT được đưa ra dưới đây
Trang 39● Vùng chứa (Container) là thành phần trong AWT màchứa các thành phần khác như button, textfield, label, Các lớp được kế thừa lớp Container được biết đến nhưcác container như Frame, Dialog, Panel
Panel
● Panel là vùng chứa mà không chứa thanh tiêu đề vàthanh menu Nó có thể có các thành phần như button,textfield, …
Frame
● Khung (Frame) là vùng chứa thanh tiêu đề và có thể cócác thanh trình đơn Nó có thể có các thành phần khácnhư button, textfield,
2.4.1.2 Các phương thức hữu ích của lớp Component
Hình 04 Các phương hữu ích của lớp Component