powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проблема при проектировании БД MSSQL
11 сообщений из 11, страница 1 из 1
Проблема при проектировании БД MSSQL
    #39250656
zentiybk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, столкнулся с проблемой при проектировании БД. Возникает т.н цикличная связь.
Для информации: предметная область - ФГОС 3 поколения, проектируемая бд должна обеспечивать ввод и хранение итоговых оценок выпускников вуза по дисциплинам и отображать сведения об успеваемости по компетенциям.
схема данных
[img=https://lh3.googleusercontent.com/RXLOffCNg6ks31K1ulcDDyiOJ23HtMmviXpic2p0GjnxjcpUfT9Jd_LG5SY5utiYZMBNXeotdhdBhutPVY1XG3-gVckiSC0 ]
Суть в следующем: Есть специальность(speciality) для которой характерен набор дисциплин(descipline) они связанны отношением многие ко многим и набор компетенций (competention), компетенции характерны для одной специальности т.е. одна специальность включает в себя несколько компетенций. Далее самый цирк, компетенции состоят из нескольких дисциплин, и одна дисциплина входит в несколько компетенций в рамках компетенции диспиплина имеет свой вес поле (weigth) в таблице (competention_discipline). Так же в рамках специальности у каждой дисциплины определённое общее количество часов, (я думаю это поле (total_hours) в таблице discipline_speciality )

Прошу помощь в следующем:
1. Корректна ли данная связь в рамках данной базы (cм. рисунок) ? (Поясните свое мнение)
2. Поле общее количество часов на дисциплину необходимо хранить в той таблице(см. курсив выше)?
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250660
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zentiybk,

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

P.S. Схема у Вас очень плохочитаемая
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250670
zentiybk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин, спасибо за ответ. Вообще там логика такая - есть ФГОС например 09.04.04(Программная инженерия магистратура) в нем описываются компетенции которыми должен обладать выпускник далее идет перечень дисциплин с указанием академических часов и в каждой для каждой дисциплины указываются какими компетенциями должен обладать тот, кто прослушал этот курс
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250672
zentiybk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую перезакрепить схему
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250674
zentiybk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин, какой выход можете посоветовать что бы избежать аномалий описанных вами?
Я понимаю так если если я реализую связь которую нарисовал на схеме для избежания аномалий я должен выполнять соответствующие проверки на клиенте, верно?
А время все таки хранить в таблице discipline_speciality , так как время во неизменно для дисциплины. (Например: Философия - является и общекультурной компетенцией (ОК) и профессиональной (ПК) а сам курс длился к примеру часов 30.)
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250721
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинПотому что тогда я бы не хранил прямую связь специальности и дисциплины, а только лишь связь через компетенции.

а я бы с вами не согласилась :)
связь специальности - дисциплина важнее (ее нельзя игнорировать): например, по ней будем планировать и рассчитывать нагрузку преподавателей и студентов
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250722
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zentiybk,

Для начала я бы обсудил эти казусы с тем, кто ставил Вам задачу - может это не аномалии, а нормальная ситуация. Если подтвердится что это-таки аномалии и что механизма "встроенной защиты" от них в предметной области нет - да, придется писать проверки.
Необязательно (и даже нежелательно) на клиенте - можно в триггерах, можно в хранимых процедурах
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250724
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab,

при чем тут "игнорировать" - связи никуда не деваются, просто хранятся в одном месте, а не в двух.
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250725
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,
я не согласилась с тем, как вы предлагаете их хранить
:)
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250732
zentiybk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гугл упорно блочит прямые ссылки
...
Рейтинг: 0 / 0
Проблема при проектировании БД MSSQL
    #39250733
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zentiybkгугл упорно блочит прямые ссылки
Не мучайся с картинками, скрипты публикуй.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проблема при проектировании БД MSSQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]