Báo cáo đồ án cơ sở ngành - Công nghệ thông tin Đề tài : Mô phỏng các phép toán cơ sở dữ liệu bằng chương trình Visual Basic
Trang 1Nội dung:
I.Giới thiệu 2
1.Mục tiêu đồ án 2
4.Lý thuyết các phép toán Đại số quan hệ 4
b.Chọn 2 quan hệ và thực hiện tính toán 20
20
Code: 20
5.Kiểm thử 25
-Việc nhập dữ liệu vào File text thành công 25
-Sau khi chọn 2 file muốn tính toán Ta click vào phép toán để chọn phép toán cần tính toán Nhấn vào Button Tính toán và tiếp đó nhấn nút Kết quả để có thể xem được kết quả mà ta vừa tính ở trên Dưới đây là kết quả thu được 25
Ngoài ra việc hiển thị trên Menu cũng được coi trọng 26
Để hiển thị nội dung lên hướng dẫn ta có đoạn Code sau: 27
*Đồng thời khi click vào About me sẽ hiển thị 1 Form nói về tác giả 27
Đây là giao diện nên ta không cần Code phức tạp 27
III/Kết quả đạt được 28
Sinh viên:Trần Anh Tiến
Trang 2• CSDL: Cơ sở dữ liệu
• VB: Visual Basic
I.Giới thiệu
1.Mục tiêu đồ án
Giới thiệu sơ lược về đồ án
Xây dựng chương trình mô phỏng các phép toán đại số quan hệ: Phép hợp, phép giao, phép trừ, phép kết nối, phép chiếu
Yêu cầu:
1 Tóm lược lý thuyết phần Đại số quan hệ
2 Trình bày ý tưởng thuật toán để giải quyết cho từng phép toán
3 Vẽ sơ đồ khối hoặc mã giả cho các thuật toán trên
4 Viết chương trình bằng ngôn ngữ VB
a Nhập vào 02 quan hệ (lưu vào file text dạng ma trận)
b Chọn 02 quan hệ và chọn phép toán để thực hiện
c In kết quả ra màn hình (dạng bảng) và lưu kết quả xuống fileMục tiêu:
-Tìm hiểu kĩ lý thuyết về CSDL ,các phép toán đại số quan hệ như phép giao, phép hợp, phép trừ…
-Tìm hiểu kĩ hơn về cách sử dụng ngôn ngử VB, sử dụng thành thạo ngôn ngữ
VB cho việc lập trình
-Rèn luyện kĩ năng làm việc độc lập
Trang 3
-2.Giới thiệu công cụ thực hiện : Visual Basic 6.0
Dùng VB6 là cách nhanh và tốt nhất để lập trình cho Microsoft Windows Cho dù ta là chuyên nghiệp hay mới mẻ đối với chương trình Windows, VB6 sẽ cung cấp cho ta một bộ công cụ hoàn chỉnh để đơn giản hóa việc triển khai lập trình ứng dụng cho MSWindows
Visual Basic là gì?
Phần "Visual" đề cập đến phương phàp được sử dụng để tạo giao diện đồ
họa người dùng (Graphical User Interface hay viết tắc là GUI) Có sẵn những bộ phận hình ảnh, gọi là controls, ta tha hồ sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung màn hình, gọi là form Nếu ta đã từng sử dụng chương trình vẽ chẳng hạn như Paint, ta đã có sẵn các kỹ năng cần thiết để tạo một GUI cho VB6
Phần "Basic" đề cập đến ngôn ngữ BASIC (Beginners All-Purpose Symbolic
Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, được chế ra cho các khoa học gia (những người không có thì giờ để học lập trình điện toán) dùng
Visual Basic đã được ra từ MSBasic, do Bill Gates viết từ thời dùng cho máy tính 8 bits 8080 hay Z80 Hiện nay nó chứa đến hàng trăm câu lệnh (commands), hàm (functions) và từ khóa (keywords) Rất nhiều commands, functions liên hệ trực tiếp đến MSWindows GUI Những người mới bắt đầu có thể viết chương trình bằng cách học chỉ một vài commands, functions và keywords Khả năng của ngôn ngữ này cho phép những người chuyên nghiệp hoàn thành bất
kỳ điều gì nhờ sử dụng ngôn ngữ lập trình MSWindows nào khác
Người mang lại phần "Visual" cho VB là ông Alan Cooper Ông đã gói môi trường hoạt động của Basic trong một phạm vi dễ hiểu, dễ dùng, không cần phải chú ý đến sự tinh xảo của MSWindows, nhưng vẫn dùng các chức năng của MSWindows một cách hiệu quả Do đó, nhiều người xem ông Alan Cooper là cha già của Visual Basic
Visual Basic còn có hai dạng khác: Visual Basic for Application (VBA)
và VBScript VBA là ngôn ngữ nằm phía sau các chương trình Word, Excel,
MSAccess, MSProject, v.v còn gọi là Macros Dùng VBA trong MSOffice, ta có thể làm tăng chức năng bằng cách tự động hóa các chương trình.VBScript được dùng cho Internet và chính Operating System
Dù cho mục đích của bạn là tạo một tiện ích nhỏ cho riêng bạn, trong một nhóm làm việc của bạn, trong một công ty lớn, hay cần phân bố chương trình ứng dụng rộng rãi trên thế giới qua Internet, VB6 cũng sẽ có các công cụ lập trình mà bạn cần thiết
Các ấn bản Visual Basic 6
Có ba ấn bản VB6: Learning, Professional và Enterprise Chúng ta hãy gát qua ấn bản Learning Bạn có thể dùng ấn bản Professional hay Enterprise
Trang 4Ấn bản Professional cung cấp đầy đủ những gì bạn cần để học và triển khai một chương trình VB6, nhất là các control ActiveX, những bộ phận lập trình tiền chế và rất hữu dụng cho các chương trình ứng dụng (application programs) của bạn trong tương lai Ngoài đĩa compact chính cho VB6, tài liệu đính kèm gồm có sách Visual Studio Professional Features và hai đĩa CD Microsoft Developer Network (MSDN).
Ấn bản Enterprise là ấn bản Professional cộng thêm các công cụ Back Office chẳng hạn như SQL Server, Microsoft Transaction Server, Internet Information Server
3.Giới thiệu về CSDL
Cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc được lưu trữ trên các thiết bị băng từ, đĩa từ… để có thể làm thỏa mản yêu cầu khai thác đồng thời của nhiều người sữ dụng
CSDL gắng liền với Đại số ,logic toán và một số vấn đề khác
* Ưu điểm của cơ sở dữ liệu
-Giảm sự trùng lắp thông tin xuống mức thấp nhất và do đó bảo đảmđược tính nhất quán và toàn vẹn dữ liệu
-Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau
-Khả năng chia sẻ thông tin cho nhiều người sử dụng
4.Lý thuyết các phép toán Đại số quan hệ
Các phép toán chia làm 2 nhóm:
o Các phép toán tập hợp (hội, giao, trừ, …)
o Các phép toán quan hệ (chiếu, chọn, kết nối, …)
( Trong phần này ta chỉ trình bày các phép toán tập hơp như Phép hợp, phép giao, phép trừ, phép kết nối, phép chiếu.)
Hai lược đồ quan hệ R(A1, A2, …, An) và S(B1, B2, …, Bn) là khả hợp nếu cùng bậc n (cùng số thuộc tính) và có DOM(Ai) = DOM(Bi), với 1≤ i ≤ n
Trang 5Phép hợp của R và S, ký hiệu là R ∪ S, là một quan hệ gồm các bộ thuộc
R hoặc thuộc S, hoặc cả hai Các bộ trùng lắp sẽ bị lược bớt và chỉ giữ lại 1 bộ đại diện
Biểu diển: R∪S=(t/ t Є R hoặc tЄ S hoặc t Є R và S}
S GIANGVIEN
Nguyen TrangBui Hong Minh
Trang 7Cho một quan hệ r với lược đồ quan hệ R(A1,A2,A3, ,An)
Phép chọn trên r là phép xác định một tập con các bộ các bộ quan hệ thỏa mãn 1 điều kiện cho trước
Tức là :
σ<đk_chọn> (<Tên_quan_hệ>)
(Phép chọn được hiểu: σF (r)={t Єr/F(t)=đúng})
σ: ký hiệu phép chọn
<Tên_quan_hệ>: chỉ quan hệ được chọn
Kết quả thu được từ phép chọn là một quan hệ, có cùng danh sách thuộc tính được chỉ ra trong <Tên_quan_hệ>
Điều kiện chọn được hình thành từ các mệnh đề có dạng:
<tên_thuộc_tính> <phép_so_sánh> <giá_trị_hằng>
<tên_thuộc_tính> <phép_so_sánh> <tên_thuộc_tính>
t= R-S= SINHVIEN - GIANGVIEN
Tran An
Le Van PhongBui Hong Minh
Trang 8 <tên_thuộc_tính> là tên thuộc tính của <Tên_quan_hệ>, phép so sánh thường là: =, ≠, >, ≥, <, ≤.
Các mệnh đề có thể được nối lại nhờ vào các phép ¬, ∧, ∨
Phép chọn có tính giao hoán:
σ(đk1) (σ(đk2) R) = σ(đk2) (σ(đk1) R) = σ(đk1 ∧ đk2) R
VD: Tìm các nhân viên có mức lương trên 25.000 ở phòng 4 hoặc các nhân viên có mức lương trên 30.000 ở phòng 5
σ(PHG = 4 ∧ LUONG > 25000) ∨ (PHG = 5 ∧ LUONG > 30000)(NHANVIEN)
e.Phép kết nối (join)
Phép kết nối, ký hiệu là |X|, dùng để tổ hợp 2 bộ có liên quan từ 2 quan hệ
thành 1 bộ
VD: Tìm tên các trưởng phòng ban:
TR_PHG ← PHONGBAN |x| TRHG = MANV NHANVIENKETQUA ←πTENPHG, HONV, TENNV(TR_PHG)
Dạng tổng quát của phép kết nối 2 lược đồ quan hệ R(A1, A2, …, An), và S(B1, B2,
Trang 9mỗi <điều kiện> có dạng Ai θ Bi, với Ai là một thuộc tính của R, Bj là một thuộc tính của S, Ai và Bj có cùng miền và θ là một trong những phép so sánh {=, ≠, >, ≥, <, ≤}
Phép kết nối với điều kiện kết nối tổng quát gọi là θ kết nối
Các bộ có giá trị rỗng tại thuộc tính kết nối không xuất hiện trong kết quả của phép kết
Nếu θ là phép so sánh bằng (=), phép kết được gọi là phép kết bằng (equi-join)
Kết quả của phép kết nối bằng có 2 cột giống nhau có cột thừa
nếu bỏ bớt cột thứ 2 thì thành phép kết tự nhiên, ký hiệu là dấu sao (*).
VD: DA_PHG ← DEAN * PHONG=MAPHG PHONGBAN
Cách viết gọn: DA_PHG ← DEAN * (PHONG, MAPHG) PHONGBAN
Tổng quát, phép kết nối tự nhiên có dạng:
Trang 10II Nội dung
1/ Trình bày ý tưởng thuật toán giải quyết bài toán.
Để giải quyết bài toán ta thực hiện như sau”
-Nhập tên, số trường và dữ liệu cho các quan hệ
-Lưu dữ liệu vào file text
-Chọn 2 quan hệ cần tính toán
-Chọn phép toán thực hiện
-Thực hiện tính toán
-Hiển thị kết quả lên màn hình
Trong đó với các phép toán ta thực hiện như sau
1.Phép hợp (union)
-Load quan hệ 1 từ file vào A
-Kiểm tra sự trùng lặp của các hàng A
-Đưa vào kết quả
- Load quan hệ 2 từ file vào B
-So sánh ma trận B với ma trận A , nếu các hàng trong B không trùng lặp với kết quả thì ta đưa B vào kết quả
-Lưu kết quả ra file text và hiển thị lên màn hình
2.Phép giao (intersect)
-Load 2 quan hệ1 và 2 vào A và B
-Kiểm tra sự trùng lặp các hàng của A và B, nếu trùng thì ta sẽ đưa nó vào kết quả-Lưu kết quả ra file text và hiển thị lên màn hình
3.Phép trừ (minus)
-Load 2 quan hệ 1 và 2 vào A và B
-So sánh các hàng của A với B, nếu không trùng thì ta sẽ đưa hàng đó vào kết quả-Lưu kết quả ra file text và hiển thị lên màn hình
4.Phép chiếu (projection)
-Load quan hệ cần tính vào A
-Nhập các cột cần chiếu
-Đưa vào kết quả các cột của A tương ứng với các cột cần tính
-Loại bỏ các hàng trùng lặp trong kết quả
Trang 11-Lưu kết quả ra file text và hiển thị lên màn hình
5.Phép kết nối (join)
-Load 2 quan hệ 1 và 2 vào A và B
-Nhập vào điều kiện cần kết nối
-Kiểm tra các hàng của A và B theo điều kiện cần kết nối
-Đưa vào kết quả các hàng thỏa mản với các hàng của B nối tiếp sau A
-Lưu kết quả ra file text và hiển thị lên màn hình
Trang 122/ Vẻ sơ đồ khối hoặc mả giả cho các thuật toán nói trên
Xuất ra màn hình File kết quả
Thêm vào File kết
quả
Gọi quan hệ 1
Ktra sự trùng lặp các hàng
Trang 13Loại bỏ
Xuất ra màn hình File kết quả
EndLưu vào File kết quả
Begin
Gọi 2 quan hệ
Kiểm tra các hàng trong mỗi quan hệ
Loại bỏ
Trang 14hệ 2
Xuất ra màn hình
End
Lưu vào File kết quả
Loại bỏ hàng đó khỏi File kết quả
Begin
Gọi quan hệ 1
Gọi quan hệ 2
Trang 15Loại bỏ
Xuất ra màn hình File kết quả
EndLưu vào File kết quả
Begin
Nhập các trường cần chiếu
Lược bỏ các trường được chiếu trong quan hệGọi quan hê
Trang 16Bỏ qua
Xuất ra màn hình File kết quả
Trang 173/Thiết kế giao diện
a.Giao diện tổng quát
Trang 18b.Giao diện khi chạy chương trình
4.Viết CODE cho chương trình
a.Việc nhập quan hệ và lưu xuống file Text
Trang 19*Code cho nút lệnh Add:
Private Sub Command1_Click()
Dim i, filename, FileNumber, anItem
filename = App.Path 'chi duong dan hien tai
If Right(filename, 1) <> "\" Then filename = filename & "\"
'neu ben phai duong dan con co cac duong dan khac thi duong dan se duoc them dau \
filename = filename & Text1.Text & ".txt" 'tao file
If Dir(filename) <> "" Then 'duong dan da ton tai
Open filename For Append As #2 'ghi de len
Else
Open filename For Output As #2 'tao moi
End If
Print #2, Text2 & " " & Text3 & " " & Text4 & " " & Text5
' Viet vao cong so 2: Noi dung trong text 2345 cach nhau boi dau cach
Close #2 ' Dong cong so 2
Trang 20b.Chọn 2 quan hệ và thực hiện tính toán.
Code:
Private Sub Dir1_Change()
File1.Path = Dir1.Path ‘Khi duong dan dir1 thay doi thi File 1 se thay doi theoEnd Sub
Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive ‘khi duong dan Drive1 thay doi thi dir1 cung thay doi theo
End Sub
*Để hiển thị nội dung các File mình đã chọn lên Listbox ta sử dụng code cho việc click vào File đó.
Private Sub File1_Click()
Dim i, filename, FileNumber, anItem
filename = App.Path
If Right(filename, 1) <> "\" Then filename = filename & "\"
filename = filename & File1.filename ‘Lay duong dan hien tai
FileNumber = FreeFile
Open filename For Input As FileNumber
List1.Clear ' Xoa listbox truoc
Do While Not EOF(FileNumber)
Line Input #FileNumber, anItem
List1.AddItem anItem
Trang 22If matranA(I, 0) = matranB(k, 0) And dung Then
Call insert(matranA(), matranC())
Else: k = k + 1
End If
Next
Trang 24-Lưu kết quả tính toán dưới dạng file Ketqua.txt
Open App.Path & "Ketqua.txt" For Output As filenum
Private Sub Command4_Click()
Dim i, filename, FileNumber, anItem
filename = App.Path
If Right(filename, 1) <> "\" Then filename = filename & "\"
filename = filename & "ketqua.txt"
FileNumber = FreeFile
Open filename For Input As FileNumber
List1.Clear ' Xoa listbox truoc
Do While Not EOF(FileNumber)
Line Input #FileNumber, anItem
List1.AddItem anItem
Loop
Close FileNumber
End Sub
Trang 255.Kiểm thử
-Việc nhập dữ liệu vào File text thành công.
Khi nhấn nút lệnh refresh thì file ta nhập sẽ hiện ra
Khi ta chọn File đó thì kết quả sẽ được hiển thị trên List1 (Hiển thị)
-Sau khi chọn 2 file muốn tính toán Ta click vào phép toán để chọn phép toán cần tính toán Nhấn vào Button Tính toán và tiếp đó nhấn nút Kết quả để
có thể xem được kết quả mà ta vừa tính ở trên Dưới đây là kết quả thu được.
Trang 26Ngoài ra việc hiển thị trên Menu cũng được coi trọng
*Khi click vao menu Hướng dẫn thì sẽ xuất hiện 1 Form hướng dẫn cách thực hiện
Trang 27Để hiển thị nội dung lên hướng dẫn ta có đoạn Code sau:
Private Sub Form_Load()
Dim I, filename, FileNumber, anItem
filename = App.Path
If Right(filename, 1) <> "\" Then filename = filename & "\"
filename = filename & "huongdan.txt"
FileNumber = FreeFile
Open filename For Input As FileNumber
List1.Clear ' Xoa listbox truoc
Do While Not EOF(FileNumber)
Line Input #FileNumber, anItem
List1.AddItem anItem
Loop
Close FileNumber
End Sub
*Đồng thời khi click vào About me sẽ hiển thị 1 Form nói về tác giả
Đây là giao diện nên ta không cần Code phức tạp.
Trang 28III/Kết quả đạt được.
Trang 29IV/Nhận xét, đánh giá, đề xuất
1.Nhận xét:
Nhìn chung đồ án chạy tốt, cho ra kết quả đúng như mong muốn
Tuy nhiên còn một số lỗi phát sinh trong quá trình thực hiện như trên phần kiểm lỗi