Методология моделирования IDEF1X. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Методология моделирования IDEF1X.



Для описания логической модели реляционной базы данных существует специальная нотация, которая называется IDEF1X. Это одна из нотаций семейства IDEF – семейство моделей, используемых для описания информационных моделей систем. В это семейство входит IDEF0 – для описания бизнес процессов, IDEF3 – для описания систем документооборота, IDEF5 – для описания БЗ.

  1. сущности изображаются в виде прямоугольников с прямыми и закругленными углами. Прямоугольники с закругленными углами представляют зависимые сущности, уникальные идентификаторы которых включают внешний ключ, определяющий связь с другой сущностью. Независимые сущности (обычные прямоугольники) в первичном ключе не содержат вторичный. Содержание первичного ключа в прямоугольнике отчеркивается. Над прямоугольником пишется имя сущности. В нижней части прямоугольника указываются все остальные атрибуты. Связи изображаются в виде линий: сплошных и пунктирных. Точка означает конец «много». Возможно уточнение количества экземпляров. Нотация IDEF1X положена в основу Case-средства ER Win. Дадим основные элементы нотации:
Нотация Название Значение
Отпуск Код отпуска Код клиента (FK) Независимая сущность Сущность, в уникальный идентификатор которой не входит связь с другой сущностью.
Строка отпуска Код отпуска (FK) Номер строки Количество Код детали (FK) Зависимая сущность Сущность, в уникальный идентификатор которой входит связь с другой сущностью.
Прямая с кругом на конце Идентифицирующая связь Связь между сущностями, являющаяся частью уникального идентификатора.
Пунктирная с точкой на конце Неидентифицирующая связь Связь между сущностями, не являющаяся частью уникального идентификатора.
Прямая с точкой и буквой Р 1…n  
Прямая с точкой и буквой Z 0…1  
Отрезок с жирными точками на концах M:N  
Две прямые с кругом над ними Полное наследование Сущность родитель является супертипом для потомков, которые все должны быть указаны
Прямая с кругом над ней Неполное наследование Не все потомки могут быть указаны
Ромб и прямая с точкой Агрегация (если ромб заштрихован, то каскадное удаление)  

 

24 сентября 2012 г.

Рассмотрим в нотации IDEF1X модель проектной организации.

 

Данная модель позволяет охарактеризовать семантику основных элементов БД. В ней можно выделить стержневые сущности, которые соответствуют основным понятиям предметной области: служащий и проект. В модели используется 2 «справочника»: должность и отдел – которые связаны со стержневыми сущностями отношением М:1 со стержнем (на стержне конец «много», то есть много экземпляров стержня соответствует одному экземпляру справочника).

Трудовой стаж является характеристической. Она уточняет свойства стержня «служащий». Характеристическая сущность связана со стержнем отношением 1:М. Сущность «участие» называется ассоциацией между стержнями «сотрудник» и «проект», то есть это связь М:М и является бизнес-событием предметной области. Можно выделить сущностную и несущностную ассоциацию. Сущностная кроме 2 первичных ключей связываемых сущностей содержит другие атрибуты, несущностная содержит только 2 первичных ключа и на концептуальной модели может не изображаться.

 

Рассмотрим для примера «расписание занятий».

Фрагмент базы ГИБДД.

Перейдем к рассмотрению модели БД тестовой информационной системы «склад деталей». Нарисуем фрагмент логической модели БД.

В модели 2 стержня: деталь и поставщик – один справочник – материал и бизнес-событие поставка реализуется посредством ассоциативной сущности между деталью и поставщиком. При этом эта сущность будет независима, так как используется счетчик кода поставки. Если сделать зависимую сущность, то заводится сущность с ключами код детали, код поставщика, дата поставки.

Рассмотрим содержимое тестовой БД.

DETAIL
DETAIL_CODE (PK) DETAIL_NAME DETAIL_WEIGHT MATERIAL_CODE
D1 БОЛТ   М2
D2 ВИНТ   М5
D3 МУФТА   М9
D4 ГАЙКА   М2

 

MATERIAL
MATERIAL_CODE (PK) MATERIAL_NAME
M2 СТАЛЬ
M3 МЕДЬ
M5 АЛЮМИНИЙ
M9 ЧУГУН

 

SUPPLIER
SUPPLIER_CODE SUPPLIER_NAME SUPPLIER_CITY
S1 ИВАНОВ ИВАНОВО
S2 ПЕТРОВ МОСКВА
S3 СИДОРОВ МОСКВА
S4 СЕРОВ КИРОВ

 

ORDER
ORDER_ID SUPPLIER_CODE DETAIL_CODE ORDER_QANTITY ORDER_DATE
  S1 D1   01.01.04
  S1 D2   01.01.04
  S1 D3   01.02.04
  S1 D4   01.02.04
  S1 D1   01.02.04
  S1 D2   01.02.04
  S2 D1   01.01.04
  S2 D2   01.03.04
  S3 D2   01.04.04
  S4 D1   01.05.04

 

