Почему в названии таблицы HANA есть "/"? - PullRequest
0 голосов
/ 11 марта 2020

Есть несколько вещей, к которым мне нужно было привыкнуть при использовании HANA SQL.
Как и все прописные буквы, но я действительно не понимаю, почему "/" необходим.
Из-за "/" я должен заключить имя таблицы в "..." (двойные кавычки).

"_SYS_BIC"."NGDW.SM.PVT/MY_TABLE_NAME"

Какое значение имеет "/"?
Почему нельзя это будет "." (точка)?

"_SYS_BIC"."NGDW.SM.PVT.MY_TABLE_NAME"

Это потому, что HANA позволяет использовать столько уровней только с использованием "."?
Я пытался найти объяснение, но безуспешно.
Если я могу понять почему, это поможет мне вспомнить необходимый синтаксис.

1 Ответ

2 голосов
/ 11 марта 2020

Хороший вопрос, на который нельзя ответить, только взглянув на HANA (база данных).

SAP Business Warehouse (SAP BW), приложение SAP для хранения данных, использовало этот способ именования объектов базы данных в течение многих лет, задолго до того, как о HANA даже думали.

Если вы видите таблицу и просматривать имена, такие как /BIC/<this_is_a_name>, тогда это объекты SAP BW (или из приложений, использующих технологию BW).
Для всех практических вопросов это способ создания пространств имен для объектов БД.

Теперь в SQL БД есть механизм пространства имен для объектов БД - тот, который вы упомянули, используя точки . между различными компонентами имен.

<DB name>. <schema name>. <object name> является общей схемой для этого.

Однако не все СУБД поддерживают / поддерживают столько лет go, когда SAP BW был впервые разработан (около 1996/7, если я не ошибаюсь). Oracle, например, поддерживает только одну схему на пользователя БД. Таким образом, чтобы создать «пространства имен» в этой схеме по умолчанию, нужно сделать это «внутри» имени объекта.

SAP выбрала forward-sla sh / для сегментирования имен объектов и из-за правила именования объектов, заданные для SQL, требуют, чтобы имя было заключено в кавычки, как вы указали.

Будет ли это иначе, если символ разделителя был бы точкой .?
Не в все. Поскольку символ точки имеет особое значение для SQL, СУБД будет пытаться интерпретировать его как часть

<DB name>. <schema name>. <object name>

, упомянутого выше.

Если предусмотрено больше этих двух периодов, СУБД не знает, что под этим подразумевается.

Когда речь заходит о «графических представлениях» (информационных моделях) в SAP HANA, возникает еще один аспект.
Классификация c XS моделирование / разработка ориентирована вокруг центрального хранилище артефактов развития. Весь исходный код для объектов БД и программ XS JS (JavaScript) хранится в этом хранилище и оттуда «активируется» (думаю, компилируется и развертывается).
Организационная структура в этом хранилище - это «пакеты», которые ведут себя например, папки и подпапки очень похожи на те, что вы найдете, например, в JAVA проектах). В этой структуре пакета каждый отдельный объект может быть уникально адресован по своему полному «пути», например, <main package>. <sub-package>. <sub-sub-package> / <objectname>.

Это где сочетание периодов . и вперед sla sh / в названии вида.

Обратите внимание, что все это все еще находится на обычном уровне, то есть технически абсолютно возможно создать виды вычислений без всего этого пространства имен zip-zap. Вы просто не можете использовать инструменты графического моделирования для этого тогда.

...