
- •Базы данных: основные понятия и определения. Требования, предъявляемые к базам данных
- •Выбор хранимых данных
- •Реляционная модель данных
- •Реляционная алгебра
- •Операция выборка
- •Операция проекция
- •Операция естественное соединение
- •Операция соединение по условию (θ – соединение)
- •Операция деления
- •Методология проектирования баз данных. Основные задачи проектирования баз данных
- •Основные этапы проектирования баз данных
- •Концептуальное (инфологическое) проектирование бд
- •Логическое (даталогическое) проектирование бд
- •Принципы и средства структурного подхода к разработке по
- •Методология структурного анализа и проектирования sadt
- •Диаграммы потоков данных: внешние сущности, системы и подсистемы, процессы, хранилища данных, потоки данных. Нотация Гейна – Сарсона
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных
- •Функциональные модели, используемые на стадии проектирования
- •14. Методология моделирования idef3: составные элементы, объекты ссылок, перекрестки.
- •15. Подходы к моделированию в базах данных
- •16. Анализ предметной области. Описание объектов и их свойств. Связи между элементами моделей данных. Описание сложных объектов
- •17. Проблема целостности базы данных
- •18. Даталогическое проектирование. Нотация Питера Чена. Нотация idef 1х
- •Нотация Питера Чена.
- •Нотация idef 1x
- •19. Проектирование реляционных баз данных на основе принципов нормализации. Правила технической нормализации
- •20. Алгоритм процесса нормализации схем отношений
- •21. Нормализация. Функциональная зависимость. Первая, вторая, нормальные формы
- •22. Нормализация. Функциональная зависимость. Третья нормальная форма
- •23. Нормализация. Функциональная зависимость. Нормальная форма Бойса – Кодда
- •24. Разработка реляционных баз данных на основе принципов нормализации
- •25. Основные аксиомы Армстронга. Замыкание
- •26. Нормальные формы высших порядков
- •27. Методологии проектирования
- •28. Инфологическое моделирование данных: модель «сущность-связь»
- •29. Принципы поддержки целостности в реляционной модели данных
- •30. Моделирование данных. Метод Баркера
- •31. Моделирование данных. Метод idef1x
- •32. Case-средство для концептуального моделирования данных на стадии формирования требований к ис – Silverrun
- •33. Нормализация. Функциональная зависимость. Первая, вторая, третья нормальные формы. Нормальная форма Бойса – Кодда
- •34. Инструментальные средства моделирования. Проектирование баз данных с использованием са erWin Data Modeler (erWin)
- •35. Алгоритм перехода от er – модели к реляционной схеме данных
- •36. Основные принципы объектно-ориентированного моделирования
- •37. Сущность методологии объектно-ориентированного анализа и проектирования
- •38. Язык объектного моделирования uml. Виды диаграмм uml. Последовательность построения диаграмм
- •Диаграмма состояний
- •Диаграмма последовательностей
- •Диаграмма активности
- •39. Модель прецедентов (вариантов использования, use-cases)
- •40. Моделирование статической структуры системы с помощью диаграммы классов: стереотипы классов
- •41. Моделирование статической структуры системы с помощью диаграммы классов: механизм пакетов
- •42. Моделирование статической структуры системы с помощью диаграммы классов: атрибуты
- •43. Моделирование статической структуры системы с помощью диаграммы классов: основные и вспомогательные операции
- •44. Моделирование статической структуры системы с помощью диаграммы классов: типы связей
- •45. Инкапсуляция, наследование, полиморфизм
- •46. Моделирование поведения системы
- •47. Использование диаграммы последовательностей для упорядочивания сообщений во времени
- •48. Использование диаграммы кооперации для описания структурной организации объектов
- •49. Моделирование физических аспектов функционирования системы с помощью диаграмм развертывания
- •50. Особенности построения физической модели базы данных
- •51. Ограничения ссылочной целостности
- •52. Моделирование процессов обработки данных
- •53. Индексирование
- •54. Методы совместного доступа к базам данных
- •55. Транзакции и блокировки
- •56. Типы параллелизма
- •57. Свойства транзакций. Способы завершения транзакций
- •58. Проблемы параллельного выполнения транзакций
- •59. Методы сериализации транзакций. Механизм блокировок. Типы конфликтов
- •60. Правила совместимости захватов. Проблема тупиковых ситуаций и ее решение
- •61. Уровни изолированности пользователей
- •62. Гранулированные синхронизационные захваты
- •63. Метод временных меток
- •64. Предикатные синхронизационные захваты
31. Моделирование данных. Метод idef1x
На этапе инфологического проектирования базы данных должна быть построена модель предметной области, не привязанная к конкретной СУБД, понятная не только разработчикам информационной системы, но и экономистам, менеджерам и другим специалистам. В то же время модель предметной области должна максимально точно отражать семантику предметной области и позволять легко перейти к модели данных конкретной СУБД.
Такими моделями являются модели "сущность-связь". Известно несколько методологий построения моделей "сущность-связь". Наибольшее распространение получила методология IDEF1X.
Модели данных в нотации IDEF1X используются для создания баз данных.
Основными элементами модели IDEF1X являются сущности, атрибуты и отношения.
Сущность – это абстракция множества предметов или явлений реального мира, информацию о которых надо сохранить. Например, можно выделить сущность СТУДЕНТ. Экземплярами сущности СТУДЕНТ будут данные о конкретных студентах.
Сущности обладают определенными свойствами атрибутами. Атрибут — это абстракция одной характеристики объекта или явления реального мира.
У каждой сущности должен быть выделен идентификатор, или первичный ключ.
Первичный ключ – это один или несколько атрибутов, однозначно определяющих каждый экземпляр сущности. Если первичный ключ состоит из нескольких атрибутов, то он называется составным. Используется также понятие внешнего ключа. Внешний ключ – это первичный ключ другой сущности, который мигрирует (копируется) в сущность и служит для связи сущностей.
При выборе атрибутов целесообразно придерживаться следующих правил (не входящих в IDEF1X), позволяющих перейти к физической модели, находящейся в третьей нормальной форме:
1. Атрибуты должны быть неделимыми.
2. Каждый неключевой атрибут должен полностью зависеть от составного ключа, а не от части ключа.
3. Не должно существовать транзитивных зависимостей атрибутов от ключа. Например, если ключ ТАБЕЛЬНЫЙ_НОМЕР определяет атрибут НОМЕР_ОТДЕЛА, а НОМЕР_ОТДЕЛА определяет ТЕЛЕФОН, то ТАБЕЛЬНЫЙ_НОМЕР транзитивно определяет ТЕЛЕФОН.
Отношение — это ассоциация или "связь" между двумя сущностями. Отношение представляется в модели линией, соединяющей две сущности, и именем отношения — глагольной конструкцией, которая описывает, как две сущности зависят друг от друга.
Отношение обладает следующими свойствами:
· Степень — число сущностей, ассоциированных с отношением. Чаще всего используются бинарные отношения, связывающие две сущности.
· Направленность — свойство которое определяет от куда исходит(родительская сущность) и где оканчивается(дочерняя сущность);
· Тип — то к какому типу принадлежит связь;
· Мощность — задает максимальное число экземпляров одной сущности, которые могут быть связаны с экземплярами другой сущности(N - ноль, один или более, Z - ноль или один, Р - один или более, фиксированное число)
· Обязательность. Обязательная и необязательная (см. неидентифицирующее отношение)
ТИП СВЯЗИ
В ERwin отношение между двумя сущностями или сущности самой с собой может принадлежать к одному из следующих типов:
· идентифицирующее отношение;
· неидентифицирующее отношение;
· типизирующее отношение;
· отношение многие-ко-многим;
· рекурсивное отношение.
Идентифицирующим является отношение между двумя сущностями, в котором каждый экземпляр подчиненной сущности идентифицируется значениями атрибутов родительской сущности. Это означает, что экземпляр подчиненной сущности зависит от родительской сущности и не может существовать без экземпляра родительской сущности. Атрибуты первичного ключа родительской сущности мигрируют в атрибуты подчиненной, чтобы стать там атрибутами первичного ключа.
В сущности Заказ использован искусственный первичный ключ ID заказа (Идентификатор заказа), который мигрировал в дочернюю сущность Состав заказа и стал там первичным ключом.
Неидентифицирующим называется отношение между двумя сущностями, в котором каждый экземпляр подчиненной сущности не зависит от значений атрибутов родительской сущности. Это означает, что экземпляр подчиненной сущности не зависит от родительской сущности и может существовать без экземпляра родительской сущности. Атрибуты первичного ключа родительской сущности мигрируют в подчиненную, чтобы стать там неключевыми атрибутами.
На данном примере рассмотрим также понятие обязательности отношения. Неидентифицирующее отношение называется обязательным (No Nulls), если все экземпляры дочерней сущности должны участвовать в отношении.
Неидентифицирующее отношение называется необязательным (Nulls Allowed), если некоторые экземпляры дочерней сущности могут не участвовать в отношении.
Типизирующими называются отношения между родительской и одной или более подчиненными сущностями, когда сущности разделяют общие характеристики. Такие отношения называются еще иерархией наследования или иерархией категорий. Типизирующие отношения используются в том случае, когда экземпляр родительской сущности определяет различные наборы атрибутов в подчиненных сущностях.
На рисунке показана полная категория, т. е. каждый экземпляр сущности сотрудник относится к одной из перечисленных категорий. Возможна неполная категория, когда существуют экземпляры родительской сущности, не имеющие
Отношения многие-ко-многим возникают тогда, где один экземпляр одной сущности связан с несколькими экземплярами другой, и один экземпляр этой другой сущности также связан с несколькими экземплярами первой сущности. Отношения многие-ко-многим используются только на логическом уровне. На физическом уровне эти отношения реализуются за счет использования ассоциативной сущности, содержащей ключи родительских сущностей и, возможно, дополнительные атрибуты.
Рекурсивное отношение – это неидентифицирующее отношение между двумя сущностями, которое указывает, что экземпляр сущности может быть связан с другим экземпляром той же самой сущности. При рекурсивном отношении родительская и подчиненная сущности совпадают.