MỤC LỤC
LỜI NÓI ĐẦU.......................................................................................................2
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT....................................................................3
I. Mô hình 3 lớp trong lập trình website..........................................................3
II. Nguyên tắc hoạt động của website................................................................5
III. Website tĩnh....................................................................................................5
IV. Website động...................................................................................................6
V. Mô hình hướng đối tượng.............................................................................7
VI. Tổng quan về cơ sở dữ liệu quan hệ..............................................................18
VII..............................................................................................Giới thiệu MySQL
20
VIII..............................................................................................Giới thiệu về PHP
24
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG.....................................33
I. Mô tả CSDL Website tin tức.......................................................................33
II. Khảo sát hiện trạng và nhu cầu..................................................................34
III. Các bảng trong CSDL..................................................................................35
IV. Chi tiết các thuộc tính trong CSDL............................................................35
CHƯƠNG 3: THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH.........................38
1. Trang chủ......................................................................................................38
2. Module điện thoại........................................................................................39
3. Module máy tính..........................................................................................39
1
4. Module xe......................................................................................................40
5. Module admin...............................................................................................40
6. Module thêm mới bài viết............................................................................41
7. Module quản lý các liên kết.........................................................................42
8. Module thêm mới 1 liên kết.........................................................................43
9. Module xem liên kết.....................................................................................44
10. Module thêm mới liên kết............................................................................45
11. Module danh sách quản trị viên................................................................45
12. Module thêm mới quản trị..........................................................................47
TÀI LIỆU THAM KHẢO..................................................................................48
2
LỜI NÓI ĐẦU
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem
là một trong những yếu tố mang tính quyết định trong hoạt động của chính phủ,
tổ chức, cũng như các công ty. Nó đóng vai trò hết sức quan trọng, có thể tạo ra
những bước đột phá mạnh mẽ. Một trong số các ứng dụng nổi bật nhất của công
nghệ thông tin đó là Internet, Internet là một kho tài nguyên vô cùng phong phú
và đa dạng. Các dịch vụ của nó giúp cho con người ở khắp các châu lục trên thế
giới có thể trao đổi, cập nhật thông tin một cách nhanh chóng, chính xác và dễ
dàng. Các website trở thành một người bạn đáng tin cậy của những người sử
dụng mạng.
Làm thế nào để người đọc nắm bắt được thông tin về điện thoại, máy tính,
xe… Internet sẽ là đáp án có hiệu quả cao nhất để người đọc có thể tìm hiểu về
những thông tin công nghệ trong nước hay nước ngoài.
Thông tin công nghệ là một thông tin vô cùng quan trọng đối với người yêu
thích công nghệ. Nhưng muốn thu hút người đọc nhiều hơn nữa đến với công
nghệ chúng ta cần xây dựng một website giới thiệu về điện thoại, máy tính, xe…
Bắt nguồn từ ý tưởng này em đã chọn đề tài “Xây dựng website tin tức của công
ty lss” nhằm giới thiệu, quảng bá tới người đọc một cái nhìn sâu, chi tiết hơn về
các thông tin mới nhất về công nghệ trong và ngoài nước.
3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
I.
Mô hình 3 lớp trong lập trình website.
1. Khái niệm
- Mô hình 3 lớp MVC (mô hình 3 lớp thực thụ) là viết tắc của:
Model – View – controller.
- 3 thành phần tách biệt: Model – View – Controller. Mỗi thành phần
này hoạt đông tách biệt với 1 nhiệm vụ duy nhất và không bị phụ
thuộc vào các thành phần khác. Những thay đổi trong mỗi thành
phần sẽ không ảnh hưởng hoặc ảnh hưởng rất ít đến các thành
phần khác. Nhiệm vụ của mỗi thành phần như sau:
o Model: Model được phân nhiệm vụ truy xuất, xác nhận và
lưu trữ dữ liệu vào CSDL của ứng dụng. Tất cả những nhiệm
vụ logic đều được thực thi ở model
o View: View được phân nhiệm vụ hiển thị dữ liệu và nhận dự
liệu từ phía người dùng thông qua các điều khiển để tương
tác với model.
o Controller. Có thể nói đây là tầng quan trọng nhất trong 3
tầng, controller là tầng xử lý trung gian giữa View và Model.
Mọi yêu cầu từ phía người dùng được nhận thông qua View
(qua FORM HTML hoặc URL) và chuyển sang tầng
Controller xử lý. Tại đây nó tương tác với tầng model để
thực hiện các yêu cầu về dữ liệu (như việc gọi các thuộc
tính, các phương thức xử lý dữ liệu) sau đó nhận lại các
thông tin, dữ liệu được trả về từ model và hiển thị cho người
dùng thông qua View.
2. Ưu điểm
- Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều
nhóm được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho
đến lập trình đến tổ chức database. Giúp phát triển ứng dụng nhanh, đơn
giản, dễ nâng cấp…
4
- Bảo trì: với các lớp được phân chia theo như đã nói, thì các thành phần
cảu một hệ thông dễ được thay đổi, nhưng sự thay đổi có thể được cô lập
trong từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay kề của nó, chứ không
phát tán náo loạn trong cả chương trình.
- Mở rộng: Với các lớp được chia theo 3 lớp như đã nói, việc thêm chức
năng vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác.
3. Nhược điểm
- Đối với dự án nhỏ việc áp dụng mô hình MVC gây cồng kềnh, tốn thời
gian trong quá trình phát triển.
- Tốn thời gian trung chuyển dữ liệu của các tầng.
5
II.
Nguyên tắc hoạt động của website.
- Từ máy client gõ địa chỉ URL của trang web vào thanh địa chỉ của web
browser, khi đó web browser sẽ dựa vào tên domain để tìm kiếm ip của
web server (bằng cách dò trên DNS Server)
- Khi có ip, web browser sẽ gửi yêu cầu đến web server để lấy nội dung
trang web
- Web server sẽ xử lý yêu cầu của client: lấy nội dung của website mà
client yêu cầu để gửi client.
- Khi nhận được nội dung trang web thì web browser sẽ hiển thị lên cho
người dùng
- Trình duyệt web sẽ tách địa chỉ website ra làm ba phần:
Giao thức (http)
Máy chủ tên miền (www.webname.com)
Tên tệp (file.htm)
- Trình duyệt web liên hệ với máy chủ tên miền (DNS server) để phân giải
tên miền “www.webname.com” thành địa chỉ ip của web server
- Trình duyệt sẽ gửi tiếp 1 kết nối tới máy chủ địa chỉ ip tương ứng cổng
80.
- Dựa trên giao thức HTTP, trình duyệt gửi yêu cầu đến máy chủ, yêu cầu
tệp: http://webname.com/file.htm
- Máy chủ sẽ gửi đoạn text dạng html đến trình duyệt của web client.
Trình duyệt đọc các thẻ html, định dạng trang web và kết xuất ra màn
III.
hình.
Website tĩnh.
- Trang web tĩnh thường được xây dựng bằng các ngôn ngữ HTML,
DHTML,…
- Trang web tĩnh thường được dùng để thiết kế các trang web có nội dung
ít cần thay đổi và cập nhật.
- Website tĩnh là website chỉ bao gồm các trang web tĩnh và không có cơ
sở dữ liệu đi kèm.
- Website tĩnh thích hợp với cá nhân, tổ chức, doanh nghiệp vừa và nhỏ
mới làm quen với môi trường internet.
- Trang web tĩnh và website tĩnh các các ưu và nhược điểm cơ bản dưới
đây.
6
Ưu điểm cơ bản
- Thiết kế đồ họa đẹp: trang web tĩnh thường được trình báy ấn tượng và
cuốn hút hơn web động về phần mỹ thuật đồ họa vì chúng ta có thể hoàn
toàn tự do trình bày các ý tưởng về đồ họa và mỹ thuật trên toàn diện
tích từng trang web tĩnh.
- Tốc độ truy cập nhanh: tốc độ truy cập của người dùng vào các trang
web tĩnh nhanh hơn các trang web động vì không mất thời gian trong
việc truy vấn cơ sở dữ liệu như web động.
- Thân thiện hơn với các máy tìm kiếm: bởi vì địa chỉ url của các .html,
.htm... trong trang web tĩnh không chứa dấu chấm hỏi như trong web
động.
- Chi phí đầu tư thấp: chi phí xây dựng website tĩnh thấp hơn nhiều so với
website động vì không phải xây dựng các CSDL, lập trình phần mềm
cho web và chi phí cho việc thuê chỗ cho CSDL, chi phí yêu cầu hệ điều
hành tương thích.
Nhược điểm cơ bản
- Khó khăn trong việc thay đổi và cập nhật thông tin.
- Thông tin không có tính linh hoạt, không thân thiện với người dùng.
- Khó tích hợp, nâng cấp, mở rộng: khi muốn mở rộng, nâng cấp 1
IV.
website tĩnh hầu như là phải làm mới lại website.
Website động.
- Web động là thuật ngữ được dùng để chỉ những website có cơ sở dữ liệu
và được hỗ trợ bởi các phần mềm phát triển web.
- Với web động, thông tin hiển thị được gọi ra từ một cơ sở dữ liệu khi
người dùng truy vấn tới một trang web. Trang web được gửi tới trình
duyệt gồm những câu chữ, hình ảnh, âm thanh hay những dữ liệu số
hoặc ở dạng bảng hoặc ở nhiều hình thức khác nữa.
- Chẳng hạn ứng dụng cơ sở của bạn có chức năng như một công cụ
thương mại điện tử (một cửa hàng trực tuyến) trưng bày catalogue sản
phẩm trên website hay theo dõi kho hàng, khi một mặt hàng được giao,
ngay lập tức những trang có liên quan đến sản phẩm đó phản ánh sự thay
đổi này. Những website cơ sở dữ liệu còn có thể thực hiện những chức
năng truyền và xử lý thông tin giữa doanh nghiệp – doanh nghiệp.
7
-
Web động thường được phát triển bằng các ngôn ngữ lập trình tiên tiến
như PHP, ASP, ASP.NET, Java, CGI, Perl và sử dụng các cơ sở dữ liệu
quan hệ mạnh như Access, My SQL, MS SQL, Oracle, DB2,
- Thông tin trên web động luôn luôn mới vì nó dễ dàng được bạn thường
xuyên cập nhật thông qua việc Bạn sử dụng các công cụ cập nhật của
các phần mềm quản trị web . Thông tin luôn được cập nhật trong một cơ
sở dữ liệu và người dùng Internet có thể xem những chỉnh sửa đó ngay
lập tức. Vì vậy website được hỗ trợ bởi cơ sở dữ liệu là phương tiện trao
đổi thông tin nhanh nhất với người dùng Internet. Điều dễ nhận thấy là
những website thường xuyên được cập nhật sẽ thu hút nhiều khách hàng
tới thăm hơn những web site ít có sự thay đổi về thông tin.
- Web động có tính tương tác với người sử dụng cao. Với web động, Bạn
hoàn toàn có thể dễ dàng quản trị nội dung và điều hành website của
mình thông qua các phần mềm hỗ trợ mà không nhất thiết Bạn cần phải
có kiến thức nhất định về ngôn ngữ html, lập trình web.
Bạn cũng có thể nhìn nhận vấn đề theo khía cạnh khác: chẳng hạn bạn
đã có sẵn những cơ sở dữ liệu như cơ sở dữ liệu sản phẩm, nhân sự,
khách hàng hay bất kỳ cơ sở dữ liệu nào đó mà bạn muốn đưa thêm giao
diện web vào để người dùng nội bộ hay người dùng Internet đều có thể
sử dụng chương trình chỉ với trình duyệt web của mình.
- Tất cả các website Thương mại điện tử, các mạng thương mại, các mạng
thông tin lớn, các website của các tổ chức, doanh nghiệp hoạt động
chuyên nghiệp trên Net đều sử dụng công nghệ web động. Có thể nói
web động là website của giới chuyên nghiệp hoạt động trên môi trường
V.
Internet.
Mô hình hướng đối tượng.
1. Mô hình hướng đối tượng
- “Lập trình hướng đối tượng là 1 phương pháp viết mã cho phép các lập
trình viên nhóm các action tượng tự nhau vào các class”. Điều này giúp
mã lệnh giữ vững được nguyên lý DRY “don’t repeat yourself” (không
lặp lại chính nó) và dễ dàng để bảo trì.
8
- Một lợi ích to lớn của nguyên lý lập trình DRY là: nếu một phần thông
tin nào đó được thay đổi trong chương trình của bạn, thì thông thường
chỉ cần có duy nhất 1 thay đổi để cập nhật lại mã lệnh. Một trong những
ác mộng lớn nhất đối với các lập trình viên là bảo trì mã lệnh, nơi dữ
liệu được khai báo đi khai báo lại nhiều lần, họ phải tìm kiếm, làm việc
trên các dữ liệu và chức năng trùng lặp.
- Thật ra Lập Trình Hướng Đối Tượng trở nên đáng sợ đối với rất nhiều
lập trình viên bởi nó mang đến các cú pháp khá mới mẻ và cầu kỳ , do
vậy nó nhanh chóng trở nên phức tạp hơn rất nhiều so với lập trình
hướng thủ tục. Tuy nhiên, nếu các bạn nhìn nhận vấn đề 1 cách kỹ lưỡng
hơn, Lập Trình Hướng Đối Tượng thực ra lại là 1 phương pháp rất đơn
giản, giúp cho việc lập trình đơn giản hóa đi rất nhiều.
Hiểu Về Đối Tượng (Objects) Và Lớp (Class)
- Trước khi bạn có thể đi sâu vào cái tinh túy của Lập Trình Hướng Đối
Tượng, một cái nhìn căn bản về sự khác nhau giữa object và class là rất
cần thiết. Phần này chúng ta sẽ đi vào việc xây dựng từng phần của
class, khả năng khác nhau và một số công dụng của chúng.
Nhận thức sự khác nhau giữa Object và Class
- Đôi khi có một số quan niệm nhầm lẫn trong hướng đối tượng: nhiều lập
trình viên có kinh nghiệm cho rằng hai khái niệm object và class có thể
thay thế cho nhau. Tuy vậy, đây không phải là vấn đề đáng quan tâm,
mặc dù sự khác nhau giữa object và class có thể sẽ rất phức tạp khiến
bạn phải bù đầu để tìm hiểu khi mới tiếp xúc với chúng.
- Nhìn vào hình ví dụ phía trên, một class cũng giống như một bản thiết
kế của một ngôi nhà. Nó định nghĩa hình dạng của ngôi nhà trên giấy,
với các mối quan hệ giữa những phần khác nhau của ngôi nhà được xác
định rõ và lên kế hoạch cụ thể, mặc dù ngôi nhà chưa thực sự tồn tại.
- Một object sau đó, cũng giống như một ngôi nhà thực tế được xây dựng
dựa trên bản thiết kế này. Dữ liệu trong object ở đây có thể được xem
9
như là gỗ, dây điện, và bê tông để tạo nên ngôi nhà hoàn chỉnh: mà
không hề có chi tiết cách tạo ra chúng trong bản thiết kế. Tuy nhiên, khi
kết hợp tất cả lại với nhau, nó sẽ trở thành một ngôi nhà hoàn chỉnh đến
từng chi tiết.
- Các Class xử lý cấu trúc dữ liệu và các action, đồng thời sử dụng các
thông tin đó để xây dựng các object. Có thể có nhiều hơn một object
được xây dựng từ cùng một class tại cùng một thời điểm, mỗi object này
đều là 1 cá thể độc lập và không phụ thuộc lẫn nhau. Trở lại vấn đề xây
dựng, điều này cũng giống như một quần thể các lô nhà có thể được xây
dựng trên cùng một bản thiết kế: 150 ngôi nhà khác nhau đều có hình
dạng giống nhau, nhưng có các hộ gia đình và nội thất bên trong đều
khác nhau.
- Cấu
trúc
Class
Cú pháp để tạo ra một class khá đơn giản: đ ể khai báo m ột class ta s ử d ụng t ừ khóa class,
theo sau từ khóa là tên của class và một c ặp ngoặc nh ọn ({ }):
1
2
3
4
5
Sau tạo ra class, bạn có thể khởi tạo và lưu trữ chúng trong m ột biêến bằằng cách s ử d ụng
từ khóa new:
1
2
3
Để xem nội dung của class, bạn sử dụng hàm var_dump():
1
2
Hãy thử lại quá trình này bằằng cách đặt toàn bộ các mã lệnh phía trên vào t ập tn
có tên là test.php và đặt nó vào trong locahost c ủa bạn:
1
2
3
4
5
Mở trình duyệt của bạn và chạy http://localhost/test.php , bạn sẽ nhìn
thấy
như
sau:
object(MyClass)#1 (0) { }
Vậy là xong, bạn đã vừa hoàn thành script hướng đối tượng (OOP) đầu
tiên của bạn dưới hình thức đơn giản nhất.
11
Định
nghĩa
thuộc
tính
của
Class
Để thêm dữ liệu vào một class, người ta sử dụng thuộc tnh, hoặc một biêến riêng biệt nào
đó. Chúng hoạt động tương tự như các biêến thông th ường, ch ỉ khác m ột điêằu là chúng
đang liên kêết với object và vì thêế để có thể truy c ập và s ử d ụng đ ược chúng ta ph ải thông
qua
object
hay
nói
cách
khác
là
sử
d ụng
object.
Để thêm một thuộc tnh vào MyClass, bạn thêm đoạn mã sau vào script c ủa b ạn:
01
php
02
class MyClas
03
s
04 {
public $prop1 = "I'm
05
a
class
property!";
06 }
07
$obj = new MyClas
08
s;
09
var_dump($obj
10
);
11
12 ?>
Từ khóa public xác định tầằm vực của thuộc tnh. Tiêếp đó, tên c ủa thuộc tnh đ ược đ ặt đúng
theo chuẩn cú pháp đặt tên cho biêến, và một giá trị đã đ ược gán cho nó (m ặc dù thu ộc tnh
của class không nhầết thiêết phải có giá trị ban đầằu). Tuy nhiên chúng ta seẽ tm hi ểu vêằ chúng ở
các
phầằn
sau.
Để đọc thuộc tnh này và xuầết chúng ra trình duy ệt, chúng ta seẽ ph ải tham chiêếu chúng thông
qua các object:
1
2
prop1;
?>
3
Nêếu chúng ta không khai báo object, ch ương trình seẽ không th ể xác đ ịnh đ ược thu ộc tnh đó
thuộc object nào (vì hiểu 1 cách đ ơn gi ản object là đ ại di ện cho class). S ử d ụng dầếu mũi tên (>) là một cầếu trúc của Hướng Đôếi Tượng, để một object có thể truy c ập đ ược n ội dung c ủa
thuộc
tnh
phương
và
thức
trong
class.
Sửa lại mã lệnh fle test.php như sau:
01
php
02
03
class MyClas
s
04 {
public $prop1 = "I'm
05
a
class
property!";
06 }
07
08
$obj = new MyClas
s;
09
10
echo $obj->prop1; // Xuất thuộc tính ra
trình duyệt
11
12 ?>
Và bây giờ Reload lại trình duyệt của để được kết quả như sau:
I'm a class property!
Định
Phương
nghĩa
thức
của
Class
Phương thức là các hàm riêng biệt của class. Các acton riêng lẻ, mà m ột object seẽ th ực thi, thì
được
định
nghĩa
bên
trong
class
như
là
các
ph ương
th ức.
Ví dụ, để tạo ra các phương thức có khả nằng thiêết l ập và tr ả vêằ giá tr ị c ủa thu ộc tnh$prop1,
ta thêm đoạn mã như sau:
13
01
php
02
03
class MyClas
s
04 {
05
public $prop1 = "I'm
a
class
property!";
06
public function setProperty($newv
07
al)
08
{
$this->prop1
09
= $newval;
10
}
11
public function getPropert
12
y()
13
{
return $this-
14
>prop1 . "
";
15
}
16 }
17
18
$obj = new MyClas
s;
19
20
echo $obj>prop1;
21
22 ?>
14
Chú ý: Hướng Đôếi Tượng cho phép các object tự tham chiêếu chính nó (tham chiêếu bên trong
class) bằằng cách sử dụng biêến $this. Khi làm việc bên trong 1 ph ương th ức, s ử d ụng $this cũng
như
giôếng
cách
bạn
sử
dụng
object
name
bên
ngoài
class.
Để sử dụng các phương thức này, việc gọi chúng cũng tương t ự nh ư s ử d ụng các hàm thông
thường, nhưng chúng ta phải thông qua object để tham chiêếu đêến chúng. Echo thu ộc tnh
từMyClass, thay đổi giá trị của nó, và echo nó một lầằn n ữa đ ể xem s ự thay đ ổi:
01
php
02
03
class MyClas
s
04 {
05
public $prop1 = "I'm a class
property!";
06
public function setProperty($newv
07
al)
08
{
$this->prop1
09
= $newval;
10
}
11
public function getPropert
12
y()
13
{
return $this-
14
>prop1 . "
";
15
}
16 }
17
18
$obj = new MyClas
s;
15
19
20
echo $obj->getProperty(); //
echo giá trị của thuộc tính
21
$obj->setProperty("I'm a new
22 property value!"); // Thiết lập
giá trị mới
23
echo $obj->getProperty(); //
24 echo nó lại 1 lần nữa để xem
sự thay đổi
25
26 ?>
Reload lại trình duyệt, và bạn sẽ nhìn thấy như sau:
I'm
a
class
property!
I'm a new property value!
“Sức mạnh của Hướng Đôếi Tượng càng bộc lộ rõ khi chúng ta s ử d ụng cùng m ột class cho
nhiêằu trượng hợp”
01
php
02
03
class MyClas
s
04 {
05
public $prop1 = "I'm
a
class
property!";
06
07
public function setProperty($newv
al)
08
{
09
$this->prop1
16
= $newval;
10
}
11
public function getPropert
12
y()
13
{
return $this-
14
>prop1 . "
";
15
}
16 }
17
18
19
20
//
Tạo
hai
objects
$obj = new MyClass
;
$obj2 = new MyClas
s;
21
22
23
24
// Echo giá trị của $prop1 từ hai
object
echo $obj>getProperty();
echo $obj2>getProperty();
25
26
// Thiết lập giá trị mới cho thuộc tính $prop1 của từng
object
27 $obj->setProperty("I'm a new property value!");
$obj2->setProperty("I belong to the second
28
instance!");
29
// Echo lại giá trị của $prop1 từ hai object để xem sự
30
thay đổi
17
31
32
echo $obj>getProperty();
echo $obj2>getProperty();
33
34 ?>
VI.
Tổng quan về cơ sở dữ liệu quan hệ
1. Định nghĩa cơ sở dữ liệu quan hệ
Cơ sở dữ liệu quan hệ là loại cơ sở dữ liệu có cấu trúc bao gồm các bảng dữ
liệu, mỗi bảng dữ liệu có quan hệ với các bảng khác theo một trong ba loại mối
quan hệ. Ngoài ra chúng có thể quan hệ trực tiếp với nhau, nhưng cũng có thể
quan hệ gián tiếp thông qua các bảng khác.
2. Các thành phần trong cơ sở dữ liệu quan hệ
-
Bảng dữ liệu: bảng là thực thể có cấu trúc dạng ma trận, dùng để chứa các
thông tin quan hệ trong một hệ thống có thứ tự. Cấu trúc của bảng được tạo thành
từ các trường (field) hay còn gọi là cột (column) và mẩu thông tin được nhóm lại
theo từng hàng (rows).
-
Cột dữ liệu: Cột là một khối dữ liệu trong bảng, mỗi cột trong bảng có cấu
trúc như một cột thông tin chi tiết có cùng loại dữ liệu, chúng có thể có quan hệ
trực tiếp hay gián tiếp đến các cột khác trong bảng dữ liệu có quan hệ.
-
Hàng (rows): Là một thành phần của bảng, chứa thông tin của nhiều cột dữ
liệu trong bảng.
-
Giá trị null: Là giá trị rỗng hay không được gán.
-
Các loại quan hệ.
18
Quan hệ hay còn gọi là Relationship, thể hiện mối quan hệ giữa các bảng
thông qua các đối tượng nhận dạng (khoá). Có 3 kiểu quan hệ thường gặp đó là:
+ Quan hệ 1-1: Hai kiểu thực thể A và B có mối liên kết 1-1 với nhau, nếu mỗi
đối tượng thuộc A có tương ứng một đối tượng thuộc B và ngược lại.
+ Quan hệ 1 – nhiều (1-n): Hai kiểu thực thể A và B có mối liên kết 1 – n với
nhau nếu mỗi đối tượng thuộc A có tương ứng ít nhất một đối tượng thuộc B va
mỗi đối tượng thuộc B có tương ứng một đối tượng thuộc A.
+ Quan hệ n - n (nhiều- nhiều): Hai kiểu thực thể A và B có mối quan hệ n-n
với nhau nêu mỗi đối tượng thuộc A có tương ứng n đối tượng thuộc B và
ngược lại.
3. Thuộc tính khoá và thuộc tính liên kết
-
Thuộc tính khoá của một kiểu thực thể là thuộc tính cho phép xác định mỗi
thực thể và phân biệt với mỗi thực thể khác nhau.
-
Có hai loại khoá: Khoá chính (primary-key) và khoá quan hệ (Foreign Key).
Khoá chính: Khoá chính của một bảng luôn có giá trị duy nhất, điều đó
có nghĩa là không tồn tại hai mẩu tin có giá trị trên cột được thiết kế là
khoá chính trùng nhau. Ngoài ra, khoá không tồn tại giá trị null hay rỗng.
Khoá quan hệ (khoá ngoại): Là khoá được thiết kế ràng buộc với khoá
chính của một bảng khác ở bên ngoài bảng đó.
-
Thuộc tính liên kết: Mỗi thuộc tính được gọi là thuộc tính liên kết giữa các
thực thể nếu nó không phải là khoá của kiểu thực thể này nhưng lại là khoá của
thực thể khác.
4. Chuẩn hoá quan hệ
19
-
Chuẩn hoá quan hệ nhằm tối ưu dữ liệu tránh dư thừa, tránh nhập nhằng
thông tin...
-
Các dạng chuẩn hoá:
+ Dạng chuẩn 1 (1NF): Tất cả các thuộc tính phải là nguyên tố.
+ Dạng chuẩn 2 (2NF): Các thuộc tính không khoá phụ thuộc đầy đủ vào khoá.
+ Dạng chuẩn 3 (3NF): Các thuộc tính không khoá phụ thuộc trực tiếp vào
khoá.
-
Chuẩn hoá dữ liệu:
+ Dạng chuẩn 1NF ta tách các thuộc tính không lặp.
+ Từ 1NF-2NF: Tách các thuộc tính phụ thuộc bộ phận vào khoá.
+ Từ 2NF-3NF: Tách các thuộc tính không phụ thuộc vào khoá.
VII.
Giới thiệu MySQL
5.1 MySQL là gì ?
-
MySQL là một cơ sở dữ liệu server nhỏ.
-
MySQL là một trong những lựa chọn cho các ứng dụng vừa và nhỏ.
-
MySQL hỗ trợ SQL chuẩn.
-
MySQL được biên dịch dựa trên nhiều nền khác nhau, như Linux, Windows.
-
MySQL miễn phí trong download và sử dụng .
5.2. Tại sao ta sử dụng hệ cơ sở dữ liệu MySQL?
20
- Xem thêm -