Информационное обеспечение систем управления





НазваниеИнформационное обеспечение систем управления
страница8/19
Дата публикации05.12.2014
Размер3.02 Mb.
ТипРеферат
100-bal.ru > Информатика > Реферат
1   ...   4   5   6   7   8   9   10   11   ...   19
ЗАКАЗ – это “связь”. Такой же результат даёт технология “Сущность-связь”.

Требование нормализации не является строго обязательным, но нормализованная БД позволяет избежать многих ошибок. Правила нормализации – это не законы, а рекомендации, позволяющие избежать создания структур данных, которые ограничили бы гибкость прикладного программного комплекса или уменьшили бы его эффективность.

Есть ситуации, в которых имеет смысл нарушить правила нормализации. Приведём пример. Пусть создаётся библиотечная ИСС, в которой жёстко оговаривается, что никому не позволяется брать за один раз больше 5 книг. В данном случае, возможно, проще создать повторяющуюся группу из пяти полей. Другой пример, в году всегда 12 месяцев, поэтому, если на предприятии не "текучки кадров", то логично при начислении заработной платы иметь группу из 12 полей для хранения в каждом поле результаты начисления по месяцам.

Нормализация иногда является для разработчиков неким символом, которому поклоняются. Бывает, что это превращается в нечто вроде религии, и разработчики начинают выполнять нормализацию ради нее самой, а не ради оптимального быстродействия и эффективности базы данных. В этом смысле следует обдумать следующие моменты.

Если объявление вычисляемого столбца или хранение в таблице производных данных позволяет ускорить выполнение запросов, тогда даже не сомневайтесь в необходимости использования таких столбцов. Но при этом помните о необходимости баланса между преимуществами и возможными рисками. К примеру, что если ваши производные данные будут не согласованы с данными, из которых они могут быть получены? Как вы выявите такую ситуацию, и как будете исправлять данную ошибку в случае ее возникновения?

Если вы храните исторические данные   то есть данные, которые редко изменяются и используются только для создания отчетов   тогда вопросу целостности информации можно уделить меньше внимания. После занесения информации в область, предназначенную только для чтения, и после ее проверки, вы можете вполне быть уверены, что в дальнейшем у вас не возникнет проблема несогласованности данных, решать которую и призвана нормализация данных. В таком случае намного лучше и быстрее просто денормализовать данные в некоторых таблицах и увеличить быстродействие системы.

Кроме того, чем меньше таблиц вам потребуется связывать, тем счастливее будут ваши пользователи, создающие собственные отчеты. В последнее время пользователи тех или иных инструментальных средств проявляют все больше находчивости.

Достаточно часто пользователи приходят к своему администратору баз данных и просят предоставить прямой доступ к базе данных для создания собственных отчетов. Для таких пользователей высоконормализованные данные могут обернуться настоящим лабиринтом и оказаться практически бесполезными. Денормализация информации облегчит жизнь для таких клиентов.

Как уже было сказано, если у вас возникают сомнения, выполняйте полную нормализацию данных, поскольку именно такие данные должны храниться в реляционных системах.

4.3. Технология «Сущность-связь»

Анализ технологического процесса в предметной области во многом проясняет ситуацию для разработчика АИС, но не дает явного ответа на вопрос: «Сколько и какого вида отношений нужно для описания предметной области?». Моделирование же логической структуры базы данных при помощи алгоритма нормализации, описанного в предыдущем разделе, имеет серьезные недостатки.

  1. Первоначальное размещение всех полей в одном отношении является очень неестественной операцией. Интуитивно разработчик сразу проектирует несколько отношений в соответствии с обнаруженными в ПО объектами. Даже если совершить насилие над собой и создать одно или несколько отношений, включив в них все предполагаемые атрибуты, то совершенно неясен смысл полученного отношения.

  2. Невозможно сразу определить полный список полей. Пользователи имеют привычку называть разными именами одни и те же вещи или наоборот, называть одними именами разные вещи.

  3. Для проведения процедуры нормализации необходимо выделить зависимости полей, что тоже очень нелегко, т.к. необходимо явно выписать все зависимости, даже те, которые являются очевидными.

В реальном проектировании структуры базы данных применяются другой метод   так называемое, семантическое моделирование. Семантическое моделирование представляет собой моделирование структуры данных, опираясь на смысл этих данных. В качестве инструмента семантического моделирования используются различные варианты диаграмм сущность-связь (ER-диаграммы, Entity-Relationship).

