- •Разработка информационного обеспечения задачи
- •Определение выходной информации
- •Разработка структуры базы данных
- •Построение er-диаграммы предметной области
- •Формирование отношений предметной области
- •Получение предварительных отношений
- •Формирование окончательных отношений
- •Определение доменов атрибутов
- •Построение информационно-логической базы данных
- •Определение логической структуры реляционной базы данных
Формирование отношений предметной области
Получение предварительных отношений
По правилу 4: «Если степень бинарной связи равна 1:М и класс принадлежности М-связной сущности является обязательным, то достаточным является использование двух отношений, по одному на каждую сущность, при условии, что ключ каждой сущности служит в качестве первичного ключа для соответствующего отношения. Дополнительно ключ 1-связной сущности должен быть добавлен как атрибут в отношение, отводимое для М-связной сущности», из ER – диаграммы будут получены следующие предварительные отношения:
- Из связи «Тест имеет Простые вопросы» получим два предварительных отношения ТЕСТ и ВОПРОСЫ_ПРОСТЫЕ, причем в отношение ВОПРОСЫ_ПРОСТЫЕ в качестве части составного ключа добавится ключ из отношения ТЕСТ:
ТЕСТ(КодТ,….)
ВОПРОСЫ_ПРОСТЫЕ(№Вопр, КодТ,…)
- Из связи «Тест имеет Табличные вопросы» получим два предварительных отношения ТЕСТ и ТАБЛИЧНЫЕ_ВОПРОСЫ, причем в отношение ТАБЛИЧНЫ_ВОПРОСЫ в качестве части составного ключа добавится ключ из отношения ТЕСТ:
ТЕСТ(КодТ,…)
ТАБЛИЧНЫЕ_ВОПРОСЫ(№Вопр, КодТ,…)
- Из связи «Табличные вопросы имеют Строки» получим два предварительных отношения ТАБЛИЧНЫЕ_ВОПРОСЫ и СТРОКИ, причем в отношение СТРОКИ в качестве части составного ключа добавится ключ из отношения ТАБЛИЧНЫЕ_ВОПРОСЫ:
ТАБЛИЧНЫЕ_ВОПРОСЫ(КодТ,№Вопр,…)
СТРОКИ(КодТ,№Стр, №Вопр,…)
- Из связи «Табличные вопросы имеют Столбцы» получим два предварительных отношения ТАБЛИЧНЫЕ_ВОПРОСЫ и СТОЛБЦЫ, причем в отношение СТОЛБЦЫ в качестве части составного ключа добавится ключ из отношения ТАБЛИЧНЫЕ_ВОПРОСЫ:
ТАБЛЧНЫЕ_ВОПРОСЫ(КодТ,№Вопр,…)
СТОЛБЦЫ(КодТ,№Столб, №Вопр,…)
- Из связи «Вопросы простые имеют Варианты ответа» получим два предварительных отношения ВОПРОСЫ_ПРОСТЫЕ и ВАРИАНТЫ_ОТВЕТА, причем в отношение ВАРИАНТЫ_ОТВЕТА в качестве части составного ключа добавится ключ из отношения ВОПРОСЫ_ПРОСТЫЕ:
ВОПРОСЫ_ПРОСТЫЕ(КодТ,№Вопр,…)
ВАРИАНТЫ_ОТВЕТА(КодТ,№ВарОтв, №Вопр)
- Из связи «Варианты ответа бывают Выборы варианта ответа» получим два предварительных отношения ВАРИАНТЫ_ОТВЕТА и ВЫБОРЫ_ВАРИАНТЫ_ОТВЕТА, причем в отношение ВЫБОРЫ_ВАРИАНТА_ОТВЕТА в качестве части составного ключа добавится ключ из отношения ВАРИАНТЫ_ОТВЕТА:
ВАРИАНТЫ_ОТВЕТА(КодТ,№ВарОтв, №Вопр,…)
ВЫБОРЫ_ВАРИАНТЫ_ОТВЕТА(КодТ,№ВарОтв, №Вопр,№Выб,…)
- Из связи «Респондент проходит Тестирование» получим два предварительных отношения РЕСПОНДЕНТЫ и ТЕСТИРОВАНИЕ, причем в отношение ТЕСТИРОВАНИЕ в качестве атрибута связи добавится ключ из отношения РЕСПОНДЕНТЫ:
РЕСПОНДЕНТЫ(№Респ,…)
ТЕСТИРОВАНИЕ(№Тестиров,…,Респ)
- Из связи «Тест включает Тестирование» получим два предварительных отношения ТЕСТ и ТЕСТИРОВАНИЕ, причем в отношение ТЕСТИРОВАНИЕ в качестве части составного ключа добавится ключ из отношения ТЕСТ:
ТЕСТ(КодТ,…)
ТЕСТИРОВАНИЕ(№Тестиров, КодТ,…)
По правилу 6: «Если степень бинарной связи равна M:N, то для хранения данных необходимо три отношения: по одному для каждой сущности и одно отношение для связи. Причем ключ каждой сущности используется в качестве первичного ключа соответствующего отношения. Отношение связи должно иметь в числе своих атрибутов ключи каждой сущности», из ER – диаграммы будут получены следующие предварительные отношения:
- Из связи «Тестирование включает Простые вопросы» получим три предварительных отношения ТЕСТИРОВАНИЕ, ВОПРОСЫ_ПРОСТЫЕ и РЕЗУЛЬТАТЫ_ПО_ВВОДУ, причем в отношение РЕЗУЛЬТАТЫ_ПО_ВВОДУ в качестве составного ключа войдут ключи из каждой сущности:
ТЕСТИРОВАНИЕ(№Тестиров,КодТ,…)
ВОПРОСЫ_ПРОСТЫЕ(КодТ,№Вопр,…)
РЕЗУЛЬТАТЫ_ПО_ВВОДУ(№Тестиров,КодТ,№Вопр,…)
- Из связи «Тестирование включает Варианты ответа» получим три предварительных отношения ТЕСТИРОВАНИЕ, РЕЗУЛЬТАТЫ_ПО_ПРОСТОМУ_ВЫБОРУ и ВАРИАНТЫ_ОТВЕТА, причем в отношение РЕЗУЛЬТАТЫ_ПО_ПРОСТОМУ_ВЫБОРУ в качестве составного ключа войдут ключи из каждой сущности:
ТЕСТИРОВАНИЕ(№Тестиров,КодТ,…)
ВАРИАНТЫ_ОТВЕТА(КодТ,№Вопр,№ВарОтв,…)
РЕЗУЛЬТАТЫ_ПО_ПРОСТОМУ_ВЫБОРУ(№Тестиров,КодТ,№Вопр,№ВарОтв,…)
- Из связи «Тестирование включает Выборы варианта ответа» получим три предварительных отношения ТЕСТИРОВАНИЕ, ВЫБОРЫ_ВАРИАНТА_ОТВЕТА и РЕЗУЛЬТАТЫ_ПО_ВЫБОРУ, причем в отношение РЕЗУЛЬТАТЫ_ПО_ВЫБОРУ в качестве составного ключа войдут ключи из каждой сущности:
ТЕСТИРОВАНИЕ(№Тестиров,КодТ,…)
ВЫБОРЫ_ВАРИАНТА_ОТВЕТА(КодТ,№Вопр,№ВарОтв,№Выб,...)
РЕЗУЛЬТАТЫ_ПО_ВЫБОРУ(№Тестиров,КодТ,№Вопр,№ВарОтв,№Выб,...)
По правилу 7: «В случае тернарной связи необходимо использовать четыре предварительных отношения, по одному для каждой сущности, и одно - для связи. Причем ключ каждой сущности должен служить в качестве первичного ключа для соответствующего отношения. Отношение, порождаемое связью, будет иметь среди своих атрибутов ключи от каждой сущности», из ER-диаграммы будут получены следующие отношения:
из «Строки включают Тестирование, Столбцы включают тестирование» будут выделены четыре предварительных отношения: СТРОКИ, СТОЛБЦЫ, ТЕСТИРОВАНИЕ и РЕЗУЛЬТАТЫ_ПО_ВЫБОРУ_ИЗ_ТАБЛИЦЫ, причем в отношение РЕЗУЛЬТАТЫ_ПО_ВЫБОРУ_ИЗ_ТАБЛИЦЫ в качестве части составного ключа необходимо добавить ключи из отношений СТРОКИ , СТОЛБЦЫ и ТЕСТИРОВАНИЕ.
СТРОКИ (КодТ,№Вопр,№Стр, …)
СТОЛБЦЫ (КодТ,№Вопр,№Столб, …)
ТЕСТИРОВАНИЕ ( №Тестиров,КодТ, …)
РЕЗУЛЬТАТЫ_ПО_ВЫБОРУ_ИЗ_ТАБЛИЦЫ (№Тестиров,КодТ,№Вопр,№Стр,№Столб)
из «Строки включают Тестирование, Столбцы включают тестирование» будут выделены четыре предварительных отношения: СТРОКИ, СТОЛБЦЫ, ТЕСТИРОВАНИЕ и РЕЗУЛЬТАТЫ_ПО_ТАБЛИЦЕ, причем в отношение РЕЗУЛЬТАТЫ_ПО_ТАБЛИЦЕ в качестве части составного ключа необходимо добавить ключи из отношений СТРОКИ , СТОЛБЦЫ и ТЕСТИРОВАНИЕ.
СТРОКИ (КодТ,№Вопр,№Стр, …)
СТОЛБЦЫ (КодТ,№Вопр,№Столб, …)
ТЕСТИРОВАНИЕ ( №Тестиров,КодТ, …)
РЕЗУЛЬТАТЫ_ПО_ТАБЛИЦЕ (№Тестиров,КодТ,№Вопр,№Стр,№Столб,…)
