Tải bản đầy đủ (.pdf) (63 trang)

Xây dựng chương trình hỗ trợ khoa công nghệ thông tin trong việc gửi thông báo đến các giảng viên trong khoa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.65 MB, 63 trang )

LỜI CẢM ƠN
Trước tiên em xin gửi lời cám ơn chân thành sâu sắc tới các thầy cô giáo trong
trường Đại học Công Nghệ Thông Tin Và Truyền Thông nói chung và các thầy cô
giáo trong khoa Công Nghệ Thông Tin nói riêng đã tận tình giảng dạy, truyền đạt cho
em những kiến thức, kinh nghiệm quý báu trong suốt thời gian qua.
Đặc biệt em xin gửi lời cảm ơn đến thầy giáo ThS. Trần Lâm đã tận tình hướng
dẫn, trực tiếp chỉ bảo em trong suốt thời gian làm đồ án. Trong thời gian làm việc với
cô, em không những tiếp thu thêm nhiều kiến thức bổ ích mà còn học được tinh thần
làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả. Đây là những điều rất cần
thiết cho em trong quá trình học tập và công tác sau này.
Do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình nhưng đề tài của em khó
tránh khỏi những thiếu sót. Em rất mong nhận được những ý kiến đóng góp của quý
thầy Cô và các bạn để đồ án của em được hoàn thiện hơn. Một lần nữa em xin chân
thành cảm ơn!
Thái nguyên, tháng 6 năm 2016
Sinh viên

Hoàng Văn Tùng

1


LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân
tôi, không sao chép lại của người khác. Trong toàn bộ nội dung của luận văn, những
điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu.
Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp. Tôi
xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời
cam đoan của mình.
Thái nguyên, tháng 6 năm 2016
Sinh viên



Hoàng Văn Tùng

2


MỤC LỤC
LỜI CẢM ƠN .............................................................................................................1
LỜI CAM ĐOAN........................................................................................................2
MỤC LỤC...................................................................................................................3
DANH MỤC HÌNH ẢNH ...........................................................................................5
LỜI NÓI ĐẦU.............................................................................................................6
CHƯƠNG I : CƠ SỞ LÝ THUYẾT ............................................................................7
1.1 Tìm hiểu về ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu My SQL...........................7
1.1.1 Giới thiệu và sử dụng PHP ...........................................................................7
1.1.2 Giới thiệu MySQL.....................................................................................16
1.2. Tìm hiểu google calendar và google calendar API ...........................................19
1.2.1. Tìm hiểu google calendar ..........................................................................19
1.2.2. Google calendar API .................................................................................24
1.3. Sử dụng WebServer.........................................................................................29
1.4. Tổng quan về UML ........................................................................................33
1.4.1.Giới thiệu UML..........................................................................................33
1.4.2. UML trong phân tích thiết kế hệ thống ......................................................33
1.4.3. UML và các giai đoạn phát triển của hệ thống ...........................................34
1.4.4. Biểu đồ (Diagram).....................................................................................35
1.4.5. Các quy tắc của UML................................................................................39
CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG ................................................40
2.1. Khảo sát hệ thống ............................................................................................40
2.1.1. Giới thiệu về Trường Công Nghệ Thông Tin Và Truyền Thông ................40
2.1.2. Đề xuất phát triển ......................................................................................40

2.1.3. Bài toán đặt ra ...........................................................................................40
2.2. Phân tích yêu cầu người dùng ..........................................................................41
2.2.1.Yêu cầu của giảng viên...............................................................................41
2.2.2.Yêu cầu của người quản trị.........................................................................41
2.3. Phân tích hệ thống ...........................................................................................41
3


2.3.1. Xác định các Actor và Usecase của hệ thống .............................................41
2.3.2. Đặc tả các Use Case, biểu đồ trình tự, biểu đồ hoạt động, biểu đồ lớp ......44
CHƯƠNG III: XÂY DỰNG HỆ THỐNG .................................................................55
3.1. Giao diện trang đăng nhập cho admin..............................................................55
3.2. Giao diện trang chủ..........................................................................................56
3.3. Giao diện trang thêm mới sự kiện ....................................................................56
3.4. Giao diện trang sửa sự kiện.............................................................................57
3.5. Giao diện trang xóa sự kiện .............................................................................58
3.6. Giao diện quản lý giảng viên ...........................................................................58
3.7. Giao diện trang thêm mới giảng viên ..............................................................59
3.8. Giao diện trang quản lý bộ môn ......................................................................59
3.9. Sự kiện trên google calendar............................................................................60
KẾT LUẬN ...............................................................................................................61
TÀI LIỆU THAM KHẢO .........................................................................................62
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ........................................................63

4


DANH MỤC HÌNH ẢNH
Hình 2.1 Biểu đồ Use case mức tổng thể....................................................................42
Hình 2.2 Biểu đồ phân rã Use case quản lý event.......................................................42

Hình 2.3 Biểu đồ phân rã Use case quản lý giảng viên...............................................43
Hình 2.4 Biểu đồ phân rã Use case quản lý bộ môn ...................................................43
Hình 2.5 Biểu đồ trình tự Use case đăng nhập............................................................45
Hình 2.6 Biểu đồ cộng tác Use case đăng nhập ..........................................................45
Hình 2.7 Biểu đồ hoạt động Use case đăng nhập........................................................46
Hình 2.8 Biểu đồ trình tự Use case quản lý sự kiện....................................................47
Hình 2.9 Biểu đồ cộng tác Use case quản lý sự kiện ..................................................47
Hình 2.10 Biểu đồ hoạt động Use case quản lý sự kiện ..............................................49
Hình 2.11 Biểu đồ trình tự Use case quản lý giảng viên .............................................50
Hình 2.12 Biểu đồ cộng tác Use case quản lý giảng viên ...........................................51
Hình 2.13 Biểu đồ hoạt động Use case quản lý giảng viên .........................................52
Hình 2.14 Biểu đồ trình tự Use case quản lý bộ môn .................................................53
Hình 2.15 Biểu đồ cộng tác Use case quản lý bộ môn ................................................54
Hình 2.16 Biểu đồ hoạt động Use case quản lý bộ môn..............................................54
Hình 2.17 Biểu đồ lớp mức tổng thể ..........................................................................55
Hình 3.1 Giao diện trang đăng nhập...........................................................................56
Hình 3.2 Giao diện trang chủ .....................................................................................56
Hình 3.3 Giao diện thêm sự kiện................................................................................57
Hình 3.4 Giao diện sửa sự kiện ..................................................................................57
Hinh.3.5.Giao diện trang xóa sự kiện.........................................................................58
Hinh.3.6.Giao diện quản lý giảng viên.......................................................................59
Hinh.3.7.Giao diện thêm giảng viên...........................................................................59
Hinh.3.8.Giao diện quản lý bộ môn ...........................................................................60
Hinh.3.9.Sự kiện đồng bộ trên google calendar..........................................................60

5


LỜI NÓI ĐẦU
Công nghệ thông tin hiện đang là một trong những ngành học được các bạn trẻ

rất yêu thích chính vì vậy mà mỗi năm trường đại học công nghệ thông tin tuyển sinh
hàng nghìn sinh viên, đồng thời để đáp ứng yêu cầu dạy và đào tạo sinh viên đạt hiệu
quả cao nhà trường cũng không ngừng tăng cường tuyển thêm các giảng viên .Như
vậy, với số lượng giảng viên ngày càng nhiều việc thông báo lịch công tác ,công việc
cho các giảng viên sẽ nhiều hơn và sẽ có một số khó khăn như giảng viên không nhận
được thông báo hoặc nhận thông báo chậm.
Xuất phát từ những vấn đề đó, “Chương trình hỗ trợ khoa công nghệ thông tin
trong việc gửi thông báo đến các giảng viên trong khoa” được thiết kế và xây dựng
nhằm mục đích đơn giản giản hóa việc gửi thông báo đến các giảng viên trong
khoa,giúp nhà trường sắp xếp,quản lý công việc, lịch hẹn nhanh chóng,dễ dàng và đạt
hiệu quả cao hơn.
Cùng với sự chỉ bảo tận tình của thầy Trần Lâm em đã hoàn thành chương trình
này.Trong quá trình phân tích thiết kế hệ thống không thể tránh khỏi những sai sót
mong thầy cô đóng góp ý kiến để chương trình của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!

6


CHƯƠNG I : CƠ SỞ LÝ THUYẾT
1.1 Tìm hiểu về ngôn ngữ PHP, hệ quản trị cơ sở dữ liệu My SQL
1.1.1 Giới thiệu và sử dụng PHP
1.1.1.1 Giới thiệu
a) Lịch sử ra đời:
Năm 1995, Rasmus Lerdorf tạo ra PHP nhằm giải quyết việc viết lặp đi lặp lại
cùng đoạn mã khi tạo các trang. Ban đầu tác giả chỉ có ý định tạo bộ phân giải đơn giản
để thay thế các thẻ lệnh trong file HTML bằng các đoạn mã lệnh viết bằng C.
b) PHP là gì?
Vì tính hữu dụng, khả năng phát triển, PHP đã bắt đầu được sử dụng trong môi
trường chuyên nghiệp và nó đã trở thành “PHP: Hypertext Preprocessor”. Đây là một

ngôn ngữ kịch bản mã nguồn mở sử dụng cho mục đích chung, đặc biệt thích hợp cho
phát triển Web và có thể nhúng vào HTML. “PHP nhúng trong HTML”, có nghĩa là
PHP có thể được rải rác trong HTML, giúp cho việc phát triển các website động được
dễ dàng. PHP là một ngôn ngữ kịch bản (scripting language). Khác với ngôn ngữ lập
lập trình, PHP được thiết kế để chỉ thực hiện điều gì đó sau khi một sự kiện xảy ra (ví
dụ, khi người dùng gửi một biểu mẫu hoặc chuyển tới một URL).
PHP là một công nghệ phía máy chủ (server – side) và không phụ thuộc môi
trường (cross-platfom). Cả hai yếu tố này đều rất quan trọng. Khái niệm công nghệ
phía máy chủ nói đến việc mọi thứ trong PHP đều xảy ra trên máy chủ (ngược với máy
khách là máy của người dùng). Tính chất không phụ thuộc môi trường cho phép PHP
chạy trên hầu hết các hệ điều hành như windows, Unix (và nhiều biến thể của nó),
Macintosh…Một điều cũng rất quan trọng là các mã kịch bản PHP viết trên máy chủ
này sẽ làm việc bình thường trên các máy chủ khác mà không cần chỉnh sửa hoặc
chỉnh sửa rất ít.
Mã PHP được thực thi ở phía Server, khi trình duyệt của người dùng truy cập một
trang web có chứa một đoạn mã PHP thì trình duyệt nhận được trang kết quả đã xử lý

7


từ Web server, người dùng sẽ không thể biết được đoạn mã viết gì. Mã PHP được bao
trong cặp dấu <?php ?> hoặc <? ?>. Tập tin PHP có phần mở rộng là .php hoặc .php3
PHP tương tự JSP và ASP với tập thẻ lệnh dùng cho trang HTML. Điểm đặc biệt
là PHP được phát triển hoàn toàn cho nền tảng web, chính vì vậy, mà các ứng dụng
viết bằng PHP rất ngắn gọn so với VBScript hay JSP. Đây cũng chính là điểm mạnh
của PHP so với Perl.
Cú pháp PHP mượn từ nhiều ngôn ngữ khác như C, Java, Perl... PHP có thể
giao tiếp với nhiều hệ CSDL như MySQL, MS Access, Sybase, Oracle và cả
Microsoft SQL. Không chỉ có khả năng thao tác CSDL, PHP còn có nhiều khả năng
khác như IMAP, SNMP, LDAP, XML... PHP chạy trên hầu hết các nền tảng hệ

thống. Trình máy chủ phân giải mã lệnh PHP có thể tải về miễn phí từ trang web
chính thức của PHP.
Có lẽ yếu tố hấp dẫn nhất của PHP là nó hoàn toàn miễn phí. Với máy tính cấu
hình vừa phải chạy Linux, cài đặt Apache, PHP và MySQL, bạn sẽ có máy chủ có thể
phục vụ được nhiều ứng dụng web tương đối. Toàn bộ chi phí hầu như chỉ là thời gian
bạn bỏ ra để cài đặt các phần mềm.
PHP được xem là một thay thế cho Perl. PHP không thể làm được nhiều như
Perl, thế nhưng chính sự hạn chế này làm cho PHP dễ học và dễ dùng.
Nhiều nhà phát triển dùng kết hợp cả hai: Perl dùng cho những tác vụ chạy bên
dưới còn PHP dùng cho việc xử lý bề mặt. Komodo của Active State Corp là công cụ
miễn phí dùng để phát triển trang PHP.
c) Tại sao cần dùng PHP?
PHP được sử dụng để phát triển website động vì nó tốt, nhanh và dễ dàng nghiên
cứu hơn các giải pháp khác. PHP có khả năng thực hiện và tích hợp chặt chẽ với hầu
hết các cơ sở dữ liệu có sẵn, tính năng bền vững linh động và khả năng phát triển
không giới hạn. Tất cả các đặc tính trên đều miễn phí vì PHP là mã nguồn mở. PHP
vừa dễ với người mới sử dụng và vừa có khả năng làm được mọi thứ, đáp ứng yêu cầu
của lập trình viên chuyên nghiệp.
PHP được sử dụng càng ngày càng nhiều và mới đây đã bắt kịp ASP (vốn được

8


xem là ngôn ngữ kịch bản phổ biến nhất hiện nay). PHP là modun thông dụng cho
Apache (máy chủ Web phổ biến nhất) và nó đã có mặt trên 12 triệu website
1.1.1.2 Sử dụng PHP
a) Thẻ PHP
Có 4 loại khác nhau của thẻ PHP:
- Kiểu Short: là thẻ mặc định mà các nhà lập trình PHP thường sử dụng.
<? echo “Đây là kiểu Short”; ?>

- Kiểu định dạng XML: thẻ này có thể sử dụng với văn bản dạng XML.
<?php echo “Đây là kiểu định dạng với XML”; ?>
- Kiểu Script: trong trường hợp muốn sử dụng PHP như một script tương tự
như khai báo Javascript hay VBScript
<script language = ‘php’>
echo “PHP script”;
</script>
-

Kiểu ASP:

<% echo “Đây là kiểu ASP”; %>
b) Gọi hàm trong PHP
Để gọi hàm trong PHP, khai báo tương tự như gọi hàm trong các ngôn ngữ lập
trình khác, hầu hết các hàm khi gọi cần truyền tham số và giá trị trả về.
VD: Gọi hàm date()S
<? echo “Hôm nay là: ”.date(“d/m/Y”); ?>
c) Truy cập biến Form
Thông thường khi cần lấy dữ liệu của người dùng nhập, chúng ta sẽ dùng thẻ
form trong trang web nhằm ràng buộc tất cả các thẻ input, selec, textarea...
Dữ liệu đến từ script đều là biến PHP, chúng ta có thể nhận biết chúng bằng cách
sử dụng dấu $ trước tên biến. Có hai cách để truy cập dữ liệu trên form thông qua biến.
9


