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

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

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

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

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

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

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

· Наборы называются списками записей;

· Наборы и члены наборов при создании не описываются каким-либо типом. Тип набора определяется типом ссылочного поля записи-владельца;

1. Для поля типа “Жесткая” ссылка ...все записи-члены набора будут обязательными и автоматическими.

2. Для поля типа “Мягкая” ссылка ...все записи-члены набора будут необязательными и ручными, причем наборы должны быть уже созданы посредством “Жестких” ссылок ....

· Наборы не могут состоять одновременно из обязательных и необязательных записей-членов набора, однако могут ссылаться на другие наборы посредством ссылочных полей.

· Введено понятие единичный набор, т.е. набор, состоящий только из одной записи-члена набора.

· Обязательные записи-члены наборов могут быть ручными записями-членами единичных наборов.

· Иерархическая и сетевая модели данных реализованы в NetBase на основе файлов данных реляционной структуры, связанных между собой. Связи между файлами хранятся в специально организованных файлах, называемых BackTracking Tags (BTT).

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

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

Сетевая модель данных CODASYL - student2.ru Сетевая модель данных CODASYL - student2.ru Сетевая модель данных CODASYL - student2.ru

Рис. 3.2.

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

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

· могут быть длиной до 25 символов;

· не должны начинаться с пробела, хотя могут содержать пробелы;

· могут содержать любые символы, кроме кавычек "", квадратных [], фигурных {} и круглых () скобок, отдельного символа номера #, а также комбинации ->;

· не должны совпадать с именами других полей в этом же файле данных;

· должны кратко описывать содержимое полей.

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

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

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

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

Байт Поля типа Байт могут содержать целочисленные значения от 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 значащими цифрами.

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

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

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

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

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

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

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

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

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

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

Наши рекомендации