- •Введение
- •1. Информационная система (ис):
- •2.Типы и структуры данных
- •2.1.Основные типы данных
- •2.1.Методы доступа к данным
- •2.1.1.Методы поиска по дереву
- •2.2.2.Хеширование
- •3. Представление данных с помощью модели "сущность-связь".
- •3.1.Элементы модели
- •3.2.Диаграмма "сущность-связь".
- •4. Даталогические модели
- •4.1.Иерархическая модель данных
- •4.1.1.Структура данных
- •4.1.2.Операции над данными, определенные в иерархической модели:
- •4.1.3. Ограничения целостности
- •4.2. Сетевая модель данных
- •4.2.1. Структура данных
- •4.2.2.Операции над данными
- •4.3. Реляционная модель данных
- •1. Основные понятия
- •4.3.1. Структура данных
- •4.3.2. Фундаментальные свойства отношений
- •4.3.2.1. Отсутствие кортежей-дубликатов
- •4.3.2.2. Отсутствие упорядоченности кортежей
- •4.3.2.3. Отсутствие упорядоченности атрибутов
- •4.3.2.4. Атомарность значений атрибутов
- •4.3.3.Свойства отношений.
- •4.3.4. Реляционная модель и модель сущность - связь
- •4.3.4.1. Преобразование er-модели в реляционную модель
- •5. Языки запросов к реляционным базам данных
- •5.1. Реляционная алгебра
- •Общая интерпретация реляционных операций
- •Замкнутость реляционной алгебры и операция переименования
- •Правила записи выражений реляционной алгебры
- •5.2. Реляционное исчисление кортежей
- •5.3. Реляционное исчисление доменов
- •5.3. Ограничения реляционных баз данных
- •5.4. Постреляционные субд
- •6. Проектирование информационных систем и баз данных
- •Информационное моделирование процессов предметной области и применение потоковых диаграмм
- •7. Проектирование реляционных баз данных с использованием нормализации
- •7.1. Основные свойства нормальных форм
- •7.2. Функциональная зависимость
- •2. Ни для какого зависимость
- •7.2.1. Аксиомы функциональных зависимостей
- •7.2.2. Вычисление замыканий
- •7.2.3. Полная функциональная зависимость
- •7.2.4. Транзитивная функциональная зависимость
- •7.2.5.2. Вторая нормальная форма
- •7.2.5.3. Третья нормальная форма
- •7.2.5.4. Нормальная форма Бойса-Кодда
- •7.2.5.5. Четвертая нормальная форма
- •7.2.5.6. Пятая нормальная форма
- •7.2.6. Функциональные зависимости и проектирование базы данных.
- •Дополнительная литература
Информационное моделирование процессов предметной области и применение потоковых диаграмм
Языки потоковых диаграмм, которые мы рассмотрим в этом разделе курса, акцентируют внимание на действиях-процессах, но с точки зрения приема-передачи-хранения-преобразования информации, т.е. откуда (или от кого) действия принимают информацию, куда (или кому) ее передают и как (посредством чего и кого) они преобразуют информацию. Иначе говоря, эти языки информационного моделирования процессов акцентируют внимание на информационных связях между действиями-процессами, а не на связях по управлению (порядком выполнения).
В таких языках используются различные виды графовых (сетевых) представлений.
Двудольный ориентированный граф: два типа вершин - хранилища данных и процессы (обработки данных), ориентированные ребра - потоки данных (DataFlow), которые показывают из каких хранилищ процессы берут входные данные, и в какие хранилища посылают результаты своей работы.
Простой ориентированный граф: вершины - процессы, ориентированные ребра - потоки данных. Такое представление показывает – «кто (процесс) на кого (процесс) работает и что (поток данных) при этом получает и передает».
Представление, двойственное предыдущему: вершины - данные, ориентированные ребра – процессы (потоки работ-преобразований, WorkFlow), использующие входные данные и создающие выходные. Представления этого вида заметно больше, чем предыдущие, акцентируют внимание на данных, поэтому их можно трактовать и как модели данных.
Конкретные языки информационного моделирования, естественно, содержат и другие средства - в частности, внешние объекты - конечные пользователи и другие объекты, обменивающиеся данными с информационной системой; средства декомпозиции сложных данных и процессов...
ПОТОКОВЫЕ ОПЕРАЦИОННЫЕ ДИАГРАММЫ С ХРАНИЛИЩАМИ (DFD - Data Flow Diagramming).
Базовые элементы языка.
Д
Имя действия (глагол)
ействие (процесс)
Имя потока
(существительное)
Поток данных
Имя
хранилища (существительное)
Хранилище данных
Внешний объект
Группируя более простые действия и данные в более сложные, мы получаем возможность отвлечься (абстрагироваться) от внутренних деталей и сконцентрировать внимание на взаимосвязях между этими сложными действиями и данными. А при необходимости, мы можем сконцентрировать внимание на одном сложном действии или данном, рассмотрев его детализацию (конкретизацию), и отвлечься от внешней для него среды.
Группировка (композиция) и разгруппировка (декомпозиция) действий (процессов) представляется многоуровневыми потоковыми диаграммами, сложное действие представляется (прямоугольником) как единое целое в одной диаграмме и как набор взаимосвязанных действий в детализирующей диаграмме.
Группировка (композиция) и разгруппировка (декомпозиция) потоков представляется как их слияние и разветвление соответственно.
ЗАДАЧА о хозяине, его собаке и его друге.
Рассмотрим пример:
действующие объекты процесса - собака, ее хозяин и друг хозяина;
процесс - вечером хозяин и его друг выходят на прогулку и идут навстречу, а собака бегает между ними, пока они не встретятся.
Необходимо определить количество пробегов собаки до момента встречи хозяина и его друга.
PROGRAM Pp; VAR
S0{начальное расстояние},
Sk{конечное расстояние}, Vh{скорость хозяина},
Vd{скорость друга}, Vs{скорость собаки}:REAL;
S{текущее расстояние},t{время}:REAL;
k{число пробегов}:INTEGER;
C{хозяин/друг}:CHAR;
BEGIN READ(S0,Sk,Vh,Vd,Vs); S:=S0; C:='Х'; k:=0;
WHILE S>=Sk DO
BEGIN IF C='Х' THEN BEGIN C:='Д'; t:=S/(Vs+Vd) END
ELSE BEGIN C:='Х'; t:=S/(Vs+Vh) END;
S:=S-t*(Vh+Vd); k:=k+1 END;
WRITE(k) END.
ПРИМЕР потоковой операционной диаграммы с хранилищами для задачи о бегающей собаке.
Типы потоков и действий. Реальные действия (процессы) и связывающие их потоки могут иметь специфические особенности, которые желательно отобразить в информационной модели. Для этих целей в языках потоковых диаграмм обычно имеются дополнительные средства.
Потоки можно классифицировать на:
чисто информационные, их особенность состоит в том, что при разветвлении информация может дублироваться и поступать по всем ветвям (например, информация о наличии финансовых средств может поступить от одного источника нескольким адресатам);
материальные, их особенность состоит в том, что при разветвлении содержимое потока не дублируется, а реально распределяется по ветвям (например, исходящие из одного источника финансовые средства поступят нескольким адресатам не в общей сумме, а в соответствующих долях);
управляющие (изображены в вышеприведенном примере пунктирными стрелками, причем связывают действия напрямую – без выделения соответствующего хранилища данных), их особенность состоит в том, что информация такого потока имеет директивный характер, она неким образом ограничивает или предписывает условия выполнения действия.
В языке могут быть специальные элементы, которые используются в точках разветвления и слияния потоков, и позволяют фиксировать различия в семантике различных видов разветвления и слияния.
Аналогично можно классифицировать (и соответственно по-разному обозначать) действия (процессы):
действия приема, передачи и преобразования потоков;
управляющие действия, имеющие специфический директивный характер (в вышеприведенном примере к таким отнесены «действия проверки условия», изображенные пунктирными прямоугольниками).