В различных источниках предлагается ряд вариантов нотации подобных моделей. Кроме того, различные программные средства автоматизированного проектирования баз данных (CASE-средства), реализующие одну и ту же нотацию, могут отличаться своими возможностями. По сути, все варианты диаграмм сущность-связь исходят из одной идеи   рисунок всегда нагляднее текстового описания. Все такие диаграммы используют графическое изображение объектов данной ПО, их свойств, и взаимосвязей между ними.

Метод ER-диаграмм   это неформальная технология разработки инфологической модели (первый этап моделирования предметной области). Инфологическая модель в удобной графической форме фиксирует результаты моделирования, на основании которых на следующем этапе строится датологическая схема реляционной модели.

Целью инфологического проектирования является создание структурной информационной модели ПО, для которой будет разрабатываться БД. Инфологическая модель (ИЛМ) должна отвечать следующим требованиям:

  • обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных;

  • простота и удобство использования на следующих этапах проектирования, т.е. ИЛМ может легко отображаться на модели данных, которые поддерживаются известными СУБД (сетевые, иерархические, реляционные);

  • ИЛМ должна быть описана языком, понятным проектировщикам БД, программистам, администратору и будущим пользователям.

Суть инфологического моделирования состоит в выделении сущностей (информационных объектов ПО), которые подлежат хранению в БД, а также в определении характеристик (атрибутов) этих объектов и взаимосвязей между ними.

Таким образом, основными структурными элементами модели являются сущность, атрибут и связь. Такие понятия приняты традиционно. Эти элементы составляют содержание графических диаграмм, представляющих инфологическую модель. Кроме того, не явно в модели присутствует, как правило, для отражения динамики ПО, такой элемент как время. Неявное представление времени осуществляется, например, атрибутами «год рождения», «дата поступления» и т.д.

Сущность – это собирательный (обобщающий) термин для реально существующих объектов, процессов или явлений, о которых необходимо хранить информацию в АИС. Примеры сущностей: материальные – предприятия, изделия, сотрудники; нематериальные   описание явлений, рефераты научных статей, платежные поручения. В технологии ER-диаграмм каждая сущность является опорной точкой сбора информации.

Сущность   это класс однотипных объектов, информация о которых должна быть учтена в инфологической модели.

С термином сущность связано понятие экземпляр сущности. Эта связь аналогична связи между понятиями множество и его элемент.

Экземпляр сущности   это конкретный представитель (элемент) данной сущности (класса).

Каждая сущность должна иметь уникальное в пределах данной ИЛМ имя, выраженное, как правило, существительным в единственном числе. Правило образования имен не имеет ограничений и назначается разработчиком модели.

Например, сущностям СТУДЕНТ, ГОРОД, СОТРУДНИК, ДИСЦИПЛИНА и т.д. соответствуют их экземпляры – Иванов И.И., Хабаровск, Петров Н.Н., Базы данных.

Каждую сущность в модели будем изображать в виде прямоугольника, первая внутренняя ячейка которого содержит имя этой сущности. Например:

СОТРУДНИК





Атрибут – это поименная характеристика или свойство сущности, которые могут принимать значение из некоторого заданного множества значений.

Имя атрибута должно быть выражено существительным в единственном числе возможно, с характеризующими прилагательными. Оно должно быть уникальным для конкретной сущности. Различные сущности могут иметь одинаковые атрибуты. Например, атрибут Цвет может быть определен для многих сущностей: СОБАКА, АВТОМОБИЛЬ, ДЫМ и т.д.

Атрибуты используются для определения того, какая информация должна быть собрана о сущности. Примерами атрибутов сущности СОТРУДНИК могут быть такие атрибуты как Табельный номер, Фамилия, Имя, Отчество, Должность, Зарплата и т.п.

Имена атрибутов изображаются в последующих внутренних ячейках прямоугольника, определяющего данную сущность. Например:

СОТРУДНИК

Табельный
номер


Фамилия

Имя

Отчество

Должность

Зарплата


В этом понятии также следует различать класс и его элемент. Класс атрибута Цвет имеет много экземпляров или значений, например: Красный, Синий, Банановый, Белая ночь и т.д., однако, каждому экземпляру сущности присваивается только одно значение данного атрибута.

Абсолютное различие между сущностями и атрибутами отсутствует. Атрибут является таковым только в связи с данной сущностью. В другом контексте атрибут может выступать как самостоятельная сущность. Например, для автомобильного завода цвет – это только атрибут продукта производства, а для лакокрасочной фабрики цвет – это сущность.

