Имя: Пароль:
IT
 
Народ, а приведите пример связи рел. таблиц вида "многие-ко-многим"
,
0 Steel_Wheel
 
06.10.11
18:09
Народ, а приведите, пожалуйста, пример связи  таблиц реляционной БД вида "многие-ко-многим", желательно из реальной жизни
1 proger2011
 
06.10.11
18:11
Блин... Заказы - Покупатели
2 PR
 
06.10.11
18:12
Товары и склады
3 proger2011
 
06.10.11
18:12
Не... Преподаватели - Предметы
4 ShoGUN
 
06.10.11
18:12
(0) Один ко многим, вообще-то.
5 mm_84
 
06.10.11
18:13
(0) социальные сети)
6 proger2011
 
06.10.11
18:13
(4) Ты мне в 1 написал, да согласен ступил
7 ShoGUN
 
06.10.11
18:13
(4) на (1).
Студенты - предметы.
8 ShoGUN
 
06.10.11
18:15
Товары - поставщики
9 Господин ПЖ
 
06.10.11
18:16
мужчины - женщины
10 Steel_Wheel
 
06.10.11
18:16
Т.е. это -- не связанные таблицы, которые надо нормализовать?
11 Господин ПЖ
 
06.10.11
18:16
(10) винигрет в голове...
12 Steel_Wheel
 
06.10.11
18:16
(9) Бгг
(8) Ну, я так и думал... но, что-то оказалось, что не совсем
13 Джинн
 
06.10.11
18:17
Номенклатура - ОКЕИ
14 PR
 
06.10.11
18:17
(10) Как все запущено. Может Яндекс?
15 Steel_Wheel
 
06.10.11
18:18
(14) на работе, пока закрыт
16 ShoGUN
 
06.10.11
18:18
(15) Жестоко. Гугл тоже закрыт? А миста открыта?
17 Steel_Wheel
 
06.10.11
18:20
(16) Да, и партнерский.... типа 1С-сайты ))

(2) Спасибо, вспомнил
18 Господин ПЖ
 
06.10.11
18:20
(10) это две таблицы, отношения между собой в которых устанавливается через третью таблицу
19 Shurjk
 
06.10.11
18:20
Да уж, а интересно многие бы из понтующихся здесь, без яндекса так же облажались...
20 Shurjk
 
06.10.11
18:21
(18) Насчет третьей таблицы это ты зря... не надо все так буквально понимать.
21 PR
 
06.10.11
18:21
Отношение, при котором многие записи в одной таблице связаны со многими в другой. Классический пример - это отношение между таблицами Товары и Заказы. Заказ может включать в себя множество товаров, и в то же время один вид товара может входить в разные заказы. Часто возникает необходимость в создании третьей таблицы, связующей, с которой две другие будут связаны в отношении "один ко многим". Например, если создать третью таблицу Сведения о заказах и использовать ее в качестве связующей, то таблица Заказы будет иметь с таблицей Сведения о заказах отношение "один ко многим", и таблица Сведения о заказах в свою очередь будет иметь с таблицей Продукты отношение "один ко многим".
22 PR
 
06.10.11
18:21
(19) LOL
23 Господин ПЖ
 
06.10.11
18:22
(20) в смысле "зря"?
24 ShoGUN
 
06.10.11
18:23
(19) Можно же и порассуждать немного... Я лично без определений сразу понял что такое 1 к 1, 1 ко многим и многие ко многим.
(20) 3-я таблица нужна, иначе будет как с расчетной ведомостью в ЗУПе.
25 PR
 
06.10.11
18:24
(23) Да он просто видимо исходя из (19) о таком типе связи знает из яндекса. Уже минут пять :))
26 Джинн
 
06.10.11
18:24
(19) Нет Бога, кроме Кодда и Дейт пророк его :)
27 Shurjk
 
06.10.11
18:24
(23) Ты согласен с тем что в (21) Написано, а теперь попробуй сформулировать суть такой связи в свете этой третьей таблицы, это просто для примера кто то приплел третью таблицу с правилами, а вы ее тут же в определение запихали
28 Shurjk
 
06.10.11
18:25
(25) Конечно, и запросы я тоже пишу, не представляя того что у меня в результате получиться.
29 PR
 
06.10.11
18:25
(27) Без третьей таблицы мы имеем только две исходные не связанные между собой таблицы
30 Steel_Wheel
 
06.10.11
18:26
Просто на собеседовании спросили: "Какие есть виды связей в РБД", а потом: "Что такое связь "многие-ко-многим"?".

Я по памяти выдал "товары и поставщики". Меня спросили, какой таблицы не хватает... я крепко задумался.
31 Джинн
 
06.10.11
18:26
(27) А суть проста - кортежи из одной таблицы можно связать с кортежами другой таблицы только через промежуточную таблицу.
32 Shurjk
 
06.10.11
18:26
(29) То есть связи между этими таблицами никакой не будет? Про умножение двух талиц не доводилось слышать?
33 Джинн
 
06.10.11
18:27
(30) Документов не хватает :)
34 Господин ПЖ
 
06.10.11
18:27
(27) а как еще в реляционной БД можно описать "многие ко многим"?

сама по себе такая связь не возможна и заменяется двумя "один ко многим", которые описываются в третьей таблице
35 Shurjk
 
06.10.11
18:27
(31) Не только, и даже не через таблицу а через какие то условия связи, не обязательно что они будут в таблице.
36 ShoGUN
 
06.10.11
18:28
(32) Связь "каждый с каждым" чаще всего бессмысленна на практике.
(30) "Поставщики товаров", т.е. связи между двумя таблицами...
37 Господин ПЖ
 
06.10.11
18:28
(32) и что это будет? декартово? а нахрена оно тут нужно?
38 Джинн
 
06.10.11
18:29
(35) Коллега, вы ошибаетесь. Речь идет о теории реляционных баз. А не о фантазиях.
39 Господин ПЖ
 
06.10.11
18:29
короче epic fail...
40 Steel_Wheel
 
06.10.11
18:29
>>сама по себе такая связь не возможна и заменяется двумя
>>"один ко многим", которые описываются в третьей таблице

(34) А я думал, в чем же подвох... потом предложил нормализовать такие таблицы.
41 Steel_Wheel
 
06.10.11
18:30
Думал, правильно или нет
42 ShoGUN
 
06.10.11
18:30
(40) Учи матчасть. :)
43 PR
 
06.10.11
18:32
(32) Гениально! Результат умножения и есть третья таблица :))
44 ShoGUN
 
06.10.11
18:33
Строго говоря (35) прав, но это занудство, потому что любое условие можно легко свести к таблице, а вот наоборот - можно мозг сломать.
45 Asmody
 
06.10.11
18:35
да, насчёт третьей таблицы вы, ребят, погорячились. тут и двух много. отношение М-2-М вполне можно реализовать в одной таблице.
46 Asmody
 
06.10.11
18:36
нормализация? кто сказал "нормализация"?
47 Джинн
 
06.10.11
18:36
(44) Теория реляционных баз данных не оперирует "условиями".
Единственной структурой данных, используемой в реляционной модели, являются нормализованные n-арные отношения.
48 Джинн
 
06.10.11
18:37
(45) Нет, нельзя. В такой таблице отношения будут не нормализованные.
49 ShoGUN
 
06.10.11
18:38
(47) Согласен.
50 Господин ПЖ
 
06.10.11
18:38
(43) это не таблица, это хрень... что мне дает декартово в этом случае, когда мне нужны "точные" связи одной сущности с другой.
51 Господин ПЖ
 
06.10.11
18:38
(45) что-то новое в природе...
52 Asmody
 
06.10.11
18:39
(48) специально, пост (46)
53 Asmody
 
06.10.11
18:40
(51) да нет, очень старое
54 Господин ПЖ
 
06.10.11
18:41
(53) ну так просвяти...

какое отношение нормализация имеет к связям?
55 Asmody
 
06.10.11
18:42
(54) а откуда у тебя взялись связи?
56 Господин ПЖ
 
06.10.11
18:43
(55) волевым решением ввел PK в таблицы. Есть у меня в каждой набор полей, однозначно описывающие строку...
57 ShoGUN
 
06.10.11
18:43
(54) Самое прямое :) Можно все три таблицы объединить в одну и дублировать данные.
"Нормализация? Кто сказал нормализация?"
58 Asmody
 
06.10.11
18:45
(56) что такое PK? какое отношение он имеет к описанию свойств объекта реального мира?
59 Господин ПЖ
 
06.10.11
18:46
(58) а какое отношение имеет объект реального мира с теории реляционных БД?
60 ShoGUN
 
06.10.11
18:50
(58)(59) Евреи что ли?
61 Asmody
 
06.10.11
18:52
(59) я не знаю, что такое "теория реляционных БД". Я в университете изучал модели данных и реляционную алгебру.
62 Господин ПЖ
 
06.10.11
18:54
(61) яндекс в помощь...
63 Asmody
 
06.10.11
19:00
(62) вот и воспользуйся им, чтобы узнать, что никаких PK (primary key если я тебя правильно понял), введённых «волевым решением» реляционная модель не предусматривает. Более того, строго говоря, их там и не может быть.
64 Asmody
 
06.10.11
19:02
это уже при физической реализации модели (которая может быть, в частности, в виде таблиц), вводят специальные поля-ключи, потому что так удобнее работать
65 Asmody
 
06.10.11
19:04
и, если уж на то пошло, таблица со специально внедрённым PK формально не соответствует даже 2НФ
66 Господин ПЖ
 
06.10.11
19:04
>«волевым решением» реляционная модель не предусматривает

почему?

PK - один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).

Потенциальный ключ - подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости).

формально о нормализации ни слова.
67 Asmody
 
06.10.11
19:06
(66) ну если в (56) речь о потенциальных ключах, тогда замечания снимаются. только их не вводят, их выбирают.
68 Господин ПЖ
 
06.10.11
19:07
короче предлагаю пойти домой...
69 Asmody
 
06.10.11
19:08
ну да. у ТС, похоже, мозг уже взорвался раза 3 как минимум
70 PR
 
06.10.11
19:15
(50) Декартово произведение двух таблиц - это частный случай отношения многие-ко-многим.
71 Steel_Wheel
 
06.10.11
20:12
(69) Не, я тут. Впитываю...
72 proger2011
 
06.10.11
20:43
Так я не понял... Многие ко многим не существует, это две один ко многим?
73 zak555
 
06.10.11
22:35
спр1 подчинён спр2,
а
спр2 подчинён спр1
74 Господин ПЖ
 
06.10.11
22:37
йопт...

мдя...
75 proger2011
 
06.10.11
22:38
(73) Это чё правильный ответ тех кто собеседовал чтоли?