Cơ sở dữ liệu
Cơ sở dữ liệu
1 Giới thiệu
+ Dữ liệu : những thông tin hưu ích, có chọn lọc
+ Cơ sở dữ liệu: là tập hợp có cấu trúc,,, của những dữ liệu có liên quan với nhau được lưu trữ trên mt
+ Hệ quản trị cơ sở dữ liệu: tập hợp các chương trình cho phép người sd tạo, duy trì CSDL
+ Hệ cơ sở dữ liệu: là hệ thống gồm CSDL, người sử dụng, phần mềm
+ nếu sử dụng file để lưu trữ có rất nhiều hạn chế : truy cập chậm,...
+ tính chất:
1 tính tự mô tả: Hệ csdl còn có các mô tả Csdl được lưu ở catalog,,, chương trình có thể truy xuất đến nhiều csdl nhờ thông tin mô tả ở catalog
2 tính độc lập: lưu trử csdl ở catalog hoan toàn độc lập với chương trình,
3 tính trừu tượng
4 tính nhất quán: các khóa, các quyền truy cập
+ hệ CSDL cho phép nhiều người dùng truy cập vào csdl, mỗi người dùng được phép truy cập vào 1 phần nào đó của csdl, hay còn đgl 1 cách nhìn hoặc 1 view
Quá trình thiết kế CSDL:
+ Mô hình liên kết thực thể E-R(mô tả TG thực theo con người)
+ thực thể : là đối tượng trong thế giới thực -> tập thực thể: nhửng thực thể cùng
+ thuộc tính: các đặc điểm riêng của thực thể
+ tập thực thể: tập hợp các thực thể có cùng thuộc tính
1 Các loại thuộc tính
+ Loại thuộc tính:
+ thuộc tính đơn: ko thể tách nhỏ: ví dụ: điểm, lớp học,..
+ thuộc tính phức hợp: có thể tách nhỏ: ví dụ: Quê Quán:tách thành làng, xã, huyện, tỉnh,..
+ Loại giá trị thuộc tính:
+ Đơn trị: các thuộc tính có giá trị duy nhất cho 1 thực thể: ví dụ: tên, mã sv
+ Đa trị: ........................ nhiều giá trị..............................ví dụ: bằng cấp( có nhiều..)
+ Suy diễn được( ví dụ: năm sinh-> tuổi)
+ Thuộc tính khóa: dùng để phân biệt các thực thể
+ Thuộc tính mô tả: giá trị của chúng chỉ có tính mô tả cho thực thể
+ Thuộc tính tên gọi: là thuộc tính mô tả chỉ tên các đối tượng thuộc thực thể
+ Lược đồ E-R:
+ Ràng buộc các kiểu liên kết
+ Thuộc tính trên mối quan hệ:
1 Mô tả tính chất của mối quan hệ đó
2 Không được gắn với những thực thể tham gia mối qh đó
+ Các bước xây dựng E-R
1 xác định tập thực thể => 2 xđ mối quan hê
3 xác định thuộc tính, và gắn nó với tập tt và mối qh (bỏ thuộc tính suy diễn đk)
4 Quyết định thuộc tính khóa 5, Qđ kiểu liên kết
+ Quy tắc xd: Chính xác, Tránh Trùng Lặp(mỗi thuộc tính chỉ nằm duy nhất trên tập tt), dễ hiểu, đúng
+ Ví dụ:
2 Mô Hình Quan Hệ
+ KN: Quan Hệ, Thuộc tính, Lược đồ, Bộ, Miền giá trị
+ Quan Hệ: là các thông tin lưu trữ tổ chức dạng bảng
+ 1 dòng ~ 1 thực thể + 1 quan hệ ~ 1 tập thực thể
+ Thuộc Tính
+ Khóa chính: duy nhất, định danh tập thực thể tương ứng
+ Khóa ngoại: thiết lập mối qh, là thuộc tính khóa của quan hệ !=
+ Lược đồ quan hệ
+ Lược đồ CSDL: gồm nhiều lược đồ quan hệ
+ Bộ: là các dòng của quan hệ, thể hiện dữ liệu cụ thể của quan hệ
+ Miền giá trị: tập giá trị nguyên tố(ko thể phân chia: int,... ko phải nguyên tố: set,list, array,..) gắn với 1 thuộc tính
+ Lược đồ quan hệ: R(A1, A2,...An): Ai: thuộc tính thứ i
+ Bậc của lược đồ là số thuộc tính của quan hệ đó
+ MÔ HÌNH QUAN HỆ
+ Ràng buộc trong MHQH ( đảm bảo dữ liệu đúng đắn,,,)
+ Ràng buộc thực thể: khóa chính tối thiểu, duy nhất, ko NULL
+ Ràng buộc tham chiếu: khóa ngoài phải tồn tại hoặc để NULL
+ Ràng buộc miền giá trị: giới hạn, ý nghĩa kiểu dữ liệu
+ Chuyển mô hình E-R sang MHQH
+ thuộc tính đa trị: tách khỏi tập thực thể đầu để làm tập tt mới
+ Chú ý: Với 2 thực thể có quan hệ 2 chiều:
+ Mô hình quan hệ dạng biểu đồ:
CHƯƠNG 2: Đại Số Quan Hệ
1 Giới thiệu
+ 2 loại xử lý: làm thay đổi dữ liệu(thêm, sửa,.), ko thay đổi( truy vấn)
+ thực hiện xử lý: Đại số quan hệ (b diễn dạng bt), Phép tính quan hệ( bd kết quả), SQL
2 Đại số Quan Hệ
+ Biến là các quan hệ( tập hợp)
+ Toán tử là các phép toán: Hợp, giao, trừ, chiếu, chọn, tích đề các, nối
+ Hằng số là thể hiện của quan hệ
+ Biểu thức:(câu truy vấn) là chuỗi các phép toán đsqh, trả về là 1 thể hiện của quan hệ
+ Tính khả hợp: 2 quan hệ R(A1,A2,...) S(B1,B2,..) khả hợp khi: cùng bậc n, và miền DL: Dom(Ai)= Dom(Bi)
+ Phép hợp: là các bộ dl thuộc R hoặc S, hoặc cả 2
+ Phép giao:............................ R đồng thời thuộc S
+ Phép trừ: ..............................R nhưng không thuộc S
+ Phép chiếu: lấy ra vài cột của quan hệ R => kq thu đk 1 quan hệ: có k thuộc tính, số bộ ít hơn hoặc bằng R( 1 số bộ có NULL)
+ Phép Chọn: lấy ra các bộ dl của quan hệ R, thõa mãn đk chọn P
+ Phép tích đề các: kết hợp các bộ quan hệ => kq là tổ hợp giữa 2 qh, R có u bộ dl, S ... v bộ => RxS có u*v bộ, ...... m+n thuộc tính
+ Phép nối: là phép chọn theo đk trên quan hệ RxS
+ Phép nối tự nhiên: là phép nối với đk thuộc tính trùng tên
+ Tập đầy đủ DSQH: chiếu, chọn, tích đề các, trừ, hợp
+ Phép chia: R:S kq: số thuộc tính trong R trừ số thuộc tính trong S( S là con của R), là số bộ dl trong R thõa tất cả bộ trong S
+ Hàm kết hợp: Count(R) : đếm số bộ dl trong R, Count(Ai): số bộ dữ liệu != Null của thuộc tính Ai
+ Phép gom nhóm
+ Phép nối ngoài:
Chương 4: Lý thuyết thiết kế CSDL quan hệ
1 Tối thiểu hóa: Sự dư thừa thông tin, sự bất thường khi thao tác thêm, sửa, xóa.
+ Phụ thuộc hàm trên quan hệ r, cho X, Y ( thuộc tính, cột) con R
X phụ thuộc Y: X-> Y: trong r nếu Với mọi t,t': nếu t.X=t'.X thì t.Y=t'.Y
+ Phụ thuộc..............................R nếu tm với mọi r
+ Các tc:
1 Tính phản xạ: Y con của X => X->Y
2 Tính mở rộng 2 vế: X->Y thì XZ-> YZ
3 Tính bắc cầu: X->Y và Y->Z => X->Z
+ Hệ tiên đề Amstrong:
1 tích tựa bắc cầu: X->Y và YZ-> W thì XZ-> W
2 tính chiếu: X->YZ thì X->Y và X->Z
3 tính cộng đầy đủ: X->Y và Z-> W thì XZ->YW
+ Bao đóng
1 Bao đóng F+ của tập phụ thuộc hàm(PTH) F
2 Bao đóng X+ của X ( là tập con của tập thuộc tính R)
3 Tính chất
4 Thuật toán tìm bao đóng
ví dụ:
+ Khóa của sơ đồ quan hệ
0, Sơ đồ quan hệ là Lược đồ quan hệ + tập phụ thuộc hàm trên nó
1 đk: tập k
2 siêu khóa: k là siêu khóa nếu nó thỏa mãn đk 1
3 định lý:
4 Thuật toán tìm khóa
5 Các tính chất của khóa
6 Thuật toán tìm 1 khóa
7 Thuật toán tìm mọi khóa
1 Giới thiệu
+ Dữ liệu : những thông tin hưu ích, có chọn lọc
+ Cơ sở dữ liệu: là tập hợp có cấu trúc,,, của những dữ liệu có liên quan với nhau được lưu trữ trên mt
+ Hệ quản trị cơ sở dữ liệu: tập hợp các chương trình cho phép người sd tạo, duy trì CSDL
+ Hệ cơ sở dữ liệu: là hệ thống gồm CSDL, người sử dụng, phần mềm
+ nếu sử dụng file để lưu trữ có rất nhiều hạn chế : truy cập chậm,...
+ tính chất:
1 tính tự mô tả: Hệ csdl còn có các mô tả Csdl được lưu ở catalog,,, chương trình có thể truy xuất đến nhiều csdl nhờ thông tin mô tả ở catalog
2 tính độc lập: lưu trử csdl ở catalog hoan toàn độc lập với chương trình,
3 tính trừu tượng
4 tính nhất quán: các khóa, các quyền truy cập
+ hệ CSDL cho phép nhiều người dùng truy cập vào csdl, mỗi người dùng được phép truy cập vào 1 phần nào đó của csdl, hay còn đgl 1 cách nhìn hoặc 1 view
Quá trình thiết kế CSDL:
+ Mô hình liên kết thực thể E-R(mô tả TG thực theo con người)
+ thực thể : là đối tượng trong thế giới thực -> tập thực thể: nhửng thực thể cùng
+ thuộc tính: các đặc điểm riêng của thực thể
+ tập thực thể: tập hợp các thực thể có cùng thuộc tính
1 Các loại thuộc tính
+ Loại thuộc tính:
+ thuộc tính đơn: ko thể tách nhỏ: ví dụ: điểm, lớp học,..
+ thuộc tính phức hợp: có thể tách nhỏ: ví dụ: Quê Quán:tách thành làng, xã, huyện, tỉnh,..
+ Loại giá trị thuộc tính:
+ Đơn trị: các thuộc tính có giá trị duy nhất cho 1 thực thể: ví dụ: tên, mã sv
+ Đa trị: ........................ nhiều giá trị..............................ví dụ: bằng cấp( có nhiều..)
+ Suy diễn được( ví dụ: năm sinh-> tuổi)
+ Thuộc tính khóa: dùng để phân biệt các thực thể
+ Thuộc tính mô tả: giá trị của chúng chỉ có tính mô tả cho thực thể
+ Thuộc tính tên gọi: là thuộc tính mô tả chỉ tên các đối tượng thuộc thực thể
+ Lược đồ E-R:
+ Ràng buộc các kiểu liên kết
+ Thuộc tính trên mối quan hệ:
1 Mô tả tính chất của mối quan hệ đó
2 Không được gắn với những thực thể tham gia mối qh đó
+ Các bước xây dựng E-R
1 xác định tập thực thể => 2 xđ mối quan hê
3 xác định thuộc tính, và gắn nó với tập tt và mối qh (bỏ thuộc tính suy diễn đk)
4 Quyết định thuộc tính khóa 5, Qđ kiểu liên kết
+ Quy tắc xd: Chính xác, Tránh Trùng Lặp(mỗi thuộc tính chỉ nằm duy nhất trên tập tt), dễ hiểu, đúng
+ Ví dụ:
2 Mô Hình Quan Hệ
+ KN: Quan Hệ, Thuộc tính, Lược đồ, Bộ, Miền giá trị
+ Quan Hệ: là các thông tin lưu trữ tổ chức dạng bảng
+ Thuộc Tính
+ Khóa chính: duy nhất, định danh tập thực thể tương ứng
+ Khóa ngoại: thiết lập mối qh, là thuộc tính khóa của quan hệ !=
+ Lược đồ quan hệ
+ Lược đồ CSDL: gồm nhiều lược đồ quan hệ
+ Bộ: là các dòng của quan hệ, thể hiện dữ liệu cụ thể của quan hệ
+ Miền giá trị: tập giá trị nguyên tố(ko thể phân chia: int,... ko phải nguyên tố: set,list, array,..) gắn với 1 thuộc tính
+ Lược đồ quan hệ: R(A1, A2,...An): Ai: thuộc tính thứ i
+ Bậc của lược đồ là số thuộc tính của quan hệ đó
+ MÔ HÌNH QUAN HỆ
+ Ràng buộc trong MHQH ( đảm bảo dữ liệu đúng đắn,,,)
+ Ràng buộc thực thể: khóa chính tối thiểu, duy nhất, ko NULL
+ Ràng buộc tham chiếu: khóa ngoài phải tồn tại hoặc để NULL
+ Ràng buộc miền giá trị: giới hạn, ý nghĩa kiểu dữ liệu
+ Chuyển mô hình E-R sang MHQH
+ thuộc tính đa trị: tách khỏi tập thực thể đầu để làm tập tt mới
+ Chú ý: Với 2 thực thể có quan hệ 2 chiều:
+ Mô hình quan hệ dạng biểu đồ:
CHƯƠNG 2: Đại Số Quan Hệ
1 Giới thiệu
+ 2 loại xử lý: làm thay đổi dữ liệu(thêm, sửa,.), ko thay đổi( truy vấn)
+ thực hiện xử lý: Đại số quan hệ (b diễn dạng bt), Phép tính quan hệ( bd kết quả), SQL
2 Đại số Quan Hệ
+ Biến là các quan hệ( tập hợp)
+ Toán tử là các phép toán: Hợp, giao, trừ, chiếu, chọn, tích đề các, nối
+ Hằng số là thể hiện của quan hệ
+ Biểu thức:(câu truy vấn) là chuỗi các phép toán đsqh, trả về là 1 thể hiện của quan hệ
+ Tính khả hợp: 2 quan hệ R(A1,A2,...) S(B1,B2,..) khả hợp khi: cùng bậc n, và miền DL: Dom(Ai)= Dom(Bi)
+ Phép hợp: là các bộ dl thuộc R hoặc S, hoặc cả 2
+ Phép giao:............................ R đồng thời thuộc S
+ Phép trừ: ..............................R nhưng không thuộc S
+ Phép chiếu: lấy ra vài cột của quan hệ R => kq thu đk 1 quan hệ: có k thuộc tính, số bộ ít hơn hoặc bằng R( 1 số bộ có NULL)
+ Phép Chọn: lấy ra các bộ dl của quan hệ R, thõa mãn đk chọn P
+ Phép tích đề các: kết hợp các bộ quan hệ => kq là tổ hợp giữa 2 qh, R có u bộ dl, S ... v bộ => RxS có u*v bộ, ...... m+n thuộc tính
+ Phép nối: là phép chọn theo đk trên quan hệ RxS
+ Phép nối tự nhiên: là phép nối với đk thuộc tính trùng tên
+ Tập đầy đủ DSQH: chiếu, chọn, tích đề các, trừ, hợp
+ Phép chia: R:S kq: số thuộc tính trong R trừ số thuộc tính trong S( S là con của R), là số bộ dl trong R thõa tất cả bộ trong S
+ Hàm kết hợp: Count(R) : đếm số bộ dl trong R, Count(Ai): số bộ dữ liệu != Null của thuộc tính Ai
+ Phép gom nhóm
+ Phép nối ngoài:
Chương 4: Lý thuyết thiết kế CSDL quan hệ
1 Tối thiểu hóa: Sự dư thừa thông tin, sự bất thường khi thao tác thêm, sửa, xóa.
+ Phụ thuộc hàm trên quan hệ r, cho X, Y ( thuộc tính, cột) con R
X phụ thuộc Y: X-> Y: trong r nếu Với mọi t,t': nếu t.X=t'.X thì t.Y=t'.Y
+ Phụ thuộc..............................R nếu tm với mọi r
+ Các tc:
1 Tính phản xạ: Y con của X => X->Y
2 Tính mở rộng 2 vế: X->Y thì XZ-> YZ
3 Tính bắc cầu: X->Y và Y->Z => X->Z
+ Hệ tiên đề Amstrong:
1 tích tựa bắc cầu: X->Y và YZ-> W thì XZ-> W
2 tính chiếu: X->YZ thì X->Y và X->Z
3 tính cộng đầy đủ: X->Y và Z-> W thì XZ->YW
+ Bao đóng
1 Bao đóng F+ của tập phụ thuộc hàm(PTH) F
2 Bao đóng X+ của X ( là tập con của tập thuộc tính R)
3 Tính chất
4 Thuật toán tìm bao đóng
ví dụ:
+ Khóa của sơ đồ quan hệ
0, Sơ đồ quan hệ là Lược đồ quan hệ + tập phụ thuộc hàm trên nó
1 đk: tập k
2 siêu khóa: k là siêu khóa nếu nó thỏa mãn đk 1
3 định lý:
4 Thuật toán tìm khóa
5 Các tính chất của khóa
6 Thuật toán tìm 1 khóa
7 Thuật toán tìm mọi khóa
=> Dựa vào tính chất của khóa để cải tiến thuật toán nhanh hơn
+ Các dạng chuẩn
1NF: Không chứa thuộc tính đa trị
2NF: 1NF+Không có thuộc tính nào PTH vào 1 bộ phận của khóa
3NF: 2NF + không có PTH có nguồn và đích là không khóa
BCNF: 3NF+ không có PTH: nguồn không khóa, đích: khóa
+ Tách kết nối không mất thông tin
+ Thuật toán Chase kiểm tra
Ví dụ
Nhận xét
Đăng nhận xét