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

Bài giảng cơ sở dữ liệu it06 Đại học mở hà nội

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 (3.37 MB, 124 trang )

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>BÀI 1: CÁC KHÁI NIỆM CƠ BẢN – MƠ HÌNH THỰC THỂ </b>

Cơ sở dữ liệu (Database – viết tắt là CSDL) là lĩnh vưc nghiên cứu các mơ hình, ngun lý, phương pháp tổ chức dữ liệu trên các vật mang tin.

Cơ sở dữ liệu đã trở thành một thành phần chủ yếu trong cuộc sống hàng ngày của xã hội hiện đại. Tại mỗi thời điểm con người thực hiện nhiều hoạt động cần có giao tiếp với cơ sở dữ liệu như: rút tiền và gửi tiền trong ngân hàng, đăng ký chỗ trên máy bay và khách sạn, truy cập và tra cứu tài liệu trong thư viện, đặt mua hàng trực tuyến trên mạng, … Tương ứng, tại các ngân hàng, các cửa hàng, các công ty và các đại lý, người ta cũng cập nhật tự động dữ liệu để quản lý tiền bạc và hàng hóa.

Tất cả các ứng dụng trên đều được gọi là ứng dụng cơ sở dữ liệu truyền thống. Trong đó, hầu hết các thông tin được lưu trữ và truy cập là các văn bản hoặc số. Những năm gần đây do các tiến bộ về mặt công nghệ và kỹ thuật đã đưa đến các ứng dụng mới của cơ sở dữ liệu. Các hệ cơ sở dữ liệu đa phương tiện bây giờ có thể lưu trữ và xử lý hình ảnh, phim và tiếng nói. Các hệ thơng tin địa lý có thể lưu trữ và phân tích bản đồ, các dữ liệu thời tiết và các ảnh vệ tinh. Ngày nay, kho dữ liệu và hệ thống phân tích trực tuyến được sử dụng nhiều trong các cơng ty để lấy ra và phân tích những thơng tin có lợi từ các cơ sở dữ liệu lớn nhằm đưa ra các quyết định. Các kỹ thuật cơ sở dữ liệu động và thời gian thực được sử dụng trong kiểm tra tiến trình cơng nghiệp và sản xuất. Các kỹ thuật tìm kiếm cơ sở dữ liệu đang được sử dụng nhiều cho World Wide Web để cung cấp việc tìm kiếm các thơng tin cần thiết cho người sử dụng bằng cách duyệt qua Internet.

Để hiểu được các cơ sở kỹ thuật của cơ sở dữ liệu chúng ta phải bắt đầu từ các cơ sở kỹ thuật của cơ sở dữ liệu truyền thống. Mục đích của giáo trình này là nghiên cứu các kỹ thuật đó. Trong chương này, chúng ta sẽ tìm hiểu định nghĩa cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, mơ hình cơ sở dữ liệu và một số thuật ngữ cơ bản khác.

<b>I. CƠ SỞ DỮ LIỆU 1.1 Cơ sở dữ liệu là gì </b>

<i><b>Dữ liệu (Data): Các thơng số, đặc trưng cơ bản có thực và thu thập được của một </b></i>

<i>đối tượng cần quản lý. Ví dụ: đối tượng cần quản lý là sinh viên, khi đó dữ liệu về 1 sinh </i>

<i>viên là họ tên, ngày sinh, giới tính, quê quán, lớp, khoa, trường, kết quả học tập, ... của sinh viên đó. </i>

<b>File dữ liệu hay bảng dữ liệu (Data File hoặc Data Table): Là một file hoặc một </b>

bảng lưu trữ các dữ liệu về cùng một loại đối tượng và có chung một ý nghĩa sử dụng. Các dữ liệu đó có cùng cấu trúc và được lưu trữ dưới dạng bản ghi trong 1 danh sách được đánh chỉ số hoặc trên bộ nhớ ngồi của máy tính

<i><b>Cơ sở dữ liệu (DataBase): Là tập các file hoặc các bảng dữ liệu có quan hệ với </b></i>

nhau và có chung một ý nghĩa sử dụng.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<i>Ví dụ cơ sở dữ liệu phục vụ cho công tác tuyển sinh gồm một số bảng dữ liệu sau: bảng dữ liệu hồ sơ thí sinh, bảng dữ liệu quản lý thi, bảng dữ liệu quản lý đánh phách, các bảng dữ liệu quản lý điểm các môn thi theo số phách.... Các bảng này chứa các dữ liệu về các thi sinh của một hội đồng tuyển sinh. </i>

Cơ sở dữ liệu hiện nay bao gồm các loại dữ liệu cơ bản như: âm thanh, tiếng nói, chữ viết, văn bản, đồ họa, hình ảnh tĩnh hay hình ảnh động, … được mã hóa dưới dạng các chuỗi bit và được lưu dưới dạng file dữ liệu trong bộ nhớ của máy tính. Cấu trúc dữ liệu được mơ tả theo quy tắc dựa trên lý thuyết toán học.

Cơ sở dữ liệu là tài nguyên thông tin dùng chung cho nhiều người khác nhau, bất kỳ người nào sử dụng trên máy tính hay tại các thiết bị đầu cuối về mặt nguyên tắc đều có quyền truy nhập khai thác toàn bộ hay một phần dữ liệu theo chế độ trực tuyến hay tương tác không phụ thuộc vào vị trí địa lý của người sử dụng với các tài nguyên đó.

Khi xây dựng một cơ sở dữ liệu của bài toán cần đảm bảo tối thiểu các yêu cầu sau:

<i>Tính cấu trúc: Dữ liệu trong CSDL phải được lưu trữ theo một cấu trúc nhất định </i>

nào đó tương ứng với yêu cầu bài tốn hoặc thực tế.

<i>Tính tồn vẹn: Các giá trị dữ liệu được lưu trữ phải thỏa mãn một số ràng buộc, tùy </i>

thuộc vào hoạt động của tổ chức mà CSDL phản ánh.

<i>Tính nhất quán: Sau các thao tác cập nhật dữ liệu và ngay cả khi có sự cố xảy ra thì </i>

dữ liệu trong CSDL vẫn phải đảm bảo được tính đúng đắn tương ứng với thực tế.

<i>Tính an tồn và bảo mật: CSDL cần được bảo vệ an toàn, ngăn được những truy </i>

xuất không được phép và phải khôi phục được CSDL khi có sự cố.

<i>Tính độc lập: một CSDL phục vụ cho nhiều mục đích khai thác khác nhau vì vậy dữ </i>

liệu độc lập với ứng dụng, khơng phụ thuộc vào bài toán cụ thể, phương tiện lưu trữ và xử lý

<i>Tính khơng dư thừa: khơng được lưu trữ những dữ liệu trùng lặp hay những thông </i>

tin có thể dễ dàng tính tốn từ dữ liệu khác

<b>1.2 Các tính chất của một cơ sở dữ liệu </b>

Một cơ sở dữ liệu thường có các tính chất sau:

- Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực như hoạt động của một công ty, một nhà trường, một ngân hàng, … 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 cơ sở dữ liệu. Những thông tin được đưa vào trong một cơ sở dữ liệu tạo thành một không gian cơ sở dữ liệu hoặc là một “thế giới nhỏ”.

- Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng. Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác định phù hợp với mối quan tâm của ngưởi sử dụng. Hay, một cơ sở dữ liệu có một nguồn cung cấp dữ liệu, một mức độ tương tác với các sự kiện trong thế giới thực và một người quan tâm tích cực đến các nội dung của nó.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

- Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic và mang ý nghĩa nhất định nào đó. Một cơ sở dữ liệu khơng phải là một tập hợp tùy tiện.

Một cơ sở dữ liệu thường có một kích thước tùy ý và có độ phức tạp thay đổi. Có

<i>những cơ sở dữ liệu chỉ có vài chục hoặc vài trăm bản ghi (như cơ sở dữ liệu quản lý </i>

<i>lương của một doanh nghiệp nhỏ) và cũng có những cơ sở dữ liệu có dung lượng rất lớn </i>

<i>lên đến hàng nghìn bản ghi (như cơ sở dữ liệu tính tốn cước phí điện thoại hoặc ngân </i>

<i>hàng). Cơ sở dữ liệu phải được tổ chức quản lý sao cho những người sử dụng có thể tìm </i>

kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết. Một cơ sở dữ liệu có thể được tạo ra và duy trì một cách thủ cơng và cũng có thể được tin học hóa. Một cơ sở dữ liệu được tin học hóa tạo ra và duy trì bằng một nhóm chương trình ứng dụng hoặc bằng một hệ quản trị cơ sở dữ liệu.

<b>1.3 Sự cần thiết của cơ sở dữ liệu </b>

Việc tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu có những ưu điểm sau: - Giảm bớt dư thừa dữ liệu trong lưu trữ: trong các ứng dụng lập trình truyền thống như lập trình C/C++ thì phương pháp tổ chức lưu trữ dữ liệu vừa tốn kém, lãng phí bộ nhớ và các thiết bị lưu trữ, vừa dư thừa thơng tin lưu trữ. Ví dụ trong bài toán “quản lý điểm sinh viên” và “quản lý giảng dạy giáo viên”, tương ứng với mỗi bài tốn thì một chương trình cần lưu trữ trên một dữ liệu riêng biệt, độc lập với nhau. Tuy nhiên, trong cả hai chương trình cùng xử lý chung một số thuộc tính chung như mã mơn học, tên mơn học, số học trình,… Như vậy với cách lưu trữ truyền thống thì các dữ liệu được mơ tả độc lập với nhau và lưu trữ hoàn toàn độc lập với nhau vì vậy gây ra sự dư thừa và tốn bộ nhớ. Nếu tổ chức lưu trữ theo lý thuyết cơ sở dữ liệu thì có thể hợp nhất các tệp lưu trữ của các bài toán trên lại và cho phép các chương trình có thể cùng chia sẻ tài nguyên trên cùng một cơ sở dữ liệu.

- Tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu sẽ tránh được sự không nhất quán trong lưu trữ dữ liệu và bảo đảm được tính tồn vẹn của dữ liệu. Nếu một thuộc tính được mơ tả trong nhiều tệp dữ liệu khác nhau và lặp lại nhiều lần trong các bản ghi, khi thực hiện việc cập nhật, sửa đổi và bổ sung sẽ không sửa hết các nội dung của các mục đó. Nếu dữ liệu càng nhiều thì sự sai sót khi cập nhật, bổ sung càng lớn. Khả năng xuất hiện mâu thuẫn, không thống nhất, không nhất quán thơng tin càng nhiều từ đó dẫn đến sự nhập nhằng trong việc lưu trữ dữ liệu. Do đó, kéo theo sự dị thường thông tin, thừa, thiếu và mâu thuẫn thơng tin. Khơng thể có mơn học ngồi quy định của khoa quản lý hoặc ngày sinh của sinh viên được xây dựng sau ngày ra trường tốt nghiệp của sinh viên, …

- Tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu có thể triển khai đồng thời nhiều ứng dụng trên cùng một cơ sở dữ liệu: điều này có nghĩa là các ứng dụng không chỉ chia sẻ chung tài nguyên dữ liệu mà còn trên cùng một cơ sở dữ liệu có thể triển khai đồng thời nhiều ứng dụng khác nhau tại các thiết bị đầu cuối.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>2 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU </b>

<b>2.1 Định nghĩa hệ quản trị cơ sở dữ liệu </b>

Một hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người sử dụng tạo lập, cập nhật và khai thác mọi cơ sở dữ liệu. Nó là một hệ thống phần mềm phổ dụng, làm dễ dàng quá trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng khác nhau.

<i>Định nghĩa một cơ sở dữ liệu bao gồm việc đặc tả các kiểu dữ liệu, các cấu trúc và </i>

các ràng buộc cho các dữ liệu được lưu trữ trong cơ sở dữ liệu.

<i>Xây dựng một cơ sở dữ liệu là quá trình lưu trữ các dữ liệu trên các phương tiện lưu </i>

trữ được hệ quản trị cơ sở dữ liệu kiểm soát.

<i>Thao tác một cơ sở dữ liệu bao gồm các chức năng truy vấn cơ sở dữ liệu để lấy ra </i>

các dữ liệu cụ thể, cập nhật cơ sở dữ liệu để phản ánh các thay đổi trong thế giới nhỏ và tạo ra các báo cáo từ các dữ liệu.

Các hệ quản trị cơ sở dữ liệu dùng để thể hiện một cơ sở dữ liệu tin học hóa có thể là phổ dụng (là một phần mềm đóng gói) hoặc có thể là chuyên dụng (là một tập các phần mềm được tạo ra với một mục đích riêng).

<b>2.2 Các chức năng của một hệ quản trị cơ sở dữ liệu </b>

Một hệ quản trị cơ sở dữ liệu hiện nay có các chức năng sau: - Mơ tả dữ liệu tạo lập và duy trì sự tồn tại của cơ sở dữ liệu

