1.1 Cỏc khỏi niệm cơ bản
1.1.1 Cơ sở dữ liệu
Cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau chứa thông tin về một tổ chức nào đó (Nh- một tr- ờng đại học, một ngân hàng, một công ty, một nhà máy,...), đ- ợc l- u trữ trên các thiết bị nhớ thứ cấp (Nh- băng từ, đĩa từ,...) để đáp ứng nhu cầu khai thác thông tin của nhiều ng- ời sử dụng với nhiều mục đích khác nhau
1.1.2 Siờu khúa.
Siêu khóa của l- ợc đồ quan hệ R là một tập hợp gồm một hay nhiều thuộc tính của l- ợc đồ R có tính chất xác định duy nhất một bộ trong mỗi thể hiện của R.
1.1.3 Khúa chớnh.
Khóa của một l- ợc đồ quan hệ là một siêu khóa của l- ợc đồ này sao cho mọi tập con thực sự của nó không là siêu khóa.
1.1.4 Khúa ngoài.
Khóa ngoài của một l- ợc đồ quan hệ là một tập hợp gồm một hay nhiều thuộc tính là khóa của l- ợc đồ quan hệ khác.
1.1.5 Miền (Domain)
Một miền D là một tập hợp các giá trị nguyên tố, hiểu theo nghĩa mỗi giá trị trong miền không thể phân chia trong phạm vi mô hình quan hệ.
1.1.6 Quan hệ (Relation)
Một quan hệ trên một tập các thuộc tính là một tập con của tích Descartes của một hay nhiều miền.
Cho một quan hệ r xác định trên tập thuộc tính Ω = {A1, A2, ..., A1}
Khi đó r Є Dom(A1) x Dom(A2) x Dom(A3) x Dom(A4) x … x Dom(An), trong đó Dom(Ai) là miền của thuộc tính Ai, là tập các giá trị có thể của thuộc tính đó. Nh- vậy quan hệ r là một tập hợp các n bộ có dạng:
1.1.6 Lược đồ quan hệ (Relation schema)
Một l- ợc đồ quan hệ R là một cặp có thứ tự R = <Ω, F>, trong đó Ω là tập hữu hạn các thuộc tính của quan hệ, F là tập các điều kiện giữa các thuộc tính (F còn gọi là tập các ràng buộc toàn vẹn).
1.2 SQL - Structure Query Language
Mỗi hệ quản trị CSDL đều phải có ngôn ngữ giao tiếp giữa ng- ời sử dụng với cơ sở dữ liệu. Ngôn ngữ giao tiếp CSDL gồm các loại sau:
▪ Ngôn ngữ mô tả dữ liệu (Data Definition Language –DDL): Cho phép khai báo cấu trúc các bảng của CSDL, khai báo các mối liên hệ của dữ liệu (relatíonship) và các quy tắc áp đặt lên các dữ liệu đó.
▪ Ngôn ngữ thao tác dữ liệu (Data Manipullation Language- DML) cho phép ng- ời sử dụng có thể thêm (insert), xoá (delete), sửa (update) dữ liệu trong CSDL.
▪ Ngôn ngữ truy vấn dữ liệu (hay ngôn ngữ hỏi đáp có cấu trúc(Structured Query Language-SQL)): Cho phép ng- ời sử dụng khai thác CSDL để truy vấn các thông tin cần thiết trong CSDL.
▪ Ngôn ngữ quản lý dữ liệu (Data Control Language- DCL): Cho phép những ng- ời quản trị hệ thống thay đổi cấu trúc của các bảng dữ liệu, khai báo bảo mật thông tin và cấp quyền khai thác CSDL cho ng- ời sử dụng.
Những năm 1975-1976, IBM lần đầu tiên đ- a ra hệ quản trị CSDL kiểu quan hệ mang tên SYSTEM–R với ngôn ngữ giao tiếp CSDL là SEQUEL (Structured English Query Language). Năm 1976 ngôn ngữ SEQUEL đ- ợc cải tiến thành SEQUEL-2, khoảng năm 1978-1979 SEQUEL-2 đ- ợc cải tiến và đổi tên thành ngôn ngữ truy vấn có cấu trúc (Structured Query Language). Cuối năm 1979 hệ quản trị CSDL đ- ợc cải tiến thành SYSTEM-R*. Năm 1986 viện tiêu chuẩn quốc gia Mỹ (American National Standards Institute –ANSI) đã công nhận và chuẩn hoá ngôn ngữ SQL và sau đó tổ chức tiêu chuẩn thế giới (International Standards Organization -ISO) cũng đã công nhân ngôn ngữ này. Đó là chuẩn SQL-86. tới này SQL đã qua 3 lần chuẩn hoá (1989,1992,1996) để mở rộng các phép toán và tăng c- ờng khả năng bảo mật và tính toàn vẹn dữ liệu.
Trong phần này chúng ta chỉ nghiên cứu về ngôn ngữ SQL. Ngôn ngữ truy vấn SQL có tập lệnh khá phong phú để thao tác trên cơ sở dữ liệu. Chẳng hạn lệnh create để tạo các bảng quan hệ, lệnh update để cập nhật dữ liệu, lệnh delete để xoá dữ liệu, lệnh insert để thêm dữ liệu,…
1.2.1 Định nghĩa dữ liệu
❖ Các kiểu miền trong SQL
▪ CHAR(n): Xâu kí tự có độ dài cố định n.
▪ VARCHAR(n): Xâu kí tự có độ dài tối đa n.
▪ INT, SMALLINT: Kiểu số nguyên.
▪ NUMBER(p,d): Số thập phân gồm p chữ số và một dấu chấm và d chữ số bên phải dấu chấm.
▪ REAL, DOUBLE, PRECISION: Số dấu phẩy động.
▪ FLOAT(n): Số dấu phẩy động với độ chính xác ít nhất n chữ số.
▪ DATE: Kiểu ngày, tháng, năm.
▪ TIME: Kiểu giờ trong ngày.
❖ Định nghĩa l- ợc đồ trong SQL
Dạng đơn giản nhất của câu lệnh tạo một bảng có cú pháp nh- sau: CREATE TABLE <Tên bảng>(
<Tên cột 1><Kiểu dữ liệu 1>(<Kích th-ớc 1>), <Tên cột 2><Kiểu dữ liệu 2>(<Kích th-ớc 2>), ...
<Tên cột n><Kiểu dữ liệu n>(<Kích th-ớc n>) );
Ví dụ: Để tạo bảng nhan_vien có thể dùng câu lệnh sau: CREATE TABLE nhan_vien (
Manv NUMBER(2),
Ng_sinh DATE, Gioi_tinh VARCHAR(3), Ma_dv CHAR(2), Luong NUMBER(9) ); 1.2.2 Thao tỏc dữ liệu
Các câu lệnh cơ bản đ- ợc tập chung nói đến trong phần thao tác dữ liệu này là:
▪ Cấu trúc SELECT dùng để truy vấn dữ liệu trong CSDL
FROM
WHERE
▪ INSERT: Thêm các bộ mới vào một bảng.
▪ UPDATE: Sửa đổi thông tin đã có trong một bảng.
▪ DELETE: Xoá bỏ một số bộ trong một bảng.
❖ Cấu trúc cơ sở để truy vấn
Cú pháp điển hình của một biểu thức truy vấn trong SQL là:
SELECT [ DISTINCT | ALL] { * | [<biểu thức cột> AS [<Tên mới>]] [,...]}
FROM <tên bảng>[<bí danh>] [,...]
[WHERE <điều kiện>]
[GROUP BY <danh sách tên cột>] [HAVING<điều kiện>]
[ORDER BY <Danh sách tên cột>]
Trong dạng trên <biểu thức cột> là tên của một cột hoặc một biểu thức, <tên bảng> là tên của một bảng trong CSDL hay một khung nhìn (View) mà ta có thể truy cập vào, <bí danh> là một tên viết tắt của tên bảng. Ngoài ra:
▪ GROUP BY dùng để gộp nhóm các bộ cùng giá trị t- ơng ứng ở các cột xuất hiện trong <danh sách tên cột>.
▪ HAVING dùng để lọc các nhóm thỏa điều kiện.
Thứ tự các câu trong dạng biểu thức truy vấn trên không thể thay đổi. Kết quả của biểu thức truy vấn đó là một bảng. D- ới đây là một số ví dụ minh họa.
Ví dụ 4.1
Để tìm tên các dự án và mã các đơn vị (Các phòng) QL dự án t- ơng ứng có thể dùng truy vấn sau:
SELECT ten_da, ma_dv FROM du_an
Bảng kết quả của truy vấn trên (đối với bảng DU_AN) sẽ là:
ten_da ma_dv Phần mềm A Mạng B Agent C Phần mềm B P4 P3 P2 P1
Muốn bảng kết quả không chỉ có 2 cột ten_da và ma_da mà là tất cả các cột trong bảng du_an, có 2 cách.
SELECT ma_da, ten_da, dia_diem_da, ma_dv FROM du_an
hoặc
SELECT * FROM du_an
Ví dụ 4.2
Câu truy vấn sau cho danh sách nhân viên có l- ơng trên 2 300 000, với mỗi nhân viên nh- vậy các thông tin đ- a ra gồm: mã nhân viên, họ tên, mã đơn vị và l- ơng.
SELECT ma_nv, ho_ten, ma_dv, luong FROM nhan_vien
Ví dụ 4.3
Liệt kê l- ơng của các nhân viên theo thứ tự tăng dần.
SELECT ma_nv, ho_ten, ma_dv, luong FROM nhan_vien
ORDER BY luong; Bảng kết quả sẽ là:
Ví dụ 4.4
Để tìm mã số và họ tên những học sinh khoa ‘Công nghệ thông tin’ có thể dùng câu lệnh truy vấn sau:
SELECT malop, hoten FROM lop
WHERE makhoa =
(SELECT makhoa
FROM khoa
WHERE tenkhoa = 'Công nghệ thông tin');
Bảng kết quả sẽ là:
❖ Cập nhật cơ sở dữ liệu.
Trong SQL có 3 câu lệnh có thể biến đổi cơ sở dữ liệu (Thêm, bớt, thay đổi thông tin).
o INSERT: Thêm các bộ mới vào một bảng.
o UPDATE: Sửa đổi thông tin đã có trong một bảng.
o DELETE: Xoá bỏ một số bộ trong một bảng.
➢ Dạng INSERT.
Câu lệnh Insert cho phép một bộ đ- ợc thêm vào một bảng, cú pháp nh- sau: INSERT INTO <Tên bảng>[(Danh sách cột)]
VALUES (Danh sách các giá trị)
Ví dụ 4.5
Câu lệnh sau thêm vào một bộ vào bảng nhan_vien. INSERT INTO nhan_vien
VALUES (‘11’,’Trần Hữu Việt’, ‘Nam’, ‘Hà Nội’);
➢ Dạng UPDATE.
Trong một số tr- ờng hợp chúng ta cần thay đổi một số giá trị trong một bộ chứ không phải là thay đổi tất cả các giá trị của bộ. Lệnh UPDATE cho phép làm điều đó và cú pháp nh- sau:
UPDATE <Tên bảng>
SET <Tên cột i>=<Giá trị i>[,<Tên cột j>=<Giá trị j>,...] [WHERE <điều kiện>]
Khi câu WHERE không xuất hiện trong câu lệnh cập nhật này thì mọi bộ trong bảng sẽ đ- ợc cập nhật trên những cột xác định bởi SET, ng- ợc lại thì chỉ những bộ thoả điều kiện đặt sau WHERE mới bị sửa đổi.
Ví dụ 4.6
Tăng l- ơng 5% cho mọi nhân viên, câu lệnh đ- ợc viết nh- sau: UPDATE nhan_vien
SET luong = luong*1.05;
Ví dụ 4.7
Tăng lương 5% cho nhân viên làm ở đơn vị có mã số “P2”, câu lệnh đ- ợc viết nh- sau: UPDATE nhan_vien
WHERE ma_dv = ‘P2’;
➢ Dạng DELETE
Cú pháp của câu lệnh xoá một số bộ khỏi một bảng là: DELETE FROM <Tên bảng>
[WHERE <Điều kiện>]
Trong câu lệnh trên, nếu câu WHERE không xuất hiện thì tất cả các bộ trong bảng sẽ bị xoá, ng- ợc lại thì chỉ những bộ thoả điều kiện bị loại bỏ khỏi bảng.
Ví dụ 4.8
Câu lệnh sau sẽ xoá tất cả các bộ trong bảng cong_thang. DELETE FROM cong_thang
Ví dụ 4.9
Để xoá bộ nói về nhân viên có mã số 5 trong bảng nhan_vien, có thể viết. DELETE FROM nhan_vien
WHERE manv = ‘5’;Sơ lược về ASP
2.1 Giới thiệu về ASP.
ASP (Active Server Page) là một thành phần mở rộng của IIS. Khi cài đặt, ASP sinh ra các bộ xử lý ảo đối với ngôn ngữ kịch bản (script engine) tại server để IIS có thể xử lý các mã script mà các mã này có thể viết đan xen trong các trang HTML. Khi Client gọi đến một file .asp trên Web Server, Web Server lập tức gọi đến Script engine để xử lý. Script engine sẽ thực hiện các lệnh script để biến trang ASP thành trang HTML rồi gửi lại Client. Chú ý rằng quá trình này thực hiện tại server chứ không phải tại Client. Vì vậy chúng ta không phải quan tâm tới việc browser xử lý các trang Web nh− thế nào. Nh− vậy thực sự quá trình này đ−ợc thực hiện theo mô hình Client-Server.
ASP là công nghệ Web Server mới của Microsoft, nó đ−ợc thiết kế để giúp ng−ời phát triển ứng dụng trên Web xây dựng các trang Web ứng dụng nhanh chóng và dễ dàng. ASP là một phần tích hợp của công nghệ cơ sở Active (Active Platform), là hạt nhân trong chiến l−ợc internet của Microsoft. Active Platform là một tập hợp các ngôn ngữ, các chuẩn và các dịch vụ có thể đ−ợc sử dụng để phát triển cả ứng dụng Active Desktop(bản Client) và Active Server (bản Server) trong mô hình CSDL tính toán Client / Server. Mô hình Active Platform giúp cho ng−ời phát triển ứng dụng xây dựng ứng dụng hiệu quả về giá thành, mở rộng khả năng của các ứng dụng chạy trên Server cũng
nh− chạy trên Client và nâng cao kỹ năng phát triển ứng dụng của họ. Đồng thời, nó cũng làm việc chuyển đổi từ ứng dụng Desktop sang ứng dụng Client/Server đầy đủ, dễ dàng.
2.2 ASP file là gỡ?
File đ- ợc tạo với phần mở rộng.ASP. Trong file này chứa các thẻ HTML, Các kịch bản Scripting nh- VBSCript, JavaScript hay các lời gọi đến các components(Nh- DLL và ActiveX control) Các script của ASP đ- ợc nằm trong cặp thẻ <% ……….. %>
Khi cần sửa đổi các file ASP ta chỉ cần ghi lại trên server thôi. Vào nh- ng lần sau khi trang A đ- ợc gọi, các Script trong file ASP tự động biên dịch lại.
Công nghệ ASP đ- ợc xây d- ng trực tiếp bên trong IIS(WinNT, 2000, XP), Personal Webserver. ASP làm việc như thế nào
Trang HTML tĩnh:
Ví dụ về trang ASP <html> <body> <% response.write("Hello World!") %> </body> </html> <html> <body> <%="Hello World!"%> </body> </html>
2.4 Tạo và xem một file ASP
Chúng ta sử dụng những công cụ của Microsoft nh−: Microsoft Frontpage, Notepad hoặc Dreamweaver để tạo một file ASP .
Để xem một file ASP, chúng ta không thể gửi nó đến trình duyệt nh− một trang HTML bởi vì Browser không nhận biết đ−ợc các file ASP. Lý do là các file này cần phải đ−ợc thông dịch trên Server tr−óc khi gửi ra Browser.
Chúng ta có thể sử dụng IE hoặc Nescape Navigator để xem kết quả của các file ASP nh−ng chúng ta cần chắc chắn rằng Server mà chúng ta xử lý các mã có cài đặt ASP và đang chạy IIS hoặc Personal Web Server (PWS).
Trang ASP là một dạng text có kiểu là .asp, có cấu trúc gần giống nh− file HTML. Tất cả các thẻ có trong HTML thì đều dùng đ−ợc trong ASP. Nh−ng ngoài các thẻ thông th−ờng của HTML, trong file asp còn có thể viết các thẻ khác nữa để thể hiện các dòng lệnh của Script để làm việc với dữ liệu có sẵn hay có thể tính toán ngay bên trong nh− là một ngôn ngữ lập trình thực sự.
Cơ chế hoạt động của ASP nh− sau: Client sử dụng một Web Browser gửi yêu cầu HTTP tới một Server chạy Microsoft Internet Information Server (IIS). Sau khi nhận biết đó là yêu cầu cần xử lý của trang ASP, IIS chuyển yêu cầu này tới ASP engine, tại đây nội dung file .asp đ−ợc xử lý, các mã HTML đ−ợc để nguyên còn các Script đ−ợc tính dựa theo các yêu cầu và đ−ợc chuyển đổi thành các mã HTML. Nếu trong các Script có các câu lệnh gọi dữ liệu, nó sẽ liên kết tới Database Server và lấy các dữ liệu theo yêu cầu. Sau đó, các kết quả của việc thực hiện các Script (có thể là HTML tĩnh hoặc động) đ−ợc gửi trả lại Client Browser.
Xét một ví dụ để làm rõ cơ chế này: <HTML> <HEAD> <TITLE>Example</TITLE> </HEAD> <BODY> <% For i=5 to 7%>
<FONT SIZE=<%=i%>>Chào bạn!<BR></FONT> <% Next %>
</BODY> </HTML>
Kết quả là trình duyệt sẽ hiển thị 3 dòng Chào bạn! với kích th−ớc tăng dần nh− sau Chào bạn!
Chào bạn! Chào bạn!
Trong ví dụ này chúng ta mới đề cập đến nguyên lý làm việc của ASP mà ch−a nói đến cơ chế tạo Web động tức là cách tạo các trang Web thay đổi theo thông tin t−ơng tác mà ng−ời sử dụng cung cấp. Trong ví dụ ta sẽ làm việc nh− sau:
Tạo một trang Web có một form để ng−ời sử dụng nhập vào họ, tên và giới tính qua Textbox và option. Ng−ời sử dụng cũng đánh vào một số tự nhiên. Khi nhận đ−ợc, ASP sẽ gửi lại một trang Web với một lời chào phù hợp với giới tính và tên ng−ời đã đ−ợc cung cấp đồng thời cho ra tất cả các −ớc số của số này.
Sau đây là đoạn mã của hai trang ASP thực hiện hiệu ứng này. Có một số câu lệnh script có thể còn lạ nh−ng ý nghĩa hoàn toàn rõ ràng.
<HTML> <HEAD>
<TITLE>Example</TITLE> </HEAD>
<BODY>
<P>Vi du ve form de trao doi thong tin theo phuong thuc POST</P>
<FORM method="post" action="chao.asp">
<P> Ho dem: <input type ="text" name="Hodem" size=20></P>
<P>Ten:<input type ="text" name="Ten" size=20></P> <P> Gioi tinh: Nam <input type ="radio" value="Nam" checked name="Gioitinh" size=20>
Nu <input type ="radio" value ="Nu" name="Gioitinh" size=20></P>
<P>Cho so n <input type ="Text" name="So" size=8></P> <P><input type="submit" value ="Gui di" name="B1"> <input type="reset" name="B2"></P>
</FORM> </BODY> </HTML>
Đây là nội dung tệp Chao.asp mô tả ứng xử khi ta bấm nút Gửi đi t−ơng ứng với hoạt động Submit của Form
<HTML> <HEAD> <TITLE>Example</TITLE> </HEAD> <BODY> <% ho=request.Form("hodem") ten=request.Form("ten") so=request.Form("so") gioitinh=request.form("gioitinh") if gioitinh="Nam" then gioitinh="Ong" else gioitinh="Ba" end if
response.Write "Xin chao " & gioitinh & " " & ho &" " & ten &" <br>"
response.Write "Day la ket qua tinh " & "<br>" for i=1 to so-1
if so mod i =0 then response.Write i & "<br>" end if next %> </BODY> </HTML>
2. Cỏc lệnh liờn kết CSDL trong ASP 3.1 ADO là gỡ?
ADO Có thể dùng để truy cập dữ liệu từ trang web. - ADO là công nghệ của Microsoft