И. В. Рахмелевич основы проектирования баз данных


НазваниеИ. В. Рахмелевич основы проектирования баз данных
страница14/18
ТипДокументы
filling-form.ru > Бланки > Документы
1   ...   10   11   12   13   14   15   16   17   18

Задание 22. Составление простейших
однотабличных запросов на выборку данных


В ходе выполнения настоящего задания требуется создать запросы на выборку из базы данных «Библиотечка» (задание 21), с помощью которых получить следующую информацию:

  1. Вывести список книг одного автора (Драйзер Т.) и отсортировать результаты по году издания в порядке убывания.

  2. Вывести список книг, включающий книги А.С.Пушкина объемом не более 200 страниц и книги Л.Н.Толстого объемом не менее 400 страниц.

  3. Вывести список книг авторов с фамилией «Толстой», отсортированный по дате поступления, используя проверку на соответствие шаблону.

  4. Вывести список книг изданных с 1975 по 2000 год включительно, с сортировкой по автору и дате поступления.

  5. Вывести список книг изданных в 1975 - 1985 гг.,1987 г.,1991-2000 гг., с сортировкой по автору и дате поступления.

  6. Вывести список, включающий авторов и названия книг, авторы которых входят в заданный список (Драйзер Т., Хейли А., Чейз Д.Х.), с сортировкой результатов по автору, используя оператор IN (проверка на принадлежность к множеству).

  7. Сформулировать эквивалентный запрос, используя логическую операцию OR.

  8. Вывести список, включающий авторов, названия и год издания книг, изданных не раньше 1975 года за исключением книг М.Ю.Лермонтова, А.Н.Толстого, Т. Драйзера.

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

  10. Вывести список, включающий авторов и названия книг, которые относятся к серии PocketBook, а также книг без комментария объемом более 500 страниц.

  11. Показать количество книг каждого автора, которое имеется в библиотеке, используя группировку и статистическую функцию COUNT.

  12. Выполнить тот же запрос, что и в п.11, при дополнительном условии, что для каждого из выбранных авторов имеется не менее 2 книг. При этом использовать условие отбора для групп (предложение HAVING).

  13. Выполнить тот же запрос, что и в п.11, при дополнительном условии, что или для каждого из выбранных авторов имеется не менее 3 книг, или средний объем его книг составляет не менее 300 страниц.

  14. Вывести данные о количестве книг, относящихся к сериям «Серия PocketBook» и «Букинистическое издание». В результаты запроса включить название серии и количество книг.

  15. Отобразить данные о книгах (автор, название, год издания, количество страниц), поступивших в библиотеку в 2001 году, используя функцию EXTRACT.

  16. Вывести данные о том, книги каких годов издания имеются в библиотеке в количестве не менее 2 книг. В результаты запроса включить год издания и количество книг.

  17. Показать данные о книгах библиотеки (автор, название, год издания, количество страниц) и сколько прошло лет между изданием книги и ее поступлением в библиотеку. Для этого включить в запрос вычисляемое поле DELAY (задержка). Отсортировать результаты по этому полю.

  18. Вывести данные о книгах (те же, что и в предыдущей задаче), для которых между изданием книги и ее поступлением в библиотеку прошло не менее 2 лет.

  19. Вывести данные о книге с наиболее поздним годом издания.

  20. Вывести список авторов, у которых в библиотеке нет книг 2001-2003 годов издания.

  21. Вывести список авторов, у которых в библиотеке есть книги разных лет издания. Решить задачу двумя способами:
    а) с использованием секции HAVING;
    б) с использованием рекурсивной связи между таблицами.

  22. Вывести список авторов, имеющих книги, у которых интервал между годами издания составляет не менее 10 лет.

  23. Вывести список книг, написанных одним и тем же автором и поступивших в библиотеку в разные годы.

  24. Вывести список книг, написанных одним и тем же автором и поступивших в библиотеку в одном и том же году.

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

С целью управления выполнением запросов и обеспечения интерфейса для пользователя разработать приложение в среде Delphi, на основе приложения TaskBooks, созданного в задании 21. К этому приложению добавить новую форму для работы с запросами и соответствующий программный модуль. Эта форма должна содержать список имен запросов (имена должны отражать содержание запроса и быть по возможности понятными для пользователя. Они, вообще говоря, могут не совпадать с именами файлов, в которых сохранены запросы в каталоге БД). Кроме того, на форме должны быть компоненты, отображающие текст запроса и результаты его выполнения, и кнопки для запуска и закрытия запроса.
Методические указания:

I. Создание и тестирование запросов.

  1. Запустите Database Desktop.

  2. Установите рабочий каталог Books, с которым DBD работает по умолчанию, используя команду меню File / Working Directory в окне DBD. Для создания нового запроса вызовите команду меню File / New / SQL File.

  3. Составьте на языке SQL текст запроса, соответствующего п. 1 задания (см. выше) и введите его в окне для ввода запроса. Запустите запрос на выполнение, используя кнопку «Run SQL» на панели инструментов в окне DBD. Если DBD выдает сообщения о синтаксических ошибках (т.е. о нарушениях правил языка SQL в тексте запроса), то проанализируйте текст запроса и исправьте ошибки. Если запрос успешно выполнен, то закройте результаты и сохраните текст запроса как файл с расширением .sql (например BksDr.sql) в рабочем каталоге.

  4. Повторите указанные действия (начиная с вызова команды меню File / New / SQL File) для каждого из пп. 2-25 задания.

II. Создание формы для работы с запросами.

Запустите Delphi и откройте приложение TaskBooks. Создайте новую форму с помощью команды File/New Form. Сделайте заголовок формы «Запросы» (свойство Caption) и разместите на ней следующие компоненты:

  1. 3 стандартных кнопки (Button1, Button2, Button3). Сделайте надписи этих кнопок (свойство Caption) OpenQuery, CloseQuery, Exit.

  2. В верхней части окна формы добавить метку (Label1) и непосредственно под ней комбинированный список (ComboBox1). Сделайте надпись (свойство Caption) на этой метке «Список запросов»

  3. Ниже добавить метку (Label2) и непосредственно под ней многострочный редактор (Memo1). Задайте отображение полос прокрутки у компонента Memo1, установив свойство ScrollBars – ssBoth. Сделайте надпись (свойство Caption) на этой метке «Текст запроса».

  4. Ниже добавить метку (Label3) и непосредственно под ней компонент DBGrid1. Сделайте надпись (свойство Caption) на этой метке «Результаты запроса».

  5. Добавить на форму невизуальные компоненты Query1, DataSource1. Установите свойство компонента DataSource:

DataSet (имя набора данных) – Query1.

Установите свойство компонента DBGrid:

DataSource – DataSource1.
Сохраните проект и назовите новый модуль Queries

  1. Перейдите на форму Form1 и добавьте кнопку, установите для нее свойство Caption - Queries

  2. Используя команду File/Use Unit введите в модуль Queries оператор
    uses ViewTab;
    а в модуль ViewTab оператор
    uses Queries;

  3. Кнопка Queries на главной форме (Form1) должна обеспечивать переход на форму «Запросы» (Form2). Поэтому для этой кнопки создайте обработчик события OnClick и включите в него оператор
    Form2.ShowModal;

  4. Кнопка Exit, созданная в п.1), должна обеспечивать закрытие формы «Запросы» и переход на главную форму. Поэтому создайте для этой кнопки обработчик события OnClick и включите в него оператор
    Close;

  5. Проверьте переходы между формами. Сохраните проект.


III. Разработка программного кода и организация интерфейса для работы с запросами.

  1. Создайте в модуле ViewTab две глобальные переменные dbn, tn типа string, определяющие путь к каталогу БД и имя файла таблицы; описание этих переменных поместите в разделе interface после оператора
    var
    Form1: TForm1;
    Для присвоения начальных значений этим переменным создайте обработчик события FormCreate для главной формы и включите в него операторы
    dbn:='I:\...\Books\';
    tn:='CatalogBooks.db';
    Внесите изменения в обработчик события FormActivate, заменив строковые значения в правых частях на имена соответствующих переменных.

  2. Для заполнения списка запросов при создании соответствующей формы (Form2), создайте обработчик события FormCreate для этой формы и включите в него операторы вида
    ComboBox1.Items.Add(‘Книги Драйзера’);
    Количество этих операторов и значения строковых констант в скобках (названия запросов) определяются количеством и содержанием создаваемых запросов (см. пп.1-25 текста задания).
    Для того, чтобы указать, к какой БД будет обращаться запрос Query1, включите в обработчик события FormCreate оператор
    Query1.DatabaseName:=dbn;

  3. Создайте обработчик события OnClick для компонента ComboBox1. При выполнении этой процедуры пользователь выбирает из списка имя одного из запросов, в результате чего текст этого запроса должен загрузиться в редактор Memo1.
    Опишите в этой процедуре переменные n0 типа integer и Fname, Path типа string. Переменные Fname, Path будут определять имя файла с текстом запроса и полный путь к этому файлу соответственно. Переменная n0 будет определять номер выбранного пункта в списке ComboBox1, поэтому в начале выполняемой части процедуры должен быть оператор
    n0:= ComboBox1.ItemIndex;
    Далее должны идти условные операторы определяющие выбор одного из файлов с текстами сохраненных вами запросов в зависимости от значения n0; эти операторы имеют вид:
    if n0=0 then
    Fname:='BksDr.sql';
    Число этих операторов должно соответствовать числу пунктов в списке ComboBox1.
    Далее, в конце процедуры должны быть следующие операторы
    Path:=dbn+Fname;
    Memo1.Lines.Clear;
    Memo1.Lines.LoadFromFile(Path);
    Первый из этих операторов определяет полный путь к файлу с текстом запроса, второй очищает поле компонента Memo1, третий загружает в него текст запроса из этого файла.

  4. Создайте обработчики события OnClick для кнопок OpenQuery, CloseQuery и напишите для них программный код.
    В первом из них должна быть предусмотрена предварительная проверка наличия текста в поле Memo1, а в случае отсутствия текста должно выдаваться сообщение на экран «Текст запроса отсутствует», после чего предусмотреть завершение данной процедуры. Свойству Query1.SQL должно быть присвоено значение, содержащееся в компоненте Memo1 и должен быть выполнен запуск запроса на выполнение с помощью одного из операторов
    Query1.Open;
    или
    Query1.Active:=True;
    Второй из этих обработчиков должен закрывать запрос с помощью одного из операторов
    Query1.Close;
    или
    Query1.Active:=False;

  5. Сохраните проект. Скомпилируйте проект и исправьте обнаруженные ошибки. После исправления ошибок выполните приложение. Используя разработанный интерфейс, выберите из списка поочередно каждый из запросов, запустите на выполнение и просмотрите результаты.



1   ...   10   11   12   13   14   15   16   17   18

Похожие:

И. В. Рахмелевич основы проектирования баз данных iconПрограмма дисциплины «Основы проектирования и разработки баз данных в среде ms access»
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов экономических специальностей,...

И. В. Рахмелевич основы проектирования баз данных icon1 Пояснительная записка
Составлен в соответствии с учебным планом и рабочей программой дисциплины оп. 07 Основы проектирования баз данных для подготовки...

И. В. Рахмелевич основы проектирования баз данных icon«Системы управления базами данных. Формы представления данных. Создание структуры базы данных»
Обучающая: создать условия для усвоения содержания теоретического материала по данной теме на уровне закрепления, научить учащихся...

И. В. Рахмелевич основы проектирования баз данных iconУрок с элементами деловой игры "Создание базы данных" Карасенко Татьяна Александровна
Место урока в теме – урок проводится в ходе изучения темы “Информационные системы”, после изучения понятий базы данных, видов баз...

И. В. Рахмелевич основы проектирования баз данных iconБаза данных «Сеть магазинов» создание баз данных в субд access
База данных «Сеть магазинов» создание баз данных в субд access задание создание базы данных цель работы

И. В. Рахмелевич основы проектирования баз данных iconМоделирование бизнес-процессов с bpwin 0
Этот инструмент используют в основном системные аналитики и специалисты по внедрению информационных систем. Erwin предназначен для...

И. В. Рахмелевич основы проектирования баз данных iconЛабораторная работа №11 Тема: Создание и редактирование основных...
Цель проведения. В результате выполнения лабораторной работы студент должен иметь представление о понятии и технологии баз банных,...

И. В. Рахмелевич основы проектирования баз данных iconПрактическая работа №11
В excel имеются средства для обработки данных, организованных по принципу баз данных – функции списка, основные операции которых...

И. В. Рахмелевич основы проектирования баз данных iconПрограммный комплекс (эумк) «Основы менеджмента» выполнен в виде...
Н. А., Копылов Ю. В., Малышева А. Д. Эумк «Основы менеджмента» для слушателей специальности 100103–«Социально-культурный сервис и...

И. В. Рахмелевич основы проектирования баз данных iconМетодическое пособие по курсовому проектированию по дисциплине «И...
Методическое пособие предназначено для студентов специальности 071600 «Высоковольтные электроэнергетика и электротехника», изучающих...

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск