1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo kết thúc học phần cơ sở dữ liệu nâng cao đề tài quản lý cửa hàng bán thuốc

42 0 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

Nội dung

Người phân tích cũng cần trực quan hóa dữ liệu để có thể nổi bật các điểm bất thường hoặc cung cấp thông tin về nguyên nhân của sự thay đổi trong kinh doanh.- Các hệ thống hỗ trợ phân tí

Trang 1

TTRƯỜNG ĐẠI HỌC SÀI GÒN

KHOA CÔNG NGHỆ THÔNG TIN

Giảng viên hướng dẫn: Trần Sơn Hải

Thành phố Hồ Chí Minh – Tháng 10/20231

Trang 2

MỤC LỤC

LỜI MỞ ĐẦU VÀ CẢM ƠN……….

CHƯƠNG I: DỊCH SÁCH DATABASE SYSTEM CONCEPTS(Chương 11

4 Các chức năng cơ bản và nâng cao của Oracle……….

5 So sánh ưu nhược điểm của Oracle với các hệ quản trị CSDL khác………

CHƯƠNG III: THIẾT KẾ CƠ SỞ DỮ LIỆU QUẢN LÝ CỬA HÀNG BÁN THUỐC……….

1 Sơ đồ phân cấp chức năng BFD………

2 Sơ đồ luồng dữ liệu DFD………

3 Sơ đồ thực thể ERD………

4 Sơ đồ quan niệm vật lý PDM………

5 Mô hình dữ liệu quan hệ RDM……….…

KẾT LUẬN VÀ ĐÁNH GIÁ……….

TÀI LIỆU THAM KHẢO……….

Trang 3

MỞ ĐẦU

Trang 4

CHƯƠNG I: DỊCH SÁCH DATABASE SYSTEM CONCEPTS(Các khái niệm trong hệ thống cơ sở dữ liệu):

Nội dung dịch: Chương 11(Data Analytics - Phân tích dữ liệu)+ Khái quát về vai trò của phân tích dữ liệu trong đời sống:

- Quyết định kinh doanh rất có lợi khi sử dụng dữ liệu về quá khứ để dự đoán tương lai và sử dụng dự đoán đó để ra quyết định.

VD1 Hệ thống quảng cáo trực tuyến cần quyết định quảng cáo nào sẽ hiển thị cho mỗi người dùng:

Phân tích các hành động trong quá khứ và hồ sơ của người dùng khác, cũng như các hành động trong quá khứ và hồ sơ của người dùng hiện tại, là quyết định quảng cáo nào người dùng có khả năng phản hồi nhất

Ở đây, mỗi quyết định có giá trị thấp, nhưng với số lượng lớn, giá trị tổng thể của việc ra quyết định đúng là rất cao.

VD2 Ở phía đầu khác của phổ giá trị, các nhà sản xuất và bán lẻ cần quyết địnhsản phẩm nào sẽ sản xuất hoặc tồn kho nhiều tháng trước khi thực sự bán sản phẩm:

Dự đoán nhu cầu tương lai của các loại sản phẩm dựa trên doanh số bán hàng trong quá khứ và các chỉ số khác là quyết định quan trọng để tránh cả sự sản xuất quá mức hoặc tồn kho quá mức một số sản phẩm và sản xuất không đủ hoặc tồn kho không đủ cho một số sản phẩm khác Sai lầm có thể dẫn đến mất mát tiền bạc do tồn kho không bán được của một số sản phẩm hoặc mất lợi nhuận tiềm năng do thiếu hàng hóa.

Thuật ngữ phân tích dữ liệu ám chỉ rộng rãi quá trình xử lý dữ liệu để suy luận các mẫu, tương quan hoặc mô hình cho dự đoán

VD3 Kết quả của phân tích dữ liệu sau đó được sử dụng để định đoạn quyết định kinh doanh:

Lợi ích tài chính của việc ra quyết định chính xác có thể lớn, cũng như các chi phí của việc ra quyết định sai Do đó, các tổ chức đầu tư một lượng lớn tiền để thu thập hoặc mua dữ liệu cần thiết và xây dựng hệ thống phân tích dữ liệu.

Trang 5

11.1 Tổng quan về phân tích dữ liệu:

- Các công ty lớn có các nguồn dữ liệu đa dạng mà họ cần sử dụng để ra quyết định kinh doanh Các nguồn này có thể lưu trữ dữ liệu theo các mô hình dữ liệu khác nhau Vì lý do hiệu suất (cũng như vì lý do kiểm soát tổ chức), các nguồn dữ liệu thường sẽ không cho phép các phần khác của công ty truy xuất dữ liệu theo yêu cầu.

- Do đó, các tổ chức thường thu thập dữ liệu từ nhiều nguồn vào một vị trí duy nhất, được gọi là kho dữ liệu Kho dữ liệu tụ họp dữ liệu từ nhiều nguồn tại một trang web duy nhất, theo một mô hình dữ liệu thống nhất (thường được thiết kế để hỗ trợ phân tích hiệu quả, thậm chí với sự lặp lại trong lưu trữ) Do đó, nó cung cấp cho người dùng một giao diện đồng nhất duy nhất để truy cập dữ liệu Tuy nhiên, kho dữ liệu hiện nay cũng thu thập và lưu trữ dữ liệu từ các nguồn phi quan hệ, nơi việc thống nhất mô hình dữ liệu không thể thực hiện Một số nguồn dữ liệu có lỗi mà có thể phát hiện và sửa chữa bằng các ràng buộc kinh doanh; hơn nữa, tổ chức có thể thu thập dữ liệu từ nhiều nguồn và có thể xuất hiện các bản sao trong dữ liệu thu thập từ các nguồn khác nhau Các bước thu thập dữ liệu, làm sạch/loại bỏ trùng lặp dữ liệu và tải dữ liệu vào một kho lưu trữ được gọi là các nhiệm vụ trích xuất, biến đổi và nạp (ETL) Chúng tôi sẽ nghiên cứu các vấn đề trong việc xây dựng và duy trì một kho dữ liệu ở Phần 11.2.

- Phân tích dữ liệu trong dạng cơ bản nhất bao gồm việc tạo tổng hợp và báo cáođể tóm tắt dữ liệu một cách có ý nghĩa cho tổ chức Người phân tích cần thu thập nhiều tổng hợp khác nhau và so sánh chúng để hiểu các mẫu trong dữ liệu Thông thường, các tổng hợp và trong một số trường hợp cả dữ liệu gốc được trình bày dưới dạng biểu đồ để giúp con người dễ dàng hình dung dữ liệu Các bảng điều khiển hiển thị biểu đồ tóm tắt các tham số quan trọng của tổ chức, chẳng hạn như doanh số bán hàng, chi phí, sản phẩm trả lại, và cách khác để theo dõi tình trạng tổ chức Người phân tích cũng cần trực quan hóa dữ liệu để có thể nổi bật các điểm bất thường hoặc cung cấp thông tin về nguyên nhân của sự thay đổi trong kinh doanh.

- Các hệ thống hỗ trợ phân tích hiệu quả, nơi các truy vấn tổng hợp trên dữ liệu lớn được trả lời gần như trong thời gian thực (thay vì sau một chục phút hoặc nhiều giờ) rất phổ biến với các nhà phân tích Các hệ thống như vậy được gọi là hệ thống xử lý phân tích trực tuyến (OLAP) Chúng tôi sẽ thảo luận về xử lý phân tích trực tuyến trong Phần 11.3, trong đó chúng tôi sẽ nói về khái niệm dữ liệu đa chiều, các hoạt động OLAP, biểu diễn quan hệ của tóm tắt đa chiều Chúng tôi cũng thảo luận về biểu diễn đồ họa của dữ liệu và trực quan hóa trongPhần 11.3.

Trang 6

- Phân tích thống kê là một phần quan trọng của phân tích dữ liệu Có nhiều công cụ được thiết kế cho phân tích thống kê, bao gồm ngôn ngữ/môi trường R, là mã nguồn mở, và các hệ thống thương mại như SAS và SPSS Ngôn ngữ R được sử dụng rộng rãi ngày nay, và ngoài các tính năng cho phân tích thống kê, nó hỗ trợ khả năng hiển thị dữ liệu dưới dạng biểu đồ Có sẵn một số lượng lớn các gói R (thư viện) thực hiện nhiều nhiệm vụ phân tích dữ liệu khác nhau, bao gồm nhiều thuật toán học máy R đã được tích hợp với cơ sở dữ liệu cũng như với các hệ thống Big Data như Apache Spark, cho phép chạy chương trình R song song trên tập dữ liệu lớn Phân tích thống kê là một lĩnh vực lớn, và chúng tôi không thảo luận về nó nhiều hơn trong cuốn sách này Thông tin tham khảo về phân tích thống kê có thể được tìm thấy trong phần "Đọc thêm" ở cuối chương.

- Dự đoán các hình thức khác nhau là một khía cạnh quan trọng khác của phân tích Ví dụ, ngân hàng cần quyết định liệu có nên cho vay tiền cho người đăng ký vay, và các nhà quảng cáo trực tuyến cần quyết định quảng cáo nào nên hiển thị cho một người dùng cụ thể Như một ví dụ khác, các nhà sản xuất và nhà bánlẻ cần đưa ra quyết định về sản phẩm nào cần sản xuất hoặc đặt hàng với số lượng bao nhiêu.

- Các quyết định này được định rõ bởi các kỹ thuật phân tích dữ liệu trong quá khứ và sử dụng dữ liệu lịch sử để dự đoán tương lai Ví dụ, rủi ro về việc vỡ nợ có thể được dự đoán như sau Đầu tiên, ngân hàng sẽ xem xét lịch sử về việc vỡ nợ của khách hàng trong quá khứ, tìm các đặc điểm quan trọng của khách hàng như lương, trình độ học vấn, lịch sử công việc và các yếu tố khác có thể giúp dự đoán khả năng vỡ nợ Ngân hàng sau đó sẽ xây dựng một mô hình dự đoán (như một cây quyết định, chúng ta sẽ nghiên cứu sau trong chương này) bằng cách sử dụng các đặc điểm đã chọn Khi một khách hàng nào đó đăng ký vay tiền, các đặc điểm của khách hàng cụ thể đó được đưa vào mô hình, từ đó mô hình thực hiện dự đoán, ví dụ, ước tính khả năng vỡ nợ Dự đoán được sử dụng để đưa ra các quyết định kinh doanh, ví dụ, xem liệu có nên cho khách hàng vay tiền hay không.

- Tương tự, các nhà phân tích có thể xem xét lịch sử bán hàng trong quá khứ và sử dụng nó để dự đoán doanh số bán hàng trong tương lai, để đưa ra quyết định về việc sản xuất hoặc đặt hàng sản phẩm gì và số lượng bao nhiêu, hoặc cách tiếp cận quảng cáo Ví dụ, một công ty sản xuất ô tô có thể tìm kiếm các đặc điểm của khách hàng giúp dự đoán ai mua các loại ô tô khác nhau Có thể thấy rằng hầu hết các chiếc xe thể thao nhỏ của họ được mua bởi phụ nữ trẻ có thu nhập hàng năm trên 50.000 đô la Công ty có thể tiếp cận chiến dịch tiếp thị để thu hút nhiều phụ nữ như vậy hơn để mua các chiếc xe thể thao nhỏ của họ và tránh lãng phí tiền cố gắng thu hút các loại người mua xe khác.

Trang 7

- Các kỹ thuật học máy đóng một vai trò quan trọng trong việc tìm kiếm các mẫu trong dữ liệu và trong việc dự đoán từ những mẫu này Lĩnh vực khai phá dữ liệu kết hợp các kỹ thuật khám phá tri thức do các nhà nghiên cứu học máy phát minh với các kỹ thuật triển khai hiệu quả để sử dụng chúng trên cơ sở dữ liệu cực lớn Phần 11.4 trình bày về khai phá dữ liệu.

- Thuật ngữ kinh doanh thông minh(BI) được sử dụng trong một ý nghĩa rộng tương tự với phân tích dữ liệu Thuật ngữ hỗ trợ quyết định cũng được sử dụngtrong một ngữ cảnh tương tự nhưng hẹp hơn, tập trung vào báo cáo và tổng hợp, nhưng không bao gồm học máy/khai phá dữ liệu Các nhiệm vụ hỗ trợ quyết định thường sử dụng truy vấn SQL để xử lý lượng lớn dữ liệu Truy vấn hỗ trợ quyết định có thể được đối chiếu với truy vấn cho quá trình giao dịch trực tuyến,trong đó mỗi truy vấn thường chỉ đọc một lượng nhỏ dữ liệu và có thể thực hiện một vài cập nhật nhỏ

11.2 Kho dữ liệu(Data Warehousing):

Các tổ chức lớn thường có cấu trúc nội bộ phức tạp, vì vậy dữ liệu khác nhau có thể tồn tại ở các vị trí khác nhau hoặc trên các hệ thống hoạt động khác nhau hoặc dưới các lược đồ khác nhau Ví dụ, dữ liệu về sự cố trong sản xuất và dữ liệu về phàn nàn của khách hàng có thể được lưu trữ trên các hệ thống cơ sở dữ liệu khác nhau Tổ chức thường mua dữ liệu từ các nguồn bên ngoài, như danh sách gửi thư được sử dụng cho các chiến dịch quảng cáo sản phẩm, hoặc điểm tín dụng của khách hàng được cung cấp bởi các cơ quan tín dụng để quyết định về khả năng thanh toán của khách hàng.

Người ra quyết định trong doanh nghiệp cần truy cập thông tin từ nhiều nguồn như vậy Thiết lập truy vấn trên từng nguồn riêng lẻ không chỉ gặp khó khăn mà còn không hiệu quả Hơn nữa, các nguồn dữ liệu có thể chỉ lưu trữ dữ liệu hiện tại, trong khi người ra quyết định có thể cần truy cập dữ liệu quá khứ; ví dụ, thông tin về cách mua sắm đã thay đổi trong vài năm qua có thể rất quan trọng Kho dữ liệu (data warehouse) cung cấp giải pháp cho những vấn đề này Một kho dữ liệu là một kho (hoặc lưu trữ) thông tin được thu thập từ nhiều nguồn khác nhau, lưu trữ dưới một lược đồ thống nhất, tại một vị trí duy nhất Khi đã được thu thập, dữ liệu được lưu trữ trong thời gian dài, cho phép truy cậpvào dữ liệu lịch sử Do đó, kho dữ liệu cung cấp cho người sử dụng một giao diện duy nhất để truy cập dữ liệu, giúp việc viết các truy vấn hỗ trợ quyết định trở nên dễ dàng hơn Hơn nữa, bằng cách truy cập thông tin hỗ trợ quyết định từ kho dữ liệu, người ra quyết định đảm bảo rằng các hệ thống xử lý giao dịch trực tuyến không bị ảnh hưởng bởi khối lượng công việc hỗ trợ quyết định.

Trang 8

11.2.1 Các Thành Phần Của Kho Dữ Liệu (Data Warehouse):

Hình 11.1 trình bày kiến trúc của một kho dữ liệu (data warehouse) tiêu biểu và minh họa việc thu thập dữ liệu, lưu trữ dữ liệu và hỗ trợ truy vấn và phân tích dữliệu Trong quá trình xây dựng một kho dữ liệu, có những vấn đề cần xem xét, bao gồm:

Hình 11.1 Kiến trúc kho dữ liệu + Khi nào và làm thế nào để thu thập dữ liệu:

Trong một kiến trúc dựa trên nguồn (source-driven) để thu thập dữ liệu, các nguồn dữ liệu truyền tải thông tin mới, có thể liên tục (khi xử lý giao dịch diễn ra) hoặc định kỳ (ví dụ, hàng đêm) Trong một kiến trúc dựa trên đích đến (destination-driven), kho dữ liệu định kỳ gửi yêu cầu cho dữ liệu mới đến từ các nguồn.

Trừ khi cập nhật tại các nguồn được sao chép "đồng bộ" tới kho dữ liệu, kho dữ liệu sẽ không bao giờ cập nhật đầy đủ so với nguồn Sao chép đồng bộ có thể tốn kém, do đó nhiều kho dữ liệu không sử dụng sao chép đồng bộ và thực hiện truy vấn chỉ trên dữ liệu đủ lâu để chúng đã được sao chép hoàn toàn Truyền thống, các nhà phân tích hài lòng với việc sử dụng dữ liệu của ngày hôm qua, vì vậy kho dữ liệu có thể nạp dữ liệu đến cuối ngày trước đó Tuy nhiên, ngày càngcó nhiều tổ chức muốn dữ liệu cập nhật hơn Yêu cầu về sự tươi mát của dữ liệu phụ thuộc vào ứng dụng cụ thể Dữ liệu có tuổi đôi chút trong vài giờ có thể đủ đối với một số ứng dụng, trong khi các ứng dụng khác cần phản hồi thời gian thực đối với sự kiện có thể sử dụng cơ sở hạ tầng xử lý dòng (stream processing)(mô tả ở phần 10.5) thay vì phụ thuộc vào cơ sở hạ tầng kho dữ liệu.

Trang 9

+ Chọn mô hình dữ liệu: Các nguồn dữ liệu được xây dựng độc lập có thể sử dụng các mô hình dữ liệu khác nhau Một phần của nhiệm vụ của kho dữ liệu là thực hiện tích hợp mô hình dữ liệu và chuyển đổi dữ liệu thành mô hình tích hợptrước khi chúng được lưu trữ Kết quả là dữ liệu lưu trữ trong kho dữ liệu không chỉ là một bản sao của dữ liệu ở nguồn mà chúng có thể được xem như một tầm nhìn vật lý của dữ liệu ở nguồn.

+ Biến đổi và làm sạch dữ liệu: Nhiệm vụ của việc sửa lỗi và tiền xử lý dữ liệuđược gọi là làm sạch dữ liệu Các nguồn dữ liệu thường giao dịch dữ liệu với nhiều không đồng nhất nhỏ, có thể được sửa chữa Ví dụ, tên thường bị viết sai và địa chỉ có thể có tên đường, khu vực hoặc tên thành phố bị viết sai hoặc mã bưu điện nhập sai Những điều này có thể được sửa chữa một phần bằng cách tham khảo một cơ sở dữ liệu về tên đường và mã bưu điện trong mỗi thành phố Việc khớp gần đúng dữ liệu cần thiết cho nhiệm vụ này được gọi là tìm kiếm mờ.

Danh sách địa chỉ được thu thập từ nhiều nguồn có thể có các bản sao cần phải bị loại bỏ trong thao tác hợp nhất-thanh lọc (thao tác này còn được gọi là loại bỏ trùng lặp) Hồ sơ của nhiều cá nhân trong một ngôi nhà có thể được nhóm lại với nhau để mỗi nhà chỉ gửi một lá thư; hoạt động này được gọi là hộ gia đình.

Dữ liệu có thể được chuyển đổi theo những cách khác ngoài việc làm sạch, chẳng hạn như thay đổi đơn vị đo lường hoặc chuyển đổi dữ liệu sang một lược đồ khác bằng cách nối dữ liệu từ nhiều mối quan hệ nguồn Kho dữ liệu thường có các công cụ đồ họa để hỗ trợ chuyển đổi dữ liệu Những công cụ như vậy chophép chuyển đổi được chỉ định dưới dạng hộp và các cạnh có thể được tạo giữa các hộp để biểu thị luồng dữ liệu Các hộp điều kiện có thể định tuyến dữ liệu đến bước chuyển đổi thích hợp tiếp theo.

+ Cách truyền tải cập nhật: Các cập nhật trên các liên kết ở nguồn dữ liệu phảiđược truyền tải đến kho dữ liệu Nếu các liên kết ở kho dữ liệu hoàn toàn giống nhau so với nguồn dữ liệu, việc truyền tải sẽ đơn giản Nếu không, vấn đề về việc truyền tải cập nhật cơ bản là vấn đề duy trì tầm nhìn, đã được thảo luận ở Mục 4.2.3 và được thảo luận chi tiết hơn ở Mục 16.5.

+ Dữ liệu cần được tóm tắt: Dữ liệu thô được tạo ra bởi hệ thống xử lý giao dịch có thể quá lớn để lưu trữ trực tuyến Tuy nhiên, chúng ta có thể trả lời nhiềutruy vấn bằng cách duy trì chỉ dữ liệu tóm tắt được thu thập bằng cách tổng hợp trên một mối quan hệ, thay vì duy trì toàn bộ quan hệ Ví dụ, thay vì lưu trữ dữ liệu về mỗi lần bán quần áo, chúng ta có thể lưu trữ tổng doanh số bán quần áo theo tên mặt hàng và danh mục.

Trang 10

Các bước liên quan đến việc lấy dữ liệu vào một kho dữ liệu (data warehouse) được gọi là các nhiệm vụ trích xuất, biến đổi và nạp hoặc ETL Extract, (Transform, Load) Trích xuất đề cập đến việc lấy dữ liệu từ các nguồn, trong khi nạp liên quan đến việc tải dữ liệu vào kho dữ liệu Trong các kho dữ liệu thế hệ hiện tại hỗ trợ các hàm được định nghĩa bởi người dùng hoặc các khung côngcụ MapReduce, dữ liệu có thể được trích xuất, nạp vào kho dữ liệu, và sau đó biến đổi Các bước này được gọi là trích xuất, nạp và biến đổi hoặc ELT (Extract, Load, Transform) Phương pháp ELT cho phép sử dụng các khung công cụ xử lý song song cho việc biến đổi dữ liệu.

11.2.2 Dữ liệu Đa chiều và Lược đồ Kho dữ liệu:

- Kho dữ liệu thường có các lược đồ được thiết kế cho phân tích dữ liệu, sử dụngcác công cụ như công cụ OLAP Các quan hệ trong lược đồ kho dữ liệuthường có thể được phân loại thành các bảng sự kiện (fact tables) và các bảng chiều (dimension tables) Bảng sự kiện ghi thông tin về các sự kiện cá nhân, chẳng hạn như các giao dịch bán hàng, và thường rất lớn Một bảng ghi thông tin về giao dịch bán hàng(sales) cho một cửa hàng bán lẻ, với một bản ghi cho mỗi sản phẩm được bán, là một ví dụ điển hình về bảng sự kiện Các thuộc tính trong bảng sự kiện có thể được phân loại thành các thuộc tính chiều (dimension attributes) hoặc các thuộc tính đo lường (measure attributes) Các thuộc tính đolường lưu trữ thông tin định lượng, có thể được tổng hợp; ví dụ về các thuộc tính đo lường của bảng ghi thông tin về bán hàng bao gồm số lượng sản phẩm được bán và giá của sản phẩm Ngược lại, các thuộc tính chiều là các chiều theo đó các thuộc tính đo lường và tóm tắt các thuộc tính đo lường được nhóm và xem xét Các thuộc tính chiều của bảng ghi thông tin về bán hàng(sales) bao gồm mã sản phẩm, ngày bán sản phẩm, nơi bán sản phẩm (cửa hàng), khách hàng mua sản phẩm và nhiều thuộc tính khác.

Dữ liệu có thể được mô hình hóa bằng các thuộc tính chiều và các thuộc tính đo lường được gọi là dữ liệu đa chiều Để giảm thiểu yêu cầu về lưu trữ, các thuộc tính chiều thường là các bộ nhận dạng ngắn gọn và là các khóa ngoại trỏ vào cácbảng khác được gọi là bảng chiều Ví dụ, một bảng sự kiện về bán hàng(sales) sẽcó các thuộc tính chiều như mã sản phẩm(item_id), mã cửa hàng(store_id), mã khách hàng(customer_id) và ngày(date), và các thuộc tính đo lường bao gồm số lượng(number) và giá(price) Thuộc tính mã cửa hàng(store_id) là một khóa ngoại trỏ vào một bảng chiều cửa hàng(store), có các thuộc tính khác như vị trí của cửa hàng (thành phố, tiểu bang, quốc gia) Thuộc tính mã sản phẩm(item_id)của bảng sự kiện(sales) sẽ là một khóa ngoại trỏ vào một bảng chiều thông tin vềsản phẩm(item_info), chứa thông tin như tên sản phẩm, danh mục mà sản phẩm thuộc về và các chi tiết khác như màu sắc và kích thước Thuộc tính mã khách hàng(customer_id) sẽ là một khóa ngoại trỏ vào một bảng khách hàng(customer)

Trang 11

chứa các thuộc tính như tên và địa chỉ của khách hàng Chúng ta cũng có thể xem xét thuộc tính ngày(date) như một khóa ngoại trỏ vào một bảng thông tin ngày(date_info) cho biết tháng, quý và năm của mỗi ngày.

Lược đồ kết quả xuất hiện trong Hình 11.2 Một lược đồ như vậy, với một bảng sự kiện, nhiều bảng chiều và các khóa ngoại từ bảng sự kiện đến các bảng chiều được gọi là lược đồ hình sao Thiết kế kho dữ liệu phức tạp hơn có thể có nhiềucấp độ của bảng chiều; ví dụ, bảng thông tin về sản phẩm(item_info) có thể có thuộc tính mã nhà sản xuất là một khóa ngoại trỏ vào một bảng khác cung cấp thông tin về nhà sản xuất Các lược đồ như vậy được gọi là lược đồ tuyết Thiết kế kho dữ liệu phức tạp có thể cũng có nhiều bảng sự kiện.

Hình 11.2 Lược đồ hình sao cho kho dữ liệu11.2.3 Hỗ trợ cơ sở dữ liệu cho kho dữ liệu:

Yêu cầu của một hệ thống cơ sở dữ liệu được thiết kế cho xử lý giao dịch khác biệt đôi chút so với một hệ thống được thiết kế để hỗ trợ một hệ thống kho dữ liệu Một khác biệt quan trọng là cơ sở dữ liệu xử lý giao dịch cần hỗ trợ nhiều truy vấn nhỏ, có thể bao gồm cả các truy vấn cập nhật ngoài việc đọc Ngược lại, hệ thống kho dữ liệu thường cần xử lý ít truy vấn hơn, nhưng mỗi truy vấn truy cập một lượng dữ liệu lớn hơn nhiều.

Đặc biệt, trong khi các bản ghi mới được chèn vào các mối quan hệ trong kho dữ liệu và các bản ghi cũ có thể bị xóa khi chúng không còn cần thiết nữa để tạo chỗ cho dữ liệu mới, thì thông thường, các bản ghi không bao giờ được cập nhật sau khi chúng được thêm vào mối quan hệ Do đó, kho dữ liệu không cần trả phíbất kỳ chi phí nào cho kiểm soát đồng thời (Như được mô tả trong Chương 17 và Chương 18, nếu các giao dịch đồng thời đọc và ghi dữ liệu giống nhau, dữ

Trang 12

liệu kết quả có thể trở nên không nhất quán Kiểm soát đồng thời hạn chế truy cập đồng thời một cách đảm bảo rằng không có sự cập nhật bất thường cho cơ sở dữ liệu.) Chi phí kiểm soát đồng thời có thể đáng kể không chỉ về thời gian cần cho việc xử lý truy vấn, mà còn về mặt lưu trữ, vì cơ sở dữ liệu thường lưu trữ nhiều phiên bản của dữ liệu để tránh xung đột giữa các giao dịch cập nhật nhỏ và các giao dịch chỉ đọc dài hạn Không cần chi phí nào trong những chi phínày cho kho dữ liệu

Cơ sở dữ liệu theo truyền thống lưu trữ tất cả các thuộc tính của một bộ dữ liệu cùng nhau và các bộ dữ liệu được lưu trữ tuần tự trong một tập tin Cách bố trí lưu trữ như vậy được gọi là lưu trữ theo hàng Ngược lại, trong lưu trữ theo cột,mỗi thuộc tính của một quan hệ được lưu trữ trong một tệp riêng biệt, với các giá trị từ các bộ dữ liệu liên tiếp được lưu trữ ở các vị trí liên tiếp trong tệp Giả định kiểu dữ liệu có kích thước cố định, có thể tìm thấy giá trị của thuộc tính A của bộ thứ i của một quan hệ bằng cách truy cập tệp tương ứng với thuộc tính A và đọc giá trị tại offset (i −1) lần kích thước (tính bằng byte) của các giá trị trongthuộc tính A.

Ưu điểm lưu trữ theo cột có ít nhất hai lợi ích chính so với lưu trữ theo hàng:

1 Khi một truy vấn cần truy cập chỉ một số thuộc tính của một mối quan hệ có nhiều thuộc tính, các thuộc tính còn lại không cần phải được lấy từ đĩa vào bộ nhớ Ngược lại, trong lưu trữ dạng hàng, không chỉ là các thuộc tính không liên quan được lấy vào bộ nhớ, mà chúng còn có thể được lấy vào bộ nhớ đệm của bộ vi xử lý trước, lãng phí không gian đệm và băng thông bộ nhớ, nếu chúng được lưu trữ kế cận với các thuộc tính được sử dụng trong truy vấn.

2 Việc lưu trữ các giá trị cùng loại cùng nhau tăng hiệu quả giải nén; giải nén cóthể giảm đáng kể cả chi phí lưu trữ đĩa và thời gian để truy xuất dữ liệu từ đĩa.Tuy nhiên, lưu trữ dạng cột có điểm yếu là lưu trữ hoặc truy xuất một bản ghi đơn yêu cầu nhiều hoạt động I/O.

Do đó, lưu trữ dạng cột không được sử dụng rộng rãi cho các ứng dụng xử lý giao dịch Tuy nhiên, lưu trữ dạng cột hiện nay được sử dụng rộng rãi cho các ứng dụng kho dữ liệu, trong đó truy cập hiếm khi đối với các bản ghi cá thể mà thay vào đó yêu cầu quét và tổng hợp nhiều bản ghi Lưu trữ dạng cột được mô tả chi tiết hơn trong Phần 13.6.

Các triển khai cơ sở dữ liệu được thiết kế hoàn toàn cho các ứng dụng Data Warehouse bao gồm Teradata, Sybase IQ và Amazon Redshift Nhiều cơ sở dữ liệu truyền thống hỗ trợ việc thực hiện hiệu quả các ứng dụng kho dữ liệu bằng

Trang 13

cách thêm các tính năng như lưu trữ theo cột; chúng bao gồm Oracle, SAP HANA, Microsoft SQL Server và IBM DB2.

Trong những năm 2010, đđã có một sự tăng trưởng nổ lực về các hệ thống dữ liệu lớn(Big Data) được thiết kế để xử lý truy vấn trên dữ liệu được lưu trữ trongcác tệp Những hệ thống như vậy hiện nay là một phần quan trọng của cơ sở hạ tầng kho dữ liệu Như chúng ta đã thấy trong Phần 10.3, động lực cho những hệ thống như vậy là sự tăng trưởng của dữ liệu được tạo ra bởi các hệ thống trực tuyến dưới dạng các tệp nhật ký, chúng có rất nhiều thông tin có giá trị có thể được khai thác cho hỗ trợ quyết định Tuy nhiên, những hệ thống này có thể xử lý bất kỳ loại dữ liệu nào, bao gồm dữ liệu quan hệ Apache Hadoop là một trong những hệ thống như vậy, và hệ thống Hive cho phép thực hiện các truy vấn SQL trên đầu của hệ thống Hadoop.

Nhiều công ty cung cấp phần mềm để tối ưu hóa việc xử lý truy vấn Hive, bao gồm Cloudera và Hortonworks Apache Spark là một hệ thống dữ liệu lớn(Big Data) phổ biến khác hỗ trợ truy vấn SQL trên dữ liệu được lưu trữ trong các tệp Cấu trúc tệp nén chứa bản ghi với các cột, chẳng hạn như Orc và Parquet, ngày càng được sử dụng để lưu trữ các bản ghi nhật ký như vậy, đơn giản hóa tích hợp với SQL Những định dạng tệp như vậy được thảo luận chi tiết hơn trong Phần 13.6.

11.2.4 Hồ dữ liệu:

Trong khi các kho dữ liệu (data warehouses) tập trung nhiều vào việc đảm bảo một lược đồ dữ liệu chung để giúp dễ dàng truy vấn dữ liệu, có các tình huống khi tổ chức muốn lưu trữ dữ liệu mà không muốn phải trả giá bằng việc tạo một lược đồ dữ liệu chung và biến đổi dữ liệu thành lược đồ chung đó Thuật ngữ "hồ dữ liệu" (data lake) được sử dụng để chỉ một kho dữ liệu nơi dữ liệu có thể được lưu trữ dưới nhiều định dạng, bao gồm cả các hồ sơ có cấu trúc và các địnhdạng tệp không có cấu trúc Khác với kho dữ liệu, hồ dữ liệu không đòi hỏi côngsức ban đầu để tiền xử lý dữ liệu, nhưng khi tạo các truy vấn, họ đòi hỏi nhiều công sức hơn Vì dữ liệu có thể được lưu trữ dưới nhiều định dạng khác nhau, các công cụ truy vấn cũng cần phải linh hoạt Apache Hadoop và Apache Spark là những công cụ phổ biến để truy vấn dữ liệu như vậy, vì chúng hỗ trợ việc truyvấn cả dữ liệu không có cấu trúc và dữ liệu có cấu trúc.

11.3 Xử lý phân tích trực tuyến:

Phân tích dữ liệu thường liên quan đến việc tìm kiếm các mẫu xuất hiện khi các giá trị dữ liệu được nhóm lại theo cách "thú vị" Một ví dụ đơn giản, tổng hợp sốgiờ học cho mỗi khoa là cách để khám phá những khoa nào có trách nhiệm giảng dạy cao Trong một doanh nghiệp bán lẻ, chúng ta có thể nhóm doanh số bán hàng theo sản phẩm, ngày hoặc tháng của giao dịch, màu sắc hoặc kích

Trang 14

thước của sản phẩm, hoặc hồ sơ (như nhóm tuổi và giới tính) của khách hàng mua sản phẩm.

11.3.1 Tích hợp dữ liệu đa chiều:

Hãy xem xét một ứng dụng trong đó một cửa hàng muốn tìm hiểu những loại quần áo nào được ưa chuộng Hãy giả sử rằng quần áo được đặc trưng bởi tên sản phẩm(item_name), màu sắc(color) và kích thước(clothes_size), và chúng ta có một quan hệ bán hàng với cấu trúc dữ liệu như sau:

sales (item_name, color, clothes_size, quantity)

Giả sử tên sản phẩm(item_name) có thể mang các giá trị (skirt, dress, shirt, pants), màu sắc có thể mang các giá trị (dark, pastel, white), kích thước quần áo có thể mang các giá trị small, medium, large), và số lượng là một giá trị nguyên biểu thị tổng số sản phẩm của một {tên sản phẩm, màu sắc, kích thước quần áo} cụ thể Một ví dụ về quan hệ bán hàng(sales) được hiển thị trong Hình 11.3.Phân tích thống kê thường yêu cầu nhóm các thuộc tính theo nhiều chiều Thuộctính số lượng(quantity) của quan hệ bán hàng là một thuộc tính đo lường, vì nó đo lường số lượng sản phẩm được bán, trong khi tên sản phẩm(item_name), màusắc(color) và kích thước quần áo(clothes_size) là các thuộc tính chiều (Phiên bản thực tế hơn của quan hệ bán hàng(sale) có thể có các chiều thêm, như thời gian và vị trí bán hàng, và các đơn vị đo lường khác như giá trị tiền của giao dịch).

Để phân tích dữ liệu đa chiều, người quản lý có thể muốn xem dữ liệu được sắp xếp như trong bảng trong Hình 11.4 Bảng này hiển thị tổng số lượng cho các sựkết hợp khác nhau của tên sản phẩm(item_name) và màu sắc(color) Giá trị của kích thước quần áo(clothes_size) được xác định là tất cả, cho biết rằng các giá trị hiển thị là một tóm tắt trên tất cả các giá trị của kích thước quần áo (tức là, chúng ta muốn nhóm các sản phẩm "small","medium" và "large" thành một nhóm duy nhất).

Trang 15

Hình 11.3 Ví dụ mối quan hệ giữa các thuộc tính trong bảng bán hàng(sales)

Trang 16

Bảng trong Hình 11.4 là một ví dụ về bảng chéo (hoặc còn gọi là pivot-table) Nói chung, bảng chéo là một bảng được tạo ra từ một quan hệ (gọi là R), trong đó các giá trị của một thuộc tính (gọi là A) tạo thành các tiêu đề cột và các giá trịcủa một thuộc tính khác (gọi là B) tạo thành tiêu đề hàng Ví dụ, trong Hình 11.4, thuộc tính màu sắc(color) tương ứng với A (với các giá trị “dark,” “pastel,”and “white”), và thuộc tính tên sản phẩm(item_name) tương ứng với B (với các giá trị “skirt,” “dress,” “shirt,” and “pants”).

