Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
Здравствуйте!
Необходимо отловить запрещенные связи.(см. схема связей)
Нужна идея... Помогите!

Таблица - объект планирования содержит
поля(здесь вся информация о заданиях):
Oid- уникальный номер задания
ПредшествующиеСтр (в строковом виде) содержит предшествующие задания задания
с номером Oid
ПоследующиеСтр (в строковом виде) содержит последующие задания задания
с номером Oid

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

К сообщению приложен файл. Размер - 0Kb
7 ноя 08, 14:13    [6408897]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Глазками отлавливать, учитывая цветовое разграничение? Или "схема связей" имеет другое воплащение, например в виде таблицы?
7 ноя 08, 15:19    [6409377]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
схема связей оформлена в виде таблицы с названием Связь(см.выше)
7 ноя 08, 16:06    [6409799]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Kukurechka
схема связей оформлена в виде таблицы с названием Связь(см.выше)

И где там А, В и все остальные ? И где там красные и черные стрелочки ? И почему вам только красные не нравяться ?
7 ноя 08, 16:37    [6410119]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
попытаюсь заново все объяснить(видимо не правильно поставила вопрос)
Графической схемы связей не существует. она помогает правильно понять как должны и как не должны быть связаны задания.(красным показаны недопустимые связи,черным показаны допустимые связи).
В реальности существуют только две таблицы:
связь(задание родительское, задание дочернее).
объектпланирования.в этой таблице можно проследить начальные задания(у которых нет предшественников) конечные задания(у которых нет последующих заданий)

получается структура похожая на дерево(но не класическое дерево)
Так вот.... в таблице связей существуют недопустимые связи. их надо поймать.
7 ноя 08, 17:19    [6410480]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
меня не покидает ощущение, что нарушена 1нф.
идея - изменить структуру.
7 ноя 08, 17:57    [6410778]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Kukurechka
попытаюсь заново все объяснить(видимо не правильно поставила вопрос)
Графической схемы связей не существует. она помогает правильно понять как должны и как не должны быть связаны задания.(красным показаны недопустимые связи,черным показаны допустимые связи).
В реальности существуют только две таблицы:
связь(задание родительское, задание дочернее).
объектпланирования.в этой таблице можно проследить начальные задания(у которых нет предшественников) конечные задания(у которых нет последующих заданий)

Ну так и как вы предлагаете увязать графическую схему с вашими таблицами ? Визуально догадаться какой записи соотвествует квадратик схемы А, а какой В ?
7 ноя 08, 18:14    [6410866]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Чем красные линии отличаются от чёрных? Тем, что Вы нарисовали одни квадратики выше других,
и поэтому чёрные направлены вниз, а красные - вверх?
Kukurechka
получается структура похожая на дерево
О каком дереве тут можно говорить? Это направленный граф. IMHO.

От Вас хочется не картинок красивых, а скриптов создания таблиц и наполнения их тестовыми данными.
И чёткая постановка задачи, само собой.
7 ноя 08, 19:03    [6411123]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
переписала задание.. надеюсь теперь попонятнее!
Я прошу помочь мне в идее как это можно сделать.
прочитала кучу статей про рекурсии и про деревья... но понятнее от этого не стало, потому что в статьях обычно рассматривают просто случай с деревьями.

Сразу скажу что структуру таблиц не смогу изменить.(должна остаться в первоначальном виде)

З.Ы. Дерево-это тоже напрвленный граф))

К сообщению приложен файл. Размер - 0Kb
9 ноя 08, 11:53    [6413666]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
TimonSP
Member

Откуда:
Сообщений: 107
То есть у вас двойная денормализация, все связи можно определить:
1. по таблице "связей"
2. по полю "ПредшествующиеСтр" в таблице "объектов планирования"
3. по полю "ПоследующиеСтр" в таблице "объектов планирования"

Правильность как гарантируется (вообще гарантируется)?
9 ноя 08, 15:33    [6413918]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
TimonSP
Member

Откуда:
Сообщений: 107
Версия сервера?
9 ноя 08, 15:38    [6413933]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
Денормализация присутствует,но правильность гарантируется!
Версия сервера: MS SQL Server 2005 Developer Edition
9 ноя 08, 19:05    [6414179]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Kukurechka
З.Ы. Дерево-это тоже напрвленный граф))
Дерево-то граф, но Ваш граф в первом посте - это не дерево!
9 ноя 08, 20:14    [6414281]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
TimonSP
Member

Откуда:
Сообщений: 107
Kukurechka,

Какая из правильностей:
1. Данные таблицы [объект планировани] правильные (без ошибок).
2. Данные таблицы [объект планировани] сооветствуют данным в таблице [связь].

Если и там и там ошибка, то как понять, что "a"-вершина.

Какая из связей не правильная [i]-[a] или [a]-[d] (перед ответом попробуйте опустить [a] и [c] ниже [i]?

Вы сами то понимает, что является ошибкой в вашем случае?
9 ноя 08, 20:23    [6414299]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
select * from таблица-связь where (Предшествующий = f and Последующий = f) or (Предшествующий = i and Последующий = a) и т.д.
в чем проблема то?

для спящего время бодрствования равносильно сну
9 ноя 08, 20:43    [6414344]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Kukurechka
переписала задание.. надеюсь теперь попонятнее!
Нет, непонятно, что вызвало у вас проблему?
Тяжело распарсить по разделителям таблицу "Объект планирования" в нормальный вид, а потом сравнить с таблицей "связей"? И причём сдесь графы, деревья? Обычный список через ";". Намутили воды ...
А ещё непонятно - откуда такая странная "задача"? Дано всё, найти почти ничего. А вот если было наоборот. :) На основе только одной единственной таблицы связей найти ошибочные.
9 ноя 08, 23:58    [6414713]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
Если бы все было так просто.....
To Timon, данные таблицы [Объект планирования] соответствуют данным таблицы[Связь].
и там и там ошибки и их надо найти.
Получается задача :найти циклы в связях. их просто не должно быть!!!
10 ноя 08, 09:36    [6415247]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Kukurechka
и там и там ошибки и их надо найти.
Вы умеете путать. :) А вот на вашем рисунке не указаны ошибки в "Объект планирования", а для примера надо было бы.

Kukurechka
данные таблицы [Объект планирования] соответствуют данным таблицы[Связь]
Так нафига вы приводите две таблицы? Выкидываем нафиг таблицу [Объект планирования].

Вы привели лишние данные, вы привели неполную картину. И смотрите - как долго вы объясняетесь ...

Kukurechka
Получается задача :найти циклы в связях. их просто не должно быть!!!
Идеальное приложение для оператор - это окно с одной кнопкой "Сделать мне хорошо". Для программера главное, чтоб эта кнопка "убегала" от курсора мыши.
Вот главное мы поняли, что никаких красных линий нет. Есть набор связей приводящих к циклу. А вот какая из этих связей "фу - прАтивная", это уже второй вопрос.

Значит так здесь есть циклы:
f-f
e-h-e
b-e-g-i-a-d-b
e-g-i-h-e(2 варианта)

Первый понятен, там одна связь. А вот с остальными проблема. Вот давайте мы на рисунке подымем блок h выше e и всю консрукцию a,c,d,f опустим ниже i. :) Не уж-то поменялось мнение о "неправильных " связях. :)

Кстати о деревьях. Связи g-i и h-i, a-d и b-d. Недопустимы!
10 ноя 08, 11:15    [6415828]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
Mnior,
Таблица Объект планирования нужна для того чтобы обнаружить так называемые головы(задания у которых нет предшественников) и хвосты(задания у которых нет последователей).
таким образом можно выявить с каких заданий начинается цепочка заданий и чем эта цепочка заканчивается.
я ясно рассказала какие связи мне нужно отловить и у меня не дерево- а напрвленный граф))
ну так как.. кто-нибудь может помочь?есть идеи?
10 ноя 08, 12:44    [6416541]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Kukurechka

я ясно рассказала какие связи мне нужно отловить и у меня не дерево- а напрвленный граф))
ну так как.. кто-нибудь может помочь?есть идеи?

По-моему, вы сильно заблуждаетесь насчет "я ясно рассказала"
Насчет идей - все рекурсивные задачи на графах уже давно сформулированы. В том числе и поиск петель.
10 ноя 08, 12:51    [6416604]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
TimonSP
Member

Откуда:
Сообщений: 107
Kukurechka
Если бы все было так просто.....
To Timon, данные таблицы [Объект планирования] соответствуют данным таблицы[Связь].
и там и там ошибки и их надо найти.
Получается задача :найти циклы в связях. их просто не должно быть!!!


Если они сооветсвуют, то как определить, что [a] это голова?

И ещё раз:
Какая из связей не правильная [i]-[a] или [a]-[d] (перед ответом попробуйте опустить [a] и [c] ниже [i]?
10 ноя 08, 12:56    [6416643]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Kukurechka
Таблица Объект планирования нужна для того чтобы обнаружить так называемые головы(задания у которых нет предшественников) и хвосты(задания у которых нет последователей).
таким образом можно выявить с каких заданий начинается цепочка заданий и чем эта цепочка заканчивается.
Kukurechka
данные таблицы [Объект планирования] соответствуют данным таблицы[Связь].
и там и там ошибки.
Противоречие, однако.

Скока у вас по физике в школе было? Знаете, что есть такое выражение "Всё относительно!"? :)
Так вот, я не пойму относительно чего красные связи "неверны"? Относительно какого условия/закона/правила/данных?
10 ноя 08, 13:01    [6416685]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
TimonSP

Если они сооветсвуют, то как определить, что [a] это голова?

у [а] в табл. объект планирования нет последующСтр
TimonSP

И ещё раз:
Какая из связей не правильная [i]-[a] или [a]-[d] (перед ответом попробуйте опустить [a] и [c] ниже [i]?

[i]-[a]- не правильная... потому что мы определили [а] как голову
Mnior

Так вот, я не пойму относительно чего красные связи "неверны"? Относительно какого условия/закона/правила/данных?

относительно найденных голов(начальных заданиях)..
10 ноя 08, 13:55    [6417157]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
TimonSP
Member

Откуда:
Сообщений: 107
Kukurechka
TimonSP

Если они сооветсвуют, то как определить, что [a] это голова?

у [а] в табл. объект планирования нет последующСтр
...


Как нет, если ошибки и там и там, и данные сооветсвуют - Тогда там будтет [i].
10 ноя 08, 13:58    [6417202]     Ответить | Цитировать Сообщить модератору
 Re: Помогите найти ошибки в таблице связей (SQL 2005)  [new]
Kukurechka
Member

Откуда:
Сообщений: 26
TimonSP
Kukurechka
TimonSP

Если они сооветсвуют, то как определить, что [a] это голова?

у [а] в табл. объект планирования нет последующСтр
...


Как нет, если ошибки и там и там, и данные сооветсвуют - Тогда там будтет [i].

в этом вы правы!
но предположим мы знаем. что [a] точно начальное задание. т.е мы точно знаем с чего начинаются цепочки.
10 ноя 08, 14:08    [6417277]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить