- •Казахский национальный технический университет имени к.И.Сатпаева
- •1 Учебная программа дисциплины – Syllabus
- •1. 1 Данные о преподавателях:
- •1.2 Данные о дисциплине:
- •Выписка из учебного плана
- •1.5 Цели и задачи дисциплины.
- •Перечень и виды заданий и график их выполнения:
- •Виды заданий и сроки их выполнения
- •1.7 Список литературы
- •Распределение рейтинговых баллов по видам контроля
- •Оценка знаний студентов
- •1.9 Политика и процедура.
- •2 Содержание Активного раздаточного материала
- •2.2 Конспект лекционных занятий
- •Тема 1. Введение в субд.
- •Тема 2. Языковая среда реляционных субд.
- •Дополнительная литература: 9[22:28].
- •Тема 3. Работа с файлами в субд.
- •Тема 4. Стандартные функции в субд.
- •Функции для обработки файлов
- •Тема 5. Программирование в субд.
- •Тема 6. Язык реляционных баз данных sql.
- •Тема 7. Запросы sql.
- •Ниже приведен сокращенный вариант команды select с опцией into/to, используемый в Visual FoxPro:
- •Тема 8. Сложные запросы sql.
- •Дополнительная литература: 10[1025:1040].
- •Тема 9. Подзапросы в sql.
- •Дополнительная литература: 10[1028:1040].
- •Тема 10. Объектно-ориентированное программирование (ооп) в субд.
- •Дополнительная литература: 10[944:960].
- •Тема 11. Визуальное программирование в субд.
- •Дополнительная литература: 10[958:962].
- •Тема12. Инструментальные средства субд.
- •Тема 13. Архитектура клиент-сервер в технологии бд.
- •Дополнительная литература 9[159:164], 10[81:83,792:794].
- •Тема 14. Архитектура сбд.
- •Дополнительная литература: 9[28:36], 10[65:88].
- •Тема 15. Модели данных.
- •Дополнительная литература: 9[56:70],10[56:58].
- •2.3 Планы лабораторных занятий
- •Контрольные вопросы:
- •Контрольные вопросы:
- •Контрольные вопросы:
- •Дополнительная литература: 10[1028:1040]. Контрольные вопросы:
- •Дополнительная литература: 10[1028:1040]. Контрольные вопросы:
- •Контрольные вопросы:
- •Контрольные вопросы:
- •2.4 Планы занятий в рамках самостоятельной работы студентов под руководством преподавателя (срсп)
- •2.5 Планы занятий в рамках самостоятельной работы студентов (срс)
- •2.6 Тематика письменных работ по курсу Тематика курсовых работ
- •Рекомендуемая литература
- •2.7 Тестовые задания для самоконтроля с указанием ключей правильных ответов
- •A) пять;
- •C) один;
- •Правильные ответы
- •Перечень экзаменационных вопросов по пройденному курсу
- •Глоссарий
- •Учебно-методический комплекс дисциплины для студентов
- •Системы управления базами данных
Дополнительная литература: 9[22:28].
Контрольные вопросы
1. Какие языковые средства можно выделить в составе СУБД.
2. Перечислите основные типы полей, применяемые в СУБД.
3. Какая команда позволяет создать или изменить структуру БД.
4. Какие команды позволяют добавлять записи в таблице данных.
5. Какие команды позволяют удалить записи в таблице данных.
Тема 3. Работа с файлами в субд.
Завершение работы с СУБД в языке программирования xBase осуществляется командой:
QUIT
В результате выполнения этой команды происходит закрытие всех файлов. Выход из системы без команды QUIT может привести к повреждению открытых файлов и потере информации.
Информацию об имеющихся файлах в системе можно получить, используя команду:
DIR [*.*]
При этом на экран монитора выводятся имена всех файлов с расширением. Если отсутствует необязательный параметр [*.*], то выводятся имена файлов, имеющих расширение .DBF. Необязательный параметр [*.*] позволяет выводить файлы, имеющие определенное расширение, если оно будет указано вместо «*» после точки (например, *.PRG; *.DBF; *.IDX и т. д.).
Аналогичную информацию можно получить, используя команды DISPLAY или LIST в определенном формате:
DISPLAY FILES [ON<дисковод/каталог>] [LIKE<шаблон>][TO PRINT]
или
LIST FILES [ON< дисковод / каталог > ] [LIKE <шаблон>][TO PRINT]
Этот формат используется для вывода списка файлов, сохраненных на диске <дисковод> или в каталоге <каталог>. Можно просмотреть все файлы или файлы, соответствующие приведенному трафарету <шаблон>. При отсутствии необязательных параметров ON <дисковод/ каталог> или LIKE <шаблон> будет выводиться список всех файлов баз данных с указанием количества записей и времени последней корректировки. Значение символов трафарета <шаблон> зависит от типа используемой операционной системы. Они различны для MS DOS, UNIX и т.д. Более подробную информацию по этому вопросу можно найти в руководстве по соответствующей операционной системе. Оператор TO PRINT используется для вывода информации о файлах на принтер.
Работать с записями в таблице данных можно, если она открыта для пользователя, т.е. если она является активной. Активизация имеющейся таблицы данных осуществляется использованием команды:
USE <имя_файла_таблицы_данных>
При этом открытая ранее свободная таблица данных закрывается. При открытии таблицы, входящей в состав БД, автоматически открывается и БД, ее содержащая. Закрытие активной таблицы данных можно выполнить командой USE (без параметров).
Для перемещения в таблице данных используется так называемый внутренний указатель записи, в дальнейшем - указатель записи.
Указатель записи – это некоторое средство, позволяющее отмечать запись в таблице данных, с которой можно работать. Отмеченная запись является текущей записью.
Для перемещения указателя записи используются следующие команды:
<n> - установить указатель записи на n-ю запись БД;
GOTO <n> - установить указатель записи на n‑ю запись БД;
GO TOP – установить указатель записи на первую запись БД;
GO BOTTOM – установить указатель записи на последнюю запись БД;
SKIP [k]/[-k] – переместить указатель записи на k (или –k) записей относительно его последней позиции.
Найти необходимые записи в активной таблице данных можно командой LOCATE:
LOCATE [<диапазон>] [ FOR/WHILE <условие>]
Эта команда выполняет поиск в указанном диапазоне первой записи, удовлетворяющей указанному условию, но найденную запись на экран не выводит. Просмотр найденной записи осуществляется другими командами (например, командой DISPLAY). Диапазоном по умолчанию является ALL (все).
Для продолжения поиска по указанному условию и в указанном диапазоне используется команда без параметров: CONTINUE.
С файлами можно выполнять различные операции: копировать, переименовывать, уничтожать и т.д.
Копировать можно как закрытый, так и открытый файл.
Команда копирования из закрытого файла любого типа <файл1> в несуществующий файл <файл2> имеет формат:
COPY FILE < файл1 > TO < файл2>
Имена файлов должны быть указаны с расширением. При этом создается новый файл < файл2 >, являющийся копией файла < файл1>. Эта форма команды COPY не может быть использована с открытыми файлами.
Команда копирования из открытого файла имеет формат:
COPY TO < файл > [< диапазон> ] [ FIELDS < список_полей > ]
[FOR/WHILE <условие > ] [ TYPE < тип_файла>]
В этом формате команды COPY данные копируются из активного в текущий момент файла таблицы данных в новый файл. Диапазоном действия команды по умолчанию является ALL. Если не указаны необязательные параметры FOR/WHILE <условие>, в файл копируются все записи. В противном случае копируются только записи, удовлетворяющие указанному условию.
Если не указан параметр FIELDS <список_полей>, то копируются все поля таблицы данных. Если не указано расширение имени файла, подразумевается расширение .DBF.
Можно копировать только структуру (или часть структуры) активной таблицы данных (не копируя записи). При этом создается новый файл таблицы данных с данной структурой. Команда копирования структуры таблицы в новый файл имеет формат:
COPY STRUCTURE TO <файл> [ FIELDS <поля>]
Если используется параметр FIELDS, то копируется только часть структуры, включающая поля, перечисленные в параметре FIELDS. Иначе структура копируется полностью.
В языке программирования xBase существует команда, позволяющая параметры структуры активной таблицы данных представить в виде записей в специально созданном файле формата *.DBF. Формат этой команды:
COPY TO <файл2> STRUCTURE EXTENDED
Структура файла таблицы данных, активного в текущий момент, копируется в файл <файл2> в виде записей таблицы. В дальнейшем эти записи могут быть отредактированы соответствующим образом. В этом случае файл <файл2> имеет фиксированную структуру и содержит поля FIELD_NAME (имя поля), FIELD_TYPE (тип поля), FIELD_LEN (длина поля), FIELD_DEC (точность поля). Значения записей в файле <файл2> соответствуют параметрам структуры таблицы данных.
Полученный файл может быть в дальнейшем использован для создания структуры нового файла таблицы данных. Для этого используется команда CREATE FROM. Формат команды:
CREATE < файл1 > FROM < файл2>
Эта команда создает новый файл < файл1 > со структурой, описанной в файле <файл2 > (<файл2> должен быть активным). После выполнения команды активным становится новый <файл1>, а <файл2> - закрывается.
Команда переименования закрытого файла имеет формат:
RENAME < старое_ имя_файла> TO <новое_ имя_файла>
Команда RENAME используется для переименования файла и назначения ему вместо его текущего имени нового имени. Имена файлов указываются обязательно с расширением. Могут быть приведены указатели дисководов и каталогов, если файлы расположены не в текущем каталоге. Для работы команды RENAME файл с новым именем не должен существовать, а файл со старым именем должен существовать и быть закрытым.
Закрытый файл можно уничтожить. Команда уничтожения файла имеет формат:
DELETE FILE <имя файла>
Удаляемый файл не может в момент выполнения команды DELETE быть активным, т.е. находиться в области USE, иначе произойдет ошибка. Имя файла должно указываться с расширением и файл должен быть закрыт.
Для удаления закрытого файла можно использовать также команду ERASE. Формат команды:
ERASE <имя_файла>
Расширение имени файла должно быть указано в составе имени файла.
Вышеуказанные команды уничтожения файлов можно использовать для удаления файлов различных типов, а не только таблиц данных.
Сортировка и индексирование проводятся с целью упорядочения записей в таблицах данных в алфавитном, хронологическом или числовом порядке (в зависимости от типа поля, по которому выполняется сортировка или индексирование). При сортировке создается новый отсортированный файл, куда заносятся записи (или часть записей) из сортируемого файла в определенном порядке. Команда сортировки активной таблицы данных имеет формат:
SORT <диапазон> TO <файл> ON <поле1> [/A][/C][/D] [,<поле2> [/A][/C][/D]...] [FOR/WHILE <условие>] [FIELDS <список_полей>]
Сортировка идет по полю – ключу, указанному в параметре ON <поле1>. Отсортированная таблица записывается в файл с расширением .DBF. При наличии поля типа Memo при сортировке создается также файл с расширением .FPT. Сортировка может выполняться по возрастанию (/A), по убыванию (/D), с игнорированием верхнего и нижнего регистра (/C). При этом рассматриваются ASCII – коды символов поля <поле1>. Параметр /C может быть использован совместно с параметрами /A или /D. Если вводятся два параметра, используется только одна косая черта (например, /AC). При отсутствии параметров /A, /C, /D сортировка идет по возрастанию. Диапазон по умолчанию имеет значение ALL.
Параметры FOR/WHILE <условие> задают условия выбора записей из таблицы БД. Параметр FIELDS указывает поля, которые должны войти в создаваемую отсортированную таблицу данных. Имя отсортированного файла имеет расширение .DBF. Возможна сортировка по нескольким полям. В этом случае они указываются в команде через запятую:<поле1>, <поле2> и т.д.
В случае необходимости экономии памяти вместо команды SORT используется команда INDEX, создающая индексный файл. В индексном файле хранятся только указатели номеров записей (индексы) в упорядоченном виде, но записи там отсутствуют. Формат команды:
INDEX ON <поле1> [+<поле2>[+…]] TO <индексный_файл> [FOR/WHILE <условие>]
Команда INDEX используется для формирования индексного файла для активного файла таблицы БД. Индексирование (упорядочивание) записей идет по полю – ключу, указанному в параметре ON <поле1>. Индексирование проводится по возрастанию ASCII-кодов символов поля <поле1>. Создаваемый индексный файл будет иметь расширение имени .IDX. Индексирование можно проводить по нескольким полям. В этом случае они должны быть однотипны (или приведены к одному типу) и в команде их имена надо объединить знаком «+». Упорядочение будет проводиться сначала по полю <поле1>, внутри каждой группы <поля1> - по полю <поле2> и т.д.
При работе с индексным файлом он должен быть подключен к активной таблице данных, для которой создавался. При индексации создаваемый индексный файл автоматически подключается к файлу таблицы БД. Отключение индексного файла осуществляется автоматически при закрытии активного файла таблицы БД или командой SET INDEX TO (без параметров). Подключение индексного файла к активной таблице данных осуществляется командой:
SET INDEX TO <имя_индексного_файла>
Подключение индексного файла можно также осуществить при активизации таблицы данных командой:
USE <файл_таблицы_БД> INDEX <имя_индексного_файла>
Главное назначение индексирования – это ускорение доступа к данным. Поэтому аппарат индексирования широко применяется в реляционных системах, одним из недостатков которых является медленный поиск данных. В проиндексированном файле можно осуществить быстрый поиск необходимых данных по полю, по которому проводилось индексирование (по ключу). При этом индексный файл должен быть подключен и используются команды FIND или SEEK. Формат команды FIND:
FIND <символьное_выражение>/<n>
Команда FIND устанавливает указатель записей на номер первой записи в активной таблице данных с подключенным индексным файлом, для которой значение поля – ключа индексирования соответствует приведенной символьной строке <символьное_выражение> или численному значению <n>. Соответствие должно быть полным, если не была выполнена команда установки SET EXACT OFF .
Если необходимо провести поиск по содержимому переменной памяти, перед переменной памяти необходимо указать функцию макроподстановки (&).
Команда SEEK аналогична команде FIND. Однако команда SEEK не ограничена выполнением поиска символьной строки или численного значения, а может быть использована для поиска произвольных выражений. Формат команды SEEK:
SEEK <выражение>
В случае символьного выражения <выражение> ограничивается одиночными кавычками ' ', двойными кавычками “ “ или квадратными скобками [ ], числовое выражение указывается без ограничителей, выражение типа даты ограничивается фигурными скобками, логическая константа ограничивается точками.
Основная литература: 1[105:107], 4[15:19], 7[82:90].
Контрольные вопросы:
1. Перечислите команды, позволяющие выполнить операции с файлами.
2. С какой целью используются сортировка и индексирование файлов.
3. Какая команда позволяет создать файл с записями активной БД, отсортированный в алфавитном порядке по определенному полю.
4. Какой командой осуществляется создание индексного файла.
5. Назовите особенности использования индексного файла.
