Mối liên kết có thể có nhiều thuộc tính dùng để mô tả các đặc tính của sự liên kết giữa các thực thể.. Cơ sở dữ liệu quan hệ Cơ sở dữ liệu quan hệ relational database bao g
Trang 1GIỚI THIỆU MÔN HỌC: HỆ CƠ SỞ DỮ LIỆU
Database System
Trang 2NỘI DUNG ÔN TẬP
Giới thiệu
Mô hình liên kết thực thể
Mô hình dữ liệu quan hệ
Chuyển từ ER sang quan hệ
Ràng buộc toàn vẹn
Đại số quan hệ
Ngôn ngữ SQL
Trang 3Các khái niệm cơ bản và định
Dữ liệu có cấu trúc: số, ngày, chuỗi ký tự, …
Dữ liệu không có cấu trúc: hình ảnh, âm thanh, đoạn phim, …
Có tổ chức (organized): người sử dụng có thể dễ dàng
Trang 4Các khái niệm cơ bản và định
nghĩa
Cơ sở dữ liệu
Có liên quan luận lý (logically related): dữ liệu mô tả một
lãnh vực mà nhóm người sử dụng quan tâm và được dùng để trả lời các câu hỏi liên quan đến lãnh vực này
Trang 5Các khái niệm cơ bản và định
Thông tin: dữ liệu trong ngữ cảnh
Mã sinh viên Họ và tên sinh viên Lớp Tuổi
50010273 Nguyễn Trung Tiến MT00 20
50100298 Lê Việt Hùng MT01 19
59900012 Trần Hùng Việt MT99 21
Hồ Xuân Hương
Trang 6Các khái niệm cơ bản và định
nghĩa
Thông tin: dữ liệu được tổng hợp / xử lý
MT00 40%
MT01 20%
MT02 20%
MT99 20%
Trang 7Các khái niệm cơ bản và định
Trang 8Các khái niệm cơ bản và định
nghĩa
Siêu dữ liệu cho Sinh_viên
Data Item Value
Name Type Length Min Max Description
MaSV Character 8 Ma sinh vien
Hoten Character 30 Ho ten sinh vien Lop Character 3 Lop
Tuoi Number 2 17 25 Tuoi
Trang 9Hệ thống xử lý tập tin
Hệ thống xử lý tập tin
file processing system
Hệ thống xử lý tập tin là tập hợp các chương trình dùng để lưu trữ, thao tác và truy xuất các tập tin dữ liệu có kích thước lớn
Các tập tin dữ liệu được lưu trữ trong các thư mục (folder)
Trang 10Hệ thống xử lý tập tin
Các chương trình xử lý tập tin
Tạo cấu trúc tập tin
Thêm dữ liệu vào tập tin
Xóa dữ liệu của tập tin
Sửa dữ liệu của tập tin
Liệt kê dữ liệu của tập tin
Trang 11Hệ thống xử lý tập tin
Phụ thuộc dữ liệu – chương trình (Program-Data
Hạn chế việc dùng chung dữ liệu
Mỗi ứng dụng có các tập tin riêng biệt, ít sử dụng
Trang 12Hệ thống xử lý tập tin
Nhược điểm của hệ thống xử lý tập tin
Thời gian phát triển lâu
Người lập trình phải thiết kế các dạng tập tin dữ liệu riêng và viết cách truy xuất tập tin cho mỗi ứng dụng mới
Chi phí bảo trì chương trình cao
Các nhược điểm nêu trên làm cho việc bảo trì chương trình gặp nhiều khó khăn, thường chiếm khoảng 80% ngân sách phát triển HTTT
Trang 13Cách tiếp cận cơ sở dữ liệu
Kho dữ liệu trung tâm chứa các dữ liệu dùng chung
Dữ liệu được quản lý bởi một đơn vị điều khiển
Trang 14Cách tiếp cận cơ sở dữ liệu
Giảm bớt dư thừa dữ liệu
Trang 15Cách tiếp cận cơ sở dữ liệu
Chi phí ban đầu
Chi phí cài đặt và quản lý
Chi phí chuyển đổi (conversion cost)
Chi phí vận hành
Cần nhân viên mới có chuyên môn
Cần phải chép lưu và phục hồi
Mâu thuẫn về mặt tổ chức
Rất khó thay đổi các thói quen cũ
Trang 16Các loại cơ sở dữ liệu
Trang 17Các loại cơ sở dữ liệu
Trang 18Hệ quản trị cơ sở dữ liệu
DBMS – DataBase Management System
Hệ quản trị CSDL là tập hợp các chương trình dùng để quản lý cấu trúc và dữ liệu của CSDL và điều khiển truy xuất dữ liệu trong CSDL
Cho phép người sử dụng định nghĩa, tạo lập và bảo trì CSDL và cung cấp các truy xuất dữ liệu
Trang 19Hệ quản trị cơ sở dữ liệu
Trang 20Hệ quản trị cơ sở dữ liệu
Các chức năng của hệ quản trị CSDL
Lưu trữ, truy xuất và cập nhật dữ liệu
Ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition
Language)
Ngôn ngữ thao tác dữ liệu (DML - Data Manipulation
Language)
Quản lý giao tác (transaction management)
Điều khiển tương tranh (concurrency control)
Chép lưu và phục hồi dữ liệu
Bảo mật dữ liệu
Ngôn ngữ điều khiển dữ liệu (DCL - Data Control Language)
Hỗ trợ truyền thông dữ liệu
Trang 21Sự phát triển các hệ CSDL
Hệ thống tập tin (flat file): 1960 - 1980
Hệ CSDL phân cấp (hierarchical): 1970 - 1990
Hệ CSDL mạng (network): 1970 - 1990
Hệ CSDL quan hệ (relational): 1980 - nay
Hệ CSDL hướng đối tượng (object-oriented): 1990 -
Trang 22Các mức biểu diễn CSDL
Mức trong: (mức vật lý – Physical) là mức lưu trữ CSDL
(cần giải quyết vấn đề gì? Dữ liệu gì? Lưu trữ như thế nào?
ở đâu? Cần các chỉ mục gì? Truy xuất tuần tự hay ngẫu
nhiên Dành cho người quản trị và người sử dụng chuyên môn
Mức quan niệm: (Conception hay Logical) cần phải lưu trữ
bao nhiêu loại dữ liệu? là dữ liệu gì? mối quan hệ
Mức ngoài: của người sử dụng và các chương trình ứng
dụng
Trang 23Các mức biểu diễn CSDL
Cấu trúc ngoài 1
Cấu trúc ngoài 2
Cấu trúc ngoài n
Mức quan niệm hoặc mức logic
Mức vật lý – Cấu trúc vật lý
Môi trường thực thế giới thực NSD1
NSD2
Trang 24 Mô hình ER được dùng để xây dựng mô hình dữ liệu ý
niệm (conceptual data model) nhằm biểu diễn cấu trúc
và các ràng buộc của CSDL
Trang 25Mô hình liên kết thực thể
Thực thể và các thuộc tính
Mối liên kết và các thuộc tính
Trang 26Mô hình liên kết thực thể
Trang 27Attribute symbols
Trang 28 Đặc điểm của thực thể là tính phân biệt (distinctness):
có thể phân biệt giữa thực thể này với thực thể khác
Kiểu thực thể
Kiểu thực thể là tập hợp các thực thể thuộc cùng một loại (thường tương ứng với một bảng)
Trang 29 Thuộc tính bắt buộc và thuộc tính tùy chọn
Thuộc tính đơn và thuộc tính phức hợp
Thuộc tính đơn trị và thuộc tính đa trị
Thuộc tính chứa và thuộc tính dẫn xuất
Thuộc tính khóa và thuộc tính không khóa
Trang 30Thuộc tính
Thuộc tính đơn (simple attribute) là thuộc tính không bị phân rã thành nhiều thuộc tính khác
Thuộc tính phức hợp (composite attribute) là thuộc tính
bị phân rã thành nhiều thuộc tính khác
Trang 31Thuộc tính
Thuộc tính đơn
Thuộc tính phức hợp
Trang 32Thuộc tính
Thuộc tính đơn trị (single-valued attribute) là thuộc tính chỉ chứa một giá trị
Thuộc tính đa trị (multivalued attribute) là thuộc tính chứa nhiều giá trị khác nhau thuộc một miền trị, được biểu diễn bằng hình bầu dục nét đôi
Trang 33Thuộc tính
Thuộc tính chứa (stored attribute) là thuộc tính mà giá trị
của nó không được suy dẫn từ các thuộc tính khác
Thuộc tính dẫn xuất (derived attribute) là thuộc tính mà giá trị của nó được suy dẫn từ các thuộc tính khác, được biểu diễn bằng hình bầu dục nét đứt
Trang 34Thuộc tính
Thuộc tính đơn trị
Thuộc tính đa trị
Thuộc tính chứa Thuộc tính dẫn xuất
Trang 35 Thuộc tính khóa là thuộc tính ở trong khóa
key attribute / prime attribute / identifier attribute
Thuộc tính khóa được gạch dưới
Thuộc tính không khóa (non-key attribute) là thuộc tính không ở trong khóa
Trang 36Khóa
Khóa đơn (simple key) là khóa chỉ có một thuộc tính
Khóa phức hợp (composite key) là khóa có nhiều hơn một thuộc tính
Khóa dự tuyển là khóa của một kiểu thực thể
Một kiểu thực thể có ít nhất một khóa dự tuyển
Trang 37 Một kiểu thực thể chỉ có một khóa chính
Khóa chính dùng để liên kết giữa các thực thể
Trang 38Khóa
Khóa đơn
Thuộc tính không khóa
Trang 39Mối liên kết
Kiểu mối liên kết
Kiểu mối liên kết là sự liên kết giữa các kiểu thực thể
Được biểu diễn bằng hình thoi
Mối liên kết có thể có nhiều thuộc tính dùng để mô tả các đặc tính của sự liên kết giữa các thực thể
Hai thực thể có thể có nhiều kiểu mối liên kết giữa chúng
Trang 40Mối liên kết
Hai thực thể có nhiều mối liên kết
Trang 41Mối liên kết
Bậc / ngôi của mối liên kết
Bậc của mối liên kết là số lượng kiểu thực thể tham gia
đồng thời vào mối liên kết này
Các loại mối liên kết
Mối liên kết 1-ngôi (unary relationship)
Mối liên kết 2-ngôi (binary relationship)
Mối liên kết 3-ngôi (ternary relationship): 3 kiểu thực thể
đồng thời tham gia vào mối liên kết
Trang 42Mối liên kết
One entity related to
another of the same
entity type
Entities of two different types related to each other
Entities of three different types related to each other
Trang 43Mối liên kết
Trang 44Mối liên kết
Trang 45Mối liên kết
Trang 47 Lượng số nhỏ nhất
Nếu 0 là tùy chọn (optional)
Nếu một hoặc nhiều là bắt buộc (mandatory)
Lượng số lớn nhất
Trang 48Mối liên kết
Trang 49Mối liên kết
Mối liên kết 1-ngôi một-một có lượng số tùy chọn
Trang 50Mối liên kết
Lượng số lớn nhất
Trang 51Relational Data Model
Quan hệ (relation) là một bảng dữ liệu hai chiều bao gồm nhiều hàng (mẩu tin) và nhiều cột (thuộc tính hoặc vùng tin)
Mỗi hàng là duy nhất: không thể có hai hàng có cùng các giá trị ở tất cả vùng tin
Thứ tự của các hàng là không quan trọng
Thứ tự của các cột là không quan trọng
Quan hệ là một bảng không chứa các hàng giống hệt nhau
Trang 52Quan hệ
Quan hệ: Supplier
Trang 54 Các thuộc tính khóa được gạch dưới
Các thuộc tính khóa không được có giá trị rỗng (null
Trang 55 Trong một quan hệ, một hoặc nhiều thuộc tính được gọi
là khóa ngoại (foreign key) nếu chúng là khóa chính của
một quan hệ khác
Trang 56Cơ sở dữ liệu quan hệ
Cơ sở dữ liệu quan hệ (relational database) bao
gồm các bảng (quan hệ) biểu diễn các thực thể và các khóa chính / khóa ngoại biểu diễn các mối liên kết
Trang 57Cơ sở dữ liệu quan hệ
Primary Key
Foreign Key (implements 1:N relationship between customer and order)
Combined, these are a composite
primary key (uniquely identifies the
order line)…individually they are
foreign keys (implement M:N
relationship between order and product)
Trang 58Lược đồ cơ sở dữ liệu
Lược đồ cơ sở dữ liệu
database schema
Lược đồ cơ sở dữ liệu là một tập hợp các lược đồ quan hệ
Trong một lược đồ cơ sở dữ liệu, các tên lược đồ quan hệ là duy nhất
Lược đồ quan hệ Q với tập thuộc tính A1,A2, An được viết là Q(A1,A2, An)
Lược đồ cơ sở dữ liệu:
Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum)
Dept (Deptnum, Name, Area, Mgrnum)
Supplier (Snum, Name, City)
Trang 59Sự tương ứng với mô hình ER
Mỗi quan hệ (bảng) tương ứng với một kiểu thực thể hoặc với một kiểu mối liên kết nhiều - nhiều
Mỗi hàng tương ứng với một thể hiện thực thể hoặc với một thể hiện mối liên kết nhiều - nhiều
Mỗi cột tương ứng với một thuộc tính
Từ quan hệ (relation) trong cơ sở dữ liệu quan hệ không có cùng nghĩa với từ mối quan hệ
(relationship) trong mô hình ER
Trang 60Biến đổi ERD thành các quan hệ
Qui tắc 1: Biến đổi một kiểu thực thể thành một quan hệ
Đối với kiểu thực thể thông thường (regular entity type):
khóa của quan hệ là khóa của kiểu thực thể
Thuộc tính của quan hệ là thuộc tính của kiểu thực thể
Quan hệ chỉ chứa các thuộc tính thành phần của thuộc tính phức hợp
Quan hệ không chứa các thuộc tính đa trị
Trang 61Biến đổi ERD thành các quan hệ
CUSTOMER relation
CUSTOMER entity type with
simple attributes
Trang 62Biến đổi ERD thành các quan hệ
CUSTOMER entity type with
composite attribute
CUSTOMER relation with address detail
Trang 63Biến đổi ERD thành các quan hệ
Trang 64Biến đổi ERD thành các quan hệ
Multivalued attribute
becomes a separate
relation with foreign key
1–to–many relationship between
Trang 65Biến đổi ERD thành các quan hệ
có lượng số một-một
Đặt khóa của kiểu thực thể bên phía bắt buộc và các thuộc tính của mối liên kết vào quan hệ của kiểu thực thể bên phía tùy chọn
Trang 66Biến đổi ERD thành các quan hệ
EMPLOYEE relation with recursive foreign key EMPLOYEE entity with Manages relationship
Trang 67Biến đổi ERD thành các quan hệ
Trang 68Biến đổi ERD thành các quan hệ
có lượng số một-nhiều
Đặt khóa của kiểu thực thể bên phía một và các thuộc
tính của mối liên kết vào quan hệ của kiểu thực thể bên phía nhiều
Trang 69Biến đổi ERD thành các quan hệ
EMPLOYEE relation with recursive foreign key EMPLOYEE entity with Manages relationship
Trang 70Biến đổi ERD thành các quan hệ
Note the mandatory one
Again, no null value in the foreign key…this is
Trang 71Biến đổi ERD thành các quan hệ
Qui tắc 5: Biến đổi mối liên kết 1-ngôi hoặc 2-ngôi
có lượng số nhiều-nhiều thành một quan hệ
Quan hệ chứa các khóa của các kiểu thực thể tham gia vào mối liên kết
Khóa của quan hệ gồm cả hai khóa của hai kiểu thực thể
Thuộc tính của quan hệ là thuộc tính của mối liên kết
Trang 72Biến đổi ERD thành các quan hệ
Bill-of-materials relationships (M:N)
ITEM and COMPONENT relations
Trang 73Biến đổi ERD thành các quan hệ
Trang 74Biến đổi ERD thành các quan hệ
Qui tắc 6: Biến đổi mối liên kết 3-ngôi thành một quan hệ
Quan hệ chứa ba khóa của ba kiểu thực thể tham gia vào mối liên kết
Mối liên kết có bao nhiêu kiểu thực thể bên phía một thì
quan hệ có bấy nhiêu khóa: đối với một kiểu thực thể bên phía một thì khóa của quan hệ gồm cả hai khóa của
hai kiểu thực thể còn lại Nếu không có kiểu thực thể bên phía một thì khóa của quan hệ bao gồm cả ba khóa
của ba kiểu thực thể
Trang 75Biến đổi ERD thành các quan hệ
Trang 76Biến đổi ERD thành các quan hệ
Trang 77 Các giá trị cho phép của một thuộc tính
Trang 78Ràng buộc toàn vẹn
Ràng buộc toàn vẹn tham chiếu là một qui tắc mà tất cả các giá trị của khóa ngoại (nếu khác null) trong quan hệ bên phía nhiều phải có trong các giá trị của khóa chính
trong quan hệ bên phía một
Trang 79Ràng buộc toàn vẹn
Ràng buộc toàn vẹn tham chiếu
Qui tắc xóa các hàng dữ liệu
Hạn chế (restrict): không cho phép xóa các hàng bên phía cha (parent) nếu tồn tại các hàng liên quan bên phía phụ thuộc (dependent)
Tầng (cascade): tự động xóa các hàng bên phía phụ thuộc tương ứng với các hàng bên phía cha
Gán null (set-to-null): gán null cho khóa ngoại của các
hàng bên phía phụ thuộc tương ứng với các hàng bên phía cha Không áp dụng cho các thực thể yếu
Trang 81mà ràng buộc đó có hiệu lực Bối cảnh của một ràng buộc toàn vẹn có thể là một hoặc nhiều quan hệ
Trang 83 RBTV có bối cảnh trên 1 quan hệ
Trang 84Lược đồ CSDL quản lý giáo vụ
HOCVIEN (MAHV, HO, TEN, GIOITINH, MALOP)
LOP (MALOP, TENLOP, SISO)
KHOA (MAKHOA, TENKHOA)
MONHOC (MAMH, TENMH, MAKHOA)
GIAOVIEN(MAGV, HOTEN, NGVL, HOCVI, HESO, MUCLUONG, MAKHOA)
GIANGDAY(MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY)
KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM)
Trang 85 Là tập giá trị mà một thuộc tính có thể nhận
Nội dung:
hv HOCVIEN( hv.Gioitinh {„Nam‟,‟Nữ‟})
Bối cảnh: quan hệ HOCVIEN
Bảng tầm ảnh hưởng:
Ràng buộc miền giá trị
R1 Thêm Xóa Sửa
Trang 86 Là ràng buộc giữa các thuộc tính với nhau trên 1
bộ của quan hệ
R2:Ngày bắt đầu (TUNGAY) giảng dạy một môn học cho một
lớp luôn nhỏ hơn ngày kết thúc (DENNGAY)
Trang 87Ràng buộc liên bộ
Là ràng buộc giữa các bộ trên cùng một quan hệ
R3: Tất cả các học viên phải có mã số phân biệt
Nội dung:
h1,h2 HOCVIEN(h1 h2 h1.Mahv h2.Mahv)
h1 HOCVIEN(Count(h2 HOCVIEN( h2.Mahv = h1.Mahv))(*)=1)
Bối cảnh: quan hệ HOCVIEN
Bảng tầm ảnh hưởng:
Sửa
Trang 89 Là ràng buộc quy định giá trị thuộc tính trong một bộ của quan hệ R (tập thuộc tính này gọi
là khoá ngoại), phải phụ thuộc vào sự tồn tại của một bộ trong quan hệ S (tập thuộc tính này là khoá chính trong quan hệ S)
RBTV tham chiếu còn gọi là ràng buộc phụ thuộc tồn tại hay ràng buộc khóa ngoại
Ràng buộc tham chiếu