Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2010, 00:43   #11
sergei64_89
Форумчанин
 
Регистрация: 20.04.2008
Сообщений: 139
По умолчанию

Это получается.так как заключенных в одной камере может быть много,то функциональной зависимости нет.если так,то как же с остальными столбцами,ну там имя,фамилия,возраст.под одним именем может быть несколько номеров заключенных,...
sergei64_89 вне форума Ответить с цитированием
Старый 20.06.2010, 01:18   #12
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Нет. Функциональная зависимость есть. Впрочем, можешь оставлять всё так, как есть сейчас. Поскольку в один момент времени заключённый может быть приписан только к одной камере, насколько я понимаю. Просто не будет вестись истории никакой. Да и кто-то с ним.
mMAg вне форума Ответить с цитированием
Старый 20.06.2010, 12:00   #13
sergei64_89
Форумчанин
 
Регистрация: 20.04.2008
Сообщений: 139
По умолчанию

сделаю некоторые описания.таблица заключённые(личные данные закл),статья(здесь указываются статьи по которым сидит заключённый),инвертарь(то что было выдано заключённому).дальше:заключённых конвоируют служащие на место(ну там проводение следственного эксперемента,....):таблица конвой-заключённые,конвоирование-место куда их везут,конвойный-служащие которые в этом учавствуют.(заключённый может быть один,так же и служащий).таблица служащие соответственно личные данные служащих,таблица должность-должость(ти) служащих,таьлица дежурство соответственно.
Изображения
Тип файла: jpg 1.JPG (68.2 Кб, 141 просмотров)
sergei64_89 вне форума Ответить с цитированием
Старый 20.06.2010, 12:16   #14
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

В таблице дежурство поле id либо удалить, либо сделать ключом (единственным). В таблице должность ключевое поле ТОЛЬКО id. А поле должность не ключевое (иначе не удовлетворяет 2НФ, поскольку есть зависимость части состовного ключа от другой его части). В таблице статья то же самое. Поле статья зависит от её номера. Не удовлетворяет 2НФ. Поле статья должно быть неключевым атрибутом.
mMAg вне форума Ответить с цитированием
Старый 20.06.2010, 12:27   #15
sergei64_89
Форумчанин
 
Регистрация: 20.04.2008
Сообщений: 139
По умолчанию

В таблице дежурство поле id либо удалить, либо сделать ключом (единственным). не не,как так.id это индентификатор служащего,кол это счётчик(первичный ключ)
В таблице должность ключевое поле ТОЛЬКО id. А поле должность не ключевое (иначе не удовлетворяет 2НФ, поскольку есть зависимость части состовного ключа от другой его части).2 ая нормальная форма это когда все неключевые атрибуты функционально зависят эт составного первичного ключа(здесь вообще неключевых нет,так служащий может иметь несколько должностей)
В таблице статья то же самое. Поле статья зависит от её номера. Не удовлетворяет 2НФ. Поле статья должно быть неключевым атрибутом.
если будет так то первичный ключ номер не может существовать ,так как у заключённого может быть несколько статей.первичным ключом здесь как и выше служат эи два поля.
sergei64_89 вне форума Ответить с цитированием
Старый 20.06.2010, 12:57   #16
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

АА, идентификатор служащего... тогда называй переменные яснее )))
Да-да, именно так. Только, насколько я помню, вторая нормальная форма не допускает наличие ключей с функциональными зависимостями внутри самого ключа, поскольку такой ключ не удовлетворяет свойству минимальности. А во второй нормальной форме он обязан этому свойству удовлетворять. Иначе можно все атрибуты сделать ключевыми в своих таблицах и дальнейшие построения нормальных форм можете засунуть в одно красивое место.
Точнее, функциональные зависимости внутри ключа отметаются в 4НФ, но здесь ваш ключ не удовлетворяет и 2НФ.

