Tải bản đầy đủ (.pdf) (35 trang)

tiểu luận giữa kỳ cơ sở dữ liệu chủ đề retail sales

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.63 MB, 35 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>VIỆN TOÁN NG D NG VÀ TIN H</b>Ứ Ụ <b>ỌC </b>

<i><b>TIỂU LUẬN GIỮA K </b></i>Ỳ

<i><b>BỘ MÔN: </b></i>CƠ SỞ Ữ<i><b> D LIỆU CHỦ ĐỀ: RETAIL SALES Gi</b></i>ảng viên hướ<i><b>ng d n: Ths Nguy n Danh Tú </b></i>ẫ ễ

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<i>1. 1 Trước khi chuẩn hóa và chỉnh sửa ... 7 </i>

<i>1.2 Sau khi chu n hóa và ch nh s</i>ẩ ỉ <i>ửa ... 13 </i>

<i>2. Truy v n d li u ... 17 </i>ấ ữ ệ<i>2.1 Các câu l nh truy v n (10 câu )</i>ệ ấ ... 17

<i>2.2 Tăng tốc độ truy vấn dữ liệu ... 22 </i>

<i>2.2.1. T o Index</i>ạ ... 22

<i>2.2.2 T o Partition</i>ạ ... 23

<i>3. Procedure Insert, Delete, Update d li u ... 24 </i>ữ ệ<i>3.1 Các procedure Insert, Delete, Update t ng b ng d li</i>ừ ả <i>ữ ệu ... 24 </i>

<i>3.1.1 Các procedure Insert t ng b ng d li</i>ừ ả <i>ữ ệu ... 24 </i>

<i>3.1.2. Các procedure Update t ng b ng d li</i>ừ ả <i>ữ ệu ... 25 </i>

<i>3.3.3 Các procedure Delete t ng b ng d li</i>ừ ả <i>ữ ệu ... 26 </i>

<i>3.2 S d ng transaction</i>ử ụ ... 27

3.3 Đổ<i> dữ li</i>ệu trong cơ sở<i> dữ liệu... 33 4. K t lu n ... 36 </i>ế ậ

<i>Tài li u tham kh o ... 37 </i>ệ ả

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<i>1 . T ng quan v CSDL </i>ổ ề

<i>• DB Retail Sales được tạo nên từ cơ sở ữ ệ d li u m u Northwind </i>ẫ

<i>• DB Northwind là về m</i>ột cơng ty có tên “Northwind Trader” <i>- chuyên nhập kh u và xu t kh u các lo</i>ẩ ấ ẩ <i>ại thực phẩm đặ ản t khc s</i> ừ ắp nơi trên thế

<i>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</i> ữ

<i>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ó </i>ấ ủ

<i>Chi ti t bao g m: </i>ế ồ

<i>1. Suppliers/Vendors of Northwind nhà cung c p c a Northwind </i>– ấ ủ

<i>2. Customers of Northwind </i>– khách hàng/ngườ<i>i mua hang c a Northwind </i>ủ

<i>3. Employee details of Northwind traders nhân viên c a Northwind </i>– ủ

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<i>8. Sales Order transaction chi ti t v các giao d</i>– ế ề <i>ịch di n ra gi a khách </i>ễ ữ

<i>hàng và Northwind </i>

<i>9. Inventory transactions – chi ti t các giao d</i>ế <i>ịch di n ra v i hàng t n kho </i>ễ ớ ồ

<i>10. Invoices chi ti</i>– <i>ết hóa đơn được nêu ra so với đơn đặt hàng 1. 1 </i>Trướ<i>c khi chu n hóa và ch nh s a </i>ẩ ỉ ử

<i> S </i>ố lượ<i>ng b n ghi các b ng c</i>ả ả ủa cơ sở ữ ệ<i> d li u: </i>

<i>Mơ hình thực thể ER </i>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Bảng Products vi ph m chu n 1 t i thu c tínạ ẩ ạ ộ h ‘QuantityPerUnit’

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<i>Bảng Employees đạt 3NF </i>

<i>Bảng EmployeeTerritories đạt 4NF (không cần chỉnh sửa) </i>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<i>Bảng Categories đạt 4NF (không cần chỉnh sửa) </i>

<i> Bảng OrderDetails đạt 4NF </i>

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<i>Bảng Orders đạt 4NF (không cần chỉnh sửa) </i>

<i> </i>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<i>Bảng Region đạt 4NF (không cần chỉnh sửa) </i>

<i> </i>

<i>Bảng Shippers đạt 3NF </i>

<i>Bảng Suppliers đạt 3NF </i>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i>1.2 Sau khi chu n hóa và ch nh s a </i>ẩ ỉ ử

<i>Các b</i>ảng đều đạ<i>t 4NF tr lên </i>ở

<i>Không m t d li u các b ng g c </i>ấ ữ ệ ở ả ốKhông gây ra dư thừ<i>a, kì d d</i>ị ữ<i> liệu </i>

<i> </i>

<i> </i>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<i> </i>Sơ đồ<i> RE </i>

<i> ➢ Bảng Products cũ tách thành 3 bảng đạt 4NF: Products, ProductUnits, </i>

