今回は、Silverの「運用管理 - インストール方法」からの出題です。
template0 に CREATE TABLE などでオブジェクトを追加作成することはできない
template1 に CREATE TABLE などでオブジェクトを追加作成することはできない
template0 を DROP DATABASE で削除することはできない
template1 を DROP DATABASE で削除することはできない
データベース postgres をテンプレートデータベースとして利用して新しいデータベースを作成することができる
※この例題は実際のOSS-DB技術者認定試験とは異なります。
例題公開日:2012年12月27日
initdbコマンドにより初期化された直後のデータベースクラスタには、template0, template1という2つのテンプレートデータベースと、postgresというユーザ用のデータベースがあります。
template0にはシステム標準のオブジェクトのみが含まれます。template0にはオブジェクトを追加することはできませんし、またtemplate0自体を削除することもできません。
初期状態ではtemplate0とtemplate1は同じ内容ですが、template1には自由にオブジェクトを追加することができます。
PostgreSQLにおけるCREATE DATABASEはテンプレートデータベースの複製です。
デフォルトではtemplate1の複製が作られますから、複数のデータベースで共通に使いたいオブジェクトや関数があるときは、事前にtemplate1にそれを作成しておくことで、どのデータベースでも利用できるようになります。
また、DROP DATABASEでtemplate1を削除しても問題ありません。もちろん、template1がない状態でCREATE DATABASEを実行する時は、適当なテンプレートデータベースを明示的に指定する必要があります。
テンプレートデータベースとしてtemplate1以外のデータベースを指定しても構いません。各データベースにテンプレートかどうかの属性があるわけではなく、postgresデータベースをテンプレートとして、その複製を作ることもできます。
間違っているものを選ぶ問題ですので、正解はBとDです。
今回の解説について、理解できないポイントがあればどんどん質問をお寄せ下さい。
採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
※試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。
© EDUCO All Rights Reserved.