Skip to main content

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

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
Pat Moffatt là giám đốc Chương trình quản lý thông tin thuộc Sáng kiến học đường IBM. Thông qua chương trình sáng kiến học đường này, bà muốn làm ra sẵn những nguồn tài nguyên thích hợp phục vụ giảng dạy về quản lý thông tin để giúp các giảng viên đại học tích hợp chủ đề phần mềm quản lý thông tin vào trong chương trình đào tạo của họ
Bruce Creighton, Chuyên viên lập kế hoạch các phần kỹ năng, IBM
Bruce Creighton là chuyên viên lập kế hoạch các phần kỹ năng trong khoa Phát triển và Lập kế hoạch đào tạo Quản lý thông tin. Với vai trò này, ông lập kế hoạch đầu tư về nội dung đào tạo và cân bằng đầu tư giữa các lĩnh vực mà IBM có thu lợi nhuận với các lĩnh vực mà tại đó yêu cầu về phát triển các kỹ năng là quan trọng, cần cung cấp đào tạo miễn phí
Jessica Cao, Chuyên viên phát triển các công cụ đào tạo, IBM
Jessica Cao là một sinh viên ngành Nghệ thuật - Khoa học và ngành Khoa học máy tính tại Trường đại học McMaster. Chị sẽ tốt nghiệp văn bằng kép hạng danh dự vào tháng Tư 2009. Jessica đang làm việc trong chương trình hỗ trợ và lập kế hoạch kênh kỹ năng quản lý thông tin DB2 của phòng thí nghiệm IBM Toronto, nhằm chuyên chú sâu hơn vào lập trình, biên tập và kỹ năng viết

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..

Xem thêm bài trong loạt bài này

Ngày:  23 10 2009
Mức độ:  Trung bình Cũng sẵn có bằng  tiếng Anh PDF:  A4 và Thư (273KB | 15 pages)Tải Adobe® Reader®
Hoạt động:  1154 các khung nhin
Góp ý kiến:  

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.

Để 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ế useridpassword 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 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
Basic schema

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ê.
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.
SalesChứ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.
GoldChứ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.


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

Truy vấn

SELECT * FROM aroma.class;


Kết quả

ClasskeyLớp sản phẩmMô tả lớp
1 Bulk_beans Các sản phẩm cà phê rời
2 Bulk_teaCác sản phẩm chè rời
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;


Kết quả

ClasskeyProdkeyProd_NamePkg_Type
1 0 Veracruzano No pkg
1 1 Xalapa Lapa No pkg
1 10 Colombiano No pkg
1 11 Expresso XO No pkg
1 12 La Antigua No pkg
1 20 Lotta Latte No pkg
1 21 Cafe Au Lait No pkg
1 22 NA Lite No pkg
1 30 Aroma Roma No pkg
1 31 Demitasse Ms No pkg
2 0 Darjeeling Number 1 No pkg
2 1 Darjeeling Special No pkg
2 10 Assam Grade A No pkg
...

Bảng Class và Product

Bảng Product mô tả các sản phẩm được định nghĩa trong các cơ sở dữ liệu Aroma. Bảng Class mô tả các lớp sản phẩm của các sản phẩm nói trên.


Mô tả Cột: Bảng Class
Tên cột Nội dung
classkeyKiểu số nguyên (integer), là mã định danh một hàng trong bảng Class. Classkey là khóa chính.
class_typeChuỗi ký tự là mã định danh một nhóm sản phẩm.
class_descChuỗ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
classkeyTham chiếu khóa ngoài tới bảng Class.
prodkeyKiể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_nameChuỗ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 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_typeChuỗi ký tự là mã định danh một kiểu đóng gói cho mỗi sản phẩm.


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

Truy vấn

SELECT * FROM aroma.market;


Kết quả

MktkeyHQ_CityHQ_StateDistrictRegion
1AtlantaGAAtlantaSouth
2MiamiFLAtlantaSouth
3New OrleansLANew OrleansSouth
4HoustonTXNew OrleansSouth
5New YorkNYNew YorkNorth
...


