goo blog サービス終了のお知らせ 

I Love DB

DBを愛する人のブログ

識別子の長さ-30バイトの壁

2010-06-13 18:27:37 | 開発サイドから見たOracleとSQL Server
皆さんは,データベースオブジェクトやカラム名をどのように命名されているでしょうか。きっと,それぞれのプロジェクト毎の開発規約に則って命名されているでしょう。システムの規模が大きくなってくるほど,テーブル名やカラム名も複雑で長いものが出てきやすくなります。というわけで,識別子の長さについてです。

SQL Serverの識別子の長さは128文字です。ですので,テーブル名128文字+カラム名128文字のSQLも作成しようと思えば可能です。あまり見たくないですし,エイリアスを使えば,もう少し短くなります。とはいえ,これは贅沢な悩みです。何しろOracleは30バイトなのです。特に困るのはテーブル名です。テーブル名からインデックスやビュー,バックアップテーブルを派生させることを考えると25,6文字ぐらいが実際に使用できる文字数です。xxxTransactionsなどという名称にすると,Transactionsだけで12文字を使うのでとても窮屈です。

最近の言語に目を向けてみると,識別子の最大長の定めがありません。ですから,省略形にするよりはキャメル表記を使ってクラス,変数を定義していることが一般的になってきました。そうなるとO/RマッピングでDB項目名とJava,.Netの変数名を調和させるのに苦労してしまいます。

確かに二昔ぐらい前のシステム開発環境は,640*400や640*480程度の14インチCRT上で横80桁ぐらいしか表示できませんでした。ですが,今はターミナルでさえ,もっと広大な画面に表示させることができます。システム上の制約がどんどんなくなってきているのですから,Oracleもこのあたりの拡張をお願いしたいところです。何しろあのExcelでさえ,2007からはワークシートサイズを行,列共に拡大したのですから。

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。