PHP: Hypertext Preprocessor, thường được viết tắt thành PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã ngu
Trang 1ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
BÁO CÁO ĐỒ ÁN CHUYÊN
NGÀNH
CHẠY TRÊN NỀN TẢNG WEB VÀ MOBILE
Sinh viên thực hiện:
1 Nguyễn Nguyên Ngọc Phú 17IT
2 Mai Trúc Lân 17IT152
Trang 2
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
VIỆT - HÀN
BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH
ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG BÁN SÁCH CHẠY TRÊN NỀN TẢNG
WEB VÀ MOBILE
Đà Nẵng, tháng 12 năm 2020
Trang 3MỞ ĐẦU
Trong những năm gần đây, cùng với sự phát triển của nhân loại thì khoa họccông nghệ cũng có những bước tiến vượt trội, điển hình là ngành công nghiệp 4.0 Vớinhững sự phát triển vượt bậc của công nghệ việc triển khai công nghệ vào đời sốngmỗi người cũng ngày càng hoàn thiện Điển hình là việc nhu cầu tìm tiếm thông tintrên sách vở của con người ngày càng nhiều nhằm thay thế việc tìm kiếm truyền thốnggiúp cải thiện cuộc sống hơn
Trong nhiều năm trở lại đây, với nhu cầu về hội nhập ngày càng cao giữa cácquốc gia cả về kinh tế lẫn văn hóa, khiến nhu cầu về thương mại ngày càng tăng cao.Nhưng đối với nhiều người không có thời gian để mua sắm thì việc nâng cao trongthương mại diễn ra khá khó khăn Chính vì vậy cần có những phần mềm, trang web và
di động để hỗ trợ việc thương mại bất cứ đâu hay bất cứ thời gian nào
Nhờ sự tiên tiến của khoa học công nghệ và sự vượt trội từ công nghệ web và diđộng, để tạo ra ứng dụng trang web chạy trên nền tảng web và mobile giúp việc tươngtác giữa người và máy một cách dễ dàng phổ biến hiện nay có thể kể đến là ứng dụngshopee, Tiki, Sendo,…
Đọc sách là thú vui của nhiều người tuy nhiên với nhịp sống công nghiệp hiệnnay không phải ai cũng có điều kiện dạo qua các hiệu sách để tìm mua quyển sáchmình mong muốn
Hiện nay có khá nhiều trang web bán sách hoặc sự nâng cấp là tính tương tácgiữa người và máy có trên thị trường hiện nay do các ông lớn trong ngành công nghệtạo ra Bên cạnh họ cũng cung cấp nhiều tư liệu về nó Điều đó giúp ta có thể tiếp cậnviệc xây dựng một trang web trở nên đơn giản hơn
Trang 4LỜI CẢM ƠN
Để thực hiện và hoàn thành tốt đồ án này, em đã nhận được sự giúp đỡ vàhướng dẫn rất tận tình của các thầy cô thuộc Đại Học Công Nghệ Thông Tin VàTruyền Thông Việt Hàn – Đại Học Đà Nẵng Em xin cảm ơn các thầy cô thuộc bộmôn chuyên ngành đã cung cấp cho chúng em các thông tin, kiến thức vô cùng quýbáu và cần thiết trong suốt thời gian quá để em có thể thực hiện và hoàn thành đồ áncủa mình Đặc biệt em xin chân thành cảm ơn cô Hà Thị Minh Phương, người đã trựctiếp hướng dẫn chúng em trong thời gian thực hiện đồ án này
Cuối cùng, xin chân thành cảm ơn các bạn trong ngành công nghệ thông tin đãủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được giúp chúng tôitrong quá trình nghiên cứu và thực hiện đề tài
Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thực tiễn nên
đề tài không tránh khỏi những sai sót Em rất mong nhận được sự thông cảm của quýthầy cô và mong đón nhận những góp ý của thầy cô và các bạn
Em xin chân thành cảm ơn!
Trang 5NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, ngày … tháng … năm 20… Giảng viên hướng dẫn
ThS.Hà Thị Minh Phương
Trang 6MỤC LỤC
Chương 1: 1
TỔNG QUAN VỀ ỨNG DỤNG 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu và nhiệm vụ nghiên cứu 1
1.2.1 Mục tiêu 1
1.2.2 Nhiệm vụ nhiên cứu 1
1.3 Đối tượng và khách thể nghiên cứu: 2
1.3.1 Đối tượng nghiên cứu 2
1.3.2 Khách thể nghiên cứu 2
1.4 Giới hạn đề tài 2
1.5 Phương pháp nghiên cứu 2
Chương 2: 3
CƠ SỞ LÝ THUYẾT 3
2.1 Giới thiệu ngôn ngữ PHP 3
2.1.2 PHP là gì ? 3
2.1.3 Ưu điểm ngôn ngữ PHP 4
2.2 Laravel là gì ? 6
2.2.1 Framework là gì? PHP Framework là gì ? 6
2.2.2 Mô hình MVC là gì ? 7
2.2.3 Lịch sử phát triển của Laravel 8
2.2.4 Ưu điểm và nhược điểm của Laravel 8
2.2.4.1 Ưu điểm của Laravel 9
2.2.4.2 Nhược điểm của Laravel 10
2.2.5 Những tính năng hữu ích của Laravel 10
2.3 Composer và lợi ích của Composer 10
2.3.1 Composer là gì ? 10
2.3.2 Lợi ích của Composer 11
2.4 MySQL và phpMyAdmin 12
2.4.1 MySQL là gì ? 12
2.4.2 Lịch sử hình thành và phát triển của MySQL 12
2.4.3 Ưu điểm và nhược điểm của MySQL 13
2.4.3.1 Ưu điểm của MySQL 13
2.4.3.2 Nhược điểm của MySQL 14
Trang 72.4.4.1 Tính năng chung của phpMyAdmin 15
2.4.4.2 Ưu điểm của PhpAdmin 16
2.4.4.3 Nhược điểm của PhpAdmin 16
2.5 Android là gì ? 17
2.5.1 Tổng quan 17
2.5.2 Các ứng dụng Android 18
Chương 3: 19
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 19
3.1 Tổng quan về UML 19
3.2 Vai trò của UML 19
3.3 Các biểu đồ trong UML 19
3.3 Thiết kế hệ thống 21
3.3.1 Mô tả các chức năng vai trò tác nhân trong hệ thống 21
3.3.2 Các Sơ đồ hệ thống 22
3.3.2.1 Sơ đồ Use-case 22
3.3.2.2 Sơ đồ tuần tự 23
3.3.2.3 Biểu đồ hoạt động 24
Chương 4: 27
XÂY DỰNG TRANG WEB 27
4.1 Thiết kế cơ sở dữ liệu 27
4.1.1 Mô hình dữ liệu 27
4.2 Thiết kế giao diện trang web 27
4.2.1 Phần user 27
4.2.1.1 Trang chủ 27
4.2.1.2 Trang sách theo danh mục 28
4.2.1.3 Trang giới thiệu 29
4.2.1.6 Trang giỏ hàng 30
4.2.2 Phần Admin 31
4.2.2.3 Trang sản phẩm 32
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 34
1 Kết luận: 34
2 Hướng phát triển: 34
DANH MỤC THAM KHẢO 35
Trang 9Hình 1 Mua bán trên mạng 1
Hình 2 Ngôn ngữ PHP 4
Hình 3 PHP phát triển mạnh mẽ 5
Hình 4 Đa số người dung chọn PHP để thiết kế web 5
Hình 5 Laravel Framework 6
Hình 6 Framework – thư viện với các tài nguyên 7
Hình 7 Mô hình MVC 8
Hình 8 Laravel 5.8 – Phiên bản nhiều cải tiến 8
Hình 9 Laravel – Ưu điểm nhưng tồn tại ít khuyết điểm 9
Hình 10 Laravel không khó khăn đối với những người đã có kiến thức cơ bản về lập trình 10
Hình 11 Composer - Dependency Management for PHP 11
Hình 12 MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở 12
Hình 13 MySQL là một hệ quản trị cơ sở dữ liệu quan hệ rất phổ biến hiện nay 13
Hình 14 MySQL tối ưu với nhiều ưu điểm 14
Hình 15 MySQL cũng vướng phải một số nhược điểm và đang dần hoàn thiện 15
Hình 16 Giao diện PhpAdmin trên nền web 16
Hình 17 Android 17
Hình 18 Lập trình Android 18
Hình 19 Biểu đồ Use-case 22
Hình 20 Biểu đồ tuần tự “Đăng nhập” 23
Hình 21 Biểu đồ tuần tự “thêm vào giỏ hàng” 24
Hình 22 Biểu đồ hoạt động “Thêm vào giỏ hàng” 25
Hình 23 Biểu đồ hoạt động “Xem giỏ hàng” 26
Hình 24 Mô hình dữ liệu 27
Hình 25 Trang chủ 28
Hình 26 Sách theo danh mục 28
Hình 27 Trang giới thiệu 29
Hình 28 Trang đăng ký và đăng nhập tài khoản 29
Hình 29 Trang liên hệ 30
Hình 30 Trang giỏ hàng 30
Hình 31 Trang thanh toán 31
Hình 32 Trang đăng nhập của Admin 31
Hình 33 Trang thêm danh mục sản phẩm 32
Hình 34 Trang liệt kê danh mục sản phẩm 32
Hình 35 Trang thêm sản phẩm 33
Hình 36 Trang liệt kê sản phẩm 33
Trang 10Chương 1:
TỔNG QUAN VỀ ỨNG DỤNG1.1 Lý do chọn đề tài
Xã hội ngày càng tiến bộ, nhu cầu tiếp cận thông tin của mọi người ngày càng lớn, nhưng thông tin có chọn lọc lại càng là nhu cầu lớn hơn, cũng xuất phát từ nhu cầu đó
và cũng nhằm mục đích tạo một kênh mua bán sách trên mạng, phục vụ cho tất cả mọi người, để họ có thể thuận tiện hơn trong việc tiếp cận nguồn tri thức nhân loại, trang web sẽ phục vụ bán sách trong cả nước, giao hàng và thu tiền tận nơi
Hình 1 Mua bán trên mạng
1.2 Mục tiêu và nhiệm vụ nghiên cứu
1.2.1 Mục tiêu
Tạo cho mọi người một trang mua bán sách mọi lúc, mọi nơi
1.2.2 Nhiệm vụ nhiên cứu
Nghiên cứu cơ sở lý thuyết về PHP, FRAMEWORK LARAVEL,MYSQL,ANDROID
Xây dựng chức năng hiển thị sách
Xây dựng chức năng thêm, xóa, sửa vào các mục như sách, nhà xuất bản, chủ
đề sách…
Xây dựng chức năng upload hình ảnh đại diện cho sách
Xây dựng chức năng thêm, sửa và xóa tài khoản đăng nhập
Trang 11Xây dựng chức năng lọc các kết quả sách theo chủ đề sách, nhà xuất bản, tácgiả.
Xây dựng chức năng thanh toán
Xây dựng chức năng tìm kiếm sách
Xây dựng chức năng tạo giỏ hàng
1.3 Đối tượng và khách thể nghiên cứu:
1.3.1 Đối tượng nghiên cứu
Website bán hàng qua mạng
1.3.2 Khách thể nghiên cứu
Website bằng công nghệ web (php, laravel) và Android
1.4 Giới hạn đề tài
Trang web có chức năng sau:
o Chức năng thêm xóa, sửa sách, nhà xuất bản, tác giả, chủ đề sách
o Chức năng hiển thị sách mới nhập
o Chức năng Hiển các sách cùng nhà xuất bản, tác giả, chủ đề sách
o Chức năng Upload hình ảnh đại diện
o Chức năng Đổi mật khẩu đăng nhập
o Chức năng Ghi nhớ mật khẩu đăng nhập
o Chức năng Thanh toán
o Chức năng Tạo giỏ hàng
1.5 Phương pháp nghiên cứu
Tìm hiểu sách báo
Tìm hiểu ở Mạng xã hội
Tìm hiểu tại các Diễn đàn về Công Nghệ Thông Tin
Trang 12Chương 2:
CƠ SỞ LÝ THUYẾT2.1 Giới thiệu ngôn ngữ PHP
2.1.2 PHP là gì ?
PHP: Hypertext Preprocessor, thường được viết tắt thành PHP là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1994, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools' Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem,
sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay Nó có các biến kiểunhư Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng Cú pháp nàygiống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán
PHP là ngôn ngữ lập trình kịch bản viết cho máy chủ mà được nhúng trongHTML Nó được sử dụng để quản lý nội dụng động, Database, Session tracking, …
Nó được tích hợp với một số Database thông dụng như MySQL, PostgreSQL,Oracle, Sybase, Informix, và Microsoft SQL Server
PHP thực thi rất tuyệt vời, đặc biệt khi được biên dịch như là một ApacheModule trên Unix side MySQL Server, khi được khởi động, thực thi các truy vấnphức tạp với các tập hợp kết quả khổng lồ trong thời gian Record-setting
PHP hỗ trợ một số lượng rộng rãi các giao thức lớn như POP3, IMAP, vàLDAP PHP4 bổ sung sự hỗ trợ cho Java và các cấu trúc đối tượng phân phối (COM
và CORBA)
Cú pháp PHP là giống C
Trang 13Hình 2 Ngôn ngữ PHP 2.1.3 Ưu điểm ngôn ngữ PHP
PHP hoạt động với tốc độ rất nhanh và hiệu quả Một server bình thường có thểđáp ứng được hàng triệu truy cập / ngày
PHP hỗ trợ kết nối đến hàng triệu hệ quản trị cơ sở dữ liệu khác nhau
PHP cung cấp một hệ thống dữ liệu phong phú Do từ đầu, PHP được xây dựng
để xây dựng và phát triển các ứng dụng trên web nên nó cung cấp rất nhiều hàm xâydựng sẵn giúp dễ dàng thực hiện các công việc như: Gửi, nhận mail, làm việc vớiCookie…
PHP là ngôn ngữ đơn giản, dễ sử dụng cho nhiều người mới bắt đầu nhập mônlập trình web
PHP có thể sử dụng được trên nhiều hệ điều hành Thậm chí, các lập trình viên
có thể đem mã PHP này chạy trên các hệ điều hành khác mà không phải sửa đổi lạimã
PHP sử dụng mã nguồn mở, mang lại sự linh hoạt cho các lập trình viên trongquá trình chỉnh sửa, sáng tạo riêng của mình
Trang 14Một lợi thế rất lớn của ngôn ngữ PHP là tính cộng đồng PHP được phát triển
và tối ưu liên tục từ các nhà phát triển trên toàn thế giới khiến cho nó vô cùng thânthiện với mọi người và ngày càng hoàn thiện hơn
Phù hợp cho các doanh nghiệp vừa và nhỏ
Hình 3 PHP phát triển mạnh mẽ
Hình 4 Đa số người dung chọn PHP để thiết kế web
Trang 152.2 Laravel là gì ?
Laravel là một PHP framework, có mã nguồn mở và miễn phí, được xây dựng
nhằm hỗ trợ phát triển các phần mềm, ứng dụng, theo kiến trúc MVC Hiện nay,
Laravel đang là PHP framework phổ biến nhất và tốt nhất
Hình 5 Laravel Framework
Những lý do khiến Laravel trở nên rộng rãi:
o Cú pháp dễ hiểu – rõ ràng
o Hệ thống đóng gói modular và quản lý gói phụ thuộc
o Nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ
o Nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng
2.2.1 Framework là gì? PHP Framework là gì ?
Framework chính là một thư viện với các tài nguyên có sẵn cho từng lĩnh vực
để lập trình viên sử dụng thay vì phải tự thiết kế Có Framework, lập trình viên chỉ tìm
hiểu và khai thác những tài nguyên đó, gắn kết chúng lại với nhau và hoàn chỉnh sản
Trang 16phẩm của mình Đối với lập trình viên trong mỗi một lĩnh vực, họ cần phải xây dựng các lớp chương trình để xây dựng nên những phần mềm, ứng dụng thành phẩm.
PHP framework là thư viện làm cho sự phát triển của những ứng dụng web viết
bằng ngôn ngữ PHP trở nên trôi chảy hơn Bằng cách cung cấp 1 cấu trúc cơ bản để xây dựng những ứng dụng đó Hay nói cách khác, PHP framework giúp bạn thúc đẩy nhanh chóng quá trình phát triển ứng dụng Giúp bạn tiết kiệm được thời gian, tăng sự
ổn định cho ứng dụng Giảm thiểu số lần phải viết lại code cho lập trình viên
o Model: Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý,
truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…
o View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa
tất cả các đối tượng GUI như textbox, images…
Trang 17Bằng cách này, thông tin nội hàm được xử lý tách biệt với phần thông tin xuất hiện trong giao diện người dùng Bảo đảm các nguyêntắc nghề nghiệp của lập trình viên.
Hình 7 Mô hình MVC
2.2.3 Lịch sử phát triển của Laravel
Phiên bản đầu tiên của Laravel được Taylor Otwell tạo ra vào tháng 6 năm
2011 như một giải pháp thay thế cho CodeIgniter Với framework này, lập trình viên
được hỗ trợ nhiều tính năng mới mẻ, hiệu quả và dễ thực hiện hơn Cho đến nay, Laravel đã được phát triển đến phiên bản 5.8 với nhiều cải tiến mới mẻ hơn
Trang 18Hình 8 Laravel 5.8 – Phiên bản nhiều cải tiến 2.2.4 Ưu điểm và nhược điểm của Laravel
Hình 9 Laravel – Ưu điểm nhưng tồn tại ít khuyết điểm
2.2.4.1 Ưu điểm của Laravel
a Sử dụng các tính năng mới nhất của PHP
Trang 19Sử dụng Laravel 5 giúp các lập trình viên tiếp cận những tính năng mới nhất màPHP cung cấp, nhất là đối với Namespaces, Interfaces, Overloading, Anonymous functions và Shorter array syntax.
b Nguồn tài nguyên vô cùng lớn và sẵn có
Nguồn tài nguyên của Laravel rất thân thiện với các lập trình viên với đa dạng
tài liệu khác nhau để tham khảo Các phiên bản được phát hành đều có nguồn tài liệu phù hợp với ứng dụng của mình
c Tích hợp với dịch vụ mail
Lavarel là framework được trang bị API sạch trên thư viện SwiftMailer, do đó,
bạn có thể gửi thư qua các dịch vụ dựa trên nền tảng đám mây hoặc local
d Tốc độ xử lý nhanh
Laravel hỗ trợ hiệu quả cho việc tạo lập website hay các dự án lớn trong thời gian ngắn Vì vậy, nó được các công ty công nghệ và lập trình viên sử dụng rộng rãi đểphát triển các sản phẩm của họ
e Dễ sử dụng
Laravel được đón nhận và trở nên sử dụng phổ biến vì nó rất d sử dụng
Thường chỉ mất vài giờ, bạn có thể bắt đầu thực hiện một dự án nhỏ với vốn kiến thức cơ bản nhất về lập trình với PHP
f Tính bảo mật cao
Laravel cung cấp sẵn cho người dùng các tính năng bảo mật mạnh mẽ để người dùng hoàn toàn tập trung vào việc phát triển sản phẩm của mình:
o Sử dụng PDO để chống lại tấn công SQL Injection
o Sử dụng một field token ẩn để chống lại tấn công kiểu CSRF
Mặc định đều được Laravel escape các biến được đưa ra view mặc định, do đó
có thể tránh được tấn công XSS
2.2.4.2 Nhược điểm của Laravel
So với các PHP framework khác, Laravel bộc lộ khá ít nhược điểm Vấn đề lớn nhất có thể kể đến của framework này là thiếu sự liên kết giữa các phiên bản, nếu cố cập nhật code, có thể khiến cho ứng dụng bị gián đoạn hoặc phá vỡ
Bên cạnh đó, Lavarel cũng quá nặng cho ứng dụng di động, khiến việc tải trang trở nên chậm chạp
2.2.5 Những tính năng hữu ích của Laravel
Những tính năng tuyệt vời có thể kể đến của Laravel là:
o Composer: sử dụng để nâng cấp, cài đặt…
o Eloquent ORM: thao tác với cú pháp đẹp mắt và đơn giản.
o Restful API: hỗ trợ biến Laravel thành một web service API.
o Artisan: cung cấp các lệnh cần thiết để phát triển ứng dụng.
o View: giúp code sạch sẽ hơn rất nhiều.
Trang 20o Migrations: hỗ trợ tạo các trường trong cơ sở dữ liệu, thêm các cột trong
bảng, tạo mối quan hệ giữa các bảng, hỗ trợ quản lý cơ sở dữ liệu
o Authentication: cung cấp sẵn các tính năng đăng nhập, đăng ký, quên mật
khẩu…
o Unit Testing: hỗ trợ test lỗi để sửa chữa.
Trang 21Hình 11 Composer - Dependency Management for PHP
2.3.2 Lợi ích của Composer
Ý tưởng của composer không phải là mới, nó được lấy cảm hứng từ các công cụnhư npm của Node Phần hoạt động của nó cũng rất giống APT (có trên Ubuntu) hay Yum (có trên CentOS), tuy nhiên composer chỉ ở phạm vi dự án Php chứ không phải trên toàn bộ OS như 2 thằng trên
Trước đây khi bạn triển khai các dự án dựa trên các, bạn sẽ phải đối mặt một số việc sau:
o Dự án của bạn có sử dụng một số thư viện ở ngoài Bạn phải tải chúng rồi cho vào folder của project rồi mới sử dụng được
o Một số các thư viện đó lại sử dụng (phụ thuộc) các thư viện khác
o Bạn sẽ gặp những khó khăn trong việc cập nhật phiên bản của các thư viện Nếu thư viện A, có sử dụng thư viện B, thư viện B sử dụng thư viện C Thì nếu một trong các thư viện này có update, bạn sẽ phải tự mình lần mò về phần gốc của nó để update
Tuy nhiên, công việc sẽ thật dễ dàng với Composer, bạn sẽ làm được:
o Khai báo các thư viện mà dự án sử dụng Quản lý tập trung các thư viện đang sử dụng cho project và cả phiên bản của chúng dễ dàng qua
file composer.json
o Tìm các phiên bản của package có thể cài đặt và cần thiết cho dự án, sau
đó cài đặt chúng vào dự án tức là tải chúng về project
Trang 222.4 MySQL và phpMyAdmin
2.4.1 MySQL là gì ?
MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS)dựa trên ngôn ngữ truy vấn có cấu trúc ( SQL) được phát triển, phân phối và hỗ trợ bởitập đoàn Oracle MySQL chạy trên hầu hết tất cả các nền tảng, bao gồm cả Linux , UNIX và Windows MySQL thường được kết hợp với các ứng dụng web
Với RDBMS là viết tắt của Relational Database Management
System MySQL được tích hợp apache, PHP MySQL quản lý dữ liệu thông qua các
cơ sở dữ liệu Mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ
liệu MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL.MySQL được phát hành từ thập niên 90s
Hình 12 MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở
2.4.2 Lịch sử hình thành và phát triển của MySQL
Quá trình hình thành và phát triển của MySQL được tóm tắt như sau:
o Công ty Thuy Điển MySQL AB phát triển MySQL vào năm 1994
o Phiên bản đầu tiên của MySQL phát hành năm 1995
o Công ty Sun Microsystems mua lại MySQL AB trong năm 2008
o Năm 2010 tập đoàn Oracle thâu tóm Sun Microsystems Ngay lúc đó, đội ngũ phát triển của MySQL tách MySQL ra thành 1 nhánh riêng gọi
là MariaDB Oracle tiếp tục phát triển MySQL lên phiên bản 5.5
o 2013 MySQL phát hành phiên bản 5.6
Trang 23o 2015 MySQL phát hành phiên bản 5.7
o MySQL đang được phát triển lên phiên bản 8.0
MySQL hiện nay có 2 phiên bản miễn phí (MySQL Community Server) và có phí (Enterprise Server)
Hình 13 MySQL là một hệ quản trị cơ sở dữ liệu quan hệ rất phổ biến hiện nay
2.4.3 Ưu điểm và nhược điểm của MySQL
2.4.3.1 Ưu điểm của MySQL
o Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và
hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh
Trang 24o Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập
CSDL trên Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là ở cấp cao
o Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ
một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp
o Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và
hơn thế nữa nó có thể được mở rộng nếu cần thiết
o Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc
rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi
Hình 14 MySQL tối ưu với nhiều ưu điểm
2.4.3.2 Nhược điểm của MySQL
o Giới hạn: Theo thiết kế, MySQL không có ý định làm tất cả và nó đi kèm
với các hạn chế về chức năng mà một vào ứng dụng có thể cần
o Độ tin cậy: Cách các chức năng cụ thể được xử lý với MySQL (ví dụ tài
liệu tham khảo, các giao dịch, kiểm toán,…) làm cho nó kém tin cậy hơn so với một số hệ quản trị cơ sở dữ liệu quan hệ khác