SQL Developer for VS Codeを使用したDuality Viewsの構築 (2024/07/30)

SQL Developer for VS Codeを使用したDuality Viewsの構築 (2024/07/30)

https://www.thatjeffsmith.com/archive/2024/07/using-sql-developer-for-vs-code-to-build-duality-views/

長文になりますが、ご了承ください。でも、きっと読んでいただく価値はあると思います。楽しい話題ですから!

データベースから取得したJSONオブジェクトを開発者の友人に提供する必要があります。そのオブジェクトには、当社の部門情報と、次のような有用な情報が含まれています。

  • 部門ID
  • 部署名
  • 従業員リスト
  • 名前とともに
  • および彼らの報酬情報

23aiを使えば、SQLやGraphQLを簡単に作成できます…

23aiを使えば、SQLやGraphQLを簡単に作成できます…

💡ヒント:GraphQLは入力しやすく、読みやすく理解しやすいです!

あるいは、VS CodeでSQL Dev拡張機能v24.2を使ってポイントアンドクリックで操作することもできます。

昨日、SQL Developer 用の VS Code 拡張機能をアップデートしました。今回の大きな新機能は、23ai の JSON リレーショナル デュアル ビューを操作するための、構築、編集、テスト、ドキュメント作成といった一連の便利なツールです。

だから、「新しくて刺激的な構文を苦労して解く」のではなく、ツールを活用してスムーズに作業を進められるのです!

ステップ1:23aiデータベースに接続する

これは23aiの新機能なので、利用するには新しい23aiデータベースが必要です。選択肢は以下のとおりです。

接続が完了したら、以下を探してください…

ステップ2:Duality Viewsツリーノードを右クリックします

私たちは「デュアリティ・ビルダー」を選びます。

恐ろしいパニック画面!?

ステップ3:あなたの「駆動」テーブルを見つけて追加します

2番目のボタンセットの一番上にある「ルートテーブルを追加」ボタンをクリックしてください。すると、画面右側にスライダーが表示されます。

「部門」を選択します。

ステップ4:いくつかの列を選択し、「許可」するものを決定します

「DEPARTMENT_NAME」を追加します。すると、デフォルトで「DEPARTMENT_ID」フィールドが選択されていることに気づくでしょう。これは、オブジェクトの_ID JSON属性に必須の値を指定するために、主キー値が必要だからです。

これは一体何でしょう?

左上には図表パネルがあります。拡大縮小したり、オブジェクトをドラッグして移動したりできます。データ変数に含める列を選択または選択解除することもできます。

図の下には、機能がまとめて配置されています。

定義:デフォルトでは、データ変数を作成するためのGraphQL構文がありますが、「GraphQLフォーム」ボックスのチェックを外すと、次のような「通常のDDL」が得られます。

テストクエリ:これがMVP(最も価値のある部分)になるかもしれません!ポイント&クリック操作でデータ変数を試すことができます。「試す」とは、実際にデータ変数を作成しなくても、作成した場合にデータ変数が返す値をクエリできるという意味です。

ええ、今のところはかなり退屈なオブジェクトですが、いくつか注目すべき点があります。実行されている「テストクエリ」コードを見てみましょう。

SELECT JSON {
        '_id' : d.DEPARTMENT_ID,
        'departmentName' : d.DEPARTMENT_NAME,
        'employees' : 
            [ SELECT JSON {
                'employeeId' : e.EMPLOYEE_ID,
                'name' :  {
                    'first' : e.FIRST_NAME,
                    'last' : e.LAST_NAME
                },
                'startedOn' : e.HIRE_DATE,
                'compensation' :  {
                    'salary' : e.SALARY,
                    'comm' : e.COMMISSION_PCT
                }
            }
            FROM EMPLOYEES e
             WHERE  e.DEPARTMENT_ID = d.DEPARTMENT_ID 
         ]
    } AS dv_data 
    FROM DEPARTMENTS d
;

すべての Duality ビューには、オブジェクトを一意に識別する _id 属性があります。そのため、DEPARTMENTS.DEPARTMENT_ID に対してクエリを実行し、それを '_id' にキャストします。次に、employees に対してネストされた呼び出しを行い、再び JSON にキャストします。いずれにせよ、Duality ビューを実際に作成する前に、その外観を確認できます。

データが返ってきたら、行を右クリックして「単一レコードビュー(SRV)」を要求できます。SRVはJSONオブジェクトを自動的に整形して、人間が読みやすい形式にします。

Duality Viewの「デザイン」に変更を加える際には、「テストクエリ」機能についても定期的に取り上げていきます。

DVプロパティ(右上):ここでは、DVを選択してプロパティを設定したり、基となる属性を選択して同様の操作を行うことができます。これについては後ほど詳しく説明します。

ステップ5:従業員の追加

これは可能です。なぜなら、EMPLOYEES テーブルには、DEPARTMENT_ID をたどって DEPARTMENTS テーブルにリンクする外部キー制約があるからです。

そこで、「子テーブルを追加」ボタンをクリックすると…

時には、GIFアニメーション1枚が…写真5枚分、あるいは7枚分に相当することもある!

新しいテーブルと列が追加されたら、プロパティエリアにある属性を使って、いろいろと面白い操作ができるようになります。

ネストされたキー名とエイリアス

名前をまとめて別の JSON オブジェクトにし、さらに commission_pct と salary もまとめて別のオブジェクトにしましょう。

そして、属性名ももっと分かりやすいものにしましょう。

右側の「SALARY」または「COMMISSION_PCT」を選択し、「ネストされたキー名」に「compensation」と入力します。すると、生成された以下のコードで、これらの2つの属性がJSON定義内のcompensationオブジェクトの一部として表示されることが確認できます。

'FIRST_NAME' と 'LAST_NAME' についても同様のことを行い、単に 'name' というネストされたキー名の下にそれらを配置し、それぞれ 'first' と 'last' というエイリアスを付けることも可能です。

いろいろと変更を加えたので、もう一度テストしてみましょう。

分かりにくかった場合のために、部門オブジェクトの配列の一部を以下に示します…

{
    "_id": 80,
    "departmentName": "Sales",
    "employees": [
        {
            "employeeId": 145,
            "name": {
                "first": "John",
                "last": "Russell"
            },
            "compensation": {
                "salary": 14000,
                "comm": 0.4
            }
        },
        {
            "employeeId": 146,
            "name": {
                "first": "Karen",
                "last": "Partners"
            },
            "compensation": {
                "salary": 13500,
                "comm": 0.3
            }
        },...

「作成」ボタンを押すまでは、何も作成されていません!

重要な注意事項が2つありますので、作業内容を失わないためにも必ずお読みください!

  1. データベース内の他のユーザーがあなたの作品を見ることを気にしないのであれば、「Duality View の作成」ボタンをクリックしてください。
  2. デザインや調整にもっと時間をかけたい場合は、「ファイルに保存」ボタンを使用してください。

これはVS CodeのWebViewコンポーネントであるため、このダイアログを閉じると作業内容が失われます。これは通常のワークスペース保護機能がすべて備わっている「通常のファイル」ではないため、明日VS Codeを再度開いたときにファイルが残っていることはありません。

ファイルが見つからない場合は、「dvb」という拡張子で保存されています。

他に何ができるだろうか?

ええ、かなりたくさんありますよ。

Duality Viewが作成され、それをクエリすると、次のようになります。

REST APIを作成する

Oracle REST Data Servicesの「AutoREST」機能は、JSONリレーショナル二重性ビューをサポートしています!ビューが「更新可能」であれば、PUT、POST、DELETE、PATCH操作を思う存分実行できます!

ああ、あのeタグには何か意味があるの? ええ、あれはミスを防ぎ、データの損失を防いでくれるんだよ!

ブログの概要とデモの全文をお読みください。

JSONデータガイドを見る

右クリックするだけで…

写真の方が分かりやすい時もありますよね?

コメント

このブログの人気の投稿

ミリ秒の問題: BCCグループとOCIが市場データ・パフォーマンスを再定義する方法(AWSに対するベンチマークを使用) (2025/11/13)

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

Oracle Enterprise Manager 24aiの概要 (2024/12/18)