Tải bản đầy đủ (.pdf) (94 trang)

giáo trình cơ sở dữ liệu nghề tin học ứng dụng cao đẳng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.4 MB, 94 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

Uỵ BAN NHN DN THNH PH Hâ CHÍ MINH

<b>TR¯âNG CAO ĐÀNG BÁCH KHOA NAM SÀI GỊN </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LâI GIàI THIÞU </b>

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¿. Ci 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:

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Á hồn thành cn 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ß:

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. ………….

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

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

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

Chuyên biát hoá /tång quát hoá ... 35

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

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Phủ tái thiểu của tập phụ thußc hàm ... 60

Các bÃt th°ãng khi cập nhật dă liáu ... 69

Są cần thiÁt phÁi chuẩn hố CSDL ... 70

Quy trình chuẩn hố CSDL ... 71

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>GIÁO TRÌNH MƠN C¡ Sä D LIịU </b>

<b>Tờn mụn hỏc/mụ un: CÂ Sồ D Liòu Mã mơn hác/mơ đun: MH10 </b>

<b>Vß trí, tính chất, ý nghĩa và vai trị cÿa mơn hác/mơ đun: </b>

<b>- 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 </b>

dụng trong môi tr°ãng Windows, là môn hãc bắt buòc trong chÂng trỡnh ngnh Tin h<b>óc ng dng hỏ cao đẳng.. </b>

<b>- Ý nghĩa và vai trị cÿa mơn hác/mơ đun: </b>

<b> Ý nghĩa: Mơn C¢ Så Dă Liáu là mßt trong nhăng nßi dung đ°ợc sā dụng trong </b>

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 dụng có sā dụng c¢ så dă liáu.

<b> Vai trị: Mơn hãc này áp dụng cho sinh viên ngành Tin hãc ứng dụng trình đß Cao đẳng. </b>

<b>Māc tiêu cÿa môn hác/mô đun: - VÁ ki¿n thāc: </b>

+ Phân biát đ°ợc các d¿ng c¢ så dă liáu; + Tính đ°ợc các phép tố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.

<b>- VÁ kỹ năng: </b>

 Khái qt 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.

<b>- VÁ năng lực tự chÿ và trách nhißm: </b>

 Rèn lun lịng 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.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b> C¡ s d liu </b>

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.

<i>Hình 1-1 Sơ đồ tổng quát về một cơ sở dữ liệu </i>

<b> ¯u điểm của c¡ sở dữ liệu </b>

- 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 qn 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.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b> Những vấn đề mà CSDL cần phải giải quyết </b>

- 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 tồ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 cn thit phi cú mòt c ch bo 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 mng cc bò u cú cung cp c ch ny.

- 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 đó cn thit phi 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 hc 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 ln ån đánh, mßt CSDL nht thit phi cú mòt c ch khụi phc dă liáu khi có các są cá bÃt ngã xÁy ra.

<b>1.2. Các đặc điểm của h°ớng tiếp cận c¡ sở dữ liệu. </b>

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.

<b>1.3. Quản lý c¡ sở dữ liệu Quản lý bằng File </b>

- 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 dng lu tr, truy vn v chònh sa d liỏu. Cỏc chÂng trỡnh ng dng để 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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

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

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

mß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 khn 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 u cầu qn 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 u cầu qn lý cÁ q trình tuyển dụng và nâng l°¢ng thì cần có thêm mßt (hc 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, xt 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.

<b>Ví dā: </b>

Cũng ví dụ trên, Phịng Tå chức nhân są giã đây cịn qn 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: q trình đào t¿o chun 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, q trình cơng tác, q 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Á tố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 ngồ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 ngồi t°¢ng ứng.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>1.4. Các mơ hình dữ liệu. </b>

Mơ hình dă liáu là są trÿu t°ợng hố 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 qn lý trên ph¿m vi tồ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 để qn 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 đủ 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), thc 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á qn trá c¢ så dă liáu sā dụng.

<b>Các lo¿i mơ hỡnh c sồ d liòu th hiòn: </b>

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

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

- 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ể thc về nhiều tập hợp.

Ví dụ: Mơ hình CSDL m¿ng

<i>Hình 1-4- Mơ hình CSDL mạng </i>

<b>¯u điểm: </b>

- Dß thể hián mái liên kÁt M-N

<b>- Ki</b>ểu truy cập dă liáu mềm dẻo h¢n kiểu phân cÃp

<b>Nh°ÿc điểm: </b>

- 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.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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, thc 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.

<i>Hình 1-5- Minh họa mơ hình cơ sở dữ liệu quan hệ </i>

 Mơ hình h°áng đái t°ợng: Trong mơ hình h°áng đái t°ợng, các thc 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ể 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.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b> Mơ hình mạng </b>

Mơ hình dă liáu m¿ng (Network Data Model) - cịn đ°ợc gãi tắt là mơ hình m¿ng hc 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 ti mòt Ân vỏ, ỏi tng cn phn 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ß thc 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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b> Mơ hình phân cấp </b>

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ó thc 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' là Mã sá Thành phá Hã Chí Minh.

- Mẫu tin đÁc tr°ng cho quận huyán gãm Mã sá tßnh thành+Mã sá quận huyán, Tên quận huyán trong tßnh thành phá đó. '0201' là Mã sá quận NhÃt của TP.Hã Chí Minh. - Mẫu tin đÁc tr°ng cho ph°ãng xã gãm Mã sá tßnh thành+Mã sá quận huyán+Mã sá

ph°ãng xã, Tên ph°ãng xã thußc quận huyán trong tßnh thành phá đó. '020101' là Mã sá ph°ãng BÁn nghé, Quận NhÃt, TP.Hã Chí Minh.

- Mẫu tin đÁc tr°ng cho đáa bàn điều tra trong mßt ph°ãng xã. '02010101' là mã sá đáa bàn điều tra sá 01 trong ph°ãng BÁn nghé.

- 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 khu 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 hun (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.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i>Hình 1-7 - Mơ hình dữ liệu phân cấp (Hierachical Model) </i>

<b> Mơ hình thực thể kết hợp </b>

Hián nay mơ hình dă liáu quan há th°ãng đ°ợc dùng trong các há quÁn trá CSDL, đây là mơ hình dă liáu å mức vật lý. Để thành lập đ°ợc mơ hình này, th°ãng là phÁi dùng mơ hình dă liáu å mức quan niám để đÁc tÁ, mßt trong nhăng mơ hình å d¿ng đó là mơ hình thąc thể kÁt hợp.

 Thąc Thể (entity):Thąc thể là mßt są vật tãn t¿i và phân biát đ°ợc, chẳng h¿n sinh viên Nguyßn Văn Thành, láp Cao Đẳng Tin Hãc 2A, môn hãc C¢ Så Dă Liáu, xe máy có biển sá đăng ký 52-0549,… là các ví dụ về thąc thể.

 Thc tính (attribute): Các đÁc điểm riêng của thąc thể gãi là các thc tính. Chẳng h¿n các thc tính của sinh viên Ngun 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 thc tính đ°ợc viÁt bằng chă in hoa)

 Lo¿i thąc thể (entity type): Là tập hợp các thąc thể có cùng thc tính. Mỗi lo¿i thąc thể đều phÁi đ°ợc đÁt tên sao cho có ý nghĩa. Mßt lo¿i thąc thể đ°ợc biểu dißn bằng mßt hình chă nhật.

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

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

- Khoá (key): Khoá của lo¿i thąc thể E là mßt hay mßt tập các thc 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 thc tính của mßt lo¿i thąc thể thì tập thc tính khố 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 hố mơ hình, ng°ãi ta có thể chß nêu tên các lo¿i thąc thể; cịn các thc tính của lo¿i thąc thể đ°ợc liát kê riêng.

<b>Ví dā: Bài tốn qn lý im ca sinh viờn c phỏt biu s bò nh sau </b>

- 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 tố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.

<b>Ví dā: vái lo¿i thąc thể Sinhviên thì cần qn lý các thc tính nh°: MASV,HOTENSV, </b>

NGAYSINH,… và ta có thể biểu dißn nh° sau:

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="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 <thc= 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 đó.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

Trong 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á là mơ hình đ°ợc nghiên cứu nhiều nhÃt, và thąc tiòn ó cho thy rng nú cú c sồ lý thut 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.

<b> Khái niệm của mơ hình dữ liệu quan hệ. </b>

- Thc Tính(attribte):

Thc 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 thc tính có mßt tên gãi và phÁi thc về mßt kiểu dă liáu nhÃt đánh.

- Kiểu dă liáu (data type)

