Creating_base_object_DB-snapshot-7iWRY
Описание
Репозиторий - задание, созданный из шаблона ОПБД/Creating_base_object_DB
Практическая работа: Создание основных объектов базы данных
Цель работы:
Научиться создавать основные объекты базы данных: таблицы, представления, индексы, последовательности и ограничения.
Необходимое программное обеспечение:
- PostgreSQL или другая реляционная СУБД.
Задание:
- Создать базу данных для учета книг в библиотеке.
- В базе данных создать объекты, необходимые для хранения информации о книгах, авторах, читателях и взятых книгах.
Теоретическая часть:
В реляционных базах данных существует несколько типов объектов, которые используются для хранения и управления данными. Основными объектами базы данных являются таблицы, представления, индексы, последовательности и ограничения. Рассмотрим их более подробно.
1. Таблицы
Таблица является основной структурой хранения данных в реляционной базе данных. Каждая таблица состоит из строк (записей) и столбцов (полей), где каждый столбец имеет свой тип данных.
- Строки (или записи) — это отдельные элементы данных, которые содержат значения для каждого столбца.
- Столбцы (или поля) — это отдельные категории данных. Например, в таблице "Books" могут быть столбцы "Title" (название книги), "AuthorID" (идентификатор автора) и т.д.
Пример создания таблицы:
Здесь:
— уникальный идентификатор автора (тип данныхAuthorIDавтоматически генерирует последовательность чисел).SERIAL— имя автора, строка длиной до 100 символов.Name,BirthYear— годы рождения и смерти автора (целочисленные значения).DeathYear
2. Представления (Views)
Представление — это виртуальная таблица, которая не хранит данных, а показывает результаты выполнения SQL-запроса. Представления используются для упрощения сложных запросов и обеспечения безопасности данных, так как можно создать представление, которое будет показывать только определенные данные, скрывая остальные.
Представление создается с помощью команды . Пример создания представления:
В данном случае представление объединяет таблицы , и , предоставляя информацию о книгах, которые были взяты читателями, и о том, когда они были взяты и возвращены.
3. Индексы
Индексы — это структуры данных, которые ускоряют поиск и сортировку данных в таблицах. Индекс создается на одном или нескольких столбцах таблицы и помогает СУБД быстро находить строки, соответствующие заданному запросу.
Индексы повышают производительность запросов на чтение, но могут замедлять операции записи (вставка, обновление и удаление), так как индекс нужно поддерживать в актуальном состоянии.
Пример создания индекса:
Этот индекс будет ускорять поиск книг по их названию.
4. Последовательности
Последовательность — это объект базы данных, который генерирует уникальные числовые значения. Обычно последовательности используются для автоматического создания значений для столбцов, таких как идентификаторы. Это особенно важно, когда необходимо, чтобы каждый новый элемент в таблице имел уникальный идентификатор.
Пример создания последовательности:
После этого вы можете использовать последовательность для получения уникальных значений:
Здесь функция будет генерировать следующее уникальное значение из последовательности.
5. Ограничения (Constraints)
Ограничения — это правила, которые накладываются на данные в таблице. Они обеспечивают целостность данных, предотвращая ввод некорректных значений. Основные типы ограничений:
- PRIMARY KEY — гарантирует уникальность значений в столбце и не допускает NULL-значений.
- FOREIGN KEY — создает связь между таблицами. Значения в столбце внешнего ключа должны совпадать с значениями в столбце первичного ключа другой таблицы.
- UNIQUE — гарантирует, что все значения в столбце уникальны.
- NOT NULL — запрещает запись пустых значений в столбец.
Пример добавления ограничения:
Это ограничение гарантирует, что каждый номер телефона в таблице будет уникальным.
Резюме
- Таблицы — основное хранилище данных.
- Представления — виртуальные таблицы, отображающие результаты запросов.
- Индексы — ускоряют поиск данных.
- Последовательности — генерируют уникальные числовые значения.
- Ограничения — обеспечивают целостность данных.
Эти объекты служат основой для эффективного проектирования и управления данными в реляционной базе данных.
Ход работы:
- Создайте базу данных с именем
.library_db - Подключитесь к базе данных
.library_db - Создайте следующие таблицы:
- Authors: таблица для хранения информации об авторах.
- Books: таблица для хранения информации о книгах (свяжите с авторами).
- Readers: таблица для хранения информации о читателях.
- BorrowedBooks: таблица для хранения информации о взятых книгах (свяжите с книгами и читателями).
- Создайте представление для отображения информации о взятых книгах, включающее данные о читателе и книге.
- Создайте индекс для ускорения поиска книг по названию.
- Создайте последовательность для генерации уникальных идентификаторов для таблицы Books.
- Добавьте ограничение, чтобы телефонный номер читателя был уникальным.
Контрольные вопросы:
- Какие типы данных вы использовали при создании таблиц? Почему?
- Для чего используются внешние ключи? Какие ограничения они накладывают?
- Как индекс влияет на производительность базы данных?
- Чем отличается представление (VIEW) от обычной таблицы?
Отчет по работе:
- SQL-код, использованный для создания объектов (Пишите что делаете и команду, например:
Создал таблицу
CREATE TABLE books ...). - Скриншоты результатов выполнения запросов.
- Ответы на контрольные вопросы.
Дополнительное задание:
Реализуйте механизм автоудаления записей из таблицы , если книга была возвращена более года назад.