Về kiÁn thức: - Trình bày đ°ÿc các khái niám và vai trò của c¢ sở dÿ liáu; - Trình bày đ°ÿc kiÁn thức về mô hình thāc thể - liên kÁt, mô hình quan há và các chuyển từ mô hình thāc thể -
Trang 1Bà XÂY DĀNG
TR¯ÞNG CAO ĐẲNG XÂY DĀNG Sà 1
GIÁO TRÌNH MÔN HàC: C¡ Sà Dþ LIÞU
TRÌNH Đà: CAO ĐÀNG
Ban hành kèm theo Quyết định số: 368ĐT/QĐ-CĐXD1 ngày 10 tháng 8 năm 2021 của Hißu
trưáng Trưßng Cao đẳng Xây dựng số 1
Trang 3LÞI NÓI ĐÀU
Giáo trình Cơ sở dữ liệu được biên soạn nhằm phục vụ cho giảng dạy và học tập cho
trình độ Cao đẳng ngành công nghß thông tin á trưßng Cao đẳng Xây dựng số 1 C¡ Sà Dþ LIÞU là môn học c¢ sá ngành nhằm cung cấp các kiến thức về nhÿng kiến thức c¢ bản về c¢ sá dÿ lißu, tạo và quản lý c¢ sá dÿ lißu trên phần mềm SQL
Giáo trình C¡ Sà Dþ LIÞU do Ths Lê Thị Lư¢ng làm chủ biên soạn Giáo trình này được viết theo đề cư¢ng môn học C¢ sá dÿ lißu Ngoài ra giáo trình còn bổ sung thêm một số kiến thức mà trong các giáo trình trước chưa đề cập tới
Nội dung gồm 03 chư¢ng Chư¢ng 1: Tổng quan về c¢ sá dÿ lißu Chư¢ng 2: Các mô hình dÿ lißu Chư¢ng 3: Lý thuyết thiết kế CSDL quan hß Trong quá trình biên soạn, nhóm giảng viên Bộ môn Tin học c¢ sá của Trưßng Cao đẳng Xây dựng Số 1 - Bộ Xây dựng, đã được sự động viên quan tâm và góp ý của các đồng chí lãnh đạo, các đồng nghißp trong và ngoài trưßng
Mặc dù có nhiều cố gắng, nhưng trong quá trình biên soạn, biên tập và in ấn khó tránh khỏi nhÿng thiếu sót Chúng tôi xin được lượng thứ và tiếp thu nhÿng ý kiến đóng góp
Trân trọng cảm ¢n!
Hà Nái, ngày&&tháng&&năm&&&
Ths Lê Thá L°¢ng
Trang 4CH¯¡NG 3: LÝ THUY¾T THI¾T K¾ CSDL QUAN HÞ 36
3.1 Phā thuác hàm của mô hình quan há 36
3.1.1 Đánh nghĩa phā thuác hàm 36
3.1.2Các tính chất của l°ÿc đồ quan há 37
3.1.3L°ÿc đồ quan há 37
3 2 Bao đóng của mô hình quan há 37
3 2.1 Bao đóng của tÁp thuác tính 37
3.2.2 Bao đóng của tÁp phā thuác hàm 39
3.3 Khóa và siêu khóa của l°ÿc đồ quan há 40
3.3.1 Đánh nghĩa 40
3.3.2 Tính chất 41
3.4 Các dạng chuẩn (Normal Form) 42
3.4.1 Dạng chuẩn 1 (1NF – First Normal Form) 42
3.4.2 Dạng chuẩn 2 (2NF – Secord Normal Form) 43
3.4.3 Dạng chuẩn 3 (3NF - Third Normal Form) 44
3.4.4 Dạng chuẩn BCNF ( Boyce - Codd Normal Form) 45
3.4.5 Tách các l°ợc đß quan hß 45
Trang 5CH¯¡NG TRÌNH MÔN HàC Tên môn hác: C¡ Sà Dþ LIÞU Mã môn hác: MH12
Thßi gian thāc hißn môn hác: 75 giá; (Lý thuyÁt: 15 giá; Thāc hành, thí nghiám, thảo
luÁn, bài tÁp: 57 giá; Kiểm tra 03 giá)
(Trong đó: Tổng số giß giảng dạy và học tập trực tuyến: 30 giß)
I Vß trí, tính ch¿t của môn hác:
- Vá trí: + Môn hãc đ°ÿc bố trí ở kỳ hãc thứ 02 + Môn hãc tiên quyÁt: Không
- Tính chất: là môn hãc c¢ sở ngành cung cấp các kiÁn thức c¢ bản về c¢ sở dÿ liáu, quản lý dÿ liáu, khai thác dÿ liáu, thiÁt kÁ c¢ sở dÿ liáu
II Mục tiêu của môn hác:
1 Về kiÁn thức: - Trình bày đ°ÿc các khái niám và vai trò của c¢ sở dÿ liáu; - Trình bày đ°ÿc kiÁn thức về mô hình thāc thể - liên kÁt, mô hình quan há và các chuyển từ mô hình thāc thể - liên kÁt sang mô hình CSDL quan há;
- Trình bày đ°ÿc kiÁn thức về thiÁt kÁ CSDL quan há: phā thuác hàm, bao đóng, khóa, siêu khóa và các dạng chuẩn của l°ÿc đồ quan há
2 Về kỹ năng: - Giải đ°ÿc các bài toán b¿ng ngôn ngÿ đại số quan há; - ThiÁt kÁ đ°ÿc mát c¢ sở dÿ liáu theo các dạng chuẩn hóa 3 Về năng lāc tā chủ và trách nhiám: Rèn luyán lòng yêu nghề, t° thÁ tác phong công nghiáp, tính kiên trì, sáng tạo trong công viác, có khả năng làm viác đác lÁp và biÁt kÁt hÿp nhóm
Trang 7CH¯¡NG 1: TàNG QUAN VÀ C¡ Sà Dþ LIÞU 1 Vai trò của c¢ sá dÿ lißu
C¢ sở dÿ liáu (database) là mát há thống các thông tin có cấu trúc đ°ÿc l°u trÿ trên các
thiÁt bá l°u trÿ thứ cấp (băng từ, đĩa từ&) nh¿m thoả mãn yêu cầu khai thác thông tin đồng thái của nhiều ng°ái sử dāng hay nhiều ch°¢ng trình ứng dāng vßi nhiều māc đích khác nhau
¯u điểm của CSDL:
• Giảm sā trùng lắp thông tin xuống mức thấp nhất và do đó bảo đảm đ°ÿc tính nhất quán và toàn vẹn dÿ liáu
• Dÿ liáu có thể đ°ÿc truy xuất theo nhiều cách khác nhau • Khả năng chia xẻ thông tin cho nhiều ng°ái sử dāng và nhiều ứng dāng khác nhau Để đạt đ°ÿc nhÿng °u điểm trên CSDL đÁt ra nhÿng vấn đề cần giải quyÁt, đó là:
• Tính chủ quyền của dÿ liáu Do sā chia xẻ của CSDL nên tính chủ quyền của dÿ liáu có thể bá lu mái và làm má nhạt tinh thần trách nhiám, đ°ÿc thể hián trên vấn đề an toàn dÿ liáu, khả năng biểu dißn các mối liên há ngÿ nghĩa của dÿ liáu và tính chính xác của dÿ liáu Nghĩa là ng°ái khai thác CSDL phải có nghĩa vā cÁp nhÁt các thông tin mßi nhất của CSDL
• Tính bảo mÁt và quyền khai thác thông tin của ng°ái sử dāng (NSD) Do có nhiều ng°ái cùng khai thác CSDL mát cách đồng nên cần phải có mát c¢ chÁ bảo mÁt và phân quyền khai thác CSDL
• Tranh chấp dÿ liáu Nhiều ng°ái đ°ÿc phép truy cÁp vào cùng mát tài nguyên dÿ liáu (data source) của CSDL vßi nhÿng māc đích khác nhau nh° xem, thêm, xóa, sửa dÿ liáu Nh° vÁy cần phải có c¢ chÁ °u tiên truy nhÁp dÿ liáu cũng nh° c¢ chÁ giải quyÁt tình trạnh khoá chÁt (DeadLock) trong quá trình khai thác cạnh tranh
2 Một số khái nißm c¢ bản
Trong c¢ sở dÿ liáu quan há, bảng là đối t°ÿng đ°ÿc sử dāng để tổ chức và l°u trÿ dÿ liáu Mát c¢ sở dÿ liáu bao gồm nhiều bảng và mßi bảng đ°ÿc xác đánh duy nhất bởi
Trang 8tên bảng Mát bảng bao gồm mát tÁp các dòng và các cát: mßi mát dòng trong bảng biểu dißn cho mát thāc thể (mßi mát dòng trong bảng HOCVIEN t°¢ng ứng vßi mát Hãc viên); và mßi mát cát biểu dißn cho mát tính chất của thāc thể (chÁng hạn cát
NGAYSINH trong bảng HOCVIEN biểu dißn cho ngày sinh của các hãc viên đ°ÿc l°u trÿ trong bảng)
Nh° vÁy, liên quan đÁn mßi mát bảng bao gồm các yÁu tố sau:
• Tên của bÁng: đ°ÿc sử dāng để xác đánh duy nhất mßi bảng trong c¢ sở dÿ
liáu
• C¿u trúc của bÁng: TÁp các cát trong bảng Mßi mát cát trong bảng đ°ÿc xác
đánh bởi mát tên cột và phải có mát kiểu dÿ liáu nào đó (chÁng hạn cát
NGAYSINH trong bảng HOCVIEN có kiểu là SMALLTIME) Kiểu dÿ liáu của mßi cát qui đánh giá trá dÿ liáu có thể đ°ÿc chấp nhÁn trên cát đó
• Dÿ lißu của bÁng: TÁp các dòng (bản ghi) hián có trong bảng
- Khoá của bảng
Trong mát c¢ sở dÿ liáu đ°ÿc thiÁt kÁ tốt, mßi mát bảng phải có mát hoÁc mát tÁp các cát mà giá trá dÿ liáu của nó xác đánh duy nhất mát dòng trong mát tÁp các dòng của bảng TÁp mát hoÁc nhiều cát có tính chất này đ°ÿc gãi là khoá của bảng
Viác chãn khoá của bảng có vai trò quan trãng trong viác thiÁt kÁ và cài đÁt các c¢ sở dÿ liáu quan há Các dòng dÿ liáu trong mát bảng phải có giá trá khác nhau trên khoá Bảng MONHOC trong hình d°ßi đây có khoá là cát MAMH
Trang 9- Mối quan hệ và khoá ngoại
Các bảng trong mát c¢ sở dÿ liáu không tồn tại đác lÁp mà có mối quan há mÁt
thiÁt vßi nhau về mÁt dÿ liáu Mối quan há này đ°ÿc thể hián thông qua ràng buác giá trị
dÿ lißu xuất hißn á bảng này phải có xuất hißn trước trong một bảng khác Mối quan há
giÿa các bảng trong c¢ sở dÿ liáu nh¿m đàm bảo đ°ÿc tính đúng đắn và hÿp lá của dÿ liáu trong c¢ sở dÿ liáu
Hai bảng GIANGDAY và LOP có mối quan há vßi nhau Mối quan há này đòi hỏi giá trá cát MALOP của mát dòng (tức là mát lßp) trong bảng GIANGDAY phải đ°ÿc xác đánh từ cát MALOP của bảng LOP
Mối quan há giÿa các bảng trong mát c¢ sở dÿ liáu thể hián đúng mối quan há giÿa các thāc thể trong thÁ gißi thāc Mối quan há giÿa hai bảng GIANGDAY và LOP không cho phép mát MALOP nào đó tồn tại mà lại thuác vào mát MONHOC không có thÁt Khái niám khoá ngoại (Foreign Key) trong c¢ sở dÿ liáu quan há đ°ÿc sử dāng để
biểu dißn mối quan há giÿa các bảng dÿ liáu Mát hay mát tÁp các cát trong mát bảng mà giá trá của nó đ°ÿc xác đánh từ khóa chính của mát bảng khác đ°ÿc gãi là khoá ngoại Cát MALOP của bảng GIANGDAY đ°ÿc gãi là khoá ngại của bảng GIANGDAY, khoá ngoài này tham chiÁu đÁn khoá chính của bảng LOP là cát MALOP
Mô hình dÿ liáu quan há đ°ÿc Codd đề xuất năm 1970 và đÁn nay trở thành mô hình đ°ÿc sử dāng phổ biÁn trong các há quản trá c¢ sở dÿ liáu th°¢ng mại Nói mát cách đ¢n giản, mát c¢ sở dÿ liáu quan há là mát c¢ sở dÿ liáu trong đó tất cả dÿ liáu đ°ÿc tổ chức trong các bảng có mối quan há vßi nhau Mßi mát bảng bao gồm các dòng và các
Trang 10cát: mßi mát dòng đ°ÿc gãi là mát bản ghi (bá) và mßi mát cát là mát tr°áng (thuác tính)
- Ví dā: Bảng CBQL
- Ví dā 2: Bảng GVCN
- Ví dā 3: Bảng CVHT
2.3 Mô hình dữ liệu
- Mô hình dÿ lißu m¿ng (Network Data Model):
hay gãi tắt là mô hình mạng (Network Model) là mô hình đ°ÿc biểu dißn bởi mát đồ thá có h°ßng Mô hình này đ°ÿc xây dāng bởi Honeywell vào năm 1964-1965 Trong mô hình này, có 3 khái niám đ°ÿc sử dāng: m¿u tin hay bản ghi (record), loại m¿u tin (record type) và loại liên há (set type) 1.3.3 Khoá của bảng
Trang 11- Mô hình dÿ lißu phân c¿p
+ Mô hình dÿ liáu phân cấp (Hieracical Data Model), còn gãi là mô hình phân cấp (Hieracical Model), đ°ÿc thāc hián thông qua sā kÁt hÿp giÿa IBM và North American Rockwell vào khoảng năm 1965 Mô hình là mát cây, trong đó mßi nút của cây biểu dißn mát thāc thể, giÿa nút con vßi nút cha đ°ÿc liên há vßi nhau theo mát mối quan há xác đánh
+ Loại m¿u tin: giống trong mô hình dÿ liáu mạng + Loại mối liên há: kiểu liên há là phân cấp:
Trang 12Còn đ°ÿc gãi là mô hình quan há (Relational Model) do E.F.Codd đề xuất năm 1970 Nền tảng c¢ bản là khái niám lý thuyÁt tÁp hÿp trên các quan há, tức là tÁp của các bá giá trá (value tuples) Trong mô hình dÿ liáu này nhÿng khái niám đ°ÿc sử dāng là thuác tính (attribute), quan há (relation), l°ÿc đồ quan há (relation schema), bá (tuple), khóa (key) Mô hình quan há là mô hình đ°ÿc nghiên cứu nhiều nhất, và có c¢ sở lý thuyÁt vÿng chắc nhất Mô hình quan há cùng vßi mô hình dÿ liáu thāc thể kÁt hÿp đang đ°ÿc sử dāng ráng rãi nhất hián nay trong viác phân tích và thiÁt kÁ CSDL Chúng ta s¿ nghiên cứu chi tiÁt về mô hình
- Mô hình dÿ lißu thāc thể - k¿t hợp (Entity – Relationship Model)
Do Peter Pin_Shan Chen đề xuất năm 1976 Mô hình quan há-thāc thể đ°ÿc dāa trên sā nhÁn thức thÁ gißi gồm có Trang 18/109 mát s°u tÁp các đối t°ÿng căn bản, đ°ÿc gãi là các tÁp thāc thể, và các mối quan há ở giÿa các đối t°ÿng này.Trong mô hình này các khái niám đ°ÿc sử dāng là tÁp thāc thể (entity set), thāc thể (entity), thuác tính của loại thāc thể (entity attribute), khóa của loại thāc thể (entity key), loại mối kÁt hÿp (entity relationship), số ngôi của mối kÁt hÿp (relationship degree), thuác tính của mối kÁt hÿp (relationship attribute), bản số của mối kÁt hÿp (relationship cardinal) Chi tiÁt của mô hình này s¿ đ°ÿc nghiên cứu trong ch°¢ng sau 2.5 Mô hình dÿ liáu h°ßng đối t°ÿng Mô hình dÿ liáu h°ßng đối t°ÿng (Object Oriented Data Model) ra đái vào cuối nhÿng
Trang 132.4 Ki¿n trúc của một c¢ sá dÿ lißu
Các hß c¢ sá dÿ lißu tập trung
- ĐÁc tr°ng c¢ bản để phân biát kiÁn trúc mát há CSDL là cách tá chức l°u trÿ CSDL
- Vßi há CSDL tÁp trung, toàn bộ dÿ lißu đ°ợc l°u t¿i một máy hoặc một dàn máy
Nhÿng ng°ái dùng từ xa có thể truy cÁp vào CSDL thông qua các ph°¢ng tián truyền thông dÿ liáu
- Viác phân loại phā thuác vào cách tá chức khai thác, cā thể là:
+ Nhÿng ai s¿ truy cÁp vào CSDL? + Viác truy cÁp đ°ÿc thāc hián từ đâu + Các môđun của há QTCSDL đ°ÿc l°u trÿ ở đâu? - Dāa vào các tiêu chí trên ng°ái ta chia các hß CSDL tập trung thành 3 lo¿i:
+ Há CSDL cá nhân; + Há CSDL trung tâm; + Há CSDL khách - chủ
a Hß CSDL cá nhân
- Khái nißm: Há CSDL cá nhân là há CSDL có mát ng°ái dùng Thông th°áng, ng°ái
này v°a thiÁt kÁ, tạo lÁp và bảo trì CSDL, đồng thái cũng là ng°ái khai thác thông tin, tā lÁp và hiển thá các báo cáo
Trang 14- Đặc điểm:
+ Dÿ liáu đ°ÿc tÁp trung ở mát máy; + Chß mát ng°ái hoÁc mát nhóm ng°ái truy cÁp theo nguyên tắc lần l°ÿt (không có t°¢ng tranh, xung đát);
+ Toàn bá há QTCSDL đ°ÿc l°u ngay tại há thống chứa CSDL; + Viác truy cÁp vào CSDL đ°ÿc thāc hián ngay há thống chứa CSDL
- ¯u điểm và nh°ợc điểm: + ¯u điểm: Viác phát triển và sử dāng các há CSDL cá nhân khá đ¢n giản và dß dàng + Nh°ợc điểm: Tình an toàn th°áng không cao
Trang 162 Các hß CSDL phân tán
- Khái nißm CSDL phân tán
- CSDL phân tán là mát tÁp hÿp dÿ liáu có liên quan (về logic) đ°ÿc dùng chung và phân tán về mÁt vÁt lí trên mát mạng máy tính
- Mát hß QTCSDL phân tán là mát há thống phần mềm cho phép quản trá CSDL phân
tán và làm cho ng°ái sử dāng không nhÁn thấy sā phân tán về l°u trÿ dÿ liáu
- Ng°ßi dùng truy cập vào CSDL phân tán thông qua ch°¢ng trình ứng dụng Các
ch°¢ng trình ứng dāng đ°ÿc chia làm hai loại: + Ch°¢ng trình không yêu cầu dÿ liáu từ n¢i khác; + Ch°¢ng trình có yêu cầu dÿ liáu từ n¢i khác
Trang 17- Có thể chia các há CSDL phân tán thành 2 loại chính: thuần nhất và hßn hÿp
+ Hß CSDL phân tán thuÁn nh¿t: các nút trên mạng đều dùng cùng mát há QTCSDL + Hß CSDL phân tán hỗn hợp: các nút trên mạng có thể dùng các há QTCSDL khác
nhau
2.5 Phân loại các hệ cơ sở dữ liệu
Phân loại theo loại dÿ liáu: C¢ sở dÿ liáu có cấu trúc; C¢ sở dÿ liáu phi cấu trúc; C¢ sở dÿ liáu bán cấu trúc Phân loại theo hình thức l°u trÿ, mô hình tổ chức: C¢ sở dÿ liáu dạng táp; C¢ sở dÿ liáu quan há; C¢ sở dÿ liáu phân cấp Phân loại theo đÁc tính sử dāng: C¢ sở dÿ liáu kho; C¢ sở dÿ liáu ngÿ nghĩa; C¢ sở dÿ liáu hoạt đáng Phân loại theo mô hình triển khai: C¢ sở dÿ liáu tÁp trung; C¢ sở dÿ liáu phân tán; C¢ sở dÿ liáu tÁp trung có bản sao
Trang 18Câu lßnh
Thao tác dữ liệu
SELECT INSERT UPDATE DELETE TRUNCATE
Định nghĩa dữ liệu
CREATE TABLE DROP TABLE ALTER TABLE CREATE VIEW ALTER VIEW DROP VIEW CREATE INDEX DROP INDEX CREATE SCHEMA DROP SCHEMA CREATE
PROCEDURE ALTER PROCEDURE
Chức năng
Truy xuất dÿ liáu Bổ sung dÿ liáu CÁp nhÁt dÿ liáu Xoá dÿ liáu Xoá toàn bá dÿ liáu trong bảng Tạo bảng
Xoa bảng Sửa đổi bảng Tạo khung nhìn Sửa đổi khung nhìn Xoá khung nhìn Tạo chß māc Xoá chß māc Tạo l°ÿc đồ c¢ sở dÿ liáu Xoá l°ÿc đồ c¢ sở dÿ liáu Tạo thủ tāc l°u trÿ
Sửa đổi thủ tāc l°° trÿ
DROP PROCEDURE Xoá thủ tāc l°u trÿ CREATE FUNCTION Tạo hàm (do ng°ái sử dāng đánh nghĩa) Các câu lánh của SQL đều đ°ÿc bắt đầu bởi các từ lánh, là mát từ khoá cho biÁt
Trang 19FROM hocvien WHERE malop=’02ct1’ dùng để truy xuất dÿ liáu trong bảng HOCVIEN đ°ÿc bắt đầu bởi từ lánh SELECT, trong câu lánh bao gồm hai mánh đề: mánh đề FROM chß đánh tên của bảng cần truy xuất dÿ liáu và mánh đề WHERE chß đánh điều kián truy vấn dÿ liáu
Trang 20Hß tháng ki¿n thức Ch°¢ng 1 1 Yêu cÁu vÁ lý thuy¿t
1 Trình bày đ°ÿc các khái niám trong c¢ sở dÿ liáu; 2 Trình bày đ°ÿc há c¢ cở dÿ liáu;
3 Trình bày đ°ÿc các mô hình c¢ sở dÿ liáu;
2 Yêu cÁu vÁ bài tập: Xác đánh đ°ÿc các khóa 3 Hß tháng các công thức đã hác:
Tổng quan về SQL SQL là ngôn ngÿ hỏi có cấu trúc phần nào đã liên t°ởng đÁn mát công cā (ngôn
ngÿ) dùng để truy xuất dÿ liáu trong các c¢ sở dÿ liáu, cung cấp cho ng°ái dùng bao gồm:
• Đßnh nghĩa dÿ lißu: SQL cung cấp khả năng đánh nghĩa các c¢ sở dÿ liáu, các
cấu trúc l°u trÿ và tổ chức dÿ liáu cũng nh° mối quan há giÿa các thành phần dÿ liáu
• Truy xu¿t và thao tác dÿ lißu: Vßi SQL, ng°ái dùng có thể dß dàng thāc hián
các thao tác truy xuất, bổ sung, cÁp nhÁt và loại bỏ dÿ liáu trong các c¢ sở dÿ liáu
• ĐiÁu khiển truy cập: SQL có thể đ°ÿc sử dāng để cấp phát và kiểm soát các
thao tác của ng°ái sử dāng trên dÿ liáu, đảm bảo sā an toàn cho c¢ sở dÿ liáu
• ĐÁm bÁo toàn vẹn dÿ lißu: SQL đánh nghĩa các ràng buác toàn vẹn trong c¢
sở dÿ liáu nhá đó đảm bảo tính hÿp lá và chính xác của dÿ liáu tr°ßc các thao tác cÁp nhÁt cũng nh° các lßi của há thống
Vai trò của SQL
Trong hầu hÁt các há quản trá c¢ sở dÿ liáu quan há, SQL có nhÿng vai trò nh° sau:
Trang 21• SQL là ngôn ngÿ lập trình c¢ sá dÿ lißu: Các lÁp trình viên có thể nhúng các
câu lánh SQL vào trong các ngôn ngÿ lÁp trình để xây dāng nên các ch°¢ng trình ứng dāng giao tiÁp vßi c¢ sở dÿ liáu
• SQL là ngôn ngÿ quÁn trß c¢ sá dÿ lißu: Thông qua SQL, ng°ái quản trá c¢
sở dÿ liáu có thể quản lý đ°ÿc c¢ sở dÿ liáu, đánh nghĩa các cấu trúc l°u trÿ dÿ liáu, điều khiển truy cÁp c¢ sở dÿ liáu
• SQL là ngôn ngÿ cho các hß tháng khách/chủ (client/server): Trong các há
thống c¢ sở dÿ liáu khách/chủ, SQL đ°ÿc sử dāng nh° là công cā để giao tiÁp giÿa các trình ứng dāng phía máy khách vßi máy chủ c¢ sở dÿ liáu
• SQL là ngôn ngÿ truy cập dÿ lißu trên Internet: Cho đÁn nay, hầu hÁt các
máy chủ Web cũng nh° các máy chủ trên Internet sử dāng SQL vßi vai trò là ngôn ngÿ để t°¢ng tác vßi dÿ liáu trong các c¢ sở dÿ liáu
• SQL là ngôn ngÿ c¢ sá dÿ lißu phân tán: Đối vßi các há quản trá c¢ sở dÿ
liáu phân tán, mßi mát há thống sử dāng SQL để giao tiÁp vßi các há thống khác trên mạng, gởi và nhÁn các yêu cầu truy xuất dÿ liáu vßi nhau
Mô hình dữ liệu quan hệ
Mô hình dÿ liáu quan há đ°ÿc Codd đề xuất năm 1970 và đÁn nay trở thành mô hình đ°ÿc sử dāng phổ biÁn trong các há quản trá c¢ sở dÿ liáu th°¢ng mại S¢ l°ÿc về SQL
- Table: Trong c¢ sở dÿ liáu quan há, bảng là đối t°ÿng đ°ÿc sử dāng để tổ chức và l°u trÿ dÿ liáu Mát c¢ sở dÿ liáu bao gồm nhiều bảng và mßi bảng đ°ÿc xác đánh duy nhất bởi tên bảng
- Khóa: mßi mát bảng phải có mát hoÁc mát tÁp các cát mà giá trá dÿ liáu của nó xác đánh duy nhất mát dòng trong mát tÁp các dòng của bảng TÁp mát hoÁc nhiều cát có tính chất này đ°ÿc gãi là khoá của bảng
4 Các bài tập ch°¢ng 1
Cho C¢ sở dÿ liáu quản lý giảng dạy gồm có các quan há sau
Trang 22HOCVIEN (MAHV, HO, TEN, NGAYSINH, GIOITINH, NOISINH, MALOP)
Tân từ: mßi hãc viên phân biát vßi nhau b¿ng mã hãc viên, l°u trÿ hã, tên, ngày sinh, gißi
tính, n¢i sinh, thuác lßp nào
LOP (MALOP, TENLOP, LOPTRG, SISO, MAGVCN, MACVHT, MACBQL)
Tân từ: mßi lßp gồm có mã lßp, tên lßp, lßp tr°ởng của lßp, sß số lßp , mã giáo viên chủ
nhiám, mã cố vấn hãc tÁp, mã cán bá quản lý
MONHOC (MAMH, TENMH, SOTC)
Tân từ: mßi môn hãc cần l°u trÿ tên môn hãc, tên số tín chß
GIAOVIEN (MAGV, HOTEN, GIOITINH, NLV)
Tân từ: mã giáo viên để phân biát giÿa các giáo viên, cần l°u trÿ hã tên, gißi tính, năm
làm viác
GIANGDAY (MALOP, MAMH, MAGV, HOCKY, NAM)
Tân từ: mßi hãc kỳ của năm hãc s¿ phân công giảng dạy: lßp nào hãc môn gì do giáo viên
nào phā trách
Yêu cầu:
1 Xác đánh các khóa chính của từng bảng 2 Xác đánh các mối quan há giÿa các bảng
Trang 23CH¯¡NG 2: CÁC MÔ HÌNH Dþ LIÞU
Mục tiêu bài hác
Trình bày mô hình thāc thể kÁt hÿp ThiÁt kÁ thāc thể kÁt hÿp
Trình bày mô hình quan há ThiÁt kÁ mô hình quan há
Trang 24CH¯¡NG 2: CÁC MÔ HÌNH Dþ LIÞU
Nhÿng khái niám căn bản mà mô hình thāc thể kÁt hÿp dùng: thāc thể, tÁp thāc thể,
khóa, mối quan há, và thuác tính
Các khái niệm cơ bản
2.1.1 Thāc thể - Tập thāc thể
- Một thāc thể (an entity) là mát <sā vÁt= hoÁc <đối t°ÿng= mà nó tồn tại và có thể phân
biát đ°ÿc vßi các đối t°ÿng khác Ví dā nh° mát nhân viên trong mát tổ chức là mát thāc thể
- Mát tÁp thāc thể (an entity set) là mát tÁp hÿp các thāc thể cùng loại mà chúng chia sẻ cùng nhÿng tính chất hoÁc thuác tính Ví dā nh° tÁp hÿp tất cả nhÿng ng°ái mà hã là nhân viên của mát tổ chức là mát tÁp thāc thể khách hàng
- Mßi tÁp thāc thể đ°ÿc đÁt mát tên gãi, thông th°áng là danh từ Ví dā nh° KHACHHANG, HOADON,&
Ký hiáu: hình chÿ nhÁt vßi tên gãi
NHANVIEN 2.1.2 Thuộc tính
Mßi mát tÁp thāc thể có nhiều đÁc tr°ng riêng đ°ÿc gãi là các thuác tính Mßi mát thuác tính đ°ÿc đÁt mát tên, chÁng hạn nh° MaKH (mã khách hàng), HoTenKH (hã tên khách hàng)&
Trang 25(HoTen), Ðáa chß (DiaChi) là nhÿng chußi ký tā phản ánh nhÿng thông tin trên về nhân viên; Đ¢n giá là số nguyên d°¢ng,&
Có mát số loại thuác tính sau: • Thuác tính đ¢n, kÁt hÿp: Thuác tính đ¢n là thuác tính không thể chia ra thành nhÿng phần con nhỏ h¢n Còn thuác tính kÁt hÿp thì có thể chia ra thành nhÿng phần con (tức là thành nhÿng thuác tính khác) Ví dā tên nhân viên có thể cấu trúc nh° là thuác tính kÁt hÿp bao gồm tên, chÿ lót, và hã Thuác tính kÁt hÿp có thể xuất hián theo sā phân cấp Ví dā thuác tính đáa chß nhân viên có các thuác tính thành phần là số nhà, đ°áng, thành phố, tßnh
• Thuác tính rßng Mát giá rßng (null value) đ°ÿc dùng đÁn khi mát thāc thể không có giá trá đối vßi mát thuác tính Ví dā mát nhân viên nào đó không có ng°ái trong gia đình thì giá trá của thuác tính tên ng°ái trong gia đình đối vßi nhân viên đó phải là rßng Giá trá rßng cũng có thể đ°ÿc dùng để chß ra r¿ng giá trá của thuác tính là ch°a biÁt Mát giá trá ch°a biÁt có thể hoÁc là giá trá tồn tại nh°ng chúng ta không có thông tin đó, hoÁc là không biÁt đ°ÿc (không biÁt giá trá thāc sā có tồn tại hay không)
• Thuác tính suy ra Giá trá của loại thuác tính này có thể đ°ÿc suy ra từ các thuác tính hoÁc thāc thể liên há khác Ví dā tÁp thāc thể khách hàng có thuác tính số l°ÿng tài khoản vay cho biÁt bao nhiêu tài khoản vay mà khách hàng có từ ngân hàng Chúng ta có thể suy ra giá trá của thuác tính này b¿ng cách đÁm số l°ÿng các thāc thể tài khoản vay đ°ÿc kÁt hÿp vßi khách hàng Mát ví dā khác về tÁp thāc thể nhân viên có các thuác tính ngày bắt đầu, cho biÁt ngày bắt đầu làm viác tại ngân hàng của nhân viên, và thuác tính thái gian làm viác, cho biÁt tổng số giá đã làm viác của nhân viên Giá trá của thái gian làm viác có thể đ°ÿc suy ra từ giá trá của ngày bắt đầu và ngày hián thái
2.1.3 Các liên k¿t
Quan há giÿa các tÁp thāc thể đ°ÿc gãi là mối kÁt hÿp Mßi mối kÁt hÿp cũng đ°ÿc đÁt tên thể hián mối kÁt hÿp, chÁng hạn nh° mßi hóa đ¢n chß bán cho mát khách hàng, mát
Trang 26Ký hiáu là hình thoi nối vßi nhÿng thāc thể tham gia vào mối kÁt hÿp - Bản số
2.1.4 Thể hián của mát thāc thể Trong tÁp thāc thể KHACHHANG có nhiều khách hàng, ví dā nh° {KH01, Nguyßn Trãng, Vũ, 11 Nguyßn Công Trứ, 063552540} là mát khách hàng, đây đ°ÿc gãi là mát thể hián của thāc thể KHACHHANG
Xây dāng mô hình E-R a - Quy tắc:
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 b - Các b°ßc xây dāng: Liát kê, chãn lãc thông tin Xác đánh tÁp thāc thể Xác đánh mối quan há Xác đánh thuác tính và gắn thuác tính cho tÁp thāc thể và mối quan há QuyÁt đánh thuác tính khóa
V¿ biểu đồ mô hình thāc thể E-R Chuẩn hóa biểu đồ
c - Ví dā: Ví dā 1: Xây dāng mô hình E-R cho c¢ sở dÿ liáu quản lý đ¢n đÁt hàng vßi các thông tin nh° sau:
Trang 27B°ßc 1: Liát kê, chãn lãc thông tin: -Đ¢n đÁt hàng gồm nhÿng thông tin nh° sau: Số đ¢n hàng (Số ĐH)
Tên đ¢n vá đÁt hàng (Tên ĐV) Đáa chß
Đián thoại Ngày đÁt Tên hàng Mô tả Đ¢n vá tính (Đv tính) Số l°ÿng
Ng°ái đÁt hàng (Hã tên NĐ) PhiÁu giao hàng gồm nhÿng thông tin nh° sau: Số phiÁu giao hàng (Số PG)
Tên đ¢n vá đÁt hàng (Tên ĐV)