Bài giảng Cơ sở dữ liệu (Database) - Chương 3: Thiết kế cơ sở dữ liệu logic cung cấp cho học viên những kiến thức về mô hình dữ liệu quan hệ, các ngôn ngữ thao tác trên quan hệ, phụ thuộc hàm và khóa, dạng chuẩn và chuẩn hóa, chuyển đổi mô hình ER sang mô hình dữ liệu quan hệ,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Trang 1Chương 3 Thiết kế CSDL logic
Trang 2§ Khuôn dạng của các bản ghi là cố định (hiếm khi thay đổi)
§ Dữ liệu được mô tả ở mức logic, không mô tả ở mức vật lý
Trang 3Nội dung
1 Mô hình dữ liệu quan hệ
2 Các ngôn ngữ thao tác trên quan hệ
3 Phụ thuộc hàm và khoá
4 Dạng chuẩn và chuẩn hoá
5 Chuyển đổi mô hình ER sang mô hình dữ liệu quan hệ
Trang 4Nội dung
1 Mô hình dữ liệu quan hệ
2 Các ngôn ngữ thao tác trên quan hệ
3 Phụ thuộc hàm và khoá
4 Dạng chuẩn và chuẩn hoá
5 Chuyển đổi mô hình ER sang mô hình dữ liệu quan hệ
Trang 5Các khái niệm cơ bản
§Quan hệ (Relation)
§Thuộc tính (Attribute)
§Bộ (Tuple)
§Miền (Domain)
§Các tính chất đặc trưng của một quan hệ
Trang 6Quan hệ (relation)
Mỗi quan hệ là một bảng giá trị gồm các hàng và cột
§ Hàng: biểu diễn thông tin của một thực thể hay một mối quan hệ trong thế giới thực
§ Cột: thể hiện một thuộc tính của thực thể
Mỗi CSDL là một tập các quan hệ
Trang 78 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215 nhan_vien
Trang 8P4 Kĩ thuật 4
phong
Trang 9Thuộc tính
Mỗi quan hệ có một số thuộc tính
§ Mỗi thuộc tính là tên của một cột
§ Mỗi thuộc tính có một Miền chỉ ra tập các giá trị của thuộc tính
Trang 10Thuộc tính
Ví dụ, quan hệ phong có 3 thuộc tính: MADV, TEN_PHONG, MATP
Miền của MADV: tập các chuỗi có 2 kí tự, bắt đầu bằng chữ P
Miền của TEN_PHONG: tập các chuỗi có tối đa 30 kí tự
Miền của MATP: tập các số tự nhiên thuộc khoảng [0,1000]
Thuộc tính
phong
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10 P2 Nghiên cứu và phát
triển 2P3 Giám đốc 8 P4 Kĩ thuật 4
Trang 11Bộ (tuple)
§ Kích thước cố định, là một danh sách có thứ tự của các giá
trị
hợp lệ nào trong quan hệ
Trang 12triển 2P3 Giám đốc 8 P4 Kĩ thuật 4
Trang 13§Miền của một thuộc tính là một tập hợp các giá trị
nguyên tố, mỗi giá trị trong miền không thể phân chia trong phạm vi mô hình quan hệ
§Để đặc tả một miền: cần chỉ ra tên miền, kiểu dữ liệu
và khuôn dạng dữ liệu
§Miền của một thuộc tính có thể chứa giá trị null
§ Giá trị của một số bộ tại một số thuộc tính nào đó
có thể chưa biết
§ Không có giá trị nào thích hợp cho một thuộc tính của bộ nào đó
Trang 14§ Miền của MADV kí hiệu D1, là tập các chuỗi có 2 kí tự, bắt đầu bằng chữ P
§ Miền của TEN_PHONG kí hiệu là D2, là tập các chuỗi có tối đa 30 kí tự
§ Miền của MATP kí hiệu là D3, là tập các số tự nhiên trong khoảng
[1,1000]
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10 P2 Nghiên cứu và phát
triển 2P3 Giám đốc 8 P4 Kĩ thuật 4
phong
Trang 15Trung Liệt Đống Đa
P3 Giám đốc 8 0247567128 Mai Dịch Cầu Giấy
P4 Kĩ thuật 4 0247568528
, 0247568529
Mai Dịch Cầu Giấy phong
Trang 16Bộ và quan hệ
Một quan hệ trên một tập các thuộc tính là một tập con của tích Descartes của một hay nhiều miền
Ví dụ,
D1 là miền của MADV
D2 là miền của TEN_PHONG
D3 là miền của MA_TP
triển 2P3 Giám đốc 8 P4 Kĩ thuật 4
phong
Trang 17Bộ và quan hệ
Mỗi quan hệ là một tập các bộ
Mỗi bộ chỉ xuất hiện một lần
Nếu 2 bộ t1, t2 bằng nhau trên tất cả các thuộc tính thì t1, t2 là cùng một bộ
Thứ tự của các bộ trong một quan hệ là không quan trọng
Trang 18Lược đồ quan hệ (relation schemas)
Quan hệ nào cũng có một lược đồ
Xác định kiểu thông tin cho các quan hệ
Nhiều quan hệ có thể có cùng một lược đồ
Một lược đồ quan hệ gồm:
Một tập các thuộc tính
Miền giá trị của mỗi thuộc tính
Cách viết
Tên của quan hệ được viết bằng chữ thường
Tên của lược đồ quan hệ được viết bằng chữ hoa
Cho quan hệ r và lược đồ quan hệ R :
Viết r ( R ) nghĩa là lược đồ của quan hệ r là R
Trang 19Lược đồ quan hệ (relation schemas)
triển 2P3 Giám đốc 8 P4 Kĩ thuật 4
phong
Trang 20Các tính chất đặc trưng của một quan hệ
Một quan hệ có một tên phân biệt với tên các quan hệ khác
Mỗi ô trong bảng (quan hệ) chứa một giá trị nguyên tố
Mỗi thuộc tính trong quan hệ có một tên phân biệt
Các giá trị của một thuộc tính thuộc cùng một miền
Thứ tự các thuộc tính là không quan trọng
Không có 2 bộ giống hệt nhau trong một quan hệ
Thứ tự của các bộ không quan trọng về mặt lý thuyết
Trang 21Thêm các thuộc tính vào một siêu khóa, ta
sẽ được một siêu khóa khác
Trang 22Siêu khóa
Ví dụ, trong quan hệ nhan_vien
{MANV} là siêu khóa
{CMND} là siêu khóa
{MANV, HO_TEN} là siêu khóa
{CMND, HO_TEN, NGAY_SINH} là siêu khóa
{HO_TEN} không là siêu khóa
{HO_TEN, NGAY_SINH, GIOI_TINH, MADV_LUONG} không là siêu khóa
nhan_vien
Trang 23Khóa (khóa dự tuyển)
Khóa (khóa dự tuyển) của một lược đồ quan hệ là siêu khóa của lược đồ này sao cho mọi tập con thực sự của nó không là siêu khóa
Khóa là thuộc tính của một lược đồ quan hệ chứ không phải cho từng
bộ riêng
Nghĩa là nó áp dụng cho tất cả các bộ trong các quan hệ của lược đồ
Trang 24Khóa (khóa dự tuyển)
Ví dụ, trong quan hệ nhan_vien
{MANV} là khóa (khóa dự tuyển)
{CMND} là khóa (khóa dự tuyển)
{MANV, HO_TEN} không là khóa
{MANV, HO_TEN, NGAY_SINH} là không là khóa
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
3 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215 nhan_vien
Trang 25Khóa chính (primary key)
Một trong số các khóa dự tuyển được chọn làm khóa chính để xác định tính duy nhất của các bộ trong một quan hệ
Việc chọn khóa dự tuyển nào làm khóa chính là tùy thuộc vào ngữ nghĩa dữ liệu mà lược đồ mô tả và mục đích của người sử dụng CSDL
Trang 26Khóa chính (primary key)
Ví dụ, trong quan hệ nhan_vien
Có 2 khóa dự tuyển:{MANV}, {CMND}
{MANV} được chọn làm khóa chính
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
3 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215 nhan_vien
Trang 27Khóa chính (primary key)
Các thuộc tính của khóa chính thường được liệt kê ở đầu danh sách, trong lược đồ quan hệ Các thuộc tính thuộc khóa chính được gạch chân
Những thuộc tính không thuộc khóa chính không được gạch chân
Trang 28Khóa chính (primary key)
Trong một quan hệ, không có hai bộ bất kỳ có cùng khóa chính
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215
nhan_vien
Trang 29Khóa chính (primary key)
Trong một quan hệ, không có hai bộ bất kỳ có cùng khóa chính
Ví dụ (vi phạm)
´
´ MANV1 HO_TENPhạm Văn Bình NGAY_SINH30/04/1975 GIOI_TINHNam MADV LUONGP1 1 500 000 CMND1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
1 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215 nhan_vien
Trang 30Siêu khóa và quan hệ
¨ Siêu khóa của một lược đồ là một tập thuộc tính cho phép xác định duy nhất một bộ trong mỗi quan hệ trên lược đồ
¨ U: tập thuộc tính, R(U): lược đồ quan hệ trên
U, quan hệ r: một thể hiện của lược đồ R(U), KÍU là một siêu khóa của R(U)
¨ "t1, t2 Îr, nếu t1[K]= t2[K] thì t1[U]= t2[U]
Trang 31Khóa ngoài (foreign key)
Khóa ngoài của một lược đồ quan hệ là một tập hợp gồm một hay
nhiều thuộc tính là khóa chính của một lược đồ quan hệ khác
Trang 32Khóa ngoài (foreign key)
Ví dụ, NHAN_VIEN(MANV, HO_TEN, NGAY_SINH, GIOI_TINH, MADV , LUONG, CMND)
Khóa ngoài là MADV
Thuộc tính MADV của lược đồ NHAN_VIEN tham chiếu đến khóa chính (MADV) của lược đồ PHONG
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
3 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215
nhan_vien
Trang 33Khóa ngoài (foreign key)
Ví dụ, PHONG(MADV, TEN_PHONG, MATP )
Khóa ngoài là MATP
MATP tham chiếu đến khóa chính (MANV) của lược đồ NHAN_VIEN
P1 Hành chính quản trị 10 P2 Nghiên cứu và phát triển 2 P3 Giám đốc 8 P4 Kĩ thuật 4
phong
Trang 34Ràng buộc của khóa ngoài
Các giá trị của MADV trong quan hệ nhan_vien phải là
1 Phạm Văn Bình 30/04/1975 Nam P1 1 500 000 1417589987
2 Hoàng Lê Chi 28/03/1961 Nam P2 2 300 000 1417894532
3 Nguyễn Thu Cúc 12/06/1955 Nữ P1 1 700 000 1563298211
4 Lê Trần Dũng 10/09/1978 Nam P4 3 100 000 1518987219
8 Phan Ái Khanh 15/08/1970 Nữ P3 3 100 000 1718897245
10 Thân Như Thơ 21/11/1974 Nam P1 2 500 000 1718987215
nhan_vien
Trang 35Ràng buộc của khóa ngoài
Tập các giá trị của MATP trong quan hệ phong phải là tập con của tập các giá trị MANV trong quan hệ
nhan_vien
P1 Hành chính quản trị 10 P2 Nghiên cứu và phát triển 2 P3 Giám đốc 8 P4 Kĩ thuật 4
phong
Trang 36Các thao tác cập nhật dữ liệu trên các quan hệ
Thêm bộ
Xóa bộ
Sửa đổi nội dung của bộ
Trang 37Thêm bộ
Phép thêm bộ được dùng để thêm một hay nhiều bộ mới vào một quan hệ
Một số ràng buộc có thể bị vi phạm khi thêm bộ
Ràng buộc khóa
Ràng buộc toàn vẹn thực thể
Ràng buộc về miền dữ liệu của thuộc tính Ràng buộc toàn vẹn tham chiếu
Trang 38điều chỉnh thông tin của bộ mới cho phù hợp
Trang 39Ví dụ phép thêm bộ INSERT(phong; “P5”, “Kinh doanh”, 3)
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10
P2 Nghiên cứu và phát
triển 2P3 Giám đốc 8
P4 Kĩ thuật 4
phong
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10 P2 Nghiên cứu và phát
triển 2P3 Giám đốc 8 P4 Kĩ thuật 4
phong
Þ
Trang 40triển 2P3 Giám đốc 8 P4 Kĩ thuật 4 P5 Kinh doanh 3
phong
Þ
Trang 41Vi phạm ràng buộc toàn vẹn thực thể
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10
P2 Nghiên cứu và phát
triển 2P3 Giám đốc 8
triển 2P3 Giám đốc 8 P4 Kĩ thuật 4 P5 Kinh doanh 3
phong
Þ
Trang 42triển 2P3 Giám đốc 8 P4 Kĩ thuật 4 P5 Kinh doanh 3
phong
Þ
Trang 43Vi phạm ràng buộc toàn vẹn tham chiếu
triển 2P3 Giám đốc 8 P4 Kĩ thuật 4 P5 Kinh doanh 3
phong
Þ
Trang 44Xóa bộ
Phép xóa dùng để loại bỏ một hay nhiều
bộ trong một quan hệ
Một số ràng buộc có thể bị vi phạm khi xóa bộ
Ràng buộc toàn vẹn tham chiếu
Trang 45Cách ứng xử khi phép xóa bộ
vi phạm ràng buộc toàn vẹn tham chiếu
Trang 46Ví dụ phép xóa bộ
DELETE<phong; TEN_PHONG=“Kinh doanh”>
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10
P2 Nghiên cứu và phát
triển 2P3 Giám đốc 8
triển 2P3 Giám đốc 8 P4 Kĩ thuật 4
phong
Þ
Trang 47Phép xóa bộ vi phạm ràng buộc tham chiếu
Trang 48Sửa đổi nội dung của bộ
Phép sửa đổi được dùng để thay đổi các giá trị tại một số thuộc tính của một số bộ Một số ràng buộc có thể bị vi phạm khi
sửa bộ
Ràng buộc khóa
Ràng buộc toàn vẹn thực thể
Ràng buộc về miền dữ liệu của thuộc tính
Ràng buộc toàn vẹn tham chiếu
Trang 49Cách ứng xử khi phép sửa đổi nội dung bộ không phù hợp
Loại bỏ phép sửa đổi nội dung bộ nếu nó
vi phạm một hay nhiều ràng buộc
Hệ quản trị CSDL kiểm tra nguyên nhân loại bỏ phép sửa đổi nội dung bộ, để
thông báo cho người dùng Từ đó, người dùng sẽ tự điều chỉnh thông tin cập nhật cho phù hợp
Trang 50Ví dụ phép sửa đổi nội dung bộ
MODIFY<phong; MADV=“P1”; TEN_PHONG=“Hành chính tổng hợp”>
MADV TEN_PHONG MATP
P1 Hành chính quản trị 10
P2 Nghiên cứu và phát
triển 2P3 Giám đốc 8
phong
Þ
Trang 51Phép sửa đổi nội dung bộ không hợp lệ
MODIFY<phong; TEN_PHONG=“Nghiên cứu và phát triển”;
phong
Þ
Trang 52Phép sửa đổi nội dung bộ không hợp lệ
MODIFY<phong; TEN_PHONG=“Nghiên cứu và phát triển”;
phong
Þ
Trang 53Phép sửa đổi nội dung bộ không hợp lệ
MODIFY<phong; TEN_PHONG=“Nghiên cứu và phát triển”; MADV=8>
MADV TEN_PHONG MATP
phong
Þ
Trang 54Phép sửa đổi nội dung bộ không hợp lệ
MODIFY<phong; MADV=“P2”; MATP=11>
MADV TEN_PHONG MATP
phong
Þ
Trang 55Nội dung
1 Mô hình dữ liệu quan hệ
2 Các ngôn ngữ thao tác trên quan hệ
3 Phụ thuộc hàm và khoá
4 Dạng chuẩn và chuẩn hoá
5 Chuyển đổi mô hình ER sang mô hình dữ liệu quan hệ
Trang 58Ngôn ngữ đại số quan hệ
§ Các phép toán đặc biệt trên quan hệ
Trang 59Ba phép toán: hợp, giao và hiệu trên 2 quan
hệ r và s khả hợp được định nghĩa như sau:
Trang 62Hoàng Thị
Lê HàNguyễn Anh
AnhNamKhoa
Trang 63Hoàng ThịNguyễn Anh
AnhKhoa
Lê HảiHoàng Lê
HằngMinh
Trang 64(b1, b2, …, bm) Îs}
Trang 65Hà NộiBến TrePhú Thọ
S1S1S3
P1P2P1
500300600
Trang 66Hà Nội
Hà Nội
Hà Nội Bến Tre Bến Tre Bến Tre Phú Thọ Phú Thọ Phú Thọ
S1 S1 S3 S1 S1 S3 S1 S1 S3
P1 P2 P1 P1 P2 P1 P1 P2 P1
500 300 600 500 300 600 500 300 600
Trang 67Các phép toán tập hợp
Phép chia
Cho R(A1, A2, …, Am, Am+1, Am+2, …, An), rÎR S(A1, A2, …, Am), s ÎS
r ÷ s = {t | t = (am+1, am+2, …, an) sao cho
" (a1, a2, …, am) Î s,
(a1, a2, …, am, am+1, am+2, …, an) Îr}
Trang 68D1D2
maCB100102
Trang 70Các phép toán đặc biệt trên quan hệ
Ví dụ: Từ quan hệ CHAMCONG ở trên hãy tìm các cán
bộ tham gia dự án D1 hoặc D4?
maCB maDA100
102103
D1D1D4
Trang 71t[A]: giá trị của bộ t tại thuộc tính A.
t[X]=(t[A1], t[A2], …, t[Am])
Phép chiếu của quan hệ r trên tập thuộc tính X:
PX (r) = {t[X] | t Îr}
Trang 72Các phép toán đặc biệt trên quan hệ
Từ quan hệ NCC ở trên hãy cho biết tên công
ty và địa chỉ của công ty đó:
Hồng HàBến NghéBãi Bằng
Hà NộiBến TrePhú Thọ
S1
S2
S3
Hồng HàBến NghéBãi Bằng
Hà NộiBến TrePhú Thọ
Trang 74Hà NộiBến TrePhú Thọ
S1S1S3
P1P2P1
500300600
NCC.macty tencty diachi CUNUNG.macty masp soluon
g S1
S1
S3
Hồng Hà Hồng Hà Bãi Bằng
Hà Nội
Hà Nội Phú Thọ
S1 S1 S3
P1 P2 P1
500 300 600
Trang 75Điều kiện C=(r.A1=s.A1Ù r.A2=s.A2 Ù … Ù r.Ak=s.Ak)
Khi đó phép kết nối 2 quan hệ r và s được gọi là phép kết nối tựnhiên và kí hiệu: r wvC s = r*s
Ví dụ: NCC*CUNGUNG
macty tencty diachi masp soluon
g S1
S1 S3
Hồng Hà Hồng Hà Bãi Bằng
Hà Nội
Hà Nội Phú Thọ
P1 P2 P1
500 300 600
Trang 78Các phép toán quan hệ bổ sung
Các phép gộp nhóm
[<Các thuộc tính cơ sở để gộp nhóm>] F<danh sách hàm kết tập>(r)
Trong đó, r: là tên quan hệ
<Các thuộc tính cơ sở để gộp nhóm>:giá trị của các thuộc tính này dùng để phân nhóm các bộ trong quan hệ
r Các bộ có cùng giá trị tại các thuộc tính này được phân vào một nhóm.
<danh sách các hàm kết tập>: các cặp (<tên hàm kết tập><tên thuộc tính>).
Trang 79Các phép toán quan hệ bổ sung
Ví dụ: 1 Cho biết trong quan hệ NCC, có bao nhiêu nhà cung cấp?
F COUNT mancc(NCC)
2 Với mỗi sản phẩm hãy cho biết tổng số lượng cung ứng và có bao nhiêu công ty đã cung cấp sản phẩm này?
KQ(masp, tongsl, socty) ¬ masp F SUM soluong, COUNT macty(CUNGUNG)
Trang 82ngôn ngữ chuẩn của các hệ CSDL quan hệ
Ví dụ
SELECT [DISTINCT|ALL]{*|[<biểu thức cột> [AS <tên
mới>]]}
FROM <tên bảng>[<bí danh>] [, …]
[WHERE <điều kiện>]
[GROUP BY <danh sách tên cột>] [HAVING <điều kiện>][ORDER BY <danh sách tên cột>]
Giới thiệu SQL
Trang 83Cú pháp của câu lệnh
CREATE TABLE <tên bảng> (
<tên cột 1> <kiểu dl 1> (kích thước 1) [CONSTRAINT <tên 1>],
<tên cột 2> <kiểu dl 2> (kích thước 2) [CONSTRAINT <tên 2>],
Trang 84Trong đó các ràng buộc toàn vẹn được khai báo như sau:
[CONSTAINT <tên ràng buộc toàn vẹn>] |NULL| NOT
NULL|
UNIQUE [(<tên cột i>, <tên cột j> …)] |
PRIMARY [(<tên cột i>, <tên cột j> …)] |
[FOREIGN KEY [(<tên cột i>, <tên cột j> …)] |
REFERENCES <tên bảng> (<tên cột i>, <tên cột j> …) | CHECK (<điều kiện>)
Định nghĩa dữ liệu
Trang 85Ví dụ 3: Tạo bảng nhan_vien gồm các trường: manv,
ho_ten, ng_sinh, gioi_tinh, ma_dv, luong.
CREATE TABLE nhan_vien (
Trang 86Ví dụ 4: Tạo bảng du_an gồm các cột:
- ma_da: là khóa chính,
- ten_da: không được có giá trị null và các hàng khác nhau
trong bảng, phải có ten_da khác nhau,
- dia_diem_da: có giá trị mặc định là ‘UBND HN’,
ma_dv
CREATE TABLE du_an (
ma_da CHAR(2) PRIMARY KEY,
ten_da VARCHAR(25) NOT NULL UNIQUE,
dia_diem_da VARCHAR(40) DEFAULT ‘UBND HN’,
ma_dv CHAR(2)
);
Định nghĩa dữ liệu