|
|
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Всем привет! Честно говоря, долго смотрел на список форумов, но так и не нашел подходящего. Напишу сюда - не пинайти, плиз, если совсем не в тему. :) Стоит задача (неформальная постановка): по данным определить метаданные. То есть, у нас есть некоторая реляционная база данных (пусть, для простоты, она находится в какой-нибудь СУБД). Она состоит из таблиц, таблицы из столбцов. Есть метаданные самой СУБД, которые дают нам некоторую информацию о типах данных в полях (например, можно отличить число от строки) и связях. Но вот строку название страны от строки цвета, например, они отличить уже не помогут, как и выделить случай записи числа текстовой строкой. Отсутствующих в метаданных, но реально имеющих место связей мы также не увидим. Хочется, чтобы компьютер смог "увидеть" такие "более подробные метаданные". Цель - дальнейший анализ незнакомых данных с минимальным участием человека (есть понимание, что полностью исключить оператора на текущем этапе невозможно). Просьба. Кто видел какие-либо реализации этой идеи, полные или частичные, или какие-нибудь разработки по теме - поделитесь знанием! Интересует все: существующие готовые системы, имеющие среди функциональности подобные элементы, какие-то наработки, просто воспоминания. Могу привести один пример, где я видел небольшой элемент - при импорте данных из текстового файла в Microsoft Access система "догадывается" о типе данных в столбце. Не всегда точно, конечно, но во всяком случае пытается. :) Если есть идеи, где на этот вопрос/просьбу могут ответить - буду рад. P.S. Также готов обсудить конкретные идеи как это реализовывать и для чего использовать (выше я изложил суть технической проблемы, не углубляясь в детали). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2005, 00:34 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Alexander V. YushchenkoВсем привет! Честно говоря, долго смотрел на список форумов, но так и не нашел подходящего. Напишу сюда - не пинайти, плиз, если совсем не в тему. :) Стоит задача (неформальная постановка): по данным определить метаданные. То есть, у нас есть некоторая реляционная база данных (пусть, для простоты, она находится в какой-нибудь СУБД). Она состоит из таблиц, таблицы из столбцов. Есть метаданные самой СУБД, которые дают нам некоторую информацию о типах данных в полях (например, можно отличить число от строки) и связях. Но вот строку название страны от строки цвета, например, они отличить уже не помогут, как и выделить случай записи числа текстовой строкой. Отсутствующих в метаданных, но реально имеющих место связей мы также не увидим. Хочется, чтобы компьютер смог "увидеть" такие "более подробные метаданные". Цель - дальнейший анализ незнакомых данных с минимальным участием человека (есть понимание, что полностью исключить оператора на текущем этапе невозможно). Просьба. Кто видел какие-либо реализации этой идеи, полные или частичные, или какие-нибудь разработки по теме - поделитесь знанием! Интересует все: существующие готовые системы, имеющие среди функциональности подобные элементы, какие-то наработки, просто воспоминания. Могу привести один пример, где я видел небольшой элемент - при импорте данных из текстового файла в Microsoft Access система "догадывается" о типе данных в столбце. Не всегда точно, конечно, но во всяком случае пытается. :) Если есть идеи, где на этот вопрос/просьбу могут ответить - буду рад. P.S. Также готов обсудить конкретные идеи как это реализовывать и для чего использовать (выше я изложил суть технической проблемы, не углубляясь в детали). У нас так же есть необходимость в дополнительных метаданных (по другим чем у Вас причинам). Мы решаем ее сами - пишем дополнительное описание того, что нужно в своих таблицах. Проект в разработке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.04.2005, 03:58 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
MainFrameУ нас так же есть необходимость в дополнительных метаданных (по другим чем у Вас причинам). Мы решаем ее сами - пишем дополнительное описание того, что нужно в своих таблицах. Проект в разработке. А можно поподробней? Почему возникла необходимость в дополнительных метаданных? Пишете сами? Выявляете их методом пристального взгляда или автоматически? Пишете конечный результат из головы или автоматизировано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2005, 00:23 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
> Стоит задача (неформальная постановка): по данным определить метаданные. В общем случае задача решения не имеет. > Цель - дальнейший анализ незнакомых данных с минимальным участием человека ;) А как Вы себе это представляете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2005, 01:13 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Alexander V. Yushchenko MainFrameУ нас так же есть необходимость в дополнительных метаданных (по другим чем у Вас причинам). Мы решаем ее сами - пишем дополнительное описание того, что нужно в своих таблицах. Проект в разработке. А можно поподробней? Почему возникла необходимость в дополнительных метаданных? Пишете сами? Выявляете их методом пристального взгляда или автоматически? Пишете конечный результат из головы или автоматизировано? 1. Задача возникла, так как очнеь (ну просто очень!) много данных в разных базах, связь между ними существует только в умах программистов и в логике программы. Что идеалогически некорректно. С помощью описания собираемся решать много задач нам необходимых, но так как пока не решили, то не буду на этом останавливаться. 2. Пишем сами. Возможно что-то где-то и есть, но наверняка нет того, что нам нужно, да и мы не встречали. 3. Автоматически выявить невозможно - во всяком случае у нас, поэтому описывает связи DBA. Тем более там есть такие тонкие настрйоки - как привзяка таблиц к проектам, к компонентам, которые с ними работают и т.п. 4. Проект в певрой трети реализации. Поэтому говорить подробно рано. Вот когда сделаем ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2005, 03:36 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
guest_20040621В общем случае задача решения не имеет. Полностью согласен. :) Строго говоря, можно говорить лишь об автоматизации части работы. Так сказать, построению каких-то гипотез, окончательно проверять которые нужно уже человеку-эксперту. Однако и это немало, если сие удастся реализовать. guest_20040621> Цель - дальнейший анализ незнакомых данных с минимальным участием человека ;) А как Вы себе это представляете? Предполагаемое применение - искать пересекающиеся области метаданных в двух (или более) базах. Одна из возможных целей - объединение нескольких баз в одну в случае, когда базы слабо поддаются ручному изучению (таблиц много, полей еще больше, названия неинформативны, связей на уровне метаданных СУБД нет), но тем не менее есть внешняя информация о том, что такие области пересечения существуют. Конечная цель - существенно сократить время решения подобной задачи относительно того времени, которое нужно потратить на ручное изучение. По конкретным методам... есть несколько интересных задумок. Но хочется удостовериться, что не изобретаю велосипед. Отсюда и исходный вопрос. MainFrameАвтоматически выявить невозможно - во всяком случае у нас, поэтому описывает связи DBA. То есть, как я понял, вы пишете скорее систему хранения и работы с метаданными разного рода, а ее заполнением занимаются люди и только люди? В любом случае удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2005, 21:50 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
> Строго говоря, можно говорить лишь об автоматизации части работы. Imho часть эта будет очень небольшой. В принципе, несколько видоизмененную задачу (скажем, если наложить некоторые ограничения на анализируемые базы данных) реализовать можно. Т. е. более или менее грамотно спроектированные базы данных анализировать получится. Но таких баз данных - очень немного. ;) Кроме того, для приемлемого решения Вам придется реализовывать, скажем так, не слишком распространенные задачи из класса лингвистических и классификационных. ;) Каково практическое применение Вашей задачи, если не секрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2005, 01:05 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Может, я не в тему скажу, или не понял чего, и все скажут: "вот ламер!" :-), но, если есть база данных, пусть и очень большая, почему не сделать в ней таблицу с описанием каждого поля каждой другой таблицы. И просто ее своевременно обновлять? Например, поля: Таблица, Поле, Тип данных, Описание. И все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 05:16 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Alexander V. YushchenkoНо вот строку название страны от строки цвета, например, они отличить уже не помогут, как и выделить случай записи числа текстовой строкой. Отсутствующих в метаданных, но реально имеющих место связей мы также не увидим. Все это можно сделать, вводя собственные типы данных. На каком уровне и какими средствами - вопрос СУБД и реализации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 09:31 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Если такой анализ нужно проводить над чужими БД - то искусственный интеллект поможет наверное, правда его все никак не разработают. Потому как чтобы отличить поле со страной от поля с цветом, нужно быть либо человеком, либо иместь список всех стран (ну это фигня) и всех цветов (это хуже). И так для всех возможных метатипов данных :) -- Tygra's -- Мои фотогалереи тут и тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 10:05 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Как идея. Автоматическим путем можно вычислить характеристики фактических доменов для каждого поля: тип, количество значений, макс/мин длина, макс/мин значение, 10 наиболее частых значений, Для тескстовых полей - тоже про слова, про символы, про классы символов. Можно задать типовые домены, например ТЕЛЕФ_НОМЕР = текст до 20 символов из символов 1..9, -, ( ,) НАИМЕНОВАНИЕ_ОРГАНИЗАЦИИ = текст где 10 наиболе частых слов ОАО, ООО, фирма, ... Потом анализировать домены на сходство между собой и типовыми доменами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 15:21 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Alexander V. YushchenkoЕсть метаданные самой СУБД, которые дают нам некоторую информацию о типах данных в полях (например, можно отличить число от строки) и связях. Но вот строку название страны от строки цвета, например, они отличить уже не помогут, как и выделить случай записи числа текстовой строкой. Отсутствующих в метаданных, но реально имеющих место связей мы также не увидим.Не очень понял для чего это делается, но слышал о том, что решали следующую задачу. Была база Аксапты - есть к ней доступ. Между таблицами нет ни одного FK. Требовалось восстановить структуру связей между таблицами. Изначально считалось, что все логические FK связываются только по одному полю. Как это делалось: Писалась процедура, которая сравнивала значения полей в основных таблицах со значениями полей в справочниках. После этого смотрелась частота попадания значений поля в значения справочника. После этого - делались выводы о логических связях между полями и справочниками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 17:11 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
BelyБыла база Аксапты - есть к ней доступ. Между таблицами нет ни одного FK. Требовалось восстановить структуру связей между таблицами.Очень похоже на задачу топикстартера ИМХО желательны знания хотя бы о предметной области данных, хранимых в базе(ах). Исходя из этого и использовать совет ModelR . Исключить человека практически невозможно, только если предметная область известна досконально и базу проектировал нормальный чел :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 18:11 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
atv_13Исключить человека практически невозможно, только если предметная область известна досконально и базу проектировал нормальный чел :)Тут еще немаловажную рольиграет размер базы. Если данных мало, то можно получить неоднозначность определения данных из словаря. А если данных хватает, что все значения из словаря хоть раз да появляются в колонках - то точность распознвания может быть и 100% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 18:18 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
Тип связи определяем на основе статистики совпадений значений полей одной таблицы в другой и наоборот. Количество полей - на основе сопадений этих совпадений Возможно и неизвестно, какие именно из таблиц справочники. По мере их определения использовать оные в первую очередь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 18:22 |
|
||
|
Автоматический анализ данных
|
|||
|---|---|---|---|
|
#18+
BelyТут еще немаловажную рольиграет размер базы.Полностью согласен. Сказанное Вами можно употребить и к определению связей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2007, 18:24 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=32992349&tid=1544528]: |
0ms |
get settings: |
4ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
160ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 426ms |

| 0 / 0 |
