Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Описание интерфейса приложения




Курсовая работа

по дисциплине

Базы данных

тема:

Реализация системного каталога. Основные хранимые характеристики: отношения, атрибуты с типами, связи, индексы

 


Содержание

Введение

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

. Описание решения

. Описание интерфейса приложения

Заключение

Список использованной литературы

Приложение А (обязательное)- Листинг программы


Введение

Одной из функций СУБД является обеспечение функции системного каталога или словаря данных. Системный каталог - это набор таблиц и представлений, содержащих важную информацию о базе данных. Системный каталог имеется в любой базе данных. Информация в системном каталоге определяет структуру всей базы данных. Системный каталог фактически является частью базы данных. Системный каталог “содержит данные о данных” - метаданные, т.е. определения других объектов системы. Системный каталог может быть интегрирован в определяемую им базу данных, а значит, должен содержать описание самого себя.

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

Каталог состоит из таблиц. Их называют системными таблицами для отличия от обычных пользовательских. В результате пользователь может обращаться к каталогу так же, как к своим данным. Например, в каталоге обычно содержатся системные таблицы TABLES и COLUMNS, назначение которых - описание известных системе таблиц и столбцов этих таблиц.

Содержимое системного каталога может включать информацию по следующим разделам:

· учетные записи пользователей и установки по умолчанию;

·   привилегии и другая связанная с безопасностью информация;

·   статистика, характеризующая производительность системы;

·   размеры объектов;

·   динамика роста объектов;

·   структура таблиц и параметры их хранения;

·   структура индексов и параметры их хранения;

·   информация о других объектах базы данных, в частности, представлениях, синонимах, триггерах, сохраненных процедурах;

·   ограничения для таблиц и информация о ссылочной целостности данных;

·   пользовательские сеансы доступа;

·   информация об аудитах;

·   внутренние параметры базы данных;

·   размещение файлов базы данных;

Системный каталог управляется сервером базы данных. При создании таблицы сервер базы данных вставляет данные об этом в соответствующую таблицу или представление каталога. При изменении пользователем структуры своей таблицы соответствующие объекты словаря данных тоже обновляются.

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

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

· написание подпрограмм, реализующих ввод таблиц, полей и ключей;

·   написание подпрограмм, создающих системный каталог;

·   создание приложения, позволяющего добавлять таблицы, поля и ключи, а также выводить данные из системного каталога;

 


 

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

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

Программа должна быть реализована средствами языка Delphi.

 


Описание решения

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

Файл таблиц - tables.txt, состоит из строк, в каждой из которых находится имя таблицы.

Файл полей - field.txt, состоит из строк, каждая из которых имеет следующий формат:

 

<Имя таблицы>|<Имя поля>|<Тип данных>|<Длина типа данных>

 

Файл ключей - keys.txt, состоит из строк, каждая из которых имеет структуру следующего вида:

 

<Имя таблицы>|<Первичный ключ>|<Внешний ключ 1>|

 

При этом Внешний ключ состоит из пар вида:

 

<Foreign>|<References>

 

Файл индексов - index.txt, состоит из строк следующего вида:

 

<Имя индекса>|<Имя таблицы>|<Имя поля>|

 

Модуль MyFunction содержит процедуры и функции необходимые для работы с системным каталогом. Процедуры AddTable, AddField, AddKey, AddIndex осуществляют запись таблиц, полей, ключей и индексов в соответствующие файлы, на основании введенных пользователем данных. Процедура AddTable реализована следующим образом.


 

procedure AddTable(NameTable: string);(Tables,PathToTables);(Tables);(Tables,NameTable);

CloseFile(Tables);;

 

В качестве входного параметра выступает имя таблицы. Далее следует обращение к стандартным процедурам AssignFile и Append. AssignFile связывает файловую переменную с именем файла, Append - инициирует запись в существующий файл. Процедуры AddField, AddIndex реализованы анадогично.

Процедура AddKey позволяет вводить первичные ключи и внешние ключи, в зависимости от выбора режима пользователем. Переменная Logic типа boolean показывает, осуществлялись ли ранее записи в файл. Алгоритм этой процедуры представлен на рисунке 1.

Функции InTable, InField, InKey имеют выходное значение типа boolean. Они проверяют наличие соответствующего элемента во введенных данных.

Функции InTable в качестве параметра получает имя таблицы, наличие которой в файле Tables необходимо проверить. Далее выполняются процедуры открытия файла, считывается строка из файла и проверяется ее совпадение с входным параметром. В случае совпадения их значений функция принимает значение True, иначе - False.

Функция InField имеет два параметра: имя таблицы NameTable и имя поля NameField. Данная функция работает следующим образом. Получаем стоку из файла Field. Вид этой строки таков, что сначала записано имя таблицы, а затем принадлежащее ей поле с указанием типа и его размера. Проверяем равенство входного параметра NameTable и первых символов строки, содержащих имя поля, в случае равенства проверяем также соответствие параметра NameField имени поля в данной строке файла. Таким образом просматриваем все строки файла. Функция принимает значение True в том случае если оба параметра совпали с информацией в строке файла.

