Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

Отношения между таблицами БД   Найти похожие ветки 

 
Unknown_user   (2010-08-04 16:39) [0]

Есть у БД с набором таблиц. Можно ли хранить описание отношений между таблицами в этой же БД в виде метаданных? Есть ли какие-то стандарты для описания и хранения отношений?

Традиционный подход предполагает, что все отношения задаются на стороне клиента, там реализуется бизнес-логика работы с базой. Мне же нужно, чтобы клиент сначала получал информацию о структуре БД, а потом уже с ней работал.


 
Sergey13 ©   (2010-08-04 16:44) [1]

> [0] Unknown_user   (04.08.10 16:39)
> Традиционный подход предполагает, что все отношения задаются
> на стороне клиента, там реализуется бизнес-логика работы
> с базой.

Откуда дровишки? Чьи традиции чтите?


 
Игорь Шевченко ©   (2010-08-04 17:39) [2]

в нормальных СУБД метаданные так или иначе хранятся и к ним есть доступ, в том числе, у клиента


 
Unknown_user   (2010-08-04 17:46) [3]

>Откуда дровишки? Чьи традиции чтите?

Ну те же DBase и Paradox хранить информацию о связях между таблицами не умеют. Строго говоря я даже не знаю, кто это умеет делать вообще. Вроде как есть такое в метаданных баз Oracle, но не уверен.

Или я глубоко ошибаюсь?


 
Unknown_user   (2010-08-04 17:50) [4]

>в нормальных СУБД метаданные так или иначе хранятся и к ним есть доступ, в том числе, у клиента

можно пример из какой-то популярной БД. Например, postgres. меня интересует информация именно об отношениях между таблицами. Например, описание связи внешнего ключа FID таблицы А, c полем ID таблицы B.


 
Sergey13 ©   (2010-08-04 17:51) [5]

> [3] Unknown_user   (04.08.10 17:46)
> Ну те же DBase и Paradox хранить информацию о связях между таблицами не умеют.

А телефон Белла не умел СМС-ки слать.

> Строго говоря я даже не знаю, кто это умеет делать вообще.
Это твои трудности.

> Вроде как есть такое в метаданных баз Oracle, но не уверен.
Будь уверен. И не только Оракл.

> Или я глубоко ошибаюсь?
Никаких или. 8-)

Ты бы описал проблему и/или задачу сразу. А то перечень твоих заблуждений только отвлевает от их решения. 8-)


 
Unknown_user   (2010-08-04 18:13) [6]

ну чем непонятна задача? я хочу хранить информацию о связях между таблицами в той же БД, что содержит таблицы. Ткните носом, где это в postgres, mysql, sqlite? Очевидно, это должно быть расширение языка SQL для доступа к метаданным?


 
Плохиш ©   (2010-08-04 18:15) [7]


> Ткните носом, где это в postgres, mysql, sqlite?

Ткнись в описания всего перечисленного, для первых двух даже книг для недоначинающих вагон и огромная телега...


 
Игорь Шевченко ©   (2010-08-04 18:20) [8]


> Ну те же DBase и Paradox хранить информацию о связях между
> таблицами не умеют


строго говоря это и не СУБД


 
Unknown_user   (2010-08-04 18:59) [9]

http://msdn.microsoft.com/en-us/library/ms171967.aspx

Вот что нашел для MS SQL. Для остальных перечисленных БД, что-то не получается найти необходимую инфу.


 
Игорь Шевченко ©   (2010-08-04 19:13) [10]


> Для остальных перечисленных БД, что-то не получается найти
> необходимую инфу.


надо еще поискать


 
Unknown_user   (2010-08-04 19:28) [11]

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


 
sniknik ©   (2010-08-04 19:45) [12]

> Вот что нашел для MS SQL.
а должен бы искать вот это
http://msdn.microsoft.com/en-us/library/ms186778.aspx
и изучить то что есть, а не изобретать свой велосипед не научившись инструмент в руках держать.

> Для остальных перечисленных БД, что-то не получается найти необходимую инфу.
"необходимость" требует пересмотра.


 
sniknik ©   (2010-08-04 19:50) [13]

> То есть никто с таким не сталкивался?
смысл в велосипедах отпадает как только более менее разберешься с инструментом. ну и научишься решать задачи, а не подменять задачу одним методом "решая" его.


 
Anatoly Podgoretsky ©   (2010-08-04 19:53) [14]

> Unknown_user  (04.08.2010 17:46:03)  [3]

Ну так ты сразу и говори, что мне надо для Парадокса, а то все вокруг да
около


 
Unknown_user   (2010-08-05 10:03) [15]

>и изучить то что есть, а не изобретать свой велосипед не научившись инструмент в руках держать.

Как обычно нравоучения и никакой конкретики :) Я падаю вам в колени, великие гуру, но ответьте же на вопрос. Если же не знаете, скажите честно - не занимались такой фигней.

Задача в самом деле нестандартная, мне нужно создать свой формат хранения, который хотя-бы частично сам себя описывает (так, например, реализован формат HDF5).

http://msdn.microsoft.com/en-us/library/ms186778.aspx

Это доступ к метаданным. Можно получить список таблиц заданной БД, список имен полей каждой таблицы, типы данных, ограничения, привилегии и много еще чего... Все кроме связей между таблицами. А почему так? Да, потому что их обычно задают на стороне клиента а не СУБД. Хотя MS SQL позволяет задавать и на стороне сервера, но похоже получить доступ к этим связям можно только так

http://msdn.microsoft.com/en-us/library/ms171967.aspx

Postgres, Sqlite похоже такой возможности не имеют.

Если я не прав, прошу все таки ткнуть носом а не давать общие ссылки.


 
Sergey13 ©   (2010-08-05 10:36) [16]

> [15] Unknown_user   (05.08.10 10:03)
> Задача в самом деле нестандартная, мне нужно создать свой формат хранения

Это не задача, а метод решения (вернее это ты думаешь, что это метод, хотя это еще далеко не факт) какой то прикладной шняги про которую ты ничего не говоришь. Сам по себе твой формат никому не нужен.

В оракле (для примера) есть много системных вьюх, читая которые можно получить представление о схеме данных. Имена вьюх - типа ALL_CONSTRAINTS или USER_TABLES


 
Anatoly Podgoretsky ©   (2010-08-05 11:13) [17]


> Все кроме связей между таблицами

Ты просто не умеешь их готовить, смотри REFERENTIAL_CONSTRAINTS
На основание INFORMATION_SCHEMA в MS SQL строится диаграма, INFORMATION_SCHEMA содержит полную информацию о схеме.


 
gnom   (2010-08-05 11:40) [18]

>Unknown_user
Интересно Вы рассуждаете
>Все кроме связей между таблицами. А почему так? Да, потому что их обычно задают на стороне клиента а не СУБД
Т.е. разные задачи могут строить отношения между таблицами как хотят????
Полный бред.
А диаграммы как строятся в различных инструментах - PowerDesigner, ERwin и прочее??? На основе чего по Вашему?

Читайте матчасть.
http://www.postgresql.org/docs/7.4/static/information-schema.html
http://www.sqlite.org/cvstrac/wiki?p=InformationSchema


 
MsGuns ©   (2010-08-07 13:38) [19]

Ключевое слово для поиска "Бизнес-логика сервера"
Хотя у локальных СУБД, к коим относятся и дибэйс, и парадокс, это действительно не относится

А вообще неплохо бы описать проблему, а не способ ее решения.


 
Unknown_user   (2010-08-10 13:19) [20]

Всем спасибо. Буду разбираться. К концу топика разговор стал гораздо конструктивнее :)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.065 c
15-1344601216
Павел
2012-08-10 16:20
2013.03.22
установка


2-1341051183
guest
2012-06-30 14:13
2013.03.22
как работает FileMon?


11-1243251080
Jon
2009-05-25 15:31
2013.03.22
KOL TabControl Error


15-1351768641
brother
2012-11-01 15:17
2013.03.22
Анимация в Excel часть 2


15-1353242533
Jimmy
2012-11-18 16:42
2013.03.22
Проблемы с оперативкой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский