Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры(экз.БД)1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
345.09 Кб
Скачать

9. Взаим-и между табл-ми: установ-е и удал-е. Типы ключей. Способы объед-я таблиц.

Если таблица имеет первич.индекс (ключ), то она может быть родител-й. Если таблица имеет внешний индекс (ключ), то она может быть дочер-й. Д/установ-я взаимосвязи и родител-я и дочер-я табл должны иметь хотя бы одно общее поле. На практике встреч-ся 3типа объед-я таблиц: //, послед-ное и смешанное. Перед установл-м взаимос-й между табл надо выполнить след.усл-я: все табл должны быть открыты, причем каждая в своей рабочей обл-ти; все табл попарно должны иметь общее поле (хотя бы одно); желат-но, чтобы д/общего поля и в старшей и в млад­шей таблице был построен индекс. Сущ-ет неск-ко подходов д/установ-я взаимо­связи между табл: конструкция SET RELATION TO; конструкция SET SKIP TO; команда JOIN; команда UPDATE; команда TOTAL; переменные памяти. «Один-к-одному». При установлении взаимосвязи в родител.табл берут первич-й ключ, а в дочерней табл - внешний ключ. Причем эти оба ключа явл-ся общим полем. Тек.делают ту рабочую обл-ть, где нах-ся дочерняя табл, и с помощью ком-ды SET RELATION TO к доч.табл под­кл-ют одну или неск-ко родител.табл, открытых в пасс-х рабочих обл-х. SET RELATION ТО. «один-ко-многим». Взаим-зь устанавл-ся «поверх» взаи­м-зи «один-к-одному», т.е.сначала устанавл-ют между табл взаим-зь «один к одному», а затем подают команду: SET SKIP TO. Установ-е взаимос-й с пом-ю глав.меню. Если имеется реляцион.бд, то устан-ть взаим-зи между табл-ми можно с пом-ю команд Глав.меню. Д/этого предвар-но в каждой табл строят перв-й ключ и внеш-е ключи. Затем выводят на экран диалог.па­нель Table Designer. Потом курсор мыши размещ-т на имени первич-го ключа родител-й табл и буксируют его внутрь дочер-й табл, устанавл-я на имя соотв-щего внешн.ключа. Во время буксир-ки курсор мыши дважды меняет свою форму. По окончании буксировки на экран вывод-ся диалог-я панель Edit Relationship, где надо проверить, а при необх-ти и уточнить, пар-ры взаим-зи. После на экран вывод-ся диалог.па­нель Database Designer, между именами соотв-щих индек­сов автоматически прорисов-ся прямая линия. Обратная буксировка (от дочерней таб­лицы к родит-й) не допустима. Тип взаим-зи между табл-ми устанавл-ся автомати-ки, в завис-ти от типа индексов. Если оба индекса (в роди­тел-й таблице и доч-й табл) уникал-е, то возникает тип взаим-зи «один-к-одному». Если в родител-й табл индекс уникал-й, а в дочерней табл индекс регул-й, то получ-ся тип взаим-зи «один-ко-многим». Чтобы редакт-ть сущ-щую взаим-зь, надо вы­звать на экран диалог-ю панель Edit Relationship. Д/этого на­до курсор мыши устан-ть на линию взаим-зи и щелкнуть лев.кнопкой мыши, при этом линия взаим-зи утолщ-ся. Затем прав.кноп-й мыши на экран вызывают контек-е меню, из ктр выбирают команду Edit Relationship. Д/удаления взаим-зи ее надо предвар-но выделить, а затем нажать клавишу Del. Тип ключей. Как простой, так и слож-й индекс имеют свой тип (Туре). Первич-й (Primary) индекс (ключ) - это поле или группа по­лей, однозначно опр-щих запись, т.е.знач-я первич-го индекса уник-ны (не повтор-ся). В реляц.бд каждая табл может иметь только один перв-й ключ. Внешн-х ключей у табл может быть много и они будут иметь один из типов: Candidate - кандидат в перв-й ключ или альтернат-й ключ. Он обладает всеми св-ми перв-го ключа. Unique (уникал-й) – допуск-т повтор-ся зн-я в поле, по к-му он построен, но на экран будет вы­вод-ся только одна первая запись из группы записей с одинак-м знач-м индекс.поля. Regular (регул-й) - не накладывает никаких огранич-й на знач-я индекс.поля и на вывод зап-й на эк­ран. Объед-е 2х табл-х ф-в в 1 ф-л. В некот-х случаях требуется i-ю из разных табл свести в одну табл. Одна табл размещ-ся в актив-й ра­бочей обл-ти, а вторая табл - в пассив-й области. В рез-те объедин-я будет получен новый (третий) табл-й ф-л, ктр будет записан по указ-му адресу. В состав нового табл-го файла могут быть вкл-ны любые поля из 2х объедин-х табл. Команда: JOIN WITH <псевдоним пассивной рабочей области> ТО <имя создаваемого файла>. Созд-е итог-го табл-го ф-а. При созд-и отчетов необх-мо иметь итог-е суммы по не­кот-м числ.столбцам (полям). Команда TOTAL создает итог-й табл-й файл, содерж-й суммы по указ-м полям. Предвар-но табл-й файл должен быть отсорт-н по ключ.полю. Ком-да: TOTAL ON <имя ключевого поля> ТО <имя итогового файла>.

