Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

lý thuyết cần nhớ trong môn cơ sở dữ liệu, Schemes and Mind Maps of Computer Science

đây là một số khái niệm trong môn học cơ sở dữ liệu

Typology: Schemes and Mind Maps

2021/2022

Uploaded on 06/27/2024

quang-an
quang-an 🇻🇳

1 document

1 / 3

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Siêu khóa (superkey) là một khái niệm quan trọng trong lý thuyết cơ sở dữ liệu liên quan đến việc định danh duy nhất các bản ghi (hàng) trong
một bảng. Dưới đây là định nghĩa chi tiết và các khái niệm liên quan:
Định nghĩa
Siêu khóa (superkey) là một tập hợp các thuộc tính (attribute) trong một bảng mà giá trị của chúng có thể duy nhất xác định một bản ghi (hàng)
trong bảng đó. Nói cách khác, không có hai bản ghi nào trong bảng có cùng giá trị trên tất cả các thuộc tính thuộc siêu khóa đó.
Ví dụ cụ thể
Giả sử chúng ta có một bảng SinhVien với các thuộc tính sau:
MSSV HoTen NgaySinh DiaChi SoDienThoai
001 Nguyen A 2000-01-01 123 Đường A 0123456789
002 Tran B 1999-05-12 456 Đường B 0987654321
003 Le C 2000-01-01 789 Đường C 0112233445
Trong bảng này, có thể có nhiều siêu khóa. Dưới đây là một số ví dụ về siêu khóa:
1. {MSSV}: Mã số sinh viên duy nhất xác định một sinh viên, nên {MSSV}\{MSSV\}{MSSV} là siêu khóa.
2. {MSSV,HoTen}: Kết hợp giữa mã số sinh viên và họ tên cũng xác định duy nhất một sinh viên, nên {MSSV,HoTen}\{MSSV, HoTen\}
{MSSV,HoTen} là siêu khóa.
3. {MSSV,NgaySinh}: Kết hợp giữa mã số sinh viên và ngày sinh cũng xác định duy nhất một sinh viên, nên {MSSV,NgaySinh} là siêu khóa.
Các khái niệm liên quan
1. Khóa chính (Primary Key): Khóa chính là một siêu khóa được chọn để duy nhất xác định các bản ghi trong bảng. Khóa chính không thể
có giá trị null và thường được sử dụng làm chỉ mục để truy xuất dữ liệu nhanh hơn.
Ví dụ: Trong bảng SinhVien, {MSSV} có thể được chọn làm khóa chính vì mỗi mã số sinh viên là duy nhất và không thể null.
2. Khóa ứng viên (Candidate Key): Khóa ứng viên là một siêu khóa tối thiểu, nghĩa là không thể bỏ bất kỳ thuộc tính nào ra khỏi nó mà
vẫn duy nhất xác định một bản ghi. Tất cả các khóa ứng viên đều là siêu khóa, nhưng không phải tất cả các siêu khóa đều là khóa ứng
viên.
Ví dụ: Trong bảng SinhVien, {MSSV} là khóa ứng viên. Nếu {HoTen,NgaySinh,DiaChi,SoDienThoai} cũng duy nhất xác định một sinh viên, thì nó
cũng là khóa ứng viên. Tuy nhiên, tập hợp {MSSV,HoTen} không phải là khóa ứng viên vì {MSSV} là đủ để xác định duy nhất một sinh viên.
3. Khóa ngoại (Foreign Key): Khóa ngoại là một thuộc tính hoặc tập hợp các thuộc tính trong một bảng dùng để liên kết với khóa chính
của bảng khác. Khóa ngoại giúp duy trì tính toàn vẹn dữ liệu giữa các bảng.
Ví dụ: Trong bảng Orders, CustomerID có thể là khóa ngoại tham chiếu đến khóa chính CustomerID trong bảng Customers.
Kết luận
Siêu khóa là một tập hợp các thuộc tính có khả năng duy nhất xác định một bản ghi trong một bảng. Nó đóng vai trò quan trọng trong việc đảm
bảo tính duy nhất của các bản ghi và giúp duy trì tính toàn vẹn dữ liệu trong cơ sở dữ liệu. Trong quá trình thiết kế cơ sở dữ liệu, việc xác định
và sử dụng đúng các loại khóa (siêu khóa, khóa chính, khóa ứng viên, và khóa ngoại) là rất quan trọng để đảm bảo hệ thống hoạt động hiệu quả
và chính xác.
1. Dạng chuẩn thứ nhất (1NF)
Điều kiện: Mỗi bảng phải không có các nhóm lặp lại và mỗi thuộc tính chỉ chứa các giá trị nguyên tố (không chứa các mảng hoặc danh
sách giá trị).
Kiểm tra: Đảm bảo rằng mỗi bảng không chứa các thuộc tính lặp lại hoặc các thuộc tính chứa giá trị đa trị. Nếu có, cần phải tách chúng
thành các bảng riêng biệt.
2. Dạng chuẩn thứ hai (2NF)
Điều kiện: Đạt 1NF và tất cả các thuộc tính không khóa phụ thuộc hoàn toàn vào khóa chính.
Kiểm tra: Tìm tất cả các khóa chính và xác định xem có bất kỳ thuộc tính nào phụ thuộc không đầy đủ vào khóa chính hay không. Nếu
có, cần tách các thuộc tính này ra thành bảng riêng để đảm bảo rằng mỗi thuộc tính không khóa phụ thuộc hoàn toàn vào khóa chính.
pf3

