|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.06.2010, 00:43 | #11 |
Форумчанин
Регистрация: 20.04.2008
Сообщений: 139
|
Это получается.так как заключенных в одной камере может быть много,то функциональной зависимости нет.если так,то как же с остальными столбцами,ну там имя,фамилия,возраст.под одним именем может быть несколько номеров заключенных,...
|
20.06.2010, 01:18 | #12 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Нет. Функциональная зависимость есть. Впрочем, можешь оставлять всё так, как есть сейчас. Поскольку в один момент времени заключённый может быть приписан только к одной камере, насколько я понимаю. Просто не будет вестись истории никакой. Да и кто-то с ним.
|
20.06.2010, 12:00 | #13 |
Форумчанин
Регистрация: 20.04.2008
Сообщений: 139
|
сделаю некоторые описания.таблица заключённые(личные данные закл),статья(здесь указываются статьи по которым сидит заключённый),инвертарь(то что было выдано заключённому).дальше:заключённых конвоируют служащие на место(ну там проводение следственного эксперемента,....):таблица конвой-заключённые,конвоирование-место куда их везут,конвойный-служащие которые в этом учавствуют.(заключённый может быть один,так же и служащий).таблица служащие соответственно личные данные служащих,таблица должность-должость(ти) служащих,таьлица дежурство соответственно.
|
20.06.2010, 12:16 | #14 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
В таблице дежурство поле id либо удалить, либо сделать ключом (единственным). В таблице должность ключевое поле ТОЛЬКО id. А поле должность не ключевое (иначе не удовлетворяет 2НФ, поскольку есть зависимость части состовного ключа от другой его части). В таблице статья то же самое. Поле статья зависит от её номера. Не удовлетворяет 2НФ. Поле статья должно быть неключевым атрибутом.
|
20.06.2010, 12:27 | #15 |
Форумчанин
Регистрация: 20.04.2008
Сообщений: 139
|
В таблице дежурство поле id либо удалить, либо сделать ключом (единственным). не не,как так.id это индентификатор служащего,кол это счётчик(первичный ключ)
В таблице должность ключевое поле ТОЛЬКО id. А поле должность не ключевое (иначе не удовлетворяет 2НФ, поскольку есть зависимость части состовного ключа от другой его части).2 ая нормальная форма это когда все неключевые атрибуты функционально зависят эт составного первичного ключа(здесь вообще неключевых нет,так служащий может иметь несколько должностей) В таблице статья то же самое. Поле статья зависит от её номера. Не удовлетворяет 2НФ. Поле статья должно быть неключевым атрибутом. если будет так то первичный ключ номер не может существовать ,так как у заключённого может быть несколько статей.первичным ключом здесь как и выше служат эи два поля. |
20.06.2010, 12:57 | #16 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
АА, идентификатор служащего... тогда называй переменные яснее )))
Да-да, именно так. Только, насколько я помню, вторая нормальная форма не допускает наличие ключей с функциональными зависимостями внутри самого ключа, поскольку такой ключ не удовлетворяет свойству минимальности. А во второй нормальной форме он обязан этому свойству удовлетворять. Иначе можно все атрибуты сделать ключевыми в своих таблицах и дальнейшие построения нормальных форм можете засунуть в одно красивое место. Точнее, функциональные зависимости внутри ключа отметаются в 4НФ, но здесь ваш ключ не удовлетворяет и 2НФ. Статья и заключённый должны быть объединены связью много-много. Но если же предположить, что всё так, как у вас, то всё равно неверно, поскольку связь один-много предполагает наличие ссылки на объект, который это много содержит. Т.е у меня 2 сущности: заключённый-статья Заключённый: ключевое поле - номер, неключевые поля - имя, фамилия. Статья - ключевое поле - номер, неключевые поля - номер_заключённого, статья. И никак иначе, по-другому связь один-много не делается. Связь должность-служащий есть 0..1-0..1, а не 1-много. Я не предполагал, что один служащий может несколько должностей занимать. Если же так, то тогда связь нужно делать много-много. Поскольку одна и та же должность может заниматься различными служищими. Последний раз редактировалось mMAg; 20.06.2010 в 13:06. |
20.06.2010, 13:29 | #17 |
Форумчанин
Регистрация: 20.04.2008
Сообщений: 139
|
Зачем выделять статья как отдельную сущность.это всего лишь атрибут сущности заключенный,и приводя к 1нф,я и выделил отдельную таблицу.
|
20.06.2010, 13:37 | #18 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Каждой сущности соответствует таблица. Если ты выделил таблицу, значит появилась сущность.
Это не атрибут сущности заключённый. Где? Я НЕ вижу. У тебя нет среди атрибутов сущности заключённого поля статья. Если при приведении что-либо изменилось, значит бд была спроектирована плохо. Все изменения вступают в силу и что было ДО изменения не имеет значения. |
20.06.2010, 13:56 | #19 |
Форумчанин
Регистрация: 20.04.2008
Сообщений: 139
|
Ясно.то есть нужно в таблицу статьи добавить столбец счетчик,который и будет первичным ключом.так?если да то я не понимаю что будет ни так если оставить ее на прежнем уровне,добавления,удаление,что будет работать ни так?
|
20.06.2010, 14:02 | #20 |
Форумчанин
Регистрация: 11.08.2009
Сообщений: 433
|
Ну тогда нужно добавить счётчик, только тогда оба поля (номер, статья) будут неключевыми. А ключевым будет счётчик.
Причём здесь добавление и удаление. Не в этом дело. Эти операции будут выполняться одинаково. Работать с таблицей у вас будет невозможно. Например, нельзя будет отыскать всех заключённых, которые проходят по одной и той же статье. К тому же у вас будет храниться ненужная избыточная информация. Вообще, когда делаешь бд должен представлять как будешь с ней работать. Вот, например, сущность человек: у неё есть поле пол. Пол можно не выделять как отдельную сущность, но тогда будет ужасно неудобно, поскольку каждый раз прийдётся набирать руками: мужской или женский. И будет храниться текст, получатеся 14 бит информации, плюс завершающий символ всего 16 бит. А если выделить как отдельную сущность со связью 1-1, (сущность пол: ключевое поле - ид_пол, неключевое поле: описание), то можно будет создать два объекта этой сущности и из формы редактирования сущность человек только выбирать мужской или женский. Также пользователю можно будет запретить доступ к сущности пол и он будет обязан ограничиваться двумя полами и не будет путаницы с регистрами и опечатками и прочим. А если включить пол в сущность человек и предоставить пользователю самому вводить пол, то он будет писать туда что угодно. и будет хранится избыточная информация. Вам приятно видеть человека, у которого в поле пол написано педик? Мне было бы неприятно Последний раз редактировалось mMAg; 20.06.2010 в 14:09. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |