1. Trang chủ
  2. » Công Nghệ Thông Tin

Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A pptx

34 267 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 2,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hướng dẫn SQL & XQuery cho IBM DB2, 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 đồ:

Trang 1

Hướng dẫn SQL & XQuery cho IBM DB2,

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 (multistar) cho các thông tin mua hàng Phụ lục này nằm trong loạt bài hướng dẫn về SQL & XQuery cho IBM DB2

V ề phụ lục này

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 (multistar) cho các thông tin mua hàng

Hầu hết các thí dụ trong bài viết này sử dụng các bảng trong lược đồ bán lẻ Các bảng mua hàng được sử dụng trong một vài ví dụ yêu cầu một lược đồ linh hoạt hơn để minh hoạ phù hợp

Kết nối tới cơ sở dữ liệu

Bạn cần phải kết nối đến một cơ sở dữ liệu trước khi bạn có thể sử dụng câu lệnh SQL để truy vấn hoặc thao tác với các dữ liệu Câu lệnh CONNECT kết hợp một kết nối cơ sở dữ liệu với một tên người sử dụng

Bạn hãy hỏi giảng viên hướng dẫn của bạn về tên cơ sở dữ liệu mà bạn cần phải kết nối tới Đối với loạt bài hướng dẫn này, tên cơ sở dữ liệu là aromadb

Trang 2

Để kết nối vào cơ sở dữ liệu aromadb, hãy gõ nhập lệnh sau đây tại trình xử lý dòng lệnh DB2:

CONNECT TO aromadb USER userid USING password

Thay thế userid và password bằng mã nhận dạng ID người sử dụng và mật khẩu

mà bạn nhận được từ giảng viên hướng dẫn Nếu không yêu cầu phải có ID người

sử dụng và mật khẩu, thì bạn chỉ 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 hiện 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 khi bạn đã được kết nối, bạn có thể bắt đầu sử dụng cơ sở dữ liệu

Cơ sở dữ liệu Aroma: lược đồ bán lẻ

Hầu hết các ví dụ trong tài liệu hướng dẫn này được dựa trên dữ liệu của cơ sở dữ liệu Aroma cơ bản, cơ sở dữ liệu này theo dõi việc bán lẻ hàng hàng ngày tại các

Trang 3

cửa hàng của công ty Aroma Coffee and Tea Hình 1 minh hoạ lược đồ cơ bản này

Hình 1 Lược đồ cơ bản

Các hình chân chim trong lược đồ này biểu thị mối quan hệ một - nhiều giữa hai bảng Ví dụ, mỗi giá trị phân biệt trong cột Perkey của bảng Period có thể chỉ xảy

ra một lần trong bảng đó, nhưng xảy ra nhiều lần trong bảng Sales

Lược đồ Aroma cơ bản

Các bảng sau đây tạo thành cơ sở dữ liệu Aroma cơ bản:

Period Định nghĩa các khoảng thời gian như ngày, tháng, và năm

Class Định nghĩa lớp các sản phẩm bán tại cửa hàng bán lẻ

Product Định nghĩa các sản phẩm riêng biệt bán tại cửa hàng bán lẻ, bao gồm cà

phê và trà dạng đóng gói và dạng để rời, máy pha cà phê

Trang 4

Market Định nghĩa thị trường của doanh nghiệp theo vùng địa lý

Store Định nghĩa các cửa hàng bán lẻ riêng biệt thuộc sở hữu và vận hành bởi

công ty Aroma Coffee and Tea

Promotion Định nghĩa các loại hình, khoảng thời gian và trị giá của các chương

trình khuyến mãi trên các sản phẩm khác nhau

Sales Chứa số doanh thu bán hàng cho các sản phẩm của Aroma trong các

khoảng thời gian tại các cửa hàng khác nhau

Gold Chứa danh sách khách hàng đã mua các loại thẻ khuyến mãi

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) và Gold (khách hàng vàng) là những ví dụ về những bảng chiều (dimensions) của hoạt động kinh doanh tiêu biểu Chúng nhỏ và chứa các dữ liệu mô tả quen thuộc với người sử dụng

Bảng Sales là một ví dụ tốt về một bảng sự kiện Nó chứa hàng ngàn hàng, và các thông tin bổ xung thêm rộng rãi của nó được truy cập trong các truy vấn bằng các phép nối tới các bảng chiều mà nó tham chiếu

Trang 5

3 Bulk_spice Các gia vị rời

4 Pkg_coffee Các sản phẩm cà phê đóng gói riêng biệt

5 Pkg_tea Các sản phẩm chè đóng gói riêng biệt

6 Pkg_spice Các sản phẩm gia vị đóng gói riêng biệt

7 Hardware Chén cà phê, chén chè, lọ gia vị, máy pha

cà phê espresso

8 Gifts Các mẫu thêu, hộp quà tặng, giỏ quà

12 Clothing Áo T-shirts và mũ vải

Truy vấn

SELECT * FROM aroma.product;

Trang 7

Tên cột Nội dung

classkey Kiểu số nguyên (integer), là mã định danh một hàng trong bảng Class

Classkey là khóa chính

class_type Chuỗi ký tự là mã định danh một nhóm sản phẩm

class_desc Chuỗi ký tự mô 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 ngoài tới bảng Class

prodkey

Kiểu số nguyên (integer), kết hợp với một giá trị của Classkey làm mã định danh một hàng trong bảng Product Classkey/prodkey là khóa chính gồm hai cột

prod_name Chuỗi ký tự là mã định danh một sản phẩm Cơ sở dữ liệu chứa 59 sản

phẩm Một cơ sở dữ liệu điền đầy đủ dữ liệu sẽ có nhiều sản phẩm hơn

Trang 8

nữa Mặc dù một số sản phẩm của Aroma có cùng tên, chúng thuộc các lớp khác nhau và có kiểu đóng gói khác nhau

pkg_type Chuỗi ký tự là mã định danh một kiểu đóng gói cho mỗi sản phẩm

Mktkey HQ_City HQ_State District Region

Trang 9

Truy vấn

SELECT * FROM aroma.store;

Kết quả

Storekey MktkeyStore_Type Store_Name Street City State Zip

1 14 Small Roasters, Los

Gatos

1234 University Ave

Los Gatos CA 95032

San Jose Roasting Company

5678 Bascom Ave San Jose CA 95156

Coffee Supply

987 DeAnza Blvd Cupertino CA 97865

Roasting

898 Main Street

New Orleans LA 70125

98675 University Ave

Detroit MI 48209

Trang 10

6 9 Small The Coffee Club

9865 Lakeshore Blvd

hq_city Chuỗi ký tự là mã định danh một thành phố Bảng Market định nghĩa 17

thành phố Một cơ sở dữ liệu đầy đủ có thể có hàng ngàn thành phố

State Chuỗi ký tự là mã định danh một bang

District

Chuỗi ký tự là mã định danh một hạt được dựa trên thành phố thủ phủ Một cơ sở dữ liệu toàn cầu sẽ chứa tên các quốc gia hoặc đất nước hay khu vực địa lý khác

Region

Chuỗi ký tự là mã định danh một vùng Bảng Market chỉ định nghĩa 4 vùng trên toàn lãnh thổ Mỹ Một cơ sở dữ liệu toàn diện sẽ bao gồm nhiều vùng và có thể nhiều hạt trong một vùng

Trang 11

Mô tả Cột: Bảng Store

Tên cột Nội dung

storekey Kiểu số nguyên (integer), là mã định danh một hàng trong bảng

Store Storekey là khóa chính

Mktkey Tham chiếu khóa ngoài tới bảng Market

store_type Chuỗi ký tự xác định một cửa hàng theo kích cỡ

store_name Chuỗi ký tự xác định một cửa hàng theo tên

street, city, state,

zip Các cột xác định địa chỉ của mỗi cửa hàng

Trang 12

Perkey Date Day Week Month Qtr Year

Trang 14

ngày 31 tháng Ba, 2000

Day Chuỗi ký tự viết tắt của các ngày trong tuần

Week Kiểu số nguyên (integer), xác định mỗi tuần của năm theo số thứ tự của

tuần (Tuần số 1 đến tuần số 53, mỗi tuần mới bắt đầu vào ngày chủ nhật)

Month Chuỗi ký tự viết tắt tên của mỗi tháng

Qtr Chuỗi ký tự xác định duy nhất mỗi quý (ví dụ, Q1_98, Q3_99)

Year Kiểu số nguyên (integer), xác định một năm

Trang 15

1.00

2004-08-01

2004-08-31

Trang 16

9 100

Aroma catalog coupon

Trang 17

coupon

Aroma catalog coupon

đó hàng hóa được bán

Mô tả cột

Tên cột Nội dung

promokey Kiểu số nguyên (integer), là mã định danh một hàng trong bảng

Promotion Promokey là khóa chính

promo_type Kiểu số nguyên (integer), là mã định danh chương trình khuyến

mãi (mã số khuyến mãi)

Trang 18

promo_desc Chuỗi ký tự mô tả các loại hình khuyến mãi

value

Số thập phân, biểu diễn giá trị tính bằng đô-la của chương trình khuyến mãi, ví dụ như giảm giá hoặc giá trị của một phiếu giảm giá

Trang 20

Bảng Sales chứa một khoá chính gồm nhiều phần: Mỗi một cột trong năm cột của

nó là tham chiếu khóa ngoài tới một khóa chính của một bảng khác:

perkey, classkey, prodkey, storekey, promokey

Khóa chính này liên kết các dữ liệu của bảng Sales tới các bảng chiều Period, Product, Store và Promotion

Các phép nối tới bảng Sales được hiển thị trong các ví dụ trong suốt loạt bài hướng dẫn này

Mô tả cột

Tên cột Nội dung

perkey Tham chiếu khóa ngoài tới bảng Period

Trang 21

classkey Tham chiếu khóa ngoài tới bảng Class

prodkey Tham chiếu khóa ngoài tới bảng Product

storekey Tham chiếu khóa ngoài tới bảng Store

promokey Tham chiếu khóa ngoài tới bảng Promotion

quantity Kiểu số nguyên (integer), biểu diễn tổng số lượng bán ra (theo ngày)

dollars Số thập phân, là số tiền bán hàng tính bằng đô la (theo ngày)

Dữ liệu mẫu của bảng Gold

Lưu ý: Các học viên sẽ không tìm thấy bảng này trong cơ sở dữ liệu Aroma sau

khi khởi tạo Nó được dự tính là do học viên tạo ra tại phần 6 Ngôn ngữ định nghĩa và kiểm soát dữ liệu của loạt bài hướng dẫn này (developerWorks, tháng Tám năm 2006)

Bảng kết quả dưới đây hiển thị bảng ta sẽ có sau mục "Câu lệnh INSERT" thuộc phần 6

Truy vấn

SELECT * FROM aroma.gold;

Trang 22

Kết quả

Card_id Storekey Fname Lname Email Status

1 1 Ada Alexander coffee_lover@hotmail.comActive

2 1 Ben Bowman mmmcoffee@yahoo.com Active

3 1 Cynthia Chen iheartcoffee@gmail.com Active

4 1 David Doyle coffee_maniac@msn.com Active

5 1 Emily Enright cupAday@hotmail.com Active

6 1 Frank Freeman coffee_addict@gmail.com Active

Bảng Gold

Bảng Gold chứa các thông tin về khách hàng đã mua thẻ khuyến mãi

Mô tả cột

Tên cột Nội dung

card_id Kiểu SMALLINT, xác định khách hàng bằng một số thẻ duy nhất

storekey Tham chiếu khóa ngoài tới bảng Store

Trang 23

fname Chuỗi ký tự chứa tên của khách hàng

lname Chuỗi ký tự chứa họ của khách hàng

email Chuỗi ký tự chứa địa chỉ email của khách hàng

status Chuỗi ký tự chứa các thông tin về tình trạng của khách hàng

Lược đồ mua hàng của cơ sở dữ liệu Aroma

Một số ví dụ trong loạt bài hướng dẫn này dựa trên các bảng được sử dụng để theo dõi các đơn hàng mà công ty Aroma Coffee and Tea nhận được từ các nhà cung cấp Lược đồ mua hàng này cũng sử dụng chính các bảng chiều Product, Class, và Period như lược đồ bán lẻ, nhưng nó có thêm hai bảng riêng của mình: Deal (các giao dịch) và Supplier (Nhà cung cấp) Cả hai bảng Line_Items và Orders (Các đơn hàng) chứa các sự kiện, nhưng bảng Orders cũng có thể được truy vấn như là một bảng chiều, tham chiếu bởi bảng Line_Items

Hình 2 minh hoạ các bảng trong lược đồ mua hàng

Trang 24

Hình 2 Các bảng trong lược đồ mua hàng

Lược đồ nhiều hình sao

Các khóa chính của bảng Line_Items và bảng Orders không khớp với bộ khóa ngoài của các bảng chiều tương ứng Bất cứ tổ hợp đã cho nào các khóa chính của bảng chiều đều có thể trỏ đến nhiều hơn một hàng trong các bảng sự kiện này

Loại bảng này được biết đến như là bảng sự kiện nhiều hình sao hoặc là danh sách các dữ liệu

Ví dụ: Nhiều mã số đơn hàng trong bảng Order có thể tham chiếu đến cùng một bộ các đặc điểm trong các bảng Supplier, Deal và Period:

Order_No Perkey Supkey Dealkey

Các bảng mua hàng

Trang 25

Lược đồ mua hàng chứa cùng loại sự kiện giống như các sự kiện được lưu giữ trong các bảng Sales, đó là các mục giá cả và số lượng Mục giá cả là giá trị tính bằng đô la số tiền đã trả cho nhà cung cấp đối với toàn bộ đơn hàng hoặc một sản phẩm cụ thể trong đơn hàng Mục số lượng là số đơn vị sản phẩm đã đặt hàng

Bạn có thể sử dụng lược đồ này để đặt các câu hỏi thú vị về lịch sử mua hàng của công ty Aroma Coffee and Tea, ví dụ, nhà cung cấp nào cho giá tốt nhất và với sản phẩm nào, hoặc nhà cung cấp nào đạt mức cao nhất khi kết toán các đơn đặt hàng

Công ty Aroma Coffee and Tea bán cùng các sản phẩm tại các cửa hàng của mình

mà nó đặt hàng thông qua các nhà cung cấp Vì thế, bạn có thể viết các truy vấn bắc qua cả hai lược đồ để so sánh những cái đã được đặt mua với những cái đã được bán hoặc để tính toán các biên độ lợi nhuận đơn giản

Các bảng sau đây tạo nên lược mua hàng của cơ sở dữ liệu Aroma:

Period Xác định các khoảng thời gian như ngày, tháng, năm

Class Xác định các lớp sản phẩm, được bán tại cửa hàng bán lẻ và được đặt

Line_Items Chứa các thông tin chi tiết trên một dòng mục hàng trong các đơn đặt

hàng, bao gồm cả giá cả và số lượng của mỗi mục hàng trên mỗi đơn

Trang 26

đặt hàng

Orders Chứa thông tin về các đơn hàng mua sản phẩm, chẳng hạn như tổng giá

của từng đơn hàng và các loại sản phẩm được đặt hàng

Các bảng Supplier và Deal chỉ dành cho lược đồ mua hàng và được bảng Orders tham chiếu

Lời nhắc: Lược đồ mua hàng chỉ chứa

dữ liệu cho quý đầu tiên của năm 2000

Trang 27

1001 Coffee/teaCB Imports 100 Church

Street

Mountain View CA 94001

