Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инф. лаб. 4 - SQL.docx
Скачиваний:
7
Добавлен:
25.09.2019
Размер:
63.91 Кб
Скачать

Вариант 3 «Библиотека»

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

Таблица Books содержит информацию о книгах: столбец BookID содержит номер книги, столбец BookName содержит заглавие книги, столбец BookCover содержит обложку книги, столбец BookGenre содержит жанр книги, столбец BookPublicYear содержит дату публикации книги, столбец BookPublisher содержит издателя книги, столбец BookISBN содержит ISBN-код книги. Таблица BookInstances соответствует конкретному экземпляру книги в хранилище библиотеки: столбец BookInstanceID содержит номер экземпляра книги, столбец BookInstanceShelve содержит номер полки, на которой находится книга. Таблица читателей Readers содержит следующую информацию: номер читателя ReaderID, имя читателя ReaderName, фамилию читателя ReaderSurname, дату рождения читателя ReaderBithdate. Таблица карточек читателей ReaderItems содержит информацию по каждой книге, которую читатель берет на руки: столбец ReaderItemID содержит номер строки в таблице, столбец ReaderItemBookInstanceID содержит номер экземпляра книги, столбец ReaderItemStartDate содержит дату получения книги на руки, столбец ReaderItemReturnDate содержит дату возвращения книги в библиотеку, столбец ReaderItemDeadlineDate содержит дату окончания срока использования книги читателем.

Необходимо создать базу данных соответствующей структуры и наполнить ее тестовыми данными. Затем составить и проверить результат выполнения следующих запросов:

  1. Выбрать все книги, название которых начинается со слова «приключения».

  2. Найти все книги, которые читал указанный читатель.

  3. Найти все книги, которые находятся на руках у читателей дольше положенного срока.

  4. Для каждого читателя вычислить, сколько разных книг он брал на руки, сколько книг у него сейчас на руках и по какому числу книг он превысил срок сдачи.

  5. Найти все книги, которые ни разу никем не читались.

Вариант 4 «Почтовый сервер»

Почтовый сервер предназначен для получения и отправки сообщений электронной почты. С момента прихода или создания пользователем все сообщения помещаются в общее хранилище. С точки зрения пользователей сообщения хранятся в специальных папках «Входящие», «Исходящие», «Спам», «Корзина». Сообщение кроме тела и атрибутов со значениями отправителя, получателя и темы может также содержать произвольное количество вложений.

Таблица Users содержит список пользователей почтового сервера: столбец UserID содержит номер пользователя, столбец UserName содержит имя пользователя (используется имя в стиле логин@домен). Таблица UserFolders содержит папки пользователей: столбец UserFolderID содержит номер папки, столбец UserFolderName содержит имя папки, столбец UserID содержит номер пользователя, которому принадлежит папка. Таблица Mails содержит все сообщения всех пользователей: столбец MailID содержит номер сообщения пользователя, столбец MailSubject содержит тему сообщения, столбец MailFrom содержит список отправителей сообщения, столбец MailTo содержит список получателей сообщения, столбец UserFolderID содержит номер папки пользователя (сообщение может находиться не более, чем в одной папке), столбец MailIsImportant содержит признак важности сообщения, столбец MailCreateDate содержит дату создания сообщения, столбец MailIsRead содержит признак прочтенности сообщения, столбец MailSize содержит размер сообщения. Таблица MailAttachments содержит вложения сообщения: столбец MailAttachmentID содержит номер вложения, столбец MailAttachmentBody содержит тело вложения, столбец MailID содержит номер соответствующего сообщения.

Необходимо создать базу данных соответствующей структуры и наполнить ее тестовыми данными. Затем составить и проверить результат выполнения следующих запросов:

  1. Выбрать все непрочтенные сообщения, тема которых содержит слово «Microsoft».

  2. Выбрать все сообщения конкретного пользователя, находящиеся в его папках «Входящие», «Исходящие», «Спам», «Удаленные».

  3. Найти все сообщения, пришедшие конкретному пользователю сегодня.

  4. Для каждой папки каждого пользователя вывести число прочтенных и непрочтенных сообщений, а также общий размер папки.

  5. Для каждого пользователя посчитать число сообщений с вложениями и без вложений.