
- •1.Представление данных
- •1.1.Типы и структуры данных
- •1.1.1.Основные типы данных.
- •1.1.2.Обобщенные структуры или модели данных.
- •1.2.Методы доступа к данным.
- •1.2.1.Методы поиска по дереву.
- •1.2.2.Хеширование.
- •2.Модель "Сущность-связь"
- •2.1.Представление данных с помощью модели "сущность-связь".
- •2.1.1.Назначение модели.
- •2.1.2.Элементы модели.
- •2.2.Диаграмма "сущность-связь".
- •Выделим интересующие нас сущности и связи:
- •2.3.Целостность данных.
- •2.4.Обзор нотаций, используемых при построении диаграмм "сущность-связь"
- •2.4.1.Нотация Чена.
- •2.4.2.Нотация Мартина
- •2.4.3.Нотация idef1x.
- •2.4.4.Нотация Баркера.
- •3.Дореляционные модели
- •3.1.Иерархическая модель данных.
- •3.1.1.Структура данных.
- •3.1.2.Операции над данными, определенные в иерархической модели:
- •3.1.3.Ограничения целостности.
- •3.2.Сетевая модель данных
- •3.2.1.Структура данных.
- •3.2.2.Операции над данными.
- •3.2.3.Ограничения целостности.
- •4.Реляционные бд
- •4.1.Реляционная модель данных
- •4.1.1.Структура данных.
- •4.1.2.Свойства отношений.
- •4.2.Теория нормальных форм.
- •4.2.1.Функциональные зависимости.
- •4.2.5. Bcnf - нормальная форма Бойса-Кодда.
- •4.2.6. Многозначные зависимости и четвертая нормальная форма (4nf).
- •4.2.7. Зависимости по соединению и пятая нормальная форма (5nf).
- •4.3.Ограничения целостности
- •4.3.1.Целостность сущностей.
- •4.3.2.Целостность ссылок
- •4.5.Реляционное исчисление.
- •4.6.Язык sql
- •4.6.1.Типы данных sql.
- •4.6.2.Ddl: Операторы создания схемы базы данных.
- •Операторы базы данных
- •Создание и удаление таблиц
- •4.6.3.Ddl: Операторы создания индексов.
- •4.6.4.Ddl: Операторы управления правами доступа.
- •4.6.5.Dml: Команды модификации данных.
- •Добавить новую запись в таблицу:
- •Модификация записей:
- •Удаление записей
- •4.6.6.Dml: Выборка данных.
- •4.6.7.Dml: Выборка из нескольких таблиц.
- •4.6.8.Dml: Вычисления внутри select.
- •4.6.9.Dml: Групировка данных.
- •4.6.10.Dml: Cортировка данных.
- •4.6.11.Dml: Операция объединения.
- •4.6.12.Использование представлений.
- •4.6.13.Другие возможности sql.
- •4.7.Вопросы практического програмирования.
- •4.7.1.Использование специализированных библиотек и встраиваемого sql.
- •4.7.3.Odbc - открытый интерфейс к базам данных на платформе ms wIndows.
- •4.7.4.Jdbc - мобильный интерфейс к базам данных на платформе Java.
- •4.8.Навигационный подход к манипулированию данными и персональные субд.
- •4.9.Транзакции, блокировки и многопользовательский доступ к данным.
- •4.10.Как определить степень соответствия субд реляционной модели.
- •5.Проектирование реляционных бд
- •5.1.Этапы проектирования данных.
- •5.2.Инструментальные средства проектирования информационных систем.
- •5.3.Методологии функционального моделирования.
- •5.3.1.Диаграммы потоков данных. Нотация Йордона - Де Марко
- •5.3.2.Другие нотации, используемые при построении диаграмм потоков данных.
- •5.3.3.Методология sadt (idef0).
- •5.3.4.Сравнительный анализ методологий функционального моделирования.
- •5.4.Концептуальное моделирование. Пример построения модели "сущность-связь".
- •5.5.Правила порождения реляционных отношений из модели "сущность-связь".
- •5.5.1.Бинарные связи
- •5.5.3.Иерархические связи.
- •5.6.Проектирование реляционной базы данных на основе декомпозиции универсального отношения.
- •5.7.Обзор некоторых case-систем.
- •5.7.1.Power Designer компании Sybase.
- •5.7.2.Silverrun компании Silverrun Technologies Ltd.
- •5.7.3.BpWin и erWin компании LogicWorks.
- •5.7.4.Designer/2000 компании Oracle.
- •6.Направления развития бд.
- •6.1.Ограничения реляционных баз данных.
- •6.2.Постреляционные субд.
- •6.3.Объектно-ориентированные субд.
- •6.3.1.Объектно-ориентированная парадигма.
- •6.3.2.Объектно-ориентированные субд.
- •6.3.3.Стандарт odmg.
- •6.3.4.Объектные расширения реляционных субд. Язык sql-3.
- •6.4.Объектно-реляционные субд.
- •6.5.Нечисловая обработка и ассоциативные процессоры.
- •7.Физическая организация бд
- •7.1.Архитектура "клиент-сервер".
- •7.1.1.Основные понятия.
- •7.1.2.Модели взаимодействия клиент-сервер.
- •7.1.3.Мониторы транзакций.
- •7.2.Обработка распределенных данных.
- •7.3.Структура сервера базы данных.
- •Базы знаний.
- •8.1.Понятие системы баз знаний.
- •8.2.Структура и функции системы баз знаний.
- •8.3.Инструментальные средства построения систем баз знаний.
- •Литература.
6.3.2.Объектно-ориентированные субд.
Появление объектно-ориентированных СУБД вызвано потребностями программистов на ОО-языках, которым были необходимы средства для хранения объектов, не помещавшихся в оперативной памяти компьютера. Также важна была задача сохранения состояния объектов между повторными запусками прикладной программы. Поэтому, большинство ООСУБД представляют собой библиотеку, процедуры управления данными которой включаются в прикладную программу. Примеры реализации ООСУБД как выделеного сервера базы данных крайне редки.
В качестве примера рассмотрим объектно-ориентированную СУБД ObjectStore, которая обеспечивает долговременное хранение в базе данных объектов, созданных программами на языках C++ и Java. Вся работа с объектами ведется обычными средствами включающего ОО-языка. При этом СУБД как бы расширяет виртуальную память операционной системы. Происходит это следующим образом. Когда прикладная программа обращается к объекту, то ищет его по адресу в оперативной памяти. Нужная страница оперативной памяти может быть вытеснена в виртуальную память (область хранения неиспользуемых страниц оперативной памяти на диске). Если объекта с таким адресом в виртуальной памяти не существует, то операционная система генерирует ошибку. СУБД эту ошибку перехватывает и извлекает объект из базы данных.
ObjectStore поддерживает транзакции (в данный момент времени может существовать только одна транзакция), допускает методы доступа: хеш-таблица для несортированных данных и B-дерево для сортированных, также возможно использование SQL.
Бесплатную копию ObjectStore можно получить с веб-сервера компании Object Design Inc.
6.3.3.Стандарт odmg.
ODMG (Object Data Management Group) - консорциум поставщиков ООБД и других заинтересованных организаций, созданный в 1991 г. Его задачей является разработка стандарта на хранение объектов в базах даннных. В настоящее время опубликован вторая версия стандарта, которую так и называют ODMG 2.0. Рассмотрим кратко основные положения этого документа.
Стандарт на хранение объектов ODMG 2.0 разработан на основе трех существующих стандартов: управление базами данных (SQL), объекты (стандарты OMG - Object Management Group) и стандарты на объектно-ориентированные языки программирования (C++, Smalltalk, Java).
ODMG добавляет возможности взаимодействия с базами данных в объектно-ориентированные языки программирования: определяются средства долговременного хранения объектов и расширяется семантика языка, вносятся операторы управления данными. Стандарт состоит из нескольких частей:
Объектная модель - унифицированная основа всего стандарта. Она расширяет объектную модель консорциума OMG (см. параграф 6.3.1) за счет введения таких свойств как связи и транзакции для обеспечения функциональности, требуемой при взаимодействии с базами данных. Ключевые концепции объекной модели ODMG:
наделение объектов такими свойствами как атрибуты и связи
методы объектов (поведение)
множественное наследование
идентификаторы объектов (ключи)
определение таких совокупностей объектов как списки, наборы, массивы и т.д.
блокировка объектов и изоляция доступа
операции над базой данных
Язык описания объектов (ODL - Object Defifnition Language) - средство определения схемы базы данных (по аналогии с DDL в реляционных СУБД). ODL является расширением IDL (Interface Definition Language - язык описания интерфейсов) модели OMG и предоставляет средства для определения объектных типов, их атрибутов, связей и методов. ODL создает слой абстрактных описаний так, что схема базы данных становится независима как от языка программирования, так и от СУБД. ODL рассматривает только описание объектных типов данных, не вдаваясь в детали реализации их методов. Это позволяет переносить схему БД между различными ODMG-совместимыми СУБД и языками программирования, а также транслировать ее в другие DDL.
Язык объектных запросов (OQL - Object Query Language) - SQL - подобный декларативный язык, который предоставляет эффективные средства для извлечения объектов из базы данных, включая высокоуровневые примитивы для наборов объектов и объектных структур. Синтаксис опретора SELECT, определенный SQL-92, является подмножеством OQL, это гарантирует, что SELECT-утверждения, выполняемые над реляционными таблицами, сохранят работоспособность и с наборами объектов ODMG. OQL-запросы могут вызываться из ОО-языка, точно также из OQL-запросов могут делаться обращения к процедурам, написанным на OO-языке. OQL предоставляет средства обеспечения целостности объектов (вызов объектных методов и использование собственных операторов изменения данных).
Связывание с ОО-языками. Стандарт связывания с C++, Smalltalk и Java определяет Object Manipulation Language (OML) - язык манипулирования объектами, который расширяет базовые ОО-языки средствами манипулирования и хранения объектов. Также включаются OQL, средства навигации и поддержка транзакций. Каждый ОО-язык имеет свой собственный OML, поэтому разработчик остается в одной языковой среде, ему нет необходимости разделять средства программмирования и доступа к данным.
Более подробно содержание стандарта ODMG (более ранней его версии) рассмотрено в статье Л.А.Калиниченко Стандарт систем управления объектными базами данных ODMG-93: краткий обзор и оценка состояния. СУБД N 1, 1996.