9/3/2018<br />
<br />
CƠ SỞ DỮ LIỆU<br />
NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU<br />
DỮ LIỆU<br />
Định nghĩa lược đồ CSDL trong SQL<br />
• Tập hợp các bảng dữ liệu phục vụ cho một ứng dụng<br />
Thành phần của lược đồ CSDL<br />
•<br />
•<br />
•<br />
•<br />
<br />
Bảng dữ liệu<br />
Ràng buộc toàn vẹn<br />
Khung nhìn<br />
…<br />
<br />
Câu lệnh tạo lược đồ CSDL<br />
<br />
CREATE SCHEMA COMPANY AUTHORIZATION SA<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU<br />
DỮ LIỆU<br />
Bảng dữ liệu trong SQL<br />
• Quan hệ và các bộ dữ liệu của nó được tạo<br />
và lưu trữ vật lý trong tệp dữ liệu của DBMS<br />
<br />
Thành phần của bảng dữ liệu<br />
•<br />
•<br />
•<br />
•<br />
<br />
Các thuộc tính<br />
Miền giá trị của từng thuộc tính<br />
Các ràng buộc toàn vẹn trên bảng<br />
…<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
1<br />
<br />
9/3/2018<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU<br />
DỮ LIỆU<br />
Bảng dữ liệu trong SQL<br />
<br />
• Cho phép có các bộ trùng nhau<br />
Câu lệnh tạo bảng dữ liệu trong<br />
SQL<br />
CREATE TABLE tên_bảng ()<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU<br />
DỮ LIỆU<br />
Các kiểu dữ liệu trong SQL<br />
•<br />
•<br />
•<br />
•<br />
•<br />
<br />
Kiểu dữ liệu số<br />
Kiểu dữ liệu chuỗi ký tự<br />
Kiểu dữ liệu chuỗi bit<br />
Kiểu dữ liệu Boolean<br />
Kiểu dữ liệu Datetime<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
ĐỊNH NGHĨA DỮ LIỆU & CÁC KIỂU<br />
DỮ LIỆU<br />
Ví dụ về lệnh tạo bảng dữ liệu<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
2<br />
<br />
9/3/2018<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC LOẠI RÀNG BUỘC TOÀN VẸN<br />
DỮ LIỆU<br />
Ràng buộc NOT NULL<br />
• Yêu cầu một thuộc tính không được phép có giá trị là<br />
null<br />
• Một thuộc tính là thành phần của khóa chính thì mặc<br />
nhiên là not null<br />
Ví dụ<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC LOẠI RÀNG BUỘC TOÀN VẸN<br />
DỮ LIỆU<br />
Giá trị mặc định<br />
• Giá trị được sử dụng trong trường hợp bộ mới thêm<br />
vào nhận giá trị null tại thuộc tính được khai báo là<br />
mặc định<br />
Ví dụ<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC LOẠI RÀNG BUỘC TOÀN VẸN<br />
DỮ LIỆU<br />
Ràng buộc miền giá trị<br />
• Giá trị của một thuộc tính phải nằm trong miền giá<br />
trị của thuộc tính đó<br />
Ví dụ<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
3<br />
<br />
9/3/2018<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC LOẠI RÀNG BUỘC TOÀN VẸN<br />
DỮ LIỆU<br />
Ràng buộc khóa trong SQL<br />
• Hai bộ dữ liệu trong quan hệ không thể có giá trị bằng<br />
nhau tại (các) thuộc tính của khóa<br />
• Quan hệ có thể có nhiều khóa, gồm một khóa chính và<br />
nhiều khóa phụ (duy nhất)<br />
<br />
Ví dụ<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC LOẠI RÀNG BUỘC TOÀN VẸN<br />
DỮ LIỆU<br />
Đặt tên cho ràng buộc toàn vẹn trong SQL<br />
• Tên tường minh của ràng buộc toàn vẹn rất hữu ích<br />
khi có nhu cầu muốn chỉnh sửa hoặc xóa các ràng<br />
buộc hiện hữu<br />
Ví dụ<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC LOẠI RÀNG BUỘC TOÀN VẸN<br />
DỮ LIỆU<br />
Ràng buộc toàn vẹn trên bộ trong SQL<br />
• Ràng buộc liên quan đến các giá trị thành phần của<br />
từng bộ dữ liệu được xét<br />
Ví dụ<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
4<br />
<br />
9/3/2018<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC LOẠI RÀNG BUỘC TOÀN VẸN<br />
DỮ LIỆU<br />
Ràng buộc tham chiếu trong SQL<br />
• Một giá trị muốn xuất hiện trong khung cảnh này cần<br />
phải xuất hiện trong một khung cảnh khác<br />
• Thuộc tính tham chiếu đi là khóa ngoại, thuộc tính được<br />
tham chiếu tới phải là khóa (chính hoặc phụ)<br />
<br />
Ví dụ<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC LOẠI RÀNG BUỘC TOÀN VẸN<br />
DỮ LIỆU<br />
Dò tìm vi phạm ràng buộc tham chiếu<br />
RBTV<br />
<br />
Thêm mới<br />
<br />
Chỉnh sửa<br />
<br />
Xóa bỏ<br />
<br />
Khóa chính<br />
<br />
-<br />
<br />
+<br />
<br />
+<br />
<br />
Khóa ngoại<br />
<br />
+<br />
<br />
+<br />
<br />
-<br />
<br />
Xử lý vi phạm ràng buộc tham chiếu<br />
• Cơ chế mặc định<br />
• Cơ chế thay thế<br />
• Cơ chế Set Null<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
Cơ sở dữ liệu – Tổng quan hệ thống cơ sở dữ liệu<br />
<br />
CÁC CÂU LỆNH THAY ĐỔI LƯỢC<br />
ĐỒ CƠ SỞ DỮ LIỆU<br />
Lệnh xóa bảng dữ liệu trong SQL<br />
• Xóa toàn bộ dữ liệu trong bảng cùng với lược đồ của<br />
bảng đó<br />
• Việc xóa bảng chỉ thành công khi không nó không được<br />
tham chiếu tới bởi bất kỳ bảng nào khác<br />
Ví dụ<br />
<br />
Ths. Trịnh Hoàng Nam, namth@buh.edu.vn<br />
<br />
5<br />
<br />