Базы данных (Т.Д. Карминская, 2013 г., 46 с.)Лабораторная работа № 1Лабораторная работа № 1 состоит из двух заданий: задания № 1 «Создание и модификация файла базы данных» и задания № 2 «Разработка программ локализации и поиска записей». Результатом выполнения лабораторной работы № 1 является выполнение обоих заданий. Задание № 1. Создание и модификация файла базы данных 1. Внимательно изучить указания. 2. Выбрать вариант (предметную область) по общим правилам, проанализировать предлагаемую структуру таблиц, требуемые индексы и запросы. 3. Создать структуру таблиц, придерживаясь следующих требований: • Типы полей следует выбирать в соответствии с семантикой (смыслом) данных, а не типами, устанавливаемыми системой по умолчанию. • Имена файлов БД и полей файла БД не должны представлять собой неудобочитаемые и непонятные идентификаторы. • Имена файлов БД и полей файла БД по возможности должны представлять собой англоязычные эквиваленты соответствующих русскоязычных понятий. • Максимальную длину полей выбирать в соответствии с допустимыми значениями полей заданной предметной области, а не значениями, устанавливаемыми системой по умолчанию. 4. Заполнить файлы БД данными, придерживаясь следующих требований • Количество записей в родительской таблице — не менее 15, дочерней — не менее 30. • Конкретные значения полей должны быть максимально приближены к реальным. Для этого можно привлекать открытые источники. Допускается программное генерирование значений полей (например, ID, Номер паспорта, Сумма и т.д.) или конвертация данных из внешних файлов с аналогичной структурой. Фривольного содержания не допускать. • Каждой строке родительской таблицы должно соответствовать 0, 1 или более строк дочерней. • Содержание данных должно гарантированно обеспечивать положительный результат каждого запроса при определенных значениях критерия поиска. 5. Создать индексный файл CDX для заданного в варианте набора условий индексов. Каждый простой индекс внутри CDX обозначить тегом (для последующего обращения к нему). 6. Написать отчет, в котором описать ход работы. 7. На проверку присылать файлы отчета, БД и индексные. Задание № 2 лабораторной работы № 1 1. В соответствии с выбранным вариантом реализовать запросы, используя индексный способ поиска. Каждый запрос оформить в виде отдельного программного файла. 2. Запустить запросы на выполнение. Для каждого запроса вводить различные значения критериев, которые обеспечивали бы положительный и отрицательный результаты поиска. В случае отрицательного результата должно выводиться соответствующее сообщение. 3. Написать отчет, демонстрирующий работоспособность процедур поиска в соответствии с пунктом 2. 4. На проверку необходимо отправить отчет, программные файлы, файлы БД и индексные. Лабораторная работа № 2. Использование генератора приложений 1. С помощью генератора меню разработать программу, реализующую меню. 2. Меню должно обеспечивать просмотр исходных данных в таблицах с выбором индекса (упорядочения) и вызов реализованных процедур поиска из предыдущей работы, а также выход из системы. 3. На проверку выслать все файлы. Лабораторная работа № 3. Разработка экранных форм 1. С помощью генератора экранов разработать две формы. 2. Основная форма должна быть создана для родительской таблицы, обеспечивать перемещение, ввод записей и вызов дочерней формы посредством кнопок. 3. Дочерняя форма должна в табличном виде отображать все записи дочерней таблицы, соответствующие текущей записи родительской. 4. В отчете описать ход создания форм и продемонстрировать их работоспособность. 5. На проверку выслать файлы шаблонов scx, файл .spr, файлы БД и индексные. Лабораторная работа № 4. Одновременная работа с несколькими файлами данных 1. Изучить методические указания к лабораторной работе. 2. В командном режиме (т. е. с командной строки) осуществить слияние двух файлов .dbf с помощью команды JOIN WITH. 3. Осуществить слияние двух файлов данных с помощью команды SET RELATION и SET SKIP и оформить последовательность команд в виде программного файлa. 4. В отчете продемонстрировать исходные данные и результат слияния обоими способами. 5. На проверку выслать отчет, необходимые файлы БД и индексы, программный и результирующий файл БД. ТЕКСТОВАЯ КОНТРОЛЬНАЯ РАБОТА 1. Проанализировать предложенную схему и описать (как в варианте), какие таблицы с какими полями будут добавлены. Дополнить схему по крайней мере двумя таблицами. Представить схему таблиц в графическом виде. 2. Привести операторы DDL, реализующие создание таблиц, первичных и внешних ключей, ориентируясь на какую-либо произвольную СУБД. Типы полей должны соответствовать смыслу данных и выбранной СУБД. 3. Сфомулировать (как в варианте) по крайней мере два новых запроса. Каждый запрос должен производить выборку из двух таблиц. 4. Привести операторы SELECT для каждого запроса (в варианте и свои). 5. На проверку прислать отчет с выполненными заданиями. Варианты предметных областей ВАРИАНТ № 1. Авиаперевозки Таблицы: РЕЙС (ID_рейса, Номер рейса, Код авиакомпании, Аэропорт отправления, Аэропорт назначения, Время вылета, Время прилета, Признак прилета на следующие сутки) — отражает сведения о запланированных сегментах перелета. ВЫЛЕТ (ID_рейса, Фактичествое время вылета, Фактическое время прилета, Дата вылета). Если используемая версия СУБД не поддерживает тип Время, то поле Время разделить на Час-Минута. Индексы: 1. ID_рейса в таблице РЕЙС — уникален. 2. {ID_рейса, Дата вылета} — уникальны. 3. По коду авиакомпании. 4. По аэропорту назначения. 5. По фактической дате вылета в обратном порядке. Запросы: 1. Найти сведения обо всех рейсах заданной авиакомпании. 2. Найти сведения обо всех рейсах, прибывающих на следующие сутки. 3. Найти сведения обо всех рейсах с продолжительностью полета более заданной. 4. Найти сведения обо всех рейсах, которым не соответствует ни один вылет. ВАРИАНТ № 2. Поставки Таблицы: ПОСТАВЩИК (ID_поставщика, ИНН, Город, Юридический адрес, Телефон, Организационно-правовая форма, Дата регистрации в ЕГРЮЛ, Дата завершения регистрации) — сведения о существующих поставщиках. ПОСТАВКА (ID_поставщика, Дата поставки, Название товара, Количество, Стоимость) — сведения о поставках поставщиков. Индексы: 1. ID_поставщика в таблице ПОСТАВЩИК — уникально. 2. {ID_поставщика, Дата поставки} — уникально. 3. ИНН поставщика — уникально. 4. По организационно-правовой форме. 5. По дате регистрации в обратном порядке. Запросы: 1. Найти сведения обо всех поставщиках с периодом действия регистрации более 3-х лет. 2. Найти сведения о поставщике по заданному номеру телефона. 3. Найти сведения обо всех поставщиках, расположенных в заданном городе на определенной улице. 4. Найти сведения обо всех поставщиках, которые не произвели ни одной поставки. ВАРИАНТ № 3. Сотрудники Таблицы: СОТРУДНИК (ID_сотрудника, Фамилия, Имя, Отчество, Пол, Дата рождения, Должность, Стаж). Ребенок (ID_сотрудника, Имя ребенка, Пол ребенка, Дата рождения). Индексы: 1. ID_сотрудника в таблице СОТРУДНИК — уникально. 2. { ID_сотрудника, Имя ребенка } — уникально. 3. По полу сотрудника. 4. По дате рождения ребенка в обратном порядке. 5. По стажу. Запросы: 1. Найти сведения обо всех сотрудниках старше заданного количества лет. 2. Найти сведения обо всех сотрудниках со стажем менее заданного количества лет. 3. Сведения о бухгалтерах мужского пола. 4. Найти сведения обо всех бездетных сотрудниках. ВАРИАНТ № 4. Туристическое агентство Таблицы: КЛИЕНТ (ID_клиента, Номер паспорта, Серия паспорта, Фамилия, Имя, Отчество, Дата рождения, Пол). ПУТЕВКА (ID_клиента, Дата выезда, Продолжительность, Стоимость, Страна пребывания). Индексы: 1. ID_клиента в таблице КЛИЕНТ — уникально. 2. {Номер паспорта, Серия паспорта} — уникально. 3. По продолжительности пребывания в обратном порядке. 4. По дате рождения. 5. По стране пребывания. Запросы: 1. Найти сведения о клиенте с заданными паспортными данными. 2. Найти сведения обо всех клиентах женского пола старше 60-ти лет. 3. Найти сведения о путевках в заданную страну. 4. Найти сведения о клиентах, которые не приобрели путевку. ВАРИАНТ № 5. Гостиница Таблицы: КЛИЕНТ (ID_клиента, Номер паспорта, Серия паспорта, Фамилия, Имя, Отчество, Дата рождения, Пол, Гражданство). ЗАСЕЛЕНИЕ (ID_клиента, Дата заселения, Время, Срок пребывания, Номер). Индексы: 1. ID_клиента в таблице КЛИЕНТ — уникально. 2. {Номер паспорта, Серия паспорта} — уникально. 3. По сроку пребывания. 4. По дате рождения в обратном порядке. 5. По дате и времени заселения. Запросы: 1. Найти сведения о клиенте с заданными паспортными данными. 2. Найти сведения обо всех иностранных клиентах. 3. Найти сведения о заселениях, произведенных в заданную дату. 4. Найти сведения о клиентах, которые не заселялись ни разу. ВАРИАНТ № 6. Водоканал Таблицы: КЛИЕНТ (ID_клиента, № лицевого счета, Название улицы, Номер дома, Номер квартиры, Количество проживающих). СЧЕТ (ID_клиента, Расчетный месяц, Расчетный год, Дата выставления, Сумма). Индексы: 1. ID_клиента в таблице КЛИЕНТ — уникально. 2. { ID_клиента, Расчетный месяц, Расчетный год } — уникально. 3. По сроку дате выставления счета в обратном порядке. 4. По количеству проживающих. 5. По дате и времени заселения. Запросы: 1. Найти сведения о клиенте с заданными паспортными данными. 2. Найти сведения обо всех клиентах, проживающих на заданной улице с заданным количеством проживающих. 3. Найти сведения о счетах, выставленных в текущем месяце. 4. Найти сведения о клиентах, которым не было выставлено ни одного счета. ВАРИАНТ № 7. Междугородние перевозки Таблицы: ВОДИТЕЛЬ (ID_водителя, Номер паспорта, Серия паспорта, Фамилия, Имя, Отчество, Стаж, Категория). МАРШРУТ (ID_водителя, Дата выезда, Время выезда, Город назначения). Индексы: 1. ID_водителя в таблице ВОДИТЕЛЬ — уникально. 2. { ID_водителя, Дата выезда } — уникально. 3. По стажу в обратном порядке. 4. По городу назначения. 5. По дате выезда. Запросы: 1. Найти сведения о водителях заданной категории со стажем более 10 лет. 2. Найти сведения о маршрутах в заданный город. 3. Найти сведения о маршрутах за текущий месяц. 4. Найти сведения о водителях, которые не были отправлены в маршрут. ВАРИАНТ № 8. Фильмотека Таблицы: ФИЛЬМ (ID_фильма, Название, Режиссер, Жанр, Год выпуска, Продолжительность фильма, Студия, Страна). КОПИЯ (ID_фильма, Тип носителя, Формат записи, Износ, Дата изготовления). Индексы: 1. ID_фильма в таблице ФИЛЬМ — уникально. 2. { Название, Студия } — уникально. 3. По году выпуска фильма в обратном порядке. 4. По дате изготовления копии. 5. По типу носителя. Запросы: 1. Найти сведения о копиях с заданным типом носителя и износом более 80%. 2. Найти сведения о фильмах заданного режиссера. 3. Найти сведения о фильмах, выпущенных за два предыдущих года. 4. Найти сведения о фильмах, для которых не было выпущено копий. ВАРИАНТ № 9. Кредитование Таблицы: КЛИЕНТ (ID_клиента, Номер паспорта Фамилия клиента, Имя клиента, Отчество клиента, Дата рождения, Адрес, Телефон). ЗАЯВКА (ID_клиента, Дата подачи заявки, Сумма кредита, Процентная ставка, Средняя сумма заработка). Индексы: 1. ID_клиента в таблице КЛИЕНТ — уникально. 2. { ID_клиента, Дата подачи заявки } — уникально. 3. По сумме кредита в обратном порядке. 4. По дате рождения. 5. По процентной ставке. Запросы: 1. Найти сведения о клиенте с заданными паспортными данными. 2. Найти сведения обо всех клиентах мужского пола старше 50-ти лет. 3. Найти сведения заявках с заданной процентной ставкой. 4. Найти сведения о клиентах, которые не подали ни одной заявки. ВАРИАНТ № 10. Транспорт Таблицы: ГРАЖДАНИН (ID_гражданина, Номер паспорта, Фамилия, Имя, Отчество, Адрес). АВТО (ID_гражданина, VIN, Марка авто, Цвет авто, Дата выпуска, Мощность). Индексы: 1. ID_гражданина в таблице ГРАЖДАНИН — уникально. 2. VIN — уникально. 3. По фамилии гражданина. 4. По дате выпуска авто в обратном порядке. 5. По мощности авто. Запросы: 1. Найти сведения о гражданине с заданными паспортными данными. 2. Найти сведения обо всех авто заданной марки с мощностью более заданной. 3. Найти сведения обо всех авто с заданным годом выпуска. 4. Найти сведения о гражданах, которым не принадлежит ни одного автомобиля.
ОТПРАВИТЬ ЗАЯВКУ |
---|