Các thc 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 hc là kiểu có cÃu trúc. NÁu thc tính có kiểu dă liáu là vơ h°áng thì nó đ°ợc gãi là thc tính Ân hay thuòc tớnh nguyờn tỏ, nu 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à thc tính ngun tá

Chẳng h¿n vái sinh viên Ngun Văn Thành thì các thc tính hã và tên, mã sá sinh viên thc kiểu chuỗi, thc tính ngày sinh thc kiểu ngày tháng, hß khẩu th°ãng trú kiểu chuỗi, thc tính hình Ánh kiểu hình Ánh,…

Miền giá trá (domain of values): Thơng th°ãng mỗi thc 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 thc tính đó. Chẳng h¿n thc tính NĂ có miền giá trá là {nam,nă}, thc tính màu da có miền giá trá là {da trắng, da vàng, da đen, da đß}, thc tính điểm thi là các sá thußc tập {0; 1; 2;…,10].

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

L°u ý rằng nÁu không l°u ý đÁn ngă nghĩa thì tên của các thc 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 thc 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 thc 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 thc tính phÁi đ°ợc đÁt mßt cách gợi nhá, khơng nên đÁt tên thc tính q 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 thc tính q ngắn (vì nó s¿ khơng cho thÃy ngă nghĩa của thc tính), đÁc biát khơng đÁt trùng tên hai thc 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 thc 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 qn 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 thc 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 thc 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 thc 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 thc tính đ°ợc gãi là quan há n ngơi. Để chß quan há r xác đánh trên l°ợc đã quan há Q ta có thể viÁt r(Q).

- Bß (Tuple):

Mỗi bß là nhăng thơng tin về mßt đái t°ợng thc mßt quan há, bß cũng cịn đ°ợc gãi là mẫu tin. Th°ãng ng°ãi ta dùng các chă cái th°ãng (nh t,à,) biu diòn bò trong quan hỏ, chng h¿n để nói t là mßt bß của quan há r thì ta viÁt t * r.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="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ỳ thc r thì t1.S ≠ t2.S. Mßt l°ợc đã quan há có thể có mßt hc nhiều siêu khoá.

Chẳng h¿n l°ợc đã quan há Sinhvien å trên có các siêu khố là:

{MASV,HOTENSV},{MASV,HOTENSV,NU},{MASV,HOTENSV,NU,TINH },…

Siêu khố khơng chứa mßt siêu khố nào khác đ°ợc gãi là khố chß đánh, trong tr°ãng hợp l°ợc đã quan há có nhiều khố chß đánh (hay khố nßi), thì khố đ°ợc chãn để cài đÁt gãi là khố chính (trong các phần sau khố chính đ°ợc gãi tắt là khoá). Chẳng h¿n vái l°ợc đã quan há Sinhvien trên có khố là {MASV}. Th°ãng các thc tính khố đ°ợc g¿ch d°ái theo kiểu liền nét.

Mßt thc tính đ°ợc gãi là thc tính khố ngo¿i nÁu nó khơng là thc tính khố của mßt l°ợc đã quan há này nh°ng l¿i là thc tính khố 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 thc tính khố 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 khố của t là đủ để dị tìm và hồn tồ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 hố,…) 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 thc tính giÁ gãi là mã sá để làm khố (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 hố th°ãng có khố là mßt tå hợp của hai hay nhiều thc 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 khố chính. Tức là nÁu thêm mßt bß mái q2 có giá trá khố chính trùng vái giá trá khố 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.

<b>Ng°ãi ta cũng quy °ác r¿ng: </b>

- Trong mßt bß của quan há các thc tính khố khơng chứa giá trá rỗng.

- Khơng đ°ợc phép sāa đåi giá trá thc tính khố của mßt bß q. NÁu mn sāa đåi giá trá thc tính khố 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á khố đã đ°ợc sāa đåi.

<b>1.5. Hệ quản trị CSDL (Data Base Management System) </b>

Để 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:

<b>Ngôn ngā giao ti¿p giāa ng°ãi sÿ dāng và CSDL, bao gßm : </b>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="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/xố)

- 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 gii quyt cỏc vn 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 xt dă liáu tr°ác,…

- Há qn 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 dng.

SÂ ó tång quát của mßt há quÁn trá CSDL

- Mỗi há qn 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 bc tồ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).

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>1.6. Ng°ời dùng liên quan đến CSDL </b>

Có nhiều ng°ãi tham gia vo s hot òng ca 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 ny ta cú nhng đái t°ợng chính sau:

Qn 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 tồ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 yu thuòc nhúm th nht) thit 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 tố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 ngồi tå chức nh° khách hàng, hay bên trong tå chức nh° nhân viên phòng kÁ tố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 chun 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.

<b>CÂU HâI VÀ BÀI TÀP BÀI 1 </b>

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>Bà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, </b>

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ß thc 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ß thc duy nhÃt mßt nhân viên.

<b>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á tồn </b>

qc 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

-<b> Đáa bàn điều tra thußc mßt ph°ãng xã </b>

- Ph°ãng xã thußc mßt quận huyán -<b> 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 </b>

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 tp hp 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å chc 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 tp hp 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á qn 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

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Cõ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. Kin 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 ó <Kin trỳc ca 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 biu diòn tru tng ca <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 biu diòn tru tng ca <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

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

c. 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á qn 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 thc 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 thc tính, các dịng dă liáu d. Tên quan há, tên thc tính Câu 20: L°ợc đã quan há chß đề cập đÁn nhăng thơng tin gì?

a. Tên các thc tính và các dòng dă liáu b. Tên quan há và tên các thc tính c. Tên quan há và các dòng dă liáu d. Tên thc 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. Thc tính là mßt đÁc tr°ng của quan há. Mỗi thc 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 thc tính.

b. Thc tính là mßt đÁc tr°ng của quan há.

c. Mỗi thc 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 thc tính.

d. Thc tính là mßt tập con của tích Đề-các của mßt hc nhiều miền thc 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

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

<b>Bi 2. THIắT Kắ CĂ Sọ D LIịU. </b>

<i>Hỡnh 2-1- Cơ sở dữ liệu </i>

<b>B°ác 1. ĐÁc tÁ và phân tích 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ý </b>

<b> Thiết kế mức khái niệm </b>

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 bc. 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ể.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<b> Thiết kế mức Logic </b>

Đ°a ra mơ hình dă liáu logic đáp ứng đ°ợc 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 ny l mòt lc ó 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.

<b> Thiết kế mức vậy lý </b>

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.

<b>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 </b>

 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

 Thc 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 thc tính của nó. Các giá trá thc 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

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

- Thuòc tớnh Ân trỏ: thc tính có giá trá duy nhÃt cho mßt thąc thể cụ thể. - Thc tính đa trá: mßt thc 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.

- Thc tính đánh danh (thc tính khóa): là mßt hc mßt sá tái thiểu các thc 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 thc tính có g¿ch chân

- Thc tính mơ tÁ: Là các thc 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. Thc tính tên gãi: là thc tính mơ tÁ để chß tên các đái t°ợng thc thąc thể. Thc tính tên gãi để xác đánh các thąc thể (tách các thąc thể).

- Thc tính suy dißn (thc tính dẫn xt): Thc tính mà giá trá của nó có thể tính đ°ợc thơng qua giá trá của các thc tính khác.

+ Các kiểu liên kÁt cũng có thể có các thc tính, giáng nh° các thc tính của các kiểu thąc thể.

<b> Quan hệ 1-1, 1-n, n-n </b>

- Các lo¿i mái liên kÁt: 1-1; 1-n; n-n

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="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);

- 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 thc tính và gắn thc 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 thc 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ể.

<b>Ví dā: Bài tốn qn lý th° vián đ¢n giÁn Th° vián đ°ợc chia thành các nhánh. Th° vián l°u </b>

tră thông tin về đầu sách. Mỗi đầu sách thc mßt nhà xt 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Á

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<i>Hình 2-2 - Mơ hình liên kết thực thể _ER </i>

- 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) DOCGIA(MaDG , TenDG , SDT)

<b>2.3. Các thành phần dữ liệu mức vật lý Kiểu dữ liệu </b>

- Các thc 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 hc là kiểu có cÃu trúc. NÁu thc tính có kiểu dă liáu là vơ hỏng thỡ nú c gói l thuòc tớnh Ân hay thc tính ngun tá, nÁu thc 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à thc tính ngun tá

Ví dụ: vái sinh viên Ngun Văn Thành thì các thc tính hã và tên, mã sá sinh viên thußc kiểu chuỗi, thc tính ngày sinh thc kiểu ngày tháng, hß khẩu th°ãng trú kiểu chuỗi, thc tính hình Ánh kiểu hình Ánh,…

