Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Создать полноценную БД из 1-ой таблицы / 25 сообщений из 26, страница 1 из 2
07.09.2016, 13:01
    #39305124
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
В БД есть 1 таблица с данными в столбцах:
1. номер + дата
2. наименование организации + форма
3. полный адрес + индекс
4. виды деятельности
5. банковские реквизиты
и т.д.

Стоит задача сделать из этой таблицы нормальную БД.
Как бы попроще вытащить данные, корректно подробить их и рассовать по структуре связанных таблиц в БД?

ПС. вопрос не по созданию структуры БД, а по процедуре распределения данных из 1-ой таблицы в другие. Делать руками - просто не реально долго.
...
Рейтинг: 0 / 0
07.09.2016, 13:05
    #39305136
Cane Cat Fisher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AIS,

номер + дата - номер чего? и дата чего?

Это просто перечень организаций? Или одна организация может встречаться много раз, с разными "и т.д." ?

Для каких целей, запросов предполагается использовать эту информацию?

Вполне может получиться так, что правильным ответом будет "оставить как есть".
...
Рейтинг: 0 / 0
07.09.2016, 13:09
    #39305143
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AISКак бы попроще вытащить данные, корректно подробить их и рассовать по структуре связанных
таблиц в БД?

alter table на добавить нужные столбцы;
insert select на рассовать;
merge на заменить денормализованные данные ссылками;
alter table на удалить ненужные столбцы и создать FK.

В чём проблема-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.09.2016, 13:09
    #39305145
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
Виды деятельности вынести в отдельный справочник.
Банковские реквизиты тоже в отд.таблицу (один-ко-многим). Их может быть несколько, в т.ч. неактуальных.
Адресов тоже может быть несколько в т.ч. неактуальных.

Сделать пустые таблицы и перелить в них запросами. В справочниках появятся ключи. Потом по связке наименований сделать правильные ссылки.


зы: наймите специалиста (с) :)
...
Рейтинг: 0 / 0
07.09.2016, 13:36
    #39305179
baracs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AIS вопрос не по созданию структуры БД, а по процедуре распределения данных из 1-ой таблицы в другие. Делать руками - просто не реально долго. Наверное это в топик по вашей СУБД.
...
Рейтинг: 0 / 0
07.09.2016, 17:01
    #39305362
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
Ещё раз повторю.
Вопрос не о создании структуры БД и т.п., а о том как вывести соответствующим образом данные из 1-ой таблицы в другие.

Например, столбец "банковские реквизиты". Данные в нем идут как перечесление реквизитов (р/счет, наименование банка, мфо, валюта, тип р/счета и др.) через запятую, а иногда добавлен и перевод строки (если строка была длинной).

Как мне значение в этом столбце, которое имеет кучу инфы, разделить и перенести в соответствующие одноименные столбцы новой созданной таблицы под названием допустим "банковские реквизиты"?

ПС. 1-ая таблица была создана в ворде и велась многие годы разными людьми. Теперь задача сделать из неё БД.
...
Рейтинг: 0 / 0
07.09.2016, 17:09
    #39305367
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
baracsНаверное это в топик по вашей СУБД.
А пока о СУБД и не думали. Подумал, что надо сначала оттолкнуться от теории и практики решения такой задачи.
Если решений нормальных нет и все-таки надо будет, что-то переносить "руками", то браться не буду. Пусть и далее, как и ранее много лет, вводят в таблицу в ворде и там же ищут, что им нужно. :)
...
Рейтинг: 0 / 0
07.09.2016, 17:13
    #39305373
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AISКак мне значение в этом столбце, которое имеет кучу инфы, разделить и перенести в
соответствующие одноименные столбцы новой созданной таблицы под названием допустим
"банковские реквизиты"?
Никак. Банковские реквизиты это единый и неделимый атрибут организации. Выносить его в
отдельную таблицу не имеет смысла.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.09.2016, 17:44
    #39305402
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AIS,

Ваша задача является примером ETL. Волшебной кнопки "сделать все зашибись" - нет,
придется возиться с каждым полем, и часть значений, возможно, вносить руками.
Со справочниками - получить список уникальных значений соответствующего поля, найти среди них логические дубликаты, построить таблицу соответствий "такое-то значение меняется на такое то", создать справочник, прописать в таблицу ссылки на строки справочника вместо текстовых полей.
Для разделения значений через запятую - регулярные выражения, внешние функции на процедурных языках, etc.
...
Рейтинг: 0 / 0
07.09.2016, 17:45
    #39305403
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
Dimitry SibiryakovНикак. Банковские реквизиты это единый и неделимый атрибут организации. Выносить его в
отдельную таблицу не имеет смысла.Напротив, имеет. У одной организации может быть несколько счетов в разных банках. Соответственно, возникает несколько комплектов из наименования банка, БИК-а, номера счета и номера коррсчета.
...
Рейтинг: 0 / 0
07.09.2016, 17:46
    #39305405
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AISПусть и далее, как и ранее много лет, вводят в таблицу в ворде и там же ищут, что им нужно. :)А почему бы не в Excel-е?
Вполне себе решение для наколенной автоматизации.
...
Рейтинг: 0 / 0
07.09.2016, 17:49
    #39305407
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
miksoftУ одной организации может быть несколько счетов в разных банках.

Да, эти грабли я проходил ещё в прошлом веке и тогда я тоже делал отдельную табличку
банковских реквизитов. В конечном итоге всё таки свелось к "мы работаем с этой
организацией только через этот счёт, остальные убрать".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
07.09.2016, 20:03
    #39305480
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
miksoftAISПусть и далее, как и ранее много лет, вводят в таблицу в ворде и там же ищут, что им нужно. :)А почему бы не в Excel-е?
Вполне себе решение для наколенной автоматизации.
Откровенно говоря, я таблицу ворд перевел в ексель таблицу, а потом залил её в БД, но от этого легче не стало.
Стоит задача не только создать БД, но и (что интересней в перспективе и экономически привлекательно) систему управления ею.

Dimitry SibiryakovmiksoftУ одной организации может быть несколько счетов в разных банках.

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

Да, речь не об одной организации, у которой несколько счетов, при чем несколько в одной валюте, но один, основной, т.е. с которым в основном работают, а речь идет, что организаций много и счетов у каждой может быть не один, поэтому планировал, что должна быть отдельная таблица + таблица на банк (ключ МФО), но речь не об этом. Не хочется делать что-либо руками, т.е. переносить в ручную, т.к. записей в этой таблице за годы накопилось более 10 тыс.

Тут либо автоматом сделать, либо ни как. Есть вариант, конечно, промежуточный "а бы как", а далее пусть "вычитывают", редактируют", но это только себе в ущерб.

Кот МатроскинAIS,

Ваша задача является примером ETL. Волшебной кнопки "сделать все зашибись" - нет,
придется возиться с каждым полем, и часть значений, возможно, вносить руками.
Со справочниками - получить список уникальных значений соответствующего поля, найти среди них логические дубликаты, построить таблицу соответствий "такое-то значение меняется на такое то", создать справочник, прописать в таблицу ссылки на строки справочника вместо текстовых полей.
Для разделения значений через запятую - регулярные выражения, внешние функции на процедурных языках, etc.

Ваш комментарий вселяет надежду :)
Создание справочников, удаление дубликатов и т.п. - не проблема. С регулярными выражениями тоже знаком. Но как их применить, чтобы все автоматизировать, для меня загадка. Может есть какая ссылка на пример или мануал?
...
Рейтинг: 0 / 0
07.09.2016, 20:15
    #39305484
Кот Матроскин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AIS Но как их применить, чтобы все автоматизировать, для меня загадка.

