
- •Вторая часть лекций по базам данных. Модели Данных.
- •2.1. Базы данных, субд, банк данных.
- •1. Определение структуры создаваемой базы данных, ее инициализация и проведение начальной загрузки.
- •2. Предоставление пользователям возможности манипулирования данными (выполнение вычислений, разработка интерфейса ввода/вывода, визуализация).
- •3. Обеспечение логической и физической независимости данных.
- •4. Защита логической целостности базы данных.
- •5. Защита физической целостности.
- •6. Управление полномочиями пользователей на доступ к базе данных.
- •7. Синхронизация работы нескольких пользователей.
- •8. Управление ресурсами среды хранения.
- •9. Поддержка деятельности системного персонала.
- •2.2. Различные модели организации работы пользователей с базой данных
- •2.2.1. Модель с централизованной архитектурой
- •2.2.2. Модель с автономными персональными эвм
- •2.2.3. Модель вычислений с сетью и файловым сервером (архитектура «файл-сервер»)
- •2.2.4. Распределенная модель вычислений (архитектура «клиент – сервер»)
- •2.2.5. Распределенная модель вычислений (Клиент – сервер. Трехзвенная (многозвенная) архитектура)
- •2.3. Концептуальное моделирование базы данных
- •2.3.1. Сложный пример предметной области
- •2.3.2. Способы описания предметной области
- •2.3.3. Описание информационного представления предметной области
- •2.3.4. Описание информационных потребностей пользователя
- •2.3.5. Различные представления о данных в базах данных
- •2.3.6. Построение концептуальной модели
- •2.3.7. Средства автоматизированного проектирования концептуальной модели
- •2.4. Модели данных субд как инструмент представления концептуальной модели
- •2.4.1. Общие представления о модели данных
- •2.4.2. Сетевая модель данных
- •2.4.3. Иерархическая модель данных
- •2.4.4. Реляционная модель данных
- •2.5. Базовые понятия реляционной модели данных
- •2.5.1. Общая характеристика реляционной модели данных
- •1. Типы данных
- •2. Домены
- •3. Отношения, атрибуты, кортежи отношения
- •3. Свойства отношений
- •4. Первая нормальная форма
- •2.5.2. Манипулирование данными в реляционной модели
- •1. Объединение
- •2. Пересечение
- •3. Вычитание
- •4. Декартово произведение
- •5. Выборка (ограничение, селекция)
- •6. Проекция
- •7. Соединение
- •8. Деление
- •3.2.2. 1Нф (Первая Нормальная Форма)
- •3.2.3. Функциональные зависимости
- •3.2.4. 2Нф (Вторая Нормальная Форма)
- •3.2.5. 3Нф (Третья Нормальная Форма)
- •3.2.6. Алгоритм нормализации (приведение к 3нф)
- •3.2.7. Сравнение нормализованных и ненормализованных моделей
- •3.2.8. Нфбк (Нормальная Форма Бойса-Кодда)
- •3.2.9. 4Нф (Четвертая Нормальная Форма)
- •3.2.10. 5Нф (Пятая Нормальная Форма)
- •3.2.11. Продолжение алгоритма нормализации (приведение к 5нф)
- •3.3. Элементы модели "сущность-связь"
- •3.3.1. Основные понятия er-диаграмм
- •3.3.2. Пример разработки простой er-модели
- •3.3.2. Концептуальные и физические er-модели
- •Типы данных
- •Константы
- •Выражения
- •Встроенные функции
- •Отсутствующие значения
- •3.1.2. Простые запросы на выборку
- •Инструкция select
- •Простые запросы
- •Повторяющиеся строки (предикат distinct)
- •Отбор строк (предложение where)
- •Условие отбора
- •Составные условия отбора (операторы or, and, not)
- •Сортировка результатов запроса (предложение order by)
- •Объединение результатов нескольких запросов (оператор union)
- •3.1.3. Многотабличные запросы на выборку (объединения) Простое объединение таблиц (объединение по равенству)
- •Объединение таблиц по неравенству
- •Особенности многотабличных запросов
- •Внутренняя структура объединения таблиц
- •Внешнее объединение таблиц
2.3. Концептуальное моделирование базы данных
Определим следующие понятия:
Предметная область - это часть реального мира, данные о которой мы хотим отразить в базе данных. Например, в качестве предметной области можно выбрать бухгалтерию какого-либо предприятия, отдел кадров, банк, магазин и т.д. Предметная область бесконечна и содержит как существенно важные понятия и данные, так и малозначащие или вообще не значащие данные. Так, если в качестве предметной области выбрать учет товаров на складе, то понятия "накладная" и "счет-фактура" являются существенно важными понятиями, а то, что сотрудница, принимающая накладные, имеет двоих детей - это для учета товаров неважно. Однако, с точки зрения отдела кадров данные о наличии детей являются существенно важными. Таким образом, важность данных зависит от выбора предметной области.
Модель предметной области. Модель предметной области - это наши знания о предметной области. Знания могут быть как в виде неформальных знаний в мозгу эксперта, так и выражены формально при помощи каких-либо средств. В качестве таких средств могут выступать текстовые описания предметной области, наборы должностных инструкций, правила ведения дел в компании и т.п. Опыт показывает, что текстовый способ представления модели предметной области крайне неэффективен. Гораздо более информативными и полезными при разработке баз данных являются описания предметной области, выполненные при помощи специализированных графических нотаций. Имеется большое количество методик описания предметной области. Из наиболее известных можно назвать методику структурного анализа SADT и основанную на нем IDEF0, диаграммы потоков данных Гейна-Сарсона, методику объектно-ориентированного анализа UML, и др. Модель предметной области описывает скорее процессы, происходящие в предметной области и данные, используемые этими процессами. От того, насколько правильно смоделирована предметная область, зависит успех дальнейшей разработки приложений.
2.3.1. Сложный пример предметной области
Чтобы исследовать различные аспекты использования СУБД, мы рассмотрим сложный пример, приближенный к действительности,– задачу зачисления абитуриентов в вузы. Каждый вуз решает данную задачу по-своему, чаще всего без использования баз данных.
До начала приема документов у абитуриентов формируются основные документы вуза, регламентирующие прием. Обычно это правила приема (они составляются и утверждаются ежегодно), расписание экзаменов, списки признаков, наличие которых у абитуриента учитывается приемной комиссией при зачислении (дает абитуриенту дополнительное преимущество), и многие другие документы.
Информационная система, которая описана ниже, позволяет решить важные для приемной комиссии задачи – упорядочить доступ к информации, сделать информацию доступной в короткие сроки, разгрузить работников приемной комиссии и, самое главное, избежать ошибок при зачислении.
Проведение зачисления в вуз осуществляется в несколько этапов.
Первый этап – прием документов у абитуриента. При приеме документов абитуриент заявляет о своем желании участвовать в конкурсе на конкретную специальность, а вернее, на учебную программу. Он также может указать в заявлении, что в случае непрохождения на данную специальность желает участвовать в конкурсе на другие специальности этого же или другого факультета. Для каждой выбранной специальности абитуриент указывает ее приоритет для себя.
Кроме информации о приоритете специальностей и о том, какой экзамен он будет сдавать, абитуриент сообщает о себе некоторые дополнительные сведения (фамилию, имя, отчество, паспортные данные, предшествующее образование, гражданство и так далее), а также предоставляет документы, подтверждающие его право на льготы и преимущества.
Второй этап – проведение вступительных испытаний. Испытания проводятся в форме экзаменов и последующего собеседования. На собеседовании работник приемной комиссии вместе с абитуриентом просматривает все документы и формирует балл к зачислению по каждой специальности, на которую претендует абитуриент.
Третий этап – зачисление абитуриентов, показавших лучшие результаты на вступительных испытаниях и имеющих другие документы, предоставляющие им преимущества и льготы при зачислении.
Необходимо отметить, что основное количество абитуриентов не имеют льгот и зачисляются исходя из того, сколько баллов они набрали на вступительных испытаниях и какие дополнительные документы они имеют. Говорят, что абитуриенты, не имеющие льгот, участвуют в общем конкурсе. Именно общий конкурс является основным для вуза. Именно информация об абитуриентах, участвующих в общем конкурсе, является объемной и требует автоматизированной обработки.
Можно также отметить, что поскольку задача зачисления актуальна для всех вузов, мы должны учесть ее возможное расширение, касающееся возможности подавать документы не только в один вуз, а сразу в несколько вузов. В самом деле, было бы вполне правильно, что абитуриент выбирает прежде всего специальность, а не вуз. Предположим, что абитуриент хочет изучать информационные системы. Однако специальности, связанные с информационными системами, есть во многих вузах города.