xẽ bò lỗi, nhưng với cơ sở dữ liệu msdb thì khac. Msdb chính là SQL Agent lưu trữ
tất cả các tác vụ xảy ra trong SQL Server.
- Cơ sở dữ liệu Tempdb: Là một trong những cơ sở dữ liệu chính trong
SQL Server. Cơ sở dữ liệu này cho phép người dùng tạo những ứng dụng tham
khảo hay thực tập trước khi bạn bắt đầu với cơ sở dữ liệu thực. Ngoài ra chúng
còn giúp thực hiện những thao tác về cơ sở dữ liệu mỗi khi SQL Server khởi động.
- Cơ sở dữ liệu pubs: Chứa hầu hết nội dung về hướng dẫn, trợ giúp và
sách tham khảo về SQL Server.
- Cơ sở dữ liệu Northwind: Cũng giống như cơ sở dữ liệu pubs, đây là cơ
sở dữ liệu mẫu cho người dùng tham khảo, hoặc các lập trình viên Visual Basic
hay Access dùng để truy cập dữ liệu SQL Server. Cơ sở dữ liệu này được cài đặt
như một phần của SQL Server, nếu cần dùng cấu trúc của hai cơ sở dữ liệu này
bạn có thể sử dụng hai file kòch bản script mang tên inspub.sql, và insnwnd.sql.
- Tập tin chuyển tác log: Tập tin chứa đựng những hoạt động, hay cả
những chuyển tác của cơ sở dữ liệu theo thời gian. Thông thường khi cần tìm hiểu
sự cố xảy ra với cơ sở dữ liệu, người dùng chỉ cần tham khảo tập tin log xẽ biết
được nguyên nhân.
I.2.3. Giới thiệu về đối tượng của cơ sở dữ liệu
- Bảng-Table
Trong cơ sở dữ liệu, bản (table) là phần chính của chúng. Do bảng là đối
tượng lưu trữ dữ liệu thực, khi cần giao tiếp với cơ sở dữ liệu khác bảng là đối
tượng căn bản nhất trong bất kỳ loại cơ sở dữ liệu nào, chúng được coi như một
miền dữ liệu.
Mỗi bảng được đònh nghóa nhiều trường, mỗi trường (field còn gọi là column
name) ứng với mỗi loại kiểu dữ liệu. Dữ liệu nhập vào có thể chấp nhận hặc từ
chối tuỳ thuộc vào nguyên tắc ràng buộc dữ liệu hoặc loại dữ liệu tương thích do
hệ thống hay người dùng đònh nghóa.
Khi đònh nghóa bảng cơ sở dữ liệu bạn cần quan tâm đến các yếu tố sau:
+ Key: Trường đó có khoá hay không (primary Key)
+ ID: Trường có thuộc tính Indentity hay không
+ Column name: Tên của trường (cột)
+ Data type: Loại dữ liệu cho trường tương ứng.
+ Size: Kích thước trường dữ liệu
+ Allow null: Cho phép giá trò rỗng lưu trong trường hay không
+ Default: Giá trò mặc nhiên cho trường
+ Identity: Nếu bạn sử dụng một trường có giá trò tự động như autonumber
trong acces, trường nay Not Null và Identity: Yes(On)
+ Identity Seed: Nếu trường (cột) này là Identity, cần số bắt đầu là 1 hoặc
2, …
+ Identity Increament: Số nhảy cho mỗi lần tăng
- Chỉ mục – Indexs
Đối tượng chỉ mục (Indexs) chỉ tồn tại trong bảng hay khung nhìn (View).
Chỉ mục có ảnh hưởng đến tốc độ truy cập số liệu, nhất là khi cần tìm kiếm thông
tin trên bảng. Chỉ mục giúp tăng tốc cho việc tìm kiếm.
+ Clustered: Ứng với loại chỉ mục này một bảng chỉ có một chỉ mục, và số
liệu được sắp xếp theo trang
+ Non-Clustered: Ứng với loại chỉ mục này có một bảng có thể có nhiều
chỉ mục và số liệu được săp xếp theo trường dữ liệu mà bạn trỏ đến
- Bẫy lỗi-Triggers
Là đối tượng chỉ tồn tại trong bảng, cụ thể là một đoạn mã và tự đông thực
hiện khi một hành động nào đó xảy ra đối với dữ liệu trong bảng như Insert,
Update, Delete. Trigger có thể bẫy rất nhiều tình huống như copy dữ liệu, xoá dữ
liệu, cập nhật dữ liệu, kiểm tra dữ liệu theo một tiêu chuẩn nào đó.
- Ràng buộc- Constraints
Constraints là một đối tượng, nó là một phần nhỏ trong bảng, chúng ràng
buộc dữ liệu trong bảng hoặc các bảng khác phải tuân theo một quy tắc nào đó.
- Diagram-Lược đồ quan hệ
Khi xây dựng cơ sở dữ liệu cho ứng dung hay thương mại điện tử, thường
đều phải dựa trên trình phân tích thiết kế hệ thống. Sau những bước phân tích và
thiết kế, bạn sẽ thiết lập quan hệ dữ liệu giữa các thực thể ERD(Entity
relationship diagram)
- Khung nhìn-View
View là khung nhìn (hay bảng ảo) của bảng. Cũng giống như bảng nhưng
View không thể chứa dữ liệu, bản thân view có thể tạo thêm trường mới dựa vào
những phép toán biểu thức của SQL Server. View còn có thể kết nối nhiều bảng
lại với nhau theo quan hệ nhất đònh cùng với những tiêu chuẩn, nhằm tạo ra một
bảng dữ liệu với yêu cầu người dùng.
- Thủ tục nội-Stored Procedure
Stored Procedure còn gọi là Spocs, tiếp tục phát triển như một phần SQL
trên cơ sở dữ liệu. Stored Procedure cho phép khai báo biến, nhận tham số cũng
như thực thi các phát biểu có điều kiện. Stored Procdure có các ưu điểm lớn sau:
+ Kế thừa tất cả các phát biểu của SQL, và là một đối tượng xử lí số liệu
hiệu quả nhất khi dùng SQL Server.
+ Tiết kiệm thời gian thực thi trên dữ liệu.
+ Có thể goi Stored procedure theo cách gọi thủ tục hay hàm trong ngôn
ngữ lập trình truyền thốn, đồng thời sử dụng lại khi có yêu cầu.
- Sử dụng kiểu dữ liệu Cursor (Cursor typy)
Khi dùng cơ sở dữ liệu SQL Server, nếu có nhu cầu tính toán trên bảng số
liệu, chuyển tác thực hiện trên từng mẩu tin, ta nên nghó đến kiểu dữ liệu mang
tên Cursor.
I.2.3. Kiểu dữ liệu-Data type
Bất kỳ trường nào trong bảng (Table) của cơ sở dữ liệu đều phải co kiểu dữ
liệu. Một số kiểu dữ liệu SQL Server cho phép đònh nghóa chiều dài của kiểu trong
khi một số kiểu khác thì không
Cũng như những ngôn ngữ lập trình khác SQL Server cung cấp đầy đủ kiểu
dữ liệu cần thiết, như: kiểu số nguyên (Binary, Int, TinyInt, …), kiểu số thực
(Float), kiểu tiền tệ (Money, SmallMoaney,…) kiểu chuỗi (char, nChar, VarChar,
Text,…), và nhiều kiểu dư liệu khác.
Ngoài ra SQL Server còn cho phép chuyển đổi qua lại giữa các kiểu dữ
liệu, tuy nhiên điều này cũng có một số hạn chế đối với một số kiểu dữ liệu. Ví
dụ: kiểu binary không thể nhận chuyển đổi sự chuyển đổi từ dữ liệu kiểu float hay
real…
I.2.4. Các phát biểu cơ bản của T-SQL
- Cú pháp tổng quát của lệnh Select
SELECT <danh sách các 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 hay biểu thức sử dụng cột trong SELECT>]
[HAVING <điều kiện bắt buộc dựa trên GROUP by>]
[ORDER BY <danh sách cột>]
Trong đó tất cả những phát biểu nằm trong cặp dấu [] thì có thể có hoặc có
thể không có.
Ví dụ:
+ Để lấy tất cả các bệnh nhân trong bảng tblBenhNhan ta dùng câu truy
vấn sau:
SELECT *
FROM tblBenhNhan
Trong câu lệnh này thiếu vắng tất cả các phát biểu sau FROM trên
+ Để chọn ra tất cả các bệnh nhân trong bảng tblBenhNhan với Tên bệnh
nhân là Nguyễn Văn A ta làm như sau.
SELECT *
FROM tblBenhNhan
WHERE tblBenhNhan.TenBenhNhan=’Ngyuên Van A’
Vậy câu lệnh SELECT dùng để chỉ ra trường (cột) dữ liệu cần lấy, FROM
để chỉ ra nơi chứa dữ liệu (hay bảng cần truy vấn), WHERE chỉ ra điều kiện lấy dữ
liệu.
ORDER BY dùng để hiển thò kết quả truy vấn theo tiêu chuẩn của người
dùng. Nếu thiếu tham số này thì việc sắp xếp xẽ theo thứ tự ALPHABET.
Ngoài những câu lệnh truy vấn trên trong SQL Server còn cung cấp một số
hàm cũng như những biểu thức tính toán …
- Để thêm dữ liệu vào bảng (Table) ta dùng câu lệnh truy vấn sau:
INSERT INTO <Tên Bảng> (danh sách cột)
VALUES (danh sách giá trò)
Ví dụ:
Để chèn dữ liệu vào bảng tblTinh ta có câu lệnh truy vấn sau:
INSERT INTO tblTinh (MaTinh, TenTinh)
VALUES(‘001’, ‘Khánh Hoa’ø)
- Để sửa dữ liệu trong một bảng đã có sẵn ta sử dụng câu lệnh truy vấn
UPDATE cú pháp như sau:
UPDATE FROM <Tên bảng>
SET <tên cột>=<giá trò>
WHERE <Điều kiện>
Ví dụ: ta muốn thay đổi tên tỉnh có mã số (‘001’) thành Đà Lạt ta làm như
sau:
UPDATE FROM tblTinh
SET tblTinh.TenTinh=’Đà Lạt’
WHERE tblTinh.MaTinh=’001’
- Để xoá dữ liệu trong một bảng ta dùng câu lẹnh truy vấn DELETE cú
pháp như sau:
DELETE FROM <Tên bảng>
WHERE <điều kiện>
Ví dụ: Để xóa tỉnh có tên tỉnh là Khánh Hoà ta làm như sau
DELETE FROM tblTinh
WHERE tblTinh.TenTinh=’Khánh Hoà’
Hoặc có mã tỉnh =001
DELETE FROM tblTinh
WHERE tblTinh.MaTinh=’001’
Ngoài ra trong SQL Server có những phát biểu cho phép kết nối nhiều bản
với nhau (JOIN, INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN, CROSS
JOIN).
Ví dụ: để lấy đòa chỉ của bệnh nhân ta cần xác đònh xã, huyện, tỉnh. Vậy để
lấy về đòa chỉ của bệnh nhân có rất nhiều cách song cách nào là nhanh nhất dỡ
phải viết lệnh nhiều mà hiệu quả lại cao. Việc này được thực hiện nhờ tạo một
View kết nối table tblTinh, tblHuyen, tblXa câu truy vấn như sau:
CREATE VIEW dbo.vwDiaChi
AS
SELECT dbo.tblTINH.TenTinh,dbo.tblHUYEN.TenHuyen,
dbo.tblXA.TenXa, dbo.tblXA.Maxa
FROM dbo.tblHUYEN INNER JOIN
dbo.tblTINH ON dbo.tblHUYEN.MaTinh = dbo.tblTINH.MaTinh
INNER JOIN
dbo.tblXA ON dbo.tblHUYEN.MaHuyen = dbo.tblXA.MaHuyen
Khí đã có view đòa chỉ rồi ta chỉ cần gọi câu truy vấn sau là xẽ có thông tin
cần thiết về đòa chỉ bệnh nhân.
SELECT TenTinh,TenHuyen,TenXa
FROM vwDiaChi
WHERE MaXa= @MaXa @MaXa là một biến được đưa vào để chọn ra
xã cần tìm.
view trên ta kết nối ba table bằng lệnh INNER JOIN để lấy ra các trường
tên tinh, tên huyên, tên xã, và mã xã.
I.2.5. Khái niệm về đối tượng trong SQL và cách tạo các đối tượng trong SQL
Server.
1. Tạo cơ sở dữ liệu – CREATE DATABASE
Để tạo cơ sở dữ liệu trong SQL Server ta dùng cú pháp sau
CREATE DATABASE <Database_name>
[ON [PRIMARY] (
[Name=<’Logical file name’>,]
FileName=<’FileName’>
[,SIZE=<Size in Megabyte or KiloByte]
[,MAXSIZE=<Size in Megabyte or KiloByte]
FILEGROWTH=<NO ò Kylobyte|Percentage>]
)]
(LOG ON
(
Name=<’Logical file name’>]
FileName=<’File Name’>
[,SIZE=<Size in Megabyte or KiloByte]
[,MAXSIZE=<Size in Megabyte or KiloByte]
FILEGROWTH=<NO ò Kylobyte|Percentage>]
)]
[COLLATE <Collation>]
[For Load|For ttch]
Trong đó:
- ON: Đònh nghóa nơi chứa dữ liệu và không gian chứa tập tin log
- NAME: Đònh nghóa tên cơ sở dữ liệu
- FILENAME: Tên tập tin cơ sở dữ liệu trên đóa cứn, Lưu ý khi tạo cơ sở
dữ liệu ta đặt tập tin ở vò trí nào thì không thể di chuyển một cách thủ
công được.
- SIZE: Cho biết dụng lượng cơ sở dữ liệu khi tạo chúng. Thông thường là
1MB
- MAXSIZE: Dung lượng lớn nhất, khi dung lượng cơ sở dữ liệu tăng đến
mức Maxsize thì dừng lại.
- FILEGROWTH: Dung lượng khởi tạo cùng dung lượng tối đa trong quá
trình thêm dữ liệu vào cơ sở dữ liệu.
- LOG ON: Cho phép quản lí chuyển tác xảy ra trong quá trình sử dụng cơ
sở dữ liệu của SQL Server. Thông thường chúng chiếm khoảng 25%
dung lượng tập tin dữ liệu.
Việc tạo một cơ sở dữ liệu bằng mã lệnh không phải là khó, song SQL
Server cho phép tạo cơ sở dữ liệu băng giao diện đồ hoạ. Để tạo cơ sở dữ liệu ta
dùng trình SQL Server Enterprise Manager. màn hình tạo cơ sở dữ liệu bằng
Enterprise Manager như sau:
Sau khi chúng ta Click vào New Database thì màn hinh tạo cơ sở dữ liệu
hiện ra khi đó ta chỉ việc nhập đầy đủ các thông tin yêu cầu như: đường dẫn nơi để
tập tin cơ sở dữ liệu, dung lượng tập tin,…
2. Tạo bảng – CREATE TABLE
tạo bảng trong cơ sở dữ liệu cũng giống như tạo các đối tượng khác trong
SQL Server. Cú pháp đầy đủ để tạo bảng như sau:
CREATE TABLE [Dataabase_name.[owner].table_name
(<column name><data type>
[[DEFAULT<constant expression>]
[[IDENTITY (seed, increament) [NOT FỎ REPLICATION]]]]
[ROWGUIDCOL]
[NULL|NOT NULL]
[<column constraint>]
[Column_name as computed_columns_expression
………
)
ON{<filegroup>|DEFAULT]
- Tên cột – Column Name: Tên cột cũng giống như tên bảng và tên cơ sở
dữ liệu không có khoảng trăng, không bắt đầu bằng chữ số và các ký tự
đặc biệt…, tuy nhiên nên đặt tên ngắn gọn gợi nhớ
- Kiểu dữ liệu – Data type: Khi xây dựng cơ sở dữ liệu tất cả các trường
trong bảng cần phải có kiểu dữ liệu cụ thể. Vấn đề quan trọng là chọn
kiểu dữ liệu nào cho phù hợp với dữ liệu mà người dùng xẽ nhập vào,
- Giá trò mặc nhiên – Default: Gán giá trò mặc nhiên cho các cột khi
không có dữ liệu.
- IDENTITY: Đây là giá trò cực kỳ quan trọng trong SQL Server. Khi
chúng ta muốn một cột có giá trò tự động tăng. Ta nên đònh nghóa như
Identity.
- NULL/NOT NULL: là trạng thái của một cột có cho phép nhập giá trò
null hay không.
- Ràng buộc – Column constrain: Kiểm tra dữ liệu khi dữ liệu mới được
đưa vào cột hoặc dữ liệu bò thay đổi.
- Ràng buộc bảng dữ liệu – TABLE CONSTRAINTS: Ràng buộc bảng
cũng giống như ràng buộc cột trong bảng, là kiểm soát dữ liệu nhập vào
bảng theo một quy luật đònh sẵn.
Song cũng có thể tạo bảng bằng giao diện dồ hoạ như với cơ sở dữ liệu.
Trong khi xây dựng bảng cần chú ý đến các trường khoá.
3.Tạo view
View là bảng ảo và cũng như với bảng view cũng có thể tạo được bằng mã
lệnh cung như giao diện đồ hoạ.
View cho phép kết nối nhiều bảng với nhau để hiển thò thông tin.
4. Thủ tục được lưu và hàm (Stored Procedure hay sp, Function)
a. Thủ tục được lưu (Stored Procedure)
Stored Procedure là một phần cực kỳ quan trọng trong cơ sở dữ liệu SQL
Server. Nếu biết SQL Server mà không biết Stored Procedure là một thiếu sót rất
lớn. Cú pháp để tạo một Stored Procedure như sau:
CREATE PROCEDURE | PRO<Procedure name>
[<Parameters name><data type>[VARYING]
[=<default value>][OUT PUT][,
[<Parameters name><data type>[VARYING]
[=<default value>][OUT PUT][,
………………………
………………………
[WITH
RECOMPILE | ENCRIPTION | RECOMPILE, ENCRIPTION]
[FOR REPLICATION]
AS
<code>
GO
Đó là cú pháp đầy đủ để tạo một Stored Procedure song ta có thể tạo Stored
Procedure rất đơn giản bằng giao diện đồ hoạ (Enterprise Manager) của SQL
Server
Ví dụ tạo một Stored Procedure đơn giản:
USE BENHNHAN
GO
Create proc Sp_NhapXa
@MaXa nchar(9),
@TenXa char(30),
@MaHuyen nchar(6)
AS
Insert Into tblXa
(
MaXa, TenXa,MaHuyen
)
Values
(
@MaXa,@TenXa,@MaHuyen
)
GO
trên ta tạo một Stored Procedure dùng để nhập một xã mới vào bảng Xã
(tblXa). Khi đã có Stored Procedure này rồi ta chỉ cần gọi tên hàm và tham số
kèm theo mỗi khi nhập một xã mới vào table xã.
b.Tạo hàm (Function)
Tương tự như Stored Procedure hàm cũng có thể tạo bằng giao diện dồ hoạ
cũng như mã lệnh song giá trò trả về của hàm đa dạng hơn chúng có thể trả về là
một bảng.
Ví dụ: Tạo hàm tìm kiếm bênh nhân theo tỉnh, hàm này trả về một bảng
chứa thông tin về bệnh nhân trong tỉnh.
CREATE FUNCTION udf_TimBenhNhanTheoTinh
(@TenTinh Char(30))
RETURNS Table
AS
Return
Select *
From tblBenhNhan
Where tblBenhNhan.MaXa in thuoc xa
(Select MaXa
From tblXa
Where tblXa.MaHuyen in thuoc huyen
(Select MaHuyen
From tblHuyen Where tblHuyen.MaTinh in thuoc tinh
( Select MaTinh
From tblTinh
Where tblTinh.TenTinh=@TenTinh)))
I.3. TỔNG QUAN VỀ VISUAL BASIC VÀ CƠ SỞ DỮ LIỆU TRONG VISUAL
BASIC
Visual Basic Chứa một số phương tiện giúp cho việc áp dụng kỹ thuật
hướng đối tượng trong việc truy cập dữ liệu. Trong Visual Basic có rất nhiều
phương pháp truy cập dữ liệu như: ADO, ADODB, DAO,… nói chung các đối tượng
này có những thuộc thuộc tính tương đối giống nhau. Trong báo cáo này chúng tôi
chủ yếu đi sâu vào đối tượng ADO đây cũng là công cụ được dùng trong chương
trình.
I.3.1. ADO là gì ?
ADO (ActiveX Data Object hay đối tượng dữ liệu ActiveX). Ta có thể hình
dung rằng ADO là một mô hình làm giảm kích thước của mô hình RDO (Đối tượng
dữ liệu từ xa). Mô hình đối tượng dữ liệu ActiveX rất gọn. Nó được thiết kế để cho
phép lập trình viên lấy được một tập các Record từ nguồn dữ liệu một cách nhanh
nhất nếu có thể. Tốc độ và tính đơn giản là một trong các mục tiêu cốt lõi của
ADO, mô hình này được thiết kế để cho phép tạo ra một đối tượng Recordset mà
không cần phải di chuyển qua các đối tượng trung gian khác trong quá trình lập
trình. Thực tế chỉ có ba đối tượng cốt lõi trong mô hình:
- Connection: Đại diện kết nối thực sự
- Command: Được sử dụng để thực thi các query dựa vào kết nối dữ liệu.
- Recordset: Đại diện cho một tập các Record được chọn query thông qua
đối tượng Command.
Đối tượng Connection chứa một tập các đối tượng con gọi là các đối tượng
Errors đối tượng này giữ lại bất kỳ một thông tin lỗi nào có liên quan đến kết nối.
Đối tương Command có một tập các đối tượng con là Paramenters để giữ bất cứ
tham số nào có thể thay thế cho query. Recordset cũng có một tập các đối tượng
con Properties để lưu các thông tin chi tiết về đối tượng.
I.3.2. Các thuộc tính đặc biệt của ADO
Mô hình ADO có một số thuộc tính mà các mô hinh cơ sở dữ liệu khác như
DAO và RDO không có. Các thuộc tính này điều khiển cách thức tạo ra dataset và
quyền hạn truy cập trong một kết nối dữ liệu. Có bảy thuộc tính như sau:
- Connection string (Chuỗi kết nối)
- Command Text (Văn bản câu lệnh)
- Command Type (Kiểu câu lệnh)
- Cursor location (Đònh vò con trỏ)
- Cursor Type (Kiểu con trỏ)
- Look type (kiểu con trỏ)
- Mode type (Kiểu chế độ làm việc)
Ví dụ: Để tạo kết nối đến cơ sở dữ liệu SQL Server vơi tên cơ sở dữ liệu là:
BENHNHAN ta làm như sau:
Public Sub OpenConnection()
' Tạo kết nối đến nguồn dữ liệu
Set cn = New ADODB.Connection
cn.Provider = "SQLOLEDB.1;"
Connection
Command
Parameter
Recorset
Fields
Error
Sơ đồ mô hình ActiveX Data Object
Không có nhận xét nào:
Đăng nhận xét