Mỗi ô trong bảng chéo có thể được xác định bởi (a , b ), trong đó a là giá trị của iji

A và b là giá trị của B Giá trị của các ô trong bảng chéo được tạo ra từ quan hệ j

R như sau: Nếu có tối đa một bản ghi trong R với giá trị (a , b ), thì giá trị trong ôij

được tạo ra từ bản ghi đó (nếu có); ví dụ, nó có thể là giá trị của một hoặc nhiều thuộc tính khác của bản ghi Nếu có thể có nhiều bản ghi với giá trị (a , b ), thì ij

giá trị trong ô phải được tạo ra bằng cách tổng hợp trên các bản ghi có giá trị đó.Trong ví dụ của chúng tôi, phép tổng hợp được sử dụng là tổng của các giá trị thuộc tính số lượng(quantity), trên tất cả giá trị của kích thước quần

áo(clothes_size), như được chỉ định bởi "kích thước quần áo: tất cả" ở trên bảng chéo trong Hình 11.4 Do đó, giá trị cho ô (skirt, pastel) là 35, vì có ba bản ghi trong bảng bán hàng(sales) thỏa mãn điều kiện đó, với giá trị lần lượt là 11, 9 và 15 Trong ví dụ của chúng tôi, bảng chéo cũng có một cột và một hàng phụ bổ chứa tổng giá trị của các ô trong hàng/cột Hầu hết bảng chéo đều có các hàng và cột tổng hợp như vậy.

