В. В. Воронин информационное обеспечение систем управления
Вид материала | Документы |
- Контрольная работа по дисциплине "Управление персоналом" Тема: "Информационное обеспечение, 262.15kb.
- Лекция: Информационное обеспечение ис: Информационное обеспечение ис. Внемашинное информационное, 314.22kb.
- Примерная рабочая программа по дисциплине теория массового обслуживания для подготовки, 54.46kb.
- Методические указания к лабораторным работам для студентов специальности 210100 "Автоматика, 536.56kb.
- Санкт – Петербург, 721.71kb.
- Рабочая программа дисциплины Информационное обеспечение систем управления (Наименование, 193.05kb.
- А. М. Горького Л. Н. Мазур информационное обеспечение управления основные тенденции, 2938.14kb.
- Учебно-методический комплекс по дисциплине Информационное обеспечение абис для студентов, 387.18kb.
- Управление экономикой и создание экономических информационных систем Изучив данную, 148.93kb.
- Программа междисциплинарного вступительного экзамена в магистратуру факультета автоматики, 52.79kb.
В этом примере установлена связь вида
В
се рассмотренные примеры распространяются на два уровня иерархии. Сцепление баз можно распространить на большее число уровней. Например, есть база ВУЗов, база факультетов, база специальностей, база выпускающих кафедр и база образовательных стандартов. Необходимо связать эти базы таким образом, чтобы для каждого ВУЗа посмотреть все факультеты, входящие в него и для каждого факультета посмотреть все специальности и выпускающую кафедру и затем образовательный стандарт. Схема для организации такой сложной динамической связи представлена ниже.
Н
иже приведен фрагмент командного файла для реализации данной схемы.
USE BAZV IN a
USE BAZF IN b INDEX indKODVF
USE BAZC IN c INDEX indKODFC
USE BAZK IN d INDEX indKODCK
USE BAZS IN f INDEX indKODCC
SELECT a
SET RELATION TO KODV INTO b
SET SKIP TO b
SELECT b
SET RELATION TO KODF INTO c
SET SKIP TO c
SELECT c
SET RELATION TO KODC INTO d
SET RELATION TO KODC INTO f ADDITIVE
Аппарат сцепления баз является мощным средством доступа к родственным связям. Однако, оно может отнимать много времени из-за синхронного перемещения указателей записей. Поэтому, если доступ к младшим базам в данный момент не нужен, то сцепление лучше отключить.
В VFP в конструкторе баз данных можно создать постоянные динамические связи между DBF-файлами, входящими в базу данных, т.е. объединённые посредством DBС-файла. Они автоматически активизируются при открытии соответствующих DBF-файлов. Эти связи отличаются от связей, создаваемых командой SET RELATION тем, что они сохраняются после выхода из VFP (в DBС-файле). Чтобы создать такие связи между двумя DBF-файлами, необходимо каждый из них проиндексировать. В окне конструктора баз данных для каждого DBF-файла есть своя область, в которой перечислены все его поля и все индексы. Для создания связи следует “захватить” мышью имя индекса одного файла и перенести его на место нужного индекса другого файла. Откроется окно, в котором будет представлена информация о созданной связи. Будут перечислены имена DBF-файлов, их индексы и вид связи 1:1 или 1:М. Вид связи система определяет автоматически. Делает она это по типу индексов. Если оба индекса типа primary или condidate, то связь имеет тип 1:1, а если второй индекс типа regular , то связь 1:М. Нажав ОК; связь будет зафиксирована. Это отразится в окне конструктора линией, соединяющей связанные индексы.
Определить динамические связи можно также в конструкторе форм при задании «окружения данными». Класс «окружения данными» отличается от обычных классов VFP. Он является контейнером только для таких классов как Cursor и Relation, ассоциированных с объектами типа form, formset или отчет.
В этом случае следует захватить мышью поле из родительского курсора и перетащить его на соответствующий индекс в дочернем курсоре. Если два DBF-файла были связаны в конструкторе баз данных, то при включении их в «окружение данных» они останутся связанными по двум индексам.
При использовании объекта Grid на форме нужно знать следующее.
- В Grid можно поместить поля только из одной таблицы.
- Для двух связанных таблиц по типу 1:М в Grid можно поместить только дочернюю таблицу, если при этом поле из родительской таблицы поместить в ComboBox , то для каждого его элемента в Grid будут отображаться связанные записи.
- В Grid можно поместить локальный вид, а его сформировать на основе нескольких таблиц.
6. ЯЗЫК ЗАПРОСОВ SQL
6.1. Типовые запросы
Язык SQL стал фактически стандартным языком доступа к базам данных. Все СУБД, претендующие на название "реляционные", реализуют тот или иной диалект SQL. Целью стандартизации является переносимость приложений между различными СУБД.
Язык SQL является реляционно-полным. Это означает, что любая операция реляционной алгебры может быть выражена подходящей командой SQL.
При классификации языковых средств было сказано, что кроме ЯОД и ЯМД, СУБД VFP поддерживает также язык запросов SQL.
Обращение к базе данных с определенной целью называют запросом. СУБД VFP поддерживает подмножество языка SQL, которое обеспечивает реализацию следующих запросов.
- Запрос на добавление записи в DBF-файл (INSERT).
- Запрос на выборку записей (SELECT).
- Запрос на корректировку записей (UPDATE).
- Запрос на удаление записей (DELETE).
- Запрос на создание DBF-файла (CREATE TABLE).
- Запрос на модификацию DBF-файла (ALTER TABLE).
- Запрос на создание временной таблицы (CREATE CURSOR).
Команды SQL в VFP работают быстрее благодаря использованию технологии Rushmore, и одна команда SQL может заменить несколько команд языка манипулирования данными.
Чаще используют запросы на выборку записей. Если запрос на выборку адресован одному DBF-файлу, то его принято называть простым, в противном случае – сложным. Даже простых запросов можно сформулировать достаточно много. Чтобы ориентироваться в этом многообразии приведем классификацию простых запросов. Она представлена в табл. 6.1. Примеры запросов в табл. 6.1 будем иллюстрировать DBF-файлом СОТРУДНИКИ, содержащим сведения о сотрудниках кафедры, ниже приведена его логическая структура.
СОТРУДНИКИ | ||||||||
Tnom | FIO | Kdol | ZP1 | … | ZP12 | Okl | DR | ZPS |