- Để lấy giá trị của các thẻ trong form theo dạng POST: $_POST[‘ tên_thẻ’].
- Để lấy giá trị của các thẻ trong form theo dạng GET: $_GET[‘tên_thẻ’]
d) Khai báo biến
PHP Engine không cần yêu cầu khai báo biến trước khi sử dụng, tuy nhiên nên
tập thói quen khai báo và khởi tạo giá trị ban đầu cho biến trước khi sử dụng chúng.

e) Gán giá trị cho biến
Để gán giá trị cho biến, nếu biến đó chưa khai báo trước đó, biến này được coi
như vừa khai báo và khởi tạo. Trong trường hợp biến đã khai báo, biến này chỉ thay
đổi giá trị.

VD: $qtty=20;
$price=10;
$total=$qtty*$price;
echo “Total: $total”;
?>
f) Kiểu dữ liệu của biến trong PHP
PHP hỗ trợ 5 kiểu dữ liệu
- Interger: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số.
- Double: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số thực.
- String: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là chuỗi, ký tự.
- Array: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là mảng có các phần tử cùng
kiểu dữ liệu.
- Object: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là đối tượng của lớp.

10


g) Toán tử trong PHP
* Các phép toán số học
Toán tử
+
*
/
%


Tên
Cộng
Trừ
Nhân
Chia
Modulo

Ví dụ
$a + $b;
$a - $b;
$a*$b;
$a/$b;
$a%$b;

* Các phép toán so sánh
Phép toán
==
===
!=
<>
<
<=
>
>=

Sử dụng
$a= =$b
$a = = = $b
$a!=$b

$a<>$b
$a<$b
$a<=$b
$a>$b
$a>=$b

Ý nghĩa so sánh
$a bằng $b
$a bằng và cùng kiểu dữ liệu với $b
$a không bằng $b
$a không bằng $b
$a nhỏ hơn $b
$a nhỏ hơn hoặc bằng $b
$a lớn hơn $b
$a lớn hơn hoặc bằng $b

* Các phép logic
Phép

Ký hiệu

Sử dụng

toán
!

NOT

!$a


&&

AND

$a && $b

||

OR

$a || $b

And

AND

$a and $b

Or

OR

$a or $b

Ý nghĩa
Phép toán phủ định
Trả về true nếu cả hai biến có giá trị true.
Ngược lại là false.
Trả về true nếu $a hay $b hay cả hai biến có giá
trị true

Trả về true nếu cả hai biến có giá trị true.
Ngược lại là false.
Trả về true nếu $a hay $b hay cả hai biến có giá
trị true.

h) Kiểm tra biến trong PHP
- is_array(): Kiểm tra biến là array hay không.

11


- is_double(): Kiểm tra biến là double hay không.
- is_float(): Kiểm tra biến là float hay không.
- is_real(): Kiểm tra biến là real hay không.
- is_long(): Kiểm tra biến là long hay không.
- is_int(): Kiểm tra biến là int hay không.
- is_interger(): Kiểm tra biến là integer hay không.
- is_string(): Kiểm tra biến là string hay không.
- is_object(): Kiểm tra biến là object hay không.
- isset(): Nếu biến tồn tại hàm trả về giá trị true, ngược lại trả về false.
- empty(): Cho phép kiểm tra biến tồn tại và không rỗng, có chiều dài khác 0 trả
về true, ngược lại là false.
Để sử dụng tất cả các hàm trên, cần phải truyền vào hàm biến PHP dưới
dạng tham số.
i) Phát biểu có điều khiển
- Phát biểu If: Phát biểu if với một điều kiện, nếu điều kiện là true thì khối lệnh
trong phát biểu If sẽ được thực hiện, điều kiện được khai báo trong dấu ()
VD: $a = 10;
$b=6;
if($a>$b)

echo $a+$b;
Khối lệnh trong bất kỳ phát biểu điều khiển nào cũng có thể sử dụng dấu { và
}. Có nghĩa là nếu khối lệnh trong phát biểu lớn hơn 1 thì phải sử dụng hai dấu trên.
- Phát biểu Else: phát biểu else luôn là trường hợp ngược lại của phát biểu if với
một điều kiện, nếu điều kiện là true thì khối lệnh trong
phát biểu if sẽ được thực hiện, ngược lại khối lệnh trong phát biểu
else sẽ được thực hiện.
VD: $a = 10;
$b=6;
if($a>$b) echo $a+$b;
else
$b=$a+1;

12


Tương tự như trong trường hợp phát biểu if, nếu khối lệnh trong phát biểu điều
khiển else có hơn 1 dòng lệnh thì sẽ phải khai báo sử dụng dấu { và }.
- Phát biểu Switch: tương tự như phát biểu if, nhưng trong trường hợpcó nhiều
hơn hai tùy chọn cụ thể cho phép quyết định. VD: switch($diem)
{
case “5”: echo “Điểm trung bình”;
break;
case “7”: echo “Điểm khá”;
break;
case “10”: echo “Điểm giỏi”;
break;
deafault: echo “Nhập lại”;
}
Nếu đúng điều kiện case, cần khai báo phát biểu break nhằm thoát ra khỏi phát