Для идентификации экземпляров каждой сущности следует назначить специальный атрибут(ы), который позволит однозначно отличить один экземпляр от другого. Такой атрибут принято называть идентификатором, ключом или ключевым атрибутом.

Ключ сущности – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности.

  • Значения ключа в совокупности являются уникальными для каждого экземпляра сущности.

  • Сущность может иметь несколько различных ключей.

  • Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся.

Например, для сущности РАСПИСАНИЕ ключом является атрибут Номер_рейса или набор атрибутов Пункт_отправления, Время_вылета и Пункт_назначения (при условии, что из пункта в пункт вылетает в каждый момент времени один самолет).

Ключевые атрибуты изображаются на ER-диаграмме подчеркиванием.

Чтобы задать атрибут в инфологической модели следует:

  • присвоить ему имя,

  • дать смысловое описание,

  • определить множество его допустимых значений,

  • указать для чего он используется.

Назначение атрибутов в модели следующие: а) задавать свойство объекта, б) идентифицировать экземпляры типов сущностей и в) задавать связи между сущностями.

Связь – это некоторая ассоциация между двумя или более сущностями.

  • Одна определенная сущность может быть связана с другой сущностью или сама с собою.

  • Связи позволяют по экземплярам одной сущности находить экземпляры других сущностей, связанные с нею.

Например, связи между разными сущностями содержательно выражаются следующими фразами – "СОТРУДНИК может иметь несколько ДЕТЕЙ", "каждый СОТРУДНИК обязан числиться ровно на одной КАФЕДРЕ". Приведем также пример рекурсивной связь, связывающей сущность ЧЕЛОВЕК с ней же самой. Связь "являться сыном" определяет тот факт, что у одного отца может быть более чем один сын. Связь "быть отецом" означает, что у каждого человека есть один отец.

Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни сущностей, то теоретически между ними может быть установлено более тысячи связей. Наличие такого множества связей и определяет сложность инфологических моделей.

Графически связь изображается линией, соединяющей две сущности.

СОТРУДНИК




РЕБЕНОК




4.1. Иллюстрация связи между двумя сущностями

Каждая связь имеет два конца и одно или два наименования. Наименование обычно выражается в неопределенной глагольной форме: "иметь", "принадлежать" и т.п. Каждое из наименований относится к своему концу связи. Иногда наименования не пишутся ввиду их очевидности.

Э
ксперты полагают, что целью анализа связей между сущностями является выяснение роли каждой сущности в данной связи, а также формулировка ограничений, налагаемых данной связью.

Существует три основных типа связей:
Связь типа один-к-одному (1:1) означает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой).

Примером такой связи может служить отношение "каждый гражданин обязан иметь один паспорт" и наоборот "каждый паспорт принадлежит ровно одному гражданину". Однако, связь один-к-одному чаще всего свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно разделенную на две.

На языке таблиц связь один-к-одному фиксирует тот факт, что запись одной таблицы должна иметь в точности одну соответствующую запись в другой таблице.

Приведем пример, который характеризует ситуации, когда необходимо хранить большой объем данных в одной записи. Вы помните, что максимальный объем данных для одной записи 3600 байт? Единственный способ обойти данное препятствие   это распределить столбцы между двумя отдельными таблицами, а затем задать между ними отношение один-к-одному. Таким образом, совокупность столбцов в этих двух таблицах будет отвечать требованиям размера строки.

Обычно СУБД не обладает собственным методом для реализации в полном объеме связи один-к-одному. Известно, таблица А требует наличия соответствующей записи в таблице В, однако, также известно, что и таблица В должна иметь соответствующую запись в таблице А. Возникает тупиковая ситуация   в какой таблице запись должна быть создана в первую очередь? Поэтому СУБД обычно поддерживает связь нуля или одного-к-одному. По сути, это то же самое, что и простая связь один-к-одному, за исключением того, что одна из сторон связи может не иметь ни одной записи.

Связь типа один-ко-многим (1:М) означает, что один экземпляр первой сущности (левой) связан с несколькими экземплярами второй сущности (правой). Это наиболее часто используемый тип связи. Левая сущность (со стороны "один") называется родительской, правая (со стороны "много")   дочерней. Характерный пример такой связи приведен на рис. 4.1.

Число возможных экземпляров со стороны дочерней сущности называют степенью связи. Иногда бывает полезно определить степень данной связи (например, служащему разрешается участвовать не более, чем в трех проектах одновременно). Для выражения этого семантического ограничения указывают на конце связи ее максимальную или обязательную степень.

