Các phần tử cấu trúc của cơ sở dữ liệu quan hệ. Cơ sở dữ liệu quan hệ - các khái niệm cơ bản

Các chức năng DBMS.

Các chức năng DBMS ở mức cao và mức thấp.

Chức năng cấp cao:

1. Định nghĩa dữ liệu - Sử dụng chức năng này, nó được xác định thông tin nào sẽ được lưu trữ trong cơ sở dữ liệu (kiểu, thuộc tính dữ liệu và chúng sẽ liên quan với nhau như thế nào).

2. Xử lí dữ liệu. Thông tin có thể được xử lý theo nhiều cách khác nhau: lựa chọn, lọc, sắp xếp, kết hợp thông tin này với thông tin khác, tính tổng.

3. Quản lý dữ liệu. Hàm này chỉ định ai được phép xem dữ liệu, sửa hoặc thêm thông tin mới, cũng như xác định các quy tắc cho quyền truy cập được chia sẻ.

Các chức năng cấp thấp:

1. Quản lý dữ liệu trong bộ nhớ ngoài;

2. Quản lý bộ đệm RAM;

3. Quản lý giao dịch;

4. Giới thiệu nhật ký các thay đổi đối với cơ sở dữ liệu;

5. Đảm bảo tính toàn vẹn và bảo mật của cơ sở dữ liệu.

Theo giao dịch được gọi là một chuỗi hoạt động không thể phân chia, được DBMS theo dõi từ đầu đến khi hoàn thành và trong đó nếu một hoạt động không thành công, toàn bộ chuỗi sẽ bị hủy bỏ.

Nhật ký DBMS - một cơ sở dữ liệu đặc biệt hoặc một phần của cơ sở dữ liệu chính mà người dùng không thể truy cập được và được sử dụng để ghi lại thông tin về tất cả các thay đổi đối với cơ sở dữ liệu.

Giới thiệu Nhật ký DBMS được thiết kế để đảm bảo độ tin cậy của việc lưu trữ trong cơ sở dữ liệu khi có sự cố và hỏng hóc phần cứng, cũng như lỗi trong phần mềm.

Toàn vẹn cơ sở dữ liệu - đây là một thuộc tính của cơ sở dữ liệu, có nghĩa là nó chứa đầy đủ, nhất quán và phản ánh đầy đủ thông tin về lĩnh vực chủ đề.

Phân loại DBMS.

DBMS có thể được phân loại:

1. Theo các loại chương trình:

Một. Máy chủ cơ sở dữ liệu (ví dụ: MS SQL Server, InterBase (Borland)) - được thiết kế để tổ chức các trung tâm dữ liệu trong mạng máy tính và thực hiện các chức năng quản lý cơ sở dữ liệu theo yêu cầu của các chương trình khách sử dụng câu lệnh SQL (tức là các chương trình phản hồi các truy vấn);

b. Máy khách DB - các chương trình yêu cầu dữ liệu. PFSDBMS, bảng tính, bộ xử lý văn bản, chương trình e-mail có thể được sử dụng làm chương trình khách;

C. Cơ sở dữ liệu đầy đủ chức năng (MS Access, MS Fox Pro) - một chương trình có giao diện được phát triển cho phép bạn tạo và sửa đổi bảng, nhập dữ liệu, tạo và định dạng truy vấn, phát triển báo cáo và in chúng.

2. Theo mô hình dữ liệu của DBMS (cũng như DB):

Một. Thứ bậc - dựa trên cấu trúc cây lưu trữ thông tin và giống với hệ thống tệp của máy tính; nhược điểm chính là không có khả năng thực hiện mối quan hệ nhiều-nhiều;

b. Mạng - đã thay thế các phân cấp và không tồn tại lâu, vì nhược điểm chính là sự phức tạp của việc phát triển các ứng dụng nghiêm túc. Sự khác biệt chính giữa mạng và hệ thống phân cấp là trong cấu trúc phân cấp "bản ghi - hậu duệ" chỉ có một tổ tiên, và trong mạng hậu duệ nó có thể có bất kỳ số lượng tổ tiên nào;

C. Quan hệ - dữ liệu của chúng được đặt trong các bảng, giữa chúng có một số liên kết nhất định;

d. Hướng đối tượng - chúng lưu trữ dữ liệu dưới dạng các đối tượng và ưu điểm chính khi làm việc với chúng là bạn có thể áp dụng cách tiếp cận hướng đối tượng cho chúng;

e. Kết hợp, tức là đối tượng - quan hệ - kết hợp các khả năng của cơ sở dữ liệu quan hệ và hướng đối tượng. Một ví dụ về cơ sở dữ liệu như vậy là Oracle (trước đây là cơ sở dữ liệu quan hệ).

3. Tùy thuộc vào vị trí của các phần riêng lẻ của DBMS, có sự phân biệt giữa:

Một. địa phương - tất cả các bộ phận đều nằm trên một máy tính;

b. mạng.

Mạng bao gồm:

- với tệp tổ chức - máy chủ;

Với một tổ chức như vậy, tất cả dữ liệu được đặt trên một máy tính, được gọi là máy chủ tệp và được kết nối với mạng. Khi tìm thấy thông tin cần thiết, toàn bộ tệp được chuyển đi, trong đó có rất nhiều thông tin thừa. Và chỉ khi tạo bản sao cục bộ, bản ghi yêu cầu mới được tìm thấy.

- với một tổ chức máy khách-máy chủ;

Máy chủ cơ sở dữ liệu nhận được yêu cầu từ máy khách, tìm kiếm bản ghi cần thiết trong dữ liệu và chuyển nó cho máy khách. Truy vấn tới máy chủ được hình thành bằng ngôn ngữ truy vấn có cấu trúc SQL, do đó máy chủ cơ sở dữ liệu được gọi là máy chủ SQL.

- DBMS phân phối chứa vài chục và hàng trăm máy chủ nằm trên một lãnh thổ rộng lớn.

Các quy định cơ bản của mô hình cơ sở dữ liệu quan hệ.

Cơ sở dữ liệu quan hệ được gọi là cơ sở dữ liệu trong đó tất cả dữ liệu được tổ chức dưới dạng bảng và tất cả các hoạt động trên dữ liệu này được rút gọn thành các hoạt động trên bảng.

Các tính năng của cơ sở dữ liệu quan hệ:

1. Dữ liệu được lưu trữ trong bảng gồm các cột và các hàng;

2. Có một giá trị tại giao điểm của mỗi cột và hàng;

3. Mỗi cột - trường có tên riêng của nó, dùng như tên của nó - một thuộc tính, và tất cả các giá trị trong một cột đều thuộc cùng một kiểu;

4. Các cột được sắp xếp theo một thứ tự cụ thể, được chỉ định khi tạo bảng, ngược lại với các hàng, được sắp xếp theo một thứ tự tùy ý. Có thể không có một hàng nào trong bảng, nhưng phải có ít nhất một cột.

Thuật ngữ cơ sở dữ liệu quan hệ:

Phần tử cơ sở dữ liệu quan hệ Hình thức trình bày
1. Cơ sở dữ liệu Bộ bàn
2. Lược đồ cơ sở dữ liệu Một bộ tiêu đề bảng
3. Thái độ bàn
4. Sơ đồ quan hệ Hàng Tiêu đề Cột Bảng
5. Bản chất Mô tả thuộc tính đối tượng
6. Thuộc tính Tiêu đề cột
7. Miền Nhiều giá trị thuộc tính hợp lệ
8. Khóa chính Một số nhận dạng duy nhất xác định duy nhất từng bản ghi trong bảng
9. Kiểu dữ liệu Loại giá trị của các phần tử trong bảng
10. Tuple Chuỗi (ghi)
11. Cardinality Số hàng trong bảng
12. Mức độ của thái độ Số trường
13. Mối quan hệ thân thể Nhiều bộ giá trị quan hệ

Khi thiết kế cơ sở dữ liệu quan hệ, dữ liệu được đặt trong một số bảng. Mối quan hệ được thiết lập giữa các bảng bằng cách sử dụng các khóa. Khi liên kết các bảng, bảng chính và bảng bổ sung (phụ) được chọn.

Có các kiểu quan hệ sau giữa các bảng:

1. Quan hệ dạng 1: 1 (một đối một) có nghĩa là mỗi bản ghi trong bảng chính tương ứng với một bản ghi trong bảng bổ sung và ngược lại, mỗi bản ghi trong bảng bổ sung tương ứng với một bản ghi trong bảng chính.

2. Kiểu quan hệ 1: M (một đến nhiều) có nghĩa là mỗi bản ghi trong bảng chính tương ứng với một số bản ghi trong bảng bổ sung và ngược lại, mỗi bản ghi trong bảng bổ sung chỉ tương ứng với một bản ghi trong bảng chính.

3. Mối quan hệ như M: 1 (nhiều đối một) có nghĩa là một hoặc nhiều bản ghi trong bảng chính chỉ tương ứng với một bản ghi trong bảng phụ.

4. Quan hệ dạng M: M (nhiều đến nhiều) - đây là khi một số bản ghi của bảng bổ sung tương ứng với một số bản ghi của bảng chính và ngược lại.

5. Các thành phần chính của MS Access.

Các thành phần (đối tượng) chính của MS Access là:

1. Bảng;

3. Biểu mẫu;

4. Báo cáo;

5. Macro:

Mô-đun.

bàn Là một đối tượng được thiết kế để lưu trữ dữ liệu dưới dạng bản ghi (hàng) và trường (cột). Mỗi trường chứa một phần riêng biệt của bản ghi và mỗi bảng được sử dụng để lưu trữ thông tin về một câu hỏi cụ thể.

Cuộc điều tra - câu hỏi về dữ liệu được lưu trữ trong bảng hoặc hướng dẫn chọn bản ghi cần thay đổi.

Hình thức Là một đối tượng trong đó bạn có thể đặt các điều khiển để nhập, hiển thị và thay đổi dữ liệu trong các trường của bảng.

Báo cáo Là một đối tượng cho phép bạn trình bày thông tin do người dùng xác định theo một cách nhất định, xem và in nó.

Macro - một hoặc nhiều macro có thể được sử dụng để tự động hóa một tác vụ cụ thể. Macro là khối xây dựng chính của macro; một lệnh độc lập có thể được kết hợp với các macro khác để tự động hóa một tác vụ.

Mô-đun - một tập hợp các mô tả, hướng dẫn và thủ tục được lưu trữ dưới một tên. Có ba loại mô-đun trong MS Access: mô-đun biểu mẫu, mô-đun báo cáo và mô-đun chung. Mô-đun biểu mẫu và báo cáo chứa một chương trình cục bộ cho các biểu mẫu và báo cáo.

6. Các bảng trong MS Access.

Có các phương pháp sau để tạo bảng trong MS Access:

1. Chế độ bảng;

2. Constructor;

3. Bảng hướng dẫn;

4. Nhập bảng;

5. Mối quan hệ với các bảng.

V chế độ bảng dữ liệu được nhập vào một bảng trống. Một bảng với 30 trường được cung cấp để nhập dữ liệu. Sau khi lưu nó, MS Access sẽ tự quyết định kiểu dữ liệu nào sẽ gán cho mỗi trường.

Constructor cung cấp khả năng tạo trường một cách độc lập, chọn kiểu dữ liệu cho trường, kích thước trường và đặt thuộc tính trường.

Để xác định một trường trong chế độ Constructor được thiết lập:

1. Tên trường , mà trong mỗi bảng phải có một tên duy nhất là sự kết hợp của các chữ cái, số, dấu cách và ký tự đặc biệt, ngoại trừ " .!” “ ". Độ dài tên tối đa là 64 ký tự.

2. Loại dữ liệu xác định loại và phạm vi giá trị hợp lệ, cũng như lượng bộ nhớ được cấp phát cho trường này.

Các kiểu dữ liệu MS Access

Loại dữ liệu Sự miêu tả
Chữ Văn bản và số, chẳng hạn như tên và địa chỉ, số điện thoại, mã bưu điện (tối đa 255 ký tự).
Trường ghi nhớ Văn bản dài và số, chẳng hạn như nhận xét và giải thích (lên đến 64.000 ký tự).
Số Một kiểu dữ liệu chung cho dữ liệu số cho phép tính toán toán học, ngoại trừ các phép tính tiền tệ.
Ngày giờ Giá trị ngày và giờ. Người dùng có thể chọn các hình dạng tiêu chuẩn hoặc tạo một định dạng tùy chỉnh.
Tiền tệ Giá trị tiền tệ. Không nên sử dụng các kiểu dữ liệu số để tính toán tiền tệ, vì chúng có thể được làm tròn trong các phép tính. Giá trị tiền tệ luôn được hiển thị với số vị trí thập phân được chỉ định sau dấu thập phân.
Phản đối Tự động hiển thị số tuần tự. Việc đánh số bắt đầu từ 1. Trường bộ đếm thuận tiện cho việc tạo khóa. Trường này tương thích với trường số có thuộc tính Kích thước được đặt thành Dài.
Hợp lý Các giá trị là Có / Không, Đúng / Sai, Bật / Tắt, một trong hai giá trị có thể có.
Trường đối tượng OLE Các đối tượng được tạo trong các chương trình khác hỗ trợ giao thức OLE.

3. Các thuộc tính quan trọng nhất của các trường:

- Kích thước trườngđặt kích thước tối đa của dữ liệu được lưu trữ trong trường.

- Định dạng trường là một định dạng hiển thị cho một kiểu dữ liệu nhất định và thiết lập các quy tắc để trình bày dữ liệu khi hiển thị nó trên màn hình hoặc khi in.

- Chữ ký hiện trườngđặt văn bản được hiển thị trong bảng, biểu mẫu, báo cáo.

- Điều kiện về giá trị cho phép bạn kiểm soát đầu vào, đặt hạn chế đối với giá trị đầu vào, trong trường hợp vi phạm điều kiện, cấm nhập và hiển thị văn bản được chỉ định bởi thuộc tính Thông báo lỗi;

- Thông báo lỗi chỉ định văn bản của thông báo được hiển thị trên màn hình khi các giới hạn do Điều kiện đặt trên giá trị bị vi phạm.

Loại điều khiển- thuộc tính được đặt trên tab Thay thế trong cửa sổ trình thiết kế bảng. Thuộc tính này xác định xem trường sẽ được hiển thị trong bảng và ở dạng nào - dưới dạng một trường hay dưới dạng hộp tổ hợp.

Khóa duy nhất (chính) bảng có thể đơn giản hoặc phức tạp với nhiều trường.

Để xác định khóa, các trường tạo nên khóa được đánh dấu và nút trên thanh công cụ được nhấn lĩnh vực then chốt hoặc lệnh được thực thi Chỉnh sửa / trường khóa.


© 2015-2019 trang web
Tất cả các quyền thuộc về tác giả của họ. Trang web này không yêu cầu quyền tác giả, nhưng cung cấp quyền sử dụng miễn phí.
Ngày tạo trang: 2016-02-16

Cấp độ 1: Cấp của các mô hình bên ngoài là cấp cao nhất mà mỗi mô hình có chế độ xem dữ liệu riêng. Mức này xác định quan điểm cơ sở dữ liệu của các ứng dụng riêng lẻ.

Cấp khái niệm: Liên kết điều khiển trung tâm, nơi cơ sở dữ liệu được trình bày ở đây dưới dạng tổng quát nhất, liên kết này hợp nhất dữ liệu được sử dụng bởi tất cả các ứng dụng. Trên thực tế, mức khái niệm phản ánh một mô hình miền tổng quát hóa.

Lớp vật lý (Cơ sở dữ liệu):Đây là những dữ liệu nằm trong tệp hoặc trong cấu trúc trang nằm trên phương tiện lưu trữ bên ngoài.


Mô hình dữ liệu

Các mô hình dữ liệu sau được phân biệt:

1. Nhiễm trùng học

2. Lôgic ngày tháng

3. Thể chất

Quá trình thiết kế cơ sở dữ liệu bắt đầu với việc thiết kế một mô hình infological. Mô hình dữ liệu infological là một mô tả không chính thức tổng quát về cơ sở dữ liệu đang được tạo, sử dụng ngôn ngữ tự nhiên, công thức toán học, bảng, đồ thị và các phương tiện khác mà tất cả những người làm việc về thiết kế cơ sở dữ liệu đều có thể hiểu được.

Bộ mã miền

Mô hình infological hiển thị thế giới thực trong một số khái niệm mà con người có thể đọc được, hoàn toàn độc lập với môi trường lưu trữ dữ liệu. Do đó, mô hình Infological không nên thay đổi cho đến khi một số thay đổi trong thế giới thực yêu cầu những thay đổi bên ngoài định nghĩa, để mô hình này tiếp tục hiển thị khu vực chủ đề.

Có nhiều cách tiếp cận để xây dựng mô hình này: mô hình đồ thị, mạng ngữ nghĩa, mối quan hệ thực thể-và những cách khác.

Mô hình dữ liệu

Mô hình thông tin phải được hiển thị trong một mô hình dữ liệu mà DBMS có thể hiểu được. Mô hình dữ liệu là một mô tả chính thức của mô hình thông tin trong ngôn ngữ DBMS.

Mô hình phân cấp

Mô hình này là tập hợp các yếu tố liên quan tạo thành cấu trúc phân cấp. Các khái niệm cơ bản của hệ thống phân cấp là mức, nút và mối quan hệ.

mức độ giao tiếp


Nút là một tập hợp các thuộc tính dữ liệu mô tả một đối tượng. Mỗi nút được liên kết với một nút cấp cao hơn và với bất kỳ số lượng nút cấp thấp hơn nào. Ngoại lệ là nút cấp cao nhất. Số lượng cây trong cơ sở dữ liệu được xác định bởi số lượng rễ cây. Chỉ có một đường dẫn từ bản ghi gốc đến mỗi bản ghi cơ sở dữ liệu. Một ví dụ đơn giản là hệ thống tên miền Internet \ địa chỉ. Ở cấp độ đầu tiên (gốc của cây) là hành tinh của chúng ta, ở cấp độ thứ hai - Quốc gia, cấp độ thứ ba - Vùng, ở cấp độ thứ tư - khu định cư, đường phố, nhà ở, căn hộ. Một đại diện tiêu biểu là DBMS của IBM - IMS.

Tất cả các cá thể của một kiểu con cháu nhất định với một cá thể kiểu tổ tiên chung được gọi là các cặp song sinh. Một thứ tự duyệt hoàn chỉnh được xác định cho cơ sở dữ liệu. Từ trên xuống dưới và từ phải sang trái.

Mô hình vật lý

Một mô hình vật lý được xây dựng trên cơ sở của mô hình dữ liệu. Tổ chức vật lý của dữ liệu có ảnh hưởng lớn đến hoạt động của cơ sở dữ liệu. Các nhà phát triển DBMS đang cố gắng tạo ra các mô hình dữ liệu vật lý hiệu quả nhất, cung cấp cho người dùng một hoặc một bộ công cụ khác để tùy chỉnh mô hình cho một cơ sở dữ liệu cụ thể.

Ví dụ: Đặc biệt đối với cơ sở dữ liệu quan hệ, nó đã tính đến:

1. Các khía cạnh vật lý của việc lưu trữ các bảng trong các tệp cụ thể.

2. Tạo chỉ mục tối ưu hóa tốc độ hoạt động với dữ liệu bằng ứng dụng.

3. Thực hiện các hành động khác nhau trên dữ liệu tại các sự kiện nhất định, do người dùng xác định bằng cách sử dụng trình kích hoạt và các thủ tục được lưu trữ.

Mô hình vi trùng học X

Mô hình vật lý


Đối với tất cả các cấp và đối với bất kỳ phương pháp biểu diễn lĩnh vực chủ thể nào, đều có mã hóa các khái niệm về quan hệ giữa các khái niệm. Giai đoạn quan trọng trong sự phát triển của bất kỳ hệ thống thông tin nào là tiến hành phân tích hệ thống:

Chính thức hóa lĩnh vực chủ đề và trình bày hệ thống như một tập hợp các thành phần.

Thành phần làm cơ sở của phân tích hệ thống có thể là chức năng (xây dựng hệ thống phân cấp).

Tuy nhiên, trong hầu hết các hệ thống, khi nói đến cơ sở dữ liệu, các kiểu dữ liệu tĩnh hơn cách chúng được xử lý. Do đó, các phương pháp phân tích hệ thống như biểu đồ luồng dữ liệu đã được phát triển chuyên sâu. Phát triển cơ sở dữ liệu quan hệ. Kích thích sự phát triển của các kỹ thuật phát triển dữ liệu xây dựng trong các sơ đồ ER cụ thể ER. Mô hình dữ liệu quan hệ trực tiếp sử dụng khái niệm mối quan hệ như một ánh xạ. Nó gần nhất với mô hình trình bày dữ liệu khái niệm. Và nó thường làm nền tảng cho nó.

Không giống như nhà lý thuyết mô hình đồ thị, trong mô hình quan hệ, các mối quan hệ giữa các mối quan hệ được thực hiện một cách ngầm định, mà khóa của các mối quan hệ được sử dụng. Ví dụ, các quan hệ thuộc kiểu phân cấp được thực hiện theo cơ chế khóa chính và khóa ngoại, khi thực tế thuộc tính phải có trong quan hệ cấp dưới.

Một thuộc tính như vậy của các quan hệ trong các quan hệ chính sẽ được gọi là khóa chính, và trong cấp dưới là khóa phụ.

Tiến bộ trong sự phát triển của các ngôn ngữ lập trình liên quan chủ yếu đến việc nhập dữ liệu và sự xuất hiện của các ngôn ngữ hướng đối tượng đã làm cho nó có thể tiếp cận việc phân tích các hệ thống phức tạp từ quan điểm của các biểu diễn phân cấp, nghĩa là sử dụng các lớp đối tượng với các thuộc tính đa hình, kế thừa và đóng gói.

TỶ LỆ LÀ MỘT BẢNG.

Chỉnh sửa bảng biểu, hồ sơ ...

Xóa những gì đã được tạo và

Chỉnh sửa.


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

Mô hình dữ liệu quan hệ hiện đang phổ biến nhất vì kiểu trình bày dữ liệu này.

Mô hình quan hệ có thể được coi như một phương pháp trình bày dữ liệu đặc biệt, chứa dữ liệu của chính nó (dưới dạng bảng), và cách thức làm việc và thao tác với nó (dưới dạng liên kết). Mô hình quan hệ giả định ba yếu tố khái niệm: Cấu trúc, Tính toàn vẹn và Xử lý dữ liệu. Những yếu tố này có những khái niệm bắt buộc riêng cần được giải thích để trình bày thêm.

Bảng được coi như một nơi lưu trữ dữ liệu trực tiếp. Theo truyền thống trong các hệ thống quan hệ, một bảng được gọi là Thái độ. Hàng trong bảng được gọi là bởi một tuple và cột thuộc tính... Trong trường hợp này, các thuộc tính có tên duy nhất (trong mối quan hệ).

Số bộ giá trị trong bảng được gọi là bảng số... Số lượng thuộc tính trình độ. Một số nhận dạng duy nhất được đặt cho mối quan hệ, nghĩa là một hoặc nhiều thuộc tính có giá trị không giống nhau tại cùng một thời điểm - số nhận dạng được gọi là khóa chính.Domain nó là tập hợp các giá trị đồng nhất có thể chấp nhận được cho thuộc tính này hoặc thuộc tính đó. Do đó, một miền có thể được coi là một tập hợp dữ liệu được đặt tên và các phần cấu thành của tập hợp này là các đơn vị không thể phân chia một cách hợp lý (ví dụ: danh sách tên các nhân viên của một tổ chức có thể hoạt động như một miền, nhưng không phải tất cả các tên đều có thể trình bày trong bảng).

SUMM Kireeva 25.50 Motyleva 17.05 … …. …

Thái độ

thuộc tính

Các trường KOD, NAME, SUMM là các thuộc tính bảng có trong tiêu đề.

Các cặp KOD 5216, NAME Kireev, SUMM 25.50 là các phần tử của phần thân mối quan hệ.

Trong cơ sở dữ liệu quan hệ, không giống như các mô hình khác, người dùng chỉ định dữ liệu nào là cần thiết cho anh ta chứ không phải cách thực hiện. Vì lý do này, quá trình di chuyển và điều hướng cơ sở dữ liệu trong các hệ thống quan hệ là tự động và tác vụ này trong DBMS được thực hiện bởi trình tối ưu hóa. Công việc của nó là lấy dữ liệu từ cơ sở dữ liệu theo yêu cầu một cách hiệu quả nhất. Do đó, trình tối ưu hóa ít nhất phải có thể xác định dữ liệu được tìm nạp từ bảng nào, có bao nhiêu thông tin trong các bảng này và thứ tự vật lý của các bản ghi trong bảng là gì và chúng được nhóm như thế nào.

Ngoài ra, cơ sở dữ liệu quan hệ cũng thực hiện các chức năng của một thư mục. Danh mục chứa mô tả về tất cả các đối tượng tạo nên cơ sở dữ liệu: bảng, chỉ mục, trình kích hoạt, v.v. Rõ ràng, một thành phần như trình tối ưu hóa rất quan trọng đối với hoạt động chính xác của toàn bộ hệ thống. Trình tối ưu hóa sử dụng thông tin được lưu trữ trong danh mục. Một thực tế thú vị là bản thân danh mục là một tập hợp các bảng, vì vậy DBMS có thể thao tác nó theo những cách truyền thống mà không cần dùng đến bất kỳ thủ thuật và phương pháp đặc biệt nào.

Miền và mối quan hệ

Các định nghĩa cơ bản: Miền, các kiểu quan hệ, vị ngữ.

Mối quan hệ có một số thuộc tính cơ bản:

1. Trong trường hợp chung nhất, không có bộ giá trị chung nào trong quan hệ - điều này xuất phát từ chính định nghĩa của quan hệ. Tuy nhiên, đối với một số DBMS, trong một số trường hợp, cho phép sai lệch so với thuộc tính này. Miễn là mối quan hệ có khóa chính, các bộ giá trị giống hệt nhau sẽ bị loại trừ.

2. Các bộ số không được sắp xếp theo thứ tự từ trên xuống dưới - đơn giản là không có khái niệm về một số vị trí trong một quan hệ. Trong một mối quan hệ mà không mất thông tin, bạn có thể sắp xếp thành công các bộ giá trị theo bất kỳ thứ tự nào.

3. Các thuộc tính không được sắp xếp theo thứ tự từ trái sang phải. Các thuộc tính trong tiêu đề của quan hệ có thể được đặt theo bất kỳ thứ tự nào, trong khi tính toàn vẹn của dữ liệu không bị vi phạm. Do đó, khái niệm về một số vị trí liên quan đến một thuộc tính cũng không tồn tại.

4. Giá trị của các thuộc tính bao gồm các đơn vị không thể phân chia một cách logic - điều này xuất phát từ thực tế là các giá trị được lấy từ các miền, nếu không chúng ta có thể nói rằng các quan hệ không chứa các nhóm lặp lại. Đó là, chúng được bình thường hóa.

Hệ thống quan hệ hỗ trợ một số kiểu quan hệ:

1. Các biến được đặt tên là các biến quan hệ được xác định trong DBMS bằng các toán tử tạo và theo quy tắc, là cần thiết để trình bày thông tin thuận tiện hơn cho người dùng.

2. Các mối quan hệ cơ bản trực tiếp là một phần quan trọng của cơ sở dữ liệu, vì vậy chúng được đặt tên riêng trong quá trình thiết kế.

3. Một quan hệ dẫn xuất là một quan hệ được xác định thông qua các quan hệ khác, thường là cơ bản, bằng cách sử dụng các phương tiện của DBMS.

4. Dạng xem này thực sự là một quan hệ dẫn xuất được đặt tên và dạng xem này được thể hiện độc quyền thông qua các toán tử DBMS được áp dụng cho các quan hệ được đặt tên, vì vậy chúng không tồn tại về mặt vật lý trong cơ sở dữ liệu.

5. Kết quả của các truy vấn là một quan hệ dẫn xuất không tên có chứa dữ liệu (kết quả của một truy vấn cụ thể). Kết quả không được lưu trữ trong cơ sở dữ liệu mà tồn tại miễn là người dùng cần.

6. Mối quan hệ được lưu trữ là mối quan hệ được duy trì vật lý trong bộ nhớ của một mối quan hệ. Mối quan hệ được lưu trữ thường bao gồm cơ sở mối quan hệ. Dựa trên những điều trên, bạn có thể định nghĩa cơ sở dữ liệu quan hệ là một tập hợp các mối quan hệ được kết nối với nhau.


Một kết nối trong trường hợp này là sự liên kết của hai hoặc nhiều mối quan hệ.

KOD QUẢNG CÁO
1 1 Mối quan hệ một-nhiều là tại mỗi thời điểm, mỗi phần tử (bộ A) tương ứng với một số phần tử của bộ B
∞ Liên kết nhị phân
Sinh viên
Giáo viên
Thời khóa biểu của các lớp học

Sinh viên

Kết nối bậc ba


Toàn vẹn dữ liệu

Trong các mô hình quan hệ, vấn đề toàn vẹn dữ liệu được dành một vị trí đặc biệt. Nhớ lại rằng khóa hoặc khóa tiềm năng là tập hợp tối thiểu các thuộc tính, theo các giá trị mà bộ giá trị được yêu cầu có thể được tìm thấy một cách rõ ràng; tính tối thiểu có nghĩa là việc loại trừ bất kỳ thuộc tính nào khỏi tập hợp không cho phép xác định bộ theo các thuộc tính còn lại.

Mọi mối quan hệ đều có ít nhất một chìa khóa khả dĩ. Một trong số chúng được lấy làm khóa chính.

Khi chọn khóa chính, nên ưu tiên cho các khóa không phải là khóa tổng hợp hoặc các khóa bao gồm một tập hợp các thuộc tính tối thiểu. Cũng không nên sử dụng các khóa có giá trị văn bản dài (Nên sử dụng các thuộc tính số nguyên làm khóa). Vì vậy, để xác định một nhân viên, bạn có thể sử dụng số nhân sự duy nhất hoặc số hộ chiếu, hoặc tập hợp họ, tên viết tắt và số phòng ban. Không được phép khóa chính của mối quan hệ, tức là bất kỳ thuộc tính nào tham gia vào khóa chính đều nhận các giá trị không xác định. Trong trường hợp này, một tình huống mâu thuẫn sẽ nảy sinh ( va chạm): Phần tử không phải là duy nhất của khóa chính xuất hiện. Do đó, cần cẩn thận khi thiết kế cơ sở dữ liệu.

Giới thiệu về khóa ngoại. Điều đáng chú ý là mối quan hệ C nối mối quan hệ B và A thì nó phải bao gồm các khóa ngoại tương ứng với khóa chính của mối quan hệ A và B.

Khóa ngoại của một bảng được tạo bằng cách sử dụng nhiều khóa chính của các bảng khác.

Vì vậy, khi xem xét vấn đề lựa chọn cách liên kết mối quan hệ trong cơ sở dữ liệu, câu hỏi đặt ra là khóa ngoại là gì. Trong trường hợp này, đối với mỗi khóa ngoại, cần giải quyết vấn đề liên quan đến khả năng (hoặc không thể) xuất hiện các giá trị không xác định trong khóa ngoại (NULL - giá trị - giá trị thuộc tính cho thông tin bị thiếu). Nói cách khác, có thể có một số bộ trong một mối quan hệ mà không có bộ nào được biết đến trong mối quan hệ liên kết của nó không?

Mặt khác, bạn cần phải suy nghĩ trước về điều gì sẽ xảy ra khi bạn xóa các bộ giá trị khỏi mối quan hệ mà khóa ngoại đề cập đến. Tuy nhiên, có những khả năng có thể xảy ra sau:

· Hoạt động thác- nghĩa là, việc xóa các bộ giá trị trong một mối quan hệ dẫn đến việc xóa các bộ giá trị liên quan đến mối quan hệ. Ví dụ: xóa thông tin về họ của tên, v.v. một nhân viên ở một khía cạnh nào đó dẫn đến việc bị xóa tiền lương của mình ở khía cạnh khác;

· Hoạt động giới hạn trong - nghĩa là, chỉ những bộ giá trị bị xóa mà không có thông tin liên quan ở khía cạnh khác. Không phải tất cả thông tin đều bị xóa (không phải ở mọi khía cạnh) vì nó có thể được sử dụng theo những cách khác, việc xóa thông tin dẫn đến vi phạm tính toàn vẹn của dữ liệu. Nếu thông tin đó có sẵn thì không thể thực hiện việc xóa, ví dụ như xóa thông tin về tên, họ, v.v. một nhân viên chỉ có thể thực hiện được nếu không có thông tin liên quan đến tiền lương của anh ta.

Nó là cần thiết để cung cấp cho công nghệ về những gì sẽ xảy ra khi cố gắng cập nhật khóa chính của một mối quan hệ được tham chiếu bởi một số khóa ngoại. Tại đây, bạn có các tùy chọn tương tự như để xóa:

· Hoạt động được xếp tầng, nghĩa là, khi khóa chính được cập nhật, khóa ngoại trong mối quan hệ liên kết sẽ được cập nhật. Ví dụ: cập nhật khóa chính trong mối quan hệ mà thông tin nhân viên được lưu trữ dẫn đến cập nhật khóa ngoại trong mối quan hệ với thông tin bảng lương.

· Hoạt động bị hạn chế, tức là chỉ những khóa chính không có thông tin liên quan nào khác mới được cập nhật. Nếu thông tin như vậy có sẵn, thì không thể thực hiện cập nhật. Ví dụ: việc cập nhật khóa chính trong một mối quan hệ mà thông tin về một nhân viên được lưu trữ chỉ có thể thực hiện được nếu không có thông tin về mức lương của anh ta trong mối quan hệ được liên kết.1


Đại số quan hệ

Cơ sở chính thức của cơ sở của mô hình cơ sở dữ liệu quan hệ là đại số quan hệ, dựa trên lý thuyết tập hợp và xem xét một toán tử đặc biệt trên các quan hệ, và phép tính quan hệ dựa trên logic toán học.

Công việc

A A A B C C D D E
D D
MỘT
A B C D D E F F G

Cần lưu ý rằng đại số quan hệ rất mạnh mẽ - các truy vấn cơ sở dữ liệu phức tạp có thể được thể hiện bằng một biểu thức duy nhất. Chính vì lý do này mà các cơ chế này được đưa vào mô hình dữ liệu quan hệ. Bất kỳ truy vấn nào được biểu thị bằng một biểu thức đại số quan hệ đơn lẻ hoặc một công thức tính toán quan hệ đơn lẻ, đều có thể được biểu thị bằng một toán tử duy nhất của ngôn ngữ này.

Đại số quan hệ có một thuộc tính quan trọng - nó được đóng lại đối với khái niệm quan hệ. Điều này có nghĩa là một biểu thức đại số quan hệ được thực hiện trên các quan hệ cơ sở dữ liệu quan hệ và kết quả tính toán của chúng cũng là các quan hệ.

Ý tưởng chính của đại số quan hệ là phương tiện thao tác các quan hệ, được coi như một tập hợp, dựa trên nhiều phép toán truyền thống, được bổ sung bằng một số phép toán cụ thể cho cơ sở dữ liệu.

Hãy để chúng tôi mô tả một biến thể của đại số được đề xuất bởi KODDOM. Hoạt động bao gồm 8 toán tử chính:

Tìm nạp một quan hệ (hoạt động một ngôi)

Phép chiếu mối quan hệ (phép toán một ngôi)

Quan hệ công đoàn

Giao điểm của các quan hệ (phép toán nhị phân)

Phép trừ các quan hệ

Mối quan hệ sản phẩm

Kết nối các mối quan hệ

Phân chia các mối quan hệ

Các hoạt động này có thể được giải thích như sau:

· Kết quả của việc chọn một quan hệ cho một số điều kiện là một quan hệ chỉ bao gồm các bộ giá trị của quan hệ ban đầu thỏa mãn điều kiện này.

· Khi một quan hệ được chiếu vào một tập hợp các thuộc tính nhất định của nó, một quan hệ có các bộ giá trị được lấy từ các bộ giá trị tương ứng của quan hệ đầu tiên sẽ thu được.

· Khi thực hiện phép toán kết hợp hai quan hệ, sẽ thu được một quan hệ bao gồm tất cả các bộ giá trị có trong ít nhất một trong các quan hệ tham gia vào phép toán.

· Khi thực hiện phép toán giao điểm của hai quan hệ, một quan hệ sẽ thu được bao gồm tất cả các bộ giá trị có trong cả hai quan hệ ban đầu.

· Khi thực hiện phép toán trừ hai quan hệ, sẽ thu được một quan hệ bao gồm tất cả các bộ giá trị có trong quan hệ thứ nhất, ngoại trừ những bộ giá trị cũng được bao gồm trong quan hệ thứ hai.

· Khi thực hiện một tích trực tiếp của hai quan hệ, một quan hệ có các bộ giá trị là sự kết hợp của các bộ giá trị của quan hệ thứ nhất và thứ hai.

· Khi hai quan hệ được nối với nhau bằng một số điều kiện, quan hệ kết quả của các bộ giá trị được hình thành như một sự kết hợp của các bộ giá trị của quan hệ thứ nhất và thứ hai thỏa mãn điều kiện này.

· Hoạt động của phép chia quan hệ có hai toán hạng - quan hệ nhị phân (gồm hai thuộc tính) và đơn phân (gồm một thuộc tính). Kết quả của phép toán là một quan hệ bao gồm các bộ giá trị bao gồm quan hệ của thuộc tính đầu tiên của các bộ giá trị của quan hệ thứ nhất, sao cho tập giá trị của thuộc tính thứ hai trùng với tập giá trị của quan hệ thứ hai .

Ngoài các thao tác trên, có một số thao tác đặc biệt điển hình để làm việc với cơ sở dữ liệu:

· Kết quả của thao tác đổi tên, quan hệ là một tập hợp các bộ giá trị trùng với phần thân của quan hệ ban đầu, nhưng tên của các thuộc tính đã được thay đổi.

Theo đó, kết quả của một phép toán quan hệ là một quan hệ nào đó, sau đó có thể tạo thành biểu thức quan hệ trong đó, thay vì quan hệ ban đầu (toán hạng), một biểu thức quan hệ lồng nhau sẽ được sử dụng. Điều này là do thực tế là các phép toán của đại số quan hệ thực sự bị đóng với khái niệm quan hệ. Hãy bắt đầu với hoạt động hợp nhất quan hệ, tuy nhiên, điều này áp dụng như nhau đối với các phép toán giao và kết hợp, nghĩa là, trong đại số quan hệ, kết quả của phép toán hợp là một quan hệ. Giả sử trong đại số quan hệ, khả năng hỗn hợp Hai quan hệ tùy ý với các tập thuộc tính khác nhau, thì kết quả của một phép toán như vậy sẽ là nhiều, nhưng nhiều loại bộ giá trị khác nhau, nghĩa là nói chung, không phải là một quan hệ. Nếu chúng ta tiến hành từ yêu cầu rằng đại số quan hệ được đóng lại đối với khái niệm quan hệ, thì một phép toán như vậy hỗn hợp Là vô nghĩa. Điều này làm nảy sinh khái niệm mối quan hệ tương thích trên sự hợp nhất: hai quan hệ chỉ tương thích nếu chúng có cùng tiêu đề, nghĩa là chúng có cùng một bộ tên thuộc tính và các thuộc tính giống nhau được xác định trong cùng một miền.

Với điều kiện hai quan hệ tương thích về mặt liên hợp, khi phép toán liên hợp giao điểm của phép trừ thường được thực hiện trên chúng, kết quả của phép toán là một quan hệ có tiêu đề xác định rõ trùng với tiêu đề của mỗi quan hệ - Toán hạng. Nếu hai quan hệ không hoàn toàn tương thích về mặt liên kết, nghĩa là chúng tương thích về mọi thứ ngoại trừ tên thuộc tính, thì trước khi thực hiện một thao tác như kết nối, các quan hệ này có thể được thực hiện hoàn toàn tương thích về mặt kết hợp bằng cách áp dụng thao tác đổi tên .

Sự vận hành của sản phẩm trực tiếp của hai quan hệ làm nảy sinh những vấn đề mới. Trong Lý thuyết tập hợp, sản phẩm trực tiếp có thể thu được cho bất kỳ tập hợp nào. Các phần tử của tập kết quả sẽ là các cặp được tạo thành từ các phần tử của tập hợp thứ nhất và thứ hai. Vì quan hệ là tập hợp, nên có thể lấy tích trực tiếp cho hai quan hệ bất kỳ. Tuy nhiên, kết quả sẽ không phải là một thái độ. Các phần tử của kết quả sẽ không phải là các bộ giá trị, mà là các cặp bộ giá trị. Do đó, trong đại số quan hệ, một dạng đặc biệt của phép toán lấy tích trực tiếp được sử dụng - tích trực tiếp mở rộng của các quan hệ. Khi lấy tích trực tiếp mở rộng của hai quan hệ, phần tử của quan hệ kết quả là một bộ được hình thành bằng cách hợp nhất một bộ của quan hệ thứ nhất và một bộ của quan hệ thứ hai. Ngay lập tức, một vấn đề thứ hai nảy sinh, liên quan đến việc có được một tiêu đề được hình thành chính xác của quan hệ kết quả, điều này dẫn đến sự cần thiết phải đưa ra khái niệm về tính tương thích của các quan hệ, bằng cách lấy một sản phẩm trực tiếp mở rộng.

Hai quan hệ chỉ tương thích trong việc lấy một sản phẩm trực tiếp nếu tập hợp các tên thuộc tính của các quan hệ này không trùng nhau. Bất kỳ hai quan hệ nào cũng có thể được chuyển đổi thành một dạng tương thích bằng cách lấy sản phẩm trực tiếp bằng cách áp dụng thao tác đổi tên cho một trong các quan hệ này.

Hoạt động tìm nạp yêu cầu hai quan hệ: quan hệ ban đầu, toán hạng và một điều kiện ràng buộc đơn giản. Kết quả của hoạt động tìm nạp, một quan hệ tiêu đề được tạo ra phù hợp với tiêu đề quan hệ toán hạng và phần thân chứa các bộ giá trị quan hệ toán hạng thỏa mãn các giá trị của điều kiện ràng buộc.

Hãy giới thiệu một số toán tử.

Cho phép union biểu thị phép toán hợp, phép toán cắt nhau, phép trừ phép toán trừ. Để biểu thị một phép toán lựa chọn, chúng ta sẽ sử dụng cấu trúc A trong đó B, trong đó A là quan hệ toán hạng và B là một điều kiện so sánh đơn giản. Gọi C1 và C2 là hai điều kiện lấy mẫu đơn giản

