- •90 Символы, отношения и графы
- •Введение План:
- •Введение. Предмет и задачи курса, понятие предметной области
- •Документальные информационно - поисковые системы
- •Сетевые технологии передачи данных
- •Информационно - поисковые системы в Интернет
- •Фактографические информационные системы
- •Экспертные системы, базовые понятия
- •Компоненты и свойства системы
- •Понятие системы Основные составляющие системы.
- •Состояние системы3
- •Виды состояний4
- •Статическое и динамическое состояние
- •Установившееся и переходное динамическое состояние
- •Исходное и возмущенное состояние
- •Устойчивое и неустойчивое состояние
- •Свободное и вынужденное состояние
- •Обратимые и необратимые состояния.
- •Тема. Данные Общие понятия и определения
- •Концепция трех схем хранения данных
- •Технология анализа предметной области
- •Анализ концептуальных требований и информационных потребностей
- •Выявление информационных объектов и связей между ними
- •Построение концептуальной модели предметной области
- •Логическое проектирование
- •Реляционная модель данных
- •Понятия математической логики
- •Сетевая модель данных
- •Организация веерного отношения в памяти эвм
- •Алгоритм получения двухуровневой структуры сети
- •Отображение информационной схемы на сетевую модель данных
- •Иерархическая модель данных
- •Сравнение моделей данных
- •Средства для описания данных Символы
- •Отношения
- •Некоторые свойства графов
- •Деревья
- •Раскрашенные графы как инструмент представления данных
- •Методы ускорения доступа к данным
- •Адресная функция
- •Построение хеш-функции.
- •Ключи состоящие из нескольких слов, ключи переменной длины
- •Разрешение коллизий методом "цепочек".
- •Индексы
- •Тема 7. Проектирование реляционных бд на основе принципов нормализации
- •Системный анализ предметной области
- •Дата логическое проектирование
- •Формы нормальных отношений
- •Тема 8 Нормализация отношений
- •. Вторая нормальная форма
- •Третья нормальная форма
- •Нормальная форма Бойса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •Лекция информационные системы Понятие информационной системы
- •Компоненты информационной системы
- •Архитектура информационной системы
- •История развития информационных систем
- •Процессы, обеспечивающие работу информационной системы
- •Принципы построения информационной системы
- •Структура информационной системы
- •2.3.1. Информационное обеспечение
- •2.3.2. Техническое обеспечение
- •2.3.3. Математическое и программное обеспечение
- •2.3.4. Организационное обеспечение
- •2.3.5. Правовое обеспечение
- •Типы, оценка и области применения информационных систем Классификация информационных систем по функциональному признаку
- •Система обработки данных
- •Автоматизированная система управления
- •Информационно-поисковые системы
- •Классификация информационных систем по профессиональному признаку
- •Типы информационных систем
- •Информационная система оперативного уровня
- •Информационные системы специалистов
- •Информационные системы для менеджеров среднего звена
- •Стратегические информационные системы
- •Классификация по сфере применения
- •Использование информационных систем в практической деятельности Информационные системы в бизнесе
- •Бухгалтерские информационные системы (буис)
- •Особенности функционирования буис на крупных предприятиях
- •Особенности функционирования буис на предприятиях малого и среднего бизнеса
- •Банковские информационные системы
- •Справочно-правовые информационные системы
- •Рассмотрим наиболее известные системы, существующие в нашей стране. Система "Консультант Плюс"
- •Система "Гарант"
- •Информационная система «Договор»
- •Системы распознавания и перевода текста Системы оптического распознавания текста
- •Системы электронного перевода
- •Электронные словари
- •Корпоративные информационные системы: технологии и решения Общий взгляд на предприятия с точки зрения информационной системы
- •Основные этапы создания корпоративной ис
- •Информационное обследование
- •Архитектура ис
- •Выбор субд
- •Выбор системы автоматизации документооборота
- •Выбор программных средств для управления документами
- •Выбор специализированных прикладных программных средств.
- •Общие выводы
Алгоритм получения двухуровневой структуры сети
1. Для каждой функциональной зависимости вида А В создается файл Fi(A,B). Каждый блок взаимно однозначных соответствий также порождает файл с ключом, равным старшему по объему понятия атрибуту.
В нашем примере будут созданы следующие файлы (ключи помечены знаком #):
F1(НИИ #, Директор, Адрес),
F2(0тдел #, НИИ, Ксотр),
FЗ(Тема #, Датанач, Датакон, Приор),
F4(ФИО #, Отдел),
F5(Тема #, Работа #, ФИО #, Прод),
F6(Тема #, Заказ #, Обфин).
2. У всех пар файлов, полученных на шаге 1, проверяется условие для ключей (Ki является частью Kj). Если оно соблюдается, то из соответствующих файлов создается веерное отношение Wij(Fi,Fj).
В нашем примере получим W35(F3,F5), W45(F4,F5), W36(F3,F6).
3. Если на шаге 2 будут получены два веерных отношения Wij и Wjk, то все атрибуты файла Fi передаются в файл Fj, и Fi вместе с Wij уничтожаются.
В нашем примере таких веерных отношений нет.
4. Атрибуты, не вошедшие в состав веерных отношений на шаге 2, добавляются в те файлы Fn (и содержащие Fn веерные отношения), где они будут не ключевыми. При наличии нескольких подходящих файлов предпочтение отдается основным файлам. Если требуемые Fn отсутствуют, то создается новый файл из атрибутов первичного ключа, и повторяются шаги 2, 3,4.
В нашем примере F4 расширяется атрибутами НИИ, Директор, Адрес, Ксотр.
Н
а
рис.3.10 показана структура соответствующей
двухуровневой БД.
Структуры основных отношений показаны в верхней части рисунка, а структуры зависимых отношений - внизу.
Перед рассмотрением операций в сетевой базе данных следует отметить, что существуют 2 различных подхода к обработке данных средствами СУБД.
1. Применение базового языка программирования. При этом подходе для манипулирования данными в СУБД разрабатывается универсальный язык программирования, обеспечивающий обращения к базе данных, работу с переменными и остальные возможности. Примером СУБД с базовым языком является dBASE.
2. Применение включающего языка программирования. Включающий язык - это обычный язык программирования (например, Delphi), в котором обращения к базе данных реализуются с помощью подпрограмм. Среди параметров, передаваемых подпрограмме, указываются название операции, имена обрабатываемых отношений и др. Включающий язык используется практически во всех известных сетевых СУБД. Это объясняется принципом доступа к данным в сетевой базе данных, который может быть назван навигационным.
Центральным для навигационного принципа доступа является понятие "текущая запись" в отношениях базы данных. Текущей записью в отношениях после выполнения некоторой операции является значение отношения, на котором операция завершилась. Следующая операция начинается с этой текущей записи, а в результате выполнения операции положение текущей записи изменяется, (завершение операции может изменить положение текущей записи и в других отношениях).
Рассмотрим операции выборки для двухуровневой сетевой базы данных. Чтобы не пользоваться синтаксисом включающего языка, условимся записывать лишь название операции и условие выборки. Примеры выборки относятся к сетевой структуре, изображенной на рис.2.4. В этой базе данных на основном отношении Сотрудник и зависимом Зарплата установлены два веерных отношения Осн - основная зарплата и Доп - дополнительная зарплата.
1. Операция OBTNM - получить запись в основном отношении.
OBTNM (Сотрудник * "Иванов")
После выполнения указанной выборки в отношении Сотрудник в качестве текущей будет установлена запись со значением первичного ключа "Иванов". Затем атрибуты этой текущей записи обрабатываются средствами включающего языка (становятся значениями переменных, печатаются и т.п.).
2. Операция OBTNF - получить запись в зависимом отношении.
OBTNF(Сотрудник * "Иванов", Зарпл*0сн)
При выборке в зависимом отношении текущей записью становится следующая запись зависимого отношения относительно той, которая раньше была текущей в зависимом отношении. Условие выборки содержит указание на текущую запись в основном отношении, а также на имя зависимого отношения и имя веерного отношения.
В результате выполнения двух операторов
OBTNM (Сотрудник * "Иванов")
ОВТМР(Сотрудник * "Иванов", Зарпл*0сн)
при условии, что обращения к отношению Зарпл ранее не производились, будут получены сведения о первой (с момента поступления на работу) основной зарплате Иванова.
Средствами включающего языка может быть организован циклический процесс, и тогда возможны более сложные варианты доступа.
Рассмотрим, например, последовательность операций
OBTNM (Сотрудник * "Иванов")
Ml: OBTNF(Сотрудник * "Иванов", Зарпл*0сн)
print Зарпл
goto Ml
Оператор print печатает все атрибуты текущей записи отношения Зарпл. На первый взгляд использование безусловного перехода создает зацикливание при выполнении. Однако операторы выборки в сетевых СУБД по окончании выборки вырабатывают код возврата, и выход за последнюю запись в отношении Зарпл сопровождается специальным значением этого кода в команде OBTNF, означающим неудачное завершение выборки. Значение кода возврата всегда проверяется средствами включающего языка, и этим обеспечивается выход из цикла. Практически приведенная выше последовательность операций напечатает все сведения о получении Ивановым основной заработной платы.
В сетевых СУБД количество операций выборки достаточно велико. Мы рассмотрели минимально необходимое множество вариантов выборки. Остальные варианты выборки создают более удобные для прикладного программиста возможности реализации запросов.
Рассмотрим реализацию в сетевых СУБД функций, аналогичных операциям проекции и соединения для реляционных систем. Оказывается, что аналог операции проекции для сетевой СУБД не нужен, так как соответствующие функции выполняет описание подсхемы сетевой базы данных. Схемой сетевой БД называется описание всех отношений с указанием атрибутного состава и ключей каждого отношения, а также веерных отношений. В прикладной программе имеется возможность объявить часть отношений сетевой базы данных, в каждом отношении - некоторое подмножество атрибутов (с обязательным оставлением атрибутов-ключей) и лишь некоторые веерные отношения. Соответствующее описание данных называется подсхемой.. Отношения, веерные отношения и атрибуты, не указанные в подсхеме, становятся недоступными прикладной программе. В отличие от операции проекции база данных, соответствующая подсхеме, не создается физически, а происходит ограничение доступа к исходной БД, которая определена в схеме.
Аналог операции соединения в сетевой СУБД также не нужен, но по другой причине. Дело в том, что результаты допустимых соединений фактически зафиксированы в сетевой СУБД с помощью цепочек адресов связи. Доступ к результатам возможного соединения начинается от некоторого основного отношения к вееру значений в соответствующем зависимом отношении, достигаемые при этом значения ключей в зависимом отношении запоминаются и используются для поиска в каком-то другом основном отношении, от этого основного отношения возможен переход к новому зависимому и т.д.
