Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритмы универсальной загрузки/выгрузки из БД 
:(
    Опции темы
Strucka
Дата 4.6.2008, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.5.2007

Репутация: нет
Всего: нет



Не знаю в какой раздел писать.
Собственно что дано:
Есть приложение, никак связанное с базой данных (связь только в целях получения/загрузки данных в оную). 
Есть ли какой-либо алгоритм или средства, которые бы позволили совершать выгрузку/загрузку в БД тех данных, которые выберет пользователь?
Т.е. универсальный механизм доступа не к строго определенным данным, а ко всем. + СУБД может быть любой. Т.Е. алгоритм универсальный что просто жуть как.

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

PM MAIL   Вверх
Akina
Дата 4.6.2008, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(Strucka @  4.6.2008,  17:47 Найти цитируемый пост)
Есть приложение, никак связанное с базой данных (связь только в целях получения/загрузки данных в оную). 

Так связанное или не связанное?
Цитата(Strucka @  4.6.2008,  17:47 Найти цитируемый пост)
универсальный механизм доступа не к строго определенным данным, а ко всем.

угу... получение админских прав...

В общем ни фига не понятно.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Strucka
Дата 4.6.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.5.2007

Репутация: нет
Всего: нет



ЧТоб было понятнее: в данный момент прога подрублена к 2м БД - служебной(SQLite) и основной(ORAcle10gExrpEd), из которой загружается инфа из 2х таблиц. 
Мне нужно реализовать механизм выгрузки из основной базы не только данных из 2х таблиц, а дать пользователю некий механизм, с помощью которого он бы мог как выгрузить нужные ему данные из различных таблиц так и корректно их загрузить (файл с выгрузкой некйи формируется, пересылается и на удаленной базе загружается , некая разновидность репликации). Так вот этот механизм нужно реализовать как было сказано выше для любой таблицы из осн базы данных, а еще лучше и для любой СУБД. 
Другими словами мне нужно написать универсальный коннектор, а через чего его писать odbs или dll ки или еще чего я хз. Подскажите.

Как я понимаю: 1) нужно подконнектиться к бд, но к разным СУБД подкл. по разному (версии драйверов и тд.). Как решить проблему?
2)Нужна структура данных (скорее всего что то вроде XML), которую можно приспособить под разную структуру выгрузки даных.
Главный вопрос здесь - как реализовать подобную структуру (т.е. сам процесс наполнения файла) для загрузки в том числе. 
3)Ну и в разных СУБД - различия в языке вопросов. Как решить проблему?
4)Интерфейс пользователя в этом случае какой сделать (т.е. можно ли из базы данных структуру выдрать, потом пользователь выберет нужные таблицы а дальше по связям в этих таблицах...)

Это сообщение отредактировал(а) Strucka - 4.6.2008, 19:11
PM MAIL   Вверх
Akina
Дата 4.6.2008, 22:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(Strucka @  4.6.2008,  20:06 Найти цитируемый пост)
нужно подконнектиться к бд, но к разным СУБД подкл. по разному (версии драйверов и тд.). Как решить проблему?

DSN

Цитата(Strucka @  4.6.2008,  20:06 Найти цитируемый пост)
Нужна структура данных (скорее всего что то вроде XML), которую можно приспособить под разную структуру выгрузки даных.

Универсально: Id записи, ID поля, Тип, Данные



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Strucka
Дата 4.6.2008, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.5.2007

Репутация: нет
Всего: нет



Цитата(Akina @  4.6.2008,  22:22 Найти цитируемый пост)
DSN

DSN? где почитать?

Цитата(Akina @  4.6.2008,  22:22 Найти цитируемый пост)
Универсально: Id записи, ID поля, Тип, Данные


Т.е. в том же XML хранить структуру таблицы? 
Более менее понятно. Другой момент - когда пользователь выбирает данные, с помощью чего ему можно организовать такой интерфейс (т.е передать инфу о сущ. табл.) Сейчас интерфейс на дельфях. Хотя если воспользоваться тем же принципом что и для  XML, можно подумать...
PM MAIL   Вверх
Akina
Дата 4.6.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(Strucka @  5.6.2008,  00:33 Найти цитируемый пост)
DSN? где почитать?

Для начала скажем тут.

Цитата(Strucka @  5.6.2008,  00:33 Найти цитируемый пост)
Т.е. в том же XML хранить структуру таблицы? 

Ну не обязательно XML... и не обязательно каждое поле каждой записи... можно использовать, скажем, CSV или пару файл-описАтель и файл-данные...

Цитата(Strucka @  5.6.2008,  00:33 Найти цитируемый пост)
с помощью чего ему можно организовать такой интерфейс (т.е передать инфу о сущ. табл.) 

А нахрена это юзеру?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Strucka
Дата 5.6.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.5.2007

Репутация: нет
Всего: нет



А нахрена это юзеру? 

Просто поставлена задача организовать реплкацию данных из БД, т.е подразумевается что любых.
PM MAIL   Вверх
Akina
Дата 5.6.2008, 09:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(Strucka @  5.6.2008,  09:56 Найти цитируемый пост)
поставлена задача организовать реплкацию данных из БД, т.е подразумевается что любых. 

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


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
RockClimber
Дата 5.6.2008, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 848
Регистрация: 5.5.2006
Где: планета 013 в тен туре

Репутация: нет
Всего: 15



Цитата(Strucka @  5.6.2008,  08:56 Найти цитируемый пост)
Просто поставлена задача организовать реплкацию данных из БД

Я конечно лезу не в свое дело, но кем, почему и зачем поставлена такая задача? Может, проще один раз загнать всё, например, в оракл и пользоваться только им? При грамотном пиаре такой идеи даже самое тугое начальство может согласиться...


--------------------
Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит.
PM MAIL GTalk   Вверх
LSD
Дата 5.6.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 24
Всего: 538



Проблема не только в том, как выгрузить данные, но и:
1. Правильный порядок закгрузки/выгрузки данных для зависимых таблиц.
2. Разрешение конфликтов.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Strucka
Дата 6.6.2008, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.5.2007

Репутация: нет
Всего: нет



Цитата(LSD @ 5.6.2008,  12:27)
Проблема не только в том, как выгрузить данные, но и:
1. Правильный порядок закгрузки/выгрузки данных для зависимых таблиц.
2. Разрешение конфликтов.

Да, именно такие проблемы могут возникнуть.

Пока остановился на таком версии: есть плагин , запуская который мы можем произвести из базы выгрузку или загрузку соответсвенно.

1)вызывается плагин, исходя из параметров происх коннект к такой то базе (пусть будет оракл)
2)исходя из тех данных что выбраны пользователем происходит формирование запроса 
здесь интереснее как формируется запрос ? Допустим польз выберет 3 - 4 таблицы и данные из них, как мы универсально сделаем запрос?
3)потом форимруем выходной XML
Ну и 4) если мы загружаем то из исходного XML  парсим в базу. Тогда тут тот же вопрос что и как формируется insert в базу?

PM MAIL   Вверх
Strucka
Дата 6.6.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.5.2007

Репутация: нет
Всего: нет



По-поводу универсальной схему - остановился на схеме выгрузки в XML от SQL Server. Помогите нарыть инфу по этому вопросу. Основы мне понятны, хотелось бы подробнее.
PM MAIL   Вверх
Magnifico
Дата 6.6.2008, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 418
Регистрация: 23.1.2008
Где: Московская област ь

Репутация: 1
Всего: 17





--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
Akella
Дата 10.6.2008, 00:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



Цитата(Strucka @ 6.6.2008,  00:03)
Цитата(LSD @ 5.6.2008,  12:27)
Проблема не только в том, как выгрузить данные, но и:
1. Правильный порядок закгрузки/выгрузки данных для зависимых таблиц.
2. Разрешение конфликтов.

Да, именно такие проблемы могут возникнуть.

Представь, что у тебя есть 2 таблицы, связанные ссылочной целостностью. Т.е. основная таблица и справочник, как правило.
Так вот, ты начинаешь импортировать данные в основную таблицу... пытаешься записать значение 12 в поле id_spavochnik основной таблицы, а такой записи (с ID =12) в справочнике нет. Что получаем? Правильно - исключение. Поэтому требуется сначала импортировать данные в справочник. А потом уже и в основную таблицу. Вот такой пример.  smile

Добавлено через 3 минуты и 24 секунды
Цитата(Akella @  10.6.2008,  00:15 Найти цитируемый пост)
а такой записи (с ID =12) в справочнике нет.

ну т.е. сервер проверит основываясь на ссылочной целостности, можно ли записать значение 12 в основную таблицу, т.е. в справочнике должно быть соответствие, понимаешь?

Это сообщение отредактировал(а) Akella - 10.6.2008, 00:17
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1396 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.