- •Введение
- •Глава 1. Проектирование баз данных
- •1.1. История развития баз данных и субд
- •1.2. Введение в субд
- •1.2.1. Основные термины, понятия и определения
- •1.2.2. Классификация субд
- •1) Сетевые, корпоративные, распределенные, клиент-серверные, полнофункциональные, масштабируемые, “большие” субд.
- •2) Локальные, персональные, настольные, файл-серверные, “малые” субд.
- •1.3. Модели данных
- •1.3.1. Типы связей между объектами
- •1.3.2. Формы записи инфологической (концептуальной) модели
- •1.3.3. Уровни представления и независимости данных
- •1.3.4. Порядок взаимодействия пользователя, субд и ос
- •1.3.5. Поддержка целостности базы данных
- •1.3.6. Иерархическая модель
- •1.3.7. Сетевая модель
- •1.3.8. Реляционная модель
- •1.3.8.1. Отношения
- •1.3.8.2. Теоретико-множественные операции с отношениями
- •1.3.8.3. Правила Кодда
- •1.3.8.4. Индексирование таблиц
- •1.3.8.5. Связывание таблиц
- •1.3.9. Постреляционная модель
- •1.3.10. Многомерная модель
- •1.3.11. Объектно‑ориентированная модель
- •1.4. Модели использования баз данных в сети
- •1.4.1. Сеть
- •1.4.2. Модели использования баз данных
- •1.4.2.1. Локальная однопользовательская модель
- •1.4.2.2. Файл-серверная модель
- •1.4.2.3. Клиент-серверная модель
- •В моделях «клиент–сервер»
- •1.4.2.4. Модель удаленного доступа (rda)
- •1.4.2.5. Модель сервера данных
- •1.4.2.6. Трехзвенная распределенная модель
- •1.4.2.7. Модели серверов баз данных
- •1.4.2.8. Клиент-Интернет
- •1.4.2.9. ИнтерфейсOdbc
- •1.4.3. Мониторы обработки транзакций (tpm)
- •1.4.4. Децентрализованное управление базами данных
- •1.4.5. Таблицы в локальных сетях
- •1.5. Проектирование баз данных
- •1.5.1. Принципы и этапы проектирования и создания баз данных
- •1.4.Определение доменов атрибутов.
- •1.5. Определение первичных и вторичных ключей.
- •1.6. Определение суперклассов и подклассов для типов сущностей.
- •1.7. Создание er‑диаграмм для отдельных пользователей.
- •2.6. Создание er‑диаграмм для отдельных пользователей.
- •3.4. Создание er‑диаграммы глобальной логической модели.
- •4. Создание глобальной логической модели в среде целевой субд.
- •6. Разработка механизма защиты.
- •1.5.3. Правила формирования взаимосвязанных таблиц
- •1.5.4. Модели жизненного цикла и проектирование баз данных
- •1.5.4.1. Модели жизненного цикла
- •1.5.4.2. Обследование, системный анализ и постановка задачи
- •1.5.4.3. Инфологическое проектирование
- •1.5.4.4. Датологическое проектирование
- •1.5.4.5. Проектирование физической модели
- •1.5.4.6. Реализация, интеграция и внедрение
- •1.5.5. Выбор субд
- •1.5.5.1. Сравнение Visual FoxPro, Access, sql Server, Oracle и Excel
- •1.5.5.2. Методика балловой оценки программных средств
- •1.5.6. Case‑средства автоматизации проектирования
- •1. Ориентация на этапы жизненного цикла
- •2. Функциональная полнота
- •Пользователя в ms sql Server 7.0
- •1.6.2. Резервирование информации
- •1.6.3. Варианты разработки приложений
- •1.7. Стандартизация баз данных
- •1.8. ЯзыкSql
- •1.8.1. Введение вSql
- •1.8.2. Типы данныхSql
- •1.8.3. Оператор выбора данныхSelect
- •1.8.3.1. Назначение и синтаксис оператора
- •1.8.3.2. Объединение таблиц
- •1.8.3.3. Вложенные и коррелированные запросы
- •1.8.3.4. Запросы, использующиеExist, any, all
- •1.8.3.5. Стандартные функции
- •1.8.3.6. Запрос с группировкой
- •1.8.4. Операторы обновления базы
- •1.8.4.1. Оператор корректировки данныхUpdate
- •1.8.4.2. Оператор удаления записейDelete
- •1.8.4.3. Оператор включения записей insert
- •1.8.5. Представления
- •1.9. Транзакции
- •1.9.1. Определение транзакций
- •1.9.2. Организация транзакций
- •1.9.3. Журнал транзакций
- •1.9.4. Журнализация и буферизация
- •1.9.5. Индивидуальный откат транзакций
- •1.9.6. Восстановление после мягкого сбоя
- •1.9.7. Физическая согласованность базы данных
- •1.9.8. Восстановление после жесткого сбоя
- •1.9.9. Параллельное выполнение транзакций
- •1.9.10. Уровни изолированности пользователей
- •1.9.11. Гранулированные синхронизационные захваты
- •1.9.12. Предикатные синхронизационные захваты
- •1.9.13. Метод временных меток
- •1.10. ВстроенныйSql
- •1.10.1. Особенности встроенногоSql
- •1.10.2. Определение курсора
- •1.10.3. Открытие курсора
- •1.10.4. Чтение очередной строки курсора
- •1.10.5. Закрытие курсора
- •1.10.6. Удаление и обновление данных
- •1.10.7. Хранимые процедуры
- •Хранимой процедуры на сервере
- •1.10.8. Триггеры
- •1.10.9. ДинамическийSql
- •1.11. Архитектура субд и оптимизация запросов
- •1.12. Перспективы развития субд
- •Вопросы для самопроверки и контроля
- •1Оглавление
1.3.2. Формы записи инфологической (концептуальной) модели
Рассмотрим четыре формы записи концептуальной модели.
Овал‑диаграммы Бахмана. Наименование каждого объекта заключается в овал, и овалы соединяются линиями связей объектов.
Достоинства:наглядность и компактность.Недостаток‑ отсутствие атрибутов (рисунок 1.3.1.1).
Табличная форма. Объект представляется в виде таблицы: наименование объекта ‑ это наименование таблицы, а наименования атрибутов указываются в ее строках или колонках. Ключевые атрибуты выделяются (обычно подчеркиванием).
Достоинство:детализация.Недостатки:громоздкость при большом числе объектов и трудоемкость.
Списки.Объект представляется в виде списка: наименование объекта является наименованием списка, которое указывается перед списком, а наименования атрибутов указываются через запятые в виде списка, заключенного в круглые скобки. Ключевые атрибуты выделяются.
Достоинства:детализация и меньшая трудоемкость.Недостатки:меньшая наглядность и громоздкость при большом числе объектов.
ER‑диаграммы. Графическое изображение взаимосвязей объектов и их экземпляров в виде ER‑диаграмм (рисунок 1.3.2.1) и диаграмм ER‑экземпляров (ER - Essence Relation) ‑ англ. “сущность” и “связь”) (рисунок 1.3.2.2).
ПРОИЗВОДИТ
ЗАВОД ИЗДЕЛИЕ
Рисунок 1.3.2.1. Диаграмма ER‑типа
ЗАВОД |
ПРОИЗВОДИТ |
ИЗДЕЛИЕ |
Уралмаш |
|
Блюминг |
ВАЗ |
|
Буровая |
ВАЗ |
|
ВАЗ 2105 |
Уралмаш |
|
ВАЗ 2107 |
Рисунок 1.3.2.2. Диаграмма ER‑экземпляров
Для класса обязательного объекта “жирная” точка указывается на линии связи в прямоугольнике, смежном с прямоугольником этого объекта (рисунок 1.3.3.1), а для необязательных ‑ вне прямоугольника объекта.
1.3.3. Уровни представления и независимости данных
Под моделью данных понимается совокупность данных и их взаимосвязей. На рисунке 1.3.3.1 представлена классификация моделей данных (взято из [19]).
Рисунок 1.3.3.1 - Классификация моделей данных
Рассмотрим основные модели.
Инфологическая (концептуальная) модельопределяет тип модели представления данных в целом для всей базы.
При определении типов моделей используется математическое понятие ориентированного связанного графа: множество точек (узлов) и направленных связей (дуг), соединяющих попарно все точки. Точки (узлы) представляют собой объекты, а дуги ‑ линии связей между объектами.
Примерграфа: схема железнодорожных дорог.
Эти модели отражают в естественной и удобной для разработчиков и пользователей форме уровень абстрагирования, связанный с фиксацией и описанием объектов предметной области, их свойств и их взаимосвязей. Инфологические модели данных используются на ранних стадиях проектирования для описания структур данных в процессе разработки приложения.
Существуют следующие типы моделей данных: иерархическая, сетевая, реляционная, постреляционная, многомерная и объектно‑ориентированная.
Даталогическая (логическая) модель - это совокупность объектов и их взаимосвязей в терминах конкретной СУБД.
Физическая (внутренняя) модель - это представление данных на внешнем носителе.
Подмодель (подсхема, внешняя схема)‑ это представление о базе с точки зрения пользователя таблицы. Эта модель упрощает для пользователя представление о базе (не нужно знать всю базу, а только ее часть, используемую пользователем) и защищает базу данных от несанкционированного использования данных за пределами внешней модели.
Такое многоуровневое представление упрощает реализацию, управление и использование таблицы. Проектирование и управление базой ведется на каждом уровне представления.
Документальные модели данных - соответствуют представлению о слабоструктурированной информации, ориентированной в основном на свободные форматы документов, текстов на естественном языке.
Для описания таких моделей разработаны и применятся следующие языки разметки.
SGML (Standart Generalised MarkupLanguage), который был утвержден ISO в качестве стандарта еще в 80-х годах. Этот язык предназначен для создания других языков разметки, он определяет допустимый набор тегов (ссылок), их атрибуты и внутреннюю структуру документа. Контроль за правильностью использования тегов осуществляется при помощи специального набора правил, называемых DTD-описаниями, которые используются программой клиента при разборе документа. Для каждого класса документов определяется свой набор правил, описывающих грамматику соответствующего языка разметки. С помощью SGML можно описывать структурированные данные, организовывать информацию, содержащуюся в документах, представлять эту информацию в некотором стандартизованном формате. Но ввиду некоторой своей сложности SGML использовался в основном для описания синтаксиса других языков (наиболее известным из которых является HTML.
HTML- позволяет определять оформление элементов документа и имеет некий ограниченный набор инструкций – тегов, при помощи которых осуществляется процесс разметки. Инструкции HTML в первую очередь предназначены для управления процессом вывода содержимого документа на экране программы-клиента и определяют этим самым способ представления документа, но не его структуру. В качестве элемента гипертекстовой базы данных, описываемой HTML, используется текстовый файл, который может легко передаваться по сети с использованием протокола HTTP.
XML (Extensible Markup Language) -описывающий целый класс объектов данных, называемых XML-документами. Он используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. То есть сам по себе XML не содержит никаких тегов, предназначенных для разметки, он просто определяет порядок их создания.
Тезаурусные модели - это модели, которые основаны на принципе организации словарей, содержат определенные языковые конструкции и принципы их взаимодействия в заданной грамматике. Эти модели эффективно используются в системах-переводчиках, особенно многоязыковых переводчиках. Принцип хранения информации в этих системах и подчиняется тезаурусным моделям.
Дескрипторные модели - самые простые из документальных моделей, они широко использовались на ранних стадиях использования документальных баз данных. В этих моделях каждому документу соответствовал дескриптор - описатель. Этот дескриптор имел жесткую структуру и описывал документ в соответствии с теми характеристиками, которые требуются для работы с документами в разрабатываемой документальной БД. Например, для БД, содержащей описание товара, дескриптор содержал наименование товара, поставщика, группы товара, Обработка информации в таких базах данных велась исключительно по дескрипторам, то есть по тем параметрам, которые характеризовали товар, а не по самому тексту описания товара.
Независимость данных‑ это возможность использования БД без знания внутреннего представления данных и отсутствие необходимости корректировать программы при изменении логической (первый уровень независимости) и физической (второй уровень) моделей базы данных.
Причины стремления к независимости данных: отсутствие перепрограммирования в случае изменения структуры БД, упрощение работы пользователя, защита от несанкционированного доступа.
Классификация моделей данных.