В таких СУБД нет жёстких ролей закрепленных за файлами, т.е. один и тот же файл в одном случае служит как главный, в другом как зависимый. Связь между элементами поддерживается СУБД.
Элемент данных – наименьшая именованная единица данных, представляющая в БД значение
Агрегат данных – именованный набор элементов данных внутри записи. Есть два вида агрегатов:
Векторы – одномерная последовательность элементов данных имеющих идентичные характеристики (массивы).
Повторяющиеся группы – набор данных, обычно с разными характеристиками, которые могут многократно повторяться внутри записи. Такой набор может состоять из элементов данных, векторов и повторяющихся записей.
Запись – экземпляр именованного набора данных, состоящего из нуля, одного или нескольких элементов или агрегатов данных.
В БД может быть объявлено произвольное количество типов записей и существовать записей одного типа.
Рисунок 8 – Схема иерархии элементов
Для отличия записей друг от друга каждой из них, при помещении в БД, назначается однозначный идентификатор-ключ. Принципиальное отличие определения типа записей КОДАСИЛ в том, что здесь каждый раз определяется не только некоторый тип записи, но и тип коллекции записей. При этом становятся определенными операции: добавление новых записей, изменение и удаление существующих, выбор записей, предоставление записей процессу. Для перемещения последовательно по коллекции вводится понятие текущей записи.
Вся логическая структура БД собирается из двух уровневых деревьев. Запись являющаяся корневой вершиной называется запись владелец. Подчиненные ей вершины – записи члены. Объединение данных типов записей представляет собой набор. Для изображения логической структуры БД обычно используется диаграмма Бахмана.
Рисунок 9 – Диаграммы Бахмана
Здесь один тип записи может быть объявлен владельцем в нескольких типах наборов. Тип записи может являться владельцем в одном типе набора и членом в другом (а, б). Тип записи может быть членом в разных наборах (в). Допускается наличие петель (г).
СУБД, реализованная по принципам КОДАСИЛ, накладывает меньше ограничений, чем система с разнотипными файлами. Это облегчает отображение предметной области в даталогическую модель. Данные системы возлагают все функции по формированию и поддержке наборов на СУБД. Языки программирования с произвольными наборами (типами) данных побуждают сосредотачивать все функции работы с наборами данных в самом типе набора. Выполнение этих функций необходимо при реализации следующих операций:
1) Добавление или исключение записи из БД.
2) Добавление или исключение записи из набора.
3) Модификация записи таким образом, что изменяется её логическая позиция внутри набора.
4) Модификация записи таким образом, что изменяется набор, в котором она участвует.
Наиболее известная реализация КОДАСИЛ – СУБД сеть, компас.