Hình 11.4 Bảng chéo của bảng bán hàng(sales) với thuộc tính màu sắc(color)và tên mặt hàng(item_name)

Trang 17

Phổ cấp của bảng chéo, một hai chiều, đến n chiều có thể được biểu đồ hóa như một khối dữ liệu n chiều, gọi là khối dữ liệu Hình 11.5 hiển thị một khối dữ liệu trên quan hệ bán hàng(sales) Khối dữ liệu có ba chiều: tên sản

phẩm(item_name), màu sắc(color) và kích thước quần áo(clothes_size), và thuộctính đo lường là số lượng(quantity) Mỗi ô được xác định bởi các giá trị của ba chiều này Mỗi ô trong khối dữ liệu chứa một giá trị, giống như trong bảng chéo.Trong Hình 11.5, giá trị chứa trong một ô được hiển thị trên một mặt của ô; các mặt khác của ô được để trống nếu chúng thấy được Tất cả các ô đều chứa giá trị, ngay cả khi chúng không thấy được Giá trị cho một thuộc tính có thể là "tất cả", trong trường hợp đó ô chứa một tóm tắt trên tất cả các giá trị của thuộc tính đó, giống như trong trường hợp của bảng chéo.

Số lượng cách khác nhau mà các bản ghi có thể được nhóm lại để tổng hợp có thể rất lớn Trong ví dụ của Hình 11.5, có 3 màu sắc, 4 mục, và 3 kích thước dẫnđến một kích thước khối 3 × 4 × 3 = 36 Bao gồm giá trị tổng hợp, chúng ta thu được một khối 4 × 5 × 4, kích thước là 80 Trên thực tế, đối với một bảng có n chiều, tổng hợp có thể được thực hiện bằng cách nhóm trên mỗi tập con 2 chiềun

của n chiều.

Hệ thống xử lý phân tích trực tuyến (OLAP) cho phép một người phân tích dữ liệu xem các bảng chéo khác nhau trên cùng dữ liệu bằng cách lựa chọn tương tác các thuộc tính trong bảng chéo Mỗi bảng chéo là một góc nhìn hai chiều trên một khối dữ liệu đa chiều Ví dụ, người phân tích có thể chọn một bảng chéo về tên sản phẩm(item_name) và kích thước quần áo(clothes_size) hoặc một bảng chéo về màu sắccolor) và kích thước quần áo Phép thay đổi các chiều được sử dụng trong một bảng chéo được gọi là pivoting(xoay vòng).Hệ thống OLAP cho phép một người phân tích xem một bảng chéo về tên sản phẩm(item_name) và màu sắc(color) cho một giá trị cố định của kích thước quần áo(clothes_size), ví dụ, là lớn, thay vì tổng hợp trên tất cả kích thước Phépthực hiện này được gọi là slicing, vì nó có thể được hiểu như việc xem một phầndữ liệu trong khối dữ liệu Phép thực hiện này đôi khi được gọi là dicing, đặc biệt khi giá trị cho nhiều chiều được cố định.

Khi một bảng chéo được sử dụng để xem một khối dữ liệu đa chiều, các giá trị của các thuộc tính chiều mà không phải là một phần của bảng chéo được hiển thịphía trên bảng chéo Giá trị của thuộc tính như vậy có thể là "tất cả," như trong Hình 11.4, cho biết rằng dữ liệu trong bảng chéo là một tóm tắt trên tất cả giá trị của thuộc tính đó Slicing/dicing đơn giản là lựa chọn giá trị cụ thể cho những thuộc tính này, sau đó chúng sẽ được hiển thị phía trên bảng chéo.

Hệ thống OLAP cho phép người dùng xem dữ liệu ở bất kỳ mức độ chi tiết nào mà họ muốn Phép chuyển từ dữ liệu chi tiết hơn đến mức độ tập hợp lớn hơn

Trang 18

(bằng cách tổng hợp) được gọi là rollup Trong ví dụ của chúng tôi, bắt đầu từ khối dữ liệu trên bảng bán hàng(sales), chúng ta đã có bảng chéo ví dụ của chúng tôi bằng cách rollup trên thuộc tính kích thước quần áo(clothes_size) Phép thực hiện ngược lại, từ dữ liệu tập hợp lớn hơn đến dữ liệu chi tiết hơn, được gọi là drill down Dữ liệu chi tiết hơn không thể được tạo ra từ dữ liệu tập hợp lớn hơn; chúng phải được tạo ra từ dữ liệu gốc hoặc từ dữ liệu tóm tắt chi tiết hơn.

Hình 11.5 Khối dữ liệu ba chiều thuộc tính tên, màu sắc, kích thước của mặt hàng

Người phân tích có thể muốn xem một thuộc tính ở các mức độ chi tiết khác nhau Ví dụ, xem xét một thuộc tính kiểu datetime chứa ngày và thời gian trong một ngày Sử dụng thời gian chính xác đến giây (hoặc ít hơn) có thể không có ý nghĩa: Một người phân tích quan tâm đến thời gian xấp xỉ trong một ngày có thểchỉ xem giá trị giờ Một người phân tích quan tâm đến doanh số bán hàng theo ngày trong tuần có thể ánh xạ ngày thành ngày trong tuần và chỉ xem giá trị đó Một người phân tích khác có thể quan tâm đến các tổng hợp theo tháng, hoặc quý, hoặc trong cả năm.

