Lý do chọn đề tài Hiện nay, hàng năm tại các trường THPT đều xây dựng cơ sở dữ liệu học sinh để quản lý về thông tin học sinh, phụ huynh học sinh.. Sau khi hoàn thành việc xây dựng hệ
Trang 1ĐOÀN DUYÊN AN
ỨNG DỤNG QUẢN TRỊ DỮ LIỆU HỌC SINH, KHÁCH HÀNG TRÊN NỀN TẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
VỚI BỘ CÔNG CỤ ANDROID STUDIO
Chuyên ngành: Công nghệ thông tin
Mã số : 84.80.201
TÓM TẮT LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI - 2019
Trang 2HỌC VIỆN QUẢN LÝ GIÁO DỤC
Người hướng dẫn khoa học: TS NGUYỄN MẠNH HÙNG
Phản biện 1:………
Phản biện 2:………
Luận văn sẽ được bảo vệ tại hội đồng chấm luận văn thạc sĩ
họp tại Học viện Quản lý giáo dục
Vào hồi……giờ……phút……ngày……tháng……năm 2019
Có thể tìm hiểu luận văn tại:
Thư viện Học viện Quản lý giáo dục
Trang 3PHẦN MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay, hàng năm tại các trường THPT đều xây dựng cơ sở dữ liệu học sinh để quản lý về thông tin học sinh, phụ huynh học sinh Hay các cơ sở kinh doanh cũng thường xuyên phải cập nhật thông tin khách hàng
Sau khi hoàn thành việc xây dựng hệ thống cơ sở dữ liệu về học sinh, khách hàng thì mỗi học sinh, phụ huyn học sinh, khách hàng, chủ cơ sở kinh doah được quyền khai thác thông tin trong cơ sở dữ liệu về học sinh
để thuận lợi cho việc thông tin đến học sinh, phụ huynh học sinh, quản trị khách hàng
Trên thực tế, khi tôi đi khảo sát, trao đổi, phỏng vấn trực tiếp với các các thầy cô giáo làm quản lý, làm chủ nhiệm, đoàn thanh niên tại trường THPT số 1 Văn Bàn, các chủ cơ sở kinh doanh về việc phụ huynh gọi điện báo về việc xin nghỉ học, hay kiểm tra tình hình học tập, hạnh kiểm, kết quả học tập, hay khách hàng muốn sử dụng dịch vủ của cửa hàng v v thì các thầy cô nhận thông tin, các phụ huynh, các chủ cơ sở kinh doanh khi gọi điện phải hỏi rõ địa chỉ, vị trí, hình ảnh, các thông tin cần thiết khác dẫn đến mất nhiều thời gian cho việc kiểm tra, đối chiếu thông tin (đôi khi còn bị nhầm thông tin)
Xuất phát từ thực tiễn trên, chúng tôi đã nảy sinh ý tưởng “Ứng dụng quản trị dữ liệu học sinh, khách hàng trên nền tảng lập trình hướng đối tượng với bộ công cụ Android Studio”, Học sinh,phụ huynh học sinh,
khách hàng gọi điện đến nhà trường, cơ sở kinh doanh để báo về sự việc nào đó người tiếp nhận điện thoại sẽ biết được ngay thông tin người gọi điện đến thông qua cơ sở dữ liệu (gồm địa chỉ, vị trí trên bản đồ, toàn bộ thông tin người dân) trên màn hình điện thoại
2 Mục đích nghiên cứu
Mục đích chính của đề tài là tôi xét, tìm hiểu những yếu tố, chức năng đến dữ liệu học sinh, dữ liệu khách hàng dựa trên cơ sở dữ liệu học sinh, khách hàng để kết nối chính xác với cơ sở dữ liệu học sinh, khách hàng để từ đó đưa ra các chức năng cho việc quản lý dữ liệu học sinh,
Trang 4khách hàng và nó sẽ được mở rộng thêm để phản ánh đặc thù của đề tài nghiên cứu
3 Nhiệm vụ nghiên cứu
Trên thực tế, ứng dụng có tính năng tương tự trên Google Play, Apple Store như ứng dụng “số điện thoại di động định vị” v v Tuy nhiên, những ứng dụng trên chỉ có chức năng hiển thị vị trí (chưa có chức hiển thị thông tin, bản đồ ), xác định khoảng cách nhưng chưa chính xác Chưa
có ứng dụng nào thiết kế một cách đầy đủ và hệ thống về vị trí, thông tin của người gọi điện
Để giải quyết vấn đề trên, chúng tôi nhận thấy cần nghiên cứu, thiết
kế một ứng dụng hiển thị được đầy đủ vị trí, thông tin, hình ảnh hiện trường cần thiết của người gọi điện Và từ đó, sử dụng rộng rãi ứng dụng này để mang lại hiệu quả tốt nhất phục vụ nhu cầu của nhà tường, cơ sở
kinh doanh Với những lí do trên, tôi đã lựa chọn và thực hiện đề tài: “Ứng dụng quản trị dữ liệu học sinh, khách hàng trên nền tảng lập trình hướng đối tượng với bộ công cụ Android Studio”
Các tiêu chí đặt ra đối với ứng dụng là:
- Hiển thị được vị trí, hình ảnh, bản đồ đường đi, các thông tin khác của người gọi điện cho người tiếp nhận điện thoại một cách chính xác và nhanh chóng (người gọi điện không cần mô tả)
- Dễ sử dụng và lưu trữ được lâu dài trên bộ nhớ ngoài các thông tin của người dân
- Quản lý dữ liệu cá nhân đảm bảo chính xác, nhanh chóng
- Kết nối được chính xác với cơ sở dữ liệu học sinh mà trường THPT đang quản lý
- Dữ liệu học sinh, phụ huynh, khách hàng phải được bảo mật, lưu trữ lâu dài Vì vậy chúng tôi nghiên cứu vấn đề bảo mật bằng chức năng phân quyền, lưu trữ lâu dài trên cloud (điện toán đám mây)
- Người gọi điện không muốn hiển thị thông tin, vị trí, hình ảnh cho người nhận điện thoại trong những trường hợp không cần thiết thì ứng dụng này sẽ đáp ứng được yêu cầu
4 Đối tượng và khách thể
4.1 Khách thể nghiên cứu
Trang 5Học sinh, phụ huynh học sinh, các giáo viên trong trường học, khách hàng, các phương tiện điện thoại
4.2 Đối tượng nghiên cứu
Học sinh, phụ huynh học sinh trường THPT huyện Văn Bàn, các cửa hàng kinh doanh trên địa bàn thị trấn Khánh Yên, huyện Văn Bàn, tỉnh Lào Cai
5 Phạm vi nghiên cứu
Dữ liệu học sinh trường THPT huyện Văn Bàn, dữ liệu khách hàng trên địa bàn thị trấn Khánh Yên, huyện Văn Bàn, tỉnh Lào Cai
6 Giả thuyết khoa học
Học sinh, khách hàng, phụ huynh gọi điện đến cơ quan (trường học,
cơ sở kinh doanh vv ) để báo về sự việc thì phải khai báo đầy đủ, chính xác thông tin, vị trí dẫn đến mất thời gian (đôi khi còn nhầm lẫn) ảnh hưởng đến công việc, cần phải có ứng dụng hiển thị thông tin cần thiết chính xác, nhanh chóng trên điện thoại của người nhận điện thoại (người nhận điện thoại không cần phải hỏi)
Sử dụng ngôn ngữ lập trình hướng đối tượng cùng với bộ công cụ Android Studio để xây dựng ứng dụng quản lý dữ liệu học sinh, khách hàng
Sử dụng câu lệnh để kết nối với dữ liệu bản đồ vệ tinh (Google Map) thực hiện được một cách thuận lợi, chính xác
Đảm bảo dữ liệu được bảo mật thông qua chức năng phân quyền
Để người gọi điện không cần hiển thị vị trí, thông tin của mình trên điện thoại người nhận thì chúng tôi đã thiết lập chức năng cài đặt lựa chọn cho phép hiển thị hoặc lựa chọn không hiển thị trên máy người người gọi điện
Đưa sản phẩm ra thương mại hóa bằng cách upload ứng dụng lên Apple Store, Google play
7 Phương pháp nghiên cứu
Trang 67.2.1 Phương pháp điều tra bằng phiếu:
Lập phiếu hỏi những khách hàng, chủ cơ sở kinh doanh, phụ huynh trực tiếp gọi điện cho nhà trường, giáo viên chủ nhiệm, các thầy cô làm đoàn thanh niên, quản lý ký túc xá, các chủ hộ kinh doanh, nhân viên kinh doanh trực tiếp nhận điện thoại từ khách hàng, từ phụ huynh, từ học sinh
7.2.2 Phương pháp phỏng vấn:
Trao đổi với các quản lý, cán bộ, giáo viên, ở trường THPT số 1 Văn Bàn, các chủ cơ sở kinh doanh trên địa bàn thị trấn Khánh Yên, Văn Bàn, Lào Cai
7.2.3 Phương pháp chuyên gia:
Hỏi ý kiến một số cán bộ quản lý trường học, chủ cơ sở kinh doanh
7.3 Sử dụng phương pháp thực nghiệm với 5 bước
Bước 1: Hình thành ý tưởng, xác định đề tài thiết kế
Bước 2: Thu thập thông tin, phần mềm để thực hiện chức năng của
sản phẩm, đề ra phương án thiết kế, tiến hành thiết kế sơ đồ thuật toán
Bước 3: Cài đặt phần mềm, viết chương trình (code)
Bước 4: Tiến hành thử nghiệm, thẩm định, đánh giá phương án thiết
kế, nếu phương án không đạt thì phải làm lại từ bước 2 Sửa đổi để đạt
được phương án tối ưu nhất
Bước 5: Hoàn thiện sản phẩm và chạy kiểm tra chương trình
Luận văn được chia làm ba chương cụ thể như sau:
Chương 1: Giới thiệu lập trình hướng đối tượng, Java, Kotlin,
Android Studio, thuật toán
Chương 2: Cơ sở dữ liệu, dùng Firebase Devolop trong quản lý cơ
sở dữ liệu học sinh
Chương 3: Tiến hành nghiên cứu ứng dụng, hoàn thiện các chức năng, chạy thử nghiệm ứng dụng
Trang 7CHƯƠNG 1: GIỚI THIỆU LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG, JAVA, KOTLIN, ANDROID STUDIO, THUẬT TOÁN
1.1 Tìm hiểu nền tảng công nghệ lập trình hướng đối tượng, ngôn ngữ lập trình Java, Kotlin
1.1.1 Lập trình hướng đối tượng
Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mẫu hình lập trình dựa trên khái niệm
"công nghệ đối tượng ", mà trong đó, đối tượng chứa đựng các dữ liệu,
trên các trường, thường được gọi là các thuộc tính; và mã nguồn, được tổ
chức thành các phương thức
OOP giúp cho đối tượng có thể truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng khác, mà đối tượng hiện tại có tương tác (đối tượng được hỗ trợ các phương thức "this" hoặc "self")
1.1.2 Dùng ngôn ngữ lập trình Java
Java (phiên âm Tiếng Việt: "Gia-va") là một ngôn ngữ lập
trình hướng đối tượng (OOP) và dựa trên các lớp (class)
Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy
1.1.3 Dùng ngôn ngữ lập trình Kotlin
Kotlin là một ngôn ngữ lập trình được đánh máy tĩnh chạy trên máy
ảo Java và cũng có thể được biên dịch thành mã nguồn JavaScript hoặc sử
dụng cơ sở hạ tầng trình biên dịch LLVM Có những lợi thế:
1.2 Thiết kế, cách phân tích thuật toán, một số thuật toán dùng trong chương trình
1.2.1 Thiết kế thuật toán
1.2.1.1 Phương pháp modul hoá bài toán
Các bài toán giải trên máy tính điện tử ngày càng đa dạng và phức tạp Các thuật toán và chương trình để giải chúng cũng ngày càng có qui
mô lớn và khó thiết lập Tuy nhiên mọi việc sẽ đơn giản, nếu ta phân chia bài toán lớn thành các bài toán nhỏ Tức là coi bài toán lớn như là một
Trang 8modul chính thì cần chia nó ra thành các modul nhỏ và các modul nhỏ này lại có thể phân chia tiếp thành các modul nhỏ hơn tương ứng với phần việc
cơ bản mà ta đã biết cách giải quyết như vậy với bài toán mà tôi đang tìm hiểu thì cần phải chia nhỏ các modul để thuận tiện cho việc sửa chữa, cập
nhật các modul
Như vậy cách tổ chức bài toán được thể hiện theo cấu trúc phân cấp Chiến thuật giải bài toán theo tinh thần như vậy gọi là chiến thuật “chia để trị” Nó thể hiện cách phân tích tổng quát toàn bộ vấn đề của bài toán, rồi sau đó mới đi dần vào giải quyết từng phần việc cụ thể một cách chi tiết
Vì thế phương pháp gọi là top-down, tức là thiết kế từ khái quát đến chi
tiết
Nhưng trong thực tế, đôi khi ta cũng phải đi từ chi tiết đến tổng quát, nghĩa là đi từ vấn đề cụ thể trước, sau đó mới ghép chúng lại thành vấn đề lớn Người ta gọi cách thiết kế này là bottom-up
1.2.1.2 Phương pháp tinh chỉnh từng bước
Tinh chỉnh từng bước là phương pháp thiết kế thuật toán gắn liền với lập trình Nó phản ánh tinh thần của quá trình modul hoá bài toán và thiết
kế kiểu top-down
Đầu tiên chương trình thể hiện thuật toán được trình bày bằng ngôn ngữ tự nhiên, phản ánh các công việc chính cần làm (dạng “thô”) Sau đó được chi tiết hoá dần dần tương ứng với những công việc nhỏ hơn (làm
“mịn”) Các bước làm mịn đó gọi là sự tinh chỉnh và nó sẽ được hướng về ngôn ngữ lập trình mà ta đã chọn Trong quá trình tinh chỉnh, dữ liệu cũng
được “tinh chế” dần dần đến dạng lưu trữ cài đặt cụ thể
Trong thực tế, người ta thường vận dụng đồng thời cả hai phương
pháp thiết kế thuật toán nói trên
1.2.2 Phân tích thuật toán
Một chương trình máy tính, mặc dù được cài đặt theo một thuật toán đúng có thể không cho kết quả mong muốn đối với một bộ dữ liệu nào đó
Vì hoặc là nó đòi hỏi quá nhiều thời gian, hoặc là không đủ bộ nhớ để lưu
dữ liệu và các biến của chương trình Vì vậy, để có thể đánh giá khả năng
ứng dụng của thuật toán, ta cần phải phân tích tính hiệu quả của thuật toán
Trang 9Phân tích thuật toán là quá trình tìm ra những đánh giá về thời gian tính cũng như dung lượng bộ nhớ cần thiết để thực hiện thuật toán Tuy nhiên, việc cân đối giữa yêu cầu về thời gian và không gian không mấy khi
có giải pháp trọn vẹn
Độ phức tạp tính toán của một thuật toán là lượng thời gian và bộ nhớ cần thiết để thực hiện thuật toán Trong phần này ta chỉ quan tâm đến việc đánh giá thời gian cần thiết để thực hiện thuật toán, mà ta sẽ gọi là thời gian tính của thuật toán Rõ ràng, thời gian tính toán của một thuật toán là hàm của dữ liệu đầu vào Thông thường ta khó có thể xây dựng công thức cho hàm này Vì thế ta đặt vấn đề đơn giản hơn: thay vì làm việc với dữ liệu đầu vào, ta sẽ làm việc với một đặc trưng quan trọng của dữ
liệu đầu vào đó là kích thước của nó Chúng ta sẽ quan tâm đến:
Trang 10Tiểu kết chương 1
Trong chương này trình bày, tìm hiểu về các ngôn ngữ lập trình, mô
tả chi tiết về các khái niệm, định nghĩa, áp dụng các ngôn ngữ, thuật toán Thông qua việc tìm hiểu chi tiết các khái niệm, định nghĩa để từ đó đã xây dựng nên các chương trình thực nghiệm
Tìm hiểu cách cài đặt chương trình giả lập Android Studio để có công cụ để thực hiện viết chương trình thực nghiệm, và hoàn thiện sản phẩm
Tìm hiểu về thuật toán sắp xếp phân đoạn, sắp xếp nhanh để trong quá trình viết code tôi có thể sử dụng để áp dụng, xử lý việc sắp xếp cơ sở
dữ liệu, sắp xếp lịch sử cuộc gọi
Trang 11CHƯƠNG 2: CƠ SỞ DỮ LIỆU, DÙNG FIREBASE DEVOLOP
TRONG QUẢN LÝ CƠ SỞ DỮ LIỆU HỌC SINH
2.1 Cơ sở dữ liệu
Nếu dữ liệu được lưu trong máy theo một quy định nào đó (để có thể cập nhật: truy nhập, truy xuất) sẽ được gọi là Cơ Sở Dữ Liệu - Database (sẽ viết tắt là CSDL)
Các mô hình Cơ Sở Dữ Liệu:
* Mô hình đẳng cấp: mô hình đẳng cấp được thiế kế theo dạng hình cây (Tree) nên đôi khi còn gọi là mô hình cây
* Mô hình mạng: một Cơ Sở Dữ Liệu mạng là một tập hợp các mắt
xích (nodes) và các mối nối (links), như thế một mắt xích bất kỳ có thể được nối với một mắt xích khác, và có thể nối nhiều lần.Tuy nhiên các tác vụ như nhập dữ liệu và xuất dữ liệu trong trường hợp
này sẽ rất phức tạp iii- Mô hình quan hệ
2.2 Áp dụng Firebase Devolop trong quản lý cơ sở dữ liệu học sinh
2.2.1 Firebase Devolop
Firebase Devolop xây dựng ứng dụng tốt hơn và hoạt động tốt hơn
Quan trọng trong tiết kiệm thời gian phát triển chất lượng cao, ứng dụng
có ít lỗi cụ thể:
2.2.2 Áp dụng Firebase Devolop để nhập cơ sở dữ liệu học sinh
* Sơ đồ quy trình các bước nhập cơ sở dữ liệu học sinh để lưu trữ lâu dài ở bộ nhớ ngoài và điện toán đám mây
Trong sơ đồ hình 2.1, đầu tiên thực hiện chức năng nhập, chỉnh sửa thông tin bằng cách nhập trực tiếp từ người dân hoặc kết nối trực tiếp với
cơ sở dữ liệu học sinh (có thể dùng để đăng ký dữ liệu), bao gồm việc nhập các thông tin như: Họ và tên, địa chỉ, số chứng thư, ngày sinh ở đây thì không cần nhập số điện thoại, sau đó thực hiện việc chuyển dữ liệu về
cơ sở dữ liệu, từ cơ sở dữ liệu này máy chủ sẽ lọc, sắp xếp, tìm kiếm khóa chính (lúc này khóa chính sẽ là số điện thoại), nếu máy chủ thấy phù hợp thì thực hiện việc cho đăng ký dữ liệu thông qua các user
Trang 12Hình 2.1: Sơ đồ các bước đăng ký, nhập cơ sở dữ liệu học sinh
* Khởi động Firebase: để nhập cơ sở dữ liệu thì phải khởi động chương trình quản lý dữ liệu Firebase
là số điện thoại
Lưu trữ trên Cloud