В начало
Лекция Проектирование БД. Модели многоуровневой архитектуры систем баз данных. Средства
автоматизации проектирования 1.
Модели многоуровневой архитектуры систем баз данных В области проектирования и
разработки систем баз данных используются различные средства моделирования,
причем даже в рамках одной конкретной системы необходим целый комплекс моделей
разного назначения. Опубликованный в 1975 году отчет ANSI/X3/SPARC зафиксировал не только широкое
признание концепций многоуровневой архитектуры систем баз данных, но и необходимость
явного выделения специального концептуального уровня представления базы
данных, единого для всех ее приложений и независимого от них. Кроме этого
уровня предусматривались еще два уровня: внутренний уровень, который должен
обеспечивать поддержку представления хранимой базы данных, и внешний, поддерживающий
представления базы данных “с точки зрения” приложений. На каждом архитектурном
уровне предполагалось использование той или иной модели данных. Кроме того, на
внешнем (прикладном, пользовательском) уровне таких моделей может быть
несколько. Модели, а также схемы, специфицируемые на их основе, называются, соответственно,
внешней, концептуальной и внутренней. Как очевидно конечной целью проектирования является построение конкретной
базы данных, в той или иной степени воплощающей представление проектировщика о
предметной области и задачах, решаемых пользователями с использованием
созданной базы. Рассматривая базу данных как конкретную реализацию модели,
мы по существу устанавливаем порядок процесса, отделяя этап определения
принципов (то, какой база должна быть) от этапа воплощения этих
принципов при реализации базы данных в конкретной среде СУБД, ОС и языках
программирования. И, как показывает практика, между реализациями баз данных и
принципами их построения всегда есть расхождения. Различия являются следствием
разных причин, но чаще всего - это явный или неявный отказ от некоторых
принципиальных ограничений, налагаемых, например, моделью данных или базовыми
(встроенными) алгоритмами обработки, в пользу частного решения, которое, по
мнению проектировщика, будет более эффективно, например, для понимания или
обработки данных. Важность отделения проектирования на абстрактном уровне от физической
реализации состоит в том что, объявляя принципы, мы конструктивно
ограничиваем область применения. Во-первых, размерность и сложность задачи должна
быть сокращена до такого уровня, чтобы реализация стала возможной в данных
конкретных условиях – ресурсах среды, профессионализме проектировщика, подготовленности
пользователя и т.д. Во-вторых, поскольку база данных по определению
предназначена для многофункционального использования различными
пользователями, и в тоже время - для обслуживания запросов, не предвиденных
при проектировании, такое явное объявление принципов позволит не вводить в заблуждение
пользователя и не создавать приложения для решения задач, которые в силу своего
принципиального отличия от тех, которые рассматривались при проектировании, обусловят
неэффективную обработку данных[1]. В-третьих,
проектирование – это процесс своеобразного согласования точек зрения двух
основных субъектов: пользователя и проектировщика базы данных. Для пользователя
характерны требования высокой степени общности и широты представления (и не
громоздкость детальных описаний), позволяющих ему получить достаточно сведений
без затраты значительных временных или интеллектуальных ресурсов. Для
администратора, выполняющего проектирование и оптимизацию системы баз данных,
необходима высокая степень детализации и формализации, обеспечивающих обоснованность
технических решений, а также возможность автоматизации проектирования. 7.2. Типология моделей Основные отличия любых методов представления информации заключаются в
том, каким способом фиксируется семантика предметной области. Но, следует особо
отметить, что для всех уровней и для любого метода представления предметной области
(но для нас важно, что в контексте создания и использования машинных баз
данных) в основе отображения (т.е., собственно формирования представления)
лежит кодирование понятий и отношений
между понятиями. Многоуровневая система моделей представления информации
иллюстрируется слайдами 2, 3, 4 (Типология моделей). Ключевым этапом при разработке любой информационной системы является проведение
системного анализа: формализация предметной области и представление системы как
совокупности компонент. Системный анализ позволяет, с одной стороны лучше
понять «что надо делать» и «кому надо делать» (аналитику, разработчику, руководителю,
пользователю), а с другой - отслеживать во времени изменения рассматриваемой
модели и обновлять проект. Декомпозиция, как основа системного анализа, может быть функциональной (построение
иерархий функций) или объектной. Однако в большинстве систем, если говорить, например, о базах данных,
типы данных являются более статичным элементом, чем способы их обработки.
Поэтому получили интенсивное развитие такие методы системного анализа, как
диаграммы массивов данных (Data Flow Diagram). Развитие реляционных баз данных
в свою очередь стимулировало развитие методик построения моделей данных, и в
частности, ER-диаграмм (Entity Relationship Diagram). Но и функциональная декомпозиция и
диаграммы данных дают только некоторый срез исследуемой предметной области, но
не позволяют получить представление системы в целом. Различаются и методы отображения, используемые на этапе построения
даталогических моделей, отражающих способ идентификации элементов и связей, но,
что особенно важно, в контексте их будущего представления в одномерном
пространстве памяти вычислительной машины. Модели подразделяются на
фактографические - ориентированные на представление хорошо структурированной
информации, и документальные - представляющие наиболее распространенный способ
отражения слабоструктурированной информации. Если в первом случае говорят о
реляционной, иерархической или сетевой моделях данных, то во втором – о
семантических сетях и документальных моделях. Хотя, разделение на фактографические
и документальные в этой группе моделей является достаточно условным. Документ,
как последовательность полей может быть представлен, в том числе, и реляционной
моделью. И в этом случае выбор специализированного решения чаще всего обуславливается
требованием общей эффективности. При проектировании информационных
систем свойства объектов (их характеристики) задаются атрибутами. Именно
значения атрибутов позволяют выделить в предметной области как различные
объекты (типы объектов), так и среди объектов одного типа – их различные
экземпляры. Представление атрибутов удобнее всего моделируется теоретико-множественными отношениями.
Отношение наглядно представляется как таблица, где каждая строка – кортеж
отношения, а каждый столбец (домен) представляет множество значений атрибута.
Список имен атрибутов отношения образует схему отношения, а совокупность схем
отношений, используемых для представления БД, в свою очередь образует схему
базы данных. Представление схем БД в виде схем отношений упрощает процедуру проектирования БД. Этим объясняется
создание систем, в которых проектирование БД ведется в терминах реляционной модели данных, а работа с БД
поддерживается СУБД одного из
описанных в данном пособии типов. Модель данных должна, так или иначе, дать основу для описания данных и
манипулирования данными, а также дать средства анализа и синтеза структур
данных. Любая модель, построенная более или
менее аккуратно с точки зрения математики, сама создает объекты для
исследования и начинает жить как бы параллельно с практикой. Реляционная модель данных в качестве основы отображения
непосредственно использует понятие отношения. Она ближе всего находится к так
называемой концептуальной модели предметной среды и часто лежит в основе последней. В отличие от теоретико-графовых моделей в реляционной модели связи между
отношениями реализуются неявным образом, для чего используются ключи
отношений. Например, отношения иерархического типа реализуется механизмом
первичных / внешних ключей, когда в подчиненном отношении должен присутствовать
набор атрибутов, связывающих это отношение с основным. Такой набор атрибутов в
основном отношении будет называться первичным ключом, а в подчиненном –
вторичным. Прогресс в области разработки языков программирования, связанный, в
первую очередь с типизацией данных и появлением объектно-ориентированных
языков, позволил подойти к анализу сложных систем с точки зрения иерархических
представлений - классам объектов со свойствами инкапсуляции, наследования и
полиморфизма, схемы которых отображают не только данные и их взаимосвязи, но и
методы обработки данных. В этом смысле объектно-ориентированный подход является гибридным методом
и позволяет получить более естественную формализацию системы в целом. В итоге
это позволяет снизить существующий барьер между аналитиками и разработчиками
(проектировщиками и программистами), повысить надежность системы и упростить
сопровождение, в частности, интеграцию с другими системами. 7.3. Этапы проектирования и объекты моделирования Проектирование базы данных - это упорядоченный формализованный процесс создания системы взаимосвязанных описаний, т.е. таких моделей предметной области, которые связывают (фиксируют) хранимые в базе данные с объектами предметной области, описываемыми этими данными. Прикладное назначение таких описаний состоит в том, чтобы пользователь, практически не имеющий представления об организации данных в БД (физическом размещении в памяти данных и механизмах их поиска), обращая запрос к базе, имел бы практическую возможность получить адекватную информацию о состоянии объекта предметной области. (Слайд 5 - Стадии и объекты) Проектирование начинается с анализа предметной области и выявления функциональных и других требований к проектируемой системе. Подробнее этот процесс будет рассмотрен ниже, а здесь отметим, что проектирование обычно выполняется человеком (группой людей) – системным аналитиком (а на практике чаще администратором базы данных), которым может быть как специально выделенный сотрудник, так и будущий пользователь базы данных, достаточно хорошо знакомый с машинной обработкой данных. Объединяя отдельные представления о содержимом базы данных, полученные в
результате опроса пользователей, и свои представления о данных, которые могут
потребоваться для решения практических задач, системный аналитик сначала
создает обобщенное неформальное описание создаваемой базы данных. Это описание,
выполненное с использованием естественного языка, математических выражений,
таблиц, графов и других средств, понятных всем людям, работающим над
проектированием базы данных, называют инфологической моделью. Такая человеко-ориентированная модель практически полностью независима от физических параметров среды хранения данных, которой может быть как память человека, так и ЭВМ. Поэтому инфологическая модель не изменяется до тех пор, пока какие-то изменения в реальном мире (той его части, которая отнесена к предметной области) не потребуют изменения в модели соответствующего фрагмента описания, чтобы эта модель продолжала адекватно отражать предметную область. Остальные модели являются машинно-ориентированными. С их помощью СУБД дает возможность программам и пользователям осуществлять доступ к хранимым данным лишь по их именам, не заботясь о физическом расположении этих данных. Так как доступ к данным осуществляется с помощью конкретной СУБД, то модели должны быть представлены на языке описания данных этой СУБД. Такое описание, создаваемое по инфологической модели данных, называют даталогической моделью данных. Для размещения и поиска данных на внешних запоминающих устройствах СУБД использует физическую модель данных. Представленная трехуровневая
архитектура (инфологический, даталогический и физический уровни) позволяет
обеспечить независимость хранимых данных от использующих их программ. Хранимые
данные могут быть переписаны на другие носители или может быть реорганизована
их физическая структура, в том числе дополнена полями для новых приложений, но
это повлечет лишь изменение физической и, возможно, даталогической модели
данных. Главное, такие изменения физической и даталогической моделей не будут
замечены пользователями системы (окажутся "прозрачными" для них).
Кроме того, независимость данных обеспечивает возможность создания новых
приложений для решения новых задач без разрушения существующих. Приведенная цитата (Слайд 6) по-прежнему актуальна, хотя
книга издана более 20 лет назад. Действительно, средства проектирования
непрерывно развиваются, но и задачи, решение которых пользователь предполагает
автоматизировать с помощью систем баз данных, существенно усложнились и для
эффективного применения средств формализации и автоматизации необходимо
понимать природу системы моделей. С точки зрения объектов моделирования необходимо различать модели предметной
области и модели базы данных. Эти модели взаимосвязаны, поскольку представляют
собой образы одного и того же оригинала – некоторого множества предметов
реального мира, информацию о которых мы предполагаем хранить и обрабатывать с
помощью проектируемой БД. Характер взаимосвязей (и, соответственно, отличий)
проявляется и в процессе проектирования системы баз данных. Модель предметной
области скорее ассоциируется с неформальным[2]
уровнем семантического моделирования, а модель базы данных – с формализованным
уровнем системы (и в частности, СУБД). Разнообразие моделей связано также и с различием используемых парадигм
моделирования, по существу определяющих способ представления взаимосвязи
объектов на уровне структур данных. С этой точки зрения, различаются
реляционные, сетевые, иерархические, объектные, объектно-реляционные,
документальные и другие виды моделей. Соответственно различаются и описываемые их
средствами схемы баз данных. 7.4. Подходы к проектированию базы данных Можно выделить два основных подхода к
проектированию баз данных: нисходящий и восходящий (слайд 7) При восходящем подходе работа
начинается с самого нижнего уровня атрибутов (т.е. свойств
сущностей и связей), которые на основе анализа существующих между
ними связей группируются в отношения, представляющие типы сущностей и
связи между ними. Далее будет подробно рассмотрен процесс нормализации
отношений, который представляет собой вариант восходящего
подхода при проектировании баз данных. Нормализация предусматривает создание
нормализованных отношений, основанных на функциональных
зависимостях между выделенными атрибутами. Восходящий подход в наибольшей степени
приемлем для проектирования простых баз данных с относительно
небольшим количеством атрибутов. Однако использование этого подхода существенно
усложняется при проектировании баз данных с большим количеством атрибутов,
установить среди которых все существующие функциональные
зависимости затруднительно. Поскольку концептуальная и логическая
модели данных для сложных баз данных могут содержать от сотен до тысяч
атрибутов, очень важно выбрать подход, который помог бы упростить этап проектирования.
Кроме того, на начальных стадиях формулирования
требований к данным бывает трудно
установить все атрибуты, которые должны быть включены в модель данных. Более подходящей стратегией
проектирования сложных баз данных является использование нисходящего подхода, который
предопределяет приоритетность разработки концептуальной модели ПрО. Эта модель
содержит несколько высокоуровневых сущностей и связей, которые уточняются
(детализируются и расширяются) до тех пор, пока не будут выявлены все объекты,
их атрибуты и связи между ними, отражающие специфику задач конкретной ПрО. Восходящий подход часто, например, в случае сложных ПрО, представляет собой
очень неудобный процесс для самого проектировщика. Более того, здесь
проявляется ограниченность реляционной модели, в частности: (слайд 8) -
реляционная
модель не предоставляет достаточных средств для фиксации смысла данных, т.е.
семантика предметной области не фиксируется непосредственно в отношениях; -
для
многих приложений трудно моделировать предметную область на основе плоских
таблиц; -
хотя
весь процесс проектирования происходит на основе учета зависимостей, реляционная
модель не имеет средств представления (отражения семантики) этих зависимостей; -
несмотря
на то, что процесс проектирования начинается с выделения некоторых существенных
для приложения объектов предметной области ("сущностей") и выявления
связей между этими сущностями, реляционная модель данных не предлагает
какого-либо аппарата для различения сущностей и связей. Кроме этих подходов для проектирования
могут применяться другие подходы, например, подход «от общего к
частному» или «смешанная стратегия проектирования». Подход «от
общего к частному» напоминает нисходящий подход, но отличается
от него тем, что вначале выявляется набор основных сущностей с последующим расширением
круга рассматриваемых сущностей, связей и
атрибутов, которые взаимодействуют с первоначально определенными сущностями. В смешанной стратегии сначала
используются восходящий и нисходящий
подходы для создания разных частей модели, после чего все фрагменты собираются в единое целое. Забегая несколько вперед, отметим взаимосвязь двух известных методов
моделирования инфологического уровня - ER-диаграммы и метод нормализации,
воспринимаемых зачастую как альтернативные. На самом деле нормализация с
помощью хорошо формализованных методов обеспечивает декомпозицию исходных
отношений (переменных) большой размерности к возможно большему набору
отношений, но меньшей размерности. Эти методы не зависят от особенностей
предметной области, но вследствие этого и не позволяют определить исходное
отношение и, соответственно, семантику обрабатываемых данных. Для этого удобнее
использовать методики, подобные ER-диаграммам - для них свойственны подходы технологии
нисходящего проектирования, и которые дают представление «в целом», но именно
поэтому (из-за сравнительной простоты) не позволяют провести полноценное проектирование
базы. То есть, можно сказать, что метод
нормализации и ER-диаграммы по существу являются взаимодополняющими. 7.5. Инфологические модели (системный анализ) предметной области Базы данных сами по себе представляют относительную ценность. Базы данных
это всегда важнейшая, но только одна из составляющих некоторой
информационной системы. И надо отметить, что любая ИС, предназначенная,
например, для оперативного управления предприятием или архивного хранения и
поиска документов – это не только программы, данные и коммуникации, но также и
люди (заказчики, пользователи, аналитики, разработчики), организационные
структуры, а также цели, стимулы работы предприятия или отдельных людей. И все
эти компоненты должны быть понятным как проектировщику, так и пользователю, а,
кроме того, непротиворечивым образом соединены в одну систему. Главная идея процесса такого согласования состоит в том, что его надо
начинать с анализа самых главных характеристик предметной области, рассматривая
самые главные содержательные аспекты. И проводить его не "мысленно" и
не "на словах", а на явно изложенных описаниях (моделях) объектов
предметной области, позволяющих видеть все существенные взаимосвязи. Но следует
отметить, что попытки использования привычных нотаций формальных моделей
(структурных, объектных или каких либо других) на этом этапе приводят к более
низкому (более детальному и в тоже время ограниченному) уровню представления
предметной области, чем это необходимо для общего понимания. В общем случае существуют два подхода к определению состава и структуры
предметной области. (Слайд 9 Функциональный – объектный подходы) Функциональный
подход предполагает, что проектирование начинается с анализа задач и,
соответственно, функций, обеспечивающих реализацию информационных потребностей.
При объектном (предметном) подходе информационные потребности
пользователей (задачи) жестко не фиксируются, а основное внимание
сосредотачивается на выделении существенных объектов – предметов и связей,
информация о которых может быть использована в прикладных задачах пользователя.
Условность такого деления достаточно очевидна, поэтому на практике используются
компромиссные варианты, предполагающие по мере развития системы расширение как
состава объектов, так и спектра прикладных задач. Цель системного анализа предметной области как этапа проектирования – выделить
предметную область как систему объектов и их взаимосвязей, определив
при этом функционально-информационные требования к их последующему
представлению в виде системы взаимосвязанных данных. Главным результатом этапа системного анализа является определение парадигмы
информационной (инфологической) модели: требования к средствам
представления системы определяются на основании анализа уровня
структурированности информации и характера восприятия ее семантики
пользователем (точная/приблизительная, четкая/неопределенная). Например, выбор атрибутивной формы представления объектов
предметной области приведет, соответственно, к выбору парадигмы фактографических
баз данных, а вербальной - к необходимости выбора документальных
БД. В дальнейшем изложении процесс и средства проектирования мы будем
рассматривать только для случая фактографических баз данных, использующих
реляционную модель. Полученный результат - концептуальная схема базы данных (в терминах
семантической модели) затем преобразуется к реляционной схеме. 7.6. Даталогические
модели
Задачей следующей стадии проектирования системы базы данных является выбор
подходящей СУБД и отображение в ее среду (структур данных) спецификаций
инфологической модели предметной области. Другими словами, модель предметной
области разрабатываемой системы должна быть представлена в терминах модели
данных концептуального уровня выбранной конкретной СУБД. Эту стадию называют
логическим (или даталогическим) проектированием базы данных, а ее результатом
является концептуальная схема базы данных, включающая определение всех
информационных элементов (единиц) и связей, в том числе задание типов,
характеристик и имен. Хотя даталогическое проектирование оперирует не физическими записями, а
логическими понятиями, связанными со структурой базы данных, тем не менее,
особенности представления данных, правила и языки агрегирования и манипулирования
данными имеют определяющее влияние. Не все виды связей, например, «многие ко
многим», могут быть непосредственно отображены в логической модели. Кроме того, может быть много вариантов отображения инфологической модели
предметной области в даталогическую модель базы. Здесь следует учитывать
влияние двух следующих значимых факторов, связанных с практикой разработки базы
данных. Во-первых, связи предметной области могут отображаться двумя путями, как
декларативным - в логической схеме, так и процедурным – отработкой связей через
программные модули, обрабатывающие (связывающие) соответствующие хранимые
данные. Во-вторых, существенным фактором может оказаться характер обработки
информации. Например, частые обращения к совместно обрабатываемым данным очевидно
предполагают их совместное хранение, а данные (особенно большой размерности), к
которым обращаются редко, целесообразно хранить отдельно от часто используемых. 7.7. Физические модели
Стадия физического проектирования базы данных в общем случае включает: -
выбор
способа организации базы данных; -
разработку
спецификации внутренней схемы средствами модели данных ее внутреннего уровня; -
описание
отображения концептуальной схемы во внутреннюю. Важно заметить, что в отличие от ранних СУБД, многие современные системы
не предоставляют разработчику какого-либо выбора на этой стадии. Реально к
вопросам проектирования физической модели можно отнести выбор схемы размещения
данных (разделение по файлам или тип RAID-массива) и определение числа и типа
индексов (например, кластеризованный или некластеризованный в случае MS SQL Server).
Способ хранения базы данных определяется механизмами СУБД автоматически
“по умолчанию” на основе спецификаций концептуальной схемы базы данных, и внутренняя
схема в явном виде в таких системах не используется. Следует также отметить, что внешние схемы базы данных обычно конструируются
на стадии разработки приложений. 7.8. Средства автоматизации проектирования Формализованные знания о предметной области в общем случае могут быть представлены
в виде текстовых описаний: наборов должностных инструкций, правил ведения дел и
т.п. Однако текстовый способ представления модели предметной области не
эффективен. Более информативным и полезным при разработке баз данных и информационных
систем являются описания предметной области, выполненные при помощи
специализированных графических нотаций, реализующих методики представления
знаний о предметной области. Наиболее известными на сегодняшний день являются
методика структурного анализа SADT (Structured Analysis and Design Technique) и основанная на ней нотация IDEF0, диаграммы массивов данных,
методика объектно-ориентированного анализа UML (Unified Modeling Language) и др. Любая из этих моделей
описывает, с одной стороны, процессы, происходящие в предметной области, а с
другой – данные, используемые этими процессами. Наиболее полная система моделей, на которую опираются
методики функционального, информационного и поведенческого моделирования ПрО,
представлена в семействе стандартов IDEF (Integrated DEFinition)
(слайд 10). Методология
концептуального проектирования, основанная на наглядной графической технике,
предоставила в распоряжение разработчиков информационных систем строгие
формализованные методы описания ИС и принимаемых технических решений. Эти
модели по существу представляют собой систему соглашений, обеспечивающих
взаимопонимание бизнес-аналитика, представляющего реалии предметной области, и
программиста (или программного средства), создающего модель данных для
отражения состояния этой ПрО. Если соглашения в точности будут реализованы в программных
продуктах, основанных на этой методологии, то такая автоматизированная
система, умеющая «читать» разработанные аналитиком модели, позволит контролировать
синтаксис модели и в итоге сгенерировать схему данных. Вслед за методологией
концептуального проектирования появились специализированные
программно-технологические средства специального класса - CASE-средства, реализующие
технологию создания и сопровождения ИС. CASE-технология представляет собой методологию проектирования ИС, а также
набор инструментальных средств, позволяющих в наглядной форме моделировать
предметную область, анализировать эту модель на всех этапах разработки и
сопровождения ИС и разрабатывать приложения в соответствии с информационными
потребностями пользователей. CASE-средства в соответствии с их
функциональной ориентацией на те или иные процессы жизненного цикла ИС можно
подразделить на следующие группы (слайд
11 – САSE). [1] Применяемые формальные языки представления предметной области не позволяют описывать все отношения, которые проектировщик считает важными. С другой стороны, многие проекты (и, в частности, рассматриваемые примеры) воспринимаются как достаточно простые, а проектные решения кажутся очевидными. Кроме того, опытный программист всегда может предложить некоторый эмпирический и, возможно, действительно эффективный способ для целевого представления и обработки нужной информации. Однако это означает отказ от единого формализма, что при увеличении количества данных и связей значительно усложняет проблемы управления базой и в частности – понимание пользователем организации и методов доступа. [2] Правильнее было бы говорить о неформализованности, связанной с невозможностью обоснованного однозначного выбора (из реально существующих) объектов средств, используемых для моделирования. |
| |