Нормализация БД Ms Access

  • Автор темы viktor059
  • Дата начала
V

viktor059

Есть БД, в ней таблица Студент с ~30 атрибутами, они вроде полностью зависят от первичного ключа, но с таким кол-вом артрибутов не очень удобно работать. Помогите пожалуйста, большинство связей получается 1 к 1. В архиве БД 2003 и 2007 access
 

Вложения

  • Microsoft_Office_Access_2003.rar
    38,1 КБ · Просмотры: 139
B

BOPOHA

1. Родителей выделить в отдельную таблицу.
2. Связь между студентами и родителями.
2.1. В таблице студенты добавить два поля: код папы и код мамы.
2.2. В таблице родителей добавить код студента и код пола. Код пола будет выполнять также роль типа связи: Мужской - Папа, Женский - Мама. Думаю, что второй вариант будет лучше и удобней.
2.3. Я думаю, что было бы правильней выделить информацию об обучении следует вынести в отдельную таблицу.
 
A

Aleksey

Извиняюсь, но зачем плодить поля? Зачем выносить родителей в отдельную таблицу, а вместо них добавлять два новых поля?
2.1. В таблице студенты добавить два поля: код папы и код мамы.

И почему, кроме как избавиться от родителей, мысль дальше не пошла? Почему, например, паспорт не выбросить? :) (Шучу конечно)

Для начала предлагаю определиться, что именно мешает в таблице Студенты и избавиться от именно от мешающего. Логично было бы вынести паспортные данные в отдельную таблицу. Связь здесь и далее по ID студента, никаких полей добавлять не надо, то есть создать таблицу Паспорт, ее ключевым полем будет ID равное ID студента, владеющего этим паспортом. Далее вынести родителей в отдельную таблицу, связь так же по ID. Пол студенту предлагаю не менять и оставить в той же таблице ;). Этого уже достаточно, чтобы таблица Студенты "похудела". Можно идти и дальше, но тогда уже будет тяжело и неудобно связывать кучу таблиц между собой.
 
E

etc

А зачем ваще что-то куда-то выносить? ну и что что 30? вам же не всегда надо все, вот и берите по мере надобности.
 
A

Aleksey

Может преподаватель потребовал? :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!