Главная » Все файлы » Просмотр файлов из архивов » Документы » Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных»

Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных», страница 19

2018-01-09СтудИзба

Описание файла

Документ из архива "Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных» ", который расположен в категории "". Всё это находится в предмете "базы данных" из 4 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "базы данных" в общих файлах.

Онлайн просмотр документа "Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных»"

Текст 19 страницы из документа "Ревунков Г.И. - Методические указания к лабораторному практикуму по курсу «Базы данных»"

Запрет внесения изменений или просмотра другими пользователями НД, ассоциированного с данной таблицей, достигается с помощью метода

procedure LockTable (LockType: TLockType);

параметр LockType определяет вид запрета: ItReadLock - запретить чтение;

WriteLock — запретить запись.

Можно запретить и чтение, и запись данных, но для того нужно вызвать метод LockTable дважды.

Попытка внесения изменений в НД, ассоциированный с таблицей БД, для которой запрещена запись данных, равно как и попытка чтения из запрещенной для чтения аблицы, приводят к возбуждению исключительной ситуации EDBEngineError с сообщением:

Table Имя_таблицы is locked.

После того как необходимость запрета пропадет, он должен быть отменен методом:

procedure UnlockTable(LockType: TLockType);

параметр LockType указывает тип снимаемого запрета.

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

В архитектуре «клиент-сервер» потребности в реализации программных блокировок не возникает. Возможность одного пользователя вносить изменения в данные, уже корректируемые другим пользователем, определяется уровнем изоляции транзакций в приложении:

свойство Translsolation

компонента TDatabase

и уровнем изоляции транзакций сервера, а также механизмом блокировок сервера.

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

4. ПРИМЕРЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ DELPHI

4.1. Разработка простых приложений, работающих с базами данных на основе механизма BDE.

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

Program Files \ Brland \ Delphi5 \ Doc \ bde.int

В этом файле находится часть интерфейса модуля BDE.

Кроме того, информация с примерами о прогрммировании с использованием интерфейса BDE API и полным описанием всех функций содержится в файле:

Program Files \ Common Files\ Brland \ Bde \ bde32.hlp

База данных - (или SQL-база данных, если она находится на SQL-сервере) может содержать множество таблиц базы данных и представлена в библиотеке VCL классом TDatabase.

Набор данных (совокупность однотипных записей, построенных композицией некоторого множества полей) представлен в библиотеке VCL абстрактным классом TDataSet. Этот класс создан для того, чтобы упростить работу с не BDE-наборами. Он содержит абстрактное представление записей и полей набора данных. Производным от класса TDataSet определен класс TBDEDataSet, который и является основным классом для тех источников данных, подключение к которым осуществляется с помощью механизма BDE.

Таблица (совокупность строк и столбцов данных) является специальным набором данных и представляет структуру и данные, содержащиеся в конкртеной таблице базы данных. В библиотеке VCL таблица представлена классом TTable.

Запрос (можно сказать, это виртуальная таблица) также является специальным набором данных и содержит информацию, возвращаемую в результате выполнения SQL-запроса.Представлен в библиотеке VCL классом TQuery.

Хранимая процедура на SQL-сервере представлена в библиотеке VCL классом TStoredProc.

Классы TTable, TQuery, TStoredProc являются производными от класса TDBDataSet, который является производным от класса TBDEDataSet.

В версии Delphi 5 используется BDE так же пятой версии. BDE 5.0 в комплектации Delphi 5 Professional обеспечивает унифицированное подключение к базам данных Paradox, dBASE, Access, FoxPro, Local InterBase, ODBC, ASCII-тексту, серверам баз данных SQL.

Пример 4.1. Создадим приложение, работающее с одной таблицей в формате СУБД Paradox. В качестве примера создадим справочник-каталог книг в нашей домашней библиотеке. Для этого воспользуемся следующей таблицей:

Каталог домашней библиотеки

Код книги Название книги Фиамилия, имя, отчество авторов Год издания

1_1_1 100 ВЕЛИКИХ ПУ-ТЕШЕСТВЕННИКОВ И.А.Муромов 1999

1_1_2 100 ВЕЛИКИХ ТАЙН Н.Н.Непомнящий

А.Ю.Низовский 1999

... ... ... ...

12_8_39 Эндимион Дэн Симмонс 1998

Присвоим таблице имя Book и определимся с именами, типами и размерами полей таблицы:

Размеры и типы полей таблицы Book

Имя Тип Обозначение Размер

ID Alpha A 9

Name Alpha A 80

Author Alpha A 80

Year Short S

В СУБД Paradox имеются следующие типы полей:

• A - Alpha -симольное значение (до 255 символов).

• N - Number -число с плавающей точкой в диапазоне от -10Е307 до +10Е308 с точностью до 15 значащих цифр.

• $ - Money -для хранения денежных сумм. При отображении выводится знак денежнной единицы. По умолчанию число знаков после запятой равно 2. В остальном аналогичен Number.

• S - Short -целое число от -32 768 до +32 767.

• I - LongInteger - целое число от - 2 147 483 648 до 2 147 483 647.

• # - BCD -число с повышенной точностью в двоично десятичном формате.

• D - Date -значение даты.

• T - Time -значение времени.

• @ -Timestamp -значение даты и времени.

• M - Memo -символьное значение длиной более 255 символов.

• F - Formatted Memo -форматированный текст произвольной длины.

• G - Graphic Filds -графическое изображение.

• - OLE -данные в форматах технологии OLE фирмы Microsoft.

• L - Logical -логические значения True, False.

• + - Autoincrement - автоинкрементное поле. Разрешено только читать. Значения из удаленных из таблицы записей повторно не используются.

• B - Binary -двоичное значение произвольной длины.

• Y - Bytes - двоичные значения длиной от 1 до 240 байт.

4.1.1.Создание псевдонима базы данных

Обращение в Delphi к базам данных из утилит и программ осуществляется по псевдониму базы данных, который должен быть зарегистрирован с помощью утилиты BDE Administrator.

В локальной СУБД Paradox база данных представляет собой набор файлов (для одной таблице отдельный файл) и хранится на диске в каталоге (папке). Поэтому создадим на диске для базы данных папку с любым именем, например Catalogue_B.

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

Вызвать утилиту BDE Administrator можно через кнопку Пуск Главного меню Windows:

Пуск | Программы | Borland Delphi 5 | BDE Administrator

(см. рис. 4.1).

Рис. 4.1. Окно утилиты BDE Administrator.

Выполните команды: Object | New . На экране появится окно выбора типа драйвера для базы данных (рис. 4.2).

Рис. 4.2. Окно выбора типа драйвера для базы данных.

Для условия нашего примера необходимо оставить тип STANDART (для работы с базой данных СУБД Paradox). После нажатия кнопки ОК информация в окне адимнистратора изменяется.

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

Значение указывается в левом окне на вкладке Databases, в строке со значением STANDARD1. Это значение необходимо заментиь на наш псевдоним базы данных - Catalogue_B. В правом окне необходимо указать путь к папке с будущей базой данных (щелкните по полю PATH , затем по появившейся в правом углу данной строки кнопке и в открывшемся окне найдите и выберите папку Catalogue_B и щелкните по кнопке ОК) - рис. 4.3.

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

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

Создание псевдонима нашей базы данных завершено. Можно завершить работу утилиты BDE Administrator .

4.1.2.Создание таблицы в базе данных

Для создания таблицы используем утилиту Database Desktop (DBD).

Вызвать утилиту Database Desktop можно через кнопку Пуск Главного меню Windows:

Пуск | Программы | Borland Delphi 5 | Database Desktop

(см. рис. 4.4).

Рис. 4.4. Окно утилиты Database Desktop.

Дале необходимо установить псевдоним базы данных. Для этого выполните опции File | Working Directory и в выпадающем списке Aliases выберите псевдоним нашей базы данных - Catalogue_B (рис. 4.5) и нажмите кнопку ОК.

Рис. 4.5. Установка псевдонима в утилите Database Desktop

Далее выполните опции File | New | Table. В появившемся окне Create Table в выпадающем списке выбирите тип таблицы (который определяется типом СУБД для управления создаваемой таблицей). Для нашего примера - Paradox 7 (рис. 4.6). И нажмите кнопку ОК.

Рис. 4.6. Выбор типа таблицы

4.1.2.1. Описание структуры таблицы

После задания типа таблицы на экране появляется окно для определения полей таблицы - рис. 4.7.

Рис. 4.7. Окно определения полей таблицы

Выполните с помощью средств окна описание структуры нашей таблицы Book - рис. 4.8.

Рис. 4.8. Описание структуры таблицы Book

Для задания типа поля щелкните правой кнопкой мыши в столбце Type и выберите требуемый тип поля. В столбце Size укажите размер поля. Признак первичного ключа (столбец Key) можно выставить, щелкнув по любой клавише клавиатуры. Если первичный ключ составной, то поля должны определяться в той последовательности, в какой они входят в первичный ключ и должны предшествовать всем остальным полям таблицы. Для первичного ключа обязательно, а для всех остальных полей - по смыслу задачи, необходимо включить переключатель Required Field, для обеспечения требования обязательного заполнения поля конкретным данным при вводе строки в таблицу. В нашем примере выставим этот переключатель и для остальных полей. Чтобы получить доступ к переключателю Required Field, необходимо щелкнуть по списку Table properties и в раскрывшемся списке выбрать Validity Checks. На этой же странице можно также задать ограничения на минимальное (Minimum value) и максимальное (Maximum value) значение данного, определить значение поля по умолчанию (Default value).

4.1.2.2. Установка языкового драйвера

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

Чтобы получить доступ к окну установки языкового драйвера, необходимо снова щелкнуть по списку Table properties и в раскрывшемся списке выбрать Table Language и затем щелкнуть кнопку Modify. В появившемся окне раскрыть список Language и выбрать требуемый драйвер. Для нашего примера выберем драйвер Pdox ANSI Cyrillic - рис. 4.9. Затем закройте окно кнопкой ОК.

Рис. 4.9. Установка яыкового драйвера.

4.1.2.3. Сохранение таблицы.

Для сохранения таблицы щелкните по кнопке Save As в окне утилиты Database Desktop. В появившемся окне в поле Alias выберите псевдоним нашей базы данных. При этом в списке папок должна появится наша папка. Если этого не произошло, установите ее. В качестве имени файла введите имя нашей таблицы - Book. И нажмите кнопку сохранения. Таблица и индекс по первичному ключу созданы. База данных готова к работе.

4.1.2.4. Работа с приложением с помощью утилиты Database Desktop.

С помощью утилиты Database Desktop можно выполнить ввод данных в таблицу Book, редактирование и просмотр данных. Работа с утилитой не требует знания методов и свойств компонента TDataSet.

Вначале необходимо открыть таблицу: выполнив опции File | Open | Table в появившемся окне выбрать и открыть таблицу Book.

По умолчанию утилита находится в режиме просмотра данных в таблице. Если требуется выполнить ввод и редактирование данных, то необходимо выполнить опции: Table | Edit Data. Для возврата в режим просмотра необходимо выполнить опции Table | View Data..

Используя опции меню Record (рис. 4.10) можно выполнять навигацию в таблице, включать, удалять строки и т.д.

Рис. 4.10. Опции меню Record

Для изменения структуры таблицы необходимо выполнить опции Table | Restructure.

После завершения работы с таблицей выполняются опции: File | Close .

4.1.3.Создание индекса для таблицы базы данных

Пример 4.2. Для даблицы созданной в примере 4.1 для поля Author создать индекс.

У всех полей, для которых создается индекс, должен быть установлен переключатель Required Field (см. выше), за исключением автоинкрементных полей, так как их заполнение происходит автоматически. Если индекс составной, то последовательность добавления полей в индекс определяется последовательностью атрибутов в составном индексе. Также перед созданием индекса должна быть выполнена установка языкового драйвера.

Если Вы находитесь в режиме создания таблицы, то можно сразу выполнять описанные ниже действия. А если таблица уже была ранее создана, то вызовите утилиту Database Desktop и выполните опции Table | Restructure.

Чтобы создать индекс, необходимо снова щелкнуть по списку Table properties и в раскрывшемся списке выбрать Secondary Indexes и затем щелкнуть кнопку Define. В появившемся окне с помощью кнопки с изображением правой стрелки перенести требуемые поля из окна Fields в окно Indexed fields. В нашем примере переносим поле Author. Затем нажимаем кнопку ОК. На экране появляется диалоговое окно Save Index As в котором указываем имя индекса (рекомендуется, чтобы имя индекса отличалось от имени поля хотя бы одним символом), например Аuthor_Book (рис. 4.11), и нажимаем еще раз кнопку ОК.

Рис. 4.11. Создание индекса

После создания индекса его имя появилось в списке индексов таблицы (рис. 4.12).

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
426
Средний доход
с одного платного файла
Обучение Подробнее