Đại số quan hệ trong cơ sở dữ liệu: các phép tính, ví dụ. Hoạt động đổi tên đơn nhất. Trong quá trình làm việc trong phòng thí nghiệm, các hoạt động với cơ sở dữ liệu nói chung đã được nghiên cứu. có được kỹ năng sử dụng ứng dụng "ibexpert" để tạo, xóa, đăng ký

Mối quan hệ giữa bản ghi chủ sở hữu và bản ghi thành viên cũng là 1:N.

Sự khác biệt chính giữa các mô hình này là trong mô hình mạng, một bản ghi có thể là thành viên của nhiều mối quan hệ nhóm. Theo mô hình này, mỗi quan hệ nhóm được đặt tên và có sự phân biệt giữa kiểu và thể hiện của nó. Một kiểu quan hệ nhóm được xác định bằng tên của nó và xác định các thuộc tính chung cho tất cả các thể hiện của kiểu này. Một thể hiện mối quan hệ nhóm được thể hiện bằng một bản ghi chủ sở hữu và một tập hợp các bản ghi cấp dưới (có thể trống). Có hạn chế sau: ghi lại ví dụ không thể là thành viên của hai trường hợp của các mối quan hệ nhóm cùng loại (ví dụ: nhân viên trong ví dụ ở đoạn 1 không thể làm việc ở hai phòng ban).

  • cây (a) và (b) được thể hiện trong hình. 4.2 được thay thế bằng một cấu trúc mạng trong đó bản ghi NHÂN VIÊN được đưa vào hai mối quan hệ nhóm;
  • để hiển thị loại M:N, hãy nhập bản ghi EMPLOYEE_CONTRACT, không có trường nào và chỉ dùng để liên kết các bản ghi CONTRACT và EMPLOYEE (xem Hình 4.3). Lưu ý rằng hồ sơ này cũng có thể lưu trữ thông tin hữu ích, ví dụ, phần chia sẻ của một nhân viên nhất định trong tổng số tiền thù lao theo một hợp đồng nhất định.


Cơm. 4.3.

Mỗi thể hiện của mối quan hệ nhóm được đặc trưng bởi các đặc điểm sau:

Cách sắp xếp hồ sơ cấp dưới:

  • Bất kỳ,
  • theo trình tự thời gian /queue/,
  • đảo ngược trình tự thời gian /stack/,
  • thập cẩm.

Nếu một bản ghi được khai báo là phụ thuộc vào một số mối quan hệ nhóm thì mỗi mối quan hệ trong số chúng có thể được chỉ định phương thức sắp xếp riêng.

Chế độ kích hoạt các bản ghi cấp dưới:

  • tự động - không thể nhập một bản ghi vào cơ sở dữ liệu mà không được gán ngay cho một chủ sở hữu nhất định;
  • thủ công - cho phép bạn ghi nhớ một bản ghi cấp dưới trong cơ sở dữ liệu và không đưa nó ngay vào trường hợp của mối quan hệ nhóm. Hoạt động này sau đó được người dùng thực hiện.

Chế độ ngoại lệ.

Người ta thường phân biệt ba loại thành viên của hồ sơ cấp dưới trong quan hệ nhóm:

  • Đã sửa. Một bản ghi phụ được liên kết chặt chẽ với một bản ghi chủ sở hữu và chỉ có thể bị xóa khỏi mối quan hệ nhóm bằng cách xóa nó. Khi bạn xóa bản ghi chủ sở hữu, tất cả các bản ghi cấp dưới sẽ tự động bị xóa. Trong ví dụ trên, tư cách thành viên cố định giả định mối quan hệ nhóm KẾT LUẬN giữa bản ghi HỢP ĐỒNG và KHÁCH HÀNG, vì hợp đồng không thể tồn tại nếu không có khách hàng.
  • Bắt buộc. Có thể chuyển một bản ghi cấp dưới sang một chủ sở hữu khác, nhưng nó không thể tồn tại nếu không có chủ sở hữu. Để xóa bản ghi chủ sở hữu, nó phải không có bản ghi cấp dưới nào có tư cách thành viên bắt buộc. Các bản ghi “NHÂN VIÊN” và “BỘ PHẬN” được kết nối bởi mối quan hệ này. Nếu một bộ phận bị giải tán, tất cả nhân viên của bộ phận đó phải được chuyển sang bộ phận khác hoặc bị sa thải.
  • Không bắt buộc. Bạn có thể loại trừ một bản ghi khỏi mối quan hệ nhóm nhưng vẫn giữ nó trong cơ sở dữ liệu mà không gán nó cho chủ sở hữu khác. Khi một bản ghi chủ sở hữu bị xóa, các bản ghi cấp dưới của nó - các thành viên tùy chọn - sẽ được giữ lại trong cơ sở dữ liệu, không còn tham gia vào mối quan hệ nhóm kiểu này nữa. Một ví dụ về mối quan hệ nhóm như vậy là “THỰC HIỆN” giữa “NHÂN VIÊN” và “HỢP ĐỒNG”, vì có thể có những nhân viên trong tổ chức có hoạt động không liên quan đến việc thực hiện bất kỳ nghĩa vụ hợp đồng nào với khách hàng.

Các thao tác trên dữ liệu trong mô hình cơ sở dữ liệu mạng

Thêm vào - tạo một bản ghi trong cơ sở dữ liệu và tùy thuộc vào chế độ bao gồm, đưa nó vào mối quan hệ nhóm, nơi nó được khai báo phụ thuộc hoặc không đưa nó vào bất kỳ mối quan hệ nhóm nào.
Bao gồm trong mối quan hệ nhóm - liên kết một bản ghi phụ hiện có với bản ghi chủ sở hữu.
Công tắc - liên kết một bản ghi phụ hiện có với một bản ghi chủ sở hữu khác trong cùng mối quan hệ nhóm.
Cập nhật - thay đổi giá trị của các phần tử của bản ghi được trích xuất trước đó.
Trích xuất - trích xuất các bản ghi một cách tuần tự theo giá trị khóa, cũng như sử dụng các mối quan hệ nhóm - bạn có thể chuyển từ chủ sở hữu sang bản ghi thành viên và từ bản ghi phụ đến chủ sở hữu của tập hợp.
Xóa bỏ - xóa một bản ghi khỏi cơ sở dữ liệu. Nếu bản ghi này là chủ sở hữu của một mối quan hệ nhóm thì lớp thành viên của các bản ghi cấp dưới sẽ được phân tích. Các thành viên bắt buộc trước tiên phải bị loại khỏi mối quan hệ nhóm, các thành viên cố định phải bị xóa cùng với chủ sở hữu, các thành viên tùy chọn sẽ vẫn còn trong cơ sở dữ liệu.
Loại trừ khỏi mối quan hệ nhóm - phá vỡ kết nối giữa hồ sơ chủ sở hữu và hồ sơ thành viên.

Ràng buộc hoàn toàn

Như trong mô hình phân cấp Chỉ đảm bảo duy trì tính toàn vẹn tham chiếu (chủ sở hữu của mối quan hệ là thành viên của mối quan hệ).

Ưu điểm và nhược điểm của DBMS đời đầu

Ưu điểm của DBMS sớm:

  • phương tiện quản lý dữ liệu trong bộ nhớ ngoài tiên tiến ở mức độ thấp;
  • khả năng xây dựng thủ công các hệ thống ứng dụng hiệu quả;
  • khả năng tiết kiệm bộ nhớ bằng cách tách các tiểu dự án (trong hệ thống mạng)

Nhược điểm của DBMS sớm:

  • khó sử dụng;
  • yêu cầu kiến ​​thức cao về tổ chức vật lý của cơ sở dữ liệu;
  • sự phụ thuộc của hệ thống ứng dụng vào tổ chức vật lý của cơ sở dữ liệu;
  • làm quá tải logic của hệ thống ứng dụng với các chi tiết tổ chức truy cập vào cơ sở dữ liệu.

Cả về thứ bậc và mô hình dữ liệu mạngđòi hỏi sự có mặt của các lập trình viên có trình độ cao. Và ngay cả trong những trường hợp như vậy, việc thực hiện yêu cầu của người dùng thường bị trì hoãn trong thời gian dài.

DBMS hướng đối tượng

Sự xuất hiện của các DBMS hướng đối tượng là do nhu cầu của các lập trình viên ngôn ngữ OO, những người cần các công cụ để lưu trữ các đối tượng không vừa với RAM của máy tính. Điều quan trọng nữa là nhiệm vụ lưu trạng thái của các đối tượng giữa các lần khởi chạy lặp lại của chương trình ứng dụng. Do đó, hầu hết các OODBMS là một thư viện có các thủ tục quản lý dữ liệu được đưa vào chương trình ứng dụng. Ví dụ về triển khai OODBMS như máy chủ chuyên dụng cơ sở dữ liệu là cực kỳ hiếm.

Cần lưu ý ngay rằng định nghĩa được chấp nhận rộng rãi về " mô hình dữ liệu hướng đối tượng"không tồn tại. Bây giờ chúng ta chỉ có thể nói về một cách tiếp cận “đối tượng” nhất định đối với việc biểu diễn logic dữ liệu và các cách triển khai hướng đối tượng khác nhau.

Chúng tôi biết rằng bất kỳ mô hình dữ liệu nào cũng phải bao gồm ba khía cạnh: cấu trúc, tổng thể và thao tác. Hãy xem cách chúng được triển khai trên cơ sở hướng đối tượng mô hình lập trình.

Kết cấu

Cấu trúc của mô hình đối tượng được mô tả bằng ba khái niệm chính:

đóng gói - mỗi đối tượng có một số trạng thái bên trong (lưu trữ một bản ghi dữ liệu bên trong chính nó), cũng như một tập hợp các phương thức - thủ tục, với sự trợ giúp của chúng (và chỉ bằng cách này), bạn có thể truy cập dữ liệu xác định trạng thái bên trong của đối tượng hoặc thay đổi chúng. Như vậy, có thể coi sự vật là những thực thể độc lập, tách biệt với thế giới bên ngoài;
di sản - ngụ ý khả năng tạo ra các lớp đối tượng mới từ các lớp đối tượng kế thừa cấu trúc và phương thức của tổ tiên chúng, thêm vào chúng những đặc điểm phản ánh cá tính riêng của chúng. Kế thừa có thể đơn giản (một tổ tiên) hoặc nhiều (nhiều tổ tiên);
tính đa hình - các đối tượng khác nhau có thể phản ứng khác nhau với cùng một sự kiện bên ngoài tùy thuộc vào cách triển khai phương pháp của chúng.

Toàn vẹn dữ liệu

Để duy trì tính toàn vẹn, cách tiếp cận hướng đối tượng gợi ý sử dụng các công cụ sau:

  • khả năng khai báo một số trường dữ liệu và phương thức của một đối tượng ở dạng “ẩn”, không hiển thị đối với các đối tượng khác; các trường và phương thức như vậy chỉ được sử dụng bởi các phương thức của chính đối tượng đó; tạo ra các thủ tục kiểm soát tính toàn vẹn trong đối tượng

Công cụ xử lý dữ liệu

Thật không may, lập trình hướng đối tượng thiếu các công cụ xử lý dữ liệu phổ biến như đại số quan hệ hoặc phép tính quan hệ. Dữ liệu được xử lý bằng một trong các ngôn ngữ lập trình hướng đối tượng có mục đích chung, thường là SmallTalk, C++ hoặc Java.

Bây giờ chúng ta hãy tóm tắt một số kết quả

Cơ sở dữ liệu hướng đối tượng, không giống như cơ sở dữ liệu quan hệ, lưu trữ các đối tượng hơn là các bản ghi. Cách tiếp cận hướng đối tượng cung cấp một phương tiện biểu diễn thế giới thực tiên tiến hơn so với mô hình quan hệ, một cách biểu diễn dữ liệu tự nhiên. Trong mô hình quan hệ, tất cả các mối quan hệ đều thuộc cùng một cấp độ, điều này gây khó khăn cho việc chuyển đổi các mối quan hệ phân cấp của mô hình thực thể-quan hệ thành mô hình quan hệ. Mô hình OO có thể được xem từng lớp, ở các mức độ trừu tượng khác nhau. Có thể xác định các kiểu dữ liệu mới và các thao tác với chúng.

Cùng lúc đó, OO - Mô hình này cũng có một số nhược điểm:

  • Không có phương tiện phi thủ tục mạnh mẽ nào để truy xuất các đối tượng từ cơ sở dữ liệu. Tất cả các truy vấn phải được viết bằng ngôn ngữ thủ tục, vấn đề tối ưu hóa chúng được giao cho người lập trình;
  • thay vì khai báo thuần túy Ràng buộc hoàn toàn(chẳng hạn như khai báo rõ ràng khóa chính và khóa ngoài của bảng quan hệ bằng từ khóa KHÓA CHÍNHNGƯỜI GIỚI THIỆU) hoặc trình kích hoạt nửa khai báo, bạn phải viết mã thủ tục để đảm bảo tính toàn vẹn bên trong.

Rõ ràng, cả hai thiếu sót này đều liên quan đến việc thiếu các phương tiện thao tác dữ liệu phát triển. Vấn đề này được giải quyết theo hai cách - mở rộng ngôn ngữ OO theo hướng quản lý dữ liệu (tiêu chuẩn ODMG) hoặc thêm thuộc tính đối tượng vào các DBMS quan hệ (SQL-3, cũng như cái gọi là DBMS quan hệ đối tượng).

Mỗi thao tác bao gồm việc lựa chọn dữ liệu (selection) và các hành động sẽ được thực hiện trên dữ liệu đã chọn. Các hoạt động chính trong cơ sở dữ liệu quan hệ là các hoạt động cập nhật cơ sở dữ liệu và các hoạt động xử lý mối quan hệ.

ĐẾN thao tác cập nhật cơ sở dữ liệu bao gồm các thao tác chèn các bộ dữ liệu mới, loại bỏ các bộ dữ liệu không cần thiết và điều chỉnh các giá trị thuộc tính của các bộ dữ liệu hiện có, cụ thể là: đây là các thao tác Bật, Xóa, Cập nhật.

Hoạt động Bật yêu cầu chỉ định tên của mối quan hệ và tạo sơ bộ các giá trị thuộc tính của bộ dữ liệu mới. Khóa tuple phải được chỉ định.

Hoạt động Xóa bỏ yêu cầu tên của mối quan hệ cũng như việc xác định bộ hoặc nhóm bộ cần xóa.

Hoạt động Cập nhậtđược thực thi cho mối quan hệ được đặt tên và có thể sửa cả một và một số bộ dữ liệu. Ví dụ: nếu ban quản lý công ty quyết định tăng lương tất cả nhân viên lên cùng một mức, thì một số bộ dữ liệu sẽ được điều chỉnh cùng một lúc bằng một thao tác Cập nhật.

Liên quan đến hoạt động xử lý, thì chúng được mượn từ đại số quan hệ. Theo cách tiếp cận của E. Codd, đại số quan hệ bao gồm tám phép tính, trong đó có năm phép tính cơ bản: Vật mẫu, Phép chiếu, phép nhân, phép cộng, phép trừ.

Vật mẫu- chỉ chọn từ quan hệ những bộ dữ liệu thỏa mãn điều kiện đã cho.

Tại Phép chiếuđối với một tập các thuộc tính đã cho của nó, một quan hệ mới sẽ được tạo ra bằng cách trích xuất các bộ chứa các thuộc tính đã chỉ định từ quan hệ ban đầu.

Tại Phép nhân(Tích Descartes) của hai quan hệ, thu được một quan hệ mới, các bộ dữ liệu trong đó là sự kết hợp của các bộ dữ liệu của quan hệ thứ nhất và quan hệ thứ hai.

Kết quả là Hiệp hội hai quan hệ, thu được quan hệ thứ ba, bao gồm các bộ chứa trong ít nhất một quan hệ, nghĩa là chứa tất cả các phần tử của quan hệ ban đầu.

Tại Phép trừ Chỉ những bộ dữ liệu của mối quan hệ thứ nhất được trả về còn lại sau khi trừ đi mối quan hệ thứ hai, nghĩa là tất cả các bộ dữ liệu của mối quan hệ thứ hai đều bị loại bỏ khỏi mối quan hệ thứ nhất.

Ba phép toán còn lại là phái sinh; chúng có thể thu được từ các phép toán chính; chúng được gọi là bổ sung: Kết Nối, Nút Giao, Phân công.

Hoạt động hợp chấtáp dụng cho hai mối quan hệ có thuộc tính chung. Kết quả của phép toán này đối với hai quan hệ trong một số điều kiện là một quan hệ gồm các bộ dữ liệu là sự kết hợp của quan hệ thứ nhất và thứ hai thỏa mãn điều kiện đã chỉ định.

Ngã tư hai quan hệ là một quan hệ bao gồm tất cả các bộ có trong cả hai quan hệ.

Hoạt động Phân khu giả định rằng có hai quan hệ: một là quan hệ nhị phân (chứa hai thuộc tính), quan hệ kia là quan hệ đơn nhất (chứa một thuộc tính). Kết quả là một mối quan hệ bao gồm các bộ dữ liệu bao gồm các giá trị của thuộc tính đầu tiên của các bộ dữ liệu của mối quan hệ thứ nhất, nhưng chỉ những bộ giá trị mà tập hợp các giá trị của thuộc tính thứ hai của mối quan hệ thứ nhất trùng với tập hợp các giá trị của các thuộc tính của quan hệ thứ hai.

Một đặc điểm khác biệt của các hoạt động xử lý quan hệ là đơn vị xử lý trong chúng không phải là các bộ dữ liệu mà là các quan hệ: một hoặc hai quan hệ được sử dụng làm đầu vào của mỗi thao tác và kết quả của các hoạt động là một quan hệ mới.

Chúng ta hãy xem xét một số phép toán được sử dụng phổ biến nhất của đại số quan hệ một cách chi tiết hơn.

Hoạt động Một hiệp hội- đầu vào được đưa ra hai quan hệ tương thích có cùng chiều: A và B. Kết quả là một quan hệ có cùng cấu trúc, chứa tất cả các bộ A và tất cả các bộ B

Ngã tư giả định sự hiện diện ở đầu vào của hai quan hệ có cùng chiều: A và B. Ở đầu ra, một quan hệ có cùng cấu trúc được tạo ra, chỉ chứa các bộ dữ liệu A nằm trong B.

Phân công.Ở đầu vào của phép toán, hai quan hệ được sử dụng: A và B. Cho quan hệ A, được gọi là chia hết, chứa các thuộc tính (A 1, A 2, A 3,..., A n). Quan hệ B là ước số và chứa tập con các thuộc tính A: (A 1, A 2, ..., A k), trong đó k

Nói chung, các hoạt động của mô hình dữ liệu quan hệ cung cấp khả năng thao tác các mối quan hệ, cho phép bạn cập nhật cơ sở dữ liệu, cũng như chọn các tập hợp con dữ liệu được lưu trữ và trình bày chúng ở dạng mong muốn.

Khi thiết kế và làm việc với cơ sở dữ liệu, tám thao tác này thường không đủ. Do đó, các thao tác như đổi tên thuộc tính, tạo thuộc tính tính toán mới, thao tác gán, so sánh, v.v. đều được thêm vào.

Sửa đổi dị thường

Sửa đổi dị thường biểu hiện ở chỗ sự thay đổi giá trị của một dữ liệu có thể đòi hỏi phải quét toàn bộ bảng và thay đổi tương ứng trong một số bản ghi bảng khác.

Xóa bất thườngđó là khi bạn xóa bất kỳ dữ liệu nào khỏi bảng, những thông tin khác không liên quan trực tiếp đến dữ liệu đã xóa cũng có thể biến mất.

Sự bổ sung bất thường phát sinh trong trường hợp thông tin không thể đặt vào bảng cho đến khi chưa đầy đủ hoặc việc chèn bản ghi mới yêu cầu phải quét thêm bảng

Giả sử có một mối quan hệ lưu trữ thông tin về sinh viên, các khóa học họ tham gia và chi phí của các khóa học này. Từ mối quan hệ này, một bộ dữ liệu được loại bỏ có chứa thông tin (ngoài thông tin về sinh viên) về tên và chi phí của khóa học mà sinh viên này đã tham dự. Nếu thông tin về tên và chi phí của khóa học chỉ được lưu trữ trong một bản sao duy nhất trong bộ dữ liệu này thì nó sẽ biến mất khỏi mối quan hệ. Tình trạng này được gọi là xóa bất thường. Việc thực hiện thao tác xóa sẽ làm mất thông tin về hai thực thể.

Mối quan hệ tương tự này có thể được minh họa bằng một ví dụ chèn bất thường. Giả sử chúng ta cần thêm thông tin về tên và chi phí của một khóa học nhất định, nhưng chúng ta sẽ không thể thêm thông tin này cho đến khi không có sinh viên nào đăng ký khóa học. Bạn có thể loại bỏ cả hai điểm bất thường bằng cách chia mối quan hệ hiện có thành hai, mỗi mối quan hệ sẽ chỉ chứa dữ liệu từ một thực thể. Khi đó việc xóa thông tin sinh viên sẽ không ảnh hưởng tới dữ liệu khóa học.

Khi chia một mối quan hệ thành hai, các vấn đề cũng nảy sinh. Ví dụ, có thể ghi danh một sinh viên vào một khóa học chưa tồn tại không? Những vấn đề này phải được giải quyết bằng cách thảo luận về các quy tắc kinh doanh. Nếu các quy tắc kinh doanh yêu cầu khóa học đó và thông tin chi phí phải có sẵn khi sinh viên đăng ký vào khóa học đó thì việc kiểm tra sẽ được thực hiện để đảm bảo rằng khóa học bắt buộc tồn tại khi sinh viên đăng ký khóa học đó. Những loại kiểm tra này được gọi là ràng buộc toàn vẹn tham chiếu hoặc ràng buộc toàn vẹn khóa ngoại.

Tính toàn vẹn của các thực thể - không có giá trị khóa chính nào phải chứa null.

Các giai đoạn thiết kế:

Khái niệm thiết kế - quá trình phát triển cơ sở dữ liệu bắt đầu bằng việc phân tích yêu cầu. Nhà thiết kế ở giai đoạn phát triển này phải tìm câu trả lời cho các câu hỏi sau: phần tử dữ liệu nào sẽ được lưu trữ, ai sẽ truy cập chúng và bằng cách nào. Một mô hình tiếng Tây Ban Nha được tạo ra. Thông tin không phụ thuộc vào khía cạnh vật lý, cơ sở dữ liệu đích và ngôn ngữ lập trình

Boolean - cấu trúc logic của cơ sở dữ liệu được tạo ra. Để làm điều này, hãy xác định cách dữ liệu sẽ được nhóm một cách hợp lý. Cấu trúc của cơ sở dữ liệu ở giai đoạn này được thể hiện dưới dạng các đối tượng ứng dụng và mối quan hệ giữa chúng. Phụ thuộc vào DBMS mục tiêu, kiểm tra dự phòng, chuẩn hóa.

Thuộc vật chất - Cấu trúc logic của cơ sở dữ liệu được chuyển đổi thành cấu trúc vật lý có tính đến các khía cạnh hiệu suất. Các phần tử dữ liệu ở giai đoạn này nhận các thuộc tính và được xác định dưới dạng các cột trong các bảng của DBMS được chọn để triển khai cơ sở dữ liệu. Các mối quan hệ tổ chức tệp và chỉ mục cơ bản, các ràng buộc toàn vẹn và các biện pháp bảo mật.

Chỉ trong trường hợp - giao dịch- hậu quả không thể phân chia của các hoạt động chuyển cơ sở dữ liệu từ trạng thái ổn định này sang trạng thái ổn định khác. Thuộc tính - tính nguyên tử (không thể phân chia), tính nhất quán (từ trạng thái này sang trạng thái khác), sự cô lập (giao dịch của người dùng không can thiệp lẫn nhau), độ bền (kết quả phải được ghi lại trong cơ sở dữ liệu sau khi phát hành, ngay cả khi nó bị lỗi ở thời điểm tiếp theo ).

Phương pháp quan hệ thực thể.

Phương pháp mô hình hóa mối quan hệ thực thểđưa ra một mô hình trừu tượng của miền vấn đề bằng cách sử dụng các khái niệm cơ bản sau: nước hoa(thực thể), các mối quan hệ(mối quan hệ) giữa các thực thể và thuộc tính(thuộc tính) để biểu diễn thuộc tính của các thực thể và các mối quan hệ.

Bất kỳ phần nào của lĩnh vực chủ đề có thể được biểu diễn dưới dạng tập hợp các thực thể, giữa đó có một số nhiều kết nối. Hãy đưa ra định nghĩa:

Nước hoa là một đối tượng có thể được xác định theo một cách nào đó để phân biệt nó với các đối tượng khác. Ví dụ: một người cụ thể, doanh nghiệp, sự kiện, vv.

Tập thực thể- một tập hợp các thực thể cùng loại (có cùng thuộc tính). Ví dụ: tất cả mọi người, doanh nghiệp, ngày lễ, v.v. Các tập thực thể không nhất thiết phải rời rạc. Ví dụ, một thực thể thuộc tập MAN cũng thuộc tập PEOPLE.

Một thực thể thực sự là một tập hợp thuộc tính, mô tả các thuộc tính của tất cả các thành viên của một tập thực thể nhất định. Lãnh địađã cao hơn rồi.

Khóa thực thể- là một hoặc nhiều thuộc tính xác định duy nhất một thực thể nhất định.

Sự liên quan là một liên kết được thành lập giữa một số thực thể. Ví dụ:

  • vì mỗi nhân viên làm việc trong một số bộ phận, nên có mối quan hệ “làm việc tại” hoặc BỘ PHẬN-NHÂN VIÊN giữa các thực thể NHÂN VIÊN và BỘ PHẬN;

Thật không may, không có quy tắc chung nào để xác định đâu là thực thể và đâu là mối quan hệ. Trong ví dụ được thảo luận ở trên, chúng tôi giả định rằng “dẫn đầu” là một sự kết nối. Tuy nhiên, chúng ta có thể xem xét thực thể “người quản lý”, có kết nối “quản lý” với thực thể “bộ phận” và “là” với thực thể “nhân viên”.

Một mối quan hệ cũng có thể có các thuộc tính. Ví dụ: đối với mối quan hệ BỘ PHẬN-NHÂN VIÊN, bạn có thể đặt thuộc tính WORK_TERRENCE_IN_DEPARTMENT.

Vai trò của thực thể trong mối quan hệ- chức năng mà một thực thể thực hiện trong một kết nối nhất định. Ví dụ: trong mối quan hệ PARENT-CON, các thực thể PERSON có thể có vai trò "cha mẹ" và "con". Việc chỉ định vai trò trong mô hình mối quan hệ thực thể là tùy chọn và dùng để làm rõ ngữ nghĩa của mối quan hệ.

Bộ kết nối- đây là mối quan hệ giữa N(Và N không ít hơn 2) thực thể, mỗi thực thể thuộc về một tập hợp thực thể nhất định.

Mặc dù, nói đúng ra, các khái niệm về “kết nối” và “tập hợp các kết nối” là khác nhau (cái đầu tiên là một phần tử của cái thứ hai), tuy nhiên chúng rất thường bị nhầm lẫn.

Khi n=2, I E. khi một mối quan hệ kết hợp hai thực thể, nó được gọi là nhị phân. Nó đã được chứng minh rằng N-ary tập hợp các kết nối ( n>2) luôn có thể được thay thế bằng nhiều hệ nhị phân, nhưng hệ nhị phân phản ánh tốt hơn ngữ nghĩa của lĩnh vực chủ đề.

Số lượng thực thể có thể được liên kết thông qua một tập hợp các kết nối với thực thể khác được gọi là mức độ kết nối. Việc xem xét độ đặc biệt hữu ích cho các mối quan hệ nhị phân. Các mức độ liên kết nhị phân sau đây có thể tồn tại:

  • một đối một (ký hiệu là 1: 1 ). Điều này có nghĩa là trong mối quan hệ như vậy, các thực thể có một vai trò luôn tương ứng với nhiều nhất một thực thể có vai trò khác.

Một đặc tính quan trọng khác của kết nối bên cạnh mức độ của nó là lớp thành viên các thực thể bao gồm trong đó hoặc tính chính yếu thông tin liên lạc.

“NHÂN VIÊN” có lớp thành viên bắt buộc(thực tế này cũng được biểu thị bằng cách chỉ ra khoảng số lần xuất hiện có thể có của thực thể trong một mối quan hệ, trong trường hợp này là 1,1) và thực thể "SỞ" có lớp thành viên tùy chọn(0,1). Bây giờ chúng ta có thể mô tả mối quan hệ này như 0,1:1,1 .

  • một đến nhiều ( 1:n). Trong trường hợp này, một thực thể có một vai trò có thể tương ứng với bất kỳ số lượng thực thể nào có vai trò khác.

Hình này minh họa thêm thực tế là có thể xác định nhiều tập hợp mối quan hệ giữa hai thực thể.

  • nhiều thành một ( n: 1). Mối quan hệ này tương tự như ánh xạ 1:n.

Trong trường hợp này, vì những lý do hoàn toàn rõ ràng (mỗi hợp đồng được ký kết với một khách hàng cụ thể và mỗi khách hàng có ít nhất một hợp đồng, nếu không thì sẽ không như vậy), mỗi thực thể có một hạng thành viên bắt buộc.

  • nhiều nhiều ( n: n). Trong trường hợp này, mỗi thực thể liên kết có thể được biểu diễn bằng số lượng thể hiện bất kỳ.

Nếu sự tồn tại của thực thể x phụ thuộc vào sự tồn tại của thực thể y thì x được gọi là đơn vị phụ thuộc(đôi khi thực thể x được gọi là "yếu" và "thực thể" y được gọi là mạnh). Ví dụ: hãy xem xét mối quan hệ giữa các thực thể được mô tả trước đó WORKING_GROUP và CONTRACT. Nhóm làm việc chỉ được thành lập sau khi hợp đồng được ký với khách hàng và không còn tồn tại sau khi hoàn thành hợp đồng. Khi đó WORKING_GROUP phụ thuộc vào thực thể CONTRACT. Chúng ta sẽ biểu thị một thực thể phụ thuộc bằng một hình chữ nhật kép và kết nối của nó với một thực thể mạnh bằng một đường có mũi tên ( chúng tôi đã có một hình bầu dục cho người phụ thuộc)

Số lượng của kết nối đối với một thực thể mạnh sẽ luôn là (1,1). Loại thành viên và mức độ quan hệ của một thực thể phụ thuộc có thể là bất cứ thứ gì.

12. Mô hình dữ liệu mạng và phân cấp.

Mô hình phân cấp là tập hợp các phần tử được sắp xếp theo thứ tự phụ thuộc từ tổng quát đến cụ thể và tạo thành một cây (đồ thị) đảo ngược về cấu trúc.

Các khái niệm cơ bản của cấu trúc phân cấp bao gồm cấp độ, nút và mối quan hệ. Nút thắt là tập hợp các thuộc tính dữ liệu mô tả một đối tượng. Trong sơ đồ cây phân cấp, các nút được biểu diễn dưới dạng các đỉnh trong biểu đồ. Mỗi nút ở cấp độ thấp hơn chỉ được kết nối với một nút ở cấp độ cao hơn. Cây phân cấp chỉ có một đỉnh, không phụ thuộc vào bất kỳ đỉnh nào khác và nằm ở cấp cao nhất - cấp độ đầu tiên. Các nút phụ thuộc (nô lệ) ở cấp độ thứ hai, thứ ba, v.v. Số lượng cây trong cơ sở dữ liệu được xác định bởi số lượng bản ghi gốc. Đối với mỗi bản ghi cơ sở dữ liệu, chỉ có một đường dẫn phân cấp từ bản ghi gốc.

Việc tổ chức dữ liệu trong DBMS kiểu phân cấp được xác định theo các khía cạnh: phần tử, tập hợp, bản ghi (nhóm), quan hệ nhóm, cơ sở dữ liệu.

  • Thuộc tính (phần tử dữ liệu)- đơn vị nhỏ nhất của cấu trúc dữ liệu. Thông thường, mỗi phần tử trong mô tả cơ sở dữ liệu được đặt một tên duy nhất. Nó được gọi bằng tên này trong quá trình xử lý. Một phần tử dữ liệu cũng thường được gọi là một trường.
  • Ghi- một tập hợp các thuộc tính được đặt tên. Việc sử dụng các bản ghi cho phép bạn có được một số bộ dữ liệu được kết nối hợp lý trong một lần truy cập vào cơ sở dữ liệu. Đó là các bản ghi được thay đổi, thêm và xóa. Loại bản ghi được xác định bởi thành phần các thuộc tính của nó. Bản ghi bản ghi - một bản ghi cụ thể có giá trị phần tử cụ thể
  • Thái độ nhóm- mối quan hệ phân cấp giữa các hồ sơ của hai loại. Bản ghi cha (chủ sở hữu của mối quan hệ nhóm) được gọi là bản ghi nguồn và bản ghi con (các thành viên của mối quan hệ nhóm) được gọi là bản ghi cấp dưới. Cơ sở dữ liệu phân cấp chỉ có thể lưu trữ các cấu trúc cây như vậy.

Bản ghi gốc của mỗi cây phải chứa một khóa có giá trị duy nhất. Khóa của bản ghi không phải gốc phải có giá trị duy nhất trong mối quan hệ nhóm. Mỗi bản ghi được xác định bằng một khóa nối hoàn chỉnh, là tập hợp các khóa của tất cả các bản ghi từ gốc dọc theo đường dẫn phân cấp.

Khi được mô tả bằng đồ họa, các mối quan hệ nhóm được biểu thị bằng các cung của đồ thị có hướng và các loại bản ghi được biểu thị bằng các đỉnh.

Đối với các mối quan hệ nhóm trong mô hình phân cấp, chế độ bao gồm tự động và tư cách thành viên cố định được cung cấp. Điều này có nghĩa là để bất kỳ bản ghi không phải gốc nào được ghi nhớ trong cơ sở dữ liệu thì bản ghi gốc của nó phải tồn tại. Khi bản ghi gốc bị xóa, tất cả các bản ghi cấp dưới sẽ tự động bị xóa.

Ví dụ: Một doanh nghiệp bao gồm các phòng ban nơi nhân viên làm việc. Mỗi phòng ban có thể có nhiều nhân viên nhưng một nhân viên không thể làm việc ở nhiều phòng ban.

Vì vậy, đối với hệ thống thông tin quản lý nhân sự cần tạo mối quan hệ nhóm gồm Hồ sơ gốc PHÒNG (TÊN PHÒNG, SỐ NHÂN VIÊN) và hồ sơ con NHÂN VIÊN (HỌ, CHỨC VỤ, LƯƠNG). (Để đơn giản, chúng ta giả sử rằng chỉ có hai bản ghi con.) - cơm a (thêm)

Để tự động hóa việc hạch toán hợp đồng với khách hàng, cần tạo một cơ cấu phân cấp khác: khách hàng - hợp đồng với mình - nhân viên tham gia thực hiện hợp đồng. Cây này sẽ bao gồm các bản ghi KHÁCH HÀNG(CUSTOMER_NAME, ĐỊA CHỈ), HỢP ĐỒNG(SỐ, NGÀY, SỐ TIỀN), NHÀ THẦU (HỌ, VỊ TRÍ, DEPARTMENT_NAME) - fig. b.

sai sót cơ sở dữ liệu phân cấp:

  • Thông tin giữa các bản ghi bị trùng lặp một phần (các bản ghi như vậy được gọi là ghép nối) và mô hình dữ liệu phân cấp không cung cấp hỗ trợ cho sự tương ứng giữa các bản ghi được ghép nối.
  • Mô hình phân cấp thực hiện mối quan hệ giữa bản ghi nguồn và bản ghi con theo sơ đồ 1:N, nghĩa là một bản ghi cha có thể tương ứng với bất kỳ số lượng bản ghi con nào. Bây giờ chúng ta giả sử rằng người biểu diễn có thể tham gia vào nhiều hơn một hợp đồng (tức là phát sinh mối quan hệ kiểu M:N). Trong trường hợp này, cần phải nhập một mối quan hệ nhóm khác vào cơ sở dữ liệu, trong đó CONTRACTOR sẽ là bản ghi gốc và CONTRACT sẽ là bản ghi con, do đó chúng ta lại buộc phải sao chép thông tin.(Hình C)
  • các kết nối logic khá phức tạp và sự cồng kềnh tương ứng trong việc xử lý dữ liệu

Thuận lợi:

Đơn giản nhất là sử dụng bộ nhớ khá hiệu quả và hiệu suất thời gian tốt để thực hiện các thao tác trên dữ liệu. Tuy nhiên, mô hình này thuận tiện chủ yếu khi làm việc với thông tin được tổ chức theo thứ bậc.

Các thao tác trên dữ liệu được xác định trong mô hình phân cấp:

  • THÊM VÀO một mục mới vào cơ sở dữ liệu. Đối với bản ghi gốc, cần tạo một giá trị khóa.
  • THAY ĐỔI giá trị dữ liệu của bản ghi được truy xuất trước đó. Dữ liệu chính không nên thay đổi.
  • XÓA BỎ một số bản ghi và tất cả các bản ghi phụ thuộc vào nó.
  • TRÍCH XUẤT:
    • trích xuất bản ghi gốc theo giá trị khóa; cũng cho phép xem tuần tự các bản ghi gốc
    • truy xuất bản ghi tiếp theo (bản ghi tiếp theo được truy xuất theo thứ tự truyền tải bên trái)

Trong thao tác EXTRACT, có thể chỉ định các điều kiện lựa chọn.

Tất cả các thao tác sửa đổi chỉ được áp dụng cho một bản ghi “hiện tại” (trước đó đã được truy xuất từ ​​cơ sở dữ liệu). Cách tiếp cận thao tác dữ liệu này được gọi là "điều hướng".

Ràng buộc hoàn toàn.

Chỉ duy trì tính toàn vẹn của mối quan hệ giữa chủ sở hữu và các thành viên trong mối quan hệ nhóm (không có hậu duệ nào có thể tồn tại nếu không có tổ tiên). Sự tương ứng của các bản ghi được ghép nối thuộc các hệ thống phân cấp khác nhau không được duy trì tự động.

Các hệ thống quản lý cơ sở dữ liệu đầu tiên xuất hiện vào giữa những năm 60 đã giúp nó có thể hoạt động với cơ sở dữ liệu phân cấp. Nổi tiếng nhất là hệ thống IMS phân cấp của IBM. Các hệ thống khác cũng được biết đến: PC/Focus, Team-Up, Data Edge và của chúng tôi: Oka, INES, MIRIS.

Mô hình dữ liệu mạng

Mô hình mạng- một cấu trúc trong đó bất kỳ phần tử nào cũng có thể được liên kết với bất kỳ phần tử nào khác. Cơ sở dữ liệu mạng bao gồm các bộ bản ghi có liên quan với nhau sao cho các bản ghi có thể chứa các liên kết rõ ràng đến các bộ bản ghi khác. Do đó, các bộ hồ sơ tạo thành một mạng lưới. Mối quan hệ giữa các bản ghi có thể tùy ý và những mối quan hệ này hiện diện rõ ràng và được lưu trữ trong cơ sở dữ liệu.

Mô hình dữ liệu mạng được định nghĩa theo các thuật ngữ giống như mô hình phân cấp. Nó bao gồm nhiều bản ghi có thể là chủ sở hữu hoặc thành viên của một mối quan hệ nhóm. Mối quan hệ giữa bản ghi chủ sở hữu và bản ghi thành viên cũng có dạng 1:N.

Sự khác biệt chính giữa các mô hình này là trong mô hình mạng, một bản ghi có thể là thành viên nhiều hơn một mối quan hệ nhóm. Theo mô hình này, mỗi quan hệ nhóm được đặt tên và có sự phân biệt giữa kiểu và thể hiện của nó. Một kiểu quan hệ nhóm được xác định bằng tên của nó và xác định các thuộc tính chung cho tất cả các thể hiện của kiểu này. Một thể hiện mối quan hệ nhóm được thể hiện bằng một bản ghi chủ sở hữu và một tập hợp các bản ghi cấp dưới (có thể trống). Tuy nhiên, có hạn chế sau: một thể hiện bản ghi không thể là thành viên của hai thể hiện của các mối quan hệ nhóm cùng loại (một nhân viên không thể làm việc ở hai phòng ban)

Cấu trúc phân cấp từ hình trên. được chuyển đổi sang mạng như sau

Cây (a) và (b) được thay thế bằng một cấu trúc mạng duy nhất trong đó mục NHÂN VIÊN được bao gồm trong hai mối quan hệ nhóm; để hiển thị loại M:N, hãy nhập bản ghi EMPLOYEE_CONTRACT, không có trường nào và chỉ dùng để liên kết các bản ghi HỢP ĐỒNG và NHÂN VIÊN

Mỗi thể hiện của mối quan hệ nhóm được đặc trưng bởi các đặc điểm sau:

  • cách tổ chức hồ sơ cấp dưới:

Bất kỳ,

theo trình tự thời gian /queue/,

đảo ngược trình tự thời gian /stack/,

thập cẩm.

Nếu một bản ghi được khai báo là phụ thuộc vào một số mối quan hệ nhóm thì mỗi mối quan hệ trong số chúng có thể được chỉ định phương thức sắp xếp riêng.

  • chế độ cho phép các bản ghi cấp dưới:

tự động - không thể nhập một bản ghi vào cơ sở dữ liệu mà không được gán ngay cho một chủ sở hữu nhất định;