1002 Tea

Tea Makers, Inc

3 100 Supplier catalog coupon 50.00

4 100 Supplier catalog coupon 100.00

Trang 28

37 200 Supplier coffee special 75.00

38 200 Supplier coffee special 50.00

Bảng Supplier và Deal

Mô tả cột: Bảng Supplier

Tên cột Nội dung

supkey Kiểu số nguyên (Integer), là mã định danh một hàng trong bảng

Supplier Supkey là khóa chính

type Chuỗi ký tự cho biết kiểu sản phẩm được cung cấp

name Chuỗi ký tự xác định các nhà cung cấp theo tên

street, city,

state, zip Các cột xác định địa chỉ của nhà cung cấp

Mô tả cột: Bảng Deal

Trang 29

Tên cột Nội dung

dealkey Kiểu số nguyên (Integer), là mã định danh một hàng trong bảng Deal

Dealkey là khóa chính

deal_type Kiểu số nguyên (Integer), là mã định danh loại hình giao dịch (mã số

giao dịch)

deal_desc Chuỗ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 bằng đô la áp

dụng cho một đơn đặt hàng

Các bảng chiều được chia sẻ chung

Lược đồ mua hàng chia sẻ chung các bảng Period, Product và Class với lược đồ bán lẻ

Cũng như khi bạn truy vấn lược đồ bán lẻ và lược đồ mua hàng một cách độc lập, bạn có thể đưa ra một số câu hỏi thú vị liên quan các bảng từ cả hai lược đồ Ví dụ, bạn có thể làm phép nối các bảng Sales và Line_Items để so sánh số lượng của sản phẩm đã đặt mua với số lượng của sản phẩm đã bán Một truy vấn như vậy sử dụng các bảng chiều chung để ràng buộc các sản phẩm và các thời kỳ

Dữ liệu mẫu của các bảng Orders và Line_Items

Truy vấn

Trang 30

SELECT * FROM aroma.orders;

Trang 32

Tên cột Nội dung

order_no Kiểu số nguyên (Integer) là mã định danh một hàng trong bảng Order

Order_No là khóa chính

Trang 33

perkey Tham chiếu khóa ngoài tới bảng Period

supkey Tham chiếu khóa ngoài tới bảng Supplier

dealkey Tham chiếu khóa ngoà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_desc Chuỗi ký tự mô tả loại hình của đơn hàng

close_date Giá trị ngày tháng, xác định thời gian đơn hàng đã hoàn thành hoặc

chấm dứt

price Giá trị số thập phân, cho biết tổng giá của đơ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) là mã định danh một hàng trong bảng

Orders Order_No là khóa chính

line_item Kiểu số nguyên (Integer) là mã số của mỗi mục được liệt kê trong đơn

hàng

perkey Tham chiếu khóa ngoài tới bảng Period

classkey Tham chiếu khóa ngoài tới bảng Class

Trang 34

prodkey Tham chiếu khóa ngoài tới bảng Products

receive_date Giá trị ngày tháng, xác định khi nào mục sản phẩm được tiếp nhận

quantity Kiểu số nguyên (Integer), cho biết số lượng của sản phẩm được đặt

hàng cho mỗi mục sản phẩm

price Giá trị số thập phân cho biết chi phí của một dòng mục hàng

Ngày đăng: 07/08/2014, 09:23

HÌNH ẢNH LIÊN QUAN

Hình 1. Lược đồ cơ bản - Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A pptx
Hình 1. Lược đồ cơ bản (Trang 3)
Bảng Period - Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A pptx
ng Period (Trang 13)
Bảng Promotion - Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A pptx
ng Promotion (Trang 17)
Bảng Sales - Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A pptx
ng Sales (Trang 20)
Bảng Gold - Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A pptx
ng Gold (Trang 22)
Hình 2. Các bảng trong lược đồ mua hàng - Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A pptx
Hình 2. Các bảng trong lược đồ mua hàng (Trang 24)

TỪ KHÓA LIÊN QUAN