Операции с реляционной моделью: 4 специальных и 4 теоретико-множественных.

Объединение, пересечение, исключение – работают, когда отношения, участвующие в них, идентичны, и их атрибуты построены на одних и тех же доменах. Это бинарные операции.

  1. объединение UNION (ИЛИ). В результате получается новое отношение. Степень отношения (количество атрибутов) = степени исходных, а мощность лежит в интервале (МАХ (М1, М2); М1+М2). SELECT DETAIL_CODE FROM DETAIL d WHERE d.WEIGHT>10 UNION SELECT DETAIL_CODE FROM ORDER o WHERE o.QUANTITY>200 (вывести список деталей, вес которых больше 10, а также деталей, которых было заказано больше 200 за раз).
  2. пересечение INTERSECT (И). Получается новое отношение степень которого равна степени исходных, а мощность лежит в интервале (0; MIN (M1, M2)). SELECT DETAIL_CODE FROM DETAIL d WHERE d.WEIGHT>10 INTERSECT SELECT DETAIL_CODE FROM ORDER o WHERE o.QUANTITY<200 (вывести список деталей, вес которых больше 10 и которых было заказано меньше 200).
  3. исключение EXCEPT. Получается отношение, степень которого сохраняется, а мощность в интервале (0; М1). Вывести список деталей, вес которых больше 10, за исключением тех, которых было заказано меньше 500 – SELECT DETAIL_CODE FROM DETAIL d WHERE d.WEIGHT>10 EXCEPT SELECT DETAIL_CODE FROM ORDER o WHERE SUM(o.QUANTITY)<500 GROUP BY DETAIL_CODE. SUM (D1) = 800, D2 = 1100, D3 = 400, D4 = 200. Как уже было сказано, выше рассмотренные операции работают с идентичными отношениями, атрибуты которых построены на одних доменах. В наших примерах это отношения, состоящие из одного атрибута DETAIL_CODE. В результате первого запроса получается первое отношение, второго – второе, в результате – третье отношение. Данные теоретико-множественные отношения могут работать сразу с двумя отношениями одинаковой структуры. Например, необходимо соединить 2 отношения, в которых хранится информация о деталях из разных заводов. Или можно заливать справочники одинаковых структур из разных частей базы.
  4. декартово произведение CROSS JOIN – множество всех сочетаний строк пересекаемых отношений. Эта операция уже не требует идентичности атрибутов связываемых отношений. Можно пересекать отношения любой структуры. В результате получается отношение, степень которого равна сумме степеней, а мощность равна произведению мощностей. Выполним декартово отношение таблицы «деталь» и «материал». SELECT * FROM DETAIL CROSS JOIN MATERIAL & SELECT * FROM DETAIL, MATERIAL.
РЕЗУЛЬТАТ
DETAIL_CODE DETAIL_NAME DETAIL_WEIGHT MATERIAL_CODE MATERIAL CODE * MATERIAL_NAME
D1 БОЛТ   М2 М2 СТАЛЬ
D1 БОЛТ   М2 М3 МЕДЬ
D1 БОЛТ   М2 М5 АЛЮМИНИЙ
D1 БОЛТ   М2 М9 ЧУГУН
D2 ВИНТ   М5 М2 СТАЛЬ
D2 ВИНТ   М5 М3 МЕДЬ
ВСЕГО: 16 СТРОК        

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

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