A trong đó C1 VÀ C2 giống với (A trong đó C1) cắt nhau (A trong đó C2)

A trong đó C1 HOẶC C2 giống với (A trong đó C1) liên minh (A trong đó C2)

A trong đó C1 không phải C2 giống với (A trong đó C1) trừ (A trong đó C2)

Sử dụng các định nghĩa này, có thể triển khai các phép toán lựa chọn trong đó điều kiện lựa chọn là một biểu thức logic tùy ý bao gồm các điều kiện đơn giản bằng cách sử dụng các kết nối logic (và, hoặc không). Phép toán lấy các phép chiếu, quan hệ A op vào danh sách các thuộc tính a1, a2,…, an sẽ là một quan hệ có tiêu đề là tập các thuộc tính, a1, a2,…, an. Phần thân của kết quả sẽ bao gồm các bộ giá trị mà trong quan hệ A có một bộ giá trị, thuộc tính a1 có giá trị b1, thuộc tính a2 có giá trị b2< и так далее атрибут an – bn. По сути при выполнении операции проекции определяется «Вертикальная» вырезка отношения - операнда с удалением возникающих кортежей –дубликатов.

Phép toán nối, đôi khi được gọi là phép nối có điều kiện, yêu cầu hai toán hạng, một quan hệ có thể nối và một toán hạng thứ ba, một điều kiện đơn giản. Để mối quan hệ A và B được kết nối. Như trong trường hợp của phép toán lựa chọn, điều kiện của phép nối C có dạng, (a comp –op b) hoặc (a comp –op const) trong đó A và B là tên thuộc tính của quan hệ A và B, nghĩa là hằng số đã cho. Comp-op là một phép toán so sánh hợp lệ trong ngữ cảnh này. Sau đó, theo định nghĩa, kết quả của phép toán nối là quan hệ thu được bằng cách thực hiện phép toán ràng buộc, theo điều kiện C của tích trực tiếp của tỷ số A và B.

Có một trường hợp kết nối đặc biệt quan trọng, kết nối tự nhiên. Một phép toán nối được gọi là phép toán nối tự nhiên nếu các điều kiện nối là (a = b) trong đó a và b là các thuộc tính của các toán hạng nối khác nhau. Trường hợp này rất quan trọng vì nó đặc biệt phổ biến trong thực tế và có các thuật toán triển khai hiệu quả cho nó trong DBMS. Phép toán nối tự nhiên được áp dụng cho một cặp quan hệ A và B có chung một thuộc tính P, tức là một thuộc tính có cùng tên và được xác định trên cùng một miền. Gọi ab biểu thị sự kết hợp của các tiêu đề của quan hệ A và B. Khi đó sự kết hợp tự nhiên là kết quả của sự kết hợp của A và B được chiếu vào a. Phép toán của phép nối tự nhiên không được bao gồm trực tiếp trong tập các phép toán của quan hệ đại số, nhưng nó có ý nghĩa thực tiễn rất quan trọng.

Phép toán phân chia mối quan hệ cần giải thích chi tiết hơn vì rất khó hiểu. Cho hai quan hệ A (a1, a2, .., an, b1, b2, ..., bm)

B (b1, b2, ..., bn) Chúng ta sẽ giả sử rằng thuộc tính b1 của mối quan hệ A và thuộc tính b1 của mối quan hệ B được xác định trên cùng một miền. Hãy gọi tập thuộc tính (aj) là thuộc tính tổng hợp a và tập hợp (bj) có thuộc tính tổng hợp b. Sau đó, chúng ta sẽ nói về phép chia quan hệ của quan hệ nhị phân A (a, b) cho quan hệ đơn phân B (b).

Kết quả của phép chia A cho B là một quan hệ một ngôi C (a), bao gồm các bộ giá trị như vậy v mà trong quan hệ A có các bộ giá trị mà trong tập giá trị (w) bao gồm tập giá trị của b trong mối quan hệ với B.

Vì phép chia là phép toán khó nhất, hãy để chúng tôi giải thích nó bằng một ví dụ. Để có hai quan hệ trong cơ sở dữ liệu sinh viên: SINH VIÊN (TÊN ĐẦY ĐỦ, SỐ) và NAM (TÊN ĐẦY ĐỦ), và quan hệ một ngôi NAMES chứa tất cả tên mà sinh viên của học viện có. Sau đó, sau khi thực hiện phép toán chia quan hệ SINH VIÊN theo quan hệ NAMES, sẽ thu được một quan hệ một ngôi chứa các số thẻ sinh viên thuộc về sinh viên với tất cả các họ có thể có trong học viện này.


Giải tích quan hệ

Giả sử có một cơ sở dữ liệu với cấu trúc SINH VIÊN (số lượng, tên, học bổng, mã nhóm) và quan hệ NHÓM (gr_nom, gr_col, gr old) Giả sử rằng bạn cần tìm ra tên và số lượng sinh viên. vé cho sinh viên là trưởng nhóm có hơn 25 người. Trong đại số quan hệ, bạn cần thực hiện các bước sau cho truy vấn như vậy:

1. Thực hiện nối các quan hệ SINH VIÊN và NHÓM, theo điều kiện "student_number = gr_star";

2. Giới hạn tỷ lệ kết quả bằng điều kiện gr_col> 25.

3. Chiếu kết quả của thao tác trước đó lên thuộc tính student_name, student_number.

Ở đây, từng bước, trình tự thực hiện truy vấn trong cơ sở dữ liệu được xây dựng, mỗi truy vấn tương ứng với một thao tác quan hệ. nếu chúng ta tạo cùng một truy vấn bằng cách sử dụng phép tính quan hệ, thì chúng ta sẽ nhận được một công thức có thể đọc được: Cung cấp STUD_NAME và STUD_NUMBER cho các sinh viên như vậy để nhóm GR_STAR và giá trị GR_COL> 25 cùng tồn tại. Trong công thức thứ hai, chúng tôi chỉ chỉ ra các đặc điểm của mối quan hệ kết quả, nhưng không nói gì về phương pháp hình thành của nó. Trong trường hợp này, DBMS phải tự quyết định loại hoạt động nào và theo thứ tự cần thiết để thực hiện trên các quan hệ SINH VIÊN và NHÓM. Cả hai phương pháp được xem xét trong ví dụ này thực sự tương đương và không có chuyển đổi phức tạp nào từ phương pháp này sang phương pháp khác.

Các khái niệm cơ bản của phép tính quan hệ là các khái niệm về một biến số với một phạm vi giá trị nhất định của nó, và khái niệm về một công thức được hình thành tốt dựa trên các biến số và đặc biệt. Chức năng. Phạm vi của một biến là gì? Có giải tích bộ và giải tích miền, nghĩa là dọc hoặc ngang. Trong phép tính tuple, các miền của định nghĩa biến là quan hệ cơ sở dữ liệu, nghĩa là, giá trị có thể chấp nhận của mỗi biến là một bộ của một quan hệ nào đó. Trong phép tính miền, miền định nghĩa của biến là miền xác định các thuộc tính của quan hệ cơ sở dữ liệu, nghĩa là giá trị hợp lệ của mỗi biến là giá trị của mỗi biến.

Byte Số nguyên Chuỗi Char
M
n
K

Lệnh RANGE được sử dụng để xác định các bộ giá trị. Ví dụ, để xác định một biến STUDENT có phạm vi là STUDENT, bạn cần sử dụng cấu trúc RANGE STUDENT LÀ SINH VIÊN. Từ định nghĩa này, nó dẫn đến rằng tại bất kỳ thời điểm nào, biến sinh viên đại diện cho một bộ các quan hệ SINH VIÊN. Khi sử dụng nhiều biến trong công thức, bạn có thể tham chiếu các giá trị thuộc tính của các biến. Ví dụ: để tham chiếu đến giá trị của thuộc tính STUDENT của biến STUDENT, bạn cần sử dụng cấu trúc STUDENT.STUD_NAME.

Các công thức được xây dựng đúng dùng để biểu thị các điều kiện áp dụng cho các biến tuple. Các công thức như vậy dựa trên các phép so sánh đơn giản, là các phép toán so sánh giá trị của các thuộc tính của các biến và các hằng số được chỉ định theo nghĩa đen. Ví dụ, cấu trúc STUDENT.STUD_NOM = 123456. Là một so sánh đơn giản. Một phiên bản phức tạp hơn của công thức ghép là với sự trợ giúp của các kết nối logic AND, OR, NOT, IF… THEN. Cuối cùng, nó được phép xây dựng các công thức được hình thành tốt bằng cách sử dụng các bộ định lượng. Nếu F là một công thức được hình thành tốt trong đó biến var tham gia, thì các cấu trúc tồn tại (định lượng tồn tại) var (F) và FORALL (cho tất cả các bộ giá trị) var (F) là đúng.

Các biến có trong công thức được định dạng tốt có thể tự do hoặc bị ràng buộc. Tất cả các biến có trong thành phần của chúng trong quá trình xây dựng mà không sử dụng bộ định lượng đều miễn phí. Điều này có nghĩa là nếu đối với một số tập giá trị của các biến tự do khi tính toán công thức, giá trị "true" nhận được, thì các giá trị này có thể được đưa vào quan hệ kết quả. Nếu bộ định lượng được sử dụng trong việc xây dựng công thức, thì các biến sẽ bị ràng buộc. Khi tính toán giá trị của một công thức được thiết kế tốt như vậy, không phải một giá trị nào của biến liên quan được sử dụng, mà sử dụng toàn bộ miền định nghĩa của nó.

1) HIỆN TẠI STUD2 (STUD.1STUD_STIP> STUD2.STUD_STIP)

2) FORALL STUD2 (STUD.1STUD_STYP> STUD2.STUD_STIP)

Gọi STUD1 và STUD2 là hai bộ biến được xác định cho quan hệ học sinh, khi đó công thức cho bộ giá trị hiện tại của biến STUD1 chỉ nhận giá trị đúng nếu, trong toàn bộ quan hệ, học sinh có một bộ như vậy được liên kết với biến STUD2 mà giá trị của thuộc tính STUD_STIP của nó thỏa mãn điều kiện so sánh nội bộ. Công thức được xây dựng đúng # 2 cho bộ giá trị đã xây dựng STUD 1 nhận giá trị true nếu đối với tất cả các bộ giá trị quan hệ STUDENTS được kết hợp với biến STUD 2 giá trị của thuộc tính STUD.STIP thỏa mãn điều kiện bên trong.

Do đó, các công thức được hình thành tốt cung cấp một phương tiện để thể hiện một điều kiện lựa chọn từ mối quan hệ cơ sở dữ liệu. Để có thể sử dụng phép tính quan hệ cho công việc thực tế với cơ sở dữ liệu, cần có thêm một thành phần xác định tên tập hợp và tên cột của quan hệ kết quả. Thành phần này được gọi là danh sách mục tiêu.

Danh sách mục tiêu giống như:

· Var.attr - tên của một biến tự do, attr là tên của thuộc tính quan hệ mà biến var được định nghĩa.

· Var tương đương với một quan hệ từ một danh sách, Var.attr1, Var.attr1… Var.attr№ bao gồm tên của tất cả các thuộc tính của quan hệ xác định.

· Tên_mới = var.attr; tên mới của thuộc tính tương ứng của mối quan hệ kết quả.

Tùy chọn thứ hai là bắt buộc trong trường hợp mã trong công thức sử dụng một số biến miễn phí có cùng phạm vi. Trong phép tính miền, miền không phải là miền của các mối quan hệ, mà là miền. Về cơ sở dữ liệu NHÓM SINH VIÊN, chúng ta có thể nói về các biến miền TÊN (Giá trị miền là tên hợp lệ hoặc SỐ HỌC SINH). (Giá trị miền là số sinh viên hợp lệ).

Sự khác biệt chính giữa phép tính các miền và phép tính các bộ giá trị là sự hiện diện của một tập hợp các vị từ bổ sung cho phép người ta thể hiện cái gọi là các điều kiện liên kết. Nếu R là một quan hệ n-ary với các thuộc tính (a1, a2,… an), thì điều kiện liên kết có dạng R (ai1: Vi1, ai2: Vi2,… aim: Vim) trong đó (m<=n). Где в Vij это либо литерально заданная константа либо имя кортежной переменной. Условие членства принимает значение истина, только в том случае если в отношении R существует кортеж, содержащий следующие значения указанных атрибутов. Если от Vij константа то на атрибут aij накладывается жёсткое условие независящее от текущих доменных переменных. Если же Vij имя доменной переменной то условие членства может принимать различные значения при разных значениях этой переменной.

Vị từ là một hàm logic trả về true hoặc false cho một số đối số. Một mối quan hệ có thể được xem như một vị từ với các đối số là thuộc tính của mối quan hệ được đề cập. Nếu một bộ giá trị cụ thể nhất định có trong quan hệ, thì vị từ sẽ trả về true; ngược lại, false.

Trong tất cả các khía cạnh khác, các công thức và biểu thức cho phép tính miền trông tương tự như các công thức và biểu thức cho phép tính tuple. Ký hiệu miền quan hệ là trọng tâm của hầu hết các truy vấn ngôn ngữ dựa trên biểu mẫu.


Thông tin tương tự.


Mô hình dữ liệu là một tập hợp các cấu trúc dữ liệu và các hoạt động để xử lý chúng. Sử dụng mô hình dữ liệu, bạn có thể hình dung cấu trúc của các đối tượng và các mối quan hệ được thiết lập giữa chúng. Thuật ngữ của mô hình dữ liệu được đặc trưng bởi các khái niệm "phần tử dữ liệu" và "các quy tắc ràng buộc". Mục dữ liệu mô tả bất kỳ tập hợp dữ liệu nào và các quy tắc ràng buộc xác định các thuật toán cho mối quan hệ của các mục dữ liệu. Cho đến nay, nhiều mô hình dữ liệu khác nhau đã được phát triển, nhưng trong thực tế, ba mô hình chính được sử dụng. Phân bổ các mô hình dữ liệu phân cấp, mạng và quan hệ. Theo đó, họ nói về DBMS phân cấp, mạng và quan hệ.

О Mô hình dữ liệu phân cấp. Dữ liệu được tổ chức theo thứ bậc rất phổ biến trong cuộc sống hàng ngày. Ví dụ, cấu trúc của cơ sở giáo dục đại học là cấu trúc phân cấp đa cấp. Cơ sở dữ liệu phân cấp (dạng cây) bao gồm một tập hợp các phần tử có thứ tự. Trong mô hình này, các phần tử ban đầu sinh ra các phần tử khác, và các phần tử này lần lượt tạo ra các phần tử tiếp theo. Mỗi đứa trẻ chỉ có một cha hoặc mẹ.

Sơ đồ tổ chức, danh sách tài liệu, mục lục trong sách, kế hoạch dự án và nhiều bộ sưu tập dữ liệu khác có thể được trình bày theo cách phân cấp. Tính toàn vẹn của các liên kết giữa tổ tiên và con cháu tự động được duy trì. Quy tắc cơ bản: không có hậu duệ nào có thể tồn tại mà không có cha mẹ của nó.

Nhược điểm chính của mô hình này là cần phải sử dụng hệ thống phân cấp đã được đặt trong cơ sở của cơ sở dữ liệu trong quá trình thiết kế. Nhu cầu tổ chức lại dữ liệu liên tục (và thường là không thể tổ chức lại) đã dẫn đến việc tạo ra một mô hình tổng quát hơn - mạng.

О Mô hình dữ liệu mạng. Cách tiếp cận mạng để tổ chức dữ liệu là một phần mở rộng của cách tiếp cận phân cấp. Mô hình này khác với mô hình hierachic ở chỗ mỗi phần tử được tạo có thể có nhiều hơn một phần tử mẹ. ■

Vì cơ sở dữ liệu mạng có thể trực tiếp đại diện cho tất cả các loại mối quan hệ vốn có trong dữ liệu của tổ chức tương ứng, dữ liệu này có thể được điều hướng, khám phá và truy vấn theo mọi cách, nghĩa là, mô hình mạng không được kết nối chỉ bởi một hệ thống phân cấp. Tuy nhiên, để soạn một truy vấn đến cơ sở dữ liệu mạng, cần phải nghiên cứu sâu về cấu trúc của nó (để có sơ đồ của cơ sở dữ liệu này trong tay) và phát triển cơ chế điều hướng cơ sở dữ liệu, đây là một hạn chế đáng kể của việc này. mô hình cơ sở dữ liệu.

Giới thiệu về mô hình dữ liệu quan hệ. Ý tưởng cơ bản đằng sau mô hình dữ liệu quan hệ là biểu diễn bất kỳ tập dữ liệu nào dưới dạng bảng hai chiều. Trong trường hợp đơn giản nhất, mô hình quan hệ mô tả một bảng hai chiều, nhưng thông thường mô hình này mô tả cấu trúc và mối quan hệ giữa một số bảng khác nhau.

Mô hình dữ liệu quan hệ

Vì vậy, mục đích của hệ thống thông tin là xử lý dữ liệu Về các đối tượng thế giới thực, có tính đến kết nối giữa các đối tượng. Trong lý thuyết DB, dữ liệu thường được gọi là thuộc tính và các đối tượng - các thực thể.Đối tượng, thuộc tính và kết nối là những khái niệm cơ bản của I.S.

Một đối tượng(hoặc thực thể) là một cái gì đó tồn tại và rõ ràng, nghĩa là, một đối tượng có thể được gọi là "cái gì đó" mà nó có tên và cách để phân biệt một đối tượng tương tự này với một đối tượng khác. Ví dụ, mọi trường học là một đối tượng. Đối tượng cũng là một người, một lớp ở trường, một công ty, một hợp kim, một hợp chất hóa học, ... Đối tượng không chỉ là vật thể vật chất mà còn là những khái niệm trừu tượng hơn phản ánh thế giới thực. Ví dụ, các sự kiện, khu vực, tác phẩm nghệ thuật; sách (không phải là sản phẩm in mà là tác phẩm), sân khấu biểu diễn, phim; các quy phạm pháp luật, các lý thuyết triết học, v.v.

Thuộc tính(hoặc là được)- đây là một số chỉ báo đặc trưng cho một đối tượng nhất định và lấy một số nhất định, dạng văn bản hoặc giá trị khác cho một trường hợp cụ thể của đối tượng. Hệ thống thông tin hoạt động với các tập hợp các đối tượng được thiết kế liên quan đến một lĩnh vực chủ đề nhất định, sử dụng giá trị thuộc tính(dữ liệu) của một số đối tượng nhất định. Ví dụ, chúng ta hãy xem các lớp học trong một trường học như một tập hợp các đối tượng. Số học sinh trong một lớp là một số cho trước, nhận một giá trị bằng số (một lớp có 28, lớp khác có 32). Tên của lớp là một tên cho sẵn có ý nghĩa theo văn bản (một lớp có 10A, lớp kia có 9B, v.v.).

Sự phát triển của cơ sở dữ liệu quan hệ bắt đầu vào cuối những năm 1960, khi các bài báo đầu tiên xuất hiện thảo luận; khả năng sử dụng trong việc thiết kế cơ sở dữ liệu những cách thông thường và tự nhiên để trình bày dữ liệu - cái gọi là mô hình danh mục dữ liệu dạng bảng.

Người sáng lập lý thuyết cơ sở dữ liệu quan hệ được coi là nhân viên của IBM, Tiến sĩ E. Codd, người đã xuất bản bài báo thứ 6 (tháng 6 năm 1970 Mô hình dữ liệu quan hệ cho các ngân hàng dữ liệu được chia sẻ lớn(Một mô hình dữ liệu quan hệ cho ngân hàng dữ liệu tập thể lớn). Bài báo này là bài viết đầu tiên sử dụng thuật ngữ "mô hình dữ liệu quan hệ". Lý thuyết về cơ sở dữ liệu quan hệ, được phát triển vào những năm 70 tại Hoa Kỳ bởi Tiến sĩ E. Codd, có một nền tảng toán học mạnh mẽ mô tả các quy tắc để tổ chức dữ liệu một cách hiệu quả. Cơ sở lý thuyết do E. Codd xây dựng đã trở thành cơ sở cho sự phát triển của lý thuyết thiết kế cơ sở dữ liệu.

E. Codd, là một nhà toán học được giáo dục, đã đề xuất sử dụng bộ máy của lý thuyết tập hợp (liên hợp, giao điểm, hiệu số, tích Descartes) để xử lý dữ liệu. Ông đã chứng minh rằng bất kỳ tập dữ liệu nào cũng có thể được biểu diễn dưới dạng bảng hai chiều thuộc một loại đặc biệt, được gọi là "quan hệ" trong toán học.

Quan hệ một cơ sở dữ liệu như vậy được coi là trong đó tất cả dữ liệu được trình bày cho người dùng dưới dạng các bảng giá trị dữ liệu hình chữ nhật, và tất cả các thao tác trên cơ sở dữ liệu được rút gọn thành thao tác trên các bảng.

Bàn gồm có cột (trường)dòng (bản ghi); có một tên duy nhất trong cơ sở dữ liệu. bàn phản ánh Loại đối tượng thế giới thực (Bản chất), và mỗi người trong số cô ấy chuỗi là một đối tượng cụ thể. Mỗi cột trong bảng là một tập hợp các giá trị cho một thuộc tính cụ thể của một đối tượng. Các giá trị được chọn từ tập hợp tất cả các giá trị có thể có của thuộc tính đối tượng, được gọi là miền.

Ở dạng tổng quát nhất, miền được xác định bằng cách chỉ định một số kiểu dữ liệu cơ bản, mà các phần tử của miền thuộc về và một biểu thức logic tùy ý được áp dụng cho các phần tử dữ liệu. Nếu, khi đánh giá một điều kiện logic trên một mục dữ liệu, kết quả là "true", thì mục này thuộc về miền. Trong trường hợp đơn giản nhất, miền được định nghĩa là một tập hợp giá trị tiềm năng hợp lệ của cùng một loại. Ví dụ: tập hợp ngày sinh của tất cả nhân viên tạo thành “miền ngày sinh” và tên của tất cả nhân viên tạo thành “miền tên nhân viên”. Miền ngày tháng năm sinh có kiểu dữ liệu để lưu trữ thông tin về thời điểm và miền tên nhân viên phải là kiểu dữ liệu ký tự.

Nếu hai giá trị đến từ cùng một miền, bạn có thể so sánh hai giá trị. Ví dụ: nếu hai giá trị thuộc miền ngày sinh, bạn có thể so sánh chúng để xác định nhân viên nào lớn tuổi hơn. Nếu các giá trị được lấy từ các miền khác nhau, thì việc so sánh chúng không được phép, vì rất có thể, điều đó không có ý nghĩa. Ví dụ, sẽ không có gì xác định ngoài việc so sánh tên và ngày sinh của một nhân viên.

Mỗi cột (trường) có một tên, tên này thường được viết ở đầu bảng. Khi thiết kế các bảng trong một DBMS cụ thể, có thể chọn cho mỗi trường một loại, nghĩa là, xác định một tập hợp các quy tắc để hiển thị nó, cũng như xác định những hoạt động có thể được thực hiện trên dữ liệu được lưu trữ trong trường này. Tập hợp các loại có thể khác nhau từ DBMS đến DBMS.

Tên trường phải là duy nhất trong bảng, tuy nhiên các bảng khác nhau có thể có các trường trùng tên. Bất kỳ bảng nào cũng phải có ít nhất một trường; các trường được sắp xếp trong bảng theo thứ tự tên của chúng khi nó được tạo. Không giống như các trường, chuỗi không có tên; thứ tự của chúng trong bảng không được xác định và số lượng không bị giới hạn về mặt logic.

Vì các hàng trong bảng không được sắp xếp theo thứ tự, nên không thể chọn một hàng theo vị trí của nó - không có “đầu tiên”, “thứ hai”, “cuối cùng” trong số chúng. Bất kỳ bảng nào cũng có một hoặc nhiều cột, các giá trị trong số đó xác định duy nhất từng hàng của nó. Một cột như vậy (hoặc một tổ hợp các cột) được gọi là khóa chính... Một trường nhân tạo thường được sử dụng để đánh số các bản ghi trong một bảng. Ví dụ, một trường như vậy có thể là thứ tự của nó, có thể đảm bảo tính duy nhất của mỗi bản ghi trong bảng. Khóa phải có các thuộc tính sau.

Tính độc đáo. Tại bất kỳ thời điểm nào, không có hai bộ giá trị khác nhau của mối quan hệ có cùng giá trị cho sự kết hợp của các thuộc tính có trong khóa. Có nghĩa là, trong bảng không thể có hai dòng có cùng số định danh hoặc số hộ chiếu.

Tính tối thiểu. Không có thuộc tính nào trong khóa có thể bị loại trừ khỏi khóa mà không vi phạm tính duy nhất. Điều này có nghĩa là không cần thiết phải tạo một khóa bao gồm cả số hộ chiếu và số nhận dạng. Chỉ cần sử dụng bất kỳ thuộc tính nào trong số này để xác định duy nhất bộ tuple là đủ. Bạn cũng không nên đưa thuộc tính không phải là duy nhất vào khóa, tức là không được sử dụng kết hợp số nhận dạng và tên nhân viên làm khóa. Bằng cách loại trừ tên nhân viên khỏi khóa, bạn vẫn có thể xác định duy nhất từng hàng.

Mỗi quan hệ có ít nhất một khóa khả dĩ, vì tổng tất cả các thuộc tính của nó thỏa mãn điều kiện duy nhất - điều này xuất phát từ chính định nghĩa của quan hệ.

Một trong các khóa có thể được chọn ngẫu nhiên trong làm khóa chính. Phần còn lại của các khóa khả thi, nếu có, được coi là chìa khóa thay thế. Ví dụ: nếu bạn chọn một số nhận dạng làm khóa chính, thì số hộ chiếu sẽ là một khóa thay thế.

Mối quan hệ của các bảng là một yếu tố thiết yếu của mô hình dữ liệu quan hệ. Cô ấy được hỗ trợ khóa ngoại.

Khi mô tả một mô hình cơ sở dữ liệu quan hệ, các thuật ngữ khác nhau thường được sử dụng cho cùng một khái niệm, tùy thuộc vào mức độ mô tả (lý thuyết hoặc thực hành) và hệ thống (Access, SQL Server, dBase). Bàn 2.3 tóm tắt các thuật ngữ được sử dụng.

Bảng 2.3. Thuật ngữ cơ sở dữ liệu

Lý thuyết cơ sở dữ liệu ____________ Cơ sở dữ liệu quan hệ _________ SQL Server __________

Bảng bảng quan hệ

Hàng ghi Tuple

Trường thuộc tính _______________ Cột

Cơ sở dữ liệu quan hệ

Cơ sở dữ liệu quan hệ là một tập hợp các quan hệ chứa tất cả các thông tin phải được lưu trữ trong cơ sở dữ liệu. Có nghĩa là, cơ sở dữ liệu đại diện cho tập hợp các bảng cần thiết để lưu trữ tất cả dữ liệu. Các bảng cơ sở dữ liệu quan hệ có liên quan với nhau một cách logic. Các yêu cầu thiết kế cho một cơ sở dữ liệu quan hệ có thể được tóm tắt trong một vài quy tắc.

О Mỗi bảng có một tên duy nhất trong cơ sở dữ liệu và bao gồm các hàng cùng loại.

О Mỗi bảng bao gồm một số cột và giá trị cố định. Không thể lưu trữ nhiều hơn một giá trị trong một cột của hàng. Ví dụ: nếu có một bảng thông tin về tác giả, ngày xuất bản, số phát hành, v.v., thì cột có tên tác giả không được chứa nhiều hơn một họ. Nếu sách được viết bởi hai hoặc nhiều tác giả, bạn sẽ phải sử dụng các bảng bổ sung.

О Tại thời điểm không có hai hàng trong bảng trùng lặp nhau. Các hàng phải khác nhau ít nhất một giá trị để có thể xác định duy nhất bất kỳ hàng nào trong bảng.

О Mỗi cột được gán một tên duy nhất trong bảng; một kiểu dữ liệu cụ thể được đặt cho nó để các giá trị đồng nhất (ngày, họ, số điện thoại, số tiền, v.v.) được đặt trong cột này.

О Nội dung thông tin đầy đủ của cơ sở dữ liệu được trình bày dưới dạng các giá trị rõ ràng của chính dữ liệu và phương pháp trình bày này là duy nhất. Ví dụ: mối quan hệ giữa các bảng dựa trên dữ liệu được lưu trữ trong các cột tương ứng, chứ không dựa trên bất kỳ con trỏ nào xác định giả tạo mối quan hệ.

О Khi xử lý dữ liệu, bạn có thể tự do tham chiếu đến bất kỳ hàng hoặc cột nào của bảng. Các giá trị được lưu trữ trong bảng không áp đặt bất kỳ hạn chế nào đối với thứ tự mà dữ liệu được truy cập. Mô tả cột,

Mô hình quan hệ

Mô hình cơ sở dữ liệu quan hệ được đề xuất vào năm 1969 bởi E.F. Codd (E.F. Codd). Để biết một số thông tin giới thiệu về cơ sở dữ liệu quan hệ, hãy xem bài viết tổng quan “ DB và DBMS"2. Vì hiện tại, cơ sở dữ liệu quan hệ đang chiếm ưu thế, trong bài báo này (cũng như trong các bài báo" Mô tả dữ liệu”, “Xử lí dữ liệu" và " Thiết kế cơ sở dữ liệu”2) các khái niệm cơ bản nhất của mô hình quan hệ được kiểm tra chi tiết.

