メインコンテンツまでスキップ

辞書

辞書タブは、ダイアグラムの命名標準を次の 3 つの辞書に保持します。それぞれの辞書は、スプレッドシートのように編集できるシートにあります。

  • Domains: VARCHAR(100) を表す Name のような、名前の付いたデータ型です。ドメインに紐付いたカラムは、そのドメインのデータ型を持ちます。
  • Words: 論理名を構成する標準の単語です。Customer と CUST のように、各単語には、物理名でその単語に使う英略語が付きます。
  • Terms: 論理名全体です。Customer Name と CUST_NM のように、各用語には、その用語が与える物理名とドメインが付きます。

テーブルやカラムの論理名は、これらの辞書から物理名を生成します。カラムの用語は、そのカラムをドメインに紐付けることもできます。物理名の生成を参照してください。
4 つ目のシートの Checks は、ダイアグラムの名前と型、そして辞書自体について、論理名の中の禁止語のように辞書が問題として検出したものを一覧にします。Checks シートを参照してください。

タブの開き方​

ツールバーの Dictionary タブ(Code Generator と Settings の間にある本のアイコンのボタン)に切り替えるか、クイック検索の Tab の下にある Dictionary を選びます。
ダイアグラムを開いたときに最初に表示するタブにすることもできます。ロックの Canvas Type を参照してください。

タブは、別のシートを選ぶまでは Domains シートで開きます。
開くたびに、シートは前回離れたときの選択とスクロール位置のまま表示され、初めて開いたときは最初のセルが選択されます。グリッドがキーボード入力を受け取るので、入力や矢印キーがすぐに効きます。

表示しているシートと、各シートの検索、選択、スクロール位置、列幅は、エディタを使う人だけのものです。
いずれもファイルには保存されず、Undo の履歴にも記録されず、共同編集者とも共有されません。エディタを開いている間は、タブを切り替えても、同じエディタに別のドキュメントを読み込んでも保持されます。

シート​

上部のバーには Domains、Words、Terms、Checks の 4 つのシートのボタンが並び、表示しているシートのボタンは押された状態で表示されます。各ボタンの名前の横には件数が表示されます。件数は、検索で表示されている行にかかわらずそのシートが持つ行数で、Checks ではチェックの件数をレベルに応じた色で示します。Checks シートを参照してください。
その次に検索フィールドがあります。検索を参照してください。Domains、Words、Terms では、読み取り専用のエディタでない限り、バーの末尾に Add Row、Delete Rows、Import CSV、Export CSV の 4 つのツールが並びます。行の追加と削除と CSV の読み込みと書き出しを参照してください。
幅の狭いペインや、表示が長くなる表示言語では、バーが複数行に折り返すので、どのボタンも操作できるままです。

グリッドの下のステータス行には、4 rows のように検索で残った行数が表示され、選択範囲がいずれかの行にかかっている間は、1 selected のようにかかっている行数も表示されます。2 つの範囲が共有する行は 1 回だけ数えるので、この数は Delete Rows で削除される行数と同じです。
左端の行番号は、シートに表示されている順に 1 から行を数えます。読み取り専用のセル、つまり Checks のすべてのセルと読み取り専用のエディタのすべてのセルは、チェックがマークしている場合を除き、灰色の背景で描かれます。
空の Domains、Words、Terms シートには、読み取り専用のエディタを除き、Import a CSV file or add a row と表示されます。

各シートの列は、順に次のとおりです。

シート列
DomainsDomain、Category、Data Type、Description
WordsWord、Abbreviation、English Name、Description、Synonyms、Forbidden Words
TermsTerm、Physical Name、Domain、Description、Synonyms
ChecksType、Target、Detail

各セルの役割は次のとおりです。

  • ドメインの Data Type は、VARCHAR(100) や NUMERIC(15,2) のようにカラムの型として書き、そのドメインに紐付いたすべてのカラムがその型を持ちます。ドメインとデータ型を参照してください。
  • 単語の Abbreviation は、物理名でその単語の代わりに使うものです。単語からを参照してください。
  • 単語の Synonyms と Forbidden Words には、同じものを指す別の語をカンマ区切りで並べます。各項目は前後の空白が除かれ、空の項目は捨てられ、単語自体と同じ項目は無視されます。これらの語を使う論理名からは物理名が組み立てられず、Checks シートがそれを検出して、代わりに使う単語を示します。各チェックが検出する内容を参照してください。
  • 用語の Term は論理名全体で、Physical Name はその論理名が与える名前です。用語からを参照してください。
  • 用語の Domain には、紐付けているドメインの名前が表示されます。どのドメインにも紐付いていないときや、紐付けたドメインがその後削除されたときは空になります。用語のドメインを参照してください。
  • Category、English Name、各シートの Description、用語の Synonyms は記録用の項目です。何にも影響せず、どのチェックもこれらを読みません。

右から左に書く表示言語では、バー、グリッドのメニュー、ステータス行が左右反転しますが、シートと用語のドメインの一覧は左から右のままです。

物理名の生成​

辞書は、テーブルやカラムの論理名から、その物理名(Schema SQL と Code Generator が書き出す名前)を付けることができます。まず Term がその論理名である用語を探し、見つからなければ単語の英略語から名前を組み立てます。
例えば、単語 Customer(CUST)、Name(NM)、Number(NO)、Order(ORD)、Date(DT)と、物理名 CUST_NO とドメイン Number(データ型は INT)を持つ用語 Customer Number がある場合は、次のようになります。

  • 論理名 Customer Number は、カラムに CUST_NO という名前を付け、Number に紐付け、型 INT を与えます。
  • Order Date からは ORD_DT が組み立てられます。
  • 論理名が Customer のテーブルは CUST という名前になります。

Words シートと Terms シートがどちらも空のときは、何も生成されません。

名前が生成されるとき​

物理名は、次のように論理名が書き込まれるときに生成されます。

  • キャンバスで、論理名のセルの入力欄が Enter、Tab、Escape、または別の場所のクリックで閉じ、そのときの論理名が開いたときと異なるとき。入力中の各キーは論理名だけを書き込みます。論理名の入力を参照してください。
  • セルの下の一覧から用語を選んだとき。選んだ時点ですぐに生成されます。用語名の補完を参照してください。
  • 貼り付けで論理名のセルに書き込んだとき。カラムのコピー / 貼り付けを参照してください。
  • 検索と置換で論理名を置換したとき。1 つの一致箇所でも、すべての一致箇所でも同じです。
  • コーディングエージェントが論理名を設定したとき。

生成されるのは、物理名が空か、物理名自体が生成されたものである場合だけです。自分で付けた名前を参照してください。
用語の選択、貼り付け、置換では、論理名とそこから生成されたものが Undo の 1 ステップになります。キャンバスで入力欄が閉じるときに生成された名前は、入力の後の独立したステップです。最初の Undo で、生成された名前が、用語がもたらしたドメインと型とともに元に戻り、入力した論理名は残ります。

後から自動で再生成されることはありません。単語の Abbreviation や用語の Physical Name、Domain を変更しても、単語や用語を追加しても、すでに生成された名前はそのままです。再生成するには物理名の再生成を使います。例外はドメインの Data Type で、変更はただちにそのドメインに紐付いたカラムに反映されます。

用語から​

まず Terms シートから、Term が論理名と等しい用語を探します。前後の空白や、Unicode の合成形と分解形の違いは無視されますが、大文字と小文字は区別されるので、customer number は Customer Number に一致しません。同じ名前の用語が 2 つある場合は、シートで先にあるものが使われます。

  • 用語は Physical Name を与えます。それが空のときは、下で説明するように単語から組み立てた名前を、組み立てられる場合に与えます。
  • カラムの場合、用語は、その Domain が Domains シートにある間は、カラムをそのドメインにも紐付け、ドメインのデータ型を与えます。カラムの紐付けを参照してください。これは用語が名前を与えない場合でも行われます。ドメインのない用語は、何の紐付けも解除しません。
  • テーブルは、用語の物理名だけを受け取ります。

単語から​

一致する用語がないときは、次のように単語から名前を組み立てます。

  1. 論理名を空白、_、-、·、/ で区切ります。区切りをまたぐ単語はありません。
  2. 区切った各部分を左から読み、各位置で Words シートに Word、同義語、禁止語として載っている最も長いテキストを取り、後戻りはしません。単語 가입、가입일、일자 がある場合、가입일자 は 가입일 と 자 として読まれて 자 が未登録になりますが、가입 일자 は 가입 と 일자 として読まれます。大文字と小文字は区別されるので、member は単語 Member ではありません。
  3. 物理名は、各単語の Abbreviation を入力どおりに _ でつないだもので、ORD_DT のようになります。同じ名前の単語が 2 つある場合は、シートで先にあるものの英略語が使われます。長さの制限はなく、Code Generator の Table Name Case と Column Name Case も関係しません。

組み立ては、すべてそろうか、まったく組み立てないかのどちらかです。どこか一部が同義語、禁止語、またはどの単語にも載っていないテキストである場合や、単語の Abbreviation が空の場合は、名前は組み立てられず、物理名はそのままです。

自分で付けた名前​

辞書が物理名を埋めるのは、物理名が空か、物理名自体が辞書によって埋められたものである場合だけです。エディタはこれをテーブルとカラムごとに記憶していますが、キャンバス上には何も表示されません。

  • 自分で書き込んだ名前は、自分で付けた名前として扱われます。名前のセルへの入力、検索と置換でのテーブル名やカラム名の置換、カラムの名前のセルへの貼り付け、コーディングエージェントによる名前の変更がこれにあたります。後から論理名を書いても、その名前はそのままで、論理名だけが書き込まれ、ドメインにも紐付きません。
  • 名前を消すと、辞書による生成の対象に戻ります。空の名前は常に生成されるためです。
  • 何も生成しない論理名は、物理名とその状態を元のままにします。空の名前は空のままで、生成された名前はその名前を保ち、辞書が付けた名前のままです。
  • 新しいテーブルやカラムは空の名前で始まるので、最初の論理名から名前が生成されます。リレーションシップが追加する外部キーカラムは、そのキーにちなんだ名前が付き、自分で付けた名前として扱われます。外部キーカラムの名前を参照してください。
  • Schema SQL、GraphQL、DBML、AML の Import または Import and Add で取り込んだ名前と、辞書タブより前のリリースで作られたダイアグラムの名前は、自分で付けた名前として扱われます。そのため、後から論理名を書いても何も生成されません。
  • 複製したテーブル、ドラッグハンドルで別のテーブルに移動したカラム、コピーしたテーブルの貼り付け、JSON ファイルの Import and Add では、各名前の状態が保たれます。選択したテーブルに新しいカラムとして貼り付けたカラムは、自分で付けた名前として扱われます。ただし、貼り付けた名前が空で、論理名から名前が生成される場合は除きます。
  • 物理名の再生成は、読み込んだ名前も含め、自分で付けた名前を辞書による生成の対象に戻します。

2 つのカラムに 1 つの名前​

生成されるはずの名前を同じテーブルの別のカラムがすでに持っている場合、そのカラムでは何も生成されません。カラムは名前、状態、ドメインの紐付けを保ち、論理名だけが書き込まれます。名前は、外部キーカラムの名前と同じく、大文字と小文字を区別せず、前後の空白も無視して比較されます。
テーブルに対する Replace All や Derive Physical Names Again のように、1 つの変更で 2 つのカラムに同じ名前が付く場合は、テーブル内で先にあるカラムがその名前を受け取ります。
例えば、MBR_NO をキーとする members の自己参照は MBR_NO_2 を追加し、このカラムは論理名 Member Number をコピーします。Derive Physical Names Again ではこのカラムの名前は MBR_NO になるはずですが、その名前はキーが持っているので、MBR_NO_2 のままです。
テーブルにはこのような規則はありません。2 つのテーブルが同じ名前を生成することもあります。

物理名の再生成​

単語の Abbreviation や用語の Physical Name、Domain を変更しても、それだけでは名前は変わらないので、変更した後は Derive Physical Names Again を使います。これは対象の名前を、自分で付けた名前も含めて辞書による生成の対象に戻し、上の規則で再生成します。ERD タブでのみ使え、読み取り専用のエディタでは使えません。次の場所にあります。

  • テーブルのコンテキストメニューの、Focus on this table または Focus on selected tables のすぐ後。テーブルが選択した 2 つ以上のテーブルの 1 つであるときは、テーブルのどこを右クリックしても、Derive Physical Names Again が選択したすべてのテーブルを対象にします。それ以外では、カラムの行を右クリックすると、そのカラムだけを対象とする Derive Physical Name Again が、ヘッダーを右クリックすると、テーブルの名前とすべてのカラムを対象とする Derive Physical Names Again が表示されます。
  • キャンバスのコンテキストメニューの、Name View のすぐ後。ダイアグラムのすべてのテーブルとカラムを対象とする Derive Physical Names Again です。ダイアグラムにテーブルがない間は表示されません。
  • クイック検索。フォーカスしているカラム、フォーカスしているテーブル、選択したテーブル、ダイアグラム全体のそれぞれの項目として表示されます。

Words シートで Number の英略語を NO から NUM に変えてもダイアグラムの物理名は MBR_NO と PAY_NO のままで、キャンバスのメニューの Derive Physical Names Again でそれらが MBR_NUM と PAY_NUM に変わり、用語が与える ORD_NO はそのまま残る様子

対象のうち論理名を持つテーブルとカラムが再生成されます。カラムは用語が与えるドメインと、それに伴うドメインの型も受け取り、リレーションシップのデータ型同期がオンの間は、その型がリレーションシップに沿って伝わります。
論理名のないテーブルやカラムと、新しい名前を同じテーブルの別のカラムが持っているカラムには手を加えません。2 つのカラムに 1 つの名前を参照してください。これらはそれぞれ名前と状態(自分で付けた名前か、辞書が付けた名前か)を保ち、カラムはドメインの紐付けも保ちます。
この時点で何も生成しない論理名の場合、物理名はそのままですが、辞書による生成の対象には戻るので、次に論理名を書いたときに生成されます。
名前、紐付け、型をいくつ変更しても、Undo の 1 ステップになります。ステップが記録されないのは何も変更しなかったときだけで、自分で付けた名前を辞書による生成の対象に戻すことは、名前がすでに辞書の与える名前と同じであっても変更として扱われます。

用語自体の Physical Name は、変更した単語から組み立て直されることはありません。そのため、再生成の前に用語を編集してください。

ドメインとデータ型​

ドメインに紐付いたカラムは、そのドメインの Data Type を持ちます。カラムを紐付けると、ただちにその型になります。
ドメインの Data Type が変わると、Domains シートでの編集、貼り付け、読み込みによる変更でも、共同編集者やコーディングエージェントによる変更でも、そのドメインに紐付いたすべてのカラムが同じステップで新しい型になります。リレーションシップのデータ型同期がオンの間は、それぞれの変更が、入力による型の変更と同じようにリレーションシップに沿って伝わります。オフの間は、紐付いたカラムだけが変わります。
ドメインの名前を変更しても、変わるのはカラムのドメインのセルに表示される名前だけです。

Domains シートで行った型の変更は、それによって変わったカラムの型とともに、そのシートでの Undo で元に戻ります。辞書のシートを参照してください。
ERD タブでの Undo や Redo によってカラムが再びドメインに紐付いたり、ドメインに紐付いたカラムが戻ったりすると、そのカラムには現在のドメインの型が与えられます。別の型に戻す Undo や Redo では、カラムの紐付けが解除されます。

カラムの紐付け​

カラムは、次の操作でドメインに紐付きます。

  • カラムのドメインのセル(View Option → Domain で表示されます)、または Logical Names ではその代わりとなる型のセルでのドメインの選択。ドメインのセルを参照してください。
  • 用語がドメインを与える論理名。用語からを参照してください。これは名前が生成される場合だけなので、自分で付けた名前のカラムや、生成される名前を別のカラムが持っているカラムでは起こりません。
  • Derive Physical Name Again または Derive Physical Names Again。対象の各カラムを、その用語のドメインに紐付けます。
  • リレーションシップ。外部キーカラムは、キーの型と論理名とともに、キーのドメインをコピーします。識別リレーションシップを参照してください。シリアル型のキーのように、コピーが別の型になるキーは、ドメインを引き継ぎません。
  • テーブルの複製や、ドラッグハンドルでの別のテーブルへの移動。どちらも紐付けを保ちます。コピーしたテーブルやカラムの貼り付けは、このダイアグラムにそのドメインがあり、ドメインがまだコピーしたカラムの型を持っている場合だけ紐付けを保つので、別のダイアグラムからのコピーは紐付けのない状態で貼り付けられます。テーブルとメモのコピー / 貼り付けを参照してください。Import and Add はどのカラムも紐付けません。
  • ドメインのセルへのドメイン名の貼り付け。カラムのコピー / 貼り付けを参照してください。

紐付けの解除​

  • 紐付いたカラムの DataType のセルに型を入力したり候補を確定したりすると、型がドメインの型と異なった時点でカラムの紐付けが解除され、カラムは入力した型を保ちます。DataType の自動補完を参照してください。ドメインの型を入力し直しても再び紐付くことはないので、代わりにドメインのセルでドメインを選びます。DataType のセルへの貼り付けやコーディングエージェントによる型の変更でも、同じように紐付けが解除されます。
  • リレーションシップのデータ型同期がオンの間は、型の変更が届いたカラムのうち、新しい型が自分のドメインの型と異なるもの(独自のドメインに紐付いた外部キーなど)は、同じステップで紐付けが解除されます。Map Columns も、型を変更したカラムの紐付けを同じように解除します。
  • ドメインのセルで None を選ぶと、カラムの紐付けが解除され、型はそのまま残ります。
  • 用語の Domain を変更したり消したり、用語を削除したりしても、カラムは変わりません。

ドメインの削除​

ドメインの行を削除しても、そのカラムの型は変わらず、紐付けも残ります。カラムにはドメインが表示されず、Domains シートにまだドメインがある間は、Checks シートがそれぞれのカラムについて Unknown domain を表示します。Domains シートで削除を Undo すると、紐付けが再び表示されます。
ドメインがない間に、そのようなカラムにドメインとは異なる型を入力すると、紐付けが完全に解除されます。ドメインのセルで None を選んだ場合も同じです。
ファイルを保存するときにはこれらの紐付けが含まれないので、ダイアグラムを開き直すと、それらのカラムは紐付けのない状態になります。

削除したドメインに紐付いた用語は、Unknown domain としてマークされた空の Domain のセルを表示します。そのセルで Delete または Backspace を押すと紐付けが解除されます。用語のドメインを参照してください。

Checks シート​

Checks シートは、辞書のチェックが辞書とダイアグラムのテーブル・カラムで検出したものを一覧にします。チェックは読み取るだけで、何も変更しません。
各チェックは、読み取るシートに行がある間だけ実行され、単語のチェックは Words シートに名前のある単語がある間だけ実行されます。そのため、辞書が空のダイアグラムでは何も表示されません。

Logical Names で Customer Num が赤、Order Stat がアンバーで描かれ、Checks シートが赤い件数とともにその 3 つのチェックを表示し、Forbidden word の行をダブルクリックするとダイアグラムの Customer Num に戻り、Member Number と入力し直すとチェックが 1 つ残る様子

このシートの 3 つの列は読み取り専用で、次のとおりです。

  • Type はチェックの名前を示します。各チェックが検出する内容を参照してください。
  • Target は、単語、用語、ドメインをその名前で、テーブルをその名前で、カラムを table.column の形で示します。テーブルとカラムは名前の表示に従った名前で示され、表示に名前がないところは unnamed になります。
  • Detail は、멤버 → 회원 のように、チェックが検出したものと、→ の後に辞書が代わりに示すもの(複数ある場合はカンマ区切り)を表示します。空の側は — → NUMERIC(15) のように — と表示されます。

最初に単語のチェック、次に用語とドメインのチェック、その後にテーブルごとのチェックが並び、各テーブルの後にそのカラムのチェックが続きます。
一覧は、共同編集者やコーディングエージェントによるものも含め、すべての編集が反映されるたびに、また名前の表示を切り替えるたびに更新されます。
Checks ボタンの件数は、エラーのチェックが 1 つでもある間は赤、すべてが警告の間はアンバー、チェックがないときは淡い色で表示されます。

行の編集、追加、削除、並べ替え、読み込み、書き出しはできません。バーにはツールが表示されず、右クリックしてもグリッドのメニューは開かず、Undo と Redo は何もしません。検索、選択、コピーはほかのシートと同じように使えます。

行で Enter を押すかダブルクリックすると、次のように、その行が示すものへ移動します。

  • 単語、用語、ドメイン: タブはそのシートを表示し、チェックが読み取るセル(名前、または用語の Domain)を選択して、その行を表示範囲の先頭に置きます。シートの検索でその行が隠れている場合は、検索がクリアされます。その後削除された行では、どこにも移動しません。
  • テーブルまたはカラム: ERD タブが表示され、そのテーブルだけが選択されて、チェックが読み取るセルにフォーカスします。それは名前、論理名、またはドメインのセルで、行にそのセルが描かれていない場合は、代わりに描かれているセルです。キャンバスがキーボード入力を受け取り、表示位置は移動先の表示位置の規則に従って移動します。

列見出し、列の境界、スクロールバー、または行より下をダブルクリックしても、どこにも移動しません。
コーディングエージェントは、erd_list_checks で同じチェックを同じ順序で取得します。辞書のチェックを参照してください。

ほかの 3 つのシートでは、チェックが読み取るセル(名前、または用語の Domain)が、淡い色の背景に赤またはアンバーの文字でマークされます。次のとおりです。

  • 赤: 同じシートの別の行も持っている名前、削除したドメインに紐付いた用語の Domain、禁止語を使った Term。
  • アンバー: 同義語または未登録の単語を使った Term。

セルに複数のレベルが当てはまる場合は、より目立つ方の色になります。マークは読み取り専用のエディタでも表示され、Checks シート自体には色は付きません。ERD キャンバスでのマークについてはキャンバス上のマークを参照してください。

各チェックが検出する内容​

Typeレベル検出するものDetail の例
Duplicate nameエラー同じシートの別の行も持っている Word、Term、Domain。該当するそれぞれの行が表示されます。Member
Unknown domainエラーDomains シートにドメインがある間の、削除したドメインにまだ紐付いているカラムまたは用語削除したドメインの名前
Forbidden wordエラー論理名または Term の一部で、ある単語が Forbidden Words に載せているもの커스터머 → 고객
Unregistered word警告テーブルやカラムの論理名、または Term の一部で、どの単語にも載っていないもの자
Synonym警告ある単語が Synonyms に載せている部分멤버 → 회원
Physical name mismatch警告論理名は用語に一致するが、物理名がその用語の与えるものと異なるテーブルまたはカラムmbr_no → MBR_NO
Domain type mismatch警告DataType が、紐付けているドメインの Data Type と異なるカラムINT → NUMERIC(15)
  • 名前は前後の空白を除き、大文字と小文字を区別して比較されるので、Member と member は別の名前で、空の名前が重複とみなされることはありません。シートは 2 つの行に同じ名前を付ける編集を拒否するので、Duplicate name が現れるのは、2 人の共同編集者が同時に行に名前を付けたときのように 2 つの編集が行き違った場合か、ほかの場所で編集したファイルの場合だけです。
  • 単語のチェックは単語からと同じように名前を読み、異なる部分ごとに、名前 1 つにつき 1 回表示します。Forbidden word と Synonym は、その部分を載せている単語を示します。
  • Physical name mismatch は、前後の空白を除いた名前を、用語の Physical Name、またはそれがない場合は単語から組み立てた名前と比較し、用語が名前を与えない間は何も表示しません。キーの論理名をコピーした外部キーカラムでは、members_id → MBR_ID のように自分の名前が用語の名前と異なるときは常にこのチェックが表示されます。Derive Physical Name Again で直せますが、別のカラムがその名前を持っている場合は直りません。
  • 紐付いたカラムは最終的に必ずドメインの型になるので、1 つのエディタでの編集から Domain type mismatch が生じることはありません。ある共同編集者がカラムを紐付けている間に別の共同編集者がそのドメインの型を変えた場合や、ほかの場所で書かれたファイルでは生じることがあります。カラムのドメインのセルでドメインを選び直すとカラムにその型が与えられ、None を選ぶと紐付けが解除されます。削除したドメインへの紐付けは Unknown domain としてだけ表示されます。

キャンバス上のマーク​

ERD キャンバスは、チェックが検出した名前を、そのチェックの色で描きます。次のとおりです。

  • テーブルのヘッダーやカラムの行にある論理名のセルは、論理名が禁止語を使っている間は赤になり、それ以外で同義語または Words シートにない単語を使っている間はアンバーになります。
  • ヘッダーや行にある物理名のセルは、論理名が一致する用語が別の物理名を与えている間はアンバーになります。

マークされるのはこの 2 種類のセルだけで、ドメインのセルや DataType のセルがマークされることはありません。そのため、カラムの Unknown domain と Domain type mismatch は Checks シートにだけ表示されます。
セルは、そのセルが描いているものについてだけマークされます。Physical Names では物理名だけ、Logical Names では論理名だけがマークされ、Both Names では各セルがそれぞれのチェックに従ってマークされます。名前の表示を参照してください。空のセルはプレースホルダーの色のままで、辞書が空のときは何もマークされません。
色付きのテーブルグループにあるテーブルのヘッダーでは、マークはグループの色の上で読みやすい間だけその色を保ち、そうでない場合、名前はヘッダー本来の黒または白になります。

マークは ERD キャンバス、Time Travel、自動レイアウトのプレビューに、読み取り専用のエディタでも表示されます。Visualization タブ、Diff Viewer の両側、書き出した画像には描かれません。
マークは、名前の変更でも単語、用語、ドメインの変更でも、変更が起きるたびにそれに追従します。

検索​

検索フィールドには Search と表示され、読み取り専用のエディタでも 4 つのシートすべてに表示されます。検索はシートごとに独立しています。
検索対象のセルのいずれかにテキストが含まれていれば、その行が一致します。大文字と小文字、Unicode の合成形と分解形の違いは区別されず、検索語の前後の空白は無視されます。一致が 2 つのセルにまたがることはありません。検索対象のセルは次のとおりです。

  • Domains: Domain、Data Type、Description。
  • Words: Word、Abbreviation、English Name、Description。
  • Terms: Term、Physical Name、Description。
  • Checks: 3 つの列すべて。表示言語で表示されているとおりに検索されます。

新しく検索すると、選択が最初のセルに移り、先頭までスクロールします。
フィールドにテキストがある間は、ツールチップが Clear search の x ボタンでフィールドを空にでき、キャレットはフィールドに残ります。フィールドで Escape を押しても空になります。
フィールドでは、Ctrl + Z (Windows/Linux) または ⌘ + Z (Mac) はシートではなく入力を元に戻し、行の追加と削除の行のキーは文字入力のキーとして働きます。
空の行はどの検索にも一致しないので、Add Row と行の挿入は最初に検索をクリアします。読み込みでは検索はそのままです。

選択と移動​

グリッドでは、スプレッドシートと同じように次の方法で選択します。

  • クリックでセルを、ドラッグで範囲を選択し、シートの端ではスクロールします。Shift + click はアクティブなセルから選択を広げ、Ctrl + click (Windows/Linux) または ⌘ + click (Mac) は別の範囲を追加します。
  • 列見出しはその列を、行番号はその行を、左上の角は Ctrl + A (Windows/Linux) または ⌘ + A (Mac) と同じくすべてのセルを選択します。
  • Mac では、Ctrl + click は右クリックになります。グリッドのメニューを参照してください。

キーボードでは次のようになります。

  • 矢印キーで 1 セル移動し、Ctrl (Windows/Linux) または ⌘ (Mac) を押しながらだと、その方向のシートの端まで移動します。
  • Home と End で行の最初と最後のセルへ、Ctrl または ⌘ を押しながらだとシートの最初と最後のセルへ移動します。
  • Page Up と Page Down で 1 画面分の行を移動します。
  • 上のいずれかのキーと一緒に Shift を押すと、移動する代わりに選択を広げます。
  • Tab と Shift + Tab で右と左へ、Shift + Enter で上へ移動します。Enter だけを押すとセルを編集します。セルの編集を参照してください。

Undo や共同編集者による削除で選択範囲の下の行がなくなると、選択は残った行の内側に戻されます。

列見出しの右端をドラッグすると列幅を変更でき、その端をダブルクリックすると、表示中の行で最も幅の広いテキストに列幅を合わせます。列幅を変更するキーはありません。

セルの編集​

選択したセルで入力すると、その値が置き換わります。Enter、F2、またはダブルクリックでは、現在の値をそのまま、キャレットを末尾に置いて編集します。
セルは 1 行だけを保持するので、セルに貼り付けたタブや改行は空白になります。

  • Enter は編集を書き込んで下へ、Tab は書き込んで右へ移動します。Shift を押しながらだと、上または左へ移動します。
  • 別の場所をクリックしたり、キーボードのフォーカスがグリッドから離れたりしても書き込まれます。
  • Escape で編集を取り消します。

Words シートでセルに NUM と上書き入力して Enter を押し、⌥ + Enter で行を挿入して Tab で埋め、グリッドのメニューから Word で並べ替えてから、ord を検索して Esc で検索を空にする様子

値を元のままにした編集は何も書き込まず、書き込まれた編集は、どれだけ入力してもそのシートの Undo の 1 ステップになります。
編集中でないときに Delete または Backspace を押すと、選択したすべてのセルを 1 ステップで空にします。
編集中は、Undo と Redo のキーはセル内の入力を Undo、Redo し、行のキーは文字として入力されます。タブ内のキーを参照してください。
Checks のすべてのセルと、読み取り専用のエディタのすべてのセルは読み取り専用で、編集できません。

編集、貼り付け、消去のいずれかの行が拒否されると、その操作は何も保存されず、エラーのトーストが行数と最初の 3 つの名前を挙げて理由を示します。理由は次のとおりです。

  • シートの別の行が持っている名前、または同じ貼り付けの別の行が書き込む名前: Nothing saved: 1 row shares a name with another row (Member) または Nothing saved: 2 rows share a name with another row (…)。名前は前後の空白を除き、大文字と小文字を区別して比較されるので、Member と member は異なります。空の名前が拒否されることはありません。
  • Domains シートのどのドメインも持たない名前をテキストで指定した用語の Domain: Nothing saved: 1 row names an unknown domain (…)。
  • 編集中に共同編集者が削除した行: Nothing saved: the row was removed。

書き込みがそのセルの外に及ぶこともあります。次のとおりです。

  • Physical Name が空の用語に Term を入力すると、単語から名前を組み立てられる場合は、その名前が入ります。単語からを参照してください。これは 1 回だけ行われ、後で単語が変わっても名前は組み立て直されません。
  • ドメインの新しい Data Type は、同じ Undo のステップで、そのドメインに紐付いたすべてのカラムの型を変更します。ドメインとデータ型を参照してください。

用語のドメイン​

用語の Domain のセルで Enter か F2 を押すか、セルをダブルクリックすると、セルの下(上の方が広い場合は上)に、Domain と表示された検索フィールドの付いた一覧が開きます。
一覧には None と、その後に名前のあるすべてのドメインが Domains シートの順に並び、ハイライトは用語が紐付けているドメイン、または None から始まります。セルで文字を入力すると、その文字で検索した状態で一覧が開きます。

  • 入力すると、大文字と小文字を区別せずに、名前にそのテキストを含むドメインに一覧が絞り込まれ、None が外れ、最初の一致がハイライトされます。
  • ↑ と ↓ でハイライトを移動し、両端で折り返します。
  • Enter または Tab を押すとハイライトされた行が、クリックするとクリックした行が選ばれ、Undo の 1 ステップになります。用語は、同じ名前のドメインが 2 つある場合でも、選んだそのドメインに紐付き、None を選ぶと紐付けが解除されます。
  • Escape または外側のクリックで、入力した内容を書き込まずに一覧を閉じます。

Domains シートに名前のあるドメインがない場合は、一覧なしでフィールドが開きます。
テキストを貼り付けると、その名前を持つ最初のドメインに紐付き、空のテキストでは紐付けが解除され、セルの表示と同じテキストでは紐付けがそのまま保たれます。それ以外の名前は拒否されます。セルの編集を参照してください。セルで Delete または Backspace を押すと、削除したドメインに紐付いている場合でも、用語の紐付けが解除されます。

コピーと貼り付け​

Ctrl + C (Windows/Linux) または ⌘ + C (Mac) は、選択範囲を、スプレッドシートが書き出すのと同じく行ごとに 1 行のタブ区切りテキストとしてコピーするので、スプレッドシートにセルとして貼り付けられます。値の中のタブや改行は空白になります。
複数の範囲を一緒にコピーできるのは、同じ行にかかる範囲が左右に並ぶ場合か、同じ列にかかる範囲が上下に並ぶ場合だけです。それ以外では何もコピーされず、エラーのトースト Nothing copied: the ranges share no rows or columns が表示されます。

Ctrl + V (Windows/Linux) または ⌘ + V (Mac) は、スプレッドシートからコピーしたセルのようなタブ区切りテキストを、アクティブなセルから右下へ貼り付けます。次のとおりです。

  • 引用符はテキストとして貼り付けられるので、改行を含むスプレッドシートのセルは 1 つのセルとしては貼り付けられません。
  • 値が 1 つだけの場合は、選択したすべての範囲を埋めます。
  • 最後の行を超える行は新しい行として順に追加されるので、空のシートに貼り付けるとシートが埋まります。
  • 最後の列を超える列は除かれ、残りが保存された後にトースト Columns past the last one weren't pasted でそのことが示されます。
  • 複数のセルを貼り付けると、その後、書き込んだブロックが選択されます。

貼り付けは、追加する行も含めて Undo の 1 ステップになり、名前の重複や不明なドメインがあると全体が拒否されます。セルの編集を参照してください。
100 万を超えるセルに対するコピー、貼り付け、消去は何もせず、エラーのトースト Nothing done: the selection covers too many cells が表示されます。
切り取り(Ctrl + X (Windows/Linux) または ⌘ + X (Mac))は、シートでは何もしません。このタブでのコピーと貼り付けがダイアグラムに及ぶことはなく、セルの編集中はセル内のテキストに対して働きます。

行の追加と削除​

Add Row は、シートの末尾に空の行を 1 つ追加します。検索をクリアし、新しい行の最初のセルを選択して、グリッドにキーボード入力を渡すので、そのまま入力するとそのセルが埋まります。
Delete Rows は、どの列にかかっているかにかかわらず、選択範囲がかかっているすべての行を削除し、1 回の Undo ですべて元の位置に戻ります。ツールチップには、同じことを行うキーが表示されます。

キーボードのフォーカスがグリッドにあり、どのセルも編集していないときは、次のようになります。

  • Alt + Enter (Windows/Linux) または ⌥ + Enter (Mac) は、選択範囲がかかっている行と同じ数の空の行を、選択範囲の下に挿入します。
  • Alt + Shift + Enter (Windows/Linux) または ⌥ + Shift + Enter (Mac) は、それらを上に挿入します。
  • Alt + Backspace または Alt + Delete (Windows/Linux)、⌥ + Backspace または ⌥ + Delete (Mac) は、選択範囲がかかっている行を削除します。

これらは、グリッドのメニューの行の挿入と削除と同じ動作をします。グリッドのメニューを参照してください。挿入は検索をクリアし、選択範囲がかかっている最初の行のすぐ上、または最後の行のすぐ下に新しい行を置きます。挿入した行は最初の列で選択され、そのうち最初の行がアクティブになります。挿入は Undo の 1 ステップになります。

これらのキーはショートカットタブの Add Column と Remove Column のキー割り当てなので、ホストが setKeyBindingMap でそれらを割り当て直すと、これらのキーも変わります。Alt + Shift + Enter は Add Column のキーに Shift を加えたもので、そのタブに独自の行はありません。
編集中と検索フィールドでは文字入力のキーとして働くので、Mac では ⌥ + Backspace で 1 語分のテキストが削除されます。Checks と読み取り専用のエディタでは何もしません。このタブでは、テーブルのカラムを追加したり削除したりすることはありません。
Obsidian では、Obsidian のホットキーが同じキーを使っている場合でも、これらのキーはタブに届きます。

一度も入力していない行や、すべての値を空にした行は、シートに表示され共同編集者にも届きますが、ファイルには含まれないので、ダイアグラムを開き直すとなくなります。

グリッドのメニュー​

Domains、Words、Terms のセルを右クリックすると、グリッドのメニューが開きます。選択範囲の外のセルの場合は、まずそのセルが選択されます。
最後の行より下や最後の列より右を右クリックすると、現在の選択のままメニューが開くので、空のシートでは列見出しの下のどこでもメニューを開けます。メニューキーまたは Shift + F10 では、アクティブなセルに対してメニューが開きます。

  • Insert 1 row above、Insert 1 row below、Delete 1 row。それぞれ Insert 3 rows above のように選択範囲がかかっている行数を示し、右側にキーが表示されます。行の追加と削除を参照してください。
  • Sort by <column>, ascending と Sort by <column>, descending。Sort by Word, ascending のように、右クリックした列の名前を示します。並べ替えを参照してください。最後の列より右では表示されません。
  • Import CSV と Export CSV。バーのボタンと同じ動作をします。CSV の読み込みと書き出しを参照してください。

空のシートのときや、何にも一致しない検索をしているときのように、表示されている行がないときは、Insert 1 row below、Import CSV、Export CSV だけが表示されます。
Checks と読み取り専用のエディタでは、代わりにブラウザ自体のメニューが開き、列見出しやスクロールバーを右クリックした場合も同じです。
メニューは、項目を選んだとき、Escape を押したとき、タブ内の別の場所を押したとき、選択やシートが変わったとき、そして自分または共同編集者の編集でシートの行が変わったときに閉じます。

並べ替え​

Sort by <column>, ascending と Sort by <column>, descending は、表示だけでなくシートの行そのものを並べ替えます。新しい順序はファイルに保存され、共同編集者にも見え、Export CSV もその順序に従います。1 回の Undo で元の順序に戻ります。
行は、セルに表示されているテキスト(用語の Domain はドメインの名前)で、表示言語の文字順に比較され、数値は値で比較されるので、2 は 10 より前になります。空のセルは昇順でも降順でも最後になり、比較して等しい行は元の順序を保ちます。すでにその順序になっているシートを並べ替えても、何も記録されません。
検索はそのままで、選択もそのままですが、選択したセルには別の行の内容が入ります。

CSV の読み込みと書き出し​

Domains、Words、Terms は、それぞれ CSV ファイルから読み込み、CSV ファイルに書き出せます。これらのファイルは辞書タブ専用のもので、キャンバスのコンテキストメニューの Import と Export では読み込みも書き出しもできません。ファイルの読み込みと書き出しを参照してください。

読み込み​

バーまたはグリッドのメニューの Import CSV は、ホストの読み込みダイアログではなく、.csv ファイル用のブラウザ自体のファイルピッカーを開きます。同じファイルをもう一度選ぶと、もう一度読み込まれます。
ファイルは、どのシートを表示しているかにかかわらず、ヘッダーが示す辞書に読み込まれ、その後タブはそのシートを表示して、グリッドにキーボード入力を渡します。シートは検索、選択、スクロール位置を保つので、検索で隠れている行や、表示範囲より下に追加された行は見えないままです。
ファイルは、バイトオーダーマークの有無にかかわらず UTF-8 として読まれ、有効な UTF-8 でない場合は、古い公共データ共通標準のファイルのように EUC-KR として読まれます。

ツールバーから辞書タブを開き、Import CSV でドメイン、単語、用語を読み込み、ファイルごとにタブがそのシートに切り替わって追加した内容を報告する様子

行は次のように取り込まれます。

  • 名前のある各行は、シートの同じ名前の行を、ファイルに列があるフィールドについて更新します。ファイルにない列のフィールドはそのままです。名前は前後の空白を除き、大文字と小文字を区別して比較されます。
  • シートにない名前は、ファイルの順に、シートの最後の行の後に追加されます。
  • 読み込みで行が削除されることはありません。
  • 名前が空の行はスキップされます。ファイルに同じ名前が 2 回ある場合は、後の行が採用され、前の行はスキップとして数えられます。空行は行として扱われません。
  • 用語のドメインは名前で探され、その名前を持つ最初のドメインが使われます。どのドメインにもない名前の場合、用語は紐付けのないままになります。そのため、先にドメインを読み込んでください。

1 回の読み込みは、そのシートの Undo の 1 ステップになります。
その後、例えば 1 added · 1 updated · 2 skipped のようなトーストが表示されます。シートの行と同じ行は追加にも更新にも数えられないので、同じファイルをもう一度読み込んでも何も変わらず、ステップも記録されません。
ファイルの用語がダイアグラムにないドメインを指定している場合は、4 unknown domains: 연월일, 금액, 번호 のように、2 行目に最初の 3 つが表示されます。
ヘッダーがどのレイアウトにも一致しない、または 2 つのレイアウトに一致するファイルは何も読み込まず、エラーのトースト Couldn't read this file as words, terms or domains が表示されます。

ファイルレイアウト​

各辞書は 2 つのレイアウトを読み込みます。1 つ目は Export CSV が書き出すエディタ独自のレイアウトで、フィールド名をヘッダーにします。

辞書ヘッダーファイルに必要な列
単語name,abbreviation,englishName,description,synonyms,forbiddenWordsname、abbreviation
用語name,physicalName,domain,description,synonymsname、physicalName
ドメインname,category,dataType,descriptionname、dataType

列の順序は自由で、用語の domain にはドメインの名前が入り、それ以外の列は無視されます。ヘッダーでは大文字と小文字が区別され、セルは空白も含めて書かれたとおりに読まれます。

2 つ目は、韓国の公共データ共通標準(공통표준)のファイルのレイアウトです。

辞書ファイルに必要な列ほかに読み込む列
単語공통표준단어명공통표준단어영문약어명(英略語)、공통표준단어 영문명(英語名)、공통표준단어 설명(説明)、이음동의어 목록(同義語)、금칙어 목록(禁止語)
用語공통표준용어명공통표준용어영문약어명(物理名)、공통표준도메인명(ドメイン、名前で)、공통표준용어설명(説明)、용어 이음동의어 목록(同義語)
ドメイン공통표준도메인명、데이터타입공통표준도메인분류명(分類)、공통표준도메인설명(説明)、데이터길이、데이터소수점길이

ドメインの 데이터타입、데이터길이、데이터소수점길이 は 1 つのデータ型にまとめられます。NUMERIC(15,2)、CHAR(8) のようになり、長さがない場合は DATE のように型だけになり、小数点以下の桁数が 0 の場合は NUMERIC(15) のように省かれます。
これらのファイルでは、セルの前後の空白が除かれ、改訂履歴のようなほかの列は無視されます。
どちらのレイアウトでも、ヘッダー名に含まれる空白は無視されます。

書き出し​

バーまたはグリッドのメニューの Export CSV は、表示しているシートをエディタ独自のレイアウトで保存します。検索の表示にかかわらずすべての行をシートの順に書き出し、用語のドメインは名前で書き、削除したドメインの場合は空にします。
ファイルはバイトオーダーマーク付きの UTF-8 で、CRLF の改行を使い、引用符、カンマ、改行を含むフィールドだけが引用符で囲まれます。スプレッドシートで開くことができ、読み込み直すと同じ行に戻ります。
ファイル名は <database name>-<timestamp>-words.csv、-terms.csv、-domains.csv で、エディタのほかの書き出しと同じ方法で保存されます。書き出しを参照してください。

Checks には書き出しがなく、読み取り専用のエディタでは読み込みも書き出しもできません。

Undo と Redo​

Domains、Words、Terms は、ダイアグラムとは別に、それぞれ独自の Undo の履歴を持ちます。このタブでは、Ctrl + Z と Ctrl + Shift + Z (Windows/Linux) または ⌘ + Z と ⌘ + Shift + Z (Mac)、およびツールバーの Undo と Redo は表示しているシートに対して働き、ツールバーには Time Travel が表示されません。Checks では何もしません。
ERD タブの Undo でシートの編集が元に戻ることはありません。辞書のシートを参照してください。

タブ内のキー​

キーボードのフォーカスがタブ内にある間は、次のエディタのショートカットが働きます。ショートカットを参照してください。

  • Search(Ctrl + K (Windows/Linux) または ⌘ + K (Mac))はクイック検索を開きます。
  • Toggle Explorer(Ctrl + F (Windows/Linux) または ⌘ + F (Mac))は ERD タブに切り替えてエクスプローラーを開き、その検索フィールドに移ります。
  • Undo と Redo は表示しているシートに対して働きます。Undo と Redo を参照してください。
  • Add Column と Remove Column は行を挿入、削除します。行の追加と削除を参照してください。

用語のドメインの一覧も含め、セルの編集中は Search と Toggle Explorer は何もしないので、入力したテキストが失われることはありません。

それ以外のエディタのショートカットはタブ内にとどまり、キャンバスには届きません。Alt + N (Windows/Linux) または ⌥ + N (Mac) でテーブルが追加されることはなく、Delete と Backspace でキャンバス上のものが削除されることもありません。
代わりに、グリッド独自のキーがシートに対して働きます。Enter はセルを編集し、Delete と Backspace は選択したセルを空にし、Ctrl + A (Windows/Linux) または ⌘ + A (Mac) はすべてのセルを選択し、Escape は編集を取り消すか、グリッドのメニューを閉じるか、検索フィールドを空にします。コピー、切り取り、貼り付けもタブ内にとどまります。コピーと貼り付けを参照してください。

読み取り専用のエディタ​

readonly のエディタでも、タブを開くことができ、すべてのシートが表示されます。
シートの切り替え、検索、選択、スクロール、列幅の変更、コピーは通常どおり使え、Checks から Enter またはダブルクリックでチェックの対象へ移動することもできます。チェックのマークも表示されます。

どのセルも編集、貼り付け、消去を受け付けず、チェックがマークしていないすべてのセルは読み取り専用の背景で描かれます。
Add Row、Delete Rows、Import CSV、Export CSV は非表示になり、行のキーは何もせず、右クリックするとブラウザのメニューが開きます。空のシートにはヒントが表示されず、ツールバーには Undo も Redo も表示されません。

共同編集者とファイル​

ダイアグラムのファイルは、単語、用語、ドメインを、並べ替えの結果も含めたシートの順序で保持し、値を持たない行は含めません。
また、各テーブルと各カラムの論理名、各物理名が辞書の付けた名前かどうか、ドメインが一覧にある間の各カラムのドメインの紐付けも保持します。チェックとマークはこれらから求められ、保存されることはありません。

共同編集のセッションでは、並べ替えや挿入も含め、ほかのエディタの辞書の編集が各エディタにその都度反映されます。各エディタは自分のシート、検索、選択を保ち、シートの履歴には自分の編集だけが記録されます。
その間に共同編集者が削除した行への編集や貼り付けでは何も保存されず、トースト Nothing saved: the row was removed が表示されます。
辞書タブより前のリリースのエディタは、論理名、ドメインの紐付け、辞書を含めずにダイアグラムを保存します。リリースの混在を参照してください。

Schema SQL、GraphQL、DBML、AML の Import では辞書はそのまま残り、JSON の Import ではファイルの辞書に置き換わり、Import and Add では辞書は取り込まれません。外部ファイルの読み込みを参照してください。
コーディングエージェントは、MCP サーバーを通じて単語、用語、ドメインを編集し、論理名とドメインを設定し、物理名を再生成し、チェックを一覧で取得します。辞書と辞書のチェックを参照してください。CSV ファイル用のツールはありません。