В качестве примера вновь рассмотрим ООСУБД Versant. Для всех объектов возможно сохранение всех версий их изменения. Создается граф происхождения версий, поддерживающий ряд свойств.
1. Доступ к любой ранее сохраненной версии. Благодаря этому свойству возможно извлечение из базы данных, например, случайно удаленных данных.
2. Установка версии по умолчанию. Это свойство объясняет причину возникновения ветвей в графе происхождения версий, так как любая порожденная версия создаст ветвь от установленной текущей, не последней версии.
3. Удаление версии. Вполне логичным является необходимость удаления некоторых версий (например, промежуточных или случайно порожденных) из графа происхождения версий.
Один из ключевых моментов функционирования любой СУБД — хранилище данных. Обычно база данных объединяет несколько хранилищ, каждое из которых ассоциируется с одним или несколькими файлами. Хранятся как метаданные (класс, атрибут, определения операций), так и пользовательские данные. Выделяют три типа хранилищ:
1. системное хранилище (system store) используется для хранения системы классов, создается на этапе установки Jasmine и содержит информацию о семействах классов и пользовательских хранилищ. Возможно определение пользовательских хранилищ для помещения в них описаний пользовательских семейств классов.
2. пользовательское хранилище (user store) служит для хранения пользовательских объектов, например Persons, Projects или Locations. Пользовательские хранилища могут располагаться внутри системного.
3. рабочее хранилище (work store) предназначено для поддержки временной информации в ходе сеанса работы, например результатов поисковых запросов.
Другой пример – организация хранилищ в ООСУБД Versant, все базы данных в которой делятся на групповые и персональные. База данных состоит из нескольких физических разделов:
1. системный раздел (system volume), который создается автоматически при создании базы данных;
2. раздел данных (data volume), который может быть добавлен для увеличения доступного размера базы;
3. раздел логического протокола (logical log volume) и раздел физического протокола (physical log volume) предназначены для хранения служебной информации о транзакциях, блокировках для обеспечения возможности отката транзакций и восстановления базы.
Литература:
1. Аркадий Андреев, Дмитрий Березкин, Роман Самарев, "Внутренний мир объектно-ориентированных СУБД" \ Открытые системы , март 2001, стр 47-57.
Приложение Б.Описание структуры учебной базы данных.
Отношение "Students" содержит информацию об обучающихся студентах. StNo – уникальный, в БД, код студента GrNo – код группы, в которой обучается студент StName – фамилия студента StCity – Код города, в котором проживет студент Отношение "Cities" содержит информацию о городах CityNo – код города CityName – название города RgNo – код области, в которой расположен город Отношение "Regions" содержит информацию об областях RgNo – код области RgName – название области Отношение "Teachers" содержит информацию о сотрудниках и преподавателях TNo - уникальный, в БД, код сотрудника (преподавателя) TName – фамилия преподавателя TPosition – должность, занимаемая преподавателем TChiefNo – код сотрудника, являющегося руководителем для данного преподавателя | Отношение "Groups" содержит информацию о группах GrNo – код группы EnterYear – год образования группы GrName – название группы Отношение "WorkPlan" содержит информацию о рабочем плане. Рабочий план определяет, какие дисциплины, какой группе, кем, в каком объеме и когда читаются. GrNo – код группы SubjNo – код дисциплины Semester - семестр TNo – код преподавателя Hours – количество часов Отношение "Subjects" содержит информацию о предметах SubjNo – код предмета SubjName – название предмета Отношение "Marks" содержит информацию о полученных студентами оценках StNo – код студента SubjNo – код дисциплины DocNo – номер документа (экз. ведомость, разрешение на пересдачу и т.д.) Mark - оценка |