Creating_base_object_DB-snapshot-7iWRY

11

Описание

Репозиторий - задание, созданный из шаблона ОПБД/Creating_base_object_DB

год назад
README.md

Практическая работа: Создание основных объектов базы данных

Цель работы:

Научиться создавать основные объекты базы данных: таблицы, представления, индексы, последовательности и ограничения.

Необходимое программное обеспечение:

  • PostgreSQL или другая реляционная СУБД.

Задание:

  1. Создать базу данных для учета книг в библиотеке.
  2. В базе данных создать объекты, необходимые для хранения информации о книгах, авторах, читателях и взятых книгах.

Теоретическая часть:

В реляционных базах данных существует несколько типов объектов, которые используются для хранения и управления данными. Основными объектами базы данных являются таблицы, представления, индексы, последовательности и ограничения. Рассмотрим их более подробно.

1. Таблицы

Таблица является основной структурой хранения данных в реляционной базе данных. Каждая таблица состоит из строк (записей) и столбцов (полей), где каждый столбец имеет свой тип данных.

  • Строки (или записи) — это отдельные элементы данных, которые содержат значения для каждого столбца.
  • Столбцы (или поля) — это отдельные категории данных. Например, в таблице "Books" могут быть столбцы "Title" (название книги), "AuthorID" (идентификатор автора) и т.д.

Пример создания таблицы:

Здесь:

  • AuthorID
    — уникальный идентификатор автора (тип данных
    SERIAL
    автоматически генерирует последовательность чисел).
  • Name
    — имя автора, строка длиной до 100 символов.
  • BirthYear
    ,
    DeathYear
    — годы рождения и смерти автора (целочисленные значения).

2. Представления (Views)

Представление — это виртуальная таблица, которая не хранит данных, а показывает результаты выполнения SQL-запроса. Представления используются для упрощения сложных запросов и обеспечения безопасности данных, так как можно создать представление, которое будет показывать только определенные данные, скрывая остальные.

Представление создается с помощью команды

CREATE VIEW
. Пример создания представления:

В данном случае представление

BorrowedBooksView
объединяет таблицы
BorrowedBooks
,
Readers
и
Books
, предоставляя информацию о книгах, которые были взяты читателями, и о том, когда они были взяты и возвращены.

3. Индексы

Индексы — это структуры данных, которые ускоряют поиск и сортировку данных в таблицах. Индекс создается на одном или нескольких столбцах таблицы и помогает СУБД быстро находить строки, соответствующие заданному запросу.

Индексы повышают производительность запросов на чтение, но могут замедлять операции записи (вставка, обновление и удаление), так как индекс нужно поддерживать в актуальном состоянии.

Пример создания индекса:

Этот индекс будет ускорять поиск книг по их названию.

4. Последовательности

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

Пример создания последовательности:

После этого вы можете использовать последовательность для получения уникальных значений:

Здесь функция

nextval('seq_books_id')
будет генерировать следующее уникальное значение из последовательности.

5. Ограничения (Constraints)

Ограничения — это правила, которые накладываются на данные в таблице. Они обеспечивают целостность данных, предотвращая ввод некорректных значений. Основные типы ограничений:

  • PRIMARY KEY — гарантирует уникальность значений в столбце и не допускает NULL-значений.
  • FOREIGN KEY — создает связь между таблицами. Значения в столбце внешнего ключа должны совпадать с значениями в столбце первичного ключа другой таблицы.
  • UNIQUE — гарантирует, что все значения в столбце уникальны.
  • NOT NULL — запрещает запись пустых значений в столбец.

Пример добавления ограничения:

Это ограничение гарантирует, что каждый номер телефона в таблице

Readers
будет уникальным.

Резюме

  • Таблицы — основное хранилище данных.
  • Представления — виртуальные таблицы, отображающие результаты запросов.
  • Индексы — ускоряют поиск данных.
  • Последовательности — генерируют уникальные числовые значения.
  • Ограничения — обеспечивают целостность данных.

Эти объекты служат основой для эффективного проектирования и управления данными в реляционной базе данных.

Ход работы:

  1. Создайте базу данных с именем
    library_db
    .
  2. Подключитесь к базе данных
    library_db
    .
  3. Создайте следующие таблицы:
    • Authors: таблица для хранения информации об авторах.
    • Books: таблица для хранения информации о книгах (свяжите с авторами).
    • Readers: таблица для хранения информации о читателях.
    • BorrowedBooks: таблица для хранения информации о взятых книгах (свяжите с книгами и читателями).
  4. Создайте представление для отображения информации о взятых книгах, включающее данные о читателе и книге.
  5. Создайте индекс для ускорения поиска книг по названию.
  6. Создайте последовательность для генерации уникальных идентификаторов для таблицы Books.
  7. Добавьте ограничение, чтобы телефонный номер читателя был уникальным.

Контрольные вопросы:

  1. Какие типы данных вы использовали при создании таблиц? Почему?
  2. Для чего используются внешние ключи? Какие ограничения они накладывают?
  3. Как индекс влияет на производительность базы данных?
  4. Чем отличается представление (VIEW) от обычной таблицы?

Отчет по работе:

  1. SQL-код, использованный для создания объектов (Пишите что делаете и команду, например:
    Создал таблицу
    CREATE TABLE books ...).
  2. Скриншоты результатов выполнения запросов.
  3. Ответы на контрольные вопросы.

Дополнительное задание:

Реализуйте механизм автоудаления записей из таблицы

BorrowedBooks
, если книга была возвращена более года назад.