• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Как получить табл., на кот. ссылается данное поле.

  • Автор темы Oleg
  • Дата начала
Статус
Закрыто для дальнейших ответов.
O

Oleg

Здравствуйте! Подскажите пожалуйста, как мне через известный relation данной таблицы получить поле (child или parent) этой таблицы и наименование таблицы и поля, на которые найденное поле ссылается (языком SQL).

Если не понятно мое объяснение, ниже схемка:

Tab1 Tab(?)
|_ Col1 <-------relation---------> Col(?) _|

|_ Col2 Col(?) _|

Col(?) _|
Заранее благодарен!
 
O

Oleg

Извините, но схемка разъехалась во время создания темы.
 
P

Pete

Ниче не понятно.
1. Что такое "известный relation данной таблицы"?
Насколько я знаю таблица это и есть relation (instance):
The main construct for representing data in the relational model is a relation. A relation consists of a relation schema and a relation instance. The relation instance is a table... an instance of relation is a set of tuples, also called records.
Database Management Systems Second Edition. Raghu Ramakrishnan/Johannes Gehrke. McGraw-Hill p. 55

2. Что за поля child и parent?
3. Как поле может ссылаться на таблицу? Оно может только идентифицировать запись в другой таблице, если оно используется как Foreign Key.

Получить информацию о полях и таблицах можно либо зная структуру системных таблиц конкретной базы и написав соотв SQL, либо через какой либо программный интерфейс позволяющий получить метаданные. Кстати, например, mysql не хранит информацию о связи таблиц (схему БД).

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

????

Pete
Насколько я знаю таблица это и есть relation (instance):
:p
таблица - entity (сущность)
связь - relation (отношение)
а instance можно понимать по разному в разных контекстах.
Oleg
Что за СУБД? Скорее всего, данные о структуре базы (таблицы, связи...) будут храниться в системных таблицах и для просмотра тебе будет необходим грант на их выборку или права ДБА. Если ты и есть ДБА, то чего ты паришь?? ;) :)
 
P

Pete

Entity в том контексте который я знаю (EJB Entity Bean) это скорее запись в таблице или несколько записей в разных таблицах, которые связаны между собой и представляют один объект. Instance понимается вполне однозначно, как в ООП - объект это instance класса, так и таблица это instance отношения. Возможно мы учились по разным книжкам =)
 
G

Guest

????, спасибо за поддержку, а то я уже подумал, что действительно что-то написал непонятное. Поясняю вопрос: Я ДБА, но не могу найти в системных таблицах данные о Relation. Причем это надо узнать через SQL-запрос. Известен Relation, надо через него найти связующие таблицы и соответственно поля.
 
O

Oleg

Вроде как все должно строиться на SysForegnKey, но не понятно с какими системными таблицами его связывать (там только id). Может есть какие нибудь системные функции?
 
P

Pete

Глянул я в хелп, благо MS SQL у меня установлен

В таблице sysforeignkeys:
Для каждого FK
ID таблицы в которой этот ключ:
fkeyid int Object ID of the table with the FOREIGN KEY constraint.
ID таблицы на которую ссылается этот ключ (в которой он является PK)
rkeyid int Object ID of the table referenced in the FOREIGN KEY constraint.

Инфу о таблице можно найти в системной таблице sysobjects (но там не только таблицы, но и все объекты, надо отсеивать по полю type = U = User table) используя fkeyid и rkeyid

Инфу о входящих в FK referenced полях в таблице sysreferences

Более подробную информацию можно найти в разделе System Tables хелпа
В Index: system tables, retrieving information
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!