ИГА. Понятие базы данных
Скачать 0.77 Mb.
|
Методология проектирования баз данныходели и этапы проектирования БД. Системный анализ предметной области Очевидно, конечная цель проектирования – построение БД, воплощающей представление проектировщика о предметной области и задачах, решаемых пользователями с помощью созданной БД. Рассматривая БД в качестве реализации модели, можно отделить этап определения принципов (то, какой БД должна быть) от этапа воплощения этих принципов при реализации БД в конкретной среде СУБД, операционной системы (ОС) и языках программирования. Проектирование базы данных – упорядоченный формализованный процесс создания системы взаимосвязанных описаний, т. е. таких моделей предметной области, которые связывают (фиксируют) хранимые в базе данные с объектами предметной области, описываемыми этими данными. Проектирование начинается с анализа предметной области и выявления функциональных и других требований к проектируемой системе. Такой анализ-описание, выполненный с использованием математических выражений, таблиц, графов и других средств, называют инфологической моделью. Она практически полностью независима от физических параметров среды хранения данных, поэтому не изменяется до тех пор, пока отсутствуют изменения в предметной области. Доступ к данным осуществляется с помощью СУБД, поэтому модели должны быть представлены на языке описания данных этой СУБД. Такое описание, создаваемое по инфологической модели данных, называют даталогической моделью данных. С точки зрения моделирования необходимо различать модели предметной области и модели БД. Они взаимосвязаны, поскольку представляют собой образы одного и того же оригинала – некоторого множества предметов реального мира, информацию о которых мы предполагаем хранить и обрабатывать с помощью проектируемой БД. Модель предметной области ассоциируется с неформальным уровнем семантического моделирования, а модель базы данных – с формализованным уровнем системы (и в частности, СУБД). Цель семантического моделирования – формирование основы для формализованного проектирования БД. Стадии процесса моделирования: 1. Системный анализ. Определение парадигмы информационной модели (структурированность и динамичность информации; способ представления и характер использования информации). 2. Инфологическое проектирование. Определение системы атрибутов, типовых запросов, типовых процедур обработки. 3. Даталогическое проектирование. Разработка концептуальной схемы БД, внешних схем, правил семантической целостности. 4. Физическое проектирование. Отображение даталогической модели в модель данных выбранной СУБД – проектирование структур данных и связей. Базы данных – одна изсоставляющих, хоть и важная, некоторой информационной системы (ИС). Любая ИС – это не только программы, данные и коммуникации, но и люди (заказчики, пользователи, аналитики, разработчики), организационные структуры, а также цели, стимулы работы предприятия или отдельных людей. Все эти компоненты должны быть непротиворечивым образом соединены в одну систему. Существуют два подхода к определению состава и структуры предметной области: Функциональный. Предполагает, что проектирование начинается с анализа задач и функций, обеспечивающих реализацию информационных потребностей. Объектный(предметный). При таком подходе информационные потребности пользователей (задачи) жестко не фиксируются, а основное внимание сосредоточено на выделении существенных объектов – предметов и связей, информация о которых может быть использована в прикладных задачах пользователя. Такое деление условно и на практике используются компромиссные варианты, предполагающие по мере развития системы расширение как состава объектов, так и спектра прикладных задач. Цель системного анализа предметной области – выделить предметную область как систему объектов u их взаимосвязей, определив при этом функционально-информационные требования к их последующему представлению в виде системы взаимосвязанных данных. Инфологическое проектированиеИнфологическое проектирование и семантическая модель. Модель «сущность-связь» Начальная стадия проектирования системы БД включает построение семантической моделипредметной области, базирующейся на анализе свойств и природы объектов предметной области и информационных потребностей будущих пользователей разрабатываемой системы. Эту стадию принято называть концептуальнымпроектированием системы, а ее результат – так называемая концептуальная модельпредметной области. Этой стадии соответствуют также ранее упомянутые термины «инфологическое проектирование» и «инфологическая модель». Инфологическая модель обобщенно представляет информационные потребности пользователей создаваемой системы в части использования хранимых данных. К ним относятся различные компоненты, по-разному и разными средствами отражающие предметную область: система атрибутов и средств описания предметной области (например, логические (алгоритмические) связи между показателями); ограничения целостности, определяющие допустимость значения отдельных полей и взаимосвязей как на уровне семантики содержимого БД, так и ее физической структуры (отдельных файлов данных и взаимосвязей между ними); описание информационных потребностей пользователей (например, в виде типовых запросов, отражающих процедурные особенности обращения к данным). Одно из наиболее популярных средств формализованного представления предметной области ИС – модель «сущность-связь» (ER-модель), лежащая в основе значительного числа коммерческих продуктов (САSЕ-средств), поддерживающих полный цикл разработки систем БД (от концептуальной модели предметной области до логического проектирования путем автоматической генерации концептуальной схемы БД для выбранной СУБД). Моделирование предметной области базируется на использовании графических диаграмм, строящихся по определенной технологии. Семантическую основу ЕR-модели составляют следующие положения: совокупность взаимосвязанных объектов предметной области представляет собой совокупность сущностей; сущность обладает характеристическими свойствами (атрибутами), отличающими ее от других сущностей и позволяющими ее идентифицировать; сущности можно классифицировать по типам (классам), при этом каждый экземпляр сущности может быть отнесен к классу, каждый экземпляр которого обладает общими для данного класса и отличающими от сущностей других классов свойствами; систематизация представления, основанная на классах, предполагает иерархическую зависимость типов: сущность типа А представляет собой подтипсущности В, если каждый экземпляр типа А является экземпляром сущности типа В; взаимосвязи объектов могут быть представлены как связи - сущности, служащие для фиксирования (представления) взаимозависимости двух или нескольких сущностей. Любой объект предметной области обладает свойствами, часть из которых выделяется как характеристические – значимые с точки зрения прикладной задачи. При этом в процессе анализа и систематизации предметной области, обычно, выделяют классы – совокупности объектов, обладающих одинаковым набором свойств, задаваемых в виде наборов атрибутов(значения атрибутов для объектов одного класса, разумеется, могут различаться). На уровне представления предметной области (т. е. ее инфологической модели) объекту, рассматриваемому как понятие (объект в сознании человека), соответствует понятие «сущность»;объекту, как части материального мира (и существующему независимо от сознания человека), соответствует понятие «экземпляр сущности»; классу объектов соответствует понятие «тип сущности». Далее будем предполагать тождественность понятий объект и сущность, свойство объекта и свойство сущности. Сущность, с помощью которой моделируется класс однотипных объектов, определяется как предмет, который может быть идентифицирован. Подобно тому, как каждый объект уникально характеризуется набором значений свойств, сущность должна определятьсянабором атрибутов, позволяющим различать отдельные экземпляры сущности. Уникальным идентификатором сущности может являться атрибут, комбинация атрибутов, комбинация связей или комбинация связей и атрибутов, однозначно отличающая любой экземпляр сущности от других экземпляров сущности того же типа (класса). Сущность имеетуникальное в пределах моделиимя. При этомимя сущности – имя типа (класса), а не конкретного экземпляра. Сущности подразделяются на сильные и слабые. Сущность является слабой, если ее существование зависит от другой сущности, сильной по отношению к ней. Например, сущность «Подчиненный» слабая по отношению к сущности «Сотрудник» (если будет удалена запись, соответствующая некоему сотруднику, имеющему подчиненных, то сведения о подчинении также должны быть удалены). Свойство может быть множественным или единичным, т. е. атрибут, задающий свойство, может одновременно иметь несколько значений или одно. Например, сотрудник может иметь несколько специальностей, но его табельный номер имеет единственное значение. Свойство может быть простым(не подлежащим дальнейшему делению с точки зрения прикладных задач) или составным(если его значение составляется из значений простых свойств). Например, свойство «Год рождения» простое, а свойство «Адрес» составное, т. к. включает значения простых свойств «Город», «Улица», «Дом». В некоторых случаях различают базовые и производныесвойства. Например, «Поставщик» может иметь свойство «Общее количество поставляемых деталей», которое вычисляется суммированием количества деталей, поставляемых им по проекту. Если наличие свойства для всех экземпляров сущности не обязательно, то такое свойство называется условным. Например, не все сотрудники могут обладать свойством «Ученая степень». Значения свойств могут быть статическими (постоянными)или динамическими(меняться со временем). Например, свойство «Табельный номер» статическое, а «Адрес» – динамическое. Динамическое свойство может быть неопределенным, если его текущее значение еще не задано. Свойство может рассматриваться как ключевое, если его значение уникально и однозначно идентифицирует сущность. Кроме связей между объектом и его свойствами инфологическая модель отражает связи между объектами разных классов. Связь – ассоциация, объединяющая несколько сущностей. Эта ассоциация может существовать между разными сущностями или между сущностью и ею же самой (рекурсивная связь). Сущности, объединяемые связью, называются участниками. Степень связиопределяется количеством участников связи. Количественный характер участия экземпляров сущностей (один или многие) задается типом (или мощностью) связи. Возможны следующие типы связи: один к одному (1:1), один ко многим (l:M), многие к одному (М:l), многие ко многим (М:М). В большинстве САSЕ-систем (средств компьютерной автоматизированной разработки программных и организационно-управляющих систем) для простоты принято, что ассоциация всегда должна быть бинарной (т. е. между двумя элементами, происходит от bi - два) и может существовать между двумя разными сущностями или между сущностью и ею же самой (рекурсивная связь). Среди многих разновидностей взаимосвязей наиболее часты такие отношения иерархического типа, как «часть-целое», «род-вид». Отношение «часть-целое» используется для представления составных объектов, например, МАШИНЫ состоят из УЗЛОВ, УЗЛЫ – из ДЕТАЛЕЙ. Возможны как типы связи «1:М», так и«М:М». Отношение «род-вид» используется для представления обобщенных объектов, например, СОТРУДНИКИ подразделяются по профессии на КОНСТРУКТОРОВ, ПРОГРАММИСТОВ, РАБОЧИХ, ПРОГРАММИСТЫ – на ПРИКЛАДНЫХ ПРОГРАММИСТОВ и СИСТЕМНЫХ ПРОГРАММИСТОВ. Иерархические отношения, в частности «родо-видовые», обычно используются как основа классификации объектов по наборам характеристических признаков, при этом «видовые» объекты наследуютсвойства «родовых». Широко используемая разновидность взаимосвязи – агрегирование – объединение простых объектов в сложные по принципу их принадлежности агрегатуили их совместного участия в некотором процессе. Агрегирование как более общий случай иерархических отношений объединяет объекты разной природы с единственным общим свойством «совместное участие». Агрегированные объекты именуются, как правило, отглагольными существительными, например, «Состав»(ПОДРАЗДЕЛЕНИЕ состоит изСОТРУДНИКОВ), «Поставки» (ПОСТАВЩИК поставляетДЕТАЛИ). Сущность может быть разделена на два и более взаимоисключающих подтипа, каждый из которых включает общие атрибуты и/или связи, единожды явно определенные на более высоком уровне. В подтипах могут определяться собственные атрибуты и/или связи. Сущность, на основе которой определяются подтипы, называется супертипом. Подтип наследует свойства и связи супертипа. Например, тип сущности ПРОГРАММИСТ может быть подтипом сущности СОТРУДНИК. Программисты обладают всеми свойствами сотрудников и участвуют во всех связях, однако обратные утверждения неверны. Тип сущности, ее подтипы, подтипы подтипов и т. д. образуют иерархию типов сущности. Разделение супертипа на подтипы обозначено стрелками (рис. 20). Свойства сущностей обозначены в эллипсах, соединенных линиями без стрелок, с прямоугольниками, в которые вписаны названия сущностей. Как было отмечено ранее, ЕR-моделирование предметной области базируется на использовании графических диаграмм. Одна из целей семантического моделирования состоит в том, чтобы результаты анализа предметной области были отражены в простом, но в тоже время формализованном и информативном виде. В этом смысле ЕR-диаграмма – решение, сочетающее функциональный и информационный подходы. Она позволяет представлять как совокупность выполняемых функций, так и отношения между элементами системы. Графическая форма отображает типологию и свойства сущностей и связей. Каждый тип сущности в ЕR-диаграммах представляется в виде прямоугольника, содержащего ее имя. В качестве имени, обычно, используется существительное в единственном числе. Для отражения сущностей слабых типов используются прямоугольники, стороны которых изображают двойными линиями. Например, ПОДЧИНЕННЫЙ – сущность слабого типа (рис. 21). Свойства служат для уточнения, идентификации, характеристики или выражения состояния сущности или связи. Свойства отображаются в виде эллипсов, содержащих имя свойства.Эллипс соединяется с соответствующей сущностью или связью линией. Если свойство многозначное, то контур эллипса изображают двойной линией, например, свойство «Иностранный язык» сущности СОТРУДНИК. производное, например, свойство «Кол-во» сущности ДЕТАЛЬ, то контур эллипса изображают штриховой линией. условное, например свойство «Иностранный язык» сущности СОТРУДНИК, то эллипс соединяется пунктирной линией. составное, например свойство «Адрес» сущности СОТРУДНИК состоит из простых свойств «Город», «Улица», «Дом», то составляющие его свойства также отображаются эллипсами (рис. 21). Каждый тип связи между сущностями на ЕR-диаграмме отображается в виде ромба с именем связи внутри. В любой связи выделяют два конца (в соответствии с существующей парой связываемых сущностей), на каждом из которых указываются: степень конца связи (сколько экземпляров данной сущности связывается), обязательность связи (т. е. любой ли экземпляр данной сущности должен участвовать в связи). В качестве имени связи, обычно, используется отглагольное существительное. Стороны ромба изображают двойными линиями, если это связь сущности слабого типа с сущностью, от которой она зависит. Например, связь «Подчинение», связывающая сущность слабого типа ПОДЧИНЕННЫЙ с сущностью СОТРУДНИК, от которой она зависит, обозначена ромбом с двойными линиями. Участники связи соединены со связью линиями. Двойная линия обозначает полное участие сущности в связи с данной стороны, например, связь «Подчинение» со стороны сущности ПОДЧИНЕННЫЙ. Связь может быть модифицирована указанием роли. Например, для рекурсивной связи «Состав» указаны роли: «Деталь состоит из...» и «Деталь входит в состав...». Тип связи указывается индексами «1» или «М» над соответствующей линией. Например, связь «Рук-во» имеет тип «1:М» (один сотрудник может руководить многими проектами), связь «Участие» имеет тип «М:М» (один сотрудник может участвовать во многих проектах, и в проекте могут участвовать многие сотрудники) (рис. 21). Нормальные формы ER-диаграмм. Даталогические модели. Физические модели Как и в реляционных схемах БД, в ЕR-диаграммах вводится понятие нормальных форм. В 1-й нормальной формеЕR-диаграммы устранены повторяющиеся атрибуты или группы атрибутов, т. е. производится выявление неявных сущностей, «замаскированных» под атрибуты. Во 2-й нормальной формеустранены атрибуты, зависящие только от части уникального идентификатора. Эта часть уникального идентификатора определяет отдельную сущность. В 3-й нормальной формеустранены атрибуты, зависящие от не входящих в уникальный идентификатор атрибутов. Эти атрибуты – основа отдельной сущности. Рис. 22. Пример ЕR-диаграммы в 3-й нормальной форме После того, как построена инфологическая модель данных предметной области, наступает следующая стадия проектирования БД. На этой стадии проектирования БД происходит выбор подходящей СУБД. Модель предметной области разрабатываемой системы должна быть представлена в терминах модели данных выбранной СУБД. Эту стадию называют логическим (илидаталогическим) проектированием, результат которого – логическая схема БД, включающая определение всех информационных элементов (единиц) и связей, в том числе задание типов, характеристик и имен. Построение реляционной БД на основе инфологической модели, представленной ЕR-диаграммой, включает следующие основные шаги: Каждая простая сущность превращается в таблицу (отношение). Имя сущности становится именем таблицы. Каждый атрибут становится возможным столбцом таблицы с тем же именем. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения, столбцы, соответствующие обязательным атрибутам, – не могут. Если атрибут множественный, то для него строится отдельное отношение. Компоненты уникального идентификатора сущности превращаются в первичный ключ. Если имеется несколько возможных уникальных идентификаторов, то выбирается наиболее используемый. Связи «многие к одному» и «один к одному» становятся внешними ключами, т. е. создается копия уникального идентификатора с конца связи «один», и соответствующие столбцы составляют внешний ключ. Индексы создаются для первичного ключа (уникальный индекс), а также внешних ключей и тех атрибутов, которые будут часто использоваться в запросах. |