- Cho phép truy xuất vào cơ sở dữ liệu theo thẩm quyền đã được cấp - Cập nhật, chèn thêm loại bỏ hay sửa đổi dữ liệu vào tệp

- Tạo mối liên kết giữa các thực thể

- Đảm bảo tính độc dữ liệu, tức là cấu trúc dữ liệu độc lập với các ứng dụng chương trình

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

- Cung cấp các phương tiện sao lưu và phục hồi dữ liệu

<b>2.3 Các thành phần của một hệ quản trị cơ sở dữ liệu </b>

Một hệ quản trị cơ sở dữ liệu thông thường có các thành phần chính sau: - Ngơn ngữ định nghĩa dữ liệu (Data Definition Language)

- Ngôn ngữ thao tác dữ liệu (Data Manipulation Language) - Ngôn ngữ truy vấn dữ liệu (Structured Query Language) - Bộ báo cáo

<b>2.4 Các loại giao diện trong hệ quản trị cơ sở dữ liệu </b>

Các hệ quản trị cơ sở dữ liệu hiện nay cung cấp rất nhiều loại giao diện người dùng thân thiện, các loại giao diện chính gồm có:

<b>- Giao diện dựa trên bảng chọn: các giao diện này cung cấp cho người sử dụng </b>

danh sách các lựa chọn, gọi là bảng chọn và hướng dẫn người sử dụng diễn đạt một yêu cầu từ đầu đến cuối. Các bảng chọn làm cho người sử dụng không cần nhớ lệnh và cú pháp của ngôn ngữ truy vấn. Các bảng chọn thả xuống đã trở thành kỹ thuật phổ biến hiện nay trong các giao diện dựa trên cửa sổ. Chúng thường được sử dụng trong các giao diện quét, cho phép người sử dụng nhìn thấy nội dung của một cơ sở dữ liệu theo cách khơng có cấu trúc.

<b>- Giao diện dựa trên mẫu biểu: các giao diện dạng này biểu thị một mẫu biểu cho </b>

người sử dụng. Những người sử dụng có thể điền vào tất cả các ơ của mẫu biểu có sẵn để nhập vào các dữ liệu mới hoặc họ chỉ điền vào một số ơ cịn hệ quản trị cơ sở dữ liệu sẽ đưa ra các dữ liệu phù hợp cho các ô còn lại. Các mẫu biểu thường được thiết kế và được lập trình cho các người dùng đơn giản. Một số hệ thống có các tiện ích giúp người sử dụng từng bước xây dựng một mẫu biểu trên màn hình.

<b>- Giao diện đồ họa: giao diện đồ họa thường hiển thị một lược đồ cho người sử </b>

dụng dưới dạng biểu đồ. Người dùng có thể thực hiện truy vấn bằng cách thao tác trên biểu đồ. Trong nhiều trường hợp, giao diện đồ họa sử dụng cả các bảng chọn và các mẫu biểu. Đa số các giao diện đồ họa sử dụng các công cụ trỏ như chuột, phím để chọn các phần của sơ đồ.

<b>- Giao diện cho người quản trị hệ thống: đa số các hệ quản trị cơ sở dữ liệu có </b>

các lệnh ưu tiên, chỉ có những người quản trị hệ thống mới sử dụng các lệnh đó. Ví dụ như các lệnh thao tác tạo ra các tài khoản, đặt các tham số cho hệ thống, cấp các tài khoản, thay đổi lược đồ hoặc tổ chức lại các cấu trúc lưu trữ của cơ sở dữ liệu.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>3. MÔ HÌNH DỮ LIỆU </b>

<b>3.1 Kiến trúc của cơ sở dữ liệu </b>

Một cơ sở dữ liệu được mô tả theo 3 mức trừu tượng khác nhau phụ thuộc vào đối tượng nghiên cứu và sử dụng cơ sở dữ liệu: Mức vật lý, mức khái niệm và mức khung nhìn.

a. Cơ sở dữ liệu mức vật lý

Một tập hợp các file (bảng) dữ liệu, các chỉ mục hoặc những cấu trúc khác dùng để lưu trữ và truy xuất dữ liệu một cách hiệu quả gọi là cơ sở dữ liệu mức vật lý. Cơ sở dữ liệu mức vật lý tồn tại thường xuyên trong các thiết bị lưu trữ (như đĩa từ, băng từ,..).

b. Cơ sở dữ liệu mức khái niệm

Cơ sở dữ liệu mức khái niệm là sự trừu tượng hóa của thế giới thực với mục đích mơ tả cơ sở dữ liệu trong quá trình nghiên cứu, thiết kế cơ sở dữ liệu. Các Hệ quản trị cơ sở dữ liệu cung cấp ngôn ngữ định nghĩa dữ liệu (Data Definition Language – DDL) để mô tả cơ sở dữ liệu mức khái niệm và ngôn ngữ thao tác dữ liệu trên cơ sở dữ liệu mức khái niệm (Data Manipulation Language).

Cơ sở dữ liệu mức vật lý là sự cài đặt cụ thể của cơ sở dữ liệu mức khái niệm. c. Cơ sở dữ liệu mức khung nhìn

Khung nhìn (View) hay lược đồ con (SubScheme) là một phần của cơ sở dữ liệu khái niệm hoặc trừu tượng hóa một phần của cơ sở dữ liệu mức khái niệm. Đây là cách nhìn của người sử dụng đối với cơ sở dữ liệu.

Hầu hết các hệ quản trị cơ sở dữ liệu đều cung cấp những phương tiện để khai báo khung nhìn được gọi là ngôn ngữ định nghĩa dữ liệu lược đồ con (Subscheme Data Definition Language) và các phương tiện để diễn đạt các câu truy vấn, thao tác dữ liệu lược đồ con (Subscheme Data Manipulation Language).

Các khung nhìn có vai trò quan trọng trong việc bảo mật hệ thống cơ sở dữ liệu, chỉ những người có nhu cầu và quyền hạn mới có thể đọc được các file dữ liệu dành cho họ.

<b>3.2 Mơ hình dữ liệu </b>

a. Khái niệm mơ hình dữ liệu

Cơ sở dữ liệu mức khái niệm Khung nhìn 1

Khung nhìn 2

Khung nhìn n

Cơ sở dữ liệu mức

vật lý

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<i><b> Mơ hình dữ liệu (Data Model) là tập hợp các khái niệm dùng để mô tả cấu trúc </b></i>

<i>của một hệ cơ sở dữ liệu. Cấu trúc hệ cơ sở dữ liệu bao gồm kiểu dữ liệu, các quan hệ, và các ràng buộc có thể có của dữ liệu. Hầu hết các mơ hình dữ liệu đều kèm theo các thao tác cơ sở dành cho việc tìm kiếm cơ bản và cập nhật dữ liệu, ngoài ra các mơ hình dữ liệu cịn cho phép người sử dụng tự định nghĩa thêm các thao tác mới. </i>

Như vậy để có thể mơ tả các hệ cơ sở dữ liệu trong quá trình thiết kế chúng ta cần sử dụng các mơ hình dữ liệu.

Mỗi mơ hình dữ liệu đều có mục đính riêng của mình. Các mơ hình dữ liệu được phân loại dựa trên cơ sở những khái niệm của mơ hình dùng để mô tả cấu trúc của cơ sở dữ liệu.

Mơ hình dữ liệu có thể hiểu là hệ hình thức tốn học gồm có hai phần: - Một hệ thống các ký hiệu để mô tả dữ liệu

- Một tập hợp các phép toán thao tác trên dữ liệu đó.

Mơ hình dữ liệu khi được xây dựng dựa vào một số đặc trưng: - Tính ổn định khi thiết kế mơ hình dữ liệu

- Tính đơn giản: dễ hiểu và dễ thao tác - Tính dư thừa phải kiểm tra kỹ càng - Cơ sở lý thuyết vững chắc

<i>Dựa trên mục đích sử dụng người phân loại mơ hình dữ liệu thành 3 dạng: </i>

<b>Mơ hình dữ liệu mức ngồi dùng để mô tả cơ sở dữ liệu cho người sử dụng. </b>

<b>Mơ hình dữ liệu mức quan niệm đưa ra các khái niệm mô tả cơ sở dữ liệu mức </b>

khái niệm, mơ hình dữ liệu mức quan niệm là cách nhìn dữ liệu một cách tổng quát của người sử dụng. Nghĩa là có rất nhiều cách nhìn dữ liệu ở mơ hình ngồi, nhưng chỉ có duy nhất một cách nhìn dữ liệu ở mức quan niệm. Và việc biểu diễn tồn bộ thơng tin trong cơ sở dữ liệu là duy nhất.

<b>Mơ hình dữ liệu mức vật lý dùng mô tả cơ sở dữ liệu mức vật lý bao gồm chi tiết </b>

cách thức lưu trữ dữ liệu trên máy tính, các khái niệm trong mơ hình dữ liệu mức vật lý có ý nghĩa với các đặc trưng của máy tính chứ khơng dành cho người sử dụng.

b. Ý nghĩa của mơ hình dữ liệu

Việc thiết kế cơ sở dữ liệu được thực hiện đơn giản hơn nhiều khi ta sử dụng các mơ hình. Các mơ hình là sự trừu tượng đơn giản của các sự kiện trong thế giới thực. Mô hình cơ sở dữ liệu là tập hợp các khái niệm dùng để biểu diễn các cấu trúc của cơ sở dữ liệu. Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu, các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu. Một số mơ hình cịn có thêm một tập hợp các phép toán cơ bản để đặc tả thao tác trên cơ sở dữ liệu.

Khi thiết kế mô hình nếu thiết kế tốt sẽ đưa ra các cơ sở dữ liệu tốt và trên cơ sở đó sẽ có các ứng dụng tốt. Ngược lại, mơ hình khơng tốt sẽ đưa đến thiết kế cơ sở dữ liệu tồi và dẫn đến các ứng dụng không đúng.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

Mơ hình dữ liệu được xác định bởi một sơ đồ dữ liệu mô tả của nhiều kiểu thực thể, chẳng hạn như kiểu thực thể sinh viên, giáo viên, môn học, … Sơ đồ dữ liệu bao gồm các định nghĩa về các kiểu bản ghi, đó là các ràng buộc cho quyền và tính tồn vẹn thích hợp. Những ràng buộc này chính là các tính chất của dữ liệu, tính liên kết các thuộc tính cùng một kiểu dữ liệu. Các định nghĩa này không bao hàm về cấu trúc lưu trữ, cũng như về chiến lược truy nhập, chúng chỉ là các định nghĩa về nội dung thông tin, về tính độc lập của dữ liệu trong mơ hình quan niệm.

c. Khái niệm lược đồ (Scheme) và thể hiện (Instance)

Ngoài việc phân chia các mức trừu tượng như trên, chúng ta còn một cách hiểu khác về tính hai mặt của cơ sở dữ liệu đó là lược đồ và thể hiện. Khi thiết kế cơ sở dữ liệu người ta quan tâm đến những hoạch định và cấu trúc trên cơ sở dữ liệu, điều đó được biểu diễn thơng qua lược đồ của cơ sở dữ liệu; nhưng khi sử dụng người ta lại quan tâm đến dữ liệu thực sự tồn tại trong cơ sở dữ liệu, đó là thể hiện của cơ sở dữ liệu.

Lược đồ dữ liệu thường được sử dụng để biểu diễn cơ sở dữ liệu mức khái niệm, thông qua các khái niệm của mô hình dữ liệu quan niệm. Điều đó tạo ra sự ổn định của sơ đồ dữ liệu vì mơ hình quan niệm luôn ổn định. Nếu lược đồ dữ liệu khơng ổn định thì các ứng dụng và mơ hình ngồi cũng khơng ổn định. Lược đồ dữ liệu chỉ được thay đổi khi có sự điều chỉnh trong thế giới thực, đòi hỏi điều chỉnh lại định nghĩa sao cho phản ánh đúng và chính xác so với thực tế hơn.

<b>3.3 Một số mơ hình dữ liệu </b>

a. Mơ hình liên kết thực thể (Entity Relationship Model – ER): Là mơ hình cho phép mơ tả các thực thể thơng qua các thuộc tính và mối liên hệ giữa các thực thể.

b. Mơ hình cơ sở dữ liệu quan hệ

Mơ hình dữ liệu quan hệ do E.F. Codd đề xuất. Nền tảng cơ bản của mơ hình cơ sở dữ liệu quan hệ là khái niệm lý thuyết tập hợp trên các quan hệ, tức là tập các bộ giá trị.

Mơ hình này tiến hành biểu thị dữ liệu trong một cơ sở dữ liệu như một tập các quan hệ và một quan hệ là một bảng gồm các dịng và các cột

c. Mơ hình dữ liệu mạng

Mơ hình dữ liệu mạng (hay cịn gọi là mơ hình lưới) là mơ hình được biểu diễn bởi một đồ thị có hướng.

Các thành phần trong mơ hình dữ liệu mạng:

- Loại mẫu tin (Record Type): là mẫu đặc trưng cho từng loại đối tượng riêng biệt, được biểu diễn bởi một hình chữ nhật.

- Mẫu tin hay bản ghi (Record): là thể hiện cụ thể của loại mẫu tin

- 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, được biểu diễn bởi một hình bầu dục. Trong loại liên hệ, cần chỉ ra số lượng các mẫu tin tham gia trong mỗi kết hợp. Các loại liên hệ: 1-1: mỗi mẫu tin của mẫu

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

tin chủ chỉ kết hợp với đúng một mẫu tin thành viên; 1-n; n-1; Đệ quy: 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ó.

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

d. Mô hình dữ liệu phân cấp:

Mơ hình dữ liệu phân cấp 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.

Trong mơ hình phân cấp, loại mẫu tin được mô tả giống trong mô hình mạng. Loạ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à 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 thành viên tới mẫu tin chủ là 1-1.

Giữa hai loại mẫu tin chỉ tồn tại một mối liên hệ duy nhất Ví dụ: Mơ hình phân cấp quản lý nhân khẩu cả nước

e. Mơ hình dữ liệu hướng đối tượng

Hiện nay, mơ hình dữ liệu hướng đối tượng là loại mơ hình tiên tiến nhất hiện nay, dựa trên cách tiếp cận hướng đối tượng. Trong mơ hình này sử dụng các khái niệm như lớp, sự kế thừa, kế thừa bội…

Phương pháp tiếp cận này còn mới mẻ và các hệ quản trị CSDL hướng đối tượng hiện nay vẫn chưa nhiều và chưa thuần nhất

f. Mơ hình dữ liệu kho dữ liệu

… BA ĐÌNH

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

Kho dữ liệu hay được viết là Data Warehouse. Kho dữ liệu là một tập các dữ liệu có những đặt điểm sau: Tập trung vào một chủ đề, tổng hợp từ nhiều nguồn dữ liệu khác nhau, từ nhiều thời gian, và không sửa đổi.

Thông thường mô hình kho dữ liệu được dùng trong việc hỗ trợ ra quyết định trong cơng tác quản lý.

<b>4. VÍ DỤ VỀ MỘT CƠ SỞ DỮ LIỆU </b>

Chúng ta tìm hiểu về cơ sở dữ liệu mà chúng ta đang tiếp cận, đó là cơ sở dữ liệu QUẢN LÝ ĐIỂM SINH VIÊN. Cơ sở dữ liệu này lưu giữ các thông tin liên quan đến sinh viên, các môn học, điểm sinh viên, … cơ sở dữ liệu được tổ chức thành các bảng: SINH VIÊN lưu giữ dữ liệu mô tả thông tin của một sinh viên, bảng MƠN HỌC lưu giữ các dữ liệu về một mơn học, bảng HỌC PHẦN lưu giữ dữ liệu về học phần (lớp môn học) của các môn học, bảng ĐIỂM lưu giữ thông tin điểm của từng học phần của các sinh viên và bảng ĐIỀU KIỆN TIÊN QUYẾT lưu giữ các thông tin về môn học cần biết trước đủ điều kiện được học môn tiếp theo.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<i>Mơ hình Client – Server 2 lớp </i>

Trên máy chủ thường cài đặt các hệ cơ sở dữ liệu bao gồm các bảng biểu, các thủ

<i>tục lưu trữ, … và điều khiển các tiến trình cơ bản: quản lý dữ liệu, bảo mật dữ liệu, thực </i>

<i>hiện truy vấn, ràng buộc và các thủ tục lưu trữ, điều khiển lỗi. </i>

Trên phía máy khách thường cài đặt các giao diện người sử dụng để người dùng đưa ra các yêu cầu xử lý trên cơ sở dữ liệu tương ứng từ phía server.

Tuy nhiên mơ hình Client – Server vẫn cịn một số bất cập:

- Mơ hình Client/Server 2 lớp có hiệu quả cao với cac ứng dụng nhỏ và số lượng người sử dụng hạn chế. Khi nhiều máy khách (Clients) kết nối truy nhập vào cơ sở dữ liệu thì năng lực quản lý & xử lý của máy chủ (Server) sẽ bị giảm xuống, tốc độ xử lý chậm.

- Nhiều kết nối dữ liệu phải được duy trì.

- Mã nguồn khơng có khả năng dùng sử dụng lại. Một ứng dụng tồn tại trong nhiều khối mã nguồn khác nhau được cài đặt trên máy khách. Vì vậy khi có sự thay đổi mã nguồn người ta cần phải cài đặt lại trên tất cả máy khách, điều này rất khó có thể thực hiện được.

- Khơng có lớp trung gian điều khiển sự bảo mật và các giao dịch giữa máy khách và máy chủ.

<b> 5.2 Mơ hình Client – Server nhiều tầng </b>

Trong mơ hình Client/Server 3 lớp (hay nhiều lớp), q trình xử lý được phân tán trên 3 lớp khác nhau với các chức năng riêng biệt. Vì vậy mơ hình này rất thích hợp cho việc tổ chức hệ thống thông tin trên mạng Internet và mạng Intranet hay trong các mạng cục bộ. Phát triển mơ hình 3 lớp sẽ khắc phục được một số hạn chế xảy ra của mơ hình 2 lớp. Các hệ cơ sở dữ liệu được cài đặt trên các máy chủ Web Server và có thể được truy nhập khơng hạn chế các ứng dụng và số lượng người dùng.

<b>♦ Lớp khách (Clients): Chức năng của lớp này là cung cấp dịch vụ trình bày </b>

(Presentation Services). Thực hiện việc giao tiếp giũa người sử dụng với lớp giao dịch thơng qua trình duyệt Browser hay trình ứng dụng để thao tác và xử lý dữ liệu. Thông thường giao diện người sử dụng được chứa trong các File OCX. Lớp này có thể cài đặt ở dạng ứng dụng Web gồm những trang ASP sử dụng các File OCX. Trong mô hình Internet (Internet model), lớp khách là trình duyệt Internet Explorer hay Netscape.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>♦ Lớp giao dịch (Business Tier): cung cấp các dịch vụ quản trị, tổ chức và khai </b>

thác CSDL. Các componenet trước đây được cài đặt trên lớp khách, nay được cài đặt trên lớp giao dịch. Ví dụ, một người sử dụng trên máy khách đặt mua hàng, lớp giao dịch kiểm tra mã hàng cịn nữa hay khơng mới quyết định tiếp tục bán hay không bán. Thành phần của lớp giao dịch trong mơ hình Internet là Web Server và COM+/MTS. Công nghệ của Microsoft với Web Server là IIS (Internet Information Services) sử dụng ASP để kết nối Client với COM. Web Server giao tiếp với COM+/MTS component qua COM. COM+/MTS component điều khiển tất cả giao tiếp với lớp dữ liệu nguồn thông qua ODBC hoặc OLE - DB.

<b>♦ Lớp nguồn dữ liệu (Data Source): Lớp nguồn dữ liệu cung cấp các dịch vụ tổ </b>

chức và lưu trữ các hệ cơ sở dữ liệu quan hệ. Sẵn sàng cung cấp dữ liệu cho lớp giao dịch. Đặc trưng của lớp này là SQL Server quản lý dữ liệu và các thành phần trong cơ sở dữ liệu như bảng, dữ liệu và các thủ tục lưu trữ. Trong mơ hình Internet lớp nguồn dữ liệu quản lý các hoạt động của một lượng lớn Clients. Microsoft phát triển DNA mơ hình chung (Framework) xây dựng cho ứng dụng nhiều lớp.

Tóm lại, đặc trưng của mơ hình tính toán phân tán là các tài nguyên của mạng như thiết bị phần cứng, chương trình, dữ liệu được phân tán theo địa lý trên mạng. Người sử dụng có thể truy nhập khai thác trực tuyến hoặc và khai thác tương tác dữ liệu từ xa.

<i>Mơ hình Client – Server 3 lớp có sử dụng Middlewave server </i>

<i>Mơ hình Client – Server 3 lớp có sử dụng Application server </i>

<b>6. ĐỐI TƯỢNG NGƯỜI DÙNG TRONG HỆ CƠ SỞ DỮ LIỆU </b>

Với một cơ sở dữ liệu lớn, có rất nhiều người tham gia vào việc thiết kế, sử dụng và duy trì cơ sở dữ liệu.

<b> 6.1 Người quản trị hệ CSDL – Database Adminstrator </b>

Trong một đơn vị có nhiều người cùng sử dụng các tài nguyên cơ sở dữ liệu thì cần phải có một người làm nhiệm vụ giám sát và quản lý cơ sở dữ liệu đó. Trong mơi trường hệ cơ sở dữ liệu, các tài nguyên cần dùng chung là cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

và các phần mềm liên quan. Người làm vai trò quản trị hệ cơ sở dữ liệu là người chịu trách nhiệm quản lý và phân chia tài nguyên đó. Người quản trị chịu trách nhiệm trong việc cho phép và giới hạn truy cập đến cơ sở dữ liệu, tổ chức và hướng dẫn việc sử dụng cơ sở dữ liệu, cấp các phần mềm và phần cứng theo yêu cầu cần thiết.

Đối với người quản trị cơ sở dữ liệu có một số nhiệm vụ chính sau:

- Xác định thực thể và nội dung thông tin cần lưu trữ tương ứng của bài toán. Xác định sơ đồ quan niệm đáp ứng yêu cầu truy nhập của người sử dụng.

- Quyết định cấu trúc lưu trữ và chiến lược truy nhập: người quản trị cơ sở dữ liệu phải xác định cách thức biểu diễn dữ liệu như mô tả cấu trúc lưu trữ trong, mô tả cấu trúc lưu trữ vật lý. Xác định mơ hình dữ liệu, định nghĩa ánh xạ giữa cấu trúc lưu trữ và sơ đồ ngoài. Thực hiện các chiến lược lưu trữ, quản lý hệ thống.

- Người quản trị cơ sở dữ liệu phải tạo môi trường giao tiếp giữa người sử dụng với các hệ cơ sở dữ liệu, vì sơ đồ ngồi cho người sử dụng là cách nhìn dữ liệu tương ứng với ngơn ngữ con dữ liệu thích hợp, nên người quản trị cơ sở dữ liệu phải cung cấp sơ đồ quan niệm, các ánh xạ, và các cấu trúc lưu trữ. Kiểm soát thẩm quyển truy nhập của người sử dụng và bảo đảm quyền truy nhập của họ.

- Duy trì các tiêu chuẩn thống nhất về các thủ tục lưu trữ và cấu trúc lưu trữ, biểu diễn thơng tin và các chiến lược truy nhập. Kiểm sốt và kiểm tra tính đúng đắn của dữ liệu. Áp dụng các biện pháp an toàn, an ninh dữ liệu

- Xác định chiến lược lưu trữ, sao chép, phục hồi … trong các trường hợp hư hỏng do sai sót, hoặc trục trặc kỹ thuật

<b>6.2 Người thiết kế cơ sở dữ liệu – Database Designer </b>

Người thiết kế cơ sở dữ liệu là người chịu trách nhiệm xác định được các dữ liệu sẽ được lưu giữ trong cơ sở dữ liệu, chọn được các cấu trúc thích hợp để biểu diễn và lưu giữ các dữ liệu đó. Những nhiệm vụ này được thực hiện trước khi tiến hành cài đặt cơ sở dữ liệu cũng như phổ biến cơ sở dữ liệu. Người thiết kế có trách nhiệm giao thiệp với những người sử dụng tương lai để hiểu được các đòi hỏi của họ và đưa ra một thiết kế thỏa mãn các yêu cầu đó. Người thiết kế cũng có nhiệm vụ trao đổi với các nhóm người sử dụng khác và có khả năng hỗ trợ các yêu cầu của các nhóm.

<b>6.3 Người sử dụng – End User </b>

Những người sử dụng là những người mà cơng việc của họ địi hỏi truy cập đến cơ sở dữ liệu để truy vấn, cập nhật và sinh ra các thông tin. Có thể chia những người sử

<i>dụng thành hai nhóm chính: người sử dụng thụ động (là người khơng có kiến thức về cơ </i>

<i>sở dữ liệu) và người sử dụng chủ động (là những người có hiểu biết tốt về hệ cơ sở dữ liệu). </i>

Đối với người sử dụng thụ động thì họ là nhóm người sử dụng chiếm phần lớn, chức năng sử dụng chính của họ là truy vấn và cập nhật thường xuyên lên cơ sở dữ liệu

<i>bằng cách sử dụng các câu hỏi và các cập nhật chuẩn (là giao tác định sẵn của chương </i>

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<i>trình) đã được lập trình và kiểm tra cẩn thận bởi người lập trình. Nhóm người này chỉ cần </i>

học một ít các thao tác do hệ quản trị cơ sở dữ liệu cung cấp và hiểu được các kiểu gia tác chuẩn đã có đã được thiết kế và cài đặt là có thể sử dụng được.

Ngược lại, đối với nhóm người sử dụng chủ động thì họ có hiểu biết tốt về hệ cơ sở dữ liệu, họ có thể tự cài đặt các ứng dụng riêng của mình để làm thỏa mãn các yêu cầu phức tạp của họ.

<b>6.4 Người phân tích hệ thống và lập trình ứng dụng </b>

Người phân tích hệ thống làm nhiệm vụ xác định các yêu cầu của những người sử

<i>dụng (chủ yếu là những người sử dụng thụ động) để đặc tả các chương trình phù hợp với </i>

yêu cầu của họ.

Người viết chương trình ứng dụng thể hiện các đặc tả của người những phân tích thành chương trình, sau đó tiến hành kiểm thử, sửa lỗi làm tài liệu hướng dẫn và bảo trì các giao tác định sẵn

<b>7. TỔNG KẾT VÀ CÂU HỎI ÔN TẬP 7.1 Tổng kết chương </b>

Trong chương này chúng ta đã trình bày về các khái niệm cơ bản: cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, các mơ hình dữ liệu trong cơ sở dữ liệu và những đối tượng người dùng sẽ làm việc với cơ sở dữ liệu.

<b>7.2 Câu hỏi ôn tập </b>

1. Cơ sở dữ liệu là gì? Hiểu thế nào là một hệ cơ sở dữ liệu liệu tác nghiệp? 2. Sự cần thiết tổ chức lưu trữ dữ liệu theo lý thuyết cơ sở dữ liệu?

3. Mục tiêu của hệ cơ sở dữ liệu? Ví dụ minh họa? 4. Nêu tính chất của một cơ sở dữ liệu?

5. Tại sao nói, mơ hình dữ liệu là cách nhìn tồn bộ nội dung thông tin của cơ sở dữ liệu, sơ đồ quan niệm là định nghĩa của cách nhìn ấy?

6. Chức năng và vai trò của hệ quản trị cơ sở dữ liệu và người quản trị cơ sở dữ liệu?

7. Hiểu thể nào về hệ quản trị cơ sở dữ liệu? Người quản trị cơ sở dữ liệu? 8. Nêu các chức năng của một hệ quản trị cơ sở dữ liệu?

9. Trình bày về mơ hình cơ sở dữ liệu Client – Server?

10. Liệt kê các nhóm người có liên quan đến hệ cơ sở dữ liệu?

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>THIẾT KẾ CƠ SỞ DỮ LIỆU – MƠ HÌNH LIÊN KẾT THỰC THỂ </b>

Trong chương này, chúng ta sẽ làm quen với mơ hình liên kết thực thể, gọi tắt là mơ

<i>hình ER (Entity – Relationship Model). Mơ hình ER là một mơ hình khá đơn giản và gần </i>

<i>với tư duy trực quan. Mơ hình ER cịn được coi là mơ hình dữ liệu mức quan niệm cơ </i>

<i>bản, được tập trung vào các cấu trúc dữ liệu và các ràng buộc của dữ liệu để mô tả tập </i>

<i>hợp dữ liệu dùng trong hệ thống. Mô hình này thường được sử dụng trong trường hợp </i>

thiết kế các ứng dụng cơ sở dữ liệu và có nhiều công cụ hỗ trợ thiết kế cơ sở dữ liệu đều sử dụng các khái niệm của mơ hình.

<b>1. CÁC BƯỚC THIẾT KẾ CƠ SỞ DỮ LIỆU </b>

Hiện nay, quá trình để thiết kế cơ sở dữ liệu cho một ứng dụng cơ sở dữ liệu được minh họa bằng sơ đồ như sau:

<i>Các bước để thiết kế cơ sở dữ liệu </i>

<b>*Bước 1: Tập hợp và phân tích yêu cầu </b>

<i><b>Bước đầu tiên là tập hợp và phân tích yêu cầu. Trong bước này, người thiết kế cơ sở </b></i>

dữ liệu sẽ tìm hiểu bài tốn (hệ thống – thế giới thực) bằng cách phỏng vấn trực tiếp những người sử dụng cơ sở dữ liệu hoặc nghiên cứu các tài liệu nghiệp vụ liên quan trong hệ thống cần xây dựng để hiểu và nắm rõ các yêu cầu về mặt dữ liệu của họ. Kết quả của bước này là một tập hợp các ghi chép súc tích về các yêu cầu của người sử dụng cũng như của hệ thống. Những yêu cầu của hệ thống sẽ được đặc tả càng đầy đủ và càng chi tiết càng tốt. Tuy nhiên, song song với việc tiến hành đặc tả các yêu cầu dữ liệu, cần phải

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<i>đặc tả các yêu cầu về chức năng của ứng dụng – hệ thống: xác định được các thao tác </i>

<i>cần thực hiện của người sử dụng đối với cơ sở dữ liệu. </i>

<b>Bước 2: Thiết kế quan niệm </b>

Khi tất cả các yêu cầu của hệ thống được thu thập và phân tích, tiếp theo là tạo ra

<i><b>lược đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mơ hình dữ liệu quan niệm mức cao. Bước này gọi là thiết kế quan niệm. Lược đồ quan niệm là một mơ tả súc tích về các </b></i>

yêu cầu dữ liệu của người người sử dụng trực tiếp với hệ thống cần xây dựng. Lược đồ 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, chúng được biểu diễn bằng các khái niệm do các mơ hình dữ liệu bậc cao cung cấp. Do những khái niệm này không chứa các chi tiết cài đặt, nên chúng thường dễ hiểu và có thể sử

<i>dụng để trao đổi với người những người sử dụng hệ thống (người khơng có chun mơn </i>

<i>sâu trong lĩnh vực công nghệ thông tin). Lược đồ quan niệm mức cao cũng có thể được </i>

sử dụng như là một tài liệu quan trọng để đảm bảo rằng tất cả các đòi hỏi của người sử dụng đối với hệ thống được thỏa mãn và các địi hỏi này khơng mẫu thuẫn. Bằng cách sử dụng mơ hình này cho phép người thiết kế cơ sở dữ liệu chỉ tập trung vào việc đặc tả các tính chất của cơ sở dữ liệu mà không cần quan tâm chi tiết đến các thông tin lưu trữ. Một thiết kế cơ sở dữ liệu tốt sẽ làm dễ dàng và không mất thời gian chỉnh sửa sau này cho công việc của người thiết kế cơ sở dữ liệu trong bài toán.

Khi thiết kế lược đồ quan niệm, chúng ta có thể sử dụng các phép tốn cơ bản của mơ hình dữ liệu để đặc tả các thao tác của người sử dụng được xác định khi phân tích chức năng. Điều khó khẳng định lược đồ quan niệm thỏa mãn mọi yêu cầu chức năng được xác định. Trong trường hợp có một số yêu cầu chức năng không thể nêu ra được trong lược đồ ban đầu thì sau đó chúng ta có thể sửa đổi lược đồ cho phù hợp.

<b>Bước 3: Thiết kế mức logic </b>

Bước tiếp theo trong thiết kế cơ sở dữ liệu là việc phải cài được một cơ sở dữ liệu của bài toán bằng một hệ quản trị cơ sở dữ liệu có sẵn. Hầu hết các hệ quản trị cơ sở dữ liệu hiện này đều sử dụng một mơ hình dữ liệu cài đặt cụ thể, chẳng hạn như mơ hình dữ liệu quan hệ hoặc mơ hình dữ liệu đối tượng, vì vậy lúc này ta phải thực hiện chuyển được từ mơ hình dữ liệu quan niệm thành mơ hình dữ liệu có thể cài đặt được. Bước này

<i><b>được gọi là thiết kế mức logic hay ánh xạ mơ hình dữ liệu. Kết quả của bước này thu </b></i>

được một lược đồ cơ sở dữ liệu dưới dạng một hình dữ liệu có khả năng cài đặt được bằng một hệ quản trị cơ sở dữ liệu cụ thể.

<b>Bước 4: Thiết kế mức vật lý </b>

<i><b>Bước cuối cùng trong thiết kế cơ sở dữ liệu được gọi là thiết kế vật lý. Tại bước </b></i>

này, ta phải chỉ rõ ra các cấu trúc bên trong, các đường dẫn truy cập, cách tổ chức tệp cho cơ sở dữ liệu của bài toán. Song song với bước này, các chương trình ứng dụng cũng được thiết kế và cài đặt như là các giao tác (kết nối) với cơ sở dữ liệu tương ứng với đặc tả tương tác mức cao.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>2. CÁC KHÁI NIỆM CƠ BẢN CỦA MƠ HÌNH ER </b>

Mơ hình ER xuất phát từ ba khái niệm cơ bản: thực thể, liên kết và thuộc tính.

<b>2.1. Thực thể và kiểu thực thể </b>

Đối tượng được trình bày chính trong mơ hình ER là thực thể. Thực thể là một “vật

<i>- đối tượng” (cụ thể hay trừu tượng) tồn tại thực sự và khá ổn định trong thế giới thực, có </i>

sự tồn tại độc lập và có thể phân biệt với các đối tượng khác mà ta muốn phản ánh nó trong hệ thống thông tin. Tập hợp tất cả các thực thể giống nhau tạo thành một tập thực

<i><b>thể (kiểu thực thể). </b></i>

<b>Thực thể cụ thể và trừu tượng: Một thực thể có thể là cụ thể hay trừu tượng. Thực </b>

thể cụ thể là thực thể mà chúng có thể cảm nhận được bằng giác quan hay có thể nhìn thấy trực tiếp được bằng mắt. Thực thể trừu tượng là thực thể mà chúng ta không cảm

<i>nhận được bằng giác quan (khơng nhìn thấy trực tiếp bằng mắt được) nhưng chúng ta có </i>

thể nhận biết được bằng nhận thức hoặc bằng cảm nhận. Ví dụ: Thực thể cụ thể như:

<i>Nhân viên Nguyễn Thị Thúy Hà Đơn hàng số 12233444 </i>

Thực thể trừu tượng như:

<i>Khoa Công nghệ thông tin Môn học Cơ sở dữ liệu </i>

<i><b>Trong mơ hình ER chỉ đề cập đến “tập thực thể” hay “kiểu thực thể”. </b></i>

<b>Kiểu thực thể: là một tập hợp các thực thể có các thơng tin cần quản lý tương tự </b>

nhau. Ví dụ, một cơng ty có nhiều nhân viên, mỗi nhân viên có các thông tin cần lưu trữ là tương tự nhau, như: mã nhân viên, họ tên, ngày sinh, quê quán, hệ số lương, …. Vì vậy tập hợp các thực thể nhân viên trong công ty được mô tả bằng tập thực thể với tên chung là “NHÂN VIÊN”.

<b>Tập thực thể: Một tập hợp các thực thể của một kiểu thực cụ thể trong cơ sở dữ </b>

liệu tại một thời điểm được gọi là một tập thực thể, nó thường được mơ tả trong mơ hình bằng cách sử dụng tên của kiểu thực thể. Ví dụ: NHÂN VIÊN vừa dùng để chỉ một kiểu thực thể, vừa để chi tập hợp hiện tại của tất cả các thực thể nhân viên trong cơ sở dữ liệu. Tương tự, CÔNG TY dùng để chỉ một kiểu thực thể và cũng chỉ tập hợp của tất cả các thực thể công ty trong cơ sở dữ liệu.

NHÂN VIÊN

(Mã, Họ tên, Tuổi, Lương)

CÔNG TY

(Mã, Tên, Địa điểm, Giám đốc)

NV1, Lê Thủy, 30, 800000 CT1, Công ty phần mềm, Hà nội, Vũ Hải NV2, Nguyễn Hải, 32, 820000 CT2, Công ty hoa quả, Hải phòng, Lê Huy

<b>Ký hiệu biểu diễn thực thể: Một kiểu thực thể được biểu diễn trong lược đồ ER bằng hình chữ nhật có chứa tên kiểu thực thể bên trong. </b>

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

Cú pháp: Ví dụ:

Để xác định kiểu thực thể trong hệ thống, chúng ta tiến hành liệt kê các danh từ riêng dùng để mô tả cho một tập các đối tượng cần được quản lý của hệ thống.

Trong mơ hình ER, kiểu thực thể được chia làm hai loại: kiểu thực thể mạnh và kiểu

<b>thực thể yếu. Kiểu thực thể mạnh được dùng để mô tả những thực thể có thể tồn tại độc </b>

lập trong hệ thống mà khơng cần phải có sự tồn tại của một thực thể khác. Ví dụ: thực thể

<b>NHÂN VIÊN, CÔNG TY. Kiểu thực thể yếu là kiểu thực thể mà sự tồn tại của nó phải </b>

phụ thuộc vào sự tồn tại của một thực thể khác hay thực thể yếu chỉ tồn tại trong hệ thống khi có sự tồn tại của một thực thể khác trong hệ thống. Ví dụ: thực thể THÂN NHÂN trong hệ thống quản lý nhân viên, một thân nhân chỉ được quản lý nếu thân nhân đó đi kèm với một nhân viên cụ thể, ngược lại nếu khơng có nhân viên trong hệ thống thì khơng có thân nhân nào được quản lý.

Các thực thể yếu của một kiểu thực thể yếu được xác định bằng cách liên kết với các với thực thể cụ thể của một kiểu thực thể mạnh khác bằng cách phối hợp thông qua một số thông tin (thuộc tính) của thực thể mạnh. Ta gọi kiểu thực thể mạnh khác đó là

<i><b>kiểu thực thể xác định hoặc kiểu thực thể chủ. Giữa kiểu thực thể mạnh và kiểu thực thể </b></i>

yếu có một liên kết và liên kết được gọi là liên kết xác định. Ví dụ: Trong cơng ty, thân nhân của nhân viên có thể được hưởng bảo hiểm theo nhân viên. Vì vậy, sẽ có một liên kết dạng NHÂN VIÊN – có – THÂN NHÂN.

<b>Biểu diễn liên kết thực thể chủ và thực thể yếu: Trong sơ đồ ER, kiểu thực thể </b>

<i><b>yếu được biểu diễn bằng hình chữ nhật nét đôi và liên kết xác định giữa kiểu thực thể yếu với thực thể xác định được biểu diễn bằng hình thoi nét đơi. </b></i>

Ví dụ:

HĨA ĐƠN - Số: …… Họ tên người mua: Cơ quan:

Địa chỉ:

Hình thức thanh toán:

Mã hàng Tên hàng ĐVT Số lượng Đơn giá Thành tiền

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

Tổng tiền

Các giá trị lưu trong thuộc tính của từng thực thể phải nhận những giá trị nguyên tố hoặc đơn như: kiểu chuỗi, kiểu số nguyên, kiểu số thực, kiểu ngày tháng, …

Để xác định thuộc tính, chúng ta xác định các danh từ mơ tả đặc tính, đặc trưng gắn liền với các tên kiểu thực thể đã xác định.

<b>Biểu diễn thuộc tính: Trong mơ hình ER, thuộc tính được biểu diễn bằng hình elip </b>

nét đơn với tên thuộc tính chứa bên trong và gắn liền với thực thể cần mô tả.

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

Ví dụ: kiểu thực thể NHÂN VIÊN có các thuộc tính: mã nhân viên, họ tên, ngày sinh, quê quán.

Trong mô hình ER, có nhiều kiểu thuộc tính khác nhau: Thuộc tính đơn và thuộc tính phức hợp,

Thuộc tính đơn trị và thuộc tính đa trị, Thuộc tính lưu trữ và thuộc tính suy dẫn,

Tên thuộc tính

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

Thuộc tính khóa và thuộc tính định danh

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

riêng biệt nhỏ hơn. Ví dụ: thuộc tính Tuổi của một nhân viên là thuộc tính đơn, thuộc tính Điểm của sinh viên là một thuộc tính đơn.

<i><b>Thuộc tính phức hợp là thuộc tính mà có thể phân chia thành các thành phần nhỏ </b></i>

hơn, biểu diễn các thuộc tính cơ bản hơn với các ý nghĩa độc lập. Ví dụ: thuộc tính Họ tên của nhân viên có thể tác thành thuộc tính Họ chỉ chứa họ, thuộc tính Tên chỉ chứa tên. Tương tự, thuộc tính Ngày sinh có thể tách thành các thuộc tính Ngày, Tháng và Năm riêng biệt. Giá trị cuối cùng của thuộc tính phức hợp là sự kết hợp các giá trị của các thuộc tính thành phần tạo nên thuộc tính phức hợp. Việc phân chia một thuộc tính phức hợp thành các thuộc tính đơn tùy thuộc vào hoàn cảnh và yêu cầu của bài tốn cụ thể.

<i><b>Thuộc tính đơn trị là thuộc tính mà mỗi thực thể xác định chỉ nhận một giá trị duy </b></i>

nhất ứng với thuộc tính đó. Ví dụ: thuộc tính Họ tên là thuộc tính đơn trị của thực thể nhân viên vì mỗi nhân viên chỉ có một họ tên duy nhất, thuộc tính Ngày sinh là thuộc tính đơn trị vì mỗi nhân viên cũng chỉ có một ngày sinh duy nhất.

<i><b>Thuộc tính đa trị là để chỉ những thuộc tính mà nó có thể nhận một tập các giá trị </b></i>

cho cùng một thực thể cụ thể, hay nói cách khác thuộc tính đa trị có thể nhận và lưu trữ nhiều giá trị đồng thời tại một thời điểm. Ví dụ: thuộc tính Bằng cấp của nhân viên là một thuộc tính đa trị vì một người có thể khơng có bằng cấp nào nhưng một người khác có thể có một bằng, một người nhân viên khác nữa có thể có nhiều bằng. Tương tự, thuộc tính Kỹ năng của nhân viên là một thuộc tính đa trị vì mỗi một nhân viên có thể có số kỹ là khác nhau (khơng có kỹ năng, có một kỹ năng, có hai kỹ năng, …).

Thuộc tính đa trị được biểu diễn bằng hình elip nét đơi với tên thuộc tính đặt phía trong.

<i><b>Thuộc tính lưu trữ là các thuộc tính mà giá trị của nó phải được nhập vào khi cài </b></i>

đặt cơ sở dữ liệu. Ví dụ: thuộc tính Họ tên là thuộc tính lưu trữ vì giá trị ngày sinh của một nhân viên phải được nhập vào cơ sở dữ liệu.

<i><b>Thuộc tính suy dẫn là các thuộc tính mà giá trị của nó có thể được suy ra từ giá trị </b></i>

của các thuộc tính khác liên quan theo một ngun tắc nào đó, là các thuộc tính khơng phải nhập vào từ bàn phím mà nó được tính thơng qua các thuộc tính khác theo một cơng thức nào đó. Ví dụ: Thuộc tính Tổng lương là thuộc tính suy dẫn vì tổng lương được tính thơng qua hệ số lương nhân với lương cơ bản, thuộc tính Tuổi là thuộc tính suy dẫn vì Tuổi được tính bằng năm hiện tại trừ năm sinh.

Thuộc tính suy dẫn được biểu diễn bằng hình elip nét đứt với tên thuộc tính đặt phía trong.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<i><b>Định danh là tập thuộc tính có giá trị duy nhất giúp phân biệt thực thể này với thực </b></i>

thể khác. Các thuộc tính tham gia vào định danh gọi là thuộc tính định danh hay thuộc

<i><b>tính khóa. Thuộc tính khóa là thuộc tính mà giá trị của nó là khác nhau đối với mỗi thực </b></i>

thể riêng biệt trong tập thực thể. Đơi khi, nhiều thuộc tính kết hợp với nhau tạo thành một khóa, nghĩa là tổ hợp các giá trị của các thuộc tính này phải khác nhau đối với mỗi thực

<i><b>thể. Trong trường hợp như vậy ta có một thuộc tính khóa phức hợp. Chú ý rằng khóa </b></i>

phức hợp phải tối thiểu, nghĩa là tất cả các thuộc tính thành phần phải có mặt trong thuộc tính phức hợp để thỏa mãn tính chất duy nhất. Trong mơ hình ER, thuộc tính khóa được biểu diễn bằng hình elip và cách gạch chân dưới tên của thuộc tính.

<i><b>Kiểu liên kết (Relationship Types): Kiểu liên kết R giữa n kiểu thực thể E</b></i><small>1</small>, E<small>2</small>,...,E<small>n </small>

được định nghĩa là tập các mối liên hệ giữa các thực thể từ những kiểu thực thể đã cho. Theo toán học, R là tập các liên kết thực r<small>i</small>, trong đó mỗi liên kết r<small>i</small> liên hệ giữa n thực thể (e<small>1</small>, e<small>2</small>, ..., e<small>n</small>), mỗi thực thể e<small>j</small> trong liên kết r<small>i</small> là một thành viên của kiểu thực thể E<small>J</small> (i≤ j ≤n). Liên kết R là tập con của tích De-cac giữa tập các thực thể của n kiểu thực thể: E<small>1</small>x E<small>2</small>x...xE<small>n</small>. Mỗi kiểu thực thể E<small>1</small>, E<small>2</small>, …, E<small>n</small> được gọi là tham gia vào liên kết R, và tương tự, mỗi thực thể riêng biệt e<small>1</small>, e<small>2</small>, …, e<small>n </small>được gọi là tham gia vào thể hiện liên kết r<small>i</small>.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

Một cách khơng hình thức, mỗi thể hiện liên kết r<small>i</small> trong R là một sự kết hợp của các thực thể, mỗi thực thể thuộc về một kiểu thực thể tham gia vào liên kết. Mỗi liên kết r<small>i</small>

như vậy diễn đạt một sự kiện rằng các thực thể tham gia trong r<small>i </small>có mối quan hệ với nhau theo một cách nào đó ở trong thế giới thực. Ví dụ, trong thực tế, các nhân viên phải làm

<i><b>cho một đơn vị nào đó, như vậy, có một liên kết làm việc cho, liên kết giữa kiểu thực thể </b></i>

NHÂN VIÊN và kiểu thực thể ĐƠN VỊ, hoặc mỗi sinh viên trong khoa sẽ học một môn

<i><b>học nào đó vì thế có mối liên kết học giữa kiểu thực thể SINH VIÊN và kiểu thực thể </b></i>

MÔN HỌC.

Trong mơ hình ER, kiểu liên kết được biểu diễn bằng một hình thoi với tên liên kết đặt ở trong được nối trực tiếp với các hình chữ nhật biểu diễn tương ứng kiểu thực thể tham gia vào liên kết. Liên kết được xác định là các động từ mô tả mối liên quan giữa hai thực thể.

Quy ước:

Ví dụ:

Thể hiện thực tế của liên kết:

<b>Thuộc tính 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ư </b>

<i><b>thuộc tính của các kiểu thực thể, thuộc tính của liên kết dùng để mơ tả các thơng tin chỉ </b></i>

<b>có khi có hình thành mối liên kết giữa các thực thể. Ví dụ: liên kết <Làm trưởng phòng> giữa kiểu thực thể NHÂN VIÊN và PHỊNG BAN có thể có ngày nhận chức để ghi lại ngày của nhân viên đó được giao làm trường phòng, hoặc liên kết <làm việc trên> giữa kiểu thực thể NHÂN VIÊN và DỰ ÁN có thể có thuộc tính số giờ để lưu lại </b>

tổng số giờ làm của một nhân viên trên một dự án nào đó.

<i><b>Thuộc tính của liên kết cũng được được biểu diễn bằng một hình elip và được nối </b></i>

với kiểu liên kết. Ví dụ:

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<i><b>Bậc của kiểu liên kết (Degree of Relationship Types): Bậc của kiểu liên kết là số các kiểu thực thể tham gia liên kết. Ví dụ : liên kết nơi làm là liên kết bậc 2 (binary). </b></i>

<i><b>Ràng buộc trong kiểu liên kết ( Constraints on Relationship types): Ràng buộc của kiểu liên kết là giới hạn số các thực thể của một kiểu thực thể tham gia vào liên kết. Tỷ lệ liên kết (ratio) là số lượng các liên kết thực mà một thực thể có thể tham gia. Đối với liên </b></i>

kết bậc hai (binary) thường có các loại tỷ lệ sau: 1: 1, 1: N, N: N.

Các kiểu liên kết giữa các kiểu thực thể được chia thành các kiểu: liên kết một – một, liên kết một – nhiều, liên kết nhiều – nhiều.

<i><b>Liên kết một – một (1-1) là kiểu liên kết giữa kiểu thực thể A với kiểu thực thể B </b></i>

nếu một thực thể trong kiểu A liên kết, có quan hệ với duy nhất một thực thể trong kiểu B và ngược lại. Kiểu liên kết một – một được biểu diễn bằng cách thêm số 1 ở hai đầu của kiểu thực thẻ.

Ví dụ:

<i><b>Liên kết một – nhiều (1-n) là kiểu liên kết giữa kiểu thực thể A với kiểu thực thể B </b></i>

nếu mà một thực thể trong kiểu A liên kết – có quan hệ với nhiều thực thể trong kiểu B và một thực thể trong kiểu B chỉ liên kết duy nhất với một thực thể kiểu A. Kiểu liên kết một – nhiều được biểu diễn bằng cách thêm số 1 ở đầu bên phía một và thêm n ở đầu bên phía nhiều.

Ví dụ:

<i><b>Liên kết nhiều – nhiều (m-n) là kiểu liên kết giữa kiểu thực thể A với kiểu thực thể </b></i>

B nếu mà một thực thể trong kiểu A liên kết với nhiều thực thể trong kiểu B và một thực thể trong kiểu B cũng liên kết với nhiều thực thể kiểu A. Kiểu liên kết nhiều – nhiều được biểu diễn bằng cách thêm số m và n ở hai đầu của liên kết.

Ví dụ:

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

Các liên kết giữa các thực thể không phải lúc nào cũng liên kết giữa 2 kiểu thực thể

<i><b>mà có thể thay đổi. Số lượng thực thể tham gia vào một mối liên kết được gọi là bậc của liên kết. Bậc của liên kết thường gặp các dạng sau: Đệ quy, bậc 2, bậc 3, … </b></i>

lượng thực thể tối đa được phép tham gia vào liên kết, mặc định min = 0 và max = n. Ví dụ:

<b>2.4 Mơ hình liên kết thực thể (mơ hình ER – Entity Relationship Model) </b>

Mơ hình liên kết thực thể là một sơ đồ để biểu diễn rút gọn các thực thể, các thuộc tính và các mối quan hệ liên kết giữa các thực thể. Trong mơ hình ER gồm tập hợp các đỉnh và các cạnh, với các đỉnh là các kiểu thực thể hay các thuộc tính hoặc các liên kết còn các cạnh là các đường nối giữa kiểu thực thể với kiểu thực thể, giữa kiểu thực thể với thuộc tính.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>Mục đích của mơ hình ER: </b>

<i>- Làm thống nhất quan điểm về dữ liệu của những người tham gia hệ thống: người </i>

<i>quản lý, người dùng cuối và người thiết kế hệ thống, </i>

- Xác định các xử lý về dữ liệu cũng như các ràng buộc trên các dữ liệu,

- Giúp đỡ việc thể hiện cơ sở dữ liệu về mặt cấu trúc: Sử dụng thực thể và các mối liên kết giữa các thực thể. Biểu diễn mơ hình quan niệm thực thể bằng một sơ đồ.

<b>Tập hợp các ký hiệu được dùng trong mơ hình ER: </b>

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

Ví dụ mơ hình ER của bài tốn quản lý đề án cơng ty.

Để xây dựng được mơ hình ER của một bài tốn quản lý thực hiện theo các bước sau:

<b>Bước 1: Xác định các kiểu thực thể </b>

<i>Tìm các danh từ chung trong bài tốn dùng để mơ tả các đối tượng cần được quản lý của hệ thống. Duyệt danh sách các thuộc tính từ trên xuống dưới và mỗi thuộc tính tên gọi sẽ tương ứng với một thực thể. </i>

<b>Bước 2: Xác định các thuộc tính và phân loại từng loại thuộc tính tương ứng </b>

<i>Tìm các danh từ riêng dùng để mô tả thông tin gắn liền với một đối tượng thực thể nào đó. Chú ý: để lựa chọn các đặc trưng cần thiết, ta duyệt từ trên xuống và chỉ giữ lại các thuộc tính đảm bảo yêu cầu sau: </i>

<i>+ Thuộc tính đó cần phải đặc trưng cho một lớp các đối tượng được xét + Chọn một thuộc tính một lần nếu lặp lại thì bỏ qua </i>

<i>+ Một thuộc tính phải là sơ cấp </i>

<b>Bước 3: Xác định các liên kết và kiểu liên kết </b>

<i>Tìm các động từ dùng để ràng buộc liên kết giữa hai đối tượng thực thể. Với mỗi động từ hãy trả lời các câu hỏi: Ai? Cái gì? Ở đâu? Khi nào? Bằng cách nào? </i>

<b>Bước 4: Xác định số lượng thực thể tham gia vào liên kết </b>

<i>Tìm các con số (nếu có) đi kèm khi mô tả thực thể hay mô tả mối liên kết giữa các thực thể </i>

<b>Bước 5: Vẽ mơ hình ER </b>

<i>Dùng các hình vẽ quy ước và đặt vào các vị trí. Sau đó, nối các thành phần trong mơ hình lại với nhau. Sau khi vẽ sơ đồ có thể chuẩn hóa theo nguyên tắc sau: nếu trong </i>

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<i>sơ đồ cịn chứa: các thuộc tính lặp, nhóm lặp và các thuộc tính phụ thuộc thời gian, khi đó sơ đồ chỉ cịn các thực thể đơn và các thuộc tính đơn. </i>

<b>3. VÍ DỤ VỀ MƠ HÌNH LIÊN KẾT THỰC THỂ (MƠ HÌNH ER) </b>

Trong phần này, chúng ta xem xét ví dụ về việc xây dựng mơ hình ER cho cơ sở dữ liệu quản lý đề án công ty. Trước tiên trong việc xây dựng và thiết kế CSDL là xác định đầy đủ và phân tích các u cầu của bài tốn. Kết quả này là một tập hợp các ghi chép súc tích về các yêu cầu người sử dụng cũng như tình trạng của nơi ta cần xây dựng cơ sở dữ liệu.

Giả sử rằng sau khi tập hợp các yêu cầu và phân tích, hoạt động của cơng ty được ghi chép lại như sau:

Công ty được tổ chức thành các đơn vị. Mỗi đơn vị có một tên duy nhất, một mã số duy nhất, một nhân viên cụ thể quản lý đơn vị. Việc nhân viên quản lý đơn vị được ghi lại bằng ngày nhân viên đó bắt đầu quản lý. Một đơn vị có thể có nhiều địa điểm. Nhân viên quản lý đơn vị là một người thuộc công ty.

Mỗi đơn vị thực hiện một số dự án. Một dự án có một tên duy nhất, một mã số duy nhất, một địa điểm thực hiện và thời gian bắt đầu thực hiện dự án.

Với mỗi nhân viên trong công ty, ta lưu giữ lại thông tin như: Họ tên, Mã số, địa chỉ, hệ số lương, lương (được tính dựa vào hệ số lương và mức lương cơ bản hiện tại), giới tính, ngày sinh, ngoại ngữ (mỗi nhân viên có thể biết nhiều ngoại ngữ). Một nhân viên chỉ làm việc cho một đơn vị nhưng có thể làm việc trên nhiều dự án do nhiều đơn vị đó kiểm sốt – thực hiện. Trong một đơn vị chỉ cho phép tối đa 10 nhân viên dưới quyền quản lý của đơn vị đó. Chúng ta cần lưu giữ lại số giờ làm việc của mỗi nhân viên trên một dự án nào đó. Mỗi nhân viên có thể có một người giám sát trực tiếp, người đó cũng là một nhân viên.

Mỗi nhân viên có những người thân kèm theo. Những người này được hưởng bảo hiểm theo nhân viên. Với mỗi người thân của nhân viên, chúng ta lưu giữ Họ tên, giới tính, ngày sinh, tuổi, quan hệ với nhân viên.

<b>3.1. Xác định các kiểu thực thể </b>

Theo ghi chép ở trên, chúng ta xác định được các kiểu thực thể như sau:

- CƠNG TY khơng phải là một kiểu thực thể vì ở đây ta có một cơng ty duy nhất. - ĐƠN VỊ là một kiểu thực thể để mơ tả các đơn vị - phịng ban cần quản lý trong công ty.

- DỰ ÁN là một kiểu thực thể để mô tả các dự án được thực hiện trong công ty. - NHÂN VIÊN là một kiểu thực thể để mô tả các nhân viên làm việc trong công ty. -THÂN NHÂN là một kiểu thực thể để mô tả người thân của nhân viên được hưởng kèm bảo hiểm xã hội với một nhân viên nào đó. Thực thể THÂN NHÂN là một thực thể yếu vì sẽ khơng cần quản lý thân nhân nếu thân nhân đó khơng quan hệ với nhân viên nào trong công ty.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>3.2 Xác định các thuộc tính và phân loại thuộc tính </b>

<i>Thực thể ĐƠN VỊ được quản lý với các thuộc tính Tên đơn vị, Mã số đơn vị , Người </i>

<i>quản lý đơn vị, Ngày bắt đầu nhận quản lý của người quản lý và Địa điểm. Các thuộc </i>

tính Tên đơn vị, Mã số đơn vị, Địa điểm là các thuộc tính dùng để mơ tả thơng tin của ĐƠN VỊ, các thuộc tính Người quản lý đơn vị, Ngày bắt đầu quản lý là các thuộc tính biểu thị một kiểu liên kết (giữa ĐƠN VỊ với kiểu thực thể NHÂN VIÊN). Các thuộc tính đều là đơn và đơn trị, trừ thuộc tính Địa điểm, nó là một thuộc tính đa trị ( vì một đơn vị có nhiều địa điểm). Các thuộc tính Tên, Mã số là các thuộc tính khóa (vì mỗi đơn vị có một tên và một mã số duy nhất).

<i>Thực thể DỰ ÁN có các thuộc tính Tên, Mã số, Địa điểm, Thời gian bắt đầu, Đơn </i>

<i>vị kiểm sốt. Các thuộc tính Tên, Mã số, Địa điểm, Thời gian bắt đầu là các thuộc tính </i>

<i>mơ tả DỰ ÁN, thuộc tính Đơn vị kiểm sốt biểu thị kiểu liên kết với kiểu thực thể ĐƠN </i>

VỊ (một đơn vị kiểm soát một số dự án). Các thuộc tính Tên, Mã số là các thuộc tính khóa.

<i>Thực thể NHÂN VIÊN với các thuộc tính được quản lý Họ tên, Mã số, địa chỉ, hệ </i>

<i>số lương, lương, giới tính, ngày sinh, ngoại ngữ, người giám sát, đơn vị quản lý, dự án tham gia, số giờ làm cho dự án. Thuộc tính Họ tên, mã số, địa chỉ, hệ số lương, giới tính, </i>

ngày sinh, ngoại ngữ là những thuộc tính mơ tả NHÂN VIÊN. Thuộc tính Lương là thuộc tính suy dẫn được tính từ thuộc hệ số lương. Thuộc tính Ngoại ngữ là thuộc tính đa trị vì một nhân viên biết nhiều ngoại ngữ. Thuộc tính người giám sát, thuộc tính đơn vị quản lý, thuộc tính dự án tham gia và thuộc tính số giờ dự án là thuộc tính liên kết để chỉ ai là người quản lý nhân viên đó và nhân viên đó thuộc phịng ban nào hay cho biết nhân viên đó làm cho dự án nào và mỗi dự án nhân viên đó tham gia làm bao nhiêu giờ. Thuộc tính mã số là thuộc tính khóa vì mỗi nhân viên được phân biệt với nhau bởi mã số nhân viên.

<i>Thực thể THÂN NHÂN có các thuộc tính như họ tên, giới tính, ngày sinh, tuổi, </i>

<i>quan hệ với nhân viên và nhân viên. Trong đó, thuộc tính Họ tên, giới tính, ngày sinh, </i>

tuổi và quan hệ là thuộc tính mơ tả các thân nhân của một nhân viên nào đó. Thuộc tính nhân viên là thuộc tính liên kết để chỉ ra thân nhân đó là của nhân viên nào. Thuộc tính nhân viên là thuộc tính liên kết thể hiện sự ràng buộc của một thân nhân tương ứng với một nhân viên.

<b>3.3 Xác định các liên kết và kiểu liên kết </b>

Giữa thực thể ĐƠN VỊ và DỰ ÁN có liên kết “kiểm sốt” vì mỗi đơn vị kiểm soát một số dự án, kiểu liên kết là liên kết một – nhiều.

Giữa thực thể NHÂN VIÊN và ĐƠN VỊ có liên kết “làm việc cho” vì mỗi nhân viên chỉ làm cho một đơn vị, kiểu liên kết là nhiều – một.

Giữa thực thể NHÂN VIÊN và ĐƠN VỊ cịn có kiểu liên kết một – một với tên là “quản lý” vì một nhân viên thực hiện quản lý một đơn vị và một đơn vị có một nhân viên

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

quản lý. Liên kết “quản lý” có một thuộc tính là “ngày bắt đầu” vì cần ghi lại ngày bắt đầu nhận quản lý đơn vị của một nhân viên.

Giữa thực thể NHÂN VIÊN và DỰ ÁN có mối liên kết “làm việc trên” và kiểu liên kết là nhiều – nhiều vì một nhân viên là cho nhiều dự án và một dự án được làm bởi nhiều nhân viên. Liên kết “làm việc trên” có một thuọc tính đi kèm là “số giờ làm” vì cần phải ghi lại số giờ làm việc của một nhân viên trên một dự án.

Giữa thực thể NHÂN VIÊN với thực thể NHÂN VIÊN có mối liên kết “giám sát” và có kiểu là một – nhiều vì một nhân viên có thể giám sát một số nhân viên khác nhau. Kiểu thực thể NHÂN VIÊN ở đây đóng hai vai trị khác nhau: vai trị người giám sát và vai trò người bị giám sát.

Giữa thực thể NHÂN VIÊN và thực thể THÂN NHÂN có mỗi quan hệ một – nhiều với tên là “có” và kiểu liên kết là liên kết phụ thuộc .

<b>3.4 Xác định số lượng thực thể tham gia liên kết </b>

Các mối liên kết giữa các thực thể trong bài tốn khơng có sự ràng buộc về số lượng tham gia trừ mối liên kết “làm việc cho” giữa NHÂN VIÊN và ĐƠN có giới hạn số nhân viên tối đa tham gia vào đơn vị là 10 nhân viên.

<b>3.5 Vẽ mơ hình ER </b>

Kết quả từ các phân tích trên ta thu được mơ hình ER của bài tốn Quản lý đề án cơng ty như sau:

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>4. MƠ HÌNH LIÊN KẾT THỰC THỂ MỞ RỘNG (MƠ HÌNH EER) </b>

Hiện nay, một cách truyền thống, khi xây dựng một cơ sở dữ liệu cho một bài toán chúng ta thường bắt đầu bằng việc xây dựng mơ hình liên kết – thực thể (mơ hình ER) rồi sau đó áp dụng các ngun tắc chuyển thành mơ hình cơ sở dữ liệu quan hệ. Các khái niệm của mơ hình ER có thể được coi là khá đầy đủ để trình bày các lược đồ cơ sở dữ liệu trong các ứng dụng quản lý truyền thống hiện nay, chủ yếu là các ứng dụng xử lý dữ liệu trong kinh doanh và trong công nghiệp. Ngày nay, cùng với sự phát triển nhanh chóng của cơng nghệ, các ứng dụng mới hơn cho công nghệ cơ sở dữ liệu đã trở nên phổ biến. Các cơ sở dữ liệu mới đòi hỏi những yêu phức tạp hơn so với các ứng dụng truyền thống. Vì vậy người thiết kế cơ sở dữ liệu phải sử dụng thêm các khái niệm mới để giải quyết bài tốn được chính xác và rõ ràng hơn. Việc thêm vào mơ hình ER những khái niệm mới làm mở rộng mơ hình ER và tạo nên mơ hình ER mở rộng (gọi tắt là mơ hình EER – Enhanced Entity Relationship Model).

<b>4.1 Lớp cha, lớp con và sự kế thừa </b>

<i><b>Khái niệm đầu tiên trong mơ hình EER là lớp con của một kiểu thực thể. Như ta đã </b></i>

biết, kiểu thực thể được sử dụng để biểu diễn cả kiểu của thực thể và tập hợp các thực thể cùng một kiểu trong cơ sở dữ liệu. Trong nhiều trường hợp, một kiểu thực thể có thể có các nhóm con các thực thể của nó và những nhóm con này cần được trình bày rõ ràng do ý nghĩa của nó đối với cơ sở dữ liệu.

Ví dụ, các thực thể thành viên của kiểu thực thể NHÂNVIÊN có thể được chia thành các nhóm nhỏ: KỸ SƯ, NGƯỜI QUẢN LÝ, KỸ THUẬT VIÊN … Tập các thực thể trong các nhóm đó là một tập con của các thực thể trong tập thực thể nhân viên, nghĩa là mỗi thực thể là thành viên của một trong những nhóm này cũng là một nhân viên.

<i>Chúng ta gọi mỗi nhóm này là một lớp con của kiểu thực thể NHÂNVIÊN. Kiểu thực thể </i>

<i><b>NHÂNVIÊN được gọi là lớp cha của các lớp con đó. Ta gọi quan hệ giữa lớp cha và một trong những lớp con của nó là kiểu liên kết lớp cha/ lớp con. Kiểu liên kết lớp cha/ lớp con thường được gọi là kiểu liên kết là một (IS_A). Chúng ta thường nói rằng một kỹ sư </b></i>

là một nhân viên, một kỹ thuật viên là một nhân viên.

Chú ý rằng một thực thể thành viên trong lớp con cùng biểu diễn một thực thể thực tại như một thành viên trong lớp cha, vì vậy, các thực thể thành viên trong lớp con và các thực thể thành viên trong lớp cha là giống nhau, nhưng vai trị của chúng hồn toàn khác nhau. Khi chúng ta tạo một kiểu liên kết lớp cha/ lớp con trong hệ thống cơ sở dữ liệu, chúng ta có thể trình bày một thành viên của lớp con như như là một đối tượng riêng biệt, một bản ghi riêng biệt kết hợp với các thực thể của lớp cha của nó qua thuộc tính khố. Kiểu liên kết lớp cha/ lớp con là một kiểu liên kết có tỷ số lực lượng 1: 1.

<i><b>Một khái niệm quan trọng gắn với các lớp con là sự thừa kế kiểu. Kiểu của một </b></i>

thực thể được xác định bằng các thuộc tính và các kiểu liên kết mà nó tham gia. Vì mỗi thực thể thành viên trong lớp con cùng biểu diễn một thực thể thực tại như thực thể trong lớp cha nên các giá trị của thuộc tính của nó trong lớp con cũng phải giống như là giá trị

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

của các thuộc tính của nó khi nó đóng vai trị là một thành viên trong lớp cha. Thực thể này cũng được thừa kế các liên kết trong lớp cha. Một lớp con với các thuộc tính riêng của nó cùng với tất cả các thuộc tính và kiểu liên kết kế thừa được từ lớp cha có quyền được coi như là một kiểu thực thể.

<b>4.2 Chuyên biệt hóa </b>

Chun biệt hóa là q trình xác định tập hợp các lớp con của một kiểu thực thể. Kiểu thực thể này được gọi là lớp cha trong chuyên biệt hoá. Tập các lớp con tạo nên một chuyên biệt hoá được xác định dựa trên cơ sở một đặc trưng phân biệt nào đó của các thực thể trong lớp cha. Ví dụ, tập các lớp con {THƯ KÝ, KỸ SƯ, KỸ THUẬT VIÊN} là

<i>một chuyên biệt hoá của lớp cha NHÂN VIÊN được xác định dựa trên kiểu công việc của </i>

các thực thể. Một kiểu thực thể có thể có một số chun biệt hố dựa trên các đặc trưng khác nhau. Ví dụ, một chuyên biệt hoá khác của kiểu thực thể NHÂN VIÊN sinh ra tập các lớp con {NHÂN VIÊN_BIÊN CHẾ, NHÂN VIÊN_HỢP ĐỒNG}. Trong chuyên biệt

<i>hoá này, các thực thể được phân biệt dựa trên cơ sở hình thức trả tiền. </i>

<b>Biểu diễn chun biệt hóa: Một chun biệt hố được biểu diễn trong sơ đồ EER </b>

như sau: Các lớp con xác định một chuyên biệt hoá được nối bằng các đường đến một

<i>vịng trịn, vịng trịn đó được nối với lớp cha. Ký hiệu tập con (trên mỗi đường nối một </i>

tập con với vòng tròn chỉ hướng của kiểu liên kết lớp cha / lớp con). Các thuộc tính chỉ áp dụng cho các thực thể của một lớp con cụ thể - ví dụ như Tốc_độ_đánh_máy của lớp con THƯ KÝ - được nối với hình chữ nhật biểu diễn lớp con đó. Các thuộc tính như vậy gọi là các thuộc tính riêng hoặc là các thuộc tính địa phương của lớp con. Tương tự, một lớp con có thể tham gia vào các kiểu liên kết riêng, ví dụ, lớp con NHÂN VIÊN_HỢP ĐỒNG tham gia vào kiểu liên kết <thuộc về>.

Có hai lý do chính để đặt các kiểu liên kết lớp cha/lớp con và chun biệt hố vào

<b>mơ hình dữ liệu. Thứ nhất là có một số thuộc tính có thể áp dụng cho một số các thực </b>

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

thể chứ không phải cho toàn bộ các thực thể của lớp cha. Khi đó, một lớp con sẽ được xác định để nhóm các thực thể mà các thuộc tính đó có thể áp dụng được. Các thành viên của lớp con này có thể vẫn chia sẻ phần lớn các thuộc tính của chúng với các thành viên khác của lớp cha.Ví dụ, lớp con THƯ KÝ có thuộc tính riêng là Tốc_độ_đánh_máy, lớp con KỸ SƯ có thuộc tính riêng là Kiểu_kỹ_sư nhưng các thuộc tính khác của chúng là

<b>chung với kiểu thực thể NHÂN VIÊN. Lý do thứ hai là chỉ có các thành viên của lớp con </b>

có thể tham gia vào một số kiểu liên kết nào đó. Ví dụ, nếu chỉ có các nhân viên hợp đồng mới tham gia và cơng đồn thì chúng ta có thể diễn đạt sự kiện đó bằng cách tạo ra một lớp con NHÂN VIÊN_HỢP ĐỒNG của NHÂN VIÊN và liên kết lớp con này với kiểu thực thể CƠNG_ĐỒN thơng qua kiểu thực thể <thuộc về>.

Tóm lại, q trình chun biệt hố cho phép chúng ta làm các việc sau: • Xác định một tập hợp các lớp con của một kiểu thực thể.

• Thiết lập các thuộc tính riêng cho mỗi lớp con.

• Thiết lập các kiểu liên kết riêng giữa mỗi lớp con và các kiểu thực thể khác hoặc các lớp con khác.

<b>4.3 Tổng qt hóa </b>

Là q trình đảo ngược của chun biệt hố, trong đó ta bỏ qua sự khác nhau giữa một số kiểu thực thể, xác định các đặc tính chung của chúng và tổng quát hoá chúng thành một lớp cha của các kiểu thực thể đó. Ví dụ, ta có kiểu thực thể XE CON với các thuộc tính (Mã_số, Số_giấy_phép, Giá, Tốc_độ_tối_đa, Số_chỗ_ngồi) và kiểu thực thể XE TẢI với các thuộc tính (Mã_số, Số_giấy_phép, Giá, Trọng_tải, Số_các_trục), các kiểu thực thể này có một số thuộc tính chung, chúng có thể được tổng quát hoá thành kiểu thực thể với các thuộc tính (Mã_số, Số_giấy_phép, Giá). Các kiểu thực thể XE CON và XE TẢI trở thành các lớp con của lớp cha XE ÔTÔ. Như vậy, tổng qt hố là q trình tổng qt một kiểu thực thể từ các kiểu thực thể cho trước.

Một tổng quát hoá được biểu diễn trong sơ đồ EER giống như là một chuyên biệt hoá. Tổng quát là lớp cha còn chuyên biệt là các lớp con được sử dụng để tạo nên lớp cha (hình dưới)

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>4.4 Mơ hình EER </b>

Mơ hình EER có biểu diễn đồ hoạ giống như mơ hình ER, nghĩa là các kiểu thực thể (các lớp) được biểu diễn bằng các hình chữ nhật có ghi tên ở giữa, các thuộc tính của chúng được biểu diễn bằng các hình ơ van nối với hình chữ nhật. Các kiểu liên kết được biểu diễn bằng các hình thoi và được nối với các kiểu thực thể tham gia liên kết. Tại các hình thoi có ghi rõ các tỷ số lực lượng tham gia của các kiểu thực thể tham gia vào kiểu liên kết. Ngoài ra, kiểu liên kết lớp cha/lớp con được biểu diễn bằng một đường nối có thêm một ký hiệu tập con “⊂“ ở giữa đường nối. Các lớp con trong một chuyên biệt được nối với một vòng tròn và vòng tròn được nối với lớp cha. Nếu chuyên biệt là rời rạc, giữa vòng tròn sẽ ghi chữ d, nếu chuyên biệt là chồng chéo, giữa vòng trịn có ghi chữ o.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>BÀI 2: MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ </b>

Trong phần trước đã trình bày về mơ hình ER, mơ hình ER là mơ hình dễ lập vì nó phản ánh sát sao các đối tượng trong thực tế. Tuy nhiên mơ hình ER chưa phải là tránh được các nhược điểm. Vì vậy qua bước sơ bộ dùng mơ hình ER để lập được lược đồ dữ liệu, ta phải hoành chỉnh tiếp lược đồ bằng cách:

- Chuyển qua mơ hình quan hệ để thực hiện sự chuẩn hóa

- Bổ sung các ràng buộc toàn vẹn, tức là các điều kiện mà lược đồ dữ liệu phải thỏa mãn.

Mơ hình CSDL quan hệ lần đầu tiên được E.F.Codd và tiếp sau đó được cơng ty IBM giới thiệu vào năm 1970. Ngày nay, hầu hết các tổ chức đã áp dụng CSDL quan hệ để quản lý dữ liệu trong đơn vị mình. Mơ hình quan hệ do Codd đề ra có các ưu điểm sau:

<b>- Đơn giản: các dữ liệu được biểu diễn dưới một dạng duy nhất, là quan hệ, tức là </b>

các bảng giá trị, khá tự nhiên và dễ hiểu đối với người dùng không chuyên tin học.

<b>- Chặt chẽ: các khái niệm được hình thức hóa cao, cho phép áp dụng các cơng cụ </b>

tốn học, các thuật tốn.

<b>- Trừu tượng hóa cao: mơ hình chỉ dừng ở mức quan niệm, nghĩa là độc lập với </b>

mức vật lý, với sự cài đặt, với các thiết bị. Nhờ đó làm cho tính độc lập giữa dữ liệu và chương trình cao.

- Cung cấp các ngôn ngữ truy nhập dữ liệu ở mức cao, dễ sử dụng và trở thành chuẩn.

<i>Mơ hình cơ sở dữ liệu quan hệ là cách thức biểu diễn dữ liệu dưới dạng bảng hay còn gọi là quan hệ, mơ hình được xây dựng dựa trên cơ sở lý thuyết đại số quan hệ. </i>

<b>1. CÁC KHÁI NIỆM TRONG MƠ HÌNH QUAN HỆ </b>

Mơ hình quan hệ biểu diễn cơ sở dữ liệu như một tập các quan hệ. Mỗi quan hệ có thể được biểu diễn như một bảng tương ứng với một kiểu thực thể, mỗi dòng của bảng biểu diễn một tập hợp các giá trị dữ liệu liên quan với nhau tương ứng với một thực thể cụ thể hoặc một liên kết của thế giới thực, mỗi cột của bảng tương ứng với một thuộc tính của kiểu thực thể. Tên bảng và tên các cột dùng để giúp giải thích ý nghĩa của các giá trị trong mỗi dòng. Mọi giá trị trong một cột đều cùng một kiểu dữ liệu.

Theo thuật ngữ mơ hình quan hệ hình thức, mỗi dòng được gọi là một bộ, mỗi đầu cột được gọi là một thuộc tính, và bảng được gọi là một quan hệ. Tập hợp các giá trị của một cột gọi là miền giá trị của cột.

<b>1.1 Thuộc tính (Attribute) </b>

Thuộc tính trong mơ hình quan hệ thể hiện một đặc trưng hay một tính chất của quan hệ

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>1.2 Miền giá trị (Domain) </b>

<i><b>Một miền giá trị, ký hiệu là D là một tập hợp các giá trị nguyên tử, không thể phân </b></i>

chia được trong phạm vi mơ hình quan hệ. Để đặc tả một miền một phạm vi nhận giá trị của một thuộc tính nào đó, người ta chỉ ra một tên, một kiểu dữ liệu và khuôn dạng dữ liệu. Một số ví dụ về định nghĩa miền giá trị:

<i>• Họ tên: Tập hợp các dãy chữ cái có độ dài <= 30. </i>

<i>• Tuổi: Tập các số nguyên nằm trong khoảng từ 1 đến 80. • Giới tính: Tập hợp gồm hai giá trị “Nam”, “Nữ”. </i>

Miền giá trị trong mơ hình quan hệ ký hiệu là D, miền giá trị của một thuộc tính Ai

<b>bất kì ký hiệu là Dom(Ai). 1.3 Bộ dữ liệu (Data Tube) </b>

Bộ trong mơ hình quan hệ là các dòng thể hiện giá trị của quan hệ trừ dòng tiêu đề. Bộ dùng để thể hiện dữ liệu cụ thể của các thuộc tính trong quan hệ.

<i>phép cập nhật (bổ sung, loại bỏ, điều chỉnh), do đó quan hệ thay đổi theo thời gian. </i>

Tuy quan hệ thay đổi về giá trị do thực hiện thao tác cập nhật nhưng quan hệ đó vẫn giữ được các đặc trưng về mặc ngữ nghĩa. Các đặc trưng khơng thay đổi đó của quan hệ

<b>được gọi là lược đồ quan hệ. </b>

Lược đồ quan hệ được sử dụng để mô tả một quan hệ, bao gồm: Tên quan hệ, các thuộc tính và bậc của quan hệ (số lượng các thuộc tính).

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>Ký hiệu lược đồ quan hệ: R(A1,…,An) </b>

Trong đó:

- R là tên quan hệ cần biểu diễn,

- Ai là tên các thuộc tính, mỗi Ai có miền giá trị tương ứng Dom(Ai). Lược đồ quan hệ là sự tạo thành từ hai yếu tố cơ bản:

<b>- Một cấu trúc cơ bản, gồm tên quan hệ và một danh sách các thuộc tính (mỗi </b>

thuộc tính gắn với một miền), thường cho dưới dạng R(A1, A2, …, An),

<b>- Một tập hợp các ràng buộc toàn vẹn, tức là các điều kiện mà mọi quan hệ trong </b>

lược đồ đều phải thỏa mãn.

<i><b>Như vậy, Lược đồ quan hệ là một khuôn mẫu, là một bộ lọc cho phép thiết lập một họ các quan hệ có cùng ngữ nghĩa với nhau. </b></i>

Ví dụ, ta có lược đồ quan hệ SINHVIÊN (Mã_số, Họ_tên, Ngày_sinh, Giới_tính, Địa_chỉ) với các ràng buộc tồn vẹn như sau:

- Một bộ <ms, ht, ns, gt, dc> có nghĩa là một sinh viên nào đó có một mã số, một họ tên, một ngày sinh, một giới tính và một địa chỉ xác định,

- Miền xác định của giới tính chỉ nhận hai giá trị “Nam” hoặc “Nữ”

<b>Lược đồ cơ sở dữ liệu: là tập các lược đồ quan hệ của một hệ thống quản lý </b>

Ví dụ: Bài tốn quản lý sinh viên ta có lược đồ cơ sở dữ liệu như sau: KHOA(Mã_Khoa, Tên_Khoa)

LỚP(Mã_Lớp, Tên_Lớp, Mã_Khoa)

SINHVIÊN (Mã_SV, Họ_tên, Ngày_sinh, Giới_tính, Địa_chỉ, Mã_Lớp)

<b>2 RÀNG BUỘC TỒN VẸN TRONG QUAN HỆ 2.1 Giới thiệu </b>

<b>RBTV (Entegrity constraint) là các qui định, điều kiện từ thực tế được cài đặt để đảm bảo dữ liệu lưu trữ trong CSDL phải thỏa mãn các qui định này. Các điều kiện này phải ln đúng sau mỗi thao tác (thêm, sửa, xóa) làm thay đổi trạng thái của CSDL. </b>

<i>Ràng buộc là những quy tắc được áp đặt lên trên dữ liệu đảm bảo tính tin cậy và độ </i>

<i>chính xác của dữ liệu. Các luật toàn vẹn được thiết kế để giữ cho dữ liệu phù hợp và đúng </i>

đắn. Các RBTV là những điều kiện bất biến mà mọi thể hiện của quan hệ đều phải thỏa mãn ở bất kỳ thời điểm nào. Như vậy, RBTV là những qui tắc, qui phạm được áp đặt lên trên các đối tượng của thế giới thực.

Ví dụ:

- Mức lương của một người nhân viên không được vượt quá trưởng phịng mà nhân viên đó làm,

- Người quản lý trực tiếp (của một nhân viên) phải là một nhân viên trong công ty

<b>RBTV luôn được kiểm tra khi: </b>

- Thực hiện một thao tác cập nhật CSDL

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

- Kiểm tra định kỳ hay đột xuất, nghĩa là việc kiểm tra RBTV được tiến hành một cách độc lập đối với các thao tác cập nhật dữ liệu

<b>RBTV rất quan trọng vì: </b>

- Giúp CSDL thể hiện trung thực thế giới thực mà CSDL đang mô tả - Ngăn chặn các thao tác gây sai sót trên CSDL

- Giúp CSDL luôn đúng đắn so với thực tế tại mọi thời điểm

<i>Có 4 nhóm kiểu ràng buộc chính: Ràng buộc miền giá trị (Domain Constraints), </i>

<i>Ràng buộc khoá (Key Constraints), Ràng buộc thực thể (Entity Integrity Constraints), và Ràng buộc toàn vẹn tham chiếu (Referential Integrity Constraints). </i>

<b>2.2 Các đặc trưng RBTV </b>

<i>Mỗi một ràng buộc tồn vẹn khi mơ tả được xác định qua ba đặc trưng: Bối cảnh, </i>

<i>Nội dung và tầm ảnh hưởng </i>

<b>Bối cảnh </b>

Dùng để xác định những quan hệ có khả năng xảy ra hay vi phạm RBTV khi thực hiện các phép cập nhật hay nói cách khác bối cảnh dùng để xác định các quan hệ cần phải được kiểm tra RBTV. Bối cảnh có thể là một hoặc nhiều quan hệ của một Cơ sở dữ liệu.

<i>Ví dụ: “Mức lương của một người nhân viên khơng được vượt q trưởng phịng” </i>

Ràng buộc trên sẽ có khả năng xảy ra vi phạm khi thực hiện trong trường hợp:

<i>- Cập nhật lương cho nhân viên đã có, - Thêm một nhân viên mới vào phòng ban, </i>

<i>- Bổ nhiệm một người làm trưởng phòng của một phòng ban. </i>

Vậy ràng buộc toàn vẹn trên xảy ra khi thực hiện thao tác trên hai quan hệ là “NHAN VIEN” và “PHONG BAN”. Vì vậy bối cảnh của RBTV là “NHAN VIEN” và “PHONG BAN”.

<b>Nội dung </b>

Dùng để mơ tả hay biểu diễn một cách hình thức nội dung hay yêu cầu của một ràng

<i>buộc tồn vẹn, thơng thường một ràng buộc tồn vẹn thường được phát biểu bằng: ngôn </i>

<i>ngữ tự nhiên hay bằng ngơn ngữ hình thức (sử dụng các phép tốn như: tồn tại (</i><sub>∃</sub><i>), với mọi (</i><sub>∀</sub><i>), phủ định (!), chiếu (</i><sub>π</sub><i>), chọn (</i><sub>σ</sub><i>), kết nối (*)) </i>

<b>Tầm ảnh hưởng </b>

Là một bảng để xác định thao tác nào cần phải kiểm tra ràng buộc toàn vẹn khi thực hiện hoặc xác định thời điểm cần phải tiến hành kiểm tra ràng buộc tồn vẹn.

<i>Bảng tầm ảnh hưởng có hai loại: bảng tầm ảnh hưởng cho một RBTV và bảng tầm </i>

<i>ảnh hưởng cho nhiều RBTV </i>

Nguyên tắc xây dựng bảng tầm ảnh hưởng:

- Bảng gồm 4 cột và ít nhất 2 hàng, mỗi hàng tương ứng cho một quan hệ ¡ Cột 1 chứa tên các quan hệ liên quan tới RBTV.

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

¡ 3 cột tiếp theo là tên các thao tác: Thêm / Sửa / Xoá - Điền nội dung vào bảng theo nguyên tắc:

¡ Nếu RBTV cần được kiểm tra nguy cơ dẫn tới vi phạm cho quan hệ thì đánh dấu cộng (+);

<i>- Có thể chỉ rõ các thuộc tính nào nếu được cập nhật mới dẫn đến vi phạm </i>

<i>bằng cách liệt kê chúng dưới dấu (+) </i>

¡ Nếu khơng có nguy cơ bị vi phạm thì đánh dấu trừ (-);

¡ Nếu khơng bị vi phạm vì khơng được phép sửa đổi thì kí hiệu là trừ với dấu nhân: (- (*)).

<i>Ví dụ: Giới tính của nhân viên chỉ nhận giá trị “Nam” hoặc “Nữ” </i>

<i>Có nghĩa là: ràng buộc này xảy ra khi thêm mới hoặc khi sửa trên thuộc tính có tên </i>

<i>là “giới tính”. </i>

<i><b>Dạng bảng tầm ảnh hưởng tổng hợp </b></i>

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

<b>Trung tâm Đào tạo E-learning </b> <i><b>Cơ hội học tập cho mọi người </b></i>

<b>2.3 Phân loại RBTV </b>

Các ràng buộc toàn vẹn gắn kết với một mơ hình quan hệ thường được chia thành

<i>hai nhóm chính: ràng buộc trên một quan hệ và ràng buộc trên nhiều quan hệ. </i>

* Ràng buộc trên một quan hệ là ràng buộc chỉ tác động trên một quan hệ, thường gồm các trường hợp sau:

<i>- Ràng buộc miền giá trị - Ràng buộc liên bộ </i>

<i>- Ràng buộc liên thuộc tính - Ràng buộc giá trị theo thời gian </i>

* Ràng buộc nhiều quan hệ là ràng buộc tác động trên nhiều quan hệ khác nhau, thường bao gồm các trường hợp sau:

<i>- Ràng buộc tham chiếu </i>

<i>- Ràng buộc liên bộ, liên quan hệ </i>

<i>- Ràng buộc liên thuộc tính, liên quan hệ - Ràng buộc thuộc tính hỗn hợp </i>

<i>a. Ràng buộc miền giá trị </i>

Là quy tắc về các kiểu dữ liệu và những giá trị giới hạn mà một thuộc tính có thể nhận được.

Thơng thường việc xác định miền giá trị của các thuộc tính bao gồm một số các yêu

<i>cầu sau: Tên thuộc tính, Kiểu dữ liệu, Độ dài dữ liệu, Khuôn dạng của dữ liệu, Các giá </i>

<i>trị giới hạn cho phép, Ý nghĩa, có duy nhất hay khơng, có cho phép giá trị rỗng hay </i>

<i><b>không. </b></i>

<b>Ví dụ: Cho lược đồ DIEM THI (MSV, MaMon, DiemThi) </b>

<i>Ràng buộc: “Thuộc tính Điểm có kiểu là ngun dương, độ dài 2, chỉ nhận các giá </i>

</div>

×