powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сложности с формализацией данных...
11 сообщений из 11, страница 1 из 1
Сложности с формализацией данных...
    #34488090
redwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Задумка следующая.
Планируется БД, описывающая большое число сущностей.
У всех них есть определённые свойства. Но формализировать эти свойства на этапе проектирования БД невозможно.

Т.е. имеем что-то навроде

Сущность1- свойство1-true, свойство2-"агрессия"
Сущность2- свойство1-true, свойство3-135
Сущность3- свойство4-"параллелепипед"
Сущность3- свойство2-"гипноз", свойство5-0,425

т.е. записи в БД обладают каждая своим набором характеристик. Только вот какие будут эти наборы, какие будут характеристики- неизвестно. В то же время параметры будут неуникальными, и одним и тем же параметром будут обладать много записей.

Думаю пока вот что:

Для каждого свойства в процессе работы БД создавать свою таблицу:
ID: integer
MotherTable: VarChar
RecordInMotherTable: integer
Value: - по обстоятельствам.


Во время запроса необходимо обращаться к этим таблицам. А вот как...
У кого какие варианты? Использовать rdb$relations.rdb$relation_name (для firebird, например)?

Чтобы узнать, какие вообще свойства описаны для данного объекта, думаю использовать связанный список... Ну, в любом случае, это ещё одна таблица, возможно несколько. Нахрапом пока больше ничего на ум не приходит :)

Но у меня стойкое ощущение, что я изобретаю велосипед... :)

Вот так?:

Select (подзапрос) from (подзапрос) where и т.д. с подзапросами?
Кажется, как-то громоздко...

P.S. В БД необходимо осуществить объединение логически не связанных объектов и свойств. Скажем, круглый вишневый стол, гроза над Мурманском и цитаты из книг Кастанеды smile Причем свойства объектов и их количество, равно как и количество объектов на этапе проектирования неизвестны и объективно не могут быть получены.

P.P.S. Расписал всё с тайной мыслью- вдруг кто делал то же, и есть какие-то другие идеи?
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34488516
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
redwolfТ.е. имеем что-то навроде
Сущность1- свойство1-true, свойство2-"агрессия"
Сущность2- свойство1-true, свойство3-135
Сущность3- свойство4-"параллелепипед"
Сущность3- свойство2-"гипноз", свойство5-0,425

Добавьте еще
Сущность4- свойство5- таблица с неопределенным числом столбцов неизвестных типов
т.е. nested tables
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34489628
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Задумка следующая.

Обсуждается здесь регулярно.

> Но у меня стойкое ощущение, что я изобретаю велосипед...

Скорее, самокат с костылями. ;) Стандартными средствами реляционных СУБД Ваша задача не решается или решается плохо. Три варианта: выбрать другую модель данных, изменить задачу или написать фреймворк, реализующий требуемые связи.

> В БД необходимо осуществить объединение логически не связанных объектов и свойств.

Вы собираетесь связывать их случайным образом или все-таки есть какие-то критерии? ;)

> вдруг кто делал то же

Wiki - вполне промышленное решение, реализующее описанный Вами функционал.
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34491411
redwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.

>Вы собираетесь связывать их случайным образом или все-таки есть какие-то критерии? ;)

Так в том то и вся штука, что критерии связи появятся уже при эксплуатации... :-)
По задумке в БД будет собираться вообще весь возможный максимум информации по формируемым темам, а потом искаться их взаимосвязи. Что-то похожее на DataMining, но не совсем то... с одной стороны- проще, с другой- сложнее... Поиск по организации хранения информации в таких системах дал мало полезного. Везде изначально предметная область предполагается известной. А в нашем случае- она неизвестна, и представление о ней достраивается в ходе работы в т.ч. на основе уже имеющихся данных. Скажем, выяснилось, что для более полного описания нужно ещё несколько сущностей с такими-то взамосвязями.... :-) Да, лопнувшего сервера не боимся. На начальных этапах работы БД пользователей, использующих выборки, будет только 2-3. А то и вообще 1.

>Скорее, самокат с костылями. ;)
Ну-у-у-у... Да! "Именно это я и хотел сказать" (фильм "Трест, который лопнул") :-) :-)

>Стандартными средствами реляционных СУБД Ваша задача не
>решается или решается плохо. Три варианта: выбрать другую модель данных, изменить задачу или
>написать фреймворк, реализующий требуемые связи.

Модель данных выбрать нельзя. Она вообще неизвестна пока:)
По поводу фреймворка... То есть, библиотеку, реализующую наращивание метаданных?

>таблица с неопределенным числом столбцов неизвестных типов т.е. nested tables

Ещё раз спасибо. Буду копать по nested tables, как я слышал, такая штука есть в Oracle?

Wiki? Надо подумать... и посмотреть, как она работает внутри. Спасибо.
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34491429
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Так в том то и вся штука, что критерии связи появятся уже при эксплуатации...

Да они уже есть, просто Вы их не сформулировали. ;) Думаю, не сильно ошибусь, если предположу возможность связей на основе какой-то из семантических моделей.

> Поиск по организации хранения информации в таких системах дал мало полезного

Где и как искали?

> в нашем случае- она неизвестна, и представление о ней достраивается в ходе работы

Понятно.

> нужно ещё несколько сущностей с такими-то взамосвязями

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

> лопнувшего сервера не боимся

Да пока никаких страшных цифр вроде и не звучало.

> Модель данных выбрать нельзя.

Ну если Вы в первом сообщении упомянули о таблице, то, видимо, говорите о реляционных СУБД. Т. е. предполагаете использовать реляционную же модель. ;) Я и говорю, может, есть смысл смотреть на альтернативные варианты?

> библиотеку, реализующую наращивание метаданных?

Не только наращивание, а и манипуляции и данными, и метаданными.
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34491472
redwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Думаю, не сильно ошибусь, если предположу возможность связей на основе какой-то из
>семантических моделей.

Я тоже думал в этом направлении... Но здесь для меня непаханое поле, т.к. с семантическими сетями/моделями я нормально не работал... Ну хоть знать, куда двигаться :-)

>Где и как искали?

Да по-разному. Вот здесь, например:
http://www.books.ru/shop/books/486818

Ну и по поисковикам...

ROLAP ("снежинка" в реляционной модели) соответствует моим прикидкам в самом первом сообщении (только там, скорее, "звезда", ну да всё поправимо)...

>Я и говорю, может, есть смысл смотреть на альтернативные варианты?

Я так подсел на реляционную модель, что, читая про другие, тут же пытаюсь представить их в "реляционном виде"... Вот она- инертность мышления... :-)

Вобщем, велика вероятность, что придется писать фреймворк.... :-)

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

Вобщем, на ближайшие сутки, как минимум, мне есть над чем серьёзно подумать... :)

P.S. Перечитал первое сообщение. Нашёл его довольно запутанным и сложным. Спасибо за отклик, внимание и помощь. :)
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34492440
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Ну хоть знать, куда двигаться

Если честно, я бы не взялся за решение сформулированной Вами задачи. Не потому, что ее принципиально невозможно решить, а потому, что решение будет чрезвычайно геморройным. Imho не стоит овчинка выделки.

> Вот здесь, например

Книг на эту тему я не знаю. Ни на русском, ни на английском. Возможно, если повезет, найдете что-то в исследовательских работах. Но и это вряд ли.
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34494088
novise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... и сказал Король Ваньке: Иди ка ты туда, не знаю куда, принеси ка ты то, не знаю что..
Лично мне это надоело! Куда и что предпочитаю выбирать сам.
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34496871
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На мой взгляд есть три решения.
1. Сделать по Тенцеру. Плюс - не надо перепроектировать базу. Минус - жуткие, непроизводительные запросы и проблемы со вводом пользователями дублирующих сущностей.

2. Изучить предметную область и выяснить, что на самом деле все атрибуты могут быть описаны. Плюс - высокая производительность запросов. Минус - это или невозможно, или анализ требует слишком больших трудозатрат и мозгов.

3. Сделать так, как существует на данный момент и какие атрибуты существуют на этот же момент. Плюс-Минус. Вы будет до конца жизни обеспечены работой по обслуживанию этой базы.


Чуть не забыл. Реализация лукап-поля - это в хелп. Или в Дельфи-форум. Может кто и сжалится, ответит.
Просто Парень
Программирую на Delphi 5

Круто сказано! Попробуйте еще на Delphi 2.
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34497224
redwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение 1... Возможно, и будет частично по-Тенцеру... (та "нереляционная" часть тезауруса, о которой писал guest_20040621). Но не совсем. Мысли пока не оформились настолько, чтобы выдать их емко и относительно кратко, убрав попутный бред (отделив зерна от плевел). Пока склоняюсь к полу-Тенцеру + некоторый фреймворк (идея ув. guest_20040621 о тезаурусе из двух частей)... В пользу, точнее, не во вред этому, является совсем небольшое число пользователей-исследователей и относительно небольшое число записей- в пределах нескольких сотен тысяч (2-3 максимум), причем запросы на всю глубину дат будут очень редки... Относительно дублирующих сущностей- круг пользователей будет достаточно ограниченным, а добавлять новые сущности (не записи) будет вообще только один человек.

Решение 2- не совсем подходит. Видите-ли, БД предназначена для исследовательских задач, причем в тех областях, которые трудно однозначно формализовать. Например, стыки различных областей психологии/социологии... К исследуемым проблемам есть несколько подходов, каждый из которых предлагает свою формализацию (причем, грубую). А может появиться и новый подход, и новые сущности.... К тому же тут движет не только желание заработать, но и... как бы сказать поточнее... любительско-полупрофессионально-энтомологический интерес к исследуемым темам. :)

Решение 3- данная работа, к сожалению, не предполагает достаточно сильных постоянных заработков... Да и к тому же... мой интерес к исследуемым темам... А сопровождать, приглядывать за этой штуковиной и так и так придется...

Спасибо за интерес к теме.



А при чем здесь lookup поля? Да и про Дельфи я ничего не говорил :)
Это Вы, наверное, с каким-то другим сообщением перепутали... :)
...
Рейтинг: 0 / 0
Сложности с формализацией данных...
    #34497265
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
redwolf, если бы Вы полностью задачу описали, было бы проще. Судя по тому немногому, что Вы рассказали, задача достаточно интересная.

Вы можете ее публично обсуждать?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сложности с формализацией данных...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]