Главное окно проекта

Главное окно проекта, представленное на рисунке ниже, еще можно назвать центром управления данными. Каждый раздел данных представлен закладкой сверху:

Каталог данных файлы данных, управляемые СУБД NetBase.

Запросы формы запросов к файлам данных.

Программы программы на языке NetScript для обработки файлов данных

Таблицы электронные таблицы, управляемые NetCalc.

image9Список элементов раздела располагается ниже закладок.

Рис. 3.1

Раздел Каталог данных имеет два подраздела: Главные и Справочники, соответствующие статусу представленных в них файлов данных.

Для создания, удаления и редактирования элементов, относящихся к разным разделам данных, существуют кнопки Создать, Открыть, Конструктор. Действие кнопки зависит от текущего раздела данных (текущим считается раздел, название которого выведено жирным шрифтом). Рассмотрим действие каждой кнопки в разных контекстах.

Раздел Каталог данных

Базы данных в NetBase

Эта глава содержит описание основных терминов из области баз данных и моделей данных, поддерживаемых СУБД NetBase.

Понятие базы данных в NetBase

Термин база данных обозначает совокупность описаний объектов реального мира, формализованных для обработки компьютером. Объектами могут быть:

  1. люди, например, перечисленные в какой=либо платежной ведомости;
  2. предметы, например детали, машины;
  3. построения - воображаемые объекты, например географические карты.

Однотипные объекты можно описать некоторым набором характеристик, которые и заносятся в базу данных. Эти характеристики называются атрибутами. Об атрибутах проще говорить, используя его имя - имя атрибута. Атрибуты имеет каждый объект. Что же касается уникальности объекта и его отличительных особенностей, то они определяются значениями атрибутов.

С каждым объектом может быть связано множество атрибутов. Так, для описания автомобиля потребуется всего пять атрибутов, имена которых не нуждаются в пояснении: дата выпуска, марка, цвет, номерной знак, владелец. Например, именованные выше атрибуты могут иметь следующие значения: 21.12.1994, ВАЗ 21099, белый, л12-60БЕ, Иванов И.И.

Применительно к терминологии баз данных, введенные обозначения соответствуют следующим понятиям:

  1. атрибут является полем записи;
  2. имя атрибута является именем поля;
  3. значение атрибута является значением поля.
  4. совокупность значений атрибутов для конкретного объекта образуют запись (описание одного объекта);
  5. множество записей образуют файл данных;
  6. один или множество файлов данных образуют базу данных.

База данных автомобилей имеет вид:

Дата Выпуска Марка Цвет Номерной знак Владелец
21.12.1994 ВАЗ 21099 белый л12-60БЕ Иванов И.И.
04.10.1995 Москвич 2141 синий о17-34МО Кузнецов П.В.

Модель данных

NetBase является мультимодельной системой управления базами данных (СУБД). Она поддерживает три наиболее распространенные модели данных: Реляционную, Иерархическую и Сетевую. Выбор той или иной модели не задается явно, а определяется структурой построения связей между файлами базы данных.

В реляционной модели база данных представляет собой один или несколько файлов данных, называемых таблицами. Между таблицами могут быть установлены связи через индексные поля, т.е. связанные записи таблиц должны иметь специально введенные поля целого типа с одинаковыми именами и значениями. При этом файлы данных являются совершенно равноправными по отношению друг к другу с точки зрения просмотра и редактирования, а связи обрабатываются прикладными программами.

В иерархической и сетевой моделях база данных представляет собой один или несколько файлов данных, связанных между собой полями ссылочного типа. Эти поля отличаются от индексных тем, что содержат указатели на данные, а не просто признаки связывания данных, как в индексных полях. Сами файлы данных подразделяются на главные и подчиненные. Доступ к подчиненным файла открывается только из главного файла. Таким образом, связи между файлами базы данных устанавливаются непосредственно в самих файлах и существуют независимо от прикладных программ. В иерархической модели можно строить базы данных с иерархической древовидной структурой подчинения файлов, а в сетевой модели подчиненность файлов представляет собой граф общего вида (при этом должен быть хотя бы один главный файл). Иерархическая модель данных является частным случаем сетевой модели.

Сетевая модель данных CODASYL

Реализованная в NetBase сетевая модель данных основывается на отчетах DBTG CODASYL, выпущенных в 1969-1971 гг, где были предложены основные концепции сетевой модели данных. Основные “строительные блоки” структуры сетевой базы данных CODASYL - тип записи и тип набора.

Тип записи представляет собой совокупность одного или нескольких полей данных различных типов, поддерживаемых в NetBase. Помещенная в файл данных запись может существовать в нем не только самостоятельно, но и являться одновременно членом или владельцем каких-либо наборов в зависимости от того, содержит ли она поля ссылочного типа (чтобы быть владельцем набора) или принадлежит подчиненному файлу базы данных (чтобы быть членом набора). Для наборов допускается переменное число записей-членов набора (но не меньше одной) и они могут быть вложенными.

Тип набора CODASYL представляет собой совокупность произвольного количества записей. Наборы CODASYL служат для представления отношений вида 1:N между записями-владельцами и записями-членами наборов. Записи-владельцы и записи-члены одних наборов могут быть одновременно владельцами и/или членами наборов. Таким образом, из записей и наборов базы данных может быть сконструирована база данных произвольно сложной структуры.

Различают записи-члены наборов - обязательные и необязательные, автоматические и ручные. Первая пара характеристик определяет поведение СУБД при удалении записи-владельца набора. Вторая пара характеризует способы включения записей в набор. Обязательные записи-члены наборов удаляются из базы данных при удалении записи-владельца данного набора, а необязательные остаются в базе данных. При помещении в базу данных записи-автоматические члены наборов автоматически включаются в некоторые наборы, а записи-ручные члены включаются в нужные наборы только по командам из прикладной программы.

Отличие сетевой модели NetBase от CODASYL

Отличие реализованного в NetBase типа набора отличается от описанного в CODASYL тем, что:

  • Наборы называются списками записей;
  • Наборы и члены наборов при создании не описываются каким-либо типом. Тип набора определяется типом ссылочного поля записи-владельца;
  1. Для поля типа “Жесткая” ссылка ... все записи-члены набора будут обязательными и автоматическими.
  2. Для поля типа “Мягкая” ссылка ... все записи-члены набора будут необязательными и ручными, причем наборы должны быть уже созданы посредством “Жестких” ссылок ....
  • Наборы не могут состоять одновременно из обязательных и необязательных записей-членов набора, однако могут ссылаться на другие наборы посредством ссылочных полей.
  • Введено понятие единичный набор, т.е. набор, состоящий только из одной записи-члена набора.
  • Обязательные записи-члены наборов могут быть ручными записями-членами единичных наборов.
  • Иерархическая и сетевая модели данных реализованы в NetBase на основе файлов данных реляционной структуры, связанных между собой. Связи между файлами хранятся в специально организованных файлах, называемых BackTracking Tags (BTT).

Создание файлов данных

Кнопка Создать служит для создание нового файла данных в текущем подразделе (главные или справочники) и при нажатии вызывает окно создания файла данных (Рис 3.2).

image10

Рис. 3.2.

Ввод имени поля

В колонке "Имя поля" введите имя для каждого поля. Имена полей должны удовлетворять следующим условиям:

  1. могут быть длиной до 25 символов;
  2. не должны начинаться с пробела, хотя могут содержать пробелы;
  3. могут содержать любые символы, кроме кавычек "", квадратных [], фигурных {} и круглых () скобок, отдельного символа номера #, а также комбинации ->;
  4. не должны совпадать с именами других полей в этом же файле данных;
  5. должны кратко описывать содержимое полей.

