NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU • Định nghĩa lược đồ CSDL • Các ràng buộc toàn vẹn • Cập nhật lược đồ dữ liệu... NGÔN NGỮ ĐỊNH NGHĨA LƯỢC ĐỒ CSDL • Là ngôn ngữ mô tả • Lược đồ cho mỗi quan h
Trang 1Chương 5
NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC
Structured Query Language
Trang 2NỘI DUNG
• Ngôn ngữ định nghĩa dữ liệu
• Ngôn ngữ truy vấn dữ liệu
• Ngôn ngữ cập nhật dữ liệu
Trang 3NGÔN NGỮ SQL
• Ngôn ngữ đại số quan hệ:
• Phải chỉ định cách thức truy vấn: khó khăn cho người
sử dụng
• Cần xây dựng một ngôn ngữ cấp cao: người sử dụng chỉ cần khai báo nội dung truy vấn
Trang 4NGÔN NGỮ SQL
• Ngôn ngữ cấp cao
• Người sử dụng chỉ cần đưa ra nội dung cần truy vấn
• Được phát triển bởi IBM (1970s)
• Được gọi là SEQUEL
• Được ANSI công nhận và phát triển thành chuẩn
• SQL-86
• SQL-92
Trang 5NGÔN NGỮ ĐỊNH NGHĨA DỮ LIỆU
• Định nghĩa lược đồ CSDL
• Các ràng buộc toàn vẹn
• Cập nhật lược đồ dữ liệu
Trang 6NGÔN NGỮ ĐỊNH NGHĨA LƯỢC ĐỒ CSDL
• Là ngôn ngữ mô tả
• Lược đồ cho mỗi quan hệ
• Miền giá trị tương ứng cho mỗi thuộc tính
• Ràng buộc toàn vẹn
• Chỉ mục trên mỗi quan hệ
Trang 7ĐỊNH NGHĨA LƯỢC ĐỒ CƠ SỞ DỮ LIỆU
Câu lệnh tạo lược đồ CSDL
CREATE SCHEMA <Tên_lược đồ_CSDL > AUTHORIZATION <User_name> CREATE DATABASE <Tên_CSDL >
Trang 9ĐỊNH NGHĨA BẢNG DỮ LIỆU
• Các thuộc tính
• Miền giá trị của từng thuộc tính
• Các ràng buộc toàn vẹn trên bảng
• …
Thành phần của bảng dữ liệu
Trang 10ĐỊNH NGHĨA BẢNG DỮ LIỆU
Câu lệnh tạo bảng dữ liệu trong SQL
CREATE TABLE <Tên_bảng>
(
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>],
… [<RBTV>]
)
Trang 11ĐỊNH NGHĨA CÁC KIỂU DỮ LIỆU
• Kiểu dữ liệu số
• Kiểu dữ liệu chuỗi ký tự
• Kiểu dữ liệu chuỗi bit
• Kiểu dữ liệu Boolean
• Kiểu dữ liệu Datetime
Các kiểu dữ liệu trong SQL
Trang 12ĐỊNH NGHĨA CÁC KIỂU DỮ LIỆU
• Kiểu dữ liệu số
• Số nguyên: BIGINT, INT, SMALLINT, TINYINT
• Số thực: FLOAT, DOUBLE PRECISION, DECIMAL(i,j)
• Kiểu Bit
Các kiểu dữ liệu trong SQL
Trang 13ĐỊNH NGHĨA CÁC KIỂU DỮ LIỆU
• Kiểu dữ liệu chuỗi ký tự
• Char(n), nchar(n)
• Varchar(n), nvarchar(n)
• Text, ntext
• Kiểu Boolean
• Kiểu ngày tháng: datetime
Các kiểu dữ liệu trong SQL
Trang 14HOẠT ĐỘNG 1:
• Thực hiện tạo CSDL cho bài toán QUẢN
LÝ DỰ ÁN được cho trong file “Bai tap
Chapter5_Dinh nghia DL.docx”
Bài tập nhóm
Trang 15ĐỊNH NGHĨA RÀNG BUỘC TOÀN VẸN
• FOREIGN KEY / REFERENCES
• Cú pháp định nghĩa ràng buộc toàn vẹn
CONSTRAINT <Tên_RBTV> <RBTV>
Trang 16RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Yêu cầu một thuộc tính không được phép có giá
trị là null
• Một thuộc tính là thành phần của khóa chính thì
mặc nhiên là not null
Ràng buộc NOT NULL
Trang 17RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Giá trị được sử dụng trong trường hợp bộ mới thêm vào nhận giá trị null tại thuộc tính được khai báo là mặc định
• Cú pháp:
• <Tên_thuộc_tính> <Kiểu_DL> CONSTRAINT
<TênRBTV_DF > DEFAULT (<giá trị>)
Giá trị mặc định
Trang 18RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Giá trị của một thuộc tính phải nằm trong miền giá trị của thuộc tính đó
Trang 19RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Quan hệ có khóa chính và khóa phụ
• Cú pháp:
• <Tên_thuộc_tính> <Kiểu_DL> CONSTRAINT
<TênRBTV_PK > PRIMARY KEY
• CONSTRAINT <TênRBTV_PK > PRIMARY KEY(…)
• <Tên_thuộc_tính> <Kiểu_DL> UNIQUE
Ràng buộc về khóa
Trang 20RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Thuộc tính làm khóa chính của quan hệ này có thể dùng tham chiếu cho quan hệ khác
• Cú pháp:
• <Tên_thuộc_tính> <Kiểu_DL> CONSTRAINT
<TênRBTV_FK > FOREIGN KEY (<Tên_thuộc_tính> )
Ràng buộc tham chiếu (khóa ngoại)
Trang 21RÀNG BUỘC TOÀN VẸN DỮ LIỆU
DIA_CHI N VARCHAR (50), PHAI CHAR (3) CONSTRAINT NV_PHAI_CHK
LUONG INT CONSTRAINT NV_LUONG_DF DEFAULT (10000), MA_NQL CHAR (9),
PHG INT
Trang 22RÀNG BUỘC TOÀN VẸN DỮ LIỆU
Ví dụ
MA_NVIEN CHAR (9), SODA INT ,
Trang 23HOẠT ĐỘNG 2:
• Thực hiện tạo các ràng buộc toàn vẹn cho
bài toán QUẢN LÝ DỰ ÁN được cho trong
file “Bai tap Chapter5_Dinh nghia DL.docx”
Bài tập nhóm
Trang 24CẬP NHẬT LƯỢC ĐỒ CƠ SỞ DỮ LIỆU
• Xóa toàn bộ dữ liệu trong bảng cùng với lược đồ của bảng đó
• Việc xóa bảng chỉ thành công khi không nó không được tham chiếu tới bởi bất kỳ bảng nào khác
Xóa bảng dữ liệu
Cú pháp:
Trang 25CẬP NHẬT LƯỢC ĐỒ CƠ SỞ DỮ LIỆU
• Thay đổi: thêm mới, xóa, sửa các thuộc tính của bảng và ràng buộc toàn vẹn…
Thay đổi cấu trúc bảng dữ liệu
Trang 26CẬP NHẬT LƯỢC ĐỒ CƠ SỞ DỮ LIỆU
• ALTER TABLE <Tên_bảng> ADD <Tên_thuộc_tính> <Kiểu_DL>
• ALTER TABLE <Tên_bảng> DROP COLUMN <Tên_thuộc_tính>
• ALTER TABLE <Tên_bảng> ADD CONSTRAINT …
• ALTER TABLE <Tên_bảng> DROP CONSTRAINT
Trang 27HOẠT ĐỘNG 3:
• Chỉnh sửa một số ràng buộc toàn vẹn,
thuộc tính trong bài toán QUẢN LÝ DỰ ÁN
được cho trong file “Bai tap Chapter5_Dinh nghia DL.docx”
Bài tập nhóm