<i>QuantityPerUnits </i>

<i>➢ Bảng Employees cũ tách thành 2 bảng đạt 4NF: Employees, EmployeeInformation </i>

<i>➢ Bảng Shippers cũ tách thành 2 bảng đạt 4NF: ShipperPhone, ShipperInformation </i>

<i>➢ Bảng Customers cũ tách thành 2 bảng đạt 4NF: Customers, CustomerInformation </i>

<i>➢ Bảng Supliers cũ tách thành 2 bảng đạt 4NF: SupplierPhone, SupplierInformation </i>

<i>➢ Bảng Products </i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>➢ Bảng Products </i>

<i>➢ Bảng ProductUnits </i>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<i>➢ Bảng QuantityPerUnit </i>

<i>➢ Bảng SupplierInformation </i>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i>2. Truy v n d li</i>ấ <i>ữ ệu </i>

<i>2.1 Các câu l nh truy v n (10 câu ) </i>ệ ấ

<i>Lấy ra mã nhân viên, tên nhân viên London </i>ở

<i>Lấy ra mã khách hàng, tên khách hàng tại Mexico </i>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<i> L y ra mã s n ph</i>ấ ả <i>ẩm, số lượng, tên s n ph m,giá s n ph</i>ả ẩ ả ẩm mà có đị<i>a ch nhà </i>ỉ

<i>cung c p thu c Pháp </i>ấ ộ

<i>Lấy ra mã đơn hàng, mã khách hàng, có EmployeeID < 5 thuộc b ng Order có </i>ả

<i>quốc gia thu c M </i>ộ ỹ

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i>Lấy tên công ty cung c</i>ấp, đị<i>a chỉ mà có giá sản ph m > 13 </i>ẩ

<i>Lấy ra mã nhân viên, địa chỉ mà có freight > 30 từ bảng Customers và Orders </i>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<i>Lấy ra freight, mã nhân viên t b ng order có mã nhân viên > 2 và < </i>ừ ả <i>5 được sắp xếp theo freight tăng dần </i>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i>Chọn 3 c</i>ột nhưng không lấ<i>y giá trị </i>trùng như từ ả<i> b ng v</i>ới điề<i>u kiện và được sắp xếp </i>

<i>Join hai b ng nhau dùng inner join </i>ả

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i>Lấy ra bảng shipper có tên cty b</i>ắt đầ<i>u b ng USP </i>ằ

<i>2.2 Tăng tốc độ truy vấn dữ liệu 2.2.1. T o Index </i>ạ

<i>• Trước khi đánh Index </i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<i>• Sau </i>khi đánh Index

<i>2.2.2 T o Partition </i>ạ

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<i>3. Procedure Insert, Delete, Update d li u </i>ữ ệ

<i>3.1 Các procedure Insert, Delete, Update t ng b ng d li u </i>ừ ả ữ ệ

<i>3.1.1 Các procedure Insert t ng b ng d li u </i>ừ ả ữ ệ• Cú pháp

<i>• Với b</i>ảng Region: trướ<i>c và sau khi Insert d li u </i>ữ ệ

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<i>3.1.2. Các procedure Update t ng b ng d li u </i>ừ ả ữ ệ

<i>• Cú pháp </i>

<i>• Với bảng Shippers: trước và sau khi Update dữ ệ li u </i>

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<i>3.3.3 Các procedure Delete t ng b ng d li u </i>ừ ả ữ ệ

<i>• Với b</i>ảng Region: trướ<i>c và sau khi Delete d li u </i>ữ ệ

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<i>3.2 Sử dụng transaction </i>

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ì tồ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.3 Nghiệp vụ thực tế

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="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

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<i>• Cập nh t d li u (COMMIT) </i>ậ ữ ệ

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<i>• ROLLBACK </i>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<i>• SAVEPOINT </i>

<i>3.3 </i>Đổ ữ ệ<i> d li u trong </i>cơ sở ữ ệ<i> d li u </i>

<i>• Đầu tiên tạo một Database mới tên là NewDB </i>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<i>• Tạo các b ng gi ng các b ng trong Database g</i>ả ố ả <i>ốc RetailSales Đây là ví dụ v t o 2 b ng Categories và Customers. </i>ề ạ ả

<i>• Sau khi t o xong thì b</i>ạ ắt đầ<i>u ch y ph n CREATE PROCEDURE (Ví d t o </i>ạ ầ ụ ạ

<i>procedure cho b ng Categories) </i>ả

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<i>Sau khi chạy xong tấ ảt c PROCEDURE thì b</i>ắt đầ<i>u g i hàm b</i>ọ <i>ắt đầu đổ ữ ệu d li</i>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

<i>4. K t lu n </i>ế ậ

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

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Tài liệu tham kh o ả

<i>[1] Nguy n Kim Anh, Nguyên lý c a các h</i>ễ ủ <i>ệ cơ sở ữ ệu, NXB ĐH quố d lic gia Hà Nội, 2004 </i>

<i>[2] Tr n Nguyên Phong, Giáo trình th c hành SQL </i>ầ ự

<i>[3] Elmasri Navathe, Fundamentals of Database Systems 7th edition </i>

</div>

×