- Miền giá trá (domain of values): Thông th°ãng mỗi thc 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 thc tính đó. Chẳng h¿n thc tính NĂ có miền giá trá là {nam,nă}, thc tính màu da

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

có miền giá trá là {da trắng, da vàng, da đen, da đß}, thc tính điểm thi là các sá thußc tập {0; 1; 2;…,10].

<b>L°u ý : NÁu khơng l°u ý đÁn ngă nghĩa thì tên của các thc tính th°ãng đ°ợc ký hiáu bằng </b>

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 thc 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 thc tính trong tr°ãng hợp tång quát hay muán đề cập đÁn sá l°ợng các thc tính. Tên thc tính phÁi đ°ợc đÁt mßt cách gợi nhá, khơng nên đÁt tên thc tính q 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 thc tính q ngắn (vì nó s¿ khơng cho thÃy ngă nghĩa của thc tính), đÁc biát khơng đÁt trùng tên hai thc 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.

<b> Khố </b>

- Khoá (key): Khoá của lo¿i thąc thể E là mßt hay mßt tập các thc tính của E có thể dùng để phân biát hai thąc thể bÃt kỳ của E.

<b>Ví dā: khố của lo¿i thąc thể Sinhvien là MASV, của Láp là MALOP, của Khoa là </b>

MAKHOA, của Monhoc là MAMH,…

- Siêu khoá: Siêu khoá là tập hợp con các thc tính của Q<small>+</small> 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 khố trong mßt l°ợc đã quan há: có ít nhÃt mßt siêu khố ( chính là Q<small>+</small>). Có thể có nhiều siêu khố

<b>Ví dā 1: Cho l°ợc đã quan há SINHVIEN(MASV, HOSV, TENSV, NGAYSINH) ta có các </b>

siêu khóa nh° sau: S1: {MASV}

S2: {MASV, HOSV, TENSV} S3: {MASV, NGAYSINH}

S4: {MASV, HOSV, TENSV, NGAYSINH}

<b>Ví dā 2: Cho l°ợc đã quan há SINHVIEN(MASV,MAMH, LANTHI, DIEM) ta có các siêu </b>

khóa nh° sau:

S1: {MASV, MAMH, LANTHI}

S2: {MASV, MAMH, LANTHI, DIEM}

- Khố chính (Khố chß đánh):Mục đích của siêu khố là để nhận dián 1 bß trong quan há. Nh°ng nÁu ta dùng siêu khố bÃt kỳ để nhận dián 1 bß trong quan há xét về mÁt hiáu q 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 khố <nhß nhÃt= chứa ít thc tính nhÃt và khác rỗng làm khố chß đánh hay khố chính.Vì vậy, ta thÃy khố chính khơng bao giã chứa siêu khố khác bên trong nó.

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

Trong tr°ãng hợp 1 l°ợc đã Q có nhiều khố chß đánh, khi cài đÁt trên 1 há quÁn trá CSDL ta chß đ°ợc chãn 1 trong các khố chß đánh để t¿o chß mục chi phái đÁn các bß. Khi đó:

+ Khố chß đánh đ°ợc chãn s¿ gãi là khóc hính ( Primary key) + Các khố 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 khố đ°ợc gãi là thc tính khố và khi liát kê trong 1 l°ợc đã quan há s¿ đ°ợc g¿ch d°ái.

Trong thąc tÁ, đái vái nhăng l°ợc đã quan há mô tÁ về con ng°ãi hay są vật nh° sinh viên, vật t°… thì khố là do ta gán thêm cho nó. Chính là ta gán cho nó 1 thc tính giÁ t¿o.

Quy °ác: Trong mßt bß của quan há các thc tính khố khơng chứa giá trá rỗng. Không đ°ợc phép sāa đåi giá trá của thc tính khố. NÁu mn sāa đ°ợc thc tính khố, tr°ác tiên ta h bß cũ, sau đó thêm vào bß mái vái khố đẫ đ°ợc sāa đåi. - Khố ngo¿i

Khóa ngo¿i: Mßt tập các thc 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.

- Cách 2: Chuẩn hoá – Các tiÁp cận tÿ d°ái lên (Bottom - up):

Để chuẩn hố cần nhóm tÃt cÁ các thc 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 hố để 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.

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

Ta 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)

<b>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 </b>

