powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Верна ли структура БД?
17 сообщений из 17, страница 1 из 1
Верна ли структура БД?
    #37315076
verja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Подскажите, пожалуйста, верна ли структура базы, все ли таблицы удовлетворяют нормальной форме Бойса-Кодда?
Имеется следующая информация о студентах:
Номер студенческого

ФИО

Адрес (только город)

Номер группы

Староста группы (можно задать номером билета, у группы только один староста)

Предмет

Кол-во часов, которые отводятся на предмет в учебном плане

Дата сдачи экзамена (могут быть несколько дат в случае пересдачи)

Оценка
В СУБД MS SQL Server 2008 создайте базу данных. Все таблицы должны удовлетворять требованиям нормальной формы Бойса-Кодда, при этом должны учитываться все указанные выше особенности. Создайте представления (View), позволяющие получить:

Список студентов, имеющих по всем предметам оценки 4 или 5

Список студентов, живущих в том же городе, что и староста его группы.
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37315094
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблицу экзаменов надо разделить на 2 - собсно экзамен (дата, предмет) и оценки (студент, экзамен, оценка)
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37315097
verja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В задании сказано, что в случае пересдачи могут быть несколько дат, поэтому делить не надо. У меня еще один вопрос есть. В таблицу Starosta я пишу, к примеру, NumGroup - 382 и NumStud (староста группы, который задается номером билета) - 124. А в таблице Student я могу этому же NumStud 124 задать другую группу. Получается противоречие. Староста группы сам находится в другой группе. Подскажите, что не так?
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37315195
verja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А нет, все нормально, этот вопрос снимается...Но появился еще один. В таблице Exam первичный ключ составной. И он же является внешним ключом, который ссылается на две другие таблицы. Это нормально?
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37315258
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verja,

Вы говорите о пересдаче, но составной ключ таблицы экзамен вроде не позволяет одному биленту иметь несколько предметов.
Т.е. только один раз. Кроме того, у Вас, скорее всего, типа предполагается что экзамены могут сдавать тока старосты.
Кроме того, в реале и студенты могут преходить из группы в группу и старосты группы меняться.
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37315263
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verjaВ задании сказано, что в случае пересдачи могут быть несколько дат, поэтому делить не надо.Не согласен. Каждая пересдача тоже фиксируется как отдельный экзамен. Можно высчитать, что это экзамен с номером > 1, можно хранить специальный признак пересдача.

авторВ таблице Exam первичный ключ составной. И он же является внешним ключом, который ссылается на две другие таблицы.Можно и так, но из соображений пракического удобства можно завести в таблице экзам автосчетчик, который и будет ПК, а сочетание двух полей, которые ключевые сейчас - сделать уникальным составным индексом.

авторКроме того, у Вас, скорее всего, типа предполагается что экзамены могут сдавать тока старостыЕсли долго вглядываться в картинку, можно заметить, что у ТС связи проходят строго одна по другой, наверное, все-таки, с таблицей экзаменов связана таблица студентов. А старосты - с таблицей студентов а не экзаменов. Все равно нужно было яснее рамположить таблицы при фотографировании экрана.
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37315270
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-Л,
не связи а ОЦ я имел в виду. Если между староста и экзамен один к одному, то скорей всего ОЦ не позволит занести номер билета не старосты. А если мжду старостой и студентом типа связь без ОЦ (я не знаю что за тулса, но в Аксцессе такое моно), то экзамен могут сдавать номера билетов, которых нет в таблице студент.
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37315274
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoП-Л,
не связи а ОЦ я имел в виду. Если между староста и экзамен один к одному, то скорей всего ОЦ не позволит занести номер билета не старосты. А если мжду старостой и экзаменом типа связь без ОЦ (я не знаю что за тулса, но в Аксцессе такое моно), то экзамен могут сдавать номера билетов, которых нет в таблице студент.
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37315277
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там бы ла опечатка. Между старостой и студентом, читать между старостой и экзаменом
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37316493
verja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, таблицу Exam, наверное, действительно надо делить на 2 - "Экзамен" (дата, предмет) и "Оценки" (студент, экзамен, оценка). Только вот в таблице "Оценки" поля "Номер студенческого" и "Предмет" получается не могут быть составным первичным ключом, потому как может быть пересдача экзамена. Как же тогда быть?
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37316830
verja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то я окончательно запутался. Как я понимаю, естественное соединение таблиц должно дать исходную большую таблицу. Так вот, если я делаю таблицы, как нарисовано ниже, то их естественное соединение дает исходную таблицу. Если же таблицу экзамен разделяю на две ("Экзамен" (дата, предмет) и "Оценки" (студент, экзамен, оценка)), то соединение всех таблиц исходную таблицу не дает. Хотя, по идее, делить надо, т.к. есть функциональная зависимость "Дата сдачи -> Предмет"...
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37316861
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Examen(NumExamen ПК, RunDate, Subject ФК)
ExamenMark(NumExamenMark ПК, NumExamen ФК, NumStud ФК, MarkValue)

