LỜI NÓI ĐẦU
Ngày nay, cùng với sự phát triển vượt bậc của khoa học kỹ thuật thì công
nghệ thông tin là một trong những lónh vực có nhiều đóng góp thiết thực nhất,
công nghệ thông tin có mặt trong hầu hết các lónh vực của cuộc sống, đặc biệt nó
là công cụ hỗ trợ rất đắc lực trong công tác quản lý. Dễ dàng thấy được việc đưa
tin học vào trong quản lý kinh doanh là một ứng dụng quan trọng trong rất nhiều
ứng dụng của cơ sở dữ liệu. Nhờ vào công tác tin học hoá mà công việc quản lý và
điều hành doanh nghiệp tỏ ra rất nhanh chóng và hiệu quả. Chính vì lẽ đó mà cơ
sở dữ liệu như là một giải pháp hữu hiệu nhất cho các doanh nghiệp có thể tồn tại
và phát triển một cách nhanh chóng.
Bệnh viện đa khoa tỉnh Khánh Hoà là một trong những trung tâm khám
chữa bệnh lớn nhất của tỉnh Khánh Hoà. Do đó, nhu cầu ứng dụng quản lý bệnh
nhân bằng tin học là một vấn đề hết sức thiết thực và tất yếu. Chính vì lí do đó
chúng tôi chọn đề tài quản lý bệnh nhân này làm đề tài thực tập chuyên ngành và
thực tập tốt nghiệp sắp tới.
Hiện nay, có rất nhiều phần mềm hệ quản trò cơ sở dữ liệu khác nhau. Tuy
nhiên căn cứ vào tình hình quản lý bệnh nhân của bệnh viện hiện nay, chúng tôi
đã chon hệ quản trò cơ sở dữ liệu SQL Server 2000 và ngôn ngữ hỗ trợ cài đặt giao
diện của ứng dụng là Visual Basic 6.0
Mặc dù có nhiều cố gắng nhưng do thời gian thực tập có hạn cũng như vốn
kiến thức còn nông cạn nên không thể tránh khỏi những thiếu sót. Rất mong được
góp ý của quý thầy cô cùng các bạn để báo cáo được hoàng thiện hơn.
Nhóm sinh viên thực hiện
Bùi Văn Mừng
Đỗ Văn Cao.
PHẦN I: TỔNG QUAN VỀ NGÔN NGỮ CÀI ĐẶT
I. GIỚI THIỆU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU VÀ SQL SERVER 2000
I.1. KHÁI NIỆM CƠ BẢN VỀ CÁC LOẠI CƠ SỞ DỮ LIỆU
Một hệ quản trò cơ sở dữ liệu là một hệ thống các chương trình hỗ trợ các
tác vụ quản lí, khai thác dữ liệu theo mô hình cơ sở dữ liệu quan hệ.
SQL server là một hệ thống quản lí cơ sở dữ liệu quan hệ (RDB0MS) hay
Standard
Developer
Enterprise
Full-Text
Sarch
Đây là phần tự chọn trong lúc cài đặt, nếu
bạn muốn chức năng tìm kiếm thì nên chọn hệ
thống này vì chúng không là phần mặc nhiên.
Full-Text Sarch cung cấp chức năng tìm
kiếm từ (word) rất mạnh, nếu sử dụng Internet
để tìm kiếm thì đây là giải pháp tuyệt vời.
Nếu bạn muốn tìm kiếm một chuỗi con trong
một đoạn văn bản lớn thì đây là công cụ thích
Personal
(Except
Win95)
Standard
Developer
Enterprise
hợp cho công việc đó.
English Query English Query cho phép người sử dụng
không có kỹ thuật vê SQL cũng có thể sử
dụng SQL Server, bằng cách dặt câu hỏi bằng
chuỗi English sau đó được dòch ra Query mà
có thể thực thi trên SQL Server.
Personal
Standard
Developer
Enterprise
Analusis
giứa các cơ sở dữ liệu, và giao tiếp dữ liệu
giữa các cơ sở dữ liệu khác nhau, đây là những
giải pháp lập trình trên Visual Basic
Desktop
Engine
Personal
Standard
Developer
Enterprise
Những đặc tính mở rộng trong các ấn bản khác nhau của SQL Server 2000.
Symmetric Multiprocessing (SMP): Dòch vụ này được hỗ trợ trong SQL
Server 2000, dòch vụ này phân phối công việc xử lí trên hệ thống có nhiều bộ vi
xử lí để làm cân bằng tiến trình trên các CPU.
Clustering Support: Chỉ có trong ấn bản Enterprise và Developer,
Clustering cho phép hệ thống cân bằng khi có một Server bò ngừng thì những hệ
thống khác tiếp nhận và xử lí.
Hiện tại chỉ thực hiện chức năng này trên hai Server đó là Windows 2000
Enterprise và Windows 2000 Datacenter.
I.2.1 Các thành phần của SQL Server 2000.
RDBMS cũng như SQL Server chứa đựng nhiều đối tượng bao gồm:
- Database: Cơ sở dữ liệu SQL Server
- Tập tin log: tập tin lưu trữ những chuyển tác của SQL
- Tables: bảng dữ liệu
- Filegroups: Tập tin nhóm
- Diagrams: Sơ đồ quan hệ
- Views: Khung nhìn (hay bản ảo) số liệu dựa trên bản
- Stored Procedure: Thủ tục và hàm nội
- Users defined: Hàm do người dùng đònh nghóa
- Users: Người sử dụng cơ sở dữ liệu
- Rules: Những quy tắc
- Cơ sở dữ liệu msdb: Như đã nêu, chúng ta có hai cơ sở dữ liệu hệ thống
master và model, nếu xoá một trong hai cơ sở dữ liệu này thì hệ thống SQL Server
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:
đề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 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
[,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
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
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
' 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
cn.ConnectionString = " Integrated Security=SSPI;Persist Security
Info=False;Initial Catalog=BENHNHAN"
cn.Open
End Sub
Chương II: ĐĂC TẢ BÀI TOÁN
Bệnh viện đa khoa tỉnh Khánh Hoà cần quản lý bệnh nhân trên hệ thống
mạng máy tính của bệnh viện. Sau khi khảo sát hiện trạng chúng tôi đã có được
một số thông tin cần lưu ý sau:
Quản lý nhân viên tronh bệnh viện
Mỗi nhân viên của bệnh viện được quản lý các thông tin sau: Họ, Tên, giới
tính, ngày sinh, nơi sinh, đòa chỉ, trình độ chuyên môn, đơn vò công tác, chức vụ.
Trong đó quản lý:
- Đòa chỉ quản lý: Số nhà, Xã (Phường), Huyện (Quận), Tỉnh (Thành phố).
Quản lý bệnh nhân (Đối tượng chính cần quản lí)
Khi bệnh nhận đến bệnh viện khám lần đầu tiên, bệnh viện lưu những
thông tin sau:Họ, Tên, giới tính, ngày sinh, đòa chỉ, đối tượng.
Bệnh nhân được chia làm hai loại: Loại có bảo hiểm y tế và không có bảo
hiểm y tế. Nếu bệnh nhân có bảo hiểm y tế thì quản lý: Số thẻ bảo hiểm y tế, thời
gian hiệu lực, phần trăm bảo hiểm, nơi khám bệnh ban đầu. Nếu bệnh nhân có thẻ
bảo hiểm y tế là công nhân viên của một tổ chức, cơ quan nào đó thì quản lý
Trong quá trình điều trò bệnh nhân có thể dùng một số dòch vụ khám chữa
bệnh như: Xét nghiệm, X_qang, siêu âm, … Việc sử dụng này cũng theo chỉ đònh
của bác só khám chữa bệnh. Mỗi dòch vụ co giá riêng.
Khi bệnh nhân điều trò có thể lựa chọn loại phòng nằm điều trò với giá dòch
vụ riệng cho mỗi phòng.
Bước 5: Thanh toán viện phí: Trong quá trình điều trò cứ 3 ngày bệnh viện
yêu cầu bệnh nhân thanh toán viện phí một lần. Nếu bệnh nhân có thẻ bảo hiểm y
tế thì chỉ đóng phần trăm viện phí theo bảo hiểm bao gồm tiền thuốc và các dòch
vụ chữa trò hỗ trợ khám bệnh. Riêng tiền phòng nếu có thẻ bảo hiểm y tế thì bệnh
nhân cũng chỉ được bảo hiểm y tế thanh toán loại theo giá quy đònh của bảo hiểm
y tế về loại phòng đó nếu có. Khin xuất viện bệnh nhân thanh toán toàn bộ viện
phí còn lại.
Trong quá trình điều trò, nếu có bệnh nhân trốn viện, không thanh toán viện
phí, bệnh viện lưu lại tất cả các thông tin về bệnh nhân trốn viện. Nếu sau 3 ngày
điều trò mà bệnh nhân không đóng viện phí thì buộc bệnh viện phải trả bệnh nhân
về gia đình tự điều trò
Bước 6: Theo chu kỳ mỗi tháng, bệnh viện thanh toán viện phí với bảo
hiểm y tế.
Chương III: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
THÔNG TIN
III.1 MÔ HÌNH QUAN NIỆM DỮ LIỆU
DÙNG
THUỐC
Số lượng dùng
Liều dùng
TỈNH
Mã Tỉnh
Tên Tỉnh
ĐƠN VỊ(K)
Mã ĐV
NV-CM
(1,n)
(1,1)
NV-CV
(1,n)
(1,1
VỊ TRÍ KB
Mã VTKB
Tên VTKB
K-BỆNH
- Ngày KB
Nội dung
Chi phí
(1.n)
(1.n)
ĐỊA
CHỈ
(1,1)
(1.n)
BỆNH NHÂN
Mã BN
Họ BN
Tên BN
Ngày sinh BN
Giới tính
Số nhà
BN-
X
(1.n)
(1,1)
Mã NĐT
Tên NĐT
Đơn giá
(1.1)
BHY TẾ
Số TBHYT
Ngày bắt đầu
Ngày K thúc
Phần trăm
CÁN BỘ
BỘ
CƠ QUAN
Mã CQ
Tên CQ
ĐT.CQ
Fax CQ
CB-
CQ
(1.1)
(1.n)
TẠM ỨNG
Mã T.Ứng
Lần T.Ứng
Số tiền
Ngày T.Ứng
BN-TƯ
(1.1)
(1.n)
III.2 MÔ HINH TỔ CHỨC DỮ LIỆU
TỈNH(Mã tỉnh, Tên tỉnh)
III.3 MÔ HÌNH TỔ CHỨC DỮ LIỆU
TỈNH(Mã tỉnh, Tên tỉnh)
TỈNH
Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc
Mã tỉnh Text 3 Len()=3
Tên tỉnh Text 30
HUYỆN(Mã huyện, Tên huyện, Má tỉnh)
HUYỆN
Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc
Mã huyện Text 6 Len()=6
Tên huyện Text 30
Mã tỉnh Text 3 Lookup(TỈNH)
XÃ(Mã xã, Ten xã, Mã huyện)
Xã
Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc
Mã xã Text 9 Len()=9
Tên xã Text 30
Mã huyện Text 6 Lookup(HUYỆN)
CƠ QUAN(Mã cơ quan, Tên cơ quan, Điện thoại cơ quan, Fax cơ quan)
CƠ QUAN
Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc
Mã cơ quan Text 5 Len()= 5
Tên cơ quan Text 30
Điện thoại CQ Text 10 >0
Fax cơ quan Text 10 Len()=10
CÁN BỘ(Mã bệnh nhân, Mã cơ quan)
CÁN BỘ
Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc
Mã bệnh nhân Text 5 Len()= 5
Mã cơ quan Text 3 Lookup(CƠ QUAN)