Задание типа поля

В колонке с названием "Тип" задайте основной тип поля, который определяет, данные какого типа может содержать данное поле. Для этого сделайте двойной щелчок левой кнопкой мыши в соответствующей ячейке справа от имени поля. Всего существует 4 основных типа поля: Текстовое, Числовое, Дата, Ссылочное, которые будут выведены в виде списка под ячейкой. После выбора типа поля панель уточнения типа примет вид:

image11для текстового поля. Размер текстового поля по умолчанию задается 50 символов, но может быть от 1 до 254.

image12для числового типа. Размер числового поля выбирается по типу хранимых в нем чисел. Это могут быть:

Байт Поля типа Байт могут содержать целочисленные значения от 0 до 255. Поля такого типа рекомендуется использовать только опытным пользователям или программистам. Его также можно использовать для хранения логических значение типа ДА/НЕТ (т.е. 0 или 1) или для хранения различных флажков и признаков. Преимуществом целочисленных полей является то, что они занимают меньше места на диске по сравнению с полями вещественных типов. Иногда это важно при разработке больших баз данных, когда необходимо экономно использовать дисковое пространство.

Целое без знака Поля этого типа могут содержать целые числа без знака в диапазоне от 0 до 65534. Рекомендации по использованию см. в описании полей типа Байт выше.

Целое со знаком Поля этого типа могут содержать целые числа в диапазоне от 32767 до 32767. Рекомендации по использованию см. в описании полей типа Байт выше.

Длинное целое Поля этого типа могут содержать целые числа в диапазоне от 2147483647 до 2147483647. Рекомендации по использованию см. в описании полей типа Байт выше.

Вещественное одинарной точности Поля этого типа содержат числа с плавающей точкой длиной до 8 значащих цифр (включаю дробную часть) в интервале от 1.5e-45 до 3.4e38 . Числа, имеющие более 8 значащих цифр, округляются и хранятся в формате с плавающей точкой. Вы можете вводить и отображать числа в NetBase разными способами, однако, это не влияет на то, как NetBase хранит эти числа. Например, предположим, что поле содержит значение 17.87543. Если вы выберите Редактор|Поле Формат... для того, чтобы отображать это число с тремя знаками в дробной части, то NetBase все равно будет хранить это число целиком, так что потом вы сможете отобразить это же число с другим количеством знаков в дробной части.

Вещественное Как и вещественное одинарной точности, данный тип поля позволяет хранить числа с плавающей запятой, но в диапазоне от 2.9e-39 до 1.7e38 с 11-12 значащими цифрами.

Вещественное двойной точности Поля данного типа позволяют хранить числа с плавающей запятой в диапазоне от 5e-324 до 1.7e308 с 15-16 значащими цифрами.

image13Поля даты могут содержать любые правильные даты от 1.1.0000 до 31.12.9999. NetBase знает о високосных годах и проверяет все даты на правильность. Вы получите сообщение об ошибке, если попытаетесь ввести неправильную дату, например 29.02.1991. Для полей типа Дата указывается только формат представления.

image14Для ссылочных полей уточняется тип ссылки и справочный файл данных. Справочник можно выбрать как из уже существующих, так и создать новый. Типы ссылочных полей могут быть:

“Жесткая” ссылка на список записей. Этот тип поля реализует отношение ОДИН-КО-МНОГИМ: запись-владелец через поле этого типа связана со списком записей подчиненного файла базы данных, имя которого задается в описании поля при создании файла. При этом пользователю предоставляются права создания, редактирования и уничтожения подчиненного списка записей. В поле хранится идентификационный номер указателя на список записей в подчиненном файле базы данных. Команда очистки поля приводит к уничтожению подчиненного списка. Произвольное изменение указателя невозможно, т.к. это приведет к нарушению целостности данных в подчиненном файле базы данных.

“Мягкая” ссылка на список записей. Этот тип поля реализует отношение ОДИН-КО-МНОГИМ: запись-владелец через поле этого типа связана со списком записей подчиненного файла базы данных. При этом пользователю имеет только право просмотра (чтения) уже созданного списка записей в подчиненном файле базы данных, имя которого было указано с описании поля при создании файла. Основным владельцем списка может быть только поле "Жесткая ссылка ...". Команда очистки поля уничтожает только указатель на список, а сам список продолжает существовать. Значение указателя можно легко изменять при необходимости.

“Жесткая” ссылка на запись. Этот тип поля реализует отношение ОДИН-К-ОДНОМУ для записи-владельца и одной записи из подчиненного файла базы данных. В остальном рекомендации по использованию такие же как и для поля “Жесткая” ссылка на список записей

“Мягкая” ссылка на запись. Этот тип поля реализует отношение ОДИН-К-ОДНОМУ для записи=владельца и одной записи из уже существующего списка записей из подчиненного файла базы данных. В остальном рекомендации по использованию такие же как и для поля “Мягкая” ссылка на список записей.

“Жесткая” ссылка на список записей в выбираемом файле. Этот тип поля по своему назначению и использованию аналогичен типу “Жесткая” ссылка на список записей, только имя подчиненного файла указывается не на этапе создания структуры, а во время заполнения файла реальными данными.

“Мягкая” ссылка на список записей в выбираемом файле. Этот тип поля по своему назначению и использованию аналогичен типу “Мягкая” ссылка на список записей, только имя подчиненного файла указывается не на этапе создания структуры, а во время заполнения файла реальными данными.

“Жесткая” ссылка на запись в выбираемом файле. Этот тип поля по своему назначению и использованию аналогичен типу “Жесткая” ссылка на запись, только имя подчиненного файла указывается не на этапе создания структуры, а во время заполнения файла реальными данными.

“Мягкая” ссылка на запись в выбираемом файле. Этот тип поля по своему назначению и использованию аналогичен типу “Мягкая” ссылка на запись, только имя подчиненного файла указывается на этапе создания структуры, а во время заполнения файла реальными данными.

Название файла данных в проекте

Перед началом создания нового файла данных ему присваивается имя по умолчанию: для главных файлов - это ДАННЫЕ, для справочников - СПРАВОЧНИК. За именем следует цифра для придания имени уникальности. В любой момент Вы можете сменить название файла на другое. Для этого нажмите кнопку Переименовать. Для названия файла данных нет жестких требований, за исключением того, что название должно быть уникальным. Не допускается присутствие в проекте файлов данных с одинаковыми названиями.

Сохранение созданного файла в проекте

Для сохранения вновь созданного файла данных в проекте нажмите кнопку Запомнить. При этом будет выполнена проверка на правильность задания имен полей, типов и уточнений типов, и если все правильно файл добавится в проект.

Рекомендации по созданию базы данных

Первым шагом в создании базы данных всегда должно быть планирование. На этом шаге вы должны решить, какую информацию должна содержать ваша база данных и в каком виде она должна в ней храниться.

Хотя планирование и является очень важным этапом, NetBase позволяет легко изменять структуру ваших файлов данных. Если после того, как поработаете с файлом, вы решите, что хотите увеличить число полей, или что одно из полей слишком мало, для него выбран неправильный тип или оно просто не нужно, то вы всегда можете изменить структуру файла данных.

При планировании базы данных следует иметь в виду следующие соображения:

  1. Учтите все. Постарайтесь включить поля для всей информации, которая, по вашему мнению, может вам понадобиться. С другой стороны, постарайтесь не засорять файл полями, которые вам не нужны. Помните, что потом вы в любой момент сможете добавить или удалить поля.
  2. Не пытайтесь вместить всю информацию в один файл. Обычно лучше создать несколько файлов с небольшим числом полей. Так как файлы могут быть легко связаны вместе ссылочными полями.
  3. Храните информацию в том виде, в котором вам удобно. Часто наилучшим вариантом является создание файлов данных, которые содержат категории информации, которые вы обычно используете. Они могут напоминать документы, которые у вас есть на бумаге (например, карточки служащих или бланки заказов).
  4. Создайте связи. Продумайте способы связи файлов данных, их подчиненность друг другу, которые содержат родственную информацию. Включите ссылочные поля в таблицы, которые вы собираетесь связывать.

Избегайте избыточности. Хорошо продуманная схема связи файлов в базе данных позволит вам избежать повторения информации.

Открытие файлов данных

Открывать для просмотра или редактирования можно только главные файлы данных, которые расположены в подразделе Главные. Для этого укажите мышкой название нужного файла и нажмите кнопку Открыть или просто сделайте двойной щелчок левой кнопкой мыши. Кнопка Открыть может быть недоступна в случае отсутствия созданных файлов данных. На экране появится окно представления данных, работы с которым описана в главе Посмотр и редактирование данных.

Реконструкция файлов данных

Если при вводе данных в файл вы обнаружили, что созданная структура не в полной мере отражает характер самих данных и есть необходимость добавить или удалить какое-либо поле или группу полей, то воспользуйтесь возможностью изменения структуры файла, которая предусмотрена в системе NetBase.

Для изменения структуры файла данных укажите мышкой его название в списке Главных или Справочников и нажмите кнопку Конструктор. После этого появится окно создания файла БД, но с заголовком "Изменение структуры...". В нем вы можете добавлять новые поля, изменять параметры (такие, как имя и тип) уже существующих поле, удалять поля и т.д. После того, как вы внесли все требуемые изменения в структуру, нажмите кнопку Обновить структуру. После обновления значения всех старых поле останутся без изменений, а новые поля будут пустыми.

Совместимость типов полей

Если вы хотите изменить тип существующего поля, то могут возникнуть проблемы совместимости типов полей, приводящие к потере данных. Потеря данных происходит в случае, когда новый тип поля несовместим со старым типом. Если же они совместимы, то потери данных не происходит, просто старое значение будет преобразовано к новому типу. Ниже перечисляются возможные комбинации совместимости полей:

  1. Целочисленные поля ограниченно совместимы друг с другом, если данные не выходят за диапазон чисел нового типа, и полностью совместимы с полями вещественного типа. Так, например, поля типа Байт можно безболезненно изменить на любой целочисленный или вещественный тип, т.к. возможные значения типа Байт являются подмножеством возможных значений других числовых типов. А вот при преобразовании типа Целое в тип Байт, может произойти потеря данных в случае, когда значения поля типа Целое не входят в интервал от 0 до 255 (т.е. интервал возможных значений полей типа Байт).
  2. Вещественные поля ограниченно совместимы друг с другом (по тем же причинам что целочисленные поля), ограниченно совместимы с целочисленными полями (причем значения округляются до целого) и полностью совместимы со строковым типом.
  3. Поля строкового типа ограниченно совместимы с целочисленными и вещественными полями, если в них хранится число как строка символов, с полем типа Дата, если строка символов имеет формат даты (т.е. ДД.ММ.ГГГГ, где между точками стоят цифры из допустимого для дня, месяца и года интервала значений).
  4. Поля даты совместимы только со строковым типом.
  5. Ссылочные поля несовместимы с другими типами и между собой!

Изменение имени поля

При изменении структуры файла БД вы можете изменить имя поля, не изменяя его тип. При конвертировании файла данных NetBase попросит ввести новое имя для указанного поля, как представлено на рис 3.3.

Рис. 3.3.

Это необходимо для предотвращения конфликтов при одновременном изменении имени поля и его порядкового номера. Введите новое имя и нажмите кнопку Ok. Если же вы удалили поле, а не изменили его имя, то кнопку Поле удалено.

Раздел Запросы

Создание запросов

Для создания шаблона нового запроса сделайте раздел Запросы активным и нажмите кнопку Создать. Из списка файлов для запроса, как показано на рис 3.4, выберите один и нажмите кнопку OK. В шаблоне отмечаются поля для выборки и вводятся условия выборки.

Далее будет открыто окно формирования запроса. Подробнее о формировании запроса см. Главу Запросы к файлам данных.

image15

Рис 3.4

Выполнение запроса

Созданный ранее запрос можно выполнить, нажав кнопку Выполнить главного окна проекта. В результате запроса в разделе Каталог данных создастся файл с именем типа "Результат такого-то запроса". Если после его просмотра результаты запроса оказались удовлетворительными и Вы хотите сохранить их, то переименуйте этот файл данных, так как при повторном выполнении запроса предыдущий результат стирается и заменяется новым.

Реконструкция запроса

Для изменения шаблона запроса сделайте раздел Запросы активным. Затем укажите мышкой название нужного шаблона запроса и нажмите кнопку Конструктор.

Раздел Программы

Любая, даже самая изощренная программа не может с помощью горячих клавиш и пунктов меню реализовать весь набор действий и операций, который может понадобиться пользователю. А если так, то она должна дать пользователю инструмент, с помощью которого он мог бы реализовать все свои замыслы. Таким инструментом в NetBase является встроенный язык программирования NetScript. Программы на этом языке составляют неотъемлемую часть проекта и располагаются в разделе Программы. Синтаксис языка описан в главе "", а здесь рассматриваются вопросы создания и редактирования программ.

Создание новой программы

Сделайте активным раздел Программы и нажмите Создать. Появится окно редактирования (Рис 3.5), а программе будет присвоено имя по умолчанию: "Программа 1" (или какой-либо другой номер).

image16

Рис 3.5

Все программы для редактирования открываются в одном окне. Каждой из них соответствует закладка с названием программы. Переключая закладки, Вы переключаетесь между открытыми программами.

Данный редактор не является полнофункциональным и пока не может использоваться как отладчик.

При редактировании Вы можете использовать следующие клавиши:

  1. стрелки перемещение курсора
  2. PageUp, PageDown листать постранично вверх/вниз
  3. Home стать начало строки
  4. End стать на конец строки

image17При сохранении файла, первоначально названного как "Программа...", появится приглашение выбрать более подходящее имя программы.

Редактирование существующей программы

Для редактирования существующей программы выберите мышкой ее название в списке и нажмите кнопку Конструктор. Если перед этим не было открыто окно редактирования программ, то оно открывается. Название программы добавляется в закладки окна редактирования и текст программы появляется в окне.

Запуск программ на выполнение

Запустить программу можно указав мышкой ее название в списке главного окна проекта и нажать кнопку Выполнить.

Раздел Таблицы

Важным нововведением в NetBase Project является поддержка работы с электронными таблицами (ЭТ). ЭТ, как инструмент манипулирования данными, появились довольно давно и прошли большой путь совершенствования. Но они всегда рассматривались как самостоятельный программный продукт и никогда не обладали средствами гибкой интеграции с базами данных. А такой симбиоз мог бы дать возможность пользователю применять ЭТ как форму ввода данных в БД, как средство обработки данных, как средство формирования отчетов по БД и электронных бланков документов и других задач. Исходя из этих соображений была разработана Электронная Таблица NetCalc.

Создание электронной таблицы

Сделайте активным раздел Таблицы и нажмите кнопку Создать. После этого будет открыто окно редактирования ЭТ. Сама таблица получает название по-умолчанию ТАБЛИЦА 1 (или другая цифра для уникальности названия).

Редактирование существующей таблицы

Для редактирования существующей таблицы нажмите кнопку Открыть или Конструктор. Более подробно режимы редактирования электронной таблицы рассмотрены в главе 7. "Электронные таблицы".