Các mức độ chi tiết khác nhau cho một thuộc tính có thể được tổ chức thành mộtcấu trúc thụ đạo Hình 11.6a cho thấy một cấu trúc thụ đạo trên thuộc tính datetime Như một ví dụ khác, Hình 11.6b cho thấy một cấu trúc thụ đạo trên vị trí, với thành phố ở phía dưới cùng của cấu trúc, tiểu bang ở phía trên nó, quốc gia ở mức tiếp theo và vùng là mức độ cao nhất Trong ví dụ trước, quần áo có thể được nhóm theo loại (ví dụ, quần áo nam hoặc quần áo nữ); loại sẽ nằm trên

Trang 19

tên sản phẩm(item_name) trong cấu trúc thụ đạo của chúng tôi về quần áo Tại mức các giá trị thực tế, skirts và dresses sẽ thuộc loại quần áo nữ và pantsvà shirts sẽ thuộc loại quần áo nam.

Hình 11.6 Phân cấp theo thứ nguyên theo 2 phương pháp thời gian và vị tríMột người phân tích có thể quan tâm đến xem doanh số bán hàng của quần áo được chia theo quần áo nam và quần áo nữ, và không quan tâm đến các giá trị cánhân Sau khi xem xét các tổng hợp ở mức độ quần áo nam và quần áo nữ, một người phân tích có thể drill down cấu trúc thụ đạo để xem các giá trị cá nhân Một người phân tích xem mức chi tiết có thể drill up cấu trúc thụ đạo và xem các tổng hợp ở mức độ tập hợp lớn hơn Cả hai mức độ có thể được hiển thị trên cùng một bảng chéo, như trong Hình 11.7.

Hình 11.7 Bảng chéo bán hàng(sales) dựa trên phân cấp của tên mặt hàng(item_name)

Trang 20

11.3.2 Biểu diễn Cross-Tab bằng Mô hình Quan hệ

Cross-Tab khác với bảng quan hệ thông thường được lưu trữ trong cơ sở dữ liệu,vì số cột trong Cross-Tab phụ thuộc vào dữ liệu thực tế Một thay đổi trong giá trị dữ liệu có thể dẫn đến việc thêm nhiều cột, điều này không phù hợp cho lưu trữ dữ liệu Tuy nhiên, chế độ xem Cross-Tab là lựa chọn tốt cho việc hiển thị cho người dùng Việc biểu diễn một Cross-Tab mà không có giá trị tổng hợp trong một dạng quan hệ với một số cột cố định là khá dễ dàng Một Cross-Tab với các hàng/cột tổng hợp có thể được biểu diễn bằng cách giới thiệu một giá trị đặc biệt là "all" để đại diện cho tổng hợp, như trong Hình 11.8 Tiêu chuẩn SQL thực tế sử dụng giá trị null thay vì "all," nhưng để tránh sự nhầm lẫn với giá trị null thông thường, chúng ta tiếp tục sử dụng "all."

Xem xét các bộ giá trị (skirt, all, all, 53) và (dress, all, all, 35) Chúng ta đã thu được các bộ giá trị này bằng cách loại bỏ các bộ giá trị riêng lẻ có giá trị khác nhau cho màu sắc(color) và kích thước quần áo(clothes_size), và thay thế giá trị của số lượng(quantity) bằng tổng của các số lượng Giá trị "all" có thể được coi là đại diện cho tập hợp tất cả các giá trị cho một thuộc tính Các bộ giá trị có giá trị "all" cho các chiều màu sắc(color) và kích thước(clothes_size) quần áo có thểđược thu được thông qua việc tổng hợp trên quan hệ bán hàng(sales) với một câu lệnh "group by" trên cột "item name." Tương tự, việc sử dụng "group by" trên màu sắc(color), kích thước quần áo(clothes_size) có thể được sử dụng để thu được các bộ giá trị có giá trị "all" cho tên sản phẩm(item_name), và "group by" mà không có thuộc tính nào (mà có thể bị bỏ qua trong SQL) có thể được sửdụng để thu được bộ giá trị với giá trị "all" cho tên sản phẩm(item_name), màu sắc(color) và kích thước quần áo(clothes_size)

Hình 11.8 Biểu diễn quan hệ dữ liệu đã có trong hình 11.4

Trang 21

Các cấu trúc phân cấp cũng có thể được biểu diễn bằng quan hệ Ví dụ, sự thực rằng váy và áo váy thuộc danh mục trang phục cho nữ và quần áo thuộc danh mục trang phục cho nam có thể được biểu diễn bằng quan hệ "itemcategory" (tên sản phẩm(item_name), danh mục(category)) Quan hệ này có thể được kết hợp với quan hệ bán hàng(sale) để thu được một quan hệ bao gồm danh mục chotừng sản phẩm Việc tổng hợp trên quan hệ đã kết hợp này cho phép chúng ta thu được một Cross-Tab với cấu trúc phân cấp Một ví dụ khác, một cấu trúc phân cấp về thành phố có thể được biểu diễn bằng một quan hệ duy nhất "city hierarchy" (ID, thành phố, tiểu bang, quốc gia, vùng), hoặc bằng nhiều quan hệ, mỗi quan hệ ánh xạ các giá trị ở một cấp độ trong cấu trúc phân cấp đến giá trị ởcấp độ tiếp theo Chúng ta giả định ở đây rằng các thành phố có các thông tin định danh duy nhất, được lưu trữ trong thuộc tính "ID," để tránh sự nhầm lẫn giữa hai thành phố có cùng tên, ví dụ, Springfield ở Missouri và Springfield ở Illinois.

11.3.3 Xử lý phân tích trực tuyến(OLAP) trong SQL:

Những nhà phân tích sử dụng hệ thống OLAP cần có các tổng hợp để được tạora một cách tương tác, mà không cần phải đợi trong nhiều phút hoặc giờ Điềunày dẫn đầu tiên đến việc phát triển các hệ thống chuyên biệt cho OLAP (xemGhi chú 11.1 trên trang 535) Hiện nay, nhiều hệ thống cơ sở dữ liệu triển khaiOLAP cùng với các câu lệnh SQL để biểu thị các truy vấn OLAP Như chúng tađã thấy trong Mục 5.5.3, một số triển khai, như Microsoft SQL Server vàOracle, hỗ trợ câu lệnh pivot cho phép tạo các bảng chéo Với quan hệ bán hàngtừ Hình 11.3, truy vấn sau:

select *from salespivot (sum(quantity)

for color ('dark','pastel','white')in)

order by item_name;

trả về bảng chéo như trong Hình 11.9 Lưu ý rằng mệnh đề "for" trong mệnh đề"pivot" chỉ định các giá trị màu sắc xuất hiện dưới dạng tên thuộc tính trong kếtquả pivot Thuộc tính màu sắc chính nó không xuất hiện trong kết quả, tuynhiên, tất cả các thuộc tính khác vẫn được giữ lại, ngoại trừ giá trị của các thuộctính mới được chỉ định từ thuộc tính quantity Trong trường hợp nhiều bộ giá trịđóng góp giá trị cho một ô cụ thể, thao tác tổng hợp trong mệnh đề "pivot" chỉ

Ngày đăng: 15/05/2024, 18:46

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w