Xuất phát từ mục đích học tập, tìm hiểu sâu hơn các kiến thức về các hệ quản trị cơ sở dữ liệu, đăc biệt là chúng em được biết thêm kiến thức về hệ quản trị cơ sở dữ liệu Oracle, cũng nh
Trang 1ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA HỆ THỐNG THÔNG TIN
-BÁO CÁO ĐỒ ÁN
ĐỀ TÀI QUẢN LÝ HỆ THỐNG THƯ VIỆN
TRƯỜNG THPT DƯỠNG ĐIỀM
Trang 2Mục lục
LỜI CẢM ƠN 6
NHẬN XÉT CỦA GIẢNG VIÊN 7
GIỚI THIỆU 8
Chương 1: TỔNG QUAN ĐỀ TÀI 9
1.1 Đặt vấn đề 9
1.2 Giải pháp 10
1.3 Mục tiêu 10
1.4 Công cụ sử dụng 10
Chương 2: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ DỮ LIỆU 11
2.1 Phân tích yêu cầu 11
2.1.1 Yêu cầu chức năng 11
2.1.1.1 Yêu cầu lưu trữ 11
2.1.1.2 Yêu cầu đáp ứng hệ thống 12
2.1.1.3 Yêu cầu về tính năng 12
2.1.1.4 Yêu cầu từ phía người dùng 12
2.1.2 Yêu cầu phi chức năng 12
2.2 Thiết kế cơ sở dữ liệu 13
2.2.1 Mô hình diagrams 13
2.2.2 Mô hình quan hệ 14
2.2.3 Mô tả dữ liệu 16
Chương 3: MÔ HÌNH VÀ CÁC CÔNG NGHỆ SỬ DỤNG 23
3.1 Tổng quan về mô hình MVC 23
3.1.1 MVC là gì? 23
3.1.2 Các thành phần trong MVC 23
3.1.3 Sự tương tác giữa các lớp trong MVC 23
3.1.4 MVC làm việc, hoạt đông như thế nào? 24
3.1.5 Ưu điểm và nhược điểm của MVC 25
3.1.5.1 Ưu điểm 25
3.1.5.2 Nhược điểm 25
3.2 Tổng quan về hệ quản trị cơ cở dữ liệu Oracle 25
3.2.1 Cơ sở dữ liệu Oracle là gì? 25
Trang 33.2.2 Tổng quan về kiến trúc Oracle 26
3.2.3 Trách nhiệm của người quản trị cơ sơ dữ liệu (DBA) 27
3.3 Tổng quan về JDBC 27
3.4 Tổng quan về SWT 28
3.5 Tổng quan về NetBeans IDE 8.2 29
3.5.1 Giới thiệu phần mềm NetBeans 29
3.5.2 Ưu điểm phần mềm NetBeans 30
3.5.3 Các tính năng của NetBeans 31
Chương 4: XÂY DỰNG VÀ QUẢN LÝ GIAO TÁC 32
4.1 Function 32
4.1.1 Function trong Oracle 32
4.1.2 Danh sách các Function 32
4.1.3 Mô tả một số Function 32
4.2 Stored procedure 34
4.2.1 Store procedure trong Oracle 34
4.2.2 Transaction trong Oracle 35
4.2.3 Danh sách stored procedure 37
4.2.4 Mô tả một số stored procdure 40
4.2.4.1 Thêm sách 40
4.2.4.2 Xóa sách không ai mượn 41
4.2.4.3 Độc giả trả sách mượn mà có sách mượn quá hạn 44
4.2.4.4 Xem thông tin NXB 45
4.2.4.5 Trả sách 47
4.3 Trigger 49
4.3.1 Trigger trong Oracle 49
4.3.2 Danh sách các trigger 50
4.3.3 Mô tả một số trigger 51
4.3.3.1 Độc giả cho mượn sách không được quá số lượng qui định 51
4.3.3.2 Ngăn chặn người dùng không được mượn thêm sách 53
4.3.3.3 Kiểm tra ngày mượn trả trước khi chèn hoặc thay đổi ngày hết hạn, ngày trả 54
Chương 5: XỬ LÝ TRUY XUẤT ĐỒNG THỜI 56
5.1 Các mức cô lập trong Oracle 56
Trang 45.1.1 REPEATABLE READ 56
5.1.2 READ COMMITED 57
5.2.3 READ UNCOMMITTED 58
5.1.3 SERIALIZABLE 58
5.1.4 LOCKING READS 59
5.2 Unrepeatable read 60
5.3 Phantom 62
5.4 Deadlock 63
5.5 Lost update 66
Chương 6: THIẾT KẾ GIAO DIỆN 69
6.1 Danh sách các màn hình 69
6.2 Mô tả các màn hình 71
6.2.1 Màn hình” Đăng nhập” 71
6.2.2 Màn hình” Chức năng độc giả” 72
6.2.3 Màn hình “Tra cứu sách” 72
6.2.4 Màn hình” Xem thông tin” 74
6.2.5 Màn hình” Đổi mật khẩu” 75
6.2.6 Màn hình” Chức năng thủ thư” 76
6.2.7 Màn hình” Quản lý đầu sách” 77
6.2.8 Màn hình” Quản lý hà xuất bản” 78
6.2.9 Màn hình” Quản lý phiếu nhập sách” 80
6.2.10 Màn hình” Quản lý mượn sách” 81
6.2.11 Màn hình” Quản lý trả sách” 82
6.2.12 Màn hình” Quản lý danh sách độc giả mượn sách” 83
6.2.13 Màn hình” Quản lý danh sách độc giả mượn sách quá hạn” 84
6.2.14 Màn hình” Quản lý thông độc giả” 86
6.2.15 Màn hình” Quản lý tìm kiếm sách” 87
6.2.16 Màn hình” Quản lý nhân viên” 88
6.2.17 Màn hình” Báo cáo, thống kê” 89
Chương 7: KẾT LUẬN 96
7.1 Kết quả đạt được 96
7.2 Hạn chế 96
7.3 Hướng phát triển 97
Trang 5Phụ lục 1: Bảng phân công công việc 97
Phụ lục 2: Tài liệu tham khảo 99
Trang 6LỜI CẢM ƠN
Lời đầu tiên, nhóm chúng em xin chân thành gửi lời cảm ơn đặc biệt đến
Cô Đỗ Thị Minh Phụng (Giáo viên môn Hệ quản trị cơ sở dữ liệu) Cô đã tận tình
giảng dạy, trang bị, cung cấp những kiến thức quý báu, kỹ năng cơ bản bổ ích cần
có trong suốt quá trình thức hiện đề tài Đặc biệt sự quan tâm, giúp đỡ tận tình của
Cô để nhóm chúng em có thể hoàn thành được đồ án môn học của mình, để phần
mềm của nhóm được hoàn chỉnh và có thể ứng dụng vào thực tế
Xuất phát từ mục đích học tập, tìm hiểu sâu hơn các kiến thức về các hệ
quản trị cơ sở dữ liệu, đăc biệt là chúng em được biết thêm kiến thức về hệ quản
trị cơ sở dữ liệu Oracle, cũng như tìm hiểu thêm về quy trình nghiệp vụ của thư
viện trong các trường THPT, nhóm chúng em đã thực hiện đồ án “Hệ thống quản
lý thư viện” Trong quá trình thực hiện đồ án, dựa trên những kiến thức được Cô
cung cấp trên lớp cùng với sự tự nghiên cứu, tìm hiểu thêm tài liệu, những công cụ
và kiến thức mới, nhóm đã cố gắng thức hiện đồ án một cách tốt nhất Mặc dù
nhóm đã cố gắng tìm hiểu và khảo sát thực tế ở thư viện trường THPT Dưỡng
Điềm do thời gian thực hiện đồ án có hạn, khả năng và kinh nghiệm còn hạn hẹp
nên đồ án chưa hoàn thiện và còn nhiều sai sót nhưng nó là kết quả sự nổ lực của
các thành viên trong nhóm, sự giúp đỡ của tất cả bạn bè và Cô
Nhóm chúng em rất mong nhận sự góp ý từ phía Cô nhằm rút ra những
kinh nghiệm quý báu và hoàn thiện vốn kiến thức để nhóm có thể tiếp tục hoàn
thành những đồ án khác trong những môn học sắp tới
Xin chân thành cảm ơn quý Cô!
Trang 7NHẬN XÉT CỦA GIẢNG VIÊN
Trang 8
GIỚI THIỆU
Trong thời đại số, việc áp dụng công nghệ vào các lĩnh vực đời sống là một
điều tất yếu Là yếu tố nâng cao hiệu suất của các hệ thống quản lý, đặc biệt là
những hệ thống có dữ liệu lớn rất cần những kĩ thuật mới để có thể giải quyết các
vấn đề mà hệ thống hiện tại không thể đảm đương được
Hệ thống thư viện THPT Dưỡng Điềm sau nhiều năm phát triển từ lúc
thành lập đã trở thành một hệ thống với dữ liệu khá lớn Việc quản lý thủ công
bằng sổ sách đã không còn hiệu quả, hiệu suất kém Hệ thống cũ gây nên sự lộn
xộn trong quản lý thông tin, gây thất thoát thông tin, đặc biệt trường hợp sổ sách
bị hư hại có thể gây thiệt hại lớn cho thư viện
Do đó một hệ thống thông tin quản lý trong quá trình quản lý thư viện cần
được xây dựng để khắc phục những nhược điểm của hệ thống cũ Hệ thống có thể
xử lí nhanh, chính xác, tiết kiệm chi phí, nhân lực và thời gian Hệ thống có thể
đáp ứng theo yêu cầu của người quản lý, xử lý khi gặp sự cố
Sự ra đời của đề tài là một yêu cầu cấp thiết trong quản lý thư viện của
THPT Dưỡng Điềm do sự tăng lên số lượng độc giả (giáo viên, học sinh) trong
trường và các đầu sách nhâp vào thư viện hằng năm Nên việc hệ thống cần xử lý
nhanh và chính xác là điều tất yếu từ đó giúp giảm chi phí và hạn chế việc xử lý
bằng tay của thủ thư trong việc quản lý thư viện Nhờ vào đó sẽ nâng cao hiệu suất
của thư viện giúp độc giả dễ dàng tiếp cận với sách, góp phần phát triển thói quen
đọc sách cho mọi người
Xuất phát từ nhu cầu thực tế, nhà trường rất cần phần mềm để giải quyết tốt
những vấn đề trên Chính những yêu cầu thực tế này nhóm em muốn xây dựng dự
án phần mềm “Hệ thống quản lí thư viện” mong rằng sẽ giúp ích một phần nào đó
Trang 9Chương 1: TỔNG QUAN ĐỀ TÀI
1.1 Đặt vấn đề
Hiện nay, thư viện là một hệ thống khá phổ biến trong các trường đại học cũng
như các trường THPT Đi cùng với sự phát triển của thư viện là nhu cầu của độc
giả ngày một tăng lên, vì vậy số lượng sách nhập vào trong thư viện cũng tăng lên
rất nhiều mà hệ thống cũ trước đây khó có thể quản lý và kiểm soát tốt được do cơ
sở dữ liệu ngày một quá lớn và chủ yếu quản lý bằng thủ công chiếm phần lớn
trong việc quản lý thư viện
Thư viện trường THPT Dưỡng Điềm ở tỉnh Tiền Giang được xây dựng nhằm
phục vụ, cung cấp tài nguyên thông tin và dịch vụ thông tin cho tất cả các bạn đọc
là học sinh, giáo viên và cán bộ nhân viên của trường THPT Hằng năm số lượng
sách nhập vào thư viện ngày càng nhiều, để đáp ứng nhu cầu xem và mượn sách
của độc giả , vì thế việc đọc sách và ghi chép lại các quá trình mượn độc giả ngày
càng nhiều gây khó khăn cho cả độc giả lẫn thủ thư mà nguyên nhân chủ yếu là do
thư viện vẫn còn áp dụng lối quản lý thủ công bằng giấy tờ nên như việc tìm kiếm
khó khăn, không nắm được tình trạng đọc sách, khó khăn đòi sách quá hạn, quản
lý sách ra vào kho khó khăn và làm hồ sơ phức tạp,… Ban quản lý thư viện đang
gặp nhiều khó khăn, bất cập trong việc quản lý thư viện
Vì vậy, Ban quản lý thư viện muốn tin học hoá các quy trình quản lý của thư
viện, nhằm mục tiêu thúc đẩy và nâng cao hiệu quả trong công tác nghiệp vụ quản
lý thư viện một cách tối ưu hơn với đầy đủ các tính năng cho các hoạt động nghiệp
vụ quản lý
Ban quản lý thư viện yêu cầu muốn xây dựng nên một phần mềm để quản lý
hệ thống hoá được quy trình nghiệp vụ của thư viện, đáp ứng được những nhu cầu
của bạn đọc nhằm giải quyết những khó khăn, bất tiện của thư viện Phần mềm
quản lý cần thỏa những chức năng:
Quản lý nhập sách
Quản lý độc giả
Trang 10 Quản lý mượn, trả sách
Tra cứu, tìm kiếm sách
Thống kê, lập báo cáo
Và, cũng là một yêu cầu đặt ra cùng với sự phát triển đó là nhóm chúng em
làm thế nào để quản lý các thông tin trong thư viện một cách tối ưu nhất và hiệu
quả nhất Để giải quyết vấn đề trên, thư viên trường cần thay đổi hình thức quản lý
hệ thống từ thủ công sang hình thức quản lý ứng dụng công nghệ thông tin Vì
vậy, với môn “Hệ quản trị cơ sở dữ liệu” nhóm chúng em sẽ giới thiệu một hệ
thống quản lý thư viện, đáp ứng một số chức năng cơ bản trong quản lý cơ sở dữ
liệu
1.2 Giải pháp
Theo như tình trạng hiện tại và nhu cầu quản lý thư viện của ban quản lý thư viện,
giải pháp được nhóm chúng em đề xuất là xây dựng nên một hệ thống quản lý thư
viện mới thay cho hệ thống quản lý cũ để công việc quản lý thông tin của “Trường
THPT Dưỡng Điềm” trở nên dễ dàng và chính xác Đồng thời, hệ thống giúp nâng
cao chất lượng quản lý của thủ thư một cách có hệ thống, nâng cao năng suất lao
động con người, tiết kiệm chi phí hoạt động, tìm kiếm, lưu trữ và báo cáo thống kê
thông tin một cách dễ dàng Bên cạnh đó các quy trình nghiệp vụ với sự hỗ trợ đắc
lực của phần mềm cũng sẽ được xử lý nhanh chóng và hiệu quả
1.3 Mục tiêu
- Xây dựng hệ thống quản lý thư viện Trường THPT Dưỡng Điềm đáp ứng
những yêu cầu sau:
Xây dựng nên hệ thống hỗ trợ công việc quản lí thư viện của nhà trường sẽ
Hệ thống hóa được quy trình nghiệp vụ của thư viện
Đáp ứng nhu cầu tìm kiếm tài liệu sách đa dạng của độc giả
Trang 11Tiết kiệm thời gian, hạn chế tối đa sai sót trong quá trình quản lí của ban
quản lý thư viện
Theo dõi quản lý sách, độc giả một cách dễ dàng của thủ thư
- Cài đặt các trigger, function, stored procedure, transaction.
- Thiết kế giao diện giúp người dùng dễ dàng sử dụng hệ thống thông qua các
nút chọn
- Sử dụng các mức cô lập để giải quyết vấn đề xử lý đồng thời.
1.4 Công cụ sử dụng
Để sử dụng cho quá trình xây dựng phần mềm hệ thống quản lý thư viện trường
THPT Dưỡng Điềm nhóm chúng em đã sử dụng các công cụ hỗ trợ cho việc thực
hiện đồ án:
- Hệ quản trị cơ sở dữ liệu Oracle 11g R2
- Netbeans IDE 8.2: Hỗ trợ minh họa đồ án trên giao diện
- Microsoft Project 2016: Quản lý thời gian phân công thành viên trong
nhóm
Chương 2: PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ DỮ
LIỆU
2.1 Phân tích yêu cầu
.1.1 Yêu cầu chức năng
2.1.1.1 Yêu cầu lưu trữ
Yêu cầu quan trọng nhất của hệ thống là tính năng lưu trữ cơ sở dữ liệu của
thư viện qua các năm Đây là cơ sở nền tảng để xây dựng nên các chức năng
của hệ thống Vì vậy hệ thống quản lý thư viện cần lưu trữ các thông tin sau:
Trang 12Đối tượng cần quản lý Dữ liệu nào cần lưu trữ
Thông tin sách Mã sách duy nhất, bao gồm các
thông tin mã nhã xuất bản, tên sách,tác giả của sách, năm xuất bản sách,trạng thái của sách (đã mượn hay chưa mượn), ngôn sách của sách,
mã nhập sách, thể loại sách, tái bản lần bao nhiêu
Thông tin phiếu mượn Mã phiếu mượn, mã sách, mã độc
giả, ngày mượn, ngày hết hạn
Thông tin phiếu phạt Mã phiếu phạt, mã độc giả, mã
nhân viên, mã sách, tiền phạt, ngày trả, ngày hết hạn
Thông tin nhà xuất bản Mã nhà xuất bản, tên nhà xuất bản,
địa chỉ, số điện thoạiThông tin phiếu nhập sách Mã nhập, tên sách, số lượng, đơn
giá, ngày giao, mã nhân viên, mã nhà xuất bản
Thông tin nhân viên Mã nhân viên, họ tên, ngày sinh, số
điện thoại, email, giới tính, chức
vụ, địa chỉ
Thông tin độc giả Mã độc giả, tên, ngày sinh, số điện
thoại, địa chỉ, lớp, đối tượng, giới tính, email
Thông tin thẻ thư viện Mã thẻ, ngày bắt đầu, ngày hết hạn,
ghi chú
Thông tin tài khoản Tên tài khoản, mật khẩu, loại tài
khoản
2.1.1.2 Yêu cầu đáp ứng hệ thống
- Hệ thống xây dựng nên phải đáp ứng được nhu cầu quản lý sách,
quản lý độc giả tại trường một cách thuận tiện dễ dàng
Trang 13- Cập nhật thông tin chính xác và nhanh chóng, kịp thời nhằm đẩy
mạnh tiến độ của công việc quản lý
- Hệ thống xây dựng nên tạo tính bảo mật thông tin của các đối tượng
được lưu trữ
- Độc giả có thể tra cứu sách, tìm kiếm sách có còn hay không trong
thư viện để có thể mượn sách nhanh chóng chứ không còn qua các bước
thủ tục rườm rà như trước đây
- Thống kê, báo cáo dữ liệu theo năm
- Hệ thống hỗ trợ tốt hơn cho ban quản lí thư viện nhà trường trong
việc nhập sách mới về thư viện, trong việc mượn trả sách của độc giả
cũng như các vấn đề liên quan trong thư viện
- Dễ dàng nâng cấp và tăng tính năng tiện ích khác
- Hệ thống máy móc, phần mềm đảm bảo phù hợp với cấu hình ở thư
viện trường
2.1.1.3 Yêu cầu về tính năng
- Chức năng tra cứu: đáp ứng nhu cầu tìm kiếm thông tin từ người
dùng như: tra cứu thông tin sách, tra cứu thông tin độc giả, tra cứuthông tin nhân viên
- Chức năng thống kê, báo cáo: đáp ứng nhu cầu của người dùng trong
việc lập báo cáo về tình hình hoạt động của thư viện: báo cáo sáchmượn theo tháng, thống kê tiền phạt theo từng độc giả
- Chức năng cập nhật thông tin: thêm, cập nhật, xóa thông tin của các
đối tượng lưu trữ: sách, phiếu mượn, phiếu phạt, nhà xuất bản, phiếunhập sách, nhân viên, độc giả, thẻ thư viện, tài khoản
- Chức năng phân quyền truy cập
2.1.1.4 Yêu cầu từ phía người dùng
- Giao diện đẹp thuận tiện, dễ sử dụng với mọi mọi người dùng
- Các bước đăng nhập vào hệ thống dễ dàng, trải qua ít các bước
Trang 14- Thông tin hiển thị chi tiết đầy đủ, duy trì lưu trữ dữ liệu lâu dài trong
hệ thống trong phạm vi thời gian nhất định
- Hệ thống hoạt động ổn định theo thời gian
- Hoàn thành đúng thời gian theo hợp đồng đã thỏa thuận
2.1.2 Yêu cầu phi chức năng
- Yêu cầu giao diện: tiện dụng, thân thiện, sinh động và tương tác cao
- Yêu cầu hiệu suất:
Phần mềm sử dụng hợp lý tài nguyên hệ thống để tránh treo máy,tràn bộ nhớ ảnh hưởng các chương trình khác
- Yêu cầu an toàn:
Phần mềm chạy trên hệ thống không xung đột với các phần mềmkhác
- Yêu cầu bảo mật:
Trang 15Qusnr lý nhà xuất bản X
2.2 Thiết kế cơ sở dữ liệu
2.2.1 Mô hình diagrams
2.2.2 Mô hình quan hệ
TAIKHOAN (TENTK, MATKHAU, LOAITK)
Tân từ: Mỗi tài khoản có một tên tài khoản riêng (TENTK) hay gọi là mã tài
khoản, ứng với mỗi tài khoản có một mật khẩu (MATKHAU), loại tài khoản
(LOAITK) (thủ thủ hay độc giả)
DOCGIA (MADOCGIA, TEN, NGAYSINH, SDT, DIACHI, LOP, DOITUONG,
GIOITINH, EMAIL)
Tân từ: mỗi độc giả có một mã độc giả riêng biệt (MADOCGIA), họ tên
(TEN), ngày sinh (NGAYSINH), số điện thoại (SDT), địa chỉ (DIACHI), lớp
(LOP) (đối với độc giả giáo viên thì lớp là null), độc giả thuộc đối tượng nào
(DOITUONG: học sinh hay giáo viên), giới tính (GIOITINH), email (EMAIL)
Trang 16THETHUVIEN (MATHE, NGAYBD, NGAYHETHAN, GHICHU)
Tân từ: Mỗi thẻ thư viện tương ứng với một mã thẻ riêng (MATHE), ngày thẻ
có hiệu lực (NGAYBD), ngày thẻ hết hạn sử dụng (NGAYHETHAN), ghi chú
(GHICHU)
NHANVIEN (MANHANVIEN, HOTEN, NGAYSINH, SDT, EMAIL, GIOITINH,
CHUCVU, DIACHI)
Tân từ: Mỗi nhân viên trong thư viện ứng với mỗi mã nhân viên
(MANHANVIEN) duy nhất, họ tên nhân viên (HOTEN), ngày sinh
(NGAYSINH), số điện thoại (SDT), email (EMAIL), giới tính (GIOITINH),
chức vụ (CHUCVU), địa chỉ (DIACHI)
NHAXUATBAN (MANXB, TENNXB, DIACHI, SDT)
Tân từ: mỗi nhà xuất bản ứng với mã nhà xuất bản (MANXB) duy nhất, tên
nhà xuất bản (TENNXB), địa chỉ (DIACHI), số điện thoại (SDT)
PHIEUNHAPSACH ( MANHAP, TENSACH, SL, DONGIA, NGAYGIAO,
MANHANVIEN, MANXB)
Tân từ: mỗi phiếu nhập sách ứng với mã nhập sách (MANHAP) duy nhất, tên
sách nhập (TENSACH), số lượng sách nhập (SL), đơn giá (DONGIA), ngày
nhập sách (NGAYGIAO), do nhân viên nào nhập (MANHANVIEN), thuộc
nhà xuất bản nào (MANXB)
SACH (MASACH, MANXB, MANHAP, TENSACH, TACGIA, NAMXB,
TRANGTHAI, NGONNGU, MANHAP, THELOAI, TAIBAN)
Tân từ: mỗi sách ứng với mã sách (MASACH) duy nhất, bao gồm các thông
tin mã nhã xuất bản (MANXB), tên sách (TENSACH), tác giả của sách
(TACGIA), năm xuất bản sách (NAMXB), trạng thái của sách (TRANGTHAI:
đã mượn hay chưa mượn), ngôn sách của sách (NGONNGU), mã nhập sách
(MANHAP), thể loại sách (THELOAI), tái bản lần ban nhiêu (TAINBAN)
Tân từ: mỗi phiếu mượn ứng với mã phiếu mượn (MAPHIEUMUON) duy
nhất, bao gồm mã sách (MASACH), độc giả nào mượn sách (MADOCGIA),
ngày mượn sách (NGAYMUON)
QTMUON (MASACH, NGAYMUON, MADOCGIA, NGAYHETHAN,
NGAYTRA, GHICHU, TRANGTHAI)
Trang 17Tân từ: Trong quá trình mượn sách gồm: mã sách (MASACH), ngày mượn
sách (NGAYMUON), mã độc giả (MADOCGIA), ngày sách hết hạn mượn
(NGAYHETHAN), ngày trả sách (NGAYTRA), ghi chú (GHICHU), trạng thái
(TRANGTHAI)
PHIEUPHAT (MAPHIEUPHAT, MADOCGIA, MANHANVIEN, MASACH,
TIENPHAT, NGAYTRA, NGAYHETHAN)
Tân từ: mỗi phiếu phạt ứng với mã phiếu phạt (MAPHIEUPHAT) duy nhất,
phạt độc giả nào (MADOCGIA), do nhân viên nào thực hiện
(MANHANVIEN), sách phạt (MASACH), tiền phạt (TIENPHAT), ngày trả
sách (NGAYTRA), ngày hết hạn mượn sách (NGAYHETHAN)
BAOCAO (MABAOCAO, MANHANVIEN, NGAYBC, NOIDUNG, TOMTAT)
Tân từ: mỗi bài báo cáo ứng với mã báo cáo (MABAOCAO) duy nhất, do nhâ
viên nào thực hiện (MANHANVIEN), ngày viết báo cáo (NGAYBC), nội dung
báo cáo (NOIDUNG), tóm tắt (TOMTAT)
Ý nghĩa/Ghi chú
khản
Ý nghĩa/Ghi chú
Trang 181 MADOCGIA CHAR (5) Khác null Mã độc giả
giả
thoại
Ý nghĩa/Ghi chú
Trang 19Ý nghĩa/Ghi chú
Ý nghĩa/Ghi chú
null
Năm xuấtbản
Trang 208 TRANGTHAI NVARCHAR2(15) Khác
null
Trạng tháicủa sách
null
Ngông ngữsách
null
Lần tái bảnsách
Ý nghĩa/Ghi chú
null
Mã thẻ thưviện
null
Ngày thẻ cóhiệu lực sửdụng
Ý nghĩa/Ghi chú
Trang 212 MASACH CHAR (7) Khác
null
Mã sáchmượn
null
Mã độc giảmượn sách
null
Ngày mượnsách
null
Số lượngsách mượn
Bảng: QTMUON
buộc
Giá trị khởi động
Ý nghĩa/Ghi chú
null
Ngày hếthạn trả sách
null
Ngày trảsách
Bảng: PHIEUNHAPSACH
Trang 22STT Tên thuộc tính Kiểu Ràng
buộc
Giá trị khởi động
Ý nghĩa/Ghi chú
null
Ngày nhậpsách
Bảng: PHIEUPHAT
buộc
Giá trị khởi động
Ý nghĩa/Ghi chú
phạt
Trang 233 MATHUTHU CHAR (5) Khác null Mã thủ thư
sách
hết hạn thờigian mượn
Ý nghĩa/Gh
Trang 24Chương 3: MÔ HÌNH VÀ CÁC CÔNG NGHỆ SỬ
MVC là Design Pattern (mẫu thiết kế) được áp dụng rộng rãi trên hầu
hết các ngôn ngữ lập trình hướng đối tượng hiện nay từ Java, C#, PHP,
Visual C++… Nó giúp cho các lập trình viên tách ứng dụng của họ ra 3
thành phần khác nhau Model (Dữ liệu), View (Giao diện) và Controller
(Điều khiển) Mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với
các thành phần khác
3.1.2 Các thành phần trong MVC
- Model: Là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc
hệ quản trị cơ sở dữ liệu (MySQL, SQL Server, Oracle …) Nó sẽbao gồm các class/function xử lý nhiều nghiệp vụ như kết nốidatabase, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu…
- View: Đảm nhận việc hiển thị thông tin, tương tác với người
dùng, nơi chứa tất cả các đối tượng GUI như button, textfeild,textbox, images Hiểu một cách đơn giản, nó là tập hợp cácform
- Controller: Là nơi tiếp nhận những yêu cầu xử lý được gửi từ
người dùng, nó sẽ gồm những class/function xử lý nhiều nghiệp
vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp
vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho người dùngnhờ lớp View
3.1.3 Sự tương tác giữa các lớp trong MVC
Trang 25- Controller – View sẽ lấy những hình ảnh, nút bấm…hoặc hiển thị
dữ liệu được trả ra từ Controller để người dùng có thể quan sát vàthao tác Trong sự tương tác này cũng có thể không có dữ liệuđược lấy từ Model và khi đó nó chỉ chịu trách nhiệm hiển thị đơnthuần như hình ảnh, nút bấm…
- Controller – Model là luồng xử lý khi controller tiếp nhận yêu
cầu và các tham số đầu vào từ người dùng, controller sẽ sử dụngcác lớp/hàm trong Model cần thiết để lấy ra những dữ liệu chínhxác
- View – Model có thể tương tác với nhau mà không quaController, nó chỉ đảm nhận hiển thị dữ liệu chứ không phải quabất kỳ xử lý nghiệp vụ logics nào
3.1.4 MVC làm việc, hoạt đông như thế nào?
Trang 26Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong
- Model nhận thông tin và thực thi các yêu cầu.
- Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và
hiển thị lại cho người dùng
3.1.5 Ưu điểm và nhược điểm của MVC
3.1.5.1 Ưu điểm
- MVC làm cho ứng dụng trở nên trong sáng, giúp lập trình viên
phân tách ứng dụng thành ba lớp một cách rõ ràng Điều này sẽ rấtgiúp ích cho việc phát triển những ứng dụng xét về mặt lâu dài choviệc bảo trì và nâng cấp hệ thống
- MVC hiện đang là mô hình lập trình tiên tiến bậc nhất hiện nay,
điều mà các framework vẫn đang nổ lực để hướng tới sự đơn giản
và yếu tố lâu dài cho người sử dụng
- Thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế Do
được chia thành các thành phần độc lập nên giúp phát triển ứngdụng nhanh, đơn giản, dễ nâng cấp, bảo trì
3.1.5.2 Nhược điểm
- Mặc dù, MVC tỏ ra lợi thế hơn nhiều so với cách lập trình thông
thường Nhưng MVC luôn phải nạp, load những thư viện đồ sộ để
xử lý dữ liệu Chính điều này làm cho mô hình trở nên chậm chạphơn nhiều so với việc code tay thuần túy
Trang 27- MVC đòi hỏi người tiếp cận phải biết qua OOP, có kinh nghiệm
tương đối cho việc thiết lập và xây dựng một ứng dụng hoànchỉnh Sẽ rất khó khăn nếu OOP của người sử dụng còn yếu
- MVC tận dụng mảng là thành phần chính cho việc truy xuất dữ
liệu Nhất là với việc sử dụng active record để viết ứng dụng
Chúng luôn cần người viết phải nắm vứng mô hình mảng đachiều
- Đối với dự án nhỏ việc áp dụng mô hình MC gây cồng kềnh, tốn
thời gian trong quá trình phát triển Tốn thời gian trung chuyển dữliệu của các thành phần
3.2 Tổng quan về hệ quản trị cơ cở dữ liệu Oracle
3.2.1 Cơ sở dữ liệu Oracle là gì?
Cơ sở dữ liệu (Oracle Database) là một tập các đơn vị dữ liệu Mụcđích của cơ sở dữ liệu là lưu trữ và tìm lại được các thông tin được lưu
trữ Máy chủ CSDL là chìa khóa của việc giải quyết vấn đề quản lý
thông tin Thông thường một máy chủ có thể quản lý một tập dữ liệu
trong môi trường có nhiều người dùng có thể đồng thời truy cập cùng
dữ liệu Tất cả được hoàn thành với hiệu năng cao Máy chủ CSDL có
thể ngăn cản truy cập trái phép và cung cấp giải pháp hiệu quả tỏng việc
lấy lại dữ liệu khi có bất kỳ sự cố nào
Oracle Database là CSDL đầu tiên được thiết kế chuyên dụng cho tính
toán mạng lưới (grid computing), tính mềm dẻo nhất và chi phí hiệu quả
nhất cho việc quản lý thông tin và ứng dụng Kiến trúc mạng lưới tính
toán của tổ chức tạo ra các vũng (pools) rộng lớn của ngành công
nghiệp (industry-standard), mođun hóa lưu trữ và máy chủ Với kiến
trúc này, mỗi hệ thống mới có thể nhanh chóng chuẩn bị từ vũng của các
thành phần khác Không cần áp lực cao, bởi vì sức chứa có thể dễ dàng
thêm hoặc đặt lại tài nguyên chung nếu cần
3.2.2 Tổng quan về kiến trúc Oracle
Oracle được kiến trúc theo mô hình 3 lớp: lớp dữ liệu lớp xử lý, lớp bộ
nhớ
Trang 28- Lớp dữ liệu (File systems): lớp dữ liệu bao gồm các tập tin dữ liệu
được tổ chức lưu trữ tại các đĩa cứng của một hoặc nhiều máy chủ
khác nhau (tính phân tán của CSDL Oracle) Khi có các yêu cầu truy
xuất từ phía các máy trạm, các thành phần bên trong dữ liệu đã được
các xử lý bên dưới nạp đúng phần dữ liệu cần truy xuất trướ đó từ đĩa
cứng vào bên trong bộ nhớ của máy chủ Điều này giúp cho tốc độ
truy xuất được hiệu quả hơn Thông tin bên trong một CSDL Oracle sẽ
có nhiều loại tập tin dữ liệu khác nhau Tiêu biểu là một số loại tập tin
- Lớp xử lý bên dưới (Background processes): lớp xử lý bên dưới tại
máy chủ sẽ đảm bảo cho mối quan hệ giữa phần CSDL vật lý và phần
hiển thị trong bộ nhớ được khớp nhau Cũng giống như lớp dữ liệu,
các xử lý được chia ra làm nhiều loại khác nhau:
Xử lý ghi vào CSDL (database writer)
Trang 29Xử lý ghi vào tập tin log (log writer)
- Lớp bộ nhớ (Memory): lớp bộ nhớ bao gồm nhiều thành phần khác
nhau được tổ chức lưu trữ trên vùng đệm bộ nhớ của máy tính nhằm
tăng tốc xử lý trong Oracle.Một số vùng đệm tiêu biểu như sau:
Vùng đệm lưu trữ CSDL (database buffer cache)
Vùng đệm lưu trữ các thông tin chung thường dùng (dictionarycache)
Vùng đệm lưu trữ lện SQL (SQL area)
3.2.3 Trách nhiệm của người quản trị cơ sơ dữ liệu (DBA)
Mỗi cơ sở dữ liệu yêu cầu ít nhất một quản trị viên hay còn gọi làDatabase Adminstrator (DBA) Hệ thống CSDL Oracle có thể lớn hơn
và có thể có nhiều người dùng hơn Do đó, người quản trị CSDL thường
không phải công việc của một người, mà của một nhóm DBA cùng nhau
chia sẻ trách nhiệm
3.3 Tổng quan về JDBC
JDBC, là viết tắt của Java Database Connectivity, là một Java API chuẩn để
kết nối giữa ngôn ngữ lập trình Java và các cơ sở dữ liệu đa dạng Khi sử dụng
JDBC chúng ta có thể thực hiện nhiều tác vụ đa dạng khi làm việc với cơ sở dữ
liệu như tạo, xóa cơ sở dữ liệu; tạo và thực thi các lệnh SQL hoặc MySQL; tạo,
xóa các bản ghi; … Trước khi có JDBC, ODBC API được sử dụng là API để
kết nối và thực thi truy vấn với cơ sở dữ liệu Nhưng API này có một hạn chế
rõ ràng là nó sử dụng ODBC driver được viết bằng ngôn ngữ C (là phụ thuộc
nền tảng và không an toàn) Đề tài Quản lý Rạp chiếu phim GVHD: ThS Đỗ
Thị Minh Phụng 25 Do đó, Java đã định nghĩa riêng API (là JDBC API) để
thực hiện các thao tác khi làm việc với cơ sở dữ liệu, và tất nhiên các JDBC
driver này được viết bằng ngôn ngữ Java để cung cấp các lợi thế rõ rệt của
ngôn ngữ này JDBC API cung cấp các Class và Interface sau:
- DriverManager: Lớp này quản lý các Database Driver Ánh xạ các yêu cầu
kết nối từ ứng dụng Java với Data driver thích hợp bởi sử dụng giao thức
kết nối phụ
Trang 30- Driver: Interface này xử lý các kết nối với Database Server Hiếm khi,
chúng ta tương tác trực tiếp với các đối tượng Driver này Thay vào đó,
chúng ta sử dụng các đối tượng DriverManager để quản lý các đối tượng
kiểu này
- Connection: Đối tượng Connection biểu diễn ngữ cảnh giao tiếp Interface
này chứa nhiều phương thức đa dạng để tạo kết nối với một Database
- Statement: Chúng ta sử dụng các đối tượng được tạo từ Interface này để đệ
trình các lệnh SQL tới Database Ngoài ra, một số Interface kết thừa từ nó
cung chấp nhận thêm các tham số để thực thi các thủ tục đã được lưu trữ
- ResultSet: Các đối tượng này giữ dữ liệu được thu nhận từ một Database
sau khi chúng ta thực thi một truy vấn SQL Nó nóng vai trò như một
Iterator để cho phép chúng ta vọc qua dữ liệu của nó
- SQLException: Lớp này xử lý bất cứ lỗi nào xuất hiện trong khi làm việc
với Database
3.4 Tổng quan về SWT
Standard Widget Toolkit (SWT) là một bộ thư viện lập trình ứng dụng đồ
họa trên nền tảng Java Được phát triển bởi Stephen Northover tại IBM và hiện
tại được phát triển song song với Eclipse IDE tại Eclipse Foundation
SWT không hiển thị đồ họa hoàn toàn bằng Java Khi chạy một ứng sụng
đồ họa, SWT cố gắng tận dụng những thành phần có sẵn của hệ điều hành
thông qua JNI (Java Native Interface) và chỉ tạo đồ họa cho thành phần mà hệ
điều hành đó không có bằng Java Vì vậy, SWT tạo ra giao diện người dùng
tương tự như các ứng dụng native và tốc độ thực thi cũng nhanh hơn rất nhiều
so với Swing – một trong các bộ GUI mặc định của Java
Đặc trưng của SWT:
- Giao diện đồ họa theo từng hệ điều hành khác nhau nên cho cảm giác
quen thuộc hơn đối với người dùng
- Sử dụng đối tượng Display và Shell để hiển thị giao diện Đối tượng
Display cho phép truy cập bên dưới hệ điều hành Đối tượng Shell đại
diện cho một cửa sổ hiển thị ở những hệ điều hành khác nhau
Trang 31- Hiệu năng cao, tốc độ thực thi nhanh do tận dụng được các thành phần
của hệ điều hành
Nhược điểm:
- API không rõ ràng, tài liệu ít và không được hệ thống.
- Các widget (là các control trên giao diện) mặc định không linh động,
khả năng tùy biến, kế thừa kém
- Do sử dụng các thành phần hệ thống nên Java JVM không thể theo dõi
và dọn dẹp chúng ở một thời điểm phù hợp Vì vậy, cần giải phóng
tường minh các loại tài nguyên như Color, Font, Image
- Chỉ hỗ trợ những hệ điều hành nhất định Tuy nhiên hiện tại SWT đã
hỗ trợ khá nhiều dòng hệ điều hành như Windows, macOS, một số
dòng Linux,
3.5 Tổng quan về NetBeans IDE 8.2
3.5.1 Giới thiệu phần mềm NetBeans
Đây là ứng dụng tích hợp đầy đủ tính năng để tạo ra các sản phẩm liên quan
đến ứng dụng web Nó là một công cụ hỗ trợ lập trình viết mã code miễn
phí được cho là tốt nhất hiện nay Hơn nữa, các lập trình viên phát triển
Java chuyên sử dụng nó đồng thời nó có thể hỗ trợ bất kì ngôn ngữ lập trình
nào Nó được ưa chuộng bởi hỗ trợ đa ngôn ngữ khác nhau, nhiều chức
năng tùy chỉnh, sửa đổi thuận tiện cho người dùng Đây là sản phẩmcủa
công tySun Microsystemsđang phát triển mạnh và có gần 100 đối tác trên
toàn thế giới Ngoài ra, Netbean được viết bằng ngôn ngữ Java và có thể
chạy êm trên hầu hết các hệ điều hành hiện nay như là: Windows, Linux,
NetBean IDE là môi trường phát triển rất cần thiết cho các nhà phát triển
phần mềm Bởi lẽ nó là một mã nguồn mở cung cấp các tính năng cần thiết
nhất để tạo ra các ứng dụng web, thiết bị di động, desktop Có thể khẳng
định đây là phần mềm hỗ trợ soạn thảo ngôn ngữ lập trình tốt bậc nhất hiện
nay
Tính năng mới cập nhật của NetBean IDE 8.2 Các chuyên viên luôn
Trang 32nghiên cứu không ngừng nâng cấp, cải tiến để mang tới cho người dùng
những điều mới mẻ Và đây là công cụ dành cho dân IT, nó không
những hỗ trợ ECMAScript thử nghiệm 7 mà còn nâng cao
HTML5/JavaScript
Đặc biệt, phần mềm này cải tiến các công cụ soạn thảo Java và Profiler
cũng như nâng cao ngôn ngữ lập trình C / C ++
NetBeans IDE là một công cụ hỗ trợ lập trình viết mã code miễn phí được
cho là tốt nhất hiện nay, được sử dụng chủ yếu cho các lập trình viên phát
triển Java tuy nhiên phần mềm có dung lượng khá là nặng dành cho các
máy cấu hình có RAM, CPU tương đối cao để vận hành
NetBeans IDE là môi trường phát triển tích hợp và cực kỳ cần thiết cho các
lập trình viên, công cụ này có thể hoạt động tốt với rất nhiều nền tảng hệ
điều hành khác nhau như Linux, Windows, MacOS, là một mã nguồn mở
cung cấp các tính năng cần thiết nhất nhăm tại ra các ứng dụng web, thiết bị
di động, desktop
NetBeans IDE hỗ trợ rất nhiều những ngôn ngữ lập trình như Python,
Ruby, JavaScript, Groovy, C / C + +, và PHP
Qua nhiều phiên bản cũ, nay công cụ lập trình Neatbeans IDE đã cập nhât
lên phiên bản 8.2 mới nhất có rất nhiều thay đổi và nâng cấp so với các
phiên bản cũ hơn có thể kể đến như:
- Nâng cao ngông ngữ lập trình C và C++
- Nâng cấp, cải tiến các công cụ soạn thảo Profiler và Java
- Hỗ trợ Docker, PHP 7
- Nâng cấp, cải tiến HTML5 và Javascript
- ECMAscript 6 và hỗ trợ thử nghiệm ECMAscript 7
Để có thể cài đặt được NeatBeans IDE các bạn phải cài đặt và cấu hình sẵn
JDK trong máy thì mới cài đặt được NeatBean IDE được chia thành nhiều
gói khác nhau để người dùng có thể tải về từng phần, tiết kiệm dung lượng,
tùy theo nhu cầu của mình
Giống với Notepad++, NeatBean IDE có gợi ý cú pháp khá tốt, và còn
nhiều tính năng khá thú vị như tự đông căn chỉnh mã nguồn, Remote FTP,
Trang 33SVN Chính vì thế, nó được xem là môi trường phát triển không thể bỏ
qua cho các lập trình viên
3.5.2 Ưu điểm phần mềm NetBeans
NetBeans IDE sở hữu giao diện được trực quan cho phép bạn kéo và thả
các thành phần cần thiết vào một khung hình đồng thời có thể chỉnh sửa
văn bản trực tiếp tại chỗ Nó cũng là phiên bản dành cho các ngôn ngữ lập
trình hiện đại như Python, Ruby, JavaScript, Groovy, C / C ++ Ngoài ra, nó
tạo liên kết với các bộ máy thông tin lớn như Amazon, Facebook, Google
và các trang web phổ biến hiện nay Nhờ đó, mà các thao tác hay tác vụ
được nhẹ nhàng, đơn giản hơn Thêm vào đó, phần mềm còn cung cấp
chức năng chỉnh sữa mã nguồn, hiển thị các đối tượng trong ngôn ngữ lập
trình dưới dạng một pop-up Nó cũng hỗ trợ gỡ lỗi trên máy chủ thuộc hệ
thống mạng nội bộ và từ xa NetBean IDE nay đã bổ sung các tính năng
mới như tìm kiếm nhanh hay tự động biên dịch, hỗ trợ cho web framework
Từ khi ra đời cho đến bây giờ NetBean IDE đã thu hút sự quan tâm của
nhiều người và là phần mềm hỗ trợ lập trình, viết code được đánh giá là tốt
nhất hiện nay
Nếu bạn là một lập trình viên thì sẽ rất cần nó để phát triển các ứng dụng
trên nền tảng Java hơn thế phù hợp trên các máy có cấu hình
có RAM, CPU tương đối cao.Với lập trình PHP thì bạn hãy tải gói HTML 5
& PHP để máy tính vẫn có thể chạy êm mượt và tốc độ cao hơn, nó có gợi
ý cú pháp khá tốt, và còn nhiều tính năng khá thú vị như tự động căn chỉnh
mã nguồn, là môi trường phát triển không thể bỏ qua cho các lập trình viên
Để soạn thảo văn bản lập trình hiệu quả thì đây quả là sự lựa chọn thông
minh, hoàn hảo
3.5.3 Các tính năng của NetBeans
- Hỗ trợ nhiều loại ngôn ngữ lập trình
- Chỉnh sửa mã nguồn thông minh
- Giao diện trực quan, dễ thao tác, sử dụng
- Là một công cụ lập trình phần mềm máy tính hoặc phần mềm trên
các thiết bị di động
- Gỡ lỗi mạng nội bộ và từ xa
Trang 34- Thử nghiệm tính năng xây dựng giao diện đồ họa.
- Tính năng QuickSearch (Tìm kiếm nhanh), tự động biên dịch, hỗ trợ
các Framework cho website, trình ứng dụng máy chủ GlassFish và
cơ sở dữ liệu
Chương 4: XÂY DỰNG VÀ QUẢN LÝ GIAO TÁC
4.1 Function
4.1.1 Function trong Oracle
Hàm là một chương trình con có giá trị trả về Hàm và thủ tục giống nhau,
chỉ khác nhau ở chỗ hàm thì có mệnh đề Return
Cú pháp:
CREATE OR REPLACE FUNCTION tên_hàm
[(argument1 [, argument2, ])] RETURN datatype
Trang 35Chú ý khi tạo store procedure:
- Không được dùng varchar2(n) trong đối số truyền vào (argument), kiểu dữ
liệu trong đối số truyền vào phải là không rang buộc n
- Argument được xác định bởi:
Tên_tham số_truyền_vào [IN | OUT |I N OUT] kiểu_dữ_liệu[{:=|
Nội dung: tính tiền phạt của độc giả
Tham số đầu vào: ma, tien
Tham số đầu ra: dem
Mã SQL:
CREATE OR REPLACE FUNCTION TINH_PHAT (MA IN
QTMUON.MADOCGIA%TYPE, TIEN IN NUMBER)
RETURN NUMBER
IS
DEM NUMBER:=0;
Trang 36TEMP QTMUON%ROWTYPE;
PHAT NUMBER:=0;
TRADAY DATE;
HANDAY DATE;
CURSOR CUR IS SELECT NGAYHETHAN, NGAYTRA FROM QTMUON
WHERE MA=MADOCGIA and NGAYHETHAN < SYSDATE AND
TRANGTHAI='phat';
BEGIN
OPEN CUR;
LOOP
FETCH CUR INTO HANDAY, TRADAY;
EXIT WHEN CUR%NOTFOUND;
IF(TRADAY IS NULL) THEN
4.2.1 Store procedure trong Oracle
Thủ tục là một chương trình con để thực hiện một hành động cụ thể nào đó
Hàm và thủ tục giống nhau, khác nhau ở chỗ hàm thì có mệnh đề return
Stored procedure giúp giảm thời gian giao tiếp giữa các ứng dụng với hệ
quản trị, bởi vì thay vì gửi nhiều câu lệnh dài thì ta chỉ cần gọi tới một thủ
tục và trong thủ tục này sẽ thực hiện nhiều câu lệnh SQL
Trang 37Stored procudure sẽ giúp các ứng dụng nhìn minh bạch hơn, nghĩa là khi ta
định nghĩa các thao tác xử lý vào một Stored thì công việc của các ngôn
ngữ lập trình khác chỉ quan tâm đến tên thủ tục, các tham số truyền vào chứ
không cần biết nó thực hiện như thế nào Mỗi thủ tục sẽ có các mức độ truy
cập, nghĩa là ta có thể cấp quyền sử dụng cho một User nào đó trong hệ
quản trị
Stored procedure cũng có một số nhược điểm Nếu tạo ra quá nhiều
Procedure thì hệ quản trị sẽ sử dụng bộ nhớ để lưu trữ các thủ tục này khá
nhiều Ngoài ra nếu thực hiện quá nhiều xử lý trong mỗi thủ tục thì đồng
nghĩa với việc CPU sẽ làm việc nặng hơn
Chú ý khi tạo store procedure:
- Không được dùng varchar2(n) trong đối số truyền vào (argument), kiểu dữ
liệu trong đối số truyền vào phải là không rang buộc n
- Argument được xác định bởi:
Tên_tham số_truyền_vào [IN | OUT |I N OUT] kiểu_dữ_liệu [{:=| DEFAULT
value}]
4.2.2 Transaction trong Oracle
Transaction là một module dùng để xử lý những tập hợp truy vấn có liên
quan đến nhau, và thường được dùng nhất là trong những giao dịch đòi hỏi
phải có kết quả chính xác, đó chính là lý do tại sao người ta lấy tên là
transaction (giao dịch)
Trang 38Transaction (giao tác) là một nhóm câu lệnh SQL, xử lý có tuần tự các
thao tác trên cơ sở dữ liệu nhưng được xem như là một đơn vị duy nhất Vì
vậy, một transaction sẽ không được coi là thành công nếu như trong quá
trình xử lý có một thao tác trong nó không được hoàn thành Trường hợp
này, transaction được coi là thất bại
Các tính chất của transaction:
- Atomicity (tính nguyên tố): Đảm bảo rằng tất cả các hoạt động trong
phạm vi một đơn vị làm việc là thành công hoàn toàn Ngược lại,
transaction sẽ bị hủy Đề tài Quản lý Rạp chiếu phim GVHD: ThS Đỗ
Thị Minh Phụng 37 ngay tại điểm lỗi Và các các họat động trước sẽ
được quay lại đúng trạng thái trước đó của nó
- Consistency (tính nhất quán): Đảm bảo cơ sở dữ liệu thay đổi đúng trạng
thái khi khi transaction kết thúc thành công
- Isolation (tính độc lập): Cho phép transaction hoạt động một cách độc
lập và “trong suốt” (transparent) với các transaction khác
- Durability (tính bền vững): Đảm bảo kết quả hoặc tác động của
transaction vẫn luôn tồn tại kể cả khi hệ thống bị lỗi
Transaction được bắt đầu bằng câu lệnh START TRANSACTION; hoặc
BEGIN WORK; và kết thúc khi có lệnh COMMIT, hoặc ROLLBACK Lệnh
COMMIT xác nhận việc thực hiện giao tác thành công và ghi nhận các thay
đổi Lệnh ROLLBACK khôi phục lại các thay đổi
Các trạng thái của giao tác:
- Active: Ngay khi bắt đầu thực hiện thao tác đọc/ghi
- Partially commited: Sau khi lệnh thi hành cuối cùng thực hiện
- Failed: Sau khi nhận ra không thể thực hiện các hành động được nữa
- Aborted: Sau khi giao tác được quay lui và CSDL được phục hồi về trạng
thái trước trạng thái bắt đầu giao dịch (bắt đầu lại giao tác hay hủy giao tác)
- Commited: Sau khi mọi hành động hoàn tất thành công
- Sơ đồ trạng thái của giao tác:
Trang 39Cách khai báo Transaction trong Oracle:
// Khai báo bắt đầu transaction
Transaction bắt đầu khi câu lệnh SQL đầu tiên được thực thi, bao
gồm DDL, DML hoặc lệnh SET TRANSACTION
TRANSACTION NAME: Đặt tên cho transaction, bắt đầu
transasction
SET TRANSACTION NAME (trước lệnh này nên có 1 lệnh
COMMIT)
Khi 1 transaction mới bắt đầu, hệ quản trị oracle sẽ gán nó vào undo
data segment (ghi nhận lại các thao tác của transaction trước khicommit, để có thể rollback khi có lỗi)
Trang 40- Kết thúc transaction:
Transaction có thể kết thúc trong nhiều trường hợp
Gặp lệnh COMMIT hoặc ROLLBACK mà không có savepoint
Gặp các câu lệnh DDL như create, drop, rename, alter
User ngắt kết nối đến hệ quản trị đột ngột, transaction sẽ tự độngcommit
Các ứng dụng đang kết nối đến hệ quản trị bị dừng đột ngột,transaction sẽ tự động rollback
1 Transaction đang thực thi là 1 Transaction đã bắt đầu nhưngchưa được COMMIT hoặc ROLLBACK
Transaction được bắt đầu bằng câu lệnh START TRANSACTION; hoặcBEGIN WORK; và kết thúc khi có lệnh COMMIT, hoặc ROLLBACK
Lệnh COMMIT xác nhận việc thực hiện giao tác thành công và ghi nhậncác thay đổi Lệnh ROLLBACK khôi phục lại các thay đổi
4.2.3 Danh sách stored procedure
1 count_doc_gia v_ngay count_docgia Biết được số
lượng độc giả mượn sách trong một ngày cụ thể được nhập vào
on Số lượng sách trong thư viện
đang ở trạng thái mượn
3 xem_thong_tin_
sach
in_masach v_manhap,
v_manxb, v_tensach, v_tacgia, v_namxb, v_trangthai, v_ngonngu, v_tentheloai,
Xem thông tin sách khi nhập vào mã sách cần xem