MỞ ĐẦU
Âm nhạc là một trong những lĩnh vực giải trí rất quan trọng. Theo số liệu từ Hiệp
hội Công nghiệp Ghi âm Quốc tế (IFPI), doanh thu từ việc kinh doanh nhạc số hợp
pháp trong sáu tháng đầu năm 2006 là 945 triệu USD, tăng 106% so với cùng kỳ năm
trước.
Trong vài năm trở lại đây, sự phát triển của CNTT nói chung và mạng Internet
nói riêng, đã mang lại sức sống mới cho nhạc số. Ngày nay việc giải trí, nghe nhạc
trực tuyến trên mạng Internet đã không còn là điều xa lạ đối với mỗi chúng ta. Hơn
nữa, Internet đã mang lại những ưu thế đáng kể trong việc “phát hành”, “chia sẻ” . so
với các phương tiện thông tin khác. Hiện nay ở Việt Nam cũng như trên thế giới đã có
rất nhiều các website cho phép nghe nhạc, xem video trực tuyến. Trong khuôn khổ
luận văn này, chúng tôi đề cập đến một hệ thống nghe nhạc, xem video clip trực tuyến
được xây dựng trên nền Joomla.
Về phía người sử dụng thì hệ thống này không khác gì so với một hệ thống
website nghe nhạc thông thường. Nhưng với người phát triển, việc xây dựng hệ thống
trên nền Joomla thuận tiện hơn rất nhiều so với việc xây dựng lại từ đầu 1 hệ thống
nghe nhạc. Hệ thống cung cấp nhạc này sẽ bao gồm các chức năng cơ bản như quản lý
nội dung về bài hát, ca sỹ, nhạc sỹ, album .vv và tím kiếm cơ bản.
Ở phiên bản tiếp theo, chúng tôi dự định sẽ đưa thêm và hệ thống một chức năng
mới, đó là tìm kiếm bài hát theo một giai điệu hoặc tiết tấu có sẵn. Giai điệu này có thể
là một File dạng MIDI, hay một đoạn nhạc của bài hát, hoặc thậm chí là một đoạn
tiếng huýt sáo do người sử dụng trực tiếp ghi lại thông qua Micro.
Để phát triển tính năng này, chúng ta cần có một module xử lý các bài hát được
tải lên và trích ra đoạn nhạc mẫu của bài hát đó. Sau đó lưu đoạn nhạc mẫu vào ngay
cơ sở dữ liệu của bài hát đó. Một module để phân tích và so sánh các đoạn nhạc mẫu
với đoạn nhạc cần tìm kiếm. Cuối cùng là một module xử lý đoạn nhạc yêu cầu tìm
kiếm: đoạn nhạc này có thể là một File nhạc MIDI (từ các chương trình mô phỏng đàn
Piano [14] ) một đoạn âm thanh do người dùng tự thu âm, hay là cả một bài hát.
Chương 1. GIỚI THIỆU VỀ JOOMLA
1.1 Giới thiệu chung:
1.1.1 Hệ thống quản trị nội dung (CMS)
CMS viết tắt của từ Content Management System (tạm dịch là Hệ thống quản
trị nội dung), là một hệ thống phần mềm máy tính để thiết lập, tổ chức, tạo thuận tiện
cho việc xây dựng các tài liệu hay các nội dung khác. Thông thường, CMS là một ứng
dụng web sử dụng để quản lý các website và nội dung web.
MỤC LỤC
BẢNG CHÚ GIẢI THUẬT NGỮ 1
MỞ ĐẦU .2
Chương 1. GIỚI THIỆU VỀ JOOMLA 3
1.1 Giới thiệu chung: .3
1.1.1 Hệ thống quản trị nội dung (CMS) .3
1.1.2 Các ứng dụng chính của Joomla .3
1.2 Các thành phần chính của Joomla .6
1.2.1 Template .6
1.2.2 Components 8
1.2.3 Modules 8
1.2.4 Mambots .8
CHƯƠNG 2. GIỚI THIỆU PHP & MYSQL 9
2.1 PHP 9
2.1.1 Lịch sử phát triển của PHP .9
2.1.2 Cộng đồng sử dụng và phát triển PHP tại Việt Nam 12
2.1.3 Cấu trúc cơ bản của mã PHP 12
2.2 MySQL 14
2.2.1 Lịch sử phát triển 14
2.2.2 Một số từ khóa thông dụng trong SQL: 16
a. Lấy dữ liệu: 16
b. Sửa đổi dữ liệu : .16
c. Giao dịch dữ liệu: 17
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG 18
3.1 Mô tả bài toán 18
3.2 Mô hình nghiệp vụ .18
3.2.1 Bảng phân tích xác định chức năng, tác nhân và hồ sơ 18
3.2.2 Biểu đồ ngữ cảnh hệ thống .19
3.2.3 Biểu đồ phân rã chức năng .20
3.2.4 Mô hình các chức năng cụ thể 20
3.2.5 Lập ma trận thực thể chức năng .21
3.3 Phân tích – Mô hình khái niệm logic 22
3.3.1 Biểu đồ luồng dữ liệu mức 0 22
3.3.2 Biểu đồ luồng dữ liệu mức 1 23
3.3.3 Mô hình khái niệm dữ liệu: mô hình E-R 24
a. Xây dựng được các thực thể 24
b. Xác định mối quan hệ và thuộc tính 24
c. Vẽ biểu đồ rút gọn .25
3.4 Thiết kế mô hình logic .26
3.4.1. Chuyển mô hình ER sang mô hình quan hệ 26
a. Biểu diễn các thực thể: 26
b. Biểu diễn các mối quan hệ .26
c. Chuẩn hóa: .26
d. Biểu đồ quan hệ của mô hình dữ liệu 27
3.4.2. Thiết kế cơ sở dữ liệu vật lý 27
3.4.2. Thiết kế cơ sở dữ liệu vật lý 28
a. Bảng: BÀI HÁT .28
b. Bảng: ALBUM 29
c. Bảng: CA SỸ .29
d. Bảng: NHẠC SỸ .30
e. Bảng: BÀI HÁT_ALBUM .30
f. Bảng: BÀI HÁT_CA SỸ .30
CHƯƠNG 4: ỨNG DỤNG THỰC TIỄN .31
4.1. Mô tả môi trường xây dựng và thử nghiệm ứng dụng .31
4.1.1 Mô tả môi trường xây dựng ứng dụng: 31
4.1.2 Các ứng dụng xây dựng thử nghiệm: .31
4.2 Giao diện của website 32
4.3. Đánh giá về hệ thống 41
4.3.1 Ưu điểm 41
4.3.2 Nhược điểm 41
4.4 Hướng phát triển trong tương lai .41
TÀI LIỆU THAM KHẢO .43
49 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3674 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Khóa luận Xây dựng hệ thống cung cấp dịch vụ nghe nhạc/xem video trực tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
......................................................................3
1.1.1 Hệ thống quản trị nội dung (CMS).................................................................3
1.1.2 Các ứng dụng chính của Joomla.....................................................................3
1.2 Các thành phần chính của Joomla .........................................................................6
1.2.1 Template .........................................................................................................6
1.2.2 Components ....................................................................................................8
1.2.3 Modules ..........................................................................................................8
1.2.4 Mambots .........................................................................................................8
CHƯƠNG 2. GIỚI THIỆU PHP & MYSQL..................................................................9
2.1 PHP........................................................................................................................9
2.1.1 Lịch sử phát triển của PHP.............................................................................9
2.1.2 Cộng đồng sử dụng và phát triển PHP tại Việt Nam....................................12
2.1.3 Cấu trúc cơ bản của mã PHP........................................................................12
2.2 MySQL ................................................................................................................14
2.2.1 Lịch sử phát triển..........................................................................................14
2.2.2 Một số từ khóa thông dụng trong SQL:........................................................16
a. Lấy dữ liệu:....................................................................................................16
b. Sửa đổi dữ liệu :.............................................................................................16
c. Giao dịch dữ liệu: ..........................................................................................17
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG......................................................................18
3.1 Mô tả bài toán......................................................................................................18
3.2 Mô hình nghiệp vụ...............................................................................................18
3.2.1 Bảng phân tích xác định chức năng, tác nhân và hồ sơ................................18
3.2.2 Biểu đồ ngữ cảnh hệ thống...........................................................................19
3.2.3 Biểu đồ phân rã chức năng ...........................................................................20
3.2.4 Mô hình các chức năng cụ thể ......................................................................20
3.2.5 Lập ma trận thực thể chức năng ...................................................................21
3.3 Phân tích – Mô hình khái niệm logic ..................................................................22
3.3.1 Biểu đồ luồng dữ liệu mức 0 ........................................................................22
3.3.2 Biểu đồ luồng dữ liệu mức 1 ........................................................................23
3.3.3 Mô hình khái niệm dữ liệu: mô hình E-R ....................................................24
a. Xây dựng được các thực thể ..........................................................................24
b. Xác định mối quan hệ và thuộc tính..............................................................24
c. Vẽ biểu đồ rút gọn .........................................................................................25
3.4 Thiết kế mô hình logic.........................................................................................26
3.4.1. Chuyển mô hình ER sang mô hình quan hệ ................................................26
a. Biểu diễn các thực thể: ..................................................................................26
b. Biểu diễn các mối quan hệ.............................................................................26
c. Chuẩn hóa: .....................................................................................................26
d. Biểu đồ quan hệ của mô hình dữ liệu............................................................27
3.4.2. Thiết kế cơ sở dữ liệu vật lý ........................................................................27
3.4.2. Thiết kế cơ sở dữ liệu vật lý ........................................................................28
a. Bảng: BÀI HÁT.............................................................................................28
b. Bảng: ALBUM ..............................................................................................29
c. Bảng: CA SỸ .................................................................................................29
d. Bảng: NHẠC SỸ ...........................................................................................30
e. Bảng: BÀI HÁT_ALBUM ...........................................................................30
f. Bảng: BÀI HÁT_CA SỸ ...............................................................................30
CHƯƠNG 4: ỨNG DỤNG THỰC TIỄN.....................................................................31
4.1. Mô tả môi trường xây dựng và thử nghiệm ứng dụng .......................................31
4.1.1 Mô tả môi trường xây dựng ứng dụng: ........................................................31
4.1.2 Các ứng dụng xây dựng thử nghiệm: ...........................................................31
4.2 Giao diện của website..........................................................................................32
4.3. Đánh giá về hệ thống..........................................................................................41
4.3.1 Ưu điểm ........................................................................................................41
4.3.2 Nhược điểm ..................................................................................................41
4.4 Hướng phát triển trong tương lai.........................................................................41
TÀI LIỆU THAM KHẢO .............................................................................................43
BẢNG CHÚ GIẢI THUẬT NGỮ
Chữ viết tắt /
Ký hiệu
Tên tiếng anh Giải nghĩa
CSDL Cơ sở dữ liệu
Website Trang web
MySQL Hệ thống quản lý Cơ sở dữ liệu
quan hệ, sử dụng Ngôn ngữ
truy vấn có cấu trúc
File Tập tin (dữ liệu được lưu trữ
trên đĩa cứng)
HTML Ngôn ngữ đánh dấu siêu văn
bản
PHP Ngôn ngữ lập trình web PHP
Javascript Một dạng mã kịch bản
Framework Môi trường làm việc
CSS Cascading Style Sheets
CMS Content Management System
(Hệ quản trị nội dung)
Template Khuôn mẫu (thường dùng cho
một trang web)
Components Thành phần của Joomla
Modules Thành Phần của Joomla
Mambots Thành Phần của Joomla
Engine Một phương tiện, dụng cụ
Chương 4: Ứng dụng thực tiễn
MỞ ĐẦU
Âm nhạc là một trong những lĩnh vực giải trí rất quan trọng. Theo số liệu từ Hiệp
hội Công nghiệp Ghi âm Quốc tế (IFPI), doanh thu từ việc kinh doanh nhạc số hợp
pháp trong sáu tháng đầu năm 2006 là 945 triệu USD, tăng 106% so với cùng kỳ năm
trước.
Trong vài năm trở lại đây, sự phát triển của CNTT nói chung và mạng Internet
nói riêng, đã mang lại sức sống mới cho nhạc số. Ngày nay việc giải trí, nghe nhạc
trực tuyến trên mạng Internet đã không còn là điều xa lạ đối với mỗi chúng ta. Hơn
nữa, Internet đã mang lại những ưu thế đáng kể trong việc “phát hành”, “chia sẻ” ... so
với các phương tiện thông tin khác. Hiện nay ở Việt Nam cũng như trên thế giới đã có
rất nhiều các website cho phép nghe nhạc, xem video trực tuyến. Trong khuôn khổ
luận văn này, chúng tôi đề cập đến một hệ thống nghe nhạc, xem video clip trực tuyến
được xây dựng trên nền Joomla.
Về phía người sử dụng thì hệ thống này không khác gì so với một hệ thống
website nghe nhạc thông thường. Nhưng với người phát triển, việc xây dựng hệ thống
trên nền Joomla thuận tiện hơn rất nhiều so với việc xây dựng lại từ đầu 1 hệ thống
nghe nhạc. Hệ thống cung cấp nhạc này sẽ bao gồm các chức năng cơ bản như quản lý
nội dung về bài hát, ca sỹ, nhạc sỹ, album...vv và tím kiếm cơ bản.
Ở phiên bản tiếp theo, chúng tôi dự định sẽ đưa thêm và hệ thống một chức năng
mới, đó là tìm kiếm bài hát theo một giai điệu hoặc tiết tấu có sẵn. Giai điệu này có thể
là một File dạng MIDI, hay một đoạn nhạc của bài hát, hoặc thậm chí là một đoạn
tiếng huýt sáo do người sử dụng trực tiếp ghi lại thông qua Micro.
Để phát triển tính năng này, chúng ta cần có một module xử lý các bài hát được
tải lên và trích ra đoạn nhạc mẫu của bài hát đó. Sau đó lưu đoạn nhạc mẫu vào ngay
cơ sở dữ liệu của bài hát đó. Một module để phân tích và so sánh các đoạn nhạc mẫu
với đoạn nhạc cần tìm kiếm. Cuối cùng là một module xử lý đoạn nhạc yêu cầu tìm
kiếm: đoạn nhạc này có thể là một File nhạc MIDI (từ các chương trình mô phỏng đàn
Piano [14] ) một đoạn âm thanh do người dùng tự thu âm, hay là cả một bài hát.
Chương 1: Giới thiệu Joomla
Chương 1. GIỚI THIỆU VỀ JOOMLA
1.1 Giới thiệu chung:
1.1.1 Hệ thống quản trị nội dung (CMS)
CMS viết tắt của từ Content Management System (tạm dịch là Hệ thống quản
trị nội dung), là một hệ thống phần mềm máy tính để thiết lập, tổ chức, tạo thuận tiện
cho việc xây dựng các tài liệu hay các nội dung khác. Thông thường, CMS là một ứng
dụng web sử dụng để quản lý các website và nội dung web.
1.1.2 Các ứng dụng chính của Joomla
Joomla là một hệ thống quản trị nội dung CMS, trợ giúp rất tốt cho việc xây
dựng một websites và những ứng dụng trực tuyến khác. Ở thời điểm hiện nay, Joomla
là một trong những hệ thống quản trị nội dung CMS khá thành công. Với việc đạt
được cột mốc 100 ngàn thành viên đăng ký tại diễn đàn
Joomla trở thành CMS mã nguồn mở có số lượng thành viên rất đông đảo. Đồng thời
việc trao đổi, giúp đỡ lẫn nhau giữa các thành viên trong cộng đồng trở nên thuận tiện
và nhanh chóng hơn. Và hơn hết, Joomla là một giải pháp mã nguồn mở, nó miễn phí
cho tất cả mọi người.
Hệ thống Joomla có khả năng quản trị nội dung tương đối đa dạng, vì thế khi một
người phát triển muốn xây dựng một ứng dụng bất kỳ, thì có thể dựa trên rất nhiều thứ
có sẵn mà Joomla cung cấp. Không những cung cấp đầy đủ các công cụ quản lý nội
dung, Joomla còn rất dễ dàng mở rộng thêm thông qua việc cài đặt các module,
component, template ....
Hiện nay Joomla được sử dụng trên toàn thế giới để cung cấp mọi thứ, từ đơn
giản như các trang web cá nhân, tới những ứng dụng web phức tạp. Dưới đây là một
vài ứng dụng mà Joomla thường được sử dụng để xây dựng:
* Corporate websites or portals : Website của công ty hay cổng giao tiếp
* Online commerce : Thương mại trực tuyến
* Small business websites : Website kinh doanh nhỏ
* Non-profit and organizational websites : Website các tổ chức phi lợi nhuận
* Government applications : Các ứng dụng cho chính phủ
Chương 1: Giới thiệu Joomla
* School and church websites : Website trường học nhà thờ
* Personal or family homepages : Website cá nhân, gia đình
* Community-based portals : Cổng kết nổi cơ bản
* Magazines and newspapers : Website các tạp chí và báo điện tử
... những ví dụ trên cho thấy khả năng của Joomla không hề có giới hạn.
Gói Joomla cơ bản được thiết kế để dễ dàng cài đặt, thậm chí cho những người
không phải là lập trình viên máy tính. Phần lớn người sử dụng không gặp phải trở ngại
nào khi cài đặt và chạy hệ thống Joomla, và có rất nhiều sự hỗ trợ cho những người
mới sử dụng. Joomla có một cộng đồng năng động, đang phát triển với trên 100,000
thành viên, họ là những người sử dụng thông thường hay các nhà lập trình chuyên
nghiệp.
Một hệ thống Joomla được cài đặt và chạy, nó thậm chí đơn giản cho những
người dùng không phải là người phát triển ứng dụng web chuyên nghiệp, đều có thể
thêm hay chỉnh sửa nội dung, cập nhật ảnh, và quản lý những dữ liệu phản hồi... Bất
kỳ ai với những kỹ năng xử lý web cơ bản đều có thể dễ dàng học cách quản lý một
site Joomla.
Joomla làm công việc quản lý nội dung khá tốt, yếu tố này làm cho một site
Joomla trở nên đơn giản hơn rất nhiều trong việc quản lý. Nhưng với nhiều người, sức
mạnh thực sự của Joomla nằm trong Framework ứng dụng, nhờ nó mà hàng nghìn nhà
phát triển chuyên nghiệp trên toàn thế giới có thể tạo ra những add-ons và extensions
tương đối mạnh. Sau đây là một vài ví dụ trong hàng nghìn extension sẵn có dành cho
Joomla:
* Dynamic form builders : Xây dựng form động
* Business or organizational directories : Các danh bạ tổ chức hoặc kinh doanh
* Document management : Quản lý tài liệu
* image and multimedia galleries : Triển lãm ảnh và đa phương tiện
* E-commerce and shopping cart engines: Các máy bán hàng và thương mại điện tử
Chương 1: Giới thiệu Joomla
* Forums and chat software : Phần mềm chat và forum.
* Calendars : Quản lý thời gian biểu
* Blogging software : Phần mềm blog
* Directory services : Dịch vụ danh bạ
* Email newsletters : Thư dưới dạng tin tức mới
* Data collection and reporting tools : Các công cụ báo cáo và tập hợp dữ liệu
* Banner advertising systems : Các hệ thống banner quản cáo
* Subscription services : Các dịch vụ thuê bao
Và rất nhiều các extension khác nữa mà chúng ta có thể tìm thấy tại mục Joomla
Extension tại địa chỉ Nhưng thông thường, tại các công ty lớn
thì yêu cầu của họ xa hơn những gì được cung cấp miễn phí của Joomla, vì thế họ có
thể mua những Extension hướng tới mục đích cụ thể của họ từ các nhà phát triển web
chuyên nghiệp.
Joomla mang đến một Framework ứng dụng với đầy đủ sức mạnh để có thể làm
cho công việc tạo ra các add-on của những nhà phát triển trở nên đơn giản hơn. Những
add-on phức tạp này sử dụng sức mạnh của Joomla, gần như không có giới hạn về mặt
phương tiện.
Sử dụng lõi framework, những nhà phát triển có thể dễ dàng xây dựng:
* Integrated e-commerce systems : Hệ thống tích hợp thương mại điện tử
* Inventory control systems : Hệ thống điều khiển thống kê
* Data reporting tools : Các công cụ báo cáo dữ liệu
* Custom product catalogs : Các catalog sản phẩm
* Complex business directories : Các danh mục kinh doanh phức tạp
* Reservation systems : Hệ thống dành riêng
* Communication tools : Các công cụ kết nối
* Application bridges : Các cầu nối ứng dụng
…
Chương 1: Giới thiệu Joomla
Nếu công ty hay tổ chức thuê một nhà phát triển ứng dụng Joomla thứ ba có sử
dụng Joomla Framework, thì họ đang xây dựng trên một platform mở, nó không rằng
buộc họ với bất kỳ một nhà phát triển hay một quyền sở hữu nào.
Tất cả những thông tin cần thiết về việc phát triển trên Joomla! Framework đều
được công bố rộng rãi trên trang chủ của Joomla, hoặc trong diễn đàn chính thức của
cộng đồng Joomla Và nếu như ai đó có bất kỳ ý tưởng nào để
phát triển Joomla! Framework hay những sản phẩm đã hoàn thiện thì họ đều có thể
phân phát tới cộng đồng Joomla thông qua mạng này.
Điều cuối cùng cần nhắc lại là Joomla miễn phí, mở và sẵn sàng cho tất cả mọi
người theo giấy phép bản quyền GPL (General Public License). Những người tạo ra
Joomla không thể hứa rằng có thể đáp ứng được mọi yêu cầu trên toàn thế giới. Nhưng
với đa số những ứng dụng web, phần mềm của họ là tương đối hoàn hảo cho công
việc. Nhóm phát triển Joomla đang thêm những tính năng mới cho mỗi phiên bản phát
hành về sau này.
1.2 Các thành phần chính của Joomla
Công viêc cài đặt một bản Joomla khá đơn giản. Người sử dụng chỉ cần tải một
bản Joomla từ trang chủ của Joonla về , giải nén ra, copy vào thư mục localhost và
truy cập vào File index trên trình duyệt để bắt đầu quá trình cài đặt.
Sau khi cài đặt xong và chạy thành công Joomla, điều đầu tiên bạn cần quan tâm,
đó chính là thành phần giao diện phía người dùng của website – Templates.
1.2.1 Template
Template và những File liên quan tới nó cung cấp một cái nhìn trực quan cho
website của bạn theo kiểu “look and feel” và được duy trì tách biệt với nội dung
website. Template được lưu trữ trong một cơ sở dữ liệu MySQL
Một bản Joomla điểm hình đã được cài đặt sẽ bao gồm 2 Templates có sẵn, đó là:
madeyourweb và rhuk_solaflare_ii. Các File Template được đặt trong thư mục
Templates, trong thư mục gốc, và mỗi một Template thường bao gồm những File sau:
Chương 1: Giới thiệu Joomla
Tên File Chi tiết
Index.php
File này chứa những mã HTML, PHP và có thể cả
JavaScript, sẽ cung cấp Framework cho phần phác hoạ
website của bạn. Bằng việc kết hợp với File .css và các
File ảnh, nó tạo nên tất cả những thiết kế và các yếu tố sắp
đặt nội dung trên wesite của bạn.
templateDetails.xml
File này định nghĩa cách sử dụng template và chứa các
tham chiếu tới tất cả các File được sử dụng, ví dụ
index.PHP, .css File ...vvv
template_thumbnail.png
File ảnh này được sử dụng trong phần quản lý Template,
nếu nó được bật, một hình nhỏ hiển thị File
Template_thumbnail.png chính là giao diện của Template
tương ứng. File ảnh này phải được đặt trong thư mục
Template
template_css.css
Được đặt trong thư mục css, File CSS này chứa các đoạn
mã để xử lý yếu tố trực quan của website, ví dụ: phông
chữ, cỡ chữ, màu sắc ..vvv... Có thể có rất nhiều File CSS
mà bạn muốn cung cấp tham chiếu HTML thích hợp trong
File index.PHP. Ví dụ:
<?php echo "<link rel=\"stylesheet\"
href=\"$GLOBALS[mosConfig_live_site]/
Templates/$GLOBALS[cur_Template]
/css/Template_css.css\" type=\"text/css\"/>" ; ?>
Image Files
Những File này được đặt trong thư mục ảnh và có thể có
đuôi mở rộng là .gif, .jpg, hoặc .png.
Chúng cung cấp những yếu tố đồ hoạ cho phần phác thảo
website.
Chương 1: Giới thiệu Joomla
1.2.2 Components
Components là thành phần cốt lõi trong các chức năng chính Joomla! Và được
hiển thị trong phần thân chính ở template của website. Phần lõi trong phần thân chính
sẽ xuất hiện trong template như sau: . Điều này tuỳ thuộc
vào mục đích khi thiết kế website, nhưng thường thì nó sẽ nằm ở phần chính giữa của
trang web. Một hệ thống Joomla điển hình đi kèm với các Components được cung cấp
sẵn như: Banners, Contacts, News Feeds, Polls, và Web Links . Các thành viên của
cộng đồng Joomla đều có thể đưa ra những Components do chính họ viết lên trang [2]
để các thành viên khác tham khảo và góp ý. Và cũng tại trang [2]có danh sách tải về
những Component mở rộng.
1.2.3 Modules
Module là một phần nhỏ trong content và nó sẽ được hiển thị ở bất cứ nơi nào mà
template cho phép. Modules rất dễ dàng cài đặt trong phần Administrator Section (phía
người quản trị), và nó mở rộng ra những khả năng mới của Joomla!. Modules của
Joomla có thể bao gồm: Main Menu, Top menu, Template Chooser, Polls, Newsflash,
Hit Counter... Các thành viên của cộng đồng Joomla liên tục tạo ra những Modules với
những tính năng mới. Và những modules này được cung cấp hoàn toàn miễn phí trên
trang [2]. Sau đây là một ví dụ đơn giản về mã lệnh để tải một Modules: <?php
mosLoadModules ( 'user1' ); ?>.
1.2.4 Mambots
Mambots là một hàm, có chức năng định hướng nhiệm vụ. Thông thường nó sẽ
ngăn lại content và điều chỉnh nó trước khi cho hiển thị. Joomla cũng cung cấp một số
Mambot trong các gói cài , ví dụ như {mospagebreak}, {mosimage}
Chương 2: Giới thiệu PHP & MySQL
CHƯƠNG 2. GIỚI THIỆU PHP & MYSQL
2.1 PHP
2.1.1 Lịch sử phát triển của PHP
Năm 1995, Rasmus Lerdorf tạo ra PHP và được công bố với tên gọi ban đầu là
PHP/FI. PHP/FI đượ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, là 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 ngày nay. Nó có các biến kiểu như
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ày
giố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.
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được
hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi
nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet. Tuy đã có
tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì
vào thời đó nó vẫn chủ yếu chỉ là dự án của một người.
Không lâu sau khi công bố PHP/FI, bản PHP 3.0 là phiên bản đầu tiên cho chúng
ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay.
Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn
bộ mã nguồn trước đó. Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy
PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà
họ đang xúc tiến trong một dự án của trường đại học. PHP 3.0 như là phiên bản thế hệ
kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0.
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh
mẽ của nó. Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ
dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của
Chương 2: Giới thiệu PHP & MySQL
PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng
mới. Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành
công vang dội của PHP 3.0. Các tính năng khác được giới thiệu trong PHP 3.0 gồm có
hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác.
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên
hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc. Nó
đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của "PHP: Hypertext
Preprocessor".
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục
ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó. Vào thời kì đỉnh
cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet.
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng
được cộng đồng kiểm nghiệm.
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi
Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP. Mục
đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô
đun của cơ sở mã PHP. Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên
các tính năng mới và sự hỗ trợ khá nhiều các cơ sở dữ liệu và API của bên thứ ba,
nhưng PHP 3.0 đã không được thiết kế để xử lý các ứng dụng phức tạp như thế này
một cách có hiệu quả.
Một Engine mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev
và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu
tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên Engine này, và đi kèm với
hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm
2000, gần 2 năm sau khi bản PHP 3.0 ra đời. Ngoài tốc độ xử lý được cải thiện rất
nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ
Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý
thông tin người sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn
ngữ mới. Với PHP 4.0, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và
hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng
Internet.
Chương 2: Giới thiệu PHP & MySQL
Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn
người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu
kĩ thuật cho PHP.
Mặc dù PHP 4.0 đã thành công hết sức to lớn, nhưng nhóm phát triển PHP đã
nhanh chóng nhận ra những yếu kém của nó, đặc biệt với khả năng hỗ trợ lập trình
hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của
MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu. Những điểm này chính là mục đích để
Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0. Ngày 29 tháng 6 năm 2003, PHP
5 Beta 1 đã chính thức được công bố. Đó cũng là phiên bản đầu tiên của Zend Engine
2.0. Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai
tính năng rất được chờ đợi: “Iterators”, “Reflection” nhưng “Namespaces” một tính
năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5
Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tridy, bỏ hỗ trợ
Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm
khá nhiều hàm mới. PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau
một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC1, RC2, RC3. Mặc dù coi
đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể
là lỗi xác thực HTTP. Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team
công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong
việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện
các câu truy vấn. Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những
cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng
những tính năng và cải tiến mới trong SOAP, streams và SPL
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, bản PHP 6 dùng thử
có thể được tải tại [6]. Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết
của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ Namespace (hiện tại các nhà phát triển vẫn
chưa công bố rõ ràng về vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API chuẩn
cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL...
Chương 2: Giới thiệu PHP & MySQL
2.1.2 Cộng đồng sử dụng và phát triển PHP tại Việt Nam
Đa số các doanh nghiệp ở Việt Nam hiện nay sử dụng PHP thay cho các công
nghệ khác. Lý do tương đối đơn giản, đó là vì chi phí cho công nghệ PHP thấp hơn, rất
phù hợp cho cách doanh nghiệp vừa và nhỏ, với những ứng dụng không đòi hỏi tính
toán nhiều và độ phức tạp cao. Theo những thống kê mới nhất [7] , tại Thành phố Hà
Nội, tỷ lệ sử dụng ASP.NET/PHP là 1/2,5 còn tỷ lệ này ở Thành phố Hồ Chí Minh là
1/2,3.
Những nỗ lực đầu tiên để phổ biến PHP trong đó có dự án xây dựng “Chuẩn viết
mã PHP tiếng Việt” đã được xúc tiến. Ngày 24 tháng 10 năm 2004, nhóm
PHPVietnam đã đề xuất xây dựng PHPVietnam Mailing List đầu tiên trên Google
Groups [8]. Tại đây cũng đã diễn ra những thảo luận để xây dựng diễn đàn cho cộng
đồng PHP Việt Nam.
Có thể nói, tính đến thời điểm hiện tại, người Việt chưa đóng góp được gì nhiều
cho cộng đồng PHP trên thế giới. Đóng góp lớn nhất ghi nhận đến hiện nay là sự xuất
hiện của PHP Designer 2007 do Michael Pham (quốc tịch Việt Nam và Đan Mạch)
xây dựng [13]. Chủ yếu sự tham gia của cộng đồng PHP tại Việt Nam là thông qua
việc dịch các tập tin ngôn ngữ và dựa trên những ứng dụng PHP sẵn có với chút sửa
đổi để tạo nên các hệ thống thông tin thuần Việt như NukeViệt của nhóm NukeViệt.
Cộng đồng PHP người Việt hiện nay cũng cho ra đời khá nhiều script miễn phí
PHP để giúp phát triển PHP ở Việt Nam. Ngoài ra còn có một số người đã biên dịch
các sách PHP ra tiếng Việt, tạo những điều kiện thuận lợi hơn cho những người mới
tham gia vào cộng đồng PHP.
2.1.3 Cấu trúc cơ bản của mã PHP
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 vrớ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.
Chương 2: Giới thiệu PHP & MySQL
Đoạn mã sau minh họa cách viết PHP lồng vào các trang HTML :
Mã mẫu
<?php
echo "Chào thế giới PHP!";
?>
Thẻ sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP
qua đó máy chủ biết để xử lý và dịch mã cho đúng. Đây là một điểm khá tiện lợi của
PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng
phần giao diện ứng dụng HTTP.
PHP xử lý các biến rất linh động. Nó có thể nhận biết được kiểu của biến và làm
cho cú pháp câu lệnh đơn giản hơn. Ai đã từng lập trình với C, Java sẽ cảm thấy rất dễ
dàng khi sử dụng PHP. Tuy nhiên việc dễ dài này lại gây ra một vài trở ngại. Trong
PHP tất cả các biến số được bắt đầu bằng dấu $. Dù cho biến của bạn là kiểu chuỗi,
nguyên hay thập phân hoặc thậm chí là mảng thì chúng không có gì khác biệt nhau.
PHP chỉ theo dõi dữ liệu chứa trong biết thay đổi như thế nào mà thôi.
Nói chung khi làm việc với PHP chúng ta cần quan tâm đến 3 vị trí khác nhau
của biến đó là :
1- Khai báo ngay trong mã lệnh PHP.
2- Chuyển tiếp từ một trang HTML.
3- Là biến sẵn có của hệ thống PHP.
Chương 2: Giới thiệu PHP & MySQL
2.2 MySQL
MySQL là một ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ
quản trị cơ sở dữ liệu quan hệ. Ngôn ngữ này phát triển vượt xa so với mục đích ban
đầu là để phục vụ các hệ quản trị cơ sở dữ liệu đối tượng-quan hệ. Nó là một tiêu
chuẩn ANSI/ISO.
2.2.1 Lịch sử phát triển
Từ một bài báo tham dự hội thảo khoa học A Relational Model of Data for Large
Share Data Banks (tạm dịch là "Mô hình quan hệ cho dữ liệu dùng trong ngân hàng dữ
liệu chia sẻ có khối lượng lớn") của tiến sĩ Edgar F. Codd xuất bản tháng 6 năm 1970
trong tạp chí Communications of the ACM của Hiệp hội ACM, một mô hình đã được
chấp nhận rộng rãi là mô hình tiêu chuẩn dùng cho hệ thống quản lý cơ sở dữ liệu
quan hệ.
Giữa những năm 1970, một nhóm các nhà phát triển tại trung tâm nghiên cứu của
IBM tại San Jose phát triển hệ thống cơ sở dữ liệu "Hệ thống R" dựa trên mô hình của
Codd. Structured English Query Language, viết tắt là "SEQUEL" (tạm dịch là "Ngôn
ngữ truy vấn tiếng Anh có cấu trúc"), được thiết kế để quản lý và truy lục dữ liệu được
lưu trữ trong “Hệ thống R”. Sau này, tên viết tắt SEQUEL được rút gọn thành SQL để
tránh việc tranh chấp nhãn hiệu (từ SEQUEL đã được một công ty máy bay của UK là
Hawker-Siddeley đăng ký). Mặc dù SQL bị ảnh hưởng bởi công trình của tiến sĩ Codd
nhưng nó không do tiến sĩ Codd thiết kế ra. Ngôn ngữ SEQUEL được thiết kế bởi
Donald D. Chamberlin và Raymond F. Boyce tại IBM, và khái niệm của họ được phổ
biến để tăng sự chú ý về SQL. Phiên bản cơ sở dữ liệu quan hệ phi thương mại, không
hỗ trợ SQL đầu tiên được phát triển năm 1974.(Ingres from U.C. Berkeley.)
Năm 1978, việc thử nghiệm phương pháp được khởi đầu tại một cơ sở thử
nghiệm của khách hàng. Cuộc thử nghiệm đã chứng minh được sự có ích và tính thực
tiễn của hệ thống và đã chứng tỏ sự thành công của IBM. Dựa vào kết quả đó, IBM bắt
đầu phát triển các sản phẩm thương mại bổ xung thêm SQL dựa trên nguyên mẫu Hệ
thống R bao gồm System/38 (Hệ thống/38) (được công bố năm 1978 và được thương
mại hóa tháng 8 năm 1979, SQL/DS (được giới thiệu vào năm 1981) và DB2 (năm
1983).
Cùng thời điểm đó Relational Software, Inc. (bây giờ là Oracle Corporation) đã
nhận thấy tiềm năng của những khái niệm được Chamberlin and Boyce đưa ra và đã
phát triển phiên bản Hệ quản trị cơ sở dự liệu quan hệ riêng của họ cho Navy, CIA và
Chương 2: Giới thiệu PHP & MySQL
các tổ chức khác. Vào mùa hè năm 1979, Relational Software, Inc. giới thiệu Oracle
V2 (Phiên bản 2), phiên bản thương mại đầu tiên hỗ trợ SQL cho máy tính VAX.
Oracle thường xuyên được nhắc tới một cách không nghiêm túc vì đã tấn công thị
trường của IBM trong 2 năm, nhưng việc táo bạo nhất trong quan hệ công chúng của
họ là tấn công một phiên bản của IBM System/38 chỉ trong có vài tuần. Tương lai của
Oracle đã được đảm bảo vì có sự quan tâm đáng kể của công chúng sau đó mới phát
triển, trong khi đã có nhiều phiên bản của các nhà cung cấp khác.
IBM đã quá chậm trong việc phát triển SQL và các sản phẩm quan hệ, có lẽ vì
ban đầu nó không dùng được trong môi trường Unix và máy tính lớn (Mainframe), và
họ sợ nó sẽ làm giảm lợi nhuận thu được từ việc bán các sản phẩm cơ sở dữ liệu IMS
(những sản phẩm dựa trên mô hình cơ sở dữ liệu định hướng chứ không phải cơ sở dữ
liệu quan hệ) của mình. Trong lúc đó, Oracle vẫn đang phát triển, IBM đang phát triển
System/38, được mong đợi là hệ cơ sở dữ liệu quan hệ đầu tiên của họ. Với năng lực
và thiết kế tiên tiến của nó, người ta cho rằng nó có thể sẽ thay thế cho hệ thống Unix
và máy tính lớn.
SQL được thừa nhận là tiêu chuẩn của [ANSI]] (American National Standards
Institute) vào năm 1986 và ISO (International Organization for Standardization) năm
1987. ANSI đã công bố cách phát âm chính thức của SQL là "ess kyoo ell", nhưng rất
nhiều các chuyên gia cơ sở dữ liệu nói tiếng Anh vẫn gọi nó là sequel. Một quan niệm
sai khác cũng được phổ biến rộng rãi đó là "SQL" là chữ viết tắt của "Structured
Query Language" (Ngôn ngữ truy vấn có cấu trúc). Thực tế không phải như vậy!
Tiêu chuẩn SQL đã trải qua một số phiên bản:
Năm Tên
Tên
khác
Chú giải
1986 SQL-86 SQL-87 Được công bố đầu tiên bởi ANSI. Được phê chuẩn bởi ISO
năm 1987.
1989 SQL-89 Thay đổi nhỏ.
1992 SQL-92 SQL2 Thay đổi lớn.
1999 SQL:1999 SQL3
2003 SQL:2003
Chương 2: Giới thiệu PHP & MySQL
2.2.2 Một số từ khóa thông dụng trong SQL:
a. Lấy dữ liệu:
Thao tác sử dụng nhiều nhất trong một cơ sở dữ liệu dựa trên giao dịch là thao tác lấy
dữ liệu.
• SELECT được sử dụng để lấy dữ liệu từ một hoặc nhiều bảng trong cơ sở dữ
liệu, SELECT là lệnh thường dùng nhất của ngôn ngữ sửa đổi dữ liệu (tạm
dịch) (tiếng Anh: Data Manipulation Language - DML). Trong việc tạo ra câu
truy vấn SELECT, người sử dụng phải đưa ra mô tả cho những dữ liệu mình
muốn lấy ra chứ không chỉ ra những hành động vật lý nào bắt buộc phải thực
hiện để lấy ra kết quả đó. Hệ thống cơ sở dữ liệu, hay chính xác hơn là bộ tối ưu
hóa câu truy vấn sẽ dịch từ câu truy vấn sang kế hoạch truy vấn tối ưu.
o Những từ khóa liên quan tới SELECT bao gồm:
FROM dùng để chỉ định dữ liệu sẽ được lấy ra từ những bảng nào,
và các bảng đó quan hệ với nhau như thế nào.
WHERE dùng để xác định những bản ghi nào sẽ được lấy ra, hoặc
áp dụng với GROUP BY.
GROUP BY dùng để kết hợp các bản ghi có những giá trị liên
quan với nhau thành các phần tử của một tập hợp nhỏ hơn các bản
ghi.
HAVING dùng để xác định những bản ghi nào, là kết quả từ từ
khóa GROUP BY, sẽ được lấy ra.
ORDER BY dùng để xác định dữ liệu lấy ra sẽ được sắp xếp theo
những cột nào.
b. Sửa đổi dữ liệu :
Ngôn ngữ sửa đổi dữ liệu (Data Manipulation Language - DML), là môt phần nhỏ của
ngôn ngữ, có những thành phần tiêu chuẩn dùng để thêm, cập nhật và xóa dữ liệu
delete data.
• INSERT dùng để thêm dữ liệu vào một bảng đã tồn tại.
• UPDATE dùng để thay đổi giá trị của một tập hợp các bản ghi trong một bảng.
Chương 2: Giới thiệu PHP & MySQL
• MERGE dùng để kết hợp dữ liệu của nhiều bảng. Nó được dùng như việc kết
hợp giữa hai phần tử INSERT và UPDATE .
• DELETE xóa những bản ghi tồn tại trong một bảng.
• TRUNCATE Xóa toàn bộ dữ liệu trong một bảng (không phải là tiêu chuẩn,
nhưng là một lệnh SQL phổ biến).
c. Giao dịch dữ liệu:
Giao dịch, nếu có, dùng để bao bọc các thao tác sửa đổi dữ liệu.
• BEGIN WORK (hoặc START TRANSACTION, tùy theo các ngôn ngữ SQL
khác nhau) được sử dụng để đánh dấu việc bắt đầu một giao dịch dữ liệu (giao
dịch dữ liệu đó có kết thúc hoàn toàn hay không).
• COMMIT dùng để lưu lại những thay đổi trong giao dịch.
• ROLLBACK dùng để quay lại thời điểm sử dụng lệnh COMMIT cuối cùng.
Chương 3: Xây dựng hệ thống
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG
Mục tiêu của luận văn là xây dựng hệ thống cung cấp dịch vụ nghe nhạc / xem
video trực tuyến. Hệ thống này sẽ được xây dựng trên nền hệ quản trị nội dung
Joomla, một trong những hệ quản trị nội dung mã nguồn mở mạnh nhất hiện nay.
Trong chương 3 này, chúng tôi sẽ trình bày các bước phân tích, thiết kế hệ thống từ bài
toán được mô tả ở phần dưới đây.
3.1 Mô tả bài toán
Hệ thống cung cấp dịch vụ nghe nhạc / xem video trực tuyến là một hệ thống cho
phép mọi người nghe nhạc mà không cần phải đăng ký là thành viên. Người dùng có
thể tìm kiếm các bài hát, các nhạc sỹ, album, ca sỹ. Nếu trong cơ sở dữ liệu có, nó sẽ
trả về kết quả cho người dùng.
Chức năng quản lý nội dung của hệ thống bao gồm: chỉnh sửa, thêm , xoá các bài
hát , các album, tất cả những thao tác này chỉ có thể được thực hiện bởi người quản trị
của hệ thống.
Một bài hát mới khi được thêm vào phải được phân loại theo các thể loại nhạc:
nhạc trẻ, nhạc cách mạng, nhạc không lời ... Bài hát mới có thể có hoặc không thuộc 1
album cụ thể nào cả. Nó cũng có thể có hoặc không có thông tin về Nhạc sỹ hoặc Ca
sỹ thể hiện bài hát đó.
Khi xoá một bài hát, cơ sở dữ liệu về bài hát đó sẽ được xoá, đồng thời File lưu
bài hát đó trên máy chủ cũng sẽ được xoá ngay lập tức.
Khi sửa một bài hát, nếu người quản trị tải lên một bài hát khác mà không xoá
bài hát cũ, thì nội dung mới của bài hát coi như thành hai đoạn, mỗi đoạn là một File.
3.2 Mô hình nghiệp vụ
3.2.1 Bảng phân tích xác định chức năng, tác nhân và hồ sơ
Động từ + bổ ngữ Danh từ Nhận
xét
Tìm kiếm Bài hát, nhạc sỹ, album, ca sỹ (tác
nhân)
Thêm, sửa, xoá Bài hát, nhạc sỹ, album, ca sỹ (tác
nhân)
Chương 3: Xây dựng hệ thống
3.2.2 Biểu đồ ngữ cảnh hệ thống
0
Hệ thống website
nghe nhạc
Người dùng
Yêu cầu nghe
Người quản lý
Yêu cầu
tìm kiếm
Kết quả xử
lý yêu cầu
Sửa Xoá Thêm
Kết quả
tìm kiếm
Bài hát
Chương 3: Xây dựng hệ thống
3.2.3 Biểu đồ phân rã chức năng
3.2.4 Mô hình các chức năng cụ thể
(1) Chơi nhạc: Chức năng này sẽ được kích hoạt khi người dùng nhấn và 1 bài
hát nào đó. Một player sẽ hiển thị ra và trên đó có các chức năng cơ bản xử lý
chơi nhạc, ví dụ như dừng, tạm dừng ...
(2) Tìm kiếm: Đây là chức năng cung cấp cho người sử dụng, dùng để tìm kiếm
một bài hát, một nhạc sỹ, ca sỹ hoặc album. Chức năng tìm kiếm sẽ tìm những
bản ghi có 1 phần dữ liệu giống như chuỗi đã nhập vào
(3.1) Thêm bài hát: Đây là chức năng của người quản trị mạng, khi thêm bài hát,
bắt buộc phải có thể loại của bài hát, còn thông tin về nhạc sỹ, ca sỹ thể hiện và
album không bắt buộc. Trước tiên bài hát sẽ được upload lên một thư mục nào đó
trên host, nếu upload thành công thì mới tạo thông tin trong cơ sở dữ liệu.
(3.2) Xoá bài hát: Đây là chức năng của người quản trị mạng để xoá 1 bài hát,
Bao gồm cả viêc xoá file trên host và bản ghi về bài hát trên cơ sở dữ liệu.
(3.3) Sửa bài hát: Đây là chức năng của người quản trị mạng dùng để sửa các
thông tin liên quan đến bài hát trong cơ sở dữ liệu.
Hệ thống website nghe nhạc
1.Chơi nhạc
2.Tìm Kiếm
3.Quản lý
3.1 Thêm bài hát
3.1 Xoá bài hát
3.1 Sửa bài hát
Chương 3: Xây dựng hệ thống
3.2.5 Lập ma trận thực thể chức năng
Các thực thể
a. Danh sách bài hát
b. Danh sách album
c. Danh sách ca sỹ
d. Danh sách nhạc sỹ
Chức năng nghiệp vụ a b c d
1. Thêm mới bài hát U
2. Xoá bài hát R R R R
3. Sửa bài hát R R R R
4. Tìm kiếm bài hát R R R R
5. Chơi nhạc R
Chương 3: Xây dựng hệ thống
3.3 Phân tích – Mô hình khái niệm logic
3.3.1 Biểu đồ luồng dữ liệu mức 0
1.0
Chơi
Nhạc
2.0
Tìm Kiếm
3.0
Quản lý
Người
sử dụng
Người
quản lý
DS bài hát a
DS album b
DS nhạc sỹ c
DS ca sỹ d
TT phản hồi
Thêm
Sửa
Xoá
Yêu cầu tìm
kiếm
Nghe bài
hát
TT phản
hồi
Chương 3: Xây dựng hệ thống
3.3.2 Biểu đồ luồng dữ liệu mức 1
3.1
Thêm bài
hát
3.3
Sửa bài
hát
3.2
Xoá bài
hát
Người
quản lý
DS bài hát a
DS album b
DS nhạc sỹ c
DS ca sỹ d
Chương 3: Xây dựng hệ thống
3.3.3 Mô hình khái niệm dữ liệu: mô hình E-R
a. Xây dựng được các thực thể
Dựa vào các bảng trên chúng ta có thể xây dựng được các thực thể sau:
BÀI HÁT(Mã bài hát, tên bài hát, mã nhạc sỹ, mã ca sỹ, mã album, thể loại)
ALBUM(Mã album, tên album)
NHẠC SỸ(Mã nhạc sỹ, tên nhạc sỹ)
CA SỸ(Mã ca sỹ, tên ca sỹ)
b. Xác định mối quan hệ và thuộc tính
Động từ “Thêm” của người quản trị
Trả lời Câu hỏi
Thực thể Thuộc tính
Ai thêm Người quản lý
Thêm cái gì Bài hát, album, nhạc sỹ, ca sỹ
Động từ “Xoá” của người quản trị
Trả lời Câu hỏi
Thực thể Thuộc tính
Ai xoá Người quản lý
Xoá cái gì Bài hát, album, nhạc sỹ, ca sỹ
Động từ “Sửa” của người quản trị
Trả lời Câu hỏi
Thực thể Thuộc tính
Ai sửa Người quản lý
Sửa cái gì Bài hát, album, nhạc sỹ, ca sỹ
Chương 3: Xây dựng hệ thống
c. Vẽ biểu đồ rút gọn
Mã album
BÀI HÁT NHẠC SỸ
CA SỸ
Thuộc
Thuộc Thuộc
Mã nhạc sỹ
Mã BH
Thể loại
Mã ca sỹ
Mã nhạc sỹ
Tên nhạc sỹ
Mã ca sỹ Tên ca sỹ Mã album Tên album
ALBUM
Chương 3: Xây dựng hệ thống
3.4 Thiết kế mô hình logic
3.4.1. Chuyển mô hình ER sang mô hình quan hệ
a. Biểu diễn các thực thể:
Î BÀI HÁT (Mã bài hát, Tên bài hát, Mã nhạc sỹ, Mã ca sỹ,
Mã album, Thể loại)
Î ALBUM (Mã album, Tên album)
Î NHẠC SỸ (Mã nhạc sỹ, Tên nhạc sỹ)
Î CA SỸ (Mã ca sỹ, Tên ca sỹ)
b. Biểu diễn các mối quan hệ
Î BÀI HÁT_CA SỸ ( Mã BH_CS, Mã bài hát, Mã ca sỹ ).
Î BÀI HÁT_ALBUM ( Mã BH_AL, Mã bài hát, Mã album ).
c. Chuẩn hóa:
Tất cả là chuẩn 3 nên không cần chuẩn hóa.
Bài hát
Album
Thuộc
Nhạc sỹ
Ca sỹ
Thuộc
Chương 3: Xây dựng hệ thống
d. Biểu đồ quan hệ của mô hình dữ liệu
BAI HAT
Mã bài hát
Tên bài hát
Thể loại
Mã BH_AL
Mã BH_CS
ALBUM
Mã album
Tên album
BAI HAT_
ALBUM
Mã BH_AB
Mã bài hát
Mã album
BAI HAT_
CA SY
Mã BH_CS
Mã bài hát
Mã ca sỹ
CA SỸ
Mã ca sỹ
Tên ca sỹ
Thông tin
NHẠC SỸ
Mã bài hát
Tên bài hát
Thể loại
Mã BH_AL
Chương 3: Xây dựng hệ thống
3.4.2. Thiết kế cơ sở dữ liệu vật lý
Sử dụng hệ quản trị cơ sở dữ liệu MySQL, từ các quan hệ trên ta có:
(Để phù hợp với hệ thống Joomla, em có thêm một số trường trong các bảng)
a. Bảng: BÀI HÁT
jos_song
STT Tên trường Chú giải
1 Id Khoá chính
2 name Tên bài hát
3 url Địa chỉ lưu bài hát
4 id_author
5 id_songsinger
6 id_songalbum
7 id_type
8 id_content
9 Finger_print
10 Created
11 Created_by ai trong ban quản trị up bài hát này?
12 Hits Số người bình chọn cho ca khúc
13 Vote Điểm bình chọn tính trung bình cho ca khúc
14 Publish Cho phép được/không được nghe bài hát này
15 description Vài nét về bài hát
Chương 3: Xây dựng hệ thống
b. Bảng: ALBUM
c. Bảng: CA SỸ
jos_album
STT Tên trường Chú giải
1 id Khoá chính
2 Name
3 Producer Hãng phát hành album đó
4 Info 1 số thông tin về album
5 Type Thể loại nhạc của album đó
6 Img ảnh của album
7 Created Ngày tạo
8 Created_by Người tạo ra bản ghi này?
9 Publish Cho phép hiển thị hoặc ko album này
jos_singer
STT Tên trường Chú giải
1 id Khoá chính
2 Name Tên ca sỹ
3 img ảnh của ca sỹ
4 is_band Đây có phải là một ban nhạc hay không ?
5 Created Ngày tạo
6 Created_by Người tạo ra bản ghi này?
7 description Thông tin liên đến ca sỹ
Chương 3: Xây dựng hệ thống
d. Bảng: NHẠC SỸ
e. Bảng: BÀI HÁT_ALBUM
f. Bảng: BÀI HÁT_CA SỸ
jos_author
STT Tên trường Chú giải
1 id Khoá chính
2 name Tên nhạc sỹ
3 Img ảnh của nhạc sỹ
4 Created Ngày tạo
5 Created_by Người tạo ra bản ghi này?
6 description Một số thông tin liên về nhạc sỹ
Jos_songalbum
STT Tên trường Chú giải
1 id Khoá chính
2 Id_song
3 Id_album
Jos_songsinger
STT Tên trường Chú giải
1 id Khoá chính
2 Id_song
3 Id_singer
Chương 4: Ứng dụng thực tiễn
CHƯƠNG 4: ỨNG DỤNG THỰC TIỄN
4.1. Mô tả môi trường xây dựng và thử nghiệm ứng dụng
4.1.1 Mô tả môi trường xây dựng ứng dụng:
Cấu hình máy tính:
- Hệ điều hành: Ubuntu 6.10 (Được cài đặt trên máy ảo
VMWare Workstation 5.2)
- Cấu hình mạng: Localhost (Tạo server ảo ngay trên máy)
- Phiên bản Apache: Apache/2.0.55 (Ubuntu)
- Phiên bản PHP: 5.1.6
- Phiên bản SQL: Client API version 5.0.24a
- Phiên bản phpMyAdmin: 2.8.2 – Debian - 02
- Gói Joomla đã sử dụng: Joomla_1.0.11-Stable-Full_Package
- Phiên bản các component, mambot, module đã tải về để sử dụng lại:
bot_mgmedia-0.1.6b1
4.1.2 Các ứng dụng xây dựng thử nghiệm:
Component đã viết:
- Component quản lý Bài hát: com_song
- Component quản lý Album: com_album
- Component quản lý Nhạc sỹ: com_author
- Component quản lý Ca sỹ: com_singer
- Component quản lý Thẻ loại nhạc: com_musictype
Mambots đã viết:
- Mambot hiển thị bài hát: mam_song
- Mambot hiển thị album: mam_album
Thử nghiệm:
- Thử nghiệm về tốc độ khi nghe trên mạng Internet : chưa có
- Chức năng nhập bài hát: bình thường
- Thử nghiệm nếu có nhiều người cùng truy cập: chưa có
Chương 4: Ứng dụng thực tiễn
4.2 Giao diện của website
.
Hình 1: Giao diện chính của website phía người sử dụng
Chương 4: Ứng dụng thực tiễn
Component quản lý bài hát:
Hình 2: Component quản lý các bài hát
Chương 4: Ứng dụng thực tiễn
Hình 3.Giao diện phần chỉnh sửa/thêm mới bài hát
Chương 4: Ứng dụng thực tiễn
Component quản lý Album
Hình 4. Component quản lý Album
Chương 4: Ứng dụng thực tiễn
Hình 5. Giao diện phần chỉnh sửa Album
Chương 4: Ứng dụng thực tiễn
Component quản lý Nhạc sỹ:
Hình 6. Component quản lý nhạc sỹ
Chương 4: Ứng dụng thực tiễn
Hình 7. Giao diện phần chỉnh sửa thông tin Nhạc sỹ
Chương 4: Ứng dụng thực tiễn
Component quản lý Nhạc sỹ:
Hình 8. Component quản lý Ca sỹ
Chương 4: Ứng dụng thực tiễn
Hình 9. Giao diện phần chỉnh sửa Ca sỹ
Chương 4: Ứng dụng thực tiễn
4.3. Đánh giá về hệ thống
4.3.1 Ưu điểm
- Nội dung: được xây dựng thông qua các component cho nên chúng tương đối rõ
ràng, dễ quản lý, thuận tiện cho việc bảo trì, thay thế
- Giao diện : chúng ta có thể viết thêm cái gói giao diện mới (theo chuẩn của giao
diện ban đầu) và cài đặt vào trong hệ thống. Công việc này tương đối đơn giản và
không làm ảnh hưởng đến các thành phần khác của hệ thống. Việc thay đổi giao diện
của website giờ đây đơn giản chỉ với một vài thao tác ngay trên phần website của
người quản trị mà không cần phải can thiệp vào code của cả hệ thống.
- Độ an toàn : Hệ quản trị nội dung Joomla thường xuyên có các bản nâng cấp, vá
lỗi (định kỳ theo 2-4 tháng) hoàn toàn miễn phí. Do đó hệ thống của chúng tôi luôn
được nâng cấp về tính an toàn mà người quản trị không cần phải tốn thời gian và công
sức cho việc sửa code. Việc quản lý quyền hạn của các thư mục, các tệp trong hệ thống
cũng được thực hiện ngay trên website của người quản trị, mà không cần phải thao tác
bằng lệnh trực tiếp trên máy chủ.
4.3.2 Nhược điểm
Nhược điểm thứ nhất đó là đối với những người muốn phát triển hệ thống thì cần
phải có những kiến thức nhất định về hệ thống quản trị nội dung Joomla. Từ đó mới có
thể xây dựng được các module, các component hoặc các mambot một cách hiệu quả.
Thứ hai, hệ thống chưa có chức năng tìm kiếm theo giai điệu, theo tiết tấu. Đây
là chức năng rất tốt đối với một website nghe nhạc trực tuyến.
Thứ ba, hệ thống chưa có phần xử lý về tải của máy chủ và tải đường truyền khi
số lượng người sử dụng truy cập lớn.
4.4 Hướng phát triển trong tương lai
Như đã được đề cập ở các phần trên, hệ thống cung cấp nghe nhạc, xem phim
trực tuyến xây dựng trên nền Joomla. Các thành phần như module, component đều có
thể viết thêm và cài đặt vào hệ thống một cách dễ dàng.
Vì thế, trong tương lai ứng dụng sẽ có thêm một chức năng rất quan trọng. đó là
tìm kiếm bài hát theo một giai điệu có sẵn. Giai điệu này có thể là một File dạng
Chương 4: Ứng dụng thực tiễn
MIDI, hay một đoạn nhạc của bài hát, hoặc thậm chí là một đoạn tiếng huýt sáo do
người sử dụng trực tiếp thu âm thông qua qua Micro.
Để phát triển tính năng này, chúng ta cần có một module xử lý các bài hát được
tải lên và trích ra đoạn nhạc mẫu của bài hát đó. Sau đó lưu đoạn nhạc mẫu vào ngay
cơ sở dữ liệu của bài hát đó. Một module để phân tích và so sánh các đoạn nhạc mẫu
với đoạn nhạc cần tìm kiếm. Cuối cùng là một module xử lý đoạn nhạc yêu cầu tìm
kiếm: đoạn nhạc này có thể là một File nhạc MIDI (từ các chương trình mô phỏng đàn
Piano [14] ) một đoạn âm thanh do người dùng tự thu âm, hay là cả một bài hát.
TÀI LIỆU THAM KHẢO
TÀI LIỆU THAM KHẢO
[1]. chủ của Joomla)
[2]. và (Trang web cung cấp
các extensions cho Joomla)
[3]. Steve White – Websdezined.com and Andy Wallace Joomla! User Manua
Joomla! V1.0.11 21 October 2006
[4]. (Diễn đang cung cấp tài Liệu về PHP do Tống Phước
Khải biên soạn)
[5]. (Trang web từ điển bách khoa)
[6]. (Trang web cung cấp thông tin về PHP)
[7]. (Trang web so sánh giữa các ngôn ngữ phát triển
website của Google)
[8]. (Mail group của PHPVietNam)
[9]. và (Trang chủ Joomla Việt
Nam)
[10]. (Trang chủ PHP)
[11]. (Trang chủ MySQL)
[12].
(Một số thông tin về giai điệu,
tiết tấu, sử dụng cho việc tìm kiếm theo giai điệu và tiết tấu)
[13]. hoặc (địa chỉ tải bản
PHP Designer 2007 của Michael Pham )
[14]. (Trang web mô phỏng âm thanh)
Các file đính kèm theo tài liệu này:
- 11Xây dựng hệ thống cung cấp dịch vụ nghe nhạc xem video trực tuyến .pdf