Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > построение отношений баз данных oracle


Автор: sergey_r 20.8.2007, 10:41
Доброго времени суток!
Уважаемые ПРОФИ, подскажите пожалуйста ответ на такой вопрос. 
Возможна ли практическая реализация построения отношений двух  разных баз данных в Oracle??
И как это можно реализовать???
Заранее Благодарю!

Автор: Sqlninja 20.8.2007, 10:46
а можно не книжными словами - что вы понимаете под отношением баз данных? связь через dblink?

Автор: DimW 20.8.2007, 10:50
Цитата(sergey_r @  20.8.2007,  10:41 Найти цитируемый пост)
Возможна ли практическая реализация построения отношений двух  разных баз данных в Oracle??


что вы понимаете под отношениями между БД?
если имеется ввиду репликация то да. Или нужно получить доступ из одной БД к объектам другой БД?

Автор: sergey_r 20.8.2007, 10:53
Цитата(Sqlninja @ 20.8.2007,  10:46)
а можно не книжными словами - что вы понимаете под отношением баз данных? связь через dblink?

Прошу прощения, конечно же.

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

Автор: Sqlninja 20.8.2007, 11:14
Обычно отношения определяются внешними ключами. Сами по себе внешние ключи не могут содержать ссылок на удаленные базы. Реализация ссылочной целостности между удаленными базами делаестя через репликацию. Однако все зависит от того какого типа отношение вы хотите построить. Если нужно по некому ключу просто выбирать данные из удаленной базы, это можно сделать через view со ссылкой (dblink) на удаленную БД, или зашивать условия с дблинками в сами запросы, но если нужно полноценное двустороннее отношение с синхронными, то без репликации имхо никак, хотя бы в дискретном режиме.

Автор: sergey_r 20.8.2007, 12:21
Цитата(DimW @ 20.8.2007,  10:50)
Цитата(sergey_r @  20.8.2007,  10:41 Найти цитируемый пост)
Возможна ли практическая реализация построения отношений двух  разных баз данных в Oracle??


что вы понимаете под отношениями между БД?
если имеется ввиду репликация то да. Или нужно получить доступ из одной БД к объектам другой БД?

поробую пояснить на примере, как получиться.
есть БД в которой существует две таблицы Т и К, с полями А, В.
построение отношений происходит по такой команде
select A.T, B.T, A.K, B.K
from T,K where A.T=A.K
Тогда у меня должна строиться таблица отношений (соответствия двух таблиц). (иллюстрация прикреплена, если я чего то неправильно написал).
В умных книгах рассказывается про построение отношений внутри обной БД, а вопрос состоит в том как такое же действо можно организовать для двух или нескольких БД?
Заранее благодарю, что пытаетесь меня понять и ответить. smile



Автор: DimW 20.8.2007, 13:20
Цитата(sergey_r @  20.8.2007,  12:21 Найти цитируемый пост)
есть БД в которой существует две таблицы Т и К, с полями А, В.
построение отношений происходит по такой команде
select A.T, B.T, A.K, B.K
from T,K where A.T=A.K

теперь ясно что вы имели ввиду.

если по простому:
таблица Т - это провода
таблица К - их характеристики

таблица Т и К находятся в разных БД, нужно получить их данные тем запросом который вы привели как пример.
для этого нужно настроить DBLink и поправить запрос:
Код

select T.A, T.B, K.A, K.B
from T, K@DBLink_Name K where T.A=K.A
 

в остальном Sqlninja, дал ответ. 

Автор: sergey_r 20.8.2007, 14:21
Спасибо огромное за ответы.
ЗАРАБОТАЛО и самое главное первый раз как надо smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)