thủ công - cho phép bạn ghi nhớ một bản ghi cấp dưới trong cơ sở dữ liệu và không đưa nó ngay vào trường hợp của mối quan hệ nhóm. Thao tác này sau đó được người dùng thực hiện).

  • chế độ loại trừ Người ta thường phân biệt ba loại thành viên của hồ sơ cấp dưới trong quan hệ nhóm:

Đã sửa. Một bản ghi phụ được liên kết chặt chẽ với một bản ghi chủ sở hữu và chỉ có thể bị xóa khỏi mối quan hệ nhóm bằng cách xóa nó. Khi bạn xóa bản ghi chủ sở hữu, tất cả các bản ghi cấp dưới sẽ tự động bị xóa. Trong ví dụ này, tư cách thành viên cố định giả định mối quan hệ nhóm "KẾT THÚC" giữa các bản ghi "HỢP ĐỒNG" và "KHÁCH HÀNG" vì hợp đồng không thể tồn tại nếu không có khách hàng.

Bắt buộc. Có thể chuyển một bản ghi cấp dưới sang một chủ sở hữu khác, nhưng nó không thể tồn tại nếu không có chủ sở hữu. Để xóa bản ghi chủ sở hữu, nó phải không có bản ghi cấp dưới nào có tư cách thành viên bắt buộc. Các bản ghi “NHÂN VIÊN” và “BỘ PHẬN” được kết nối bởi mối quan hệ này. Nếu một bộ phận bị giải tán, tất cả nhân viên của bộ phận đó phải được chuyển sang bộ phận khác hoặc bị sa thải.

Không bắt buộc. Bạn có thể loại trừ một bản ghi khỏi mối quan hệ nhóm nhưng vẫn giữ nó trong cơ sở dữ liệu mà không gán nó cho chủ sở hữu khác. Khi một bản ghi chủ sở hữu bị xóa, các bản ghi cấp dưới của nó - các thành viên tùy chọn - sẽ được giữ lại trong cơ sở dữ liệu, không còn tham gia vào mối quan hệ nhóm kiểu này nữa. Một ví dụ về mối quan hệ nhóm như vậy là “THỰC HIỆN” giữa “NHÂN VIÊN” và “HỢP ĐỒNG”, vì tổ chức có thể có những nhân viên có hoạt động không liên quan đến việc thực hiện bất kỳ nghĩa vụ hợp đồng nào với khách hàng.

Các thao tác trên dữ liệu.

THÊM VÀO- tạo một bản ghi trong cơ sở dữ liệu và tùy thuộc vào chế độ bao gồm, đưa nó vào mối quan hệ nhóm, nơi nó được khai báo phụ thuộc hoặc không đưa nó vào bất kỳ mối quan hệ nhóm nào.

THAM GIA VÀO MỐI QUAN HỆ NHÓM- liên kết một bản ghi phụ hiện có với bản ghi chủ sở hữu.

CÔNG TẮC- liên kết một bản ghi phụ hiện có với một bản ghi chủ sở hữu khác trong cùng mối quan hệ nhóm.

CẬP NHẬT- thay đổi giá trị của các phần tử của bản ghi được trích xuất trước đó.

TRÍCH XUẤT- trích xuất các bản ghi một cách tuần tự theo giá trị khóa, cũng như sử dụng các mối quan hệ nhóm - bạn có thể chuyển từ chủ sở hữu sang bản ghi thành viên và từ bản ghi phụ đến chủ sở hữu của tập hợp.

XÓA BỎ- xóa một bản ghi khỏi cơ sở dữ liệu. Nếu bản ghi này là chủ sở hữu của một mối quan hệ nhóm thì lớp thành viên của các bản ghi cấp dưới sẽ được phân tích. Các thành viên bắt buộc trước tiên phải bị loại khỏi mối quan hệ nhóm, các thành viên cố định phải bị xóa cùng với chủ sở hữu, các thành viên tùy chọn sẽ vẫn còn trong cơ sở dữ liệu.
LOẠI TRỪ MỐI QUAN HỆ NHÓM- phá vỡ kết nối giữa hồ sơ chủ sở hữu và hồ sơ thành viên.

Ràng buộc hoàn toàn.

Như trong mô hình phân cấp, chỉ đảm bảo duy trì tính toàn vẹn tham chiếu (chủ sở hữu của mối quan hệ là thành viên của mối quan hệ).

Khái niệm cơ bản phẩm giá mô hình mạng có hiệu quả sử dụng bộ nhớ cao và hiệu quả. lỗ hổng– sự phức tạp và cứng nhắc của sơ đồ cơ sở, cũng như sự khó hiểu. Ngoài ra, kiểm soát tính toàn vẹn bị suy yếu trong mô hình này vì nó cho phép thiết lập các kết nối tùy ý giữa các bản ghi. Sự phức tạp của việc triển khai DBMS, sự phức tạp của cơ chế truy cập dữ liệu và nhu cầu xác định rõ ràng các kết nối dữ liệu ở cấp độ vật lý

Đến các hệ thống quản lý cơ sở dữ liệu mạng nổi tiếng bao gồm: DBMS, IDMS, TOTAL, VISTA, NETWORK, SETOR, COMPASS, v.v.

So sánh cơ sở dữ liệu mạng và phân cấp, chúng ta có thể nói như sau. Nhìn chung, các mô hình mạng và phân cấp cung cấp khả năng truy cập dữ liệu khá nhanh. Nhưng vì trong cơ sở dữ liệu mạng, cấu trúc chính của việc trình bày thông tin có dạng mạng trong đó mỗi đỉnh (nút) có thể có kết nối với bất kỳ đỉnh nào khác, nên dữ liệu trong cơ sở dữ liệu mạng bình đẳng hơn so với dữ liệu phân cấp, vì quyền truy cập thông tin có thể được thực hiện bắt đầu từ bất kỳ nút nào.

Các mô hình đồ thị (phân cấp và mạng) được triển khai dưới dạng mô hình dữ liệu trong các hệ thống quản lý cơ sở dữ liệu chạy trên máy tính lớn. Đối với máy tính cá nhân, cơ sở dữ liệu quan hệ phổ biến hơn, mặc dù cũng có những hệ thống quản lý cơ sở dữ liệu hỗ trợ mô hình mạng.

^

Bài giảng số 4. Đại số quan hệ. Hoạt động đơn nhất

đại số quan hệ, như bạn có thể đoán, đây là một loại đại số đặc biệt trong đó tất cả các phép toán được thực hiện trên các mô hình dữ liệu quan hệ, tức là trên các mối quan hệ.

Trong thuật ngữ dạng bảng, mối quan hệ bao gồm hàng, cột và hàng—tiêu đề cột. Do đó, các phép toán đơn nhất tự nhiên là các thao tác chọn hàng hoặc cột nhất định, cũng như thay đổi tiêu đề cột - đổi tên thuộc tính.

^

1. Hoạt động tìm nạp đơn nhất

Toán tử một ngôi đầu tiên chúng ta sẽ xem xét là thao tác tìm nạp– hoạt động chọn các hàng từ một bảng thể hiện mối quan hệ theo đó

hoặc nguyên tắc, tức là lựa chọn các hàng

các bộ thỏa mãn một hoặc nhiều điều kiện nhất định.

^ Toán tử lấy mẫu đóng góp bởi σ <P >, điều kiện lấy mẫuP <S>, tức là toán tử σ luôn được thực hiện bởi một điều kiện nhất định trên bộ dữ liệu P, và bản thân điều kiện Pđược viết tùy thuộc vào sơ đồ quan hệ S. Bản thân tôi đã xem xét tất cả những điều này thao tác tìm nạp trên sơ đồ quan hệ S trong mối quan hệ r

σ <P >r (S) σ <P >r = {t (S) |tr & P <S >t } = {t (S) |tr & Nếu không (P <S >t , SAI };

Kết quả của thao tác này sẽ là một quan hệ mới có cùng lược đồ quan hệ S, bao gồm các bộ dữ liệu đó t (S) quan hệ ban đầu

toán hạng thỏa mãn điều kiện lấy mẫu P t. Rõ ràng là để áp dụng những gì

thì điều kiện cho bộ dữ liệu là thay thế các giá trị thuộc tính của bộ dữ liệu thay vì tên thuộc tính.

Để hiểu rõ hơn nguyên lý hoạt động này, hãy đưa ra một ví dụ. Cho sơ đồ quan hệ sau:

^S: Session (số sổ lớp, Họ, Môn học, Lớp).

Hãy lấy điều kiện lấy mẫu sau:

P <S> = (Chủ đề = ‘Khoa học máy tính’ và Lớp > 3).

Chúng ta cần từ mối quan hệ ban đầu

toán hạng, chọn những bộ dữ liệu chứa thông tin về những học sinh đã đỗ môn “Tin học” với ít nhất ba điểm.

Hãy cũng cho bộ dữ liệu sau từ mối quan hệ này:

t 0 (S) ∈ r (S

Áp dụng điều kiện lựa chọn của chúng tôi cho bộ dữ liệu t 0 , chúng tôi nhận được:

P t 0 = ('Cơ sở dữ liệu' = 'Khoa học máy tính' và 5 > 3);

Trên bộ dữ liệu cụ thể này, điều kiện lựa chọn không được thỏa mãn.

Nhìn chung, kết quả của mẫu cụ thể này

σ <Предмет = "Информатика" and Оценка >3 > Phiên

sẽ có một bảng “Phiên” trong đó các hàng thỏa mãn điều kiện lựa chọn còn lại.

^

2. Phép chiếu một ngôi

Một phép toán một ngôi tiêu chuẩn khác mà chúng ta sẽ nghiên cứu là phép chiếu. Thao tác chiếu là hoạt động chọn các cột từ một bảng thể hiện mối quan hệ theo đó

hoặc ký tên. Cụ thể, máy chọn các thuộc tính đó (nghĩa là các cột đó) của mối quan hệ ban đầu

các toán hạng đã được chỉ định trong phép chiếu.

^ Toán tử chiếu đóng góp bởi [ S"] hoặc π . Đây S"– mạch con của lược đồ quan hệ ban đầu S, tức là một số cột của nó. Điều đó có nghĩa là gì? Điều này có nghĩa là S’ có ít thuộc tính hơn S, bởi vì trong S" Chỉ những cái mà điều kiện chiếu được thỏa mãn vẫn còn. Và trong bảng biểu diễn mối quan hệ r (S"), có bao nhiêu hàng như trong bảng r (S) và có ít cột hơn vì chỉ còn lại những cột tương ứng với các thuộc tính còn lại. Vì vậy toán tử chiếu π< S"> liên quan đến r (S) dẫn đến một mối quan hệ mới với một lược đồ quan hệ khác r (S"), bao gồm các hình chiếu t (S) [S"] các bộ của quan hệ ban đầu. Những phép chiếu tuple này được xác định như thế nào? Chiếu bất kỳ bộ dữ liệu nào t (S) quan hệ ban đầu r (S) trên mỗi mạch con S"được xác định bởi công thức sau:

t (S) [S' ] = {t (Một)|Mộtchắc chắn (t) ∩ S ’}, S " ⊆S .

Điều quan trọng cần lưu ý là các bộ dữ liệu trùng lặp sẽ bị loại khỏi kết quả, tức là sẽ không có hàng trùng lặp trong bảng biểu thị mối quan hệ kết quả mới.

Có tính đến tất cả những điều trên, hoạt động chiếu trong hệ thống quản lý cơ sở dữ liệu sẽ như thế này:

π <S" >r (S) ≡ π <S' >rr (S) [S ’] ≡ r [S" ] = {t (S) [S' ] | tr };

Hãy xem xét một ví dụ minh họa nguyên tắc của hoạt động lấy mẫu.

Cho mối quan hệ “Phiên” và lược đồ của mối quan hệ này:

S: Buổi học (số sổ điểm, Họ, Môn học, Lớp);

Chúng ta sẽ chỉ quan tâm đến hai thuộc tính từ sơ đồ này, đó là “số sổ lớp” và “Họ” của học sinh, vì vậy lược đồ con S" sẽ trông như thế này:

^S": (số sổ lớp, họ).

Cần có thái độ ban đầu r (S) chiếu lên mạch con S" .

t 0 (S) ∈ r (S): ((số sổ điểm: 100), (Họ: 'Ivanov'), (Chủ đề: 'Cơ sở dữ liệu'), (Điểm: 5));

Điều này có nghĩa là phép chiếu của bộ dữ liệu này lên mạch con này ^S" sẽ trông như thế này:

t 0 (S) S": ((số sổ điểm: 100), (Họ: ‘Ivanov’));

Nếu nói về thao tác chiếu dưới dạng bảng thì Phép chiếu Phiên [Số sổ điểm, Họ] của quan hệ ban đầu là Bảng Phiên, trong đó tất cả các cột đã bị xóa ngoại trừ hai cột: Số sổ điểm và Họ. Ngoài ra, tất cả các dòng trùng lặp cũng đã bị loại bỏ.

^

3. Thao tác đổi tên đơn nhất

Toán tử một ngôi cuối cùng chúng ta sẽ xem xét là thao tác đổi tên thuộc tính. Nếu chúng ta nói về một mối quan hệ như một bảng, thì thao tác đổi tên là cần thiết để thay đổi tên của tất cả hoặc một số cột.

^ Đổi tên toán tử như sau: ρ<φ >, ở đây φ – chức năng đổi tên .

Hàm này thiết lập lẫn nhau

sự tương ứng một-một giữa các tên thuộc tính lược đồ SŜ, tương ứng ở đâu S – lược đồ của quan hệ ban đầu, và Ŝ sơ đồ mối quan hệ với các thuộc tính được đổi tên. Vì vậy người vận hành ρ <φ> liên quan đến r (S) đưa ra một mối quan hệ mới với lược đồ Ŝ , bao gồm các bộ của quan hệ ban đầu chỉ có các thuộc tính được đổi tên.

Hãy viết thao tác đổi tên thuộc tính trong hệ quản trị cơ sở dữ liệu:

ρ <φ > r (S) ≡ ρ <φ >r = {ρ <φ > t (S)| tr };

Dưới đây là một ví dụ về việc sử dụng thao tác này:

Hãy xem xét mối quan hệ Session vốn đã quen thuộc với sơ đồ:

S: Buổi học (số sổ điểm, Họ, Môn học, Lớp);

Hãy giới thiệu một lược đồ quan hệ mới Ŝ, với các tên thuộc tính khác mà chúng ta muốn thấy thay vì các tên hiện có:

Ŝ : (Số ZK, Họ, Chủ đề, Điểm);

Ví dụ: khách hàng cơ sở dữ liệu muốn xem các tên khác trong mối quan hệ tạo sẵn của bạn. Để thực hiện thứ tự này các bạn cần thiết kế hàm đổi tên như sau:

φ : (số sổ lớp, họ, môn học, lớp) → (sổ lớp, họ, môn học, điểm);

Trên thực tế, chỉ có hai thuộc tính cần được đổi tên, do đó, việc viết hàm đổi tên sau đây thay vì thuộc tính hiện có là hợp pháp:

φ : (số sổ điểm, lớp) (Số ZK, Điểm);

t 0 (S) r (S): ((số sổ điểm: 100), (Họ: 'Ivanov'), (Chủ đề: 'Cơ sở dữ liệu'), (Điểm: 5));

Hãy áp dụng toán tử đổi tên cho bộ dữ liệu này:

ρ<φ>t 0 (S): ((Số ZK.: 100), (Họ: 'Ivanov'), (Chủ đề: 'Cơ sở dữ liệu'), (Điểm: 5));

Vì vậy, đây là một trong những bộ dữ liệu trong mối quan hệ của chúng ta đã được đổi tên các thuộc tính.

Trong thuật ngữ bảng, mối quan hệ

ρ < № зачетной книжки, Оценка “Số ZK, Điểm > Phiên –

đây là bảng mới thu được từ bảng Mối quan hệ phiên bằng cách đổi tên các thuộc tính đã chỉ định.

^

4. Tính chất của phép toán một ngôi

Các phép toán đơn nhất, giống như bất kỳ phép toán nào khác, có một số tính chất nhất định. Chúng ta hãy nhìn vào điều quan trọng nhất trong số họ.

Thuộc tính đầu tiên của các phép toán đơn nhất như chọn, chiếu và đổi tên là thuộc tính đặc trưng cho tỷ lệ phần tử của các quan hệ. (Hãy nhớ lại rằng số lượng phần tử là số lượng bộ dữ liệu trong một quan hệ cụ thể.) Rõ ràng là ở đây chúng ta đang xem xét, tương ứng, quan hệ ban đầu và quan hệ thu được khi áp dụng một phép toán cụ thể.

Lưu ý rằng tất cả các tính chất của các phép toán một ngôi đều tuân theo trực tiếp từ định nghĩa của chúng, vì vậy chúng có thể được giải thích dễ dàng và thậm chí, nếu muốn, có thể suy ra một cách độc lập.

1) tỷ lệ công suất:

a) đối với hoạt động lấy mẫu: | σ <P >r |≤ |r |;

b) đối với phép chiếu: | r [S" ] | ≤ |r |;

c) đối với thao tác đổi tên: | ρ <φ >r | = |r |;

Tổng cộng, chúng ta thấy rằng đối với hai toán tử là toán tử lựa chọn và toán tử chiếu, lũy thừa của các quan hệ ban đầu - toán hạng lớn hơn lũy thừa của các quan hệ thu được từ các toán tử ban đầu sử dụng các phép toán tương ứng. Điều này là do quá trình lựa chọn liên quan đến hai thao tác lựa chọn và chiếu này sẽ loại bỏ một số hàng hoặc cột không thỏa mãn điều kiện lựa chọn. Trong trường hợp khi tất cả các hàng hoặc cột đều thỏa mãn điều kiện thì số lượng phần tử (tức là số lượng bộ dữ liệu) không giảm, do đó sự bất đẳng thức trong các công thức không nghiêm ngặt.

Trong trường hợp thao tác đổi tên, sức mạnh của quan hệ không thay đổi, do thực tế là khi thay đổi tên, không có bộ nào bị loại khỏi quan hệ;

2) tính chất bất đẳng thức:

a) đối với hoạt động lấy mẫu: σ <P > σ <P >r = σ <P >;

b) đối với thao tác chiếu: r [S' ] [S' ] = r [S" ];

c) đối với thao tác đổi tên, trong trường hợp chung, tính chất bình thường không được áp dụng.

Thuộc tính này có nghĩa là việc áp dụng tuần tự hai lần cùng một toán tử cho bất kỳ

hoặc quan hệ tương đương với việc sử dụng một lần của nó.

Nói chung, đối với hoạt động đổi tên các thuộc tính quan hệ, thuộc tính này có thể được áp dụng nhưng luôn có các điều kiện và bảo lưu đặc biệt.

Thuộc tính bình thường thường được sử dụng để đơn giản hóa dạng biểu thức và đưa nó về dạng phù hợp, tiết kiệm hơn.

Và tính chất cuối cùng chúng ta sẽ xem xét là tính chất đơn điệu. Thật thú vị khi lưu ý rằng trong mọi điều kiện, cả ba toán tử đều đơn điệu;

3) tính chất đơn điệu:

a) đối với hoạt động lấy mẫu: r 1 r 2 ⇒ σ <P > r 1 σ <P >r 2 ;

b) đối với thao tác chiếu: r 1 r 2 r 1 [S" ] r 2 [S" ];

c) đối với hoạt động đổi tên: r 1 r 2 ρ <φ >r 1 ⊆ ρ <φ >r 2 ;

Khái niệm tính đơn điệu trong đại số quan hệ tương tự như khái niệm tương tự trong đại số thông thường, đại số tổng quát. Hãy để chúng tôi giải thích: nếu ban đầu mối quan hệ r 1 và r 2 được kết nối theo cách mà rr 2 , thì ngay cả sau khi áp dụng bất kỳ toán tử lấy mẫu, chiếu hoặc đổi tên nào, mối quan hệ này sẽ vẫn giữ nguyên.

Đại số quan hệ là ngôn ngữ của các phép toán được thực hiện trên các mối quan hệ - các bảng của cơ sở dữ liệu quan hệ. Các phép toán của đại số quan hệ cho phép bạn tạo một quan hệ khác dựa trên một hoặc nhiều quan hệ mà không làm thay đổi chính các quan hệ ban đầu. Mối quan hệ khác thu được thường không được ghi vào cơ sở dữ liệu mà tồn tại do truy vấn SQL - một mảng được tạo bởi các hàm để làm việc với cơ sở dữ liệu bằng ngôn ngữ lập trình. Đối với mỗi phép toán đại số quan hệ, việc triển khai nó sẽ được đưa ra dưới dạng truy vấn bằng ngôn ngữ SQL.

Hãy xem xét các hoạt động của đại số quan hệ. Để bạn không bị phân tâm bởi nội dung của các bảng không phải là cơ sở dữ liệu của bạn, chẳng hạn như “Sản phẩm”, “Trình điều khiển”, “mận”, “lê”, “trà”, “cà phê”, Vladimir, Sergei, v.v. Chúng ta sẽ thực hiện các thao tác trên các mối quan hệ (bảng) với dữ liệu trừu tượng, chẳng hạn như R1, R2 (tên bảng - mối quan hệ), v.v. và A1, A2, A3 (tên thuộc tính - cột) và h15, w11, v.v. (nội dung của các bản ghi bảng cơ sở dữ liệu).

Mức độ ưu tiên để thực hiện các phép toán đại số quan hệ (theo thứ tự giảm dần của các mục trong danh sách và trong một mục - các phép toán có mức độ ưu tiên như nhau):

  • lựa chọn, chiếu
  • Sản phẩm Descartes, kết nối, giao lộ, phân chia
  • đoàn kết, khác biệt.

Hoạt động lấy mẫu

Thao tác chọn hoạt động trên một mối quan hệ và xác định mối quan hệ kết quả R, chỉ chứa các bộ (hoặc hàng hoặc bản ghi) đó, các quan hệ thỏa mãn một điều kiện nhất định (vị ngữ P ).

Do đó, thao tác tìm nạp là thao tác một ngôi và được viết như sau:

Ở đâu P- vị ngữ (điều kiện logic).

Truy vấn SQL

Bây giờ hãy xem điều gì xảy ra khi chúng ta chạy phép toán đại số quan hệ này và truy vấn SQL tương ứng của nó. Bảng bên dưới hiển thị một mối quan hệ mà thao tác này hoạt động.

R3
A1A2A3A4
3 hhylbệnh đa xơ cứng
4 tranga1sr
1 rrylbệnh đa xơ cứng

Chúng ta nhìn vào cột A3 và xác định rằng vị từ A3>"d0" được thỏa mãn bởi các mục ở hàng thứ nhất và thứ ba của quan hệ ban đầu (vì số chữ cái y trong bảng chữ cái lớn hơn số chữ cái d ). Kết quả là chúng ta có được mối quan hệ mới sau đây, trong đó có hai dòng:

R
A1A2A3A4
3 hhylbệnh đa xơ cứng
1 rrylbệnh đa xơ cứng

Tài liệu này sẽ giúp bạn kết hợp tất cả các loại điều kiện logic cho các lựa chọn. "Đại số Boolean (đại số logic)" .

Truy vấn SQL

CHỌN A1, A2, A3 từ R1 UNION CHỌN A1, A2, A3 từ R2

Bây giờ hãy xem điều gì xảy ra khi chúng ta chạy phép toán đại số quan hệ này và truy vấn SQL tương ứng của nó. Bây giờ có hai quan hệ được đưa ra, vì phép toán hợp là phép toán nhị phân:

R1 R2
A1A2A3A1A2A3
Z7aaaw11X8trangk21
B7hhh15Q2ôih15
X8trangw11X8trangw11

Chúng ta kết hợp các dòng của mối quan hệ thứ nhất và thứ hai và thấy rằng dòng thứ ba, là dòng thứ ba trong cả mối quan hệ thứ nhất và thứ hai, giống hệt nhau, vì vậy chúng ta chỉ đưa nó vào mối quan hệ mới một lần. Chúng ta có được mối quan hệ sau:

R
A1A2A3
Z7aaaw11
B7hhh15
X8trangw11
X8trangk21
Q2ôih15

Điều sau đây rất quan trọng: một thao tác nối chỉ có thể được thực hiện khi hai quan hệ có cùng số lượng và tên các thuộc tính (cột), hoặc nói một cách chính thức là tương thích với phép nối.

Vận hành nút giao

Kết quả phép giao của hai tập hợp (quan hệ) A và B() sẽ là tập hợp (quan hệ) C bao gồm những phần tử đó và chỉ những phần tử thuộc cả tập hợp A và tập hợp B. Phép toán giao giao của đại số quan hệ là như nhau đến hoạt động.

Truy vấn SQL

CHỌN A1, A2, A3 từ R1 GIAO TẮC CHỌN A1, A2, A3 từ R2

Một số phương ngữ SQL không có từ khóa INTERSECT. Ví dụ, sự thay thế của nó trong MySQL và những thứ khác là INNER JOIN. Cách hoạt động của toán tử SQL JOIN nói chung và các biến thể của nó INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN và FULL OUTER JOIN - trong bài học SQL THAM GIA - nối các bảng cơ sở dữ liệu .

Truy vấn MySQL

Bây giờ hãy xem điều gì xảy ra khi chúng ta chạy phép toán đại số quan hệ này và truy vấn SQL tương ứng của nó. Một lần nữa, hai quan hệ R1 và R2 được cho:

R1 R2
A1A2A3A1A2A3
Z7aaaw11X8trangk21
B7hhh15Q2ôih15
X8trangw11X8trangw11

Chúng ta xem qua tất cả các bản ghi trong hai quan hệ và thấy rằng trong cả quan hệ thứ nhất và quan hệ thứ hai đều có một hàng - hàng thứ ba trong cả quan hệ thứ nhất và quan hệ thứ hai. Chúng ta có được một mối quan hệ mới:

R
A1A2A3
X8trangw11

Hoạt động khác biệt

Sự khác biệt của hai quan hệ R1 và R2 () bao gồm các bộ (hoặc bản ghi hoặc hàng) hiện diện trong quan hệ R1, nhưng không có trong quan hệ R2. Các quan hệ R1 và R2 phải tương thích với phép nối. Phép toán sai phân đại số quan hệ giống hệt với phép toán.

Truy vấn SQL

CHỌN A1, A2, A3 từ R2 NGOẠI TRỪ
CHỌN A1, A2, A3 từ R1

Hãy thiết lập điều gì sẽ xảy ra khi thực hiện phép toán đại số quan hệ này và truy vấn SQL tương ứng. Một lần nữa, hai quan hệ R1 và R2 được cho:

R1 R2
A1A2A3A1A2A3
Z7aaaw11X8trangk21
B7hhh15Q2ôih15
X8trangw11X8trangw11

Từ quan hệ R2, chúng ta loại trừ hàng cũng tồn tại trong quan hệ R2 - hàng thứ ba - và chúng ta thu được một quan hệ mới:

R
A1A2A3
X8trangw11
Q2ôih15

Vận hành sản phẩm Descartes

Phép toán tích Descartes () xác định một quan hệ R mới, là kết quả của việc ghép từng bộ của quan hệ R1 với mỗi bộ của quan hệ R2.

Truy vấn SQL

CHỌN * từ R3, R4

Hãy thiết lập điều gì sẽ xảy ra khi thực hiện phép toán đại số quan hệ này và truy vấn SQL tương ứng. Cho hai quan hệ R3 và R4:

R3 R4
A1A2A3A4A5A6
3 hhylbệnh đa xơ cứng3 hh
4 tranga1sr4 trang
1 rrylbệnh đa xơ cứng

Quan hệ mới phải chứa tất cả các thuộc tính (cột) của hai quan hệ. Đầu tiên, hàng đầu tiên của quan hệ R3 được nối với mỗi hàng trong số hai hàng của quan hệ R4, sau đó là hàng thứ hai của quan hệ R3, rồi đến hàng thứ ba. Kết quả phải là 3 X 2 = 6 bộ (hàng). Chúng tôi có được mối quan hệ mới này:

R
A1A2A3A4A5A6
3 hhylbệnh đa xơ cứng3 hh
3 hhylbệnh đa xơ cứng4 trang
4 tranga1sr3 hh
4 tranga1sr4 trang
1 rrylbệnh đa xơ cứng3 hh
1 rrylbệnh đa xơ cứng4 trang

đại số quan hệ, như bạn có thể đoán, đây là một loại đại số đặc biệt trong đó tất cả các phép toán được thực hiện trên các mô hình dữ liệu quan hệ, tức là trên các mối quan hệ.

Trong thuật ngữ dạng bảng, mối quan hệ bao gồm hàng, cột và hàng—tiêu đề cột. Do đó, các phép toán đơn nhất tự nhiên là các thao tác chọn hàng hoặc cột nhất định, cũng như thay đổi tiêu đề cột - đổi tên thuộc tính.

1. Hoạt động tìm nạp đơn nhất

Toán tử một ngôi đầu tiên chúng ta sẽ xem xét là thao tác tìm nạp– hoạt động chọn các hàng từ một bảng biểu thị mối quan hệ theo một số nguyên tắc, tức là chọn các hàng bộ thỏa mãn một hoặc nhiều điều kiện nhất định.

Toán tử lấy mẫuđóng góp bởi ? <P>, điều kiện lấy mẫuP<S>, tức là toán tử ? luôn được thực hiện với một điều kiện nhất định trên bộ dữ liệu P, và bản thân điều kiện Pđược viết tùy thuộc vào sơ đồ quan hệ S. Bản thân tôi đã xem xét tất cả những điều này thao tác tìm nạp trên sơ đồ quan hệ S trong mối quan hệ r