há t°¢ng ứng vái thąc thể kÁt hợp s¿ có khố ghép và mỗi thc tính khố của quan há này là mßt khố ngồi.

Ví dụ: Vái mơ hình thąc thể liên kÁt

Ví dụ: Mỗi nhân viên có khơng hc mßt ng°ãi qn lý (giám

đác khơng có ng°ãi qn lý nào). Mỗi nhân viên có thể quÁn lý 0, 1 hay

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

nhiề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 qn lý)

Trong đó Mã NV qn lý là mßt mã NV nào đó. - Liên kÁt phụ thc

<b>Ví dā: Mßt mÁt hàng có nhiều giá khác nhau trong nhăng giai đo¿n khác </b>

nhau.

Ta có các quan há:

MÀT HÀNG (Mã hàng, Tên hàng) GIÁ (Mã hàng , Ngày bắt đầu , đ¢n giá)

<b>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 </b>

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 XT (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Á)

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

 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 hc thc 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

<b> Thuộc tính của tập thực thể: </b>

Khi phân tích mßt thc tính, thơng th°ãng cần xét đÁn kiểu dă liáu và miền giá trá t°¢ng ứng của thc tính đó. Chẳng h¿n các thc tính Mã nhân viên (MANV), Hã tên (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 thc tính sau:

- Thc tớnh Ân, kt hp: Thuòc tớnh Ân l thuòc tớnh khụng th chia ra thnh nhng phn con nhò hÂn. Cịn thc 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 thc tính khác). Ví dụ tên nhân viên có thể cÃu trúc nh° là thc tính kÁt hợp bao gãm tên, chă lót, và hã. Thc tính kÁt hợp có thể xt hián theo są phân cÃp. Ví dụ thc tính đáa chß nhân viên có các thc tính thành phần là sá nhà, đ°ãng, thành phá, tßnh.

- Thc 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 thc 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 thc 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 đó, hc là khơng biÁt đ°ợc (khơng biÁt giá trá thąc są có tãn t¿i hay khơng). - Thc tính suy ra: Giá trá của lo¿i thc tính này có thể đ°ợc suy ra tÿ các thc tính

NHÂN VIÊN

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

Ví d<i>ụ 1: tập thąc thể khách hàng có thc tính số lượng tài khoản vay cho biÁt bao </i>

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<i>ß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 </i>

khách hàng.

Ví d<i>ụ 2: tập thąc thể nhân viên có các thc 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à thc tính thời gian làm việc, cho biÁt </i>

t<i>å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 </i>

ra t<i>ÿ giá trá của ngày bắt đầu và ngày hián thãi. </i>

<b> Mối kết hợp: </b>

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 kt hp, chng hn nh mi 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ó thc tính

- Mái kÁt hợp có thc tính

<b> Bản số : </b>

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, Ngun Trãng, Vũ, 11 Ngun 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 thc tính của thể hián thc tập thąc thể, đó chính là dă liáu của đái t°ợng trong thÁ giái thąc.

</div><span class="text_page_counter">Trang 39</span><div class="page_container" data-page="39">

Thể 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ỏ ny 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.

<b>Ví dā: Mßt nhân viên thc về mßt hc nhiều phịng ban, mßt phịng ban có thể có mßt hc </b>

nhiều nhân viên trąc thc.

<b> Khóa </b>

Khóa của mßt tập thąc thể: Khóa của mßt tập thąc thể là mßt thc tính hc mßt sá thc tính của thąc thể, sao cho vỏi mi giỏ trỏ ca cỏc thuòc tớnh ny, tÂng ứng mßt và chß mßt thể hián của tập thąc thể (xác đánh mßt thąc thể duy nhÃt). Trong nhiều tr°ãng hợp khóa của tập thąc thể th°ãng là thc tính chß đánh của tập thąc thể đó.

Mßt thąc thể có thể có nhiều khóa. Khi đó cần chãn ra mßt khóa để làm khóa chính. Ký hiáu: Là thc tính đ°ợc g¿ch d°ái

- 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 thc 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

</div><span class="text_page_counter">Trang 40</span><div class="page_container" data-page="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ể đó.

<b>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ể </b>

khơng qn lý ai hc 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. Hc 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 hc 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 chun 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 qt 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 thc tính của các tập thąc thể mức trên và chính nó có thể có nhăng thc 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.

<b>Ký hißu: </b>

</div>

×