Partial preview of the text

Download lý thuyết cần nhớ trong môn cơ sở dữ liệu and more Schemes and Mind Maps Computer Science in PDF only on Docsity!

Siêu khóa (superkey) là một khái niệm quan trọng trong lý thuyết cơ sở dữ liệu liên quan đến việc định danh duy nhất các bản ghi (hàng) trong một bảng. Dưới đây là định nghĩa chi tiết và các khái niệm liên quan: Định nghĩa Siêu khóa (superkey) là một tập hợp các thuộc tính (attribute) trong một bảng mà giá trị của chúng có thể duy nhất xác định một bản ghi (hàng) trong bảng đó. Nói cách khác, không có hai bản ghi nào trong bảng có cùng giá trị trên tất cả các thuộc tính thuộc siêu khóa đó. Ví dụ cụ thể Giả sử chúng ta có một bảng SinhVien với các thuộc tính sau: MSSV HoTen NgaySinh DiaChi SoDienThoai 001 Nguyen A 2000-01-01 123 Đường A 0123456789 002 Tran B 1999-05-12 456 Đường B 0987654321 003 Le C 2000-01-01 789 Đường C 0112233445 Trong bảng này, có thể có nhiều siêu khóa. Dưới đây là một số ví dụ về siêu khóa:

  1. {MSSV}: Mã số sinh viên duy nhất xác định một sinh viên, nên {MSSV}{MSSV}{MSSV} là siêu khóa.
  2. {MSSV,HoTen}: Kết hợp giữa mã số sinh viên và họ tên cũng xác định duy nhất một sinh viên, nên {MSSV,HoTen}{MSSV, HoTen} {MSSV,HoTen} là siêu khóa.
  3. {MSSV,NgaySinh}: Kết hợp giữa mã số sinh viên và ngày sinh cũng xác định duy nhất một sinh viên, nên {MSSV,NgaySinh} là siêu khóa. Các khái niệm liên quan
  4. Khóa chính (Primary Key) : Khóa chính là một siêu khóa được chọn để duy nhất xác định các bản ghi trong bảng. Khóa chính không thể có giá trị null và thường được sử dụng làm chỉ mục để truy xuất dữ liệu nhanh hơn. Ví dụ: Trong bảng SinhVien, {MSSV} có thể được chọn làm khóa chính vì mỗi mã số sinh viên là duy nhất và không thể null.
  5. Khóa ứng viên (Candidate Key) : Khóa ứng viên là một siêu khóa tối thiểu, nghĩa là không thể bỏ bất kỳ thuộc tính nào ra khỏi nó mà vẫn duy nhất xác định một bản ghi. Tất cả các khóa ứng viên đều là siêu khóa, nhưng không phải tất cả các siêu khóa đều là khóa ứng viên. Ví dụ: Trong bảng SinhVien, {MSSV} là khóa ứng viên. Nếu {HoTen,NgaySinh,DiaChi,SoDienThoai} cũng duy nhất xác định một sinh viên, thì nó cũng là khóa ứng viên. Tuy nhiên, tập hợp {MSSV,HoTen} không phải là khóa ứng viên vì {MSSV} là đủ để xác định duy nhất một sinh viên.
  6. Khóa ngoại (Foreign Key) : Khóa ngoại là một thuộc tính hoặc tập hợp các thuộc tính trong một bảng dùng để liên kết với khóa chính của bảng khác. Khóa ngoại giúp duy trì tính toàn vẹn dữ liệu giữa các bảng. Ví dụ: Trong bảng Orders, CustomerID có thể là khóa ngoại tham chiếu đến khóa chính CustomerID trong bảng Customers. Kết luận Siêu khóa là một tập hợp các thuộc tính có khả năng duy nhất xác định một bản ghi trong một bảng. Nó đóng vai trò quan trọng trong việc đảm bảo tính duy nhất của các bản ghi và giúp duy trì tính toàn vẹn dữ liệu trong cơ sở dữ liệu. Trong quá trình thiết kế cơ sở dữ liệu, việc xác định và sử dụng đúng các loại khóa (siêu khóa, khóa chính, khóa ứng viên, và khóa ngoại) là rất quan trọng để đảm bảo hệ thống hoạt động hiệu quả và chính xác. 1. Dạng chuẩn thứ nhất (1NF)Điều kiện : Mỗi bảng phải không có các nhóm lặp lại và mỗi thuộc tính chỉ chứa các giá trị nguyên tố (không chứa các mảng hoặc danh sách giá trị).  Kiểm tra : Đảm bảo rằng mỗi bảng không chứa các thuộc tính lặp lại hoặc các thuộc tính chứa giá trị đa trị. Nếu có, cần phải tách chúng thành các bảng riêng biệt. 2. Dạng chuẩn thứ hai (2NF)Điều kiện : Đạt 1NF và tất cả các thuộc tính không khóa phụ thuộc hoàn toàn vào khóa chính.  Kiểm tra : Tìm tất cả các khóa chính và xác định xem có bất kỳ thuộc tính nào phụ thuộc không đầy đủ vào khóa chính hay không. Nếu có, cần tách các thuộc tính này ra thành bảng riêng để đảm bảo rằng mỗi thuộc tính không khóa phụ thuộc hoàn toàn vào khóa chính.

3. Dạng chuẩn thứ ba (3NF)Điều kiện : Đạt 2NF và không có thuộc tính không khóa nào phụ thuộc bắc cầu vào khóa chính thông qua một thuộc tính không khóa khác (không có phụ thuộc bắc cầu).  Kiểm tra : Xác định xem có bất kỳ thuộc tính không khóa nào phụ thuộc vào các thuộc tính không khóa khác hay không. Nếu có, tách chúng ra thành các bảng riêng để loại bỏ phụ thuộc bắc cầu. 4. Dạng chuẩn Boyce-Codd (BCNF)Điều kiện : Đạt 3NF và mọi phụ thuộc hàm X→Y,X phải là siêu khóa (superkey).  Kiểm tra : Kiểm tra tất cả các phụ thuộc hàm. Nếu có phụ thuộc hàm mà phần bên trái không phải là siêu khóa, cần phải tách bảng để mỗi phụ thuộc hàm đều thỏa mãn điều kiện này.