1 WELCOME MESSAGES Insert your subtitle here Chương 2: Cơ sở dữ liệu quan hệ page 2 Nội dung 1- Quan hệ 2- Miền giá trị của một thuộc tính 3- Lược đồ quan hệ 4- Thể hiện của một quan hệ 5- Cơ sở dữ liệu quan hệ 6- Lược đồ CSDL quan hệ 7- Các loại khóa trong CSDL quan hệ 8- Mối quan hệ 9- Ràng buộc toàn vẹn page 3 1. Quan hệ (Relation): một quan hệ là một bảng chứa dữ liệu bao gồm nhiều cột và nhiều dòng. Dữ liệu trong một quan hệ phải thỏa các ràng buộc liên quan tới quan hệ đó - Mỗi cột được gọi là một thuộc tính (attribute) hay một trường (field) của quan hệ. - Mỗi dòng được gọi là một bộ (tuple) hay mẫu tin/ bản ghi (record) attributes Ví dụ: Quan hệ SINHVIEN (or fields) MaSV HoTen NgaySinh Điachi 14110 Trương Trọng 24/04/01 2 VVN 14111 Nguyễn Duy 18/05/01 3 NDT tuples (or records) ... 2. Miền giá trị (Domain) của một thuộc tính: một tập giá trị mà một thuộc tính có thể nhận. vd. Dom(Phai) = |Phai| = {‘Nam’, ‘Nu’} Dom(Diem) = |Diem| = [0..10] page 4 3. Lược đồ quan hệ (Relation schema): tập tất cả các thuộc tính có trong quan hệ. Lược đồ quan hệ thường được viết dưới dạng: <tên quan hệ>(danh sách các thuộc tính) • Vd. SINHVIEN(MaSV, HoTen, NgaySinh, Diachi) 4. Thể hiện của một quan hệ (relation instance): Tập tất cả các bộ của một quan hệ tại một thời điểm. Vd. Quan hệ: Danh sách SV lớp CNTT Thể hiện của quan hệ: Danh sách SV có mặt hôm nay MaSV HoTen NgaySinh Điachi MaSV HoTen NgaySinh Điachi 14110 Trương Trọng 24/04/01 2 VVN 14110 Trương Trọng 24/04/01 2 VVN 14111 Nguyễn Duy 18/05/01 3 NDT 14111 Nguyễn Duy 18/05/01 3 NDT 14112 Lê Khang 11/01/01 4 VVT 14112 Lê Khang 11/01/01 4 VVT 14113 Trần B 12/02/01 5 NT 14114 Nguyễn Kha 13/03/01 11 HD2 page 5 5. CSDL quan hệ (Relational database): một tập các quan hệ có liên quan với nhau về một lĩnh vực cụ thể. Vd. Một phần CSDL quan hệ trong một ứng dụng quản lý SV của một trường SINHVIEN MONHOC KQTHI MaSV HoTen NgaySinh Điachi MaMH TenMH SoTC MaSV MaMH Điem 14110 Trương Trọng 24/04/01 2 VVN M01 CSDL 3 14110 M01 8 14111 Nguyễn Duy 18/05/01 3 NDT M02 CTDL 3 14110 M02 7 14111 M01 8 ... ... ... 6. Lược đồ CSDL quan hệ (relational database schema): một tập các lược đồ quan hệ có liên quan với nhau về một lĩnh vực cụ thể. Vd. SINHVIEN(MaSV, HoTen, NgaySinh, Diachi) MONHOC(MaMH, TenMH, SoTC) KQTHI(MaSV, MaMH, Diem) page 6 7. Các loại khóa trong quan hệ: cho k R=(A1, A2, …, An ) + Siêu khóa (super key): k được gọi là siêu khóa nếu các giá trị của k có thể xác định duy nhất một bộ trong quan hệ. Vd. SINHVIEN(MaSV, HoTen, NgaySinh, Diachi, SoCMND) Các tập {MaSV}, {MaSV, HoTen}, {SoCMND}, {SoCMND, NgaySinh} được gọi là các siêu khóa của quan hệ SINHVIEN. + Khóa ứng viên (candidate key): Siêu khóa k được gọi là khóa ứng viên nếu k là tập nhỏ nhất. Vd. {MaSV}, {SoCMND} là các khóa ứng viên page 7 7. Các loại khóa trong quan hệ (tt.): + Khóa chính (primary key): Một trong các khóa ứng viên sẽ được chọn làm khóa chính cho quan hệ. Trong lược đồ quan hệ, các thuộc tính được chọn làm khóa chính thường được gạch dưới bằng nét liền Vd. Trong hai khóa ứng viên {MaSV}, {SoCMND} ta có thể chọn {MaSV} làm khóa chính cho quan hệ SINHVIEN SINHVIEN(MaSV, HoTen, NgaySinh, Diachi, SoCMND) + Khóa ngoại (foreign key): Một hay nhiều thuộc tính (khóa chính hay thuộc tính có ràng buộc unique) trong một quan hệ A xuất hiện trong một quan hệ B khác được gọi là khóa ngoại trong quan hệ B. Vd. SINHVIEN(MaSV, HoTen, NgaySinh, Diachi, SoCMND) Quan hệ tham chiếu KQTHI(MaSV, MaMH, Diem) Quan hệ được tham chiếu Trong ví dụ trên MaSV trong bảng KQTHI vừa là thành phần của khóa chính vừa là khóa ngoại để tham chiếu qua cột MaSV trong bảng SINHVIEN page 8 8. Mối quan hệ (Relationship): biểu diễn mối kết hợp giữa các quan hệ trong CSDL (mối quan hệ dựa trên khóa ngoại). Vd. SINHVIEN KQTHI MaSV HoTen NgaySinh Điachi MaSV MaMH Điem 14110 Trương Trọng 24/04/01 2 VVN 14110 M01 8 14111 Nguyễn Duy 18/05/01 3 NDT 14110 M02 7 14111 M01 8 ... ... Quan hệ tham chiếu Quan hệ được tham chiếu MONHOC MaMH TenMH SoTC M01 CSDL 3 M02 CTDL 3 ... page 9 9. Ràng buộc toàn vẹn (integrity constraints): + Tập các quy tắc mà mọi dữ liệu trong CSDL phải tuân theo nhằm đảm bảo tính toàn vẹn của cơ sở dữ liệu. + Có nhiều ràng buộc khác nhau trong một CSDL. Dưới đây là một số ràng buộc cơ bản: - Ràng buộc unique (duy nhất): mỗi giá trị trong cột có ràng buộc này phải là duy nhất trong cột đó. - Ràng buộc not null (khác rỗng): Các ô trong cột có ràng buộc này bắt buộc phải có giá trị khác null - Ràng buộc khóa ngoại (ràng buộc tham chiếu): Các giá trị trong cột khóa ngoại ở bảng tham chiếu phải có trong cột tương ứng ở bảng được tham chiếu. - Ràng buộc khóa chính: các giá trị là khóa chính phải là unique và not null. - Ràng buộc về miền giá trị: các giá trị trong cột phải nằm trong miền giá trị của cột. -... page 10 14. Ràng buộc toàn vẹn (integrity constraints) (tt.): Vd. create table SINHVIEN( MaSV char(10) Primary key, HoTen Char(30) not null, Diachi Char(40) not null, Sodd char(10) unique ) Điachi MaSV HoTen Sodd 14110 Trương Trọng 2 VVN 0911111111 14111 Nguyễn Duy 3 NDT 0211111111 MaMH TenMH SoTC M01 CSDL 3 M02 CTDL 3 ... Create table MONHOC ( MaMH char(10) Primary key, TenMH char(30) unique not null, SoTC int ) Create table KQTHI ( MaSV char(10), MaMH char(10), Diem int, Foreign key (MaSV) references SINHVIEN(MaSV), Foreign key (MaMH) references MONHOC(MaMH) ) ... MaSV MaMH Điem 14110 M01 8 14110 M02 7 14111 M01 8 ... page 11 Hết chương 2 Số 1, Võ Văn Ngân, Thủ Đức, TPHCM sonnt@hcmute.edu.vn +84918648899