1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ ÁN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆUORACLE

105 725 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 105
Dung lượng 6,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

Mụ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 3

3.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 4

5.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 5

Phụ 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 6

LỜ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 7

NHẬ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 9

Chươ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 11

Tiế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 15

Qusnr 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 16

THETHUVIEN (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 17

Tâ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 18

1 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 20

8 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 21

2 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 22

STT 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 23

3 MATHUTHU CHAR (5) Khác null Mã thủ thư

sách

hết hạn thờigian mượn

Ý nghĩa/Gh

Trang 24

Chươ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 29

Xử 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 32

nghiê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 33

SVN 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 35

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[{:=|

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 36

TEMP 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 37

Stored 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 38

Transaction (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 39

Cá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

Ngày đăng: 14/09/2019, 07:58

TỪ KHÓA LIÊN QUAN

w