1 Trước khi chuẩn hóa và chỉnh sửa ..... Bảng Employees đạt 3NF Bảng EmployeeTerritories đạt 4NF không cần chỉnh sửa... Bảng Categories đạt 4NF không cần chỉnh sửa Bảng OrderDetails đạt
Trang 1VIỆN TOÁN NG D NG VÀ TIN HỨ Ụ ỌC
TI ỂU LUẬN GIỮA K Ỳ
B Ộ MÔN: CƠ SỞ Ữ D LI ỆU
Trang 31 1 Trước khi chuẩn hóa và chỉnh sửa 7
1.2 Sau khi chu n hóa và ch nh sẩ ỉ ửa 13
2 Truy v n d li u 17 ấ ữ ệ 2.1 Các câu l nh truy v n (10 câu )ệ ấ 17
2.2 Tăng tốc độ truy vấn dữ liệu 22
2.2.1 T o Indexạ 22
2.2.2 T o Partitionạ 23
3 Procedure Insert, Delete, Update d li u 24 ữ ệ 3.1 Các procedure Insert, Delete, Update t ng b ng d liừ ả ữ ệu 24
3.1.1 Các procedure Insert t ng b ng d liừ ả ữ ệu 24
3.1.2 Các procedure Update t ng b ng d liừ ả ữ ệu 25
3.3.3 Các procedure Delete t ng b ng d liừ ả ữ ệu 26
3.2 S d ng transactionử ụ 27
3.3 Đổ dữ liệu trong cơ sở dữ liệu 33
4 K t lu n 36 ế ậ
Tài li u tham kh o 37 ệ ả
Trang 41 T ng quan v CSDL ổ ề
• DB Retail Sales được tạ o nên t ừ cơ sở ữ ệ d li u m u Northwind ẫ
• DB Northwind là về một công ty có tên “Northwind Trader” - chuyên
nhập kh u và xu t kh u các loẩ ấ ẩ ại thực ph ẩm đặ ản t kh c s ừ ắp nơi trên thế
giới: n ắm bắ ấ ả các giao dịch bán hàng gi a Northwind Trader và các t t t c ữ
khách hàng của công ty cũng như giao dịch giữa Northwind và các nhà
cung c p c a nó ấ ủ
Chi ti t bao g m: ế ồ
1 Suppliers/Vendors of Northwind nhà cung c p c a Northwind – ấ ủ
2 Customers of Northwind – khách hàng/người mua hang c a Northwind ủ
3 Employee details of Northwind traders nhân viên c a Northwind – ủ
Trang 58 Sales Order transaction chi ti t v các giao d– ế ề ịch di n ra gi a khách ễ ữ
hàng và Northwind
9 Inventory transactions – chi ti t các giao dế ịch di n ra v i hàng t n kho ễ ớ ồ
10 Invoices chi ti– ết hóa đơn được nêu ra so với đơn đặ t hàng
1 1 Trước khi chu n hóa và ch nh s a ẩ ỉ ử
S ố lượng b n ghi các b ng cả ả ủa cơ sở ữ ệ d li u:
Mô hình th ực thể ER
Trang 6Bảng Products vi ph m chu n 1 t i thu c tínạ ẩ ạ ộ h ‘QuantityPerUnit’
Trang 7Bảng Employees đạt 3NF
Bảng EmployeeTerritories đạt 4NF (không cần chỉnh sửa)
Trang 8Bảng Categories đạt 4NF (không cần chỉnh sửa)
Bảng OrderDetails đạt 4NF
Trang 9Bảng Orders đạt 4NF (không cần chỉnh sửa)
Trang 10
Bảng Region đạt 4NF (không cần chỉnh sửa)
Bảng Shippers đạt 3NF
Bảng Suppliers đạt 3NF
Trang 111.2 Sau khi chu n hóa và ch nh s a ẩ ỉ ử
Trang 13➢ Bảng Products
➢ Bảng ProductUnits
Trang 14➢ Bảng QuantityPerUnit
➢ Bảng SupplierInformation
Trang 152 Truy v n d liấ ữ ệu
2.1 Các câu l nh truy v n (10 câu ) ệ ấ
Lấy ra mã nhân viên, tên nhân viên London ở
Lấy ra mã khách hàng, tên khách hàng tại Mexico
Trang 16L y ra mã s n phấ ả ẩm, số lượ ng, tên s n ph m,giá s n phả ẩ ả ẩm mà có địa ch nhà ỉ
cung c p thu c Pháp ấ ộ
Lấy ra mã đơn hàng, mã khách hàng, có EmployeeID < 5 thuộ c b ng Order có ả
quốc gia thu c M ộ ỹ
Trang 17Lấy tên công ty cung cấp, địa ch ỉ mà có giá sản ph m > 13 ẩ
Lấy ra mã nhân viên, địa chỉ mà có freight > 30 từ bảng Customers và Orders
Trang 18Lấy ra freight, mã nhân viên t b ng order có mã nhân viên > 2 và < ừ ả 5 được sắ p xếp theo freight tăng dần
Trang 19Chọn 3 cột nhưng không lấy giá tr ị trùng như từ ả b ng với điều ki ện và được sắ p
xếp
Join hai b ng nhau dùng inner join ả
Trang 20Lấy ra bảng shipper có tên cty bắt đầu b ng USP ằ
2.2 Tăng tốc độ truy vấn dữ liệu
2.2.1 T o Index ạ
• Trước khi đánh Index
Trang 21• Sau khi đánh Index
2.2.2 T o Partition ạ
Trang 223 Procedure Insert, Delete, Update d li u ữ ệ
3.1 Các procedure Insert, Delete, Update t ng b ng d li u ừ ả ữ ệ
3.1.1 Các procedure Insert t ng b ng d li u ừ ả ữ ệ
• Cú pháp
• Với bảng Region: trước và sau khi Insert d li u ữ ệ
Trang 233.1.2 Các procedure Update t ng b ng d li u ừ ả ữ ệ
• Cú pháp
• Với b ảng Shippers: trước và sau khi Update dữ ệ li u
Trang 243.3.3 Các procedure Delete t ng b ng d li u ừ ả ữ ệ
• Với bảng Region: trước và sau khi Delete d li u ữ ệ
Trang 253.2 Sử dụng transaction
3.2.1 TRANSACTION trong SQL
là ti n trình thế ực hiện m t nhóm các câu lộ ệnh SQL Các câu lệnh này được thực thi một cách tuần tự và độc lập Một Transaction được thực hi n thành ệcông khi tất c câu lả ệnh đều thành công, khi đó tất cả các thay đổi dữ li u ệ
được thực hiện trong Transaction được lưu vào cơ sở dữ li u Tuy nhiên, ệ
nếu ch mỉ ột trong số đó thấ ại thì toàn b tit b ộ ến trình sẽ ấ th t bại, đồng nghĩa với vi c d li u ph i rollback v trệ ữ ệ ả ề ạng thái ban đầu (dữ liệu được khôi phục
về trạng thái trước khi th c hi n Transaction).ự ệ
3.2.2 X lý trong Transaction ử
Trong SQL, có các lệnh sau được sử dụng để điều khiển Transaction:
• COMMIT: để lưu các thay đổi
• ROLLBACK: để quay trở lại trạng thái trước khi có thay đổi
• SAVEPOINT: tạo các điểm (point) bên trong các nhóm Transaction
để ROLLBACK, tức là để quay trở lại điểm trạng thái đó
• SET TRANSACTION: đặt một tên cho một Transaction
• Các lệnh điều khiển Transaction chỉ được sử dụng với các lệnh thao tác dữ liệu như INSERT, UPDATE và DELETE Tuy nhiên chúng
không thể được sử dụng trong lệnh CREATE TABLE hoặc DROP
TABLE vì các hoạt động này được tự động xác định trong cơ sở dữ liệu
3.2.3 Nghiệp vụ thực tế
Trang 26➢ Nghiệp vụ 1 : Thay đổi tên và mã giảm giá cho đơn hàng có mã sản phảm
là 2 và 4
➢ Nghiệp vụ 2: Thay đổi số lượng đặt mới
Trang 27➢ Nghiệp vụ 3 : Xóa sản phẩm đã hết thêm sản phẩm mới và cập nhật lại số loại sản phẩm
Trang 28➢ Nghiệp vụ 4: Khách hàng muốn sửa địa chỉ giao hàng và tăng số lượng đặt hàng
Trang 29• Cập nh t d li u (COMMIT) ậ ữ ệ
Trang 30• ROLLBACK
Trang 31• SAVEPOINT
3.3 Đổ ữ ệ d li u trong cơ sở ữ ệ d li u
• Đầu tiên tạo một Database mới tên là NewDB
Trang 32• Tạo các b ng gi ng các b ng trong Database gả ố ả ốc RetailSales
Đây là ví dụ v t o 2 b ng Categories và Customers ề ạ ả
• Sau khi t o xong thì bạ ắt đầu ch y ph n CREATE PROCEDURE (Ví d t o ạ ầ ụ ạ
procedure cho b ng Categories) ả
Trang 33Sau khi ch ạy xong tấ ả t c PROCEDURE thì bắt đầu g i hàm bọ ắt đầu đổ ữ ệu d li
Trang 344 K t lu n ế ậ
Tổng k t nhế ững điều đã làm được:
- Truy vấn được dữ ệ li u theo yêu c u ầ
- Tìm hiểu được cấu trúc của cơ sở ữ ệ d li u
- Chuyển đổi được dữ ệ ừ các cơ sở ữ ệ li u t d li u
- Tối ưu thời gian th c hi n truy v n ự ệ ấ
- T o các c u trúc d liạ ấ ữ ệu và đối tượng trên cơ sở d li u ữ ệ
Tổng k t nhế ững gì đã học được:
- Đọc và phân tích được lược đồ quan h ệ
- N m bắ ắt được các khái niệm cơ sở ữ ệ d li u theo ngôn ng nghi p v ữ ệ ụ
- Th c hi n thành th o các công c truy vự ệ ạ ụ ấn trong cơ sở ữ ệ d li u
Trang 35Tài liệu tham kh o ả
[1] Nguy n Kim Anh, Nguyên lý c a các hễ ủ ệ cơ sở ữ ệu, NXB ĐH quố d li c gia Hà Nội, 2004
[2] Tr n Nguyên Phong, Giáo trình th c hành SQL ầ ự
[3] Elmasri Navathe, Fundamentals of Database Systems 7th edition