Связь один-ко-многим на сегодняшний день это самый распространенный вид связей внешнего ключа. Здесь вновь возникает та же проблема   что было раньше, курица или яйцо? И опять-таки имеют в виду связь нуля или один-ко- многим.

Связь типа много-ко-многим (М:N) означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности.

Реляционная СУБД не обладает возможностью прямой физической реализации связи многих-ко-многим, поэтому такой тип отношений является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности (промежуточной таблицы). Иногда такие таблицы появляются совершенно случайно в ходе процесса нормализации, в других ситуациях нам приходится специально создавать их с нуля, исключительно для обеспечения отношений вида многие-ко-многим. Такие таблицы часто называют связующими (linking) или ассоциативными (associate) таблицами. Примером связи многих-ко-многим, естественно возникшей по ходу нормализации может служить таблица ЗАКАЗ, создающая отношения многих-ко-многим между таблицами АГЕНТ и ТОВАР.

Проблема возможного "нуля" в рассмотренных типах связей характеризуют следующим образом. Каждая связь может иметь одну из двух модальностей связи: "может" и "должен".

Модальность "может" означает, что экземпляр одной сущности может быть связан с одним или несколькими экземплярами другой сущности, а может быть и не связан ни с одним экземпляром.

Модальность "должен" означает, что экземпляр одной сущности обязан быть связан не менее чем с одним экземпляром другой сущности.

Связь может иметь разную модальность с разных концов (см. рис. 4.1). Описанный графический синтаксис позволяет однозначно читать диаграммы, пользуясь следующей схемой построения фраз:

<Каждый экземпляр СУЩНОСТИ 1> <Модальность связи> <Наименование связи> <Тип связи> <экземпляр СУЩНОСТИ 2>.

Каждая связь может быть прочитана как слева направо, так и справа налево. Связь на рис. 4.1 читается так: (слева направо) "каждый сотрудник может иметь несколько детей"; (справа налево) "каждый ребенок обязан принадлежать ровно одному сотруднику".

Так как связь рассматривается между сущностями, то она реально существует между экземплярами этих сущностей. Принято связь между экземплярами сущностей называть экземпляром связи.

Связь между двумя типами сущностей – это бинарная связь; тремя – тренарная, и в общем случае n-парная. Примером тренарной связи может служить связь ГРАФИК между сущностями АВТОБУС, МАРШРУТ и ЭКИПАЖ, семантический смысл которой – формирования графика работы в пассажирском автопредприятии.

Рассмотрим классификацию сущностей. К.Дейт определяет три основные класса сущностей: стержневые, ассоциативные и характеристические, а также подкласс ассоциативных сущностей – обозначения.

Стержневая сущность (стержень) – это независимая базовая сущность данной предметной области.

В рассмотренных ранее примерах стержни – это СТУДЕНТ, СОТРУДНИК, АВТОМОБИЛЬ, ТОВАР и другие, названия которых помещены в прямоугольники.

Ассоциативная сущность (ассоциация) – это связь вида "многие-ко-многим" между двумя или более сущностями сущности (ЗАКАЗ и ГРАФИК). Ассоциации рассматриваются как полноправные сущности. На ER-диаграммах они часто изображаются ромбом или шестиугольником.

Ассоциации могут участвовать в других ассоциациях и обозначениях точно так же, как стержневые сущности.

Они могут обладать свойствами, т.е. иметь не только набор ключевых атрибутов, необходимых для указания связей, но и любое число других атрибутов, характеризующих связь. Например, связь ПОСТАВКА_ТОВАРА между такими типами сущностей как ПОСТАВЩИК и ТОВАР может иметь атрибуты Количество и Дата_поставки.

Характеристическая сущность (характеристика) – это дочерняя сущность, участвующая в связи вида "многие-к-одной" или "одна-к-одной". Единственная цель характеристики в рамках рассматриваемой предметной области состоит в описании или уточнении родительской сущности.

Существование характеристики полностью зависит от характеризуемой сущности: женщины лишаются статуса жен, если умирает их муж. На ER-диаграммах они изображаются трапециями.

Обозначающая сущность (обозначение) – это дочерняя сущность, участвующая в связи вида "многие-к-одной" или "одна-к-одной" и отличается от характеристики тем, что она не зависит от обозначаемой сущности.

Обозначения используют для хранения повторяющихся значений больших текстовых атрибутов: "кодификаторы" изучаемых студентами дисциплин, наименований организаций и их отделов, перечней товаров и т.п.

Как правило, обозначения не рассматриваются как полноправные сущности, хотя это не привело бы к какой-либо ошибке.

Обозначения и характеристики не являются полностью независимыми сущностями, поскольку они предполагают наличие некоторой другой сущности, которая будет "обозначаться" или "характеризоваться". Однако они все же представляют собой частные случаи сущности и могут, конечно, иметь свойства, могут участвовать в ассоциациях, обозначениях и иметь свои собственные (более низкого уровня) характеристики.

Рассмотрим типовые ситуации при организации связей. Первым примером такой ситуации служит так называемая доменная связь. Домен означает определенный список значений, которые являются допустимыми вариантами выбора для определенного атрибута зависимой таблицы. Таблица, хранящая вышеупомянутый список, называется доменной или справочной таблицей. Практически все создаваемые вами базы данных имеют хотя бы одну (а может и больше) доменных таблиц в своем составе.

Второй пример   ограничения внешнего ключа. Создать такой тип отношений можно командой CREATE TABLE: нужно объявить ограничения внешнего ключа для таблицы, служащей в роли стороны "многие" данной связи, и установить ссылку на таблицу и столбец, которые выступают в качестве стороны "один" связи. Ограничить количество значений максимум единицей вы можете, наложив ограничения уникальности или первичного ключа на столбцы, на которые ссылается внешний ключ.

CREATE DATABASE Кафедра

CREATE TABLE Сотрудники (Код N(3) PRIMARY KEY, ФИО C(20), ;

Дата_Р D, РС L, Прим G)

CREATE TABLE Дети (Код N(3), ФИО C(20), ДР D, Сп M, ;

FOREIGN KEY Код TAG Код REFERENCE Сотрудники)

MODIFY DATABASE

Третий пример – это отношение супертип- подтип. Сущность может быть расщеплена на два или более взаимно исключающих подтипа, каждый из которых включает общий набор атрибутов. Эти общие атрибуты явно определяются один раз на более высоком уровне. В подтипах могут определяться собственные наборы атрибутов. В принципе подтипизация может продолжаться на более низких уровнях, но опыт показывает, что в большинстве случаев достаточно двух-трех уровней.

Сущность, на основе которой определяются подтипы, называется супертипом. Подтипы должны образовывать полное множество, т.е. любой экземпляр супертипа должен относиться к некоторому подтипу. Иногда для полноты приходится определять дополнительный подтип ПРОЧИЕ.

Примером супертипа может служить сущность АВТОМОБИЛЬ с подтипами АВТОБУС, ГРУЗОВИК и ТАКСИ.

Иногда удобно иметь два или более разных разбиения сущности на подтипы. Например, сущность СОТРУДНИК может быть разбита на подтипы по профессиональному признаку (ДОЦЕНТ, ПРОФЕССОР, ПРОГРАММИСТ, и т.д.), а может   по половому признаку (МУЖЧИНА, ЖЕНЩИНА).

Результаты разработки инфологической модели оформляют в виде спецификации сущностей, спецификации атрибутов сущностей, спецификации связей (отношений) и графической диаграммы.

Рассмотренный язык ER-диаграмм используется для построении небольших моделей и иллюстрации отдельных фрагментов больших (он достаточно громоздкий). Чаще же применяется менее наглядный, но более содержательный язык инфологического моделирования (ЯИМ), в котором сущности и ассоциации представляются предложениями вида:

СУЩНОСТЬ (Атрибут_1, Атрибут_2 , ..., Атрибут_N)

АССОЦИАЦИЯ [СУЩНОСТЬ S1, СУЩНОСТЬ S2, ...]

(Атрибут_1, Атрибут_2 , ..., Атрибут_N)

где Si – степень связи, а атрибуты, входящие в ключ, должны быть отмечены с помощью подчеркивания.

ХАРАКТЕРИСТИКА (Атрибут_1, Атрибут_2 , ..., Атрибут_N)

писок характеризуемых сущностей}.

ОБОЗНАЧЕНИЕ (Атрибут_1, Атрибут_2 , ..., Атрибут_N)

[Список обозначаемых сущностей].

Приведем пример описания на языке инфологического моделирования.

ВРАЧ (Номер_врача, Фамилия, Имя, Отчество, Специальность)

ПАЦИЕНТ (Регистрационный_номер, Номер койки, Фамилия,

Имя, Отчество, Адрес, Дата рождения, Пол)

ЛЕЧАЩИЙ_ВРАЧ [ВРАЧ 1, ПАЦИЕНТ M]

(Номер_врача, Регистрационный_номер)

КОНСУЛЬТАНТ [ВРАЧ M, ПАЦИЕНТ N]

(Номер_врача, Регистрационный_номер).

ER-диаграммы удобны тем, что процесс выделения сущностей, атрибутов и связей является итерационным. Разработав первый приближенный вариант диаграмм, мы уточняем их, опрашивая экспертов предметной области. При этом документацией, в которой фиксируются результаты бесед, являются сами ER-диаграммы.

При разработке ER-моделей мы должны получить следующую информацию о предметной области:

  • Список сущностей предметной области.

  • Список атрибутов сущностей.

  • Описание взаимосвязей между сущностями.

Рассмотрим пример разработки простой ER-модели для той же предметной области, которую мы исследовали, изучая процесс нормализации.

Предположим, что перед нами стоит задача разработать информационную систему для фиксации заказов в некоторой оптовой торговой фирме. В первую очередь мы должны изучить предметную область и процессы, происходящие в ней. Для этого мы опрашиваем сотрудников фирмы, читаем документацию, изучаем формы заказов, накладных и т.п.

Пусть, в ходе беседы с менеджером по продажам, выяснилось, что он считает основными функциями системы следующие.

  • Хранение информации об торговых агентах.

  • Формирование накладных на отпущенные товары.

  • Фиксация наличия товаров на складе.

Выделим все существительные в этих предложениях – это и будут потенциальные кандидаты на сущности и атрибуты. Проанализируем их, непонятные термины будем выделять знаком вопроса.

АГЕНТ   явный кандидат на стержневую сущность.

НАКЛАДНАЯ   явный кандидат на стержневую сущность.

ТОВАР   явный кандидат на стержневую сущность

(?) Склад   сколько складов имеет фирма? Если несколько, то это будет кандидатом на новую сущность.

(?) Наличие товара – это скорее всего атрибут, но какой сущности?

Сразу очевидна связь между стержневыми сущностями   "агенты могут покупать много товаров" и "товары могут продаваться многим агентам". Поэтому результат первой итерации разработки ER-модели можно представить в виде диаграммы, приведенной на рис. 4.2.

АГЕНТ




ТОВАР




Рис. 4.2. Первый вариант ER-диаграммы

Задав дополнительные вопросы менеджеру, мы выяснили, что фирма имеет несколько складов. Причем, каждый товар может храниться на нескольких складах и быть проданным с любого склада.

Куда поместить сущности НАКЛАДНАЯ и СКЛАД и с чем их связать? Как связаны эти сущности между собой и со стержнями АГЕНТ и ТОВАР? Агенты покупают товары, получая при этом накладные, в которые внесены данные о количестве и цене купленного товара. Каждый агент может получить несколько накладных. Каждая накладная обязана выписываться на одного агента. Каждая накладная может содержать несколько товаров (не бывает пустых накладных). Каждый товар, в свою очередь, может быть продан нескольким агентам через несколько накладных. Кроме того, каждая накладная должна быть выписана с определенного склада, и с любого склада может быть выписано много накладных. Таким образом, после уточнения технологии продаж, сделав вторую итерацию, получим ER-диаграмму, которая приведена на рис. 4.3.

Далее для каждой сущности следует продумать набор ее атрибутов. Беседуя с сотрудниками фирмы, мы выяснили следующее.

Каждый агент представляет определенную фирму, которая имеет наименование, адрес, банковские реквизиты.

Каждый товар имеет наименование, цену, а также характеризуется единицами измерения.

Р
ис. 4.3. Второй вариант ER-диаграммы

Каждая накладная имеет уникальный номер, дату выписки, список товаров с количествами и ценами, а также общую сумму накладной. Накладная выписывается с определенного склада и на определенного покупателя.

Каждый склад имеет свое наименование.

Снова выпишем все существительные, которые будут потенциальными атрибутами, и проанализируем их:

Наименование агента   явная характеристика агента.

Адрес   явная характеристика агента.

Банковские реквизиты   явная характеристика агента.

Наименование товара   явная характеристика товара.

(?) Цена товара   похоже, что это характеристика товара. Отличается ли эта характеристика от цены в накладной?

Единица измерения   явная характеристика товара.

Номер накладной   явная уникальная характеристика накладной.

