Hệ thống thư viện phong phú: CodeIgniter cung cấp các thư viện phục vụ cho những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ sở dữ liệu, gửi email, kiểm tra dữ
Trang 1LỜI NÓI ĐẦU
Trên thế giới cũng như ở Việt Nam, CNTT có ảnh hưởng rất mạnh mẽ đến
sự phát triển của đất nước và thế giới CNTT đang phát triển với tốc độ khá mạnh
mẽ và được ứng dụng rất rộng rãi trong tất cả các lĩnh vực, đặc biệt là trong thương mại điện tử Nó giúp việc mua bán, trao đổi hàng hóa trở lên đơn giản hơn rất nhiều
Ở nước ta việc ứng dụng công nghệ thông tin vào trong các lĩnh vực của cuộc sống cũng đang trở nên rất mạnh mẽ, đặc biệt là sự ra đời của các website mua bán, rao vặt,
Xuất phát từ thực tế đó, em đã chọn đề tài “Xây dựng hệ thống đặt phòng
trọ trực tuyến cho sinh viên Đại học Thái Nguyên” Đây là một đề tài không còn
mới song nó vẫn chưa phổ biến trên khu vực Đại học Thái Nguyên Vì vậy, em nghiên cứu đề tài này với hy vọng sẽ góp phần giúp cho công việc tìm kiếm cũng như đặt phòng trọ trở lên dễ dàng hơn dành cho các bạn sinh viên
Em xin chân thành cảm ơn cô giáo ThS.Nguyễn Thị Duyên, người đã
hướng dẫn và giúp đỡ em trong quá trình thực hiện đề tài
Mặc dù đã rất cố gắng để hoàn thành công việc, xong do thời gian có hạn trong việc thu thập thông tin thực tế, phân tích hệ thống thông tin, tập hợp tài liệu
in ấn và lập trình, do đó chương trình của em còn nhiều thiếu sót cần được bổ sung
Em rất mong được sự góp ý và chỉ bảo chân thành của cô giáo hướng dẫn cùng toàn thể các thầy cô trong khoa để đề tài của em được hoàn thiện tốt hơn
Em xin chân thành cảm ơn!
Thái nguyên, tháng 06 năm 2016
Sinh viên thực hiện
Đỗ Văn Minh
Trang 2LỜI CAM ĐOAN
Đồ án tốt nghiệp là sản phẩm tổng hợp toàn bộ các kiến thức mà sinh viên
đã học được trong suốt thời gian học tập tại trường đại học Ý thức được điều đó, với tinh thần nghiêm túc, tự giác cùng sự lao động miệt mài của bản thân và sự hướng dẫn tận tình của cô Nguyễn Thị Duyên em đã hoàn thành xong đồ án tốt nghiệp của mình Em xin cam đoan: nội dung đồ án của em không sao chép nội dung cơ bản từ các đồ án khác và sản phẩm của đồ án là của chính bản thân em nghiên cứu xây dựng lên Mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước hội đồng bảo vệ
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 06 năm 2016
Sinh viên thực hiện
Đỗ Văn Minh
2
Trang 3LỜI CẢM ƠN
Để hoàn thành tốt đồ án này, em xin tỏ lòng biết ơn đến Cô ThS Nguyễn Thị Duyên, trong suốt quá trình viết đồ án tốt nghiệp đã không quản ngại khó khăn
và đã nhiệt tình chỉ dạy giúp đỡ, hướng dẫn để em có thể hoàn thành tốt đồ án này
Em xin chân thành cảm ơn quý Thầy, Cô trong khoa Công nghệ thông tin, Trường Đại Học Công Nghệ Thông Tin và Truyền Thông đã tận tình truyền đạt kiến thức trong 5 năm học tập Với vốn kiến thức được tiếp thu trong quá trình học không chỉ là nền tảng cho quá trình nghiên cứu đồ án mà còn là hành trang quý báu để em bước vào đời một cách vững chắc và tự tin
Em cũng xin chân thành gửi lời cảm ơn tới gia đình, bạn bè, người thân đã luôn bên cạnh, ủng hộ em trong suốt thời gian qua
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 06 năm 2016
Sinh viên
Đỗ Văn Minh
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1 Minh họa mô hình MVC 10
Hình 1.2: Cấu trúc CodeIgniter 11
Hình 1.3: Sơ đồ thể hiện dòng chảy dữ liệu trong CodeIgniter 12
Hình 2.1: Usecase tổng quan 28
Hình 2.2: Biểu đồ hoạt động đăng nhập 34
Hình 2.3: Biểu đồ hoạt động đăng kí 34
Hình 2.4: Biểu đồ hoạt động quản lý thành viên 35
Hình 2.5: Biểu đồ hoạt động quản lý bài viết 36
Hình 2.6: Biểu đồ hoạt động đăng tin 36
Hình 2.7: Biểu đồ hoạt động đặt phòng 37
Hình 2.8: Biểu đồ hoạt động thông tin tài khoản 37
Hình 2.9: Biểu đồ hoạt động tìm kiếm 38
Hình 2.10 Biểu đồ tuần tự đăng nhập 38
Hình 2.11: Biểu đồ tuần tự thay đổi đổi thông tin 39
Hình 2.12: Biểu đồ tuần tự thay đổi mật khẩu 39
Hình 2.13: Biểu đồ tuần tự thêm nội dung 40
Hình 2.14: Biểu đồ tuần tự cập nhật nội dung 40
Hình 2.15: Biểu đồ tuần tự thống kê 41
Hình 2.16: Sơ đồ lien kết cơ sở dữ liệu 41
Hình 2.17: Biểu đồ lớp 45
Hình 3.1: Giao diện trang chủ 46
Hình 3.2: Giao diện đăng tin 47
Hình 3.3: Giao diện chi tiết phòng trọ 48
Hình 3.4: Giao diện đặt phòng 49
Hình 3.5: Giao diện trang cá nhân 50
Hình 3.6: Giao diện thay đổi thông tin cá nhân 51
Hình 3.7: Giao diện danh sách đặt phòng 52
Hình 3.8: Giao diện danh sách thành viên 52
Hình 3.9: Giao diện đăng kí thành viên 53
Hình 3.10: Giao diện đăng nhập 54
Hình 3.11: Giao diện quản lý bài viết 54
Hình 3.12: Giao diện quản thành viên 55
Trang 6 Những điểm nổi bật
Được thiết kế theo mô hình Model-View-Controller: Mô hình MVC giúp tách thành phần hiển thị giao diện (presentation) và xử lý (business logic) của một phần mềm thành những thành phần độc lập, từ đó giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mở rộng của phần mềm CodeIgniter vận dụng mô hình này trong thiết kế, giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ bảo trì
Nhỏ gọn: Gói cài đặt chỉ 404KB (không bao gồm phần User Guide) So với
các PHP framework khác như CakePHP (1.3MB), Symfony (5.08MB) hay Zend Framework (5.66MB)kích thước của CodeIgniter giúp giảm thiểu đ|ng kể không gian lưu trữ
Tốc độ nhanh: CodeIgniter được đánh giá là PHP framework có tốc độ
nhanh nhất hiện nay Bằng cơ chế lưu nội dung vào bộ đệm (cache), kiểm tra bộ đệm trước khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử
lý dữ liệu, từ đó tối ưu hóa tốc độ tải trang
Miễn phí: CodeIgniter được phát hành dưới giấy phép Apache/BSD mở
rộng, cho phép người dùng tự do thay đổi, phát triển và phân phối mã nguồn
6
Trang 7Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rất
thân thiện với các robot tìm kiếm
Hệ thống thư viện phong phú: CodeIgniter cung cấp các thư viện phục vụ
cho những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ
sở dữ liệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lý ảnhđến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật
Bảo mật hệ thống: Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS và
SQL Injection của CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho hệ thống
Trang 9 Những điểm hạn chế
Chưa hỗ trợ Object-Relational Mapping: Object Relational Mapping
(ORM) là một kỹ thuật lập trình, trong đó các bảng của cơ sở dữ liệu được ánh xạ thành các đối tượng trong chương trình Kỹ thuật này giúp cho việc thực hiện các thao tác trong cơ sở dữ liệu (Create Read Update Delate - CRUD) dễ dàng, mã nguồn ngắn gọn hơn Hiện tại, CodeIgniter vẫn chưa hỗ trợ ORM
Chưa hỗ trợ AJAX: AJAX (Asynchronous JavaScript and XML) đã trở
thành một phần không thể thiếu trong bất kỳ ứng dụng Web 2.0 nào AJAX giúp nâng cao tính tương tác giữa người dùng và hệ thống, giúp cho người dùng có cảm giác như đang sử dụng ứng dụng desktop vì các thao tác đều diễn ra "tức thời" Hiện tại, CodeIgniter vẫn chưa có thư viện dựng sẵn nào để hỗ trợ xây dựng ứng dụng AJAX Lập trình viên phải sử dụng thư viện bên ngoài, như jQuery, Script.aculo.us, Prototype hay Mootools
Chưa hỗ trợ một số module thông dụng: So sánh với framework khác,
CodeIgniter không có các module thực thi một số tác vụ thường gặp trong quá trình xây dựng ứng dụng web như Chứng thực người dùng (User Authorization), Trình phân tích RSS (RSS Parser) hay Trình xử lý PDF
Chưa hỗ trợ Event-Driven Programming: Event-Driven Programming
(EDP) là một nguyên lý lập trình, trong đó các luồng xử lý của hệ thống sẽ dựa vào các sự kiện, chẳng hạn như click chuột, gõ bàn phímĐấy không phải là một khuyết điểm to lớn của CodeIgniter vì hiện tại, chỉ có một số ít framework hỗ trợ
EDP, bao gồm Prado, QPHP và Yii
Cài đặt
Yêu cầu hệ thống: CodeIgniter có thể hoạt động trên nhiều hệ điều hành và
server, yêu cầu có cài đặt PHP phiên bản 4.x hoặc cao hơn; hệ quản trị cơ sở dữ liệu: MySQL (4.1+), MySQLi, Mircrosoft SQL Server, Postgres, Oracle, SQLite,
và ODBC
Trang 103 Nếu ứng dụng có tương tác với cơ sở dữ liệu, thiết lập các giá trị cần thiết trong tập tin application/config/database.php
4 Upload tất cả thư mục và tập tin của CodeIgniter lên server
Để nâng cao tính bảo mật hệ thống, người dùng có thể đổi tên thư mục system của CodeIgniter Sau khi đổi tên, người dùng phải thay đổi giá trị biến
$system_folder trong tập tin index.php
Trang 11Hình 1.1 Minh họa mô hình MVC
Theo đó:
-Model thể hiện các cấu trúc dữ liệu Các lớp thuộc thành phần Model thường thực hiện các tác vụ như truy vấn, thêm, xóa, cập nhật dữ liệu Khi dữ liệu trong Model thay đổi, thành phần View sẽ được cập nhật lại
-View là thành phần thể hiện dữ liệu trong Model thành các giao diện tương tác với người sử dụng Một Model có thể có nhiều View tùy thuộc vào các mục đích khác nhau
-Controller đóng vai trò trung gian giữa Model và View Thông tin người dùng từ View được gửi cho Controller xử lý, sau đó Controller tương tác với Model để lấy dữ liệu được yêu cầu, sau cùng Controller trả dữ liệu này về cho View
Mô hình MVC thường được sử dụng trong các ứng dụng web, vì thành phần View (mã HTML/XHTML) được sinh ra từ các ngôn ngữ lập trình web Thành phần Controller sẽ nhận các dữ liệu GET/POST, xử lý những dữ liệu này,
Trang 12sau đó chuyển sang Model xử lý.
Model sẽ trả dữ liệu về phía Controller, sau đó Controller sinh mã HTML/XHTML để thể hiện trên View
Cấu trúc CodeIgniter
Hình 1.2: Cấu trúc CodeIgniter
Tập tin index.php được xem như controller đầu vào, tiếp nhận các yêu cầu
từ phía client và chuyển các yêu cầu này cho hệ thống xử lý
Thư mục system bao gồm phần lõi của CodeIgniter Chúng bao gồm các thư viện xây dựng sẵn, các tập tin ngôn ngữ, ghi chú về hệ thống Trong số đó, các thư mục sau khá quan trọng:
Thư mục application: Dành cho lập trình viên, các tập tin được lập trình cho ứng dụng sẽ lưu trong thư mục này
Thư mục config: Chứa các tập tin cấu hình hệ thống
Thư mục controllers: chứa các lớp controller
Thư mục errors: chứa các tập tin lỗi
Thư mục helpers: chứa các hàm tiện ích do người dùng định nghĩa
Thư mục hooks: chứa các tập tin để mở rộng mã nguồn CodeIgniter
Thư mục language: chứa các tập tin ngôn ngữ
Thư mục libraries: chứa các thư viện cho người dùng dùng định nghĩa
Thư mục models: chứa các lớp model
12
Trang 13 Thư mục views: chứa các lớp view.
Ta cũng có thể đổi tên của thư mục application thành tên tùy ý Sau khi đổi tên, cần thiết lập tên mới cho biến $application_folder trong tập tin index.php Ngoài ra, ta cũng có thể tạo nhiều ứng dụng trong cùng một bộ cài đặt CodeIgniter bằng cách tạo ra các thư mục con bên trong system/application Các thư mục này
có cùng cấu trúc giống như thư mục application gốc
Dòng chảy dữ liệu trong CodeIgniter
Hình 1.3: Sơ đồ thể hiện dòng chảy dữ liệu trong CodeIgniter
1 Tập tin index.php đóng vai trò làm controller đầu vào, thiết lập các tài nguyên cần thiết cho hệ thống
2 Routing: Quá trình điều hướng giúp x|c định các yêu cầu và hướng xử lý
đối với chúng
3 Caching: Nếu dữ liệu được yêu cầu đã được lưu trong bộ đệm,
CodeIgniter sẽ trả dữ liệu trong bộ đệm về phía client Quá trình xử lý kết thúc
4 Security: Dữ liệu trước khi được chuyển đến các Controller sẽ được lọc
để phòng chống XXS hoặc SQL Injection
5 Application Controller: Controller xử lý dữ liệu nhận được bằng cách
gọi đến các Models, Libraries, Helpers, Pluginscó liên quan
6 View: Dữ liệu được chuyển qua View để hiển thị cho người dùng Nếu
Trang 14chức năng caching được bật, dữ liệu sẽ được lưu trong cache cho những lần yêu cầu tiếp theo
Trong thực tế, đôi khi ta cần xen lẫn bước trong sơ đồ trên Chẳng hạn, trước khi một controller được gọi, ta có thể muốn lưu log xuống tập tin trong hệ thống CodeIgniter sử dụng cơ chế hook cho phép ta thực hiện việc này
CodeIgniter URL
Theo mặc định, cấu trúc URL của CodeIgniter được thiết kế dựa vào các segment thay cho kiểu query truyền thống Cách tiếp cận này giúp URL trở nên ngắn gọn, có ý nghĩa, dễ ghi nhớ và thân thiện với các bộ máy tìm kiếm Một URL trong CodeIgniter có dạng:
domain.com/index.php/controller/method/param/
Trong đó:
Segment controller là tên của lớp controller được gọi
Segment method là tên của phương thức trong lớp controller ở trên
Segment param là các đối số của phương thức đó
Như vậy, URI domain.com/index.php/product/view/1 sẽ mang ý nghĩa: Gọi đến phương thức view() thuộc lớp Product với đối số truyền vào bằng 1
Định tuyến URI (URI Routing)
Trong thực tế, URI domain.com/index.php/view/1 lại không thân thiện với các bộ máy tìm kiếm bằng URI domain.com/index.php/view/appple-ipad-1 CodeIgniter cho phép lập trình viên có thể thay đổi cơ chế xử lý URL mặc định thông qua chức năng Định hướng URI bằng cách thiết lập các quy luật trong tập tin application/config/routes.php Tập tin này chứa mảng $route, với khóa là URI mới và giá trị l{ URI cũ Các quy luật được đọc theo thứ tự từ trên xuống, quy luật trước có độ ưu tiên cao hơn quy luật sau CodeIgniter cho phép sử dụng các ký tự đại diện (wildcard) để thay thế CodeIgniter đã quy định sẵn hai ký tự đại diện:
:num tương ứng với các giá trị số
14
Trang 15 :any tương ứng với bất kỳ giá trị nào.
Thêm hậu tố vào URL
Các bộ máy tìm kiếm có xu hướng thân thiện hơn với các tập tin HTML Bằng cách thay đổi giá trị biến $config['url_suffix'] trong tập tin system/application/config/config.php, ta có thể thêm hậu tố HTML hay bất cứ hậu
tố nào khác vào cho URL
Model
Model là những lớp được xây dựng nhằm thực hiện việc trao đổi thông tin với cơ sở dữ liệu Một lớp Model có thể thực hiện các tác vụ truy vấn, thêm, xóa, cập nhật dữ liệu Trong CodeIgniter, việc khai báo các lớp model dành cho một thực thể nào đó không cần thiết, vì trong controller của thực thể đó, ta có thể gọi đến thư viện database để thực hiện các thao tác với cơ sở dữ liệu Tuy nhiên, để tiện cho việc quản lý, xây dựng lớp model cho một thực thể được khuyến khích
Một lớp model chuẩn trong CodeIgniter có cấu trúc như sau:
class Example_model extends Model {
Trang 16Khi khai báo một lớp model, ta cần tuân theo một số quy tắc:
Tên lớp được viết hoa chữ đầu tiên, phần còn lại viết thường Ví dụ: User_model, Blog_model, Article_model
Tên tập tin được đặt như tên lớp, và được đặt trong thư mục application/models/ Các thư mục có thể được lưu lồng vào nhau để thuận tiện cho việc quản lý Vídụ :
Trong đó, model_name là tên của lớp model Nếu lớp model được lưu trong
một thư mục, ta cần ghi rõ đường dẫn đến thư mục đó Ví dụ lớp Blog_model được lưu trong thư mục application/models /blog_model.php Để sử dụng lớp này,
Trang 17Để gán một tên khác cho lớp model khi sử dụng trong chương trình, ta có thể truyền vào tham số thứ hai như sau:
Để sử dụng view trong controller, ta sử dụng đoạn mã sau:
$this->load->view('view_name', $data);
Trong đó, view_name là tên của view, $data chứa các dữ liệu sẽ được hiển
thị trong view Cũng giống như model, ta có thể lưu view trong các thư mục để tiện cho việc quản lý Khi sử dụng, chỉ cần khai báo đường dẫn tương đối đến thư mục chứa view Ví dụ tập tin header.tpl.php được lưu trong thư mục application/views/front_end Để hiển thị view này, ta sử dụng đoạn mã sau:
$this->load->view('front_end/header.tpl');
CodeIgniter cho phép sử dụng nhiều view trong cùng một phương thức của controller
Dữ liệu trong các view sẽ được kết hợp lại với nhau Ví dụ:
class Example extends Controller {
$this->load->view('footer.tpl');
}
Trang 18<p>Name: <?php echo $name ?></p>
<p>Email: <?php echo $email ?></p>
<p>Age: <?php echo $age ?></p>
Ta cũng có thể sử dụng các cấu trúc điều khiển (if, else, switchcase), lặp (for, while, dowhile)bên trong view để hiển thị dữ liệu Ví dụ sau sẽ hiển thị danh sách các nhân viên:
Trang 19$string = $this->load->view('myfile', '', true);
Controller
Controller là những lớp đóng vai trò trung gian giữa view và model Controller nhận các yêu cầu từ phía người dùng, kiểm tra chúng trước khi chuyển qua cho model Sau khi model xử lý yêu cầu và trả dữ liệu về, controller chuyển sang view để hiển thị dữ liệu cho người dùng Trong CodeIgniter, các lớp controller được gán vào segment thứ nhất trong URI
Một lớp controller chuẩn trong CodeIgniter có mẫu:
class Example extends Controller {
Trang 20Khi khai báo một lớp controller, ta cần tuân theo một số quy tắc:
Tên lớp được viết hoa chữ đầu tiên, phần còn lại viết thường Ví dụ: User, Blog, Article
Tên tập tin được đặt như tên lớp, và được đặt trong thư mục application/controllers/ Các thư mục có thể được lưu lồng v{o nhau để thuận tiện cho việc quản lý Ví dụ: application/controllers/user.php,
Trang 21/**
* Hiển thị nội dung bài viết
* @param int $entryId ID của bài viết
Ngoài ra, CodeIgniter cho phép lập trình thay đổi cơ chế gọi phương thức thông qua segment thứ hai bằng hàm _remap() Hàm này sẽ được quyết định cụ thể những phương thức nào sẽ được gọi tương ứng với từng segment
Giới thiệu MySQL
Khái niệm MySQL
MySQL là cơ sở dữ liệu phổ biến nhất thế giới, một số người còn cho rằng đây là cơ sở dữ liệu mã nguồn mở tốt nhất Thật vậy, từ khi phiên bản 4 bổ sung thêm
Trang 22một vài đặc điểm mới thì MySQL đã trở thành đối thủ của những người khổng lồ đắt giá như Oracle và SQL Server của Microsoft Giống như PHP, MySQL có một khả năng thực thi hoàn hảo, rất linh động, đáng tin cậy, dễ nắm bắt và ít chi phí hoặc miễn phí.
MySQL được phát triển và hỗ trợ bởi công ty MySQL AB của Thụy Điển
Nó là hệ thống quản trị cơ sở dữ liệu (DBMS) cho các cơ sở dữ liệu quan hệ (vì vậy, MySQL là một RDBMS) Cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, có thể là văn bản, số hoặc các tập tin nhị phân được lưu trữ có tổ chức bởi DBMS
Có nhiều loại cơ sở dữ liệu, từ các tập tin đơn giản đến các tập tin quan hệ
và hướng đối tượng Một cơ sở dữ liệu quan hệ sử dụng nhiều bảng để lưu trữ thông tin trong những phần riêng biệt Trước 1970, cơ sở dữ liệu trông giống như các bảng tính lớn, đơn giản và lưu trữ mọi thứ Các cơ sở dữ liệu quan hệ đòi hỏi phải tập trung suy nghĩ nhiều hơn trong giai đoạn thiết kế và lập trình, nhưng chúng có độ tin cậy và tính toán vẹn toàn dữ liệu tốt hơn Ngoài ra, các cơ sở dữ liệu có thể thực hiện việc tìm kiếm và cho phép nhiều người sử dụng cùng một lúc
Có thể download tại website www.mysql.com qua mạng internet
22
Trang 23 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
Loại dữ liệu numeric
Smallint -32768 -> 32767 hay 0 65535 2 Số nguyên nhỏ
Mediumint -8388608 -> 838860 hay
Bigint -263 -> 263 hay 0 264-1 8 Số nguyên lớn
Single hay Double
Trang 24 Loại dữ liệu Date and Time
Date và Time trình bày dưới dạng YYY-mm-dd hh:mm:ss
TimeStamp
[(M)]
1970-01-0100:00:00
TimeStamp trình bày dưới dạngYYYY-mm-dd hh:mm:ss
Year[(2|4)] 1970-2069
1901-2155 Year trình bày dưới dạng 2 số hay 4 số
Trình bày đại diện của TimeStamp
Trang 25 Loại dữ liệu String
Char 1-255 ký tự Chiều dài của chuỗi lớn nhất 255 ký tự
Varchar 1-255 ký tự Chiều dài của chuỗi lớn nhất 255 ký tự
Tinyblob 28-1 Khai báo cho Field chứa kiểu đối tượng nhị phân
cỡ 255 ký tựTinytext 28-1 Khai báo cho Field chứa kiểu chuỗi cỡ 255 ký tự
Blob 216-1 Khai báo cho Field chứa kiểu blob cỡ 65535 ký tự
Text 216-1 Khai báo cho Field chứa kiểu chuỗi dạng văn bản cỡ
Trang 26 Phát biểu SQL
Tạo cơ sở dữ liệu:
Create Database <database_name> Create <object type>
<object_name>
Phát biểu SQL thao tác dữ liệu
- SELECT (truy vấn mẩu tin)
- INSERT (Thêm mẩu tin)
- UPDATE (Cập nhật dữ liệu)
- DELETE (Xóa mẩu tin)
a) Phát biểu Select
Select <danh sách cột> From <danh sách bảng>
Where <các điều kiện ràng buộc>
[Group by <tên cột/biểu thức trong Select>]
[Having <điều kiện bắt buộc của Group by>]
Set <column>=<value>, [<column>=<value>]
[where <restrictive conditions>]
d) Phát biểu Delete
Delete from <table_name> Where <condition>
Tổng quan về phân tích thế kế hướng đối tượng UML
Giới thiệu chung về UML
Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) là một ngôn ngữ để biểu diễn mô hình theo hướng đối tượng được xây dựng bởi ba
26
Trang 27tác giả trên với mục đích là:
+ Mô hình hoá các hệ thống sử dụng các khái niệm hướng đối tượng
+ Thiết lập một kết nối từ nhận thức của con người đến các sự kiện cần mô hình hoá
+ Giải quyết vấn đề về mức độ thừa kế trong các hệ thống phức tạp, có nhiều ràng buộc khác nhau
+ Tạo một ngôn ngữ mô hình hoá có thể sử dụng được bởi người và máy.UML tổ chức một mô hình thành một loạt các hướng nhìn, thể hiện các khía cạnh khác nhau của hệ thống Chỉ khi kết hợp tất cả các hướng nhìn lại với nhau, người ta mới co được một bức tranh trọn vẹn về hệ thống Một hướng nhìn không phải là một hình vẽ, nội dung của nó được miêu tả qua các biểu đồ, đây là những hình vẽ chứa đựng các phần tử mô hình hóa Một biểu đồ bình thường chỉ trình bày một phần nội dung của một hướng nhìn, và một hướng nhìn được định nghĩa với rất nhiều biểu đồ
Các đặc điểm cơ bản của hệ thống hướng đối tượng
a, Lớp và đối tượng
Lớp (Class) – Mẫu để xác định trường hợp hoặc các đối tượng cụ thể
Đối tượng (Object) – Mô tả của một lớp
Thuộc tính (Attributes) – Mô tả cho đối tượng
Chức năng (Behaviors) – Xác định các đối tượng có thể làm gì
b, Phương thức và message
Phương thức (Method) thực hiện chức năng của đối tượng Tương tự như một hàm hoặc một thủ tục
Message được gửi khi một phương thức được kích hoạt
c, Tóm lược và ẩn thông tin
Tóm lược: Kết hợp dữ liệu và quá trình thành một thực thể
Trang 28 Ẩn thông tin: Chỉ có những thông tin cần thiết để sử dụng một module phần mềm mới được công bố cho người sử dụng
d, Thừa kế
Các lớp super hoặc các lớp cơ bản là những lớp mở đầu của hệ thống phân cấp các lớp
Các lớp con hoặc các lớp cụ thể được thừa kế từ các lớp này
Các lớp con được thừa kế các thuộc tính và phương thức từ các lớp cao hơn trong hệ thông phân cấp lớp
e, Đa hình thái và liên kết động
Đa hình thái: Một thông điệp có thể được giải thích khác nhau bởi các đối tượng khác nhau
Liên kết động: Nhập vào chậm trễ hoặc lựa chọn phương pháp cho một đối tượng được thực hiện khi thời gian bắt đầu chạy
Liên kết tĩnh: Loại của đối tượng được xác định tại thời điểm biên dịch
Ưu nhược điểm của phân tích thiết kế hướng đối tượng
Trang 30 KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Khảo sát hệ thống
Giới thiệu
Đại học Thái Nguyên được thành lập theo Nghị định số 31/CP ngày 04/4/1994 của Chính phủ trên cơ sở tổ chức, sắp xếp lại các trường đại học trên địa bàn thành phố Thái Nguyên
Đại học Thái Nguyên là một trong 05 Đại học của Việt Nam thực hiện theo
mô hình Đại học hai cấp, được giao trọng trách là trung tâm đào tạo nguồn nhân lực cho các tỉnh, các trường đại học, cao đẳng, trung học chuyên nghiệp và dạy nghề trên địa bàn Đồng thời, Đại học thực hiện nhiệm vụ nghiên cứu khoa học, chuyển giao công nghệ góp phần quan trọng trong việc phát triển kinh tế - chính trị
- văn hóa – xã hội của vùng trung du, miền núi phía Bắc
Hiện nay Đại học Thái Nguyên gồm một số trường đại học, cao đẳng thành viên, bao gồm:
+ Trường đại học công nghệ thông tin và truyền thông
+ Khoa ngoại ngữ
+ Khoa quốc tế
+ Trường đại học khoa học
+ Trường đại học kinh tế và quản trị kinh doanh
+ Trường đại học sư phạm
+ Trường đại học kĩ thuật công nghiệp
+ Trường đại học nông lâm
+ Trường đại học y dược
+ Trường cao đẳng kinh tế- kĩ thuật
Đánh giá hiện trạng và đề xuất hệ thống mới
Theo một số tài liệu thống kế, Đại học Thái Nguyên hiện tại có khoảng hơn
30
Trang 3155.000 sinh viên đang học tập và cư trú tại khu vực Thái Nguyên Do số lượng học sinh, sinh viên lớn nên yêu cầu về việc tìm nhà trọ của sinh viên là rất cao, bên cạnh đó số lượng sinh viên ra trường cần tìm người để chuyền nhượng phòng trọ cũng rất cao Hiện tại việc tìm kiếm và chuyển nhượng phòng trọ vẫn đang được thực hiện một các rất bộc phát và thủ công Sinh viên sẽ phải đi hỏi từng khu vực một để tìm kiếm phòng trọ thích hợp theo yêu cầu của mình Việc tìm kiếm thủ công như vậy rất mất thời gian và công sức.
Do đó, yêu cầu thực tế là cần phải xây dựng một trang web giúp sinh viên có thể tìm kiếm và đặt phòng trọ một cách dễ dàng, các thông tin về nhà trọ cần phải đầy đủ và chính xác Ngoài ra nó còn giúp những hộ kinh doanh nhà trọ có thể dễ dàng quảng bá về nhà trọ và quản lý thông tin sinh viên, cũng như nhà trọ
Hệ thống cần xây dựng một cách khoa học, giao diện thân thiện với người dùng, các chức năng tương tác với yêu cầu thực tế của sinh viên Hệ thống có thể tìm kiếm phòng trọ theo các khu vực nhất định, theo giá phòng,…
Phân tích hệ thống
Usecase tổng quan
Trang 32Dùng để quản lý các thông tin lien quan đến thành viên, như thông tin về tài khoản, các bài mà thành viên đã đăng, hay các bài mà thành viên đã xem,…
32
Trang 332 Quản trị
viên
Quản lý bài viết
Dùng để quản lý các thông tin lien quan đến bài viết như: ngày đăng bài, ngày hết hạn hay phê duyệt cho bài viết được hiển thị hay không,…
3 Quản trị
viên, thành
viên
Thống kê Thống kê các thông tin của website như
lượng người truy cập, số lượng bài viết, thành viên,…
Tìm kiếm Cho phép người sử dụng có thể tìm
kiếm các thông tin trên website
5 Thành viên Đăng bài Cho phép thành viên đăng bài lên
8 Khách Xem phòng trọ Cho phép người khách ghé thăm trang
web có thể xem thông tin nhà trọ
Trang 34 Đặc tả Usecase
Use case đăng nhập hệ thống
Tác nhân Quản trị viên, Thành viên
Mô tả Cho phép các thành viên của hệ thống đăng
nhập vào hệ thống
Tiền điều kiện Người dùng phải có tài khoản trên hệ thống
Luồng sự kiện chính
Vào trang đăng nhập hệ thống
Hệ thống hiển thị trang đăng nhập
Người quản trị nhập username và password
Use case quản lý thành viên
Mô tả Use case này mô tả cách thức người quản trị
quản lý như: Thêm, sửa, xóa các thành viên
Tiền điều kiện Người quản trị website đã đăng nhập vào
trang quản trị
34
Trang 35Luồng sự kiện chính
Người quản trị website chọn chức năng quản lý thành viên Hệ thống hiển thị danh sách các thành viên
Lựa chọn thêm mới, sửa thông tin hay xóa thông tin một thành viên nào đó
Luồng sự kiện phụ Người quản trị nhập thông tin không hợp lệ
hệ thống sẽ thông báo lỗi và yêu cầu nhập lại
Trang 36 Use case quản lý bài viết
Mô tả Use case này mô tả cách thức người quản trị
quản lý như: Thêm, sửa, xóa các bài viết
Tiền điều kiện Người quản trị website đã đăng nhập vào trang
quản trị
Luồng sự kiện chính
Người quản trị website chọn chức năng quản lý bài viết Hệ thống hiển thị danh sách các bài viết
Lựa chọn thêm mới, sửa thông tin hay xóa thông tin một bài viết nào đó
Luồng sự kiện phụ Người quản trị nhập thông tin không hợp lệ hệ
thống sẽ thông báo lỗi và yêu cầu nhập lại
Use case đăng bài
thống sẽ hiển thị lỗi và bắt nhập lại
36
Trang 38 Use case quản lý thông tin
Mô tả
Use case này cho phép người dùng quản lý các thông tin tài khoản, các bài viết đã đăng, các phòng đã đặt,…
Tiền điều kiện Người dùng phải có tài khoản và đăng nhâp
Luồng sự kiện phụ Người dùng nhập không đúng thông tin hệ
thống sẽ hiển thị lỗi và bắt nhập lại
vào hệ thống trước
Luồng sự kiện chính Người dùng chọn chức năng đặt phòng.
Thực hiện nhập các thông tin theo yêu cầuLuồng sự kiện phụ Người dùng nhập không đúng thông tin hệ
thống sẽ hiển thị lỗi và bắt nhập lại
Use case xem phòng trọ
Mô tả Use case này cho phép người dùng xem các
phòng trọ có trên hệ thốngTiền điều kiện Truy cập vào hệ thống
Luồng sự kiện chính Người dùng xem danh sách nhà trọ, và
chọn nhà trọ cần xem chi tiết
38
Trang 39 Use case xem thành viên
Mô tả Use case này cho phép người dùng xem thông
tin của các thành viên trên hệ thốngTiền điều kiện Người dùng phải truy cập vào hệ thống
Luồng sự kiện chính Người dùng chọn danh sách thành viên.
Chọn thành viên muốn xem thông tin
Use case đăng kí thành viên
Mô tả Use case này cho phép người dùng đăng kí trở
thành thành viên trên hệ thốngTiền điều kiện Người dùng phải truy cập vào hệ thống
Luồng sự kiện chính
Người dùng chọn chức năng đăng kí
Nhập thông tin theo yêu cầu
Kết thúcLuồng sự kiện phụ Người dùng nhập không đúng sẽ hiển thị
lỗi và bắt nhập lại