Tải bản đầy đủ (.docx) (33 trang)

Xây dựng app xem thời khóa biểu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (590.38 KB, 33 trang )

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN MÔN HỌC

LẬP TRÌNH ANDROID CƠ BẢN

Đề tài:
XÂY DỰNG APP XEM THỜI KHÓA BIỂU

Giảng viên hướng dẫn : ThS.
Sinh viên thực hiện :

Nhóm 10

Hà Nội, 05-2023

LỜI CAM ĐOAN

Tôi là Nguyễn Văn Duy, mã số sinh viên CT030211, lớp CT3B. Người hướng dẫn
là ThS. Lê Bá Cường. Tôi xin cam đoan tồn bộ nội dung được trình bày trong đồ án
“Xây dựng app xem thời khóa biểu” là kết quả q trình tìm hiểu và nghiên cứu của
nhóm tơi. Các dữ liệu được nêu trong đồ án là hoàn toàn trung thực, phản ánh đúng
kết quả đo đạc thực tế. Mọi thơng tin trích dẫn đều tn thủ các quy định về sở hữu trí
tuệ; các tài liệu tham khảo được liệt kê rõ ràng. Chúng tơi xin chịu hồn toàn trách
nhiệm với những nội dung được viết trong đồ án này.

Hà Nội, ngày 11 tháng 5 năm 2022
Người cam đoan


Nhóm thực hiện đề tài


MỤC LỤC

DANH MỤC HÌNH VẼ...........................................................................................................iii

DANH MỤC BẢNG BIỂU......................................................................................................iv

LỜI MỞ ĐẦU...........................................................................................................................iv

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT........................................................................................1

1.1 Tổng quan về Androi......................................................................................................1
1.1.1 Giới thiệu về hệ điều hành Androi...........................................................................1
1.1.2 Lịch sử của hệ điều hành Android............................................................................2
1.1.3 Sự đón nhận của người dùng đối với Android.........................................................2
1.1.4 Kiến trúc của Android..............................................................................................2

1.2 Tổng quan về React Native.............................................................................................2
1.2.1 Giới thiệu về React Native.......................................................................................2
1.2.2 Ưu điểm của React Native........................................................................................3
1.2.3 Nhược điểm của React Native..................................................................................6
1.2.4 Kết luận....................................................................................................................6

1.3 Tổng quan về Node Js....................................................................................................6
1.3.1 Giới thiệu về Node Js...............................................................................................6
1.3.2 Các tính năng của Node Js.......................................................................................8
1.3.3 Ứng dụng của Node JS.............................................................................................8
1.3.4 Một số ưu, nhược điểm của NodeJS........................................................................9

1.3.5 Kết luận..................................................................................................................10

1.4 Giới thiệu MySQL.........................................................................................................10
1.4.1 MySQL...................................................................................................................10
1.4.2 Đặc điểm MySQL..................................................................................................11
1.4.3 Lý do sử dụng MySQL...........................................................................................12

CHƯƠNG 2. KHẢO SÁT, PHÂN TÍCH THIẾT KẾ HỆ THỐNG...................................14

2.1 Khảo sát, phân tích bài tốn.........................................................................................14
2.1.1 Phân tích bài tốn...................................................................................................14
2.1.2 Khảo sát về một số app quản lý thời gian..............................................................15
2.1.3 Tổng quan về hệ thống...........................................................................................18
2.1.4 Nguyên lý hoạt động của hệ thống.........................................................................18

2.2 Thiết kế các chức năng.................................................................................................18

i

2.2.1 Chức năng app xem thời khóa biểu........................................................................18
2.2.2 Phân hệ người dùng................................................................................................19
2.3 Biểu đồ UseCase và đặc tả............................................................................................19
2.3.1 Biểu đồ UseCase tổng quát....................................................................................19
2.4 Thiết kế database..........................................................................................................20
2.4.1 Xây dựng database.................................................................................................20
2.4.1 Thiết kế cơ sở dữ liệu tổng quát.............................................................................21
2.4.2 Thiết kế cơ sở dữ liệu chi tiết.................................................................................21
2.5 Thiết kế giao diện..........................................................................................................24
CHƯƠNG 3. THỰC NGHIỆM.............................................................................................25
KẾT LUẬN..............................................................................................................................25

TÀI LIỆU THAM KHẢO......................................................................................................26

ii

DANH MỤC HÌNH VẼ

iii

DANH MỤC BẢNG BIỂU

LỜI MỞ ĐẦU

Ngày này, song song với sự phát triển của khoa học kĩ thuật, công nghệ thông
tin cũng phát triển và giữ vai trò quan trọng trong cuộc sống của chúng ta, ngành công
nghệ thông tin đã đạt được những kết quả cao, việc phát triển và ứng dụng cơng nghệ
đã có bước chuyển biến đáng kể. Tin học đã thâm nhập xâu trong tất cả các lĩnh vực
của xã hội và đặc biệt với nhiều ứng dụng to lớn trong các hệ thống quản lý của các
cơng ty, nhà trường, ngân hàng,… bởi tính năng nhanh gọn và chính xác.

Đặc biệt trong thời buổi dịch bệnh Covid -19 như hiện nay , các trường học
phải tạm dừng thay bằng đó chuyển sang hình thức học online. Sở dĩ nó được thịnh
hành hơn là do khả năng thích ứng nhanh cũng như thời gian , chi phí được tiết kiệm
một cách đáng kể.

Trong các Website học online thì website học lập trình đang được quan tâm
nhất hiện nay, rất nhiều những website học online nổi tiếng hồn tồn miễn phí cho tất
cả mọi người làm quen, tiếp thu và học hỏi những kiến thức quý báu của ngành lập
trình. Đồng thời tạo nên một cộng động giúp đỡ nhau trong học tập , làm việc của
ngành lập trình nói riêng và tồn thể các ngành nghề nói chung.


Từ những khảo sát và hiểu biết ban đầu, chúng em đã quyết định tìm hiểu đề tài
tìm hiểu Reac Js và Node Js nghiên cứu phát triển website học lập trình online . Với sự
hướng dẫn và chỉ bảo tận tình của thầy giáo ThS. Lê Bá Cường cùng với sự cố gắng
của cả nhóm, chúng em đã cố gắng hoàn thiện đề tài.

Chúng em xin chân thành cảm ơn thầy giáo đã giúp chúng em hoàn thiện đề tài
này.

iv

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT

1.1 Tổng quan về Androi
Như chúng ta biết, hiện tại đã có hơn nửa nhân loại sử dụng máy di động để

thoại và giao tiếp qua các mạng không dây. Con số 3tỉ người này sẽ cịn tăng lên và
máy di động càng ngày càng "thơng minh" với nhiều chức năng và dịch vụ rất hấp dẫn,
cho nên thị trường máy di động thông minh sẽ vượt xa máy vi tính trong một tương lai
rất gần... Vì thế việc lập trình trên thiết bị di động ngày càng phổ biến và phát triển rất
mạnh mẽ. Từ nền tảng mã nguồn mở, Google đã cho ra mắt Android chạy trên các
thiết bị di động. Android có rất nhiều cơng cụ và dụng cụ miễn phí để nghiên cứu và
phát triển phần mềm trên nền tảng của nó. Tài liệu này sẽ giúp chúng ta tìm hiểu về
Android và cách viết một ứng dụng trên nền tảng này.

1.1.1 Giới thiệu về hệ điều hành Androi
Android là một hệ điều hành có mã nguồn mở dựa trên nền tảng Linux được

thiết kế dành riêng cho các thiết bị di động có màn hình cảm ứng như điện thoại thơng
minh và máy tính bảng. Ban đầu, hệ điều này này được phát triển bởi công ty Android,
với sự hỗ trợ tài chính từ Google, sau đó chính Google đã mua lại công ty này và tiếp

tục phát triển Android trở thành một nền tảng hiệu quả hơn.

- Android có khả năng tuỳ biến cao, cho phép tùy ý chỉnh sửa mà khơng có sự can
thiệp hay ràng buộc pháp lý từ Google

