Bài giảng môn cơ sở dữ liệu

Cung cấp các khái niệm và kiến thức cơ bản nhất về CSDL và HQTCSDL.

Các mô hình cơ sở dữ liệu.

Phân tích các dạng chuẩn hóa CSDL và khái niệm phụ thuộc hàm trong quá trình phân tích và thiết kế CSDL.

Giới thiệu về mô hình CSDL quan hệ, các khái niệm về thực thể và mối quan hệ.

Giới thiệu các toán tử và phép toán của đại số quan hệ.

Giới thiệu hai ngôn ngữ thông dụng với mô hình cơ sở dữ liệu quan hệ: MS Access và SQL Server.

Cung cấp cho sinh viên khả năng độc lập trong việc tự phân tích và mô hình hóa một công việc cụ thể trên thế giới thực vào việc xây dựng một ứng dụng CSDL vừa và nhỏ.

Yêu cầu sau khóa học sinh viên phải nắm vững được những quy tắc và nguyên lý cũng như quy trình mô hình hóa và thiết kế một ứng dụng CSDL bất kỳ ở phạm vi vừa và nhỏ.

 

ppt126 trang | Chia sẻ: luyenbuizn | Lượt xem: 1344 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng môn cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CƠ SỞ DỮ LIỆU GV: ThS. Đặng Thị Từ Mỹ TRƯỜNG ĐẠI HỌC QUY NHƠN Khoa Kỹ thuật & Công nghệ – Bộ môn Điện tử _ Viễn thông Mục đích môn học Cung cấp các khái niệm và kiến thức cơ bản nhất về CSDL và HQTCSDL. Các mô hình cơ sở dữ liệu. Phân tích các dạng chuẩn hóa CSDL và khái niệm phụ thuộc hàm trong quá trình phân tích và thiết kế CSDL. Giới thiệu về mô hình CSDL quan hệ, các khái niệm về thực thể và mối quan hệ. Giới thiệu các toán tử và phép toán của đại số quan hệ. Giới thiệu hai ngôn ngữ thông dụng với mô hình cơ sở dữ liệu quan hệ: MS Access và SQL Server. Cung cấp cho sinh viên khả năng độc lập trong việc tự phân tích và mô hình hóa một công việc cụ thể trên thế giới thực vào việc xây dựng một ứng dụng CSDL vừa và nhỏ. Yêu cầu sau khóa học sinh viên phải nắm vững được những quy tắc và nguyên lý cũng như quy trình mô hình hóa và thiết kế một ứng dụng CSDL bất kỳ ở phạm vi vừa và nhỏ. 1_ Giới thiệu 1.1. Khái niệm cơ bản về cơ sở dữ liệu a. Cơ sở dữ liệu (CSDL) là gì? b. Ưu điểm của CSDL 1.2. Kiến trúc một hệ cơ sở dữ liệu 1.3. Sơ bộ lịch sử phát triển 1.4. Các loại mô hình dữ liệu cơ bản a. Mô hình quan hệ (Relational Data Model) b. Mô hình phân cấp (Hierarchical Data Model) c. Mô hình mạng (Network Data Model) 1.5. Tính độc lập dữ liệu 1.6. Kết luận 1.1. Khái niệm cơ bản về cơ sở dữ liệu a. Cơ sở dữ liệu (CSDL) là gì? Đặc điểm của CSDL (DataBase) Là tập hợp dữ liệu liên quan được lưu trên các bộ nhớ ngoài (đĩa từ, trống từ...). Có một tập các chương trình ứng dụng được chạy với các dữ liệu này và thậm chí dùng để truyền đi xa. CSDL là một tổ hợp: đó là một tập hợp nhiều loại dữ liệu cho nhiều người dùng với nhiều mục đích khác nhau. Định nghĩa CSDL CSDL là một tập hợp các dữ liệu được lưu trữ để phục vụ các hệ thống ứng dụng. Hệ quản trị CSDL (DBMS-DataBase Management System) Phần chương trình để có thể xử lý, thay đổi tập hợp các dữ liệu này Như một bộ diễn dịch (Interpreter) với ngôn ngữ bậc cao 1.1. Khái niệm cơ bản về cơ sở dữ liệu b. Ưu điểm của CSDL Tại sao người ta cần lưu trữ dữ liệu trong một tổ hợp như CSDL? CSDL cung cấp một sự điều khiển tập trung đối với các dữ liệu trong CSDL. Các phần tử trong hệ thống CSDL 1.1. Khái niệm cơ bản về cơ sở dữ liệu b. Ưu điểm của CSDL ...(tiếp) Những ưu điểm của sự điều khiển tập trung Giảm sự dư thừa dữ liệu cần lưu trữ. Có thể tránh được những xung đột về dữ liệu được lưu trữ. Có thể dùng chung dữ liệu đã được lưu trữ . Có thể chuẩn hoá dữ liệu giúp đơn giản hoá các vấn đề về bảo hành và trao đổi dữ liệu giữa các lần cài đặt. Có thể áp dụng các phương pháp bảo mật với dữ liệu. Duy trì được sự thống nhất dữ liệu để đảm bảo CSDL chỉ chứa dữ liệu chính xác. Có thể cân đối được các đòi hỏi xung đột nhau. Dữ liệu là độc lập, độc lập với cấu trúc bộ nhớ, với phương pháp lưu trữ và tiếp cận thông tin. Đảm bảo quy tắc toàn vẹn dữ liệu. 1.2. Kiến trúc một hệ cơ sở dữ liệu Mô hình dữ liệu (Data Model) Mô hình khái niệm (Conceptual model) Lược đồ trong (Internal schema) (Storage structure definition) Lược đồ khái niệm Hệ quản trị Cơ sở dữ liệu (DBMS) Dấu * biểu thị sự liên hệ với người sử dụng Người quản trị hệ thống CSDL (Database Administrator) Xây dựng và Bảo trì các lược đồ và các ánh xạ. Ngôn ngữ Không gian làm việc Ngôn ngữ Không gian làm việc Ngôn ngữ Không gian làm việc Ngôn ngữ Không gian làm việc Ngôn ngữ Không gian làm việc ánh xạ giữa mô hình khái niệm và mô hình trong ánh xạ giữa mô hình ngoài B và mô hình khái niệm ánh xạ giữa mô hình ngoài A và mô hình khái niệm Hình 1 B1 A2 A1 B3 B2 * Lược đồ ngoài (External Schema) Mô hình ngoài B (Khung nhìn B) (External Model B) Mô hình ngoài A (Khung nhìn A) (External Model A) Người sử dụng Theo mặt cắt dọc a) Các mức của kiến trúc Mức ngoài (hay còn gọi là khung nhìn) Mức ngoài liên quan đến cách nhìn, quan niệm của từng người sử dụng CSDL vì vậy còn gọi là "khung nhìn". Có nhiều "cách nhìn ở mức ngoài" khác nhau. Mỗi cách nhìn (mỗi khung nhìn) bao gồm sự biểu diễn trừu tượng của một phần nào đó của CSDL. Hầu hết những người sử dụng không quan tâm đến tổng thể toàn bộ CSDL mà chỉ quan tâm đến một phần riêng biệt nào đó của CSDL. 1.2. Kiến trúc một hệ cơ sở dữ liệu a) Các mức của kiến trúc...(tiếp) Mức khái niệm Mức khái niệm cho phép ta định nghĩa một cách nhìn thống nhất cho người sử dụng. "Cách nhìn ở mức khái niệm" bao gồm sự biểu diễn trừu tượng của tổng thể toàn bộ CSDL. Thực chất đây là mức logic của toàn bộ CSDL Mức trong (còn gọi là mức vật lý) Mức trong rất gần với cách lưu trữ trong bộ nhớ máy tính. CSDL vật lý (CSDL ở mức vật lý) là các tệp dữ liệu theo một cấu trúc nào đó được lưu trên các thiết bị nhớ ngoài. Liên hệ với cấu trúc lưu trữ ngoài 1.2. Kiến trúc một hệ cơ sở dữ liệu b) Các khái niệm Khái niệm "thể hiện" (instance) Một khi CSDL đã được thiết kế, thường người ta chỉ quan tâm đến "Bộ khung" hay còn gọi là "mẫu" của CSDL. Dữ liệu hiện có trong CSDL gọi là "thể hiện" của CSDL. Mặc dù dữ liệu có thể thay đổi trong một chu kỳ thời gian nào đó nhưng "bộ khung" của CSDL vẫn không thay đổi. Khái niệm "lược đồ" (schema) Khái niệm "bộ khung" nêu ở phần trước bao gồm một số danh mục hoặc chỉ tiêu hoặc một số kiểu của các thực thể trong CSDL. Giữa các thực thể có thể có những mối quan hệ nào đó với nhau vì vậy người ta thường dùng thuật ngữ "lược đồ" thay cho "bộ khung". 1.2. Kiến trúc một hệ cơ sở dữ liệu b) Các khái niệm ...(tiếp) Khái niệm "lược đồ" (schema) Các loại lược đồ Lược đồ khái niệm là bộ khung của CSDL khái niệm (gọi tắt của CSDL ở mức khái niệm). Lược đồ khái niệm là sự biểu diễn thế giới thực bằng một loạt ngôn ngữ phù hợp. Hệ QTCSDL cung cấp ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language) để xác định lược đồ khái niệm. DDL là một ngôn ngữ bậc cao, có khả năng mô tả lược đồ khái niệm bằng cách biểu diễn của mô hình dữ liệu. Lược đồ vật lý (hay lược đồ trong) dùng cho bộ khung của CSDL ở mức vật lý. Lược đồ con (Subschema) được gọi thay cho khung nhìn. 1.2. Kiến trúc một hệ cơ sở dữ liệu 1.2. Kiến trúc một hệ cơ sở dữ liệu Theo mặt cắt ngang Các thao tác với bộ khung (Schema operations) Phần xử lý truy vấn (Query Processor) Phần quản lý lưu trữ (Data Management) Phần quản lý giao dịch (Transaction Management) Dữ liệu, Siêu dữ liệu (Data, Meta-data) Các truy vấn (Query) Các thao tác với dữ liệu (Data operations) Một số khái niệm: Transaction DML (Data Manipulation Language DDL (Data Definition Language) Query language Data, Meta-data 1.2. Kiến trúc một hệ cơ sở dữ liệu Theo người sử dụng Người dùng cuối Người lập trình CSDL Người thiết kế CSDL Người quản trị CSDL 1.3. Sơ bộ lịch sử phát triển Trước đây: Những năm 1960: dữ liệu lưu trữ dưới dạng các tệp CSDL Phân cấp (Hierarchical Model) CSDL Mạng (Network Model) Gần đây và hiện nay: 1970, Edgar Frank Codd: CSDL Quan hệ (Relational Model) Phát triển theo xu hướng chuyên môn hoá Tập trung vào các hệ thống nhỏ (PCs...) Tập trung vào các hệ thống lớn (làm việc với lượng dữ liệu khổng lồ) Tương lai gần: Thêm mô hình hướng đối tượng (OO-Model) Tăng khả năng phát triển các ràng buộc (constraints) và các kích hoạt (triggers) Lưu trữ thành các tổ hợp dữ liệu: multimedia Kho dữ liệu (Data Warehousing) – Khai thác dữ liệu (Data mining) 1.3. Sơ bộ lịch sử phát triển Một số ví dụ về hệ quản trị CSDL Btrieve: dữ liệu lưu trữ dưới dạng các tệp Dạng giống COBOL: dạng mô hình mạng Fox Pro MS Access MS SQL, Informix, Oracle, DB4, ... Những CSDL mô hình hướng đối tượng dùng kết hợp với SmallTalk, C++, Java Các mô hình CSDL ứng dụng trên mạng WWW: multimedia Các khái niệm Mô hình dữ liệu Sự hình thức hóa toán học với tập hợp các ký hiệu để mô tả và tập các phép toán được dùng để thao tác đối với các dữ liệu Một số mô hình dữ liệu cơ bản sẽ giới thiệu Mô hình quan hệ (Relational Model): Mô hình này dựa trên cơ sở khái niệm lý thuyết tập hợp của các quan hệ, tức là tập các k-bộ với k cố định. Mô hình phân cấp (Hierarchical Model): Mô hình dữ liệu là một cây, trong đó các nút biểu diễn biểu diễn các tập thực thể, các nút con và nút cha được liên hệ theo một mối quan hệ xác định. Mô hình mạng (Network Model): Mô hình được biểu diễn là một đồ thị có hướng. Ngôn ngữ con dữ liệu Tập các phép toán được cung cấp để thao tác dữ liệu 1.4. Các loại mô hình dữ liệu cơ bản Hình 2. Dữ liệu mẫu trong dạng quan hệ. a. Mô hình quan hệ (Relational Data Model) Supplier - Hãng cung cấp Part - Mặt hàng Shipment – Gửi hàng Nhận xét qua ví dụ: Tóm tắt sự tương ứng giữa các khái niệm a. Mô hình quan hệ (Relational Data Model) Mỗi bảng trong ba bảng trên giống như một tệp tuần tự truyền thống (Sequential File) Tuy nhiên có các sự khác biệt đáng kể giữa các bảng này và các tệp tuần tự truyền thống Mỗi bảng là một trường hợp riêng của cấu trúc được biết đến trong toán học - đó là "quan hệ" Miền (Domain) Miền là một tập các giá trị mà từ đó các giá trị thực sự sẽ xuất hiện trên các thuộc tính (cột) của quan hệ (bảng). Bản thân miền có thể không được ghi nhận một cách tường minh như là một tập các giá trị thực sự trong cơ sở dữ liệu nhưng nó được định nghĩa trong lược đồ khái niệm và có tên riêng của mình Một đặc điểm nổi bật của cấu trúc dữ liệu quan hệ là các mối kết nối giữa các bộ (các hàng) được biểu thị chặt chẽ bởi các giá trị dữ liệu trong các cột được rút ra từ một miền chung a. Mô hình quan hệ (Relational Data Model) Bảng là dạng thống nhất Thực tế, tất cả các thông tin trong cơ sở dữ liệu - các thực thể (entities) và các mối kết nối (associations) - được biểu diễn trong một dạng thống nhất được gọi là bảng Như sẽ thấy sau này, đặc tính này không có trong cấu trúc phân cấp và cấu trúc mạng. Qua quan sát, nhận thấy cấu trúc quan hệ rất đơn giản, dễ hiểu. a.Mô hình quan hệ (Relational Data Model) Mô hình quan hệ có sự thống nhất trong tập các phép toán Theo quan điểm của người sử dụng, ngôn ngữ con dữ liệu - tập các phép toán được cung cấp để thao tác dữ liệu trong dạng quan hệ - là rất quan trọng Ngoài ra, có thể nhận thấy: sự thống nhất trong cách biểu diễn dữ liệu dẫn đến sự thống nhất tương ứng trong tập các phép toán Điều này đối nghịch với các cấu trúc phức tạp khác (như cấu trúc phân cấp, cấu trúc mạng) mà ở đó thông tin có thể được biểu diễn trong một vài cách khác nhau và do đó cần đến một số tập các phép toán Để hiểu hơn về vấn đề này, sau đây chúng ta sẽ xét giải thuật cho hai câu hỏi đối xứng nhau (Hình 3.1.3 tiếp theo) a.Mô hình quan hệ (Relational Data Model) Mô hình quan hệ có sự thống nhất trong tập các phép toán ...(tiếp) Hình 3 : Hai giải thuật đối xứng nhau cho hai câu hỏi đối xứng a.Mô hình quan hệ (Relational Data Model) Không có dị thường xảy ra đối với thao tác lưu trữ cơ bản Phép chèn (INSERT): Phép xoá (DELETE): Phép thay đổi (UPDATE): a.Mô hình quan hệ (Relational Data Model) b. Mô hình phân cấp (Hierarchical Data Model) Supplier - Hãng cung cấp Part - Mặt hàng Ví dụ: Dữ liệu mẫu trong mô hình phân cấp Theo mô hình quan hệ có: Shipment – Gửi hàng b. Mô hình phân cấp (Hierarchical Data Model) Hình 4. Mô hình dữ liệu mẫu trong dạng phân cấp Nhận xét qua ví dụ: Trong mô hình phân cấp, các thực thể quan hệ với nhau thông qua cấu trúc cây, tất cả tạo nên một rừng cây Người sử dụng thấy bốn cây tách biệt nhau, hay còn gọi là bốn thể hiện phân cấp, mỗi cây thể hiện cho một mặt hàng Mỗi cây thể hiện một bản ghi về đơn đặt hàng gồm dữ liệu mặt hàng, kèm theo dữ liệu nhà cung cấp và số lượng Kiểu dữ liệu của thực thể đóng vai trò như một gốc (root) Để xác định chính xác các cây (gốc, chiều đi...) thi cần phải có một bản thiết kế tổng thể về dữ liệu của các thực thể, các mối liên kết b. Mô hình phân cấp (Hierarchical Data Model) Trong mô hình phân cấp, các thực thể và các mối kết nối không được biểu diễn trong một dạng thống nhất Trong mô hình quan hệ tương ứng đã xét ở trên, chúng ta có ba tệp dữ liệu đơn giản Tương tự như vậy, ta có thể đặt mô hình phân cấp của Hình 3.1.4 tương ứng với một tệp dữ liệu chứa các bản ghi được sắp xếp thành bốn cây riêng biệt Tuy nhiên cần lưu ý là tệp như vậy có cấu trúc phức tạp các bảng ở mô hình quan hệ rất nhiều. b. Mô hình phân cấp (Hierarchical Data Model) Ngôn ngữ con dữ liệu phức tạp hơn so với ngôn ngữ con dữ liệu của mô hình quan hệ Trong cách nhìn phân cấp của dữ liệu, bất kỳ bản ghi phụ thuộc đã cho nào cũng chỉ mang ý nghĩa đầy đủ khi nó được xét trong một ngữ nghĩa nào đó Không một thể hiện bản ghi phụ thuộc nào có thể tồn tại mà không có thể hiện dẫn trước nó Do đó trong ngôn ngữ con dữ liệu, cần phải bao gồm thêm một toán hạng để biểu thị ý nghĩa này Chúng ta sẽ hiểu rõ hơn điều này khi xét hai câu hỏi đối xứng nhau cho mô hình phân cấp như đã xét cho mô hình quan hệ (Hình 3.1.5). b. Mô hình phân cấp (Hierarchical Data Model) b. Mô hình phân cấp (Hierarchical Data Model) Hình 3.5. Hai câu hỏi mẫu đối với mô hình phân cấp. Hai giải thuật khác nhau cho hai câu hỏi đối xứng Mặc dù hai câu hỏi gốc là đối xứng nhưng hai giải thuật tương ứng trên Hình 3.1.5 thì không đối xứng (ngược lại với mô hình quan hệ). Đây là nhược điểm chủ yếu của cách tiếp cận phân cấp vì nó dẫn đến sự phức tạp không cần thiết cho người sử dụng Điều này có nghĩa là các chương trình sẽ trở nên phức tạp hơn sự thực cần thiết và hậu quả là việc viết chương trình, gỡ rối và bảo trì sẽ đòi hỏi ở người lập trình nhiều thời gian hơn cần thiết. b. Mô hình phân cấp (Hierarchical Data Model) Tồn tại các dị thường đối với các thao tác lưu trữ cơ bản Phép chèn: Phép xoá: Phép thay đổi: b. Mô hình phân cấp (Hierarchical Data Model) Hình 3.6 Dữ liệu mẫu trong mô hình mạng c. Mô hình mạng (Network Data Model) 300 Nhận xét qua ví dụ: Cũng như trong mô hình phân cấp, dữ liệu được biểu hiện thông qua các bản ghi (record) và các mối kết nối (link) Ngoài các kiểu bản ghi biểu diễn nhà cung cấp và các mặt hàng, còn có kiểu bản ghi thứ ba: các kết nối (link or connector) Tất cả các thể hiện kết hợp đối với một hãng cung cấp đều đặt trong một chuỗi mà điểm bắt đầu và kết thúc chuỗi đều ở tại đó Tương tự, tất cả các thể hiện kết hợp đối với một mặt hàng đã cho đều đặt trong một chuỗi được bắt đầu và kết thúc tại chính nó Như vậy, mỗi mối kết hợp được xuất hiện trên đúng hai chuỗi: một chuỗi hãng cung cấp và một chuỗi mặt hàng Cấu trúc bên trong của tệp cho mô hình mạng phức tạp hơn cho mô hình phân cấp c. Mô hình mạng (Network Data Model) c. Mô hình mạng (Network Data Model) Mô hình mạng (Hình 3.6) đối xứng hơn mô hình phân cấp (Hình 3.4), tuy nhiên, các thủ tục này phức tạp hơn so với cả 2 mô hình quan hệ và mô hình phân cấp Không có các dị thường xảy ra đối với các thao tác lưu trữ cơ bản: Phép Chèn (Insert): Phép xoá (Delete): Phép thay đổi (Update) c. Mô hình mạng (Network Data Model) Nhược điểm chính của mô hình mạng là sự phức tạp, phức tạp từ cấu trúc của chính mô hình đến ngôn ngữ con dữ liệu có liên quan đến nó Nguồn gốc của sự phức tạp này nằm ở khối lượng thông tin về cấu trúc của mô hình dữ liệu này Thông tin phải bao gồm hai phần: bản ghi mối liên kết Các cấu trúc dữ liệu này rất gần với cấu trúc bộ nhớ c. Mô hình mạng (Network Data Model) Tầm quan trọng Tính độc lập dữ liệu là mục tiêu chủ yếu của các CSDL J. Date định nghĩa: Tính độc lập dữ liệu là "tính bất biến của các hệ ứng dụng đối với các thay đổi trong cấu trúc lưu trữ và chiến lược truy cập" Phân loại mức độ độc lập Theo sơ đồ kiến trúc của hệ thống CSDL (Hình 3.1.1) cho thấy có hai mức "độc lập dữ liệu": Độc lập dữ liệu ở mức logic Độc lập dữ liệu ở mức vật lý 1.5. Tính độc lập dữ liệu Độc lập dữ liệu ở mức logic Vấn đề đặt ra: Có thể cần thiết phải thay đổi lược đồ khái niệm như thêm thông tin các loại khác nhau của các thực thể hoặc bớt, xoá các thông tin về các thực thể đang tồn tại trong CSDL Độc lập dữ liệu ở mức logic Việc thay đổi lược đồ khái niệm không làm ảnh hưởng tới các lược đồ con đang tồn tại, do đó không cần thiết phải thay đổi các chương trình ứng dụng => độc lập dữ liệu mức logic 1.5. Tính độc lập dữ liệu Độc lập dữ liệu ở mức vật lý Vấn đề đặt ra: Lược đồ vật lý có thể thay đổi do người quản trị CSDL mà không cần thay đổi lược đồ con Độc lập dữ liệu ở mức vật lý Việc tổ chức lại CSDL vật lý (thay đổi các tổ chức, cấu trúc dữ liệu trên các thiết bị nhớ thứ cấp) có thể làm thay đổi hiệu quả tính toán của các chương trình ứng dụng nhưng không đòi hỏi phải viết lại các chương trình đó => độc lập dữ liệu mức vật lý 1.5. Tính độc lập dữ liệu Qua các ví dụ trên => một hệ CSDL phải có khả năng biểu diễn hai dạng đối tượng: Các "thực thể" ("entities") và Các kết nối ("associations") Không có sự khác biệt thực sự giữa hai loại đối tượng trên: Một kết nối chỉ đơn thuần là một dạng riêng của thực thể 1.6. Kết luận Sự khác nhau giữa ba loại mô hình đã xét (mô hình quan hệ, mô hình phân cấp, mô hình mạng): Thể hiện ở cách thức cho phép người sử dụng quan sát và thao tác các kết nối. Mô hình quan hệ có nhiều ưu điểm và được nhiều người quan tâm hơn cả vì: Mô hình dữ liệu quan hệ có tính độc lập dữ liệu cao Mô hình dữ liệu quan hệ dễ sử dụng Điều quan trọng hơn cả, mô hình quan hệ được hình thức hoá toán học tốt, do đó được nghiên cứu phát triển và cho được nhiều kết quả lý thuyết cũng như ứng dụng trong thực tiễn 1.6. Kết luận 2.Mô hình CSDL quan hệ 2.1. Các khái niệm cơ bản. a. Quan hệ, bộ. b. Miền và thuộc tính. 2.2. Khoá. 2.3. Kết luận. 2.4. Các phép toán trên CSDL quan hệ. 2.1. Các khái niệm cơ bản. Khái niệm toán học của mô hình quan hệ: hiểu theo nghĩa lý thuyết tập hợp, đó là tập con của tích Đề-Các của các miền Miền (domain) là một tập các giá trị Ví dụ của miền: tập các số nguyên tập các xâu ký tự tạo thành tên các tỉnh, thành phố ở Việt Nam có độ dài không quá 30 ký tự tập hai giá trị {True, False} 2.1. Các khái niệm cơ bản. 1. Quan hệ, bộ. Tích Đề - Các của n miền: D1 x D2 x... x Dn là tập tất cả n-bộ (n-tuples) (1, 2,... n) sao cho i  Di với i = 1, 2, ... n Ví dụ: n = 2 D1 = {False, True} D2 = {a, b, c}, khi đó: D1 x D2 = {(False, a), (False, b), (False, c), (True, a), (True, b), (True, c)} 2.1. Các khái niệm cơ bản. Quan hệ (Relation) Một tập con của tích Đề-Các của một hoặc nhiều miền Như vậy, mỗi quan hệ có thể là vô hạn ở đây luôn luôn giả thiết rằng, quan hệ là một tập hữu hạn Quan hệ là tập con của tích Đề-Các D1 x D2 x ... x Dn được gọi là quan hệ n-ngôi Các thành phần của các bộ trong quan hệ gọi là các thuộc tính (attributes) Sự khác nhau giữa miền và thuộc tính: Một thuộc tính biểu thị cách sử dụng một miền trong một quan hệ 2.1. Các khái niệm cơ bản. Quan hệ được định nghĩa một cách hình thức như sau: Gọi R = {A1, A2, ... , An} là tập hữu hạn của các thuộc tính, mỗi thuộc tính Ai với i = 1, 2,..., n có miền giá trị tương ứng là dom(Ai) (các miền không nhất thiết là phải khác nhau) Quan hệ r trên tập thuộc tính R = {A1, A2, ..., An} là tập con của tích Đề - Các được biểu diễn như sau: r  dom (A1) x dom (A2) x... dom (An) Ví dụ: Hình 3.6, ba quan hệ được gọi là S, P, SP Quan hệ P là quan hệ 5-ngôi được định nghĩa trên 5 miền: P#, PNAME, COLOR, WEIGHT, CITY Ví dụ, miền COLOR là tập của tất cả các màu sắc hợp lệ của các mặt hàng Ta có p1 = (P1, Nut, Red, 12, London) là một bộ (tuple, row) của quan hệ P Bộ (tuples) Hình 3.6 Dữ liệu mẫu trong dạng quan hệ. Supplier - Hãng cung cấp Part - Mặt hàng Shipment – Gửi hàng 2.1. Các khái niệm cơ bản. 2.1. Các khái niệm cơ bản. 2. Miền và thuộc tính. Cần phân biệt rõ sự khác nhau giữa miền và các thuộc tính - hay còn gọi là các cột - được rút ra từ miền này Một thuộc tính biểu thị sự sử dụng một miền trong một quan hệ (các thành phần của các bộ trong quan hệ gọi là các thuộc tính) Để nhấn mạnh sự khác nhau này, chúng ta có thể đặt tên cho thuộc tính khác với tên của miền đã cho, ví dụ như trên Hình 2.1. 2.1. Các khái niệm cơ bản. Ví dụ: Hình 3.7, Khai báo lược đồ mẫu 2.1. Các khái niệm cơ bản. Hình 3.7 là một phần của lược đồ khái niệm, trong đó có: Năm miền (P#, PNAME, COLOR, WEIGHT, CITY) Một quan hệ (PART) đã được khai báo Quan hệ PART này được định nghĩa với năm thuộc tính: PARTNO PARTNAME COLOR WT LOC và Mỗi thuộc tính được chỉ rõ đã rút ra từ miền tương ứng nào Để thuận tiện, người ta thường bỏ qua phần khai báo tên miền ("DOMAIN name") khi khai báo thuộc tính nếu tên thuộc tính giống tên miền Tuy nhiên, không phải luôn có thể đặt tên thuộc tính trùng với tên miền Hình 3.8 Quan hệ COMPONENT 2.1. Các khái niệm cơ bản. 2.1. Các khái niệm cơ bản. Trong ví dụ này, chúng ta có một quan hệ với ba thuộc tính nhưng chỉ có hai miền khác nhau ý nghĩa của một bộ (tuple) trong quan hệ COMPONENT là một mặt hàng chính (MAJOR_P#) có kèm theo mặt hàng phụ (MINOR_P#) và số lượng các mặt hàng phụ này (QUANTITY) Ví dụ này cũng minh hoạ một sự thuận tiện thông thường khác: Cách tạo tên thuộc tính khác nhau bằng cách đặt phần tiền tố (MAJOR, MINOR) trước tên miền chung (P#) để phân biệt vai trò của các thuộc tính có cùng chung một miền (P#) 2.1. Các khái niệm cơ bản. Khái niệm "chuẩn hoá": Mô hình quan hệ chỉ chấp nhận duy nhất các quan hệ thoả mãn điều kiện “Mọi giá trị trong quan hệ - nghĩa là tất cả các giá trị của các thuộc tính trong tất cả các bộ - đều phải là nguyên tố (atomic) (nghĩa là không chia nhỏ được nữa)” . Nói một cách khác, tại mỗi vị trí cắt nhau của một hàng và một cột trong bảng tồn tại đúng một giá trị và không bao giờ là một tập các giá trị. Quan hệ thoả mãn điều kiện trên được gọi là “đã được chuẩn hoá”. 2.1. Các khái niệm cơ bản. Ví dụ: 2.1. Các khái niệm cơ bản. Luôn có thể chuyển một quan hệ chưa chuẩn hoá sang dạng chuẩn hoá tương đương Quan hệ BEFORE (hình 2.3) được định nghĩa trên các miền: S# (Supplier number: số hiệu hãng cung cấp) và PQ (Part-Quantity: mặt hàng - số lượng) Các phần tử của PQ chính là các quan hệ được định nghĩa trên các miền: P# (số hiệu mặt hàng) và QTY (Quantity: số lượng hàng)  do đó, quan hệ BEFORE là chưa được chuẩn hoá Quan hệ AFTER là quan hệ tương đương đã được chuẩn hoá Về mặt toán học: BEFORE là quan hệ hai ngôi nhưng không phải tất cả các miền đều là đơn giản (Miền đơn giản là miền mà trong đó tất cả các phần tử là nguyên tố) AFTER là quan hệ ba ngôi tương đương về mặt ngữ nghĩa với quan hệ BEFORE nhưng tất cả các miền của các thuộc tính của nó đều là đơn giản. 2.2. Khoá 1. Khoá chính (Primary key). 2. Khóa ứng cử (Candidate key). 3. Khóa ngoại lai (Foreign key). 4. Khóa phụ (Sub-Key). 2.2. Khóa Khóa chính (Primary key) Khóa chính là một thuộc tính hoặc một kết hợp tối thiểu các thuộc tính cho phép ta nhận diện duy nhất một thực thể riêng biệt nào đó. Tính “nhận diện duy nhất”: Trong một quan hệ đã cho luôn có một thuộc tính hoặc một kết hợp các thuộc tính với các giá trị cho phép nhận dạng duy nhất các bộ của quan hệ này. Trong lược đồ quan hệ có thể có rất nhiều khoá Việc tìm tất cả các khoá của lược đồ quan hệ là rất khó khăn Tính “tối thiểu”: Không phải thường xuyên cần đến tất cả các thuộc tính. Không một thuộc tính thành phần nào của khoá chính là thừa với mục đích nhận dạng duy nhất. 2.2. Khóa 2. Khoá ứng cử (Candidate key) Khóa ứng cử là thuộc tính hoặc kết hợp các thuộc tính có tính chất như khóa chính. Đôi khi có thể gặp một quan hệ trong đó có hơn một kết hợp các thuộc tính có khả năng nhận diện duy nhất và tối thiểu như khóa chính  do đó có hơn một khoá ứng cử (candidate key) Ví dụ: Giả thiết, tên hãng cung cấp là duy nhất => Khóa ứng cử: S#; SNAME 2.2. Khóa 2.2. Khóa 3. Khoá ngoại lai (Foreign key) Một thuộc tính của quan hệ R1 được gọi là một khoá ngoại lai nếu nó không phải là khoá chính của quan hệ R1 nhưng các giá trị của nó là các giá trị của khoá chính trong một quan hệ R2 nào đó (quan hệ R1 và R2 không nhất thiết phải khác nhau). Các khoá chính và khoá ngoại lai cho ta các phương tiện để biểu diễn các liên kết giữa các bộ. Tuy nhiên, cần lưu ý là không phải tất cả các thuộc tính có thể biểu diễn các liên kết như vậy đều là khoá 2.2. Khóa 4. Khoá phụ (Secondary key) Dùng để xắp sếp hoặc tìm kiếm Lưu ý: khi sử dụng một ngôn ngữ con dữ liệu dạng quan hệ không nên giới hạn việc truy nhập vào một quan hệ là "chỉ có thể thông qua khoá chính" 2.2. Khóa Theo lý thuyết quan hệ, khoá (key) của một quan hệ r trên tập thuộc tính R = {A1, ..., An} là tập con K  {A1 ... An} thoả mãn các tính chất sau đây: Với bất kỳ hai bộ t1, t2  r đều tồn tại một hoặc một kết hợp các thuộc tính A  K sao cho t1(A)  t2(A) Điều kiện này có thể viết t1(K)  t2(K). Do vậy mỗi giá trị của K là xác định duy nhất Để có thể định nghĩa khoá một cách tốt hơn, lưu ý rằng, nếu K' là khoá của quan hệ r(A1, ..., An) thì K'  K  R, K cũng là khoá của r, nghĩa là với bất kỳ t1, t2  r với t1 (K')  t2 (K') luôn có t1 (K)  t2 (K) 2.2. Khóa Lưu ý:nếu K' là khoá của quan hệ r(A1, ..., An) thì K'  K  R, K cũng là khoá của quan hệ r. Để đảm bảo tính không dư thừa của khoá chính ta có định nghĩa sau về khoá chính: Khoá chính của quan hệ r trên tập thuộc tính R = {A1, ..., An} là tập con K  R sao cho bất kỳ hai bộ khác nhau t1, t2  r luôn thoả t1(K)  t2(K) và bất kỳ tập con thực sự K'  K nào đó đều không có tính chất đó a r, nghĩa là với bất kỳ t1, t2  r với t1 (K')  t2 (K') luôn có t1 (K)  t2 (K) 2.3. Kết luận Có thể định nghĩa mô hình quan hệ của một CSDL là một khung nhìn của CSDL đó gồm một tập các quan hệ đã được chuẩn hoá và thay đổi theo thời gian với các ngôi đã đ

Các file đính kèm theo tài liệu này:

  • pptcsdl_1266.ppt
Tài liệu liên quan