Tất cả các bảng trong cơ sở dữ liệu Aroma và các mối quan hệ giữa chúng với nhau Pat Moffatt, Giám đốc Chương trình quản lý thông tin, Sáng kiến học đường, IBM Bruce Creighton, Chuyên viên lập kế hoạch các phần kỹ năng, IBM Jessica Cao, Chuyên viên phát triển các công cụ đào tạo, IBM Tóm tắt: Phụ lục A mô tả tất cả các bảng trong cơ sở dữ liệu Aroma, bao gồm hai lược đồ: một lược đồ hình sao đơn giản cho các thông tin bán lẻ và một lược đồ nhiều hình sao...
Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A Tất bảng sở liệu Aroma mối quan hệ chúng với Pat Moffatt, Giám đốc Chương trình quản lý thông tin, Sáng kiến học đường, IBM Bruce Creighton, Chuyên viên lập kế hoạch phần kỹ năng, IBM Jessica Cao, Chuyên viên phát triển công cụ đào tạo, IBM Tóm tắt: Phụ lục A mơ tả tất bảng sở liệu Aroma, bao gồm hai lược đồ: lược đồ hình đơn giản cho thông tin bán lẻ lược đồ nhiều hình (multistar) cho thơng tin mua hàng Phụ lục nằm loạt hướng dẫn SQL & XQuery cho IBM DB2 V ề phụ lục Phụ lục A mô tả tất bảng sở liệu Aroma, bao gồm hai lược đồ: lược đồ hình đơn giản cho thông tin bán lẻ lược đồ nhiều hình (multistar) cho thơng tin mua hàng Hầu hết thí dụ viết sử dụng bảng lược đồ bán lẻ Các bảng mua hàng sử dụng vài ví dụ yêu cầu lược đồ linh hoạt để minh hoạ phù hợp Kết nối tới sở liệu Bạn cần phải kết nối đến sở liệu trước bạn sử dụng câu lệnh SQL để truy vấn thao tác với liệu Câu lệnh CONNECT kết hợp kết nối sở liệu với tên người sử dụng Bạn hỏi giảng viên hướng dẫn bạn tên sở liệu mà bạn cần phải kết nối tới Đối với loạt hướng dẫn này, tên sở liệu aromadb Để kết nối vào sở liệu aromadb, gõ nhập lệnh sau trình xử lý dịng lệnh DB2: CONNECT TO aromadb USER userid USING password Thay userid password mã nhận dạng ID người sử dụng mật mà bạn nhận từ giảng viên hướng dẫn Nếu khơng u cầu phải có ID người sử dụng mật khẩu, bạn cần sử dụng câu lệnh sau: CONNECT TO aromadb Thông điệp sau cho biết bạn thực thành công kết nối: Database Connection Information Database server = DB2/NT 9.0.0 SQL authorization ID = USERID Local database alias = AROMADB Một bạn kết nối, bạn bắt đầu sử dụng sở liệu Cơ sở liệu Aroma: lược đồ bán lẻ Hầu hết ví dụ tài liệu hướng dẫn dựa liệu sở liệu Aroma bản, sở liệu theo dõi việc bán lẻ hàng hàng ngày cửa hàng công ty Aroma Coffee and Tea Hình minh hoạ lược đồ Hình Lược đồ Các hình chân chim lược đồ biểu thị mối quan hệ - nhiều hai bảng Ví dụ, giá trị phân biệt cột Perkey bảng Period xảy lần bảng đó, xảy nhiều lần bảng Sales Lược đồ Aroma Các bảng sau tạo thành sở liệu Aroma bản: Period Định nghĩa khoảng thời gian ngày, tháng, năm Class Định nghĩa lớp sản phẩm bán cửa hàng bán lẻ Product Định nghĩa sản phẩm riêng biệt bán cửa hàng bán lẻ, bao gồm cà phê trà dạng đóng gói dạng để rời, máy pha cà phê Market Định nghĩa thị trường doanh nghiệp theo vùng địa lý Store Định nghĩa cửa hàng bán lẻ riêng biệt thuộc sở hữu vận hành công ty Aroma Coffee and Tea Promotion Định nghĩa loại hình, khoảng thời gian trị giá chương trình khuyến sản phẩm khác Sales Chứa số doanh thu bán hàng cho sản phẩm Aroma khoảng thời gian cửa hàng khác Gold Chứa danh sách khách hàng mua loại thẻ khuyến Các bảng Period (thời kỳ), Class (lớp sản phẩm), Product (sản phẩm), Market (thị trường), Store (cửa hàng bán lẻ), Promotion (khuyến mãi) Gold (khách hàng vàng) ví dụ bảng chiều (dimensions) hoạt động kinh doanh tiêu biểu Chúng nhỏ chứa liệu mô tả quen thuộc với người sử dụng Bảng Sales ví dụ tốt bảng kiện Nó chứa hàng ngàn hàng, thông tin bổ xung thêm rộng rãi truy cập truy vấn phép nối tới bảng chiều mà tham chiếu Dữ liệu mẫu bảng Class Product Truy vấn SELECT * FROM aroma.class; Kết Classkey Lớp sản phẩm Mô tả lớp Bulk_beans Các sản phẩm cà phê rời Bulk_tea Các sản phẩm chè rời Bulk_spice Các gia vị rời Pkg_coffee Các sản phẩm cà phê đóng gói riêng biệt Pkg_tea Các sản phẩm chè đóng gói riêng biệt Pkg_spice Các sản phẩm gia vị đóng gói riêng biệt Hardware Chén cà phê, chén chè, lọ gia vị, máy pha cà phê espresso Gifts Các mẫu thêu, hộp quà tặng, giỏ quà 12 Clothing Áo T-shirts mũ vải Truy vấn SELECT * FROM aroma.product; Kết Classkey Prodkey Prod_Name Pkg_Type Veracruzano No pkg 1 Xalapa Lapa No pkg 10 Colombiano No pkg 11 Expresso XO No pkg 12 La Antigua No pkg 20 Lotta Latte No pkg 21 Cafe Au Lait No pkg 22 NA Lite No pkg 30 Aroma Roma No pkg 31 Demitasse Ms No pkg Darjeeling Number No pkg Darjeeling Special No pkg 10 Assam Grade A No pkg Bảng Class Product Bảng Product mô tả sản phẩm định nghĩa sở liệu Aroma Bảng Class mô tả lớp sản phẩm sản phẩm nói Mơ tả Cột: Bảng Class Tên cột classkey Nội dung Kiểu số nguyên (integer), mã định danh hàng bảng Class Classkey khóa class_type Chuỗi ký tự mã định danh nhóm sản phẩm class_descChuỗi ký tự mơ tả nhóm sản phẩm Mơ tả cột: Bảng Product Tên cột Nội dung classkey Tham chiếu khóa ngồi tới bảng Class prodkey Kiểu số nguyên (integer), kết hợp với giá trị Classkey làm mã định danh hàng bảng Product Classkey/prodkey khóa gồm hai cột prod_nameChuỗi ký tự mã định danh sản phẩm Cơ sở liệu chứa 59 sản phẩm Một sở liệu điền đầy đủ liệu có nhiều sản phẩm Mặc dù số sản phẩm Aroma có tên, chúng thuộc lớp khác có kiểu đóng gói khác pkg_type Chuỗi ký tự mã định danh kiểu đóng gói cho sản phẩm Dữ liệu mẫu bảng Store Market Truy vấn SELECT * FROM aroma.market; Kết Mktkey HQ_City HQ_State District Region Atlanta GA Atlanta South Miami FL Atlanta South New Orleans LA New Orleans South Houston TX New Orleans South New York NY New York North Truy vấn SELECT * FROM aroma.store; Kết StorekeyMktkeyStore_Type Store_Name 14 Street City State Zip Small Roasters, Los Gatos 1234 University Ave 5678 San Jose CA 95156 Bascom Ave Los Gatos CA 95032 14 Large San Jose Roasting Company 14 Medium Cupertino Coffee Supply 987 DeAnza Cupertino CA 97865 Blvd Medium Moulin Rouge Roasting 898 Main Street New Orleans LA 70125 10 Small Moon Pennies 98675 University Ave Detroit MI 48209 Small 9865 The Coffee Club Lakeshore Blvd Chicago IL 06060 Bảng Market Store Bảng Store định nghĩa cửa hàng công ty Aroma Coffee and Tea Bảng Market mô tả thị trường Mỹ mà cửa hàng nằm thị trường Mỗi thị trường xác định thành phố thủ phủ Bảng Market bảng ngồi, giống bảng Class Mơ tả cột: Bảng Market Tên cột Nội dung Mktkey Kiểu số nguyên (integer), mã định danh hàng bảng Market Mktkey khóa hq_city Chuỗi ký tự mã định danh thành phố Bảng Market định nghĩa 17 thành phố Một sở liệu đầy đủ có hàng ngàn thành phố State Chuỗi ký tự mã định danh bang Chuỗi ký tự mã định danh hạt dựa thành phố thủ phủ District Một sở liệu toàn cầu chứa tên quốc gia đất nước hay khu vực địa lý khác Chuỗi ký tự mã định danh vùng Bảng Market định nghĩa Region vùng toàn lãnh thổ Mỹ Một sở liệu toàn diện bao gồm nhiều vùng nhiều hạt vùng 11 36 279.00 11 132.00 10 12 48.00 Bảng Sales Khố gồm nhiều phần Bảng Sales chứa khố gồm nhiều phần: Mỗi cột năm cột tham chiếu khóa ngồi tới khóa bảng khác: perkey, classkey, prodkey, storekey, promokey Khóa liên kết liệu bảng Sales tới bảng chiều Period, Product, Store Promotion Các phép nối tới bảng Sales hiển thị ví dụ suốt loạt hướng dẫn Mô tả cột Tên cột perkey Nội dung Tham chiếu khóa ngồi tới bảng Period classkey Tham chiếu khóa ngồi tới bảng Class prodkey Tham chiếu khóa ngồi tới bảng Product storekey Tham chiếu khóa ngồi tới bảng Store promokey Tham chiếu khóa ngồi tới bảng Promotion quantity Kiểu số nguyên (integer), biểu diễn tổng số lượng bán (theo ngày) dollars Số thập phân, số tiền bán hàng tính la (theo ngày) Dữ liệu mẫu bảng Gold Lưu ý: Các học viên khơng tìm thấy bảng sở liệu Aroma sau khởi tạo Nó dự tính học viên tạo phần Ngơn ngữ định nghĩa kiểm sốt liệu loạt hướng dẫn (developerWorks, tháng Tám năm 2006) Bảng kết hiển thị bảng ta có sau mục "Câu lệnh INSERT" thuộc phần Truy vấn SELECT * FROM aroma.gold; Kết Card_idStorekey Fname Lname Email Status 1 Ada Alexandercoffee_lover@hotmail.comActive Ben Bowman mmmcoffee@yahoo.com Active CynthiaChen iheartcoffee@gmail.com David Doyle coffee_maniac@msn.com Active Emily Enright cupAday@hotmail.com Frank Freeman coffee_addict@gmail.com Active Active Active Bảng Gold Bảng Gold chứa thông tin khách hàng mua thẻ khuyến Mô tả cột Tên cột Nội dung card_id Kiểu SMALLINT, xác định khách hàng số thẻ storekey Tham chiếu khóa ngồi tới bảng Store fname Chuỗi ký tự chứa tên khách hàng lname Chuỗi ký tự chứa họ khách hàng email Chuỗi ký tự chứa địa email khách hàng status Chuỗi ký tự chứa thơng tin tình trạng khách hàng Lược đồ mua hàng sở liệu Aroma Một số ví dụ loạt hướng dẫn dựa bảng sử dụng để theo dõi đơn hàng mà công ty Aroma Coffee and Tea nhận từ nhà cung cấp Lược đồ mua hàng sử dụng bảng chiều Product, Class, Period lược đồ bán lẻ, có thêm hai bảng riêng mình: Deal (các giao dịch) Supplier (Nhà cung cấp) Cả hai bảng Line_Items Orders (Các đơn hàng) chứa kiện, bảng Orders truy vấn bảng chiều, tham chiếu bảng Line_Items Hình minh hoạ bảng lược đồ mua hàng Hình Các bảng lược đồ mua hàng Lược đồ nhiều hình Các khóa bảng Line_Items bảng Orders không khớp với khóa ngồi bảng chiều tương ứng Bất tổ hợp cho khóa bảng chiều trỏ đến nhiều hàng bảng kiện Loại bảng biết đến bảng kiện nhiều hình danh sách liệu Ví dụ: Nhiều mã số đơn hàng bảng Order tham chiếu đến đặc điểm bảng Supplier, Deal Period: Order_No Perkey Supkey Dealkey 3699 817 1007 3700 817 1007 Các bảng mua hàng Lược đồ mua hàng chứa loại kiện giống kiện lưu giữ bảng Sales, mục giá số lượng Mục giá giá trị tính la số tiền trả cho nhà cung cấp toàn đơn hàng sản phẩm cụ thể đơn hàng Mục số lượng số đơn vị sản phẩm đặt hàng Bạn sử dụng lược đồ để đặt câu hỏi thú vị lịch sử mua hàng công ty Aroma Coffee and Tea, ví dụ, nhà cung cấp cho giá tốt với sản phẩm nào, nhà cung cấp đạt mức cao kết toán đơn đặt hàng Công ty Aroma Coffee and Tea bán sản phẩm cửa hàng mà đặt hàng thơng qua nhà cung cấp Vì thế, bạn viết truy vấn bắc qua hai lược đồ để so sánh đặt mua với bán để tính tốn biên độ lợi nhuận đơn giản Các bảng sau tạo nên lược mua hàng sở liệu Aroma: Period Xác định khoảng thời gian ngày, tháng, năm Class Xác định lớp sản phẩm, bán cửa hàng bán lẻ đặt hàng từ nhà cung cấp Product Xác định sản phẩm riêng biệt, bán cửa hàng bán lẻ đặt hàng từ nhà cung cấp Supplier Xác định nhà cung cấp sản phẩm công ty Aroma Coffee and Tea đặt hàng Deal Xác định giao dịch giảm giá áp dụng cho đơn đặt hàng nhà cung cấp Line_ItemsChứa thơng tin chi tiết dịng mục hàng đơn đặt hàng, bao gồm giá số lượng mục hàng đơn đặt hàng Orders Chứa thông tin đơn hàng mua sản phẩm, chẳng hạn tổng giá đơn hàng loại sản phẩm đặt hàng Các bảng Supplier Deal dành cho lược đồ mua hàng bảng Orders tham chiếu Lời nhắc: Lược đồ mua hàng chứa liệu cho quý năm 2000 mà Dữ liệu mẫu bảng Supplier Deal Truy vấn SELECT * FROM aroma.supplier; Kết Supkey Type Name Street City State Zip 1001 Coffee/teaCB Imports 1002 Tea Tea Makers, Inc 100 Church Mountain Street View CA 94001 1555 Hicks San Jose Rd CA 95124 Truy vấn SELECT * FROM aroma.deal; Kết Dealkey Deal_Type Deal_Desc Discount 1000 No deal 0.00 100 Orders over $10,000 100.00 100 Orders over $20,000 500.00 100 Supplier catalog coupon 50.00 100 Supplier catalog coupon 100.00 37 200 Supplier coffee special 75.00 38 200 Supplier coffee special 50.00 39 200 Supplier tea special 40.00 40 200 Supplier tea special 20.00 Bảng Supplier Deal Mô tả cột: Bảng Supplier Tên cột Nội dung supkey Kiểu số nguyên (Integer), mã định danh hàng bảng Supplier Supkey khóa type Chuỗi ký tự cho biết kiểu sản phẩm cung cấp name Chuỗi ký tự xác định nhà cung cấp theo tên street, city, state, zip Các cột xác định địa nhà cung cấp Mô tả cột: Bảng Deal Tên cột Nội dung dealkey Kiểu số nguyên (Integer), mã định danh hàng bảng Deal Dealkey khóa deal_type Kiểu số nguyên (Integer), mã định danh loại hình giao dịch (mã số giao dịch) deal_descChuỗi ký tự mô tả loại hình giao dịch discount Giá trị dạng số thập phân, cho biết số tiền giảm giá tính la áp dụng cho đơn đặt hàng Các bảng chiều chia sẻ chung Lược đồ mua hàng chia sẻ chung bảng Period, Product Class với lược đồ bán lẻ Cũng bạn truy vấn lược đồ bán lẻ lược đồ mua hàng cách độc lập, bạn đưa số câu hỏi thú vị liên quan bảng từ hai lược đồ Ví dụ, bạn làm phép nối bảng Sales Line_Items để so sánh số lượng sản phẩm đặt mua với số lượng sản phẩm bán Một truy vấn sử dụng bảng chiều chung để ràng buộc sản phẩm thời kỳ Dữ liệu mẫu bảng Orders Line_Items Truy vấn SELECT * FROM aroma.orders; Kết Order_NoPerkeySupkeyDealkeyOrder_TypeOrder_DescClose_Date Price 3600 731 1001 37 Coffee Whole coffee b 2006-01-07 1200.46 3601 732 1001 37 Coffee Whole coffee b 2006-01-07 1535.94 3602 733 1001 Tea Loose tea, bul 2006-01-07 780.00 3603 740 1001 39 Tea Loose tea, bul 2006-01-21 956.45 3604 744 1005 Spice Pre-packed 2006-01-16 800.66 spi 3605 768 1003 Coffee Whole-bean 2006-02-12 25100.00 and 3606 775 1003 Coffee Whole-bean 2006-02-19 25100.00 and 3607 782 1003 Coffee Whole-bean 2006-02-25 25100.00 and 3608 789 1003 Coffee Whole-bean 2006-03-03 30250.00 and 3609 796 1003 Coffee Whole-bean 2006-03-15 25100.00 and Truy vấn SELECT * FROM aroma.line_items; Kết Order_No Line_Item Perkey Classkey Prodkey Receive_Date Qty Price 3600 731 1 2006-01-07 40 180.46 3600 731 10 2006-01-07 50 300.00 3600 731 11 2006-01-07 80 240.00 3600 731 12 2006-01-07 150 240.00 3600 731 20 2006-01-07 60 240.00 3601 732 2006-01-07 60 240.00 3601 732 1 2006-01-07 60 240.00 3601 732 10 2006-01-07 60 240.00 3601 732 11 2006-01-07 60 240.00 3601 732 12 2006-01-07 60 240.00 3601 732 31 2006-01-07 70 335.94 3602 733 2006-01-08 70 130.00 3602 733 2006-01-08 70 130.00 Các bảng Orders Line_Items Các bảng Orders Line_Items chứa kiện mua hàng Mô tả cột: Bảng Orders Tên cột order_no Nội dung Kiểu số nguyên (Integer) mã định danh hàng bảng Order Order_No khóa perkey Tham chiếu khóa ngồi tới bảng Period supkey Tham chiếu khóa ngồi tới bảng Supplier dealkey Tham chiếu khóa ngồi tới bảng Deal order_type Chuỗi ký tự xác định loại sản phẩm theo đơn hàng order_descChuỗi ký tự mơ tả loại hình đơn hàng close_date Giá trị ngày tháng, xác định thời gian đơn hàng hoàn thành chấm dứt price Giá trị số thập phân, cho biết tổng giá đơn hàng Mô tả cột: Bảng Line_Items Tên cột Nội dung order_no Kiểu số nguyên (Integer) mã định danh hàng bảng Orders Order_No khóa line_item Kiểu số ngun (Integer) mã số mục liệt kê đơn hàng perkey Tham chiếu khóa ngồi tới bảng Period classkey Tham chiếu khóa ngồi tới bảng Class prodkey Tham chiếu khóa ngồi tới bảng Products receive_dateGiá trị ngày tháng, xác định mục sản phẩm tiếp nhận quantity Kiểu số nguyên (Integer), cho biết số lượng sản phẩm đặt hàng cho mục sản phẩm price Giá trị số thập phân cho biết chi phí dịng mục hàng ... lệnh sau: CONNECT TO aromadb Thông điệp sau cho biết bạn thực thành công kết nối: Database Connection Information Database server = DB2/NT 9.0.0 SQL authorization ID = USERID Local database alias... Xalapa Lapa No pkg 10 Colombiano No pkg 11 Expresso XO No pkg 12 La Antigua No pkg 20 Lotta Latte No pkg 21 Cafe Au Lait No pkg 22 NA Lite No pkg 30 Aroma Roma No pkg 31 Demitasse Ms No pkg Darjeeling... định danh kiểu đóng gói cho sản phẩm Dữ liệu mẫu bảng Store Market Truy vấn SELECT * FROM aroma.market; Kết Mktkey HQ_City HQ_State District Region Atlanta GA Atlanta South Miami FL Atlanta South