? <P>r(S) ? ? <P>r = {t(S) |t ? r & P<S>t} = {t(S) |t ? r & Nếu không(P<S>t, SAI};

Kết quả của thao tác này sẽ là một quan hệ mới có cùng lược đồ quan hệ S, bao gồm các bộ dữ liệu đó t(S) của quan hệ toán hạng ban đầu thỏa mãn điều kiện lấy mẫu P t. Rõ ràng là để áp dụng một số điều kiện cho một bộ, cần phải thay thế các giá trị thuộc tính của bộ thay vì tên thuộc tính.

Để hiểu rõ hơn nguyên lý hoạt động này, hãy đưa ra một ví dụ. Cho sơ đồ quan hệ sau:

S: Session (số sổ lớp, Họ, Môn học, Lớp).

Hãy lấy điều kiện lấy mẫu sau:

P<S> = (Chủ đề = ‘Khoa học máy tính’ và Lớp > 3).

Chúng ta cần chọn từ quan hệ toán hạng ban đầu những bộ chứa thông tin về những học sinh đã đậu môn Khoa học Máy tính với ít nhất ba điểm.

Hãy cũng cho bộ dữ liệu sau từ mối quan hệ này:

t 0 (S) ? r(S

Áp dụng điều kiện lựa chọn của chúng tôi cho bộ dữ liệu t 0 , chúng tôi nhận được:

P t 0 = ('Cơ sở dữ liệu' = 'Khoa học máy tính' và 5 > 3);

Trên bộ dữ liệu cụ thể này, điều kiện lựa chọn không được thỏa mãn.

Nhìn chung, kết quả của mẫu cụ thể này

? <Предмет = "Информатика" and Оценка >3 > Phiên

sẽ có một bảng “Phiên” trong đó các hàng thỏa mãn điều kiện lựa chọn còn lại.

2. Phép chiếu một ngôi

Một phép toán một ngôi tiêu chuẩn khác mà chúng ta sẽ nghiên cứu là phép chiếu. Thao tác chiếu là thao tác chọn các cột từ một bảng thể hiện mối quan hệ dựa trên một số đặc điểm. Cụ thể, máy chọn các thuộc tính đó (nghĩa đen là các cột đó) của quan hệ toán hạng ban đầu đã được chỉ định trong phép chiếu.

Toán tử chiếuđóng góp bởi [ S"] hoặc ? . Đây S"– mạch con của lược đồ quan hệ ban đầu S, tức là một số cột của nó. Điều đó có nghĩa là gì? Điều này có nghĩa là S’ có ít thuộc tính hơn S, bởi vì trong S" Chỉ những cái mà điều kiện chiếu được thỏa mãn vẫn còn. Và trong bảng biểu diễn mối quan hệ r(S"), có bao nhiêu hàng như trong bảng r(S) và có ít cột hơn vì chỉ còn lại những cột tương ứng với các thuộc tính còn lại. Vì vậy toán tử chiếu ?< S"> liên quan đến r(S) dẫn đến một mối quan hệ mới với một lược đồ quan hệ khác r(S"), bao gồm các hình chiếu t(S) [S"] các bộ của quan hệ ban đầu. Những phép chiếu tuple này được xác định như thế nào? Chiếu bất kỳ bộ dữ liệu nào t(S) quan hệ ban đầu r(S) trên mỗi mạch con S"được xác định bởi công thức sau:

t(S) [S'] = {t(Một)|Một ? chắc chắn(t) ? S’}, S" ?S.

Điều quan trọng cần lưu ý là các bộ dữ liệu trùng lặp sẽ bị loại khỏi kết quả, tức là sẽ không có hàng trùng lặp trong bảng biểu thị mối quan hệ kết quả mới.

Có tính đến tất cả những điều trên, hoạt động chiếu trong hệ thống quản lý cơ sở dữ liệu sẽ như thế này:

? <S">r(S) ? ? <S'>r ? r(S) [S’] ? r [S" ] = {t(S) [S'] | t ? r };

Hãy xem xét một ví dụ minh họa nguyên tắc của hoạt động lấy mẫu.

Cho mối quan hệ “Phiên” và lược đồ của mối quan hệ này:

S: Buổi học (số sổ điểm, Họ, Môn học, Lớp);

Chúng ta sẽ chỉ quan tâm đến hai thuộc tính từ sơ đồ này, đó là “số sổ lớp” và “Họ” của học sinh, vì vậy lược đồ con S" sẽ trông như thế này:

S": (số sổ lớp, họ).

Cần có thái độ ban đầu r(S) chiếu lên mạch con S".

t 0 (S) ? r(S): ((số sổ điểm: 100), (Họ: 'Ivanov'), (Chủ đề: 'Cơ sở dữ liệu'), (Điểm: 5));

Điều này có nghĩa là phép chiếu của bộ dữ liệu này lên mạch con này S" sẽ trông như thế này:

t 0 (S) S": ((số sổ điểm: 100), (Họ: ‘Ivanov’));

Nếu nói về thao tác chiếu dưới dạng bảng thì Phép chiếu Phiên [Số sổ điểm, Họ] của quan hệ ban đầu là Bảng Phiên, trong đó tất cả các cột đã bị xóa ngoại trừ hai cột: Số sổ điểm và Họ. Ngoài ra, tất cả các dòng trùng lặp cũng đã bị loại bỏ.

3. Thao tác đổi tên đơn nhất

Toán tử một ngôi cuối cùng chúng ta sẽ xem xét là thao tác đổi tên thuộc tính. Nếu chúng ta nói về một mối quan hệ như một bảng, thì thao tác đổi tên là cần thiết để thay đổi tên của tất cả hoặc một số cột.

Đổi tên toán tử như sau: ?>, ở đây ? - chức năng đổi tên.

Hàm này thiết lập ánh xạ một-một giữa các tên thuộc tính lược đồ SS, tương ứng ở đâu S- lược đồ của quan hệ ban đầu và S - sơ đồ mối quan hệ với các thuộc tính được đổi tên. Vì vậy người vận hành ? <?> liên quan đến r(S) đưa ra một mối quan hệ mới với lược đồ S, bao gồm các bộ của quan hệ ban đầu chỉ có các thuộc tính được đổi tên.

Hãy viết thao tác đổi tên thuộc tính trong hệ quản trị cơ sở dữ liệu:

? <? > r(S) ? ? <? >r = {? <? > t(S)| t ? r};

Dưới đây là một ví dụ về việc sử dụng thao tác này:

Hãy xem xét mối quan hệ Session vốn đã quen thuộc với sơ đồ:

S: Buổi học (số sổ điểm, Họ, Môn học, Lớp);

Hãy giới thiệu một lược đồ quan hệ mới S, với các tên thuộc tính khác nhau mà chúng ta muốn thấy thay vì các tên hiện có:

S:

Ví dụ: khách hàng cơ sở dữ liệu muốn xem các tên khác trong mối quan hệ tạo sẵn của bạn. Để thực hiện thứ tự này các bạn cần thiết kế hàm đổi tên như sau:

? : (số sổ lớp, họ, môn học, lớp) > (số sổ lớp, họ, môn học, điểm);

Trên thực tế, chỉ có hai thuộc tính cần được đổi tên, do đó, việc viết hàm đổi tên sau đây thay vì thuộc tính hiện có là hợp pháp:

? : (số sổ điểm, lớp) > (Số ZK, Điểm);

t 0 (S) ? r(S): ((số sổ điểm: 100), (Họ: 'Ivanov'), (Chủ đề: 'Cơ sở dữ liệu'), (Điểm: 5));

Hãy áp dụng toán tử đổi tên cho bộ dữ liệu này:

?t 0 (S): ((Số ZK.: 100), (Họ: 'Ivanov'), (Chủ đề: 'Cơ sở dữ liệu'), (Điểm: 5));

Vì vậy, đây là một trong những bộ dữ liệu trong mối quan hệ của chúng ta đã được đổi tên các thuộc tính.

Trong thuật ngữ bảng, mối quan hệ

? < № зачетной книжки, Оценка > “Số ZK, Điểm > Phiên -

đây là bảng mới thu được từ bảng Mối quan hệ phiên bằng cách đổi tên các thuộc tính đã chỉ định.

4. Tính chất của phép toán một ngôi

Các phép toán đơn nhất, giống như bất kỳ phép toán nào khác, có một số tính chất nhất định. Chúng ta hãy nhìn vào điều quan trọng nhất trong số họ.

Thuộc tính đầu tiên của các phép toán đơn nhất như chọn, chiếu và đổi tên là thuộc tính đặc trưng cho tỷ lệ phần tử của các quan hệ. (Hãy nhớ lại rằng số lượng phần tử là số lượng bộ dữ liệu trong một quan hệ cụ thể.) Rõ ràng là ở đây chúng ta đang xem xét, tương ứng, quan hệ ban đầu và quan hệ thu được khi áp dụng một phép toán cụ thể.

Lưu ý rằng tất cả các tính chất của các phép toán một ngôi đều tuân theo trực tiếp từ định nghĩa của chúng, vì vậy chúng có thể được giải thích dễ dàng và thậm chí, nếu muốn, có thể suy ra một cách độc lập.

1) tỷ lệ công suất:

a) đối với hoạt động lấy mẫu: | ? <P>r |? |r|;

b) đối với phép chiếu: | r[S"] | ? |r|;

c) đối với thao tác đổi tên: | ? <? >r | = |r|;

Tổng cộng, chúng ta thấy rằng đối với hai toán tử là toán tử lựa chọn và toán tử chiếu, lũy thừa của các quan hệ ban đầu - toán hạng lớn hơn lũy thừa của các quan hệ thu được từ các toán tử ban đầu sử dụng các phép toán tương ứng. Điều này là do quá trình lựa chọn liên quan đến hai thao tác lựa chọn và chiếu này sẽ loại bỏ một số hàng hoặc cột không thỏa mãn điều kiện lựa chọn. Trong trường hợp khi tất cả các hàng hoặc cột đều thỏa mãn điều kiện thì số lượng phần tử (tức là số lượng bộ dữ liệu) không giảm, do đó sự bất đẳng thức trong các công thức không nghiêm ngặt.

Trong trường hợp thao tác đổi tên, sức mạnh của quan hệ không thay đổi, do thực tế là khi thay đổi tên, không có bộ nào bị loại khỏi quan hệ;

2) tính chất bất đẳng thức:

a) đối với hoạt động lấy mẫu: ? <P> ? <P>r = ? <P>;

b) đối với thao tác chiếu: r [S'] [S'] = r [S"];

c) đối với thao tác đổi tên, trong trường hợp chung, tính chất bình thường không được áp dụng.

Thuộc tính này có nghĩa là việc áp dụng tuần tự kép của cùng một toán tử cho bất kỳ quan hệ nào đều tương đương với việc áp dụng đơn lẻ của nó.

Nói chung, đối với hoạt động đổi tên các thuộc tính quan hệ, thuộc tính này có thể được áp dụng nhưng luôn có các điều kiện và bảo lưu đặc biệt.

Thuộc tính bình thường thường được sử dụng để đơn giản hóa dạng biểu thức và đưa nó về dạng phù hợp, tiết kiệm hơn.

Và tính chất cuối cùng chúng ta sẽ xem xét là tính chất đơn điệu. Thật thú vị khi lưu ý rằng trong mọi điều kiện, cả ba toán tử đều đơn điệu;

3) tính chất đơn điệu:

a) đối với hoạt động lấy mẫu: r 1 ? r 2 ? ? <P> r 1 ? ? <P>r 2 ;

b) đối với thao tác chiếu: r 1 ? r 2 ? r 1 [S"] ? r 2 [S"];

c) đối với hoạt động đổi tên: r 1 ? r 2 ? ? <? >r 1 ? ? <? >r 2 ;

Khái niệm tính đơn điệu trong đại số quan hệ tương tự như khái niệm tương tự trong đại số thông thường, đại số tổng quát. Hãy để chúng tôi giải thích: nếu ban đầu mối quan hệ r 1 và r 2 được kết nối theo cách mà r ? r 2 , thì ngay cả sau khi áp dụng bất kỳ toán tử lấy mẫu, chiếu hoặc đổi tên nào, mối quan hệ này sẽ vẫn giữ nguyên.