記事
· 2023年9月13日 3m read

Quick sample:データベース作成チュートリアル(過去のコンテスト投稿記事のご紹介)

この記事では、2023年3月1日~31日の期間に開催された「技術文書ライティングコンテスト:InterSystems IRISチュートリアル」に応募された24作品の中から、Heloisa Paivaさんが投稿されたシンプルですぐに試せる記事をご紹介します。

 


はじめに

このチュートリアルは、テストやチュートリアル用のサンプル作成など、あらゆる目的でサンプルデータベースを作成するための、私が見つけた最も簡単な方法についての簡単なチュートリアルです。

 

ネームスペースの作成

  1. ターミナルを開きます。
  2. 次のコマンドを実行します。 "Do $SYSTEM.SQL.Shell()"   (※または :sql の入力でもSQLシェルに切り替えできます)
  3. "CREATE DATABASE " コマンドを実行します。実行時、作成したいネームスペース名をコマンドの引数に指定します。(TESTネームスペースを作成する例:CREATE DATABASE TEST)

これで、管理ポータルから新しいネームスペースを作成するより簡単で素早い方法でネームスペースを作成できます。

ネームスペースに移動するには、現在開いているSQLシェルを終了させるため、"quit" を入力し、zn "ネームスペース名" と入力します。これでターミナルで行うすべての動作がこのネームスペースのスコープに入ります。

 

テーブルの作成

  1. ターミナルを開きます。
  2. 次のコマンドを実行します。 "Do $SYSTEM.SQL.Shell()"   (※または :sql の入力でもSQLシェルに切り替えできます)
  3. Enterを入力し、SQLシェルを複数行モードに切り替えます。
  4. 以下例のようなコマンドを実行します。
    [SQL]SAMPLE>>  << entering multiline statement mode, 'GO' to execute >>
        1>>CREATE TABLE Sample.PersitentData (
        2>>Name %String,
        3>>Age %Integer )
        4>>GO
    IRISのタイプ(%Stringなど)またはSQLの型(VARCHARなど)でプロパティを指定することができます。CREATE TABLE (SQL)にあるように、このコード内で多くの設定を定義することもできますが、この記事の目的から、できる限りすべてをシンプルに記述しています。

 

これで、管理ポータル、スタジオ、VS Code、またはターミナルから、例で作成したパッケージ名、クラス名「Sample.PersistentData」でアクセスできます。

 

データの自動生成

テーブルの作成が完了したら、スタジオやVSCodeからクラス定義にアクセスし、"Extends"パラメータに%Populateを追加します。

クラス定義文は以下のようになります。

Class Sample.PersistentData Extends (%Persistent, %Populate)

この他のスーパークラスとして、%JSON.Adaptor と %XML.Adaptor は、データのエクスポート、プロダクション・ポータルでの表示などに便利です。

 

これでターミナルを開き、以下のコードを実行できるようになりました:

D #class(Sample.PersistentData).Populate(100)

Ageに関して、Populate()メソッドはランダムな整数を作成できますが人の適切な年齢であるかどうかは気にしていません。

以下、実行結果です。

テーブルを作るときにもっと複雑なコードを作ることもできますが、私はできるだけシンプルな方法ですべてを実施したため、以下のコードを実行しました:

UPDATE Sample.PersistentData
SET Age = Age # 120

 

結論

このチュートリアルはそれほど小さなものではないように見えるかもしれませんが、私はこれらのステップをすべて学んだ後、自分の会社に持ち込みたいアイデアをテストしたり、ここに書く記事のサンプルを作成したりするのに使っています!( もしかしたらあたなは私が書いた内容を既にご存知かもしれませんね!)

この手順を利用すると、適切に構造化されたデータベースを持つことができるのと、コンテンツ自体の開発を始める前の手続きとして1分程度の時間しかかかりません。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください