Tải bản đầy đủ (.doc) (53 trang)

Xây dựng website bán điện thoại di động

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 (1.3 MB, 53 trang )

LỜI CẢM ƠN
Để hoàn thành báo cáo thực tập chuyên ngành, trước tiên nhóm chúng em
xin gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy Trần Vũ Hà, bộ môn
Khoa học máy tính, khoa Công nghệ thông tin, Học viện nông nghiệp Việt Nam,
người đã tận tình hướng dẫn giúp đỡ nhóm chúng em trong suốt quá trình làm
thực tập chuyên ngành.
Nhóm em xin gửi lời cảm ơn sâu sắc tới anh Lê Văn Tân và chị Vũ Thị
Duyên đến từ công ty TNHH phần mềm Acazia Software, hai người đã trực tiếp
hướng dẫn chúng em trong suốt quá trình thực tập tại công ty. Đồng thời chúng
em xin được gửi lời cảm ơn chân thành nhất với các anh chị trong công ty đã tạo
điều kiện cho chúng em có cơ hội được tiếp xúc với môi trường làm việc chuyên
nghiệp để chúng em có cơ hội được phát triển.
Nhóm em xin gửi lời cảm ơn chân thành nhất tới các thầy cô giáo của khoa
Công nghệ thông tin, Học viện Nông Nghiệp Việt Nam, những người đã giảng
dạy hai chúng em trong suốt những năm học qua. Đồng thời, chúng em xin gửi
lời cảm ơn tới các thầy, cô giáo trong Bộ môn Khoa học máy tính đã nhiệt tình
giúp đỡ chúng em trong quá trình thực tập và hoàn thiện báo cáo này.
Trong quá trình thực tập, cũng như trong quá trình làm báo cáo thực tập,
khó tránh khỏi những sai sót, rất mong các thầy (cô) bỏ qua. Do điều kiện về thời
gian và trình độ lý luận cũng như thực tế còn hạn chế nên báo cáo này không thể
tránh khỏi những thiếu sót, nhóm em rất mong nhận được những ý kiến đóng góp
của thầy (cô) để có thể học hỏi thêm kinh nghiệm và sẽ hoàn thành tốt hơn trong
bài báo cáo khóa luận sắp tới.

i


MỤC LỤC
LỜI CẢM ƠN.................................................................................................................................................................i
MỤC LỤC......................................................................................................................................................................ii
DANH MỤC HÌNH.......................................................................................................................................................v


DANH MỤC BẢNG....................................................................................................................................................vii
CHƯƠNG 1....................................................................................................................................................................1
ĐẶT VẤN ĐỀ.................................................................................................................................................................1
1.1.Tính cấp thiết của đề tài................................................................................................................................1
1.2.Mục đích, yêu cầu..........................................................................................................................................1
1.2.1. Mục đích......................................................................................................................................... 1
1.2.2. Yêu cầu........................................................................................................................................... 2
1.3.Nội dung và phương pháp nghiên cứu..........................................................................................................3
1.3.1.Nội dung nghiên cứu........................................................................................................................ 3
1.3.2. Phương pháp nghiên cứu................................................................................................................. 3
1.4. Địa điểm và thời gian thực tập.....................................................................................................................3
1.5. Tình hình nghiên cứu trong và ngoài nước..................................................................................................3
1.5.1. Tình hình nghiên cứu trong nước..................................................................................................... 3
1.5.2. Tình hình nghiên cứu ngoài nước.................................................................................................... 4
CHƯƠNG 2....................................................................................................................................................................5
SƠ LƯỢC VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU VÀ NGÔN NGỮ LẬP TRÌNH.............................................5
2.1. Tổng quang về thương mại điện tử...............................................................................................................5
2.2. Tìm hiểu về FrameWork React JS................................................................................................................6
2.2.1. Giới thiệu về React JS..................................................................................................................... 6
2.2.2. Đặc tính của React JS...................................................................................................................... 6
2.2.3. Thế mạnh của React JS.................................................................................................................... 6
2.3. Tìm hiểu về PostgreSQL (cơ sở dữ liệu mã nguồn mở)................................................................................7
2.3.1. PostgreSQL là gì?............................................................................................................................ 7
2.3.2. Vì sao nên sử dụng PostgreSQL...................................................................................................... 7
2.3.3. Hệ thống tính năng của PostgreSQL................................................................................................ 8
2.3.4. Các yếu tố giúp PostgreSQL nổi bật.............................................................................................. 10
2.4. Tổng quan về ngôn ngữ lập trình JAVA.....................................................................................................10
2.4.1. Các đặc điểm chính của ngôn ngữ JAVA........................................................................................ 11
2.4.2. Tìm hiểu về Spring Boot................................................................................................................ 12
2.4.2.1. Tính năng nổi bật của Spring Boot........................................................................................ 13

2.4.2.2. Tổng kết Spring Boot............................................................................................................ 13
CHƯƠNG 3..................................................................................................................................................................14
KHẢO SÁT HỆ THỐNG...........................................................................................................................................14
3.1. Phát biểu bài toán......................................................................................................................................14
3.2. Mục tiêu hệ thống.......................................................................................................................................14

ii


3.3. Phạm vi hệ thống........................................................................................................................................14
3.3.1. Người sử dụng hệ thống................................................................................................................ 15
CHƯƠNG 4..................................................................................................................................................................16
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.............................................................................................................16
4.1. Phân tích hệ thống về mặt chức năng........................................................................................................16
4.1.1. Mô tả các chức năng...................................................................................................................... 16
CHƯƠNG 5..................................................................................................................................................................19
TÓM LƯỢC CHỨC NĂNG......................................................................................................................................19
5.1. Đặc tả yêu cầu chức năng..........................................................................................................................19
5.1.1. Đăng nhập..................................................................................................................................... 19
Mô tả nghiệp vụ.................................................................................................................................................19
5.1.2. Tìm kiếm sản phẩm....................................................................................................................... 20
Mô tả nghiệp vụ.................................................................................................................................................20
5.1.3. Thêm mới sản phẩm, danh mục..................................................................................................... 21
5.1.4. Sửa thông tin................................................................................................................................. 22
5.1.5. Xóa sản phẩm................................................................................................................................ 23
5.1.6. Đặt hàng........................................................................................................................................ 24
5.1.7. Xử lí đơn hàng.............................................................................................................................. 25
5.1.8. Phản hồi........................................................................................................................................ 26
CHƯƠNG 6..................................................................................................................................................................27
THIẾT KẾ....................................................................................................................................................................27

6.1. Biểu đồ........................................................................................................................................................27
6.1.1. Biểu đồ phân cấp chức năng.......................................................................................................... 27
6.1.2. Biểu đồ Use case...................................................................................................................... 28
6.1.3. Biểu đồ tuần tự.............................................................................................................................. 29
6.1.5. Sơ đồ thực thể liên kết................................................................................................................... 34
6.2. Thiết kế dữ liệu................................................................................................................................ 35
CHƯƠNG 7..................................................................................................................................................................39
XÂY DỰNG HỆ THỐNG WEBSITE......................................................................................................................39
7.1. Giao diện trang chủ....................................................................................................................................39
7.2. Giao diện trang tìm kiếm nhanh sản phẩm................................................................................................40
7.3. Giao diện chi tiết sản phẩm........................................................................................................................40
7.4. Giao diện giỏ hàng.....................................................................................................................................41
7.5. Giao diện đặt hàng.....................................................................................................................................41
7.6. Giao diện đăng nhập..................................................................................................................................42
7.7. Giao diện trang quản lí sản phẩm..............................................................................................................43
7.8. Giao diện quản lí khách hàng....................................................................................................................44
7.9. Giao diện trang đơn hàng..........................................................................................................................44
CHƯƠNG 8..................................................................................................................................................................45
KẾT LUẬN VÀ ĐỀ XUẤT........................................................................................................................................45

iii


8.1. Kết luận......................................................................................................................................................45
8.2. Đề xuất.......................................................................................................................................................45
TÀI LIỆU THAM KHẢO..........................................................................................................................................46

iv



DANH MỤC HÌNH
Hình 1: Sơ đồ phân cấp chức năng...................Error: Reference source not found
Hình 2: Biểu đồ usecase tổng quát...................Error: Reference source not found
Hình 3: Biểu đồ use case của người quản trị....Error: Reference source not found
Hình 4: Biểu đồ use case của khách hàng.........Error: Reference source not found
Hình 5: Biểu đồ tuần tự chức năng Đăng nhập.Error: Reference source not found
Hình 6: Biểu đồ tuần tự chức năng tìm kiếm của khách hàng.....Error: Reference
source not found
Hình 7: Biểu đồ tuần tự chức năng tìm kiếm của người quản trị Error: Reference
source not found
Hình 8: Biểu đồ tuần tự chức năng Đặt hàng. . .Error: Reference source not found
Hình 9: Biểu đồ tuần tự chức năng Sửa............Error: Reference source not found
Hình 10: Biểu đồ tuần tự chức năng Thêm.......Error: Reference source not found
Hình 11: Biểu đồ tuần tự chức năng Xóa.........Error: Reference source not found
Hình 12: Biểu đồ tuần tự chức năng Báo cáo thống kê....Error: Reference source
not found
Hình 13: Biểu đồ tuần tự chức năng Xử lý đơn hàng Error: Reference source not
found
Hình 14: Sơ đồ thực thể liên kết.......................Error: Reference source not found
Hình 7.1. Giao diện trang chủ...........................Error: Reference source not found
Hình 7.2. Giao diện trang tìm kiếm nhanh sản phẩm Error: Reference source not
found
Hình 7.3. Giao diện chi tiết sản phẩm..............Error: Reference source not found
Hình 7.4. Giao diện giỏ hàng............................Error: Reference source not found
Hình 7.5. Giao diện đặt hàng............................Error: Reference source not found
Hình 7.6.1 Giao diện trang đăng nhập..............Error: Reference source not found
Hình 7.6.2 Giao diện trang quản trị viên.........Error: Reference source not found
Hình 7.7. Giao diện trang quản lí sản phẩm.....Error: Reference source not found
v



Hình 7.8. Giao diện quản lí khách hàng...........Error: Reference source not found
Hình 7.9. Giao diện quản lí đơn hàng...............Error: Reference source not found

vi


DANH MỤC BẢNG
Bảng 1: Bảng User............................................Error: Reference source not found
Bảng 2: Bảng Role............................................Error: Reference source not found
Bảng 3: Bảng NhomKhacHang........................Error: Reference source not found
Bảng 4: NhaCC.................................................Error: Reference source not found
Bảng 5: SanPham..............................................Error: Reference source not found
Bảng 6: SanPham..............................................Error: Reference source not found
Bảng 7: DonDatHang.......................................Error: Reference source not found
Bảng 8: ChiTietDDH........................................Error: Reference source not found

vii


CHƯƠNG 1
ĐẶT VẤN ĐỀ
1.1.

Tính cấp thiết của đề tài
Trong cuộc sống xã hội hiện nay, Internet và marketing online là một phần

không thể thiếu, là động lực cho sự phát triển của toàn xã hội. Ở Việt Nam nói
riêng và toàn thế giới nói chung tỷ lệ người sử dụng Internet ngày càng cao. Tính
đến năm 2019, có đến gần 3 tỷ người trên thế giới sử dụng Internet (chiếm

46,64%), trong đó khu vực châu Á là khu vực có số người dùng lớn nhất (xấp xỉ
1,5 tỷ người chiếm gần 50% toàn thế giới). Việt Nam là một quốc gia có tỷ lệ
người sử dụng Internet cao, theo thống kê ngày 1/1/2019 Việt Nam có khoảng 50
triệu người sử dụng internet chiếm 53% tổng dân số, tăng 6% so với năm 2018
và các con số này đang có dấu hiệu tăng lên trích báo Dân Trí. Thế nên, việc nhu
cầu về thiết kế trang web tăng trưởng mạnh, đặc biệt đối với các doanh nghiệp
vừa và nhỏ, khi họ ý thức được việc phải có một trang web bắt mắt, giao diện
thân thiện, thu hút người dùng Internet.
Nắm bắt được sự phát triển đó, với sự đa dạng mẫu mã mặt hàng điện
thoại di động, nhu cầu của con người đối với những chiếc smartphone thông
minh, nhất là giới trẻ. Nhóm chúng em đã quyết định chọn đề tài: “Xây dựng
website bán điện thoại di động” bằng ngôn ngữ lập trình JAVA để đáp ứng nhu
cầu về tìm kiếm, so sánh; cập nhập nhanh nhất, chính xác nhất thông tin những
chiếc smartphone mà người dùng quan tâm.
1.2.

Mục đích, yêu cầu

1.2.1. Mục đích
-

Nhằm đáp ứng được nhu cầu mở rộng thị trường, giới thiệu sản phẩm

điện thoại di động. Quảng bá thương hiệu của các dòng máy điện thoại di động,
thông tin cập nhập và đáp ứng nhu cầu tìm kiếm các mặt hàng mới theo xu

1


hướng của khách hàng. Bên cạnh đó còn tiết kiệm thời gian chi phí đi lại cho

khách hàng.
-

Quản trị website dễ dàng quản lí thông tin các loại sản phẩm, dịch vụ,

chương trình khuyến mãi dành cho khách hàng, các đơn hàng mà khách hàng
đặt, để có thể tư vấn và trả lời khách hàng một cách chính xác, cụ thể và nhanh
nhất.
1.2.2. Yêu cầu
- Khảo sát sơ bộ hệ thống nhằm thu thập thông tin cho quá trình phân tích.
- Khảo sát chi tiết hệ thống với mục đích tìm hiểu các yêu cầu của người
sử dụng, xác định thông tin đánh giá lựa chọn cho các giải pháp.
- Xác định yêu cầu của hệ thống:
+ Phân tích bài toán.
+ Thiết kế cơ sở dữ liệu.
+ Phân tích thiết kế hệ thống.
+ Xây dựng chương trình trên ngôn ngữ lập trình JAVA, quản trị cơ sở
dữ liệu bằng hệ quản trị cơ sở dữ liệu PostgreSQL.
- Chức năng cơ bản cho hệ thống website:
+ Xây dựng hệ thống đăng kí, đăng nhập cho khách hàng có nhu cầu
mua hàng.
+ Xây dựng module giỏ hàng cho khách hàng mua hàng.
+ Xây dựng module tìm kiếm sản phẩm, quản lí thông tin cá nhân của
thành viên và quản lí mặt hàng được phân quyền admin.
+ Hỗ trợ tư vấn trực tuyến.
- Giao diện dễ nhìn, thân thiện, dễ sử dụng, có đầy đủ các chức năng
chính trên giao diện.

2



1.3.

Nội dung và phương pháp nghiên cứu

1.3.1. Nội dung nghiên cứu
- Tham khảo các website bán điện thoại di động như: thegioididong, fpt
shop, didongthongminh… để đúc kết kinh nghiệm cũng như hiểu được các chức
năng chính của một web nên bán điện thoại di động cần có.
- Khảo sát hướng tới nhu cầu người dùng.
- Phân tích thiết kế hệ thống.
- Thiết kế CSDL.
- Ngôn ngữ lập trình JAVA và hệ quản trị cơ sở dữ liệu PostgreSQL.
- Xây dựng chương trình.
- Kiểm thử chương trình.
1.3.2. Phương pháp nghiên cứu
- Tham khảo, nghiên cứu các giáo trình, tài liệu liên quan đến nội dung đề
tài.
- Nghiên cứu về thương mại điện tử, nhu cầu của người dùng với thương
mại điện tử.
- Tham khảo tài liệu chuyên ngành, các bài giản, bài học trên mạng…
- Phân tích thiết kế hệ thống, xây dựng cơ sở dữ liệu.
- Viết chương trình.
- Chạy chương trình, thử nghiệm tính năng, xin ý kiến đề xuất của thầy cô
và bạn bè.
1.4. Địa điểm và thời gian thực tập
Địa điểm: Công ty TNHH phần mềm Acazia Software số 57, ngõ 66, phố Ngọc
Lâm, phường Ngọc Lâm, Quận Long Biên, thành phố Hà Nội
1.5. Tình hình nghiên cứu trong và ngoài nước
1.5.1. Tình hình nghiên cứu trong nước