Специальные операции:

  1. проекция – унарная операция, предназначенная для уменьшения степени отношений (выбор нужных столбцов). При этом, степень результата определяется заданным списком атрибутов, а мощность остается прежней. Например, выбрать фамилии всех поставщиков: SELECT SUPPLIER_NAME FROM SUPPLIER (SELECT s.SUPPLIER_NAME FROM SUPPLIER s). Звездочка означает «все поля». Запрос SELECT * FROM SUPPLIER позволяет выбрать всю таблицу.
  2. ограничение – выборка определенных строк отношения по заданному условию. Условие записывается в конъюнктивной нормальной форме. (<терм>) И (<терм> ИЛИ <терм> ИЛИ <терм>). Операция унарная и понижает мощность отношения. С точки зрения SQL эта опция WHERE. <условие>::== <терм>/ <группа термов>. Пример: выбрать всех поставщиков, место которых начинается с М: SELECT SUPPLIER_NAME FROM SUPPLIER WHERE SUPPLIER.CITY LIKE ‘M%’. Выбрать всех поставщиков, выполнивших поставки в январе 2004 года – SELECT SUPPLIER_CODE, DETAIL_CODE, ORDER_QUANTITY FROM ORDER WHERE ORDER_DATE BETWEEN ’01.01.04’ AND ’31.01.04’. Примечание: здесь сочетаются операции проекции и ограничения, делается проекция таблицы ORDER на три столбца, заданных в SELECT и ограничивается таблица ORDER по условию, заданному в WHERE.
  3. объединение – бинарная операция, являющаяся основой навигации по реляционной БД (обычно в SQL-запросах применяется совокупность операций ограничения). Операция ограничения задается в опции FROM <имя табл1> [<INNER/>] JOIN <имя табл2> ON <условие отбора> или FROM <имя табл1> [<CROSS/>] JOIN <имя табл2> ON <условие отбора> или FROM <имя табл1> [<FULL OUTER/>] JOIN <имя табл2> ON <условие отбора> или FROM <имя табл1> [<LEFT/>] JOIN <имя табл2> ON <условие отбора> или FROM <имя табл1> [<RIGHT/>] JOIN <имя табл2> ON <условие отбора> или FROM <имя табл1> [<UNION/>] JOIN <имя табл2> ON <условие отбора>
    1. внутреннее объединение (INNER JOIN) – эта операция позволяет объединить 2 таблицы посредством декартова произведения, из которого удаляются те строки, которые не удовлетворяют заданному условию. В поздних версиях INNER опускается. Выбрать список имен деталей с названиями материалов, из которых они сделаны – SELECT DETAIL.DETAIL_NAME FROM DETAIL INNER JOIN MATERIAL ON DETAIL.MATERIAL_CODE = MATERIAL.MATERIAL_CODE. Примечание: в результате запроса выполняется декартово произведение «деталь» и «материал» (см. предыдущую лекцию), в результате которого получается отношение 16 строк * 8 столбцов, далее выполняется ограничение таблицы по условию, которое задано в опции ON. Этот запрос можно записать двумя вариантами: SELECT d.DETAIL_NAME FROM m.MATERIAL_NAME FROM DETAIL d, MATERIAL m d INNER JOIN m ON d.MTERIAL_CODE = m.MATERIAL_CODE; SELECT d.DETAIL_NAME, m.MATERIAL_NAME FROM DETAIL d, MATERIAL m WHERE d.MATERIAL_CODE = m.MATERIAL_CODE. Внутреннее объединение является объединением по умолчанию, поэтому может быть исключена из опции FROM, в ней через запятую перечисляются все объединяемые отношения.
    2. внешнее полное объединение (объединение, сохраняющее информацию) FULL OUTER – объединение 2 таблиц, содержит все строки внутреннего объединения таблиц, дополненное строками таблиц, которые не связались в результате внутреннего объединения со значениями NULL. Шаги внешнего объединения: создать внутреннее объединение; каждую строку первой таблицы, которая не имеет связи ни с одной строкой второй таблицы, добавить в результат запроса, приписывая всем столбцам второй таблицы значение NULL; каждую строку второй таблицы, которая не имеет связи ни с одной строкой первой таблицы добавить в результат запроса, присвоив всем столбцам первой таблицы значение NULL; результирующая таблица будет внешним объединением. Построить внешнее объединение «деталь» и «материал» – SELECT d.DETAIL_NAME, m.MATERIAL_NAME FROM DETAIL d, MATERIAL m d FULL JOIN m ON d.MTERIAL_CODE = m.MATERIAL_CODE. Примечание: так как справочник материалов включает позиции, из которых нет деталей, то добавилась строка NULL – медь, а поскольку связь деталь-материал идет по вторичному и первичному ключу, то не добавилось ни одной строки, в которой в материалах стоял NULL. Следует заметить, что в условии отбора могут использоваться атрибуты, не являющиеся первичными и вторичными ключами. Из этого объединения вытекают левое и правое.
    3. левое внешнее объединение – все строки внутреннего объединения + расширенные значением NULL строки таблицы 1. Левое внешнее объединение для условия равенства вторичного и первичного ключа = внутреннее объединение, так как справочник материалов хранит первичный ключ для кода материала в таблице деталей, поэтому все детали должны иметь код материала, и все они свяжутся в левом внешнем объединении.
    4. правое внешнее объединение – все строки внутреннего + расширенные NULL строки таблицы 2. В нашем случае правое будет равно полному внешнему.
    5. расширенный запрос на объединение – содержит все строки таблиц 1 и 2, расширенные значениями NULL. В нашем случае будет 8 строк. Операции внешнего объединения часто бывают очень полезны при обработке ведомственных реестров.
  4. операция деления – она используется в реляционной исчислении, на уровне SQL не реализована. Реляционное исчисление – математический аппарат, который формулирует преобразование декларативного запроса в совокупность операций реляционной алгебры. Он положен в основу алгоритма оптимизации запроса в СУБД. По сути эта операция – это квантор всеобщности. Например, разделить таблицу деталей на таблицу материалов. В результате получится только те детали, которые сделаны из всех материалов.

Знания:

На уровне представлений:

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

На уровне воспроизведения:

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

На уровне понимания:

  1. различия в подходах к моделированию бизнес-понятий и событий предметной области
  2. преобразование концептуальной модели предметной области в соответствующую модель БД, обоснование целесообразности применения соответствующей модели.

Умения:

  1. проектирование концептуальной модели на основе существующих подходов к информационному моделированию
  2. разработка логической модели БД.

Навыки:

  1. проектирование структуры БД на основе нотаций IDEF1X и UML (возможно с использованием CASE-средств).

 



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 684; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.23.123 (0.012 с.)