Truy vấn

SELECT * FROM aroma.store;


Kết quả

StorekeyMktkeyStore_TypeStore_NameStreetCityStateZip
114SmallRoasters, Los Gatos1234 University AveLos GatosCA95032
214LargeSan Jose Roasting Company5678 Bascom AveSan JoseCA95156
314MediumCupertino Coffee Supply987 DeAnza BlvdCupertinoCA97865
43MediumMoulin Rouge Roasting898 Main StreetNew OrleansLA70125
510SmallMoon Pennies98675 University AveDetroitMI48209
69SmallThe Coffee Club9865 Lakeshore BlvdChicagoIL06060
...

Bảng Market và Store

Bảng Store định nghĩa các cửa hàng của công ty Aroma Coffee and Tea. Bảng Market mô tả các thị trường tại Mỹ mà mỗi cửa hàng nằm trong thị trường đó. Mỗi thị trường được xác định bởi một thành phố thủ phủ. Bảng Market là một bảng ngoài, giống như bảng Class.


Mô tả cột: Bảng Market
Tên cột Nội dung
MktkeyKiểu số nguyên (integer), là mã định danh một hàng trong bảng Market. Mktkey là khóa chính.
hq_cityChuỗ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ố.
StateChuỗi ký tự là mã định danh một bang.
DistrictChuỗ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.
RegionChuỗ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.


Mô tả Cột: Bảng Store
Tên cột Nội dung
storekeyKiểu số nguyên (integer), là mã định danh một hàng trong bảng Store. Storekey là khóa chính.
MktkeyTham chiếu khóa ngoài tới bảng Market.
store_typeChuỗi ký tự xác định một cửa hàng theo kích cỡ.
store_nameChuỗi ký tự xác định một cửa hàng theo tên.
street, city, state, zipCác cột xác định địa chỉ của mỗi cửa hàng.


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

Truy vấn

SELECT * FROM aroma.period;


Kết quả

Perkey Date Day Week Month Qtr Year
1 2004-01-01 TH 1 JAN Q1_04 2004
2 2004-01-02 FR 1 JAN Q1_04 2004
3 2004-01-03 SA 1 JAN Q1_04 2004
4 2004-01-04 SU 2 JAN Q1_04 2004
5 2004-01-05 MO 2 JAN Q1_04 2004
6 2004-01-06 TU 2 JAN Q1_04 2004
7 2004-01-07 WE 2 JAN Q1_04 2004
8 2004-01-08 TH 2 JAN Q1_04 2004
9 2004-01-09 FR 2 JAN Q1_04 2004
10 2004-01-10 SA 2 JAN Q1_04 2004
11 2004-01-11 SU 3 JAN Q1_04 2004
12 2004-01-12 MO 3 JAN Q1_04 2004
13 2004-01-13 TU 3 JAN Q1_04 2004
14 2004-01-14 WE 3 JAN Q1_04 2004
15 2004-01-15 TH 3 JAN Q1_04 2004
16 2004-01-16 FR 3 JAN Q1_04 2004
17 2004-01-17 SA 3 JAN Q1_04 2004
18 2004-01-18 SU 4 JAN Q1_04 2004
19 2004-01-19 MO 4 JAN Q1_04 2004
20 2004-01-20 TU 4 JAN Q1_04 2004
...

Bảng Period

Bảng Period định nghĩa các khoảng thời gian là hàng ngày, hàng tuần, hàng tháng, hàng quý, hàng năm cho các năm 2004, năm 2005, và quý I năm 2006.


Mô tả cột
Tên cột Nội dung
PerkeyKiểu số nguyên (integer), là mã định danh một hàng trong bảng Period. Perkey là khóa chính.
DateGiá trị ngày tháng, xác định một ngày kể từ ngày 1 tháng Một, 1998 đến ngày 31 tháng Ba, 2000.
DayChuỗi ký tự viết tắt của các ngày trong tuần.
WeekKiể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).
MonthChuỗi ký tự viết tắt tên của mỗi tháng.
QtrChuỗi ký tự xác định duy nhất mỗi quý (ví dụ, Q1_98, Q3_99).
YearKiểu số nguyên (integer), xác định một năm.


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


Truy vấn

SELECT * FROM aroma.promotion;


Kết quả

PromokeyPromo_TypePromo_DescValueStart_DateEnd_Date
01No promotion0.009999-01-019999-01-01
1100Aroma catalog coupon1.002004-01-012004-01-31
2100Aroma catalog coupon1.002004-02-012004-02-29
3100Aroma catalog coupon1.002004-03-012004-03-31
4100Aroma catalog coupon1.002004-04-012004-04-30
5100Aroma catalog coupon1.002004-05-012004-05-31
6100Aroma catalog coupon1.002004-06-012004-06-30
7100Aroma catalog coupon1.002004-07-012004-07-31
8100Aroma catalog coupon1.002004-08-012004-08-31
9100Aroma catalog coupon1.002004-09-012004-09-30
10100Aroma catalog coupon1.002004-10-012004-10-31
11100Aroma catalog coupon1.002004-11-012004-11-30
12100Aroma catalog coupon1.002004-12-012004-12-31
13100Aroma catalog coupon1.002005-01-012005-01-31
14100Aroma catalog coupon1.002005-02-012005-02-28
15100Aroma catalog coupon1.002005-03-012005-03-31
16100Aroma catalog coupon1.002005-04-012005-04-30
17100Aroma catalog coupon1.002005-05-012005-05-31
18100Aroma catalog coupon1.002005-06-012005-06-30
19100Aroma catalog coupon1.002005-07-012005-07-31
20100Aroma catalog coupon1.002005-08-012005-08-31
...

Bảng Promotion

Bảng Promotion là một bảng chiều, nó mô tả chương trình khuyến mãi được áp dụng cho các sản phẩm khác nhau trong các khoảng thời gian khác nhau. Các bảng Promotion đôi khi được gọi là bảng điều kiện, vì chúng cho biết các điều kiện theo đó hàng hóa được bán.


Mô tả cột
Tên cột Nội dung
promokeyKiểu số nguyên (integer), là mã định danh một hàng trong bảng Promotion. Promokey là khóa chính.
promo_typeKiểu số nguyên (integer), là mã định danh chương trình khuyến mãi (mã số khuyến mãi).
promo_descChuỗi ký tự mô tả các loại hình khuyến mãi.
valueSố 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á.
start_date, end_dateGiá trị ngày tháng, cho biết khi nào khuyến mại bắt đầu và kết thúc.

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


Truy vấn

SELECT * FROM aroma.sales;


Kết quả

PerkeyClasskeyProdkeyStorekeyPromokeyQuantityDollars
22011168 34.00
241211169 60.75
2111111640 270.00
2230111616 36.00
2522111611 30.25
2130111630 187.50
2110111625 143.75
24102012 87.00
24112014 115.50
22222018 58.50
2402017 136.00
2502013 74.75
24302014 101.50
22102018 63.00
21223011 99.00
2646306 36.00
25123010 40.00
21113036 279.00
2513011 132.00
25103012 48.00
...


Bảng Sales

Khoá chính gồm nhiều phần

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
perkeyTham chiếu khóa ngoài tới bảng Period.
classkeyTham chiếu khóa ngoài tới bảng Class.
prodkeyTham chiếu khóa ngoài tới bảng Product.
storekeyTham chiếu khóa ngoài tới bảng Store.
promokeyTham chiếu khóa ngoài tới bảng Promotion.
quantityKiểu số nguyên (integer), biểu diễn tổng số lượng bán ra (theo ngày).
dollarsSố 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;


Kết quả

