Phát triển cơ sở dữ liệu quan hệ. Thiết kế cơ sở dữ liệu quan hệ dựa trên nguyên tắc chuẩn hóa: những bước đầu tiên của quá trình chuẩn hóa

Gửi công việc tốt của bạn trong cơ sở kiến ​​thức rất đơn giản. Sử dụng mẫu dưới đây

Các sinh viên, nghiên cứu sinh, các nhà khoa học trẻ sử dụng nền tảng kiến ​​thức trong học tập và công việc sẽ rất biết ơn các bạn.

Đăng trên http://www.allbest.ru/

Bài kiểm tra

Thiết kế cơ sở dữ liệu quan hệ

  • Bình thường hóa quan hệ
  • Phụ thuộc chức năng
  • Dạng Boyce-Codd bình thường
  • Văn học

Thiết kế cơ sở dữ liệu quan hệ

Mục tiêu chính của thiết kế cơ sở dữ liệu là giảm sự dư thừa của dữ liệu được lưu trữ và do đó tiết kiệm dung lượng bộ nhớ được sử dụng, giảm chi phí cho nhiều hoạt động cập nhật các bản sao dư thừa và trước hết là loại bỏ khả năng không nhất quán do lưu trữ thông tin về cùng một khối lượng ở những nơi khác nhau cùng một đối tượng. Dự phòng có nghĩa là một số dữ liệu hoặc nhóm dữ liệu có thể được lặp lại nhiều lần.

Trong quá trình thiết kế cơ sở dữ liệu, các vấn đề sau có thể phát sinh:

Cập nhật bất thường - Do dư thừa dữ liệu, tất cả dữ liệu phải được xem xét khi cập nhật, tuy nhiên, có thể phát sinh tình huống không phải tất cả dữ liệu đều được cập nhật (dữ liệu có thể không nhất quán).

Sự bất thường về bao gồm - có thể dữ liệu không thể được nhập vào cơ sở dữ liệu cho đến khi một số thông tin bổ sung được nhận và nhập.

Sự bất thường khi xóa - vấn đề ngược lại có thể xảy ra khi một số dữ liệu bị xóa (có thể mất thông tin hữu ích).

Số lượng giá trị Null không được giảm thiểu. Cũng giống như sự dư thừa, giá trị null là nguồn gốc của các vấn đề tiềm ẩn trong cơ sở dữ liệu quan hệ vì không thể xác định ý nghĩa của chúng. Vì vậy, nên hạn chế tối đa việc sử dụng chúng.

Ba vấn đề đầu tiên được giải quyết trong quá trình bình thường hóa quan hệ.

sự phụ thuộc hàm cơ sở quan hệ

Bình thường hóa quan hệ

Chuẩn hóa là một phân vùng (hoặc phân tách) một bảng thành hai hoặc nhiều bảng có các thuộc tính tốt hơn để thêm, thay đổi và xóa dữ liệu. Mục tiêu cuối cùng của việc chuẩn hóa là đạt được một thiết kế cơ sở dữ liệu "sạch" trong đó " mọi sự thật được lưu trữ chỉ một V. một địa điểm" , I E. sự dư thừa dữ liệu được loại bỏ. Điều này được thực hiện không phải để tiết kiệm bộ nhớ mà còn để loại bỏ những mâu thuẫn có thể xảy ra trong dữ liệu được lưu trữ.

Mỗi bảng trong cơ sở dữ liệu quan hệ đều thỏa mãn điều kiện luôn có một giá trị nguyên tử duy nhất tại giao điểm của mỗi hàng và cột của bảng và không bao giờ có thể có nhiều giá trị như vậy. Bất kỳ bảng nào thỏa mãn điều kiện này đều được gọi là bình thường hóa. Trong thực tế, các bảng không chuẩn hóa, tức là các bảng chứa các nhóm lặp lại, thậm chí không được xem xét trong cơ sở dữ liệu quan hệ.

Bảng chuẩn hóa tương ứng với Đầu tiên Bình thường hình thức, viết tắt là 1NF. Do đó, "chuẩn hóa" và "trong 1NF" có nghĩa giống nhau đối với một bảng. Tuy nhiên, trong thực tế, thuật ngữ "chuẩn hóa" thường được sử dụng theo nghĩa hẹp hơn - "chuẩn hóa hoàn toàn", có nghĩa là thiết kế không vi phạm bất kỳ nguyên tắc chuẩn hóa nào.

Bây giờ, ngoài 1NF, các mức chuẩn hóa khác có thể được xác định - dạng chuẩn thứ hai (2NF), dạng chuẩn thứ ba (3NF), v.v. Một bảng được coi là ở trạng thái 2NF nếu nó ở trạng thái 1NF và ngoài ra, còn thỏa mãn một số điều kiện bổ sung, bản chất của điều kiện này sẽ được thảo luận dưới đây. Một bảng ở mức 3NF nếu nó ở mức 2NF và cũng thỏa mãn một điều kiện bổ sung khác, v.v.

Vì vậy, mỗi hình thức bình thường, theo một nghĩa nào đó, bị hạn chế hơn nhưng cũng được mong muốn hơn so với hình thức trước đó. Điều này là do dạng chuẩn tắc (n+1)-n không có một số đặc điểm kém hấp dẫn của dạng chuẩn thứ n. Ý nghĩa chung của điều kiện bổ sung áp đặt cho dạng chuẩn thứ (n+1) đối với dạng chuẩn thứ n là loại bỏ các đặc điểm kém hấp dẫn này.

Thủ tục bình thường hóa quan hệ có thể đảo ngược. Ví dụ: một tập hợp các quan hệ trong 3NF có thể được chuyển đổi thành các quan hệ trong 2NF. Thuộc tính rất quan trọng này của việc chuẩn hóa có nghĩa là không có thông tin nào bị mất trong quá trình chuẩn hóa.

Lý thuyết chuẩn hóa dựa trên sự hiện diện của một số phụ thuộc nhất định giữa các trường của bảng. Nhấn mạnh vào các phụ thuộc chức năng, đa giá trị và kết nối.

Phụ thuộc chức năng

Cho X và Y là các tập con tùy ý của một tập thuộc tính của quan hệ R. Y phụ thuộc hàm vào X khi và chỉ khi mọi giá trị của X liên kết với chính xác một giá trị của Y. Ký hiệu: XY (đọc "X xác định hàm số Y "). Phần bên trái và bên phải của một ký hiệu tượng trưng lần lượt được gọi là phần xác định và phần phụ thuộc.

Cơm. 1. Bảng cung cấp PIC

Nói cách khác, nếu hai bộ của quan hệ R trùng nhau về giá trị của X thì chúng cũng trùng về giá trị của Y. Để làm rõ, hãy xem xét hình minh họa trong Hình 2. 1 là phiên bản được sửa đổi một chút của bảng cung cấp được thể hiện trên Hình 2. 2.

Tất cả các bộ của quan hệ PIC có cùng giá trị thuộc tính P№ đều có cùng giá trị của thuộc tính Hor. Điều này có nghĩa là các thuộc tính của Núi về mặt chức năng phụ thuộc vào các thuộc tính của P№: (P№)(Gor). Hơn nữa, về vấn đề này, còn có các phụ thuộc hàm không đổi khác: (P№, D№)(Kol), (P№, D№)(Gor), (P№, D№)(Gor, Col), (P Số, DNo.)(PNo.), (PNo., DNo.)(PNo., DNo., Gor, Kol), cũng như các phần phụ thuộc có chức năng tại bất kỳ thời điểm nào, nhưng không phải lúc nào cũng vậy , (Số P (Số lượng).

Lưu ý rằng nếu X là khóa ứng viên của quan hệ R thì tất cả các thuộc tính Y của quan hệ R phải phụ thuộc hàm vào X (đây là hệ quả của việc định nghĩa khóa ứng cử viên). Trong thực tế, nếu quan hệ R thỏa mãn sự phụ thuộc hàm của AB và A không phải là khóa dự tuyển thì R sẽ được đặc trưng bởi một số . Ví dụ, đối với PIC, thông tin mỗi nhà cung cấp nằm ở một thành phố nhất định sẽ được lặp lại nhiều lần.

Các phần phụ thuộc chức năng là các ràng buộc toàn vẹn nên chúng phải được kiểm tra mỗi khi cơ sở dữ liệu được cập nhật. Một cách rõ ràng để giảm bớt nhiều sự phụ thuộc chức năng là loại bỏ không đáng kể sự phụ thuộc, I E. những điều không thể không thực hiện được. Ví dụ: (P№, D№)(P№). Sự phụ thuộc chức năng là không đáng kể khi và chỉ khi vế phải của ký hiệu tượng trưng là tập con của vế trái. Sự phụ thuộc như vậy không được quan tâm từ quan điểm thực tế.

Khi phân tích các mối quan hệ, một vai trò đặc biệt được trao cho không thể rút gọn được sự phụ thuộc. Thuộc tính B phụ thuộc không thể rút gọn vào thuộc tính tổng hợp A nếu nó phụ thuộc chức năng vào A và không phụ thuộc chức năng vào bất kỳ tập con nào của thuộc tính A. Trong các ấn phẩm ban đầu, thay vì thuật ngữ không thể rút gọn được nghiện thuật ngữ được sử dụng đầy chức năng nghiện.

Sự phụ thuộc chức năng có thể được mô tả bằng sơ đồ. Đối với cơ sở dữ liệu nhà cung cấp và bộ phận (Hình 1), sơ đồ phụ thuộc chức năng được hiển thị trong Hình 2.

Mỗi mũi tên trong sơ đồ bắt đầu bằng khóa chính của quan hệ tương ứng. Các mũi tên khác có thể có trên sơ đồ. Trong trường hợp này, quy trình chuẩn hóa có thể được mô tả một cách không chính thức như một quy trình loại bỏ các mũi tên không bắt đầu trên khóa chính.

Các dạng chuẩn tắc được chứng minh bằng sự phụ thuộc hàm

Chúng tôi đã đề cập đến dạng chuẩn đầu tiên (1NF). Chúng ta hãy đưa ra một định nghĩa chặt chẽ hơn về nó, cũng như các định nghĩa về các dạng chuẩn tắc khác.

Một bảng ở dạng chuẩn thứ nhất (1NF) khi và chỉ khi không có hàng nào của nó chứa nhiều hơn một giá trị trong bất kỳ trường nào của nó và không có trường khóa nào của nó trống.

Ví dụ: bảng hiển thị trong Hình 3 không đáp ứng các yêu cầu này (dữ liệu trong trường D№ không phải là nguyên tử):

Cơm. 3. Ví dụ về bảng không phải là mối quan hệ

Các bảng như vậy thậm chí không được xem xét trong các mô hình quan hệ.

Nếu chúng ta đang phát triển một cơ sở dữ liệu quan hệ thì trong giai đoạn đầu tiên, một bảng có thể được tạo để kết hợp tất cả dữ liệu đang được xem xét, ví dụ: Nhà cung cấp, Bộ phận, Vật tư. Bảng trong Hình 3 thể hiện mối quan hệ đúng đắn. Anh ấy được gọi phổ quát thái độ cơ sở dữ liệu được thiết kế. Một quan hệ phổ quát bao gồm tất cả các thuộc tính quan tâm và có thể chứa tất cả dữ liệu dự kiến ​​sẽ được lưu trữ trong cơ sở dữ liệu trong tương lai. Đối với các cơ sở dữ liệu nhỏ, mối quan hệ phổ quát có thể được sử dụng làm điểm khởi đầu cho việc thiết kế cơ sở dữ liệu. Khóa chính của bảng là sự kết hợp của các trường P№ và D№. Bảng này đáp ứng tất cả các yêu cầu của 1NF.

liều kế

Máy đo phóng xạ

liều kế

liều kế

liều kế

Cơm. 4. Quan hệ ở dạng chuẩn tắc đầu tiên

Sơ đồ phụ thuộc hàm của một mối quan hệ như vậy có dạng như trong Hình 2. 4 (chúng tôi sẽ cho rằng trạng thái của nhà cung cấp được xác định bởi thành phố).

Mối quan hệ được đề cập ở dạng 1NF, có cấu trúc mà vì lý do nào đó không hoàn toàn được mong muốn. Ví dụ, rõ ràng có sự dư thừa thông tin. Điều này không chỉ dẫn đến việc tăng kích thước của cơ sở dữ liệu mà còn dẫn đến nhiều điểm bất thường khác nhau:

Chèn. Bạn không thể chèn dữ liệu về nhà cung cấp (P5) mà không chỉ định bộ phận (Không cho phép giá trị Null trong trường khóa).

Xóa bỏ. Khi xóa một bộ nào đó, bạn phải xóa quá nhiều thông tin khác (xóa thông tin cung cấp sẽ xóa thông tin nhà cung cấp).

Cập nhật. Thông tin quá mức có thể dẫn đến kết quả không nhất quán. Nếu nhà cung cấp P1 chuyển đến một thành phố khác và việc cập nhật không được thực hiện trong tất cả các bộ dữ liệu thì cơ sở dữ liệu sẽ chứa thông tin xung đột.

Những dị thường này có thể được loại bỏ bằng cách giảm mối quan hệ về dạng chuẩn thứ hai, chia nó thành hai.

Một bảng ở dạng chuẩn thứ hai (2NF) nếu nó thỏa mãn định nghĩa của 1NF và tất cả các trường khóa không chính của nó có sự phụ thuộc không thể giảm thiểu vào khóa chính (hoặc phụ thuộc hoàn toàn chức năng vào khóa chính).

Sự phụ thuộc chức năng của các mối quan hệ trong cơ sở dữ liệu của chúng tôi giảm xuống còn 2NF được hiển thị trong Hình. 4 và các bảng tương ứng ở Hình 2. 5.

Bây giờ bạn có thể nhập thông tin về nhà cung cấp vào cơ sở dữ liệu mà không cần thông tin về sản phẩm của họ; khi bạn xóa thông tin về sản phẩm, dữ liệu còn lại vẫn còn (ví dụ: về nhà cung cấp), thông tin về thành phố chỉ xuất hiện một lần và điều này giúp loại bỏ vấn đề liên quan với sự dư thừa thông tin. Nghĩa là, nhờ phân rã, chúng tôi đã loại bỏ được nhiều vấn đề tồn tại trong mối quan hệ trong 1NF. Đồng thời, các mối quan hệ được hiển thị trong Hình 5 có thể được kết hợp và sau đó chúng ta sẽ quay lại mối quan hệ được hiển thị trong Hình 3 - có nghĩa là quá trình phân tách được thực hiện mà không làm mất dữ liệu.

Như vậy, Đầu tiên sân khấu thủ tục bình thường hóa mối quan hệ Sự sáng tạo phép chiếu ngoại lệ " trích dẫn" chức năng sự phụ thuộc.

Cơm. 7. Mối quan hệ trong 2NF

Tuy nhiên, cấu trúc của các mối quan hệ được hiển thị trong Hình 7 có thể tạo ra một số vấn đề liên quan đến mối quan hệ Nhà cung cấp trong đó các thuộc tính không khóa không độc lập lẫn nhau. Sự phụ thuộc của thuộc tính Trạng thái vào thuộc tính P№ là mang tính chức năng và không thể rút gọn được, nhưng sự phụ thuộc này cũng Bắc cầu thông qua thuộc tính Thành phố - mỗi giá trị P№ xác định giá trị Thành phố và mỗi giá trị Thành phố xác định giá trị Trạng thái. Nhưng nếu các phụ thuộc AB và BC được thỏa mãn thì phụ thuộc AC cũng được thỏa mãn. Sự phụ thuộc bắc cầu một lần nữa có thể dẫn đến sự bất thường trong cập nhật:

Chèn - bạn không thể bao gồm dữ liệu về một thành phố nhất định và trạng thái của thành phố đó khi không có nhà cung cấp nào ở đó.

Xóa - khi một nhà cung cấp bị xóa, thông tin về trạng thái của thành phố sẽ bị mất (rõ ràng nguyên nhân của vấn đề này là do thông tin chung - bảng chứa thông tin về cả nhà cung cấp và thành phố).

Cập nhật - trạng thái của các thành phố được lặp lại nhiều lần. Khi thay đổi trạng thái của một thành phố, bạn phải xem qua nhiều dòng để tránh nhận được kết quả không nhất quán nhưng vẫn có khả năng xảy ra lỗi.

Vấn đề được giải quyết bằng cách đưa quan hệ Nhà cung cấp về dạng chuẩn thứ ba thông qua việc phân tách nó:

Thủ tục này loại bỏ sự phụ thuộc mang tính bắc cầu và giải quyết mọi khó khăn.

Thái độ xác định vị trí V. ngày thứ ba Bình thường hình thức (3NF) Sau đó chỉ một Sau đó, Khi xác định vị trí V. 2NF mọi không có chìa khóa thuộc tính nội động từ phụ thuộc từ sơ đẳng chìa khóa.

Nói cách khác: bàn xác định vị trí V. ngày thứ ba Bình thường hình thức (3NF), Nếu như cô ấy xác định vị trí V. 2NF không một từ cô ấy không có chìa khóa lĩnh vực Không phụ thuộc chức năng từ bất kì khác không có chìa khóa lĩnh vực.

Như vậy, thứ hai sân khấu bình thường hóa Sự sáng tạo phép chiếu ngoại lệ Bắc cầu sự phụ thuộc.

Trong quá trình chuẩn hóa, các tình huống thường phát sinh khi một quan hệ có thể bị phân hủy theo nhiều cách. Ví dụ: mối quan hệ Nhà cung cấp (Hình 7) với các phụ thuộc chức năng P#City và CityStatus và do đó, phụ thuộc bắc cầu P#Status. Có các tùy chọn khả thi để phân tách mối quan hệ này thành hai phép chiếu nằm trong 3NF:

A: (P№, Thành phố) và (Thành phố, Trạng thái) (như đã đề xuất trước đó) và B: (P№, Thành phố) và (P№, Trạng thái)

Không thể áp dụng tùy chọn thứ ba là phân tách thành các phép chiếu (P№, Trạng thái) và (Thành phố, Trạng thái), vì nó được thực hiện với tình trạng mất thông tin - một số thành phố có thể có cùng trạng thái, sau đó là thông tin về thành phố nơi nhà cung cấp được định vị sẽ bị mất.

Vì một số lý do, việc phân tách B ít được mong muốn hơn so với phân tách A. Ví dụ: sau khi thực hiện phân tách B, không thể chèn thông tin rằng một thành phố nào đó có trạng thái nhất định mà không chỉ định nhà cung cấp từ thành phố đó.

Trong phân tách A, cả hai phép chiếu đều độc lập với nhau theo nghĩa là việc cập nhật trong mỗi phép chiếu có thể được thực hiện hoàn toàn độc lập với nhau. Trong phân tách B, các cập nhật cho một trong hai phép chiếu phải được kiểm soát để không phá vỡ sự phụ thuộc CityStatus ban đầu. Nghĩa là, các hình chiếu của phân rã B không độc lập với nhau.

Ý tưởng Sự độc lập phép chiếu cung cấp một tiêu chí để chọn một trong một số phân rã có thể. Các hình chiếu R1 và R2 của quan hệ R độc lập theo nghĩa đã đề cập ở trên khi và chỉ khi

Mỗi sự phụ thuộc hàm liên quan đến R là hệ quả logic của sự phụ thuộc hàm trong các phép chiếu R1 và R2;

Các thuộc tính chung của các phép chiếu R1 và R2 tạo thành khóa dự tuyển cho ít nhất một trong số chúng.

Trong ví dụ đang xem xét về phân rã A, hai phép chiếu là độc lập, vì thuộc tính chung của chúng là Thành phố là khóa tiềm năng cho phép chiếu thứ hai và mỗi sự phụ thuộc hàm của mối quan hệ ban đầu được giữ nguyên trong các phép chiếu. Ngược lại, trong phân tích B hai phép chiếu không độc lập nhau, vì sự phụ thuộc CityStatus không thể bắt nguồn từ các phụ thuộc chức năng của các phép chiếu này, mặc dù thuộc tính chung P№ của chúng là khóa tiềm năng cho cả hai phép chiếu.

Ý tưởng chuẩn hóa bằng cách phân rã thành các phép chiếu độc lập do Rissanen đề xuất và được gọi là sự phân hủy Với sự bảo tồn sự phụ thuộc.

Dạng Boyce-Codd bình thường

Cho đến nay, để đơn giản, chúng ta đã giả định rằng mỗi mối quan hệ chỉ có một khóa dự tuyển - khóa chính. Định nghĩa trên về 3NF không hoàn toàn phù hợp nếu

- mối quan hệ có hai hoặc nhiều khóa dự tuyển;

- hai khóa ứng cử viên rất phức tạp và chúng trùng nhau (có ít nhất một thuộc tính chung).

Vì vậy, định nghĩa 3NF đã được bổ sung Bình thường hình dạng Boyce-Codd ( Boyce-Codd) - NFBC. Nó có thể được xây dựng như thế này:

Thái độ xác định vị trí V. Bình thường hình thức Boyce-Codd Sau đó chỉ một Sau đó, Khi yếu tố quyết định tiềm năng phím.

Nói cách khác, trong sơ đồ phụ thuộc hàm, các mũi tên chỉ nên bắt đầu bằng các khóa ứng viên.

Sự kết hợp của các điều kiện như vậy thường không được tìm thấy trong thực tế, vì vậy đối với các mối quan hệ không có các điều kiện đó thì 3NF và BCNF là tương đương.

Hãy đưa ra thêm một định nghĩa nữa: Bàn xác định vị trí V. Bình thường hình thức Boyce-Codd (NFBC), Sau đó chỉ một Sau đó, Khi bất kì chức năng nghiện giữa cô ấy lĩnh vực đi xuống ĐẾN không thể rút gọn được chức năng sự phụ thuộc từ tiềm năng chìa khóa.

Hãy xem xét một ví dụ liên quan đến hai khóa ứng viên không chồng chéo:

Nhà cung cấp (P№, Tên_P, Trạng thái, Thành phố),

trong đó các thuộc tính P№ và Name_P là các khóa tiềm năng và các thuộc tính Trạng thái và Thành phố hoàn toàn độc lập. Sơ đồ phụ thuộc hàm được thể hiện trong Hình 2. 8. Mối quan hệ này được tìm thấy trong BCNF. Ở đây, tất cả các yếu tố quyết định đều là các khóa tiềm năng và tất cả các mũi tên đều bắt đầu bằng các khóa tiềm năng.

Dưới đây là ví dụ về các mối quan hệ trong đó các khóa tiềm năng chồng chéo lên nhau.

Ví dụ đầu tiên: Quan hệ phân phối (P№, Name_P, D№, Qty).

Có một số dư thừa trong vấn đề này gây ra sự bất thường trong cập nhật. Các khóa tiềm năng ở đây là (P№, D№) và (Name_P, D№), P№ và Name_P xác định lẫn nhau. Mối quan hệ này không ở dạng chuẩn thứ hai và có thể được chia thành hai phép chiếu (P№, Name_P) và (P№, D№, Số lượng) để thu được các phụ thuộc hàm tối giản. Nhưng sự phân rã tương tự có thể được đề xuất dựa trên thực tế là mối quan hệ không nằm trong BCNF, bởi vì chứa hai yếu tố quyết định không phải là khóa tiềm năng (P№ và Name_P là yếu tố quyết định, vì chúng xác định lẫn nhau):

Nhà cung cấp (P#, Tên_P) và Vật tư 1 (P#, D#, Số lượng).

Ví dụ thứ hai: Tỷ lệ SDP (S, D, P),

trong đó các thuộc tính đại diện cho Học sinh, Kỷ luật và Giáo viên. Bộ của quan hệ SDP có nghĩa là một số sinh viên C đang học môn D nào đó từ một giáo viên P nào đó. Có những hạn chế:

- Mỗi học sinh học một môn nhất định với một giáo viên;

- Mỗi giáo viên chỉ dạy một môn học (nhưng mỗi môn học có thể có nhiều giáo viên dạy).

Ràng buộc đầu tiên ngụ ý sự phụ thuộc (C, D)P và ràng buộc thứ hai – PD. Hình 9 cho thấy một ví dụ về bảng và sơ đồ về các mối phụ thuộc chức năng của mối quan hệ đó. Trong ví dụ đang xem xét, có hai khóa tiềm năng chồng chéo - (S, D) và (S, P). Mối quan hệ ở dạng 3NF (sự phụ thuộc bắc cầu hiện diện ở đây nằm trên thuộc tính khóa), nhưng không ở dạng BNFB và có một số điểm bất thường trong cập nhật. Ví dụ: nếu chúng ta xóa thông tin Oleg đang học vật lý thì chúng ta sẽ mất thông tin Petrov dạy vật lý. Vấn đề này xảy ra do P là yếu tố quyết định nhưng không phải là khóa ứng viên. Để giải quyết vấn đề này, mối quan hệ ban đầu phải được chia thành hai hình chiếu: SP và PD.

Do đó, khái niệm NFBC cho phép chúng ta loại bỏ một số vấn đề cố hữu trong các mối quan hệ ở 3NF. Định nghĩa BCNF đơn giản hơn định nghĩa 3NF, bởi vì nó không sử dụng các khái niệm về dạng chuẩn, khóa chính và sự phụ thuộc bắc cầu. Ngoài ra, khái niệm khóa dự tuyển có thể được thay thế bằng việc đưa ra một khái niệm cơ bản hơn về sự phụ thuộc hàm. Nhưng mặt khác, các khái niệm về khóa chính, sự phụ thuộc bắc cầu, v.v... rất hữu ích trong thực tế vì chúng đưa ra ý tưởng về một quy trình gia tăng do nhà phát triển thực hiện nhằm giảm mối quan hệ tùy ý thành một tập hợp quan hệ tương đương trong BCNF.

Các hình thức bình thường được chứng minh bằng các phụ thuộc phức tạp hơn

Cơm. 10. Tỷ lệ DPU không chuẩn hóa

Các dạng chuẩn sau đây (4NF và 5NF) không chỉ tính đến sự phụ thuộc chức năng mà còn tính đến sự phụ thuộc đa giá trị và kết nối giữa các thuộc tính quan hệ. Để làm quen với chúng, hãy xem xét tỷ lệ không chuẩn hóa được hiển thị trong Hình 10. Mỗi bộ quan hệ chứa tên của một môn học, một nhóm tên giáo viên và một bộ sách giáo khoa. Điều này có nghĩa là mỗi khóa học có thể được giảng dạy bởi bất kỳ giáo viên nào sử dụng bất kỳ sách giáo khoa nào. Hãy chuyển tỷ lệ này thành tỷ lệ chuẩn hóa tương đương. Không có sự phụ thuộc chức năng nào được xác định cho dữ liệu được trình bày. Do đó, không có cơ sở chính thức cho việc phân rã mối quan hệ này và mối quan hệ chuẩn hóa được mô tả trong hình. mười một.

Cơ học

Cơ học

toán học

Hình học

toán học

Chiếu. Phân tích

Cơm. 11. Tỷ lệ DPU chuẩn hóa

Cơm. 12. Các hình chiếu (D,P) và (D,U) của quan hệ DPU

Rõ ràng, mối quan hệ DPU được đặc trưng bởi sự dư thừa đáng kể và dẫn đến sự bất thường trong cập nhật, ví dụ, khi thêm một giáo viên mới, bạn cần nhập một bộ dữ liệu cho mỗi sách giáo khoa. Tuy nhiên, thái độ hoàn toàn là yếu tố then chốt và do đó nằm trong BCNF. Những vấn đề nảy sinh là do giáo viên và sách giáo khoa hoàn toàn độc lập với nhau. Vấn đề về tỷ lệ DPU chuẩn hóa sẽ không phát sinh nếu tất cả các nhóm lặp lại độc lập ban đầu được tách ra. Trong trường hợp của chúng tôi, có thể cải thiện tình hình bằng cách thay thế tỷ lệ DPU bằng các phép chiếu (D, P) và (D, U) (Hình 12). Trong trường hợp này, cả hai phép chiếu đều hoàn toàn là khóa và nằm trong BCNF và kết nối của chúng mang lại bảng gốc, nghĩa là quá trình phân tách được thực hiện mà không bị mất. Việc phân tách này không thể được thực hiện dựa trên các phụ thuộc hàm không có trong ví dụ này. Nó có thể được thực hiện trên cơ sở mối quan hệ đa giá trị. Các phụ thuộc đa giá trị là sự khái quát hóa của các phụ thuộc hàm theo nghĩa mọi phụ thuộc hàm đều là một phụ thuộc đa giá trị mà phần phụ thuộc của nó là một tập đơn.

Liên quan đến DPU, có hai phụ thuộc đa giá trị: DP và DU.

Sự phụ thuộc đầu tiên trong số các phụ thuộc đa giá trị này có nghĩa là mặc dù đối với mỗi môn học không có một giáo viên nào chỉ tương ứng với môn học này, tức là. sự phụ thuộc chức năng của DP chưa được đáp ứng đầy đủ, tuy nhiên, mỗi môn học đều có một đội ngũ giáo viên nhất định, không phụ thuộc vào tên sách giáo khoa.

Sự phụ thuộc đa giá trị thứ hai được giải thích tương tự.

Cho phép MỘT, B, C Bất kỳ tập hợp con bộ thuộc tính mối quan hệ R. TRONG mơ hồ phụ thuộc từ MỘT (MỘT TRONG) Sau đó chỉ một Sau đó, Khi một loạt giá trị TRONG, phù hợp được cho cặp đôi giá trị (MỘT, VỚI) mối quan hệ R, phụ thuộc chỉ một từ MỘT, Nhưng Không phụ thuộc từ VỚI.

Rõ ràng, sự phụ thuộc đa giá trị AB chỉ được thỏa mãn khi sự phụ thuộc đa giá trị AC được thỏa mãn. Các phụ thuộc đa giá trị luôn tạo thành các cặp liên quan: AB||C.

Quay trở lại các vấn đề của quan hệ DPU, chúng ta có thể nói rằng chúng gắn liền với sự tồn tại của các phụ thuộc đa giá trị không có chức năng (chính sự có mặt của các phụ thuộc như vậy đòi hỏi phải chèn hai bộ dữ liệu khi cần thêm dữ liệu về một giáo viên vật lý khác). ). Các phép chiếu (D, P) và (D, U) không chứa các phụ thuộc đa giá trị và do đó được mong muốn hơn. Trước khi xác định dạng chuẩn 4, chúng ta hãy làm quen với định lý R. Fagin:

Đặt A, B, C là tập hợp các thuộc tính của quan hệ R(A, B, C). Mối quan hệ R sẽ bằng tổ hợp các hình chiếu của nó (A, B) và (A, C) khi và chỉ khi các phụ thuộc đa giá trị AB và AC được thỏa mãn cho quan hệ R.

Thái độ R xác định vị trí V. thứ tư Bình thường hình thức (4NF) Sau đó chỉ một Sau đó, Khi V. trường hợp sự tồn tại đa nghĩa sự phụ thuộc MỘT B Tất cả nghỉ ngơi thuộc tính R chức năng phụ thuộc từ MỘT.

Nói cách khác:

Thái độ R xác định vị trí V. 4NF, Nếu như xác định vị trí V. NFBC Tất cả đa nghĩa sự phụ thuộc mối quan hệ R Thực ra chức năng sự phụ thuộc từ tiềm năng phím.

Mối quan hệ DPU không ở dạng 4NF vì nó chứa một phần phụ thuộc đa giá trị không phải là một phần phụ thuộc hàm. Tuy nhiên, cả hai hình chiếu (D, P) và (D, U) đều ở dạng 4NF, so với BCNF, cho phép bạn tạo cấu trúc cải tiến.

Lưu ý rằng khái niệm về các phép chiếu độc lập của Rissanen, dựa trên các phụ thuộc hàm (quan hệ R(A,B,C), thỏa mãn các phụ thuộc hàm A>B và B>C, nên được chia thành các phép chiếu (A,B) và (B, C), chứ không phải (A,B) và (A,C)), cũng có thể áp dụng cho việc lựa chọn đường phân tách, nếu thay vì các phụ thuộc hàm có các phụ thuộc đa giá trị A>>B và A>>C. Trong trường hợp này, việc phân tách thành các quan hệ (A,B) và (A,C) cần được thực hiện.

Trong tất cả các thủ tục chuẩn hóa được xem xét cho đến thời điểm này, việc phân rã một quan hệ thành hai đã được thực hiện. Đôi khi điều này không thể thực hiện được, nhưng có thể phân tách thành một số lượng lớn hơn các quan hệ, mỗi quan hệ có những đặc tính tốt hơn. Một quan hệ như vậy được gọi là quan hệ phân tách n, với n>2.

Ví dụ, hãy xem xét mối quan hệ P-D-Pr (Nhà cung cấp-Bộ phận-Dự án) (Hình 13). Cùng một nhà cung cấp có thể cung cấp nhiều loại phụ tùng cho các dự án khác nhau. Khóa chính của mối quan hệ này là tập hợp đầy đủ các thuộc tính của nó; không có sự phụ thuộc chức năng và đa giá trị (không có sự phụ thuộc đa giá trị, vì đối với P1, tập hợp các bộ phận phụ thuộc vào dự án). Do đó mối quan hệ là ở 4NF. Tuy nhiên, có thể có những bất thường trong đó (không phải lúc nào cũng rõ ràng), có thể loại bỏ bằng cách phân tách thành ba quan hệ (không thể phân tách thành hai quan hệ, vì thao tác ngược lại không cho phép quay lại quan hệ ban đầu). Hơn nữa, mức độ phân rã phụ thuộc vào các bộ dữ liệu. Ví dụ: nếu trong quan hệ ban đầu, một trong ba bộ dữ liệu đầu tiên bị loại bỏ hoặc bộ dữ liệu (P2, D1, P2) được thêm vào thì nó có thể được chia thành hai phép chiếu. Nếu trong quan hệ ban đầu, bộ dữ liệu cuối cùng bị loại bỏ hoặc thay thế bằng bộ dữ liệu (P2, D1, Pr2), thì nó không thể được chia thành hai hoặc ba phép chiếu mà không vi phạm tính toàn vẹn của dữ liệu. Khả năng phân rã của mối quan hệ này có thể là một thuộc tính cơ bản và không phụ thuộc vào thời gian nếu thêm một ràng buộc bổ sung.

Phát biểu PDPr bằng tổ hợp của ba hình chiếu PD, DPr, PrP tương đương với phát biểu sau:

IFpair (P1, D1) thuộc quan hệ PD

Ipara(D1, Pr1) thuộc quan hệ Dpr

Ipara (Pr,1P1) thuộc quan hệ PrP,

TOTriple(P1,D1,Pr1) thuộc quan hệ PDPr.

Điều này là hiển nhiên vì bộ ba P1, D1, Pr1 nằm trong kết nối của các hình chiếu PD, Dpr, PrP. Mệnh đề ngược lại cũng luôn đúng.

Mặt khác, đúng là cặp (P1, D1) có mặt trong mối quan hệ với PD nếu bộ ba (P1, D1, Pr2) có mặt trong mối quan hệ với PDP thì cặp (P1, D1) có mặt trong mối quan hệ tới PPr nếu (P1, D2, Pr1) nằm trong DPR và cặp (D1, Pr1) liên quan đến DPR, nếu (P2, D1, Pr1) nằm trong DDP. Sau đó, nếu chúng ta tính đến câu lệnh đầu tiên thì bộ dữ liệu (P1, D1, Pr1) phải có mặt trong mối quan hệ như vậy! Điều này có nghĩa là để đảm bảo tính chính xác của tỷ lệ DPR bất cứ lúc nào, cần phải đưa ra hạn chế sau:

Nếu như bộ dữ liệu (P1, D1 , Pp2), (P2, D1 , Pp1) (P1, D2 , Pp1) thuộc về thái độ PDPr, Cái đó đoàn xe hộ tống (P1, D1 , Pp1) Cũng thuộc về cái này thái độ.

Nếu tuyên bố này luôn đúng, nghĩa là, đối với tất cả các bộ bổ sung có thể có của quan hệ PDPr, thì sẽ thu được một ràng buộc độc lập về thời gian đối với quan hệ này, được gọi là ràng buộc 3D. Vì ràng buộc 3D được thỏa mãn khi một mối quan hệ tương đương với kết nối của một số hình chiếu của nó, nên ràng buộc như vậy được gọi là ràng buộc kết nối.

Bạn có thể chú ý đến thực tế là trong ví dụ chúng tôi đang xem xét, có một số tính chu kỳ trong dữ liệu. Tiêu chí để phân rã n của một quan hệ với n>2 là một ràng buộc tuần hoàn nào đó. Hạn chế theo chu kỳ có nghĩa là gì? Trong ví dụ của chúng ta, bộ dữ liệu cuối cùng có nghĩa là Smith đang cung cấp cờ lê cho Dự án Manhattan. Ba bộ đầu tiên mang thông tin rằng Smitt cung cấp cờ lê, Smitt là nhà cung cấp cho Dự án Manhattan và cờ lê được sử dụng trong Dự án Manhattan. Nhưng những tuyên bố này không ngụ ý rằng chính Smith là người cung cấp chìa khóa cho dự án này. Nếu chúng ta phân tách mối quan hệ PDPr, bao gồm ba bộ dữ liệu này, thành ba hình chiếu, thì kết nối của chúng sẽ không bằng kết nối ban đầu - một bộ dữ liệu thứ tư “bổ sung” (P1, D1, Pr1) sẽ xuất hiện, như đã đề cập ở trên. Để tránh sự khác biệt như vậy, một ràng buộc bổ sung được đưa ra, có thể dễ dàng thực hiện bằng cách phân tách mối quan hệ. Việc phân tách như vậy chỉ có thể thực hiện được mà không mất thông tin nếu có sự phụ thuộc kết nối:

Thái độ R (X, Y,. , Z) thỏa mãn sự phụ thuộc kết nối * (X, Y,. , Z) V. âm lượng chỉ một V. âm lượng trường hợp, Khi R đang được khôi phục không có lỗ vốn qua kết nối của họ phép chiếu TRÊN X, Y,. , Z.

Hãy xem xét hai ví dụ về những điểm bất thường tồn tại trong mối quan hệ chịu sự ràng buộc 3D.

2. Trong mối quan hệ được hiển thị trong Hình 15, bộ dữ liệu (P2, D1, Pr1) có thể bị xóa mà không gặp vấn đề gì. Nhưng nếu xóa (P1, D1, Pr1) thì cần xóa một trong những cái còn lại để dữ liệu không có tính tuần hoàn.

Định lý Feigin có thể được phát biểu như sau:

Thái độ R (MỘT, B, C) thỏa mãn sự phụ thuộc kết nối * (AB, MỘTVỚI) Sau đó chỉ một Sau đó, Khi thỏa mãn mơ hồ sự phụ thuộc MỘT TRONG MỘT VỚI.

Sự phụ thuộc nối là sự khái quát hóa của khái niệm về sự phụ thuộc đa giá trị. Hơn nữa, đây là dạng nghiện phổ biến nhất.

Quay trở lại mối quan hệ Nhà cung cấp-Bộ phận-Dự án, bạn sẽ thấy rằng nó chứa một phụ thuộc nối PDPr * (PD, DPr, PrP), đây không phải là một phụ thuộc chức năng hay đa giá trị và không được ngụ ý bởi khóa tiềm năng duy nhất của nó - sự kết hợp của tất cả các thuộc tính. Nên phân tách mối quan hệ như vậy thành các phép chiếu được chỉ định bởi sự phụ thuộc kết nối. Quá trình phân rã này có thể được lặp lại cho đến khi tất cả các mối quan hệ kết quả được thứ năm Bình thường hình thức (5NF).

Thái độ R xác định vị trí V. thứ năm Bình thường hình thức V. âm lượng chỉ một V. âm lượng trường hợp, Khi bất kì nghiện kết nối V. R nên từ sự tồn tại một số khả thi chìa khóa V. R.

Một định nghĩa ít nghiêm ngặt hơn về 5NF:

Bàn xác định vị trí V. thứ năm Bình thường hình thức (5NF) Sau đó chỉ một Sau đó, Khi V. mỗi cô ấy đầy sự phân hủy Tất cả phép chiếu bao gồm khả thi chìa khóa. Bàn, Không đang có không một đầy sự phân hủy, Cũng xác định vị trí V. 5NF.

Bây giờ chúng ta có thể nói rằng sau khi phân rã 3 lần các quan hệ PDPr, các phép chiếu PD, DPR và PPR của nó ở dạng chuẩn 5, vì đối với chúng không có sự phụ thuộc kết nối nào cả.

Dạng chuẩn thứ tư (4NF) là trường hợp đặc biệt của 5NF, trong đó phép phân tách hoàn toàn phải là hợp của chính xác hai hình chiếu. Không dễ để tìm được một bảng thực sự ở 4NF nhưng không ở 5NF.

Đối với một quan hệ R cho trước, chúng ta có thể nói rằng nó ở dạng 5NF, với điều kiện là tất cả các khóa tiềm năng và tất cả các phụ thuộc kết nối đều được biết. Tuy nhiên, không có thuật toán nào cho phép bạn xác định tất cả các yếu tố phụ thuộc của một kết nối. Nhưng những mối quan hệ như vậy cực kỳ hiếm trong thực tế.

Dạng chuẩn thứ năm là dạng chuẩn cuối cùng có thể thu được bằng cách phân rã. Các điều kiện của nó khá không tầm thường, nhưng thực tế nó không được sử dụng.

Quy trình chuẩn hóa và thiết kế

Chúng tôi đã xem xét công nghệ phân rã không mất dữ liệu được sử dụng để thiết kế cơ sở dữ liệu. Ý tưởng cơ bản của công nghệ này là giảm thiểu một cách có hệ thống mối quan hệ ban đầu, được tìm thấy trong 1NF, thành một tập hợp các mối quan hệ nhỏ hơn, theo một nghĩa nào đó, tương đương với mối quan hệ ban đầu, nhưng được ưu tiên hơn. Mỗi giai đoạn của quá trình rút gọn bao gồm việc phân chia thành các phép chiếu các mối quan hệ thu được ở giai đoạn trước. Trong trường hợp này, các hạn chế đã chỉ định được sử dụng ở mỗi bước của quy trình chuẩn hóa để chọn các phép chiếu ở giai đoạn tiếp theo. Chuẩn hóa là việc phân vùng một quan hệ (bảng) thành nhiều quan hệ có thuộc tính tốt hơn khi cập nhật, bao gồm và xóa dữ liệu. Quá trình thay thế liên tiếp một bảng bằng các phân tách hoàn chỉnh của nó được thực hiện cho đến khi tất cả chúng ở dạng 5NF (trong thực tế, chúng thường bị giới hạn trong việc giảm mối quan hệ về dạng chuẩn Boyce-Codd). Nói chung, các mục tiêu sau của quá trình chuẩn hóa có thể được phân biệt:

loại bỏ một số loại dư thừa;

sửa một số cập nhật, kích hoạt và xóa các điểm bất thường;

thiết kế bố cục cơ sở dữ liệu thể hiện “tốt” thế giới thực, trực quan và cung cấp cơ sở tốt để phát triển hơn nữa;

đơn giản hóa quá trình áp đặt các ràng buộc toàn vẹn.

Chúng ta hãy liệt kê các quy tắc cơ bản được sử dụng trong thủ tục chuẩn hóa.

1. Quan hệ thống nhất phải được giảm xuống còn 1NF.

2. Các mối quan hệ trong 1NF nên được chia thành các phép chiếu để loại trừ tất cả các phụ thuộc chức năng không thể rút gọn được.

Nói cách khác, nếu một quan hệ có khóa chính tổng hợp có dạng (K1, K2) và cũng bao gồm trường F, trường này phụ thuộc về mặt chức năng vào một phần của khóa này, ví dụ: vào K2, nhưng không phụ thuộc vào khóa đầy đủ, thì trong trường hợp này, nên tạo một mối quan hệ khác chứa K2 và F (khóa chính - K2) và xóa F khỏi mối quan hệ ban đầu:

Kết quả của hành động này là sẽ thu được một tập hợp các quan hệ trong 2NF.

3. Các mối quan hệ trong 2NF nên được chia thành các phép chiếu để loại trừ mọi phụ thuộc chức năng bắc cầu. Nói cách khác, nếu một mối quan hệ có khóa ứng viên K, thuộc tính khóa không ứng cử F1 phụ thuộc hàm vào K và thuộc tính không khóa khác F2 phụ thuộc hàm vào F1 thì nên loại bỏ thuộc tính F2 từ quan hệ ban đầu và tạo thành một quan hệ khác chứa F1 và F2, với khóa chính là F1.

Kết quả sẽ là một tập hợp các quan hệ trong 3NF.

5. Các mối quan hệ trong BCNF nên được chia thành các phép chiếu để loại bỏ tất cả các phụ thuộc đa giá trị không phải là phụ thuộc chức năng. Kết quả sẽ là một tập hợp các quan hệ trong 4NF (trong thực tế, các phụ thuộc đa giá trị như vậy thường bị loại trừ khi tạo các quan hệ ban đầu, tách các nhóm lặp độc lập).

6. Các mối quan hệ nên được phân chia thành các phép chiếu để loại bỏ mọi phụ thuộc liên kết không được ngụ ý bởi các khóa ứng viên, nếu chúng có thể được xác định. Điều này sẽ dẫn đến một tập hợp các quan hệ ở dạng 5NF (phân rã hoàn toàn các quan hệ).

Khi tuân theo các quy tắc được đề xuất, cần nhớ rằng việc phân vùng thành các phép chiếu phải được thực hiện mà không làm mất dữ liệu và đồng thời duy trì các phụ thuộc chức năng và đa giá trị.

Các nguyên tắc chuẩn hóa được đề xuất chỉ đơn thuần là các hướng dẫn và có thể có những tình huống không nên hoàn thành việc chuẩn hóa từ đầu đến cuối. Có một số lý do cho giả định này. Đầu tiên, chuẩn hóa có thể giúp nắm bắt một số ràng buộc toàn vẹn ở dạng đơn giản, nhưng ngoài các phụ thuộc chức năng, đa giá trị và liên kết, các loại phụ thuộc khác có thể tồn tại trong thực tế. Thứ hai, có rất ít tiêu chí để lựa chọn cách phân rã ưa thích. Thứ ba, quá trình bình thường hóa và tình trạng nghiện kéo dài không phải lúc nào cũng tương thích với nhau. Thứ tư, không phải tất cả sự dư thừa đều có thể được loại bỏ trong quá trình chuẩn hóa.

Việc thiết kế hệ thống cơ sở dữ liệu bắt đầu bằng việc xây dựng mô hình dữ liệu thông tin, tức là nhận dạng thực thể. Sau đó phải hoàn thành các bước quy trình thiết kế sau:

1. Biểu diễn mỗi thực thể độc lập dưới dạng một bảng cơ sở dữ liệu (bảng cơ sở) và xác định khóa chính của bảng cơ sở này.

2. Biểu diễn mỗi liên kết (mối quan hệ giữa các thực thể) dưới dạng bảng cơ sở. Sử dụng các khóa ngoại trong bảng này để xác định các thành viên của liên kết và chỉ định các ràng buộc liên quan đến từng khóa ngoại này.

3. Biểu diễn các thuộc tính của thực thể dưới dạng bảng cơ sở với khóa ngoại xác định các thực thể tương ứng. Chỉ định các ràng buộc về khóa ngoại của các bảng này và khóa chính của chúng.

4. Để loại trừ những vi phạm vô ý đối với bất kỳ nguyên tắc chuẩn hóa nào trong dự án, hãy thực hiện quy trình chuẩn hóa.

5. Nếu trong quá trình chuẩn hóa, bất kỳ bảng nào bị chia cắt thì mô hình thông tin của cơ sở dữ liệu phải được sửa đổi và các bước trên phải được lặp lại.

6. Chỉ ra các ràng buộc toàn vẹn của cơ sở dữ liệu được thiết kế và đưa ra (nếu cần) mô tả ngắn gọn về các bảng kết quả và các trường của chúng.

Để thể hiện trực quan cấu trúc của hệ thống được thiết kế, có thể sử dụng ngôn ngữ mô hình hóa thông tin “Mối quan hệ bảng”, được sử dụng trong các cơ sở dữ liệu quan hệ phổ biến nhất. Trong đó, tất cả các thực thể được biểu diễn dưới dạng bảng một cột với các tiêu đề bao gồm tên thực thể. Các hàng của bảng là danh sách các thuộc tính thực thể và những thuộc tính tạo nên khóa chính sẽ được đánh dấu. Mối quan hệ giữa các thực thể được biểu thị bằng các mũi tên hướng từ khóa chính hoặc các thành phần của chúng.

7. Ví dụ thiết kế cơ sở dữ liệu

Mục đích và lĩnh vực chủ đề

Cơ sở dữ liệu được thiết kế để lưu trữ thông tin về nhân sự của một công ty nhất định. Công ty có một số phòng ban. Mỗi bộ phận có một số nhân viên, một số dự án và một số văn phòng. Mỗi nhân viên có một số nhiệm vụ. Đối với mỗi nhiệm vụ, có một bảng kê kèm theo danh sách số tiền mà nhân viên nhận được khi thực hiện công việc này. Mỗi văn phòng có nhiều điện thoại.

Các thông tin sau phải được lưu trữ trong cơ sở dữ liệu:

Đối với mỗi bộ phận: mã số bộ phận, ngân sách duy nhất và mã số duy nhất của trưởng bộ phận;

đối với mỗi nhân viên: mã số nhân viên duy nhất, mã số dự án hiện tại, số văn phòng, số điện thoại cũng như tên công việc đang được thực hiện, cùng với ngày và số tiền của tất cả các khoản thanh toán nhận được khi thực hiện công việc này;

đối với mỗi dự án: số dự án và ngân sách duy nhất;

cho mỗi văn phòng: số văn phòng duy nhất, khu vực, tất cả các số điện thoại.

Báo cáo ngữ nghĩa (hạn chế): Không có nhân viên nào đồng thời là người đứng đầu nhiều bộ phận; không có nhân viên nào làm việc ở nhiều bộ phận cùng một lúc; không có nhân viên nào làm việc đồng thời trên nhiều dự án; không nhân viên nào có nhiều văn phòng cùng một lúc; không nhân viên nào có nhiều điện thoại cùng một lúc; không có nhân viên nào có nhiều nhiệm vụ cùng một lúc; không có dự án nào được giao cho nhiều bộ phận cùng một lúc; không có văn phòng nào trực thuộc nhiều phòng ban cùng một lúc.

Thiết kế cơ sở dữ liệu

Phân tích các đối tượng và thuộc tính được xác định ở trên cho phép chúng ta xác định các thực thể của cơ sở dữ liệu được thiết kế và xây dựng mô hình thông tin của nó dưới dạng “Bảng liên kết” (Hình 16).

Cơm. 16. Thông tin về công ty cần được lưu trữ trong cơ sở dữ liệu

Cấu trúc phân cấp ban đầu có thể được xem như một mối quan hệ không chuẩn hóa:

CÁC BỘ PHẬN (MÃ SỐ BAN, NGÂN SÁCH_O, SỐ QUẢN LÝ, NHÂN VIÊN, DỰ ÁN, VĂN PHÒNG) KHÓA THÍ SINH (MÃ SỐ BỘ PHẬN) KHÓA THÍ SINH (Mã SỐ QUẢN LÝ)

Ở đây, ý nghĩa của các thuộc tính DTD# (mã số phòng ban duy nhất), BUDGET_O, RUK# (mã số người quản lý) rõ ràng qua tên gọi và các thuộc tính NHÂN VIÊN, DỰ ÁN, VĂN PHÒNG bao gồm các giá trị mối quan hệ. Chúng ta có thể mô tả các thuộc tính lồng nhau của chúng:

CÁC BỘ PHẬN (Mã SỞ, NGÂN SÁCH, MÃ QUẢN LÝ, NHÂN VIÊN (Mã STEAM, Mã dự án, Mã văn phòng, Mã số điện thoại, CÔNG VIỆC (CHỦ ĐỀ, THANH TOÁN (NGÀY, SỐ TIỀN))), DỰ ÁN (Mã DANH SÁCH, BUDGET_P ), VĂN PHÒNG (SỐ VĂN PHÒNG, KHU VỰC, ĐIỆN THOẠI (TEL#))) MÃ THÍ SINH (SỞ#) KHÓA THÍ SINH (RUNK#)

Bây giờ chúng ta có thể rút gọn mối quan hệ này thành một tập hợp các mối quan hệ trong 1NF. Đồng thời, xem xét từng mối quan hệ giá trị-riêng biệt, chúng tôi loại trừ tất cả các phần phụ thuộc đa giá trị không phải là phần phụ thuộc chức năng.

KHÓA SỞ HỮU1 (BỘ PHẬN#, NGÂN SÁCH_O, QUẢN LÝ#) KHÓA CHÍNH (PHÒNG#) KHÓA THAY THẾ (QUẢN LÝ#)

NHÂN VIÊN1 (Mã COTR, ​​Mã SỞ, Mã DỰ ÁN, Mã Cabin, Số Điện Thoại) KHÓA CHÍNH (SỐ NHÂN VIÊN)

TÁC PHẨM1 (ĐỐI TƯỢNG, SỐ BẢN SAO) KHÓA CHÍNH (ĐỐI TƯỢNG, SỐ BẢN SAO)

THANH TOÁN1 (SỐ CÔNG TY, CHỦ ĐỀ, NGÀY, SỐ TIỀN) KHÓA CHÍNH (SỐ CÔNG TY, CHỦ ĐỀ, NGÀY)

DỰ ÁN1 (DỰ ÁN#, BUDGET_P, SỞ SỞ#) KHÓA CHÍNH (DỰ ÁN#)

VĂN PHÒNG1 (SỐ PHÒNG, KHU VỰC, SỐ PHÒNG) KHÓA CHÍNH (SỐ PHÒNG)

ĐIỆN THOẠI1 (TEL#, số phòng) KHÓA CHÍNH (TEL#)

Các mối quan hệ DEPARTMENTS1, EMPLOYEE1, PAYMENT1, DỰ ÁN1, VĂN PHÒNG1 và PHONES1 đã có trong 2NF.

Mối quan hệ JOB1 là hình chiếu của mối quan hệ PAYMENT1, do đó nó mang thông tin dư thừa và có thể xóa mà không mất dữ liệu. Đồng thời, quan hệ PHONES1 là hình chiếu của quan hệ EMPLOYEES1, nhưng nếu bị xóa, các cập nhật bất thường sẽ xuất hiện - dữ liệu về điện thoại sẽ không tồn tại nếu không có dữ liệu về nhân viên cụ thể.

Bây giờ chúng ta hãy trình bày cấu trúc của một cơ sở dữ liệu, các mối quan hệ của chúng được giảm xuống còn 2NF, sử dụng ngôn ngữ mô hình hóa “Mối quan hệ bảng”, được sử dụng trong MS ACCESS DBMS:

Hơn nữa, loại trừ các phụ thuộc bắc cầu, chúng ta có thể giảm các mối quan hệ thành một tập hợp các mối quan hệ tương đương trong 3NF. Quan hệ duy nhất không có trong 3NF là quan hệ COTRUDN, trong đó các thuộc tính KABNo. và DTDNo. phụ thuộc bắc cầu vào khóa chính COTRNO. - KABNo. đến TELNo., và DTDNo. đến PROJECTNo. và, ngoài ra, qua KABNo. và SỐ ĐIỆN THOẠI. Khi đó, mối quan hệ COTRUDN có thể được thay thế bằng một tập hợp các phép chiếu nằm trong 3NF:

X (TEL#, CAB#) KHÓA CHÍNH (TEL#)

Y (Mã DỰ ÁN, Mã SỞ) KHÓA CHÍNH (Mã DỰ ÁN)

Z (KAB#, OTD#) KHÓA CHÍNH (KAB#)

Nhưng quan hệ X là một dạng tương tự của quan hệ PHONE2, Y là hình chiếu của quan hệ PROJECT2, Z là hình chiếu của OFFICE2 và do đó, có thể bị xóa khỏi mô hình cơ sở dữ liệu. Do đó, một mô hình cơ sở dữ liệu có quan hệ giảm xuống 3NF sẽ trông như thế này:

KHÓA SỞ HỮU3 (BỘ PHẬN#, NGÂN SÁCH_O, QUẢN LÝ#) KHÓA CHÍNH (PHÒNG#) KHÓA THAY THẾ (QUẢN LÝ#)

NHÂN VIÊN3 (COTRNO., DỰ ÁN SỐ, SỐ ĐIỆN THOẠI) KHÓA CHÍNH (COTRNO.)

THANH TOÁN3 (SỐ CÔNG TY, CHỦ ĐỀ, NGÀY, SỐ TIỀN) KHÓA CHÍNH (SỐ CÔNG TY, CHỦ ĐỀ, NGÀY)

DỰ ÁN3 (DỰ ÁN#, BUDGET_P, SỞ SỞ#) KHÓA CHÍNH (DỰ ÁN#)

VĂN PHÒNG3 (SỐ PHÒNG, KHU VỰC, SỐ PHÒNG) KHÓA CHÍNH (SỐ PHÒNG)

ĐIỆN THOẠI3 (TEL#, số phòng) KHÓA CHÍNH (TEL#)

Mỗi mối quan hệ này đều nằm trong BCNF. Hơn nữa, chúng ở dạng 4NF - chúng tôi đã loại bỏ các phụ thuộc đa giá trị có thể có ở giai đoạn đưa mô hình lên 1NF. Tất cả các mối quan hệ đều không có điểm bất thường rõ ràng và do đó có thể giả định rằng cơ sở dữ liệu được xây dựng chính xác.

Văn học

1. Các mẫu triển khai ứng dụng doanh nghiệp Beck, Kent; M.: Williams, 2008. - 369 tr.

2. Weimayer, R.; Sawtel, R. Tự mình làm chủ Microsoft SQL Server 2000 trong 21 ngày (+ CD-ROM); M.: Williams, 2013. - 549 tr.

3. Vui vẻ, Mike; Harkins, Susan Bán hàng Tự động hóa Microsoft Access bằng VBA; M.: Williams, 2013. - 416 tr.

4. Goetz, Ken; Ginbert, Michael; Litvin, Paul Access 2000. Hướng dẫn dành cho nhà phát triển. Tập 1. Ứng dụng máy tính để bàn. tập 1; Kiev: BHV, 2008. - 576 tr.

5. Golitsyna, O.L. và các cơ sở dữ liệu khác; Diễn đàn; Infra-M, 2013. - 399 tr.

6. Grinchenko, N.N. v.v. Thiết kế cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu Microsoft Access; Đường dây nóng Viễn thông, 2012. - 613 tr.

7. Date, K. J. Giới thiệu về Hệ thống Cơ sở dữ liệu; K.: Phép biện chứng; Tái bản lần thứ 6, 2012. - 360 tr.

8. Thiết kế cơ sở dữ liệu Davidson, Louis trên SQL Server 2000; Beanom, 2009. - 631 tr.

9. Duval, Paul M. Tích hợp liên tục. Cải thiện chất lượng phần mềm và giảm thiểu rủi ro; M.: Williams, 2008. - 497 tr.

10. Karatygin, S.; Tikhonov, A. Làm việc trong Paradox cho Windows 5.0 kèm theo các ví dụ; M.: Binom, 2011. - 512 tr.

11. Karatygin, Sergey Access 2000 kèm ví dụ. Hướng dẫn sử dụng kèm ví dụ; M.: Phòng thí nghiệm Kiến thức cơ bản, 2012. - 376 tr.

12. Kaufeld, John Microsoft Office Access 2003 dành cho người mới bắt đầu; M.: Phép biện chứng, 2013. - 439 tr.

13. Người đi văng, Jason; Schwinn, Ulrike Oracle 8i CertifiedProfessionaql DBA Đào tạo quản trị viên cơ sở dữ liệu; LORI, 2009. - 510 tr.

Tài liệu tương tự

    Khái niệm về hệ thống cơ sở dữ liệu. Mô hình quan hệ và đặc điểm của nó Tính toàn vẹn trong mô hình quan hệ. Đại số quan hệ. Các vấn đề về thiết kế cơ sở dữ liệu. Những hình thức quan hệ bình thường. Thiết kế cơ sở dữ liệu bằng phương pháp mối quan hệ thực thể. Sơ đồ ER. Ngôn ngữ SQL.

    khóa học, bổ sung ngày 03/10/2008

    Sử dụng chuẩn hóa. Hình thức bình thường thứ hai và thứ ba. Dạng Boyce-Codd bình thường. Dạng bình thường thứ tư và thứ năm. Mô hình hóa dữ liệu ngữ nghĩa, sơ đồ ER. Các khái niệm cơ bản của mô hình Thực thể-Mối quan hệ.

    kiểm tra, thêm ngày 07/08/2007

    Khái niệm chuẩn hóa bảng cơ sở dữ liệu và mục đích của nó. Các giai đoạn của quá trình bình thường hóa Một ví dụ về dữ liệu không chuẩn hóa Các dạng thông thường mà các bảng được rút gọn. Đại số quan hệ trên cơ sở giáo dục. Cơ sở dữ liệu cho lĩnh vực chủ đề "Hướng dẫn".

    kiểm tra, thêm 30/07/2010

    Tạo cấu trúc cơ sở dữ liệu bằng ví dụ về "Nhật ký trường học" bằng phương pháp và nguyên tắc chuẩn hóa. Các khái niệm về cơ sở dữ liệu, kiến ​​trúc và thiết kế cơ sở dữ liệu. Mô tả lĩnh vực chủ đề; các ứng dụng để làm việc với cơ sở dữ liệu TTable và TQuery.

    luận văn, bổ sung ngày 01/04/2012

    Nghiên cứu cơ sở lý thuyết của thiết kế và phát triển cơ sở dữ liệu. Xác định các phụ thuộc chức năng, xây dựng mô hình thông tin. Xem xét các công cụ ngôn ngữ và phần mềm được thiết kế để tạo, duy trì và chia sẻ cơ sở dữ liệu.

    bài tập khóa học, được thêm vào ngày 22/02/2012

    Ủy quyền với danh mục thiết kế cơ sở dữ liệu cửa hàng. Nhiệm vụ cơ sở dữ liệu: hạch toán toàn bộ hàng hóa, tìm kiếm và cấp dữ liệu khách hàng, địa chỉ, số điện thoại, giá cả và tình trạng sẵn có của hàng hóa. Các giai đoạn thiết kế cơ sở dữ liệu Lược đồ dữ liệu, tạo truy vấn và biểu mẫu của chúng.

    tóm tắt, được thêm vào ngày 22/10/2009

    Nguyên tắc cơ bản của thiết kế cơ sở dữ liệu quan hệ. Sơ đồ mối quan hệ giữa các mô hình và biểu diễn của một hệ thống phức tạp trong quá trình phân tích hướng đối tượng. Ví dụ về biểu diễn đồ họa của các lớp cụ thể. Hiểu mô hình dữ liệu thông tin.

    trình bày, thêm vào ngày 14/10/2013

    Các định nghĩa cần thiết để hiểu quá trình thiết kế cơ sở dữ liệu quan hệ dựa trên chuẩn hóa. Phân rã không mất dữ liệu bằng định lý Heath. Cập nhật bất thường. Phát triển cơ sở dữ liệu và các mô hình ứng dụng, phân tích các vấn đề trong quá trình tạo ra chúng.

    trình bày, thêm vào ngày 14/10/2013

    Cơ sở dữ liệu tích hợp. Phát triển khái niệm và cấu trúc cơ sở dữ liệu doanh nghiệp cho một hệ thống thông tin mới. Các phương pháp tiếp cận các phương pháp thiết kế cơ sở dữ liệu: tính mở thành phần và khả năng tương tác ngữ nghĩa; phát triển các mô hình khái niệm.

    báo cáo, bổ sung ngày 11/01/2011

    Phân tích lĩnh vực chủ đề, chính thức hóa nó bằng cách sử dụng các phụ thuộc chức năng. Các giai đoạn giảm thiểu hệ thống phụ thuộc chức năng và dựa trên hệ thống rút gọn thu được, thiết kế mô hình cơ sở dữ liệu. Tạo và mô hình hóa các truy vấn.

Dịch bộ 15 bài về thiết kế cơ sở dữ liệu.
Thông tin này dành cho người mới bắt đầu.
Đã giúp tôi. Có lẽ nó sẽ giúp người khác lấp đầy khoảng trống.

Hướng dẫn thiết kế cơ sở dữ liệu.

1. Giới thiệu.
Nếu bạn định xây dựng cơ sở dữ liệu của riêng mình, bạn nên tuân theo các nguyên tắc thiết kế cơ sở dữ liệu vì điều này sẽ đảm bảo tính toàn vẹn lâu dài và dễ dàng bảo trì dữ liệu của bạn. Hướng dẫn này sẽ cho bạn biết cơ sở dữ liệu là gì và cách thiết kế cơ sở dữ liệu tuân theo các quy tắc thiết kế cơ sở dữ liệu quan hệ.

Cơ sở dữ liệu là các chương trình cho phép bạn lưu trữ và truy xuất một lượng lớn thông tin liên quan. Cơ sở dữ liệu bao gồm những cái bàn, nó bao gồm thông tin. Khi tạo cơ sở dữ liệu, bạn cần suy nghĩ về những gì những cái bàn bạn cần tạo và những gì thông tin liên lạc tồn tại giữa các thông tin trong bảng. Nói cách khác, bạn cần suy nghĩ về dự án cơ sở dữ liệu của bạn. Dự án đẹp cơ sở dữ liệu, như đã đề cập trước đó, sẽ đảm bảo tính toàn vẹn dữ liệu và dễ bảo trì.
Cơ sở dữ liệu được tạo ra để lưu trữ thông tin trong đó và truy xuất thông tin này khi cần thiết. Điều này có nghĩa là chúng ta phải có khả năng đặt, chèn ( CHÈN) thông tin vào cơ sở dữ liệu và chúng tôi muốn có thể lấy thông tin từ cơ sở dữ liệu ( LỰA CHỌN).
Một ngôn ngữ truy vấn cơ sở dữ liệu đã được phát minh cho những mục đích này và được gọi là Structured Query Language hoặc SQL. Các thao tác chèn dữ liệu (INSERT) và chọn chúng (SELECT) là một phần của chính ngôn ngữ này. Dưới đây là một ví dụ về yêu cầu truy xuất dữ liệu và kết quả của nó.

SQL là một chủ đề lớn và nằm ngoài phạm vi của hướng dẫn này. Bài viết này tập trung nghiêm túc vào việc trình bày quy trình thiết kế cơ sở dữ liệu. Tôi sẽ trình bày những điều cơ bản về SQL sau trong một hướng dẫn riêng.

Mô hình quan hệ.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo mô hình dữ liệu quan hệ. Mô hình quan hệ là mô hình mô tả cách tổ chức dữ liệu trong các bảng và cách xác định mối quan hệ giữa các bảng đó.

Các quy tắc của mô hình quan hệ chỉ ra cách tổ chức thông tin trong các bảng và cách các bảng liên quan với nhau. Cuối cùng, kết quả có thể được trình bày dưới dạng sơ đồ cơ sở dữ liệu hoặc chính xác hơn là sơ đồ mối quan hệ thực thể, như trong hình (Ví dụ lấy từ MySQL Workbench).

Ví dụ.
Tôi đã sử dụng một số ứng dụng làm ví dụ trong hướng dẫn.

RDBMS.

RDBMS tôi sử dụng để tạo các bảng ví dụ là MySQL. MySQL là RDBMS phổ biến nhất và nó miễn phí.

Tiện ích quản trị cơ sở dữ liệu.

Sau khi cài đặt MySQL, bạn chỉ có giao diện dòng lệnh để tương tác với MySQL. Cá nhân tôi thích GUI để quản lý cơ sở dữ liệu của mình hơn. Tôi sử dụng SQLyog thường xuyên. Đây là một tiện ích GUI miễn phí. Các hình ảnh bảng trong hướng dẫn này được lấy từ đó.

Mô hình trực quan.

Có một ứng dụng miễn phí tuyệt vời có tên MySQL Workbench. Nó cho phép bạn thiết kế cơ sở dữ liệu của mình bằng đồ họa. Các hình ảnh sơ đồ trong sách hướng dẫn được thực hiện trong chương trình này.

Thiết kế độc lập với RDBMS.
Điều quan trọng cần biết là mặc dù hướng dẫn này cung cấp các ví dụ về MySQL nhưng thiết kế cơ sở dữ liệu độc lập với RDBMS. Điều này có nghĩa là thông tin áp dụng cho cơ sở dữ liệu quan hệ nói chung, không chỉ MySQL. Bạn có thể áp dụng kiến ​​thức từ hướng dẫn này cho bất kỳ cơ sở dữ liệu quan hệ nào như Mysql, Postgresql, Microsoft Access, Microsoft Sql hoặc Oracle.

Trong phần tiếp theo tôi sẽ nói ngắn gọn về sự phát triển của cơ sở dữ liệu. Bạn sẽ tìm hiểu cơ sở dữ liệu và mô hình dữ liệu quan hệ đến từ đâu.

2. Lịch sử.
Vào những năm 70 và 80, khi các nhà khoa học máy tính vẫn mặc bộ tuxedo màu nâu và đeo kính có khung hình vuông lớn, dữ liệu được lưu trữ không có cấu trúc trong các tệp, là một tài liệu văn bản với dữ liệu được phân tách bằng (thường) dấu phẩy hoặc tab.

Đây chính là diện mạo của các chuyên gia công nghệ thông tin vào những năm 70. (Dưới cùng bên trái là Bill Gates).

Ngày nay các tệp văn bản vẫn được sử dụng để lưu trữ một lượng nhỏ thông tin đơn giản. Giá trị được phân tách bằng dấu phẩy (CSV) - Các giá trị được phân tách bằng dấu phẩy rất phổ biến và được hỗ trợ rộng rãi ngày nay bởi nhiều phần mềm và hệ điều hành khác nhau. Microsoft Excel là một ví dụ về các chương trình có thể hoạt động với tệp CSV. Dữ liệu được lưu trữ trong một tập tin như vậy có thể được đọc bởi một chương trình máy tính.

Trên đây là ví dụ về hình thức của một tệp như vậy. Chương trình đọc tệp này phải được thông báo rằng dữ liệu được phân tách bằng dấu phẩy. Nếu chương trình muốn chọn và hiển thị danh mục chứa bài học "Hướng dẫn thiết kế cơ sở dữ liệu", sau đó cô phải đọc từng dòng cho đến khi tìm được từ "Hướng dẫn thiết kế cơ sở dữ liệu" và sau đó cô ấy sẽ cần đọc từ theo sau dấu phẩy để suy ra loại Phần mềm.

Các bảng cơ sở dữ liệu.
Đọc từng dòng tệp không hiệu quả lắm. Trong cơ sở dữ liệu quan hệ, dữ liệu được lưu trữ trong các bảng. Bảng bên dưới chứa dữ liệu giống như tệp. Mỗi dòng hoặc “mục” chứa một bài học. Mỗi cột chứa một số thuộc tính của bài học. Trong trường hợp này, đây là tiêu đề và thể loại của nó.

Một chương trình máy tính có thể tìm kiếm tutorial_id cụ thể trong cột tutorial_id của một bảng nhất định để nhanh chóng tìm thấy tiêu đề và danh mục tương ứng của nó. Việc này nhanh hơn nhiều so với việc tìm kiếm từng dòng trong tệp, giống như cách một chương trình thực hiện trong tệp văn bản.

Cơ sở dữ liệu quan hệ hiện đại được thiết kế để cho phép truy xuất dữ liệu từ các hàng, cột và nhiều bảng cụ thể cùng một lúc một cách rất nhanh chóng.

Lịch sử của mô hình quan hệ
Mô hình cơ sở dữ liệu quan hệ được phát minh vào những năm 70 bởi Edgar Codd, một nhà khoa học người Anh. Ông muốn khắc phục những thiếu sót của mô hình cơ sở dữ liệu mạng và mô hình phân cấp. Và anh ấy đã rất thành công trong việc này. Mô hình cơ sở dữ liệu quan hệ hiện được chấp nhận rộng rãi và được coi là mô hình mạnh mẽ để tổ chức dữ liệu hiệu quả.

Hiện nay có rất nhiều hệ thống quản lý cơ sở dữ liệu, từ các ứng dụng máy tính để bàn nhỏ đến hệ thống máy chủ giàu tính năng với các phương pháp tìm kiếm được tối ưu hóa cao. Dưới đây là một số hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) nổi tiếng nhất:

- Lời tiên tri– được sử dụng chủ yếu cho các ứng dụng chuyên nghiệp, lớn.
- Máy chủ Microsoft SQL– RDBMS của Microsoft. Chỉ có sẵn cho hệ điều hành Windows.
- mysql là một RDBMS mã nguồn mở rất phổ biến. Được sử dụng rộng rãi bởi cả chuyên gia và người mới bắt đầu. Còn cần gì nữa?! Nó miễn phí.
- IBM– có một số RDBMS, nổi tiếng nhất là DB2.
- Microsoft truy cập– RDBMS, được sử dụng trong văn phòng và ở nhà. Trên thực tế, nó không chỉ là một cơ sở dữ liệu. MS Access cho phép bạn tạo cơ sở dữ liệu với giao diện người dùng.
Trong phần tiếp theo tôi sẽ cho bạn biết đôi điều về đặc điểm của cơ sở dữ liệu quan hệ.

3. Đặc điểm của cơ sở dữ liệu quan hệ.
Cơ sở dữ liệu quan hệ được thiết kế để nhanh chóng lưu trữ và truy xuất lượng lớn thông tin. Dưới đây là một số đặc điểm của cơ sở dữ liệu quan hệ và mô hình dữ liệu quan hệ.
Sử dụng phím.
Mỗi hàng dữ liệu trong bảng được xác định bằng một “khóa” duy nhất được gọi là khóa chính. Thông thường, khóa chính là số tăng tự động (tăng tự động) (1,2,3,4, v.v.). Dữ liệu trong các bảng khác nhau có thể được liên kết với nhau bằng các khóa. Các giá trị khóa chính của một bảng có thể được thêm vào các hàng (bản ghi) của bảng khác, từ đó liên kết các bản ghi đó với nhau.

Bằng cách sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL), dữ liệu từ các bảng khác nhau có liên quan bằng một khóa có thể được truy xuất chỉ trong một lần. Ví dụ: bạn có thể tạo một truy vấn sẽ chọn tất cả các đơn hàng từ bảng đơn hàng thuộc về id người dùng 3 (Mike) từ bảng người dùng. Chúng ta sẽ nói thêm về các phím trong các phần sau.


Cột id trong bảng này là khóa chính. Mỗi bản ghi có một khóa chính duy nhất, thường là một số. Cột nhóm người dùng là khóa ngoại. Đánh giá theo tên của nó, rõ ràng nó đề cập đến một bảng chứa các nhóm người dùng.

Không có sự dư thừa dữ liệu.
Trong thiết kế cơ sở dữ liệu tuân theo các quy tắc của mô hình dữ liệu quan hệ, mỗi phần thông tin, chẳng hạn như tên người dùng, chỉ được lưu trữ ở một nơi. Điều này giúp loại bỏ nhu cầu làm việc với dữ liệu ở nhiều nơi. Dữ liệu trùng lặp được gọi là dư thừa dữ liệu và cần tránh trong thiết kế cơ sở dữ liệu tốt.
Giới hạn đầu vào.
Bằng cách sử dụng cơ sở dữ liệu quan hệ, bạn có thể xác định loại dữ liệu nào được phép lưu trữ trong một cột. Bạn có thể tạo một trường chứa số nguyên, số thập phân, đoạn văn bản nhỏ, đoạn văn bản lớn, ngày tháng, v.v.


Khi tạo bảng cơ sở dữ liệu, bạn cung cấp kiểu dữ liệu cho mỗi cột. Ví dụ: varchar là kiểu dữ liệu cho các đoạn văn bản nhỏ có số ký tự tối đa là 255 và int là một số.

Ngoài các loại dữ liệu, RDBMS cho phép bạn giới hạn hơn nữa dữ liệu bạn có thể nhập. Ví dụ: giới hạn độ dài hoặc buộc giá trị duy nhất của các bản ghi trong một cột nhất định. Hạn chế cuối cùng thường được sử dụng cho các trường chứa tên người dùng hoặc địa chỉ email.

Những hạn chế này giúp bạn kiểm soát tính toàn vẹn của dữ liệu và ngăn chặn các tình huống như sau:

Nhập địa chỉ (văn bản) vào trường nơi bạn muốn thấy số
- nhập chỉ mục vùng có cùng độ dài chỉ mục này là một trăm ký tự
- tạo người dùng có cùng tên
- tạo người dùng có cùng địa chỉ email
- nhập cân nặng (số) vào trường sinh nhật (ngày)

Duy trì tính toàn vẹn dữ liệu.
Bằng cách điều chỉnh các thuộc tính trường, liên kết các bảng và đặt cấu hình các ràng buộc, bạn có thể tăng độ tin cậy của dữ liệu của mình.
Nhiệm vụ về các quyền.
Hầu hết RDBMS đều cung cấp cài đặt quyền cho phép bạn chỉ định các quyền cụ thể cho người dùng cụ thể. Một số hành động có thể được cho phép hoặc từ chối đối với người dùng: CHỌN, CHÈN, XÓA, THAY ĐỔI, TẠO, v.v. Đây là những thao tác có thể được thực hiện bằng Ngôn ngữ truy vấn có cấu trúc (SQL).
Ngôn ngữ truy vấn có cấu trúc (SQL).
Để thực hiện một số thao tác nhất định trên cơ sở dữ liệu, chẳng hạn như lưu trữ dữ liệu, truy xuất, thay đổi dữ liệu, ngôn ngữ truy vấn có cấu trúc (SQL) được sử dụng. SQL tương đối dễ hiểu và cho phép... và các lựa chọn xếp chồng, chẳng hạn như truy xuất dữ liệu liên quan từ nhiều bảng bằng câu lệnh SQL THAM GIA. Như đã đề cập trước đó, SQL sẽ không được thảo luận trong hướng dẫn này. Tôi sẽ tập trung vào thiết kế cơ sở dữ liệu.

Cách bạn thiết kế cơ sở dữ liệu sẽ có tác động trực tiếp đến các truy vấn bạn cần chạy để truy xuất dữ liệu từ cơ sở dữ liệu. Đây là một lý do khác tại sao bạn cần suy nghĩ về nền tảng của mình. Với cơ sở dữ liệu được thiết kế tốt, các truy vấn của bạn có thể rõ ràng và đơn giản hơn.

Tính di động.
Mô hình dữ liệu quan hệ là tiêu chuẩn. Bằng cách tuân theo các quy tắc của mô hình dữ liệu quan hệ, bạn có thể chắc chắn rằng dữ liệu của mình có thể được chuyển sang RDBMS khác một cách tương đối dễ dàng.

Như đã nêu trước đó, thiết kế cơ sở dữ liệu là vấn đề xác định dữ liệu, liên hệ với nó và ghi kết quả của câu hỏi đó ra giấy (hoặc trong một chương trình máy tính). Thiết kế cơ sở dữ liệu độc lập với RDBMS mà bạn dự định sử dụng để tạo cơ sở dữ liệu đó.

Trong phần tiếp theo chúng ta sẽ xem xét kỹ hơn về các khóa chính.

Thiết kế cơ sở dữ liệu hệ thống thông tin là một công việc khá tốn nhiều công sức. Nó được thực hiện trên cơ sở chính thức hóa cấu trúc và quy trình của lĩnh vực chủ đề, thông tin về lĩnh vực này sẽ được lưu trữ trong cơ sở dữ liệu. Phân biệt khái niệmmạch-cấu trúc thiết kế.

Thiết kế khái niệm của cơ sở dữ liệu hệ thống thông tin phần lớn là một quá trình heuristic.Tính đầy đủ của mô hình thông tin của lĩnh vực chủ đề được xây dựng trong khuôn khổ của nó được xác minh bằng thực nghiệm trong quá trình vận hành hệ thống thông tin.

Chúng tôi liệt kê các giai đoạn của thiết kế khái niệm:

* nghiên cứu lĩnh vực chủ đề để hình thành ý tưởng chung về nó;

* xác định và phân tích các chức năng và nhiệm vụ của IS đã phát triển;

* xác định các đối tượng-thực thể chính của lĩnh vực chủ đề và mối quan hệ giữa chúng;

* sự trình bày chính thức của lĩnh vực chủ đề.

Khi thiết kế lược đồ cơ sở dữ liệu quan hệ, có thể phân biệt các thủ tục sau:

*xác định danh sách các bảng và mối quan hệ giữa chúng;

*xác định danh sách các trường, kiểu trường, trường khóa của từng bảng (lược đồ bảng), thiết lập mối quan hệ giữa các bảng thông qua khóa ngoại;

*thiết lập chỉ mục cho các trường trong bảng;

* phát triển danh sách (từ điển) cho các trường có dữ liệu liệt kê;

* thiết lập các ràng buộc toàn vẹn cho các bảng và các mối quan hệ;

* chuẩn hóa các bảng, điều chỉnh danh sách các bảng và các mối quan hệ. Thiết kế cơ sở dữ liệu được thực hiện ở cấp độ vật lý và logic. Thiết kế ở cấp độ vật lý được triển khai bằng DBMS và thường được tự động hóa.

Thiết kế logic bao gồm việc xác định số lượng và cấu trúc của bảng, phát triển các truy vấn cơ sở dữ liệu, tài liệu báo cáo, tạo biểu mẫu để nhập và chỉnh sửa dữ liệu trong cơ sở dữ liệu, v.v.

Một trong những nhiệm vụ quan trọng nhất của thiết kế cơ sở dữ liệu logic là cấu trúc dữ liệu. Các cách tiếp cận sau đây để thiết kế cấu trúc dữ liệu được phân biệt:

*kết hợp thông tin về các đối tượng thực thể trong một bảng (một mối quan hệ) với sự phân tách tiếp theo thành nhiều bảng có liên quan với nhau dựa trên quy trình chuẩn hóa mối quan hệ;

* hình thành kiến ​​thức về hệ thống (xác định loại dữ liệu nguồn và các mối quan hệ) và các yêu cầu xử lý dữ liệu, lấy sơ đồ cơ sở dữ liệu làm sẵn hoặc thậm chí là hệ thống thông tin ứng dụng làm sẵn bằng hệ thống CA5E;

* Thực hiện phân tích hệ thống và phát triển cấu trúc

Hệ thông thông tin

Nhân loại ngày nay đang trải qua một cuộc bùng nổ thông tin. Khối lượng thông tin đến với một người thông qua tất cả các phương tiện thông tin không ngừng tăng lên. Vì vậy, đối với mỗi người sống trong xã hội thông tin, việc nắm vững các phương tiện giải quyết tối ưu bài toán tích lũy, tổ chức và sử dụng thông tin hợp lý là rất quan trọng.

Khả năng xử lý thông tin của con người đã tăng lên đáng kể nhờ việc sử dụng máy tính. Trong việc sử dụng máy tính để giải quyết các vấn đề về dịch vụ thông tin, có thể phân biệt hai giai đoạn:

 Giai đoạn đầu, khi một nhóm nhỏ người - lập trình viên hệ thống - tham gia giải quyết các vấn đề xử lý thông tin và tổ chức dữ liệu. Thời kỳ này được đặc trưng bởi thực tế là các công cụ phần mềm được tạo ra để giải quyết một vấn đề xử lý dữ liệu cụ thể. Đồng thời, để giải quyết một vấn đề khác trong đó cùng một dữ liệu được sử dụng, cần phải tạo các chương trình mới;

 Thời gian sử dụng máy tính một cách có hệ thống. Để giải quyết một tập hợp các vấn đề trên máy tính, các công cụ phần mềm được tạo ra hoạt động trên cùng một dữ liệu và sử dụng một mô hình thông tin duy nhất của đối tượng. Những công cụ này không phụ thuộc vào bản chất của đối tượng hoặc mô hình của nó; chúng có thể được sử dụng cho các dịch vụ thông tin cho nhiều nhiệm vụ khác nhau. Nhân loại đã đến để tổ chức thông tin trong hệ thống thông tin.

Hệ thống thông tin (IS) là một lượng lớn dữ liệu cùng với phần mềm và phần cứng để xử lý chúng. Các loại hệ thống thông tin sau đây được phân biệt: hệ thống thực tế, tài liệu và chuyên gia.

IP thực tế - đây là một mảng sự kiện - giá trị dữ liệu cụ thể về các đối tượng của thế giới thực.

Thông tin trong IS thực tế được lưu trữ ở dạng có cấu trúc rõ ràng nên có thể đưa ra câu trả lời rõ ràng cho các câu hỏi được đặt ra, chẳng hạn như: “Ai là người chiến thắng Giải vô địch Thể dục dụng cụ Nga năm 1999?”, “Ai sở hữu AUDI 80?” xe có số đăng ký PA899P77?”, “Số điện thoại của khoa kế toán của Đại học quốc gia Moscow là gì?”, “Ai đã trở thành Tổng thống Nga trong cuộc bầu cử tháng 3 năm 2002?” v.v. Hệ thống thông tin thực tế được sử dụng theo nghĩa đen trong tất cả các lĩnh vực hoạt động của con người - trong khoa học, sản xuất vật chất, giao thông vận tải, y học, chính phủ và đời sống công cộng, thương mại, tội phạm học, nghệ thuật, thể thao.

Hệ thống thông tin tài liệu phục vụ một loại nhiệm vụ khác về cơ bản không yêu cầu câu trả lời rõ ràng cho câu hỏi được đặt ra. Cơ sở dữ liệu của các hệ thống như vậy được hình thành bởi một tập hợp các tài liệu văn bản phi cấu trúc (bài báo, sách, tóm tắt, văn bản luật) và các đối tượng đồ họa, được trang bị một hoặc một công cụ tìm kiếm chính thức khác. Theo quy định, mục đích của hệ thống là cung cấp, đáp ứng yêu cầu của người dùng, một danh sách các tài liệu hoặc đối tượng đáp ứng ở một mức độ nào đó các điều kiện được nêu trong yêu cầu. Ví dụ: hiển thị danh sách tất cả các bài viết có từ “Pushkin” xuất hiện. Đặc điểm cơ bản của hệ thống tài liệu là khả năng của nó, một mặt, tạo ra các tài liệu không cần thiết cho người dùng (ví dụ: khi từ “Pushkin” được sử dụng theo nghĩa khác với dự định), mặt khác, không để tạo ra những từ cần thiết (ví dụ: nếu tác giả sử dụng một số từ đồng nghĩa hoặc sai chính tả). Hệ thống tài liệu phải có khả năng xác định nghĩa của một thuật ngữ cụ thể dựa trên ngữ cảnh, ví dụ: phân biệt giữa “daisy” (cây), “daisy” (loại đầu in của máy in).

Hệ thống chuyên gia (ES) - các hệ thống thông minh được thiết kế để đóng vai trò “cố vấn” được xây dựng trên cơ sở kinh nghiệm và kiến ​​thức chính thức của một chuyên gia. Cốt lõi của ES là các cơ sở tri thức chứa đựng tri thức của các chuyên gia (chuyên gia) trong một lĩnh vực nhất định, trên cơ sở đó ES cho phép mô hình hóa lý luận của các chuyên gia trong một lĩnh vực chủ đề nhất định.

Việc phân loại và gán hệ thống thông tin cụ thể cho loại này hay loại khác đã lỗi thời, vì các hệ thống thực tế hiện đại thường hoạt động với các khối thông tin phi cấu trúc (văn bản, đồ họa, âm thanh, video) được trang bị các bộ mô tả có cấu trúc.

Tính đơn giản và hiệu quả của cơ sở dữ liệu dựa trên mô hình quan hệ tiếp tục xác định vị trí thống trị của chúng trong các ứng dụng phần mềm. Hiện nay, việc sử dụng cơ sở dữ liệu quan hệ trong các hệ thống phần mềm hướng đối tượng được coi là chuẩn mực. Đây được xem là xu hướng lâu dài và bền vững.

Cơ sở dữ liệu quan hệ bao gồm nhiều bảng hai chiều. Bảng lưu trữ dữ liệu khác nhau. Ví dụ: cơ sở dữ liệu có thể chứa các bảng về khách hàng, hàng hóa, tài khoản, v.v. Cấu trúc điển hình của bảng cơ sở dữ liệu quan hệ được thể hiện trong Hình 2. 1.2.

Cơm. 1.2. Cấu trúc điển hình của bảng cơ sở dữ liệu quan hệ

Các hàng của bảng được gọi Hồ sơ hoặc theo bộ dữ liệu. Các cột được gọi thuộc tính. Tại giao điểm của một hàng và một cột là giá trị không thể chia được (nguyên tử) của mục dữ liệu. Tập hợp các giá trị hợp lệ cho một thuộc tính (cột) được xác định bởi nó lãnh địa. Tên miền có thể rất nhỏ. Vì vậy, các giá trị thuộc tính Kích cỡ Bảng đồ thể thao có L, XL và XXL. Ngược lại, miền thuộc tính Họ rất lớn. Trong cơ sở dữ liệu, một miền được triển khai bằng cách sử dụng ràng buộc miền. Mỗi khi một giá trị được ghi vào cơ sở dữ liệu, sự tuân thủ của nó với miền được ghi cho một thuộc tính nhất định sẽ được kiểm tra. Do đó, cơ sở dữ liệu được bảo vệ khỏi việc nhập các giá trị không hợp lệ, ví dụ: ngày 32 tháng 5.

Tương tự ảo của bảng là hiệu suất, hoạt động giống như một bảng thông thường theo quan điểm của khách hàng, nhưng không tồn tại một mình. Một bảng thông thường chứa dữ liệu. Chế độ xem không chứa bất kỳ dữ liệu nào mà chỉ chỉ định nguồn của nó (một hoặc nhiều bảng thông thường, các hàng có thể chọn, các cột có thể chọn). Trên thực tế, chế độ xem được lưu trữ trong cơ sở dữ liệu dưới dạng yêu cầu tạo một bộ dữ liệu cụ thể. Kết quả của truy vấn này là nội dung của chế độ xem. Khi dữ liệu trong bảng nguồn thay đổi, nội dung của dạng xem cũng thay đổi.

Khóa được sử dụng để xác định một bản ghi riêng lẻ trong bảng. Khóa chính(Sơ đẳngChìa khóa, RK) mỗi bàn đều có. Đây là cột xác định duy nhất từng bản ghi trong bảng. Trong ví dụ của chúng tôi, như RK có thể là một cột Họ.Điều này đúng cho đến khi, chẳng hạn, một Bender khác xuất hiện. Để đảm bảo tính duy nhất của giá trị khóa chính, hai kỹ thuật được sử dụng. Đầu tiên, nó có thể được sử dụng khóa chính tổng hợp (tổng hợpSơ đẳngChìa khóa),được hình thành bởi một số cột (thuộc tính tự nhiên) của một bảng. Thứ hai, như RK bạn có thể nhập một cột bổ sung vào bảng không có ý nghĩa theo quan điểm của lĩnh vực chủ đề. Anh ấy được gọi phím thay thế. Ví dụ: khóa thay thế có thể là Mã số khách hàng hoặc Con sốđặt hàng.

Một khóa khác đóng vai trò quan trọng trong cơ sở dữ liệu quan hệ - Chìa khóa ngoài. Khóa ngoài (Nước ngoàiChìa khóa,FK) là một cột trong một bảng tham chiếu đến khóa chính của bảng khác. Sử dụng khóa ngoại, các kết nối được thiết lập giữa các bảng cơ sở dữ liệu khác nhau (một ví dụ được hiển thị trong Hình 1.3) - tăng tốc khả năng truy cập vào bảng bằng cách sử dụng chỉ mục.

Cơm. 1.3. Chìa khóa ngoài

Ví dụ này cho thấy bảng hóa đơn và khách hàng được liên kết bằng khóa Mã số khách hàng. Nếu chúng ta nhìn vào bảng tài khoản, thì Số tài khoản sẽ là khóa chính và Mã số khách hàng - khóa ngoại.

Để đảm bảo tính toàn vẹn của dữ liệu cơ sở dữ liệu, khóa ngoại phải thỏa mãn ràng buộc tính toàn vẹn tham chiếu.Điều đó có nghĩa là mọi giá trị khóa ngoại trong một bảng phải có giá trị tương ứng trong khóa chính hiện có trong bảng khác. Đây là ràng buộc quan trọng nhất vì nó đảm bảo tính nhất quán của các tham chiếu chéo giữa các bảng. Nếu các giá trị đúng khóa ngoại không kiểm tra, tính toàn vẹn tham chiếu của dữ liệu cơ sở dữ liệu có thể bị vi phạm. Ví dụ: xóa một hàng khỏi bảng khách hàng có thể dẫn đến thực tế là trong bảng đơn hàng sẽ vẫn còn các bản ghi đơn hàng được thực hiện bởi một khách hàng chưa xác định (và ai sẽ thanh toán cho đơn hàng?). Các ràng buộc toàn vẹn tham chiếu phải được duy trì tự động. Mỗi khi dữ liệu cơ sở dữ liệu được nhập hoặc thay đổi, các điều khiển sẽ kiểm tra các ràng buộc và đảm bảo rằng chúng được đáp ứng. Nếu các hạn chế bị vi phạm, việc sửa đổi dữ liệu sẽ bị cấm.

Ngoài ra, bảng có thể chứa các khóa phụ - chỉ mục. Chúng được sử dụng làm chỉ mục chủ đề trong cuốn sách. Để tìm một thuật ngữ cụ thể trong một cuốn sách, bạn không cần phải lật qua tất cả các trang liên tiếp - chỉ cần nhìn vào mục lục và tìm số trang mong muốn. Ví dụ: bạn có thể tạo chỉ mục trên một cột Họ(Hình 1.4).

Cơm. 1.4. Tăng tốc độ truy cập bảng bằng chỉ mục

Kết quả sẽ tạo thành một bảng nhỏ chỉ lưu trữ họ và liên kết đến vị trí bản ghi trong bảng chính. Bây giờ bạn không cần phải xem qua toàn bộ bảng lớn để tìm kiếm bản ghi. Kết quả là, chúng tôi đạt được hiệu suất. Tuy nhiên, khi thêm, xóa bản ghi (trong bảng chính) thì bảng chỉ mục phải được tạo mới. Điều này làm chậm hoạt động.

Việc xử lý dữ liệu trong cơ sở dữ liệu quan hệ được thực hiện quy trình được lưu trữđồ ngốc. Một loại thủ tục lưu trữ là gây nên. Trình kích hoạt luôn được liên kết với một bảng cụ thể và được gọi tự động khi một sự kiện cụ thể xảy ra (ví dụ: chèn, xóa hoặc cập nhật bản ghi).

Hãy thảo luận về mối quan hệ giữa các bảng. Sau khi các bảng được hình thành, họ quyết định cách kết hợp dữ liệu của mình khi trích xuất từ ​​cơ sở dữ liệu. Bước đầu tiên là xác định mối quan hệ giữa các bảng. Sau này, có thể tạo truy vấn, biểu mẫu và báo cáo hiển thị dữ liệu từ nhiều bảng cùng một lúc. Ví dụ: để in hóa đơn, bạn cần lấy dữ liệu từ các bảng khác nhau và kết hợp chúng lại. Mối quan hệ bảng thiết lập mối quan hệ giữa các giá trị khớp trong các trường khóa. Hãy xem xét các loại mối quan hệ.

Mối quan hệ một-một. Trong trường hợp này, mỗi hàng (bản ghi) của một bảng được liên kết với một hàng của bảng khác (Hình 1.5).

Cơm. 1.5. Mối quan hệ một-một

Một ví dụ là mối quan hệ giữa bảng nhân viên và bảng địa chỉ của họ. Mối quan hệ này hiếm khi xảy ra vì dữ liệu liên quan có thể dễ dàng được đặt trong một bảng.

Mối quan hệ một-nhiều. Một bản ghi của bảng đầu tiên được liên kết với một số bản ghi trong bảng thứ hai (Hình 1.6).

Cơm. 1.6. Mối quan hệ một-nhiều

Mỗi bản ghi trong bảng thứ hai không thể có nhiều hơn một bản ghi tương ứng trong bảng đầu tiên.

Mối quan hệ nhiều-nhiều. Một bản ghi của bảng đầu tiên có thể tương ứng với một số bản ghi trong bảng thứ hai và một bản ghi của bảng thứ hai có thể tương ứng với một số bản ghi của bảng thứ nhất (Hình 1.7).

Cơm. 1.7. Mối quan hệ nhiều-nhiều

Thông thường, để tổ chức các mối quan hệ như vậy cần có một bảng phụ, bao gồm các khóa chính của hai bảng chính. Mối quan hệ này xảy ra giữa đơn hàng và sản phẩm. Một đơn hàng có thể bao gồm nhiều tên sản phẩm và một tên sản phẩm có thể có trong nhiều đơn hàng. Như vậy, phải có một bảng đơn hàng, một bảng sản phẩm và một bảng chứa các cặp sản phẩm-thứ tự.

Bây giờ chúng ta hãy xem xét ngắn gọn việc chuẩn hóa cơ sở dữ liệu quan hệ. Chuẩn hóa đảm bảo tối ưu hóa cấu trúc cơ sở dữ liệu. Nó dẫn đến việc loại bỏ sự dư thừa trong các tập dữ liệu. Chuẩn hóa cơ sở dữ liệu được thực hiện tuần tự, từng bước một. Các quy tắc chuẩn hóa được trình bày dưới dạng các dạng chuẩn hóa.

Dạng bình thường đầu tiên (1NF) yêu cầu giá trị của tất cả các phần tử dữ liệu trong cột phải là giá trị nguyên tử. Dạng chuẩn thứ hai (2NF) yêu cầu mọi cột không có khóa phải hoàn toàn phụ thuộc vào khóa chính. Dạng chuẩn thứ ba (3NF) yêu cầu tất cả các cột (thuộc tính) không khóa phải độc lập lẫn nhau và phụ thuộc hoàn toàn vào khóa chính. Ví dụ: một sự phụ thuộc tồn tại nếu các giá trị của một cột được tính từ dữ liệu trong các cột khác. Kết quả của việc chuẩn hóa là một cấu trúc cơ sở dữ liệu tối ưu trong đó có sự trùng lặp dữ liệu cần thiết nhưng không có sự dư thừa.

XEM LẠI BÀI GIẢNG

Dành cho học sinh chuyên
T1002 “Phần mềm công nghệ thông tin”

(L.V. Rudikova, Tiến sĩ, Phó Giáo sư)

Câu 31. KIẾN TRÚC DBMS. MÔ HÌNH DỮ LIỆU QUAN HỆ

1. Khái niệm về cơ sở dữ liệu.

2. Kiến trúc cơ sở dữ liệu ba lớp.

3. Vòng đời cơ sở dữ liệu.

4. Kiến trúc DBMS.

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

6. Thiết kế cơ sở dữ liệu quan hệ.

7. Những hình thức quan hệ bình thường.

8. Đại số quan hệ.

1. Khái niệm về cơ sở dữ liệu.

Hệ thống cơ sở dữ liệu là bất kỳ hệ thống thông tin dựa trên máy tính nào trong đó dữ liệu có thể được chia sẻ giữa nhiều ứng dụng.

Hệ thống thông tin – một hệ thống tự động tổ chức dữ liệu và cung cấp thông tin.

Hệ thống thông tin và quản lý – một hệ thống cung cấp thông tin hỗ trợ cho việc quản lý.

Dữ liệu - sự thật rải rác.

Thông tin - Tổ chức và xử lý dữ liệu.

Dưới cơ sở dữ liệu đề cập đến một tập hợp các nhóm dữ liệu (thông tin) cơ bản được kết nối với nhau có thể được xử lý bởi một hoặc nhiều hệ thống ứng dụng. Hệ thống cơ sở dữ liệu bao gồm một cơ sở dữ liệu; phần mềm có mục đích chung được gọi là hệ thống quản lý cơ sở dữ liệu (DBMS) và dùng để quản lý cơ sở dữ liệu; thiết bị và con người phù hợp.

Mỗi DBMS phải đáp ứng các yêu cầu sau:

· cung cấp cho người dùng khả năng tạo cơ sở dữ liệu mới và xác định chúng lược đồ (cấu trúc dữ liệu logic) sử dụng một ngôn ngữ đặc biệt - ngôn ngữ định nghĩa dữ liệu; hỗ trợ nhiều chế độ xem của cùng một dữ liệu;

· cho phép " lời yêu cầu» dữ liệu và thay đổi chúng bằng cách sử dụng ngôn ngữ truy vấn, hoặc ngôn ngữ thao tác dữ liệu; cho phép tích hợp và chia sẻ dữ liệu trên các ứng dụng;

· hỗ trợ lưu trữ lượng dữ liệu rất lớn, tính bằng gigabyte trở lên, trong thời gian dài, bảo vệ chúng khỏi bị hư hỏng do vô tình và sử dụng trái phép, đồng thời cung cấp khả năng sửa đổi cơ sở dữ liệu và quyền truy cập vào dữ liệu thông qua các truy vấn, tức là. đảm bảo tính bảo mật và toàn vẹn của dữ liệu;

· kiểm soát truy cập dữ liệu đồng thời cho nhiều người dùng; loại trừ ảnh hưởng của yêu cầu của một người dùng đối với yêu cầu của người khác và ngăn chặn việc truy cập đồng thời, điều này có thể làm hỏng dữ liệu, tức là. đảm bảo kiểm soát đồng thời việc truy cập dữ liệu.

Hệ thống cơ sở dữ liệu bao gồm các thành phần sau:

· Người dùng, tức là những người sử dụng dữ liệu.

· Ứng dụng, tức là chương trình người dùng yêu cầu dữ liệu từ hệ thống.

· DBMS là phần mềm quản lý quyền truy cập dữ liệu và cung cấp chức năng cụ thể của hệ thống cơ sở dữ liệu.

· Dữ liệu, tức là chuỗi được lưu trữ trong tập tin.

· Hệ thống máy chủ là hệ thống máy tính nơi các tập tin được lưu trữ. Các hàng dữ liệu được truy cập bởi hệ thống máy chủ. Vai trò của DBMS là tạo ra các truy vấn cho phép sử dụng chức năng quản lý tệp của hệ thống máy chủ để phục vụ các ứng dụng khác nhau. DBMS là một lớp phần mềm bổ sung được xây dựng bên trên phần mềm hệ thống máy chủ.

Do đó, một hệ thống có cơ sở dữ liệu có thể được biểu diễn dưới dạng chuỗi cấp độ sau:

Ở mức thấp nhất có dữ liệu được lưu trữ trong các tệp vật lý (bộ nhớ cơ sở dữ liệu vật lý). Ở cấp cao nhất - các ứng dụng có cách thể hiện riêng của chúng về cùng một dữ liệu vật lý. Mỗi khung nhìn cơ sở dữ liệu là một cấu trúc logic cụ thể được xây dựng từ dữ liệu vật lý cơ bản. Để cung cấp giao diện giữa bộ nhớ vật lý của cơ sở dữ liệu và các phiên bản logic khác nhau của nó (nhiều khung nhìn được hỗ trợ), DBMS phải bao gồm nhiều lớp.

2. Kiến trúc cơ sở dữ liệu ba cấp.

Sự khác biệt giữa biểu diễn dữ liệu logic và vật lý được chính thức công nhận vào năm 1978 khi ủy ban ANSI/SPARC đề xuất một cấu trúc tổng quát của hệ thống cơ sở dữ liệu. Cấu trúc này được gọi là kiến ​​trúc ba tầng. Ba cấp độ kiến ​​trúc là: nội bộ, khái niệm và bên ngoài.

Cấp độ nội bộ – đây là cấp độ xác định hình thức vật lý của cơ sở dữ liệu, gần nhất với lưu trữ vật lý và gắn liền với các phương pháp lưu trữ thông tin trên các thiết bị lưu trữ vật lý. Liên kết với lớp này là ổ đĩa, địa chỉ vật lý, chỉ mục, con trỏ, v.v. Lớp này là trách nhiệm của những người thiết kế cơ sở dữ liệu vật lý, những người quyết định thiết bị vật lý nào sẽ lưu trữ dữ liệu, phương pháp truy cập nào sẽ được sử dụng để truy xuất và cập nhật dữ liệu cũng như những biện pháp nào cần được thực hiện để duy trì hoặc cải thiện hiệu suất của hệ thống quản lý cơ sở dữ liệu. Người dùng không chạm vào cấp độ này.

Cấp khái niệm – Mức cấu trúc xác định thiết kế logic của cơ sở dữ liệu. Ở cấp độ này, thiết kế khái niệm của cơ sở dữ liệu được thực hiện, bao gồm việc phân tích nhu cầu thông tin của người dùng và xác định các thành phần dữ liệu họ cần. Kết quả của thiết kế khái niệm là một sơ đồ khái niệm, một mô tả logic của tất cả các thành phần dữ liệu và mối quan hệ giữa chúng.

Cấp độ bên ngoài – cấp độ cấu trúc của cơ sở dữ liệu, xác định chế độ xem dữ liệu của người dùng. Mỗi nhóm người dùng nhận được chế độ xem dữ liệu trong cơ sở dữ liệu riêng. Mỗi chế độ xem dữ liệu như vậy cung cấp mô tả lấy người dùng làm trung tâm về các thành phần dữ liệu tạo nên chế độ xem dữ liệu và mối quan hệ giữa chúng. Nó có thể được bắt nguồn trực tiếp từ khung khái niệm. Việc thu thập các chế độ xem dữ liệu người dùng như vậy cung cấp cấp độ bên ngoài.

Lượt xem của người dùng và ứng dụng

Cấp độ bên ngoài

Hiển thị

Sơ đồ khái niệm

Cấp khái niệm

Trưng bày

Cấp độ nội bộ

Hệ thống máy chủ

Dữ liệu được lưu trữ

Cơm. Các cấp độ DBMS

3. Vòng đời cơ sở dữ liệu.

Quá trình thiết kế, triển khai và bảo trì hệ thống cơ sở dữ liệu được gọi là vòng đời của cơ sở dữ liệu (LDC). Quá trình tạo ra một hệ thống được gọi là vòng đời hệ thống (SLC).

Sự hiểu biết và cách tiếp cận đúng đắn đối với LCBD là rất quan trọng và cần được xem xét chi tiết, vì nó dựa trên cách tiếp cận tập trung vào dữ liệu. Các phần tử dữ liệu ổn định hơn các chức năng hệ thống thực hiện. Việc tạo cấu trúc dữ liệu phù hợp đòi hỏi phải phân tích phức tạp các lớp đơn vị dữ liệu và mối quan hệ giữa chúng. Nếu bạn xây dựng một lược đồ cơ sở dữ liệu logic thì trong tương lai bạn có thể tạo bất kỳ số lượng hệ thống chức năng nào sử dụng lược đồ này. Cách tiếp cận hướng chức năng chỉ có thể được sử dụng để tạo ra các hệ thống tạm thời được thiết kế cho thời gian hoạt động ngắn.

LCBD bao gồm các giai đoạn sau:

1. Lập kế hoạch trước – lập kế hoạch cơ sở dữ liệu, được thực hiện trong quá trình phát triển kế hoạch cơ sở dữ liệu chiến lược. Trong quá trình lập kế hoạch, các thông tin sau được thu thập:

· những chương trình ứng dụng nào được sử dụng và chúng thực hiện những chức năng gì;

· những tập tin nào được liên kết với từng ứng dụng này;

· những ứng dụng và tập tin mới nào đang hoạt động.

Thông tin này giúp xác định cách sử dụng thông tin ứng dụng và xác định các yêu cầu trong tương lai đối với hệ thống cơ sở dữ liệu.

Thông tin từ giai đoạn này được ghi lại dưới dạng mô hình dữ liệu tổng quát.

2. Kiểm tra tính khả thi . Ở đây tính khả thi về mặt công nghệ, vận hành và kinh tế của kế hoạch tạo cơ sở dữ liệu được xác định, tức là:

· tính khả thi về công nghệ – công nghệ có sẵn để triển khai cơ sở dữ liệu theo kế hoạch không?

· tính khả thi trong hoạt động – có cần kinh phí và chuyên gia để triển khai thành công kế hoạch cơ sở dữ liệu không?

· tính khả thi về mặt kinh tế – có thể đưa ra kết luận được không? Liệu hệ thống theo kế hoạch có tự chi trả được không? Có thể ước tính chi phí và lợi ích không?

3. Xác định yêu cầu bao gồm việc lựa chọn mục tiêu cơ sở dữ liệu, làm rõ các yêu cầu thông tin cho hệ thống và các yêu cầu về phần cứng và phần mềm. Vì vậy, ở giai đoạn thu thập dữ liệu và xác định yêu cầu này, mô hình thông tin tổng quát, thể hiện ở các nhiệm vụ sau:

· Mục tiêu của hệ thống được xác định bằng cách phân tích nhu cầu thông tin. Nó cũng nhất thiết chỉ ra loại cơ sở dữ liệu nào sẽ được tạo (phân phối, tổng thể) và những công cụ giao tiếp nào là cần thiết. Tài liệu đầu ra là một nhận xét mô tả các mục tiêu của hệ thống.

· Xác định yêu cầu của người dùng: tài liệu dưới dạng thông tin tổng quát (nhận xét, báo cáo, khảo sát, bảng câu hỏi, v.v.); sửa chữa chức năng hệ thống và xác định các hệ thống ứng dụng sẽ đáp ứng các yêu cầu này. Dữ liệu được trình bày dưới dạng các tài liệu liên quan.

· Xác định các yêu cầu chung về phần cứng và phần mềm liên quan đến việc duy trì mức hiệu suất mong muốn. (Tìm hiểu số lượng người dùng hệ thống, số lượng tin nhắn đầu vào mỗi ngày, số lượng bản in). Thông tin này được sử dụng để chọn loại máy tính và DBMS, dung lượng ổ đĩa và số lượng máy in. Dữ liệu từ giai đoạn này được trình bày trong một báo cáo chứa các cấu hình phần cứng và phần mềm mẫu.

· Phát triển kế hoạch tạo hệ thống theo từng giai đoạn, bao gồm cả việc lựa chọn các ứng dụng ban đầu.

4. Thiết kế mẫu - Xây dựng sơ đồ cơ sở dữ liệu khái niệm. Thông số kỹ thuật được phát triển đến mức cần thiết để chuyển sang triển khai.

Tài liệu đầu ra chính là một tài liệu duy nhất mô hình thông tin(hoặc Lược đồ cơ sở dữ liệu ở mức khái niệm). Khi phát triển mô hình này, thông tin và chức năng mà hệ thống phải thực hiện, được xác định ở giai đoạn thu thập và xác định yêu cầu hệ thống, sẽ được sử dụng. Ở giai đoạn này, cũng cần xác định: 1) các quy tắc cho dữ liệu; 2) quy tắc cho các quy trình; 3) quy tắc cho giao diện.

5. Thực hiện quá trình biến một mô hình khái niệm thành một cơ sở dữ liệu chức năng. Nó bao gồm các bước sau.

1) Lựa chọn và mua DBMS cần thiết.

2) Chuyển đổi mô hình cơ sở dữ liệu khái niệm (thông tin) thành mô hình dữ liệu logic và vật lý:

· Dựa trên mô hình dữ liệu thông tin, một lược đồ dữ liệu được xây dựng cho một DBMS cụ thể, nếu cần, cơ sở dữ liệu sẽ được chuẩn hóa để tăng tốc độ xử lý truy vấn trong tất cả các ứng dụng quan trọng về thời gian;

· nó được xác định những quy trình ứng dụng nào cần được triển khai trong lược đồ dữ liệu dưới dạng các thủ tục được lưu trữ;

· thực hiện các ràng buộc được thiết kế để đảm bảo tính toàn vẹn dữ liệu và thực thi các quy tắc dữ liệu;

· thiết kế và tạo các trình kích hoạt để triển khai tất cả các quy tắc dữ liệu được xác định tập trung và các quy tắc về tính toàn vẹn dữ liệu không thể được chỉ định làm ràng buộc;

· phát triển chiến lược lập chỉ mục và phân cụm; ước tính kích thước của tất cả các bảng, cụm và chỉ mục;

· xác định cấp độ truy cập của người dùng, phát triển và thực hiện các quy tắc kiểm tra và bảo mật. Tạo vai trò và từ đồng nghĩa để cung cấp quyền truy cập cho nhiều người dùng với mức độ truy cập nhất quán.

· phát triển cấu trúc liên kết mạng của cơ sở dữ liệu và cơ chế truy cập liền mạch vào dữ liệu từ xa (cơ sở dữ liệu được sao chép hoặc phân tán).

3) Xây dựng từ điển dữ liệu xác định việc lưu trữ các định nghĩa cấu trúc dữ liệu cơ sở dữ liệu. Từ điển dữ liệu cũng chứa thông tin về quyền truy cập, quy tắc bảo vệ dữ liệu và kiểm soát dữ liệu.

4) Điền vào cơ sở dữ liệu.

5) Xây dựng các chương trình ứng dụng, kiểm soát quản lý.

6) Đào tạo người dùng.

6. Đánh giá và cải thiện lược đồ cơ sở dữ liệu. Liên quan đến việc khảo sát người dùng để xác định các nhu cầu chức năng chưa được đáp ứng. Các thay đổi được thực hiện khi cần thiết, thêm các chương trình và thành phần dữ liệu mới khi nhu cầu thay đổi và mở rộng.

Như vậy, LCBD bao gồm:

· Nghiên cứu lĩnh vực chủ đề và cung cấp tài liệu liên quan (1-3).

· Xây dựng mô hình thông tin (4).

· Thực hiện (5).

· Đánh giá hiệu suất và hỗ trợ cơ sở dữ liệu (6).

4. Kiến trúc DBMS.



Cơm. Các thành phần chính của DBMS

Dữ liệu, siêu dữ liệu - không chỉ chứa dữ liệu mà còn chứa thông tin về cấu trúc của dữ liệu ( metadata). Trong DBMS quan hệ, siêu dữ liệu bao gồm các bảng hệ thống (mối quan hệ), tên của các mối quan hệ, tên thuộc tính của các mối quan hệ đó và kiểu dữ liệu của các thuộc tính đó.

Thông thường DBMS hỗ trợ chỉ số dữ liệu. Mục lục là cấu trúc dữ liệu giúp tìm nhanh các phần tử dữ liệu đã cho một phần giá trị của chúng (ví dụ: một chỉ mục tìm các bộ của một quan hệ cụ thể có giá trị cho trước của một trong các thuộc tính). Các chỉ mục là một phần của dữ liệu được lưu trữ và các mô tả cho biết các thuộc tính mà chỉ mục có là một phần của siêu dữ liệu.

Trình quản lý bộ nhớ -nhận thông tin cần thiết từ vị trí lưu trữ dữ liệu và thay đổi thông tin trong đó theo yêu cầu của các cấp cao hơn của hệ thống.

Trong các hệ thống cơ sở dữ liệu đơn giản, trình quản lý bộ nhớ có thể là hệ thống tệp của hệ điều hành. Tuy nhiên, để nâng cao hiệu quả, DBMS thường thực hiện kiểm soát bộ nhớ trực tiếp. Trình quản lý bộ nhớ bao gồm hai thành phần:

· Quản lý tập tin giám sát vị trí của các tệp trên đĩa và lấy khối hoặc các khối chứa các tệp khi người quản lý bộ đệm yêu cầu (đĩa thường được chia thành khối đĩa- vùng bộ nhớ liền kề chứa từ 4000 đến 16000 byte).

· Trình quản lý bộ đệm quản lý bộ nhớ chính. Nó nhận các khối dữ liệu từ đĩa thông qua trình quản lý tệp và chọn trang bộ nhớ chính để lưu trữ một khối cụ thể. Nó có thể lưu trữ tạm thời một khối đĩa trong bộ nhớ chính, nhưng sẽ trả khối đó vào đĩa khi cần một trang bộ nhớ chính cho một khối khác. Các trang cũng được trả về đĩa khi người quản lý giao dịch yêu cầu.

Bộ xử lý "Yêu cầu" - xử lý các yêu cầu và yêu cầu thay đổi dữ liệu hoặc siêu dữ liệu. Nó gợi ý cách tốt nhất để thực hiện thao tác cần thiết và đưa ra các lệnh thích hợp cho người quản lý bộ nhớ.

Bộ xử lý truy vấn (trình quản lý) chuyển một truy vấn hoặc hành động cơ sở dữ liệu có thể được thực thi ở mức rất cao (ví dụ: dưới dạng truy vấn SQL ), thành một chuỗi các yêu cầu về dữ liệu được lưu trữ chẳng hạn như các bộ dữ liệu riêng lẻ của một quan hệ hoặc các phần của chỉ mục trên một quan hệ. Thường là phần khó khăn nhất của quá trình xử lý lời yêu cầu là của anh ấy tổ chức, tức là chọn tốt kế hoạch truy vấn hoặc một chuỗi yêu cầu đến hệ thống bộ nhớ để đáp ứng yêu cầu.

Người quản lý giao dịch - chịu trách nhiệm về tính toàn vẹn của hệ thống và phải đảm bảo xử lý đồng thời nhiều yêu cầu, không có sự can thiệp của các yêu cầu (bổ sung, nhỏ nhất lớn nhất ) và bảo vệ dữ liệu trong trường hợp hệ thống bị lỗi. Nó tương tác với trình quản lý truy vấn vì nó cần biết dữ liệu nào bị ảnh hưởng bởi các truy vấn hiện tại (để tránh xung đột) và có thể trì hoãn một số truy vấn và thao tác để tránh xung đột. Trình quản lý giao dịch cũng tương tác với trình quản lý bộ nhớ vì các sơ đồ bảo vệ dữ liệu thường liên quan đến việc lưu trữ nhật ký thay đổi dữ liệu. Nếu thao tác được thực hiện chính xác, tập tin sự đăng ký sẽ chứa bản ghi các thay đổi, do đó bạn có thể thực hiện lại ngay cả những thay đổi không đến được đĩa do lỗi hệ thống.

Các DBMS điển hình cho phép người dùng nhóm nhiều truy vấn và/hoặc thay đổi thành một giao dịch duy nhất. Giao dịch là một nhóm các hoạt động phải được thực hiện tuần tự như một tổng thể.

Thông thường, một hệ thống cơ sở dữ liệu hỗ trợ nhiều giao dịch cùng một lúc. Việc thực hiện chính xác tất cả các giao dịch như vậy sẽ đảm bảo người quản lý giao dịch. Việc thực hiện đúng các giao dịch được đảm bảoaxit -của cải (tính nguyên tử, tính nhất quán, sự cô lập, độ bền):

· tính nguyên tử- thực hiện tất cả các giao dịch hoặc không thực hiện bất kỳ giao dịch nào (ví dụ: rút tiền từ ATM và ghi nợ tương ứng vào tài khoản của khách hàng phải là một giao dịch nguyên tử duy nhất; mỗi hoạt động này không được phép thực hiện riêng lẻ);

· Tính nhất quán - trạng thái trong đó dữ liệu đáp ứng mọi mong đợi có thể có (ví dụ: điều kiện nhất quán đối với cơ sở dữ liệu hàng không là không có chỗ ngồi nào trên máy bay được dành riêng cho hai hành khách);

· vật liệu cách nhiệt- khi hai hoặc nhiều giao dịch được thực hiện song song, kết quả của chúng phải tách biệt với nhau. Việc thực hiện đồng thời hai giao dịch cùng một lúc sẽ không dẫn đến kết quả không thể xảy ra nếu chúng được thực hiện tuần tự (ví dụ: khi bán vé cho cùng một chuyến bay trong trường hợp còn ghế cuối cùng miễn phí khi hai đại lý đồng thời yêu cầu , yêu cầu của một người phải được thực hiện, người kia - Không);

· tuổi thọ - sau khi giao dịch hoàn tất, kết quả sẽ không bị mất trong trường hợp hệ thống bị lỗi, ngay cả khi lỗi này xảy ra ngay sau khi hoàn thành giao dịch.

Chúng ta cũng hãy xem xét 3 loại quyền truy cập vào DBMS:

1. Yêu cầu - Câu hỏi về dữ liệu có thể được tạo ra theo hai cách:

Một)bằng cách sử dụng giao diện truy vấn chung(ví dụ: một DBMS quan hệ cho phép truy vấn SQL , được truyền đến bộ xử lý yêu cầu và cũng nhận được phản hồi cho chúng);

b) với sự giúp đỡ giao diện chương trình ứng dụng- các yêu cầu được truyền qua một giao diện đặc biệt (các yêu cầu tùy ý không thể được truyền qua giao diện này);

2. Sửa đổi - Đây là các thao tác thay đổi dữ liệu. Chúng cũng có thể được thực thi thông qua giao diện chung hoặc thông qua giao diện chương trình ứng dụng;

3. Sửa đổi mạch - Đây là các nhóm quản trị cơ sở dữ liệu có quyền thay đổi lược đồ cơ sở dữ liệu hoặc tạo cơ sở dữ liệu mới.

Kiến trúc máy khách/máy chủ. Nhiều phiên bản phần mềm hiện đại triển khai kiến ​​trúc máy khách/máy chủ: Một tiến trình (máy khách) gửi yêu cầu đến một tiến trình khác (máy chủ) để thực thi. Thông thường, cơ sở dữ liệu thường được chia thành một quy trình máy chủ và một số quy trình máy khách.

Trong kiến ​​trúc máy khách/máy chủ đơn giản nhất, toàn bộ DBMS là một máy chủ, ngoại trừ các giao diện truy vấn tương tác với người dùng và gửi các truy vấn hoặc các lệnh khác đến máy chủ. Ví dụ: một DBMS quan hệ thường sử dụng ngôn ngữ SQL để thể hiện các yêu cầu từ máy khách đến máy chủ. Sau đó, máy chủ cơ sở dữ liệu sẽ cung cấp cho khách hàng phản hồi dưới dạng bảng (mối quan hệ). Có xu hướng tăng tải cho máy khách vì nếu có nhiều người dùng cơ sở dữ liệu làm việc đồng thời, các vấn đề có thể phát sinh với máy chủ.

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

RMD của một lĩnh vực chủ đề nhất định là tập hợp các mối quan hệ thay đổi theo thời gian. Khi tạo một hệ thống thông tin, một tập hợp các mối quan hệ cho phép bạn lưu trữ dữ liệu về các đối tượng của lĩnh vực chủ đề và lập mô hình các kết nối giữa chúng.

Thái độ là một bảng hai chiều chứa một số dữ liệu. Về mặt toán học dướiN quan hệ -ary R hiểu bộ sản phẩm Descartes D 1 D 2 … D n bộ ( tên miền) D 1, D 2, …, D n (), tùy chọn khác nhau:

R D 1 D 2 … D n ,

trong đó D 1 D 2 … D n – tích Descartes hoàn chỉnh, tức là một tập hợp tất cả các kết hợp có thể có của N mỗi phần tử, trong đó mỗi phần tử được lấy từ miền riêng của nó.

Lãnh địa là một khái niệm ngữ nghĩa. Một miền có thể được coi là tập hợp con các giá trị của một số loại dữ liệu có ý nghĩa cụ thể. Tên miền được đặc trưng bởi các thuộc tính sau:

· Tên miền có tên duy nhất(trong cơ sở dữ liệu).

· Tên miền được xác định tại một số đơn giản kiểu dữ liệu hoặc trên một miền khác.

· Một tên miền có thể có một số điều kiện logic, cho phép bạn mô tả tập hợp con dữ liệu hợp lệ cho một miền nhất định.

· Tên miền mang một ý nghĩa nhất định tải ngữ nghĩa.

Thuộc tính mối quan hệ có một vài loại như vậy<Имя_атрибута: Имя_домена>. Tên thuộc tính phải là duy nhất trong mối quan hệ. Thông thường tên thuộc tính của một mối quan hệ giống với tên của các miền tương ứng.

Tỉ lệ , được xác định trên nhiều miền, chứa hai phần: tiêu đề và nội dung.

Tiêu đề mối quan hệ là một số lượng thuộc tính quan hệ cố định:

Phần đầu quan hệ mô tả tích Descartes của các miền mà trên đó mối quan hệ được xác định. Tiêu đề là tĩnh; nó không thay đổi khi làm việc với cơ sở dữ liệu. Nếu các thuộc tính được thay đổi, thêm vào hoặc xóa đi trong một quan hệ thì kết quả sẽ là khác mối quan hệ (thậm chí có cùng tên).

Mối quan hệ cơ thể chứa nhiều bộ dữ liệu mối quan hệ. Mọi quan hệ bộ dữ liệu đại diện cho một tập hợp các cặp có dạng<Имя_атрибута: Значение_атрибута>:

sao cho giá trị thuộc tính thuộc về miền . Phần thân của mối quan hệ là một tập hợp các bộ dữ liệu, tức là một tập hợp con của tích Descartes của miền xác định. Vì vậy, phần thân của một quan hệ thực sự là một quan hệ theo nghĩa toán học của từ này. Nội dung của mối quan hệ có thể thay đổi khi làm việc với cơ sở dữ liệu - các bộ dữ liệu có thể được thay đổi, thêm và xóa.

Mối quan hệ thường được viết là:

hoặc ngắn hơn

,

hoặc đơn giản

Số lượng thuộc tính trong một quan hệ được gọi là bằng cấp (hoặc -tính đoàn kết ) mối quan hệ. Số lượng của một tập hợp các bộ của một quan hệ được gọi là quyền lực mối quan hệ.

Sơ đồ quan hệ là danh sách tên thuộc tính của một mối quan hệ nhất định cho biết miền mà chúng thuộc về:

Nếu các thuộc tính lấy các giá trị từ cùng một miền thì chúng được gọi là -comparable, trong đó tập hợp các phép toán so sánh hợp lệ được chỉ định cho một miền nhất định. Ví dụ: nếu một miền chứa dữ liệu số thì tất cả các phép toán so sánh đều hợp lệ đối với miền đó, thì . Tuy nhiên, đối với các miền chứa dữ liệu ký tự, không chỉ có thể chỉ định các phép toán so sánh về đẳng thức và bất đẳng thức của các giá trị. Nếu một miền nhất định có thứ tự từ điển thì miền đó cũng có đầy đủ các phép toán so sánh.

Lược đồ của hai quan hệ được gọi là tương đương , nếu chúng có cùng mức độ và có thể sắp xếp các tên thuộc tính trong lược đồ theo cách sao cho các thuộc tính có thể so sánh được, tức là các thuộc tính lấy giá trị từ cùng một miền, sẽ ở cùng một vị trí:

Cho phép - Sơ đồ quan hệ – lược đồ của mối quan hệ sau khi sắp xếp các tên thuộc tính. Sau đó

~

Vì vậy, đối với các quan hệ tương đương, các điều kiện sau được thỏa mãn:

· Các bảng có cùng số cột.

· Các bảng chứa các cột có cùng tên.

· Các cột có cùng tên chứa dữ liệu từ cùng một tên miền.

· Các bảng có cùng hàng nhưng thứ tự các cột có thể khác nhau.

Tất cả các bảng như vậy đều khác nhau Hình ảnh mối quan hệ tương tự.

Thuộc tính của các mối quan hệ. Các tính chất của quan hệ được rút ra trực tiếp từ định nghĩa về quan hệ ở trên. Những thuộc tính này là điểm khác biệt chính giữa mối quan hệ và bảng.

· Không có bộ dữ liệu giống hệt nhau trong một mối quan hệ .

· Các bộ dữ liệu không được sắp xếp (từ trên xuống dưới) .

· Các thuộc tính không được sắp xếp (từ trái sang phải) .

· Tất cả các giá trị thuộc tính là nguyên tử .

Cơm. Sơ đồ biểu diễn mối quan hệ

Mô hình quan hệ là một cơ sở dữ liệu dưới dạng một tập hợp các mối quan hệ được kết nối với nhau. Trong mỗi kết nối, một mối quan hệ có thể đóng vai trò là mối quan hệ chính và một mối quan hệ khác đóng vai trò là mối quan hệ phụ. Vì vậy, một bộ của quan hệ chính có thể được liên kết với nhiều bộ của quan hệ phụ. Để hỗ trợ những mối quan hệ này, cả hai mối quan hệ phải chứa tập hợp các thuộc tính mà chúng có liên quan. Về cơ bản đây là khóa chính của mối quan hệ , xác định duy nhất bộ dữ liệu của quan hệ chính. Để mô hình hóa một mối quan hệ, một mối quan hệ con phải có một tập hợp các thuộc tính khớp với khóa chính của mối quan hệ chính. Tuy nhiên, ở đây tập thuộc tính này đã khóa phụ hoặc khóa ngoại , I E. nó định nghĩa một tập hợp các bộ quan hệ được liên kết với một bộ duy nhất của quan hệ chính.

6. Thiết kế cơ sở dữ liệu quan hệ.

Khi thiết kế cơ sở dữ liệu quan hệ, các vấn đề sau phải được giải quyết:

1) Xét đến ngữ nghĩa của lĩnh vực chủ đề, cần thể hiện tốt nhất các đối tượng của lĩnh vực chủ đề dưới dạng mô hình dữ liệu trừu tượng (thiết kế dữ liệu). Những thứ kia. - quyết định lược đồ cơ sở dữ liệu: cơ sở dữ liệu nên bao gồm những mối quan hệ nào, những mối quan hệ này nên có những thuộc tính gì, các kết nối giữa các mối quan hệ là gì.

2) Đảm bảo hiệu quả thực hiện các truy vấn cơ sở dữ liệu (thiết kế cơ sở dữ liệu vật lý).

Sau giai đoạn thiết kế dữ liệu, cần thu được các tài liệu kết quả sau:

· Xây dựng lược đồ dữ liệu chính xác dựa trên mô hình dữ liệu quan hệ.

· Mô tả lược đồ cơ sở dữ liệu theo DBMS đã chọn.

· Mô tả các mô hình bên ngoài theo DBMS đã chọn.

· Mô tả các quy tắc khai báo để duy trì tính toàn vẹn của cơ sở dữ liệu.

· Phát triển các thủ tục để duy trì tính toàn vẹn ngữ nghĩa của cơ sở dữ liệu.

Vì vậy, nhiệm vụ thiết kế cơ sở dữ liệu quan hệ là chọn lược đồ cơ sở dữ liệu từ nhiều lựa chọn thay thế.

Chính xác là một lược đồ cơ sở dữ liệu trong đó không có sự phụ thuộc không mong muốn giữa các thuộc tính quan hệ. Quá trình phát triển một lược đồ cơ sở dữ liệu chính xác được gọi là thiết kế logic .

Việc thiết kế lược đồ cơ sở dữ liệu có thể được thực hiện theo hai cách:

· Phương pháp phân rã (phân vùng) tập hợp các quan hệ ban đầu có trong lược đồ cơ sở dữ liệu được thay thế bằng một tập hợp các quan hệ khác là các hình chiếu của các quan hệ ban đầu! Đồng thời, số lượng các mối quan hệ tăng lên.

· Phương pháp tổng hợp cách bố trí lược đồ cơ sở dữ liệu từ các phụ thuộc cơ bản ban đầu đã cho giữa các đối tượng của lĩnh vực chủ đề.

Thiết kế cơ sở dữ liệu cổ điển gắn liền với lý thuyết bình thường hóa , dựa trên việc phân tích sự phụ thuộc chức năng giữa các thuộc tính mối quan hệ. Các phần phụ thuộc chức năng xác định mối quan hệ ổn định giữa các đối tượng và thuộc tính của chúng trong lĩnh vực chủ đề đang được xem xét.

Phương pháp phân rã là một quá trình chuẩn hóa tuần tự các lược đồ quan hệ: mỗi lần lặp mới tương ứng với dạng chuẩn bậc cao hơn và có các thuộc tính tốt hơn so với dạng chuẩn trước đó. Do đó, sự tồn tại của một mối quan hệ phổ quát chứa tất cả các thuộc tính của cơ sở dữ liệu ban đầu được giả định, sau đó, dựa trên phân tích các kết nối giữa các thuộc tính, việc phân rã mối quan hệ phổ quát được thực hiện (hoặc một nỗ lực được thực hiện), tức là. chuyển sang một số quan hệ có chiều thấp hơn và quan hệ ban đầu phải được khôi phục bằng thao tác nối tự nhiên.

Vì vậy, mỗi dạng chuẩn tắc tương ứng với một tập hợp ràng buộc nhất định và một mối quan hệ sẽ ở dạng chuẩn tắc nhất định nếu nó thỏa mãn tập hợp ràng buộc vốn có của nó.

Trong lý thuyết về cơ sở dữ liệu quan hệ, người ta thường phân biệt các dạng chuẩn sau:

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

· dạng chuẩn thứ hai (2 NF);

· dạng chuẩn thứ ba (3 NF);

· Dạng chuẩn Bays-Codd ( BCNF);

· dạng chuẩn thứ tư (4 NF);

· dạng chuẩn thứ năm hoặc dạng chiếu - hợp chất (5 NF hoặc PYNF).

Các tính chất cơ bản của dạng chuẩn:

· mỗi dạng chuẩn tiếp theo theo một nghĩa nào đó đều tốt hơn dạng trước đó;

· khi chuyển sang dạng chuẩn tiếp theo, các thuộc tính của thuộc tính chuẩn trước đó được giữ nguyên.

Lược đồ cơ sở dữ liệu được gọi tương đương, nếu nội dung của cơ sở dữ liệu nguồn có thể thu được bằng kết nối tự nhiên của các quan hệ có trong lược đồ kết quả và không có bộ dữ liệu mới nào xuất hiện trong cơ sở dữ liệu nguồn.

7. Những hình thức quan hệ thông thường.

Quá trình chuẩn hóa dựa trên sự phản ánh đầy đủ của lĩnh vực chủ đề dưới dạng bảng chứa dữ liệu về đối tượng được mô hình hóa và khả năng thay đổi trạng thái của cơ sở dữ liệu theo thời gian. Theo quy định, do không khớp giữa mô hình dữ liệu miền, các bất thường có thể xảy ra khi thực hiện các thao tác tương ứng:

· Sự bất thường khi chèn (INSERT) – lưu trữ thông tin không đồng nhất ở một khía cạnh.

· Cập nhật các điểm bất thường (CẬP NHẬT) –Dự phòng dữ liệu quan hệ do lưu trữ không đồng nhất.

· Xóa bất thường (DELETE) – lưu trữ thông tin không đồng nhất trong một mối quan hệ.

Cũng cần phải tính đến những vấn đề mới nổi không xác định ( VÔ GIÁ TRỊ) giá trị. Trong các DBMS khác nhau, khi thực hiện các thao tác khác nhau (so sánh, hợp nhất, sắp xếp, nhóm, v.v.) hai VÔ GIÁ TRỊ -các giá trị có thể bằng hoặc không bằng nhau, có ảnh hưởng khác nhau đến kết quả thực hiện các phép tính xác định giá trị trung bình và tìm số lượng giá trị. Để loại bỏ lỗi trong nhiều DBMS có thể thay thế VÔ GIÁ TRỊ -giá trị bằng 0 khi thực hiện phép tính, khai báo tất cả VÔ GIÁ TRỊ -các giá trị bằng nhau, v.v.

Chuẩn hóa – chia bảng thành nhiều bảng, có thuộc tính tốt hơn khi cập nhật, chèn và xóa dữ liệu. Những thứ kia. chuẩn hóa là quá trình thay thế tuần tự một bảng bằng các phân tách hoàn chỉnh của nó cho đến khi tất cả chúng đều ở dạng 5NF; tuy nhiên, trong thực tế, chỉ cần chuyển đổi các bảng thành BCNF là đủ.

Quy trình chuẩn hóa dựa trên thực tế là các phụ thuộc hàm duy nhất trong bất kỳ bảng nào phải là các phụ thuộc có dạng , trong đó khóa chính là một số trường khác. Do đó, trong quá trình chuẩn hóa, bạn nên loại bỏ tất cả các phụ thuộc chức năng “khác”, tức là. từ những thứ có hình dáng khác với .

Nếu thay thế mã của khóa chính (ngoại) trong quá trình chuẩn hóa thì chúng ta nên xem xét 2 trường hợp:

1. Ví dụ: bảng có khóa chính tổng hợp và một trường có chức năng phụ thuộc vào một phần của khóa này, chẳng hạn như trên (nó không phụ thuộc vào khóa đầy đủ). Nên tạo một bảng khác chứa và ( – khóa chính) và xóa khỏi bảng gốc:

Thay thế, khóa chính, luật liên bang

bật , khóa chính

và , khóa chính .

2. Bảng có một khóa chính (có thể), một trường không phải là khóa có thể nhưng phụ thuộc vào chức năng và một trường không phải khóa khác phụ thuộc vào chức năng:. Nên tạo một bảng chứa cả ( - khóa chính) và - xóa khỏi bảng gốc: Cần lưu ý rằng để thực hiện các hoạt động như vậy, ban đầu người ta phải có một số mối quan hệ “lớn” (phổ quát) làm dữ liệu đầu vào.

Def.1. Mối quan hệ đang ở dạng chuẩn đầu tiên (1NF) khi và chỉ khi không có hàng nào của nó chứa một giá trị duy nhất trong bất kỳ trường nào của nó và không có trường khóa nào của mối quan hệ trống.

Theo định nghĩa 1, mọi mối quan hệ sẽ ở dạng 1NF, tức là một quan hệ thỏa mãn các tính chất của quan hệ: không có bộ dữ liệu giống hệt nhau trong quan hệ; các bộ dữ liệu không được sắp xếp; các thuộc tính không được sắp xếp thứ tự và khác nhau theo tên; tất cả các giá trị thuộc tính là nguyên tử.

Def.2. Mối quan hệ đang ở dạng chuẩn thứ hai (2NF) khi và chỉ khi mối quan hệ ở dạng 1NF và không có thuộc tính không khóa nào phụ thuộc vào một phần của khóa phức (nghĩa là tất cả các trường không có trong khóa chính đều có liên quan bởi sự phụ thuộc chức năng đầy đủ vào khóa chính).

Nếu khóa ứng viên là số nguyên tố thì mối quan hệ sẽ tự động ở dạng 2NF.

Để loại bỏ sự phụ thuộc của các thuộc tính vào một phần của khóa phức tạp, cần thực hiện sự phân hủy mối quan hệ đa mối quan hệ. Các thuộc tính phụ thuộc vào một phần của khóa phức tạp được đặt trong một quan hệ riêng biệt.

Các thuộc tính của một mối quan hệ được gọi là Độc lập với nhau , nếu cả hai đều không phụ thuộc chức năng vào nhau.

Def.3. Mối quan hệ đang ở dạng chuẩn thứ ba (3NF) khi và chỉ khi mối quan hệ ở dạng 2NF và tất cả các thuộc tính không khóa đều độc lập lẫn nhau (nghĩa là không có trường không khóa nào của quan hệ phụ thuộc chức năng vào bất kỳ trường không khóa nào khác).

Để loại bỏ sự phụ thuộc của các thuộc tính không khóa, bạn cần phân tách mối quan hệ thành nhiều mối quan hệ. Trong trường hợp này, những thuộc tính không khóa phụ thuộc sẽ được đặt trong một quan hệ riêng biệt.

Khi giảm các quan hệ bằng thuật toán chuẩn hóa thành các quan hệ trong 3NF, giả định rằng tất cả các quan hệ đều chứa một khóa ứng viên. Điêu nay không phải luc nao cung đung. Đôi khi một mối quan hệ có thể chứa nhiều khóa.

Def.4. Mối quan hệ đang ở Dạng chuẩn Bays-Codd (NFBK) khi và chỉ nếu các yếu tố quyết định của tất cả các phụ thuộc chức năng là các khóa tiềm năng (hoặc nếu bất kỳ sự phụ thuộc chức năng nào giữa các bạn của nó được giảm xuống mức phụ thuộc chức năng hoàn toàn vào một khóa có thể).

Nếu một quan hệ ở BCNF thì nó sẽ tự động ở dạng 3NF, như sau trong Định nghĩa 4. Để loại bỏ sự phụ thuộc vào các định thức không phải là khóa tiềm năng, cần tiến hành phân rã, đặt các định thức này và các phần phụ thuộc vào chúng vào một mối quan hệ riêng biệt.

Đôi khi một mối quan hệ không chứa bất kỳ sự phụ thuộc chức năng nào. Những thứ kia. thái độ là hoàn toàn quan trọng, tức là. Chìa khóa của một mối quan hệ là toàn bộ tập hợp các thuộc tính. Như vậy, chúng ta có sự phụ thuộc đa giá trị, bởi vì Vẫn có mối quan hệ giữa các thuộc tính.

Def.5. Mối quan hệ đang ở dạng chuẩn thứ tư (4NF) khi và chỉ nếu mối quan hệ nằm trong BCNF và không chứa các phụ thuộc đa giá trị không tầm thường.

Theo quy luật, các mối quan hệ với các phụ thuộc đa giá trị không tầm thường phát sinh do kết quả của mối liên hệ tự nhiên của hai mối quan hệ trên một trường chung, điều này không phải là chìa khóa trong bất kỳ mối quan hệ nào. Trong thực tế, điều này dẫn đến việc lưu trữ thông tin về hai thực thể độc lập trong một quan hệ.

Để loại bỏ các mối phụ thuộc đa giá trị không tầm thường, bạn có thể phân tách mối quan hệ ban đầu thành nhiều mối quan hệ mới.

Def.6. Mối quan hệ đang ở dạng chuẩn thứ năm (5NF) nếu và chỉ nếu bất kỳ sự phụ thuộc kết nối nào hiện diện đều không đáng kể.

Def.6. tương tự cũng tuân theo định nghĩa.

Def.7. Một mối quan hệ không ở mức 5NF nếu mối quan hệ đó có sự phụ thuộc nối không tầm thường.

Cái đó. Nếu trong mọi phân rã hoàn toàn, tất cả các phép chiếu của quan hệ ban đầu đều chứa một khóa có thể, thì chúng ta có thể kết luận rằng quan hệ đó ở dạng 5NF. Một quan hệ không có bất kỳ sự phân rã hoàn chỉnh nào cũng thuộc loại 5NF.

Nếu không biết bất cứ điều gì về các khóa tiềm năng trong một mối quan hệ và cách các thuộc tính được kết nối với nhau, người ta không thể nói rằng một mối quan hệ đã cho ở dạng 5NF hoặc các dạng chuẩn khác.

Chìa khóa có thể quan hệ là một tập hợp các thuộc tính quan hệ xác định một cách đầy đủ và duy nhất (hoàn toàn về mặt chức năng) giá trị của tất cả các thuộc tính khác của quan hệ. Nói chung, một quan hệ có thể có nhiều khóa. Trong số tất cả các khóa có thể có của một mối quan hệ, một khóa thường được chọn, được coi là khóa chính và được gọi là khóa chính của mối quan hệ.

Thuộc tính độc lập lẫn nhau đây là những thuộc tính không phụ thuộc vào nhau. Nếu có một số định luật vật lý trong một quan hệ thì mỗi thuộc tính hoặc tập hợp các thuộc tính mà thuộc tính khác phụ thuộc vào được gọi là định thức của quan hệ.

9. Đại số quan hệ.

Đại số quan hệ cung cấp một khuôn khổ để truy cập dữ liệu quan hệ. Mục đích chính của đại số là cung cấp các biểu thức có thể viết được. Biểu thức có thể được sử dụng cho:

· định nghĩa khu vực mẫu, I E. xác định dữ liệu để lựa chọn là kết quả của hoạt động lấy mẫu;

· định nghĩa khu vực cập nhật, I E. xác định dữ liệu sẽ được chèn, sửa đổi hoặc xóa do hoạt động cập nhật;

· sự định nghĩa (được đặt tên) quan hệ ảo, I E. trình bày dữ liệu để trực quan hóa thông qua các khung nhìn;

· định nghĩa ảnh chụp nhanh, tức là xác định dữ liệu sẽ được lưu trữ dưới dạng “ảnh chụp nhanh” của mối quan hệ;

· xác định các quy tắc an toàn, tức là xác định dữ liệu để thực hiện kiểm soát truy cập;

· xác định các yêu cầu về tính bền vững, tức là xác định dữ liệu được bao gồm trong phạm vi cho các hoạt động kiểm soát đồng thời nhất định;

· xác định các quy tắc toàn vẹn, tức là một số quy tắc cụ thể mà cơ sở dữ liệu phải đáp ứng, cùng với các quy tắc chung đại diện cho một phần của mô hình quan hệ và áp dụng cho mọi cơ sở dữ liệu.

Việc triển khai các DBMS quan hệ cụ thể hiện không sử dụng đại số quan hệ thuần túy hoặc phép tính quan hệ ở dạng thuần túy của chúng. Tiêu chuẩn thực tế để truy cập dữ liệu quan hệ đã trở thành SQL (Ngôn ngữ truy vấn có cấu trúc).

Đại số quan hệ, được định nghĩa bởi Codd, bao gồm 8 toán tử gồm 2 nhóm:

  • hoạt động thiết lập truyền thống (hợp, giao, trừ, tích Descartes);
  • các phép toán quan hệ đặc biệt (lựa chọn, chiếu, kết nối, chia).

Ngoài ra, đại số bao gồm một thao tác gán, cho phép bạn lưu kết quả tính toán các biểu thức đại số trong cơ sở dữ liệu và một thao tác đổi tên thuộc tính, giúp tạo thành chính xác tiêu đề (lược đồ) của mối quan hệ kết quả.

Tổng quan ngắn gọn về các toán tử đại số quan hệ.

Vật mẫutrả về một quan hệ chứa tất cả các bộ của một quan hệ nhất định thỏa mãn một số điều kiện. Hoạt động lấy mẫu còn được gọi là hoạt động hạn chế ( hạn chế - hạn chế, hiện nay việc lấy mẫu thường được chấp nhận hơn - LỰA CHỌN ).

Chiếutrả về một mối quan hệ chứa tất cả các bộ dữ liệu (tức là - các bộ dữ liệu con) của một mối quan hệ cụ thể sau khi loại trừ một số thuộc tính khỏi nó.

Công việctrả về một quan hệ chứa tất cả các bộ dữ liệu có thể có, tương ứng là sự kết hợp của hai bộ dữ liệu thuộc về hai quan hệ được xác định.

Một hiệp hộitrả về một quan hệ chứa tất cả các bộ thuộc về một hoặc cả hai quan hệ được xác định.

Ngã tư -trả về một quan hệ chứa tất cả các bộ thuộc đồng thời hai quan hệ được xác định.

Phép trừ –trả về một quan hệ chứa tất cả các bộ thuộc về quan hệ đầu tiên trong hai quan hệ được xác định chứ không thuộc về quan hệ thứ hai.

Kết nối (tự nhiên) – trả về một quan hệ có các bộ dữ liệu là sự kết hợp của hai bộ dữ liệu (thuộc tương ứng với hai quan hệ được xác định) có giá trị chung cho một hoặc nhiều thuộc tính chung của hai quan hệ (và các giá trị chung đó chỉ xuất hiện một lần trong bộ dữ liệu kết quả, không hai lần).

Phân công -đối với hai quan hệ, nhị phân và một ngôi, trả về một quan hệ chứa tất cả các giá trị của một thuộc tính của quan hệ nhị phân khớp với (trong thuộc tính kia) tất cả các giá trị trong quan hệ một ngôi.

VĂN HỌC

1. Ngày K.J. Giới thiệu về Hệ thống cơ sở dữ liệu, tái bản lần thứ 6: Trans. từ tiếng Anh - ĐẾN.; M.; St.Petersburg: Nhà xuất bản Williams, 2000. – 848 tr.

2. Connolly T., Begg K., Strachan A. Cơ sở dữ liệu: thiết kế, triển khai và bảo trì. Lý thuyết và thực hành, tái bản lần thứ 2: Trans. từ tiếng Anh – M.: Nhà xuất bản Williams, 2000. – 1120 tr.

3. Karpova T.S. Cơ sở dữ liệu: mô hình, phát triển, triển khai. – St.Petersburg: Peter, 2001. – 304 tr.

4. Faronov V.V., Shumak P.V. Delphi 4. Hướng dẫn dành cho nhà phát triển cơ sở dữ liệu. – M.: “Kiến thức”, 1999. – 560 tr.

5. J. Groff, P. Weinberg. SQL: Hướng dẫn đầy đủ: Per. từ tiếng Anh – K.: Tập đoàn xuất bản BHV, 2001. – 816 tr.

6. Ken Goetz, Paul Litwin, Mike Gilbert. Access 2000. Hướng dẫn dành cho nhà phát triển. T.1, 2. Per. từ tiếng Anh – K.: Tập đoàn xuất bản BHV, 2000. – 1264 tr., 912 tr.

7. Maklakov S.V BPwin và EPwin. CASE-công cụ để phát triển hệ thống thông tin. – M.: DIALOG-MEPhI, 2001. – 304 tr.

8. Ullman D., Widom D. Giới thiệu về hệ thống cơ sở dữ liệu / Transl. từ tiếng Anh – M.: “Lori”, 2000. – 374 tr.

9. Khomonenko A.D., Tsygankov V.M., Maltsev M.G. Cơ sở dữ liệu: Sách giáo khoa cho các cơ sở giáo dục đại học / Ed. Giáo sư A.D. Khomonenko. – St. Petersburg: Bản in CORONA, 2000. – 416 tr.