Статья и заключённый должны быть объединены связью много-много. Но если же предположить, что всё так, как у вас, то всё равно неверно, поскольку связь один-много предполагает наличие ссылки на объект, который это много содержит. Т.е у меня 2 сущности: заключённый-статья
Заключённый: ключевое поле - номер, неключевые поля - имя, фамилия.
Статья - ключевое поле - номер, неключевые поля - номер_заключённого, статья.
И никак иначе, по-другому связь один-много не делается.
Связь должность-служащий есть 0..1-0..1, а не 1-много. Я не предполагал, что один служащий может несколько должностей занимать. Если же так, то тогда связь нужно делать много-много. Поскольку одна и та же должность может заниматься различными служищими.

Последний раз редактировалось mMAg; 20.06.2010 в 13:06.
mMAg вне форума Ответить с цитированием
Старый 20.06.2010, 13:29   #17
sergei64_89
Форумчанин
 
Регистрация: 20.04.2008
Сообщений: 139
По умолчанию

Зачем выделять статья как отдельную сущность.это всего лишь атрибут сущности заключенный,и приводя к 1нф,я и выделил отдельную таблицу.
sergei64_89 вне форума Ответить с цитированием
Старый 20.06.2010, 13:37   #18
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Каждой сущности соответствует таблица. Если ты выделил таблицу, значит появилась сущность.
Это не атрибут сущности заключённый. Где? Я НЕ вижу. У тебя нет среди атрибутов сущности заключённого поля статья. Если при приведении что-либо изменилось, значит бд была спроектирована плохо. Все изменения вступают в силу и что было ДО изменения не имеет значения.
mMAg вне форума Ответить с цитированием
Старый 20.06.2010, 13:56   #19
sergei64_89
Форумчанин
 
Регистрация: 20.04.2008
Сообщений: 139
По умолчанию

Ясно.то есть нужно в таблицу статьи добавить столбец счетчик,который и будет первичным ключом.так?если да то я не понимаю что будет ни так если оставить ее на прежнем уровне,добавления,удаление,что будет работать ни так?
sergei64_89 вне форума Ответить с цитированием
Старый 20.06.2010, 14:02   #20
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Ну тогда нужно добавить счётчик, только тогда оба поля (номер, статья) будут неключевыми. А ключевым будет счётчик.
Причём здесь добавление и удаление. Не в этом дело. Эти операции будут выполняться одинаково. Работать с таблицей у вас будет невозможно. Например, нельзя будет отыскать всех заключённых, которые проходят по одной и той же статье. К тому же у вас будет храниться ненужная избыточная информация.

Вообще, когда делаешь бд должен представлять как будешь с ней работать. Вот, например, сущность человек: у неё есть поле пол. Пол можно не выделять как отдельную сущность, но тогда будет ужасно неудобно, поскольку каждый раз прийдётся набирать руками: мужской или женский. И будет храниться текст, получатеся 14 бит информации, плюс завершающий символ всего 16 бит. А если выделить как отдельную сущность со связью 1-1, (сущность пол: ключевое поле - ид_пол, неключевое поле: описание), то можно будет создать два объекта этой сущности и из формы редактирования сущность человек только выбирать мужской или женский. Также пользователю можно будет запретить доступ к сущности пол и он будет обязан ограничиваться двумя полами и не будет путаницы с регистрами и опечатками и прочим. А если включить пол в сущность человек и предоставить пользователю самому вводить пол, то он будет писать туда что угодно. и будет хранится избыточная информация. Вам приятно видеть человека, у которого в поле пол написано педик? Мне было бы неприятно

Последний раз редактировалось mMAg; 20.06.2010 в 14:09.
mMAg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3 нормальная форма БД isida_ Microsoft Office Access 0 10.06.2010 20:27
обновление в блоге - Хуки в Windows. Часть третья. Оконные функции Pblog Обсуждение статей 1 04.01.2010 13:20
Нормальная ли температура компа ??? pavel42 Компьютерное железо 19 06.10.2009 01:08
Нормальная подсветка синтаксиса. Simply-Art Общие вопросы Delphi 4 08.12.2008 17:23
Третья, Интернет программа «Время отвечать» Alar Свободное общение 1 21.11.2008 21:27