Почему в названии таблицы HANA есть /?

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

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

Какое значение имеет «/»?
Почему это не может быть «.» (Точка)?

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

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


person user69355    schedule 11.03.2020    source источник
comment
Может быть, но это не так, потому что они так не делали.   -  person hobbs    schedule 11.03.2020
comment
@hobbs Ты хочешь сказать, что это могло быть все? а архитектор баз данных решил использовать косую черту? Или вы говорите, что это на стороне SAP?   -  person user69355    schedule 11.03.2020


Ответы (1)


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

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

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

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

_3 _._ 4 _._ 5_ - обычная схема для этого.

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

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

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

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

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

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

Когда дело доходит до «графических представлений» (информационных моделей) в SAP HANA, возникает еще один аспект.
Классическое моделирование / разработка XS ориентировано на центральное хранилище артефактов разработки. Весь исходный код для объектов БД и программ XSJS (JavaScript) хранится в этом репозитории и «активируется» (подумайте о компиляции и развертывании) оттуда.
Организационная структура в этом репозитории - это «пакеты», которые ведут себя как папки и подпрограммы. папки, очень похожие на то, что вы найдете, например, в JAVA-проекты). В этой структуре пакета каждому отдельному объекту можно адресовать уникальный адрес через его полный «путь», например _11 _._ 12 _._ 13 _ / _ 14_.

Отсюда и сочетание точек . и косой черты / в имени представления.

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

person Lars Br.    schedule 11.03.2020