|
|
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
Доброе утро. Пишу курсовой проект, необходимо, чтобы все таблицы находились в НФБК. Вроде все сделал, но преподаватель вернул проект, сказал, что одна из таблиц в НФБК не находится. Там 2 таблицы: первая Выступление (PK Название выступления) и Артист (PK ФИО, FK Название выступления). Между ними связь 1,1:0,1. Вроде как я понял, как нужно исправить - необходимо в таблице Артист сделать PK из двух полей - ФИО и Название выступления. Так? Не будет ли ключ из 2 полей избыточным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 08:55 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
dekaa , что есть "Выступления"? Наверное один "Артист" может участвовать в нескольких выступлениях? Могут ли несколько артистов участвовать в одном выступлении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 11:14 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
krvsa, Я же специально тип связи указал ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 12:11 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
dekaa1,1:0,1 И как это прочитать по-русски, просвяти... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 13:17 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
dekaaЯ же специально тип связи указал ) Да и то,что ты написал, не есть "правда по задаче"... Может ты чего не понял и такое написал... P.S. Таки интересно почитать что значит "1,1:0,1" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 13:19 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
Я указал не совсем то, что есть в задаче, там как пришлось бы более развернутое объяснение писать, где много ненужной информации. У меня там все правильно, необходимо лишь с НФБК разобраться. Связь выступление – артист (1,1:0,1): каждому артисту соответствует выступление. В свою очередь, не каждому выступлению соответствует артист ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 13:32 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
papos, а не наоборот? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:04 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
papos, а по мне там связь многие ко многим. В выступлении могут участвовать много артистов и артист может выступать в нескольких выступлениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:06 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
ViPRosПочему все время увиливаешь от ответа? Ты ж можешь сказать, что характеристики объекта сть такие же объекты. Я предельно точен, и ни от чего никогда не увиливаю. Конечно же, я не могу сказать, что характеристики объектов - это такие же объекты. Тогда бы этих двух понятий просто не было бы в структуре модели данных (первый аспект по Дейту). ViPRosСвязь вроде тож что и объекты, но не совсем. Это и есть глубокое заблуждение Дейта (который так и не смог этого обосновать в рамках обоснования РМД) и многих других специалистов. Не тратьте свое время зря. Между объектами и связями между объектами нет абсолютно ничего общего:) ViPRosИли тыдумаешь не так? Дык скажи. За 30 лет то наверное у тя все это выкристаллизвалось в башке? Я и говорю, но Вы же это не хотите слушать, а вместо этого упорно навязываете сами себе какие-то понятия, которые непонятно что характеризуют - какие-то роли объектов в отношении. Но если уж Вы используете эти понятия, я бы Вам порекомендовал изучить, например, объектно-ролевое моделирование (ORM) Halpin T. (для начала см. описание у того же Дейта) и, соответственно, язык ConQuer - концептуальный язык создания запросов, основанный на ORM. Пример: #Работник1 + живет в Городе1 + родился в Стране1 + руководит работой Работника2, который + живет в Городе1 + родился в Стране2 <> Стране1 Что означает: Извлечь данные о сотрудниках, руководящих работой других сотрудников, которые живут в том же городе, что и их руководитель, но родились в другой стране. Halpin считает, что это непросто сформулировать на SQL. А Вам, видимо, понравится, что-то мне, по косвенным признакам, подсказывает, что Вы работаете примерно в этом же направлении:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:24 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
asbestos, Я ж говорю, в моей ситуации ЭТО ВСЕ ПРАВИЛЬНО! Я некоторые подробности опустил, преподаватель проверил, мне нужно лишь узнать, правильно ли я НФБК составил или нет и все )) Отношение сделано правильно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:36 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
Бредятина#Работник1 + живет в Городе1 + родился в Стране1 + руководит работой Работника2, который + живет в Городе1 + родился в Стране2 <> Стране1 Что означает: Извлечь данные о сотрудниках, руководящих работой других сотрудников, которые живут в том же городе, что и их руководитель, но родились в другой стране. Halpin считает, что это непросто сформулировать на SQL. А Вам, видимо, понравится, что-то мне, по косвенным признакам, подсказывает, что Вы работаете примерно в этом же направлении:) За Халпин спасибо, посмотрю. Тут у меня 2 вопроса. 1. Хватит мусолит этого Дейта и обсуждать его ошибки и сомнения. Неинтересно это. Я от ВАС хочу услышать, что такое объект, характеристика и связь. 2. #Работник1 + живет в Городе1 + родился в Стране1 + руководит работой Работника2, который + живет в Городе1 + родился в Стране2 <> Стране1 Тут проскакивает УЩЕРБНОСТЬ, уже заметно , что нужен допязык ограничений, потому что нет "связи (ну не знаю чего)" между Город и Страна. Это как раз те Специальность и Квалификация, между которыми я не могу найти однозначной связи. Бесконечные вопросы о КЛАДР имеют те же корни. Есть какие то контекстно-зависимые Сущности, часто контекст очевиден в бытовом смысле и не уточняется, а в модели нельзя не уточнить. Нельзя выбрать Город не уточнив Страну. Т.е. определенные сущности не могут быть ополучены путем прибавления/уничтожения новых атрибутов в имеющиеся сущности. И это НЕ иерархия, не Классификация. Я эу фигню называю Макротип, это несколько жестко семантически связанных типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:41 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
ChA, я в курсе что существует википедия. но я не совсем хорошо понял смысл этого, поэтому и спрашиваю здесь совета. Курсовая работа как никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:44 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
На счет сомнений (теперь :)) Халпина о СКЛ скорее всего ошибка это. СКЛчем и ПЛОХ что позволяется собрать ЛЮБОЙ мусор, даже если негде его взять. Так как работает на самом низком уровне, никаких семантических узов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 14:45 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
Ух ты , да тут целый мильен!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 15:20 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
ChA, Вы можете что-либо подсказать по этому поводу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 15:49 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
ViPRos1. Хватит мусолить этого Дейта и обсуждать его ошибки и сомнения. Неинтересно это. Вы опять чересчур категоричны. Именно через Дейта, его ошибки и сомнения мы выходим на многие интересные и актуальные аспекты теории баз данных. ViPRosЯ от ВАС хочу услышать, что такое объект, характеристика и связь. Про связь - это какая-то ошибка, надеюсь:) Есть же ясное определение, я только забыл про одну очевидную деталь "двух и только двух объектов (или одного объекта с самим собой)". Все-таки, давно это было, когда я изучал модели данных:) Объект - все, что может быть идентифицировано, и (не обязательно) обладает набором характеристик. Понятно, что у объекта может не быть ни одной характеристики. В РМД это невозможно. Не может быть отношения без атрибутов (точнее, может, но в таком отношении может быть ровно один кортеж). Характеристика - количественный или качественный признак какого-либо свойства объекта, котрый можно наблюдать, измерять или вычислять. Здесь Вы видите промежуточное понятие - "свойство". Люди с инженерным образованием понимают, что это понятие нельзя явно использовать применительно к данным, так как свойство не может быть измерено, и не может, следовательно, иметь никакого значения. Тем не менее, это понятие часто безграмотно используется в литературе по БД. Так и говорят - "свойство класса" и т.п. ViPRosТут проскакивает УЩЕРБНОСТЬ, уже заметно , что нужен допязык ограничений, потому что нет "связи (ну не знаю чего)" между Город и Страна. Это как раз те Специальность и Квалификация, между которыми я не могу найти однозначной связи. Бесконечные вопросы о КЛАДР имеют те же корни. ... Я эу фигню называю Макротип, это несколько жестко семантически связанных типов. Вы преувеличиваете. Что значит нет связи между Специальностью и Квалификацией? У специальности (пусть, пока, это будет объектом) швея-мотористка есть совершенно конкретный набор квалификаций (пусть, пока, это тоже будет объектом, таким образом Специальность --Имеет/Относится к --> Квалификация). У меня, например, 4-ый разряд швеи-мотористки (я не шучу). Я понимаю, что Вас волнует не эта связь, а применение пары Специальность-Квалификация как "единого целого" в определенных местах приложения. То же и в КЛАДРе. Однако, все не так сложно, как кажется. Именно иерархия, а для экземпляра-владельца достаточно определить только нижний узел. А именно, для представления Адреса прописки для Человека достаточно связать Человека только с идентифицированной квартирой (или домом). При этом и улица, и населенный пункт, и страна, и планета определяются автоматически. Я бы просто дополнительно создал вычисляемую характеристику Адрес прописки объекта Человек, и выводил бы в ней этот самый Адрес прописки в стандартном "красивом" виде. Собственно я Вам и объясняю, что единственное, что все еще нужно немножко программировать при создании приложения - это триггеры и вычисляемые характеристики. Кстати, вместо (не хранимых в БД значений) вычисляемых характеристик можно использовать триггеры, в этом случае ввод данных будет по-медленнее, а вывод по-быстрее:). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 15:57 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
В последнем варианте, наряду с триггером используется характеристика определенного типа с ХРАНИМЫМ в БД значением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 16:02 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
Кстати, чтобы у модераторов не было сомнений, все это имеет самое непосредственное отношение к нормальной форме Бойса-Кодда:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 16:04 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
Бредятина, Ладно, коль уж тему превратили непонятно во что, ответьте на мой вопрос пожалуйста =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 16:21 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
Бредятина, Вот теперь ты точно ответил на мои вопросы. Даже понятие "признак", "мера", "свойства" появились. И с "Специальность" и т.д. все ясно. А то меня мучило сомнения :):):) насколько правмочно в одном суррогате спрятать море иерархической информации. Люди непонимают этого. Чтобы это непонимание искоренить я ввел понятие "мигрирующие свойства", т.е. любой составной тип (состав = сумме связей) может унаследовать любое свойство от типов с которыми связан. Эти свойства могут быть перситентыми или виртуальными. Их актуализация автоматизирована полностью. На самом деле свойство тоже тип (ну объект), ну примитивный что ли поддомен домена на котором задана метрика (явно или интуитивно), самих доменов базовых не так много это = типы данных в смысле инт, реал, перечисления явные, генерирующие функции какие-то и т.д. Допольнительно я нектороые связанные типы называю макротипом. Это равносильно бизнес объектам так называемым и блюду их целостность и т.д. Одни и те же типы могут участвовать в разных макротипах. Один из них головной тип. Связь мжду типами типизирован (ну, именован), типы в составном типе отношении) имеют роли (типизированные тоже). Тип связи и Роль усиливает семантику модели, можно работать не с самими типами а только Типаи связей и Ролями, так как сами типы становятся вычислимыми Кпоме этого добавлено понятие Классификатор, которыое тоже вностить допсемантику - агрегирующе-разбивающую применительно типам. Умеешь ведь говориь когда хошь. А этого Халпина я прочту, да там оказывается море народу мучается с поблемами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 16:33 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
Насчет языка ограничений. Сами составные типы требуют определнных ограничений, которых невозможно (ну в мссскл напр) задать в чек констрейнт. опустим тип Расстояние(Структурный элемент, Структурный элемент) требует что бы оба Структурные элементы принадлежали к одному и тому же типу. А на самом деле Структурный элемент является классификатором (т.е. ссылка на Цех, Участок, Предприятие и т.д.). у надо указать что Структурный элемент.Тип=Структурный элемент.Тип. А на Макротипах все это намного сложнее, так как там типов много и ограничений море. Генерировать на все это триггер не сложно, но нужен нормальный декларативный язык сначала. Пока пользуюсь Expression из DataColumn Net Framework, но он очень слабый :( Пытаюсь перейти на лямбда и через ехпрешн три создать тело триггера. Сделаю скажу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 16:46 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
papos, для того чтобы табла не находилась в НФБК в ней должно быть как минимум три колонки. А у Вас в таблах не бролее двух? Тада ниче не попишешь: у Вашего препада под НФБК скрывается что-то свое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 16:51 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
paposЛадно, коль уж тему превратили непонятно во что, ответьте на мой вопрос пожалуйста =) Мы всегда помним о Вас. papos"Вроде как я понял, как нужно исправить - необходимо в таблице Артист сделать PK из двух полей - ФИО и Название выступления. Так? Нет, не так. paposНе будет ли ключ из 2 полей избыточным?" Не будет. Вам нужно показать четко концептуальную модель. Вам это уже объясняли. Что такое выступление? Выступление артиста в сборном концерте? В сольном концерте? Просто одно, например, главное в жизни, выступление? Роль персонажа в спектакле?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 19:57 |
|
||
|
Нормальная форма Бойса-Кодда
|
|||
|---|---|---|---|
|
#18+
ViPRosВот теперь ты точно ответил на мои вопросы. Даже понятие "признак", "мера", "свойства" появились. Они не являются понятиями модели данных. Это я просто объяснил почему термин "характеристика" правильнее, чем "свойство". ViPRosИ с "Специальность" и т.д. все ясно. А то меня мучило сомнения :):):) насколько правмочно в одном суррогате спрятать море иерархической информации. Люди непонимают этого. Но, квартира - это не суррогат:) Да и адрес не слишком похож на море:) ViPRosЧтобы это непонимание искоренить я ввел понятие "мигрирующие свойства", т.е. любой составной тип (состав = сумме связей) может унаследовать любое свойство от типов с которыми связан. Эти свойства могут быть перситентыми или виртуальными. Их актуализация автоматизирована полностью. Но в примере с адресом я не вижу никакой основы для непонимания. Мне кажется к непониманию могут, скорее, првести "мигрирующие свойства", "составной тип", "состав=сумме связей", и уж, нем более, наследование (очень сырая идея, заимствованная из биологии, и имеющая отношения разве что к пользовательскому интерфейсу). ViPRosНа самом деле свойство тоже тип (ну объект), ну примитивный что ли поддомен домена на котором задана метрика (явно или интуитивно), самих доменов базовых не так много это = типы данных в смысле инт, реал, перечисления явные, генерирующие функции какие-то и т.д. Допольнительно я нектороые связанные типы называю макротипом. Это равносильно бизнес объектам так называемым и блюду их целостность и т.д. Одни и те же типы могут участвовать в разных макротипах. Один из них головной тип. Свойство не тип, и не объект, а объективная особенность объекта, проявляющаяся в процессе его производства, эксплуатации, жизнедеятельности. Не стоит ничего выдумывать, и использовать занятые понятия. Почему макротипом называются только НЕКОТОРЫЕ связанные типы? У других связанных типов целостность не блюдётся?:) ViPRosСвязь мжду типами типизирован (ну, именован), типы в составном типе отношении) имеют роли (типизированные тоже). Это ключевой момент. Здесь в дополнение к связанным типам (макротипам) появились составные типы (или составные типы-отношения?). Появились связи между непонятно какими типами (то ли между типами внутри то ли макротипа, то ли составного типа; то ли между составными типами)? И наконец появились роли. При этом непонятны цель и способ использования "связей" и "ролей". ViPRosТип связи и Роль усиливает семантику модели, можно работать не с самими типами а только Типаи связей и Ролями, так как сами типы становятся вычислимыми Причинно-следственные связи несколько перепутались:) Сначала был определен тип (домен), как фундаментальное понятие, потом макротип, потом составной тип, а потом они, в один момент, стали вычислимыми:) ViPRosКпоме этого добавлено понятие Классификатор, которыое тоже вностить допсемантику - агрегирующе-разбивающую применительно типам. Плохо. Классификатор - это просто один из типов (по Вашему "макротип"), а не отдельное понятие наравне с типом. ViPRosА этого Халпина я прочту, да там оказывается море народу мучается с поблемами. Да, там у них за границей вообще чёрти-что творится:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 20:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37009793&tid=1542382]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
337ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 649ms |

| 0 / 0 |
