Базы данных и информационные системы
Вид материала | Документы |
- Методическое пособие по курсу «Базы данных и информационные системы» 2011, 489.34kb.
- Информационные системы, использующие базы данных: оборудование, программное обеспечение,, 102.98kb.
- Евдокимова Алексея Анатольевича, 1980 г р. Ключевые слова Программист-разработчик:, 75.55kb.
- Варианты предметных областей для курсовой работы по дисциплине «Базы данных и информационные, 245.82kb.
- 1 научиться создавать таблицу базы данных в режиме таблицы, 54.71kb.
- Ms access Создание базы данных, 34.31kb.
- Программа дисциплины «Базы данных», 380.05kb.
- Программа дисциплины «Базы данных», 395.38kb.
- Лекция 2 10. Полнотекстовые базы данных, 133.46kb.
- Программа курса для направления 230200. 68 «Информационные системы. Программа Базы, 65.82kb.
Товар
Категория
Заказ
Предприятие Покупатель
Команды установки работы FoxPRO.
- Set status on – для установке на экране статус – строки (по умолчанию off), полезная информация для пользователя:
имя открытой базы
номер текущей записи
активный диск
- Set talk on/off – (по умолчанию off) – когда выполенние многих команд отображается на экране.
- Set date German – (ДД.ММ.ГГ) – установка формата даты.
- Set bell on/off – включение, отключение звукового сигнала
- Sset confirm on/off – включение, отключение автоматического перехода курсора на следующее поле.
- Set default to [<список путей>] – задает список путей не обнаруженных в данной директории.
Выяснить имя текущей директории можно с помощью функции:
SYS (2003) – текущая директория (полный путь)
SYS (2004) – полный
SYS (2006)
СУБД FOXPRO.
ВВЕДЕНИЕ.
В автоматизированной обработке массовой информации на ЭВМ появилась потребность в специальных языках обработке данных.
Технические характеристики и особенности СУБД.
Fox PRO основными файлами системы управления базами данных:
Fox PRO.EXE, Fox PRO.OVL
Fox PRO.INT - файл языковых установок для локализации пакета
CONFIG.FP – файл конфигурации Fox PRO
Fox USER.DBF, FOX USER.FPT – файлы внутренних установок Fox PRO
Fox HELP.DBF, Fox HELP.FPT, Fox HELP.CDX - HELP к системе Fox PRO и другие.
Технология и структура данных в СУБД.
Все данные хранятся в файлах. Файлы данных, или базы данных, представляют собой таблицу.
База данных
Поле 1 | Поле 2 | Поле 3 | … | Поле N | |
| | | | | Запись 1 |
| | | | | Запись 2 |
| | | | | Запись 3 |
Каждая строка (запись) содержит некоторые сведения об описываемом объекте. Каждая клетка записи называется полем записи. Все записи базы данных имеют идентичную, заданную пользователем структуру и размеры.
ПРИМЕР: записи базы кадры
Имеет поля, Фамилия, год рождения, семейное положение и т.д. на каждого работника по записи в базе.
Типы файлов.
В Fox PRO можно создавать и обрабатывать несколько типов дисковых файлов. Каждому файлу дается имя. Расширение определяет тип файла. Для всех файлов Fox PRO установлены стандартные расширения. Основные типы:
имя. DBF – файл базы данных
имя. FPT – файл примечаний, хранящей мемо-поля базы данных
имя. IDX – индексный файл
имя. CDX – мультииндексный файл
имя. PRG - командный, программный файл
имя. MEM – файл для сохранения временных переменных
имя. FXP – откомпилированный командный файс PRG
имя. APP – объединенный откомпилированный командный файл
Файлы БД типа DBF являются основными носителями данных версия 2.5 Fox PRO
Число записи в файле до миллиарда
Размер записи (в байтах) – до 65500
Число полей в записи – до 255
Число одновременно открытых баз – до 25/255
Типы и размеры полей (в байтах)
- символьные поля – до 254
- числовые поля – до 20
- поля дат – 8
- логические поля – 1
Символьные поля (типа С) допускают ввод любых алфавитно-цифровых символов, знаков препинания и т.д.
Числа в БД хранятся в числовых полях двух форматов с фиксированной и плавающей точками (типы N и F).
Логические поля могут иметь только два значения .Т. (TRUE – истина) и .F. (False – ложь) или .Y. .N. Разрешается вводить и строчные буквы.
Поля дат допускает ввод только цифр. Ввод сопровождается автоматическим контролем. Поля дат и логические поля имеют стандартную длину, длины остальных полей определяются пользователем.
Поля примечаний (тип М) имеют произвольную длину в каждой записи.
Файл примечаний имеет одинаковое с файлом БД имя, но расширение FPT. Создается одновременно вместе с полями БД. В каждой записи файла DBF имеется ссылка фиксированной длины 10 на каждое имеющееся в базе мемо-поле.
Файлы примечаний подчиненными по отношению к файлам DBF.
Создание таблиц.
Тип файла .Таблица/DBF
Наименование полей.
- может содержать до 10 символов
- может содержать буквы русские и латинского алфавита, цифры, знаки препинания
- два поля в одной таблице не могут иметь одинаковые наименования
- недопустимо: , [ ] "> - пробел
ТЕМА: Создание файла БД.
Создание файла БД включает два этапа: создание структуры файла и заполнение данными.
Структура файла БД типа DBF создается команда
- CREATE имя файла CREATE COSTOMER
Расширение имени файла DBF указывать необязательно, т.к. оно добавляется автоматически.
Если файл создается не на активном в данный момент диске или директории, то нужно указать полный путь.
Изменить структуру созданной базы данных можно командой:
- Modify Structure
Модифицированный файл должен быть предварительно открыт
- Use имя файла открытие файла БД
Use без параметров закрывает базу данных
- Close Database
Закрывает все файлы БД и индекс файлов
- Close all
Закрытие вообще всех файлов
Добавление файла новыми записями осуществляется командой
- append (blank)
Необязательная фраза blank означает, что новая запись остается пустой и не будет отражена на экране.
После ввода текущей записи автоматически происходит доступ к следующей записи.
Для того, чтобы войти в мемо-поле, необходимо на него поместить курсор и нажать Ctrl – Home или дважды кнопку мыши. Выход из мемо – поля сохранением – клавиши Ctrl – W или Ctrl - End, без сохранения – Escape (будет вопрос – предупреждение).
Выход из окна Append осуществляется так же Ctrl – W или Ctrl – End.
Листание по записям осуществляется Pq Up/Pq Dn/
Допускается также пометка записей к удалению нажатием Ctrl – Т.
Окно редактирования.
Команды APPEND, INSERT, EDIT, CHANGE, BROWSE.
Перед использованием команды редактирования необходимо наличие открытой БД.
Стандартное окно редактирования имеет две формы. Для первых четырех команд оно будет выглядеть одинаково, – все поля БД располагаются вертикально. Назовем форму такого окна CHANGE – окном.
Другую форму предъявления данных осуществляет команда BROWSE (Browse – окно).
Здесь поля каждой записи располагаются горизонтально – колонками.
Добавление новой записи осуществляется нажатием клавиш Ctrl – N (кроме команды APPEND).
Можно установить режим копирования в новую запись всех (ON) полей из текущей (не обязательно последней) записи командой.
- SETCARRY ON/OFF
По умолчанию OFF. Можно установить и выборочное копирование только указанных (полей) командой
- SET CARRY TO [<поля>].
BROWSE – окно.
Один из наиболее мощных и удобных инструментов доступа к данным.
Формат команды:
BROWSE
[ FIELDS<поля>]
[FOR<условие 1>]
[FREEZE<поля>]
[KEY<выр. 1> [,выр. 2>]]
[LAST]
[LEDIT/REDIT]
[LOCK<выр. №1>]
[LPARTITION]
[NOAPPEND]
[NOCLEAR]
[NODELETE]
[NOEDIT/NOMO DU]
Управление доступом к полям базы.
Fields <список полей> - перечень полей. По умолчанию отображаются все поля БД. Имя каждого поля может сопровождаться ключами, определяющими режим доступа к нему:
:R – поле доступно только для чтения, однако курсор в поле допускается;
:V= <выр. L 1> - контроль выхода из поля. Проверка вводимых данных выполняется по <выр. L 1> после изменения содержимого поля. Если <выр. L 1> = Т., ввод считается правильным, и курсор переходит в следующее поле. Если .F. – выпадает стандартное сообщение, которое может быть заменено на собственное, заданное с параметром :E.
:E. = <выр. С 1> - выдача собственного <выр. С 1> сообщения на неправильный ввод данных
:F. – проверка не только вводимых, но и уже существующих данных независимо от способа выхода из поля.
:Р. = <выр. С 2> - задание формата отображения данных
:В. = <выр. 1>, <выр. 2> - указание границ чисел и дат. Возможно, указать только одну из границ, но запятая должна присутствовать обязательно.
:Н. = <выр. С 3> - указание собственного заголовка поля. Если заголовок не нужен вообще, следует в качестве <выр. С 3> использовать пробел (").
:W = <выр. L 2> - контроль ввода в поле. Запрещен вход и редактирование, если <выр. L 2> =F. И разрешен, если <выр. L 2> = .Т.
ПРИМЕР №1
Есть БД STUD с полями. Пусть данные в таблице будут следующими:
NZ – номер зачетной книжки
FAM - фамилия
GR - группа
POL - пол
ST – размер степендии
KURS – курс
Настроить окно редактирования таким образом, что:
- поля имели заголовки
- заголовок окна: БД STUD
- проверка на ввод пол «М» и «Ж»
- поле NZ не равен «0»
- размер стипендии > GO
- USE STUD (открытие БД)
Browse title "база данных STUD"
Fields NZ:H = "№ зачетной книжки" :12;
:V = NZ > 0,;
FAM:H = "фамилия":25,;
GR:H = "группа":7,;
POL:H = "пол":5: V = POL = "M".or.POL = "Ж"
:E = "допустимые значения М и Ж",;
ST:H = "стипендия":12:V = ST > 60: P = "# # #",;
KURS:H = "курс":4:B = 1.4
- Ввести расчетное поле: подсчитать стипендию за 12 месяцев; добавить какое-то расчетное поле
- SUM = ST*12:H:"сумма":10:p = "# # # #"
(в базе его не будет, а будет только на экране)
- Выдать только те записи, у которых GR=33
USE STUD
BROWSE FOR GR=33 (остальное то же самое)
- W – разрешение (запрет корректировки или ввода) данных. Если опция возвращает значение «ложь» то курсор не устанавливается в данном поле.
В опциях :V и :W допускается использование функций, определенных пользователем.
Вычисляемые поля.
ПРИМЕР 2
В список полей могут включаться вычисленные поля.
Отбор данных.
Важные опции позволяющие ограничить доступ в базе только к определенному множеству записей.
FOR <условие 1> - устанавливает фильтр записей для базы.
ПРИМЕР 3
KEY <выр. 1>, [<выр. 2>] – ограничение действия команды диапазонной ключевого выражения <выр. 1> и <выр. 2> активного индексного файла.
ПРИМЕР 4
USE STUD
INDEX ON GR TO STUD GR (создается индексный файл)
Browse key 33, 32 studgr. idx}
Разделение окна.
ПРИМЕР 5
Sele 1
Use karta index kart
BROWSE Fields Skl: H = "склад": B=1.9,: W=tost = 0,;
Nomz: H = "Hom, №": V = nomz > 0: W = tost = 0,;
Nomb: H = " ":W = tost = 0,;
Nam: H = "наименование",;
Cen: H = "цена",;
Tost: H = "остаток": R,;
PRL = cen*tost: H = "сумма": P="999999.99
VALID cen > 0.00 error "введите цену"; {Контроль редактирования записей}
Partition 10 LEDIT LPARTITION;
FOR skl = 5 {отбор данных}
PARTITION <выр. №> - представление записей БД в виде таблицы и одновременно в виде формата команды CHANGE, граница будет проходить по колонке номер <выр. №>
LEDIT – при выводе окна Browse левая или правая выводятся в режиме редактирования
LPARTITION – курсор устанавливается в левой половине раздельного окна (по умолчанию правой)
Ограничение возможности редактирования данных.
NODELETE
CLOSE DATA BASER
RETURN
NODELETE – пометка к удалению записей БД с помощью клавиш Ctrl + T или мышью невозможна.
Работа с индексами.
Стандартные (.idx) и составные (.cdx) (мультииндексный) компактные (.idx).
Компактные одиночные индексы могут быть включены в составной индекс в виде индексных входов или тэгов (TAG). Для создания компактного одиночного индекса в команде INDEX ON или REINDEX (при переиндексации) COMPACT.
Использование составных индексов более эффективно по следующим причинам:
- файловая система открывает только один файл
- модификация составного индекса происходит быстрее, чем множества отдельных индексов.
Все тэги составного индекса являются активными и модифицируются при каждом изменении ключевого выражения.
Для работы с функциями и командами поиска после открытия составных индексных файлов необходимо установить главный тэг при помощи команды SET OR DER TO.
Один файл БД может быть проиндексирован по нескольким полям, и иметь любое число индексов.
Индексные файлы занимают некоторое место на диске, но гораздо меньше, чем при сортировке.
В FOX PRO можно создать 2 типа индексных файлов.
- Обычный индекс функции с расширением .IDX (одно-индексный файл).
- Мультииндексный файл с расширением .CDX
Такой файл может хранить сразу несколько простых индексных файлов.
Каждый отдельный индекс называется ТЭГ. Каждый ТЭГ имеет свое имя.
Мультииндексные файлы могут быть 2-х видов:
а) структурный мультииндексный файл с именем как БД
б) обычный мультииндексный файл с произвольным именем
Использование его предпочтительно, т.к. уменьшает число одновременно открытых файлов, а так же ускоряет доступ к файлам.
ПРИМЕР
- Создать компактный одно-индексный файл по ключу NZ.
USE STUD
INDEX ON NZ TO STUD NZ. IDX COMPACT
Открыть простой индексный файл
USE STUD INDEX TO. STUD NZ (первоначально открыть базу)
REINDEX – переиндексация открытого индекса.
- Создать мультииндексный файл с ключами
а) NZ;
б) NZ и GR
в) INDEX ON NZ TAG NZ OF STUD. CDX
г) INDEX ON STR (NZ) + STR (GR) TAG NZ CR OF STUD. CDX
У мультимедийных файлов STUD. CDX 2 индекса с именем
TAG – NZ
TAG – NZ GR
(во втором случае индексные поля проводятся в системе формат функции STR(I)).
Удаление данных.
В FOX PRO имеются несколько команд удаления данных
- ERASE <файл> - удаление любого не открытого в данных момент файла. Расширение имени обязательно. DELETE FILE [<файл>] – аналогичная.
- ZAP – удаление всех записей в активном файле БД с сохранением его структуры.
- DELETE [<границы>] [WHILE<условие>] [FOR<условие>] – пометка к удалению записей в указанных границах и/или отвечающих указанным условиям.
DELETE без параметров помечаем только одну текущую запись (в окне редактирования Ctrl – T).
- PACK [MEMO] [DBF] – физическое удаление помеченных ранее записей и сжатие файла. После выполнения команды указатель записей устанавливается в начало базы. Если имеются открытые индексы, они перестраиваются. По умолчанию упаковываются DBF и FPT.
- RECALL [<границы>] [WHILE<условие>] [FOR<условие>] – снятие пометок к удалению. RECALL без параметров действует только на текущую запись.
Просмотр данных.
DISPLAY [<границы>] [<поля>]
[WHILE<условие>]
[FOR<условие>]
[OFF]
[TO PRINT/TO FILE <файл>],
здесь:
OFF – указание на то, что номер записи не выводится;
TO PRINT – результат команды выдается на принтер,
FILE <файл> - или в файл, по умолчанию – экран
Записи, помеченные к удалению, команда выдает со звездочкой (по умолчанию SET DELETE OFF)
- SET DELETE ON – записи делаются невидимыми и не участвуют в обработке данных
Выдачу имен полей можно подавать командой:
- SET HEADING OFF
Пример: SET DELETE ON SET HEADING OFF
USE KADR
DISPLAY ALL OFF FOR POL = “Ж” TO PRINT
(выдача всех записей, без номера записи женщин на принтер)
Перемещение в базу данных.
При работе с базой данных необходимы средства перемещения внутри ее. Запись, на которой находится указатель записи, является текущей и только к ней в данный момент возможен непосредственный доступ.
Имеется несколько разновидностей команд, изменяющих положение указателя записей.
- Go top [ in <область>] – переход к самой первой записи файла;
- Go botton [ in <область>] – переход к самой последней записи файла;
- Go <выр.> [ in <область>] – переход к записи c указанным в <выр.> номером;
- SKIP <выр.> [ in <область>] – переход к записи, отстоящей от текущей на указанное в <выр.> число записей
(может быть и отрицательным!)
(переход указателя назад)
SKIP без параметров – переход на следующую запись (SKIP 1)
in <область> - указывает над базой из какой области должна выполниться команда
Функции.
Для контроля положения указателя и наличия записей в файле предусмотрены функции:
- RECNO ([<область>]) - указывает номер текущей записи;
- RECCOUNT ([<область>]) – выдает общее число записей в файле базы данных, включая записи, помеченные к удалению;
- EOF ([<область>]) – функция конца файла. Она истинна (.Т.), если конец достигнут, и ложна (.F.) в противном случае;
- BOF ([<область>]) – то же, но для начала файла.
Функции в FOX PRO имеют характерный синтаксис – скобки, даже если никакого аргумента нет. |
Пример: USE STUD (всего 10 записей)
GO 5 переход к 5 записи
? RECNO ( ) текущая запись 5
? RECCOUNT ( ) количество записей в базе данных = 10
SKIP переход к 6 записи
SKIP – 3 переход к 3 записи
DELETE NEXT 3 пометка к удалению 3, 4, 5 записей
RECALL RECORD 5 снятие пометки с записи 5
PACK сжатие файла с возвратом в начало базы
? RECNO ( ) покажет 1 запись
? RECCOUNT ( ) осталось 8 записей
Изменение данных.
В Fox PRO имеется возможность не только вручную редактировать данные, но и изменять их путем присвоения или вычислений.
- REPLACE [<границы>] [WHILE<условие>] [FOR<условие>]
<поле 1> WITH <выражение>
[<поле 2> WITH <выражение>,…]
[ADDITIVE]
[NOOPTIMIZE]
Эта команда осуществляет множественное изменение полей БД, в том числе и вычисляемые выражения.
ADDITIVE – только для мемо-полей и <выражение> будет записываться в конец поля. Если этот параметр опущен, то старое значение будет замещено <выражением>.
Если не указаны границы, то присвоение будет относиться к текущей записи.
ПРИМЕР 1.
Обнулить в БД STUD значение поля NZ USE STUD
REPLACE all NZ WITH O
Нач. тав = 0
ПРИМЕР 2
USE Kadr
REPLACE ZP WITH ZP·1.2 FOR ZP < 10000
REPLACE ZP WITH ZP+6000 FOR tab = 90
(Увеличивается з.п. на 20%, у кого з.п. < 10000
после з.п. замещается на з.п.+6000 таб. ном. =90
REPLACE ZP WITH IIF (tab = 90, ZP·1.2+6000, ZP·1.2)
FOR ZP < 10000
Очистку полей БД выполняет команда
- BLANK [<граница>] [Fields<поля>]
[WHILE<условие>] [FOR<условие>] [NOOPTIMIZE]
Если отсутствует <граница> или <условие>, очищена будет только текущая запись, BLANK без параметров Fields очищает все поля базы.
Локализация и поиск данных в базе.
Фильтрация данных.
- Set filter to [<условие>]
Здесь <условие> указывает на то, какие именно записи могут быть доступны для обработки.
ПРИМЕР:
USE STUD
Set filter to GR=33
BROWSE
Set filter to отменяет фильтр.
! Перед фильтрацией необходимо указатель записи поставить на начало БД (GO TOP).
Последовательный поиск.
- LOCATE [<границы >] FOR <условие> [WHILE<условие>]
Если отсутствует, то поиск ведется во всем файле с 1-ой записи.
При успешном поиске RECNO ( ) равна № этой записи FOUND( ) значение .Т.
При неудачном
RECNO ( ) равна числу записей в БД +1
FOUND( ) .F.
EOF ( ) значение .Т. – файл закончен
Продолжение поиска
- CONTINUE
ПРИМЕР
В базе STUD найти все фамилии, начиная на А.
Set talk on – для сообщения о ходе поиска
Use STUD
LOKATE FOR SUB STR (fam, 1,1) = "A"
RECORD = 3 (запись 3)
CONTINUE
RECORD = 5 (запись 5)
CONTINUE
End of Locate scope (конец границы поиска)
Ускоренный поиск.
Индексный файл не только упорядочивает БД для просмотра, но и ускоряет поиск в ней по ключу, заданному в индексе, если пользоваться командой.
- SEEK <выражение>
ПРИМЕР:
Use STUD index STUD NZ
Seek 100
Display ZN, FAM
На экране:
Record # ZN FAM
99 100 Иванов
Имеется полезная функция индексного поиска
- SEEK (<выражение> [,<область >]
Возвращает значение .Т., если удачный поиск и .F. если нет.
Она заменяет комбинацию команды SEEK и функции FOUND( )
Связь вида одна – запись - с одной.
Команда
- SET RELATION TO <ключ > INTO <область >
[,<ключ> INTO <область >…] [ADDITIVE]
Связывает указатель записей в активной рабочей области с указателями записей из других рабочих областей, имена которых указаны после слова INTO, по заданному общему полю (ключу). Единственное условие – файл, с которым устанавливается связь, должен быть проиндексирован по этому полю.
ПРИМЕР:
Связь БД KARTA по ключу STR (kod m) + str (kod t)
С БД SPRV M STR (kod m)
С БД SPRV T STR (kod t)
Чтобы получить наименьшее магазина, товара и цену.