Xem mẫu

  1. ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƢỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH  GIÁO TRÌNH MÔN HỌC: CƠ SỞ DỮ LIỆU NGÀNH: TIN HỌC ỨNG DỤNG, CÔNG NGHỆ THÔNG TIN TRÌNH ĐỘ: TRUNG CẤP, CAO ĐẲNG Thành phố Hồ Chí Minh, năm 2020
  2. ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH TRƢỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH  GIÁO TRÌNH MÔN HỌC: CƠ SỞ DỮ LIỆU NGÀNH: TIN HỌC ỨNG DỤNG, CÔNG NGHỆ THÔNG TIN TRÌNH ĐỘ: TRUNG CẤP, CAO ĐẲNG THÔNG TIN CHỦ NHIỆM ĐỀ TÀI Họ tên: Vũ Thị Phƣơng Dung Học vị: Thạc sĩ Đơn vị: Khoa CNTT Email: vuthiphuongdung@hotec.edu.vn TRƢỞNG KHOA TỔ TRƢỞNG CHỦ NHIỆM BỘ MÔN ĐỀ TÀI HIỆU TRƢỞNG DUYỆT Thành phố Hồ Chí Minh, năm 2020
  3. TUYÊN BỐ BẢN QUYỀN Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể đƣợc phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo. Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm.
  4. LỜI GIỚI THIỆU Giáo trình cơ sở dữ liệu này đƣợc biên soạn căn cứ theo chƣơng trình đào tạo chuyên ngành Tin học ứng dụng ở bậc trung cấp và ngành Công nghệ thông tin ( Ứng dụng phần mềm) bậc cao đẳng. Giáo trình trình bày những vấn đề cốt lõi nhất của môn cơ sở dữ liệu, gồm bốn chƣơng. Các bài học đƣợc trình bày ngắn gọn với ví dụ minh hoạ. Cuối mỗi chƣơng đều có bài tập để học sinh sinh viên luyện tập. Trong quá trình giảng dạy và biên soạn giáo trình này, tác giả đã nhận đƣợc sự động viên của các thầy cô Ban Giám Hiệu nhà trƣờng cũng nhƣ những ý kiến góp ý của các đồng nghiệp trong khoa Công nghệ thông tin. Tôi xin chân thành cảm ơn và hy vọng rằng giáo trình này sẽ giúp cho việc dạy và học môn cơ sở dữ liệu của nhà trƣờng ngày càng tốt hơn. TP.HCM, ngày 25 tháng 9 năm 2020 Tham gia biên soạn Vũ Thị Phƣơng Dung
  5. MỤC LỤC CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU (CSDL) ..................................... 1 1. Khái niệm .................................................................................................................... 1 2. Mô hình thực thể - kết hợp ERD ................................................................................. 5 3.Mô hình dữ liệu quan hệ của E.F.Codd ........................................................................ 9 4.Các bƣớc chuyển từ mô hình thực thể kết hợp sang mô hình quan hệ....................... 13 BÀI TẬP CHƢƠNG 1 ................................................................................................. 14 CHƢƠNG 2: RÀNG BUỘC TOÀN VẸN ( RBTV) MỘT CSDL ........................... 19 1.Giới thiệu .................................................................................................................... 19 2. Các đặc trƣng của ràng buộc toàn vẹn....................................................................... 19 3. Phân loại ràng buộc toàn vẹn..................................................................................... 21 4. Bảng tầm ảnh hƣởng tổng hợp .................................................................................. 25 BÀI TẬP CHƢƠNG 2 ................................................................................................. 26 CHƢƠNG 3: NGÔN NGỮ ĐẠI SỐ QUAN HỆ ....................................................... 30 1.Các phép toán tập hợp và các phép toán quan hệ ....................................................... 30 2. Các phép toán tập hợp trên các quan hệ .................................................................... 30 3. Các thao tác cơ sở trên các quan hệ ........................................................................... 39 BÀI TẬP CHƢƠNG 3 ................................................................................................. 40 CHƢƠNG 4: NGÔN NGỮ TRUY VẤN CSDL SQL............................................... 43 1.Ngôn ngữ định nghĩa dữ liệu ...................................................................................... 43 2. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language DML) ........................... 50 3. Ngôn ngữ truy vấn dữ liệu có cấu trúc (Structured Query Language – SQL) .......... 52 BÀI TẬP CHƢƠNG 4 ................................................................................................. 59
  6. GIÁO TRÌNH MÔN HỌC Tên môn học: Cơ sở dữ liệu Mã môn học: MH 2101071, MH3101301 Vị trí, tính chất, ý nghĩa và vai trò của môn học/mô đun: - Vị trí: Là môn học đƣợc bố trí ở học kỳ 3- cơ sở, học kỳ 2 - phổ thông Là môn học cơ sở ở học kỳ 2 – cao đẳng - Tính chất: là môn học lý thuyết thuộc nhóm môn học bắt buộc - Ý nghĩa và vai trò của môn học: cung cấp cho ngƣời học kiến thức về các khái niệm cơ bản về cơ sở dữ liệu, phân biệt mô hình thực thể và mô hình quan hệ, ràng buộc toàn vẹn, đại số quan hệ, định nghĩa và sửa đổi định nghĩa bảng bằng các câu lệnh SQL, thực hiện việc ràng buộc khóa chính, khóa ngọai trong CSDL, cập nhật và sửa đổi dữ liệu bằng các câu lệnh SQL. Sử dụng đƣợc các câu lệnh SQL để truy vấn rút trích, lọc, thống kê dữ liệu. Mục tiêu của môn học: - Về kiến thức: + Trình bày đƣợc khái niệm các thành phần cơ bản của một cơ sở dữ liệu + Phân biệt các hệ quản trị CSDL. Mô tả và vẽ đƣợc các thành phần trong mô hình ERD, mô hình dữ liệu quan hệ. + Liệt kê đƣợc các từ khóa sử dụng trong câu lệnh truy vấn (SQL) và ý nghĩa sử dụng của chúng. + Trình bày đƣợc cú pháp, chức năng các câu lệnh SQL cơ bản. - Về kỹ năng: + Vẽ đƣợc mô hình thực thể kết hợp từ một tình huống thực tế cơ bản đƣợc mô tả chi tiết. Xây dựng đƣợc mô hình dữ liệu quan hệ từ mô hình thực thể đã vẽ. + Thiết lập đƣợc cơ sở dữ bằng các câu lệnh SQL. Viết đƣợc các câu lệnh SQL để thêm, sửa, xóa, và truy vấn khai thác dữ liệu - Về năng lực tự chủ và trách nhiệm: + Nhận thức đƣợc lợi ích của mô hình thực thể kết hợp trong hoạt động phân tích và thiết kể. Nhận thức đƣợc tính phổ biến, thực dụng của mô hình dữ liệu quan hệ trong các phần mềm có kết nối và sử đụng cơ sở dữ liệu. + Nhận thức đƣợc tầm quan trọng của việc phân công hợp lý, theo dõi, kiêm tra, đánh giá trong hoạt động nhóm.
  7. Chƣơng 1: Tổng quan về CSDL CHƢƠNG 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU (CSDL) Giới thiệu: Chƣơng này trình bày các khái niệm về Cơ sở dữ liệu, hệ quản trị CSDL, ngƣời dùng; giới thiệu các đặc tính, quá trình phát triển của Cơ sở dữ liệu; khái niệm mô hình, lƣợc đồ và thể hiện Cơ sở dữ liệu. Trình bày quá trình thiết kế CSDL; khái niệm mô hình thực thể kết hợp, thực thể, thuộc tính, loại thực thể, khóa, mối kết hợp, cách thiết kế mô hình thực thể kết hợp. Giới thiệu khái niệm mô hình dữ liệu quan hệ, các đặc trƣng của quan hệ, cách chuyển mô hình thực thể kết hợp sang mô hình quan hệ. Bài tập. Mục tiêu: Phát biểu đƣợc các khái niệm và trình bày đƣợc các đặc trính về CSDL. Phân biệt các thành phần trong CSDL, các mô hình, trình bày đƣợc hệ thống ký hiệu trong mô hình thực thể kết hợp . Chuyển đƣợc mô hình thực thể kết hợp sang mô hình quan hệ. Thiết kế đƣợc mô hình thực thể kết hợp từ tài liệu mô tả tình huống đơn giản. Nội dung chính: 1. Khái niệm 1.1 Dữ liệu Là các thông tin của đối tƣợng (ngƣời, vật, một khái niệm, sự việc…) đƣợc lƣu trữ trên máy tính. Dữ liệu đƣợc mô tả dƣới nhiều dạng khác nhau (các ký tự, ký số, hình ảnh, ký hiệu, âm thanh…). Mỗi cách mô tả gắn với một ngữ nghĩa nào đó. Dữ liệu về đối tƣợng có thể khác nhau, tùy thuộc vào ngữ cảnh. Ví dụ: dữ liệu về đối tƣợng sinh viên có thể khác nhau tùy vào mục đích quản lý: quản lý điểm: Tên, mã sinh viên, điểm môn 1, điểm môn 2, điểm môn 3. Trong khi đó quản lý nhân thân: Tên, địa chỉ, ngày sinh, quê quán, lớp. 1.2 Cơ sở dữ liệu ( Database) Cơ sở dữ liệu (CSDL) là tập hợp dữ liệu đƣợc tổ chức có cấu trúc liên quan với nhau và đƣợc lƣu trữ trong máy tính. CSDL đƣợc thiết kế, xây dựng cho phép ngƣời dùng lƣu trữ dữ liệu, truy xuất thông tin hoặc cập nhật dữ liệu. CSDL đƣợc tổ chức có cấu trúc: Các dữ liệu đƣợc lƣu trữ có cấu trúc thành các bản ghi (record), các trƣờng dữ liệu (field). Các dữ liệu lƣu trữ có mối quan hệ (relation) với nhau CSDL đƣợc cấu trúc để dễ dàng truy cập, quản lý và cập nhật. KHOA CÔNG NGHỆ THÔNG TIN Trang 1
  8. Chƣơng 1: Tổng quan về CSDL 1.2.1 Ƣu điểm của cơ sở dữ liệu Giảm sự trùng lắp thông tin xuống mức thấp nhất và do đó bảo đảm đƣợc tính nhất quán và toàn vẹn dữ liệu. Đảm bảo dữ liệu có thể truy xuất theo nhiều cách khác nhau. Khả năng chia sẻ thông tin cho nhiều ngƣời sử dụng. 1.2.2 Những vấn đề mà CSDL cần phải giải quyết -Tính chủ quyền của dữ liệu Tính chủ quyền của dữ liệu đƣợc thể hiện ở phƣơng diện an toàn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu và tính chính xác của dữ liệu. Điều này có nghĩa là ngƣời khai thác CSDL phải có nhiệm vụ cập nhật các thông tin mới nhất của CSDL. -Tính bảo mật và quyền khai thác thông tin của người sử dụng Do có nhiều ngƣời đƣợc phép khai thác dữ liệu một cách đồng thời, nên cần thiết phải có một cơ chế bảo mật và phân quyền hạn khai thác CSDL. Các hệ điều hành nhiều ngƣời sử dụng hay hệ điều hành mạng cục bộ đều có cung cấp cơ chế này. -Tranh chấp dữ liệu Nhiều ngƣời đƣợc phép truy nhập cùng một lúc vào tài nguyên dữ liệu của CSDL với những mục đích khác nhau, do đó cần thiết phải có một cơ chế ƣu tiên khi truy nhập dữ liệu. Cơ chế ƣu tiên có thể đƣợc thực hiện bằng việc cấp quyền ƣu tiên cho từng ngƣời khai thác. -Đảm bảo an toàn dữ liệu khi có sự cố Việc quản lý dữ liệu tập trung có thể làm tăng khả năng mất mát hoặc sai lệch thông tin khi có sự cố nhƣ mất điện đột xuất, hay một phần đĩa lƣu trữ CSDL bị hƣ,… một số hệ điều hành mạng có cung cấp dịch vụ sao lƣu ảnh đĩa cứng, tự động kiểm tra và khắc phục lỗi khi có sự cố. Tuy nhiên, bên cạnh dịch vụ của hệ điều hành, để đảm bảo CSDL luôn ổn định, một CSDL nhất thiết phải có một cơ chế khôi phục dữ liệu khi có các sự cố bất ngờ xảy ra. 1.3 Hệ quản trị cơ sở dữ liệu (Database Management System - DBMS) Để 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, MySQL, Oracle, PostgreSQL, SQL Server, DB2, Infomix. KHOA CÔNG NGHỆ THÔNG TIN Trang 2
  9. Chƣơng 1: Tổng quan về CSDL Ví dụ: SQL Server, Microsoft Access, Oracle là các hệ quản trị CSDL điển hình cho mô hình quan hệ. IMS của IBM là hệ quản trị CSDL cho mô hình phân cấp. IDMS là hệ quản trị CSDL cho mô hình mạng. 1.3.1 Những lợi ích DBMS mang lại Quản trị các CSDL và cung cấp giao diện truy cập để che dấu các đặc tính phức tạp về mặt cấu trúc tổ chức dữ liệu vật lý Hỗ trợ các ngôn ngữ giao tiếp. Ví dụ: Ngôn ngữ mô tả, định nghĩa dữ liệu – DDL. Ngôn ngữ thao tác dữ liệu – DML. Ngôn ngữ truy vấn dữ liệu có cấu trúc – SQL Có cơ chế an toàn, bảo mật cao. 1.3.2 Một DBMS phải có: Ngôn ngữ giao tiếp giữa ngƣời sử dụng (NSD) và CSDL Ngôn ngữ mô tả:(Data definition language-DDL) để 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 (Data RelationShip) và các quy tắc (Rules, Constraint) quản lý áp đặt lên các dữ liệu đó. Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML) cho phép ngƣời sử dụng có thể thêm (Insert), xóa (Delete), sửa (Update) dữ liệu trong CSDL. Ngôn ngữ truy vấn dữ liệu, hay ngôn ngữ hỏi đáp có cấu trúc (Structured Query Language - SQL) cho phép những ngƣời khai thác CSDL (chuyên nghiệp hoặc không chuyên) 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 (Data Control Language - DCL) 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 (Data Dictionary) Có biện pháp bảo mật tốt khi có yêu cầu bảo mật. Cơ chế giải quyết vấn đề tranh chấp dữ liệu 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 Hệ quản trị CSDL phải cung cấp một giao diện (Interface) tốt, dễ sử dụng, dễ hiểu cho những ngƣời sử dụng không chuyên. Bảo đảm tính độc lập giữa dữ liệu và chƣơng trình 1.4 Ngƣời dùng ( User) Ngƣời dùng khai thác CSDL thông qua HQTCSDL có thể phân thành ba loại: ngƣời quản trị CSDL, ngƣời phát hiện và ứng dụng lập trình, ngƣời dùng cuối. KHOA CÔNG NGHỆ THÔNG TIN Trang 3
  10. Chƣơng 1: Tổng quan về CSDL 1.4.1 Ngƣời quản trị CSDL Chịu trách nhiệm quản lý và bảo trì CSDL, ngƣời này cần có kiến thức chuyên sâu về hệ quản trị cơ sở dữ liệu, biết ngôn ngữ cấu trúc truy vấn (T-SQL) ở mức rành rỏi. Công việc của đối tƣợng này là tổ chức hệ thống CSDL, bảo mật, phân quyền hay cấp quyền cho các đối tƣợng khác, backup phục hồi dữ liệu và bảo đảm an toàn dữ liệu. Nếu bạn muốn trở thành đối tƣợng này thì bạn phải nghiên cứu sâu các mô hình CSDL, các hệ quản trị CSDL và cần có kinh nghiệm thực tế rất cao. 1.4.2 Ngƣời phát hiện và ứng dụng lập trình Là những ngƣời xây dựng các công cụ, ứng dụng nhằm giúp ngƣời dùng cuối sử dụng khai thác cơ sở dữ liệu, đối tƣợng này ta gọi là Application User. Nếu bạn muốn sau này bạn sẽ là một coder chuyên xây dựng các ứng dụng website thì bạn chính là chuyên viên tin học. 1.4.3 Ngƣời dùng cuối Thƣờng là ngƣời sử dụng hệ thống CSDL, đối tƣợng này không có kiến thức về quản trị hệ thống, nghĩa là không chuyên về lĩnh vực này nên họ cần một công cụ giúp quản trị, khai thác dữ liệu khi cần. Thông thƣờng khi làm dự án thì khách hàng chính là đối tƣợng ngƣời dùng cuối. 1.5 Quá trình phát triển của Cơ sở sữ liệu Lịch sử của cơ sở dữ liệu đƣợc xem nhƣ bắt đầu vào những năm 60 của thế kỷ trƣớc, khi máy tính bắt đầu đƣợc sử dụng tƣơng đối rộng rãi. CSDL có quy mô lớn đầu tiên đƣợc công ty IBM thực hiện cho Cục Quản trị Hàng không và Không gian Quốc gia (National Aeronautics and Space Administration hay NASA) của Mỹ để hỗ trợ cho việc quản lý dự án Apollo dùng để thám hiểm mặt trăng. Sau đó hệ cơ sở dữ liệu này đƣợc thƣơng mại hóa với tên IMS (Information Management System). Hệ này sử dụng mô hình dữ liệu phân cấp (hierarchical). Cũng trong thời gian đó, Charles Bachman cũng phát triển Integrated Data Store (IDS) sử dụng mô hình dạng mạng (Network). Mô hình này sau đó đƣợc tiêu chuẩn hóa bởi CODASYL (Conference of Data System Language). Năm 1970, Edgar Codd, một nhà khoa học làm việc cho IBM, đề xuất một số khái niệm về hệ cơ sở dữ liệu quan hệ (relational) đánh dấu một bƣớc chuyển biến quan trọng trong lĩnh vực này. Tuy nhiên dƣờng nhƣ IBM không mặn mà lắm với những ý tƣởng của Codd, mặc dù họ cũng tạo ra một dự án nhỏ, System R, để nghiên cứu các đề xuất của Codd. Tuy vậy họ cũng tạo ra đƣợc ngôn ngữ SEQUEL (viết tắt của Structured English Query Language), tiền thân của SQL mà hiện chúng ta thƣờng sử dụng. KHOA CÔNG NGHỆ THÔNG TIN Trang 4
  11. Chƣơng 1: Tổng quan về CSDL Năm 1976, Peter Chen đã hoàn thiện thêm hệ CSDL này bằng mô hình thực thể - liên kết (Entity-Relationship hay E-R). Năm 1979, Relational Software Inc (RSI), sau đổi tên là Oracle, là công ty đầu tiên sử dụng mô hình quan hệ để thƣơng mại hóa và dần dần chiếm lĩnh thị trƣờng quản lý dữ liệu. Cũng trong thời gian này IBM cũng bắt đầu thƣơng mại hóa SQL. Chẳng bao lâu SQL trở thành tiêu chuẩn để sử dụng với CSDL quan hệ. Cùng với sự phát triển của máy tính, bên cạnh các tập tin văn bản, dữ liệu đƣợc thể hiện dƣới dạng những ký tự, ta còn có những loại tập tin khác, các tập tin hình ảnh, các bản vẽ đƣợc tạo ta từ những phần mềm CAD, dữ liệu đƣợc thể hiện bằng những phƣơng thức khác. Vì thế từ thập niên 1980, HQTCSDL hƣớng đối tƣợng (object- oriented DBMS) bắt đầu đƣợc nghiên cứu và đến những năm 1990, chúng bắt đầu đƣợc đƣa ra thị trƣờng. Cũng bắt đầu từ thập niên 1990, cùng với sự bùng nổ của internet và các dịch vụ trực tuyến, các HQTCSDL phục vụ cho thị trƣờng này phát triển mạnh mẽ. Bên cạnh các sản phẩm của các đại gia nhƣ Oracle Database của Oracle, DB2 Universal Database của IBM, SQL Server của Microsoft, Sybase Adaptive Server của Sybase, cũng xuất hiện các phần mềm miễn phí, mã nguồn mở, nổi bật hơn cả là MySQL, PostgreSQL, SQLite. Bên cạnh đó, một xu hƣớng khác cũng xuất hiện từ đầu thế kỷ 21 là các HQTCSDL theo hƣớng NoSQL (đƣợc hiểu là “not only SQL”), nhƣ MongoDB, có khả năng làm việc với các dữ liệu có cấu trúc ít bị ràng buộc chặt chẽ hơn, có thể hoạt động trong điều kiện có cấu hình phần cứng hạn chế nhƣ trên điện thoại di động. 2. Mô hình thực thể - kết hợp ERD Mô hình dữ liệu thực thể - kết hợp (Entity - RelationShip Model) do P.P.Chen đề xuất vào năm 1976, đƣợc sử dụng để biểu diễn cơ sở dữ liệu ở mức khái niệm. Mô hình thực thể kết hợp bao gồm có các thực thể, danh sách thuộc tính và những mối kết hợp. 2.2.1 Thực thể (Entity) Là một đối tƣợng, một địa điểm, con ngƣời… trong thế giới thực đƣợc lƣu trữ thông tin trong CSDL. Mỗi thực thể bao gồm một hoặc nhiều thuộc tính đặc trƣng cho thực thể đó. Ví dụ: sinh viên Nguyễn Văn A, lớp 19CDTH3, môn học Cơ Sở Dữ Liệu, xe máy có biển số đăng ký 52D-6263,... là các ví dụ về thực thể. KHOA CÔNG NGHỆ THÔNG TIN Trang 5
  12. Chƣơng 1: Tổng quan về CSDL 2.2.2 Thuộc tính (attribute) Là các đặc tính riêng biệt của cơ bản của thực thể. Ví dụ: các thuộc tính của sinh viên Nguyễn Văn A là: mã số sinh viên, giới tính, ngày sinh, hộ khẩu thƣờng trú, lớp đang theo học, ... 2.2.3 Loại thực thể (Entity type) Là tập hợp các thực thể có cùng thuộc tính. Mỗi loại thực thể đều phải đƣợc đặt tên sao cho có ý nghĩa. Loại đƣợc biểu diễn thực thể bởi hình chữ nhật và có danh sách các thuộc tính. TÊN LOẠI THỰC THỂ Ví dụ về loại thực thể sinh viên MSSV THUỘC TÍNH SINHVIEN HOTEN PHAI NGSINH LOẠI THỰC THỂ Ví dụ: các sinh viên có mã sinh viên là ““17234789”, “17234658”, “17235679”,... nhóm lại thành một loại thực thể, đƣợc đặt tên là Sinhvien. Tƣơng tự trong ứng dụng quản lý điểm của sinh viên ta có các loại thực thể nhƣ Monhoc, Lop, Khoa…. 2.2.4 Khóa của loại thực thể (Entity Key) Đó là các thuộc tính nhận diện của loại thực thể. Căn cứ vào các giá trị của các thuộc tính nhận diện này ngƣời ta có thể xác định một thực thể duy nhất của một loại thực thể. Ví dụ: khoá của loại thực thể LỚP HỌC là Mã Lớp; khoá của loại thực thể SINH VIÊN là Mã SV. KHOA CÔNG NGHỆ THÔNG TIN Trang 6
  13. Chƣơng 1: Tổng quan về CSDL 2.2.5 Mối kết hợp (relationship) Mối kết hợp diễn tả sự liên hệ giữa các loại thực thể. Mỗi mối kết hợp có một tên gọi và thƣờng dùng động từ. Mối kết hợp đƣợc biểu diễn bằng một hình thoi và hai bên là hai nhánh gắn kết vớicác loại thực thể (hoặc mối kết hợp) liên quan, tên mối kết hợp thƣờng là: thuộc, gồm, chứa,... LOẠI THỰC Tên mối LOẠI THỰC THỂ 1 kết hợp THỂ 2 Ví dụ mối kết hợp giữa hai loại thực thể Sinhviên và Lop, mối kết hợp giữa Sinhviên với Môn học,... SINHVIEN Thuộc LOP SINHVIEN Học MONHOC 2.2.6 Bản số của mối kết hợp Bản số của một nhánh R trong mối kết hợp thể hiện số lƣợng các thực thể thuộc thực thể ở nhánh "bên kia” có liên hệ với một thực thể của nhánh R. Mỗi bản số là một cặp số (min,max), chỉ số lƣợng tối thiểu và số lƣợng tối đa của thực thể khi tham gia vào mối kết hợp đó. Giữa 2 loại thực thể có thể tồn tại nhiều hơn một mối kết hợp. Để mô hình hóa đầy đủ cho thế giới thực, cần phải phân loại các mối kết hợp theo số lƣợng các thực thể từ mỗi tập tham gia trong nó. Mối kết hợp một – một (1-1): quan hệ giữa hai tập thực thể trong đó mỗi thực thể của tập cha chỉ có thể liên kết với nhiều nhất một thực thể của tập con, và ngƣợc lại. Ví dụ, mỗi giảng viên đƣợc cấp 1 và chỉ một máy tính. Một máy tính chỉ đƣợc cấp cho 1 và chỉ một giảng viên. KHOA CÔNG NGHỆ THÔNG TIN Trang 7
  14. Chƣơng 1: Tổng quan về CSDL GIANGVIEN ( 1, 1) Cấp ( 1, 1) MAYTINH Mối kết hợp một nhiều (1-n): quan hệ giữa hai tập thực thể trong đó mỗi thực thể của tập này có thể liên kết với nhiều thực thể của tập còn lại. Ví dụ: Mỗi sinh viên thuộc một và chỉ một lớp. Một lớp có nhiều sinh viên. ( 1, 1) ( 1, n) LOP SINHVIEN Thuộc Mối kết hợp nhiều – nhiều (n-n): quan hệ giữa hai tập thực thể trong đó một thực thể của tập này có thể liên kết với 0, 1 hoặc nhiều thực thể của tập kia, và ngƣợc lại. Thƣờng quan hệ N-N có thêm phần dữ liệu giao nhau để thêm thông tin cụ thể cho mối quan hệ Ví dụ: Mỗi sinh viên học một hoặc nhiều môn học. Một môn học có một hoặc nhiều sinh viên học. ( 1, n) ( 1, n) MONHOC SINHVIEN Học Ví dụ: Biểu diễn mô hình ERD cho mô tả: Sinh viên học nhiều môn học và đƣợc sinh ra tại một thành phố. MSSV ( 1, 1) SINHVIEN HOTEN (1, n ) Sinh tại PHAI (1, n) Học THANHPHO NGSINH MSMH MSTP (1, n) MONHOC TENMH TENTP SOTC KHOA CÔNG NGHỆ THÔNG TIN Trang 8
  15. Chƣơng 1: Tổng quan về CSDL 3.Mô hình dữ liệu quan hệ của E.F.Codd 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. Trong mô hình quan hệ: Về mặt cấu trúc: - Dữ liệu đƣợc thể hiện tong các bảng. - Mỗi bảng bao gồm các hàng và các cột thể hiện thông tin về một loại thực thể - Các cột biểu thị các thuộc tính của loại thực thể và tên cột thƣờng là tên của thuộc tính. - Mỗi hàng biểu thị cho một thực thể, gồm một bộ các giá trị tƣơng ứng với các cột Về mặt thao tác trên dữ liệu: - Có thể cập nhật dữ liệu nhƣ thêm, xóa hay sửa bản ghi trong một bảng. - Các kết quả tìm kiếm thông tin qua truy vấn dữ liệu có đƣợc nhờ thực hiện các thao tác trên dữ liệu. Về mặt các ràng buộc dữ liệu: - Dữ liệu trong các bảng phải thỏa mãn một số ràng buộc. Chẳng hạn, không đƣợc có hai bộ nào trong một bảng giống nhau hoàn toàn. Sau đây là các khái niệm của mô hình dữ liệu quan hệ. 3.1 Thuộc tính (Attribte) Thuộc tính là các đặc điểm riêng của một đối tƣợng (đối tượng đƣợc hiểu nhƣ là một loại thực thể ở mô hình thực thể kết hợp), mỗi thuộc tính có một tên gọi và phải thuộc về một kiểu dữ liệu nhất định. 3.2 Kiểu dữ liệu (Data type) Các thuộc tính đƣợc phân biệt qua tên gọi và phải thuộc một kiểu dữ liệu nhất định (số, chuỗi, ngày tháng, logic, hình ảnh,...). Kiểu dữ liệu ở đây có thể là kiểu vô hƣớng hoặc là kiểu có cấu trúc. Nếu thuộc tính có kiểu dữ liệu là vô hƣớng thì nó đƣợc gọi là thuộc tính đơn hay thuộc tính nguyên tố, nếu thuộc tính có kiểu dữ liệu có cấu trúc thì ta nói rằng nó không phải là thuộc tính nguyên tố. Chẳng hạn với sinh viên Nguyễn Văn A thì các thuộc tính họ và tên, mã số sinh viên thuộc kiểu chuỗi, thuộc tính ngày sinh thuộc kiểu ngày tháng, hộ khẩu thƣờng trú kiểu chuỗi, thuộc tính hình ảnh kiểu hình ảnh. KHOA CÔNG NGHỆ THÔNG TIN Trang 9
  16. Chƣơng 1: Tổng quan về CSDL 3.3 Miền giá trị (Domain of values) Thông thƣờng mỗi thuộc tính chỉ chọn lấy giá trị trong một tập con của kiểu dữ liệu và tập hợp con đó gọi là miền giá trị của thuộc tính đó. Chẳng hạn thuộc tính NỮ có miền giá trị là {nam,nữ}, thuộc tính màu da có miền giá trị là {da trắng, da vàng, da đen, da đỏ}, thuộc tính điểm thi là các số thuộc tập {0; 1 ; 2;...,10]. Lƣu ý rằng nếu không lƣu ý đến ngữ nghĩa thì tên của các thuộc tính thƣờng đƣợc ký hiệu bằng các chữ cái in hoa đầu tiên trong bảng chữ cái la tinh: A,B,C,D,... Những chữ cái in hoa X,Y,Z,W,... thƣờng dùng thay cho một nhóm nhiều thuộc tính. Đôi khi còn dùng các ký hiệu chữ cái với các chỉ số Ai,A2,...,An để chỉ các thuộc tính trong trƣờng hợp tổng quát hay muốn đề cập đến số lƣợng các thuộc tính. Tên thuộc tính phải đƣợc đặt một cách gợi nhớ, không nên đặt tên thuộc tính quá dài (vì nhƣ thế sẽ làm cho việc viết các câu lệnh truy vấn trở nên vất vả hơn), nhƣng cũng không nên đặt tên thuộc tính quá ngắn (vì nó sẽ không cho thấy ngữ nghĩa của thuộc tính), đặc biệt không đặt trùng tên hai thuộc tính mang ngữ nghĩa khác nhau thuộc hai đối tƣợng khác nhau. Trong nhiều hệ quản trị cơ sở dữ liệu, ngƣời ta thƣờng đƣa thêm vào miền giá trị của các thuộc tính một giá trị đặc biệt gọi là giá trị rỗng (NULL). Tuỳ theo ngữ cảnh mà giá trị này có thể đặc trƣng cho một giá trị không thể xác định đƣợc hoặc một giá trị chƣa đƣợc xác định ở vào thời điểm nhập tin nhƣng có thể đƣợc xác định vào một thời điểm khác. 3.4 Lƣợc đồ quan hệ (Relation schema) Tập tất cả các thuộc tính cần quản lý của một đối tƣợng cùng với các mối liên hệ giữa chúng đƣợc gọi là lƣợc đồ quan hệ. Lƣợc đồ quan hệ Q với tập thuộc tính {A1,A2,...,An} đƣợc viết là Q(A1,A2,...,An), ký hiệu Q+ = {Ai,A2,...,An}. Chẳng hạn lƣợc đồ quan hệ Sinhviên với các thuộc tính nhƣ MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP đƣợc viết nhƣ sau: SINHVIEN(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP) Thƣờng thì khi thành lập một lƣợc đồ quan hệ, ngƣời thiết kế gắn cho nó một ý nghĩa nhất định, gọi là tân từ của lược đồ quan hệ. chẳng hạn tân từ của lƣợc đồ quan hệ Sinhvien là: ”Mỗi sinh viên có mỗi MASV duy nhất. Mỗi MASV xác định các thuộc tính còn lại của sinh viên đó nhƣ HOTENSV,NU, NGAYSINH, NOISINH,TINH,MALOP” Khi phát biểu tân từ cho một lƣợc đồ quan hệ, ngƣời thiết kế cần phải mô tả đầy KHOA CÔNG NGHỆ THÔNG TIN Trang 10
  17. Chƣơng 1: Tổng quan về CSDL đủ ý nghĩa để ngƣời khác tránh hiểu nhầm. Dựa vào tân từ này, ngƣời ta xác định đƣợc tập khoá, siêu khoá của lƣợc đồ quan hệ. Nhiều lƣợc đồ quan hệ cùng nằm trong một hệ thống thông tin đƣợc gọi là một lƣợc đồ cơ sở dữ liệu. Khái niệm lƣợc đồ quan hệ ứng với khái niệm loại thực thể ở mô hình thực thể kết hợp. 3.5 Quan hệ (Relation) Sự thể hiện của lƣợc đồ quan hệ ở một thời điểm nào đó đƣợc gọi là quan hệ, rõ ràng là trên một lƣợc đồ quan hệ có thể xác định nhiều quan hệ. Thƣờng ta dùng các ký hiệu nhƣ R, S,Q để chỉ các lƣợc đồ quan hệ, còn quan hệ thƣờng đƣợc dùng bởi các ký hiệu là r, s,q,... Về trực quan thì quan hệ (hay bảng quan hệ) nhƣ là một bảng hai chiều gồm các dòng và các cột. Một quan hệ có n thuộc tính đƣợc gọi là quan hệ n ngôi. Để chỉ quan hệ r xác định trên lƣợc đồ quan hệ Q ta có thể viết r(Q). 3.6 Bộ (Tuple) Mỗi bộ là những thông tin về một đối tƣợng thuộc một quan hệ, bộ cũng còn đƣợc gọi là mẫu tin. Thƣờng ngƣời ta dùng các chữ cái thƣờng (nhƣ t, p, ...) để biểu diễn bộ trong quan hệ, chẳng hạn để nói t là một bộ của quan hệ r thì ta viết t e r. 3.7 Siêu Khoá - Khoá (Super key- key) S là siêu khoá (super key) của Q nếu với r là quan hệ bất kỳ trên Q, t1,t2 là hai bộ bất kỳ thuộc r thì t1.S * t2.S. Một lƣợc đồ quan hệ có thể có một hoặc nhiều siêu khoá. Chẳng hạn lƣợc đồ quan hệ Sinhvien ở trên có các siêu khoá là: {MASV,HOTENSV},{MASV,HOTENSV,NU},{MASV,HOTENSV,NU,TINH },... Siêu khoá không chứa một siêu khoá nào khác đƣợc gọi là khoá chỉ định, trong trƣờng hợp lƣợc đồ quan hệ có nhiều khoá chỉ định (hay khoá nội), thì khoá đƣợc chọn để cài đặt gọi là khoá chính (trong các phần sau khoá chính đƣợc gọi tắt là khoá). Chẳng hạn với lƣợc đồ quan hệ SINHVIEN trên có khoá là {MASV}. Thƣờng các thuộc tính khoá đƣợc gạch dƣới theo kiểu liền nét. Một thuộc tính đƣợc gọi là thuộc tính khoá ngoại nếu nó không là thuộc tính khoá của một lƣợc đồ quan hệ này nhƣng lại là thuộc tính khoá của một lƣợc đồ quan KHOA CÔNG NGHỆ THÔNG TIN Trang 11
  18. Chƣơng 1: Tổng quan về CSDL hệ khác, chẳng hạn nhƣ MALOP là khoá ngoại của lƣợc đồ quan hệ SINHVIEN. Thƣờng các thuộc tính khoá ngoại đƣợc gạch dƣới theo kiểu không liền nét. SINHVIEN(MASV, HOTENSV, NU, NGAYSINH, TINH, MALOP) LOP(MALOP,TENLOP,MAKHOA) Ý nghĩa thực tế của khoá là dùng để nhận diện một bộ trong một quan hệ, nghĩa là, khi cần tìm một bộ t nào đó, ta chỉ cần biết giá trị của thành phần khoá của t là đủ để dò tìm và hoàn toàn xác định đƣợc nó trong quan hệ. Trong thực tế đối với các loại thực thể tồn tại khách quan (ví dụ: Sinh viên, Giảng viên, Nhân viên, Hàng hoá,...) ngƣời thiết kế cơ sở dữ liệu thƣờng gán thêm cho các lƣợc đồ quan hệ này một thuộc tính giả gọi là mã số để làm khoá (ví dụ: mã số sinh viên, mã số giảng viên, mã số nhân viên, mã số hàng hoá,...). Trong khi đó các lƣợc đồ quan hệ biểu diễn cho sự trừu tƣợng hoá thƣờng có khoá là một tổ hợp của hai hay nhiều thuộc tính của nó. Một số hệ quản trị cơ sở dữ liệu hiện nay có tự động kiểm tra tính duy nhất trên khoá chính. Tức là nếu thêm một bộ mới q2 có giá trị khoá chính trùng với giá trị khoá chính của một bộ q1 nào đó đã có trong quan hệ thì hệ thống sẽ báo lỗi và yêu cầu nhập lại một giá trị khác. Ngƣời ta cũng quy ƣớc rằng: - Trong một bộ của quan hệ các thuộc tính khoá không chứa giá trị rỗng. - Không đƣợc phép sửa đổi giá trị thuộc tính khoá của một bộ q. Nếu muốn sửa đổi giá trị thuộc tính khoá của một bộ q, ngƣời sử dụng phải huỷ bỏ bộ q và sau đó thêm một bộ q‟ với giá trị khoá đã đƣợc sửa đổi. Tóm lại, lƣợc đồ CSDL quan hệ không phải là dùng các kí hiệu nhƣ lƣợc đồ ERD mà nó dùng bằng ngôn từ và văn bản bình thƣờng để diễn đạt.  Lƣợc đồ quan hệ nhằm mô tả cấu trúc của quan hệ, các mối liên hệ giữa các thuộc tính trong quan hệ đó  Một lƣợc đồ quan hệ gồm một tập thuộc tính của quan hệ kèm theo một mô tả để xác định ý nghĩa và mối liên hệ giữa các thuộc tính Ví dụ: SINHVIEN(MASV,HOSV,TENSV,NGAYSINH,MAKHOA,HOCBONG) Tân từ: Mỗi sinh viên đƣợc nhận diện qua MASV, phải có họ tên ngày sinh và học khoa nào, và có thể có học bổng hoặc không có học bổng Ví dụ: KETQUA(MASV,MAMH,LANTHI,DIEM) KHOA CÔNG NGHỆ THÔNG TIN Trang 12
  19. Chƣơng 1: Tổng quan về CSDL Tân từ: Mỗi sinh viên có thể dự thi các môn đã đăng ký,mỗi môn đƣợc thi tối đa 2 lần. 4.Các bƣớc chuyển từ mô hình thực thể kết hợp sang mô hình quan hệ Bƣớc 1: Xác định loại thực thể Bƣớc 2: Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ Bƣớc 3: Xác định thuộc tính khóa Bƣớc 4: Xác định ràng buộc (tỉ số, min-max, ràng buộc tham gia) cho mối quan hệ và thể hiện chúng. Ví dụ: CSDL quản lý theo dõi nhân viên, dự án, phòng ban. Công ty có nhiều phòng ban, mỗi phòng ban có một tên và mã đơn vị duy nhất, đia điểm. Mỗi dự án có một tên và mã dự án duy nhất, do một phòng ban quản lý. Mỗi dự án có nhiều nhân viên tham gia. Nhân viên có mã số NV, tên, địa chỉ, mỗi nhân viên làm việc ở một phòng ban, tham gia dự án với số giờ khác nhau. Lƣợc đồ ERD cho CSDL trên: MSNV Số giờ ( 1, n) NHANVIEN TENNV ( 1, 1 ) Tham gia DIACHI ( 1, n ) ( 1, 1) Làm việc DUAN MSPB MSDA Giám sát ( 1, n ) ( 1, n) PHONGBAN TENDA TENPB DIADIEM Chuyển lƣợc đồ ERD thành mô hình quan hệ Bƣớc 1: Xác định loại thực thể NHANVIEN, PHONGBAN, DUAN KHOA CÔNG NGHỆ THÔNG TIN Trang 13
  20. Chƣơng 1: Tổng quan về CSDL Bƣớc 2: Xác định thuộc tính và gắn thuộc tính cho tập thực thể và mối quan hệ NHANVIEN ( MSNV, HOTEN, DIACHI) PHONGBAN ( MSPB, TENPB, DIADIEM) DUAN ( MSDA, TENDA) Bƣớc 3: Xác định thuộc tính khóa NHANVIEN ( MSNV, HOTEN, DIACHI) PHONGBAN ( MSPB, TENPB, DIADIEM) DUAN ( MSDA, TENDA) Bƣớc 4: Xác định ràng buộc NHANVIEN ( MSNV, HOTEN, DIACHI, MSPB) PHONGBAN ( MSPB, TENPB, DIADIEM) DUAN ( MSDA, TENDA, MSPB) NV_DA( MSNV, MSDA, SOGIO) KHOA CÔNG NGHỆ THÔNG TIN Trang 14
nguon tai.lieu . vn