アプリケーションを作成するにあたって、データ・モデリングから初めて、それが完了するまでアプリケーションを作れないとなると、経験値が高くないと作業を始めるハードルが上がってしまいます。
そこで、生成AIを使ってスキーマを作成し、それをもとに叩き台となるAPEXのアプリケーションを作成してみます。
今回の作業ではGoogleのGemini Advancedを使ってみます。コード生成能力の高い生成AI(OpenAI GPT-4o、Anthropic Claude 3.5 Sonnetなど)であれば、同様の作業はできるでしょう。
まず、Geminiに以下のプロンプトを与えて、個人旅行管理アプリのスキーマを作成してもらいます。
個人旅行に必要な情報を管理するためのリレーショナル・データベースのスキーマを設計してください。
表やビューを作成するDDLは、オラクル・データベースで実行可能なスクリプトを生成してください。
表やビューの名前の接頭辞としてXXTRIP_を付加してください。
表の作成時にエラーが発生しないように、制約のない表が先に作成されるようにしてください。
表の名前や列の名前はすべて英語にしてください。
すべての表にサロゲート・キーを付与し、自動採番にしてください。
あまり具体的な指示、例えば作成する表を指示したり列を指示したりすると、生成AIはそれらの指示通りの表や列を含んだDDLを生成するようです。設計内容に自信がある場合は別ですが、それほどでもない場合は、最初はあまり細かい指定をせずに生成AIにまかせた方が、アイデア出しという面では良いように思います。
生成されたコードをコピーします。
SQLワークショップのSQLスクリプトを開きます。
作成をクリックします。
スクリプト・エディタが開きます。
スクリプト名としてTrip_Managerを設定し、内容に生成されたDDLをペーストします。
続けて生成AIにテスト・データの生成を指示します。
表にテスト・データを投入するINSERT文を生成してください。オラクル・データベースで実行できるINSERT文を生成してください。
スクリプトを実行します。
スクリプトを即時実行します。
スクリプトの実行結果を確認します。
継続してアプリケーションの作成をクリックします。
確認画面が開くので、再度アプリケーションの作成をクリックします。
デフォルトで作成されるのは、それぞれの表をソースとしたフォーム付き対話モード・レポートのページです。
デフォルトのまま、アプリケーションの作成をクリックします。
アプリケーションが作成されます。
アプリケーションを実行すると、データ操作を行うことができる、簡素なアプリケーションを使うことができます。
生成されたDDLを見直してみたり、アプリケーションを使ってみて今ひとつと感じたら、プロンプトの指示を変えてDDLから生成しなおしてみます。
生成するオブジェクトの接頭辞としてXXTRIP_付けるように指示しているため、以下のスクリプトを実行することで、関連オブジェクトをすべて削除できます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
declare | |
l_command varchar2(400); | |
C_PREFIX constant varchar2(10) := 'XXTRIP__%'; | |
begin | |
/* drop views */ | |
for c in ( | |
select view_name from user_views where view_name like C_PREFIX | |
) | |
loop | |
l_command := apex_string.format('drop view %s', c.view_name); | |
dbms_output.put_line(l_command); | |
execute immediate l_command; | |
end loop; | |
/* drop tables */ | |
for c in ( | |
select table_name from user_tables where table_name like C_PREFIX | |
) | |
loop | |
l_command := apex_string.format('drop table %s cascade constraint', c.table_name); | |
dbms_output.put_line(l_command); | |
execute immediate l_command; | |
end loop; | |
/* drop sequences */ | |
for c in ( | |
select sequence_name from user_sequences where sequence_name like C_PREFIX | |
) | |
loop | |
l_command := apex_string.format('drop sequence %s', c.sequence_name); | |
dbms_output.put_line(l_command); | |
execute immediate l_command; | |
end loop; | |
end; |
作成されたアプリケーションも削除し、再度、最初から作業を繰り返します。
今回の記事は以上になります。
Oracle APEXのアプリケーション作成で、生成AIを活用する参考になれば幸いです。
完