biểu switch. Trong trường hợp không khai báo break trong mỗi phát biểu case, nếu
thỏa mãn điều kiện trong case nhưng PHP vẫn tiếp tục thực hiện tiếp các phát biểu
case sau đó.
- Phát biểu While: phát biểu vòng lặp đơn giản nhất trong PHP là vòng lặp while
cho phép bạn thực thi khối lệnh trong while cho đến khi điều kiện của while là true
như cú pháp
While (điều kiện)
{
câu lệnh thực hiện;
}
- Phát biểu do ... while: tương tự như while nhưng kiểm tra điều kiện sau khi
thực hiện khối lệnh.
do
{
câu lệnh thực hiện;
}
while (điều kiện)

13


- Phát biểu vòng lặp for: tương tự như trong phát biểu while, có thể sử dụng
vòng lặp for với 1 giới hạn chỉ định.
for (giá trị khởi đầu; điều kiện giới hạn; giá trị lặp của vòng lặp for)
{
khối lệnh thực hiện;
}
j) Lưu trữ và truy vấn dữ liệu bằng PHP
- Mở file bằng PHP:
+ fopen(tên file, chế độ mở): mở file

+ puts(), fwrite(): ghi file
+ close(): Đóng file
+ feof(): Nhận giá trị true nếu con trỏ ở cuối file
+ file_exists(): Kiểm tra file có tồn tại
+ filesize(): kiểm tra dung lượng của file
Chế độ mở file:
Mode

Diễn giải

R

Mở dưới dạng Read-Only

R+

Mở dưới dạng Read-Write

W

Mở dưới dạng Write-Only

W+

Mở dưới dạng Write-Read. Nếu file này tồn tại, nội dung sẽ bị xóa,
nếu không tồn tại chúng sẽ được tạo ra.
Mở dưới dạng append dữ liệu (write), nếu nội dung tồn tại, bắt đầu

A


cuối cùng của nội dung, dữ liệu sẽ được ghi tiếp phần cuối,
trong trường hợp file không tồn tại chúng sẽ được tạo ra.
Mở dưới dạng append dữ liệu (write & read), nếu nội dung tồn tại,

A+

bắt đầu phần đầu của nội dung, dữ liệu sẽ được ghi tiếp phần đầu, trong
trường hợp file không tồn tại chúng sẽ được tạo ra.

14


- Thiết lập kết nối cơ sở dữ liệu
Để kết nối cơ sở dữ liệu MySQL, cần cung cấp tên Server hay IP (có thể là
localhost) của máy chứa cơ sở dữ liệu MySQL, Username và Password để đăng nhập
làm việc trên cơ sở dữ liệu được mở.
- Thiết lập kết nối:
Int mysql_pcconnect(“serverbname”, “username”, “password”);
if(!$db)
{ echo “Không kết nối được với CSDL”); }
hoặc
$link = mysql_connect(“servername”, “username”, “password”)
or die(“Không kết nối được với CSDL”);
- Mở một CSDL: mysql_select_db(“database name”); hoặc mysql_select_db
(“database name”, $link);
- Đóng kết nối cơ sở dữ liệu: mysql_close(database_connection);
- Truy vấn cơ sở dữ liệu:
Int mysql_query(string sql);
Int mysql_query(string sql, [int db_connect]);
Int mysql_query(string database, string sql, [int db_connect]);

Số lượng mẩu tin: mysql_num_rows(); Cho biết số lượng mẩu tin câu truy
vấn trả về
- Truy vấn dữ liệu:
Int mysql_fetch_array($result); Mysql_fetch_object($result);
- Dung lượng của tập mẩu tin: int mysql_free_result(int $result);

15


1.1.2 Giới thiệu MySQL
1.1.2.1 MySQL là gì?
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 mộ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.


16


1.1.2.2 Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
a) Loại dữ liệu numeric
Loại

Range

Bytes

Diễn giải

Tinyint

-127 ->128 hay 0..255

1

Số nguyên rất nhỏ

Smallint

-32768 -> 32767 hay 0..65535

2

Số nguyên nhỏ

Mediumint


-8388608 -> 838860 hay

3

Số nguyên vừa

Int

-231 -> 231 hay 0..232-1

4

Số nguyên

Bigint

-263 -> 263 hay 0..264-1

8

Số nguyên lớn

Float

Phụ thuộc số thập phân

Float(M,D)

±1.175494351E-38


4

Số thập phân dạng

Double(M,D)

±1.7976931348623157308

8

Số thập phân dạng

Số thập phân dạng

Float(M[,D])

Số chấm động lưu

b) Loại dữ liệu Date and Time
Loại

Range

Diễn giải

Date

1000-01-01


Time

00:00:00

DateTime

1000-01-01

Date và Time trình bày dưới dạng

TimeStamp[(M)]

1970-01-01

TimeStamp

Year[(2|4)]

1970-2069

Year trình bày dưới dạng 2 số hay 4 số

Date trình bày dưới dạng YYYY-mmTime trình bày dưới dạng hh:mm:ss

trình

bày

* Trình bày đại diện của TimeStamp
Loại


Hiển thị

TimeStamp

YYYYMMDDHHMMSS

TimeStamp(14)

YYYYMMDDHHMMSS

TimeStamp(12)

YYMMDDHHMMSS

TimeStamp(10)

YYMMDDHHMM

TimeStamp(8)

YYYYMMDD

TimeStamp(6)

YYMMDD

TimeStamp(4)

YYMM


17

dưới

dạng


TimeStamp(2)

YY
(y = năm, m = tháng, d = ngày)

c) Loại dữ liệu String
Loại

Range

Diễn giải

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

Tinytext

28-1

Blob

216-1

Text

216-1

Mediumblob

224-1

Mediumtext

224-1

Longblob

232-1

Longtext

232-1


Khai báo cho Field chứa kiểu đối tượng
nhị phân cỡ 255 ký tự
Khai báo cho Field chứa kiểu chuỗi cỡ 255 ký
tự
Khai báo cho Field chứa kiểu blob cỡ
65535 ký tự.
Khai báo cho Field chứa kiểu chuỗi dạng văn
bản cỡ 65535 ký tự.
Khai báo cho Field chứa kiểu blob.
Khai báo cho Field chứa kiểu chuỗi dạng văn
bản vừa kho ng 16777215 ký tự.
Khai báo cho Field chứa kiểu blob
lớn khoảng 4294967295 ký tự.
Khai báo cho Field chứa kiểu blob vừa
khoảng 4294967295 ký tự.

1.1.2.3 Phát biểu SQL
Tạo cơ sở dữ liệu:
Create Database <database_name> Create <object type>
<object_name>

18


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>]
[Order by <danh sách cột>]
[Limit fromNumber | To Number]
b) Phát biểu Insert
Insert into <table_name> [<colum_name list>] Values (data_values)
c) Phát biểu Update
Update <table_name>
Set <column>=<value>, [<column>=<value>]
[where <restrictive conditions>]
d) Phát biểu Delete
Delete from <table_name> Where <condition>
1.2. Tìm hiểu google calendar và google calendar API
1.2.1. Tìm hiểu google calendar
1.2.1.1. Khái niệm google calendar
Google Calendar, được gọi trước đây với tên mã "CL2", là một ứng dụng web
để quản lý thông tin liên lạc và quản lý thời gian được cung cấp bởi Google. Nó cho
phép người dùng đồng bộ các địa chỉ liên lạc trong Gmail với một bộ lịch dựa trên
web. Nó bắt đầu được đưa vào sử dụng vào ngày 13 tháng 4, năm 2006 và hiện nay
đang trong giai đoạn beta. Trong khi người dùng không bị yêu cầu phải có một tài
khoản Gmail, nhưng người dùng được yêu cầu phải có một tài khoản Google miễn phí
để có thể sử dụng các phần mềm này.

19


Để sử dụng công cụ này, trước tiên bạn cần đăng nhập vào tài khoản Google cá
nhân trên thiết bị. Nhấn chọn biểu tượng danh sách các ứng dụng của Google hoặc

truy cập trực tiếp Google Calendar tạiwww.google.com/calendar.
Tất cả kế hoạch công việc đã lập lịch trước sẽ được hiển thị theo thứ tự thời gian
với bắt đầu là ngày hiện tại. Bạn có thể nhanh chóng chuyển đổi giữa các chế độ hiển
thị theo ngày, tuần, tháng và cả nhật ký công việc bằng cách nhấn chọn trên từng tab ở
góc trên bên phải của ứng dụng.
Mặc định Google Calendar hiển thị kế hoạch công việc của bốn ngày tới trong
mục 4 Days nhưng bạn vẫn có thể tùy chỉnh bằng cách nhấn chọn mục Settings ở góc
trên bên phải màn hình và cuộn xuống đến mục Custom view trên tab General. Chọn
một tùy chọn, từ hai ngày cho đến bốn tuần, trong danh sách thả xuống và nhấn Save.
Một cách để hiển thị thông tin cùng lúc của nhiều ngày liên tiếp, nhấn và giữ chuột từ
ngày bắt đầu và kéo rê sang các ngày kế tiếp trong khung trái, góc trên màn hình.
Việc sử dụng bàn phím để duyệt qua toàn bộ lịch làm việc cũng khá dễ với các
phím tắt D, W, M, Xhoặc A để lần lượt chuyển đến ngày, tuần, tháng, xem theo tùy
chọn hoặc xem theo danh sách lịch hẹn. Phím N (next) tương ứng với kế tiếp
và P (previous) để di chuyển về ngày trước đó so với hiện tại.
Để lên lịch công việc, Google Calendar cung cấp sẵn hai cách đơn giản là nhấn
vào liên kết Quick Add(hoặc phím Q) ở góc trên bên trái ứng dụng, nhập tiêu đề cho
mục cần tạo, xác định thời gian cụ thể, bổ sung mô tả cùng tùy chọn nhắc nhở nếu cần
thiết. Cách thứ hai là nhấn chọn trực tiếp lên một ngày hoặc một thời điểm cụ thể trong
lịch và nhập thông tin.
Sau khi tạo một sự kiện, nhấn chọn đường dẫn Edit event mới xuất hiện trong
khung Event nếu cần thay đổi. Bạn có thể dễ dàng đổi ngày, giờ bằng cách kéo và thả
sự kiện sang ô thời gian khác trong ngày hoặc chuyển sang ngày khác. Nếu muốn xóa
một khoản mục, nhấn chuột lên mục cụ thể rồi chọn chọn Delete.
Tương tự việc tạo sự kiện, bạn cũng có thể thiết lập tính năng nhắc nhở với
Google Now và sẽ nhận được thông báo hiển thị trên nhiều thiết bị khác nhau, từ máy
tính cá nhân, thiết bị di động cho đến Google Glass và Android Wear. Bên cạnh đó,
Google Now cũng có thể nhắc nhở dựa theo vị trí người dùng. Chẳng hạn, bạn có thể
thiết lập để Google Now nhắc nhở gửi một email quan trọng khi đã trở về nhà. Ứng


20


dụng sẽ sử dụng chức năng định vị của thiết bị để cung cấp thông báo ngay khi bạn
vừa vào nhà.
1.2.1.2. Những tính năng chính của Google Calendar
Hiển thị các sự kiện từ lịch làm việc.
Nhanh chóng thêm các sự kiện mới vào lịch.
Nhắc nhở sự kiện.
Chia sẻ lịch với người khác.
Đồng bộ hai chiều với điện thoại.
Cho phép đặt chỗ cho sự kiện.
Kiểm tra lịch khi không có Internet.
Đồng bộ với các ứng dụng trên máy tính.
a) Tạo sự kiện
Mở giao diện Calendar
Nhấp vào nút Tạo ở bên trái màn hình

Viết tên sự kiện trong mục tiêu đề sự kiện
Trong trang chi tiết sự kiện, ở mục Thêm Kháchở bên phải, nhập địa chỉ email
của những người bạn muốn mời tham gia rồi nhấp vào Thêm. Bên dưới là các lựa chọn

21


về quyền hạn của những người được mời, bao gồm: sửa đổi sự kiện, mời thêm người
khác và xem danh sách khách mời.
Ở mục Tài liệu đính kèm, chọn Thêm tài liệu đính kèm để tải những tài liệu liên
quan vào sự kiện cho những người được mời cùng xem và tham khảo trước khi dự họp


Bên dưới tiêu đề của sự kiện là nơi bạn thiết đặt thời gian cho sự kiện của mình.
Bạn có thể chọn khung giờ cho sự kiện của mình, hoặc chọn cả ngày cho những sự
kiện kéo dài nguyên ngày. Ngoài ra, Calendar còn cho phép bạn tạo những sự kiện
mang tính định kỳ bằng chức năng lặp lại.
Sau khi đã thiết lập tất cả chi tiết của sự kiện, nhấp vào nút Lưu để lưu sự kiện và
gửi lời mời.
b) Nhắc sự kiện
Không chỉ là một cuốn sổ nhắc nhở công việc, Google Chrome còn đóng vai trò
là chiếc đồng hồ báo thức nhắc nhở bạn những khi sắp tới sự kiện. Google Calendar sẽ
thông báo tới người dùng qua email hoặc tiện lợi hơn nữa là một tin nhắn gửi thẳng tới
điện thoại di động. Với Google Calendar, không còn lo bạn bỏ sót một công việc hay

22


sự kiện quan trọng nào nữa.
c) Chia sẻ lịch với người khác.
Tính năng chia sẻ với những người dùng khác của Google Chrome sẽ giúp những
người làm việc trong cùng một nhóm quản lý hoạt động nhóm hiệu quả hơn. Ngoài ra,
thật tiện lợi khi có thể mau chóng nhìn ra thời gian mà tất cả mọi người đều rảnh rỗi và
đặt một cuộc hẹn nghỉ ngơi với Google Calendar. Chỉ cần rê chuột vào ô có sự kiện là
các chi tiết về sự kiện sẽ hiện ra.
d) Đồng bộ lịch trong điện thoại
Google Calendar có tính năng đồng bộ lịch trong điện thoại hoặc với phiên bản
điện thoại của Google Calendar, cho phép người dùng xem được lịch làm việc của
mình ngay cả khi bạn đang không ngồi trước máy tính. Một số cài đặt khác cũng có
thể được tìm thấy trong mục Settings.
e) Đặt chỗ cho sự kiện
Google Calendar còn là công cụ tuyệt vời cho những đơn vị tổ chức sự kiện khi
với Google Calendar, người sử dụng có thể mời những người khác tham gia vào các sự

