cơơ ssở dddữ liliệu - fit.mta.edu.vnfit.mta.edu.vn/files/danhsach/ch02_er model.pdf ·...
TRANSCRIPT
CC ởở dữdữ liệliệCơCơ sởsở dữdữ liệuliệu
ễVăn‐Giang Nguyễn
ốBộ môn Hệ thống thông tin, Khoa Công nghệ thông tin,Học viện Kỹ thuật quân sựE il i @ t dEmail: [email protected]
Slides courtesy of : Đỗ Thị Mai Hường, HTTT, CNTT, HVKTQS
Nội dung môn học
Chương 1: Tổng quan về cơ sở dữ liệu (5)
Chương 2: Mô hình liên kết thực thể (5)
Chương 3: Mô hình dữ liệu quan hệ (10)Chương 3: Mô hình dữ liệu quan hệ (10)
Chương 4: Phụ thuộc hàm và các dạng chuẩn CSDL (1Ch 5 Hệ ả t ị SQL S (10)Chương 5: Hệ quản trị SQL Server (10)
Chương 6: Ngôn ngữ truy vấn CSDL (15)
Chương 7: Lập trình T-SQL (15)
- 2 -
Nội dung chi tiết
Quá trình thiết kế CSDL
Mô hình thực thể liên kết (ER)
Xây dựng ER
íVí dụ
- 3 -
Quá trình thiết kế CSDL
Thiết kế E/RLược đồquan hệ
HQT CSDL quan hệÝ tưởng q ệ q ệg
- 4 -
Quá trình thiết kế CSDL
E-R là mô hình trung gian để chuyển những yêucầu quản lý dữ liệu trong thế giới thực thành môhì h CSDL hệhình CSDL quan hệ.
DBMS
Mô hình E/RMô hình
CSDL quanhệ
Bài toánthực tế
DB
- 5 -
Nội dung chi tiết
Quá trình thiết kế CSDL
Mô hình thực thể liên kết (ER)
Xây dựng ER
íVí dụ
- 6 -
Mô hình thực thể - liên kết
Được dùng để thiết kế CSDL ở mức quan niệm
Biểu diễn trừu tượng cấu trúc của CSDLBiểu diễn trừu tượng cấu trúc của CSDL
Lược đồ thực thể - liên kết (Entity – RelationshipLược đồ thực thể - liên kết (Entity Relationshipdiagram)
Tập thực thể (Entity sets)Thuộc tính (Attributes)Mối quan hệ (Relationship)
- 7 -
Tập thực thể
Một thực thể là một đối tượng của thế giới thực.Thực thể được mô tả bởi các thuộc tính
Tập hợp các thực thể giống nhau tạo thành mộttập thực thể
Chú ýể Cấ t ú ủ dữ liệThực thể (Entity)
Đối tượng (Object)Tập thực thể (Entity set)
Cấu trúc của dữ liệu
Thao tác trên dữ liệuTập thực thể (Entity set)Lớp đối tượng (Class of objects)
- 8 -
Tập thực thể
Ví dụ “Quản lý đề án công ty”Một nhân viên là một thực thểTậ h á hâ iê là tậ th thểTập hợp các nhân viên là tập thực thể
Một đề án là một thực thểMột đề án là một thực thểTập hợp các đề án là tập thực thể.
Một hò b là ột th thểMột phòng ban là một thực thểTập hợp các phòng ban là tập thực thể.
- 9 -
Thuộc tính
Là tập các giá trị có thể gán cho thuộc tính đốivới mội thực thể riêng biệt.
Miền giá trị của thuộc tính (domain)Kiểu chuỗi (string)( g)Kiểu số nguyên (integer)Kiểu số thực…
Ví dụ tập thực thể NHANVIEN có các thuộc tínhHọ tên (hoten: string[20]Họ tên (hoten: string[20]Ngày sinh (ns: date)Điểm trung bình (DTB: float)
- 10 -
Thuộc tính
Loại thuộc tínhThuộc tính đơn – Không thể tách nhỏ ra đượcTh ộ tí h hứ h ó thể tá h thà hThuộc tính phức hợp – có thể tách ra thànhcác thành phần nhỏ hơn.
Loại giá trị của thuộc tínhĐơn giá trị: các thuộc tính có giá trị duy nhấtĐơn giá trị: các thuộc tính có giá trị duy nhấtcho một thực thể (Ví dụ: CMND)Đa trị: các thuộc tính có một tập giá trị choù ộ h hể (VD bằ ấ )cùng một thực thể (VD: bằng cấp, ect)
Suy diễn được (năm sinh tuổi.)
- 11 -
Thuộc tính
Tất cả các thực thể nằm trong tập thực thể cócùng tập thuộc tính
Mỗi thực thể đều được phân biệt bởi một thuộctính khóa
Mỗi thuộc tính đều có miền giá trị tương ứng với nó
- 12 -
Thuộc tính
Ví dụ tập thực thể NHANVIEN có các thuộc tínhMã NV (MaNV: integer)H tê (H t t i [20])Họ tên (Hoten: string[20])Ngày sinh (NS: date)Địa chỉ (diachi: string[100])Địa chỉ (diachi: string[100])Quê quán (quequan: string[30])Hệ số lương (hsluong: float)Hệ ố h ấ (h h fl t)Hệ số phụ cấp (hsphucap: float)Tổng lương (tongluong: float)
Loại thuộc tính? Miền giá trị? Loại giá trị củathuộc tính?
- 13 -
uộc
Thuộc tính: Ví dụ và ký hiệu
Student_ID Student_name
Other_attributes
STUDENTThuộc tính khóa Thuộc tính đơnSTUDENTThuộc tính khóa Thuộc tính đơn
Address Thuộc tính phức
- 14 -
Street_address
City Postal_code
Thuộc tính: Ví dụ và ký hiệu
Employee_nameEmployee_
IDAddress
Thuộc tính đơn trị
EMPLOYEEYears_employed
Skill
Thuộc tính dẫn xuất Thuộc tính đa trị
Date_employed Thuộc tính chứa
- 15 -
Mối quan hệ
Quan hệ: Là sự liên kết giữa 2 hay nhiều tập thựcthể
Ví dụ: Giữa tập thực thể NHANVIEN vàPHONGBAN có các liên kết
Một nhân viên thuộc một phòng ban nào đóMột phòng ban có một nhân viên làm trưởngphòngphòng.
Tập các quan hệ: là tập hợp các mối quan hệgiống nhaugiống nhau.
- 16 -
Lược đồ ER
Là đồ thị biểu diễn các tập thực thể, thuộc tính vàmối quan hệ
Đỉ hĐỉnh:Tên tập thực thể Tập thực thể
Tên thuộc tính Thuộc tính
Tên quan hệ Quan hệ
Cung là đường nối giữa: (i) tập thực thể vàố ểthuộc tính; (ii) mối quan hệ và tập thực thể.
- 17 -
Ví dụ về lược đồ ER
Kiểu liên kết
- 18 -
Ví dụ về lược đồ ER
Thể hiện liên kết
- 19 -
Thể hiện của lược đồ ER
Một CSDL được mô tả bởi lược đồ ER sẽ chứađựng những dữ liệu cụ thể gọi là thể hiện CSDL
Mỗi tậ th thể ẽ ó tậ h hữ h áMỗi tập thực thể sẽ có tập hợp hữa hạn cácthực thể: VD: Tập thực thể NHANVIEN có cácthực thể như NV1, NV2, …, NVnthực thể như NV1, NV2, …, NVnMỗi thực thể sẽ có một giá trị cụ thể tại mỗithuộc tính
NV1 TENNV “T i t” NS “01/01/1993”NV1: TENNV=“Triet”, NS=“01/01/1993”NV2: TENNV = “Hoang”, NS=“02/09/1993”
Chú ý:Không lưu trữ lược đồ ER trong CSDLLược đồ ER chỉ giúp ta thiết kế CSDL trước khi
- 20 -
Lược đồ ER chỉ giúp ta thiết kế CSDL trước khichuyển các quan hệ và dữ liệu xuống mức vậtlý
Ràng buộc trên kiểu liên kếtể ố ểThể hiện CSDL còn chứa các mối quan hệ cụ thểCho mối quan hệ R kết nối n tập thực thể E1,E2 EE2, …, En.Thể hiện của R là tập hữu hạn các danh sách(e1, e2, …, en)Trong đó ei là các giá trị được chọn từ các tậpthực thể Ei.
Xét mối quan hệNHANVIEN PHONGBANLam_viec
NHANVIEN PHONGBAN
Tùng Nghiên cứu
- 21 -
T ng g
Dũng Điều hành
Hoàng Quản lý
Ràng buộc trên kiểu liên kết
Xét mối quan hệ nhị phân R giữa 2 tập thực thể Avà B, ràng buộc liên kết bao gồm
A BQuan_hệ1 1
A BQuan_hệ1 n
A BQuan_hện 1
A BQuan_hện n
- 22 -
Ràng buộc trên kiểu liên kết
(min,max) chỉ định mội thực thể tham giaít nhất và nhiều nhất vào thể hiện của R
e E∈
E FQuan_hệ(min,max) (min,max)
(0,1) – không hoặc 1(1,1) – duy nhất 1(0,n) – không hoặc nhiều(1 n) một hoặc nhiều(1,n) – một hoặc nhiều
- 23 -
Ràng buộc trên kiểu liên kết – Ví dụ
Một phòng ban có nhiều nhân viên
NV PBLam viec(n,1)
Một nhân viên chỉ thuộc 1 phòng ban
NV PBLam_viec
(1 1)
Một nhân viên có thể được phân công vào nhiều đề
NV PBLam_viec(1,1)
Một nhân viên có thể được phân công vào nhiều đềán hoặc không được phân công vào đề án nào.
NV DAphan cong(0,n)
Một nhân viên có thể là trưởng phòng của 1 phòng ban nào đó
NV DAphan_cong
- 24 -
p ò g ba ào đóNV PBLa_truog_p
hong
(0,1)
Ràng buộc trên kiểu liên kết – Ví dụ
Một loại thực thể có thể tham gia nhiều lần vàomột quan hệ với nhiều vai trò khác nhau.
Là người quản lýNV Quan_ly
(0,1)
Là người quản lý
Được quản lý bởi(0,n)
- 25 -
Thuộc tính trên mối quan hệ
Thuộc tính trên mối quan hệ mô tả tính chất chomối quan hệ đó.
Thuộc tính này không thể gắn liền với nhữngthực thể tham gia vào mối quan hệ.g
(1 ) (0 )NHANVIEN DUANLam_viec(1,n) (0,n)
THGIAN
- 26 -
Thuộc tính khóa
Các thực thể trong tập thực thể cần phải đượcphân biệt
Khóa K của tập thực thể E là một hay nhiều thuộctính sao cho
Nếu lấy ra 2 thực thể bất kỳ e1 và e2 trong E,Thì e1 và e2 không thể có các giá trị giốngnhau tại các thuộc tính trong Knhau tại các thuộc tính trong K.
Chú ýMỗi tập thực thể phải có 1 khóaMỗi tập thực thể phải có 1 khóaMỗi khóa có thể có 1 hay nhiều thuộc tínhCó thể có nhiều khóa trong 1 tập thực thể, ta
- 27 -
sẽ chọn ra 1 khóa làm khóa chính cho tậpthực thể đó.
Ví dụ thuộc tính khóaNS LUONGLUONG
DCHI
HONV
MANV MAPB
NHANVIEN PHONGBAN
TENNVTENPBLam_vi
ec
GT La_trg_phong
Phu_trach
DUANDDIEM
Phan cong
ach
DUAN
TEN
MADA
Phan_cong
- 28 -
MADA
Nội dung chi tiết
Quá trình thiết kế CSDL
Mô hình thực thể liên kết (ER)
Các bước xây dựng ER
íVí dụ
- 29 -
Các bước xây dựng ER
Xác định tập thực thể
ốXác đinh mối quan hệ
ắXác định thuộc tính vào gắn thuộc tính cho tậpthực thể và mối quan hệ.
Quyết định thuộc tính khóa
ế ốQuyết định (min, max) cho mối quan hệ.
- 30 -
Quy tắc xây dựng
Chính xác
Tránh trùng lặp
Dễ hiểu
Chọn đúng mối quan hệ
Chọn đúng kiểu thuộc tính
- 31 -
Nội dung chi tiết
Quá trình thiết kế CSDL
Mô hình thực thể liên kết (ER)
Xây dựng ER
íVí dụ
- 32 -
Ví dụ ‘Quản lý đề án công ty’
CSDL đề án công ty theo dõi các thông tin liên quanđến nhân viên, phòng ban và đề án
Cô t ó hiề hò b ỗi hò b ó tê dCông ty có nhiều phòng ban, mỗi phòng ban có tên duynhất, mã phòng ban duy nhất, mội trưởng phòng, và ngàynhậm chức. Mỗi phòng ban có thể ở nhiều địa điểm kháchnhau.Đề án có tên duy nhất, mã duy nhất, do một phòng banchủ trì và được triển khai ở 1 địa điểm.
ố ỉNhân viên có mã số, tên, địa chỉ, ngày sinh, giới tính vàlương. Mỗi nhân viên làm việc ở 1 phòng ban, tham giavào các đề án với số giờ làm việc khác nhau, mỗi nhân
ề ếviên đều có một người quản lý trực tiếp.Một nhân viên có thể có những người con được hưởngbảo hiểm theo nhân viên. Mỗi người con của nhân viêncó tên, giới tính, ngày sinh
- 33 -
Ví dụ
- 34 -
Ví dụ
- 35 -
Bài tập 1 – ER cho CSDL “TRƯỜNG”Trường được chia thành các trường con: Trường KHTN, KHXH, Công nghệ,…Mỗi trường có một hiệu trưởng quản lý. Mỗi hiệu trưởng quản lý một trườngMỗi trường có nhiều khoa. (Ví dụ: KHTN có các khoa Toán, Lý, Hóa). Mỗi khoachỉ thuộc về một trường Thông tin về khoa gồm mã khoa tên khoa địa chỉ sốchỉ thuộc về một trường. Thông tin về khoa gồm mã khoa, tên khoa, địa chỉ, sốđiện thoại, tên trường.Mỗi khoa cung cấp nhiều môn học. Mỗi môn học gồm có: Tên, mã, số đơn vị họctrình, trình độ, tên khoa.ỗ ể ề ầ ỗ ầ ằMỗi môn học có thể có nhiều học phần. Mỗi học phần được lưu trữ bằng các
thông tin: Mã học phần, tên môn học, tên giáo viên dạy, học kỳ.Mỗi khoa có nhiều giáo viên làm việc, nhưng mỗi giáo viên chỉ làm việc cho mộtkhoa Mỗi khoa có 1 chủ nhiệm khoa và đó là 1 giáo viênkhoa. Mỗi khoa có 1 chủ nhiệm khoa, và đó là 1 giáo viên.Mỗi giáo viên có thể dạy nhiều nhất là 4 học phần và cũng có thể không dạy họcphần nào.Mỗi sinh viên phải học nhiều học phần.Mỗi kh ó hiề i h iê ỗi i h iê hỉ th ộ ề ột kh Thô ti ềMỗi khoa có nhiều sinh viên, mỗi sinh viên chỉ thuộc về một khoa. Thông tin vềmỗi sinh viên gồm: mã sinh viên, họ tên, địa chỉ, ngày sinh, giới tính, lớp, tênkhoa, và chế độ đào tạo.Mỗi sinh viên có một người giám sát (giáo viên chủ nhiệm), người đó là một giáoộ g g (g ệ ), g ộ gviên.Sau mỗi học kỳ sẽ có một danh sách điểm để phân loại. Nó gồm các thông tin:mã sinh viên, mã học phần, điểm bằng chữ, điểm bằng số. - 36 -
Bài tập 2 – ER cho CSDL “THƯ VIỆN”
Thư viện được chia thành các nhánh. Thông tin về mỗi nhánhgồm có Mã nhánh, tên nhánh và địa chỉ.Mỗi cuốn sách trong thư viện có các thông tin về mã sách, têng ệ gsách, nhà xuất bản và tác giả.Mỗi tác giả có thể viết nhiều cuốn sách. Một cuốn sách có thể cónhiều tác giả tham gia viết.g gMột nhà xuất bản xuất bản nhiều cuốn sách. Một cuốn sách domột nhà xuất bản xuất bản. Thông tin về nhà xuất bản gồm cóTên, địa chỉ, số điện thoại.Tên, địa chỉ, số điện thoại.Một cuốn sách có thể có nhiều bản sao được lưu trữ tại cácnhánh. Thông tin về bản sao sách gồm Mã sách, số các bản sao.Thư viên có những người mượn sách Thông tin về những ngườiThư viên có những người mượn sách. Thông tin về những ngườimượn sách gồm có: số thẻ, họ tên, địa chỉ và số điện thoại.Sách được cho những người mượn mượn tại các nhánh. Thôngtin về một lần mượn gồm có ngày mượn và ngày trảtin về một lần mượn gồm có ngày mượn và ngày trả.
- 37 -
Biến đổi từ mô hình ER sang mô hìnhquan hệquan hệ
Các quy tắc biến đổi
ể ồ
Mô hình E-R Mô hình CSDL Quan hệ
Một tập thực thể
Mỗi thuộc tính
Một lược đồ quan hệ
Một thuộc tínhMỗi thuộc tính
Mỗi thuộc tính
Một thuộc tính
Khóa chínhộnhận diện
Mỗi mối kết hợp Khóa ngoại/LĐ quan hệ mớiố
- 38 -
(trong mối quan hệ 1-n)
Ghi chú: Chỉ áp dụng cho mối kết hợp 2 ngôi.
Ví dụ 1 – Mối kết hợp 1-1
NGƯỜI LÁI XE BẰNG LÁIMã NLXTênĐịa chỉNgày sinh
Mã BLLoại BLNgày hết hạn
Sở hữu
Ngày sinh1 1
(1,1)(1,1)
Chuyển khóa chính từquan hệ 1 sang quan hệ 2 hoặc ngược lạihoặc ngược lại
NGƯỜI LÁI XE (mã NLX tên địa chỉ ngày sinh)NGƯỜI LÁI XE (mã NLX, tên, địa chỉ, ngày sinh)BẰNG LÁI (mãBL, loại BL, ngày hết hạn, mãNLX)hoặcNGƯỜI LÁI XE (mã NLX tên địa chỉ ngày sinh mãBL)
- 39 -
NGƯỜI LÁI XE (mã NLX, tên, địa chỉ, ngày sinh, mãBL)BẰNG LÁI (mãBL, loại BL, ngày hết hạn)
Ví dụ 2 – Mối kết hợp 1-M
HỌCVIÊN MÔNHỌCMã học viênTênĐịa chỉNgày sinh
Mã môn họcTên môn họcThời lượng
Ghi danh
Ngày sinhSố ĐTNgày nhập học
M 1
Chuyển khóa chính bênmột sang bên nhiều
HỌCVIÊN (mã học viên Tên địa chỉ ngày sinh số ĐTHỌCVIÊN (mã học viên, Tên, địa chỉ, ngày sinh, số ĐT, ngày nhập học, mã môn học)
MÔN HỌC (Mã môn học, tên môn học, thời lượng)
- 40 -
Ví dụ 3 – Mối kết hợp M-N
HỌCVIÊN MÔNHỌCMã học viênTênĐịa chỉNgày sinh
Mã môn họcTên môn họcThời lượng
Ngày nhập học
Ghi danh
Ngày sinhSố ĐT M N
g y
Tạo một quan hệ mới
HỌCVIÊN (mã học viên Tên địa chỉ ngày sinh số ĐT)HỌCVIÊN (mã học viên, Tên, địa chỉ, ngày sinh, số ĐT)MÔN HỌC (Mã môn học, tên môn học, thời lượng)PHIẾU GHI DANH (mã học viên, mã môn học, ngày nhập học)
- 41 -
Bài tập
ồGIÁOVIÊN HỒSƠGD
Mã GVHọ tênĐịa chỉSố ĐT
Mã hồ sơNgàyCông việcĐề tài
Có
Số ĐTBằng cấp
Đề tàiVị trí1 1
- 42 -
Bài tập
THẺTV PHIẾUMƯỢNMã ĐGHọ tênNgày sinhĐịa chỉ
Số PMNgàymượn
Có
Địa chỉNghề nghiệp 1 M
- 43 -
Bài tập
TÁCGIẢ TỰASÁCHMã TGHọ tênNgày sinhĐịa chỉ
Mã sáchLoại sáchNăm XBNhà XB
Sáng tác
Địa chỉ Nhà XBSố trangSố tập
M N
- 44 -
Bài tập
Một trường CĐ có nhu cầu tin học hóa công tác quản lý củamình.Trường có nhiều khoa Mỗi khoa có thông tin mã khoa tênTrường có nhiều khoa. Mỗi khoa có thông tin mã khoa, tênkhóa.Mỗi khoa có nhiều lớp học. Thông tin về lớp học: mã lớp,tên lớp sĩ sốtên lớp, sĩ số.Mỗi sinh viên khi nhập học được xếp vào một lớp và thuộclớp này trong suốt khóa học. Thông tin về sinh viên gồm:mã SV họ tên ngày sinh giới tính địa chỉmã SV, họ tên, ngày sinh, giới tính, địa chỉ.Sinh viên học nhiều môn học. Kết thúc mỗi môn học, sinhviên có một điểm thi. Kết thúc khóa học, sinh viên có mộtđiểm tốt nghiệp Môn học có thông tin: mã môn tên mônđiểm tốt nghiệp. Môn học có thông tin: mã môn, tên môn,số tín chỉ.Mỗi sinh viên có một thẻ thư viên. Và một thẻ thư viện chỉthuộc về một sinh viên Thông tin thẻ thư viện: số thẻthuộc về một sinh viên. Thông tin thẻ thư viện: số thẻ,ngày cấp, ngày hết hạn.
- 45 -
Mã khoaTên khoa
Mã mônTên mônSố tín chỉ
Khoa Môn họcMã SVHọ tên1
MọNgày sinhGiới tínhĐịa chỉĐiểmTN
củaHọc
NM
LớpSinh viênMã lớp
Tên lớp
ĐiểmTNM
1Tên lớpSĩ số có
1M
1
1
Thẻ thư viện
ố
Thuộc1
Số thẻNgày cấpNgày hết hạn
Bài tập
B1: Chuyển các tập thực thể thành quan hệKHOA (mã khoa, tên khoa)LỚP (mã lớp tên lớp sĩ số)LỚP (mã lớp, tên lớp, sĩ số)SINH VIÊN(mã sinh viên, họ tên, giới tính, địa chỉ,
ngày sinh, điểm TN)MÔN HỌC (mã môn tên môn số tín chỉ)MÔN HỌC (mã môn, tên môn, số tín chỉ)THẺTHƯVIỆN(số thẻ, ngày cấp, ngày hết hạn
B2: Chuyển các mối kết hợpB2: Chuyển các mối kết hợpMối kết hợp KHOA-LỚP chuyển thành khóa ngoại Mã
khoa trong quan hệ LỚP.ố ế Ớ S ểMối kết hợp LỚP-SINHVIEN chuyển thành khóa ngoạimã lớp trong SINHVIEN
Mối kết hợp SINHVIEN-THẺ THƯ ViỆN chuyển thànhẺ
- 47 -
khóa ngoại Mã sinh viên trong quan hệ THẺ THƯ ViỆNMối kết hợp SINHVIEN-MÔN HỌC chuyển thành mối
quan hệ mới HỌC (Mã sinh viên, mã môn, điểm thi)
Lược đồ cơ sở dữ liệu quan hệ
KHOA (mã khoa, tên khoa)LỚP (mã lớp, tên lớp, sĩ số, mã khoa)SINHVIÊN ( ã i h iê h tê iới tí h đị hỉSINHVIÊN (mã sinh viên, họ tên, giới tính, địa chỉ,
ngày sinh, điểm TN, mã lớp)
MÔN HỌC (mã môn, tên môn, số tín chỉ)HOC (mã sinh viên, mã môn, điểm thi)THẺ THƯ ViỆN ( ố thẻ à ấ à hết hTHẺ THƯ ViỆN (số thẻ, ngày cấp, ngày hết hạn,
mã sinh viên)
- 48 -
Nhận xét
Mối kết hợp giữa các tập thực thể trong mô hìnhE-R được chuyển thành khóa ngoài trong môhì h CSDL hệhình CSDL quan hệ.Như vậy, trong mô hình quan hệ, các quan hệliên hệ với nhau nhờ có chung một hay một sốliên hệ với nhau nhờ có chung một hay một sốthuộc tínhCó 2 loại mối quan hệ trong mô hình quan hệ: 1-1à 1 Mvà 1-M
- 49 -