Theo Công ty nghiên cứu thị trường Nielsen Việt Nam. Tỉ lệ sở hữu thiết bị
di động thông minh cả ở thành thị và nông thôn đã tăng lên rõ rệt ở Việt Nam
3


trong suốt 5 năm qua. Điều đó đủ để thấy các thiết bị thông minh đang cung cấp
cho người dùng nhiều sự lựu chọn với giá cả hợp lý. Vì vậy các website bán điện
thoại di động ngày càng được phổ biến với đa dạng các tính năng và các chương
trình khuyến mãi kể cả những cửa hàng lớn, nhỏ.
1.5.2. Tình hình nghiên cứu ngoài nước
Không chỉ trong nước mà ngay cả nước ngoài các website bán điện thoại
ngày một đa dạng và phát triển với ngày một nhiều tính năng đáp ứng nhu cầu
của người dùng. Khi tìm hiểu về các website thịnh hành ngoài nước trên google,
một trong những top website hiểm thị đầu đó chính là các web nói về mặt hàng
điện tử: tivi, laptop, tủ lạnh, và đặc biệt là điện thoại đi động.

4


CHƯƠNG 2
SƠ LƯỢC VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU VÀ NGÔN NGỮ
LẬP TRÌNH
2.1. Tổng quang về thương mại điện tử
Cùng với sự bùng nổ về Internet thì thuật ngữ thương mại điện tử đã ra
đời. Có rất nhiều định nghĩa về thương mại điện tử như là:
Theo Tổ chức Thương mại thế giới (WHO): “Thương mại điện tử bao
gồm việc sản xuất, quảng cáo, bán hàng và phân phối sản phẩm được mua bán
và thanh toán trên mạng Internet , nhưng được giao nhận một cách hữu hình, cả
các sản phẩm giao nhận cũng như những thông tin số hóa thông qua mạng
Internet”.

Theo Ủy ban Thương mại điện tử của Tổ chức hợp tác kinh tế châu ÁThái Bình Dương (APEC): “Thương mại điện tử là công việc kinh doanh được
tiến hành thông qua truyền thông số liệu và công nghệ tin học kĩ thuật số”.
Nhưng hiểu một cách tổng quát, TMĐT là việc tiến hành một phần hay
toàn bộ hoạt động thương mại bằng những phương tiện điện tử. TMĐT vẫn
mang bản chất như các hoạt động thương mại truyền thông. Tuy nhiên, thông
qua các phương tiện điện tử mới, các hoạt động thương mại được thực hiện
nhanh hơn, hiệu quả hơn, giúp tiết kiệm chi phí và mở rộng không gian kinh
doanh.
TMĐT càng được biết tới như một phương thức kinh doanh hiệu quả từ
khi Internet hình thành và phát triển. Chính vì vậy, nhiều người hiểu TMĐT theo
nghĩa cụ thể hơn là giao dịch thương mại, mua sắm qua Internet.

5


2.2. Tìm hiểu về FrameWork React JS
2.2.1. Giới thiệu về React JS
React JS là thư viện Javascript được xây dựng bởi các kĩ sư Facebook, đang
được rất nhiều công ty nổi tiếng sử dụng để phát triển các sản phẩm của họ như
Yahoo, Airbnb và tất nhiên là trong nội tại Facebook, Instagram. Nó phù hợp với
các dự án lớn có tính năng mở rộng hơn là các dự án nhỏ.
2.2.2. Đặc tính của React JS
Tư tưởng của React JS là xây dựng lên các components có tính tái sử dụng,
dễ dàng cho việc chia nhỏ vấn đề, testing. Nó giúp chúng ta dễ dàng quản lí, mở
rộng hệ thống, điều này nếu là Agular JS thì đòi hỏi cấu trúc. Cách viết code phải
thật tối ưu.
React JS luôn giữ các components ở trạng thái stateless (nhiều nhất có thể)
giúp ta dễ dàng quản lí bởi nó chẳng khác gì một trang static HTML. Bản thân
các components này không có trang thái (state) nó nhận đầu vào từ bên ngoài và
chỉ hiển thị đầu ra dựa vào các đầu vào đó, điều này lý giải tại sao nó lại mang

tính tái sử dụng (reuse) và dễ dàng cho việc test.
2.2.3. Thế mạnh của React JS
React JS là một framework hiển thị view chú ý đến hiệu năng
(performance-minded) . Rất nhiều đối thủ nặng kí về framework MVVM
(Model-View-ViewModel) mất một thời gian lớn để hiển thị những data lớn, như
trong trường hợp những danh sách (list) và tương tự. Nhưng React JS đó không
là vấn đề, vì nó chỉ hiển thị những gì thay đổi.
Một trong những điểm mạnh nữa của React JS là vitual DOM – thứ nằm ẩn
bên trong mỗi view và là lí do giúp cho React JS đạt hiệu năng tốt. Khi một view
yêu cầu gọi, tất cả mọi thứ sẽ được đưa vào trong một bản sao ảo của DOM. Sau
khi việc gọi hoàn thành, React JS tiến hành một phép so sánh giữa DOM ảo và
DOM thật, thực hiện những thay đổi được chỉ ra trong phép so sánh trên.

6


Ví dụ: nếu chúng ta đang xem một danh sách có 20 products được hiển thị
bởi React JS, và chúng ta thay đổi product thứ 2, thì chỉ product đó được hiển thị
lại, còn 19 product còn lại giữ nguyên (không cần hiển thị lại hay reload lại
trang). React đã dùng cái gọi là “DOM ẢO” (“virtual DOM”) để tăng hiệu năng
bằng cách xuất ra một hiển thị ảo, sau đó kiểm tra sự khác biệt giữa hiển thị ảo
và những gì có trên DOM và tạo một bảng vá (a patch).
2.3. Tìm hiểu về PostgreSQL (cơ sở dữ liệu mã nguồn mở)
2.3.1. PostgreSQL là gì?
PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ-đối tượng
(object-relational database management system) có mục đích chung, hệ thống cơ
sở dữ liệu mã nguồn mở tiên tiến nhất hiện nay.
PostgreSQL được phát triển dựa trên POSTGRES 4.2 tại phòng khoa học
máy tính Berkeley, Đại học California.
PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX. Tuy

nhiên, PostgreSQL sau đó cũng được điều chỉnh linh động để có thể chạy được
trên nhiều nền tảng khác nhau như Mac OS X, Solaris và Windows.
PostgreSQL là một phần mềm mã nguồn mở miễn phí. Mã nguồn của phần
mềm khả dụng theo license của PostgreSQL, một license nguồn mở tự do. Theo
đó, bạn sẽ được tự do sử dụng, sửa đổi và phân phối PostgreSQL dưới mọi hình
thức.
PostgreSQL không yêu cầu quá nhiều công tác bảo trì bởi có tính ổn định
cao. Do đó, nếu bạn phát triển các ứng dụng dựa trên PostgreSQL, chi phí sở hữu
sẽ thấp hơn so với các hệ thống quản trị dữ liệu khác.
2.3.2. Vì sao nên sử dụng PostgreSQL
PostgreSQL sở hữu một hệ tính năng đa dạng giúp hỗ trợ các nhà phát triển
xây dựng app, các nhà quản trị bảo vệ toàn vẹn dữ liệu, và tạo ra một môi trường
chịu lỗi giúp người dùng quản lý dữ liệu bất kể tập dữ liệu lớn hay nhỏ. Bên cạnh
hệ thống nguồn mở và miễn phí, PostgreSQL cũng có khả năng mở rộng tuyệt
7


vời. Ví dụ, người dùng có thể định nghĩa các kiểu dữ liệu riêng của họ, xây dựng
các hàm tùy chỉnh, hay viết mã từ các ngôn ngữ lập trình khác nhau mà không
cần biên dịch lại cơ sở dữ liệu!
PostgreSQL tuân theo tiêu chuẩn SQL nhưng không mâu thuẫn với các tính
năng truyền thống hay có thể dẫn đến các quyết định kiến trúc gây hại. Nhiều
tính năng theo tiêu chuẩn SQL được hỗ trợ, tuy nhiên đôi khi có thể có cú pháp
hoặc hàm hơi khác một chút.
2.3.3. Hệ thống tính năng của PostgreSQL
- Kiểu dữ liệu: kiểu chữ, kiểu số, kiểu thời gian
- Nguyên hàm: Số nguyên, số, chuỗi, Boolean
- Cấu trúc: Date/Time, Array, Phạm vi, UUID
- Document: JSON/JSONB, XML, Key-value (Hstore)
- Hình học: Điểm, Đường thẳng, Vòng tròn, Đa giác

- Tùy chỉnh: Composite, Các kiểu tùy chỉnh
- Toàn vẹn dữ liệu: ràng buộc khóa chính, ràng buộc duy nhất, ràng buộc
khóa ngoại, ràng buộc kiểm tra.
- Khóa hàm số/ Explicit Locks, Khóa khuyến nghị/ Advisory Locks
- Đồng quy, hiệu suất
- Lập danh mục: B-tree, Multicolumn, Expressions, Partial
- Lập danh mục nâng cao: GiST, SP-Gist, KNN Gist, GIN, BRIN, Bloom
filters
- Trình lập kế hoạch / trình tối ưu hóa truy vấn phức tạp, quét index-only,
thống kê số liệu trên nhiều cột.
- Giao tác, Giao tác dạng nest (thông qua lưu điểm)
- Điều khiển đồng thời nhiều phiên bản (MVCC)
- Truy vấn đọc song song
- Phân vùng bảng

8


- Tất cả các mức độ giao dịch độc lập được xác định trong tiêu chuẩn SQL,
bao gồm cả Serializable
- Độ tin cậy, phục hồi sau thảm hoạ
- Ghi nhật ký ghi trước (Write-ahead Logging - WAL)
- Replication: Không đồng bộ, Đồng bộ, Logical
- Khôi phục điểm-theo-thời gian (Point-in-time-recovery - PITR), active
standbys
- Không gian bảng
- Bảo mật
- Xác thực: GSSAPI, SSPI, LDAP, SCRAM-SHA-256, Certificate và các
hình thức khác
- Hệ thống kiểm soát truy cập mạnh mẽ

- Bảo mật cấp độ cột và hàng
- Khả năng mở rộng:
- Phương pháp lưu trữ
- Ngôn ngữ thủ tục: PL / PGSQL, Perl, Python (và nhiều ngôn ngữ khác)
- Trình wrapper dữ liệu ngoài: kết nối với các cơ sở dữ liệu hoặc luồng khác
với giao diện SQL chuẩn
- Và nhiều tiện ích mở rộng cung cấp chức năng bổ sung, bao gồm cả
PostGIS
- Tìm kiếm văn bản:
- Hỗ trợ các bộ ký tự quốc tế, ví dụ: thông qua ICU collations
- Tìm kiếm văn bản đầy đủ
Ngoài ra, còn có nhiều tính năng khác mà bạn có thể tìm hiểu trong tài liệu
về PostgreSQL. PostgreSQL được chứng minh là có khả năng mở rộng cao cả về
số lượng dữ liệu có thể quản lý lẫn số lượng người dùng có thể thao tác cùng lúc.
Hiện có các PostgreSQL cluster đang hoạt động trong môi trường sản xuất quản
lý nhiều terabyte dữ liệu và các hệ thống chuyên biệt quản lý petabyte.
9


2.3.4. Các yếu tố giúp PostgreSQL nổi bật
PostgreSQL là hệ thống quản lý cơ sở dữ liệu đầu tiên triển khai tính năng
kiểm soát đồng thời nhiều phiên bản (MVCC) trước cả Oracle. Tính năng
MVCC cũng tương tự với các snapshot riêng biệt trong Oracle.
Là hệ thống quản lý cơ sở dữ liệu quan hệ đối tượng, PostgreSQL cho phép
thêm vào các tính năng tùy chỉnh được phát triển bằng các ngôn ngữ chương
trình khác nhau như C/C , Java,...
Bên cạnh đó, khi bạn có bất kỳ vấn đề gì cần hỗ trợ, luôn có một cộng đồng
nhiệt tình sẵn sàng để trợ giúp. Bạn luôn có thể tìm thấy câu trả lời từ cộng đồng
của PostgreSQL về các vấn đề có thể gặp phải khi làm việc với PostgreSQL.
Ngoài ra, cũng có rất nhiều công ty cung cấp các dịch vụ hỗ trợ trong trường hợp

bạn thực sự cần đến.
Đối tượng sử dụng PostgreSQL
Trên thị trường, có nhiều công ty đã xây dựng và cung cấp các sản phẩm,
giải pháp sử dụng PostgreSQL. Một số công ty nổi bật trong số đó là Apple,
Fujitsu, Red Hat, Cisco, Juniper Network, v.v.
2.4. Tổng quan về ngôn ngữ lập trình JAVA
Java là một ngôn ngữ lập trình hướng đối tượng. Khác với phần lớn ngôn
ngữ lập trình thông thường, Java được thiết kế để biên dịch mã nguồn thành mã
bytecodes, bytecodes sau đó sẽ được môi trường thực thi (runtime environment)
chạy.
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun
Microsystems năm 1991 (sau này Oracle đã mua lại Sun Microsystems năm
2010). Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi; do bên ngoài
cơ quan của ông Gosling có trồng nhiều loại cây này), và được đổi tên thành
Java vào năm 1995.

10


2.4.1. Các đặc điểm chính của ngôn ngữ JAVA
Java là ngôn ngữ lập trình hướng đối tượng, độc lập với phần cứng và hệ
điều hành. Một chương trình viết bằng ngôn ngữ Java có thể chạy tốt ở nhiều
môi trường khác nhau. Gọi là khả năng "cross-platform”. Khả năng độc lập phần
cứng và hệ điều hành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị
phân.
Ở cấp độ mã nguồn: Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ
điều hành và phần cứng khác nhau. Java có riêng một bộ thư viện để hỗ trợ vấn
đề này. Chương trình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại
máy khác nhau mà không gặp lỗi.
Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác

nhau mà không cần dịch lại mã nguồn. Tuy nhiên cần có máy ảo Java Virtual
Machine để thông dịch đoạn mã này.
Cơ chế thu gom rác tự động
Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ
nhớ cho các đối tượng ở trên heap.
Với ngôn ngữ như C/C++, chúng ta sẽ phải yêu cầu hủy vùng nhớ đã cấp
phát, để tránh việc thất thoát vùng nhớ. Tuy nhiên vì một lý do nào đó, chúng ta
không hủy một vài vùng nhớ, dẫn đến việc thất thoát và làm giảm hiệu năng
chương trình.
Ngôn ngữ lập trình Java hỗ trợ cho chúng ta điều đó, nghĩa là chúng ta
không phải tự gọi hủy các vùng nhớ. Bộ dọn rác của Java sẽ theo vết các tài
nguyên đã được cấp. Khi không có tham chiếu nào đến vùng nhớ, bộ dọn rác sẽ
tiến hành thu hồi vùng nhớ đã được cấp phát.
Tính đa luồng
Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc
đồng thời. Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải
pháp sử dụng priority...).
11


Tính an toàn
+ Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu.
+ Dữ liệu phải được khai báo tường minh.
+ Không sử dụng con trỏ và các phép toán với con trỏ.
+ Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi. Không cho phép
sử dụng các kỹ thuật tràn. Do đó các truy nhập sẽ không vượt quá kích thước của
mảng hoặc chuỗi.
+ Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động.
+ Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn.
Tính bảo mật

Java cung cấp một môi trường quản lý chương trình với nhiều mức khác
nhau.
+ Mức 1: Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua
giao diện mà lớp cung cấp.
+ Mức 2: Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy
tắc của ngôn ngữ lập trình Java trước khi thông dịch.
+ Mức 3: Trình thông dịch sẽ kiểm tra mã bytecode xem các đoạn mã này
có đảm bảo được các quy định, quy tắc trước khi thực thi.
+ Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi
phạm giới hạn truy xuất trước khi nạp vào hệ thống.
2.4.2. Tìm hiểu về Spring Boot
Spring Boot là một dự án phát triển bởi JAV (ngôn ngữ java) trong hệ sinh
thái Spring framework. Nó giúp cho các lập trình viên chúng ta đơn giản hóa quá
trình lập trình một ứng dụng với Spring Boot, chỉ tập trung vào việc phát triển
business cho ứng dụng.
Để phát triển một ứng dụng web cơ bản HelloWorld sử dụng Spring
framework bạn sẽ cần ít nhất 5 công đoạn sau;

12


- Tạo một project sử dụng Maven với các dependency cần thiết của Spring
-

MVC và Servlet API.
Một tập tin web.xml để khai báo DispatcherServlet của Spring MVC.
Một tập tin cấu hình của Spring MVC.
Một class Controller trả về một trang “Hello World” khi có request đến.
Cuối cùng là phải có một web server dùng để triển khai ứng dụng lên
chạy.


2.4.2.1. Tính năng nổi bật của Spring Boot

- Tạo các ứng dụng Spring độc lập
- Nhúng trực tiếp Tomcat, Jetty hoặc Undertow (không cần phải deploy ra
file WAR)
- Các starter dependency giúp việc cấu hình Maven đơn giản hơn
- Tự động cấu hình Spring khi cần thiết
- Không sinh code cấu hình và không yêu cầu phải cấu hình bằng XML …
2.4.2.2. Tổng kết Spring Boot

Tổng kết lại khi sử dụng Spring Boot chúng ta không mất qúa nhiều công
đoạn và thời gian để tạo một web project để chạy. Mọi thứ đã được Spring
Boot tự động làm hết như sử dụng các framework, Java web sau khi build chạy
rất nhanh.

13


CHƯƠNG 3
KHẢO SÁT HỆ THỐNG
3.1. Phát biểu bài toán
“ Xây dựng website bán điện thoại di động” chỉ là một lĩnh vực nhỏ để phát
triển hệ thống cửa hàng. Thời đại kỹ thuật số, thời đại của mạng Internet nên
mua bán online không những trở nên phổ biến và là thiết yếu quan trọng.
Cửa hàng có thể đưa các sản phẩm lên Website của mình và quản lý Website
đó, khách hàng có thể đặt, mua hàng mà không cần đến cửa hàng, cửa hàng sẽ
gửi sản phẩm đến tận tay khách hàng. Website là nơi cửa hàng quảng bá và quản
lý tất cả các sản phẩm của mình.
3.2. Mục tiêu hệ thống

Cửa hàng có thể đưa các sản phẩm lên Website và quản lý Website đó,
khách hàng có thể đặt, mua hàng mà không cần đến cửa hàng, cửa hàng sẽ gửi
sản phẩm đến tận tay khách hàng. Như vậy, Website là nơi cửa hàng quảng bá và
quản lý tất cả các sản phẩm.
Như vậy, website được coi là một hệ thống quản lý bán hàng. Hệ thống này
được thiết kế nhằm:
- Hỗ trợ công việc bán hàng online của cửa hàng.
- Tạo 1 CSDL lưu trữ các thông tin về các sản phẩm, các hóa đơn, báo cáo
thống kê doanh thu của cửa hàng để người quản lý có thể đưa ra những
dự đoán nên nhập hàng loại hàng nào trong thời gian tới.
3.3. Phạm vi hệ thống
Tài liệu đặc tả các chức năng của hệ thống cần thiết cho việc bán hàng và
báo cáo nhanh cho người quản lý để người quản lý hệ thống đưa ra những
phương pháp, chiến lược kinh doanh trong thời gian tới.
Tài liệu đặc tả chức năng cần thiết của hệ thống . Hệ thống gồm 2 phân hệ:
- Phân hệ Frontend

14


- Phân hệ Backend
3.3.1. Người sử dụng hệ thống
Hệ thống cho phép 2 nhóm người dùng sử dụng là:
- Người quản lý cửa hàng (quản trị hệ thống- admin)
- Khách hàng
Người sử dụng

Mô tả

Người quản trị


+ Người quản trị có quyền đăng nhập hệ thống để quản lý

hệ thống

tất cả các tài khoản đăng nhập, truy nhập được vào tài
khoản người dùng hiện có
+ Tìm kiếm thông tin khách hàng, thông tin các loại sản
phẩm, thông tin trình trạng mặt hàng…
+ Có quyền cập nhật ( thêm, xóa, sửa) tài khoản, thông
tin khách hàng, mặt hàng …

Khách hàng

+ Chỉ có quyền tìm kiếm thông tin của họ, thông tin sản
phẩm, có quyền cập nhật thông tin cá nhân nhưng không
có quyền cập nhật thông tin sản phẩm và các thông tin
khác…

15


CHƯƠNG 4
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
4.1. Phân tích hệ thống về mặt chức năng
4.1.1. Mô tả các chức năng
Qua phần khảo sát hệ thống thì có thể thấy hệ thống website bán điện thoại
di động có hai đối tượng chính là công ty (đại diện là Admin-Quản trị hệ thống)
và khác hàng. Về phía khách hàng lại có hai đối tượng: Guest (Khách vãng lai)
và Member (Thành viên). Vì vậy hệ thống sẽ có hai phần:

1. Khách hàng: là những người có nhu cầu tìm kiếm thông tin hoặc mua
sản phẩm (điện thoại).
+ Guest: là những người dùng truy cập trang web ngẫu nhiên. Người dùng
có những chức năng sau:
 Đăng kí thành viên
Nếu khách hàng muốn trở thành thành viên của hệ thống thì phải đăng kí,
quá trình đăng kí gồm các bước:
-

Khách hàng cung cấp các thông tin đăng kí cần thiết như: họ tên, tên
đăng nhập, mật khẩu, email, số điện thoại… sau đó chọn đăng kí.

-

Hệ thống sẽ kiểm tra thông tin có hợp lệ không, tên đăng nhập đã tồn tại
hay chưa. Nếu thông tin không hợp lệ, khách hàng phải nhập lại, ngược
lại đưa ra thông báo đăng kí thành công.

 Xem thông tin
Khách hàng chọn thông tin để xem, hệ thống sẽ lấy thông tin từ cơ sở dữ
liệu, hiển thị lên trang web.
 Tìm kiếm thông tin sản phẩm
Khách hàng nhập thông tin cần tìm kiếm và chọn nút tìm kiếm. Hệ thống
sẽ tìm kiếm các thông tin tìm kiếm trong cơ sở dữ liệu, nếu không có thì

16


thông báo không có dữ liệu, ngược lại hiển thị các thông tin lên trang
web.

 Chọn hàng.
 So sánh sản phẩm.
 Mua hàng và đặt hàng.
Từ những thông tin chi tiết về sản phẩm khách hàng có thể so sánh các
sản phẩm với nhau.
+ Member: là các thành viên của hệ thống website, khác với Guest là
người dùng có một tài khoản và một mật khẩu để đăng nhập vào hệ
thống để có nhiều chức năng hơn. Ngoài các chức năng của Guest,
Member còn có các chức năng sau:
 Đăng nhập
Khách hàng cung cấp các thông tin đăng nhập như là: tên đăng nhập,
mật khẩu. Hệ thống sẽ kiểm tra trong cơ sở dữ liệu tính hợp lệ của hệ
thống. Nếu đúng thì thông báo đăng nhập thành công, ngược lại yêu cầu
đăng nhập lại.
 Đổi mập khẩu
Sau khi đăng nhập, khách hàng có thể thay đổi mật khẩu của mình.
 Gửi ý kiến phản hồi
Sau khi đăng nhập khác hàng có quyền gửi các phản hồi tới công ty
2. Quản trị website.
Admin: là người làm chủ ứng dụng, có quyền kiểm soát mọi hoạt động
của hệ thống. Người này được cấp một tài khoản (username) và mật
khẩu (password) để đăng nhập vào hệ thống thực hiện những chức năng
của mình.
Nếu như quá trình đăng nhập thành công thì nhà quản trị có những chức
năng sau:
17


 Đổi mật khẩu
Sau khi đăng nhập, quản trị hệ thống có thể thay đổi lại mật khẩu tài khoản

đăng nhập của mình.
 Quản lí hàng hóa
Quản trị hệ thống có thể thêm, xóa, sửa các thông tin liên quan đến sản
phẩm như:
-

Sản phẩm

-

Phân loại sản phẩm

- Cấu hình sản phẩm
-

Nhà cung cấp

 Quản lí khách hàng
Quản trị hệ thống có thể xem, xóa, sửa các thông tin khách hàng.
 Quản lí hóa đơn
Quản trị hệ thống có thể xem, sửa, xóa các thông tin hóa đơn
 Quản lí danh sách Admin
Quản trị hệ thống có thể xem, sửa, xóa các thông tin Admin
 Thống kê khách hàng
Quản trị hệ thống có thể thống kê khách hàng
 Thống kê hóa đơn
Quản trị hệ thống có thể thống kê hóa đơn khách hàng
Ngoài những chức năng nêu trên thì trang web phải được trình bày sao cho
dễ hiểu, giao diện mang tính dễ sử dụng, đẹp mắt, thân thiện với khách hàng; làm
sao cho khách hàng thấy được những thông tin quảng cáo thật hấp dẫn nhằm thu

hút sự quan tâm về trang web và có cơ hội được nhiều người tham khảo hơn.
Điều quan trọng trong web mua bán qua mạng là phải đảm bảo an toàn
tuyệt đối những thông tin liên quan tới người dùng trong quá trình đặt mua hay

18


×