Функция InKey проверяет существования ключа у таблицы. Имеет 2 входных параметра: NameTable и Why. Результат функции формируется следующим образом. В случае обнаружения в файле Keys записи соответствующей паре значений NameTable и Why функция возвращает значение True, которое свидетельствует о наличии первичного либо внешнего ключа у таблицы. В противном случае возвращается значение False, что говорит об отсутствии ключа с данным именем у таблицы.

Эти функции используются для проверки корректности ввода данных пользователем.

Значения функций FSpisokTables, FSpisokField, FSpisokKeys типа string содержат строку с содержимым соответствующего файла. Формат возвращаемого результата этих функций следующий: каждая строка файла отделена от последующей знаком &. Все эти функции реализованы аналогичным образом. Схема функций представлена на рисунке 2.

Функция FPrintStr возвращает содержимое каталога строкой. В этой строке последовательно представлена информация каталога по каждой таблице, разделенная знаком &. Алгоритм это функции представлен на рисунке 3.

Процедура PrintData использует функцию FPrintStr и на основе ее результата выводит все поля заданной пользователем таблицы в текстовую таблицу StringGrid. Алгоритм работы этой процедуры можно записать следующим образом:

1. SpisokPrint:= FPrintStr;

2. Находим информацию в строке SpisokPrint о требуемой таблице;

.   Заносим имя требуемой таблицы в StringGrid;


 

Рисунок 1 - Алгоритм процедуры AddKey

Рисунок 2 - Схема функций FSpisokTables, FSpisokField, FSpisokKeys

 

4. Находим информацию о ключах таблицы и заносим в StringGrid;

5. В переменную Column заносим имена всех полей и записываем в таблицу StringGrid;

.   В переменную ColumnType заносим типы полей и записываем в таблицу StringGrid;

Процедура PrintTables выводит имена всех содержащихся в файле Tables.txt отношений и количество полей в каждом из них. Для реализации этой процедуры просматриваем строки файла Tables и выводим из в текстовую таблицу StringGrid.

 

 

 

Рисунок 3 - Алгоритм функции FPrintStr

 

Далее, просматривая строки файла Field считаем количество полей для каждой таблицы и эти значения также выводим в текстовую таблицу. PrintRelations - процедура, осуществляющая вывод в многострочное текстовое поле Memo информацию о связях между отношениями на основе содержимого файла Keys. Результат выполнения процедуры PrintIndex - вывод в StringGrid имени индекса и его принадлежность к полю и таблице. Работа данной процедуры основывается на просмотре информации файла Index.

Описание интерфейса приложения

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

· добавить таблицу

·   добавить поле

·   добавить ключ

·   просмотреть каталог

В случае выбора пункта меню Добавить -> Таблицу на форме появляются однострочное текстовое поле для ввода имени таблицы и кнопка Добавить. При нажатии на нее информация о новой таблице будет занесена в файл.

При выборе пункта меню Добавить -> Поле пользователю, с помощью раскрывающегося списка, предлагается выбрать таблицу, в которое будет добавляться поле, ввести имя поля, выбрать его тип и длину типа. Состояние флага Индекс говорит о наличии или отсутствии индекса для данного поля таблицы. Пример работы приложения в таком состоянии представлена на рисунке 4.


 

Рисунок 4 - Пример работы приложения

 

Выбор пункта меню Добавить -> Ключ позволяет выбирать пользователю таблицу, куда требуется добавить ключ и его тип. В случае добавления первичного ключа, требуется ввести имя поля, которое будет однозначно идентифицировать запись таблицы. В случае выбора внешнего ключа пользователь заполняет два поля Foreign(туда записывается имя поля - внешний ключ) и References (содержит имя таблицы).

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

 

Рисунок 5 - Просмотр системного каталога

Рисунок 6 - Просмотр полей системного каталога


Заключение

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

· написаны подпрограммы, реализующие ввод таблиц, полей и ключей;

·   написаны подпрограммы, создающие системный каталог;

·   создано приложение, позволяющее добавлять таблицы, поля и ключи, а также выводить данные из системного каталога;

Поставленная в работе цель достигнута, все задачи выполнены полностью.


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

1. Швецов, В.И., Визгунов, А.Н., Мееров, И.Б. Базы данных [Текст]. - Учебное пособие. - Нижний Новгород: Издательство ННГУ, 2004.- 217 с.

. Рыженков, Д.В. Курс лекций по дисциплине «Базы данных», 2009 г.

3. Дейт, К.Дж. Введение в системы баз данных, 6-е издание [Текст]: [пер. С англ.] /К.ДЖ. ДеЙт. - М. [и др.]: Вильямс, 2000. - 848 с.; 24 см. 4000 экз. - ISBN: 5-8459-0019-0.

системный каталог ввод атрибут


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...