- Android xuất hiện trên rất nhiều mẫu thiết bị từ phân khúc bình dân đến cao cấp,
mang đến nhiều lựa chọn cho người dụng

- Kho ứng dụng Google Play Store đồ sộ, nhiều ứng hữu ích

- Giao diện thân thiện, dễ sử dụng

- Do tính chất mã nguồn mở nên Android ln có nguy cơ tiềm ẩn cao bị dính virus
hoặc các phần mềm độc hại

- Android có sự phân mảnh quá lớn do có mặt trên rất nhiều thiết bị khác nhau, gây
nên một số khó khăn cho các nhà phát triển khi xây dựng ứng dụng mới

1

- Không hỗ trợ cập nhật cho tất cả mọi thiết bị, do đó trong nhiều trường hợp, nếu
muốn trải nghiệm phiên bản Android mới, người dùng phải mua thiết bị mới

Hình 1.1: Hệ điều hành Android
1.1.2 Lịch sử của hệ điều hành Android
1.1.3 Sự đón nhận của người dùng đối với Android
1.1.4 Kiến trúc của Android

1.2 Tổng quan về React Native
1.2.1 Giới thiệu về React Native

React Native là một framework được tạo bởi Facebook, cho phép các lập trình

viên sử dụng JavaScript để làm mobile apps trên cả Android và iOS với có trải nghiệm
và hiệu năng như native. React Native vượt trội ở chỗ chỉ cần viết một lần là có thể
build ứng dụng cho cả iOS lẫn Android.

2

Hình 1.2 React Native
Việc này giúp chúng ta có thể tiết kiệm được thời gian, công sức, tiền bạc. Giúp tốc độ
ra sản phẩm cũng như cập nhật ứng dụng nhanh chóng mặt. Có thể nói React Native là
một cross-platform để xây dựng một ứng dụng di động hiệu quả.
Nó hồn tồn khác với khái niệm “hybrid app” :

1.2.2 Ưu điểm của React Native
React Native cùng với Flutter đang là xu hướng lập trình di động hiện nay bởi tính

đa nền tảng cũng như tiết kiệm thời gian triển khai dự án. Sau đây là những lợi ích mà
nó đem lại cho việc triển khai dự án có thể trả lời cho câu hỏi có nên dùng React
Native không ?
1.2.2.1 Thời gian học ngắn hơn

Một lý do lập trình mobile app rất khó và tốn thời gian là vì thực tế cần tìm hiểu
2 hệ sinh thái hồn tồn khác biệt. Nếu bạn muốn lập trình app iOS, ta phải học Swift
hoặc Objective-C và Cocoa Pods.
Nếu muốn lập trình app Android, bạn cần học Java hoặc Kotlin và Android SDK.

3

Tuy nhiên, điều có thể nói là chúng khác nhau và việc học từng ngơn ngữ đó sẽ tốn

khá nhiều thời gian. Điều tương tự cũng xảy ra với các frameworks: Cocoa Touch và
Android SDK.

Tất nhiên, mỗi frameworks ln có 1 gói các cơng cụ như cơng cụ testing, các libs,
packages… và việc các dev phải cập nhật các tính năng mới nhất của mỗi hệ sinh thái
là điều không thể bàn cãi.

Mặc khác, nếu chọn lập trình trên React Native, phần lớn thời gian bạn sẽ chỉ cần học
1 bộ cơng cụ. Có rất nhiều thứ để bạn làm quen như: JavaScript, Node, React Native…
nhưng chỉ có 1 cơng cụ duy nhất để học.

1.2.2.2 Khả năng tái sử dụng code
Khả năng sử dụng lại code đóng vai trị quan trọng trong lập trình phần mềm,

nên mỗi khi có thể sử dụng lại code thì React Native là cơng cụ tốt.

React Native khơng phải chỉ viết 1 lần mà nó chạy ở mọi nơi. Bất cứ khi nào lập trình
1 app, cần phải xây dựng UI trông native và phù hợp với hệ điều hành hướng tới. Vì lý
do này, 1 số UI code cần được viết theo đúng các chỉ dẫn và chuẩn mực tốt nhất của
platform đó. Tuy nhiên, sẽ ln có vài UI code thơng dụng có thể được chia sẻ chung
với nhau cùng tất cả logic. Tính năng “có thể chia sẻ code” có rất nhiều lợi điểm như:
tận dụng nguồn nhân lực tốt hơn, duy trì ít code hơn, ít bugs hơn, các tính năng trong
cả 2 platforms cũng tương tự nhau…

