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>