新規のシステムで、全体の見積もりを行う中で、DBだけに注目して容量の算出、テーブル作成、正規化等プログラミングする前にいろいろやる事があると思いますが、その部分だけの作成にはどのような情報があれば、工数を算出できるのでしょうか?

勿論、テーブルの数や名前、その中の項目数や項目名、収まるデータ量なんか
はDB作成以前の設計段階での工数見積もりに入ってくると思うので、ここでは
DB見積もりから除外して考えております。

宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

基本的に、DBの見積もりをミリミリ気にしないと


いけない状態(環境)であるならば、
まずは!
単純なフィールドサイズ、レコード件数です。


検索スピード当に関する、キー等は
2の次ですね。この変は経験や実動でしか、
図れないですね
それと、費用対効果の問題の方が大きいです。
そりゃー、でかい方がいいに決まってますが、
お金の問題が一番ですよね。
    • good
    • 0
この回答へのお礼

まずは、そこから初めて行こうと思っております。
有難う御座いました。

お礼日時:2002/03/30 04:05

まず、DBの置かれている環境のハードウェアとOS、外部とのインターフェース、プラットフォーム、開発言語、技術者(市場で)の習熟度、開発環境と本番環境の差異の有無、移植の有無、サポート体制と肝心のDBの利用の要件が必要と思われます。



また、項目数と項目名、データ量に言及されていますが、肝心のインデックス数とリンケージの関係、バックアップ環境や回線状況なども容量に関わってきます。
    • good
    • 0
この回答へのお礼

大変勉強になります。これを念頭において取り組んで行きたいと思います。
有難う御座いました。

お礼日時:2002/03/30 04:04

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qdb2setupでdb2inst1が作成されない

お世話になります。

redhat9にDB2ver8を導入しようとしています。
db2setupを実行しGUIインストールを行いました。
しかし、セットアップ完了画面でなぜかdb2inst1だけ作成されておらず、db2start等のコマンドができません。新しくdb2inst1とdb2grpを作成して、再度インストールを実行してもうまくいきません。
色々調べてみたのですが、いまいちよい事例が見つからないので、質問させていただきますので、よろしくお願いします。

以下に失敗していると思われるログを抜粋します。

DB2 ファイル・セットのインストール:.......成功
DB2 ライセンスの登録:.......成功
デフォルト・グローバル・プロファイル・レジストリー変数の設定:.......成功
DB2 Administration Server の作成:.......成功
エラー:現在の DB2INSTANCE を "db2inst1"
に切り替えることができませんでした。戻りコードは "-2029059916" です。

インスタンス・リストの初期化:.......成功
DB2 インスタンス構成のカスタマイズ:.......成功
エラー:DBI1131E ユーザー ID db2inst1 が無効です。

説明:

与えられたユーザー ID にアクセスしようとして失敗しました。
次の状態のいずれかが発生していると考えられます。

o このユーザー ID がシステムにない。

o このユーザーのホーム・ディレクトリーが正しく設定されていない。

o DB2 で必要なユーザー属性のいずれかが設定されていない。

o このユーザーの UID が 0 である。

お世話になります。

redhat9にDB2ver8を導入しようとしています。
db2setupを実行しGUIインストールを行いました。
しかし、セットアップ完了画面でなぜかdb2inst1だけ作成されておらず、db2start等のコマンドができません。新しくdb2inst1とdb2grpを作成して、再度インストールを実行してもうまくいきません。
色々調べてみたのですが、いまいちよい事例が見つからないので、質問させていただきますので、よろしくお願いします。

以下に失敗していると思われるログを抜粋します。

DB2 ファイル・セッ...続きを読む

Aベストアンサー

No.3です。

No.4 の、AS400さんの回答と重複しますが、
初回インストール時は、インスタンスは作成されなかったけれども、インスタンスユーザーのホームディレクトリに、sqllibディレクトリが作成され、ひととおりDB2が操作できる環境が整っていたはずなので、AS400さんの回答の通りでよかったと思います。

その後、DB2のアンインストールをされたとのことですが、DB2のCD-ROMメディアに入っている、アンインストール用のシェルスクリプト(db2_deinstall)を実行したということでよいでしょうか?

このシェルスクリプトでアンインストールをかけた場合は、以下の情報が残ったままとなってしまい、完全にDB2をアンインストールすることはできません。

1) DB2の各種ユーザー情報(+ホームディレクトリも)
2) DB2インストール履歴情報
3) DB2サービスポート設定
4) DB2インストールディレクトリ

※3)、4)、は残ったままでも、再インストールに影響はないと思いますが、1)、2)の情報が残っていると、場合によってはうまくインストールできません。

今回の原因は、初回インストール時に作成されたユーザー、db2inst1 が存在していたにも関わらず、インスタンスユーザー作成画面で、「新規ユーザー」として db2inst1 を指定した為に、ユーザーが重複している等のエラーにより、インストールが失敗しているのではないでしょうか。
(※ユーザー確認方法 = cat /etc/passwd )
この場合、「既存のユーザー」にして、db2inst1 を指定してインストールを進められると思いますが、気分的にさっぱりしたいという意味も込めて、一旦、DB2を完全に消去して再チャレンジしたほうがよいと思います。

以下の手順でDB2を完全にアンインストールすることができます。

---------------------------------------------

(以下rootユーザーで実行)

1. db2_deinstallの実行(省略します)

2. DB2各種ユーザーの削除

$ userdel -r ユーザー名

3. DB2インストール履歴情報の削除

$ rm -fR /var/db2

4. DB2サービスポート設定の削除

$ vi /etc/services

???等として、ファイルを開き、db2*** のエントリを削除

5. DB2インストールディレクトリの削除

$ rm -fR /opt/IBM/db2

念の為、一度OSを再起動してから、db2setupを実行してみて下さい。

---------------------------------------------

また、既にご覧になられているかもしれませんが、以下の情報が参考になると思います。

「DB2 UDB V8.2 for Linuxクイックインストール」
http://www-6.ibm.com/jp/software/data/developer/library/techdoc/db2v82_install_linux.html

No.3です。

No.4 の、AS400さんの回答と重複しますが、
初回インストール時は、インスタンスは作成されなかったけれども、インスタンスユーザーのホームディレクトリに、sqllibディレクトリが作成され、ひととおりDB2が操作できる環境が整っていたはずなので、AS400さんの回答の通りでよかったと思います。

その後、DB2のアンインストールをされたとのことですが、DB2のCD-ROMメディアに入っている、アンインストール用のシェルスクリプト(db2_deinstall)を実行したということでよいでしょうか?

この...続きを読む

QDBのインデックスを作成した時と、作成してない時の動きを教えて下さい。

DBのインデックスを作成した時と、作成してない時の動きを教えて下さい。
インデックスを作った際のアルゴリズムはB木などいくつかありますが、
作成してない場合は、内部ロジック的には、どのように検索を行っているのでしょうか?

Aベストアンサー

インデックスが無い場合は、普通はシーケンシャルスキャンになると思います。
日経BPのサイトに処理の流れが載っていました。

SQLの処理の流れ(インデックス無し)
http://itpro.nikkeibp.co.jp/article/COLUMN/20070918/282294/?ST=system

インデックス(Bツリー)を使わない場合と使う場合の比較。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070919/282395/?ST=system

Q2つのテーブルを比較して一致した行を除外して表示するクエリ

レイアウトが全く同じテーブル(選択クエリ)が2つあります

Aテーブルには全行データ
Bテーブルには除外する分の行データが入っています

2つの行を比較し、Bテーブルに一致した1行を除き、表示するクエリを教えて下さい。
よろしくお願いします。

Aベストアンサー

一般的にはleft joinしてnullをチェック

select A.* from A
left join B on A.A1=B.A1 and A.A2=B.A2 and A.A3=B.A3
where B.A1 is null

Q2つのテーブルAとBをマージして新しいテーブルCを作成したいのです。

2つのテーブルAとBをマージして新しいテーブルCを作成したいのです。マージするときは、最新の売上日フィールドをもつレコードを取得します。環境はAccess2000です。どんなSQL文を作成すればいいのでしょうか? 
また、テーブルAにしかないレコード、又はテーブルBにしかないレコードは、そのままテーブルCに追加したいです。
※下記テーブルAとBは、Access内に存在します。テーブルCはAとBのマージ後の結果作成されるテーブルです。

テーブルA
顧客番号   売上日   商品名   備考
   1  2000-01-01  ふでばこ   A
   2  2000-02-02  鉛筆     A
   3  2000-03-03  定規     A
   4  2000-04-04  シャーペン  A
  99  2000-09-09  パソコン   A

テーブルB
顧客番号   売上日   商品名   備考
   4  2001-04-04  シャーペン  B
   2  2000-02-02  鉛筆     B
   3  2001-03-03  定規     B
   1  1999-01-01  ふでばこ   B
 100  2005-11-11  ワープロ   B


テーブルAとBを、最新の売上日の条件でレコードを取得し新しいテーブルCを作成する。

