SAP CDS ビューで定義されたデータベース ビューと従来の SQL ステートメントで定義されたビューの違い


SAP CDS (Core Data Services) SAP HANA データ モデルによって開発されたテクノロジーです。データ モデルを定義し、データのクエリ、変換、表示を行うためのドメイン固有の言語を提供します。従来の SQL (構造化クエリ言語) と比較して、SAP CDS ビュー構文には多くの独自の機能と利点があります。この記事では、SAP CDS ビューの構文と標準 SQL 構文を詳細に比較し、例を使用して違いを説明します。

1. データモデルの構文を定義する

SAP CDS ビューの構文

SAP CDS ビューでは、define viewキーワードを使用してデータ モデルを定義します。これは、開発者がデータ モデル内のフィールド、データ関係、集計などを指定できるようにする宣言型言語です。CDS ビューの構文は、as select from構造を使用してクエリを指定し、SELECT ステートメントを通じてデータ フィールドを選択します。

標準 SQL 構文

標準 SQL 構文では、CREATE VIEWこのステートメントを使用してビューを作成します。また、ビューのフィールドとクエリ条件を定義できる宣言型言語でもあります。SQL ビューは通常、SELECTステートメントを使用して構造を定義します。

2. フィールド定義とデータ型

SAP CDS ビューの構文

SAP CDS ビューでは、フィールドの定義にデータ型を使用する必要があります。CDS は、さまざまなニーズを満たす豊富なデータ型 ( 、 など) を提供IntegerStringますDecimalCDS はカスタム データ型もサポートしています。

標準 SQL 構文

標準 SQL では、フィールド定義でデータ型を指定する必要もあります。一般的なデータ型にはintvarchardecimalなどが含まれます。

例 - 従業員情報の簡単なビューを定義する

SAP CDS ビュー構文の例:
define view EmployeeView as select from Employees {
    key EmployeeID,
    FirstName,
    LastName,
    DateOfBirth,
    Salary
}
標準 SQL 構文の例:
CREATE VIEW EmployeeView AS
SELECT EmployeeID,
       FirstName,
       LastName,
       DateOfBirth,
       Salary
FROM Employees;

3. データの関連付けと外部キー

SAP CDS ビューの構文

SAP CDS ビューでは、キーワードassociationと を使用してonデータの関連付けを定義できます。これにより、外部キーによって結合できる異なるエンティティ間の関係をモデル化できます。CDS ビューではone-to-one、 、 、one-to-manyなど、関連する多重度を指定することもできますmany-to-many

標準 SQL 構文

標準 SQL は通常、JOINキーワードを使用してデータ テーブルに対して結合操作を実行します。

例 - 部門情報を含む従業員ビューを定義する

SAP CDS ビュー構文の例:
define view EmployeeWithDepartment as select from Employees
association [0..1] to Departments on $projection.DepartmentID = Departments.DepartmentID {
    key EmployeeID,
    FirstName,
    LastName,
    DateOfBirth,
    Salary,
    Departments.DepartmentName
}
標準 SQL 構文の例:
CREATE VIEW EmployeeWithDepartment AS
SELECT E.EmployeeID,
       E.FirstName,
       E.LastName,
       E.DateOfBirth,
       E.Salary,
       D.DepartmentName
FROM Employees E
LEFT JOIN Departments D ON E.DepartmentID = D.DepartmentID;

4. 集計フィールドと計算フィールド

SAP CDS ビューの構文

SAP CDS ビューは、 などのビューでの集計操作をサポートしておりsumcountクエリ時に動的に計算される計算フィールドをビューに追加できます。

標準 SQL 構文

標準 SQL では、集計関数と計算フィールドの使用もサポートされており、GROUP BY句を使用して集計操作を実現できます。

例-部門内の従業員数を含む部門ビューを定義します

SAP CDS ビュー構文の例:
define view DepartmentWithEmployeeCount as select from Departments {
    key DepartmentID,
    DepartmentName,
    @ObjectModel.count.association('Employees') as EmployeeCount
}
標準 SQL 構文の例:
CREATE VIEW DepartmentWithEmployeeCount AS
SELECT D.DepartmentID,
       D.DepartmentName,
       COUNT(E.EmployeeID) as EmployeeCount
FROM Departments D
LEFT JOIN Employees E ON D.DepartmentID = E.DepartmentID
GROUP BY D.DepartmentID, D.DepartmentName;

5. データ許可制御

SAP CDS ビューの構文

SAP CDS ビューを使用すると、開発者はデータ モデルでデータ権限を定義できます。これらの権限は、データへのユーザー アクセスを制限することにより、データ セキュリティを強化します。

標準 SQL 構文

標準 SQL は通常、データベース システムによって提供されるアクセス制御メカニズム (テーブル レベルのアクセス許可、行レベルのアクセス許可など) を使用して、データ アクセス許可制御を実装します。

例 - 給与が 5000 以下の従業員に関する情報のみを表示するビューを定義する

SAP CDS ビュー構文の例:
define view LowSalaryEmployees as select from Employees {
    key EmployeeID,
    FirstName,
    LastName,
    DateOfBirth,
    Salary
}
where Salary <= 5000;
標準 SQL 構文の例:
CREATE VIEW LowSalaryEmployees AS
SELECT EmployeeID,
       FirstName,
       LastName,
       DateOfBirth,
       Salary
FROM Employees
WHERE Salary <= 5000;

6. 拡張と継承

SAP CDS ビューの構文

SAP CDS ビューは、既存のビューの拡張と継承をサポートしています。拡張により、新しいフィールドを追加したり、既存のビューに基づいてフィールドの属性を再定義したりできます。継承を通じて、新しいビューを作成し、既存のビューの構造とプロパティを継承して再利用できます。

標準 SQL 構文

通常、標準 SQL にはビューの拡張と継承のための直接的な構文はありません。通常、これを実現するには SQL ステートメントを手動で記述する必要があります。

同様の効果。

例 - EmployeeView を拡張し、新しいフィールドを追加するビューを定義します。

SAP CDS ビュー構文の例:
extend view ExtendedEmployeeView with {
    bonusAmount : Salary * 0.1 as currency
}
in projection;
標準 SQL 構文の例:
-- 假设 ExtendedEmployeeView 是 EmployeeView 的扩展
CREATE VIEW ExtendedEmployeeView AS
SELECT EmployeeID,
       FirstName,
       LastName,
       DateOfBirth,
       Salary,
       Salary * 0.1 as bonusAmount
FROM EmployeeView;

7. データソースとアダプター

SAP CDS ビューの構文

SAP CDS ビューではデータ ソースとアダプターを抽象化できるため、開発者は CDS ビューの定義を変更せずに、必要に応じてデータ ソースやアダプターを切り替えることができます。

標準 SQL 構文

標準 SQL では、通常、テーブル名またはビュー名がデータ ソースとして直接指定され、アダプターは通常、データベース システム自体によって提供され、自由に変更することはできません。

例 - アダプターを使用するビューを定義する

SAP CDS ビュー構文の例:
@AccessControl.authorizationCheck: #CHECK
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #BASIC
define view EmployeeWithAuthorizationCheck as select from Employees {
    key EmployeeID,
    FirstName,
    LastName,
    DateOfBirth,
    Salary
}
標準 SQL 構文の例:
-- 数据源直接指定为 Employees 表,适配器由数据库系统自身提供
CREATE VIEW EmployeeWithAuthorizationCheck AS
SELECT EmployeeID,
       FirstName,
       LastName,
       DateOfBirth,
       Salary
FROM Employees;

要約する

SAP CDS ビューの構文は多くの点で標準 SQL 構文に似ており、データ モデルとビューの定義、データのクエリと操作に使用できます。ただし、SAP CDS ビュー構文は、データ関連付け、集計、計算フィールド、データ アクセス制御などのいくつかの側面で、より高度な機能とより柔軟な機能を提供します。同時に、データ モデルの拡張と継承もサポートし、データ ソースとアダプターの観点からより強力な抽象化機能を提供します。このため、SAP CDS は SAP HANA データ モデルの開発において重要なテクノロジとみなされ、開発者に優れた開発エクスペリエンスと高い開発効率を提供します。

SAP CDS ビューは、SAP HANA などの SAP プラットフォームでは高い適用性と利点がありますが、他のデータベース システムでは直接使用できない場合があります。したがって、SAP CDS ビューまたは標準 SQL の使用を選択する場合は、特定のビジネス シナリオと技術要件に従ってトレードオフと選択を行う必要があります。

おすすめ

転載: blog.csdn.net/i042416/article/details/131997570