ebook img

Методическое пособие по использованию кодов обработки при выполнении лабораторных работ в СУБД D3 по курсу "Проектирование баз данных" PDF

28 Pages·2010·0.392 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Методическое пособие по использованию кодов обработки при выполнении лабораторных работ в СУБД D3 по курсу "Проектирование баз данных"

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ» Т.М. Болотская, Б.А. Щукин Методическое пособие по использованию кодов обработки при выполнении лабораторных работ в СУБД D3 по курсу «Проектирование баз данных» Москва 2010 УДК 004.065(07) ББК 32.973-018.2я7 Б 79 Болотская Т.М., Щукин Б.А. Методическое пособие по использованию ко- дов обработки при выполнении лабораторных работ в СУБД D3 по курсу «Проектирование баз данных». М.: НИЯУ МИФИ, 2010. 28 с. Рассмотрен один из основных вопросов проектирования баз данных в СУБД D3: использование кодов обработки в словарях файлов. Особое внимание уделено практическим моментам, связанным с инициализацией и сохранением результатов отработки кодов. В предлагаемом пособии приведен необходимый материал с примерами, что очень важно при практической работе на лабораторных занятиях. Пособие предназначено для студентов НИЯУ МИФИ, изучающих курс «Про- ектирование баз данных» в течение восьмого и девятого семестров факультета «К». Рецензент канд. техн. наук, доц. А.В. Кузовкин Рекомендовано к изданию редсоветом НИЯУ МИФИ ISBN 978-5-7262-1309-5 © Национальный исследовательский ядерный университет «МИФИ», 2010 Редактор М.В. Макарова Подписано в печать 07.07.2010. Формат 60х84 1/16 Уч.-изд.л. 1,75. Печ.л. 1,75. Тираж 100 экз. Изд. № 054-1 Заказ № 224 Национальный исследовательский ядерный университет «МИФИ». Типография НИЯУ МИФИ. 115409, Москва, Каширское ш., 31 О Г Л А В Л Е Н И Е Введение................................................................................................4 1. Коды обработки, используемые в FDI............................................5 1.1. Коды обработки в атрибуте «input conversion» FDI.............................................6 1.2. Коды обработки в атрибуте «correlative» FDI.........................................................7 2. Коды обработки, используемые в ADI..........................................10 2.1. Коды обработки в атрибуте «input conversion» ADI...........................................10 2.2. Коды обработки в атрибутах «output conversion» и «correlative» ADI.......12 2.3. Особенности работы с кодами в процессорах ACCESS и UPDATE...............................................................................14 Список рекомендуемой литературы..................................................16 Приложение 1......................................................................................17 Введение В СУБД D3 для управления данными используются словари файлов. При этом многие вопросы преобразования данных, пред- ставления результатов, генерации ключей записей, поддержания ссылочной целостности при использовании основных процессоров СУБД D3 UPDATE и ACCESS решаются с помощью специальных кодов обработки СУБД D3, таких, как a (algebraic), t (translate), b (bridge), g (group extraction), call и др. Для использования всех возможностей этих кодов нужно четко представлять порядок их отработки в основных процессорах СУБД D3 UPDATE и ACCESS, т.е. понимать что: 1) инициализация процессов, вызываемых кодами, происходит в разные моменты; 2) коды, используемые при определении атрибутов, т.е. в запи- сях описания атрибутов (Attribute Defining Item - ADI), влияют только на преобразование и представление данных перед выводом, вывод может производиться на экран дисплея, печать, во внешний (по отношению к базе данных) файл; 3) коды, используемые при определении файлов, т.е. в записях описания файлов (File Defining Item - FDI), влияют на сохранение записей в базе данных. Рассмотрим более подробно особенности отработки кодов, по- мещенных в словари файлов СУБД D3 на примере базы данных, состоящей из двух связанных таблиц (файлов в терминологии D3): «Студенты» и «Группы». Все описания базы данных в терминах FDI и ADI и примеры запросов в UPDATE и ACCESS представлены в прил. 1. 4 1. Коды обработки, используемые в FDI В словаре любого файла базы данных, работающей под управ- лением СУБД D3, для каждой области данных этого файла создает- ся отдельная запись описания файла (File Defining Item - FDI). Если файл состоит из словаря и единственной области данных, то запись описания файла будет одна. В этом случае принято, что область данных файла носит имя файла. Например, если файл «Студенты» состоит из словаря и одной области данных, то сло- варь будет иметь имя «dict Студенты», а область данных – «Студенты». В этом случае в словаре «dict Студенты» будет создана запись описания файла с ключом «Студенты» (рис. 1). DICT Студенты ‘Студенты’… dictionary-code d … input-conversion call Home Рис. 1. Фрагмент записи описания файла «Студенты» Обращение к области данных (<file.reference>) осуществля- ется по имени Студенты, Студенты или просто Студенты. Под одним словарем можно создать несколько областей данных. Например, пусть файл «Студенты» создан с несколькими облас- тями данных: «Первокурсник», «Второкурсник», … В этом случае в словаре «dict Студенты» для каждой области данных будет создана собственная запись описания файла, каждая из кото- рых будет иметь ключ, совпадающий с именем области, т.е. «Пер- вокурсник», «Второкурсник», … Обращение к областям данных осуществляется по именам Студенты, Первокурсник, Студенты, Второкурсник … Коды обработки, помещенные в FDI конкретной области дан- ных, действуют только в этой области. На них реагирует только процессор UPDATE, в процессоре ACCESS эти коды просто игно- рируются. Коды обработки в записи FDI помещаются только в ат- рибуты «input conversion» и «correlative». 5 1.1. Коды обработки в атрибуте «input conversion» FDI Код, помещенный в «input conversion» FDI, срабатывает после вызова процессора UPDATE, т.е. непосредственно после вы- полнения команды: u <file.reference> <Item_ID> <Список атрибутов> перед появлением вызываемой записи на экране монитора. В атрибуте «input conversion» FDI можно использовать только один код обработки, а именно «call», т.е. вызов подпро- граммы. Рассмотрим использование этого кода на примере форми- рования значения по умолчанию. Например, в записях области данных файла «Студенты» в поле № 7 указывается место жительства студента. Предположим, что боль- шая часть студентов живет в общежитии. Удобно, чтобы при форми- ровании данных на студента значение «Общежитие» в поле № 7 за- носилось автоматически, то есть форма с данными на студента долж- на появляться на экране монитора с уже сформированным значением, которое лишь в некоторых случаях нужно будет изменять. Для этого в FDI файла «Студенты», в атрибут «input con- version» (см. рис. 1) следует поставить код «call Home», где «Home» – имя подпрограммы, которая заносит значение «Общежи- тие» в поле № 7 (рис. 2). 001 sub Home(Item) 002 if access(16) then Item<7> = "Общежитие" 003 return Рис. 2. Подпрограмма «Home» Поясним текст этой подпрограммы. Она написана на языке встроенных процедур СУБД D3 FlashBasic. У всех процедур, вы- зываемых из FDI, единственный параметр – запись области данных файла в формате динамического массива. В данном случае параметр «Item» представляет запись области данных файла «Студенты». Динамический массив СУБД D3 в общем случае предполагает использование трех целочисленных индексов «Item<i,j,k>», где 6 i – номер поля записи; j – номер значения поля; k – номер подзна- чения значения. Каждый из этих индексов априорно не ограничен каким-либо максимальным числом, отсюда в названии слово «ди- намический». В тексте подпрограммы «Home» использована функция «access(16)», которая проверяет, формируется ли новая запись и, если «да», то полю № 7 динамического массива присваивается зна- чение по умолчанию – «Общежитие». Обратите внимание на атрибут «dictionary-code» (см. рис. 1) со значением «d», которое соответствует записи описания файла (FDI). Значение «a» соответствует записи описания атрибута (ADI). 1.2. Коды обработки в атрибуте «correlative» FDI Код, помещенный в атрибут «correlative» FDI, срабатывает непосредственно перед занесением записи, сформированной или модифицированной UPDATE-процессором, в файл базы данных. Если используется код обработки «call», который вызывает под- программу, то в последней можно изменить любой элемент дина- мического массива, представляющего запись, и именно с этими изменениями запись будет помещена в файл базы данных. Код обработки «call» срабатывает всегда, формируется ли но- вая запись или модифицируется старая. В отличие от этого код об- работки «id», с помощью которого автоматически создаются идентификаторы (ключи) записей, срабатывает только при форми- ровании новой записи. Атрибут «correlative» FDI практически всегда нагружается несколькими кодами обработки при создании баз данных, управ- ляемых СУБД D3. В рамках выполнения лабораторных работ обя- зательно должны быть использованы коды: «b», «id», «call». На рис. 3 приведен фрагмент записи описания файла «Студен- ты» для атрибута «correlative». Из рисунка видно, что атрибут имеет несколько значений: сначала выполняется подпрограмма 7 «Проверка», затем присваивается ключ записи и только потом осуществляется связь по «мосту» с файлом «Группы». DICT Студенты ‘Студенты’ … dictionary-code d … correlative call Проверка ida1 bГруппы;6;3 Рис. 3. Фрагмент записи описания файла «Студенты» Рассмотрим последовательно все эти коды. Подпрограмма «Проверка» проверяет наличие значения в поле №6, в котором помещается идентификатор группы. Необходимость проверки вызвана тем, что в запись файла «Группы» по мосту пе- редается идентификатор студента. Код подпрограммы представлен на рис. 4. mybp 'Проверка' size = 259 01 sub(Item) 02 if Item<6> = "" then 03 execute "cls" 04 crt @(10,3):"Не указан ItemID группы!" 05 crt @(10,4):"Студент будет помещен в группу с ItemID <Резерв>" 06 crt @(10,5):"Нажмите <Enter>!" 07 inkey 08 Item<6> = "Резерв" 09 end 10 return Рис. 4. Подпрограмма «Проверка» В подпрограмме «Проверка»: • оператор «execute» выполняет внешнюю программу, в данном случае «cls» – очистку экрана; • оператор «crt» выводит на экран заданные строки; • оператор «inkey» останавливает подпрограмму и ждет на- жатия клавиши «Enter». 8 Код «ida1» (см. рис. 3) формирует ключ записи из значения поля № 1. Получение ключа записи из значения поля – не очень удобная практика, так как при формировании записи пользователь может ввести в поле № 1 значение, совпадающее с уже имеющимся ключом. В этом случае автоматически сформируется уникальный ключ, равный количеству секунд, начиная с полуночи. Более под- робно о коде «id» можно узнать в электронном «help». Код «bГруппы;6;3» (см. рис. 3) моделирует программный триг- гер, который срабатывает при сохранении записи файла «Студен- ты». Пользователи СУБД D3 называют его «мостом», с движением от файла «Студенты» к файлу «Группы». Параметр «6» – номер поля в записи файла «Студенты», в котором стоит идентификатор группы. Параметр «3» – номер поля в записи файла «Группы», в которое, в качестве текущего значения, будет введен идентифика- тор студента. Заметим, что если говорится, например, о записи фай- ла «Студенты», то речь всегда идет об области данных файла. На рис. 5 представлен пример срабатывания «моста». Запись файла Запись файла Запись файла «Группы» «Студенты» «Группы» «ДО» «ПОСЛЕ» 000 127 000 К06-221 000 К06-221 001 127 001 К06-221 001 К06-221 002 Миненок 002 22 002 22 003 Александр 003 121]123]125 003 121]123]125]127 004 Евгеньевич 005 7834 … Рис. 5. Состояние записи файла «Группы» до и после сохранения записи файла «Студенты» с ItemID = 127 Код «b» (bridge) имеет несколько модификаций параметров. Более подробно об этом коде можно узнать в электронном «help». 9 2. Коды обработки, используемые в ADI В словаре любого файла базы данных, работающей под управ- лением СУБД D3, для каждого атрибута, используемого при обра- ботке области данных, создается отдельная запись описания атри- бута (Attribute Defining Item - ADI). Атрибут в модели данных СУБД D3 – это функциональное пре- образование значения поля, к которому привязывается атрибут. Запись описания атрибута как раз и определяет это функциональ- ное преобразование с помощью кодов обработки. Так как поля за- писей в файлах СУБД D3 в общем случае – многозначные, то и ат- рибуты многозначны. На большинство кодов обработки, помещенных в ADI, реагиру- ет как процессор UPDATE, так и процессор ACCESS. Коды обра- ботки в записи ADI помещаются в атрибуты «input conver- sion», «output conversion» и «correlative». 2.1. Коды обработки в атрибуте «input conversion» ADI Код, помещенный в атрибут «input conversion» записи описания атрибута, осуществляет преобразования значений, вво- димых в поле области данных файла. Так как речь идет о вводе, то на эти коды непосредственно реагирует процессор UPDATE. Про- цессор ACCESS реагирует опосредованно. Рассмотрим пример. В СУБД D3 «дата» имеет стандартное внутреннее и несколько внешних представлений. Во внутреннем представлении даты сохраняются в записях файлов базы данных, в полях динамических массивов. Во внешнем представлении даты вводятся в отведенное для них место на экране монитора, а выво- дятся в отчетах. Во внутреннем представлении дата – это строка цифр, представляющее десятичное число, причем нулю (0) соот- ветствует дата 31 декабря 1967 года. Пусть в поле № 5 записи области данных файла «Студенты» указывается день рождения студента. На рис. 6 видно, что в атри- бут «input conversion» помещен код «d». Этот код инициали- зирует преобразование, пример которого представлен на рис. 7. 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.