Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая по базам данных.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
278.53 Кб
Скачать

(Черновик) курсовая работа

на тему: «Визуальный построитель запросов на извлечение»

по дисциплине «Базы данных»

Выполнил студент: Ефремов М.А.

Группа: 21-пи

Орел, 2013

Содержание

Введение………………………………………………………………………..…5

Постановка задачи………………………………………………………………..6

Реализация поставленной задачи…………………………………………….….8

Алгоритм построения запроса………………………………………….……….16

Тестирование и пример работы программы…………………………………...18

Заключение……………………………………………………………………….20

Список литературы………………………………………………………………21

Приложение……………………………………………………………………....22

Введение

Целью данной курсовой работы является разработка программы, способной на основе отношений строить запросы на извлечение информации посредством визуального построителя запросов.

На современном этапе развития информационных технологий, базы данных, а также умение пользователей получать нужную информацию приобретает всё большее значение. Для реляционных баз данных, средством получения данных, удовлетворяющих необходимым условиям, является язык SQL. Однако изучение языка SQL требует дополнительных навыков, знания внутренней структуры связей между таблицами. Хотя, в принципе, пользователь не обязан знать эти вещи.

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

  1. Постановка задачи

На сегодняшний день существует много программных продуктов обеспечивающих визуальное построение запросов на выборку данных – MS Access, SQL Builder, Free Sql и т.д. У каждого продукта своя функциональность, они работают с разными форматами данных.

За пример я взял построитель запросов в пакете MS Access.

На выходе программы должен быть запрос SQL на выборку данных, то есть: select … from … where… order by… .

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

Кратко о структуре запроса на выборку.

В разделе select содержаться имена полей, которые должны присутствовать в результирующем отношении. Может присутствовать идентификатор distinct, указывающий на исключение дубликатов из результата.

В разделе from содержаться имена таблиц, которые нужно использовать при построении результата. Одно отношение может указываться в запросе, как разные таблицы, поэтому в программе необходимо предусмотреть поддержку псевдонимов таблиц.

Раздел where позволяет указать условия, которым должны соответствовать кортежи результирующего отношения. Необходимо сделать так, чтобы при наличии внешних ключей, программа автоматически добавляла в запрос строку о равенстве по внешним ключам.

В разделе where можно выделит следующие типы условий, поддерживаемые программой:

1. Соответствие шаблону. Это условие применимо не ко всем типам данных, а лишь к строке и дате. К числу его применять нельзя, других типов данных в реализации системного каталога не предусмотрено. Это также необходимо предусмотреть. Соответствие шаблону проверяется при помощи служебного слова like.

2. Принадлежность диапазону. Это условие применимо ко всем перечисляемым типам данных.

Оформляется следующим образом: between val1 and val2.

3. Сравнение. Сравнивать можно поля с полями и поля со значениями. Сравнению поддаются также все поддерживаемые типы данных (число, строка, дата).

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

В программе не реализована проверка значения поля на принадлежность множеству, а также визуальное построение запросов с группировкой (group by) и вложенных подзапросов с различными кванторами.