テーブルC
顧客番号   売上日   商品名   備考
   1  2000-01-01  ふでばこ   A
   2  2000-02-02  鉛筆     A
   3  2001-03-03  定規     B
   4  2000-04-04  シャーペン  A
  99  2000-09-09  パソコン   A
 100  2005-11-11  ワープロ   B

SQL文で処理可能なのでしょうか?

2つのテーブルAとBをマージして新しいテーブルCを作成したいのです。マージするときは、最新の売上日フィールドをもつレコードを取得します。環境はAccess2000です。どんなSQL文を作成すればいいのでしょうか? 
また、テーブルAにしかないレコード、又はテーブルBにしかないレコードは、そのままテーブルCに追加したいです。
※下記テーブルAとBは、Access内に存在します。テーブルCはAとBのマージ後の結果作成されるテーブルです。

テーブルA
顧客番号   売上日   ...続きを読む

Aベストアンサー

サブクエリでネストしても出来ない処理があるのでクエリを分けた方が簡単ですよ。
単純にするなら3つ

'qry1として
SELECT テーブルA.顧客番号, テーブルA.売上日, テーブルA.商品名, テーブルA.備考
FROM テーブルA
UNION SELECT テーブルB.顧客番号, テーブルB.売上日, テーブルB.商品名, テーブルB.備考
FROM テーブルB;

'qry2として
SELECT qry1.顧客番号, Max(qry1.売上日) AS 売上日の最大, qry1.商品名
FROM qry1
GROUP BY qry1.顧客番号, qry1.商品名;

'qry3として
'テーブルCを作成するなら
SELECT qry2.顧客番号, qry2.売上日の最大 AS 売上日, qry2.商品名, qry1.備考 INTO テーブルC
FROM qry2 INNER JOIN qry1 ON (qry2.売上日の最大 = qry1.売上日) AND (qry2.顧客番号 = qry1.顧客番号)
GROUP BY qry2.顧客番号, qry2.売上日の最大, qry2.商品名, qry1.備考;

'既存のテーブルCに追加するならこちらで
INSERT INTO テーブルC ( 顧客番号, 売上日, 商品名, 備考 )
SELECT qry2.顧客番号, qry2.売上日の最大, qry2.商品名, qry1.備考
FROM qry2 INNER JOIN qry1 ON (qry2.売上日の最大 = qry1.売上日) AND (qry2.顧客番号 = qry1.顧客番号)
GROUP BY qry2.顧客番号, qry2.売上日の最大, qry2.商品名, qry1.備考;

サブクエリで処理できるところもありますがその辺はご自分でネストしてみてください。

サブクエリでネストしても出来ない処理があるのでクエリを分けた方が簡単ですよ。
単純にするなら3つ

'qry1として
SELECT テーブルA.顧客番号, テーブルA.売上日, テーブルA.商品名, テーブルA.備考
FROM テーブルA
UNION SELECT テーブルB.顧客番号, テーブルB.売上日, テーブルB.商品名, テーブルB.備考
FROM テーブルB;

'qry2として
SELECT qry1.顧客番号, Max(qry1.売上日) AS 売上日の最大, qry1.商品名
FROM qry1
GROUP BY qry1.顧客番号, qry1.商品名;

'qry3として
'テーブルCを作成す...続きを読む

QOracleのテーブル作成スクリプトを作成したい

Oracle8i のDBA Studioで数十の表を作成したのですが、ここからテーブルの作成スクリプトを出そうとして困りました。いわゆる Create Table文なのですが、これを自動で簡単に作る方法はないでしょうか?SQL-ServerのEnterprise Managerでは、SQLスクリプトの作成があって、Create文を簡単に生成できるのですが、これと同じような感覚で、既に作成してあるテーブルのCreate文を出力する方法はないでしょうか?Oracleには、ほとんど慣れていないので、方法があると思うのですが、探し方が悪いらしく途方にくれています。どなたかよい方法を御存じないでしょうか。

Aベストアンサー

Exportユーティリティは、通常はコマンドプロンプトから起動します。
Oracle8iの場合は "exp"
Oracle8.0の場合は"exp80"
だったと思います。

コマンドの後にログインID/パスワード、オプションパラメータを色々と
設定します。DBA StudioのようにGUI操作ではありませんが、Oracleは
本来はコマンドラインからコマンドを入力するのが、本来の操作方法です。

これを機会に、コマンドでOracleを操作する方法も勉強されてはどうですか?


#Oracleは、本来はプロフェッショナル向けのデータベースソフトです。
#初心者向けの簡単な操作方法を希望するのならば、他のDBに
#乗り換えた方がいいでしょう。


このカテゴリの人気Q&Aランキング

おすすめ情報