Форум: "Базы";
Текущий архив: 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.071 c