Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГАК-2026.docx
Скачиваний:
1
Добавлен:
16.06.2026
Размер:
2.66 Mб
Скачать

4. Степени связи (опциональность)

Важно различать не только тип, но и обязательность связи.

  • Обязательная связь — запись обязательно должна быть связана с записью в другой таблице.

  • Необязательная связь — связь может отсутствовать (NULL во внешнем ключе).

Обозначения на ER-диаграммах:

  • || — обязательно (один и только один)

  • o| — необязательно (ноль или один)

  • ||o — обязательно (один или много)

  • o|o — необязательно (ноль или много)

Примеры:

  • Студент обязательно должен принадлежать группе? Если да, то id_группы NOT NULL. Если может быть без группы (например, ещё не распределён), то допускаем NULL.

  • У группы может быть ноль или много студентов (даже если студентов нет, группа существует).

5. Целостность данных при отношениях Ссылочная целостность (Referential Integrity)

Гарантирует, что внешний ключ всегда указывает на существующую запись. Обеспечивается ограничением FOREIGN KEY.

Что может нарушить ссылочную целостность?

  1. Вставка записи с внешним ключом, указывающим на несуществующую запись.

  2. Обновление значения первичного ключа, на который есть ссылки (если нет ON UPDATE CASCADE).

  3. Удаление записи, на которую есть ссылки (если нет ON DELETE CASCADE).

Целостность сущностей (Entity Integrity)

Гарантирует, что первичный ключ уникален и не NULL.

Доменная целостность (Domain Integrity)

Гарантирует, что значения полей соответствуют типам и ограничениям (CHECK, NOT NULL).

6. Практический пример: проектирование схемы с отношениями

Спроектируем небольшую базу данных для библиотеки.

Сущности и их атрибуты:

  • Читатели: id, ФИО, телефон, email.

  • Книги: id, название, автор, год, ISBN, количество_экземпляров.

  • Жанры: id, название.

  • Выдачи: id_читателя, id_книги, дата_выдачи, дата_возврата, статус.

Отношения:

  • Читатель → Выдачи: один-ко-многим (один читатель может взять много книг).

  • Книга → Выдачи: один-ко-многим (одну книгу могут брать много раз).

  • Книга ↔ Жанр: многие-ко-многим (книга может иметь несколько жанров, в одном жанре много книг).

Реализация:

7. Заключение

Ключевые выводы:

  1. Ключи — основа реляционной модели:

    • Первичный ключ уникально идентифицирует запись.

    • Внешний ключ связывает таблицы.

    • Альтернативный ключ обеспечивает дополнительную уникальность.

  2. Отношения между таблицами бывают трёх типов:

    • Один-к-одному — редко, используется для разделения данных.

    • Один-ко-многим — самый частый случай (категория и товары).

    • Многие-ко-многим — всегда через промежуточную таблицу.

  3. Целостность данных обеспечивается ограничениями:

    • FOREIGN KEY гарантирует ссылочную целостность.

    • PRIMARY KEY и UNIQUE гарантируют уникальность.

    • CHECK и NOT NULL гарантируют доменную целостность.

  4. Правильное проектирование ключей и отношений — основа хорошо работающей базы данных.

11. NoSql-базы данных: типы и сценарии применения

NoSQL-базы данных — это тип баз данных, который отличается от традиционных реляционных систем хранения данных. Они предназначены для работы с большими объёмами данных и для хранения информации, которая может иметь гибкую или неструктурированную структуру.

Существует несколько основных типов NoSQL-баз данных.

Базы данных типа «ключ-значение» хранят данные в виде пары ключ и значение. Ключ используется для быстрого поиска информации. Такие базы данных часто применяются для кэширования данных. Пример — Redis.

Документные базы данных хранят данные в виде документов, обычно в формате JSON или BSON. Каждый документ может иметь собственную структуру. Такие базы данных широко используются в веб-приложениях. Пример — MongoDB.

Колоночные базы данных хранят данные по колонкам, а не по строкам, что позволяет эффективно обрабатывать большие объёмы данных. Они применяются в аналитических системах и системах обработки больших данных.

Графовые базы данных предназначены для хранения данных, связанных сложными отношениями. Они используются, например, в социальных сетях или системах рекомендаций.

Таким образом, NoSQL-базы данных используются в ситуациях, когда требуется высокая масштабируемость и гибкость структуры данных.