Tải bản đầy đủ (.ppt) (41 trang)

Chuyên đề: LẬP TRÌNH CƠ SỞ DỮ LIỆU ppsx

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 (275.85 KB, 41 trang )


Chuyên đề
LẬP TRÌNH CƠ SỞ DỮ LIỆU
(Database Programming)
Nguyễn Lương Thục
E-mail:

TEL: 0914025047
Sửa ngày 9/9/2009


Phần lớn các phần mềm hiện nay đều là các hệ quản trị cơ
sở dữ liệu.

Tại VN, trước đây nó được lập trình bằng dBASE, FoxPro,
Access. Hiện nay, người ta có xu hướng sử dụng .NET hơn
vì nhiều lý do (công nghệ, font chữ…)

Tùy theo điều kiện (loại mạng, loại đường truyền, loại tác
vụ, kinh phí…) mà người lập trình quyết định giải pháp là
desktop application hay web application.

Các công đoạn để thiết kế một phần mềm.
Mở đầu

Tìm hiểu yêu cầu bài toán
Khảo sát thực tế (cơ sở vật chất, trình độ sử
dụng, quy mô bài toán, tổ chức hành chính )
Phân tích, Mô hình hoá bài toán, Xây dựng hệ
thống
Tìm kiếm giải pháp (thuật toán, kỹ thuật xử lý )


cho mỗi khối trong hệ thống
Coding
Kiểm định với Bộ dữ liệu giả
Kiểm định với Bộ dữ liệu thực
Chính thức đưa vào sử dụng
10%
10%
20%
30%
20%
3%
5%
2%
Ước
chừng
chi phí
thời
gian

Các dạng ứng dụng điển hình
mô hình Client-Server hiện nay

Trình điều khiển
SQL SERVER
SQL
Database
CLIENT
Yêu cầu về dữ liệu (Y)
(dạng lệnh SQL)
Truy xuất

database
theo (Y)
Kết quả Q
Chuyển Q về client
(dưới dạng cursor)
SQL-server
SERVER
DẠNG DESKTOP APPLICATION
-
Ưu điểm và nhược điểm?
-
Khi nào thì nên sử dụng dạng này?
Chương trình
ứng dụng
cài trên
desktop (PC)
Thao tác dữ liệu
chủ yếu bằng các
control dạng Form
Trung tâm Dữ liệu
Tương tác trên
chương trình
ứng dụng

DẠNG WEB APPLICATION
Trình điều khiển
SQL SERVER
SQL
Database
SQL-server

SERVER 1
SERVER 2
Web application
(trình ứng dụng)
(html,asp,
aspx,img…)
Trình điều khiển
Truy cập Web
(IIS, PWS…)
HTTP-server
Truy cập dữ liệu theo
yêu cầu của web page
CLIENT
Y/C web page
(GET/POST)
Trả về dạng
web page
(html)
Web
browsers
(IE, FireFox…)
Thao tác dữ liệu
chủ yếu bằng các
control dạng Web
-
Ưu điểm và nhược điểm?
-
Khi nào thì nên sử dụng
dạng này?
WEBSITE

Tương tác trên
Web browser

DẠNG WEB SERVICES APPLICATION
Trình điều khiển
SQL SERVER
SQL
Database
SQL-server
SERVER 1
SERVER 2
Trình điều khiển
Truy cập Web
(IIS, PWS…)
HTTP-server
Truy cập dữ liệu theo
yêu cầu của web page
CLIENT
Y/C dịch vụ S
(services)
Trả kết quả về
dạng SOAP-
Simple Object
Access Protocol)
(XML)
-
Ưu điểm và nhược điểm?
-
Khi nào thì nên sử dụng
dạng này?

WEBSITE
Web
Services
S1,S2,S3…
Chương trình
ứng dụng
(desktop hoặc
Web application)
Tương tác trên
chương trình
ứng dụng

Nội dung

1. Một số vấn đề về SQL server

2. Lập trình với ngôn ngữ Transact-SQL

3. Sử dụng Interprise Manager

4. Lập trình CSDL trong .NET

5. Bài tập: Thiết kế một ứng dụng cụ thể

Một số vấn đề về SQL-server
1

Cài đặt SQL-Server
-
MS SQL-SERVER: Trình điều khiển SQL-server cài trên máy server

(nhiều dạng (Professional, Personal ) nhiều version (2000,2003,2005,2008…))
-
MSDE (Microsoft Desktop Enginner): SQL-server cài trên desktop

Start : SQL-server tiếp nhận các
yêu cầu và xử lý yêu cầu từ client

Pause: Tạm dừng, không cắt các
kết nối

Stop: Dừng SQL-server
Các trạng thái:
Khả năng xử lý:

Các câu lệnh ngôn ngữ SQL

SQL-server chứa ngôn ngữ
Transact-SQL=> cho phép lập
trình trên nó

SQL-database
1. Datagrams: Các lược đồ về CSDL
2. Tables: Các bảng dữ liệu
3. Views: Mỗi “view” tương đương với một lệnh
SELECT được dựng sẳn
4. Stored Procedures: Các chương trình con
(thủ tục) viết bằng ngôn ngữ Transact-SQL sẽ
được thực hiện tại Server
5. Users: Danh sách tài khoản người sử dụng
(account)

6. Roles: Mô tả nhóm người dùng
7. Rules: Các luật
8. Defaults: Các giá trị mặc định
9. User Defined Data Types: Các kiểu dữ liệu
của người sử dụng
10.User Defined Functions: Các hàm viết bằng
ngôn ngữ Transact-SQL được thực hiện tại
server

Cách thức truy xuất SQL-server:

Bước 1: Thực hiện thủ tục kết nối (connect) với Database D
Bước 2: Dãy lệnh giao dịch dữ liệu:
Chuyển yêu cầu (Y) đến SQL-server
Nhận kết quả mà SQL-server trả lại (Q)
Bước 3: Cắt kết nối (disconnect) với database D

Chú ý: Yêu cầu Y phải viết bằng ngôn ngữ
Transact-SQL thì SQL mới “hiểu” được

Làm thế nào để kết nối với một
database trong SQL server ?
Phải gửi đến Server chuổi mô tả kết nối (Stringconnect), chuổi này phải chỉ ra:
- Địa chỉ SQL server:
Data source = ? (localhost/tên server/điạ chỉ IP)
-
Tên database cần kết nối :
Initial Catalog = ? (tên database)
-
Xác định quyền truy xuất:

Integrated Security=? (true/false)
(sử dụng luôn Windows account
User ID, Password=? (username, password)
(sử dụng SQL server account)

Ví dụ:
Khi SQL server trên cùng máy với tính ứng dụng:
(1) Sử dụng luôn Windows account :
Data Source=localhost;Initial Catalog=QLSV;Integrated Security=True
(2) Sử dụng SQL server account :
Data Source=localhost;Initial Catalog=QLSV;User ID=minh; Password=123456;
Trusted_Connection=False

Khi SQL server trên máy tính từ xa:
Nói chung không sử dụng Integrated Security=True ?
(1) Kết nối theo tên server (thường cho mạng LAN)
Data Source=DHSPHUE;Initial Catalog=QLSV;User ID=minh;Password=123456;
Trusted_Connection=False"
(2) Kết nối theo điạ chỉ IP (thường trong các mạng sử dụng TCP/IP như Internet)
Data Source=203.65.001.001:1433;Network Library=DBMSSOCN;
Initial Catalog=QLSV;User ID=minh;Password=12345;
Trusted_Connection=False

Yêu cầu đến SQL-server thường là:
Client có thể gửi đến SQL-server các loại yêu cầu viết theo cú pháp của Transact-SQL:
1. Các lệnh thiết lập môi trường cho SQL server
SET…
Kết quả trả về: Chỉ thị thành công/lỗi
2. Các lệnh tạo lập cấu trúc cơ sở dư liệu
CREATE DATABASE…,CREATE TABLE…,DROP TABLE…, ALTER TABLE …

CREATE PROCEDURE , CREATE FUNCTION
Kết quả trả về: Chỉ thị thành công/lỗi
3. Các lệnh truy vấn
SELECT ….
Kết quả trả về: + Chỉ thị thành công/lỗi
+ Một/một số cursor (giống như table trong bộ nhớ)
4. Các lệnh thao tác dữ liệu:
INSERT INTO ….
UPDATE ….
DELETE ….
Kết quả trả về: Chỉ thị thành công/lỗi
5. Các lệnh yêu cầu thực thi một Stored Procedure/User Defined Function
hoặc một hàm tạo sẵn của hệ thống
EXEC…
Kết quả trả về: + Chỉ thị thành công/lỗi
+ Giá trị hàm/thủ tục (một giá trị đơn, cursor)

Một ví dụ nhỏ (VB.NET):
Khai báo các biến
Dim cn As SqlConnection
Dim cmd As SqlCommand
Dim da As New SqlDataAdapter
Dim ds As New DataSet
Khai báo và mở kết nối
cn = New SqlConnection("Data Source = NLTHUC; Initial Catalog = QLSV; _
User ID = minh; Password=123456; Trusted_Connection=False" )
cn.Open()
Thực hiện thiết lập môi trường
cmd = New SqlCommand("SET DATEFORMAT dmy", cn)
cmd.ExecuteNonQuery()

cmd.Dispose()
Thực hiện truy vấn toàn bộ table hoso của database QLSV
cmd = New SqlCommand(“SELECT * FROM hoso”, cn)
da.SelectCommand = cmd
da.Fill(ds, “hoso”)
da.Dispose()
cmd.Dispose()
…xử lý dữ liệu từ datatable ds.Table(“hoso”)
Cắt kết nối
cn.Close()
cn.Dispose()

Vấn đề gì cần phải quan tâm?
1. Học ngôn ngữ Transact-SQL của SQL server
SQL server chỉ có thể “hiểu” các yêu cầu cũng như các hàm/thủ tục được
viết bằng ngôn ngữ Transact-SQL
2. Tập theo tác trên một số tiện ích như Interprise Manager
Không nhất thiết tất cả phải qua lập trình. Chẳng hạn, việc tạo cấu trúc cho
một database (khai báo table, stored procedure/UDF) có thể thao tác bằng
tay thông qua các tiện ích này
3. Làm thế nào, sử dụng hàm gì của các ngôn ngữ lập trình (như VB,
VFP, .NET…) để giao tiếp với SQL server ?
Cách thức chung nhưng cú pháp lệnh, hình thức mô tả có thể khác nhau
chút ít giữa các ngôn ngữ lập trình.
4. Thiết kế một ứng dụng CSDL thực tế như thế nào?
Mục tiêu cuối cùng hướng đến. Thực chất, nó không khó vì bản chất là
giống nhau. Chỉ khác về cách trình bày.

Ngôn ngữ Transact-SQL
2


Các kiểu dữ liệu
bigint Số nguyên -2^63 (-9223372036854775808) -2^63-1 (9223372036854775807).
int Số nguyên -2^31 (-2,147,483,648) - 2^31 - 1 (2,147,483,647).
smallint Số nguyên 2^15 (-32,768) - 2^15 - 1 (32,767).
tinyint Số nguyên 0 - 255.
bit Số nguyên 0,1.
decimal Số thực -10^38 +1 - 10^38 –1.
numeric Như decimal.
money -2^63 (-922,337,203,685,477.5808) - 2^63 - 1 (+922,337,203,685,477.5807)
smallmoney - 214,748.3648 - +214,748.3647.
float Số thực -1.79E + 308 - 1.79E + 308.
real Số thực -3.40E + 38 - 3.40E + 38.
datetime Date and time data từ 01/01/1753 – 31/12/9999
smalldatetime Date and time data từ 01/01/1900 – 06/06/2079.
char Chuổi độ dài cố định không Unicode (<=8,000 characters)
varchar Chuổi độ dài biến đổi không Unicode (<=8,000 characters).

text Chuổi độ dài biến đổi không Unicode (length of 2^31 - 1 (2,147,483,647) characters.
nchar Chuổi độ dài côs định Unicode (<=4,000 characters).
nvarchar Chuổi độ dài biến đổi Unicode (<=4,000 characters)
ntext Chuổi độ dài biến đổi (lên đến 1,073,741,823 ký tự).
binary Dữ liệu binary độ dài cố định (<= 8,000 bytes).
varbinary Dữ liệu binary độ dài biến đổi (<= 8,000 bytes).
image Dữ liệu binary độ dài biến đổi (<= 2,147,483,647 bytes).
cursor Một tham chiếu đến cursor.
sql_variant Một kiểu dữ liệu chứa các giá trị bất kỳ được hỗ trở bởi SQL Server, trừ các kiểu text,
ntext, timestamp, và sql_variant.
table Một kiểu dữ liệu đặc biệt được sử dụng để chứa một tập kết quả .
timestamp A database-wide unique number that gets updated every time a row gets updated.

uniqueidentifi
er
Một giá trị định danh duy nhất (globally unique identifier (GUID)).

Các toán tử
Các toán tử số học
+ Cộng
- Trừ.
* Nhân.
/ Chia.
% Lấy số dư.
Các toán tử bit
&
AND
|
OR
^ XOR
Các toán tử so sánh
=
>
<
>=
<=
<>
!=
!<
!>

Các toán tử logic
ALL

AND
ANY
BETWEEN
EXISTS
IN
LIKE
NOT
OR
SOME
Toán tử nối chuổi (+)
Ví dụ: 'abc' + '' + 'def' sẽ là chuổi 'abcdef'

Các hàm
Các hàm toán học
ABS DEGREES RAND
ACOS EXP ROUND
ASIN FLOOR SIGN
ATAN LOG SIN
ATN2 LOG10 SQUARE
CEILING PI SQRT
COS POWER TAN
COT RADIANS
Các hàm ngày và giờ
DATEADD
DATEDIFF
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE

MONTH
YEAR

Các hàm về chuổi
ASCII NCHAR SOUNDEX
CHAR PATINDEX SPACE
CHARINDEX REPLACE STR
DIFFERENCE QUOTENAME STUFF
LEFT REPLICATE SUBSTRING
LEN REVERSE UNICODE
LOWER RIGHT UPPER
LTRIM RTRIM
Các hàm chuyển đổi kiểu
CAST ( expression AS data_type )
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

×