SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.01.2010 16:39:35

refoxt
Участник
Зарегистрирован: 11.01.2010
Сообщений: 11

Проект БД

нужно сделать контр. работу.
База данных тестирование школьников.
В базе должна содержится информация:

    * Фамилия учащегося
    * номер школы
    * класс
    * Фамилия преподавателя
    * сведения о 12 заданиях
    * За каждое задание должна быть проставлена оценка (1, 0.66, 0.33, 0 ).

Нужно нормализовать таблицы до 3нф

то что у меня получилось !!


Прикрепленные файлы:
Attachment Icon stud.jpeg, Размер: 208,398 байт, Скачано: 354

Неактивен

 

#2 11.01.2010 17:34:49

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проект БД

Эээ... 0.66 Вам за эту картинку. В смысле 4+ wink
Потому что число 0.66 в INT не поместится. В остальном, вроде, замечательно smile

Неактивен

 

#3 11.01.2010 17:40:03

refoxt
Участник
Зарегистрирован: 11.01.2010
Сообщений: 11

Re: Проект БД

ой точно.
ну это ладно исправим

меня больше интересует сущность преподаватель
мб просто сделать его как поле в студенте

и так же поля номер школы и класс в студенте

Неактивен

 

#4 11.01.2010 18:49:06

refoxt
Участник
Зарегистрирован: 11.01.2010
Сообщений: 11

Re: Проект БД

вроде бы разобрался
для 3нф достаточно:

СТУДЕНТ (ид_студента, фамилия, номер школы, класс, фамилия_препода)

ЗАДАЧА (ид_задачи, инфо о задаче)

ОЦЕНКА_ЗА_ЗАДАЧУ( ид_студента, ид_задачи, оценка)

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

Поправьте если не так smile

Неактивен

 

#5 11.01.2010 19:24:06

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Проект БД

Ну, если уж совсем придираться к словам, то 4НФ содержит в себе 3НФ wink
И, если будете делать 4НФ, то не забудьте, что школа от id преподавателя
тоже неплохо зависит smile

Неактивен

 

#6 11.01.2010 19:26:04

refoxt
Участник
Зарегистрирован: 11.01.2010
Сообщений: 11

Re: Проект БД

да нет 4нф мне не надо

ну вот о5 запутался.

школа зависит от преподавателя
или все таки преподавать можно в разных школах

если он зависит то его необходимо исключить для 3нф ???
hmm

Отредактированно refoxt (11.01.2010 19:31:34)

Неактивен

 

#7 11.01.2010 19:48:42

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Проект БД

Раз стали говорит о высших формах, то класс зависит от номера школы. Теоретически, чтобы достигнуть высшей нормализации надо вводить отдельно таблицу преподов, отдельно таблицу классов и отдельно таблицу групп (в каждом классе может быть несколько групп и ведут в них разные преподы). Зависимость можно понимать более широко, не как y = f(x), а как наличие ограничений на значения в таблице. Если я не могу произвольно задавать значения различных колонок, то это уже не полностью нормальная форма. Например, Иванов преподает в школах 12 и 19, но не преподает в школе 47. Я не могу вставить запись "Иванов", "47" в таблицу об оценках. Получается зависимость между неключевыми колонками, пусть не функциональная.

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

Неактивен

 

#8 11.01.2010 20:01:54

refoxt
Участник
Зарегистрирован: 11.01.2010
Сообщений: 11

Re: Проект БД

хм   норм ответил smile

ладно понял что таблицы в 3нф и больше ничего не требуется

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson