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

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

И лучше не делай "автоматических селектов".
...
Рейтинг: 0 / 0
05.07.2011, 10:38
    #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
05.07.2011, 10:40
    #37336744
olceser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Описание структуры БД в самой БД
Павел Воронцов,

Microsoft SQL Server 2005. А хотелось бы именно автоматически с генерированные скрипты. Хотя можно конечно самому создать таблицу с этими скриптами, и просто администрировать их. Это проще. Но хочется автоматизации.
...
Рейтинг: 0 / 0
05.07.2011, 10:53
    #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
05.07.2011, 10:57
    #37336773
olceser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Описание структуры БД в самой БД
Павел Воронцов,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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