11.Обл-ть дейс-я переем-х. опер-ы цик-а и ветв-я.

Перем-е могут передав-ся в процедуры не только через фиктивные пар-ры, но и напрямую. Перем-е, опр-ные в старших модулях, действуют также и в подчин-х моду­лях. Глобал-е перем-е. Перем-е и масс-вы, объявленные как глоб-е, действуют во всей среде VFP. Глобал-ю перем-ю можно оп­р-ть либо в окне Command, либо с пом-ю опер-ра PUBLIC <список имен перем-х и масс-в>. Эл-ты списка отдел-ся друг от друга «,». Глобал.перем-я продолжает сущ-ть даже тогда, когда проц-ра, ее опр-шая, закончила свою работу и осво­бодила ОП. Локальные переменные. Локал.перем-е сущ-ют только внутри проц-ры, в ктр они опр-ны, и во всех подчин-х ей процед-х. Д/опис-я локал.перем-х испол-т опер-р PRIVATE <список имен переем-х>. Этот оператор опис-ет только перем-е. Локал-е массивы описыв-ся командами DECLARE и DIMEN­SION. Цикл по условию. DO WHILE <выр. L>. Цикл выпол-ся многок-но, до тех пор пока истинно ло­гич.усл-е <выр. L>. Д/принуд-го выхода из цикла, до наруш-я логич.усл-я <выр. L>, испол-т команду EXIT. Фиксирован.цикл. Команда: FOR <пер.> = <выр. N 1> ТО <выр. N2>. Цикл выпол-т фиксиров-е кол-во итераций (шагов). <пер.> наз-ся перем-й цикла. В ней фик­сир-ся кол-во выпол-х итераций, т.е. после вы­пол-я очередной итерации зн-е пер-й цикла уве­лич-ся на зн-е шага цикла. По умолч-ю шаг цикла принят равным 1. Цикл сканир-я.Цикл сканир-я организует просмотр записей тек.таб­л. Ком-да: SCAN. Цикл сканир-я работает аналогично циклу DO WHILE, но предназ-н д/работы с тек.таблицей. По умол-ю цикл сканиров-я выполн-ся д/всех записей. Ком-ды ветвл-я алгор-ма. При реализации слож-х алг-мов обработки данных, выбора одного решения из многих возм-х, испол-т разл-е команды ветвл-я алг-ма. Ветв-я алг-а на 2 направ-я. Команда: IF <выр. L > <оператор 1> ENDIF. Если логич.выраж-е <выр. L > истинно, то выполн-ся <оператор 1>. Ветвл-я алг-ма на много направ-й. Команда: DO CASE; CASE <условие 1> … < оператор > CASE <условие 2> …

< оператор > … ENDCASE. Кол-во блоков CASE <условие N> не огран-но. При работе команды DO CASE последов-но провер-ся усл-я CASE <усл-е N> и выполн-ся все блоки, условия ктр истинны. Если все указ-е усл-я ложны, то выполн-ся блок OTHERWISE. Варианты задания условий CASE <условие N>. А)Точные усл-я. Перем-я условия точно = какому-либо знач-ю или точно не = какому-либо знач-ю. CASE а = b или CASE а > b или CASE a < b б)Диапазон значений. Знач-е перем-й усл-я задается диапазоном, включая границы диапазона. CASE BETWEEN (ms,01,09). В)Список значений. Знач-е пер-й условия задается списком. Эл-ты списка отдел-ся друг от друга «,». CASE INLIST (ms, '10', '19', '43', '14', '25'). Д/усл-я CASE <условие N> могут использ-ся знач-я любого типа, но надо следить за правильностью использ-я типов данных в f-ях.