MỤC LỤC
LỜI NÓI ĐẦU 1
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 4
1.1 TỔNG QUAN VỀ INTERNET VÀ THƯƠNG MẠI ĐIỆN TỬ 4
1.1.1 TỔNG QUAN VỀ INTERNET 4
1.1.2 THƯƠNG MẠI ĐIỆN TỬ 5
1.2 PHP VÀ VIỆC XÂY DỰNG CÁC ỨNG DỤNG TRÊN WEB 7
1.2.1 GIỚI THIỆU VÀ SỬ DỤNG PHP 7
1.2.2 NGÔN NGỮ PHP 8
1.3 CƠ SỞ DỮ LIỆU VÀ PHƯƠNG PHÁP TRUY XUẤT CSDL MYSQL 20
1.3.1 CÁC KHÁI NIỆM CƠ BẢN 20
1.3.2 MYSQL VÀ PHƯƠNG PHÁP TRUY XUẤT CSDL MYSQL 22
CHƯƠNG 2 PHÂN TÍCH HỆ THỐNG 28
2.1 CƠ SỞ LÝ THUYẾT 28
2.1.1 Nghiên cứu – khảo sát hệ thống cũ để làm gì ? 28
2.1.2 Chiến lược điều tra và Quy trình khảo sát hệ thống 28
2.1.3. Xây dựng dự án 30
2.2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG 30
2.2.1. Biểu đồ phân cấp chức năng 30
2.2.2. Biểu đồ luồng dữ liệu 31
2.2.3. Phân rã luồng dữ liệu theo mức 33
2.3 PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU 33
2.3.1. Sơ đồ thực thể 33
2.3.2. Các thành phần của sơ đồ thực thể 34
2.4 MÔ TẢ HỆ THỐNG KHẢO SÁT 35
2.4.1. Hệ thống bán hàng trực tiếp 35
2.4.2. Hệ thống bán hàng qua mạng 35
2.5 MỘT SỐ SƠ ĐỒ 37
2.5.1. Sơ đồ phân cấp chức năng 37
2.5.2. Biểu đồ mức khung cảnh 38
2.5.3. Biểu đồ mức đỉnh 38
2.5.4. Biểu đồ mức dưới đỉnh - chức năng quản lý người dùng 39
2.5.5. Biểu đồ mức dưới đỉnh – chức năng xử lý đơn hàng 40
2.5.6.Biểu đồ liên kết thực thể 41
CHƯƠNG 3 HỆ THỐNG BÁN HÀNG TRỰC TUYẾN 42
KẾT LUẬN 45
TÀI LIỆU THAM KHẢO 46
47 trang |
Chia sẻ: netpro | Lượt xem: 1747 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Đồ án Nghiên cứu xây dựng một số chức năng của wesbsite bán hàng trên Internet dựa trên ngôn ngữ lập trình PHP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
u ngoặc đợn (‘.
Chú ý : các biến giá trị sẽ không được khai triển trong xâu giữa 2 dấu ngoặc đơn.
d. Mảng
Mảng thực chất là gồm 2 bảng : bảng chỉ số và bảng liên kết. Mảng là biến dữ liệu lưu trữ tập hợp dữ liệu gồm nhiều phần tử, mỗi phần tử chứa một giá trị như text, number...hay một mảng khác.
Mỗi phần tử trong mảng đều có một chỉ mục chính và vị trí của phần tử đó trong mảng. Phần tử đầu tiên trong mảng có chỉ mục là 0. Có thể duyệt trên phần tử mảng bằng các phát biểu vòng lặp
Mảng 1 chiều :
Có thể dùng hàm : list() hoặc array() hoặc liệt kê các giá trị của từng phần tử trong mảng để tạo mảng. Có thể thêm các giá trị vào mảng để tạo thành 1 mảng. Có thể dùng các hàm asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), and uksort() để sắp xếp mảng. Tùy thuộc vào sắp xếp theo kiểu gì.
Mảng nhiều chiều:
Mảng nhiều chiều được biết đến như một bảng dữ liệu,ma trận lưới hai chiều, ba chiều. Mỗi phần tử trong mảng có thể là một mảng con. Để có thể khai báo mảng hai chiều ta có thể sử dụng cú pháp :
$products = array(
Array( “tir”,”tires”,100),
Array(“cor”,”concord”,1000),
Array(“boe”,”boeing”,5000),
Để gán giá trị vào mảng hai chiều, ta cũng có thể thực hiện gán giá trị cho từng phần tử ứng với hàng thứ i và cột thứ j như sau :
$products[0][0] = “A”;
$products[0][1] = “b”;
Biến và các giá trị
PHP quy định một biến được biểu diễn bắt đầu bằng dấu $, sau đó là một chữ cái hoặc dấu gạch dưới.
a. Một số biến đã được tạo sẵn
argv : Mảng tham số truyền cho script. Khi đoạn script chạy bằng dòng lệnh, tham số này sẽ được dùng giống như C để truy nhập các tham số trên dòng lệnh.
argc : số các tham số được truyền. Dùng với argv;
PHP_SELF : tên của đoạn mã script đang thực hiện. Nếu PHP đang được chạy từ dòng lệnh thì tham số này không có giá trị.
HTTP_COOKIE_VARS: một mảng các giá trị được truyền tới script hiện tại bằng HTTP cookie. Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt hoặc chỉ dẫn
HTTP_GET_VARS: Mảng các giá trị truyền tới script thông qua phương thức HTTP GET. Chỉ có tác dụng nếu "track_vars" trong cấu hình được đặt hoặc chỉ dẫn
b. Phạm vi giá trị
PHP coi 1 biến có một giới hạn. Để xác định một biến toàn cục (global) có tác dụng trong một hàm, ta cần khai báo lại. Nếu không giá trị của biến sẽ được coi như là cục bộ trong hàm.
Ví dụ: $a = 1;
$b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b;}
Sum ();
echo $b;
Khi có khai báo global ở trên, $a và $b được cho biết đó là những biến toàn cục. Nếu không có khai báo global, $a và $b chỉ được coi là các biến bên trong hàm Sum(). Điều này khác với C. Một cách khác để dùng biến toàn cục trong 1 hàm là ta dùng mảng $GLOBAL của PHP
Ví Dụ (ở trên sẽ có thể viết như sau) :
$a = 1;
$b = 2;
Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];}
Sum ();
echo $b;
Một chú ý khác là khai báo static. Với khai báo này bên trong một hàm với 1 biến cục bộ, giá trị của biến cục bộ đó sẽ không bị mất đi khi ra khỏi hàm.
Ví dụ:
Function Test () {
static $a = 0;
echo $a;
$a++;}
Với khai báo như trên, $a sẽ không mất đi giá trị sau khi thực hiện lời gọi hàm Test() mà $a sẽ được tăng lên 1 sau mỗi lần gọi hàm Test().
c. Tên biến
Một biến có thể gắn với 1 cái tên .
Ví dụ:
$a = "hello";
$$a = "world";
==> $hello = "world"
và echo "$a ${$a}";
echo "$a $hello"; Kết quả ra sẽ là : hello world.
Chú ý : bạn có thể gặp phải trường hợp không rõ ràng khi sử dụng cách này với mảng . Ví dụ: $$a[1] sẽ hiểu là bạn muốn dùng $a[1] như 1 biến hay dùng $$a như 1 biến với [1] là chỉ số. Để tránh trường hợp này , cần có sự phân biệt rõ bằng dấu { }.
Ví dụ: ${$a[1]} hoặc ${$a}[1].
d. Các giá trị bên ngoài phạm vi PHP
HTML Form : khi 1 form gắn với 1 file php qua phương thức POST
Ví dụ:
Name:
PHP sẽ tạo 1 biến $name bao gồm mọi giá trị trong trường Name của Form. PHP có thể hiểu được một mảng một chiều gồm các giá trị trong một form. Vì vậy, có thể nhóm những giá trị liên quan lại với nhau hoặc sử dụng đặc tính này để nhận các giá trị từ một đầu vào tuỳ chọn.(multi select input). Khi tính chất track_vars được đặt trong cấu hình hoặc có chỉ dẫn . các giá trị được submit được lấy ra qua phương thức GET và POST có thể lấy từ hai mảng toàn cục $HTTP_POST_VARS và $HTTP_GET_VARS
Một số chú ý
a. IMAGE SUBMIT:
Khi dùng một image để thực hiện submit, có thể dùng tag như sau:
Khi người dùng click chuột trên ảnh, form tương ứng sẽ được gửi tới server kèm theo hai giá trị thêm vào : sub_x và sub_y. Những biến này sẽ lưu giữ toạ độ mà người dùng đã click chuột trên ảnh. Người lập trình có kinh nghiệm sẽ thấy rằng trên thực tế, trình duyệt gửi các giá trị có chu kỳ thời gian nhưng PHP đã tạo cảm giãc gần như việc gửi các giá trị đó là liên tục.
b. HTTP Cookies :
PHP hỗ trỡ HTTP cookies theo định dạng của Netscape. Cookies file lưu giữ thông tin của các trình duyệt từ xa và qua đó có thể theo dõi hay nhận biết người sử dụng. Có thể dùng Cookies bằng hàm SetCookie(). Hàm này cần được gọi trước khi thông tin được gửi tới trình duyệt. Bất kỳ cookie nào gửi tới bạn từ máy khách (client) sẽ tự động chuyển thành dữ liệu của phương thức GET và POST.Nếu muốn có nhiều giá trị trong một cookie, chỉ cần thêm vào dấu [ ] với tên của cookie.
Ví dụ: SetCookie ("MyCookie[]", "Testing", time()+3600);
Chú ý rằng cookie sẽ thay thế cho cookie cùng tên, trừ trường hợp khác đường dẫn hoặc miền.
c. BIẾN MÔI TRƯỜNG:
PHP tự động tạo biến cho các biến môi trường như một biến bình thường của PHP. Ví dụ:
echo $HOME; /* Shows the HOME environment variable, if set. */
Vì thông tin tới qua các phương thức GET, POST , Cookie cũng tự đông tạo các biến PHP, thỉnh thoảng bạn nên đọc 1 biến từ môi trường để chắc chắn rằng bạn có đúng version. Hàm getenv() và putenv() giúp bạn đọc và ghi với các biến môi trường.
d. DẤU CHẤM TRONG TÊN BIẾN
Bình thường, PHP không thay đổi tên biến khi biến đó được truyền vào đoạn script. Tuy nhiên, nên chú ý rằng dấu chấm (.) không phải là một ký hiệu hợp lệ trong tên biến đối với PHP. Vì vậy, PHP sẽ tự động thay thế các dấu chấm bằng dấu gạch dưới.(_)
Biểu thức
Biểu thức là một phần quan trọng trong PHP. Phần lớn mọi thứ chúng ta viết đềuđược coi như một biểu thức. Điều này có nghĩa là mọi thứ đều có một giá trị. Một dạng cơ bản nhất của biểu thức bao gồm các biến và hằng số. PHP hỗ trợ 3 kiểu giá trị cơ bản nhất: số nguyên, số thực, và xâu. Ngoài ra còn có mảng và đối tượng. Mỗi kiểu giá trị này có thẻ gán cho các biến hay làm giá trị trả ra của các hàm. Có thể thao tác với các biến trong PHP giống như với trong C.
Ví dụ:
$b = $a = 5
$c = $a++; /*
$e = $d = ++$b;
Các câu lệnh
a. If ....else....else if
if (điều kiện) { do something; }
elseif ( điều kiện ) { do something;}
else { do something;}
b. Vòng lặp
while ( DK) { ...}
do { .....} white ( DK );
for (bieuthuc1; bieuthuc2; bieu thuc3) {.....}
Với PHP4:
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
c. Break và Continue
break : thoát ra khỏi vòng lặp hiện thời
continue : bỏ qua vòng lặp hiện tại, tiếp tục vòng tiếp theo.
d. Switch
switch (tên biến) {
case trường hợp 1: ..... break;
case trường hợp 2: ..... break;
case trường hợp 3: ..... break;
default :}
Hàm
a. Tham trị
Ví dụ: function takes_array($input) {
echo "$input[0] + $input[1] = ", $input[0]+$input[1];}
b. Tham biến
function add_some_extra(&$string) {
$string .= 'and something extra.';}
c. Tham số có giá trị mặc định
function makecoffee ($type = "cappucino") {
return "Making a cup of $type.\n";}
Chú ý : khi sử dụng hàm có đối số có giá trị mặc định, các biến này sẽ phải nằm về phía phải nhất trong danh sách đối số.
Ví dụ:
Sai :
function makeyogurt ($type = "acidophilus", $flavour) {
return "Making a bowl of $type $flavour.\n";}
Đúng :
function makeyogurt ($flavour, $type = "acidophilus") {
return "Making a bowl of $type $flavour.\n"; }
d. Giá trị trả lại của hàm
Có thể là bất kỳ giá trị nào, Tuy vây, không thể trả lại nhiều giá trị riêng lẻ nhưng có thể trả lại một mảng các giá trị.
Ví dụ: Để trả lại một tham trỏ, bạn cần có dấu & ở cả khai báo của hàm cũng nhớ giá trị trả lại.
function &returns_reference() {
return &$someref;}
$newref = &returns_reference();
e. Hàm biến
PHP cho phép sử dụng hàm giá trị nghĩa là khi một biến được goi có kèm theo dấu ngoặc đơn , PHP sẽ tìm hàm có cùng tên với giá trị biến đó và thực hiện.
Ví dụ: <?php function foo() {
echo "In foo()\n";}
function bar( $arg = '' ) {
echo "In bar(); argument was '$arg'.\n";}
$func = 'foo';
$func();
$func = 'bar';
$func( 'test' ); ?>
Các toán tử
- PHP có các toán tử cho các phép số học : + - * / %
- Các toán tử logic : and or xor ! && ||
- Toán tử thao tác với bit : & | ^ ~ >
- Toán tử so sánh : ==, != , ,=, ==== (bằng và cùng kiểu - PHP4 only),
- !== (khác hoặc khác kiểu - PHP4 only)
Toán tử điều khiển lỗi : @ - khi đứng trước 1 biểu thức thì các lỗi của biểu thức sẽ bị bỏ qua và lưu trong $php_errormsg
Ví dụ: <?php $res = @mysql_query ("select name, code from 'namelist") or-
die ("Query failed: error was '$php_errormsg'"); ?>
Toán tử thực thi : ` `- PHP sẽ thực hiện nội dung nằm giữa 2 dấu ` như một lệnh shell. Trả ra giá trị là kết quả thực hiện lệnh
Ví dụ: $output = `ls -al`; //liệt kê các file bằng lệnh Linux
echo "$output";
Lớp và đối tượng
Class: là tập hợp các biến và hàm làm việc với các biến này. Một lớp có định dạng như sau:
<?php
class Cart {
var $items;
function add_item ($artnr, $num) {
$this->items[$artnr] += $num; }
function remove_item ($artnr, $num) {
if ($this->items[$artnr] > $num) {
$this->items[$artnr] -= $num;
return true;}
else {return false;} } } ?>
Lớp Cart ở đây là một kiểu dữ liệu, vì vậy ta có thể tạo một biến có kiểu này với toán tử new
Ví dụ: $cart = new Cart;
$cart->add_item("10", 1);
Lớp có thể được mở rộng bằng những lớp khác. Lớp mới thu được có tất cả những biến và hàm của cá lớp thành phần. Thực hiện việc thừa kế này bằng từ khoá "extends". Chú ý : kế thừa nhiều lớp 1 lúc không được chấp nhận.
Ví dụ: class Named_Cart extends Cart {
var $owner;
function set_owner ($name) {
$this->owner = $name;} }
Các hàm khởi tạo của lớp được gọi tự động khi bạn gọi toán tử new. Tuy nhiên, các hàm khởi tạo của lớp cha sẽ không được gọi khi hàm khởi tạo của lớp con được gọi. Hàm khởi tạo có thể có đối số hoặc không.
Tham chiếu
Tham chiếu trong PHP có nghĩa là lấy cùng 1 giá trị bằng nhiều tên biến khác nhau. Khác với con trỏ trong C, tham chiếu là một bảng các bí danh. Chú ý :trong PHP, tên biến và nôi dung của biến là khác nhau. Vì vậy, cùng một nội dung có thể có nhiều tên khác nhau.Tham chiếu PHP cho phép bạn tạo 2 biến có cùng nội dung.
Ví dụ: $a = & $b; -- > $a, $b è trỏ tới cùng 1 giá trị.
Tham chiếu truyền giá trị bằng tham chiếu. Thực hiện việc này bằng cách tạo một hàm cục bộ và truyền giá trị được tham chiếu
Ví dụ: function foo (&$var) {
$var++;}
$a=5;
foo ($a); --> Kết quả : $a = 6;
Giá trị trả lại của một hàm bằng tham chiếu rất tiện khi bạn muốn sử dụng làm để tìm một giá trị trong một phạm vi nào đó.
Ví dụ: function &find_var ($param) {
...code...
return $found_var;}
$foo =& find_var ($bar);
Khi bạn muốn loại bỏ mối liên kết giữa tên biến và giá trị của biến, sử dụng hàm unset()
Ví dụ: $a = 1;
$b =& $a;
unset ($a);
Thao tác với ảnh
PHP không bị giới hạn với mã HTML được trả lại cho trình duyệt. Vì vậy, có thể dùng PHP để tạo và thao tác với các file ảnh có định dạng khác nhau, bao gồm :gif, png, jpg, wbmp, and xpm. PHP có thể đưa các file ảnh trực tiếp đến các trình duyệt. Bạn sẽ cần biên dịch PHP với thư viện GD bao gồm các hàm thao tác với ảnh. GD và PHP có thể sẽ cần có thêm 1 số thư viện khác, tuỳ thuộc vào định dạng của file ảnh cần dùng.
CƠ SỞ DỮ LIỆU VÀ PHƯƠNG PHÁP TRUY XUẤT CSDL MYSQL
1.3.1 CÁC KHÁI NIỆM CƠ BẢN
1.3.1.1 khái niệm
Cơ sở dữ liệu(csdl) là một lĩnh vực rất quan trọng của công nghệ thông tin mà nếu thiếu nó nhiều vấn đề đặt ra sẽ khó giải quyết được. Cơ sở dữ liệu được định nghĩa là kho thông tin về một chủ đề, được tổ chức hợp lý để dễ dàng quản lý và truy tìm. Bất kỳ kho thông tin nào đáp ứng được yêu cầu này đều có thể coi là một cơ sở dữ liệu.
1.3.1.2 Quản trị cơ sở dữ liệu
Chương trình quản trị csdl là một chương trình ứng dụng trên máy tính các công cụ để truy tìm, sửa chữa, xoá và chèn thêm dữ liệu. Các chương trình này cũng có thể dùng để tạo lập một csdl và tạo ra các báo cáo, thống kê. Các chương trình quản trị csdl liên quan khá thông dụng hiện nay tại Việt Nam là Foxpro, Access cho ứng dụng nhỏ, DBL, MySQL và Oracle cho ứng dụng vừa và lớn.
Quản trị csdl quan hệ là một cách quản lý csdl trong đó dữ liệu được lưutrữ trong các bảng dữ liệu hai chiều gồm các cột và các hàng, có thể liên quan với nhau nếu các bảng đó có một cột hoặc một trường chung nhau.
Hệ quản trị csdl là một quá trình xử lý xoay quanh các vấn đề sau đây:
+ Lưu trữ dữ liệu
+ Truy nhập dữ liệu
+ Bảo đảm tính toàn vẹn của dữ liệu
Ba vấn đề chính ở trên có mối quan hệ mật thiết, phụ thuộc lẫn nhau và chúng được liệt kê theo thứ tự thực hiện mỗi ứng dụng. Mô hình csdl quan hệ (Relationship Database Management System -RDMS) được xây dựng làm đơn giản hoá quá trình lưuvà đọc dữ liệu RDMS cung cấp khả năng giao tiếp tốt với dữ liệu và giúp người lập trình tự do trong lĩnh vực quản lý truy cập csdl.
Sau đây là các bước xây dựng một csdl theo mô hình cơ sở dữ liệu quan hệ:
+ Tổ chức dữ liệu theo nhóm logic(table)
+ Xác định các mối quan hệ giữa các table
+ Tạo tập tin cơ sở dữ liệu và định nghĩa cấu trúc của các table trong csdl.
+ Lưu dữ liệu
Hai bước đầu là hai bước thiết kế csdl và đây là hai bước cực kỳ quan trọng. Nếu được thiết kế tốt, các khía cạnh khác sẽ được giải quyết dễ dàng hơn; ngược lại việc khai thác csdl sẽ không hiệu quả và chương trình sẽ có những lỗi rất khó phát hiện.
Các bước chính khi tiến hành thiết kế một cơ sở dữ liệu:
Xác định dữ liệu cần trong ứng dụng
Xác định nguồn gốc dữ liệu
Tổ chức dữ liệu thành các nhóm logic
Tiêu chuẩn hoá dữ liệu và các mối quan hệ giữa chúng
Xác định cách sử dụng các bảng
MYSQL VÀ PHƯƠNG PHÁP TRUY XUẤT CSDL MYSQL
Khái niệm
MySQL là cơ sở dữ liệu được sử dụng cho các ứng dụng Web có quy mô vừa và nhỏ. Tuy không phải là một csdl lớn nhưng cũng có trình giao diện trên Windows hay Linux, cho phép người dùng có thể thao tác các hành động có thể liên quan đến cơ sở dữ liệu.
Cũng giống như các hệ cơ sở dữ liệu khác, khi làm việc với cơ sở dữ liệu MySQL, bạn đăng ký kết nối, tạo cơ sở dữ liệu, quản lý người dùng, phân quyền sử dụng, thiết kế đối tượng Table của cơ sở dự liệu và xử lý dữ liệu.Để sử dụng các phát biểu hay các thao tác trên cơ sở dữ liệu, bạn có thể sử dụng trình quản lý dạng đồ họa hay dùng dòng lệnh còn gọi là Command line.
Phương pháp truy xuất CSDL MySQL
a. Một số khái niệm
Để hiểu được chương này một cách rõ ràng, trước tiên cần phải có một số kiến thức cơ bản về cơ sở dữ liệu quan hệ. Nếu đã từng làm việc với MS SQL Server hay Access chúng đều có hỗ trợ việc tạo CSDL rất là dễ dàng với giao diện trực quan.
Đối với MySQL cũng có thể sử dụng công cụ trực quan đó là phpMyadmin. Tuy nhiên, phải học cách thao tác với CSDL bằng dòng lệnh. Muốn chương trình, trong lúc chạy thao tác tự động với CSDL thì cần hàng tá lệnh PHP/SQL để thực hiện các yêu cầu của chương trình. Trước khi chúng ta tạo các table trong CSDL của MySQL, có một vài thứ cần phải hiểu rõ. Những khái niệm cơ bản sau đây rất quan trọng
+ Null:
Việc đầu tiên phải làm trong việc thiết kế một table là quyết định xem một field có cho phép giá trị NULL hay không. Trong CSDL quan hệ, giá trị NULL của một field đồng nghĩa với nó có thể chấp nhận không có dữ liệu trong đó. Nên nhớ rằng giá trị NULL khác với giá trị của một chuỗi không có ký tự trong đó hoặc số có giá trị 0.
+ Index:
Người ta nói rằng ưu điểm vượt trội của Hệ quản trị CSDL quan hệ là nó thực hiện các việc tìm kiếm hay sắp xếp những khối lượng dữ liệu khổng lồ một cách rất nhanh chóng. Sở dĩ nó thực hiện được việc này là do nó có chứa một cơ cấu lưu trữ dữ liệu gọi là Index. Index cho phép database server tạo được một field đặc trưng tìm kiếm với tốc độ khó ngờ. Các INDEX đặc biệt hỗ trợ một hoặc một nhóm các record trong một table chứa số lượng lớn các record. Chúng cũng hỗ trợ tốc độ cho các hàm liên kết hoặc tách nhóm dữ liệu nhmin(), max().
Với các tính năng vượt trội này, tại sao người ta lại không tạo index trong tất cả các field của một table? Có một số điều trở ngại như sau:
Index có sẽ làm chậm một số tiến trình trong CSDL. Mỗi lần bảo trì các index Database Server phải mất khá nhiều thời gian. Có một vài trường hợp chính các index làm cho chúng chậm hẳn.
Đối với một table có gắn khoá chính (primary key) thì thông thường field có khoá này được dùng vào việc tìm kiếm cho nên index sẽ được gán tự động trên field này.
+ Lệnh CREATE Database:
Trước khi tạo được một Table thì điều tất yếu là phải tạo được một Database. Lệnh CREATE được sử dụng như sau:
mysql> create database database_name;
Khi đặt tên cho database, hay đặt tên cho field và index gì đấy tránhtrường hợp đặt những cái tên khó nhớ hoặc dễ bị lẫn lộn. Đối với một số hệ thống Unix chẳng hạn có sự phân biệt chữ HOA/thường thì CSDL chạy trên nó cũng ảnh hưởng theo. Chẳng hạn tên của table và field đều đặt chữ thường chẳng hạn. Nên nhớ là không được sử dụng khoảng trắng.
+ Lệnh USE Database:
Sau khi đã tạo được một database mới trong database server, bắt đầu chọn nó để sử dụng cho công việc của mình.
+ Lệnh CREATE Table:
Lưu ý: Lệnh này thực hiện sau khi đã có lệnh CREATE Database.Một khi đã tạo và chọn database, việc tiếp theo là tạo một table
Đối với thuộc tính các field (cột) chúng ta cần bàn về:
- null hoặc not null
- default
Nếu không định nghĩa NULL hay NOT NULL thì NULL sẽ được chọn làm giá trị mặc định
b. Kiểu dữ liệu
Bây giờ chúng ta hãy bàn về các kiểu dữ liệu (type) gán cho field trong table. Có rất nhiều kiểu khác nhau chúng ta sẽ lần lượt khảo sát từng kiểu một.
+ Kiểu chuỗi văn bản:
MySQL có 7 kiểu dành cho dữ liệu kiểu chuỗi văn bản:
* char * varchar * enum
* tinytext * text
* mediumtext * longtext
+ Kiểu dữ liệu số:
MySQL có tất cả 7 kiểu số. Lưu ý rằng các kiểu sau đây là giống nhau:
* int/integer * tinyint
* mediumint * bigint
* float * double/double precision/real
* decimal/numeric
Đối với tất cả kiểu số, giá trị lớn nhất cho phép là 255. Đối với một số kiểu cho phép thể hiện các số 0 đứng đầu. Giả sử có một field có độ dài là10 thì số 25 trong ô dữ liệu sẽ được thể hiện 0000000025. Field số còn được định nghĩa là có dấu (signed) hoặc không dấu (unsigned). Mặc địch là có.
+ Kiểu dữ liệu ngày, giờ:
MySQL có 5 dạng ngày giờ:
* date _ time * datetime _ year
* timestamp * time
* year
c. Các loại table
MySQL hỗ trợ các dạng talble sau: ISAM, MyISAM, BDB và Heap. ISAM là dạng table xưa và trong các ứng dụng mới không được sử dụng. Dạng table mặc định là MyISAM. Cú pháp để khai báo loại table này là:
create table table_name type=table_type(
col_name column attribute);
Table dạng MyISAM có tốc độ tốt và tính ổn định cao. Không cần thiết phải định nghĩa một dạng table mới nào khác trừ phi cần dùng loại khác cho vì một lý do đặc biệt nào đó.Heap là dạng table thường trú trong bộ nhớ. Chúng không được lưu trữ trong đĩa cứng hay các thiết bị dùng để trữ tin.
+ Lệnh Alter table:
Nếu như muốn thay đổi các thành phần của table, sử dụng lệnh alter table. Cóthể thực hiện các thay đổi như : đổi tên table, field, index; thêm hoặc xoá field và index; định nghĩa lại các field và index. Cú pháp cơ bản của lệnh này là:
“ alter table table_name”
Các lệnh còn lại tuỳ thuộc vào thao tác mà chúng ta sẽ bàn tiếp theo đây:
+ Đổi tên Table
Cú pháp như sau:
alter table table_name rename new_table_name
+ Thêm và xoá cột trong Table
Khi thêm field vào trong table, cần phải có những định nghĩa cần thiết cho field đó. Từ phiên bản 3.22 của MySQL cho phép chọn vị trí để đặt field mới vào trong table. Chức năng này không bắt buộc.
alter table table_name add column column_name column attributes
+ Thêm và xoá Index
Có thể thêm index bằng cách sử dụng lệnh index, unique và primary key, tương tự Như việc sử dụng lệnh create vậy.
alter table my_table add index index_name (column_name1,column_name2, ...)
alter table my_table add unique index_name(column_name)
alter table my_table add primary key(my_column)
Cũng có thể bỏ index bằng cách sử dụng lệnh drop:
alter table table_name drop index index_name
alter table_name test10 drop primary key
+ Đổi thuộc tính của cột (field)
Thay đổi cách thành tố của field bằng lệnh change hoặc modify:
alter table table_name change original_column_name new_column_name int not null
Với MySQL phiên bản 2.22.16 trở đi có thể dùng lệnh modify:
alter table table_name modify 1 col_1 varchar(200)
+ Lệnh Insert
insert into table_name (column_1, column2, column3,...) values (value1, value2, value3 ...)
Nếu trong một fiedl cho phép giá trị NULL có thể không cần đưa vào trong lệnh INSERT. Thấy các chuỗi tên field và giá trị đều được đặt trong dấu ngoặc đơn (). Ngoài ra giá trị kiểu chuỗi phải được bao bọc bởi dấu nháy đơn. Có thể thoát ra khỏi dấu nháy đơn bằng cách sử dụng 2 dấu ngoặc đơn đóng mở ().
+ Lệnh Update
Lệnh UPDATE có một chút khác biệt so với các lệnh mà chúng ta đã khảo sát, nó thực hiện thông qua lệnh WHERE. Cú pháp thông thường là:
update table_name set col_1=value1, col_2=value_2 where col=value
CHƯƠNG 2 PHÂN TÍCH HỆ THỐNG
2.1 CƠ SỞ LÝ THUYẾT
2.1.1 Nghiên cứu – khảo sát hệ thống cũ để làm gì ?
Khảo sát hệ thống là bước đầu tiên, cơ bản nhất trong quá trình phát triển bất cứ một hệ thống nào. Một hệ thống mới được xây dựng lên nhằm thay thế một hệ thống cũ đã bộc lộ những bất cập và không phù hợp với yêu cầu công việc đặt ra nữa. Khảo sát hiện trạng của hệ thống nhằm mục đích :
+ Tiếp cận với nghiệp vụ chuyên môn, môi trường hoạt động của hệ thống.
+ Tìm hiểu các chức năng, nhiệm vụ và cung cách hoạt động của hệ thống.
+ Chỉ ra các chỗ hợp lý của hệ thống cần kế thừa, các chỗ bất hợp lý cần được nghiêm cứu khắc phục. Chính vì thế, việc khảo sát hệ thống cũ nhằm tạo ra hiệu quả cao nhất cho công việc, đáp ứng nhu cầu hoạt động của doanh nghiệp.
2.1.2 Chiến lược điều tra và Quy trình khảo sát hệ thống
a. Chiến lược điều tra
Một cuộc điều tra phải thực hiện theo một chiến lược đã được cân nhắc từ trước. Một chiến lược bao gồm các yếu tố sau:
Các nguồn thông tin điều tra.
Các phương pháp áp dụng cho mỗi nguồn thông tin điều tra.
Các quy trình điều tra thích hợp.
Sử dụng phương pháp phỏng vấn và nghiên cứu tài liệu viết
Phỏng vấn là phương pháp quan trọng trong công tác khảo sát hệ thống, quá trình này cho những thông tin mà việc quan sát hay nghiên cứu tài liệu không có được
Nghiên cứu tài liệu viết là quan sát hệ thống một cách gián tiếp từ đó ta có các hình dung tổng thể về hệ thống. Các tài liệu như: hóa đơn thanh toán, sổ ghi chép, báo cáo tổng kết doanh thu, quy chế nghiệp vụ...
Các nguồn điều tra
Các phương pháp điều tra
Các phương pháp mô hình hoá
Chọn các nguồn và các phương pháp
Chọn các quy trình điều tra thích hợp
Cách triển khai một chiến lược điều tra:
b. Quy trình khảo sát hệ thống
Bước 1: Khảo sát đánh giá hiện trạng của hệ thống cũ. Tìm hiều các hoạt động của hệ thống hiện tại nhằm xác định những thế mạnh và những yếu kém.
Bước 2: Đề xuất mục tiêu cho hệ thống mới. Xác định phạm vi ứng dụng và ưu nhược điểm của hệ thống dự kiến. Cần xác định rõ lĩnh vực mà hệ thống mới sẽ làm, những thuận lợi khó khăn khi cải tiến hệ thống.
Bước 3: Để xuất ý tưởng cho giải pháp mới có cân nhắc tính khả thi. Phác họa những giải pháp thỏa mãn những yêu cầu của hệ thống mới, đồng thời đưa ra đánh giá về mọi mặt để quyết định lựa chọn cuối cùng.
Bước 4: Vạch ra kế hoạch cho dự án cùng với dự trù tổng quát. Xây dựng kế hoạch bán hàng có hiệu quả trong giai đoạn tiếp theo. Dự trù nguồn tài nguyên ( tài chính, nhân sự, nguồn cung ứng hàng...) để triển khai dự án.
2.1.3. Xây dựng dự án
a. Mục tiêu của dự án
Một dự án có thể gắn với nhiều mục tiêu. Tuy nhiên việc xác định đúng mục tiêu của dự án là vô cùng quan trọng. Xây dựng dự án mới nhằm: khắc phục những yếu kém hiện tại, đáp ứng nhu cầu tương lại, mang lại lợi ích nghiệp vụ cao nhất, mang lại hiệu quả kinh tế cho doanh nghiệp.
b. Xây dựng giải pháp
Xây dựng một hệ thống sao cho hợp lý, có thể giải quyết nhiều công việc phức tạp nhưng không làm thay đổi nhiều cơ cấu tổ chức hoặt động căn bản của hệ thống cũ. Việc xây dựng dựa trên nhiều yếu tố :
Khả năng về nghiệp vụ.
Khả năng về kỹ thuật và công nghệ.
Khả năng về tài chính, nhân lực.
Hình thành các yếu tố đánh giá đối với hệ thống thông tin quản lý.
2.2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG
2.2.1. Biểu đồ phân cấp chức năng
Biểu đồ phân cấp chức năng (BPC) là công cụ biểu diễn việc phân rã có thứ bậc đơn giản các công việc cần thực hiện. Mỗi chức năng được ghi trong một khung và nếu cần s
Các file đính kèm theo tài liệu này:
- Phân tich thiết kế trang web bán điện thoại.docx