Việc xây dựng cơ sở đữ liệu cho tiệm bánh QKN có những mục tiêu cụ thé sau: o_ Lưu trữ Và quản lý dữ liệu một cách hiệu quả: Cơ sở dữ liệu Oracle cung cấp một hệ thống lưu trữ và quản l
Trang 1
Bộ Giáo Dục Và Đào Tạo
Trường Đại Học Ngoại Ngữ - Tin Học Thành Phố Hỗ Chí Minh
Khoa Công Nghệ Thong Tin
BAO CAO MON CAC HE QUAN TRI CO SO DU LIEU
DE TAI:
XAY DUNG HE THONG CSDL QUAN LY DON HANG TIEM
BANH BANG ORACLE Giang Viên Hướng Dẫn : Nguyễn Thanh Trung
Thành Viên : Hoang Anh Khoa — MSSV: 21DH113773
Nguyễn Trần Kim Ngân — MSSV: 21DH111195
Trương Thị Diễm Quỳnh - MSSV: 21DH111578
TP Hồ Chí Minh, tháng 3 năm 2024
Trang 2
Bo Giao Duc Va Dao Tao Trường Đại Học Ngoại Ngữ - Tin Học Thành Phố Hỗ Chí Minh
Khoa Công Nghệ Thong Tin
BAO CAO MON CAC HE QUAN TRI CO SO DU LIEU
DE TAI:
XAY DUNG HE THONG CSDL QUAN LY DON HANG TIEM
BANH BANG ORACLE Giang Viên Hướng Dẫn : Nguyễn Thanh Trung
Thành Viên : Hoang Anh Khoa — MSSV: 21DH113773
Nguyễn Trần Kim Ngân — MSSV: 21DH111195
Trương Thị Diễm Quỳnh - MSSV: 21DH111578
TP Hồ Chí Minh, tháng 3 năm 2024
Trang 3LỜI CẢM ƠN
Với những tình cảm chân thành, chúng em xin bày tỏ lòng biết ơn đến quý thầy giáo, cô giáo trong khoa Công Nghệ Thông Tin trường Đại học Ngoại Ngữ - Tin học TP HCM: đã tận tình giảng dạy, trang bị, cung cấp cho chúng em những kiến thức nền tảng, chuyên môn cần thiết giúp chủng em hiệu sâu hơn về lĩnh vực nghiên cứu
Đặc biệt, chúng em xin bày tỏ lòng biết ơn đối với giảng viên Nguyễn Thanh Trung đã trực tiếp tận tình chỉ bảo, hướng dẫn và giúp đỡ chúng em trong suốt quá trình nghiên cứu và thực
hiện đề tài Cuối cùng nhóm xin gửi lời cảm ơn đến bạn bè, gia đình đã động viên cô vũ, đóng
góp ý kiến cho chúng em trong suốt quá trình học cũng như thời gian làm đề tài, giúp chúng
em hoản thành đề tải
Mặc dù đã cô gắng hoàn thành tốt công việc được phân công trong phạm vi và khả năng cho phép nhưng chắc chắn không thê tránh khỏi những thiếu sót Rất mong nhận được sự góp ý
của các thầy cô để đề tài được hoàn chỉnh hơn, đồng thời bố sung những kinh nghiệm cho
chúng em trên con đường sắp tới
Xin chan thanh cam on!
Trang 4Giới thiệu về doanh nghiỆp -:- 5c 2223132123 9331 1532318218151 2111111511111 10
Co CAU £6 on ‹oE:iiaẳađẳđaiẳaẳđdđdadaiiddidd3ỶỶẮ ll 1.2 Đánh giá hệ thống cũ và những vấn đề phải giải quyết ở hệ thông mới 12
1.3 Lý do đề sử dụng hệ quản trị Orace ¿+ 2c tt S232 xxx EExekexsrrrrrer l6
CHƯƠNG 2: CƠ SỞ LÝ THUYÊT tt 1 11331 E1 E3 E11 EEEEEEEEEExTk Triệu 17
2.2 Quản trị User và Profile trong OracÌe cv kkhhhret 20 2.3 Ngan ngtt 6AHiiiiđiđáiAi-'ÝẢ&Ả 21 2.44 — Cơ chế sao lưu và phục hồi dữ liệu sau sự cố OracÌe các cccsknnetsesekrrrex 22
CHUGNG 3: PHAN TICH HE THONG cccccccsscseccsscscssecstesecsecsssssecsescessecsssesaseneassnsnes 26 3.1 PHAN TICH CHUC NANG wiiccccccccscscccsscssescsesecsssesecstsesessecassececstcassnsesssasaneeatsnenees 26
3.1.1 Vẽ mô hình phân cấp chức năng của hệ thông (sơ đồ BFD) 26
3.1.2 Mô tả chỉ tiết từng chức năng St St 22v ng ưet 26 3.1.3 Các quy định nghiệp vụ/các ràng buộc toàn vẹn dữ liệu có liên quan 27
3.2 PHÂN TÍCH DỮ LIỆU St SE Sv HT HH ng tHnrnytưết 28 3.2.2 Mô hình thực thê kết hợp (ERD) ¿(2 St 22x23 tEEESEESEErkekexskerrerrrea 28 3.2.3 Cac sơ đồ luồng đữ liệu DED 2: St 12v 21 E142 511 18151111111 xErrei 30 CHƯƠNG 4: THIẾT KÉ VÀ CÀI ĐẶT HỆ THÔNG ¿- ¿c5 2e sexserrrerrrrrxrd 31
4.1 Mô hình dữ liệu ¿ch TEEEHHTTHH HH TT HH TH HH HH HH Hư g 31
4.L.1 Luroc d6 quan hé (80 d6) w.cecccccscscccscsesesesecsesesesecacecsssesasesassesesesassesesesecasseseneeaeaees 31
Trang 543.2 Thiết kế và cài đặt các Stored Procedure/Function cần thiết cho hệ thống _ 44
4.3.2 Cai dat cdc Trigger 0 ieee errr rr rrr i KT 1k kh 50 4.3.3 Thiết kế và cài đặt các giao tac (Transaction) .c.cccccecscscscsssesssscsescsesecatecsssesees 54
4.3.4 Minh hoa van dé xtr ly déng thoi o ccccccccecesesesscecscseetecsesesesesacseseseecaeeesees 55
4009.0001008 61
PHU LU Coie EE EE EEE IOI EE EIU EEE EIU EE EE En iran aaneeeesaaias 63 Các procedure khác: - tt rrr i Tnhh ng KĐT TT 00 63 Bảng phân công công vIỆC: nh Khen kh kh 67
Trang 6DANH MUC BANG BIEU
Bang 1:
Bang 2:
Bang 3:
Bang 4:
Bang 5:
Bang 6:
Bang 7:
Bang 8:
Bang 9:
Bang 10: Bang Phiéu Giao Hang
DANH MUC BANG BIEU Mô tả chỉ tiết chức năng
Các ràng buộc toan ven
; 0 0h On
u86: Jố ni 1n
n8 ni 8
u80 8 ẽ
su no 8 "
0580 f0 8) nh .ẢẢ
Bảng Chỉ tiết đơn hàng
Bảng 11: Procedure Select banh
Bang 12: Procedure Them Banh MoI -c Sex Bang 13: Procedure Update _banh <5 se Bang 14: Procedure Delete banh - 5 1n TS TH HT HH TH HT nh Bang 15: Procedure tinh tiền 1 đơn hảng 5552 SE St Set v33 3E xxx TH HH ng cư Bảng 16: Update thành tiền của các sản phẩm trong CTDonhang Bang 17: Procedure tinh sé don hang ban trong ngay bang CURSOR 2ì co cv serrerrrrree 48 Bang 18: Procedure xuất số tiền bản được của các đơn hàng trong Wgay .c.cscsscsescsesescscsescsseceenesescseseecaes 49 Bang 19: Trigger không cho cập nhật, msert hay update sau giờ hành chính << 55s <+<<ccs+ 50 Bảng 20: Trigger không cho trùng mã bánh - - - - 55 31x 3x tt TH HH HH KH 50 Bang 21: Trigger khong cho tring tên 1 0 51
Bang 22: Trigger lưu lịch sử sửa đôi Bảng 23: Bảng Phân tích tình huống Bang 24: Cac Procedure khác .-
Bang 25: Phan Cong 00:0 ốố ốố
Trang 7
Kiến trúc của OTracl€ - ác cxcsn xnxx SH TT TT TT TH TH TT Tà Hàn Hà TT TT TT Tà Hàn Hà Hàn rêi 17
System Global Area
Trang 8LOI MO DAU
LOI MO DAU
1 Giới thiệu đề tài
- _ Giới thiệu doanh nghiệp QKN
Tiệm bánh QKN là một doanh nghiệp chuyên kinh doanh bánh ngọt và đồ uỗông Tiệm được thành lập vào năm và có trụ sở chính tại Thành phô Hồ Chí Minh và hiện đang có 3 chỉ
nhánh tại các quận trung tâm thành phô
- - Mục tiêu xây dựng cơ sở đữ liệu
Mặc dù đã có những thành công nhất định, nhưng doanh nghiệp đối mặt với thách thức
trong viéc quan ly va theo déi dữ liệu của khách hàng Điều này có thể dẫn đến sự mat mát cho doanh nghiệp và giảm sức cạnh tranh với các đối thủ trên thị trường
Nhằm tối ưu hóa doanh nghiệp và đảm bảo khai thác hết khá năng mà dữ liệu khách hàng
có thê mang lại, doanh nghiệp đã quyết định triển khai một hệ thống cơ sở dữ liệu Việc
xây dựng cơ sở đữ liệu cho tiệm bánh QKN có những mục tiêu cụ thé sau:
o_ Lưu trữ Và quản lý dữ liệu một cách hiệu quả: Cơ sở dữ liệu Oracle cung cấp một
hệ thống lưu trữ và quản lý dữ liệu mạnh mẽ, giúp doanh nghiệp lưu trữ và quản
lý dữ liệu một cách hiệu quá Điều này giúp doanh nghiệp tiết kiệm thời gian và chi phí, đồng thời đảm bảo tính an toàn và bảo mật của dữ liệu
o_ Tăng cường khả năng truy xuất dữ liệu: Cơ sở đữ liệu Oracle cung cấp các công
cụ và tính năng truy xuất dữ liệu mạnh mẽ, giúp doanh nghiệp truy xuất dữ liệu một cách nhanh chóng và dễ dàng Điều này giúp doanh nghiệp đưa ra các quyết định kinh doanh hiệu quả hơn
o_Nâng cao hiệu quả quản lý: Cơ sở đữ liệu Oracle cung cấp các công cụ va tính năng quản lý mạnh mẽ, giúp doanh nghiệp quản lý các hoạt động kinh doanh một cách hiệu quả hơn Điều này giúp doanh nghiệp nâng cao hiệu quả hoạt động và
tăng lợi nhuận
- _Ý nghĩa của đề tài
Trang 9Đề tài "Xây dựng hệ thống cơ sở dữ liệu quản lý tiệm bánh bằng Oracle" mang lại nhiều ý nghĩa quan trọng trong việc cải thiện hiệu suất và hiệu quả quản lý kinh doanh cho doanh nghiệp QKN Việc xây dựng cơ sở dữ liệu sẽ giúp tiệm bánh nâng cao hiệu quả quan lý và phát triển kinh doanh Việc xây dựng cơ sở dữ liệu bằng Oracle mang lại nhiều lợi ích cho doanh nghiệp, bao gồm:
©_ Lưu trữ Và quản lý thông tin đơn hang
©_ Lưu trữ Và quản lý thông tin khách hàng
©_ Lưu trữ và quản lý thông tin sản phẩm
Nhìn chung, việc xây dựng cơ sở dữ liệu bằng Oracle là một giải pháp hiệu quả giúp doanh nghiệp nâng cao hiệu quả quản lý và phát triển kinh doanh
Với những ý nghĩa trên, đề tài "Xây dựng hệ thống cơ sở dữ liệu quản lý tiệm bánh bằng
Oracle” la một đê tài có tính thực tiên cao va can được nghiên cứu và triên khai thực hiện
- _ Đối tượng sử dụng: Các doanh nghiệp kinh doanh các mặt hàng về thực phẩm va
đồ uống, bao gồm các chủ doanh nghiệp, nhà quản lý bán hàng
Trang 10CHUONG I : KHAO SAT HIEN TRANG VÀ XÁC DINH YEU CAU
CHUONG 1: KHAO SAT HIEN TRANG VA XAC DINH YEU
CAU
1.1 Khao sat hién trang
Giới thiệu về doanh nghiệp
bánh bò thốt nốt,, ), bánh ngọt hiện đại (bao gồm các loại như bánh tiramisu, bánh mousse,
tart trứng, crossaint ), các loại bánh kem trang trí theo yêu cầu
- - Nghiệp vụ của doanh nghiệp
Tiệm bánh QKN là một doanh nghiệp chuyên kinh doanh bánh ngọt và đồ uống Các nghiệp
vụ chính của doanh nghiệp bao gồm:
« - Nghiệp vụ kinh doanh: Bao gồm các hoạt động như tiếp nhận đơn hàng, xử lý đơn hàng, chăm sóc khách hàng,
« Nghiệp vụ sản xuất: Bao gồm các hoạt động như mua nguyên vật liệu, sản xuất bánh, đóng gói bánh,
« Nghiệp vụ kho vận: Bao gồm các hoạt động như nhập kho, xuất kho, bảo quản
Trang 11Trong đó, nghiệp vụ kinh doanh là nghiệp vụ quan trọng nhất, quyết định sự thành bại của doanh nghiệp Nghiệp vụ kinh doanh bao gồm các hoạt động sau:
« Tiếp nhận đơn hàng: Khách hàng có thể đặt hàng trực tiếp tại cửa hàng, qua điện thoại hoặc qua các kênh trực tuyến như website, ứng dụng điện thoại
+ Xử lý đơn hàng: Nhân viên của tiệm sẽ tiếp nhận đơn hàng, kiểm tra thông tin
khách hàng và sản phẩm, sau đó tiễn hành xác nhận đơn hàng
e Chuan bị sản pham: Nhân viên sản xuất của tiệm sẽ chuẩn bị sản phẩm theo đơn
hàng
« _ Giao hàng: Nhân viên giao hàng của tiệm sẽ giao sản phâm đến cho khách hàng
Đề nâng cao hiệu quả hoạt động nghiệp vụ kinh doanh, tiệm bánh QKN cần xây dựng một
hệ thống cơ sở dữ liệu quán lý đơn hàng hiệu quả Hệ thống cơ sở dữ liệu này sẽ giúp lưu trữ và quản lý thông tin khách hàng, thông tin sản phẩm, thông tin đơn hàng một cách hiệu quả Điều này giúp tiệm bánh QKN nâng cao hiệu quả quản lý và kinh doanh
Cơ cầu tô chức
Phong kinh Phong san Phong nhan Phòng kế toán Phòng kho
Tiệm bánh QKN là một doanh nghiệp nhỏ, do đó cơ cầu tô chức của tiệm khá đơn giản,
bao gôm các bộ phận sau:
¢ Quan ly chung: Ban quản lý là cơ quan lãnh đạo cao nhất của tiệm bánh QKN
Ban giảm đốc có trách nhiệm hoạch định chiến lược, quan ly chung hoạt động của tiệm
11
Trang 12CHUONG I : KHAO SAT HIEN TRANG VÀ XÁC DINH YEU CAU
kinh doanh của tiệm Phòng kinh doanh có trách nhiệm tiếp nhận đơn hàng, xử lý đơn hàng, chăm sóc khách hàng
e Phong san xuat: Phong san xuất là bộ phận chịu trách nhiệm sản xuất bánh ngọt và
đồ uỗng của tiệm Phòng sản xuất có trách nhiệm dam bảo chất lượng sản phẩm, đáp ứng nhu cầu của khách hàng
« Phong kế toán: là bộ phận chịu trách nhiệm về các hoạt động kế toán, tài chỉnh của
doanh nghiệp, phòng kề toán có vai trò quan trọng trong việc vận hành doanh nghiệp
một cách hiệu quả
« _ Phòng kho: Chịu trách nhiệm quán lý nguyên vật liệu được nhập vào và số lượng nguyên liệu còn lại trong kho
1.2 Đánh giá hệ thống cũ và những vấn đề phải giải quyết ở hệ thống mới
Đánh giá hệ thống cũ Excel: doanh nghiệp sử dụng hệ thống cũ là Excel đề lưu trữ dữ
liệu vì khi đó dữ liệu cần phải lưu trữ chưa nhiều như khi mở thêm hai chỉ nhánh mới Sau
khi mở hai chỉ nhánh mới, số lượng dữ liệu cần phải lưu trữ tăng lên gấp ba so với ban đầu dẫn đến việc sử dụng Excel đề lưu trữ dữ liệu không còn phụ hợp Việc xây dựng cơ sở dữ
liệu mới là việc cần thiết đê có thê phát triển doanh nghiệp
Excel là một phần mềm bảng tính phô biến, được sử dụng rộng rãi trong các doanh nghiệp,
tô chức đề lưu trữ và xử lý dữ liệu Tuy nhiên, Excel cũng có một số hạn ché, đặc biệt là
trong việc lưu trữ và truy xuất dữ liệu
Về lưu trữ dữ liệu, Excel có thé lưu trữ dữ liệu dưới dạng bảng tính Bảng tính Excel có
dung lượng giới hạn, chỉ khoảng 1 triệu ô Do đó, đối với những dữ liệu lớn, Excel có thê
không đáp ứng được nhu cầu lưu trữ Ngoài ra, bảng tính Excel cũng không có khả năng lưu trữ dữ liệu theo cấu trúc phân cấp, khiến cho việc quản lý và tìm kiếm dữ liệu trở nên khó khăn
12
Trang 13Nếu doanh nghiệp có thêm 100.000 khách hàng, thì dung lượng lưu trữ cần thiết sẽ tăng
thêm 10.000.000 ô Điều này có thể khiến cho báng tính Excel trở nên quá tải và hoạt động chậm chạp Ngoài ra, bang tính Excel cũng không có khả năng lưu trữ dữ liệu theo cầu trúc phân cấp Điều này khiến cho việc quản lý và tìm kiếm dữ liệu trở nên khó khăn Ví dụ, một doanh nghiệp có thê có nhiều phòng ban, mỗi phòng ban có nhiều nhân viên Nếu lưu trữ thông tin nhân viên theo cau trúc phân cấp, thì việc tìm kiếm thông tin nhân viên sẽ trở nên dễ dàng hơn
Về truy xuất dữ liệu, Excel cung cấp một số hàm và công cụ đề truy xuất dữ liệu Tuy nhiên, các hàm và công cụ này có thê phức tạp và khó sử dụng, đặc biệt là đôi với những người không có kiến thức về Excel Ngoài ra, Excel cũng không có khả năng truy xuất dữ liệu từ các nguồn khác nhau, khiến cho việc tích hợp đữ liệu trở nên khó khăn Nếu muốn
truy xuất dữ liệu khách hàng, sản phẩm và bán hàng đề phân tích, doanh nghiệp cần phải
thực hiện các thao tác thủ công, khiến cho quá trình phân tích dữ liệu trở nên tốn thời gian
Và Công sức
Các vấn đề cần phải giải quyết của hệ thống mới Oracle: Dựa trên những hạn chế của
hệ thống cũ Excel, hệ thống mới Oracle cần phải giải quyết được các vấn đề sau
«Ö - CÓ khả năng lưu trữ dữ liệu lớn
« - CÓ khả năng lưu trữ dữ liệu theo cấu trúc phân cấp
« - CÓ khả năng truy xuất dữ liệu dé dang
« - Có khả năng tích hợp dữ liệu từ các nguồn khác nhau
Oracle là một hệ thống cơ sở dữ liệu quan hệ (RDBMS) Oracle có khả năng lưu trữ dữ
liệu lớn, lên đến hàng terabyte hoặc petabyte Ngoài ra, Oracle cũng có khá năng lưu trữ
dữ liệu theo cầu trúc phân cấp, giúp cho việc quản lý và tìm kiếm dữ liệu trở nên dễ dàng
Oracle cũng cung cấp một bộ công cụ truy xuất dữ liệu mạnh mẽ, giúp cho việc truy xuất
dữ liệu trở nên dễ dàng và hiệu quá Oracle cũng có khả năng truy xuất dữ liệu từ các nguồn
khác nhau, giúp cho việc tích hợp đữ liệu trở nên dễ dang hơn
13
Trang 14CHUONG I : KHAO SAT HIEN TRANG VÀ XÁC DINH YEU CAU
Oracle cũng cung cấp một bộ công cụ truy xuất dữ liệu mạnh mẽ, giúp cho việc truy xuất
đữ liệu trở nên dê dàng và hiệu qua Oracle cting có khả năng truy xuât dữ liệu từ các nguôn
khác nhau, giúp cho việc tích hợp dữ liệu trở nên dễ đàng hơn
Với những ưu điểm trên, Oracle có thẻ giải quyết được các vấn đề của hệ thông cũ Excel,
giúp cho doanh nghiệp có thê lưu trữ và truy xuất dữ liệu một cách hiệu quả hơn Hệ thống
cũ Excel có một số hạn chế trong việc lưu trữ và truy xuất dữ liệu Hệ thống mới ©racle có
thê giải quyết được các vấn đề này, giúp cho doanh nghiệp có thê lưu trữ và truy xuất dữ liệu một cách hiệu quả hơn
1.2 Mô tả nội dung cần giải quyết
Phạm vi đề tài sẽ giải quyết
Hệ thống Oracle của tiệm bánh sẽ giải quyết được những vấn đề sau
- Quan ly san pham
- _ Quản lý khách hàng
© Lưu trữ thông tin khách hàng
- - Báo cáo thống kê
©
Quy trình
Báo cáo doanh thu theo ngày
Bước I: Xác định nhu cầu:
Trang 15" Quan lý khách hang
" Bao cao thu chi
©_ Phi chức năng:
=» Bao mat dt liéu
= Hiéu suat hé thong
« Kha nang mo rong
1 Khối lượng dữ liệu
Trang 16CHUONG I : KHAO SAT HIEN TRANG VÀ XÁC DINH YEU CAU
1 Xung đột dữ liệu: Khi nhiều người truy cập và sửa đôi dữ liệu cùng lúc, có
thê xảy ra xung đột dữ liệu
2 Giảm hiệu năng: Khi có quá nhiều truy cập cùng một lúc có thể giảm hiệu
năng của hệ thông
3 Kho khan trong việc đảm bảo tính toàn vẹn của đữ liệu: Dữ liệu có thé bị thay
đôi bởi nhiều người cùng I lúc, khó khăn trong việc đảm bảo tính toàn vẹn
của dữ liệu dân đên dữ liệu có thé bi mât hoặc hỏng
4 Deadlock
5 Livelock
1.3 Lý do để sử dung hé quan tri Oracle
Oracle co thé giai quyét các vân đề trên như thê nào:
Vẫn đề về hiệu năng: Oracle có thê giúp tăng tốc độ truy vấn dữ liệu bằng cách
sử dụng các kỹ thuật như phân vùng đữ liệu, chỉ mục và bộ nhớ đệm
Vẫn đề về an toàn dữ liệu: Oracle có thê giúp bảo vệ dữ liệu khỏi truy cập trái phép, sử dụng sai mục đích và rò ri bằng cách sử dụng các kỹ thuật như mã hóa dữ liệu, kiểm soát truy cập và sao lưu dữ liệu
Van đề về truy xuất đồng thời: Oracle có thê giúp xử lý nhiều truy xuất truy cập
dữ liệu cùng lúc mà không ảnh hưởng đến hiệu năng hệ thống bằng cách sử dụng các kỹ thuật như khóa dữ liệu, phân tán dữ liệu và bộ nhớ đệ
16
Trang 17CHUONG 2: CO SO LY THUYET
2.1 Kién tric Oracle
Oracle Database Server Architecture:
- Oracle Database Server
Một cơ sở dữ liệu Oracle bao gồm ít nhất một database instance và một database Database
instance xử lý bộ nhớ và quá trình Multitenant container database bao gồm các tệp vật lý gọi là data ñles Oracle Database cũng sử dụng một số tệp hệ thống cơ sở dữ liệu trong quá
trinh hoạt động của nó
*The multitenant container database (CDB) la mét khdi niém trong Oracle Database ma cho phép nhiều cơ sở dữ liệu (database) hoạt động trên cùng một hạ tầng chia sẻ CDB có thể được xem như một “container” chứa nhiều cơ sở dữ liệu (Pluggable Dafabase - PDB)
Một kiến trúc cơ sở đữ liệu đơn bộ chỉ gom một database instance va mot database Co thể cài đặt nhiều cơ sở dữ liệu đơn bộ trên cùng một máy chu Co cac database instance
riêng biệt cho từng cơ sở dữ liệu Cầu hình này hữu ích đề chạy các phiên bản khác nhau
của Oracle Database trên cùng một máy Bên cạnh đó, một kiến trúc cơ sở dữ liệu Oracle
17
Trang 18CHUONG 2 : CO SO LY THUYET
Real Application Clusters (Oracle RAC) bao gồm nhiều instance chạy trên các máy chủ riêng biệt Tất cá chúng chia sẻ cùng một database Cụm máy chủ xuất hiện như một máy chủ duy nhất ở một đầu, và người dùng cuối và ứng dụng ở đầu kia Cầu hình này được
thiệt kê cho tính săn có cao, khả năng mở rộng và hiệu suat cao
Với Listener, đây là một quá trình của máy chủ cơ sở đữ liệu Nó nhận các yêu cầu từ khách hàng, thiết lập kết nối với database instance và sau đó chuyên kết nổi của khách hàng cho
quá trình máy chủ Listener có thé chạy cục bộ trên máy chủ cơ sở dữ liệu hoặc chạy từ xa Môi trường Oracle RAC điển hình được chạy từ xa
- Oracle Database Instance
Database Server
Database Instance System Global Area (SGA)
+
T
Hinh 3: Oracle Database Instance Một database instance là một tập hợp các câu trúc bộ nhớ quản lý các tệp cơ sở dữ liệu
Ở mức vật lý, một CDB là một tập hợp các tệp trên đĩa được tạo ra bằng cau lénh CREATE
DATABASE Mét CDB bao gém một hoặc nhiều PDB do người dùng tạo ra Mỗi PDB
chứa một tập hợp riêng của các tệp dữ liệu trong tông số các tệp dữ liệu thuộc về CDB Database instance quan ly dữ liệu liên quan đến CDB và các PDB của nó và phục vụ người dùng của chúng Một database instance chứa một tập hợp các quá trinh nén (background processes) và các cầu trúc bộ nhớ trong Oracle Database Các cầu trúc bộ nhớ chính bao
gom Khu vực Hệ thống Toan cuc (SGA — System Global Area) va Khu vyc Toan cuc
18
Trang 19Chương Trình (PGA — Program Global Areas) Các quá trình nền hoạt động trên đữ liệu
được lưu trữ (các tệp dữ liệu) trong cơ sở dữ liệu và sử dụng các cầu trúc bộ nhớ đề thực hiện công việc của chúng Một database Instance chỉ tồn tại trong bộ nhớ
Oracle Database cũng tạo ra các quá trình máy chủ (server processes) để xử lý các kết nối
tới cơ sở dữ liệu thay mặt cho các chương trình khách, và thực hiện công việc cho các
chương trình khách; ví dụ như phân tích cú pháp và chạy các câu lệnh SQL, và truy xuất
và trả kết quả về cho các chương trình khách Các loại quá trình máy chủ này cũng được gọi là các quá trình foreground
- System Global Area
Database Instance System Global Area (SGA)
In-Memory Area > Shared I/O Pool
“‘Memoptimize Pool! /“ padg steams rool
Shared Pool Flashback % >:: - / Log ` Large Poo ;
Hình 4: System Global Area
Là một trong những kiến trúc quan trọng không kém trong hệ thống co sở dữ liệu Oracle, The System Global Area (SGA) là khu vực bộ nhớ chứa đữ liệu và thông tin điều khiển cho một instance của Oracle Database Tat cả các quy trình máy chủ và quá trình nền
sử dụng chung SGA Khi bạn khởi động một mstance cơ sở dữ liệu, lượng bộ nhớ được cấp phát cho SGA sẽ được hiển thị
SGA bao gom các cấu trúc dữ liệu sau:
©_ Shared pool: Lưu trữ các cầu trúc có thể được chia sẻ giữa người dùng, chẳng hạn như cấu trúc từ điển, cấu trúc phân tích cú pháp, cầu trúc bộ nhớ tạm thời và cấu truc redo log
19
Trang 20Large pool: Cung cấp bộ nhớ lớn cho các đổi tượng như User Global Area (UGA),
giao điện Oracle XÃ và các hoạt động L/O lớn
In-Memory Area: Lưu trữ các đối tượng trong bộ nhớ theo định dạng cột Memoptimize Pool: Cung cấp hiệu suất cao và khả năng mở rộng cho các truy van
dựa trên khóa
Shared I/O pool (SecureFiles): Được sử dụng cho các hoạt động 1/O lớn trên các đối tượng SecureFile LOBs
Sfreams pool: Được sử dụng bởi Oracle Streams, Data Pump và các quá trình capture và apply tích hợp GoldenGate
Java pool: Được sử dụng cho toàn bộ mã và dữ liệu Java liên quan đến phiên trong May ao Java (JVM)
Các thành phần tùy chon:
2.2
Flashback buffer: Được str dung cho tinh nang Flashback Database
e Database Smart Flash cache: Cung cấp bộ nhớ cache cấp 2 cho các khối cơ sở dữ
User trong Oracle la mot tài khoản được sử dụng để kết nôi với cơ sở dữ liệu Mỗi user có
một tên duy nhất và được xác thực bằng mật khẩu User có thể sở hữu các đối tượng trong
cơ sở dữ liệu như tables, views, packages, procedures, functions, etc
20
Trang 21User va Schema gần như đồng nhất với nhau Cụ thê, schema là tập hợp các đối tượng
thuộc sở hữu của một user Khi tạo user, một schema có tên tương tự cũng được tạo tự động
Profile :
Profile trong Oracle la m6t tap hop các giới hạn tài nguyên được đặt tên cho việc sử dụng
cơ sở dữ liệu và tài nguyên của hệ thông Nó kiểm soát các hạn chế về tài nguyên cho user như:
- _ Số lượng kết nối đồng thời tôi đa
- _ Thời gian chờ kết nổi tối đa
- - Giới hạn CPU cho mỗi phiên
- _ Giới hạn bộ nhớ cho mỗi phiên
- _ Chính sách mật khẩu (độ dài, thời gian hết hạn, v.v.)
Gián một profile cho user có nghĩa là áp dụng các giới hạn của profile đó cho user Ban co
thé str dụng một profile mac dinh (DEFAULT) hoac tao cac profile tuy chinh
Profile gitp nang cao an toan và hiệu suất của cơ sở dữ liệu bằng cách ngăn chặn user sử dụng quá nhiều tài nguyên
2.3 Ngôn ngữ PL/SỌL
PL ở đây là Procedural Language extensions (phần mở rộng ngôn ngữ thủ tục) Bản than SQL
là cách thức giao tiếp chuẩn để làm việc với các hệ cơ sở dữ liệu RDBMS
PL/SQL là thành phần mở rộng thêm Thành phần này giúp khắc phục một số hạn chế của SQL, bênh cạnh đó PL/SQL cũng cung cấp các giải pháp ngôn ngữ lập trình toàn điện hơn giúp xây dựng các ứng dụng dựa trên hệ cơ sở dữ liệu Oracle Chính bởi mục đích khắc phục một số hạn chế cô hữu của SQL nên PL/SQL là một ngôn ngữ bậc cao
Bản thân PL/SQL là ngôn ngữ sinh ra đề giao tiếp với hệ cơ sở dữ liệu Nên so về hiệu
suất, ở đây chưa bàn tới hiệu suất thực thi vì nó phụ thuộc vào hệ cơ sở đữ liệu
21
Trang 22CHUONG 2 : CO SO LY THUYET
Nếu chỉ so sánh về hiệu suất cách viết, độ dễ đề viết thì PL/SQL hơn hẳn các ngôn ngữ
khác như lava, Python, C++ Mặc dù các ngôn ngữ này đều có thé thao tác với hệ cơ sở dữ liệu thông qua ODBC
Ngoài ra, nếu nói về hiệu suất, PL/SQL cung cấp FORALL, st dung FORALL sé mang lai hiệu suất tốt hơn so với việc thao tác bằng các ngôn ngữ khác
Ưu/ Nhược điểm của PL/SQL
Ưu điểm:
- PL/SQL cung cap hiéu suất tốt hơn
- PL/SQL hé tro Object-Oriented Programming concepts (nguyén ly lap trinh hudéng
đối tượng), cho phép kế thừa, .)
- PL/SQL hé tro nhiéu céng cu phat trién Web (Web application)
Nhược điểm:
- PL/SQL can bé nhé nhiéu
- GO cac procedures thi khong cé tinh nang debug
2.4 Cơ chế sao lưu và phục hồi dữ liệu sau sự cố Oracle
Khôi phục dữ liệu Oracle Database — một trong những hệ quản trị cơ sở đữ liệu quan trọng nhất trên thế giới Trong bài viết này, chúng ta sẽ khám phá quá trình phục hồi dữ liệu, một quy trình quan trọng và phức tạp, nhằm đảm bảo tính toàn vẹn và khả năng khôi
phục của hệ thống Đây là một số khái niệm về phục hồi dữ liệu của Oracle:
1 Recovery: Là quá trình khôi phục dữ liệu từ các bản sao lưu đã được tạo ra trong
quá khứ dé dam bao tinh toan ven va kha dụng của cơ sở dữ liệu sau một sự cô
2 Point-in-Time Recovery (PITR): Khôi phục dữ liệu đến một thời điểm cụ thể
trong quá khứ, thường là trước khi sự cô xảy ra Oracle cung cấp các công cụ như
Flashback Technology va Recovery Manager (RMAN) để thực hiện PITR một cách
hiệu quả
22
Trang 233 Rollback Segments va Undo Tablespace: Duoc stir dụng để hỗ trợ quá trình rollback trong trường hợp cần phục hồi các giao dịch chưa hoàn thành hoặc đã bị hủy bỏ
4 Redo Log Files: Phục hồi các thay đổi dữ liệu đã xảy ra từ lần sao lưu gần nhất đến thời điểm sự cô xảy ra Các tập tin redo log được sử dụng trong quá trình phục
hồi cơ sở dữ liệu đảm bảo rằng mọi thay đổi được ghi nhận được áp dụng một cách
đồng nhất và an toàn
5 Recovery Manager (RMAN): Là công cụ được Oracle cung cấp đề quản lý việc sao lưu và phục hôi dữ liệu RMAN cung cấp các tính năng như sao lưu đa kênh, sao lưu và phuc héi incrementally, và quản lý không gian lưu trữ sao lưu
6 Flashback Technology: Cung cấp các tính năng cho phép người dùng truy vết và
khôi phục đữ liệu đến các thời điểm trước đó mà không cần phải sử dụng các bản
sao lưu Flashback Technology bao gồm Flashback Query, Flashback Transaction, Flashback Table, và Flashback Database
Sao lưu dữ liệu - là một phần quan trọng của việc quản lý cơ sở dữ liệu và đảm bảo tính khả dụng và an toàn của thông tin Dưới đây là một số khái niệm quan trọng liên quan đến sao lưu dữ liệu trong môi trường Oracle:
1 Backup: Là quá trình tạo ra một bản sao lưu của dữ liệu và các thành phần quan
trọng khác của cơ sở dữ liệu như tập tin dữ liệu, tập tin điều khiển và tap tin redo
log Mục đích của việc sao lưu là để đảm bảo rằng dữ liệu có thể được phục hồi trong trường hợp mắt mát hoặc hỏng
2 Recovery: La qua trình khôi phục dữ liệu từ bản sao lưu khi có sự cô xảy ra, như mất mát dữ liệu do lỗi phần cứng, lỗi phần mềm hoặc lỗi người dùng
3 Sao luu Incremental va Day du:
- Sao lưu đầy đủ (Full Backup): Là việc sao lưu toàn bộ cơ sở dữ liệu hoặc một phần cơ sở dữ liệu một cách hoàn chỉnh
23
Trang 24CHUONG 2 : CO SO LY THUYET
- Sao lưu Incremental: Chỉ sao lưu các phần của cơ sở đữ liệu đã thay đôi kế từ lần sao lưu trước đó Điều này giúp giảm thời gian và dung lượng lưu trữ so với việc thực hiện sao lưu đầy đủ hàng ngày
4 Archivelog Mode và Noarchivelog Mode:
- Archivelog Mode: Là một chế độ của cơ sở đữ liệu Oracle cho phép lưu trữ các
bản ghi redo log đã được kích hoạt, cho phép phục hồi dữ liệu đến một thời điểm cụ
thê trong quá khứ
- Noarchivelog Mode: Không lưu trữ các bản ghi redo log đã được kích hoạt, chỉ
cho phép phục hồi đến thời điểm lỗi xảy ra gần nhất
5 Recovery Manager (RMAN): Là công cụ được cung cấp bởi Oracle để quản lý việc sao lưu và phục hồi dữ liệu RMAN cung cấp các tính năng như sao lưu đa kênh, sao lưu và phục hồi incrementally, và quản lý không gian lưu trữ sao lưu
6 Flashback Technology: Cung cấp các tính năng cho phép người dùng truy vết và
khôi phục đữ liệu đến các thời điểm trước đó mà không cần phải sử dụng các bản
sao lưu
2.5 Xử lý đồng thời
Xử lý đồng thời trong Oracle (Concurreney Control) là cơ chế để quản lý và đảm bảo tính nhất quán của dữ liệu khi có nhiều người dùng truy cập và chỉnh sửa cùng một dữ liệu trong cơ sở dữ liệu Điều này đặc biệt quan trọng trong các môi trường có nhiều người dùng hoặc ứng dụng đồng thời Dưới đây là một số phương pháp và cơ chế quản lý xử lý đồng thời trong Oracle:
1 Locking Mechanisms: Oracle str dung cac co ché khoa dé dam bao rang chi mét
người dùng có thê truy cập và sửa đổi dữ liệu tại một thời điểm Có hai loại khóa chính:
- Exclusive Locks: Ngăn chặn các người dùng khác truy cập vào dữ liệu trong khi một người dùng đang sửa đôi nó
- Share Locks: Cho phép nhiều người dùng truy cập dữ liệu, nhưng không cho phép ai đó sửa đôi nó cùng một lúc
24
Trang 252 Multiversion Concurrency Control (MVCC): Day la mét co ché ma Oracle str
dung dé hé tro doc không chặn và phát hiện xung đột trong khi đảm bảo tính nhất
quán của dữ liệu MVCC cho phép các phiên bản khác nhau của dữ liệu tồn tại đồng thời, giúp tránh các xung đột giữa các giao dich
3 Read Consistency: Oracle sử dụng các kỹ thuật để đảm bảo rằng các truy vấn đọc
sẽ thấy dữ liệu ở một thời điểm nhất định (thường là thời điểm khi truy van bat dau)
Điều này giúp đảm bảo tính nhất quán của dữ liệu trong khi có các giao dịch đồng thời diễn ra
4 Deadlock Detection and Resolution: Oracle có khả năng phát hiện và giải quyết
cac deadlock (tình trạng mà hai hoặc nhiều giao dịch đang chờ đợi lẫn nhau đề giải
phóng khóa mà họ cần) tự động
5 Isolation Levels: Oracle cung cap các mức độ cô lập khác nhau (như Read Committed, Serializable) cho phép người quản trị cầu hình cách Oracle quản lý đồng thời và cô lập trong các giao dịch
25
Trang 26CHUONG 3 : PHAN TICH HE THONG
CHUONG 3: PHAN TICH HE THONG
3.1 PHAN TICH CHUC NANG
3.1.1 Vẽ mô hình phân cấp chức năng của hệ thống (sơ đồ BED)
Hình 5: Sơ đồ BED của hệ thống
3.1.2 Mô tả chỉ tiết từng chức năng
Bảng 1: Mô tả chỉ tiết chức năng
=
STT | Tên Chức Năng | Bộ Phận Liên Chứng Từ/ | Dữ Liệu Dữ Liệu
hang - Thành tiền | - Thành tiền
- Trạng thái | - Trang thai
26
Trang 27
- Ghi chu - Ghi chu
2 | Quản lý thông | Phòng kinh Hóa đơn - Mã khách | - Mã khách
tin khách hàng | doanh muahàng |_ Tên khách | - Tên khách
- Dia chi - Dia chi
- Sô điện - Sô điện
3 | Quản lý nhà Phòng kinh Hóa đơn bán | - Mã Nhà - Mã Nhà
4 Z cung cap cung cap
cung cap doanh hang, H0a | "Tén Nha | - Tên Nhà
don mua cung cap cung cap
3 - Dia chi - Dia chi
5 - Don gia - Don gia han ,
- Trang thai
5 | Cập nhật, xóa Phòng kho - Mã sản - Mã sản
; A pham pham san pham - Tên sản - Tên sản
phâm phâm
- Don gia - Don gia
- So luong
- Trang thai
6 | Tao bao cao Phòng kế toán —_| Phiéu thu - Phiéu thu | - Phiéu thu
Sue chi chi doanh thu chi, Hóa - Hóa đơn - Hóa đơn
đơn bán bán hàng | bán hàng
` - Chỉ tiết
hang phiéu thu
chi
7 | Tao don hang Phong kinh Don hang, |- Donhang | -Cac don
3.1.3 Các quy định nghiệp vụ/các ràng buộc toàn vẹn dữ liệu có liên quan
27
Trang 28CHUONG 3 : PHAN TICH HE THONG
Bảng 2: Các ràng buộc toàn ven
†1_| Một sản phâm có thê có nhiều nhà cung cấp
2 | Một nhà cung cấp có thể cung cấp nhiều sản phâm
3 | Một khách hàng có thê có nhiều hóa đơn
4 | Một hóa đơn chỉ thuộc về một khách hàng
5 _| Một nhân viên có thê lập nhiều hóa đơn
6 | Một hóa đơn chỉ được lập bởi một nhân viên
7 | Nhân viên có thê xử lý nhiều đơn hàng
8 | Một đơn hàng chỉ được xử lý bởi một nhân viên
9 | Sản phâm có thê thuộc một hoặc nhiều đơn hàng
10] Đơn hàng có thê chứa một hoặc nhiều sản phâm
T1 | Sản phâm có thê thuộc một hoặc nhiêu hóa đơn
12] Hóa đơn có thê chứa một hoặc nhiều sản phẩm
13 Hóa đơn không có tông giá trị bằng âm
14 Một đơn hàng chỉ thuộc một khách hàng duy nhất
15| Một khách hàng có thê mua nhiều đơn hàng
3.2 PHAN TICH DU LIEU
3.2.2 Mô hình thực thể kết hợp (ERD)
28
Trang 29Hinh 6: M6 hinh thuc thé ERD
- Chuyén so d6 ERD sang lược đồ quan hệ
Trang 30CHUONG 3 : PHAN TICH HE THONG
Trang 31CHUONG 4: THIET KE VA CAI DAT HE THONG
4.1.2 Lược đồ quan hệ (text)
Banh (Mabanh, TenBanh, Gia, SoLuong, #MaNCC)
NhaCungCap(MaNCC, SDT, TenNCC, DiaChi)
NhanVien(MaNV, TenNV, SDT, DiaChi, ChucVu)
KhachHang (MaKH, TenKH, DiaChi, SDT)
DonHang (MaDH, NgayDatHang, TongGiaTn, TrangThai, #MaKH, #MaNV)
PHgiaoHang (MaPH, NgayGiao, DiaChi, TrangThai, TenKH, SDT, #MaHD)
CTDonHang (MaDH, MaBanh, SoLuong, ThanhTien)
HoaDon(MaHD, NgayLap, ThanhTien, TrangThai, #MaDH)
31
Trang 32CHUONG 4: CAI DAT VA THIET KE HE THONG
4.2 Từ điển dữ liệu (Mô tả các bảng và các thuộc tính)
Bảng 3: Bảng Nhân viên
STT | Thuộc tính Mô tả Kiéu dữ liệu | Kích thước | Ghi chú
2 TenNV Tên nhân viên Varchar 200
3 DiaChi Địa chỉ Varchar 200
5 SDT Số điện thoại Char 12
Bảng 4: Bảng Khách hàng
STT | Thuéc tinh | Môtả Kiéu dir ligu | Kích Ghi chú
thước
3 DiaChi Dia chi Varchar2 200
Bang 5: Bang Banh
STT |Thuộctính | Mô Tả Kiêu dữliệu |Kích | Ghi chú
thước
2 TenBanh Tên bánh Varchar2 200
32
Trang 33
5 Gia Gia Number
2 NgayDatHangl Ngày đặthàng | Date
4 TrangThai Trạng thái Varchar2 | 30
ngoại
ngoại
Bảng 7: Bảng hóa đơn
STT Thuộc tính Mô tả Kiêu dữ liệu | Kích thước | Ghi chú
3 TrangThai Trạng thái Varchar2 20
Bang 8: Bang Nha cung cap
STT Thuộc tính Mô tả Kiéu dữ liệu | Kích thước | Ghi chú
33