Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Нормальные формы ER-моделей




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

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

3) В третьей нормальной форме устраняются атрибуты, которые зависят от атрибутов, не входящих в уникальный идентификатор. Эти атрибуты являются основой отдельной сущности.

Замечание: многозначность значения атрибута моет трактоваться двояко и сильно зависит от специфики решаемой задачи.

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

 

Более сложные модели ER модели.

  1. Подтипы и супертипы сущностей

Подобно объектоориентированным языкам программирования, в ER моделировании можно определить наследование нового типа сущности от некоторого супертипа.

  1. Уточняемые степени связи

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

  1. Взаимоисключающие связи

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

 
 

 

 


Либо…либо

       
 
   
Преподаватель
 

 

 


  1. Каскадное изменение или удаление экземпляров сущности

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

 

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

Свойства:

Если у типа сущности A имеются подтипы B1, B2,..., B n, то:

1. (a) любой экземпляр типа сущности B1, B2,..., B n является экземпляром типа сущности A(включение);

 

2. (b) если a является экземпляром типа сущности A, то a является экземпляром некоторого подтипа сущности B i (i = 1, 2,..., n) (отсутствие собственных экземпляров у супертипа сущности);

 

3. (c) ни для каких подтипов B i и B j (i, j = 1, 2,..., n) не существует экземпляра, типом которого одновременно являются типы сущности B i и B j (разъединенность подтипов).

 

Пример 1. А-птицы, B1 –снегирь, В2 – ворона, В3 - синица

 

Материал Id Title Author CDT Type(необ)
Пример: пусть необходимо построить веб-сайт, хранящий информацию из предметной области мультимедиа, при этом, среди требований есть как требование манипулирования с материалами конкретного типа, так и требование манипулирование со всеми материалами в целом. Смоделируем ER модель.

       
 
Аудио Id Codec PT
   
Лекция Id lector
 

 


Текст Id text
1 1

1 1

 
 


 
 


1

Плеер Id orkestr
Концерт Id orkestr
1 ∞ 1

 

 

 
 
Материал

 

 


Иногда супер типы изображают по другому:

 

 

6.Каскадное изменение и удаление сущностей. Пример:

 

Пусть предметная область подразумевает хранение информации о выполненных работах и исполнителях, но в случае:

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

 

ER диаграмма.

       
 
Исполнители Id ФИО
 
Работы Id Вид работы Даты выполнения Объем Расценка Исполнитель
 

 


1 ∞

 

 

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

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

 

Паттерны проектирования БД.

Паттерны – шаблоны. Рецепт, по которому нужно выполнять проектирования в какой либо области.

 

1паттерн. Дерево

Назначение: необходимо хранить в БД упорядоченную совокупность данных, представимое деревом либо лесом.

id узел Родитель
  A NULL
  Z NULL
  B  
  C  
  D  
  E  
  F  

Узел

 

 

 

Ребра
Узел
2паттерн. Граф

id Узел
  A
  B
  C
  D
  E
Id1 id2
   
   
   
   
   

 

Если граф ориентированный, то в таблице ребер принимаются договоренность: какой индификатор(id) является источником, какой приемником ребра.

Если неориентированный, то

  1. В таблицу ребер вносятся пары (Vj, Vi),(Vi, Vj), что эквивалентно ориентированному графу двусторонне ориентированными ребрами.
  2. (Vi,Vj) ó (Vj,Vi), ребро (Vi, Vj) считается равносильным ребру (Vj,Vi), при этом в таблицу вносится одна пара, но при этом усложняется логика запросов выборки.

 

Задачи проектирования с применением графа.

Задача 1. База МЧС

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

-промышленные предприятия

-образовательные учреждения

-больницы и т.д.

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

   
 
 
 
 
 


50 50

**

100 50

*

150 Ситуация 1 Ситуация 2

 

 

Решение: при проектировании информационной системы, решающей данную систему, появляется неявная сущность «теплотрасса». Теплотрасса соединяет объект и котельную, при этом нужно отличать ситуации 1 и 2. В случае один при разрыве в * объект полностью теряет тепло, а ** - в угнетение.

- тепло узел

- точка включения

 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Прием «Таблица соответствия»

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

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

 

Пример: построить сравнительные графики показывающие динамику нагрузки преподавателя и динамику его з/п. В этом случае, запрос на выборку средней нагрузки преподавателя в секции where будет содержать условие lector_id = $id. А запрос к бухгалтерской базе будет содержать id in($id[0]…$id[n]).

 

Паттерн «Сущность с накоплением и промежуточные итоги»

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

 

Пример: при этом при приходе – количество сумма положительна.

 
 
Склад - - - - - - - Id Data_op Q_op Sum_op Good_id


id Data_op Id_good q_op Sum_op
  01.09 12.09 2.09 Авторучка Авторучка карандаши -100 -100

 

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

Чтобы посчитать какой-то момент в будущем, остаток товаров на складе, необходимо построить запрос с агрегатом SUM() по колонкам q_op и sum_op с группировкой по колонке id_good.

Авт 900 900

Кар 500 5000

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

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

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

 

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

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

Паттерн «периодические реквизиты»

 

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

 

Например: сотрудницей заключаются дополнительное соглашение по договору, в котором указываются её ФИО. В какой то момент, в результате замужества, она меняет фамилию, при этом, при выводе доп. соглашения на период до замужества необходимо указывать девичью фамилию, а на период после – новую.

 

 

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

 

Основ сущности
id
Attr1
Attr n
Периодический реквезит
Id_attr
Id_main_eatity
data
value

 

 

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

 




Поделиться с друзьями:


Дата добавления: 2015-06-27; Просмотров: 2631; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.075 сек.