Не вижу проблемы. Таблицы сделал по своему вкусу - в каждой ПК автосчетчик.
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37316870
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
verjaЧто-то я окончательно запутался. Как я понимаю, естественное соединение таблиц должно дать исходную большую таблицу. Так вот, если я делаю таблицы, как нарисовано ниже, то их естественное соединение дает исходную таблицу. Если же таблицу экзамен разделяю на две ("Экзамен" (дата, предмет) и "Оценки" (студент, экзамен, оценка)), то соединение всех таблиц исходную таблицу не дает. Хотя, по идее, делить надо, т.к. есть функциональная зависимость "Дата сдачи -> Предмет"...
кто-кому-чего-куда не даёт ??
самая, что ни на есть, стандартная схема - таб."Оценки" - таб.фактов, на которой "висят" справочники студентов и экзаменов

зы
а специальная таб.Старосты - это чем вызвано ?
битового поля в Студентах - недостаточно ?
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37316925
verja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,

автора специальная таб.Старосты - это чем вызвано ?
Исходя из задания в моем первом сообщении, есть столбец "Староста", поэтому и сделал таблицу "Старосты". Куда-то ж его надо девать)) В любом случае, я думаю таблица "Старосты" ничего не портит...
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37317013
verja
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л,

Получается так. Только базу мне надо создать в MS SQL Server 2008, а потом через Access подключиться к БД и для каждой таблицы создать форму. Как-то неправильно получается вводить в таблицу Mark значение экзамена через значение автосчетчика таблицы Examen.
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37317091
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
verja,

Теперь у Вас предполагается что у студента по одному экзамену может быть много оценок, но дата у них одна (сока не перездавай экзамен, то дата одна, а Вы говорили что их может быть несколько). Чтобы дат было несколько, Date претендует попасть в таблу Mark. Т.е. это дата получения оценки. Но тогда в таблице Exam останется два поля из которых один суррогат: она типа претендует на удаление из схемы. Но, возможно, у экзамена может быть дата экзамена (для расписания, например), а даты перездачи это другое менее важное. Ну типа дата оценки. Вы там уже уточните у препада. Что он там хочет.
...
Рейтинг: 0 / 0
Верна ли структура БД?
    #37317094
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не смешивайте физичекую модель БД с формами для ввода. Физическая модель должна быть полная и непротиворечивая. Формы - эргономическими. Ввод оценок, очевидно удобно осуществлять в следующем виде:

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

Форма имеет источником данных таблицу экзаменов. Вложенный грид - таблицу оценок за экзамен. Связь по LinkMasterChild/

Чуть-чуть кода - ресайзинг, еще какие-нибудь бантики - почти все можно настроить в конструкторе. Время реализации сего поделия - 3 минуты с перекурами и перерывами на кофе.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Верна ли структура БД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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