Автоматизировать что именно? В идеале у Вас должна получиться последовательность скриптов, на входе которых "грязная" таблица, на выходе - несколько "чистых". Если Вам в целом понятно, как написать скрипт каждого конкретного шага - что вызывает непонимание?
...
Рейтинг: 0 / 0
07.09.2016, 20:46
    #39305493
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
Кот МатроскинAIS Но как их применить, чтобы все автоматизировать, для меня загадка.

Автоматизировать что именно? В идеале у Вас должна получиться последовательность скриптов, на входе которых "грязная" таблица, на выходе - несколько "чистых". Если Вам в целом понятно, как написать скрипт каждого конкретного шага - что вызывает непонимание?
Отличная формулировка моей задачи, это и надо.
Но если - да в "целом понятно", то с реализацией - нет, т.е. со скриптами (вкл.рег.выражения) ничего не понятно.
Все, что сейчас приходит на ум - это состряпать какую-то систему упраления этой БД и программно подробить эти данные и рассовать по новым таблицам. Но как мне кажется, Вы о другом говорите...
...
Рейтинг: 0 / 0
07.09.2016, 21:00
    #39305497
Egoр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AIS,

Самый правильный ответ вам уже дали. См. 19637202 .
Наймите специалиста. Он вам и базу выберет и все реквизиты по полочкам разложит (если это, конечно, в принципе возможно).
Иначе потом замучаетесь хелп на форуме искать.
...
Рейтинг: 0 / 0
07.09.2016, 21:38
    #39305512
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
EgoрAIS,

Самый правильный ответ вам уже дали. См. 19637202 .
Наймите специалиста. Он вам и базу выберет и все реквизиты по полочкам разложит (если это, конечно, в принципе возможно).
Иначе потом замучаетесь хелп на форуме искать.
1. такой совет уже был и он меня не устроил.
2. такой путь - это перспектива вечно копаться в чужих скриптах, врагу не пожелаешь ;)

Если у Вас есть опыт решения таких задач, поделитесь "устройством вашего велосипеда", не исключаю возможности перебросить на Вас как "специалиста" этот заказ.
...
Рейтинг: 0 / 0
07.09.2016, 21:40
    #39305516
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AISСтоит задача не только создать БД, но и (что интересней в перспективе и экономически привлекательно) систему управления ею.А может лучше взять готовую CRM-систему?
Создавать с нуля самому, конечно, интересней, но экономически привлекательно только на начальном этапе, пока система совсем простая.

Если все же идти "самопальным" путем и в случае СУБД Оракл, то я бы сделал так:
1) Выгрузил данные в csv-файл с четкой разбивкой по полям (именно в тут мне видится наибольшая сложность не видя исходных данных).
2) Подключил его как внешнюю таблицу или просто залил бы в таблицу с аналогичной структурой
3) Создал нужные таблицы под все сущности, которые нужны - организация, банковские реквизиты, адреса, виды деятельности и т.п.
4) Запросом вида INSERT ALL ... SELECT ... разлил данные по таблицам.
Собственно, мне когда-то доводилось разбирать ненормализованные данные таким образом.
Если это не Оракл и команды INSERT ALL нет, то заменить комбинацией других команд.
...
Рейтинг: 0 / 0
07.09.2016, 21:41
    #39305517
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AIS2. такой путь - это перспектива вечно копаться в чужих скриптах, врагу не пожелаешь ;)Зачем вечно-то? Задача по переносу данных, как я понял, единоразовая.
...
Рейтинг: 0 / 0
07.09.2016, 21:52
    #39305527
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
miksoftAISСтоит задача не только создать БД, но и (что интересней в перспективе и экономически привлекательно) систему управления ею.А может лучше взять готовую CRM-систему?
Создавать с нуля самому, конечно, интересней, но экономически привлекательно только на начальном этапе, пока система совсем простая.

Если все же идти "самопальным" путем и в случае СУБД Оракл, то я бы сделал так:
1) Выгрузил данные в csv-файл с четкой разбивкой по полям (именно в тут мне видится наибольшая сложность не видя исходных данных).
2) Подключил его как внешнюю таблицу или просто залил бы в таблицу с аналогичной структурой
3) Создал нужные таблицы под все сущности, которые нужны - организация, банковские реквизиты, адреса, виды деятельности и т.п.
4) Запросом вида INSERT ALL ... SELECT ... разлил данные по таблицам.
Собственно, мне когда-то доводилось разбирать ненормализованные данные таким образом.
Если это не Оракл и команды INSERT ALL нет, то заменить комбинацией других команд.
Да, все так и обстоит. Первые 3 пункта уже решены. Не знаю как сделать п.4 - поделить данные, чтобы потом их залить по таблицам.
...
Рейтинг: 0 / 0
07.09.2016, 22:08
    #39305530
AIS
AIS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
miksoftAIS2. такой путь - это перспектива вечно копаться в чужих скриптах, врагу не пожелаешь ;)Зачем вечно-то? Задача по переносу данных, как я понял, единоразовая.
Перенос данных - конечно разовая, но есть перспектива долговременного сотрудничества по обслуживанию и созданию ситем управления и их поддержке.
Пока задачу, которуя я озвучил толком никто ещё не решил, т.к. , как я понимаю, "руками" никто делать не хочет, а автоматизации переноса того, что наваяли за годы, пока увы не поддается.

ПС. кстати, вордовский файл был один ХХХ метров, и в нем не общая таблица, а на каждый отчетный период дополнительная. Вот такой бред, который вылился в многолетнюю традицию. Но этот этап уже пройден - общая таблица с "грязными" данными уже в БД. А что делать дальше - задаю здесь вопросы. :)
...
Рейтинг: 0 / 0
07.09.2016, 22:47
    #39305542
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
AISобщая таблица с "грязными" данными уже в БД.Целевые таблицы созданы?
Показывайте пример исходных данных, DDL исходной и целевых таблиц, название СУБД.
...
Рейтинг: 0 / 0
07.09.2016, 23:07
    #39305545
OldL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
как перенести... долго и нудно. разбираясь с каждым столбцом - все ли одинаково заведено. эксель или аксесс для начала в помощь, потом уже в базу откуда-то заливать. что-то в любом случае и ручками придется добивать. или потом в базе или по ходу дела в экселе.
Для примера. допустим, где-то в строках данных видите ООО Рога и Копыта, где-то ООО РОГА и КОПЫТА. где-то просто РОГА И копыта.
ну и как понять, что это одно и то же?
Частично - можно удалить ООО, ЗАО, ИП, ЧП (выделить в отдельный столбец) ... - эксель 10 тыс строк вполне потянет, есть функция поиска и замены. Потом допустим удалить незначащие пробелы впереди и позади. Потом перевести все в верхний регистр - тогда будет ясно, что РОГА И КОПЫТА все равны. потом уже сравнивать. Хотя это чисто для примера, конечно фирмы лучше смотреть по совпадению ИНН, а не названий.
И такая песня с каждым столбцом... с банк реквизитами - если где-то нет Р\С или где-то нет БИК - смотреть лично глазами, забыли этот реквизит или забыли просто слово, обрабатывать вручную... и т.д. и т.п.
То есть уникального рецепта никто не даст, чуда не случится, одной кнопкой "загрузить все!" без предварительной обработки входных данных обойтись не получится.
...
Рейтинг: 0 / 0
08.09.2016, 06:28
    #39305595
982183
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
Стандартная задача реорганизации данный.
Что ручками, что скриптами.
Специалистов по этой теме полно.
Всё зависит от объема данных и качества первичной информации.
...
Рейтинг: 0 / 0
08.09.2016, 10:08
    #39305648
LSV
LSV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создать полноценную БД из 1-ой таблицы
Dimitry SibiryakovmiksoftУ одной организации может быть несколько счетов в разных банках.

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


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