Các khái niệm cơ bản của DB2: Các ràng buộc Leon Kwok, Hỗ trợ khách hàng, IBM pot

30 303 0
Các khái niệm cơ bản của DB2: Các ràng buộc Leon Kwok, Hỗ trợ khách hàng, IBM pot

Đ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

Các khái niệm cơ bản của DB2: Các ràng buộc Leon Kwok, Hỗ trợ khách hàng, IBM Tóm tắt: Các ràng buộc được DB2 của hãng IBM sử dụng trên các hệ điều hành Linux, UNIX, và Windows để tăng hiệu lực các quy tắc nghiệp vụ cho dữ liệu và để đảm bảo tính toàn vẹn của cơ sở dữ liệu. Bài viết này mô tả các loại ràng buộc được DB2 hỗ trợ và cung cấp các ví dụ theo từng loại ràng buộc. Ngoài ra, tác giả giải thích những nguyên tắc cơ bản của việc quản lý các ràng buộc (bằng cách sử dụng dòng lệnh hoặc Trung tâm Quản lý của DB2). [Bài viết này được cập nhật để phản ánh DB2 phiên bản 9.7 và các cập nhật khác. Ban Biên tập.] Introduction Giới thiệu Phần này của bài viết mô tả sự khác biệt trong cấu trúc của DB2 và các quy trình SQL của solidDB.  Không NULL  Duy nhất  Khóa chính  Khóa ngoại  Kiểm tra bảng Còn có một loại ràng buộc nữa được biết đến, là ràng buộc thông tin. Không giống như năm loại ràng buộc được liệt kê ở trên, ràng buộc thông tin không được người quản trị cơ sở dữ liệu chú trọng, nhưng nó có thể được sử dụng trong trình biên dịch SQL để cải thiện hiệu suất truy vấn. Bài viết này chỉ tập trung vào các loại ràng buộc trong danh sách trên. Bạn có thể xác định được một hoặc nhiều ràng buộc của DB2 khi tạo một bảng mới, hoặc về sau bạn có thể xác định một số ràng buộc khi thay đổi bảng. Các câu lệnh CREATE TABLE rất phức tạp. Trong thực tế, nó phức tạp đến nỗi người ta chỉ sử dụng một phần nhỏ của các tùy chọn khi định nghĩa ràng buộc hạn chế, nhưng bản thân tùy chọn tỏ ra khá phức tạp khi hiện trong sơ đồ cú pháp, như trong hình 1. Hình 1. Một phần của cú pháp của câu lệnh CREATE TABLE, hiển thị các câu cho phép xác định các ràng buộc Việc quản lý các ràng buộc có thể đơn giản và thuận tiện hơn khi thực hiện thông qua Trung tâm điều khiển của DB2. Các định nghĩa ràng buộc gắn với các cơ sở dữ liệu mà chúng áp dụng, và chúng được lưu trữ trong danh mục cơ sở dữ liệu, như trong Bảng 1. Bạn có thể truy vấn danh mục cơ sở dữ liệu để lấy và kiểm tra thông tin này. Bạn có thể thực hiện điều này trực tiếp qua dòng lệnh (nhớ là trước hết phải thiết lập kết nối cơ sở dữ liệu), hoặc, bạn cũng có thể thấy việc truy cập một số thông tin này thuận tiện hơn khi thông qua Trung tâm điều khiển của DB2. Các ràng buộc mà bạn tạo ra được quản lí như bất kỳ đối tượng khác trong cơ sở dữ liệu. Chúng được đặt tên, có lược đồ liên quan (tạo ID), và trong một số trường hợp có thể bị xóa. Hình 2. Một phần của cú pháp của câu lệnh CREATE TABLE, hiển thị các mệnh đề được sử dụng khi xác định các ràng buộc (tiếp) Bảng 1 là các thông tin về ràng buộc trong danh mục cơ sở dữ liệu. Để chạy thành công, các truy vấn trên danh mục này phải có kết nối tới cơ sở dữ liệu. Bảng 1. Các thông tin về ràng buộc trong danh mục cơ sở dữ liệu Khung nhìn danh mục Cột của khung Mô tả Ví dụ truy vấn nhìn SYSCAT.CHECKS Chứa một hàng cho từng ràng buộc kiểm tra bảng db2 chọn constname, tabname, văn bản khung nhìn syscat.checks SYSCAT.COLCHECKS Chứa một hàng cho từng cột được tham chiếu bởi ràng buộc kiểm tra bảng db2 chọn constname, tabname, colname, cách sử dụng từ khung nhìn syscat.colchecks SYSCAT.COLUMNS NULLS Cho biết một cột có thể là null (Y) hay không null (N) db2 chọn tabname, colname, giá trị rỗng từ khung nhìn syscat.columns mà tabsc hema = 'DELSVT và null =' N ' SYSCAT.CONSTDEP Chứa một hàng cho từng phụ thuộc của ràng buộc vào một số đối tượng khác db2 chọn constname, tabname, btype, bname từ syscat.constdep SYSCAT.INDEXES Chứa một hàng cho từng chỉ mục. db2 chọn tabname, uniquerule, made_unique, system_required từ syscat.indexes, mà tabschema = 'DELSVT' SYSCAT.KEYCOLUSE Chứa một hàng cho từng cột tham gia vào khóa được xác định bởi khóa chính, duy nh ất, hoặc bởi ràng buộc của khoá ngoài db2 chọn constname, tabname, colname, colseq từ syscat.keycoluse SYSCAT.REFERENCES Chứa một hàng cho từng ràng buộc tham chiếu db2 chọn constname, tabname, refkeyname, reftabname, colcount, deleterule, updaterule từ syscat.references SYSCAT.TABCONST Chứa một hàng cho từng khóa duy nhất (U), db2 chọn constname, tabname, type từ khóa chính (P), khóa ngoài (F), hoặc ràng buộc kiểm tra bảng (K) syscat.tabconst SYSCAT.TABLES CHA Số lượng bảng cha của bảng này (số lượng của các ràng buộc tham chiếu mà trong đó bảng này là phụ thuộc) db2 "chọn tabname, bảng cha từ syscat.tables mà s ố cha > 0" SYSCAT.TABLES CON Số lượng bảng phụ thuộc của bảng này (số lượng ràng bu ộc tham chiếu trong đó bảng này là bảng cha) db2 "chọn tabname, bảng con từ syscat.tables mà s ố con > 0" SYSCAT.TABLES SELFREFS Số lượng các ràng buộc tham chiếu tự tham chiếu cho bảng này (số lượng db2 "chọn tabname, selfrefs t ừ syscat.tables mà selfrefs > 0" của ràng buộc tham chiếu mà trong đó bảng này là bảng cha và là bảng phụ thuộc) SYSCAT.TABLES KEYUNIQUE Số lượng ràng buộc duy nhất (tr ừ khóa chính) được xác định trên bảng này db2 "chọn tabname, keyunique từ syscat.tables mà keyunique > 0" SYSCAT.TABLES CHECKCOUNT Số lượng ràng buộc kiểm tra được xác định trên bảng này db2 "chọn tabname, checkcount từ syscat.tables mà checkcount > 0" "Không thể không có giá trị !" - Ràng buộc NOT NULL Ràng buộc NOT NULL ngăn chặn các giá trị null thêm vào cột. Điều này đảm bảo rằng cột có giá trị có ý nghĩa đối với mỗi hàng trong bảng. Ví dụ, định nghĩa EMPLOYEE trong cơ sở dữ liệu SAMPLE có LASTNAME VARCHAR(15) NOT NULL, đảm bảo rằng mỗi hàng chứa họ của một nhân viên. Để xác định xem một cột có thể là null hay không, bạn có thể tham chiếu ngôn ngữ định nghĩa dữ liệu (DDL) cho bảng (mà bạn có thể tạo ra bằng cách gọi tiện ích db2look). Bạn có thể sử dụng Trung tâm điều khiển của DB2, như trong hình 3 và hình 4. Hình 3. Khung nhìn của bảng trong Trung tâm Điều khiển [...]... Bài viết này đã khám phá các loại ràng buộc mà DB2 dùng trên các hệ điều hành Linux, UNIX, và Windows, bao gồm ràng buộc NOT NULL, ràng buộc duy nhất, ràng buộc khoá chính, ràng buộc khoá ngoài (tham chiếu) và ràng buộc kiểm tra bảng DB2 sử dụng ràng buộc để tăng hiệu lực các quy tắc nghiệp vụ đối với dữ liệu và để giúp bảo vệ tính toàn vẹn của cơ sở dữ liệu Bạn cũng đã học được cách sử dụng cả dòng lệnh... và Trung tâm điều khiển của DB2 (và cách để truy vấn danh mục cơ sở dữ liệu) để quản lý các ràng buộc một cách hiệu quả Mục lục  Introduction  "Không thể không có giá trị !" - Ràng buộc NOT NULL  "Chỉ xuất hiện một lần" – Ràng buộc unique  "Ta là số một!" - Ràng buộc khoá chính  "Tất cả đều liên quan" - Ràng buộc khoá ngoài  "Kiểm tra và lại kiểm tra" - Ràng buộc kiểm tra bảng  Kết luận ... khi bảng PROJECT xóa-kết nối có giá trị phù hợp với khóa ngoài "Kiểm tra và lại kiểm tra" - Ràng buộc kiểm tra bảng Ràng buộc kiểm tra bảng tăng hiệu lực các ràng buộc đã xác định trên dữ liệu vừa được thêm vào bảng Ví dụ: ràng buộc kiểm tra bảng có thể đảm bảo rằng số máy lẻ của điện thoại cho nhân viên là dài bốn chữ số bất cứ khi nào số máy lẻ điện thoại được thêm vào hoặc được cập nhật trong bảng... kiểm tra hiện tại Bạn không thể tạo ra ràng buộc kiểm tra bảng nếu hàng hiện tại trong bảng chứa các giá trị trái với ràng buộc mới, như trong hình 9 Bạn có thể thêm hoặc sửa đổi được ràng buộc sau khi các giá trị không tương thích được cập nhật một cách thích hợp Hình 9 Lỗi được trả về nếu ràng buộc kiểm tra bảng mới không tương thích với các giá trị hiện tại trong bảng Trì hoãn kiểm tra dữ liệu Câu lệnh... SQLSTATE=23505 Các tên của ràng buộc Nếu bạn không chỉ định tên cho một ràng buộc khi nó được tạo ra, thì DB2 gán cho nó tên dựa trên các dấu thời gian khi tạo ra ràng buộc, chẳng hạn như SQL100419222516560 Ràng buộc unique giúp đảm bảo toàn vẹn dữ liệu bằng cách ngăn sự trùng lặp không chủ ý Trong ví dụ này, ràng buộc unique ngăn cản việc chèn bản ghi thứ hai muốn xác định New York là địa điểm chi nhánh của. .. số giá trị của khóa chính của bảng cha Điều này phù hợp với những gì đã được nói đến Nếu một bản ghi mới muốn chèn vào bảng PROJECT, thì bản ghi đó phải có tham chiếu (thông qua các mối quan hệ khóa ngoài-khóa chính) đến bản ghi đang tồn tại trong bảng EMPLOYEE Quy tắc cập nhật của ràng buộc tham chiếu là một giá trị cập nhật của khóa ngoài phải phù hợp với một số giá trị của khóa chính của bảng cha,... Định nghĩa của bảng mới phản ánh định nghĩa của bảng EMPLOYEE Việc kiểm tra tính toàn vẹn được bật lên, với các hàng trái với các ràng buộc kiểm tra đang được ghi vào bảng ngoại lệ Các truy vấn cho các bảng này xác nhận rằng hàng đang được nói đến bây giờ chỉ tồn tại trong bảng ngoại lệ Liệt kê 7 Sử dụng câu lệnh SET INTEGRITY để trì hoãn việc kiểm tra các ràng buộc db2 update employee set phoneno = '123'... của tổ chức Ràng buộc unique được tăng hiệu lực thông qua chỉ mục duy nhất "Ta là số một!" - Ràng buộc khoá chính Ràng buộc khoá chính đảm bảo rằng tất cả các giá trị trong cột hoặc bộ các cột tạo nên khóa chính cho bảng là duy nhất Khóa chính được sử dụng để xác định các hàng cụ thể trong bảng Một bảng không thể có nhiều hơn một khóa chính, nhưng nó có thể có một số khóa duy nhất Ràng buộc khoá chính... khi định nghĩa ràng buộc tham chiếu Bảng 2 Các lựa chọn của tham chiếu ràng buộc Nếu mệnh đề này được xác định khi ràng buộc tham chiếu được Và đây là kết quả tạo ra RESTRICT or NO ACTION SET NULL Không hàng nào bị xóa Từng cột có thể rỗng của khóa ngoài được đặt về NULL Hoạt động xóa được truyền đến phần phụ CASCADE thuộc của bảng cha Các phần phụ thuộc được coi là xóa-kết nối tới bảng cha Liệt kê... trong bảng STAFF không được rỗng, và nó có thể có ràng buộc khoá chính xác định trên nó Liệt kê 3 Tạo ràng buộc khoá chính db2 alter table staff add primary key (id) Ngoài ra, bạn có thể sử dụng Trung tâm điều khiển của DB2 để xác định ràng buộc khoá chính trên bảng, như được thể hiện trong hình 5 và hình 6 Cửa sổ Alter Table cung cấp cách thuận tiện để định nghĩa ràng buộc khoá chính trên bảng Hãy . Các khái niệm cơ bản của DB2: Các ràng buộc Leon Kwok, Hỗ trợ khách hàng, IBM Tóm tắt: Các ràng buộc được DB2 của hãng IBM sử dụng trên các hệ điều hành Linux, UNIX,. định các ràng buộc (tiếp) Bảng 1 là các thông tin về ràng buộc trong danh mục cơ sở dữ liệu. Để chạy thành công, các truy vấn trên danh mục này phải có kết nối tới cơ sở dữ liệu. Bảng 1. Các. hiệu lực các quy tắc nghiệp vụ cho dữ liệu và để đảm bảo tính toàn vẹn của cơ sở dữ liệu. Bài viết này mô tả các loại ràng buộc được DB2 hỗ trợ và cung cấp các ví dụ theo từng loại ràng buộc.

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan