powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Описание структуры БД в самой БД
25 сообщений из 31, страница 1 из 2
Описание структуры БД в самой БД
    #37336710
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Проблема в следующем. Хочу создать таблицы описывающие структуру прочих таблиц в этой базе данных, а самое главное взаимосвязи между таблицами. Т.е. Pkey и Fkey. Конечная цель. С помощью процедур автоматически формировать скрипты Select к любой таблице.
Таблицы описывающие структуру таблиц и полей я сделал. Скрипты выложу чуть позже. А вот описать взаимосвязи, тут проблема. Вернее проблема, как сделать автоматически скрипт учитывающий эти взаимосвязи.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336719
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceser,

Друг! Ты какой СУБД пользуешься? Обычно как правило практически всегда все это уже есть в БД.

И лучше не делай "автоматических селектов".
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336740
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблица описывающая таблицы:
tblFKI_Table (idTbl, fldName_lat, fldName_Rus, fld....)
Таблица описывающая поля таблиц:
tblFKI_Field (idFld,idTbl,fldName_lat,fldName_Rus, fldDataType,fldSize,fldPrizPKFK)
Таблица взаимосвязей:
tblFKI_PKFK(idTblPK,idFldPK,idTblF,idFldF)

НАдеюсь описывать каждое поле не надо. fldPrizPKFK- признак первичного или внешнего ключа, idTblPK- код таблицы содержащего первичный ключ, idFldF- код поля являющегося внешним ключом таблицы. и так далее.
Некоторые запросы:
Select idFld, fldName_lat from tblFKI-Field where idTbl= (select idtbl from tblFki_table where fldName_lat='ADM')

Select A.idTbl, B.fldName_lat, A.idFldP, C.fldName_lat, A.idTblF, D.fldName_lat, A.idFldf, E.fldName_lat
from tblFKI_PKFK
INNER JOIN tblFKI_Table as B ON A.idTblP= B.idTbl
INNER JOIN tblFKI_Field as C ON A.idfldP= C.idFld
INNER JOIN tblFKI_Table as D ON A.idTblF= D.idTbl
INNER JOIN tblFKI_Field as E ON A.idfldE= C.idFld
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336744
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Воронцов,

Microsoft SQL Server 2005. А хотелось бы именно автоматически с генерированные скрипты. Хотя можно конечно самому создать таблицу с этими скриптами, и просто администрировать их. Это проще. Но хочется автоматизации.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336768
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в итоге я хочу автоматически, на основе таблиц создать скрипт:
Select A.ADM_id, A.ADM_Name, A.Stan_id, B.Stan_Name, A.fld....
FROM ADM as A
INNER JOIN stan AS B ON A.Stan_id = B.Stan_id

Из моих таблиц выражение INNER JOIN stan AS B ON A.Stan_id = B.Stan_id вроде можно сделать, но ведь еще в фразу Select необходимо вставить нужное поле в нужное место. А это проблема, уже проблема. А если в одной таблице, более одной связи, то вообще ужас.
Дело в том что программа предоставляет доступ на чтение к таблицам базы данных. Это справочная база данных. Периодически появляются новые таблицы, новые взаимосвязи и прочее. А я не хочу администрировать эту базу, нет времени на это.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336773
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Воронцов,

Да забыл. Исходные данные хранятся в IBM db2 под os\2. Знаю там есть syscomments. Правда я их в глаза еще не видел, если подскажите как да что, то буду благодарен. Да и в СКЛ2005 есть подобное, но в этих метаданных я не спец, если будет что сказать, то скажите.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336783
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceser,

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

Скажите, зачем Вам генерация запросов? Какую задачу Вы решаете?
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336787
Фотография Павел Воронцов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceserПавел Воронцов,

Да забыл. Исходные данные хранятся в IBM db2 под os\2. Знаю там есть syscomments. Правда я их в глаза еще не видел, если подскажите как да что, то буду благодарен. Да и в СКЛ2005 есть подобное, но в этих метаданных я не спец, если будет что сказать, то скажите.Не понял. То есть Вы с DB2 работаете? Тогда Вам сюда http://www.devx.com/dbzone/Article/29585 например.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336864
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceser...и в СКЛ2005 есть подобное, но в этих метаданных я не спец, если будет что сказать, то скажите. Чего говорить-то?
Не спец, так почитайте , потом занимайтесь велосипедостроительством.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37336885
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceserПроблема в следующем. Хочу создать таблицы описывающие структуру прочих таблиц в этой базе данных, а самое главное взаимосвязи между таблицами. Т.е. Pkey и Fkey. Конечная цель. С помощью процедур автоматически формировать скрипты Select к любой таблице.
Таблицы описывающие структуру таблиц и полей я сделал. Скрипты выложу чуть позже.Так в БД уже есть таблицы, описывающие структуру прочих таблиц. Вам для чего то нужен второй экземпляр???
olceserА вот описать взаимосвязи, тут проблема. Вернее проблема, как сделать автоматически скрипт учитывающий эти взаимосвязиНу, просто нужно его написать, в соответствии со своими требованиями (непонятно, что имеется в виду под "учитывающий эти взаимосвязи"). Или найти готовый.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337000
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Воронцов,

Спасибо, а на русском есть? А то по аглицки всегда часть смысла улетает у меня. Задача такая. Есть большая справочная БД на IBM DB2. В ней очень много таблиц, которые описывают ту или иную НСИ. Все эти таблицы между собой связаны, ну или большинство из них. Необходимо сделать программу которая может загрузить таблицу пользователю. Ну допустим список имеющихся таблиц я ему предоставляю без проблем (все таблицы что есть в базе). Но имя то на английском и укороченное. Например пользователь видит что есть таблица ADM- а что это за таблица? какие данные в ней хранятся. Ну ладно. Он сделал загрузку данных, вернее просто нажал кнопку run, я ему предоставил данные с именами полей (Select * from ADM). И что он видит: ADM_id, kod, ADM_name......, cor_tip и прочее. И этот простой пользователь меня спрашивает. И ЧЕ ЭТО ЗА ХР....ЕНЬ? При этом, вместо наименования допустим станций , я предоставляю коды станций (ну вернее моя программа предоставляет). Конечно для каждой таблицы я могу сделать в ручную запрос, где подвяжу и имена станций, и другие таблицы и введу русские название полей и прочее. Но это в ручную. При этом таблиц становиться больше, структура их меняется и прочее. Т.е. это головняк. А хочется как. Пользователь включил программу, нажал Коннект, вышел список таблиц на русском языке. Он выбрал таблицу, нажал run, вышла таблица с русскими полями, с наименованиями станций вместо или с кодами. Все. Вся задача. Так вот. Я и хочу автоматизировать создание запроса на выборку. Пока не буду про русский язык. Просто хотя бы наименования станций подвязать.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337029
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
olceser,

далее.
Администраторы iBM DB2 не хотят давать доступ пользователям к своим базам данных, только мне одному. Поэтому я намерен использовать промежуточную базу MS SQL2005. Просто она мне больше нравиться, легче в ней работать, да и знаю я ее по лучше. Поэтому я могу использовать как функционал ДБ2, так и СКЛ2005. Поэтому и спросил про метаданные в ДБ2? Повторюсь. можно сделать таблицу с заранее подготовленными запросами. А там уже программа будет ее подключать для формирования запросов к таблицам. Это просто , но трудоемко. Я хочу сделать процедуру, которая по имени таблицы , делала бы запрос к ней с учетом всех Внешних и первичных ключей. Просто нет у меня времени администрировать эту базу и желания нет. Пусть БД сама контролирует свое содержимое , а программа сама берет таблицы и их связи.
Конечно ваши статья я по читаю. Но по русски нет? По англ понимаю, но плохо. Особенно по ДБ2.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337037
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baracs,

Спасибо. Проштудирую, а про ДБ2 по русски нет?
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337043
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg,

1. конкретно какие таблицы, статью ?
2. то то и оно что не хочу каждый раз при изменении структуры БД в ручную что то писать. за этим надо следить, за изменениями, а я не имею на это время и желанья. ХОчу чтобы база сама все делала.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337046
olceserЗадача такая. Есть большая справочная БД на IBM DB2. В ней очень много таблиц, которые описывают ту или иную НСИ. Все эти таблицы между собой связаны, ну или большинство из них. Необходимо сделать программу которая может загрузить таблицу пользователю. Ну допустим список имеющихся таблиц я ему предоставляю без проблем (все таблицы что есть в базе). Но имя то на английском и укороченное. Например пользователь видит что есть таблица ADM- а что это за таблица? какие данные в ней хранятся. Ну ладно. Он сделал загрузку данных, вернее просто нажал кнопку run, я ему предоставил данные с именами полей (Select * from ADM). И что он видит: ADM_id, kod, ADM_name......, cor_tip и прочее. И этот простой пользователь меня спрашивает. И ЧЕ ЭТО ЗА ХР....ЕНЬ? При этом, вместо наименования допустим станций , я предоставляю коды станций (ну вернее моя программа предоставляет). Конечно для каждой таблицы я могу сделать в ручную запрос, где подвяжу и имена станций, и другие таблицы и введу русские название полей и прочее. Но это в ручную. При этом таблиц становиться больше, структура их меняется и прочее. Т.е. это головняк. А хочется как. Пользователь включил программу, нажал Коннект, вышел список таблиц на русском языке. Он выбрал таблицу, нажал run, вышла таблица с русскими полями, с наименованиями станций вместо или с кодами. Все. Вся задача. Так вот. Я и хочу автоматизировать создание запроса на выборку. Пока не буду про русский язык. Просто хотя бы наименования станций подвязать.
Прочитай про Busines Objects и др. подобные средства
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337114
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
--------------------------------,

Друг, а где почитать и по русски желательно? Да может кратко расскажешь что это?
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337142
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceserbaracs,

...а про ДБ2 по русски нет? Я не в курсе.

Вообще, жутковато ваша постановка задачи выглядит.
Давать пользователям, не знающим структуры базы, лазить по всем таблицам... Да еще, динамическими запросами...
Сколько таких пользователей будет?
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337388
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceseralexeyvg,

1. конкретно какие таблицы, статью ?
2. то то и оно что не хочу каждый раз при изменении структуры БД в ручную что то писать. за этим надо следить, за изменениями, а я не имею на это время и желанья. ХОчу чтобы база сама все делала.
Представления информационной схемы
Представления каталога
Представления каталога объектов
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37337963
dymka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
olceser, вам намекают, что вся та информация, которую вы ищете уже находится в БД. Т.е. и список таблиц, список полей, ключи, связи - уже есть в базе данных. И они автоматически поддерживаются системой.
Как правило, это системные таблицы (для каждой СУБД свои заморочки), либо представления.

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

Ну насчет автоматической связи таблиц - тут все же что-то не так. Ну можно ограничиться одним уровнем вложенности, а в противном случае есть шанс забрать на клиента всю БД одной таблицей).

Есть же еще представления (view) для таких задач. Многие БД понимают русские наименования полей, если уж на клиенте не хочется городить огород.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37338094
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baracs,

1. ну пользователей не известно сколько точно. Это база, так сказать, с перспективой. Поэтому пользователей от десятка, до тысячи может быть.
2. это же просто select. причем из программки клиента, и не более того. Пользователям ничего редактировать нельзя будет.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37338138
olceser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dymka,

Про то что в СУБД есть таблицы метаданных я уже давно знаю, правда практически с этим не работал. Но придется поднять ссылки которые мне здесь выкладывают, да литературу, если что. Просто я ищу свой путь :-), ну как суверенная демократия. Хотелось бы все контролировать. Да и при том, что там с русскими названиями? В метаданных они есть? И таблиц, и полей. Да еще, такая особенность. Сам база на ДБ2, а для доступа клиентов буду использовать МССКЛ2005, т.е. метаданные ДБ2 надо будет перенести в МС. Так что проще, может быть, в МС сделать служебные таблицы подобного типа? Может и нет. В общем, пока я все больше склоняюсь к средствам СУБД, но и решить мою задачку, тоже интересно.
Да, забыл. ХОрошо. Описание таблиц я возьму из метаданных СУБД. Все, они у меня есть. А как с помощью них сделать динамический запрос (ну без моего прямого участия). Ну например раз в сутки процедурно сформировать такую таблицу:
tblSQLANSI (idTable, fldName_tbl, fldSQLquery)
Ну потом из программы читаю поле fldSQLquery и делаю запрос к ДБ2. Вроде не плохо. Можно такую таблицу конечно в ручную сделать. И потом контролировать изменения в БД, и все время изменять таблицу tblSQLANSI. Но не хочу я администрировать базу. Не хочу. У меня просто нет времени. Сейчас у меня есть программа, которая просто выводит список имен таблиц, пользователь выбирает нужную, нажимает run, и она у его ног. Но это просто тупой select * from (хотя у пользователя есть возможность делать where) но это слишком не красиво.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37338142
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceserДа и при том, что там с русскими названиями? В метаданных они есть? И таблиц, и полей.Да, есть в сиквеле свойства для таких описаний.
olceserметаданные ДБ2 надо будет перенести в МСВОт насчёт ДБ2 не знаю, спрашивайте в соотв. форуме.
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37338397
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37338852
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olceserbaracs,

1. ну пользователей не известно сколько точно. Это база, так сказать, с перспективой. Поэтому пользователей от десятка, до тысячи может быть.
2. это же просто select. причем из программки клиента, и не более того. Пользователям ничего редактировать нельзя будет. 10 пользователей, может, и смогут так работать...

А несколько сотен уже будут орать не "ЧЕ ЭТО ЗА ХР....ЕНЬ?", а "Че, б...ть, все висит?!".

А вы и знать не будете что делать с этими селектами, даже если выловите профайлером самые тормозные...
...
Рейтинг: 0 / 0
Описание структуры БД в самой БД
    #37338980
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracs,

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


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