Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
1,94 MB
Nội dung
Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 5: Làm việc với các đối tượng của DB2 Hana Curtis, Chuyên gia, IBM Canada Tóm tắt: Bài viết này thảo luận về những kiểu dữ liệu, bảng, khung nhìn (view), và chỉ mục được định nghĩa bởi DB2 9. Nó giải thích những đặc tính của những đối tượng trên, và làm cách nào để tạo ra và xử lí chúng sử dụng Ngôn ngữ truy vấn cấu trúc(SQL), và chúng có thể được sử dụng trong ứng dụng như thế nào. Bài viết này là bài thứ năm trong một loạt bảy bài viết mà bạn có thể sử dụng để chuẩn bị cho kỳ thi 730, lấy chứng chỉ DB2 9 cơ bản. Trước khi bạn bắt đầu Về loạt bài này Bạn đã nghĩ tới việc có một chứng chỉ cơ bản của DB2 (Bài thi số 730)? Nếu bạn nghĩ như thế thì bạn đã đến đúng chỗ. Đây là loạt bảy bài hướng dẫn chuẩn bị cho kỳ thi chứng chỉ DB2 bao hàm tất cả những kiến thức cơ bản những chủ đề bạn cần hiểu trước khi bạn đọc những câu hỏi sát hạch đầu tiên. Ngay cả khi bạn không có kế hoạch giành được chứng chỉ đi chăng nữa, những bài viết này cũng là nơi tuyệt vời để có được kiến thức để biết DB2 9 là gì. Về bài viết này Những kiến thức trong bài viết này chủ yếu về những đối tượng trong mục 5 của bài thi, có tựa đề là "Làm việc với đối tượng DB2". Bạn có thể thấy những mục đích này tại: http://www-03.ibm.com/certify/tests/obj730.shtml. Những chủ đề trong bài viết này gồm có: Giới thiệu về những kiểu dữ liệu có sẵn trong DB2, và việc sử dụng khi định nghĩa một bảng. (Xử lí khác nhau đối với các loại dữ liệu khác nhau, xem bài viết thứ tư trong loạt bài viết này). Giới thiệu về những kiểu dữ liệu nâng cao. Bảng, khung nhìn, và chỉ mục. Giải thích về các kiểu ràng buộc dữ liệu và cách sử dụng chúng. Các mục đích Sau khi hoàn thành bài viết này, các bạn có thể: Hiểu được những kiểu dữ liệu cơ bản và nâng cao Tạo ra các bảng, các khung nhìn, và chỉ số trong cơ sở dữ liệu DB2 Hiểu được những đặc tính và cách dùng của những ràng buộc duy nhất, ràng buộc về toàn vẹn, và ràng buộc kiểm tra bảng Sử dụng khung nhìn để giới hạn khả năng truy cập dữ liệu Hiểu được những đặc tính của chỉ mục Yêu cầu hệ thống Bạn không cần một bản sao chép của DB2 để hoàn thành bài viết này. Tuy nhiên, nếu bạn thích, bạn có thể tải xuống phiên bản thử nghiệm của IBM DB2 9 để làm việc với bài viết này. Kiểu dữ liệu DB2 cung cấp sự phân loại kiểu dữ liệu một cách linh động và phong phú. DB2 bắt đầu với những kiểu dữ liệu cơ bản như INTEGER, CHAR, và DATE. Nó cũng bao gồm những khả năng để tạo ra những loại dữ liệu do người dùng định nghĩa (UDTs) do vậy bạn có thể tạo ra những cấu trúc dữ liệu mới, phức tạp phù hợp với môi trường lập trình phức tạp ngày nay. Việc chọn kiểu dữ liệu để sử dụng phụ thuộc vào kiểu và phạm vi thông tin chứa trong cột. Có bốn lớp dữ liệu có sẵn: Số, Chuỗi ký tự, thời gian, và XML. Những kiểu dữ liệu người dùng định nghĩa được phân loại như: riêng biệt, có cấu trúc và tham chiếu. Kiểu dữ liệu số Ở đây có ba phạm trù của kiểu dữ liệu số, như trong hình trên. Mỗi kiểu dữ liệu có một phạm vi của dữ liệu mà chúng có khả năng lưu trữ. Integer (Số nguyên): SMALLINT, INTEGER, và BIGINT được sử dụng để chứa số nguyên. Ví dụ, đếm số thiết bị trong bản kiểm kê có thể được định nghĩa như là INTEGER. SMALLINT có thể chứa được những số nguyên trong phạm vi từ -32,768 đến 32,767, với kích thước 2 bytes. INTEGER có thể chứa được những số nguyên từ -2,147,483,648 đến 2,147,483,647, với kích thước 4 bytes. BIGINT có thể chứa được những số nguyên từ - 9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807, với kích thước 8 bytes. Decimal (Số thực): DECIMAL được sử dụng để chứa những số dưới dạng số thập phân. Để định nghĩa kiểu dữ liệu này, chỉ rõ một độ chính xác (p), xác định tổng các chữ số và một phạm vi (s), xác định số các chữ số thập phân. Một cột định nghĩa bởi DECIMAL(10,2) có thể giữ giá trị tiền tệ lên tới 99999999.99 đô la. Số lượng yêu cầu chứa trong cơ sở dữ liệu phụ thuộc vào sự chính xác và được tính bởi công thức p/2 +1. Do vậy, DECIMAL(10,2) đòi hỏi 10/2 + 1 hoặc là 6 bytes. Dấu phẩy động: REAL và DOUBLE được sử dụng để chứa những số xấp xỉ. Ví dụ, những phép đo chính xác rất lớn hoặc rất nhỏ có thể được định nghĩa như là REAL. REAL có thể được định nghĩa với độ dài từ 1 đến 24 số và cần 4 bytes để chứa. DOUBLE có thể được định nghĩa với độ dài từ 25 đến 53 số và cần 8 bytes để chứa. FLOAT có thể được sử dụng như một kiểu tương tự cho kiểu REAL hoặc DOUBLE. Kiểu dữ liệu chuỗi ký tự (String) DB2 cung cấp rất nhiều kiểu dữ liệu cho việc lưu trữ dữ liệu hoặc xâu ký tự, giống như hình vẽ trên. Chọn một kiểu dữ liệu dựa vào kích cỡ của xâu ký tự bạn sẽ chứa đựng và dữ liệu gì sẽ được chứa trong xâu ký tự. Những kiểu dữ liệu dưới đây được sử dụng để chứa xâu các ký tự đơn (gồm từng ký tự): CHAR hoặc CHARACTER được sử dụng để chứa chuỗi ký tự có độ dài cố định lên tới 254 bytes. Ví dụ, một đặc tính sản xuất có thể được xác định bởi một chuỗi 8 ký tự, và do vậy việc chứa chuỗi này trong cơ sở dữ liệu như là một cột của CHAR(8). VARCHAR được sử dụng để chứa xâu ký tự có độ dài thay đổi. Ví dụ, đặc tính sản xuất liên quan đến một số thành phần có độ dài khác nhau, và do đó chứa những chuỗi này như là một cột của VARCHAR(100). Độ dài lớn nhất của một cột VARCHAR là 32,672 bytes. Trong cơ sở dữ liệu, dữ liệu VARCHAR chỉ chiếm đúng số bytes nó yêu cầu. Những loại dữ liệu dưới đây được sử dụng để chứa xâu ký tự hai byte: GRAPHIC được sử dụng để chứa những xâu ký tự hai byte có độ dài cố định. Độ dài lớn nhất của một cột GRAPHIC là 127 ký tự. VARGRAPHIC được sử dụng để chứa những xâu ký tự hai byte có độ dài thay đổi. Độ dài lớn nhất của cột VARGRAPHIC là 16,336 ký tự DB2 cũng cung cấp những kiểu dữ liệu để chứa những xâu ký tự rất dài. Tất cả những kiểu dữ liệu này có cùng đặc tính. Thứ nhất, dữ liệu không được chứa về mặt vật lý với hàng dữ liệu trong cơ sở dữ liệu, nó có nghĩa là việc xử lí thêm được yêu cầu để truy nhập vào dữ liệu này. Những kiểu dữ liệu dài có thể được định nghĩa độ dài lên tới 2 GB. Tuy nhiên, chỉ có không gian được yêu cầu là thực sự được sử dụng. Những kiểu dữ liệu dài: LONG VARCHAR CLOB (character large object) - đối tượng ký tự lớn LONG VARGRAPHIC DBCLOB (double-byte character large object) - đối tượng ký tự lớn có hai byte BLOB (binary large object) - đối tượng ký tự lớn kiểu nhị phân Kiểu dữ liệu thời gian DB2 cung cấp ba kiểu dữ liệu để lưu trữ ngày và giờ: DATE TIME TIMESTAMP Những giá trị của những liệu dữ liệu này được lưu trữ trong cơ sở dữ liệu bằng định dạng nội tại; Tuy nhiên, những ứng dụng có thể xử lí chúng như là những chuỗi ký tự. Khi một trong số những kiểu dữ liệu này được lấy ra, nó được coi như là một chuỗi ký tự. Chứa đựng giá trị trong dấu ngoặc kép khi cập nhật những liệu dữ liệu này. DB2 cung cấp những hàm có sẵn để xử lí những giá trị thời gian. Ví dụ, bạn có thể xác định ngày của một tuần sử dụng DAYOFWEEK hoặc hàm DAYNAME. Việc sử dụng hàm DAYS để tính toán khoảng cách giữa hai ngày. DB2 cũng cung cấp những bản đăng ký đặc biệt để tạo ra ngày, giờ hiện tại hoặc dấu thời gian (timestamp) dựa vào đồng hồ chỉ thời gian của ngày. Ví dụ, CURRENT DATE trả về một chuỗi đại diện cho ngày hiện tại của hệ thống. Định dạng của giá trị thời gian và ngày phụ thuộc vào mã từng quốc gia của cơ sở dữ liệu, được đặc tả khi tạo ra cơ sở dữ liệu. Ở đây có nhiều định dạng có sẵn: ISO, USA, EUR, và JIS. Ví dụ, nếu cơ sở dữ liệu của bạn sử dụng định dạng USA, định dạng của ngày sẽ là mm/dd/yyyy. Bạn có thể thay đổi định dạng bằng việc sử dụng DATETIME tùy chọn của câu lệnh BIND lệnh khi tạo ứng dụng. Ở đây có một định dạng đơn cho kiểu dữ liệu TIMESTAMP. Định dạng này là một chuỗi có dạng yyyy-mm-dd-hh.mm.ss.nnnnnn. Kiểu dữ liệu XML DB2 cung cấp kiểu dữ liệu XML để lưu trữ những tài liệu XML phổ biến. Những giá trị trong những cột XML được lưu trữ trong một sự miêu tả nội tại khác với những định dạng xâu ký tự. Để lưu trữ dữ liệu XML vào cột dữ liệu kiểu XML, dùng hàm chuyển đổi dữ liệu XMLPARSE. Tất cả giá trị kiểu XML có thể được chuyển đổi vào trong một chuỗi giá trị đã được phát ra đang miêu tả tài liệu XML sử dụng hàm XMLSERIALIZE. DB2 cung cấp nhiều hàm sẵn có khác để xử lí dữ liệu XML. Kiểu dữ liệu người dùng định nghĩa DB2 cho phép bạn định nghĩa kiểu dữ liệu phù hợp với ứng dụng của bạn. Ở đây có ba kiểu dữ liệu người dùng định nghĩa: Kiểu người dùng định nghĩa riêng biệt: Định nghĩa một kiểu dữ liệu mới dựa trên những kiểu sẵn có. Kiểu dữ liệu mới này có đặc tính tương tự như những kiểu có sẵn, nhưng bạn có thể sử dụng nó để chắc chắn rằng chỉ các giá trị cùng kiểu được so sánh với nhau. Ví dụ, bạn có thể định nghĩa ra một kiểu đô la của Canada (CANDOL) và một kiểu đô la của Mỹ (USADOL) cả hai đều dựa vào kiểu số thập phân DECIMAL(10,2). Cả hai kiểu dựa vào cùng kiểu dữ liệu sẵn có, nhưng bạn sẽ không có khả năng so sánh chúng trừ khi một hàm chuyển đổi được sử dụng. Câu lệnh dưới đây CREATE TYPE tạo ra những kiểu dữ liệu CANDOL và USADOL: CREATE DISTINCT TYPE CANDOL AS DECIMAL(10,2) WITH COMPARISONS CREATE DISTINCT TYPE USADOL AS DECIMAL(10,2) WITH COMPARISONS DB2 tự động tạo ra những hàm để thực hiện gộp giữa kiểu dữ liệu cơ bản và kiểu riêng biệt, và toán tử so sánh để so sánh các thí dụ của kiểu riêng biệt. Những câu lệnh dưới đây trình bày cách làm thế nào để tạo ra một bảng với một cột là kiểu CANDOL và chèn dữ liệu vào bảng sử dụng hàm gộp CANDOL: CREATE TABLE ITEMs (ITEMID CHAR(5), PRICE CANDOL) INSERT INTO ITEMs VALUES('ABC11',CANDOL(30.50)) Kiểu cấu trúc người dùng định nghĩa: Tạo ra một kiểu chứa đựng nhiều cột của những kiểu dữ liệu sẵn có. Sau đó, sử dụng cấu trúc này khi tạo bảng. Ví dụ, bạn có thể tạo ra kiểu cấu trúc có tên là ADDRESS chứa dữ liệu về số đường phố, tên đường phố, thành phố, Sau đó bạn có thể sử dụng kiểu dữ liệu này khi định nghĩa những bảng khác, như là nhân viên hoặc nhà cung cấp, bởi vì cả hai kiểu dữ liệu này đều cần. Những kiểu dữ liệu cấu trúc cũng có thể chứa các kiểu cấu trúc con. Kiểu này cho phép bạn lưu trữ những đối tượng mà phụ thuộc theo cấu trúc phân cấp trong cơ sở dữ liệu. Kiểu dữ liệu tham chiếu người dùng định nghĩa: Khi sử dụng kiểu dữ liệu có cấu trúc, bạn có thể định nghĩa tham chiếu đến những hàng trong bảng khác sử dụng kiểu tham chiếu. Những kiểu tham chiếu này dường như tương tự với ép kiểu cho tham chiếu; Tuy nhiên, chúng không ép buộc mối quan hệ giữa các bảng. Tham chiếu trong bảng cho phép bạn định rõ những truy vấn bằng nhiều cách khác nhau. Những kiểu dữ liệu tham chiếu và có cấu trúc do người dùng định nghĩa là đề tài đầu tiên; thông tin hiện tại ở đây chỉ xem như một lời giới thiệu những kiểu dữ liệu này. Mở rộng DB2 Những phần mở rộng của DB2 hỗ trợ những kiểu dữ liệu mới, phức tạp. Chúng được đóng gói riêng lẻ từ mã máy chủ DB2 và được cài trên máy chủ và trong mỗi cơ sở dữ liệu sử dụng kiểu dữ liệu này. Có nhiều phần mở rộng DB2 sẵn có của IBM và những nhà cung cấp phần mềm độc lập. Bốn chức năng mở rộng đầu tiên cung cấp bởi IBM hỗ trợ việc lưu trữ âm thanh, video, hình ảnh và dữ liệu văn bản. Ví dụ, sử dụng chức năng mở rộng hỗ trợ hình ảnh của DB2 lưu trữ một ảnh của quyển sách và chức năng mở rộng hỗ trợ văn bản để lưu trữ văn bản của một quyển sách. Hiện tại, có rất nhiều chức năng mở rộng sẵn có khác. Chức năng mở rộng hỗ trợ không gian DB2 có thể sử dụng để lưu trữ và phân tích dữ liệu không gian và chức năng mở rộng XML cho việc quản lý dữ liệu XML. Những chức năng mở rộng của DB2 được thực thi bằng việc sử dụng các đặc tính kiểu những kiểu người dùng định nghĩa và các chức năng người dùng định nghĩa (UDFs). Mỗi chức năng mở rộng có thể gồm một hay nhiều UDTs, UDFs được thực thi trên các công cụ người dùng định nghĩa (UDT), các giao diện lập trình [...]... trình kịch bản và lập trình ứng dụng sau này Một cơ sở dữ liệu có tập hợp các bảng, được gọi là bảng liệt kê hệ thống, lưu giữ thông tin về tất cả những đối tượng trong cơ sở dữ liệu DB2 cung cấp những khung nhìn (views) cho bảng liệt kê hệ thống Cửa sổ quan sát SYSCAT.TABLES chứa một hàng cho mỗi bảng được định nghĩa trong cơ sở dữ liệu SYSCAT.COLUMNS chứa một hàng cho mỗi cột của mỗi bảng trong cơ sở... các bảng trong cơ sở dữ liệu Bảng được chứa trong cơ sở dữ liệu trong tablespace (các không gian bảng) Các không gian tên được cấp không gian vật lí để chứa chúng Tạo không gian bảng trước khi tạo bảng Khi bạn tạo ra một bảng, bạn có thể để DB2 mặc định đặt bảng vào trong một không gian bảng mặc định hoặc xác định không gian bảng bạn miêu tả Câu lệnh sau CREATE TABLE đặt bảng BOOKS vào không gian bảng... REFERENCES AUTHORS) Bảng chứa khóa chính có mối liên hệ với bảng khác ở đây là AUTHORS được gọi là bảng cha Bảng có mối quan hệ với bảng cha ở đây là BOOKS được gọi là bảng phụ thuộc Bạn có thể định nghĩa nhiều hơn một bảng phụ thuộc vào một bảng cha Bạn cũng có thể định nghĩa các mối quan hệ giữa các hàng của cùng một bảng Trong trường hợp này, bảng cha và bảng phụ thuộc là cùng một bảng Khi bạn định... ,'F') Các chỉ số Một chỉ số là một danh sách có thứ tự của các giá trị khóa của một cột hoặc một số cột của một bảng Có hai lí do phải tạo ra một chỉ số: Để đảm bảo tính duy nhất của những giá trị trong một cột hoặc nhiều cột Để cải thi n việc thực hiện những câu truy vấn thực hiện trên bảng Bộ tối ưu DB2 sửa dụng những chỉ số để cải thi n việc thực hiện các truy vấn hay đưa ra những kết quả của. .. UDTs khi định nghĩa bảng và sử dụng UDFs khi làm việc với dữ liệu (Để hiểu hơn về những phần mở rộng này, xem ở bài viết đầu tiên trong loạt bài này.) Kiểu dữ liệu XML, là một đặc tính mới ở DB2 9, cung cấp những đặc tính nâng cao cho việc xử lí những tài liệu XML Những ứng dụng và dữ liệu sử dụng chức năng mở rộng XML phải được chuyển hướng để sử dụng hỗ trợ XML nội tại trong DB2 Các bảng Tất cả dữ liệu... là BOOKTYPE tới bảng BOOK: ALTER TABLE BOOKS ADD BOOKTYPE CHAR(1) Bạn có thể thay đổi các đặc tính của cột trong bảng: Những thuộc tính xác định của cột Độ dài của cột kiểu xâu ký tự Kiểu dữ liệu của cột Khả năng mang giá trị rộng của cột Ràng buộc của cột Ở đây có một số giới hạn của việc thay đổi cột: Khi thay đổi độ dài của cột kiểu string, bạn có thể chỉ tăng độ dài của nó Khi thay... phân loại các khóa Chỉ số được lưu trữ trong một không gian bảng Nếu những bảng thuộc trong một không gian bảng được quản lí bởi cơ sở dữ liệu, bạn phải có các chỉ số khác nhau trên vào trong không gian bảng riêng biệt Định nghĩa điều này khi bạn tạo ra bảng, sử dụng mệnh đề INDEXES IN Sự định vị của những chỉ số của bảng là tập hợp khi bảng được tạo ra và không thể được thay đổi được trừ khi bảng được... tả, DB2 không cho phép hàng cha bị xóa Những hàng trong những bảng phụ thuộc phải được xóa trước hàng ở trong bảng cha Đây là nguyên tắc mặc định, do đó nguyên tắc này áp dụng vào bảng AUTHORS và BOOKS như đã được định nghĩa o Nếu CASCADE được định nghĩa, việc xóa một hàng từ bảng cha cũng tự động xóa những hàng trong tất cả các bảng phụ thuộc o Nếu SET NULL được đặc tả, thì khi hàng trong bảng cha bị. .. tin về những người làm thuê của nó, khi một ứng dụng thư mục cần thấy được tất cả những người làm thuê trong công ty cùng với địa chỉ của họ và số điện thoại, nhưng không cần thấy tiền lương Bạn có thể tạo ra một khung nhìn mà hiển thị tất cả thông tin về những người làm thuê trong một phần đặc biệt và những người khác chỉ thấy được tên, địa chỉ, và số điện thoại của tất cả những người làm thuê Về phía... sẽ cải thi n việc thực thi các truy vấn cho biết danh sách các tác giả và danh sách tên tất cả các sách mà tác giả đó viết Sử dụng các cột trong các chỉ số Khi tạo ra một chỉ số, bạn có tùy chọn để bao gồm thêm cột dữ liệu mở rộng mà được lưu trữ với khóa, nhưng không thực sự là bộ phận của khóa đó và không được lưu trữ Lí do chính để bao gồm thêm những cột bổ sung trong một chỉ số là để cải thi n sự . Chuẩn bị cho kỳ thi cơ bản về DB2 9, Phần 5: Làm việc với các đối tượng của DB2 Hana Curtis, Chuyên gia, IBM Canada Tóm tắt: Bài viết này thảo luận về những kiểu dữ liệu, bảng, khung. bạn có thể sử dụng để chuẩn bị cho kỳ thi 730, lấy chứng chỉ DB2 9 cơ bản. Trước khi bạn bắt đầu Về loạt bài này Bạn đã nghĩ tới việc có một chứng chỉ cơ bản của DB2 (Bài thi số 730)? Nếu bạn. thức để biết DB2 9 là gì. Về bài viết này Những kiến thức trong bài viết này chủ yếu về những đối tượng trong mục 5 của bài thi, có tựa đề là " ;Làm việc với đối tượng DB2& quot;. Bạn