Ngay lập tức, chúng tôi lưu ý rằng lý thuyết về cơ sở dữ liệu quan hệ ban đầu được xây dựng bằng một ngôn ngữ toán học chặt chẽ, và nó là những khái niệm toán học được định nghĩa chính thức, chặt chẽ mô tả tốt nhất bản chất của sự vật. Đồng thời, trong hầu hết các trường hợp, chúng tôi sẽ cố gắng thực hiện điều này mà không gây thiệt hại nhiều, có thể hy sinh tính chặt chẽ của thuật ngữ để có được sự minh bạch của bài thuyết trình.

Ý tưởng cơ bản đằng sau mô hình quan hệ như sau. Cơ sở dữ liệu bao gồm một số những cái bàn(trong trường hợp đơn giản nhất - từ một bảng). Các bảng có thể được thao tác thông qua các hoạt động phi thủ tục (khai báo) - yêu cầu, kết quả cũng là bảng.

Thường từ "quan hệ" ( quan hệ) trong thuật ngữ "mô hình quan hệ" được hiểu dựa trên thực tế là các liên kết được thiết lập trong cơ sở dữ liệu quan hệ ( kể lại) giữa các bảng. Giải thích này là thuận tiện, nhưng không chính xác. Trong hệ thống thuật ngữ gốc của Codd, liên kết các điều khoản ( quan hệ), thuộc tính ( thuộc tính) và bộ giá trị ( tuples) được sử dụng khi hầu hết chúng ta sử dụng các thuật ngữ bảng, cột (trường) và hàng (bản ghi) quen thuộc hơn.

Khi xây dựng một mô hình thông tin về lĩnh vực chủ đề (xem “ DB và DBMS”, “Thiết kế cơ sở dữ liệu”2) nổi bật thực thể(đối tượng), chúng được mô tả tính chất a (đặc điểm, thuộc tính) quan trọng cho mục đích mô hình hóa và các mối quan hệ được thiết lập giữa các thực thể. Ở giai đoạn chuyển đổi từ mô hình thông tin học sang mô hình quan hệ dữ liệu, các bảng xuất hiện chính xác. Thông thường, mỗi thực thể được đại diện bởi một bảng. Mỗi hàng của bảng (một bản ghi) tương ứng với một phiên bản của thực thể và mỗi trường mô tả một số thuộc tính (thuộc tính).

Ví dụ: nếu chúng ta cần lưu trữ thông tin về mọi người, bao gồm họ của mỗi người, tên, chữ viết tắt, TIN, quốc gia cư trú và ngày sinh, thì thực thể chính xác là người và dữ liệu được chỉ định là thuộc tính. Thực thể tự nhiên trở thành tên của bảng.

Bảng "Người"

Mô hình quan hệ yêu cầu mỗi hàng trong bảng phải là duy nhất, tức là sao cho hai dòng bất kỳ khác nhau về giá trị của ít nhất một thuộc tính.

Dạng bảng truyền thống rất hữu ích khi bạn cần trình bày dữ liệu. Nếu, như trong ví dụ trên, bạn chỉ quan tâm đến kết cấu- tên trường, sau đó theo quan điểm rõ ràng, dễ sử dụng trong sơ đồ và tiết kiệm không gian, sẽ thuận tiện hơn để mô tả nó như sau:

Chìa khóa

Chìa khóa những cái bànlà một trường hoặc một nhóm trường chứa các giá trị duy nhất trong bảng này... Khóa xác định duy nhất hàng tương ứng trong bảng. Nếu khóa bao gồm một trường, nó thường được gọi là giản dị nếu trong số nhiều - hỗn hợp... Trong ví dụ trên, khóa là trường TIN (chúng tôi coi rằng các TIN là duy nhất trong quốc gia).

Hãy xem một ví dụ về một bảng có khóa tổng hợp. Không có gì lạ khi các trang web dự báo thời tiết đưa ra thông tin theo cách sau: đối với mỗi ngày, nhiệt độ dự báo được chỉ định vào ban đêm, buổi sáng, buổi chiều và buổi tối. Để lưu trữ thông tin được chỉ định, bạn có thể sử dụng một bảng có dạng sau:

Trong bảng này, không phải trường Ngày, Giờ trong ngày hay Nhiệt độ đều là khóa - các giá trị có thể được lặp lại trong mỗi trường này. Nhưng sự kết hợp của các trường Ngày + Giờ trong ngày là duy nhất và xác định duy nhất một hàng trong bảng. Đây là khóa tổng hợp.

Thường có một tình huống trong đó sự lựa chọn của một chìa khóa không rõ ràng. Hãy quay lại ví dụ đầu tiên. Giả sử, ngoài họ, tên, chữ viết tắt, mã số thuế, ngày tháng năm sinh, cần lưu thêm số, số hộ chiếu dân sự và số, số hộ chiếu nước ngoài. Bảng sẽ trông như thế này.

Có tối đa ba phím để lựa chọn trong bảng này. Một trong số đó là đơn giản (TIN), hai là hỗn hợp (Sê-ri + Số hộ chiếu dân sự và Sê-ri + Số hộ chiếu nước ngoài). Trong tình huống như vậy, nhà phát triển chọn khóa thuận tiện nhất theo quan điểm tổ chức cơ sở dữ liệu (trong trường hợp chung là khóa, việc tìm kiếm giá trị trong đó mất ít thời gian nhất). Khóa được chọn trong trường hợp này thường được gọi là khóa chính, hoặc Tiểu học, một khóa và các tổ hợp cột khác mà từ đó khóa có thể được tạo ra là khả thi, hoặc thay thế, chìa khóa. Lưu ý rằng luôn có ít nhất một khóa khả thi trong bảng, vì các hàng không thể được lặp lại và do đó, sự kết hợp của tất cả các cột được đảm bảo là một khóa khả thi.

Khi hiển thị các bảng, thông thường sẽ đánh dấu các khóa chính của bảng. Ví dụ, các trường có liên quan thường được gạch chân. Và Microsoft Access củng cố các trường chính.

Thậm chí thường xuyên hơn với sự mơ hồ trong việc lựa chọn khóa, các nhà phát triển phải đối mặt với việc không có khóa trong số dữ liệu cần được lưu trữ. Một thực tế tương tự có thể được thiết lập trong quá trình phân tích đối tượng. Ví dụ: nếu bạn cần lưu trữ một danh sách đơn giản của những người - tên, họ, tên viết tắt và ngày tháng năm sinh, thì không có khóa nào trong tập hợp thuộc tính này - có thể tưởng tượng rằng hai người khác nhau có cùng một dữ liệu hoàn toàn. . Trong trường hợp này, bạn phải nhập giả tạo một trường bổ sung, ví dụ: một số người duy nhất. Chìa khóa như vậy đôi khi được gọi trong tài liệu thay thế... Khá thường xuyên, một khóa thay thế cũng được giới thiệu vì lý do hiệu quả. Ví dụ: nếu một bảng có một khóa tổng hợp dài, thì các nhà phát triển thường giới thiệu một khóa đại diện số ngắn bổ sung và biến nó thành khóa chính. Thường thì điều này được thực hiện ngay cả khi có một khóa đơn giản với kiểu dữ liệu “bất tiện” (không hiệu quả cho việc tìm kiếm), ví dụ: một chuỗi. Những thao tác như vậy không còn liên quan đến lý thuyết, nhưng chúng khá phổ biến trong thực tế.

Người đọc chú ý có thể sẽ nhận thấy rằng khóa hầu như luôn có thể được mở rộng (trừ khi nó bao gồm tất cả các trường trong bảng) bằng cách bao gồm các trường thừa. Về mặt hình thức, một chìa khóa như vậy sẽ vẫn là một chìa khóa, nhưng từ quan điểm thực tế, nó chỉ là một trò chơi của các khái niệm. Những khóa như vậy thậm chí không được coi là có thể thực hiện được, vì luôn phải cố gắng giảm thiểu độ dài (độ phức tạp) của khóa.

Hình thức bình thường, bình thường hóa

Không phải mọi bảng mà chúng ta có thể vẽ trên giấy hoặc trong Word đều có thể là một bảng cơ sở dữ liệu quan hệ. Và không phải mọi bảng có thể được sử dụng trong cơ sở dữ liệu quan hệ đều đúng theo yêu cầu của mô hình quan hệ.

Trước hết, yêu cầu tất cả dữ liệu trong một cột phải cùng loại(cho các loại, xemMô tả dữ liệu”2). Từ quan điểm này, ví dụ dưới đây thậm chí không có ý nghĩa để thảo luận:

Thứ hai, yêu cầu bảng được chỉ định một khóa chính.

Những yêu cầu này là cần thiết, nhưng chưa đủ. Lý thuyết về cơ sở dữ liệu quan hệ đưa ra khái niệm về cái gọi là "dạng chuẩn" - các yêu cầu để tổ chức dữ liệu trong bảng. Các biểu mẫu thông thường được đánh số theo thứ tự khi các yêu cầu trở nên nghiêm ngặt hơn. Trong một cơ sở dữ liệu được thiết kế phù hợp, các bảng ở dạng bình thường ít nhất là thứ ba. Theo đó, chúng tôi sẽ xem xét ba hình thức bình thường đầu tiên. Nhớ lại rằng chúng ta đang xử lý các bảng thỏa mãn hai yêu cầu cơ bản đã nêu ở trên.

Dạng chuẩn đầu tiên (1NF)

Dạng chuẩn đầu tiên ra lệnh rằng tất cả dữ liệu có trong bảng phải là nguyên tử(không thể chia cắt). Danh sách các kiểu dữ liệu nguyên tử tương ứng được xác định bởi DBMS. Yêu cầu 1NF là hoàn toàn tự nhiên. Nó có nghĩa là mỗi trường của mỗi bản ghi chỉ nên chứa một giá trị, không phải là một mảng hoặc bất kỳ cấu trúc dữ liệu nào khác. Hãy đưa ra một ví dụ có ý nghĩa về một bảng không có trong 1NF. Giả sử chúng ta có danh sách các điểm của sinh viên trong một môn học nào đó.

Vì giá trị của trường Đánh giá không phải là nguyên tử, bảng không đáp ứng các yêu cầu của 1NF.

Một cách có thể để trình bày danh sách các điểm được viết trong hướng dẫn cho bài báo "Thiết kế cơ sở dữ liệu" 2.

Dạng chuẩn thứ hai (2NF)

Một bảng được cho là ở dạng chuẩn thứ hai nếu nó ở 1NF và mỗi cột không phải khóa hoàn toàn phụ thuộc vào khóa chính. Nói cách khác, giá trị của mỗi trường phải được xác định hoàn toàn bởi giá trị của khóa chính. Điều quan trọng cần lưu ý là sự phụ thuộc vào khóa chính được hiểu chính xác là sự phụ thuộc vào khóa nói chung, chứ không phải vào thành phần riêng biệt của nó (trong trường hợp khóa tổng hợp). Đây là một ví dụ về một bảng không có trong 2NF. Để làm điều này, hãy quay lại ví dụ dự báo thời tiết và thêm một cột khác vào bảng - thời gian mặt trời mọc (đây là một ví dụ hoàn toàn chính đáng, loại thông tin này thường được đưa ra trên các trang web dự báo thời tiết).

Như chúng ta nhớ, bảng này có khóa tổng hợp Ngày + Giờ trong ngày. Trường Nhiệt độ hoàn toàn phụ thuộc vào khóa chính - không có vấn đề gì với nó. Nhưng trường Mặt trời mọc chỉ phụ thuộc vào trường Ngày, thời gian trong ngày không tự nhiên ảnh hưởng đến thời gian mặt trời mọc.

Ở đây thích hợp để đặt câu hỏi: ý nghĩa thực tế của 2NF là gì? Việc sử dụng những hạn chế này là gì? Hóa ra - lớn. Giả sử trong ví dụ trên, nhà phát triển bỏ qua các yêu cầu 2NF. Đầu tiên, cái gọi là - lưu trữ dữ liệu không cần thiết. Rốt cuộc, nếu thời gian mặt trời mọc đã được lưu trữ cho một bản ghi với một ngày cụ thể, thì đối với tất cả các bản ghi khác với một ngày cụ thể, nó sẽ giống nhau và nói chung, không cần phải lưu trữ nó.

Hãy chú ý đến các từ "phải được". Và nếu không? Thật vậy, ở cấp độ cơ sở dữ liệu, điều này không được kiểm soát theo bất kỳ cách nào - khóa trong bảng là tổng hợp, ngày tháng có thể giống nhau (và theo nghĩa thì chúng rất có thể sẽ giống nhau). Và không có hạn chế chính thức nào (và sự hiểu biết của chúng tôi rằng “điều này không thể xảy ra” không áp dụng cho điều đó) không cấm chỉ định thời gian mặt trời mọc khác nhau cho cùng một ngày.

Dạng chuẩn thứ ba (3NF)

Một bảng được cho là nằm trong 3NF nếu nó khớp với 2NF và tất cả các cột không phải khóa đều độc lập lẫn nhau.

Có thể hiểu được sự phụ thuộc lẫn nhau của các cột như sau: các cột phụ thuộc lẫn nhau nếu bạn không thể thay đổi một trong số chúng mà không thay đổi cột kia.

Đây là một ví dụ về một bảng không có trong 3NF. Hãy xem xét một ví dụ về một sổ địa chỉ đơn giản để lưu số điện thoại nhà của những người sống, có lẽ, ở các vùng khác nhau của đất nước.

Trong bảng này, có một mối quan hệ giữa các cột không phải khóa Thành phố và mã Thành phố, do đó, bảng không nằm trong 3NF.

Lưu ý rằng nhà phát triển xác định sự hiện diện của sự phụ thuộc trên bằng cách phân tích lĩnh vực chủ đề - một sự va chạm như vậy không thể nhìn thấy bằng bất kỳ phương pháp chính thức nào. Khi bạn thay đổi các thuộc tính của vùng chủ đề, sự phụ thuộc giữa các cột có thể biến mất. Ví dụ: nếu các mã khác nhau được nhập trong cùng một thành phố (như 495 và 499 ở Mátxcơva), các cột tương ứng sẽ không còn liên quan về mặt vi phạm các yêu cầu của 3NF.

Trong lý thuyết về cơ sở dữ liệu quan hệ, các dạng của bậc cao hơn cũng được coi là dạng bình thường của Boyes - Codd, 4NF, 5NF và thậm chí cao hơn. Các hình thức này không có tầm quan trọng thực tế lớn và các nhà phát triển, theo quy luật, luôn dừng lại ở 3NF.

Chuẩn hóa cơ sở dữ liệu

Chuẩn hóa là quá trình chuyển đổi các bảng cơ sở dữ liệu sang dạng chuẩn đã chọn. Việc chuẩn hóa thành 2NF, như một quy luật, đi đến phân rã - chia một bảng thành nhiều bảng. Chuẩn hóa thành 3NF thường có thể được thực hiện bằng cách loại bỏ các cột phụ thuộc (được tính toán). Trong một số trường hợp, khi chuẩn hóa thành 3NF, bạn cũng phải thực hiện phân rã.

Cơ sở dữ liệu nhiều bảng, mối quan hệ giữa các bảng, khóa ngoại

Trong thực tế, cơ sở dữ liệu một bảng khá hiếm, vì theo quan điểm của mô hình hóa cơ sở dữ liệu miền, sự hiện diện của một bảng có nghĩa là sự hiện diện của một thực thể. Đổi lại, sự hiện diện của một số thực thể thường có nghĩa là sự hiện diện của các mối quan hệ giữa chúng.

Nếu không có ý định thiết kế một cơ sở dữ liệu hoàn chỉnh, hãy xem xét một ví dụ để chứng minh các mối quan hệ trong cơ sở dữ liệu nhiều bảng.

Giả sử chúng ta đang giải quyết một trường học có học sinh được phân nhóm theo lớp và giáo viên dạy các môn học nhất định. Chúng ta phân biệt ngay bốn thực thể: học sinh, giáo viên, lớp học và chủ thể. Các thực thể này đã cung cấp cho chúng ta bốn bảng.

Tiếp theo, chúng ta cần giải quyết vấn đề thuộc tính thực thể - loại thông tin nào chúng ta sẽ lưu trữ. Vì ví dụ của chúng tôi chỉ dành cho mục đích trình diễn, chúng tôi sẽ cố gắng giảm thiểu lượng thông tin được lưu trữ. Chúng tôi sẽ đồng ý lưu họ và tên cho mỗi học sinh, cho lớp - số song song và chữ cái xác định lớp bên trong song song, cho giáo viên - họ, tên và chữ viết tắt, cho môn học - chỉ tên của nó.

Bây giờ chúng ta phải giải quyết vấn đề khóa chính. Các bảng của học sinh và giáo viên, về nguyên tắc, không có khóa, vì vậy chúng tôi sẽ nhập một khóa số thay thế trong đó - một số. Bảng lớp và bảng nói chung có khóa. Trong bảng các lớp, khóa là tổng hợp, nó được tạo thành bởi các thuộc tính Số song song + Chữ cái, và trong bảng đối tượng, một khóa đơn giản bao gồm một trường duy nhất - tên của đối tượng. Nhớ lại rằng khi chúng ta nói về khóa, chúng ta đã đề cập rằng các khóa thay thế thường được thêm vào vì lý do hiệu quả, trong nỗ lực loại bỏ các khóa tổng hợp hoặc các trường khóa thuộc loại bất tiện, chẳng hạn như chuỗi. Đây là những gì chúng tôi sẽ làm. Hãy thêm một khóa số thay thế vào mỗi bảng.

Kết quả là, chúng ta sẽ nhận được tập hợp các bảng sau đây tương ứng với các thực thể được mô tả.

Hiểu được lĩnh vực chủ đề mà chúng tôi đang xử lý, chúng tôi biết rằng các thực thể của chúng tôi không tự tồn tại - chúng được kết nối với nhau bằng một số mối quan hệ mà chúng tôi đã nêu ở trên. Nhưng làm thế nào để kết nối chúng về mặt kỹ thuật? Bạn không thể làm mà không giới thiệu các trường bổ sung và thậm chí các bảng bổ sung. Hãy giải quyết các mối quan hệ giữa các thực thể theo thứ tự.

Để chỉ định một sinh viên vào một lớp nhất định, chúng tôi sẽ thêm một trường bổ sung Số lớp trong bảng “Sinh viên”. (Rõ ràng là kiểu của nó phải hoàn toàn trùng với kiểu của trường Số lớp trong bảng "Lớp".) Bây giờ chúng ta có thể liên kết các bảng "Sinh viên" và "Lớp" bằng các giá trị trùng nhau của các trường Số lớp. (chúng tôi đã không vô tình đặt tên các trường này giống nhau, trong thực tế, điều này thường được thực hiện để dễ dàng điều hướng các trường ràng buộc). Lưu ý rằng một bản ghi trong bảng “Lớp học” có thể tương ứng với nhiều bản ghi trong bảng “Học sinh” (và trong thực tế, nó rất có thể tương ứng - rất khó để hình dung một lớp học có một học sinh). Các bảng như vậy được cho là có liên quan với nhau bởi mối quan hệ “ một đến nhiều”. Và trường Số lớp trong bảng "Sinh viên" được gọi là khóa ngoại... Như bạn thấy, mục đích của khóa ngoại là liên kết các bảng. Lưu ý rằng khóa ngoại luôn tham chiếu đến khóa chính của bảng liên quan (tức là khóa ngoại nằm ở phía "nhiều"). Khóa chính được liên kết được gọi là cha mẹ mặc dù thuật ngữ này ít được sử dụng hơn.

Hãy minh họa những gì đã nói với một lược đồ theo kiểu Microsoft Access (để biết thêm thông tin về Lược đồ Dữ liệu Access, hãy xem bài viết "Mô tả dữ liệu" 2).

Bây giờ chúng ta hãy nghĩ về giáo viên và các môn học. Phân tích lĩnh vực chủ thể (đây là cách duy nhất - xét cho cùng, trạng thái thực sự của sự việc không thể được trích xuất từ ​​chính mô hình chính thức), chúng tôi nhận thấy rằng kiểu kết nối giữa các thực thể “giáo viên” và “chủ thể” khác với Thảo luận ở trên. Suy cho cùng, không chỉ một môn học được nhiều giáo viên dạy mà một giáo viên có thể dạy nhiều môn học. Do đó, có một mối liên hệ giữa các thực thể này “ nhiều nhiều”. Giới thiệu các trường bổ sung không còn đủ (hãy thử!). Mối quan hệ nhiều-nhiều luôn được giải quyết bằng cách giới thiệu một bảng bổ sung. Cụ thể, chúng ta sẽ tổ chức bảng "Giáo viên-Chủ đề", có cấu trúc như sau:

Bảng "Giáo viên-Chủ đề"

Bảng này có một khóa tổng hợp được hình thành từ hai trường của nó. Cả bảng Giáo viên và bảng Chủ đề đều liên quan đến bảng này theo mối quan hệ một-nhiều (tất nhiên, trong cả hai trường hợp, “nhiều” nằm ở phía Giáo viên-Chủ thể). Theo đó, có hai khóa ngoại trong bảng “Giáo viên-Chủ đề” (cả hai đều là một phần của khóa chính tổng hợp, không bị cấm) dùng để liên kết với các bảng tương ứng.

Trong thực tế, ngoài các mối quan hệ được coi là "một - nhiều" và "nhiều với nhiều", còn có mối quan hệ " một đối một”. Theo quan điểm của lý thuyết, mối quan hệ như vậy không được quan tâm, vì hai bảng được kết nối bởi mối quan hệ một-một luôn có thể được kết hợp đơn giản thành một. Tuy nhiên, trong cơ sở dữ liệu thực, mối quan hệ một-một được sử dụng để tối ưu hóa quá trình xử lý dữ liệu. Hãy để chúng tôi minh họa những gì đã được nói với một ví dụ.

Giả sử chúng tôi lưu trữ rất nhiều thông tin khác nhau về mọi người - dữ liệu về các tài liệu, số điện thoại, địa chỉ khác nhau của họ, v.v. Rất có thể, hầu hết dữ liệu này sẽ rất hiếm khi được sử dụng. Và thường thì chúng ta chỉ cần họ, tên, chữ viết tắt và số điện thoại. Sau đó, sẽ hợp lý nếu tổ chức hai bảng và liên kết chúng theo mối quan hệ 1-1. Lưu trữ thông tin được sử dụng thường xuyên trong một bảng (nhỏ) và phần còn lại trong một bảng khác. Đương nhiên, các bảng trong mối quan hệ một-một có cùng một khóa chính.

Quy tắc liêm chính

Mô hình quan hệ xác định hai quy tắc chung cho toàn vẹn cơ sở dữ liệu: toàn vẹn đối tượng và toàn vẹn tham chiếu.

Quy tắc toàn vẹn các đối tượng rất đơn giản. Nó yêu cầu khóa chính của bảng không chứa giá trị rỗng.

Quy tắc toàn vẹn tham chiếu yêu cầu khóa ngoại không chứa các giá trị không phù hợp với khóa mẹ... Quay trở lại ví dụ đã thảo luận ở trên, chúng ta phải yêu cầu, ví dụ, rằng các học sinh chỉ thuộc về lớp có số hiệu được chỉ ra trong bảng “Lớp học”.

Hầu hết các DBMS đều biết cách giám sát tính toàn vẹn của dữ liệu (tất nhiên, điều này đòi hỏi những nỗ lực thích hợp từ nhà phát triển ở giai đoạn mô tả cấu trúc dữ liệu). Đặc biệt, các cơ chế được sử dụng để duy trì tính toàn vẹn của tham chiếu xếp tầng các hoạt động. Đặc biệt, xếp tầng có nghĩa là khi một bản ghi bị xóa khỏi bảng “mẹ”, được liên kết với một bảng khác theo mối quan hệ một-nhiều, tất cả các bản ghi liên quan sẽ tự động bị xóa khỏi bảng “nhiều” (bởi chính DBMS, mà không có sự can thiệp của người dùng). Và điều này là tự nhiên, bởi vì các bản ghi như vậy "treo trong không khí", chúng không còn được kết nối với bất cứ điều gì.

Lập chỉ mục

Việc lập chỉ mục là cực kỳ quan trọng theo quan điểm ứng dụng thực tế, nhưng không bắt buộc theo quan điểm lý thuyết thuần túy. Mục đích chính của việc lập chỉ mục là để tối ưu hóa (tăng tốc) tìm kiếm (và theo đó là một số thao tác khác với cơ sở dữ liệu). Việc lập chỉ mục trong mọi trường hợp đều yêu cầu tài nguyên bổ sung (ở cấp vật lý, các tệp chỉ mục đặc biệt thường được tạo nhiều nhất). Các hoạt động liên quan đến sửa đổi dữ liệu, lập chỉ mục thậm chí có thể chậm lại, do đó, các chỉ mục thường là các bảng hiếm khi được cập nhật trong đó thường được tìm kiếm.

Tệp chỉ mục rất giống với chỉ mục của một cuốn sách thông thường. Đối với mỗi giá trị chỉ mục, một danh sách các hàng trong bảng có chứa giá trị đã cho được lưu trữ. Theo đó, bạn không cần phải xem toàn bộ bảng để tìm kiếm - bạn chỉ cần xem chỉ mục. Tuy nhiên, việc sửa đổi bản ghi có thể yêu cầu xây dựng lại chỉ mục. Và điều này cần thêm thời gian.

Tất nhiên, không có vấn đề gì về việc giảng dạy lý thuyết cơ sở dữ liệu quan hệ như một phần của khóa học khoa học máy tính cơ bản! Tuy nhiên, bài viết này rất quan trọng đối với bộ bách khoa toàn thư của chúng ta, vì trong trường hợp này, chúng ta đang xử lý những tài liệu không thể trình bày đầy đủ trong các bài học mà giáo viên phải sở hữu nó. Tại sao?

Thứ nhất, vì một số khái niệm chỉ được nghiên cứu trong khuôn khổ của khóa học cơ bản. Đây là cả một dạng xem bảng dữ liệu và các khóa bảng. Và chúng ta đều biết rằng chỉ nêu một số khái niệm mà không trình bày bức tranh chung là rất khó.

Thứ hai, thực hiện các truy vấn cơ sở dữ liệu đơn giản với trẻ em (tài liệu liên quan được trình bày trong bài viết "Xử lí dữ liệu" 2), cần phải xử lý các bảng đúng theo quan điểm của lý thuyết quan hệ. Không cần thiết phải giải thích cho học sinh rằng những bảng này là đúng, nhưng “nếu nó là… thì bảng đó sẽ sai”, nhưng việc sử dụng những ví dụ xấu là không thể chấp nhận được.

Trong một khóa học chuyên ngành khoa học máy tính, tình hình có thể khác về cơ bản. Hình thức làm việc quan trọng nhất và cực kỳ hiệu quả trong các lớp học chuyên ngành là thiết kế. Trong khuôn khổ các dự án giáo dục, việc phát triển các cơ sở dữ liệu đơn giản là có thể và cần thiết, và ở đây người ta không thể làm được nếu không có nền tảng của lý thuyết đã nêu. Tuy nhiên, phải tính đến những điều sau:

Các miền được lập mô hình không được quá lớn;

Học sinh phải rất quen thuộc với chúng (theo nghĩa này, dự án “Trường học”, khá nhàm chán đối với mọi người, không phải là lựa chọn tồi tệ nhất!);

Thật là ngây thơ khi mong đợi rằng sau khi nghe những điều cơ bản của lý thuyết, học sinh sẽ có thể tự thiết kế một thứ gì đó. Mỗi bước phải được thực hiện với họ, đưa ra lý do chi tiết cho hành động của họ.

Hệ quản trị cơ sở dữ liệu và hệ chuyên gia. Các khái niệm cơ bản về cơ sở dữ liệu quan hệ. Làm việc với các truy vấn. Các hình thức. Báo cáo. Tạo cơ sở dữ liệu.

Hệ quản trị cơ sở dữ liệu và chức năng của chúng

Trong công nghệ cơ sở dữ liệu hiện đại để tạo cơ sở dữ liệu, hỗ trợ và bảo trì chúng, phần mềm chuyên dụng được sử dụng - hệ quản trị cơ sở dữ liệu. DBMS là một bộ phần mềm và công cụ ngôn ngữ cần thiết cho việc tạo và vận hành cơ sở dữ liệu.

Ở giai đoạn phát triển cơ sở dữ liệu, DBMS được sử dụng để mô tả cấu trúc của cơ sở dữ liệu: xác định các bảng; xác định số lượng trường; loại dữ liệu được hiển thị trong chúng; kích thước của các lĩnh vực; xác định mối quan hệ giữa các bảng. Ngoài các bảng, hầu hết DBMS cung cấp cho việc tạo ra các công cụ đặc biệt để làm việc với dữ liệu - biểu mẫu, truy vấn.

Trong quá trình vận hành cơ sở dữ liệu, DBMS cung cấp việc chỉnh sửa cấu trúc của cơ sở dữ liệu, điền dữ liệu vào nó, tìm kiếm, sắp xếp, lựa chọn dữ liệu theo các tiêu chí xác định và tạo báo cáo.

Trong các hệ thống thông tin chạy trên máy tính cá nhân tương thích với IBM, cái gọi là hệ thống quản lý cơ sở dữ liệu giống dBASE, ví dụ, dBASE, FoxPro và Clipper, đã trở nên phổ biến. Đối với người dùng, điều cần thiết là, khác nhau về ngôn ngữ lệnh và định dạng của tệp chỉ mục, tất cả các DBMS này sử dụng cùng tệp cơ sở dữ liệu với phần mở rộng .DBF, định dạng của chúng trong một thời gian đã trở thành một loại tiêu chuẩn cơ sở dữ liệu.

Trong cơ sở dữ liệu giống dBASE, một cách tiếp cận quan hệ để tổ chức dữ liệu thực sự được sử dụng, tức là mỗi tệp DBF là một bảng hai chiều bao gồm một số cột cố định và một số hàng (bản ghi) có thể thay đổi. Về mặt tài liệu kỹ thuật, mỗi cột tương ứng với một trường của một trong năm loại (N - số, C - ký tự, D - ngày tháng, L - lôgic, M - ghi chú) và mỗi dòng - một bản ghi có độ dài cố định, bao gồm của một số trường cố định. Sử dụng ngôn ngữ lệnh của các DBMS này, bố cục của tệp DBF (mô tả bảng) được tạo và sửa, tệp chỉ mục được tạo, các thủ tục làm việc với cơ sở dữ liệu được mô tả (đọc, tìm kiếm, sửa đổi dữ liệu, tạo báo cáo, v.v.) . Một tính năng đặc trưng của tệp DBF là tính đơn giản và rõ ràng của nó: biểu diễn vật lý của dữ liệu trên đĩa tương ứng chính xác với biểu diễn của một bảng trên giấy. Tuy nhiên, nói chung, các hệ thống được xây dựng từ các tệp DBF nên được coi là lỗi thời.



Các DBMS khác (với định dạng tệp khác) cũng rất phổ biến - Paradox, Clarion, v.v. Cần nhấn mạnh rằng các hệ thống được liệt kê là hậu duệ của MS-DOS, nhưng hiện nay hầu hết chúng đã được cải tiến và có phiên bản dành cho Windows.

Trong số các hệ thống quan hệ hiện đại, DBMS phổ biến nhất dành cho Windows là Access của Microsoft, Approach của Lotus, Paradox của Borland. Nhiều hệ thống trong số này hỗ trợ công nghệ OLE và có thể xử lý không chỉ thông tin dạng số và văn bản mà còn cả hình ảnh đồ họa (hình ảnh, ảnh chụp) và thậm chí cả các đoạn âm thanh và video clip.

Các DBMS được liệt kê thường được gọi là DBMS trên máy tính để bàn, có nghĩa là lượng dữ liệu tương đối nhỏ được cung cấp bởi các hệ thống này. Tuy nhiên, không chỉ người dùng cá nhân, mà còn toàn bộ nhóm (đặc biệt là trong mạng cục bộ) thường làm việc với họ.

Đồng thời, các DBMS quan hệ mạnh mẽ hơn với cái gọi là truy cập SQL đang dần chuyển sang trung tâm của công nghệ thông tin hiện đại. Các DBMS này dựa trên công nghệ máy khách-máy chủ. Trong số các nhà sản xuất hàng đầu của các hệ thống như vậy có Oracle, Centura (Gupta), Sybase, Informix, Microsoft và những người khác.

Các kiểu dữ liệu trong cơ sở dữ liệu

Hệ thống thông tin hoạt động với các loại dữ liệu cơ bản sau đây.

Dữ liệu văn bản... Ý nghĩa của mỗi dữ liệu văn bản (ký tự) được biểu diễn bằng một tập hợp các ký tự chữ và số tùy ý, độ dài của chúng thường không vượt quá 255 (ví dụ: 5, 10, 140). Tên và chức vụ của mọi người, tên công ty, sản phẩm, thiết bị, v.v., được thể hiện trong IS dưới dạng dữ liệu văn bản. Trong một trường hợp cụ thể, giá trị của dữ liệu văn bản có thể là tên của tệp chứa thông tin phi cấu trúc có độ dài tùy ý (ví dụ: tiểu sử hoặc ảnh của một đối tượng). Trên thực tế, nó là một liên kết có cấu trúc cho phép bạn mở rộng đáng kể nội dung thông tin trong bảng của mình.

Dữ liệu số... Dữ liệu kiểu này thường được sử dụng để đại diện cho các thuộc tính, với các giá trị mà bạn cần để thực hiện các phép toán số học (trọng số, giá cả, hệ số, v.v.). Dữ liệu số, theo quy luật, có các đặc điểm bổ sung, ví dụ: số nguyên dài 2 byte, số dấu phẩy động (4 byte) ở định dạng cố định, v.v. Dấu phân tách phần nguyên và phần thập phân thường là dấu chấm.

Dữ liệu ngày và / hoặc thời gian... Dữ liệu kiểu ngày tháng được chỉ định ở một số định dạng mà máy đã biết, ví dụ, - DD.MM.YY (ngày, tháng, năm). Thoạt nhìn, đây là một trường hợp đặc biệt của dữ liệu văn bản. Tuy nhiên, sử dụng kiểu ngày đặc biệt trong IS có những ưu điểm sau. Đầu tiên, hệ thống có khả năng duy trì kiểm soát chặt chẽ (ví dụ: giá trị của tháng chỉ có thể rời rạc trong phạm vi 01-12). Thứ hai, có thể tự động đại diện cho định dạng ngày tùy thuộc vào truyền thống của một quốc gia cụ thể (ví dụ: ở Hoa Kỳ, định dạng MM-DD-GT được chấp nhận). Thứ ba, khi lập trình, các phép toán số học với ngày tháng được đơn giản hóa rất nhiều (ví dụ, hãy thử tính ngày theo cách thủ công trong 57 ngày sau một số nhất định). Việc sử dụng loại thời gian này có những lợi thế tương tự.

Dữ liệu logic... Kiểu dữ liệu này (đôi khi được gọi là boolean) chỉ có thể nhận một trong hai giá trị loại trừ lẫn nhau - Đúng hoặc Sai (quy ước: 1 hoặc 0). Trên thực tế, nó là một công tắc, giá trị của nó có thể được hiểu là "Có" và "Không" hoặc là "Đúng" và "Sai". Kiểu boolean thuận tiện để sử dụng cho những thuộc tính có thể nhận một trong hai giá trị loại trừ lẫn nhau, ví dụ: có bằng lái xe (có-không), nghĩa vụ quân sự (có-không), v.v.

Trường đối tượng OLE... Giá trị của dữ liệu đó có thể là bất kỳ đối tượng OLE nào có trên máy tính (đồ họa, âm thanh, video). Đặc biệt, danh sách học sinh không chỉ có ảnh tĩnh của học sinh mà còn có cả giọng nói của anh ta.

Các loại tùy chỉnh... Trong nhiều hệ thống, người dùng có cơ hội tạo các kiểu dữ liệu của riêng họ, ví dụ: "Ngày trong tuần" (Thứ Hai, Thứ Ba, v.v.), "Địa chỉ" (mã bưu điện - thành phố - ...), v.v.

Trong trường hợp đặc biệt, giá trị của dữ liệu văn bản có thể là tập hợp các khoảng trắng và giá trị của dữ liệu số có thể bằng không. Nếu không có thông tin nào được nhập vào bảng, giá trị sẽ là Null. Null (không có dữ liệu) không được nhầm lẫn với số không hoặc dấu cách. Trong nhiều hệ thống, điều quan trọng là người dùng phải ghi lại sự vắng mặt của dữ liệu đối với một số trường hợp đối tượng (ví dụ: sự vắng mặt của một địa chỉ, "Address is Null"). Nếu bạn vô tình nhập một khoảng trống trong một hàng bảng như vậy, hệ thống sẽ coi rằng địa chỉ đã được chỉ định và trường hợp này sẽ không được đưa vào danh sách các đối tượng bị thiếu địa chỉ.

Cơ sở dữ liệu quan hệ

Thuận tiện nhất cho cả người dùng và máy tính là việc trình bày dữ liệu dưới dạng một bảng hai chiều - hầu hết các hệ thống thông tin hiện đại chỉ làm việc với các bảng như vậy. Cơ sở dữ liệu bao gồm các bảng hai chiều được gọi là quan hệ , (trong tiếng Anh là "Relations" - quan hệ). Ý tưởng chính của phương pháp quan hệ là biểu diễn một cấu trúc dữ liệu tùy ý dưới dạng một bảng hai chiều đơn giản.

Một ví dụ về việc triển khai mô hình dữ liệu quan hệ sẽ là một bảng chứa thông tin về sinh viên.

Như bạn có thể thấy từ ví dụ trên, một bảng quan hệ có các thuộc tính sau:

· Mỗi hàng của bảng - một phần tử dữ liệu (thông tin về một học sinh);

· Tất cả các cột trong bảng là đồng nhất, tức là tất cả các mục trong một cột có cùng kiểu và độ dài (ví dụ, cột Tên hiển thị tên sinh viên kiểu ký tự với tối đa 17 ký tự);

· Mỗi cột có một tên duy nhất (ví dụ, không có hai cột Tên trong bảng);

· Không cho phép các dòng giống nhau trong bảng (mỗi học sinh chỉ được ghi một lần);

· Thứ tự của các hàng và cột trong bảng có thể tùy ý (mục nhập về học sinh trong bảng được thực hiện khi nhập học, trong khi thứ tự của các cột không quan trọng).

Các khối xây dựng của cơ sở dữ liệu quan hệ

Chúng ta hãy xem xét các yếu tố cấu trúc chính của cơ sở dữ liệu bằng cách sử dụng ví dụ về bảng quan hệ.

1. Trong cơ sở dữ liệu quan hệ, bất kỳ tập hợp dữ liệu nào cũng được biểu diễn dưới dạng bảng hai chiều (quan hệ), tương tự như danh sách sinh viên đã mô tả ở trên. Hơn nữa, mỗi bảng bao gồm một số cột cố định và một số hàng (biến) nhất định. Mô tả cột thường được gọi là bố cục bảng.

2. Mỗi cột của bảng đại diện cho một trường - một đơn vị cơ bản của tổ chức logic của dữ liệu, tương ứng với một đơn vị thông tin không thể phân chia - một thuộc tính của đối tượng dữ liệu (ví dụ: họ, địa chỉ của học sinh).

Các đặc điểm sau được sử dụng để mô tả trường:

· Tên trường (ví dụ, số tệp cá nhân, họ);

· Kiểu trường (ví dụ, ký tự, ngày tháng);

· Các đặc điểm bổ sung (độ dài trường, định dạng, độ chính xác).

Ví dụ, trường Ngày sinh có thể là loại "ngày tháng" và độ dài 8 (6 chữ số và 2 dấu chấm phân cách ngày, tháng và năm trong bản ghi ngày).

3. Mỗi hàng của bảng được gọi là một bản ghi. Bản ghi hợp nhất một cách hợp lý tất cả các trường mô tả một đối tượng dữ liệu, ví dụ, tất cả các trường trong hàng đầu tiên của bảng trên mô tả dữ liệu về sinh viên Petrov Ivan Vasilievich sinh 03/12/89, sống tại ul. Gorky, 12-34, học sinh lớp 4A, số hồ sơ cá nhân - P-69. Hệ thống đánh số các bản ghi theo thứ tự: 1,2, ..., n, trong đó n là tổng số bản ghi (hàng) trong bảng tại thời điểm hiện tại. Ngược lại với số trường (cột) trong bảng, số lượng bản ghi trong quá trình hoạt động của cơ sở dữ liệu có thể thay đổi theo ý muốn (từ 0 đến hàng triệu). Số lượng trường, tên và kiểu của chúng cũng có thể được thay đổi, nhưng đây đã là một thao tác đặc biệt được gọi là thay đổi bố cục bảng .

4. Trong cấu trúc của bản ghi tệp, các trường được chỉ định, các giá trị của chúng là một khóa đơn giản, xác định cá thể bản ghi. Ví dụ về khóa đơn giản như vậy trong bảng Học sinh là trường số tệp cá nhân, giá trị của nó xác định duy nhất một đối tượng trong bảng - một học sinh, vì không có hai học sinh nào trong bảng có cùng số tệp cá nhân.

5. Mỗi trường có thể được đưa vào một số bảng (ví dụ: một trường Họ có thể được đưa vào bảng Danh sách những người tham gia vào nhóm kịch).