intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

Chia sẻ: Hoatudang09 | Ngày: | Loại File: PDF | Số trang:40

26
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

(NB) Giáo trình Cơ sở dữ liệu với mục tiêu giúp các bạn có thể chuyển các câu hỏi tối ưu hoá bằng sơ đồ sang ngôn ngữ SQL; Viết được chương trình và thực hiện chương trình trên máy tính có ứng dụng cơ sở dữ liệu. Mời các bạn cùng tham khảo nội dung giáo trình phần 1 dưới đây.

Chủ đề:
Lưu

Nội dung Text: Giáo trình Cơ sở dữ liệu (Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính - Cao đẳng): Phần 1 - Trường CĐ nghề Việt Nam - Hàn Quốc thành phố Hà Nội

  1. ỦY BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI TRƢỜNG CAO ĐẲNG NGHỀ VIỆT NAM - HÀN QUỐC THÀNH PHỐ HÀ NỘI ĐẶNG MINH NGỌC (Chủ biên) LÊ TRỌNG HƢNG – NGUYỄN TUẤN HẢI GIÁO TRÌNH CƠ SỞ DỮ LIỆU Nghề: Kỹ thuật sửa chữa, lắp ráp máy tính Trình độ: Cao đẳng (Lưu hành nội bộ) Hà Nội - Năm 2021
  2. LỜI NÓI ĐẦU Ngày nay, cơ sở dữ liệu đã có nhiều ứng dụng trong mọi hoạt động của xã hội. Muốn thiết kế và sử dụng cơ sở dữ liệu chúng ta phải nắm đƣợc các kỹ thuật cơ bản của cơ sở dữ liệu. Tài liệu học tập này nhằm trình bày các kỹ thuật cơ sở của cơ sở dữ liệu truyền thống, đó là mô hình liên kết thực thể, mô hình cơ sở dữ liệu quan hệ. Tài liệu cũng trình bày cách thiết kế một cơ sở dữ liệu quan hệ, cách sử dụng các phép toán đại số quan hệ để tạo, cập nhật và truy vấn cơ sở dữ liệu và khái niệm phụ thuộc hàm ứng dụng trong lí thuyết thiết kế và chuẩn hóa cơ sở dữ liệu quan hệ. Tài liệu học tập “Cơ sở dữ liệu” là sách hƣớng dẫn học tập dùng cho sinh viên ngành công nghệ thông tin và ngành mạng máy máy tính & truyền thông dữ liệu. Tài liệu ”Cơ sở dữ liệu” không chỉ đề cập đến những vấn đề cơ sở lý thuyết mà còn trình bày một số kỹ năng cần thiết để thiết kế và cài đặt các hệ cơ sở dữ liệu cụ thể. Hy vọng sẽ có ích cho sinh viên và những ngƣời muốn xây dựng các hệ thống tin học ứng dụng phục vụ cho sản xuất, quản lý trong các doanh nghiệp. Mặc dù đã có những cố gắng để hoàn thành giáo trình theo kế hoạch, nhƣng do hạn chế về thời gian và kinh nghiệm soạn thảo giáo trình, nên tài liệu chắc chắn còn những khiếm khuyết. Rất mong nhận đƣợc sự đóng góp ý kiến của các thầy cô trong Khoa cũng nhƣ các bạn sinh viên và những ai sử dụng tài liệu này. Địa chỉ đóng góp về khoa CNTT, Trƣờng Cao Đẳng Nghề Việt Nam – Hàn Quốc, Đƣờng Uy Nỗ – Đông Anh – Hà Nội. Xin chân thành cảm ơn! Hà Nội, ngày … tháng … năm 2021 Chủ biên: Đặng Minh Ngọc 1
  3. MỤC LỤC LỜI NÓI ĐẦU ..................................................................................................... 1 MỤC LỤC ............................................................................................................ 2 Chƣơng 1 Tổng quan về cơ sở dữ liệu............................................................ 6 1.1 Dữ liệu – thông tin .................................................................................... 6 1.2 Các hệ thống xử lý truyền thống ............................................................... 6 1.3 Phƣơng pháp cơ sở dữ liệu ....................................................................... 7 1.4 Phân loại ngƣời dùng CSDL ..................................................................... 8 Chƣơng 2 Các mô hình dữ liệu ..................................................................... 10 2.1 Sơ đồ thực thể liên kết ............................................................................ 10 2.2 Mô hình thực thể, quan hệ ...................................................................... 16 2.3 Mô hình dữ liệu quan hệ: ........................................................................ 17 2.4 Mô hình dữ liệu mạng ............................................................................. 19 2.5 Mô hình dữ liệu phân cấp ....................................................................... 19 Chƣơng 3 Mô hình cơ sở dữ liệu quan hệ .................................................... 24 3.1 Các khái niệm ......................................................................................... 24 3.2 Ràng buộc toàn vẹn ................................................................................. 27 3.3 Các phép tính trên cơ sở dữ liệu quan hệ ................................................ 33 Chƣơng 4 Ngôn ngữ thao tác dữ liệu ........................................................... 40 4.1 Đại số quan hệ ......................................................................................... 40 4.2 Các phép toán tập hợp ............................................................................. 41 4.3 Các phép toán đặc biệt trên quan hệ ....................................................... 45 4.4 Các phép toán quan hệ bổ sung .............................................................. 49 Chƣơng 5 Ngôn ngữ truy vấn dữ liệu SQL ................................................. 51 5.1 Cách tạo quan hệ bằng Access ................................................................ 51 5.2 Câu lệnh truy vấn .................................................................................... 55 Chƣơng 6 Lý thuyết thiết kế cơ sở dữ liệu.................................................. 65 6.1 Phụ thuộc hàm......................................................................................... 65 6.2 Phép tách các lƣợc đồ quan hệ ................................................................ 86 2
  4. 6.3 Các dạng chuẩn ..................................................................................... 109 6.4 Chuẩn hóa qua phép tách ...................................................................... 117 TÀI LIỆU THAM KHẢO ........................................................................... 122 3
  5. CHƢƠNG TRÌNH MÔN HỌC Tên môn học: Cơ sở dữ liệu Mã số của môn học: MH 29 Thời gian của môn học: 60 giờ; (Lý thuyết: 30 giờ; Thực hành, thí nghiệm, thảo luận, bài tập: 26 giờ; Kiểm tra: 4 giờ) I. Vị trí, tính chất môn học: - Vị trí: + Môn học đƣợc bố trí sau khi sinh viên học xong các môn học chung, các môn học, mô đun đào tạo chuyên môn nghề. + Môn học đƣợc bố trí sau khi sinh viên học xong các môn học Lập trình căn bản. - Tính chất: + Là mô học chuyên ngành tự chọn. II. Mục tiêu môn học: - Về kiến thức: + Hiểu đƣợc công dụng của cơ sở dữ liệu. + Xây dựng đƣợc các mô hình quan hệ. + Thiết kế đƣợc cơ sở dữ liệu + Phân tích đƣợc chƣơng trình: xác định nhiệm vụ chƣơng trình. - Về kỹ năng: + Chuyển các câu hỏi tối ƣu hoá bằng sơ đồ sang ngôn ngữ SQL. + Viết đƣợc chƣơng trình và thực hiện chƣơng trình trên máy tính có ứng dụng CSDL. - Về năng lực tự chủ và trách nhiệm: + Có ý thức tự giác, tính kỷ luật, tinh thần trách nhiệm trong học tập. + Tính cẩn thận, trách nhiện khi thao tác trên Cơ sở dữ liệu. 4
  6. III. Nội dung môn học: 1.Nội dung tông quát và phân phối thời gian Thời gian TT Tên các bài trong môn học Tổng Thực Lý Kiểm hành, số thuyết tra* Bài tập 1 Tổng quan về cơ sở dữ liệu 5 4 1 2 Các mô hình dữ liệu 8 2 5 1 3 Mô hình cơ sở dữ liệu quan hệ 5 3 2 4 Ngôn ngữ thao tác dữ liệu 14 8 6 5 Ngôn ngữ truy vấn dữ liệu SQL 14 7 6 1 6 Lý thuyết thiết kế cơ sở dữ liệu 14 6 6 2 Cộng 60 30 26 4 *Ghi chú: Thời gian kiểm tra được tích hợp giữa lý thuyết với thực hành được tính bằng giờ thực hành. 5
  7. Chƣơng 1 Tổng quan về cơ sở dữ liệu 1.1 Dữ liệu – thông tin - Dữ liệu là những gì có thật đƣợc ghi nhận lại (thủ công hoặc dùng máy tính) và mang một ý nghĩa nào đó. - Thông tin là khái niệm phản ánh tri thức, sự hiểu biết của con ngƣời về một đối tƣợng. ƒDữ liệu là khái niệm thô và rời rạc. ƒThông tin là nội dung của dữ liệu. - Cơ sở dữ liệu là một tập hợp dữ liệu đƣợc tổ chức và lƣu trữ theo một cấu trúc chặt chẽ nhằm phục vụ cho nhiều đối tƣợng với các mục đích khác nhau. 1.2 Các hệ thống xử lý truyền thống Hệ thống quản lý tệp truyền thống thƣờng đƣợc tổ chức riêng rẽ, phục vụ cho một mục đích của một đơn vị hoặc một đơn vị con trực thuộc cụ thể. Hệ thống quản lý tệp truyền thống cho phép ta tạo các tệp, truy cập và xử lý thông tin trong các tệp thông qua các chƣơng trình ứng dụng. Các phần mềm ứng dụng này đƣợc viết bằng các ngôn ngữ lập trình đa năng nhƣ PASCAL, C ... - Ƣu điểm: Việc xây dựng hệ thống các tệp tin riêng tại từng đơn vị quản lý ít tốn thời gian bởi khối lƣợng thông tin cần quản lý và khai thác là nhỏ, không đòi hỏi đầu tƣ vật chất và chất xám nhiều, do đó triển khai ứng dụng nhanh. Thông tin đƣợc khai thác chỉ phục vụ mục đích hẹp nên khả năng đáp ứng nhanh chóng, kịp thời. - Nhƣợc điểm: Thông tin đƣợc tổ chức riêng rẽ ở nhiều nơi nên việc cập nhật dễ làm mất tính nhất quán dữ liệu. Hệ thống thông tin đƣợc tổ chức thành các hệ thống file riêng lẻ nên thiếu sự chia sẻ thông tin giữa các nơi. Có sự dƣ thừa dữ liệu rất lớn qua việc trùng lặp các tệp tin trong các ứng dụng khác nhau. Không gian đĩa bị lãng phí, khó khăn trong việc bảo trì hệ thống. Khó khăn trong việc truy xuất dữ liệu. 6
  8. Một ví dụ điển hình về sự trùng lắp dữ liệu nhƣ trong Hệ quản lý nguồn nhân lực bao gồm ba hệ chính: 1. Hệ lƣơng, hệ này duy trì ngày công và lƣơng cho tất cả nhân viên. 2. Hệ nhân sự, hệ này duy trì lý lịch cá nhân, dữ liệu về tổ chức, công việc đào tạo và vị trí thăng tiến. 3. Hệ hƣu, hệ này quản trị các qui tắc liên quan đến nghỉ hƣu, loại nghỉ hƣu. Chi tiết về hƣu của từng nhân viên. Vấn đề bất lợi là Hệ quản lý lƣơng thông thƣờng đƣợc quản lý bởi phòng Tài chính, trong khi Hệ quản lý nhân sự và Hệ quản lý hƣu đƣợc quản lý bởi phòng Tổ chức cán bộ. Rõ ràng, có nhiều dữ liệu về nhân viên là chung cho cả ba hệ. Thƣờng những hệ này thực hiện và lƣu trữ riêng biệt nên chúng tạo ra sự trùng lặp dữ liệu. Qua phân tích trên, chúng ta nhận thấy việc tổ chức dữ liệu theo hệ thống tệp hoàn toàn không phù hợp với những hệ thống thông tin lớn. Việc xây dựng một hệ thống thông tin đảm bảo đƣợc tính nhất quán dữ liệu, đáp ứng đƣợc nhu cầu khai thác đồng thời của nhiều ngƣời là thực sự cần thiết. 1.3 Phƣơng pháp cơ sở dữ liệu 1.3.1 Cơ sở dữ liệu là gì Cơ sở dữ liệu (CSDL) 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ị nhƣ băng từ, đĩa từ,để có thể thoả mãn yêu cầu khai thác đồng thời của nhiều ngƣời sử dụng. CSDL gắn liền với đại số, logic toán và một số lĩnh vực khác. 1.3.2 Hệ quản trị cơ sở dữ liệu Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra nhƣ đã nói ở trên, cần thiết phải có những phần mềm chuyên dùng để khai thác chúng. Những phần mềm này đƣợc gọi là các hệ quản trị CSDL. Các hệ quản trị CSDL có nhiệm vụ hỗ trợ cho các nhà phân tích thiết kế CSDL cũng nhƣ những ngƣời khai thác CSDL. Hiện nay trên thị trƣờng phần mềm đã có những hệquản trị CSDL hỗ trợđƣợc nhiều tiện ích nhƣ: MS Access, Visual Foxpro, SQL Server Oracle,  Mỗi hệ quản trị CSDL đều đƣợc cài đặt dựa trên một mô hình dữ liệu cụthể. Dù là dựa trên mô hình dữ liệu nào, một hệ quản trị CSDL cũng phải hội đủcác yếu tố sau: - Ngôn ngữ giao tiếp giữa ngƣời sử dụng và CSDL, bao gồm : 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 đó. 7
  9. Ngôn ngữ thao tác dữ liệu: Cho phép ngƣời sử dụng có thể cập nhật dữ liệu (thêm/sửa/xoá) Ngôn ngữ truy vấn dữ liệu: Cho phép ngƣời khai thác sử dụng đểtruy vấn các thông tin cần thiết trong CSDL Ngôn ngữ quản lý dữ liệu: Cho phép những ngƣời quản trị hệthống thay đổi cấu trúc của các bảng dữ liệu, khai báo bảo mật thông tin và cấp quyền hạn khai thác CSDL cho ngƣời sử dụng., - Từ điển dữ liệu: Dùng để mô tả các ánh xạ liên kết, ghi nhận các thành phần cấu trúc của CSDL, các chƣơng trình ứng dụng, mật mã, quyền hạn sử dụng, - Cơ chế giải quyết vấn đề tranh chấp dữ liệu: Mỗi hệ quản trị CSDL cũng có thể cài đặt một cơ chế riêng để giải quyết các vấn đề này. Một số biện pháp sau đây thƣờng đƣợc sử dụng: thứ nhất: cấp quyền ƣu tiên cho từng ngƣời sử dụng; thứ hai: Đánh dấu yêu cầu truy xuất dữliệu, phân chia thời gian, ngƣời nào có yêu cầu trƣớc thì có quyền truy xuất dữliệu trƣớc, Hệ quản trị CSDL cũng phải có cơ chế sao lƣu (backup) và phục hồi (restore) dữ liệu khi có sự cố xảy ra. Điều này có thể thực hiện sau một thời gian nhất định hệ quản trị CSDL sẽ tựđộng tạo ra một bản sao CSDL, cách này hơi tốn kém, nhất là đối với CSDL lớn. Hệ quản trị CSDL phải cung cấp một giao diện thân thiện, dễ sử dụng. 1.4 Phân loại ngƣời dùng CSDL - Ngƣời quản trị cơ sở dữ liệu: Trong những tổ chức có nhiều ngƣời cùng sử dụng chung một nguồn dữ liệu thì nhất thiết phải có một ngƣời đứng đầu quản lý, chịu trách nhiệm đối với nguồn dữ liệu này. Đó chính là ngƣời quản trị cơ sở dữ liệu (Database Administrators - DBA ). DBA có nhiệm vụ tổ chức nội dung của cơ sở dữ liệu, tạo và cấp quyền truy cập cơ sở dữ liệu cho ngƣời dùng, đƣa ra yêu cầu về phần cứng và phần mềm… nếu cần thiết. DAB cũng phải chịu trách nhiệm bảo vệ an toàn, Backup thông tin…khi có sự cố. - Ngƣời phân tích và thiết kế hệ thống: Là ngƣời chịu trách nhiệm: (a) xác định những dữ liệu nào cần lƣu trữ trong CSDL; (b) lựa chọn những cấu trúc thích hợp để biểu diễn và lƣu trữ; (c) phỏng vấn tất cả những ngƣời sử dụng CSDL sau này để hiểu đƣợc những yêu cầu của họ đối với CSDL; (d) tiến hành phân tích thiết kế hệ thống sau khi thống nhất đƣợc tất cả các yêu cầu của ngƣời sử dụng. 8
  10. - Ngƣời viết chƣơng trình ứng dụng: Là ngƣời viết phần mềm phục vụ cho việc thực hiện các chức năng của hệ thống bằng những ngôn ngữ phù hợp, ngoài ra còn có các nhiệm vụ: (a) chạy thử chƣơng trình (test); (b) chữa lỗi và gỡ rối chƣơng trình (debug); (c) viết tài liệu, hƣớng dẫn sử dụng; (d) bảo trì hệ thống - Ngƣời dùng cuối (EndUser): Ngƣời dùng cuối là những ngƣời truy cập CSDL để: (a) cập nhật dữ liệu; (b) cruy vấn dữ liệu; (c) thống kê, báo cáo. Mỗi EndUse chỉ có một quyền hạn trong phạm vi nhất định đỗi với cơ sở dữ liệu nhƣ quyền đọc, ghi, copy...) 9
  11. Chƣơng 2 Các mô hình dữ liệu Giới thiệu: Chƣơng này giúp cho ngƣời đọc làm quen với các khái niệm cơ bản về cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và các mô hình quan hệ Mục tiêu: - Hiểu các khái niệm về cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và mô hình quan hệ. - Biết cách chuyển đổi từ lƣợc đồ cơ sở dữ liệu sang mô hình quan hệ dữ liệu. - Áp dụng các phép toán đại số quan hệ để biểu diễn trên lƣợc đồ quan hệ. - Nghiêm túc, tỉ mỉ trong việc học và làm bài tập. Nội dung chính: 2.1 Sơ đồ thực thể liên kết 2.1.1 Giới thiệu Sơ đồ thực thể liên kết Sơ đồ thực thể liên kết (Entity Relationshop Model) viết tắt là (ER) đƣợc CHEN giới thiệu vào năm 1976. Đây là một mô hình đƣợc sử dụng rộng rãi trong các bản thiết kế cơ sở dữ liệu ở mức quan niệm. So với mô hình mạng thì mô hình ER có nhiều ƣu điểm hơn và nó thể hiện rõ hơn các thành phần trong thế giới thực. Ví dụ trong mô hình mạng ta chỉ biểu diễn các đối tƣợng chính chứ không mô tả đƣợc các đặc điểm trong đối tƣợng đó, vậy thì trong mô hình ER sẽ khắc phục đƣợc những điểm yếu này. Chính vì vậy việc lựa chọn mô hình này luôn là quyết định của các nhà phân tích thiết kế CSDL. a. Loại thực thể trong mô hình ER Loại thực thể (Entity Type) là là những đối tƣợng hay sự vật của thế giới thực cần quản lý trong ứng dụng. Các đối tƣợng ở đây có thể sờ thấy và cũng có thể mang tính chất ảo tƣởng. Ví dụ: Khi thiết kế cơ sở dữ liệu quản lý học viên thì ta sẽ có một số thực thể nhƣ sau: + HOCVIEN + LOP + ... 10
  12. Trong mô hình ER thì ta sẽ dùng ký hiệu sau để mô tả loại thực thể: Hình 2.1. Ví dụ về thực thể Nhƣ vậy ta dùng ký hiệu hình chữ nhật và bên trong chính là tên của loại thực thể. b. Thực thể (Entity) trong mô hình ER Trong lập trình hƣớng đối tƣợng thì khi ta tạo mới một lớp thì tức là ta đã tạo một thể hiện của đối tƣợng mà class đó đang mô tả. Vậy thì trong mô hình thực thể mối kết hợp thì thực thể chính là một thể hiện của loại thực thể. Ví dụ: Loại thực thể HOCVIEN gồm các thực thể nhƣ sau: + Sinh viên Nguyễn Văn A + Sinh viên Nguyễn Văn B + Sinh viên Nguyễn Văn C + ... Tất cả những học viên trên chính là thực thể thể hiện cho loại thực thể HOCVIEN. c. Thuộc tính của loại thực thể (Entity Attribute) Thuộc tính là những tính chất mô tả một đối tƣợng cụ thể nào đó. Ví dụ ta có chiếc mũ màu đỏ, chiếc áo màu vàng thì những màu sắc đỏ và vàng chính là những thuộc tính của mũ và áo. Nếu ở đây ta nhắm tới ví dụ ở phần trên thì với loại thực thể HOCVIEN ta sẽ có một số thuộc tính nhƣ sau: + Mahv + Hoten + Gioitinh + Ngaysinh + Noisinh +... Và ta có ký hiệu nhƣ sau: 11
  13. Hình 2.2. Thuộc tính của thực thể HOCVIEN d. Các loại thuộc tính của loại thực thể Chúng ta có tổng cộng ba loại thuộc tính chính đó là Đơn vị, Đa hợp và Đa trị. + Đơn vị (simple) là loại thuộc tính chỉ có một giá trị duy nhất. Ví dụ thuộc tính Noisinh, Mahv, ... + Đa hợp (Composite) là thuộc tính có thể đƣợc tạo từ nhiều thành phần. Ví dụ thuộc tính Hoten có thể đƣợc tạo từ 3 thành phần đó là HỌ + TÊN LÓT + TÊN. Ký hiệu là HOTEN (HO, TENLOT, TEN) + Đa trị (Multi valued) là loại thuộc tính có thể có nhiều giá trị đối với loại thực thể. Ví dụ bằng cấp thì ta có bằng loại tốt, loại khá, trung bình khá và giỏi. Ký hiệu là {BANGCAP} Với hai loại thuộc tính đa hơp và đa trị thì ta có thể thiết kế chồng lên nhau. Ví dụ: {BANGCAP(TRUONGCAP, LOAIBANG, NGANH)} e. Khóa của loại thực thể trong mô hình ER Nhƣ định nghĩa trên thì mỗi thực thể sẽ là một thể hiện của loại thực thể, vậy thì làm sao để nhận diện các thực thể đó? Để nhận diện thì với mỗi thực thể chúng ta sẽ xác định cho nó một khóa duy nhất. Nhƣ vậy khóa của loại thực thể chính là dùng để nhận diện các thực thể của nó. Ví dụ: trong loại thực thể HOCVIEN sẽ có nhiều thực thể học viên và mỗi học viên sẽ có một mã số duy nhất. Nhƣ vậy mã học viên chính là Key để ta nhận diện đƣợc học viên nào. f. Các loại mối kết hợp trong mô hình ER Trong mô hình mạng thì giữa hai đối tƣợng sẽ có một mối liên hệ và ta gọi nó là loại liên hệ. Vậy thì trong mô hình thực thể mối kết hợp ta gọi nó là loại mối kết hợp. Vậy loại mối kết hợp chính là mối liên hệ giữa hai loại thực thể. Ví dụ: Giữa hai loại thực thể HOCVIEN và LOP ta sẽ có loại mối kết hợp THUOC, và ta biểu diễn nhƣ sau: 12
  14. Hình 2.3. Ví dụ về mối kết hợp Biểu diễn bằng lời nói thì nhƣ sau "học viên sẽ thuộc lớp nào đó" Ngoài ra giữa hai loại thực thể có thể tồn tại nhiều loại mối kết hợp. Ví dụ: Giữa hai thực thể HOCVIEN và LOP sẽ có hai loại mối kết hợp nhƣ sau: + Học viên sẽ thuộc lớp nào đó + Học viên sẽ là lớp trƣờng lớp nào đó Hình 2.4. Ví dụ về mối kết hợp qua lại 2.1.2 Chuyển từ Sơ đồ thực thể liên kết sang lƣợc đồ cơ sở dữ liệu Thuật toán chuyển đổi đƣợc thực hiện theo các bƣớc sau (dựa trên CSDL "CÔNG TY"): Bƣớc 1 : Với mỗi kiểu thực thể thông thƣờng E trong lƣợc đồ ER, hãy tạo một quan hệ R chứa mọi thuộc tính đơn của E. Với các thuộc tính phức hợp, chỉ lấy các thuộc tính thành phần đơn của nó. Chọn một trong các thuộc tính khoá của E làm khoá chính cho R. Nếu khoá đƣợc chọn của E là phức hợp (gồm nhiều thuộc tính) thì tập các thuộc tính đơn đó sẽ cùng nhau tạo nên khoá chính của R. Ví dụ: Giả sử ta có kiểu thực thể ĐƠNVỊ với các thuộc tính là MãsốĐV, TênĐV, ĐịađiểmĐV trong đó các thuộc tính khoá là MãsốĐV, TênĐV (do mỗi đơn vị có một tên duy nhất), và ĐịađiểmĐV là một thuộc tính đa trị (do mỗi đơn vị có nhiều địa điểm). Khi đó kiểu thực thể ĐƠNVỊđƣợc chuyển thành quan hệ ĐƠNVI với các thuộc tính MãsốĐV, TênĐV. Khoá chính của quan hệ là MãsốĐV (chọn một trong hai thuộc tính khoá của kiểu thực thể). 13
  15. Bƣớc 2: Với mỗi kiểu thứ thể yếu W trong lƣợc đồ ER cùng với kiểu thực thể chủ E, hãy tạo một quan hệ R chứa tất các các thành phần đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của W nhƣ là các thuộc tính của R. Đƣa các thuộc tính khoá chính của các quan hệ tƣơng ứng với kiểu thực thể chủ làm khoá ngoài của R. Các thuộc tính này sẽ xác định kiểu liên kết của W. Khoá chính của R là một tổ hợp của khoá chính của các quan hệ tƣơng ứng với kiểu thực thể chủ và khoá bộ phận của kiểu thực thể yếu W nếu có. Ví dụ: Giả sử ta có kiểu liên kết NHÂNVIÊN CON trong đó NHÂNVIÊN là kiểu thực thể chủ với các thuộc tính MãsốNV, Họđệm, Tên, Ngàysinh, Giớitính. Thuộc tính khoá của NHÂNVIÊN là MãsốNV. CON là kiểu thực thể phụ thuộc (vào thực thểNHÂNVIÊN) với các thuộc tính là Họtêncon, Ngàysinh, Giớitính. Kiểu thực thể này không có thuộc tính khoá. Khi đó kiểu thực thể NHÂNVIÊN đƣợc chuyển thành quan hệ NHÂNVIÊN với các thuộc tính nhƣ trên. Kiểu thực thể CON đƣợc chuyển thành quan hệ CON với các thuộc tính MãsốNV, Họtêncon, Ngàysinh, Giớitính. Quan hệ này có khoá ngoài là MãsốNV, khoá chính là Mã sốNV, Họtêncon. Bƣớc 3: Với mỗi kiểu liên kết 1:1 R trong lƣợc đồ ER, hãy xác định các quan hệ S và T tƣơng ứng với các kiểu thực thể tham gia trong R. Hãy chọn một trong các quan hệ, chẳng hạn S, và đƣa khoá chính của T vào làm khoá ngoài trong S. Tốt nhất là chọn S là một kiểu thực thể tham gia toàn bộ vào R. Đƣa tất các các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của kiểu liên kết 1:1 R vào làm các thuộc tính của S. Chú ý: Có một cách chuyển đổi mối liên kết 1:1 nữa là nhập hai kiểu thực thể và mối liên kết thành một quan hệ. Cách này thƣờng đƣợc áp dụng khi cả hai kiểu thực thể đều tham gia toàn bộ vào liên kết. Ví dụ: Giả sử ta có kiểu liên kết NHÂNVIÊN ĐƠNVỊ, với các thuộc tính của các kiểu thực thể giống nhƣở trên. Kiểu liên kết là một kiểu liên kết 1:1, đồng thời sự tham gia của NHÂNVIÊN vào kiểu liên kết là bộ phận (không phải nhân viên nào cũng quản lý đơn vị), sự tham gia của ĐƠNVỊ là đầy đủ (một đơn vị luôn luôn phải có một ngƣời quản lý). Khi đó, kiểu thực thể NHÂNVIÊN sẽ đƣợc chuyển thành quan hệ NHÂNVIÊN với các thuộc tính của nó, còn kiểu thực thể ĐƠNVỊ sẽ đƣợc chuyển thành quan hệ ĐƠNVỊ với các thuộc tính của kiểu thực thể ĐƠNVỊ cộng thêm với thuộc tính MãsốNV và thuộc tính của kiểu liên kết , nếu có. Thuộc tính MãsốNV sẽ là khoá ngoài cho quan hệ ĐƠNVỊ. Để làm rõ vai trò ngƣời quản lý, khi chuyển sang quan hệ ĐƠNVỊ, ngƣời ta đổi tên thuộc tính MãsốNV thành MãsốNQL (Mã số ngƣời quản lý). Ngoài ra, kiểu liên kết có một thuộc tính là Ngàybắtđầu, thuộc tính này cũng đƣợc đƣa vào quan hệ ĐƠNVỊ. 14
  16. Bƣớc 4: Với mỗi kiểu liên kết hai ngôi R kiểu 1:N, hãy xác định quan hệ S biểu diễn kiểu thực thể tham gia ở phía N của kiểu liên kết. Đƣa khoá chính của quan hệ T biểu diễn kiểu thực thể tham gia vào R ở phía 1 vào làm khoá ngoài trong S. Làm nhƣ vậy là vì mỗi thực thể cụ thể của phía N đƣợc liên kết với nhiều nhất là một thực thể cụ thể của phía 1 của kiểu liên kết. Đƣa các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của kiểu liên kết 1:N vào làm các thuộc tính của S. Ví dụ: Giả sử ta có kiểu liên kết NHÂNVIÊN ĐƠNVỊ, trong đó các kiểu thực thể NHÂNVIÊN, ĐƠNVỊ là các kiểu thực thểở trên. Kiểu liên kết là kiểu liên kết N:1 (một nhân viên chỉ làm việc cho một đơn vị và mỗi đơn vị có nhiều nhân viên làm việc cho). Khi đó, Kiểu thực thể ĐƠNVỊ sẽ đƣợc chuyển thành quan hệ ĐƠNVỊ với các thuộc tính của kiểu thực thể ĐƠNVỊ còn kiểu thực thể NHÂNVIÊN sẽ đƣợc chuyển thành quan hệ NHÂNVIÊN với các thuộc tính của kiểu thực thể NHÂNVIÊN cộng thêm với thuộc tính MãsốĐV (là khoá chính của quan hệ ĐƠNVỊ). Thuộc tính MãsốĐV sẽ là thuộc tính khoá ngoài của quan hệ NHÂNVIÊN. Bƣớc 5: Với mỗi kiểu liên kết N:M hai ngôi R, hãy tạo ra một quan hệ mới S để biểu diễn R. Đƣa các khoá chính của các quan hệ biểu diễn các kiểu thực thể tham gia vào làm khoá ngoài của S. Tổ hợp các khoá chính đó sẽ tạo nên khoá chính của S. Đƣa tất cả các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của kiểu liên kết N:M vào làm các thuộc tính của S. Chú ý rằng ta không thể biểu diễn một kiểu liên kết N:M bằng một thuộc tính khoá ngoài đơn giản trong một trong các quan hệ tham gia (nhƣđã làm với các kiểu liên kết 1:1 và 1:N) vì tỷ số lực lƣợng N:M. Ví dụ: Giả sử ta có kiểu liên kết NHÂNVIÊN DỰÁN. Kiểu thực thể NHÂNVIÊN có các thuộc tính nhƣ trên với thuộc tính khoá là MãsốNV. Kiểu thực thể DỰÁN có các thuộc tính là MãsốDA, TênDA, ĐịađiểmDA trong đó thuộc tính khoá là MãsốDA. Kiểu liên kết < làm việc với> là một kiểu liên kết N:M (một nhân viên có thểlàm việc với nhiều dự án và mỗi dự án có nhiều nhân viên làm việc với). Kiểu liên kết này có một thuộc tính là Số giờ để lƣu số giờ mà mỗi nhân viên làm việc cho một dự án. Khi đó kiểu liên kết sẽ đƣợc chuyển thành một quan hệ có tên là NHÂNVIÊN_DỰ ÁN với các thuộc tính MãsốNV, MãsốDA, Sốgiờ trong đó hai thuộc tính MãsốNV, MãsốDA tạo thành khoá chính (phức hợp) cho quan hệ. Bƣớc 6: Với mỗi thuộc tính đa trị A, hãy tạo ra một quan hệ mới R. Quan hệ R này sẽ chứa một thuộc tính tƣơng ứng với A cộng với thuộc tính khoá K của quan hệ biểu diễn kiểu thực thể hoặc kiểu liên kết có thuộc tính là A làm khoá ngoài của R. Khoá chính của R là một tổ hợp của A và K. Nếu thuộc tính đa trị là phức hợp thì chúng ta chỉđƣa vào R các thành phần đơn của nó. 15
  17. Ví dụ: Xét kiểu thực thể ĐƠNVỊ ở trên. Thuộc tính ĐịađiểmĐV là một thuộc tính đa trị. Khi chuyển thành mô hình quan hệ nó sẽ đƣợc chuyển thành một quan hệ có khoá chính là MãsốĐV, Địa điểm và có thể có thêm một số thuộc tính khác lƣu thông tin về địa điểm. Bƣớc 7: Với mỗi kiểu liên kết n ngôi R, trong đó n > 2, hãy tạo ra một quan hệ S để biểu diễn R. Đƣa các khoá chính của các quan hệ biểu diễn các kiểu thực thể tham gia vào làm khoá ngoài của S. Đƣa tất cả các thuộc tính đơn (hoặc các thành phần đơn của các thuộc tính phức hợp) của kiểu liên kết n- ngôi vào làm thuộc tính của S. Khoá chính của S thƣờng là một tổ hợp các khoá chính của các quan hệ biểu diễn các kiểu thực thể tham gia. Tuy nhiên, nếu ràng buộc lực lƣợng trên một kiểu thực thể E nào đó tham gia vào R là 1 thì khoá chính của S không đƣợc chứa thuộc tính khoá ngoài tham chiếu đến quan hệ E tƣơng ứng với kiểu thực thể E. Ví dụ: Giả sử chúng ta có kiểu liên kết ĐẠILÝ VẬTTƢ DỰÁN. Đây là một kiểu liên kết cấp ba. Giả sử rằng kiểu thực thể ĐẠILÝ có thuộc tính khoá là MãsốĐL, kiểu thực thể VẬTTƢ có thuộc tính khoá là MãsốVT, kiểu thực thể DỰÁN có thuộc tính khoá là MãsốDA còn kiểu liên kết có thuộc tính là Sốlƣợng để lƣu số lƣợng vật tƣ mà một đai lý cung cấp cho môt dự án. Khi đó kiểu liên kết sẽđƣợc chuyển thành một quan hệ có tên là CUNGCẤP với các thuộc tính MãsốĐL, MãsốVT, MãsốDA, Sốlƣợng và khoá chính gồm ba thuộc tính MãsốĐL, MãsốVT , MãsốDA. 2.2 Mô hình thực thể, quan hệ Mô hình này đƣợc xây dựng trên nhận thức là thế giới thực mà chúng ta muốn phản ánh là một tập hợp các đối tƣợng cơ sở và các mối quan hệ (liên kết) giữa chúng. - Thực thể (Entity): Là đối tƣợng có thực hay trừu tƣợng mà ta muốn ghi chép thông tin của nó - Mối quan hệ (Relationship): Là liên kết giữa các thực thể phản ánh sự ràng buộc về mặt quản lý. - Kiểu liên kết: Có 3 kiểu: + Liên kết 1- 1: A –B + Liên kết 1- n: A B + Liên kết n- n: A B Thông thƣờng liên kết 1- 1 đƣợc đƣa về cùng một thực thể, liên kết n- n đƣợc tách thành 2 liên kết 1- n, bằng cách thêm 1 thực thể C B, C A 16
  18. Cấu trúc tổng thể của một CSDL có thể đƣợc biểu thị bởi một biểu đồ E- R, đƣợc thành lập từ các thành phần sau: Hình chữ nhật biểu diễn các tập thực thể Hình ellip biểu diễn các thuộc tính Hình thoi biểu diễn các quan hệ Các đƣờng nối các thuộc tính với tập các thực thể và các tập thực thể với mối quan hệ. Ví dụ 1: Hình 2.5 Ví dụ mô hình E- R Ví dụ 2: Cho 2 thực thể độc giả và sách, quan hệ là ngƣời mƣợn Với thực thể độc giả có các thuộc tính: Mã thẻ độc giả, Tên độc giả, Địa chỉ Với thực thể Sách có các thuộc tính Mã sách, tên sách, tác giả, năm xuất bản, nhà xuất bản. Hãy vẽ biểu đồ E- R cho mô hình trên. 2.3 Mô hình dữ liệu quan hệ: Mô hình cơ sở dữ liệu Quan hệ (gọi tắt là mô hình Quan hệ) do E.F Codd đề xuất năm 1971. Mô hình này bao gồm: - Một hệ thống các ký hiệu để mô tả dữ liệu dƣới dạng dòng và cột nhƣ quan hệ, bộ, thuộc tính, khóa chính, khoá ngoại, ... - Một tập hợp các phép toán thao tác trên dữ liệu nhƣ phép toán tập hợp, phép toán quan hệ. Vì tính chất chặt chẽ của toán học về lí thuyết tập hợp nên mô hình này đã mô tả dữ liệu một cách rõ ràng, uyển chuyển và trở thành rất thông dụng. Ngày nay hầu hết các HQTCSDL đều tổ chức dữ liệu theo mô hình dữ liệu quan hệ. 17
  19. Ví dụ: Xét một hệ thông tin phân phối hàng, hệ này quản lý hoạt động bán hàng cho khách. Các kiểu thực thể chính của hệ thống bao gồm: Kiểu thực thể Khách Hàng gồm các thuộc tính: Mã khách hàng (MaKH), Tên khách hàng (TenKH), tuổi (Tuoi), Địa chỉ khách hàng (DiaChi) Kiểu thực thể Hàng Hoá gồm các thuộc tính: Mã hàng hoá (MaHang), Tên hàng hoá (TenHang), Giá (Gia), Màu sắc của mặt hàng (Mau), Đơn vị tính (DVT) Kiểu thực thể Bán Hàng gồm các thuộc tính: MaKH, MaHang, số lƣợng (SoLuong) Ứng với mỗi kiểu thực thể ta có một bảng dữ liệu sau: Bảng Khách Hàng Bảng 2.1: Khách hàng Bảng 2.2: Hàng hoá Bảng 2.3 Hàng bán 18
  20. Một cơ sở dữ liệu theo mô hình quan hệ thực chất là một tập các bảng mà: Mỗi bảng gọi là một quan hệ/ kiểu thực thể/ tệp. Mỗi hàng gọi là một bộ/ thực thể/ bản ghi. Mỗi cột gọi là một thuộc tính/ trƣờng. 2.4 Mô hình dữ liệu mạng Mô hình dữ liệu mạng (Network Data Model) đƣợc gọi tắt là mô hình mạng (Network Model) là mô hình dữ liệu đƣợc biểu diễn bởi một đồ thị có hƣớng. Trong mô hình mạng ngƣời ta dùng hai yếu tố là bản ghi và liên kết. Khái niệm bản ghi giống nhƣ mô hình phân cấp, liên kết là tập các con trỏ vật lý thiết lập quan hệ chủ sở hữu giữa tập bản ghi này với tập bản ghi khác. So sánh hai mô hình ta thấy bản ghi “đơn hàng” liên kết với bản ghi “ số lƣợng” bản ghi “số lƣợng” cũng có liên kết với bản ghi “ mặt hàng” và bản ghi “số lƣợng “ là thành viên của hai bản ghi chủ khác nhau. Mô hình mạng ngƣời ta đã khắc phục đƣợc việc dƣ thừa dữ liệu của mô hình phân cấp. Tuy vậy cấu trúc hệ thống phức tạp ngoài nội dung thông tin, mỗi bản ghi còn có thêm thông tin nữa là địa chỉ để truy nhập tới bản ghi thành viên. Với mỗi liên kết phải có nhãn để xác định liên kết. Ƣu điểm: Dễ thể hiện mối liên kết n- n Kiểu truy cập dữ liệu mềm dẻo hơn kiểu phân cấp Nhƣợc điểm: Việc sửa đổi số liệu khó khăn. Với những lập trình viên, việc thiết kế CSDL khó. 2.5 Mô hình dữ liệu phân cấp Mô hình dữ liệu phân cấp (Hierachical Data Model) - đƣợc gọi tắt là mô hình phân cấp đƣợc đƣa ra vào những năm 60, trong mô hình dữ liệu này dữ liệu đƣợc tổ chức thành cấu trúc cây, trong đó các nút (node) của cây biểu diễn các bản ghi, giữa 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. Ƣu điểm: Thể hiện dễ dàng quan hệ 1- n. Việc phân chia dữ liệu dễ thể hiện, đảm bảo an toàn dữ liệu Tính độc lập của chƣơng trình và các dữ liệu đƣợc đảm bảo Nhƣợc điểm: 19
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2