Card_idStorekeyFnameLnameEmailStatus
11AdaAlexandercoffee_lover@hotmail.comActive
21BenBowmanmmmcoffee@yahoo.comActive
31CynthiaCheniheartcoffee@gmail.comActive
41DavidDoylecoffee_maniac@msn.comActive
51EmilyEnrightcupAday@hotmail.comActive
61FrankFreemancoffee_addict@gmail.comActive

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_idKiểu SMALLINT, xác định khách hàng bằng một số thẻ duy nhất.
storekeyTham chiếu khóa ngoài tới bảng Store.
fnameChuỗi ký tự chứa tên của khách hàng.
lnameChuỗi ký tự chứa họ của khách hàng.
emailChuỗi ký tự chứa địa chỉ email của khách hàng.
statusChuỗ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.


Hình 2. Các bảng trong lược đồ mua hàng
Tables in purchasing schema

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_NoPerkeySupkeyDealkey
369981710070
370081710070

Các bảng mua hàng

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:


PeriodXác định các khoảng thời gian như ngày, tháng, năm.
ClassXá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 hàng từ các nhà cung cấp.
ProductXác định sản phẩm riêng biệt, được bán tại cửa hàng bán lẻ và được đặt hàng từ các nhà cung cấp.
SupplierXác định các nhà cung cấp các sản phẩm được công ty Aroma Coffee and Tea đặt hàng.
DealXác định giao dịch giảm giá áp dụng cho các đơn đặt hàng tại nhà cung cấp.
Line_ItemsChứ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 đặt hàng.
OrdersChứ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 mà thôi.


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


Truy vấn

SELECT * FROM aroma.supplier;


Kết quả

SupkeyTypeNameStreetCityStateZip
1001Coffee/teaCB Imports100 Church StreetMountain ViewCA94001
1002TeaTea Makers, Inc.1555 Hicks Rd.San JoseCA95124
...


Truy vấn

SELECT * FROM aroma.deal;


Kết quả

DealkeyDeal_TypeDeal_DescDiscount
01000No deal0.00
1100Orders over $10,000100.00
2100Orders over $20,000500.00
3100Supplier catalog coupon50.00
4100Supplier catalog coupon100.00
37200Supplier coffee special75.00
38200Supplier coffee special50.00
39200Supplier tea special40.00
40200Supplier tea special20.00


Bảng Supplier và Deal


Mô tả cột: Bảng Supplier
Tên cột Nội dung
supkeyKiểu số nguyên (Integer), là mã định danh một hàng trong bảng Supplier. Supkey là khóa chính.
typeChuỗi ký tự cho biết kiểu sản phẩm được cung cấp.
nameChuỗi ký tự xác định các nhà cung cấp theo tên.
street, city, state, zipCác cột xác định địa chỉ của nhà cung cấp.


Mô tả cột: Bảng Deal
Tên cột Nội dung
dealkeyKiểu số nguyên (Integer), là mã định danh một hàng trong bảng Deal. Dealkey là khóa chính.
deal_typeKiểu số nguyên (Integer), là 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.
discountGiá 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

SELECT * FROM aroma.orders;


Kết quả

Order_NoPerkeySupkeyDealkeyOrder_TypeOrder_DescClose_DatePrice
3600731100137CoffeeWhole coffee b2006-01-071200.46
3601732100137CoffeeWhole coffee b2006-01-071535.94
360273310010TeaLoose tea, bul2006-01-07780.00
3603740100139TeaLoose tea, bul2006-01-21956.45
360474410050SpicePre-packed spi2006-01-16800.66
360576810032CoffeeWhole-bean and2006-02-1225100.00
360677510032CoffeeWhole-bean and2006-02-1925100.00
360778210032CoffeeWhole-bean and2006-02-2525100.00
360878910032CoffeeWhole-bean and2006-03-0330250.00
360979610032CoffeeWhole-bean and2006-03-1525100.00
...


Truy vấn

SELECT * FROM aroma.line_items;


Kết quả

