
- •Построение информационной модели
- •Словник даних кларіон (файл контейнер, файл метаданих) – основа автоматичної генерації додатків.
- •Поняттня первинного і зовнішнього ключа в реляційній базі данних кларіон
- •Взяємозв’язок даних в кореляційній базі даних кларіон.
- •Поняття програмних вставок Ембедс.
- •3) Вимагає опису індексу і не вимагає виняткового права доступу до файлу.
- •Цілісність посилань в реляційній моделі даних кларіон.
- •Типи контролю вхідних даних в кларіон
- •1. Методи доступу. Відмінності між ключами, індексами, динамічними індексами в кларіон.
- •2. Послідовний доступ до файлів. Форми доступу до файлів.
- •Мови четвертого покоління(4гл). Приклади
- •Послідовний доступ до файлів. Форми доступу до файлів
- •1Сумісне використання файлів. Блокування і розблокування файлів.
- •2Довільний доступ до файлів. Форми доступу до файлів.
- •Спільне використання файлів. Типи доступу до відкритого файлу.
- •Методы доступа
- •Довільний доступ до файлу. Форми доступу до файлу.
- •Побудова інформаційної моделі в кларіон.
1Сумісне використання файлів. Блокування і розблокування файлів.
Оператор LOCK (<файл>[,<секунд>]) исключает возможность доступа другим пользователям к записям файла до тех пор, пока не будет выполнен оператор UNLOCK(<файл>).
Как и для оператора HOLD, результат исполнения оператора LOCK зависит от драйвера файла, который предпринимает действия, соответствующие данной файловой системе. В некоторых файловых системах системный сбой автоматически разблокирует файл, в других - файл остается заблокированным. В документации на соответствующий драйвер описано конкретное исполнение оператора LOCK.
Если в приложении действительно требуется заблокировать файл, то нужно стараться максимально сузить период времени, в течение которого запрещается доступ к файлу другим пользователям. Желательно, чтобы в промежутке исполнения программы между операторами LOCK и UNLOCK не требовался ввод данных пользователем.
Есть две формы взаимной блокировки. Первая - когда два пользователя пытаются в разном порядке заблокировать одну и ту же группу файлов. Вот примерный сценарий:
Пользователь P1 блокирует файл А
Пользователь P2 в это же время блокирует файл Б
Пользователь P1 пытается заблокировать файл Б и не может, поскольку P2 его уже заблокировал
Пользователь P2 пытается заблокировать файл А и не может, поскольку P1 его уже заблокировал
Пытаясь получить контроль над файлами, оба пользователя “повисают”. Выход из данной ситуации состоит в принятии на программном уровне простого соглашения: блокировку файлов осуществлять всегда в одном и том же порядке (например, по алфавиту), при этом отслеживать блокировки со стороны других пользователей. Проиллюстрируем этот принцип примером:
LOOP
LOCK(FileA,1) ! Попытка заблокировать в течение 1 секунды
IF ERROR() = ‘FILE IS ALREADY LOCKED’
CYCLE ! и попытаться снова
END
LOCK(FileB,1) ! Попытка заблокировать в течение 1 секунды
IF ERROR() = ‘FILE IS ALREADY LOCKED’
UNLOCK(FileA) ! разблокировать уже заблокированный файл
CYCLE ! и попытаться снова
END
BREAK !выйти из цикла когда заблокированы оба файла
END
! Обработка файлов FileA и FileВ
UNLOCK(FileB) ! разблокировать заблокированные файлы
UNLOCK(FileA)
2Довільний доступ до файлів. Форми доступу до файлів.
(2.1)Оператор GET - единственный в языке оператор, с помощью которого осуществляется произвольный доступ к файлу. В отличие от оператора SET, оператор GET либо считывает запись из файла, либо выдает сообщение об ошибке. Для оператора GET не используется механизм “нечеткой логики”. Существует три формы оператора GET. С их помощью можно считывать записи по значению ключа, по номеру записи и по номеру ключа. Оператор GET не влияет на последовательную (SET/NEXT или SET/PREVIOUS) обработку файла. Это означает, что исполнение оператора GET в процессе последовательной обработки не приводит к изменению указателя записи для последовательной обработки.
(2.2)Существуют два способа доступа к записи в файле: последовательный доступ и произвольный доступ. Последовательный доступ означает извлечение нескольких записей для обработки их в определенной последовательности. Произвольный доступ подразумевает извлечение и обработку одной конкретной записи. Почти в любой программе работающей с базой данных применяется как тот, так и другой способ.
Если требуется извлекать записи из файла в их физической последовательности – по номеру, - то для этого достаточно только файла данных. Если требуется произвольно извлечь запись и точно известно ее местоположение в файле (ее номер), то и для этого также достаточно только файла данных. Однако для большинства приложений такая однобокость была бы слишком большим ограничением.
3Словник даних. При описании атрибутов столбца в закладке ВАЛИДИТИ ЧЕКС в поле МАСТ БИ ИН ТЕЙБЛ указать имя родительской таблиці для того чтоби?: 4) Знаячения поля столбца при вводе всегда віюиралось только из родительской таблици.
Білет 10