1.2.2.3 Học 1 lần, viết ở mọi nơi
Khi team của Facebook tạo React Native, mục tiêu của họ là giúp các dev học 1

lần nhưng sử dụng được mọi platform. Bởi vì tất cả code của Android và iOS sử dụng
cùng bộ cơng cụ, nên ý tưởng có một team dev làm app cho cả hai platform là thực
hiện được – một điều ít khi xảy ra khi có rất ít dev lập trình cả hai platform iOS và

Android. Thậm chí, cịn cho rằng team đang lập trình web app sử dụng React.js sẽ
không phải cực khổ nữa khi học lập trình React Native và bắt đầu làm mobile app.

1.2.2.4 Cộng đồng lớn
React Native đang trở lên rất phổ biến, nhiều developer đang đóng góp để làm

React Native tốt hơn. Đặc biệt là nó được tạo ra và hỗ trợ bởi tập đoàn Facebook.

4

React Native Github repro là một nguồn mở và có hàng nghìn cộng tác viên hoạt động
rất năng nổ.

Cộng đồng rất lớn và đang phát triển mạnh mẽ. Nhiều vấn đề đã và đang được giải
quyết và bạn sẽ không cần phải tốn thời gian để nghiên cứu lại trong suốt quá trình học
và làm việc với React Native.

1.2.2.5 Hot Reloading
Thói quen thông thường của dev khi code là test các thay đổi mỗi lần code được

viết. Để thực hiện được, app cần phải được đóng gói lại và cài đặt hoặc trong 1
simulator hoặc một thiết bị thật sự.

Với React Native, phần lớn thời gian, không cần phải tổng hợp lại app mỗi lần có thay
đổi. Chỉ cần làm mới app trong simulator, emulator hoặc thiết bị. Thậm chí cịn có một
tính năng là Live Reload để tự động refresh app mỗi lần phát hiện 1 thay đổi trong
code.

1.2.2.6 Nguồn mở
React Native vẫn cịn là cơng nghệ đang được sử dụng nhiều. Tuy vẫn cịn


nhiều lỗi, nhưng nhìn chung, các lập trình viên vẫn có thể sử dụng React Native vào
giai đoạn production ở hầu hết các mobile app.

Ngồi ra vẫn cịn vài tính năng có sẵn trong các lập trình native, chưa sử dụng được
với React Native nhưng đây không phải là vấn đề lớn. Từ kinh nghiệm của bản thân,
đây chỉ là chuyện đơn giản khi đã quen thuộc với lập trình native.

Thêm nữa, khi React Native đã là nguồn mở, với cộng đồng lớn các lập trình viên đã
hỗ trợ thực hiện nhiều tính năng hơn, fix bugs… Phần lớn thời gian, nếu đang cố gắng
lập trình 1 thứ gì đó đã quen thuộc trong mobile apps thì nhiều khả năng là nó đã được
lập trình rồi.

1.2.3 Nhược điểm của React Native
React Native là một giải pháp tuyệt vời cho phát triển ứng dụng trên điện thoại di
động, tuy nhiên đến thời điểm hiện tại, vẫn còn tồn tại một số khuyết điểm:

 Vẫn còn thiếu các component quan trọng nhưng dần dần cũng đang có thêm
nhiều cập nhật mới kể từ bài viết này mà chưa được biết.

5

 Không build được ứng dụng iOS trên Window và Linux: do yêu cầu từ Apple,
mọi ứng dụng iOS cần được sử dụng nhiều native libs, cert…từ Xcode.

 React Native không thể build được ứng dụng “quá phức tạp” nếu không biết
Swift/Objecive-C, Java – tính phức tạp ở đây là ứng dụng cần phải chỉnh sửa
các component. Để viết được 1 ứng dụng native bằng javascript thì “ln ln”
có sẵn các component đã được viết từ Swift/Objective-C (iOS) và Java
(Android) để sử dụng. Trường hợp muốn chỉnh sửa 1 component nào đó: thay

đổi thành phần hoặc thêm API thì phải tự viết bằng chính ngôn ngữ tương ứng
của iOS hoặc Android. Nhờ cộng đồng lớn nên cũng có nhiều lập trình viên
khác đã viết nhiều component cần thiết cho hầu hết ứng dụng (đây cũng là lý do
vì sao Facebook biến React Native thành mã nguồn mở).

 Khơng dùng để viết game có tính đồ họa và cách chơi phức tạp.
 Dùng ES2015/ES6 nên đây là cấu trúc mới cho Javascript từ 2015, vì khá là

mới nên những cấu trúc của nó có thể bạn chưa quen, dẫn tới việc khó khăn
trong việc tiếp cận.

1.2.4 Kết luận
Từ những ưu điểm, đặc điểm của React Native và trải qua thời gian nghiên cứu

về React Native chúng em nhận thấy React Native là một thư viện lập trình rất hữu ích
và tân tiến được nhiều các website lớn lựa chọn nên nhóm chúng em đã quyết định áp
dụng React Native phát triển đề tài: “Xây dựng app xem thời khóa biểu”.

1.3 Tổng quan về Node Js

1.3.1 Giới thiệu về Node Js
NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” được viết

bằng C++ và Javascript. Nền tảng này được phát triển bởi Ryan Lienhart Dahl vào
năm 2009. Nodejs được thiết kế để xây dựng các ứng dụng lớn hay nhỏ và có thể mở
rộng nhanh và ít tốn kém nhất, tạo ra được các ứng dụng có tốc độ xử lý nhanh,
realtime thời gian thực. Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần
mở rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất có
thể.


6

Hình 1.3 Node JS
Ở chế độ đồng bộ thực thi từng dòng và tiến hành thực thi dòng tiếp theo khi
dòng hiện tại đã thực thi xong.
Khi bất đồng bộ thực thi tất cả dòng code cùng một lúc.
NodeJS là một nền tảng được xây dựng trên JavaScript runtime của Chrome với
mục đích xây dựng các ứng dụng mạng nhanh chóng và có thể mở rộng được một cách
dễ dàng hơn. NodeJS sử dụng mô hình I/O lập trình theo sự kiện, non-blocking, do đó
nodeJS khá gọn nhẹ và hiệu quả - cơng cụ hồn hảo cho các ứng dụng chuyên sâu về
dữ liệu theo thời gian thực chạy trên các thiết bị phân tán.
NodeJS là môi trường runtime mã nguồn mở đa nền tảng, được sử dụng để phát
triển các ứng dụng mạng và ứng dụng server-side. Các ứng dụng NodeJS được viết
bằng JavaScript và có thể chạy trong NodeJS runtime trên OS X, Microsoft Windows
và Linux.

7

NodeJS cũng cung cấp một thư viện bao gồm rất nhiều các module JavaScript
khác nhau nhằm đơn giản hóa việc phát triển các ứng dụng web, qua đó giảm thiểu
tình trạng sử dụng quá nhiều Node.js.

1.3.2 Các tính năng của Node Js
Lập trình hướng sự kiện và khơng đồng bộ: Tồn bộ API trong thư viện NodeJS

đều không đồng bộ, hay khơng bị chặn. Về cơ bản điều này có nghĩa là một server sử
dụng NodeJS sẽ không bao giờ chờ một API trả về dữ liệu. Server sẽ chuyển sang API
kế tiếp sau khi gọi API đó và cơ chế thông báo của Events trong NodeJS giúp server
nhận được phản hồi từ lần gọi API trước.


Cực kỳ nhanh chóng: Được xây dựng trên Công cụ JavaScript V8 của Google
Chrome, thư viện NodeJS có khả năng xử lý mã vơ cùng nhanh.

Đơn luồng/Single thread nhưng có khả năng mở rộng cao: NodeJS sử dụng một
mơ hình luồng đơn với vịng lặp sự kiện/event. Cơ chế event cho phép máy chủ phản
hồi non-blocking và cũng cho phép khả năng mở rộng cao hơn so với các server truyền
thống hỗ trợ giới hạn các thread để xử lý yêu cầu. NodeJS sử dụng một chương trình
đơn luồng, cùng một chương trình có thể cung cấp dịch vụ cho một số lượng yêu cầu
lớn hơn so với các máy chủ truyền thống như Apache HTTP Server.

Khơng có buffer - Các ứng dụng NodeJS khơng có vùng nhớ tạm thời (buffer)
cho bất kỳ dữ liệu nào. Các ứng dụng này chỉ đơn giản xuất dữ liệu theo khối.

License - NodeJS được phát hành theo giấy phép MIT.

1.3.3 Ứng dụng của Node JS
Node JS là một nền tảng phổ biến ngày nay với nhiều ứng dụng như:

 Hệ thống Notification - Giống như facebook hayTwitter
 Websocket server - Các máy chủ web socket như là Online Chat, Game

Server…
 Fast File Upload Client - Các chương trình upload file tốc độ cao.
 Ad Server - Các máy chủ quảng cáo.
 Cloud Services - Các dịch vụ đám mây.

8

 RESTful API - Những ứng dụng mà được sử dụng cho các ứng dụng khác
thông qua API.


 Any Real-time Data Application - Bất kỳ một ứng dụng nào có yêu cầu về tốc
độ thời gian thực.

 Ứng dụng Single Page Application (SPA) - Những ứng dụng này thường
request rất nhiều đến server thông qua AJAX

 Ứng dụng truy vấn tới NoSQL database - Như MongoDB, CouchDB,…
 Ứng dụng CLI - Các công cụ sử dụng command-line.

1.3.4 Một số ưu, nhược điểm của NodeJS
Ưu điểm:

 Nhận và xử lý nhiều kết nối chỉ với một single-thread giúp hệ thống tốn ít
RAM nhất và chạy nhanh nhất khi không phải tạo thread mới cho mỗi truy
vấn.

 NodeJS tận dụng tối đa tài nguyên của server mà khơng tạo ra độ trễ vì áp
dụng ưu điểm non-blocking I/O của Javascript.

 Với cơ chế event-driven, non-blocking I/O(Input/Output) và mơ hình kết
hợp với Javascript là sự lựa chọn tuyệt vời cho các dịch vụ Webs làm bằng
JSON.

 Với khả năng xử lý nhiều Request/s đồng thời thời gian phản hồi nhanh. Rất
phù hợp để áp dụng NodeJS để xây dựng các ứng dụng Single page
Application, các ứng dụng không muốn tải lại trang, gồm rất nhiều request
từ người dùng cần sự hoạt động nhanh, các **ứng dụng thời gian thực
**như ứng dụng chat, các dịch vụ mạng xã hội như Facebook, Twitter,…


 NodeJS sẽ tận dụng tối đa Unix để hoạt động. Tức là NodeJS có thể xử lý
hàng nghìn process và trả ra một luồng khiến cho hiệu xuất hoạt động đạt
mức tối đa nhất và tuyệt vời nhất.

 Streamming Data: Các web thông thường gửi HTTP request và nhận phản
hồi lại (Luồng dữ liệu). Giả xử sẽ cần xử lý 1 luồng giữ liệu cực lớn,
NodeJS sẽ xây dựng các Proxy phân vùng các luồng dữ liệu để đảm bảo tối
đa hoạt động cho các luồng dữ liệu khác.

9

 Viết được cho cả 2 phía server và client. Chạy đa nền tảng trên Windows,
MAC hoặc Linux. Hơn nữa cộng đồng NodeJS rất lớn và hoàn toàn miễn
phí.

Nhược điểm:
 Rất hạn chế khi áp dụng NodeJS khi xây dựng ứng dụng nặng, tốn tài
nguyên. Bởi vì NodeJS được viết bằng C++ & Javascript, nên phải thông
qua thêm 1 trình biên dịch của NodeJS sẽ lâu hơn 1 chút.
 Giống như hầu hết các công nghệ mới, việc triển khai NodeJS trên host
không phải là điều dễ dàng.
 Thiếu sự kiểm duyệt chất lượng các module NodeJS.

1.3.5 Kết luận
Từ những ưu điểm, đặc điểm của Node JS và trải qua thời gian nghiên cứu về

Node JS chúng em nhận thấy Node JS là một môi trường rất hữu ích và tân tiến được
nhiều các website lớn lựa chọn nên nhóm chúng em đã quyết định áp dụng NodeJS
phát triển đề tài: “Xây dựng app xem thời khóa biểu”.
1.4 Giới thiệu MySQL


1.4.1 MySQL
Hệ quản trị cơ sở dữ liệu MySQL được hiểu như là chương trình dùng để quản

lý hệ thống cơ sở dữ liệu, trong đó, cơ sở dữ liệu là một hệ thống lưu trữ thông tin
được sắp xếp rõ ràng, phân lớp ngăn nắp. Nó giúp bạn có thể truy cập dữ liệu một cách
thuận lợi và nhanh chóng nhất. Vì hỗ trợ đa số các ngơn ngữ lập trình nên MySQL
chính là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất trên thế giới. Hiện
MySQL đang được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng
dụng.

10

Hình 1.4 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là cơ sở dữ liệu tốc độ cao, ổn định 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. Đặc biệt, hệ quản trị cơ sở dữ
liệu MySQL hoàn toàn miễn phí nên người dùng có thể thoải mái tải về từ trang chủ.
Nó có rất nhiều những phiên bản cho các hệ điều hành khác nhau. MySQL được sử
dụng cho việc bỗ trợ PHP, Perl và nhiều ngôn ngữ khác. Là nơi lưu trữ những thông
tin trên các trang web viết bằng framework PHP hay Perl…

1.4.2 Đặc điểm MySQL
Đặc điểm của hệ quản trị cơ sở dữ liệu MySQL

 Hệ quản trị cơ sở dữ liệu MySQL chính là một trong những phần mềm quản trị
CSDL dạng server based, hệ gần giống với SQL server of Microsoft.

 MySQL là phần mềm quản lý dữ liệu thông qua CSDL. Và mỗi một CSDL đều
có bảng quan hệ chứa dữ liệu riêng biệt.


 MySQL có cơ chế quản lý sử dụng riêng giúp cho mỗi người sử dụng đều có
thể quản lý cùng lúc một hay nhiều CSDL khác nhau. Và mỗi người dùng đều
có 1 username và password để truy nhập và truy xuất đến CSDL. Khi truy vấn
đến CSDL của MySQL, bạn phải cung cấp tài khoản và mật khẩu có quyền sử
dụng cơ sở dữ liệu đó.

11

 MySQL tương thích tốt với môi trường PHP, giúp hệ thống hoạt động mạnh
mẽ. Bạn có thể viết hoặc chỉnh sửa code MySQL trên các IDE dành cho PHP,
một số công cụ hỗ trợ.

1.4.3 Lý do sử dụng MySQL
MySQL ngày càng hoàn thiện và mang đến nhiều lợi ích cho người dùng. Ra

mắt người dùng hoàn toàn miễn phí, hệ quản trị cơ sở dữ liệu MySQL mang đến rất
nhiều những lợi ích thiết thực, được ứng dụng trong nhiều dự án của các công ty công
nghệ, một trong số đó có thể kể đến những cơng ty chun lập trình như MonaMedia,
Misa,… cùng chúng tơi tìm hiểu những lợi ích thiết thực của mySQL ngay dưới đây:

Hiệu năng sử dụng cao :Hầu hết, hệ quản trị cơ sở dữ liệu MySQL đang được
các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Và họ đánh giá
rất cao ở hiệu năng sử dụng của MySQL. Với kiến trúc storage-engine, MySQL đặc
trưng cho các ứng dụng chuyên biệt, đặc biệt là đối với những trang web có dung
lượng lớn, phục vụ hàng triệu khách hàng. Hoặc đối với những hệ thống xử lý giao
dịch tốc độ cao thì MySQL đều cùng có thể đáp ứng được những khả năng xử lý khắt
khe của mọi hệ thống. Đặc biệt, với những tiện ích tải tốc độ cao, cơ chế xử lý nâng
cao cùng bộ nhớ cache. MySQL đưa ra tất cả những tính năng cần có, đây là giải pháp
hoàn hảo nhất ngay cả đối với những hệ thống doanh nghiệp khó tính nhất hiện nay.


MySQL hỗ trợ giao dịch mạnh mẽ: Hệ quản trị cơ sở dữ liệu MySQL khơng
những mang lại hiệu năng sử dụng cao. Mà nó còn đưa ra một trong số những engine
giao dịch cơ sở dữ liệu tốt nhất trên thị trường hiện nay. Tính năng này bao gồm: Khóa
mức dịng khơng hạn chế; hỗ trợ giao dịch ACID hoàn thiện; khả năng giao dịch được
phân loại và hỗ trợ giao dịch đa dạng mà người đọc không cản trở cho người viết và
ngược lại. Với MySQL, dữ liệu sẽ được đảm bảo trong suốt q trình server có hiệu
lực. Các mức giao dịch độc lập sẽ được chun mơn hóa, nếu phát hiện có lỗi khóa
chết ngay tức thì.

Tốc độ rất nhanh :hệ quản trị mysql có tốc độ cao.Tốc độ xử lý dữ liệu của
mySQL rất nhanh. Đánh giá chung của các nhà phát triển, tất cả họ đều cho rằng hệ
quản trị cơ sở dữ liệu MySQL là cơ sở dữ liệu nhanh nhất. Đây là nơi để cho các

12

website có thể trao đổi thường xuyên các dữ liệu bởi nó có engine xử lý tốc độ cao.
Khả năng chèn dữ liệu cực nhanh và hỗ trợ mạnh mẽ các chức năng chuyên dụng cho
trang web. Các tính năng này cũng được sử dụng cho môi trường lưu trữ dữ liệu mà hệ
quản trị này tăng cường đến hàng terabyte cho các server đơn. Ngồi ra cịn có những
tính năng khác như: chỉ số băm, bảng nhớ chính, bảng lưu trữ và cây B được gói lại để
giúp giảm các yêu cầu lưu trữ tối đa đến 80%. Với tốc độ nhanh, thật không thể phủ
nhận hệ quản trị cơ sở dữ liệu MySQL là sự lựa chọn tốt nhất cho cả ứng dụng web
cũng như các ứng dụng của doanh nghiệp ngày nay.

Dễ dàng sử dụng :MySQL ngoài được biết đến với tốc độ khá cao, ổn định thì
nó thực sự là một hệ thống cơ sở dữ liệu rất đơn giản, rất dễ sử dụng. Ít phức tạp khi
cài đặt và quản trị hơn các hệ thống lớn. Đặc biệt nó có thể hoạt động trên tất cả các hệ
điều hành.

Hỗ trợ ngôn ngữ truy vấn: MySQL hệ quản trị cơ sở dữ liệu là ngôn ngữ của sự

lựa chọn cho tất cả các hệ thống cơ sở dữ liệu hiện đại. Người dùng hoàn tồn có thể
truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (một giao thức
giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft). Nhiều client có thể truy cập đến
server trong cùng một thời gian. Đặc biệt các client có thể sử dụng nhiều cơ sở dữ liệu
một cách đồng thời. Bạn cũng có thể truy cập MySQL tương tác với khi sử dụng một
vài giao diện để đưa vào các truy vấn và xem kết quả như: các dòng yêu cầu của khách
hàng, các trình duyệt web…

 Tính kết nối và bảo mật cao
 Tính linh động cao
 Mã nguồn mở tự do và hỗ trợ 24/7
 Chi phí sở hữu thấp nhất
Như vậy đủ thấy MySQL là một hệ quản trị cơ sở dữ liệu đầy đủ đảm bảo các tính
năng lại có nhiều ưu điểm. Lựa chọn sử dụng MySQL trong đề tài là hoàn toàn đúng
đắn

13


×