Order_NoLine_ItemPerkeyClasskeyProdkeyReceive_DateQtyPrice
36001731112006-01-0740180.46
360027312102006-01-0750300.00
360037312112006-01-0780240.00
360047312122006-01-07150240.00
360057311202006-01-0760240.00
36011732102006-01-0760240.00
36012732112006-01-0760240.00
360137321102006-01-0760240.00
360147321112006-01-0760240.00
360157321122006-01-0760240.00
360167321312006-01-0770335.94
36021733202006-01-0870130.00
36022733212006-01-0870130.00
...


Các bảng Orders và Line_Items

Các bảng Orders và Line_Items chứa các sự kiện mua hàng.


Mô tả cột: Bảng Orders
Tên cột Nội dung
order_noKiểu số nguyên (Integer) là mã định danh một hàng trong bảng Order. Order_No là khóa chính.
perkeyTham chiếu khóa ngoài tới bảng Period.
supkeyTham chiếu khóa ngoài tới bảng Supplier.
dealkeyTham chiếu khóa ngoài tới bảng Deal.
order_typeChuỗ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 của đơn hàng.
close_dateGiá trị ngày tháng, xác định thời gian đơn hàng đã hoàn thành hoặc chấm dứt.
priceGiá 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_noKiể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_itemKiểu số nguyên (Integer) là mã số của mỗi mục được liệt kê trong đơn hàng.
perkeyTham chiếu khóa ngoài tới bảng Period.
classkeyTham chiếu khóa ngoài tới bảng Class.
prodkeyTham chiếu khóa ngoài tới bảng Products.
receive_dateGiá trị ngày tháng, xác định khi nào mục sản phẩm được tiếp nhận.
quantityKiể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.
priceGiá trị số thập phân cho biết chi phí của một dòng mục hàng.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

  • Tải về DB2 Express-C, máy chủ dữ liệu miễn phí để sử dụng trong việc phát triển và triển khai các ứng dụng.

  • Xây dựng dự án phát triển kế tiếp của bạn với IBM trial software, có sẵn để tải về trực tiếp từ developerWorks.

Thảo luận

Đôi nét về các tác giả

Pat Moffatt là giám đốc Chương trình quản lý thông tin thuộc Sáng kiến học đường IBM. Thông qua chương trình sáng kiến học đường này, bà muốn làm ra sẵn những nguồn tài nguyên thích hợp phục vụ giảng dạy về quản lý thông tin để giúp các giảng viên đại học tích hợp chủ đề phần mềm quản lý thông tin vào trong chương trình đào tạo của họ

Bruce Creighton là chuyên viên lập kế hoạch các phần kỹ năng trong khoa Phát triển và Lập kế hoạch đào tạo Quản lý thông tin. Với vai trò này, ông lập kế hoạch đầu tư về nội dung đào tạo và cân bằng đầu tư giữa các lĩnh vực mà IBM có thu lợi nhuận với các lĩnh vực mà tại đó yêu cầu về phát triển các kỹ năng là quan trọng, cần cung cấp đào tạo miễn phí

Jessica Cao là một sinh viên ngành Nghệ thuật - Khoa học và ngành Khoa học máy tính tại Trường đại học McMaster. Chị sẽ tốt nghiệp văn bằng kép hạng danh dự vào tháng Tư 2009. Jessica đang làm việc trong chương trình hỗ trợ và lập kế hoạch kênh kỹ năng quản lý thông tin DB2 của phòng thí nghiệm IBM Toronto, nhằm chuyên chú sâu hơn vào lập trình, biên tập và kỹ năng viết

Bình luận



Nhãn hiệu đăng ký  |  Các điều khoản và điều kiện sử dụng My developerWorks

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Information Management, Nguồn mở
ArticleID=438452
ArticleTitle=Hướng dẫn SQL & XQuery cho IBM DB2, Phần phụ lục: Phụ lục A
publish-date=10232009
author1-email=pmoffatt@ca.ibm.com
author1-email-cc=
author2-email=bcreight@ca.ibm.com
author2-email-cc=
author3-email=jcao@ca.ibm.com
author3-email-cc=