Chẳng h¿n các thußc tính của sinh viên Nguyßn Văn Thành là:mã sá sinh viên, giái tính, ngày sinh, hß khẩu th°ãng trú, láp đang theo hãc, … Trong giáo trình này, tên thußc tính đ°ợc viÁt
Trang 1U þ BAN NHÂN DÂN THÀNH PHà Hâ CHÍ MINH
TR¯âNG CAO ĐÀNG BÁCH KHOA NAM SÀI GÒN
GIÁO TRÌNH
MÔN H àC/MÔ ĐUN: C¡ Sä DĀ LIÞU NGÀNH/ NGH À: TIN HàC ĀNG DĀNG
TRÌNH ĐÞ: CAO ĐÀNG
Ban hành kèm theo Quy ết định số:409/QĐ_NSG, ngày 02 tháng 11 năm2021
c ủa Hiệu trưởng Trường Cao Đẳng Bách Khoa Nam Sài Gòn
Tp.H ß Chí Minh, năm 2021
Trang 2TUYÊN B ä BÀN QUYÀN
Tài liáu này thußc lo¿i sách giáo trình nên các nguãn thông tin có thể đ°ợc phép dùng nguyên
bÁn hoÁc trích dùng cho các mục đích về đào t¿o và tham khÁo
Mãi mục đích khác mang tính lách l¿c hoÁc sā dụng vái mục đích kinh doanh thiÁu lành m¿nh
s¿ bá nghiêm cÃm
Trang 3L âI GIàI THIÞU
Giáo trình c¢ så dă liáu này đ°ợc biên so¿n theo ch°¢ng trình đào t¿o chuyên ngành tin
hãc å bậc cao đẳng của Bß Giáo Dục Đào T¿o Giáo trình trình bày nhăng vÃn đề cát lõi nhÃt của môn c¢ så dă liáu Các bài hãc đ°ợc trình bày ngắn gãn, có nhiều ví dụ minh ho¿ Cuái mỗi ch°¢ng đều có bài tập để sinh viên luyán tập
Giáo trình này có thể giúp các sinh viên trong viác hãc môn c¢ så dă liáu å bậc cao đẳng, đ¿i hãc cũng nh° trong các kỳ thi tát nghiáp Đ¿i Hãc, Cao đẳng, trong các kỳ thi liên thông Chúng tôi mong rằng các sinh viên tą tìm hiểu tr°ác mỗi vÃn đề và kÁt hợp
vái bài giÁng trên láp của giáo viên để viác hãc môn này đ¿t hiáu quÁ Bá cục cuán sách
gãm các bài nh° sau:
- Bài 1: Tång quan
- Bài 2: ThiÁt kÁ c¢ så dă liáu
- Bài 3: Đ¿i sá quan há
- Bài 4: Phụ thußc hàm - Chuẩn hoá l°ợc đã CSDL
- Bài 5: Ngôn ngă truy vÃn SQL
Trong quá trình giÁng d¿y và biên so¿n giáo trình này, chúng tôi đã nhận đ°ợc są đßng viên của các thầy trong Ban Giám Hiáu nhà tr°ãng cũng nh° nhăng ý kiÁn của các đãng nghiáp trong khoa Công Nghá thông Tin Chúng tôi xin chân thành cÁm ¢n và hy vãng
rằng giáo trình này s¿ giúp cho viác d¿y và hãc môn c¢ så dă liáu của tr°ãng chúng ta ngày càng tát h¢n
Xin chân thành cÁm ¢n Ban Giám hiáu Tr°ãng Cao Đẳng Bách Khoa Nam Sài Gòn,
Hßi đãng khoa hãc tr°ãng, tác giÁ của nhăng tài liáu tham khÁo, các đãng nghiáp, các
b¿n sinh viên đã giúp đỡ và đóng góp rÃt nhiều ý kiÁn bå ích để nhóm tác giÁ hoàn thành
cuán sách này và xin trân trãng giái thiáu vái quý b¿n đãc
Mãi góp ý xin gāi về đáa chß: xuanhuong2561@gmail.com
Tp.Hã Chí Minh, ngày 04 tháng 07 năm 2021
Tham gia biên so¿n
1 Chủ biên: Đào Thá Xuân H°ãng
2 …………
3 …………
Trang 4M ĀC LĀC
Bài 1 TäNG QUAN 2
1.1 Giái thiáu các khái niám c¢ bÁn 2
Dă liáu 2
C¢ så dă liáu 2
1.2 Các đÁc điểm của h°áng tiÁp cận c¢ så dă liáu 3
1.3 QuÁn lý c¢ så dă liáu 3
QuÁn lý bằng File 3
QuÁn lý bằng CSDL 4
1.4 Các mô hình dă liáu 6
Mô hình m¿ng 9
Mô hình phân cÃp 10
Mô hình thąc thể kÁt hợp 11
Mô hình dă liáu quan há 14
1.5 Há quÁn trá CSDL (Data Base Management System) 16
1.6 Ng°ãi dùng liên quan đÁn CSDL 18
Bài 2 THIÀT KÀ C¡ Sä DĂ LIàU 22
2.1 Quy trình thiÁt kÁ CSDL 22
ThiÁt kÁ mức khái niám 22
ThiÁt kÁ mức Logic 23
ThiÁt kÁ mức vậy lý 23
2.2 Các thành phần dă liáu mức khái niám 23
Thąc thể và thußc tính 23
Mái kÁt hợp 24
Quan há 1-1, 1-n, n-n 24
2.3 Các thành phần dă liáu mức vật lý 26
Kiểu dă liáu 26
Khoá 27
2.4 Các thành phần dă liáu mức logic 28
2.5 Mô hình thąc thể - kÁt hợp (ERD): 31
Thąc thể - Tập thąc thể 31
Thußc tính của tập thąc thể: 31
Mái kÁt hợp: 32
BÁn sá : 32
Khóa 33
Trang 5Chuyên biát hoá /tång quát hoá 35
Bài tập: 36
2.6 Mô hình quan há 38
Các khái niám c¢ bÁn 38
Khóa của mßt quan há: 40
Ràng bußc toàn vẹn: 41
Các thao tác c¢ bÁn trên quan há 42
2.7 Chuyển mô hình thąc thể kÁt hợp (ERD) sang mô hình quan há 43
2.8 Bài tập tång quát 46
Bài tập 1: 46
Bài tập 2: 48
Bài tập 3: Phân tích và thiÁt kÁ CSDL cho viác quÁn lý viác d¿y hãc gãm: Phân tích mô hình ERD, chuyển mô hình ERD sang mô hình quan há 48
Bài tập 4: Phân tích và thiÁt kÁ CSDL cho viác viác quÁn lý gara sāa xe: Phân tích mô hình ERD, chuyển mô hình ERD sang mô hình quan há 49
Bài 3 Đ¾I Sà QUAN Hà 50
3.1 Giái thiáu 50
3.2 Phép toán tập hợp 50
Phép toán hợp (Union) 50
Phép giao 51
Phép trÿ 51
Phép tích Cartesian 51
3.3 Các thao tác trên quan há 52
Phép chiÁu 53
Phép chãn 53
Phép gán (assignment) 53
Phép đåi tên: 53
Phép kÁt nái 54
Bài tập 54
Bài 4 Phụ thußc hàm - Chuẩn hoá l°ợc đã CSDL 57
4.1 Phụ thußc hàm 57
Khái niám phụ thußc hàm 57
Há tiên đề Armstrong 58
Bao đóng tập thußc tính 58
Bao đóng tập phụ thußc hàm 59
4.2 Phủ tái thiểu của mßt tập phụ thußc hàm 59
Trang 6Phủ tái thiểu của tập phụ thußc hàm 60
4.3 Khoá : 62
Đánh nghĩa: 62
Thuật toán tìm khóa 62
Bài tập 64
4.4 Chuẩn hoá 65
Đánh nghĩa 65
Các bÃt th°ãng khi cập nhật dă liáu 69
Są cần thiÁt phÁi chuẩn hoá CSDL 70
Quy trình chuẩn hoá CSDL 71
4.5 Bài tập 81
Bài tập 1 81
Bài tập 2 81
Bài tập 3: 81
Bài tập 4: 81
Bài 5 Ngôn ngă truy vÃn SQL 82
5.1 Giái thiáu 82
5.2 Truy vÃn dă liáu 82
Truy vÃn đ¢n giÁn 82
Truy vÃn lãng 84
Truy vÃn sā dụng hàm, gom nhóm 86
5.3 Bài tập 86
Bài tập 1: 86
Bài tập 2: 87
Bài tập 3: 88
Trang 7GIÁO TRÌNH MÔN C¡ Sä DĀ LIÞU
Tên môn hác/mô đun: C¢ Så Dā Lißu
Mã môn hác/mô đun: MH10
Vß trí, tính chất, ý nghĩa và vai trò cÿa môn hác/mô đun:
- Vß trí: Môn C¢ Så Dă Liáu đ°ợc hãc t¿i hãc kỳ 2, sau khi đã hãc xong môn Tin hãc
- Tính chất: Môn c¢ så dă liáu h°áng dẫn phân tích dă liáu để lÃy dă liáu lập trình ứng
dụng trong môi tr°ãng Windows, là môn hãc bắt bußc trong ch°¢ng trình ngành Tin
hãc ứng dụng há cao đẳng
- Ý nghĩa và vai trò cÿa môn hác/mô đun:
Ý nghĩa: Môn C¢ Så Dă Liáu là mßt trong nhăng nßi dung đ°ợc sā dụng trong
phân tích và thiÁt kÁ C¢ Så Dă Liáu để phục vụ cho viác viÁt ch°¢ng trình ứng
+ Phân biát đ°ợc các d¿ng c¢ så dă liáu;
+ Tính đ°ợc các phép toán trên đ¿i sá quan há;
+ Vận dụng chuẩn hóa các d¿ng c¢ så dă liáu;
+ Vận dụng kiÁn thức vào các môn hãc phân tích, thiÁt kÁ và cài đÁt c¢ så dă liáu
tiÁp theo
- VÁ kỹ năng:
Khái quát hóa đ°ợc mô hình dă liáu thąc tÁ;
Xây dąng c¢ så dă liáu trên ngôn ngă lập trình;
Phát triển kỹ năng làm viác nhóm
- 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
Trang 8Bài 1 TàNG QUAN
Mục tiêu:
- Trình bày đ°ợc mßt sá khái niám c¢ bÁn về mô hình quan há;
- Khái quát hóa mô hình dă liáu quan há;
- Chuyển đåi tÿ mô hình thąc thể sang mô hình quan há
mục đích quÁn lý
C¡ sở dữ liệu
C¢ så dă liáu 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ông tin thứ cÃp (nh° băng tÿ, đĩa tÿ ) để có thể thßa 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
Hình 1-1 Sơ đồ tổng quát về một cơ sở dữ liệu
¯u điểm của c¡ sở dữ liệu
- 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
- ĐÁm bÁo dă liáu có thể truy xuÃt theo nhiều cách khác nhau
- KhÁ năng chia sẻ thông tin cho nhiều ng°ãi sā dụng
Trang 9 Những vấn đề mà CSDL cần phải giải quyết
- Tính chủ quyền của dă liáu:Tính chủ quyền của dă liáu đ°ợc thể hián å ph°¢ng diá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 Điều này có nghĩa là ng°ãi khai thác CSDL phÁi có nhiám 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: Do có nhiều ng°ãi đ°ợc phép khai thác dă liáu mßt cách đãng thãi, nên cần thiÁt phÁi có mßt c¢ chÁ bÁo mật
và phân quyền h¿n khai thác CSDL Các há điều hành nhiều ng°ãi sā dụng hay há điều hành m¿ng cục bß đều có cung cÃp c¢ chÁ này
- Tranh chÃp dă liáu: Nhiều ng°ãi đ°ợc phép truy nhập cùng mßt lúc vào tài nguyên dă
liáu của CSDL vái nhăng mục đích khác nhau, do đó cần thiÁt phÁi có mßt c¢ chÁ °u tiên khi truy nhập dă liáu C¢ chÁ °u tiên có thể đ°ợc thąc hián bằng viác cÃp quyền
°u tiên cho tÿng ng°ãi khai thác
- ĐÁm bÁo an toàn dă liáu khi có są cá: Viác quÁn lý dă liáu tập trung có thể làm tăng
khÁ năng mÃt mát hoÁc sai lách thông tin khi có są cá nh° mÃt đián đßt xuÃt, hay mßt
phần đĩa l°u tră CSDL bá h°,… mßt sá há điều hành m¿ng có cung cÃp dách vụ sao l°u Ánh đĩa cứng, tą đßng kiểm tra và khắc phục lỗi khi có są cá Tuy nhiên, bên c¿nh
dách vụ của há điều hành, để đÁm bÁo CSDL luôn ån đánh, mßt CSDL nhÃt thiÁt phÁi
có mßt c¢ chÁ khôi phục dă liáu khi có các są cá bÃt ngã xÁy ra
1.2 Các đặc điểm của h°ớng tiếp cận c¡ sở dữ liệu
Mô hình dă liáu là są trÿu t°ợng hóa môi tr°ãng thąc, nó là są biểu dißn dă liáu å mức quan niám Mỗi lo¿i mô hình dă liêu đÁc tr°ng cho mßt cách tiÁp cận dă liáu khác nhau của nhăng nhà phân tích - thiÁt kÁ CSDL, mỗi lo¿i đều có các °u điểm và mÁt
h¿n chÁ của nó nh°ng vẫn có nhăng mô hình dă liáu nåi trßi và đ°ợc nhiều ng°ãi quan tâm nghiên cứu Cho đÁn nay đang tãn t¿i 5 lo¿i mô hình dă liáu, đó là: mô hình dă liáu m¿ng, mô hình dă liáu phân cÃp, mô hình dă liáu quan há, mô hình dă liáu thąc
thể - kÁt hợp và mô hình dă liáu h°áng đái t°ợng
1.3 Quản lý c¡ sở dữ liệu
Quản lý bằng File
- Há tháng xā lý tập tin theo lái cũ
Viác hiểu biÁt nhăng thiÁu sót của há tháng tập tin s¿ giúp phát triển các database Các dă liáu có liên quan đ°ợc l°u tră trong tập tin Mỗi tập tin có mßt ch°¢ng trình ứng dụng để l°u
tră, truy vÃn và chßnh sāa dă liáu Các ch°¢ng trình ứng dụng để xuÃt ra báo cáo Mỗi cá nhân hay phòng ban có tập tin riêng
D° thÿa dă liáu (Data redundancy):Là tình tr¿ng mà cùng mßt dă liáu đ°ợc l°u tră mßt cách không cần thiÁt å nhăng vá trí khác nhau H¿n chÁ viác dùng chung dă liáu Thãi gian phát triển lâu Chi phí bÁo trì ch°¢ng trình cao
- Nh°ợc điểm của viác quÁn lý bằng file:
- D° thÿa và mâu thuẫn dă liáu
- Kém hiáu quÁ trong truy xuÃt ngẫu nhiên hoÁc xā lý đãng thãi
- Dă liáu l°u tră rãi r¿c
- GÁp vÃn đề về an toàn và bÁo mật
Trang 10Quản lý bằng CSDL
QuÁn lý dă liáu bằng CSDL: QuÁn lý dă liáu bằng CSDL giúp dă liáu đ°ợc l°u tră mßt cách
hiáu quÁ và có tå chức, cho phép quÁn lý dă liáu nhanh chóng và hiáu quÁ
T¿i mức này s¿ giÁi quyÁt cho câu hßi CSDL cần phÁi l°u giă bao nhiêu lo¿i dă liáu? đó là
nhăng dă liáu gì? Mái quan há giăa các lo¿i dă liáu này nh° thÁ nào?
Tÿ thÁ giái thąc (Real Universe) các chuyên viên tin hãc qua quá trình khÁo sát và phân tích, cùng vái nhăng ng°ãi s¿ đÁm nhận vai trò quÁn trá CSDL, s¿ xác đánh đ°ợc nhăng lo¿i thông tin gì đ°ợc cho là cần thiÁt phÁi đ°a vào CSDL, đãng thãi mô tÁ rõ mái liên há giăa các thông tin này Có thể nói cách khác, CSDL mức quan niám là mßt są biểu dißn trÿu t°ợng CSDL
mức vật lý; hoÁc ng°ợc l¿i, CSDL vật lý là są cài đÁt cụ thể của CSDL mức quan niám
Để tránh viÁt tên phòng ban dài dß dẫn đÁn viÁt sai, ng°ãi ta th°ãng đÁt cho mỗi phòng ban mßt giá trá sá (gãi là sá hiáu phòng ban - Department Number) và sā dụng sá hiáu này để xác đánh tên và các thông tin khác của nó
Công ty có mßt sá công viác có thể sắp xÁp cho các nhân viên trong công ty Để thuận lợi cho
ác theo dõi công viác cũng nh° trong công tác tuyển chãn nhân viên mái, ng°ãi ta lập thành
Trang 11mßt bÁng các công viác (JOBS) gãm các thông tin: tên tắt công viác (Job), tên công viác (Job Name), mức l°¢ng tái thiểu (Min Salary) và tái đa (Max Salary) của công viác này và cho
biÁt công viác này cần có ng°ãi lãnh đ¿o không Mßt công viác có thể có nhiều ng°ãi cùng làm
Mỗi phòng ban có thể có tÿ 1 đÁn nhiều nhân viên (Employee) Mỗi nhân viên có mßt tên gãi,
mßt công viác làm (Job), mßt khoÁn tiền l°¢ng hàng tháng (Salary), sá hiáu phòng ban mà anh ta đang công tác NÁu muán, ng°ãi ta có thể theo dõi thêm các thông tin khác nh° ngày sinh (Birth Day), giái tính (Sex) v.v Để tránh viÁt tên nhân viên dài dß dẫn đÁn sai sót, mỗi nhân viên có thể đ°ợc gán cho mßt con sá duy nhÃt, gãi là mã sá nhân viên (EmpNo)
NÁu yêu cầu quÁn lý của công ty chß dÿng å viác theo dõi danh sách nhân viên trong tÿng phòng ban cùng các công viác của công ty thì cần 3 lo¿i thông tin: Phòng ban (DEPARTMENT), Công viác (JOBS) và Nhân viên (EMPLOYEE) vái các thông tin nh° trên là đủ Có thể công ty có thêm yêu cầu quÁn lý cÁ quá trình tuyển dụng và nâng l°¢ng thì
cần có thêm mßt (hoÁc mßt sá) lo¿i thông tin về quá trình: Mã sá nhân viên, lần thay đåi, thãi gian bắt đầu và kÁt thúc są thay đåi, mức l°¢ng, v.v
Tÿ môi tr°ãng thÁ giái thąc, xuÃt phát tÿ nhu cầu quÁn lý, viác xác đánh các lo¿i thông tin
cần l°u tră và các mái quan há giăa các thông tin đó nh° thÁ nào đó chính là công viác å mức quan niám
- Mức ngoài
Đó là mức của ng°ãi sā dụng và các ch°¢ng trình ứng dụng Làm viác t¿i mức này có các nhà chuyên môn, các kỹ s° tin hãc và nhăng ng°ãi sÿ dụng không chuyên
Mỗi ng°ãi sā dụng hay mỗi ch°¢ng trình ứng dụng có thể đ°ợc "nhìn" (View) CSDL theo
mßt góc đß khác nhau Có thể "nhìn" thÃy toàn bß hay chß mßt phần hoÁc chß là các thông tin
tång hợp tÿ CSDL hián có Ng°ãi sā dụng hay ch°¢ng trình ứng dụng có thể hoàn toàn không đ°ợc biÁt về cÃu trúc tå chức l°u tră thông tin trong CSDL, thậm chí ngay cÁ tên gãi của các lo¿i dă liáu hay tên gãi của các thußc tính Hã chß có thể làm viác trên mßt phần CSDL theo cách "nhìn" do ng°ãi quÁn trá hay ch°¢ng trình ứng dụng quy đánh, gãi là khung nhìn (View)
Ví dā:
Cũng ví dụ trên, Phòng Tå chức nhân są giã đây còn quÁn lý thêm cÁ các thông tin chi tiÁt trong lý lách của nhân viên trong công ty: quá trình đào t¿o chuyên môn kỹ thuật - kinh tÁ - chính trá - quÁn lý Nhà n°ác, quá trình đ°ợc khen th°ång, các lần bá kÿ luật, quá trình ho¿t đßng Cách m¿ng bá đách bắt - bá tù đày, quá trình công tác, quá trình nâng l°¢ng, s¢ l°ợc tiểu
sā cha mẹ - anh chá em rußt - vợ chãng - con v.v Rõ ràng rằng, Phòng KÁ toán có thể chß đ°ợc nhìn thÃy CSDL là danh sách nhân viên đang làm các công viác cụ thể trong tÿng Phòng ban vái các mức l°¢ng thßa thuận, mà không đ°ợc thÃy lý lách của các nhân viên Lãnh đ¿o công ty có thể chß cần "nhìn" thÃy sá l°ợng nhân viên, tång sá l°¢ng phÁi trÁ và ai là ng°ãi lãnh đ¿o của tÿng Phòng ban Trong khi đó ngay cÁ nhăng ng°ãi trong Phòng Tå chức nhân
są cũng có thể có ng°ãi đ°ợc xem lý lách của tÃt cÁ cán bß, công nhân viên của công ty, nh°ng cũng có thể có ng°ãi chß đ°ợc xem lý lách của nhăng cán bß, công nhân viên vái mức l°¢ng
tÿ xx đãng trå xuáng
Nh° vậy, cÃu trúc CSDL vật lý (mức trong) và mức quan niám thì chß có mßt; nh°ng t¿i mức ngoài, mức của các ch°¢ng trình ứng dụng và ng°ãi sā dụng trąc tiÁp CSDL, thì có thể có rÃt nhiều cÃu trúc ngoài t°¢ng ứng
Trang 121.4 Các mô hình dữ liệu
Mô hình dă liáu là są trÿu t°ợng hoá môi tr°ãng thąc Mỗi lo¿i mô hình dă liáu đÁc tr°ng cho mßt cách tiÁp cận dă liáu khác nhau của nhăng nhà phân tích thiÁt kÁ CSDL Mỗi lo¿i
mô hình dă liáu đều có nhăng °u điểm và nhăng mÁt h¿n chÁ của nó, nh°ng vẫn có nhăng
mô hình dă liáu nåi trßi và đ°ợc nhiều ng°ãi quan tâm nghiên cứu
Sau đây chúng ta s¿ điểm qua lách sā phát triển của các mô hình dă liáu
Vào nhăng năm sáu m°¢i, thÁ há đầu tiên của CSDL ra đãi d°ái d¿ng mô hình thąc thể kÁt hợp, mô hình m¿ng và mô hình phân cÃp
Vào nhăng năm bÁy m°¢i, thÁ há thứ hai của CSDL ra đãi Đó là mô hình dă liáu quan há do
EF Codd phát minh Mô hình này có cÃu trúc logic chÁt ch¿ Đây là mô hình đã và đang đ°ợc
sā dụng rßng khắp trong công tác quÁn lý trên ph¿m vi toàn cầu Viác nghiên cứu mô hình
dă liáu quan há nhằm vào lý thuyÁt chuẩn hoá các quan há và là mßt công cụ quan trãng trong viác phân tích thiÁt kÁ các há CSDL hián nay Mục đích của nghiên cứu này nhằm bß đi các
phần tā không bình th°ãng của quan há khi thąc hián các phép cập nhật, lo¿i bß các phần tā d° thÿa
Sang thập kÿ tám m°¢i, mô hình CSDL thứ ba ra đãi, đó là mô hình c¢ så dă liáu h°áng đái t°ợng, mô hình c¢ så dă liáu phân tán, mô hình c¢ så dă liáu suy dißn,…
Trong phần tiÁp theo sau đây, chúng tôi s¿ trình bày về mô hình dă liáu tiêu biểu nhÃt để thiÁt
kÁ (b°ác đầu) mßt ứng dụng tin hãc đó là mô hình thąc thể kÁt hợp Trong các ch°¢ng còn l¿i của giáo trình này chúng tôi s¿ trình bày về mô hình dă liáu quan há
Có rÃt nhiều mô hình dă liáu đã đ°ợc đ°a ra, chúng ta có thể phân lo¿i chúng theo nhăng kiểu khái niám mà hã đã dùng để biểu dißn cÃu trúc c¢ så dă liáu Mô hình dă liáu đ°ợc chia làm
3 lo¿i sau:
- Mô hình khái niám (Conceptual (high-level, semantic) data models):Cung cÃp
nhăng khái niám gần gũi vái đa sá ng°ãi sā dụng, mô hình này chß ra cái gì đ°ợc đ°a vào để quÁn lý Mô hình này là ph°¢ng tián để nhăng ng°ãi phân tích thiÁt kÁ giao tiÁp vái ng°ãi sā dụng, nhằm thu thập thông tin, xác đánh đúng đắn và đầy đủ yêu cầu của há tháng Mô hình này sā dụng cÃu trúc dă liáu là: thąc thể (entity), thußc tính (attribute) và mái liên kÁt (relationship)
- Mô hình dă liáu vật lý (Physical (low-level, internal) data models): Cung cÃp nhăng khái niám để biểu dißn chi tiÁt cách thức dă liáu đ°ợc l°u tră trong máy tính Mô hình này chß ra đánh d¿ng bÁn ghi (record formats), thứ tą sắp xÁp các bÁn ghi (record ordering) và đ°ãng dẫn để truy cập dă liáu (access paths)
- Mô hình dă liáu thể hián (Implementation (record-oriented) data models): Mô tÁ các dă liáu bằng cách sā dụng nhăng ký pháp t°¢ng ứng vái mô hình dă liáu mà
mßt há quÁn trá c¢ så dă liáu sā dụng
Các lo¿i mô hình c¢ så dā lißu thể hißn:
Mô hình phân cÃp: Mô hình CSDL phân cÃp đ°ợc biểu dißn d°ái d¿ng cây và các đßnh
của cây là các bÁn ghi Các bÁn ghi liên kÁt vái nhau theo mái quan há cha-con
- Mßt cha có nhiều con
- Mßt con chß có mßt cha
Ví dụ: Mô hình CSDL phân cÃp
Trang 13Hình 1-3- Mô hình CSDL phân c ấp
¯u điểm:
- Thể hián dß dàng quan há 1-N
- Viác phân chia dă liáu dß thể hián, đÁm bÁo an toàn dă liáu
- Tính đßc lập của ch°¢ng trình và các dă liáu đ°ợc đÁm bÁo
Nh°ÿc điểm:
- Không thể hián đ°ợc mái quan há M-N
- Trong mßt há tháng phân cÃp, dă liáu đ°ợc tå chức nh° trên dẫ đÁn khó sāa đåi dă
liáu
Mô hình m¿ng:
- CÃu trúc c¢ bÁn trong mô hình m¿ng là nhăng tập hợp và mỗi tập hợp có bÁn ghi
là bÁn ghi chủ và mßt sá bÁn ghi thành viên Mỗi thành viên có thể thußc về nhiều
tập hợp
Ví dụ: Mô hình CSDL m¿ng
Hình 1-4- Mô hình CSDL m ạng
¯u điểm:
- Dß thể hián mái liên kÁt M-N
- Kiểu truy cập dă liáu mềm dẻo h¢n kiểu phân cÃp
Nh°ÿc điểm:
- Viác sāa đåi sá liáu khó khăn
- Vái nhăng lập trình viên, viác thiÁt kÁ CSDL khó
Mô hình quan há:
Trong mô hình quan há, các dă liáu đ°ợc biểu dißn å d¿ng các bÁng vái các dòng và các cßt
Trang 14- Trong mô hình quan há không có mßt cÃu trúc vật lý nào của dă liáu mô tÁ są kÁt
nái giăa các bÁng Thay vào đó, są kÁt nái giăa các bÁng đ°ợc mô tÁ logic bằng các giá trá đ°ợc l°u tră trong các dòng của bÁng Chẳng h¿n trong hình d°ái đây, thußc tính ProCode(Mã tßnh) đ°ợc l°u trong cÁ 2 bÁng PROVINCE và bÁng STUDENT, giá trá chung này cho phép ng°ãi dùng liên kÁt đ°ợc 2 bÁng
Hình 1-5- Minh h ọa mô hình cơ sở dữ liệu quan hệ
Mô hình h°áng đái t°ợng: Trong mô hình h°áng đái t°ợng, các thußc tính dă liáu và các thao tác trên các dă liáu này đ°ợc bao gói trong mßt cÃu trúc gãi là đái t°ợng
- Đái t°ợng có thể chứa các dă liáu phức hợp nh° văn bÁn, hình Ánh, tiÁng nói và hình Ánh đßng Mßt đái t°ợng có thể yêu cầu hoÁc xā lý dă liáu tÿ mßt đái t°ợng khác bằng viác gāi đi mßt thông báo đÁn đái t°ợng đó Mô hình h°áng đái t°ợng
biểu dißn mßt s¢ đã mái để l°u tră và thao tác dă liáu Tÿ mßt đái t°ợng có thể sinh ra mßt đái t°ợng khác
Trang 15Mô hình mạng
Mô hình dă liáu m¿ng (Network Data Model) - còn đ°ợc gãi tắt là mô hình m¿ng hoÁc
mô hình l°ái (Network Model) là mô hình đ°ợc biểu dißn båi mßt đã thá có h°áng Trong
mô hình này ng°ãi ta đ°a vào các khái niám: mẫu tin hay bÁn ghi (Record), lo¿i mẫu tin (Record Type) và lo¿i liên há (Set Type):
- Lo¿i mẫu tin (Recorde Type): là mẫu đÁc tr°ng cho 1 lo¿i đái t°ợng riêng biát
Chẳng h¿n nh° trong viác quÁn lý nhân są t¿i mßt đ¢n vá, đái t°ợng cần phÁn Ánh
của thÁ giái thąc có thể là Phòng, Nhân viên, Công viác, lý lách do đó có các lo¿i
mẫu tin đÁc tr°ng cho tÿng đái t°ợng này Trong đã thá biểu dißn mô hình m¿ng
mỗi lo¿i mẫu tin đ°ợc biểu dißn båi mßt hình chă nhật, mßt thể hián (Instance) của
mßt lo¿i mẫu tin đ°ợc gãi là bÁn ghi Trong ví dụ trên lo¿i mẫu tin Phòng có các
mẫu tin là các phòng, ban trong đ¢n vá; lo¿i mẫu tin nhân viên có các mẫu tin là các nhân viên đang làm viác t¿i các phòng ban của c¢ quan
- Lo¿i liên há (Set Type): là są liên kÁt giăa mßt lo¿i mẫu tin chủ vái mßt lo¿i mẫu tin thành viên Trong đã thá biểu dißn mô hình m¿ng mỗi lo¿i liên há đ°ợc biểu
dißn båi mßt hình bầu dục (oval) và są liên kÁt giăa 2 lo¿i mẫu tin đ°ợc thể hián
båi các cung có h°áng (các mũi tên) đi tÿ lo¿i mẫu tin chủ tái lo¿i liên há và tÿ lo¿i liên há tái lo¿i mẫu tin thành viên
Trong lo¿i liên kÁt ng°ãi ta còn chß ra sá l°ợng các mẫu tin tham gia trong mái kÁt hợp
Có các lo¿i liên há sau:
- 1 -:- 1 (One-to-One): Mỗi mẫu tin của lo¿i mẫu tin chủ chủ kÁt hợp vái đúng 1 mẫu tin
của lo¿i mẫu tin thành viên Ví dụ, mỗi nhân viên có duy nhÃt mßt lý lách cá nhân
- 1 -:-n (One-to-Many): Mỗi mẫu tin của lo¿i mẫu tin chủ chủ kÁt hợp vái 1 hay nhiều
mẫu tin của lo¿i mẫu tin thành viên Ví dụ, mỗi phòng ban có tÿ 1 đÁn nhiều nhân viên
Mỗi 1 nhân viên chß thußc mßt phòng ban nhÃt đánh
- n-:-1 (Many-to-One): Nhiều mẫu tin của lo¿i mẫu tin chủ chủ kÁt hợp vái đúng 1 mẫu tin của lo¿i mẫu tin thành viên Ví dụ, nhiều nhân viên cùng làm mßt công viác
- Đá quy (Recursive): Mßt lo¿i mẫu tin chủ cũng có thể đãng thãi là lo¿i mẫu tin thành viên vái chính nó Ta nó rằng lo¿i liên há này là đá quy
Trang 16Mô hình phân cấp
Mô hình dă liáu phân cÃp (Hierachical Data Model) - đ°ợc gãi tắt là mô hình phân cÃp (Hierachical Model): Mô hình là mßt cây (Tree), trong đó mỗi nút của cây biểu dißn mßt thąc
thể, giăa nút con và nút cha đ°ợc liên há vái nhau theo mßt mái quan há xác đánh
Mô hình dă liáu phân cÃp sā dụng các khái niám sau:
Lo¿i mẫu tin: giáng khái niám mẫu tin trong mô hình dă liáu m¿ng (b) Lo¿i mái liên há: Kiểu liên há là phân cÃp, theo cách:
- Mẫu tin thành viên chß đóng vai trò thành viên của mßt mái liên há duy nhÃt, tức là nó thußc mßt chủ duy nhÃt Nh° vậy, mái liên há tÿ mẫu tin chủ tái các mẫu tin thành viên là 1¸n, và tÿ mẫu tin (hay bÁn ghi - record) thành viên vái mẫu tin chủ là 1¸1
- Giăa 2 lo¿i mẫu tin chß tãn t¿i 1 mái liên há duy nhÃt
- VD:Trong cußc Tång điều tra sá dân năm 1989, ch°¢ng trình nhập phiÁu điều tra đ°ợc viÁt bằng ngôn ngă CENS4 cho kÁt quÁ là các file dă liáu nhập d¿ng văn bÁn đ°ợc tå chức nh° sau:
Các dòng là các mẫu tin (hay bÁn ghi) có đß dài thay đåi Có 6 lo¿i mẫu tin:
- Mẫu tin đÁc tr°ng cho tßnh, thành phá gãm Mã sá tßnh thành, Tên tßnh thành phá '02'
- Mẫu tin đÁc tr°ng cho hß điều tra, gãm Mã sá tßnh + Mã sá quận + Mã sá ph°ãng +
Mã sá đáa bàn + Sá thứ tą hß điều tra trong đáa bàn, Tång sá nhân khẩu trong hß, Trong đó: Nă, Tång sá trẻ d°ái 16 tuåi
- Mẫu tin đÁc tr°ng cho nhân khẩu của hß, gãm các thông tin xác đánh hß điều tra, Sá
thứ tą nhân khẩu trong hß, Quan há vái chủ hß (1¸9), Giái tính (1,2,3), Tháng sinh, Năm sinh, Trình đß văn hóa,
ä đây rõ ràng là mßt są phân cÃp trong file CSDL Mßt tßnh thành phá (thì) có nhiều quận huyán, mßt quận huyán chß thußc mßt tßnh thành duy nhÃt Mßt quận huyán (thì)
có nhiều ph°ãng xã và mßt ph°ãng xã chß thußc mßt quận huyán duy nhÃt Mỗi ph°ãng
xã đ°ợc chia thành nhiều đáa bàn điều tra, mỗi đáa bàn chß thußc mßt ph°ãng xã duy
nhÃt v.v
VD: Mô tÁ cây phân cÃp của mô hình dă liáu đái vái CSDL Tång điều tra sá dân Toàn quác
0 giã ngày 01 tháng 01 năm 1989
Trang 17Hình 1-7 - Mô hình dữ liệu phân cấp (Hierachical Model)
Ví dụ=: Các sinh viên có mã sinh viên là <<02CĐTH019=, <02CĐTH519=,
<02TCTH465=,… nhóm l¿i thành mßt lo¿i thąc thể, đ°ợc đÁt tên là Sinhvien chẳng h¿n
T°¢ng tą trong ứng dụng quÁn lý điểm của sinh viên (s¿ đ°ợc trình bày ngay sau đây) ta có
¿i thąc thể nh° Monhoc, Lop, Khoa,…(Trong giáo trình này, tên của lo¿i thąc thể đ°ợc
Trang 18- Khoá (key): Khoá của lo¿i thąc thể E là mßt hay mßt tập các thußc tính của E có
thể dùng để phân biát hai thąc thể bÃt kỳ của E
Ví dụ: khoá của lo¿i thąc thể Sinhvien là MASV, của Láp là MALOP, của Khoa là MAKHOA, của Monhoc là MAMH,…
Cần chú ý rằng khi biểu dißn mßt há tháng bằng mô hình thąc thể kÁt hợp thì tên của các lo¿i
thąc thể phÁi khác nhau Trong danh sách các thußc tính của mßt lo¿i thąc thể thì tập thußc tính khoá th°ãng đ°ợc g¿ch d°ái liền nét NÁu mßt há tháng có nhiều lo¿i thąc thể, để đ¢n giÁn hoá mô hình, ng°ãi ta có thể chß nêu tên các lo¿i thąc thể; còn các thußc tính của lo¿i
thąc thể đ°ợc liát kê riêng
Ví dā: Bài toán quÁn lý điểm của sinh viên đ°ợc phát biểu s¢ bß nh° sau
- Mỗi sinh viên cần quÁn lý các thông tin nh°: hã và tên (HOTENSV),ngày tháng năm sinh(NGAYSINH), giái tính (NU), n¢i sinh(N¡ISINH), hß khẩu th°ãng trú (TINH) Mỗi sinh viên đ°ợc cÃp mßt mã sá sinh viên duy nhÃt (MASV) để phân
biát vái mãi sinh viên khác của tr°ãng, mỗi sinh viên chß thußc về mßt láp nào đó
- Mỗi láp hãc có mßt mã sá láp (MALOP)duy nhÃt để phân biát vái tÃt cÁ các láp hãc khác trong tr°ãng: có mßt tên gãi (TENLOP) của láp, mỗi láp chß thußc về mßt khoa
- Mỗi khoa có mßt tên gãi (TENKHOA) và mßt mã sá duy nhÃt (MAKHOA) để phân
biát vái các khoa khác
- Mỗi môn hãc có mßt tên gãi (TENMH) cụ thể, đ°ợc hãc trong mßt sá đ¢n vá hãc trình (DONVIHT) )và ứng vái môn hãc là mßt mã sá duy nhÃt (MAMH) để phân biát vái các môn hãc khác
- Mỗi giÁng viên cần quÁn lý các thông tin: hã và tên(HOTENGV), cÃp hãc vá (HOCVI), thußc mßt chuyên ngành (CHUYENNGANH) và đ°ợc gán cho mßt mã sá duy nhÃt
gãi là mã giÁng viên(MAGV) để phân biát vái các giÁng viên khác Mỗi giÁng viên có
thể d¿y nhiều môn å nhiều khoa, nh°ng chß thußc về są quÁn lý hành chính của mßt khoa
- Mỗi sinh viên vái mßt môn hãc đ°ợc phép thi tái đa 3 lần, mỗi lần thi (LANTHI), điểm thi (DIEMTHI)
- Mỗi môn hãc å mỗi láp hãc chß phân công cho mßt giÁng viên d¿y (tÃt nhiên là mßt
giÁng viên thì có thể d¿y nhiều môn å mßt láp)
Vái bài toán trên thì các lo¿i thąc thể cần quÁn lý nh°: Sinhviên, Mônhãc, Khoa, Láp, GiÁngviên
Ví dā: vái lo¿i thąc thể Sinhviên thì cần quÁn lý các thußc tính nh°: MASV,HOTENSV,
NGAYSINH,… và ta có thể biểu dißn nh° sau:
Trang 19- Mái KÁt Hợp (relationship): Mái kÁt hợp dißn tÁ są liên há giăa các lo¿i thąc thể trong mßt ứng dụng tin hãc
Ví dụ : mái kÁt hợp giăa hai lo¿i thąc thể Sinhviên và Lop, mái kÁt hợp giăa Sinhviên vái Mônhãc,
Mái kÁt hợp đ°ợc biểu dißn bằng mßt hình elip và hai bên là hai nhánh gắn kÁt vái các lo¿i
thąc thể (hoÁc mái kÁt hợp) liên quan, tên mái kÁt hợp th°ãng là: thußc, gãm , chứa Chẳng
h¿n giăa hai lo¿i thąc thể Láp và Khoa có mái kÁt hợp <thußc= nh° sau:
- BÁn sá của mái kÁt hợp: BÁn sá của mßt nhánh R trong mái kÁt hợp thể hián sá l°ợng các thąc thể thußc thąc thể å nhánh <bên kia= có liên há vái mßt thąc thể của nhánh R Mỗi bÁn sá là mßt cÁp sá (min,max), chß sá l°ợng tái thiểu và sá l°ợng tái đa của thąc thể khi tham gia vào mái kÁt hợp đó
Ví dụ:
Có nghĩa là: <mỗi sinh viên thußc mßt và chß mßt láp nên bÁn sá bên nhánh Sinhviên là (1,1),
mỗi láp có 1 đÁn n sinh viên nên bÁn sá bên nhánh Lop là (1,n)=
Trong mßt sá tr°ãng hợp đÁc biát, mái kÁt hợp có thể có các thußc tính đi kèm và do đó chúng th°ãng đ°ợc đÁt tên ý vái nghĩa đầy đủ h¢n
Ví dụ :giăa hai lo¿i thąc thể Monhoc và Sinhvien có mái kÁt hợp ketqua vái ý nghĩa: <mỗi sinh viên ứng vái mỗi lần thi của mỗi môn hãc có mßt kÁt quÁ điểm thi duy nhÃt=
- Khoá của mái kÁt hợp: là hợp của các khoá của các lo¿i thąc thể liên quan Chẳng h¿n nh° thußc tính MAGV là khoá của lo¿i thąc thể Giangvien, MALOP là thußc tính khoá của lo¿i thąc thể Lop, MAMH là thußc tính khoá của lo¿i thąc thể Monhoc, do đó mái kÁt hợp phancong (giăa các lo¿i thąc thể Giangvien,Lop,Monhoc) có khoá là {MAGV,MAMH,MALOP} - phancong là
mái kÁt hợp 3 ngôi
Trang 20Trong giáo trình này, tên của mái kÁt hợp đ°ợc viÁt toàn bằng chă th°ãng Viác thành lập mô hình thąc thể kÁt hợp cho mßt ứng dụng tin hãc có thể tiÁn hành theo các b°ác sau:
Mô hình dă liáu quan há (Ralational Data Model)- gãi tắt là mô hình quan há, do EF.Codd đề
xuÃt năm 1970 Nền tÁng lý thuyÁt của 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á
Mô hình dă liáu quan há là mô hình đ°ợc nghiên cứu nhiều nhÃt, và thąc tißn đã cho thÃy rằng nó có c¢ så lý thuyÁt văng chắc nhÃt Mô hình dă liáu này cùng vái mô hình thức thể
kÁt hợp đang đ°ợc sā dụng rßng rãi trong viác phân tích và thiÁt kÁ CSDL hián nay
Khái niệm của mô hình dữ liệu quan hệ
- Thußc Tính(attribte):
Thußc tính là các đÁc điểm riêng của mßt đái t°ợng (đái t°ợng đ°ợc hiểu nh° là mßt lo¿i
thąc thể å mô hình thąc thể kÁt hợp), mỗi thußc tính có mßt tên gãi và phÁi thußc về mßt kiểu
dă liáu nhÃt đánh
- Kiểu dă liáu (data type)
Các thußc tính đ°ợc phân biát qua tên gãi và phÁi thußc mßt kiểu dă liáu nhÃt đánh (sá, chuỗi, ngày tháng, logic, hình Ánh,…) Kiểu dă liáu å đây có thể là kiểu vô h°áng hoÁc là kiểu có
cÃu trúc NÁu thußc tính có kiểu dă liáu là vô h°áng thì nó đ°ợc gãi là thußc tính đ¢n hay thußc tính nguyên tá, nÁu thußc tính có kiểu dă liáu có cÃu trúc thì ta nói rằng nó không phÁi
là thußc tính nguyên tá
Chẳng h¿n vái sinh viên Nguyßn Văn Thành thì các thußc tính hã và tên, mã sá sinh viên thußc kiểu chuỗi, thußc tính ngày sinh thußc kiểu ngày tháng, hß khẩu th°ãng trú kiểu chuỗi, thußc tính hình Ánh kiểu hình Ánh,…
Miền giá trá (domain of values): Thông th°ãng mỗi thußc tính chß chãn lÃy giá trá trong mßt
tập con của kiểu dă liáu và tập hợp con đó gãi là miền giá trá của thußc tính đó Chẳng h¿n thußc tính NĂ có miền giá trá là {nam,nă}, thußc tính màu da có miền giá trá là {da trắng, da vàng, da đen, da đß}, thußc tính điểm thi là các sá thußc tập {0; 1; 2;…,10]
Trang 21L°u ý rằng nÁu không l°u ý đÁn ngă nghĩa thì tên của các thußc tính th°ãng đ°ợc ký hiáu
bằng các chă cái in hoa đầu tiên trong bÁng chă cái la tinh: A,B,C,D,… Nhăng chă cái in hoa X,Y,Z,W,… th°ãng dùng thay cho mßt nhóm nhiều thußc tính Đôi khi còn dùng các ký hiáu chă cái vái các chß sá A1,A2,…,An để chß các thußc tính trong tr°ãng hợp tång quát hay muán đề cập đÁn sá l°ợng các thußc tính Tên thußc tính phÁi đ°ợc đÁt mßt cách gợi nhá, không nên đÁt tên thußc tính quá dài (vì nh° thÁ s¿ làm cho viác viÁt các câu lánh truy vÃn trå nên vÃt vÁ h¢n), nh°ng cũng không nên đÁt tên thußc tính quá ngắn (vì nó s¿ không cho thÃy
ngă nghĩa của thußc tính), đÁc biát không đÁt trùng tên hai thußc tính mang ngă nghĩa khác nhau thußc hai đái t°ợng khác nhau
Trong nhiều há quÁn trá c¢ så dă liáu, ng°ãi ta th°ãng đ°a thêm vào miền giá trá của các thußc tính mßt giá trá đÁc biát gãi là giá trá rỗng (NULL) Tuỳ theo ngă cÁnh mà giá trá này
có thể đÁc tr°ng cho mßt giá trá không thể xác đánh đ°ợc hoÁc mßt giá trá ch°a đ°ợc xác đánh
å vào thãi điểm nhập tin nh°ng có thể đ°ợc xác đánh vào mßt thãi điểm khác
- L°ợc Đã Quan Há (relation schema)
Tập tÃt cÁ các thußc tính cần quÁn lý của mßt đái t°ợng cùng vái các mái liên há giăa chúng đ°ợc gãi là l°ợc đã quan há L°ợc đã quan há Q vái tập thußc tính {A1,A2, ,An} đ°ợc
viÁt là Q(A1,A2, ,An), ký hiáu Q+ ={A1,A2, ,An}
Chẳng h¿n l°ợc đã quan há Sinhviên vái các thußc tính nh° đã đ°ợc liát kê trong ví dụ 1.1 đ°ợc viÁt nh° sau:
Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP) Th°ãng thì khi thành lập mßt l°ợc đã quan há, ng°ãi thiÁt kÁ gắn cho nó mßt ý nghĩa nhÃt đánh, gãi là tân tÿ
của l°ợc đã quan há chẳng h¿n tân tÿ của l°ợc đã quan há Sinhvien là: =Mỗi sinh viên có
mỗi MASV duy nhÃt Mỗi MASV xác đánh các thußc tính còn l¿i của sinh viên đó nh° HOTENSV,NU, NGAYSINH, NOISINH,TINH,MALOP=
Khi phát biểu tân tÿ cho mßt l°ợc đã quan há, ng°ãi thiÁt kÁ cần phÁi mô tÁ đầy đủ ý nghĩa
để ng°ãi khác tránh hiểu nhầm Dąa vào tân tÿ này, ng°ãi ta xác đánh đ°ợc tập khoá, siêu khoá của l°ợc đã quan há (s¿ đ°ợc trình bày trong nhăng mục kÁ tiÁp)
Nhiều l°ợc đã quan há cùng nằm trong mßt há tháng thông tin đ°ợc gãi là mßt l°ợc đã c¢ så
dă liáu
Khái niám l°ợc đã quan há ứng vái khái niám lo¿i thąc thể å mô hình thąc thể kÁt hợp
- Quan Há (relation):
Są thể hián của l°ợc đã quan há å mßt thãi điểm nào đó đ°ợc gãi là quan há, rõ ràng là trên
mßt l°ợc đã quan há có thể xác đánh nhiều quan há Th°ãng ta dùng các ký hiáu nh° R,S,Q
để chß các l°ợc đã quan há, còn quan há th°ãng đ°ợc dùng båi các ký hiáu là r, s,q,…Về trąc quan thì quan há (hay bÁng quan há) nh° là mßt bÁng hai chiều gãm các dòng và các cßt Mßt quan há có n thußc tính đ°ợc gãi là quan há n ngôi Để chß quan há r xác đánh trên l°ợc
Trang 22- Siêu Khoá – Khoá (super key- key): S là siêu khoá (super key) của Q nÁu vái r là quan há bÃt kỳ trên Q, t1,t2 là hai bß bÃt kỳ thußc r thì t1.S ≠ t2.S Mßt l°ợc đã quan há có thể có mßt hoÁc nhiều siêu khoá
Chẳng h¿n l°ợc đã quan há Sinhvien å trên có các siêu khoá là:
{MASV,HOTENSV},{MASV,HOTENSV,NU},{MASV,HOTENSV,NU,TINH },…
Siêu khoá không chứa mßt siêu khoá nào khác đ°ợc gãi là khoá chß đánh, trong tr°ãng hợp l°ợc đã quan há có nhiều khoá chß đánh (hay khoá nßi), thì khoá đ°ợc chãn để cài đÁt gãi là khoá chính (trong các phần sau khoá chính đ°ợc gãi tắt là khoá) Chẳng h¿n vái l°ợc đã quan
há Sinhvien trên có khoá là {MASV} Th°ãng các thußc tính khoá đ°ợc g¿ch d°ái theo kiểu
liền nét
Mßt thußc tính đ°ợc gãi là thußc tính khoá ngo¿i nÁu nó không là thußc tính khoá của mßt l°ợc đã quan há này nh°ng l¿i là thußc tính khoá của mßt l°ợc đã quan há khác, chẳng h¿n nh° MALOP là khoá ngo¿i của l°ợc đã quan há Sinhvien Th°ãng các thußc tính khoá ngo¿i đ°ợc g¿ch d°ái theo kiểu không liền nét
Sinhvien(MASV, HOTENSV, NU, NGAYSINH, TINH, MALOP)
Lop(MALOP,TENLOP,MAKHOA)
Ý nghĩa thąc tÁ của khoá là dùng để nhận dián mßt bß trong mßt quan há, nghĩa là, khi cần tìm mßt bß t nào đó, ta chß cần biÁt giá trá của thành phần khoá của t là đủ để dò tìm và hoàn toàn xác đánh đ°ợc nó trong quan há
Trong thąc tÁ đái vái các lo¿i thąc thể tãn t¿i khách quan (ví dụ: Sinh viên, GiÁng viên, Nhân viên, Hàng hoá,…) ng°ãi thiÁt kÁ c¢ så dă liáu th°ãng gán thêm cho các l°ợc đã quan há này
mßt thußc tính giÁ gãi là mã sá để làm khoá (ví dụ: mã sá sinh viên, mã sá giÁng viên, mã sá nhân viên, mã sá hàng hoá,…) Trong khi đó các l°ợc đã quan há biểu dißn cho są trÿu t°ợng hoá th°ãng có khoá là mßt tå hợp của hai hay nhiều thußc tính của nó
Mßt sá há quÁn trá c¢ så dă liáu hián nay có tą đßng kiểm tra tính duy nhÃt trên khoá chính
Tức là nÁu thêm mßt bß mái q2 có giá trá khoá chính trùng vái giá trá khoá chính của mßt bß q1 nào đó đã có trong quan há thì há tháng s¿ báo lỗi và yêu cầu nhập l¿i mßt giá trá khác
Ng°ãi ta cũng quy °ác r¿ng:
- Trong mßt bß của quan há các thußc tính khoá không chứa giá trá rỗng
- Không đ°ợc phép sāa đåi giá trá thußc tính khoá của mßt bß q NÁu muán sāa đåi giá trá thußc tính khoá của mßt bß q, ng°ãi sā dụng phÁi huÿ bß bß q và sau
đó thêm mßt bß q9 vái giá trá khoá đã đ°ợc sāa đåi
1.5 Hệ quản trị CSDL (Data Base Management System)
Để giÁi quyÁt tát nhăng vÃn đề mà cách tå chức CSDL đÁt ra nh° đã nói å trên, cần thiÁt phÁi
có nhăng phần mềm chuyên dùng để khai thác chúng Nhăng phần mềm này đ°ợc gãi là các
há quÁn trá CSDL Các há quÁn trá CSDL có nhiám vụ hỗ trợ cho các nhà phân tích thiÁt kÁ CSDL cũng nh° nhăng ng°ãi khai thác CSDL Hián nay trên thá tr°ãng phần mềm đã có
nhăng há quÁn trá CSDL hỗ trợ đ°ợc nhiều tián ích nh°: MS Access, Visual Foxpro, SQL Server Oracle, …
Mỗi há quÁn trá CSDL đều đ°ợc cài đÁt dąa trên mßt mô hình dă liáu cụ thể Dù là dąa trên
mô hình dă liáu nào, mßt há quÁn trá CSDL cũng phÁi hßi đủ các yÁu tá sau:
Ngôn ngā giao ti¿p giāa ng°ãi sÿ dāng và CSDL, bao gßm :
Trang 23- Ngôn ngă mô tÁ dă liáu: Để cho phép khai báo cÃu trúc của CSDL, khai báo các mái liên há của dă liáu và các quy tắc quÁn lý áp đÁt lên các dă liáu đó
- Ngôn ngă thao tác dă liáu: Cho phép ng°ãi sā dụng có thể cập nhật dă liáu (thêm/sāa/xoá)
- Ngôn ngă truy vÃn dă liáu: Cho phép ng°ãi khai thác sā dụng để truy vÃn các thông tin cần thiÁt trong CSDL
- Ngôn ngă quÁn lý dă liáu: Cho phép nhăng ng°ãi quÁn trá há tháng thay đåi cÃu trúc
của các bÁng dă liáu, khai báo bÁo mật thông tin và cÃp quyền h¿n khai thác CSDL cho ng°ãi sā dụng.,…
- Tÿ điển dă liáu: Dùng để mô tÁ các ánh x¿ liên kÁt, ghi nhận các thành phần cÃu trúc của CSDL, các ch°¢ng trình ứng dụng, mật mã, quyền h¿n sā dụng,…
C¢ chÁ giÁi quyÁt vÃn đề tranh chÃp dă liáu: Mỗi há quÁn trá CSDL cũng có thể cài đÁt mßt c¢ chÁ riêng để giÁi quyÁt các vÃn đề này Mßt sá bián pháp sau đây th°ãng đ°ợc sā dụng:
thứ nhÃt: cÃp quyền °u tiên cho tÿng ng°ãi sā dụng; thứ hai: Đánh dÃu yêu cầu truy xuÃt dă
liáu, phân chia thãi gian, ng°ãi nào có yêu cầu tr°ác thì có quyền truy xuÃt dă liáu tr°ác,…
- Há quÁn trá CSDL cũng phÁi có c¢ chÁ sao l°u (backup) và phục hãi (restore) dă
liáu khi có są cá xÁy ra Điều này có thể thąc hián sau mßt thãi gian nhÃt đánh há
quÁn trá CSDL s¿ tą đßng t¿o ra mßt bÁn sao CSDL, cách này h¢i tán kém, nhÃt là đái vái CSDL lán Há quÁn trá CSDL phÁi cung cÃp mßt giao dián thân thián, dß
sā dụng
S¢ đã tång quát của mßt há quÁn trá CSDL
- Mỗi há quÁn trá CSDL có mßt ngôn ngă khai báo (hay mô tÁ: Data Definition Language- DDL) cÃu trúc CSDL riêng Nhăng ng°ãi thiÁt kÁ và quÁn trá CSDL thąc hián các công viác khai báo cÃu trúc CSDL
- Các ch°¢ng trình khai báo cÃu trúc CSDL đ°ợc viÁt bằng ngôn ngă mà há quÁn trá CSDL cho phép Hai công viác khai báo là khai báo cÃu trúc lôgic (đó là viác khai báo các lo¿i
dă liáu và các mái liên há giăa các lo¿i dă liáu đó, cùng các ràng bußc toàn vẹn dă liáu - RBTV) và khai báo vật lý (dă liáu đ°ợc l°u tră theo d¿ng nào?, có bao nhiêu chß mục?)
- Các ch°¢ng trình ứng dụng đ°ợc viÁt bằng ngôn ngă thao tác CSDL (Data Manipulation Language - DML) vái mục đích:
+ Truy xuÃt dă liáu
+ Cập nhật dă liáu (thêm, xóa, sāa dă liáu)
+ Khai thác dă liáu
- Ngôn ngă thao tác CSDL còn đ°ợc sā dụng cho nhăng NSD thao tác trąc tiÁp vái CSDL
- Tÿ điển dă liáu (Data Dictionary - DD) là mßt CSDL của há quÁn trá CSDL sā dụng để l°u tră cÃu trúc CSDL, các thông tin bÁo mật, bÁo đÁm an toàn dă liáu và các cÃu trúc ngoài Nhăng ng°ãi đã làm quen vái há quÁn trá CSDL của MicroSoft Access có thể thÃy các tÿ điển dă liáu này thông qua các bÁng (Table) có tên bắt đầu bằng chă MSys nh° MSysACEs, MSysColumn, MSysIMEXColumn, MSysIMEXSpecs, MSysIndexes, MSysMacros, MSysObjects, MSysQueries, MSysRelationShips Tÿ điển dă liáu còn đ°ợc gãi là Siêu CSDL (Meta-DataBase)
Trang 241.6 Ng°ời dùng liên quan đến CSDL
Có nhiều ng°ãi tham gia vào są ho¿t đßng của c¢ så dă liáu vái các vai trò khác nhau, vái
nhăng mục đích khác nhau, thąc hián nhăng nhiám vụ, nhăng công viác khác nhau Ta có thể chia các đái t°ợng này làm hai nhóm
Nhóm thứ nhÃt là nhăng ng°ãi t°¢ng tác th°ãng xuyên vái CSDL (actors on the scene) Phần lán công viác của nhóm này liên quan đÁn bÁn thân c¢ så dă liáu Thußc nhóm này ta có
nhăng đái t°ợng chính sau:
QuÁn trá c¢ så dă liáu (database administrator hay DBA) có nhiám vụ cÃp quyền truy cập CSDL cho nhăng ng°ãi có liên quan và giám sát ho¿t đßng của nhăng ng°ãi này, quÁn lý các
phần cứng và phần mềm t°¢ng ứng, cháu trách nhiám về tình tr¿ng vận hành, về hßng hóc, về
an toàn của há CSDL
ThiÁt kÁ c¢ så dă liáu (database designer hay DBD) có nhiám vụ xác đánh nhăng dă liáu nào cần đ°ợc l°u tră, cÃu trúc của nhăng dă liáu Ãy, ph°¢ng pháp thể hián và l°u tră các dă liáu này Nhăng nhân viên này cũng cần nắm bắt yêu cầu của nhăng đái t°ợng khác (chủ yÁu thußc nhóm thứ nhÃt) để thiÁt kÁ c¢ så dă liáu đáp ứng đ°ợc mßt cách tát nhÃt nhăng yêu cầu
Ãy, thí dụ t¿o ra nhăng khung hiển thá dß sā dụng, phù hợp, đáp ứng nhanh nhu cầu của ng°ãi dùng, t¿o ra các ch°¢ng trình xā lý dă liáu (tính toán, v¿ biểu đã) Vai trò của nhăng ng°ãi thiÁt kÁ dă liáu đÁc biát quan trãng trong giai đo¿n đầu, khi thiÁt kÁ và bắt đầu triển khai Khi CSDL đã ho¿t đßng ån đánh, hã có thể chuyển sang các bß phận khác
Ng°ãi dùng cuái (end user) là nhăng ng°ãi cần tìm kiÁm thông tin và cập nhật thông tin Đây
là đái t°ợng phục vụ chủ yÁu của CSDL Hã có thể là mßt ng°ãi bên ngoài tå chức nh° khách hàng, hay bên trong tå chức nh° nhân viên phòng kÁ toán cần dă liáu để lập bÁng l°¢ng, hay nhân viên kho cần cập nhật nguyên liáu hay hàng hóa tãn kho Hã cũng có thể là nhăng chuyên gia, sā dụng dă liáu để phân tích tình hình kinh doanh hay năng ląc tài chính chẳng
h¿n
Nhóm thứ hai th°ãng đ°ợc gãi là nhăng nhân vật hậu tr°ãng (worker behind scene), làm viác chủ yÁu vái HQTCSDL và các ch°¢ng trình ứng dụng Nhóm này gãm có:
Nhăng ng°ãi thiÁt kÁ và xây dąng các thành phần chính của HQTCSDL nh° các mođun để
thąc hián các chức năng nh° truy vÃn, t¿o tÿ điển, truy xuÃt dă liáu, thąc hián các giao tiÁp
vái há điều hành, vái các trình biên dách của các ngôn ngă, xây dąng các ch°¢ng trình ứng
dụng
Nhăng ng°ãi t¿o nên các công cụ, các tián ích bå sung nhằm må rßng, hay nâng cao các tính năng của há CSDL Các công cụ, tián ích này có thể là nhăng thành phần bå sung đ°ợc cung cÃp kèm theo phần mềm, hoÁc å d¿ng tùy chãn và đ°ợc mua và/hoÁc cài đÁt riêng biát
Nhăng ng°ãi cung cÃp các dách vụ có liên quan nh° bÁo trì phần cứng, sāa chăa các hßng hóc
CÂU HâI VÀ BÀI TÀP BÀI 1
Trang 25Bài tÁp 1: Dąa vào nhăng khái niám đã hãc, hãy biểu dißn CSDL có các lo¿i mẫu tin Phòng,
Nhân viên, Công viác, lý lách đã trình bày trong mô hình m¿ng theo cách tiÁp cận phân cÃp.BiÁt:
- Lo¿i liên há là phân cÃp
- Phòng có nhiều nhân viên, mỗi nhân viên chß thußc mßt phòng duy nhÃt
- Công viác có nhiều nhân viên cùng làm; mỗi nhân viên chß làm mßt công viác duy nhÃt
- Mỗi nhân viên có mßt lý lách, mỗi lý lách chß thußc duy nhÃt mßt nhân viên
Bài tÁp 2: Dąa vào nhăng khái niám đã hãc, hãy biểu dißn CSDL về tång điều tra dân sá toàn
quác có các lo¿i mẫu tin tßnh – thành phá, quận huyán, ph°ãng xã, đáa bàn, hß điều tra và nhân khẩu đã trình bày trong mô hình phân cÃp theo cách tiÁp cận m¿ng BiÁt:
- Nhân khẩu thußc mßt hß điều tra
- Hß điều tra thußc mßt đáa bàn
- Đáa bàn điều tra thußc mßt ph°ãng xã
- Ph°ãng xã thußc mßt quận huyán
- Quận huyán thußc mßt tßnh, thành phá
Bài tÁp 3: Câu hãi trắc nghißm
Câu 1: Chãn đáp án đúng cho khái niám <C¢ så dă liáu=
a C¢ så dă liáu là mßt tập hợp các dă liáu có liên quan vái nhau đ°ợc l°u tră trên máy tính, có nhiều ng°ãi sā dụng và đ°ợc tå chức theo mßt mô hình
b C¢ så dă liáu là mßt tập hợp các dă liáu không liên quan đÁn nhau đ°ợc l°u tră trên máy tính, có nhiều ng°ãi sā dụng và đ°ợc tå chức theo mßt mô hình
c C¢ så dă liáu là mßt tập hợp các dă liáu có liên quan vái nhau đ°ợc l°u tră trên máy tính, do mßt ng°ãi sā dụng và đ°ợc tå chức theo mßt mô hình
d C¢ så dă liáu là mßt tập hợp các dă liáu không liên quan đÁn nhau đ°ợc l°u tră trên máy tính, do mßt ng°ãi sā dụng và đ°ợc tå chức theo mßt mô hình
Câu 2 Điền tÿ còn thiÁu vào dÃu … : <… là mßt tập hợp các dă liáu có liên quan vái nhau đ°ợc l°u tră trên máy tính, có nhiều ng°ãi sā dụng và đ°ợc tå chức theo mßt mô hình.=
c C¢ så dă liáu quan há d Há quÁn trá c¢ så dă liáu
Câu 3: Đâu không là bÃt th°ãng trong CSDL:
a D° thÿa dă liáu b Dă liáu không nhÃt quán
c Dá th°ãng khi thêm bß d Đ°a ra danh sách dă liáu
Câu 4 <Mßt CSDL biểu thá mßt khía c¿nh nào đó của thÁ giái thąc, nhăng thay đåi của thÁ giái thąc phÁi đ°ợc phÁn ánh mßt cách trung thąc vào trong CSDL.= Phát biểu trên đúng vái khái niám nào?
c Chức năng của há quÁn trá c¢ så dă liát d KiÁn trúc mßt c¢ så dă liáu
Trang 26Câu 5 <Mßt CSDL là mßt tập hợp dă liáu liên kÁt vái nhau mßt cách lôgic và mang mßt ý nghĩa nào đó.= Phát biểu trên đúng vái khái niám nào?
a Dă liáu b Chức năng của há quÁn trá c¢ så dă liáu
c Tính chÃt của c¢ så dă liáu d KiÁn trúc mßt c¢ så dă liáu
Câu 6 <Mßt CSDL là mßt tập hợp dă liáu liên kÁt vái nhau mßt cách lôgic và mang mßt ý nghĩa nào đó.= Phát biểu trên đúng vái khái niám nào?
a C¢ så dă liáu b Tính chÃt của c¢ så dă liáu
c Chức năng của há quÁn trá c¢ så dă liáu d KiÁn trúc mßt c¢ så dă liáu
Câu 7: S¢ đã <KiÁn trúc của mßt há c¢ så dă liáu= gãm:
a Ng°ãi sā dụng, khung nhìn, c¢ så dă liáu mức vật lý
b Ng°ãi sā dụng, c¢ så dă liáu mức vật lý, c¢ så dă liáu mức khái niám
c Ng°ãi sā dụng, khung nhìn, c¢ så dă liáu mức khái niám, c¢ så dă liáu mức vật lý
d Khung nhìn, c¢ så dă liáu mức khái niám, c¢ så dă liáu mức vật lý
Câu 8: Phát biểu nào sau đây ứng vái: <C¢ så dă liáu mức vật lý99
a Các file dă liáu đ°ợc l°u tră theo mßt cÃu trúc nào đó trên các thiÁt bá nhá
b Là są biểu dißn trÿu t°ợng của <C¢ så dă liáu mức vật lý=
c Là quan niám của tÿng ng°ãi sā dụng vái <C¢ så dă liáu mức khái niám=
d TÃt cÁ các đáp án trên
Câu 9: Phát biểu nào sau đây ứng vái: <C¢ så dă liáu mức khái niám99
a Các file dă liáu đ°ợc l°u tră theo mßt cÃu trúc nào đó trên các thiÁt bá nhá
b Là są biểu dißn trÿu t°ợng của <C¢ så dă liáu mức vật lý=
c Là quan niám của tÿng ng°ãi sā dụng vái <C¢ så dă liáu mức khái niám=
d TÃt cÁ các đáp án trên
Câu 10: Phát biểu nào sau đây ứng: <Khung nhìn - View99
a Các file dă liáu đ°ợc l°u tră theo mßt cÃu trúc nào đó trên các thiÁt bá nhá
b Là są biểu dißn trÿu t°ợng của <C¢ så dă liáu mức vật lý=
c Là quan niám của tÿng ng°ãi sā dụng vái <C¢ så dă liáu mức khái niám=
d TÃt cÁ các đáp án trên
Câu 11: Theo ANSI-SPARC, kiÁn trúc của mßt há CSDL gãm có bao nhiêu mức:
a 2 mức b 4 mức c 3 mức d 1 mức
Câu 12: Đâu KHÔNG phÁi là mức biểu dißn mßt CSDL?
Câu 13: Mức vật lý còn đ°ợc gãi là:
a Mức khái niám b Mức trong
Trang 27c Mức ngoài d Mức logic
Câu 14: Mức khung nhìn còn đ°ợc gãi là:
a Mức trong b Mức khái niám
Câu 15: Đâu KHÔNG phÁi là mßt há quÁn trá CSDL?
a Access b Sql Server c Oracle d Word
Câu 16: Thuật ngă nào chß mô hình quan há?
a Network data model b Relational data model
c Relationship data model d E-R model
Câu 17: Phát biểu nào sau đây KHÔNG đúng vái mßt CSDL?
a TÃt cÁ ng°ãi dùng sā dụng mßt khung nhìn chung
b Mỗi ng°ãi dùng có mßt khung nhìn riêng của mình
c Ng°ãi dùng có thể thay đåi khung nhìn của hã
d Są thay đåi khung nhìn của ng°ãi này không làm Ánh h°ång đÁn khung nhìn của ng°ãi khác
Câu 18: Mßt bÁng (quan há) gãm có nhăng thông tin gì?
a L°ợc đã quan há, thể hián b Tên quan há, tên các thußc tính
c L°ợc đã quan há, các dòng dă liáu d Tên quan há, các dòng dă liáu
Câu 19: Đâu không phÁi là mßt quan há?
a L°ợc đã, thể hián b L°ợc đã, các dòng dă liáu
c Tên quan há, tên thußc tính, các dòng dă liáu d Tên quan há, tên thußc tính
Câu 20: L°ợc đã quan há chß đề cập đÁn nhăng thông tin gì?
a Tên các thußc tính và các dòng dă liáu b Tên quan há và tên các thußc tính
c Tên quan há và các dòng dă liáu d Tên thußc tính và các bß giá trá Câu 21: Chãn phát biểu đúng vái thuật ngă <Thußc tính=:
a Thußc tính là mßt đÁc tr°ng của quan há Mỗi thußc tính bao giã cũng có tên và mßt
miền giá trá gãi là miền xác đánh của thußc tính
b Thußc tính là mßt đÁc tr°ng của quan há
c Mỗi thußc tính bao giã cũng có tên và mßt miền giá trá gãi là miền xác đánh của thußc tính
d Thußc tính là mßt tập con của tích Đề-các của mßt hoÁc nhiều miền thußc tính Câu 22: Miền giá trá để chß?
a Tên của mßt cßt b Mßt hàng trong bÁng
c Mßt bÁng d Kiểu dă liáu của mßt cßt
Trang 28Bài 2 THI¾T K¾ C¡ Sä DĀ LIÞU
Mục tiêu:
- Trình bày đ°ợc mßt sá khái niám c¢ bÁn về mô hình quan há;
- Khái quát hóa mô hình dă liáu quan há;
- Chuyển đåi tÿ mô hình thąc thể sang mô hình quan há
2.1 Quy trình thiết kế CSDL
ThiÁt kÁ cÃu trúc c¢ så dă liáu là quá trình mô hình hóa nhằm chuyển đåi các đái t°ợng tÿ
thÁ giái thąc (Real-world system) sang các bÁng trong há tháng c¢ så dă liáu (Database system) đáp ứng các yêu cầu l°u tră và khai thác dă liáu
Hình 2-1- Cơ sở dữ liệu
B°ác 1 ĐÁc tÁ và phân tích yêu cầu
B°ác 2 ThiÁt kÁ c¢ så dă liáu quan niám
B°ác 3 Ląa chãn há quÁn trá c¢ så dă liáu
B°ácc 4 ThiÁt kÁ c¢ så dă liáu logic
B°ác 5 ThiÁt kÁ c¢ så dă liáu vật lý
Thiết kế mức khái niệm
L°ợc đã quan niám là mßt mô tÁ súc tích về các yêu cầu dă liáu của nhăng ng°ãi sā dụng Bao gãm các mô tÁ chi tiÁt của các kiểu thąc thể, kiểu liên kÁt và các ràng bußc Mô hình dă liáu mức quan niám dß hiểu và có thể sā dụng chúng để kÁt nái giăa ng°ãi thiÁt kÁ CSDL vái ng°ãi dùng cuái trong quá trình phân tích CSDL Th°ãng sā dụng mô hình liên kÁt thąc thể
Trang 29Thiết kế mức Logic
Đ°a ra mô hình dă liáu logic đáp ứng đ°ợc yêu cầu tái thiểu hóa są d° thÿa thông tin và đáp ứng đ°ợc viác cài đÁt KÁt quÁ của b°ác này là mßt l°ợc đã c¢ så dă liáu d°ái d¿ng mßt mô hình dă liáu cài đÁt của há quÁn trá c¢ så dă liáu
Thiết kế mức vậy lý
Chß ra các cÃu trúc bên trong, các đ°ãng dẫn truy cập, tå chức táp cho các táp c¢ så dă liáu Các ch°¢ng trình ứng dụng cũng đ°ợc thiÁt kÁ và cài đÁt nh° là các giao dách (transaction) c¢ så dă liáu t°¢ng ứng vái các đÁc tÁ giao dách mức cao
2.2 Các thành phần dữ liệu mức khái niệm
Thực thể và thuộc tính
Mô hình E-R: Là mßt mô tÁ logic chi tiÁt dă liáu của mßt tå chức hay mßt lĩnh
vąc nghiáp vụ Giúp ng°ãi thiÁt kÁ c¢ så dă liáu mô tÁ thÁ giái thąc gần gũi vái quan niám và cách nhận nhìn nhận bình th°ãng của con ng°ãi Là công cụ để phân tích thông tin nghiáp vụ
Thąc thể: là mßt đái t°ợng trong thÁ giái thąc, có są tãn t¿i đßc lập và phân biát đ°ợc
Thußc tính: Các đÁc điểm riêng của thąc thể (Các đÁc tr°ng cụ thể mô tÁ thąc
thể) Mßt thąc thể cụ thể có mßt giá trá cho mỗi thußc tính của nó Các giá trá thußc tính s¿ trå thành mßt phần chính của các dă liáu s¿ đ°ợc l°u giă trong c¢
så dă liáu.Kí hiáu: Hình elip
Ví dā: Thußc tính của tập thąc thể
Tập thąc thể (Lo¿i thąc thể): Là tập hợp các thąc thể có cùng thußc tính Mỗi
lo¿i thąc thể đều phÁi đ°ợc đÁt tên sao cho có ý nghĩa Kí hiáu: hình chă nhật
Các lo¿i thußc tính:
- Thußc tính đ¢n: là thußc tính không thể phân chia ra đ°ợc thành các thành phần nhß h¢n
- Thußc tính phức hợp: là thußc tính có thể phân chia đ°ợc thành các thành
phần nhß h¢n, biểu dißn các thußc tính c¢ bÁn h¢n vái các ý nghĩa đßc
NG¯âI
Trang 30- Thußc tính đ¢n trá: thußc tính có giá trá duy nhÃt cho mßt thąc thể cụ thể
- Thußc tính đa trá: mßt thußc tính có thể có mßt tập giá trá cho cùng mßt thąc thể Kí hiáu: hình elip nét đôi
- Thußc tính đánh danh (thußc tính khóa): là mßt hoÁc mßt sá tái thiểu các thußc tính của mßt tập thąc thể mà giá trá của nó cho phép phân biát các thąc thể khác nhau trong tập thąc thể Kí hiáu: tên thußc tính có g¿ch chân
- Thußc tính mô tÁ: Là các thußc tính mà giá trá của chúng chß có tính mô
tÁ cho thąc thể hay liên kÁt mà thôi 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ể Thußc tính tên gãi để xác đánh các thąc thể (tách các thąc thể)
- Thußc tính suy dißn (thußc tính dẫn xuÃt): Thußc tính mà giá trá của nó
có thể tính đ°ợc thông qua giá trá của các thußc tính khác
+ Liên kÁt đá quy: Mßt thąc thể có thể liên kÁt vái chính
+ Liên kÁt 2 ngôi: 2 thąc thể có mái liên kÁt vái nhau
+ Giăa hai thąc thể có thể có nhiều h¢n mßt liên kÁt
+ Các kiểu liên kÁt cũng có thể có các thußc tính, giáng nh° các thußc tính của các
kiểu thąc thể
Quan hệ 1-1, 1-n, n-n
- Các lo¿i mái liên kÁt: 1-1; 1-n; n-n
Trang 31+ Liên kÁt (1-1): Mỗi thể hián của thąc thể A quan há vái mßt thể hián của thąc thể B
và ng°ợc l¿i
+ Liên kÁt (1-N): Mỗi thể hián của thąc thể A quan há vái nhiều thể hián của thąc thể
B Ng°ợc l¿i mỗi thể hián của thąc thể B quan há vái chß mßt thể hián của thąc thể
A
+ Liên kÁt (N-N): Mỗi thể hián của thąc thể A quan há vái nhiều thể hián của thąc thể
B Ng°ợc l¿i mỗi thể hián của thąc thể B quan há vái nhiều thể hián của thąc thể A
- BÁn sá tham gia mái liên kÁt: BÁn sá của mßt nhánh R trong mái liên kÁt thể
hián sá l°ợng các thąc thể thußc thąc thể å nhánh <bên kia= có liên há vái mßt
thąc thể của nhánh R Mỗi bÁn sá là mßt cÁp sá (min,max), chß sá l°ợng tái thiểu và sá l°ợng tái đa của thąc thể khi tham gia vào mái liên kÁt đó
- Các giá trá (min, max):(0,1);(1,1);(0,n); (1,n);
- BÁn sá
Ví dụ :mßt nhân viên thußc về mßt hoÁc nhiều phòng ban, mßt phòng ban có thể có
mßt hoÁc nhiều nhân viên trąc thußc
- Kiểu thąc thể yÁu (Weak Entity) là kiểu thąc thể tãn t¿i phụ thußc vào thąc thể khác (thąc thể làm chủ hay còn gãi là xác đánh nó) Kiểu thąc thể yÁu không có khoá Kí hiáu: hình chă nhật nét kép
- Các b°ác xây dąng mô hình liên kÁt thąc thể:
B°ác 1: Xác đánh các thąc thể
B°ác 2: Xác đánh các thußc tính và gắn thußc tính vào thąc thể
B°ác 3: Xác đánh mái liên kÁt và lo¿i mái liên kÁt giăa các thąc thể Gắn thußc tính vào mái liên kÁt (nÁu có)
B°ác 4: V¿ mô hình liên kÁt thąc thể
Ví dā: Bài toán quÁn lý th° vián đ¢n giÁn Th° vián đ°ợc chia thành các nhánh Th° vián l°u
tră thông tin về đầu sách Mỗi đầu sách thußc mßt nhà xuÃt bÁn và có thể do nhiều tách giÁ
viÁt Mỗi đầu sách có nhiều cuán sách, các cuán sách đ°ợc l°u tră t¿i các nhánh Đßc giÁ
Trang 32Hình 2-2 - Mô hình liên k ết thực thể _ER
- L°ợc đã quan há
TACGIA( MaTG , TenTG , Diachi , SDT )
NHAXUATBAN( MaNXB , TenNXB , Diachi , SDT )
DAUSACH( MaDauSach, TenDauSach, SoLuong , MaTG , MaNXB )
CUONSACH( MaSach , MaDauSach , MaNhanh )
NHANH( MaNhanh , TenNhanh , DiaChi , SDT)
PHIEUMUON( MaPM , NgayMuon , NgayTra , MaDocGia )
CHITIETPHIEUMUON(MaPM , MaSach , TinhTrangSach)
có cÃu trúc thì ta nói rằng nó không phÁi là thußc tính nguyên tá
Ví dụ: vái sinh viên Nguyßn Văn Thành thì các thußc tính hã và tên, mã sá sinh viên thußc
kiểu chuỗi, thußc tính ngày sinh thußc kiểu ngày tháng, hß khẩu th°ãng trú kiểu chuỗi, thußc tính hình Ánh kiểu hình Ánh,…
- Miền giá trá (domain of values): Thông th°ãng mỗi thußc tính chß chãn lÃy giá trá trong mßt tập con của kiểu dă liáu và tập hợp con đó gãi là miền giá trá của thußc tính đó Chẳng h¿n thußc tính NĂ có miền giá trá là {nam,nă}, thußc tính màu da
Trang 33có miền giá trá là {da trắng, da vàng, da đen, da đß}, thußc tính điểm thi là các sá thußc tập {0; 1; 2;…,10]
L°u ý : NÁu không l°u ý đÁn ngă nghĩa thì tên của các thußc tính th°ãng đ°ợc ký hiáu bằng
các chă cái in hoa đầu tiên trong bÁng chă cái la tinh: A,B,C,D,… Nhăng chă cái in hoa X,Y,Z,W,… th°ãng dùng thay cho mßt nhóm nhiều thußc tính Đôi khi còn dùng các ký hiáu
chă cái vái các chß sá A1,A2,…,An để chß các thußc tính trong tr°ãng hợp tång quát hay
muán đề cập đÁn sá l°ợng các thußc tính Tên thußc tính phÁi đ°ợc đÁt mßt cách gợi nhá, không nên đÁt tên thußc tính quá dài (vì nh° thÁ s¿ làm cho viác viÁt các câu lánh truy vÃn trå nên vÃt vÁ h¢n), nh°ng cũng không nên đÁt tên thußc tính quá ngắn (vì nó s¿ không cho thÃy
ngă nghĩa của thußc tính), đÁc biát không đÁt trùng tên hai thußc tính mang ngă nghĩa khác nhau thußc hai đái t°ợng khác nhau
Trong nhiều há quÁn trá c¢ så dă liáu, ng°ãi ta th°ãng đ°a thêm vào miền giá trá của các thußc tính mßt giá trá đÁc biát gãi là giá trá rỗng (NULL) Tuỳ theo ngă cÁnh mà giá trá này
có thể đÁc tr°ng cho mßt giá trá không thể xác đánh đ°ợc hoÁc mßt giá trá ch°a đ°ợc xác đánh
å vào thãi điểm nhập tin nh°ng có thể đ°ợc xác đánh vào mßt thãi điểm khác
Khoá
- Khoá (key): Khoá của lo¿i thąc thể E là mßt hay mßt tập các thußc tính của E có thể dùng để phân biát hai thąc thể bÃt kỳ của E
Ví dā: khoá của lo¿i thąc thể Sinhvien là MASV, của Láp là MALOP, của Khoa là
MAKHOA, của Monhoc là MAMH,…
- Siêu khoá: Siêu khoá là tập hợp con các thußc tính của Q+ mà nhã vào chúng ta có c¢
så để phân biát 2 bß khác nhau tuỳ ý trong cùng 1 quan há
Sá l°ợng siêu khoá trong mßt l°ợc đã quan há: có ít nhÃt mßt siêu khoá ( chính là Q+)
Có thể có nhiều siêu khoá
Ví dā 1: Cho l°ợc đã quan há SINHVIEN(MASV, HOSV, TENSV, NGAYSINH) ta có các
siêu khóa nh° sau:
S1: {MASV}
S2: {MASV, HOSV, TENSV}
S3: {MASV, NGAYSINH}
S4: {MASV, HOSV, TENSV, NGAYSINH}
Ví dā 2: Cho l°ợc đã quan há SINHVIEN(MASV,MAMH, LANTHI, DIEM) ta có các siêu
khóa nh° sau:
S1: {MASV, MAMH, LANTHI}
S2: {MASV, MAMH, LANTHI, DIEM}
- Khoá chính (Khoá chß đánh):Mục đích của siêu khoá là để nhận dián 1 bß trong quan
há Nh°ng nÁu ta dùng siêu khoá bÃt kỳ để nhận dián 1 bß trong quan há xét về mÁt
hiáu quÁ là không có lợi do phÁi tán chi phí cao cho viác dò tìm
Vì vậy, ta cần chãn ra siêu khoá <nhß nhÃt= chứa ít thußc tính nhÃt và khác rỗng làm khoá chß đánh hay khoá chính.Vì vậy, ta thÃy khoá chính không bao giã chứa siêu khoá khác bên trong nó
Trang 34Trong tr°ãng hợp 1 l°ợc đã Q có nhiều khoá chß đánh, khi cài đÁt trên 1 há quÁn trá CSDL ta chß đ°ợc chãn 1 trong các khoá chß đánh để t¿o chß mục chi phái đÁn các bß Khi đó:
+ Khoá chß đánh đ°ợc chãn s¿ gãi là khóc hính ( Primary key)
+ Các khoá chß đánh còn l¿i là các khóa t°¢ng đ°¢ng
Các thußc tính có tham gia vào 1 khoá đ°ợc gãi là thußc tính khoá và khi liát kê trong
- Khoá ngo¿i
Khóa ngo¿i: Mßt tập các thußc tính K đ°ợc gãi là khóa ngo¿i của quan há r nÁu nó không là khóa chính của quan há r nh°ng là khóa chính của quan há khác
Ví dā:
SV(MaSV, tenSV, ngsinh, quequan)
MH(MaMH, tenMH, HSMH, Khoa)
BĐ(MaBĐ, MaMH, MaSV, tenSV, diem, ky)
2.4 Các thành phần dữ liệu mức logic
Các cách tiÁp cận để mô hình hoá dă liáu: Có hai cách tiÁp cận để mô hình hoá dă liáu nh° sau:
- Cách 1: V¿ mô hình thąc thể liên kÁt – Cách tiÁp cận tÿ trên xuáng (Top - down):
Để xây dąng mô hình thąc thể liên kÁt cần xác đánh mßt cách trąc giác các đái t°ợng quan trãng mà mßt há tháng cần phÁi l°u tră nh° dă liáu (đó là các thąc thể) và xác đánh các thußc tính mô tÁ cho các thąc thể đó cùng vái quan há giăa các thąc thể NÁu áp dụng đúng các luật trong mô hình thąc thể liên kÁt thì ta s¿ có các quan há đã đ°ợc chuẩn hoá
- Cách 2: Chuẩn hoá – Các tiÁp cận tÿ d°ái lên (Bottom - up):
Để chuẩn hoá cần nhóm tÃt cÁ các thußc tính liên quan của há tháng vào trong mßt quan há
Áp dụng các luật chuẩn hoá để tách quan há đó thành các quan há có cÃu trúc tát h¢n, giÁm bát d° thÿa dă liáu
Mỗi cách tiÁp cận đều có °u điểm và nh°ợc điểm riêng vì vậy trong thąc tÁ ng°ãi ta th°ãng
phái hợp cÁ hai cách tiÁp cận này để có đ°ợc mßt mô hình dă liáu chính xác nhÃt KÁt quÁ
cuái cùng của phần thiÁt kÁ logic CSDL là tập các bÁn ghi logic biểu dißn các quan há trong CSDL
Trang 35Ta có các quan há:
SINH VIÊN (mã SV, hã tên, ngày sinh, tên láp)
LàP (tên láp, phòng hãc)
Vái liên k¿t N-N: Cần tách thành quan há 1-N rãi mái chuyển thành quan há Khi đó quan
há t°¢ng ứng vái thąc thể kÁt hợp s¿ có khoá ghép và mỗi thußc tính khoá của quan há này
là mßt khoá ngoài
Ví dụ: Vái mô hình thąc thể liên kÁt
Ta có các quan há:
GIÁO VIÊN (mã SV, tên GV, đ¿i chß, đián tho¿i)
MÔN HâC (mã MH, tên MH, sá trình)
GIÀNG D¾Y (mã GV, mã MH, ngày bắt đầu)
Mßt sá liên kÁt đÁc biát:
- Tą liên kÁt:
Ví dụ: Mỗi nhân viên có không hoÁc mßt ng°ãi quÁn lý (giám đác không có ng°ãi quÁn lý nào) Mỗi nhân viên có thể quÁn lý 0, 1 hay
Trang 36nhiều nhân viên
Ta có mßt quan há: NHÂN VIÊN (mã NV, hã tên, ngày sinh, giái tính, đáa chß, mãNV quÁn lý)
Trong đó Mã NV quÁn lý là mßt mã NV nào đó
Ví dā: Chuyển mô hình thąc thể liên kÁt sau thành các bÁn ghi logic biểu
dißn các quan há: Các bÁn ghi logic mô tÁ các quan há trong công ty th°¢ng
m¿i Y:
NHÀ CUNG CÂP ( mã NCC, tên NCC, đáa chß, đián tho¿i, fax) HÀNG (mã hàng, tên hàng, đ¢n giá, sá l°ợng, mô tÁ, mã NCC, sá kho) KHO (sá kho, dián tích, mô tÁ)
PHIÀU XUÂT (sá phiÁu, ngày xuÃt, sá cāa hàng) DÒNG PHIÀU XUÂT (mã hàng, sá phiÁu, sá l°ợng xuÃt)
CĀA HÀNG (sá cāa hàng, đáa điểm, mô tÁ)
Trang 372.5 Mô hình thực thể - kết hợp (ERD):
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
Thực thể - Tập thực thể
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ể
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ÿ
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
NHÂN VIÊN
Trang 38Ví dụ 1: 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
Ví dụ 2: 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
Mối kết hợp:
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 khách hàng có thể mua hàng nhiều lần (nhiều hóa đ¢n) Ký 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
- Mái kÁt hợp không có thußc tính
- Mái kÁt hợp có thußc tính
Bản số :
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
Mßt thể hián của mßt tập thąc thể đ°ợc nhận biÁt bằng tập hợp tÃt cÁ các giá trá của tÃt cÁ các thußc tính của thể hián thußc tập thąc thể, đó chính là dă liáu của đái t°ợng trong thÁ giái
thąc
Trang 39Thể hián của mßt mái kÁt hợp: Xét mái kÁt hợp bán giăa HÓA Đ¡N và MÀT HÀNG, trong
đó mßt thể hián của quan há này s¿ t°¢ng ứng vái viác mßt hóa đ¢n bán mÁt hàng vái sá l°ợng và đ¢n giá là bao nhiêu
Nh° vậy, mßt thể hián của mßt mái kÁt hợp là tập hợp các thể hián của các tập thąc thể tham gia vào mái kÁt hợp đó
- BÁn sá: BÁn sá của mßt tập thąc thể đái vái mßt mái kÁt hợp là cÁp (bÁn sá tái thiểu, bÁn sá tái đa) Trong đó chúng đ°ợc đánh nghĩa nh° sau
+ BÁn sá tái thiểu: bằng 0 hoÁc 1, là sá lần tái thiểu mà mßt thể hián bÃt
kỳ của mßt tập thąc thể tham gia vào các thể hián của mái kÁt hợp + BÁn sá tái đa: bằng 1 hoÁc n, là sá lần tái đa mà mßt thể hián bÃt kỳ của mßt tập thąc thể tham gia vào các thể hián của mái kÁt hợp
Ví dā: Mßt nhân viên thußc về mßt hoÁc nhiều phòng ban, mßt phòng ban có thể có mßt hoÁc
nhiều nhân viên trąc thußc
- Khóa của mßt mái kÁt hợp: Khóa của mßt mái kÁt hợp nhận đ°ợc bằng cách kÁt
hợp khóa của các tập thąc thể tham gia vào mái kÁt hợp đó Tập hợp tÃt cÁ các giá trá của các thußc tính khóa của mßt mái kÁt hợp xác đánh duy nhÃt mßt thể hián của
Trang 40- Sá chiều (bậc) của mßt mái kÁt hợp: Sá chiều của mßt mái kÁt hợp là sá tập thąc
thể tham gia vào mái kÁt hợp đó
- Mái kÁt hợp tą thân (đá quy, vai trò): Mái kÁt hợp tą thân là mßt mái kÁt hợp tÿ
mßt tập thąc thể đi đÁn chính tập thąc thể đó
Ví dā : Mßt nhân viên có thể không cháu są quÁn lý của ai hoÁc mßt ng°ãi, mßt ng°ãi có thể
không quÁn lý ai hoÁc nhiều ng°ãi
Tång quát hóa và chuyên biát hóa: MÁc dù khái niám bÁn sá của tập thąc thể đái vái mái kÁt
hợp cho chúng ta nhận biÁt mỗi thể hián của tập thąc thể tham gia tái thiểu là bao nhiêu, và tái đa là bao nhiêu vào mái kÁt hợp Nh°ng trong thąc tÁ, mßt láp các đái t°ợng trong tå chức
có khi tãn t¿i tình tr¿ng là: mßt sá đái t°ợng (tập con) của nó tham gia vào mßt mái kÁt hợp này, sá còn l¿i có thể tham gia hoÁc không vào nhăng mái kÁt hợp khác, trong khi có thể tÃt
cÁ các phần tā của chúng l¿i cùng tham gia vào mái kÁt hợp khác năa HoÁc mßt tập con này
có nhăng đÁc tính này, còn nhăng phần tā khác thì có thêm nhăng đÁc tính khác hoÁc không
Chẳng h¿n cùng là nhân viên trong nhà máy, thì công nhân trąc tiÁp tham gia sÁn xuÃt, nhân viên quÁn lý tham gia công tác quÁn lý Ðái vái nhân viên quÁn lý ng°ãi ta quan tâm đÁn chức vụ, còn đái vái nhân viên công nhân thì ng°ãi ta l¿i quan tâm đÁn bậc Ðể phÁn ánh tình
tr¿ng đó trong ph°¢ng pháp mô hình hóa, ng°ãi ta dùng khái niám chuyên biát hóa / tång quát hóa Chuyên biát hóa nghĩa là phân ho¿ch mßt thąc thể thành các tập (thąc thể) con
Tång quát hóa là gßp các tập thąc thể thành mßt tập thąc thể bao hàm tÃt cÁ các thể hián của các tập thąc thể con Các chuyên biát đ°ợc thÿa h°ång tÃt cÁ các thußc tính của các tập thąc thể mức trên và chính nó có thể có nhăng thußc tính khác Các tập thąc thể chuyên biát có
thể có nhăng mái kÁt hợp khác nhau vái nhăng tập thąc thể khác và do đó các xā lý s¿ có thể khác nhau tùy theo tÿng chuyên biát thành phần
Ký hißu: