
- •Базы данных: основные понятия
- •Индексирование
- •Введение. Для чего нужны базы данных.
- •Компоненты субд
- •1.1.2.Обобщенные структуры или модели данных.
- •1.2.Методы доступа к данным.
- •1.2.1.Методы поиска по дереву.
- •1.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.1.Иерархическая модель данных.
- •3.1.1.Структура данных.
- •3.1.2.Операции над данными, определенные в иерархической модели:
- •3.1.3.Ограничения целостности.
- •3.2.Сетевая модель данных
- •3.2.1.Структура данных.
- •3.2.2.Операции над данными.
- •3.2.3.Ограничения целостности.
- •4.1.Реляционная модель данных
- •4.1.1.Структура данных.
- •4.1.2.Свойства отношений.
- •4.2.Теория нормальных форм.
- •4.2.1.Функциональные зависимости.
- •4.2.2. 1Nf - первая нормальная форма.
- •4.2.3. 2Nf - вторая нормальная форма.
- •4.2.4. 3Nf - третья нормальная форма.
- •4.2.5. Bcnf - нормальная форма Бойса-Кодда.
- •4.2.6. Многозначные зависимости и четвертая нормальная форма (4nf).
- •4.2.7. Зависимости по соединению и пятая нормальная форма (5nf).
- •4.3.Ограничения целостности
- •4.3.1.Целостность сущностей.
- •4.3.2.Целостность ссылок
- •4.4.Операции над данными (реляционная алгебра).
- •4.4.0.Система управления базами данных leap
- •4.4.1.Операции обработки кортежей.
- •4.4.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.2.Cli - интерфейс уровня вызовов.
- •4.7.3.Odbc - открытый интерфейс к базам данных на платформе ms wIndows.
- •4.7.4.Jdbc - мобильный интерфейс к базам данных на платформе Java.
- •4.8.Навигационный подход к манипулированию данными и персональные субд.
- •4.9.Транзакции, блокировки и многопользовательский доступ к данным.
- •4.10.Как определить степень соответствия субд реляционной модели.
- •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.2.N - арные связи.
- •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.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.1.Архитектура "клиент-сервер".
- •7.1.1.Основные понятия.
- •7.1.2.Модели взаимодействия клиент-сервер.
- •7.1.3.Мониторы транзакций.
- •Основные понятия субд
5.3.3.Методология sadt (idef0).
Методология SADT (Structured Analisys and Design Technique) разработана Дугласом Т. Россом в 1969-73 годах. Она изначально создавалась для проектирования систем более общего назначения по сравнению с другими структурными методами, выросшими из проектирования программного обеспечения. IDEF0 (подмножество SADT) используется для моделирования бизнес-процессов в организационных системах и имеет развитые процедуры поддержки коллективной работы.
В терминах IDEF0 система представляется в виде комбинации блоков и дуг. Блоки представляют функции системы, дуги представляют множество объектов (физические объекты, информация или действия, которые образуют связи между функциональными блоками). Место соединения дуги с блоком определяет тип интерфейса:
Правила интерпретации модели:
Функциональный блок (функция) преобразует входные объекты в выходные
Управление определяет, когда и как это преобразование может или должно произойти
Исполнитель осуществялет это преобразование
С дугами связываются метки на естественном языке, описывающие данные, которые они представляют. Дуги показывают, как функции системы связаны между собой, как они обмениваются данными и осуществляют управление друг другом. Выходы одной функции могут быть входами, управлением или исполнителями другой.
Дуги могут разветвляться и соединяться. Ветвление означает множественность (идентичные копии одного объекта) или расщепление (различные части одного объекта). Соединение означает объединение или слияние объектов.
Каждый блок IDEF0-диаграммы может быть представлен несколькими блоками, соединенными интерфейсными дугами, на диаграмме следующего уровня. Эти блоки представляют подфункции (подмодули) исходной функции. Каждый из подмодулей может быть декомпозирован аналогичным образом. Число уровней не ограничивается, зато рекомендуется на одной диаграмме использовать не менее 3 и не более 6 блоков.
На следующем рисунке представлена IDEF0-модель деятельности описанного выше предприятия.
5.3.4.Сравнительный анализ методологий функционального моделирования.
Несмотря на то, что методология IDEF0 получила широкое распространение в российских компаниях, на наш взгляд DFD гораздо больше подходит для проектирования информационных систем вообще и баз данных в частности. DFD позволяет уже на стадии функционального моделирования определить базовые требования к данным (этому способствует разделение потоков данных на материальные, информационные и управляющие). Вообще интеграция DFD и ER (entity-relationship, "сущность-связь") моделей не вызывает затруднений. Например, можно определить список атрибутов хранилищ данных, последние на стадии информационного моделирования однозначно отображаются в сущности модели "сущность- связь".
В свою очередь, как уже отмечалось, IDEF0 больше подходит для решения задач, связанных с управленческим консультированием (перепроектированием деловых процессов, бизнес - реинжинирингом). Этому способствует также тесная связь IDEF0 с методом функционально - стоимостного анализа ABC (Activity Based Costing), позволяющим определить схему расчета стоимости выполнения той или иной деловой процедуры. Однако, существует ряд CASE - систем, предлагающих методологию IDEF0 на этапе функционального обследования предметной области. В таких системах на следующий этап передается просто список всех объектов IDEF0-модели (входы, выходы, механизмы, управление), которые затем рассматриваются на предмет включения в информационную модель.
На этом мы закончим рассмотрение способов функционального моделирования предметной области, поскольку эта тема должна быть гораздо полнее освещена в курсе, касающегося проектирования информационных систем. Подробнее о методологии SADT / IDEF0 можно узнать из книги Д.Марки и К. МакГоуэна, DFD описана в книге Г.Н. Калянова. Более полный сравнительный анализ рассмотренных здесь методологий сделан в статье Г.Н.Калянова, А.В.Козлинского и В.Н.Лебедева, указанной в списке литературы.
В предыдущей главе мы кратко рассматрели методы функционального моделирования, которые позволяют выделить первичные информационные объекты, из которых затем строятся концептуальная и реляционная модели данных. Однако, в случае достаточно простой предметной области выделение информационных объектов можно произвести и без функционального анализа. Один из способов такого проектирования структуры реляционной базы данных описан в этом и следующем разделах. В параграфе 5.6будет рассмотрен другой способ проектирования реляционной структуры, основанный на декомпозиции универсального отношения.