Дата накладной   явная характеристика накладной.

(?) Список товаров в накладной   список не может быть атрибутом. Вероятно, нужно выделить этот список в отдельную сущность.

(?) Количество товара в накладной   это явная характеристика, но характеристика чего? Это характеристика не просто "товара", а "товара в накладной".

(?) Цена товара в накладной   опять же это должна быть не просто характеристика товара, а характеристика товара в накладной. Но цена товара уже встречалась выше   это одно и то же?

Сумма накладной   явная характеристика накладной. Эта характеристика не является независимой. Сумма накладной равна сумме стоимостей всех товаров, входящих в накладную.

Наименование склада   явная характеристика склада.

В ходе дополнительной беседы с менеджером удалось прояснить различные понятия цен. Оказалось, что каждый товар имеет некоторую текущую цену. Эта цена, по которой товар продается в данный момент. Естественно, что эта цена может меняться со временем. Цена одного и того же товара в разных накладных, выписанных в разное время, может быть различной. Таким образом, имеется две цены   цена товара в накладной и текущая цена товара.

С возникающим понятием "Список товаров в накладной" все довольно ясно. Сущности НАКЛАДНАЯ и ТОВАР связаны друг с другом отношением типа много-ко-многим. Такая связь, как мы отмечали ранее, должна быть расщеплена на две связи типа один-ко-многим. Для этого требуется дополнительная ассоциативная сущность. Этой сущностью будет сущность СОСТАВ. Связь ее с сущностями НАКЛАДНАЯ и ТОВАР характеризуется следующими фразами. "Каждая накладная обязана иметь несколько элементов из списка состав", "каждый элемент из списка состав обязан включаться ровно в одну накладную", "каждый товар может включаться в несколько записей из списка состав", "каждая запись из списка состав обязана быть связана ровно с одним товаром".

Атрибуты Количество товара в накладной и Цена товара в накладной являются атрибутами сущности СОСТАВ.

Точно также поступим со связью, соединяющей сущности СКЛАД и ТОВАР. Введем дополнительную ассоциативную сущность ТОВАР НА СКЛАДЕ. Атрибутом этой сущности будет Количество товара на складе. Таким образом, товар будет числиться на любом складе и количество его на каждом складе будет свое.

Теперь результаты третьей итерации можно внести в ER-диаграмму, которая приводится на рис. 4.4.

Разработанный выше пример ER-диаграммы является примером инфологической модели. Это означает, что диаграмма не учитывает особенности конкретной СУБД. По данной диаграмме можно построить датологическую модель, которая уже будут учитываться такие особенности СУБД, как допустимые типы и наименования полей и таблиц, ограничения целостности и т.п. Возможный вариант датологической диаграммы приведен на рис. 4.5.


На данной диаграмме каждая сущность представляет собой таблицу базы данных, каждый атрибут становится колонкой соответствующей таблицы. Обращаем внимание на то, что во многих таблицах, например, MAIN и СОСТАВ, соответствующих сущностям НАКЛАДНАЯ и СОСТАВ НАКЛАДНОЙ, появились новые атрибуты, которых не было в инфологической модели   это ключевые атрибуты родительских таблиц, мигрировавших в дочерние таблицы для того, чтобы обеспечить связь между таблицами посредством внешних ключей.

Основная идея преобразования инфологической модели в датологическую модель заключается в следующем: каждая сущность хранится в отдельном DBF-файле.

Сформулируем ряд выводов.

Реальным средством моделирования данных является не формальный метод нормализации отношений, а так называемое семантическое моделирование.





В качестве инструмента семантического моделирования используются различные варианты диаграмм сущность-связь (ER-диаграммы).

ER-диаграммы позволяют использовать наглядные графические обозначения для моделирования сущностей и их взаимосвязей.

Различают инфологические и датологические ER-диаграммы. Первые не учитывают особенностей конкретных СУБД. Вторые строятся по первым и представляют собой прообраз конкретной базы данных. Сущности, определенные в инфологической диаграмме становятся таблицами, атрибуты становятся колонками таблиц (при этом учитываются допустимые для данной СУБД типы данных и наименования столбцов), связи реализуются путем миграции ключевых атрибутов родительских сущностей и создания внешних ключей.

При правильном определении сущностей, полученные таблицы будут сразу находиться в 3НФ. Основное достоинство метода состоит в том, модель строится методом последовательных уточнений первоначальных диаграмм.

При разработки инфологической модели ПО следует придерживаться следующих общих правил.

  1. Использовать только три типа элементов модели, а именно: сущность, атрибут и связь

  2. В модели каждый компонент ПО моделируется только одним элементом (исключить избыточность).

  3. Использовать декомпозицию ПО (разбить ПО на ряд локальных областей, смоделировать каждую локальную область отдельно, а затем их объединить).

  4. Помнить об итерационном характере процесса проектирования.

Для определения перечня и структуры хранимых данных надо собрать информацию о реальных и потенциальных приложениях, а также о пользователях базы данных, а при построении инфологической модели следует заботиться лишь о надежности хранения этих данных, напрочь забывая о приложениях и пользователях, для которых создается база данных.

Это связано с абсолютно различающимися требованиями к базе данных прикладных программистов и администратора базы данных. Первые хотели бы иметь в одном месте (например, в одной таблице) все данные, необходимые им для реализации запроса из прикладной программы. Вторые же заботятся об исключении возможных искажений хранимых данных при вводе в базу данных новой информации и обновлении или удалении существующей. Для этого они удаляют из базы данных дубликаты и нежелательные функциональные связи между атрибутами, разбивая базу данных на множество маленьких таблиц. Так как многолетний мировой опыт использования информационных систем, построенных на основе баз данных, показывает, что недостатки проекта невозможно устранить любыми ухищрениями в программах, то опытные проектировщики не позволяют себе идти навстречу программистам (даже тогда, когда они сами являются таковыми).
1   ...   4   5   6   7   8   9   10   11   ...   19

Похожие:

Информационное обеспечение систем управления icon«Учебно-методический комплекс дисциплины «Информационное обеспечение систем управления»

Информационное обеспечение систем управления iconПояснительная записка
«Современная организация и технология документационного обеспечения управления». Он связан с курсами «Документоведение», «Информационное...
Информационное обеспечение систем управления iconИсследование систем управления процесс определения организационной...
Место исследований систем управления в комплексе дисциплин по теории и практке управления
Информационное обеспечение систем управления iconПрограммное обеспечение для отладки систем управления упругими объектами
Целью данной работы является разработка программного обеспечения для лабораторного стенда для изучения систем управления упругими...
Информационное обеспечение систем управления iconРабочая программа дисциплины «Информационное обеспечение, базы данных»
Факультет информационных систем и технологий Кафедра Прикладной математики и вычислительной техники
Информационное обеспечение систем управления iconУчебная программа по дисциплине " информационное обеспечение управления "
Изучение теоретических, методических и практических вопросов разработки, внедрения и совершенствования информационного обеспечения...
Информационное обеспечение систем управления iconРоссийской Федерации Самарский государственный архитектурно-строительный...
Информационные системы” являются информационные системы и сети, их математическое, информационное и программное обеспечение, способы...
Информационное обеспечение систем управления iconРабочая программа дисциплины «Архитектура ЭВМ и вычислительных систем»...
«Автоматизированные системы обработки информации и управления» (по отраслям) и 230105 «Программное обеспечение вычислительной техники...
Информационное обеспечение систем управления iconИсследование систем управления
Целью работы является рассмотрение частных методов исследования систем управления, а именно эксперимент, наблюдение и опрос
Информационное обеспечение систем управления iconПримерная тематика рефератов по курсу «Исследование систем управления»
Современный менеджмент и необходимость исследования систем управления социально-экономической организацией
Информационное обеспечение систем управления iconОрганизационно-правовое обеспечение правовой деятельности
Информационное обеспечение организации и проведения внеучебной работы
Информационное обеспечение систем управления iconИсследование систем управления Специальности: «Менеджмент организации»
«Исследование систем управления» является ведущей,в учебном процессе среди смежных дисциплин
Информационное обеспечение систем управления iconРеферат по дисциплине "Избирательное право" тема: Информационное...
Информационное обеспечение выборов. Правовое регулирование предвыборной агитации в РФ
Информационное обеспечение систем управления iconИнформационное обеспечение управления
В настоящее время классификационные схемы (классификаторы) строятся не только на основе соподчинения понятий (метод иерархии), но...
Информационное обеспечение систем управления iconКурсовая работа По дисциплине «Базы данных»
Программное обеспечение для создания систем управления базами данных
Информационное обеспечение систем управления iconРабочая программа учебной дисциплины «исследование систем управления»
Студенты научатся методам планирования эксперимента и организации исследования систем управления и научатся использовать приобретенные...


Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
100-bal.ru
Поиск