kiện có trong lịch. Nhà tổ chức chỉ cần đặt một lịch trên Google Calendar và mời số
lượng người tham dự theo mong muốn của mình. Đặc biệt hơn nữa là khách tham dự
sự kiện có thể đặt chỗ cho sự kiện của bạn qua email hoặc qua Google Calendar ngay
lập tức.
Khi đồng bộ hóa Google Calendar với điện thoại hoặc các ứng dụng khác như
Microsoft Outlook, Apple iCal và Mozilla Sunbird, bạn có thể truy cập vào lịch làm
việc bất cứ khi nào bạn muốn.
f) Xem lịch offline
Ngay cả khi không có mạng Internet, người dùng cũng hoàn toàn có thể kiểm
soát được lịch làm việc của mình với Google Calendar. Với khả năng truy cập
offline, người dùng Google Calendar có thể xem lịch làm việc của mình trên Google
Calendar cho dù bạn đang ở nơi không có kết nối mạng. Chỉ có một chút khác biệt khi
đây chỉ là bản đọc nên người dùng không thể chỉnh sửa gì trên lịch.

23


Với mỗi lịch làm việc, người dùng cũng có thể tùy chọn ẩn hoặc hiện sự kiện đó
trên bảng lịch của mình.
Nhìn chung, Google Calendar là một tiện ích trên Chrome rất hữu dụng và có thể
tiết kiệm cho người dùng rất nhiều thời gian quản lý công việc. Giao diện rất đơn giản
và dễ dàng sử dụng của công cụ quản lý lịch làm việc Google Calendar cũng là một
điểm cộng của tiện ích này. Những lợi ích mà Google Calendar là rất hiệu quả và tiết
kiệm nhiều thời gian quý báu của người dùng.
1.2.2. Google calendar API
1.2.2.1. Google API
API là viết tắt của Application Programming Interface (giao diện lập trình ứng
dụng). Nó là 1 giao tiếp phần mềm được dùng bởi các ứng dụng khác nhau. Cũng
giống như bàn phím là một thiết bị giao tiếp giữa ngườI dùng và máy tính, API là 1
giao tiếp phần mếm chẳng hạn như giữa chương trình và hệ điều hành (HĐH).

Bộ API của từng HĐH là khác nhau, làm cho các HĐH khác nhau và thường
không tương thích với nhau. Ví dụ những phần mềm trên HĐH linux không thể chạy
được trên máy Windows bởi vì Linux và Windows có các API hòan tòan khác nhau.
Một trong các mục đích chính của một API là cung cấp khả năng truy xuất đến
một tập các hàm hay dùng — ví dụ, hàm để vẽ các cửa sổ hay các icon trên màn hình.
Các API, cũng như hầu hết các interfaces, là trừu tượng (abstract). Phần mềm mà
muốn cung cấp truy xuất đến chính nó thông qua các API cho sẵn, phải hiện thực API
đó. Trong nhiều tình huống, một API thường là một phần của bộ SDK, hay software
development kit. Một bộ SDK có thể bao gồm một API cũng như các công cụ/phần
cứng, vì thế hai thuật ngữ này không thay thế cho nhau được
Ngoài ra còn có các API tích hợp của bên thứ ba cho ngôn ngữ lập trình
Microsoft® .NET, Java™, Python và PHP chứa đựng nhiều chức năng của API dữ liệu
Google trong một tập các lớp trình bao hướng đối tượng.

24


1.2.2.1. Google calendar API
API dữ liệu Google cung cấp một số các nguồn cung cấp tin Atom có chứa các
tài liệu và thông tin với nhiều dịch vụ Web do Google cung cấp. Google Calendar
cũng không là ngoại lệ, cung cấp một số nguồn cung cấp tin đang chứa đựng phần lớn
dữ liệu của Google Calendar. Có các nguồn cung cấp tin công khai và có xác thực
HTTP. Để lấy ra và tương tác với nguồn cung cấp tin có xác thực, máy khách HTTP
cần phải cung cấp thông tin xác thực cùng với yêu cầu GET của HTTP. Các nguồn
cung cấp tin có xác thực cũng có khả năng cập nhật tài khoản Google Calendar bằng
yêu cầu POST của HTTP. Các máy khách HTTP đang sử dụng các nguồn cung cấp tin
có xác thực có thể thêm và loại bỏ các sự kiện, đăng ký và huỷ đăng ký khỏi các lịch,
và tạo và xóa các lịch khỏi tài khoản Google.
Google Calendar API cung cấp các nguồn cung cấp tin để truy cập vào tất cả các
lịch cá nhân mà người dùng đã truy cập vào từ Giao diện người dùng đồ họa (GUI)

của Google Calendar. Việc này bao gồm các lịch thuộc sở hữu của người dùng, các
lịch thuộc sở hữu của người khác nhưng người dùng đã đăng ký, và các lịch mà người
dùng đã nhập khẩu trong trạng thái chỉ-đọc. Các lịch này, mà mỗi cái đều là nguồn cấp
tin riêng của mình, đã xác thực các nguồn cung cấp tin sự kiện công khai và riêng tư, ở
đó các sự kiện cá nhân trong lịch được liệt kê. Bài viết này tập trung vào các nguồn
cung cấp tin sự kiện công khai.
Cơ chế Oauth của google

25


×