Đồ án môn học hệ quản trị cơ sở dữ liệu đề tài quản lý giỏ hàng

40 3 0
Đồ án môn học hệ quản trị cơ sở dữ liệu đề tài quản lý giỏ hàng

Đ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

TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT VIỆN KỸ THUẬT CÔNG NGHỆ ĐỒ ÁN MÔN HỌC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Đề tài: QUẢN LÝ GIỎ HÀNG GVHD: ThS Nguyễn Thế Bảo SVTH: 1.Võ Anh Minh Mã SV: 2024801030097 2.Nguyễn Anh Kiệt 2024801030103 3.Nguyễn Duy Toàn 2024801030120 4.Phan Minh Huy 2024801030124 Lớp: D20KTPM02 Bình Dương,tháng 12 năm 2021 0 Đồ án Môn học: Hệ quản trị sở liệu MỤC LỤC MỤC LỤC i LỜI MỞ ĐẦU CHƯƠNG QUẢN LÝ CƠ SỞ DỮ LIỆU 1.1 Giới thiệu Cơ sở liệu: 1.1.1 Giới thiệu Advanture work 1.1.2 Cơ sở liệu tiểu luận 1.2 Mô tả Cơ sở liệu: .3 1.3 Sơ đồ mối quan hệ: .17 CHƯƠNG CÁC THAO TÁC TRÊN CƠ SỞ DỮ LIỆU 18 2.1 Tạo View: 18 2.1.1 Giới thiệu View 18 2.1.2 Tính chất 18 2.1.3 Ưu điểm 18 2.1.4 Câu lệnh khởi tạo View: 18 2.1.5 Tạo view có điều kiện đơn giản (trên bảng, nhiều bảng): 19 2.1.6 Tạo view có điều kiện phức tạp 20 2.1.7 Tạo view phức tạp cập nhật liệu 21 2.2 Xây dựng Stored procedure 22 2.2.1 Giới thiệu Stored procedure 22 2.2.2 Ưu điểm 22 2.2.3 Câu lệnh khởi tạo thực thi 22 2.2.4 Tạo thủ tục không tham số 23 2.2.5 Tạo thủ tục có tham số mặc định: .23 2.2.6 Tạo thủ tục có tham số output: 24 2.2.7 Tạo thủ tục có tham số input: 24 2.3 Xây dựng Function 25 2.3.1 Giới thiệu Function 25 2.3.2 Câu lệnh khởi tạo Function gọi hàm 26 2.3.3 Tạo hàm trả kiểu vô hướng: 26 2.3.4 Tạo hàm trả bảng 27 2.3.5 Tạo hàm trả bảng tự định nghĩa 28 2.4 Xây dựng Trigger 29 2.4.1 Giới thiệu Trigger 29 2.4.2 Ưu điểm: 30 2.4.3 Nhược điểm: 30 2.4.4 Câu lệnh khởi tạo Trigger 30 2.4.5 Tạo Trigger Insert .31 2.4.6 Tạo Trigger Update .31 2.4.7 Tạo Trigger Delete (có thể kết hợp loại Trigger này) .32 2.5 Xây dựng Transaction 32 2.5.1 Giới thiệu Transaction .32 2.5.2 Tạo Transaction 33 2.5.3 Tạo Transaction 33 2.6 Tạo user 34 CHƯƠNG KẾT LUẬN 35 Quản lý giỏ hàng  0 Đồ án Môn học: Hệ quản trị sở liệu 3.1 Kết làm được: 35 3.2 Hạn chế (chưa làm được): 35 3.3 Thuận lợi khó khăn: 35 TÀI LIỆU THAM KHẢO 36 Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu LỜI MỞ ĐẦU Với phát triển nhanh chóng cơng nghệ, giới đường ngày thu nhỏ nhờ mạng Internet Để đáp ứng địi hỏi trình độ công nghệ thông tin ngày cao thị trường, sinh viên ngành kỹ thuật phần mềm nói riêng đối tượng hoạt động lĩnh vực công nghệ thơng tin nói chung cần phải nắm kiến thức cơng nghệ để dễ dàng tiếp cận tiếp thu quản lí thơng tin Một cách để tổ chức quản lý liệu Database Management System(Hệ quản lý sở liệu) Hệ quản lý sở liệu (Database Management System - DBMS) phần mềm tương tác với người dùng cuối, ứng dụng sở liệu để thu thập phân tích liệu Phần mềm DBMS bao gồm tiện ích cốt lõi cung cấp để quản trị sở liệu Tổng cộng sở liệu, DBMS ứng dụng liên quan gọi "hệ thống sở liệu" Thông thường thuật ngữ "cơ sở liệu" sử dụng để nói đến DBMS, hệ thống sở liệu ứng dụng liên kết với sở liệu Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu CHƯƠNG QUẢN LÝ CƠ SỞ DỮ LIỆU 1.1 Giới thiệu Cơ sở liệu: 1.1.1 Giới thiệu Advanture work -Cơ sở liệu AdventureWorks mẫu sản phẩm Microsoft cho sở liệu xử lý giao dịch trực tuyến (OLTP) Cơ sở liệu AdventureWorks hỗ trợ kịch xử lý giao dịch trực tuyến tiêu chuẩn cho nhà sản xuất xe đạp hư cấu Adventure Works Cycles Các kịch bao gồm Manufacturing(Sản xuất), Sales(Bán hàng), Purchasing(Mua hàng), Product Management(Quản lý Sản phẩm), Contact Management(Quản lý Liên hệ) Human Resources(Nhân sự) -Microsoft nêu bật tính SQL Server với Cơ sở liệu AdventureWorks, phiên khác chúng tải xuống trang mẫu dự án cộng đồng SQL Server CodePlex, trang web dự án mã nguồn mở Microsoft Các tải xuống bao gồm Cơ sở liệu AdventureWorks 2008 Cơ sở liệu AdventureWorks 2012 -Cơ sở liệu AdventureWorks sử dụng ví dụ mã tìm thấy sách tài liệu SQL Server Ngồi cịn có phiên cho SQL Azure SQL Server 2005 1.1.2 Cơ sở liệu tiểu luận -Mơ hình quan hệ: +Bảng1: Sales.SalesOrderHeader(SalesOrderID,RevisionNumber,OrderDate,DueDate,ShipDa te,Status,OnlineOrderFlag,SalesOrderNumber,PurchaseOrderNumber,AccountNumber ,CustomerID,SalesPersonID,TerritoryID,BillToAddressID,ShipToAddressID,ShipMet hodID,CreditCardID,CreditCardApprovalCode,CurrencyRateID,SubTotal,TaxAmt,Fre ight,TotalDue,Comment,Rowguid,ModifiedDate) +Bảng 2: Sales.SalesOrderDetail(SalesOrderID,SalesOrderDetailID,CarrierTrackingNumber,O rderQty,ProductID,SpecialOfferID Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu +Bảng 3: Production.Product(ProductID,Name,ProductNumber,MakeFlag,FinishedGoodsFlag, Color,SafetyStockLevel,ReorderPoint,StandardCost,ListPrice,Size,SizeUnitMeasureC ode,WeightUnitMeasureCode,Weight,DaysToManufacture,ProductLine,Class,Style,Pr oductSubcategoryID,ProductModelID,SellStartDate,SellEndDate,DiscontinuedDate,R owguid,ModifiedDate) +Bảng 4: Sales.ShoppingCartItem(ShoppingCartItemID,ShoppingCartID,Quantity,ProductID, DateCreated,ModifiedDate) +Bảng 5: Sales.SpecialOfferProduct(SpecialOfferID,ProductID,Rowguid,ModifiedDate) +Bảng 6: Sales.SpecialOffer(SpecialOfferID,Description,DiscountPct,Type,Category,StartDate, EndDate,MinQty,MaxQty,Rowguid,ModifiedDate) 1.2 Mô tả Cơ sở liệu: Thông tin bảng CSDL tiểu luận Bảng Table Name Schema Sales.SalesOrderHeader Sales Description Thông tin chung Logical Name Physical Data K References đơn đặt hàng Remarks Name Type E int Y PK SalesOrderID Sales Khóa Order Identifica RevisionNumb tion Revision er Number tinyint Số cộng dồn để theo dõi thay đổi đơn hàng bán hàng Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu OrderDate Order datetime theo thời gian Ngày tạo đơn đặt DueDate Date Due Date datetime hàng Ngày đặt hàng ShipDate khách hàng Ngày đơn đặt hàng Ship Date datetime chuyển đến Status Status khách hàng Đặt hàng tình trạng tinyint = Đang trình; = Được chấp thuận; = Bị tồn đọng; = Bị từ chối; = Đã vận chuyển; = Đã hủy = Đơn hàng OnlineOrderFl Online ag Order người bán hàng Flag đặt = Đơn đặt bit hàng trực tuyến SalesOrderNu Sales nvarchar( ID khách hàng Số định danh đơn mber Order 25) hàng bán hàng X Number PurchaseOrder Purchase nvarchar( Khách hàng mua Number Order 25) hàng số tham AccountNumb Number Account nvarchar( chiếu Tham chiếu số tài er CustomerID Number Customer 15) int Identifica Sales.Custome khoản kế toán Số định danh khách r hàng Khóa ngoại tion cho Customer.Business Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu SalesPersonID Sales EntityID Sales.SalesPers Người bán hàng int Person TerritoryID on tạo đơn đặt hàng Identifica Khóa ngoại cho tion SalesPerson.Busine Territory ssEntityID Sales.SalesTerr Lãnh thổ nơi giao int Identifica itory dịch thực tion Khóa ngoại SalesTerritory.Sale BillToAddressI Bill To D Address s khách hàng Khóa ngoại cho tion Address.AddressID Ship To ID Address int Person.Addres Địa giao hàng s khách hàng Identifica Khóa ngoại cho tion Address.AddressID Ship Purchasing.Shi Phương thức vận pMethod chuyển Khóa int Method CreditCardID Person.Addres Identifica ShipToAddress ShipMethodID int sTerritoryID Địa toán Identifica ngoại cho tion ShipMethod.ShipM Credit int Card Sales.CreditCa ethodID Số định danh thẻ rd tín dụng Khóa Identifica ngoại cho tion CreditCard.CreditC CreditCardApp Credit ardID Mã phê duyệt varchar(1 Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu rovalCode Card 5) công ty phát hành Approval CurrencyRateI Code Currency D Rate SubTotal thẻ tín dụng cung cấp Sales.Currency Tỷ giá hối đoái int Rate sử dụng Identifica Khóa ngoại cho tion CurrencyRate.Curr Sub-Total money encyRateID Tổng phụ bán hàng Được tính SUM (SalesOrderDetail LineTotal) cho SalesOrderID thích TaxAmt Tax money hợp Số tiền thuế Freight Amount Freight money Chi phí vận TotalDue chuyển Tổng số tiền đến Total Due money hạn từ khách hàng Được tính dạng Subtotal + TaxAmt + Freight Đại diện bán hàng Comment Comment nvarchar( Rowguid 128) uniqueid ID nhận xét Số entifier X ROWGUIDCOL rowguid định danh ghi Được sử dụng để hỗ trợ mẫu chép ModifiedDate hợp Ngày Modificat datetime Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu ion Date ghi cập nhật lần cuối Bảng Table Name Schema Sales.SalesOrderDetail Sales Description Các sản phẩm riêng lẻ liên kết với đơn đặt hàng cụ thể Xem SalesOrderHeader Remarks Logical Physical Data K Name Name Type E SalesOrderID Sales int Y P Sales.SalesOrde Khóa Khóa K rHeader ngoại cho Order References Identificat SalesOrderHeader SalesOrderDe ion Sales SalesOrderID Khóa Một số tailID Order gia tăng Detail cho sản phẩm Identificat bán int CarrierTracki ion Carrier nvarchar Số theo dõi lô hàng ngNumber Tracking (25) người gửi hàng OrderQty Number Order smallint cung cấp Số lượng đặt hàng ProductID Quantity Product int Production.Prod sản phẩm Sản phẩm bán Identificat uct cho khách hàng ion Sales.SpecialOf Khóa ngoại cho SpecialOfferI Special ferProduct Sales.SpecialOf Product.ProductID Mã khuyến mại D Offer ferProduct Khóa ngoại cho int Identificat SpecialOffer.Specia Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu CREATE PROCEDURE [st4] @a int AS BEGIN SELECT* FROM[Production].[Product] WHERE(ProductID = @a) END GO exec [st4] @a='316' Ảnh procedure [st4] -Stored procedure đếm số lượng sản phấm có style nhập vào CREATE PROCEDURE st5 @st nchar(2) AS BEGIN SELECT count( ProductID) as N'Số Lượng' FROM Production.Product WHERE(Style = @st) END GO exec [st5] @st='W' Ảnh procedure [st5] 2.3 Xây dựng Function 2.3.1 Giới thiệu Function -Hàm đối tượng sở liệu tương tự Thủ tục +Hàm phải trả giá trị thông qua câu lệnh RETURN Giá trị trả vô hướng bảng Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu +Điểm khác biệt hàm thủ tục hàm trả giá trị thơng qua tên hàm cịn thủ tục khơng +Ngồi hàm cung cấp sẵn hệ quản trị, người sử dụng tạo thêm hàm cho riêng 2.3.2 Câu lệnh khởi tạo Function gọi hàm -Cú pháp khởi tạo: CREATE FUNCTION tên_hàm [(danh_sách_tham_số)] RETURNS kiểu liệu trả hàm AS BEGIN Các_câu_lệnh_của_hàm END -Cú pháp gọi hàm: SELECT * FROM tên_hàm [(danh_sách_tham_số)] 2.3.3 Tạo hàm trả kiểu vô hướng: -Funtion hiển thị số Year đặt đơn CREATE FUNCTION f1(@p1 int) RETURNS int AS BEGIN RETURN year(getdate())-(select year(OrderDate) from Sales.SalesOrderHeader where SalesOrderID = @p1) END GO print dbo.f1 (43659) Ảnh function [f1] Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu -Funtion tính tổng tiển hàng nhập vào CREATE FUNCTION f2 (@p1 int) RETURNS numeric(38,6) AS BEGIN RETURN (select SUM (LineTotal) FROM Sales.SalesOrderDetail WHERE (SalesOrderID = @p1)) END GO print dbo.f2 (43659) Ảnh function [f2] 2.3.4 Tạo hàm trả bảng -Funtion xuất thông tin sản phẩm nhập vào mã CREATE FUNCTION f3 (@ma int) RETURNS TABLE AS RETURN (SELECT *FROM Production.Product WHERE (ProductID = @ma)) GO select * from [f3] ('317') Ảnh function [f3] -Funtion xuất tổng sản phẩm giảm giá theo mã giảm giá nhập vào CREATE FUNCTION f4 (@ma int ) RETURNS TABLE Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu AS RETURN (SELECT SpecialOfferID,count ( ProductID) as N'Số lượng' FROM Sales.SpecialOfferProduct WHERE(SpecialOfferID = @ma) GROUP BY SpecialOfferID) GO select * from [f4] ('7') Ảnh function [f4] 2.3.5 Tạo hàm trả bảng tự định nghĩa -Funtion trả bảng có sản phẩm theo giới tính CREATE FUNCTION f5 (@p1 char ) RETURNS @bangtam TABLE (ProductID int,Name nvarchar(50)) AS BEGIN if (@p1 = 'M') INSERT INTO @bangtam(ProductID,Name) select ProductID, Name from Production.Product where Style = 'M' if (@p1 = 'W') INSERT INTO @bangtam(ProductID,Name) select ProductID, Name from Production.Product where Style = 'W' if (@p1 = 'U') INSERT INTO @bangtam(ProductID,Name) select ProductID, Name Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu from Production.Product where Style = 'U' RETURN END GO select * from [f5] ('M') Ảnh function [f5] 2.4 Xây dựng Trigger 2.4.1 Giới thiệu Trigger -Là dạng đặc biệt stored-procedure -Là stored-procedure khơng có tham số -Khơng thể gọi trực tiếp lệnh Execute -Được thực thi cách tự động có thay đổi liệu (Insert, Update Delete) bảng -Thường dùng để kiểm tra toàn vẹn liệu -Có loại chính: +INSERT Trigger +UPDATE Trigger +DELETE Trigger 2.4.2 Ưu điểm: -Sử dụng Trigger để kiểm tra tính tồn vẹn sở liệu -Trigger bắt lỗi logic mức sở liệu Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Mơn học: Hệ quản trị sở liệu -Có thể dùng trigger cách khác để thay việc thực công việc hẹn theo lịch -Trigger hiệu sử dụng để kiểm soát thay đổi liệu bảng 2.4.3 Nhược điểm: -Trigger phần mở rộng việc kiểm tra tính hợp lệ liệu khơng thể thay hồn tồn cơng việc -Trigger hoạt động ngầm csdl, không hiển thị tầng giao diện Do đó, khó điều xảy tầng csdl -Trigger thực update lên bảng liệu làm tăng lượng công việc lên csdl làm cho hệ thống chạy chậm 2.4.4 Câu lệnh khởi tạo Trigger -Cú pháp: Create Trigger On For |After|Instead of [DELETE, INSERT, UPDATE] AS 2.4.5 Tạo Trigger Insert -Trigger kiểm tra việc thêm thông tin vào bảng Sales.SpecialOffer 'Chiết khấu tổi thiểu phải nhỏ chiết khấu tối đa' CREATE TRIGGER tg1 ON Sales.SpecialOffer FOR INSERT AS BEGIN Quản lý giỏ hàng  0 Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Do.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hangDo.an.mon.hoc.he.quan.tri.co.so.du.lieu.de.tai.quan.ly.gio.hang Đồ án Môn học: Hệ quản trị sở liệu IF (( SELECT MinQty FROM INSERTED ) > ( SELECT MaxQty FROM INSERTED )) Begin Print N'Chiết khấu tổi thiểu phải nhỏ chiết khấu tối đa' rollback transaction END END GO 2.4.6 Tạo Trigger Update -Trigger kiểm tra việc cập nhật thông tin vào bảng Sales.ShoppingCartItem 'Số hàng phải lớn 0' CREATE TRIGGER tg2 ON Sales.ShoppingCartItem FOR Update AS BEGIN IF (( SELECT Quantity FROM INSERTED )

Ngày đăng: 30/12/2023, 05:55

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan