DB連動型のサイト構築を検討しており、LINUX+PostgreSQLか、
WinNT+Oracleのどちらで開発すべきか迷っています。
ちなみに私は技術者ではなく、全体の構想を作る責任者です。
開発会社に依頼するにあたっての質問です。

【システム概要】
●楽天市場の「ショップ作成ツール」のようなシステム。複数のお店が
 自社の商品を登録し、各見せが独自に検索機能・カート機能付きのショッ
 プサイトを構築できるようにする。(各ショップにASP。)
●「楽天」のシステムよりも、検索を充実したものにする。
 (「対象顧客」「商品特性」といった検索項目を追加)
●その他独自の機能をいくつか持たせたいと思っています。
●DB管理者は、開発後は社内に置きたい。

想定利用店舗数は1000店舗目標(1店舗平均50商品として5万品目)
ユーザーの検索利用は、1店1日100リクエストあるとして、10万リクエスト。
目標値なので、実態はその10分の以下かもしれませんが・・・

【現状聞いている長短所】
■Postgre
 ○基本的にソフトは無料なので、低価格で開発できる。
 ○ハード的にも、DB組込み済みのレンタルサーバーがあり、ランニングも含め
  低価格でスタートできる。
 ×ユーザー数、リクエスト数が増えると、パフォーマンスに問題あり。
 ×安定性の面で、不安。

■オラクル
 ○開発できる会社(技術者)が多く、発注先を選びやすい。
 ○安定している。
 ×値段が高い

※当社は中小企業ですし、利用者が目標値に届くかどうか?という不安要素も
 あるので、できるだけ低価格で開発できるようにしたいのですが・・・
 
費用を考えると、Postgreでも問題ないのであれば、そうしようかという
雰囲気です。
以上、ご意見をお聞かせいただければ幸いです。

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

A 回答 (3件)

4月号のDBマガジンでそのような内容の記事がありました。


OracleとSun、伊藤忠の3社の広告記事であったと思います。

Linux(FreeBSD?) + PostgreSQLの構成からSun + Oracleへ移行するような記事でした。

双方のデータベースの機能、パフォーマンス比較やデータ移行にともなう注意点などが参考になります。
実際の事例としてWedで構築されたシステムがあったかと思います。

データベースのバックアップやリカバリについては、圧倒的にOracleが柔軟に行えます。
PostgreSQLはデータベースのクリーンアップ処理が必要なりますので24時間フル活動するシステムには問題になると考えます。
また、PostgreSQLの最新バージョンからは使用可能となったと思うのですがOuter Joinが以前は使用できませんでした。
とりあえず、価格の前に機能比較されることをお勧めします。

この回答への補足

昨日(3/15)DBマガジン購入しました!
オラクルの広告記事なので、100%鵜呑みにしていいのかどうか
わかりませんが、Postres→オラクルへの移行のポイントということで、
大変参考になりました。

記事によると、移行の実例が2つ紹介されていましたが、両方とも
会員制サイトで、会員数が6万人を超えたところで移行を検討された
ようです。(月間70万PVを超えたあたり?)
その辺が一つの目安ということですね。

補足日時:2001/03/18 10:00
    • good
    • 0
この回答へのお礼

takasgy さん、ご回答ありがとうございます。
早速近所の本屋に行きましたが、DBマガジン置いてませんでした。 (^^;)
また他の本屋で探して、機能比較などを参考にさせていただきます。

>PostgreSQLはデータベースのクリーンアップ処理が必要なりますので24時間
>フル活動するシステムには問題になる

なるほど、参考になります。
WEBでの利用を考えると、やはり24時間フル稼働に近い状態が必要だと思います。
おっしゃるように、機能比較をよくしてみたいと思います。
本当にありがとうございました!

お礼日時:2001/03/16 20:06

すみません、きちんと調べずに言ったため、情報が古かったり


質問者の求めるものと違ってまして・・・

一応、私が参照した物について書いておきますね。
日経コンピュータ 2000年11月20日号 62ページ~63ページ
簡単な内容は、平和堂の販売データ参照システムにおいて
WIN2KServer+Oracle8iWorkgroupServer+開発費(合計:1640万)が
WIN2KServer+PostgreSQL+開発費(合計:1000万)になった。
及び、イー・ゴルフにおいてはRDBにSolaris版OracleからLinux版
Oracle8iWorkgroupServerに変えると、値引き後価格が1920万から200万に
なったと言うもの話です。どちらも見積もりが掲載されています。
あっと言う間に情報が古くなっている上に、質問者の求めるものは
不特定多数のライセンスじゃないと駄目でした、ごめんなさい。
    • good
    • 0
この回答へのお礼

bee_314さん、何度もありがとうございます。
こちらこそ、お手間を取らせまして、申し訳ありません。
「WEBでの利用」ということを、もっとハッキリ書いておくべきでした・・・

ところで、開発費の見積もりは参考になりました。
特に「Solaris版OracleからLinux版 Oracle8iWorkgroupServerに変えると、
値引き後価格が1920万から200万になった」というのは、スゴイですね!!
1720万円もダウンですか!?

情報を参考にさせていただいて、いいシステムをよりやすく開発できるように
頑張ります。ありがとうございました。

お礼日時:2001/03/16 11:38

LINUX+Oracleも選択肢に加えられてはどうでしょうか?


LINUX版のOracleは、WinNT版に比べて、遥かに安かったと思います。
そうすると、質問者の認識されている両方のメリットを取り入れられる
ような気がします。

私は専門的知識は全くないですが、雑誌などでLINUX版のOracle導入にて
導入費用を安く押さえたって記事を見て参考になればと思い書いてみました。

参考URL:http://www.oracle.co.jp/linux/index.html
    • good
    • 0
この回答へのお礼

bee_314 様

情報をありがとうございます!早速オラクルのHPを見に行きましたが、
下記のような記述があり、Linux版でもオラクル自体の価格は同じだそうです。

========== 日本オラクル社のサイト内の説明文 ==============
現在発売されているOracle8i Workgroup Server/Enterprise Editionは、
プラットフォームに関らず同一の価格体系が適用されます。
==========================================================

オラクル自体の価格がバカ高いと聞いているので、どれくらい
「導入費用はを安く押さえた」のか、気になるところです。
それとも、公には同一価格でも、実勢価格はOSによって、違うのかな!?

お礼日時:2001/03/15 20:41

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

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

Q運用中のALTER TABLE

運用中でアクセスがあるテーブルに
ALTER TABLEで項目を追加したいのですが
問題ありますでしょうか?
オラクル9iです。

宜しくお願い致します。

Aベストアンサー

(1)ALTER TABLE文は表ロックがかかります(自身なし(^^;)。
SELECT ~ FOR UPDATE NOWAITで実行するSQL文等があるとリソースビジー
(ORA-00054)が戻る場合があります。

(2)テーブルを変更することによっていろいろ(プロシージャなどが)
無効(INVALID)になる場合がありますので、オブジェクトの状態を確認
したほうが良いと思います。

(3) DEFAULT指定がALTER TABLE文にある場合、undo領域が圧迫
(領域不足)したり、ALTER TABLEがなかなか完了しなかったりします。
(私はコレでハマリました(^^;)

今のところ、思いつくのはコレだけですが、いずれにしろテストできる
環境で確認されたほうが良いと思います。

QpostgreのDBデータを、丸ごとAccessに移行する方法って?

Linuxサーバで稼動しているpostgre/DBのデータベースに入っているテーブルやそのデータを、
WindowsのAccessに取り込みたいのですが、何か方法はあるでしょうか?

Aベストアンサー

机上の理論ですが、PostgreのODBCドライバを使って
Accessでゴニョゴニョするってのはどうでしょう。

http://www.interwiz.koganei.tokyo.jp/software/PsqlODBC/
http://www.nami73.com/download/psqlodbc.htm

QOracleのCreate Table 文のStorage句

お世話になります。

OracleのCreate Table 文のStorage句のNextの値を
変更したいのですが、できるのでしょうか?

Alter Table文で変更するのでしょうか?
手元にマニュアルが無く困っております。

よろしくお願いします。

Aベストアンサー

alter table テーブル名 storage ( next 変更後のサイズ );

だっけかな?

QDB開発

製品管理DBをAccess勉強のために作成しようと思っています。開発経験が無い為、どのような工程で作業を進めていけばいいのでしょうか?
どなたかお詳しい方いらっしゃいましたら、教えて下さい。

Aベストアンサー

DBを使用したいわゆる「ショッピングカート」のCGIを
作成したことのある者です。

#1の方の内容とともに、私がやっていた手法と視点を
挙げてみたいと思います。


・製品に関する情報の項目をひとまず書き並べる。

名称、型番、色や大きさ(縦、横、奥行き)、重さなどの
管理したい情報を細かく気味に書き出します。
そして、開発途中でも気が付いたらすぐに追加していきます。
なのでルーズリーフなどのメモ用紙を活用すると良いでしょう。
また、「あると便利かも」と思いついた管理情報も
記録していくと良いでしょう。
(食品だと「季節ごとに変動する有効期限項目」などがこれにあたります。)


・要求される情報の正確さを明確にする。

販売した時期によって金額が変わったりした場合の対応などについてです。
販売記録を残す場合、「どの金額の時」に「いくつ売れたのか」といった
履歴をのこす時、その履歴情報参照の時にどれだけその情報の量が
要求されるかです。
「その時の販売情報が100%再現できる」場合と
「単純に数量が分かれば良い」場合では
販売記録に対して、上記の商品情報の中で残しておくべき情報量が
変わってくるのが分かると思います。


・操作しやすく、必要な情報は分かりやすく、
 そして適切なメッセージが表示される画面設計。

情報量は多くても、入力するのに必要な項目がどこで、
どんな入力をすればよいのか分かりやすいインターフェースが必要です。
そして入力にエラーがあった時に、そのエラー内容が確実に操作者に伝わり
間違った処理が続行されないようにガードする必要があります。
この部分が不十分だと「数百億規模の損失が発生する場面もある」
というのは記憶に新しいと思います。


・「勉強である」ことを活用する。

勉強であるということは、つまり「仕事ではない」。
手順を守って行う必要が無いということです。
なので、「気が付いた事は手をつけてしまう」のです。
その時に「何に手をつけているのか」、
「何に手をつけなければいけないのに気が付いたのか」を
忘れることなく書き出していくことが大切です。
そうすれば作業をすすめていくうちに
「どんな情報が実は必要となっていくのか」
「どんな点を気にしていれば良いのか」
「どんな例外パターンが発生しそうなのか」
といった必要事項が積み重ねられていくと思います。


ある程度進行していくと、気にしていく項目と
実際の作業進行速度とのギャップで
頭がパンクしそうになるかもしれませんが、
注意すべき点を気にするように「心がけ」ていれば
その経験はしっかりと次に活かされることと思います。
そしてそれがまた次の開発の時のヒントとサンプルに
なってくれることでしょう。

DBを使用したいわゆる「ショッピングカート」のCGIを
作成したことのある者です。

#1の方の内容とともに、私がやっていた手法と視点を
挙げてみたいと思います。


・製品に関する情報の項目をひとまず書き並べる。

名称、型番、色や大きさ(縦、横、奥行き)、重さなどの
管理したい情報を細かく気味に書き出します。
そして、開発途中でも気が付いたらすぐに追加していきます。
なのでルーズリーフなどのメモ用紙を活用すると良いでしょう。
また、「あると便利かも」と思いついた管理情...続きを読む

Qmysqlのalter table中のロックについてです。

mysqlのalter table中のロックについてです。


下記のように、alterでテーブルを再構築中に同じテーブルにinsertが実行された場合、
接続Bのinsertはブロックされるかと思うのですが、テーブルが大きくalterに時間がかかる場合、
タイムアウトなどは発生するのでしょうか。
またもし発生する場合、タイムアウト値の設定などの確認方法はあるのでしょうか。

1.接続A
 alter table table1 add columnB int(11) ;

2.接続B(接続Aのalter実行中)
 insert into table1(columnA) values('aaa');

Aベストアンサー

ロック待ち関連のパラメータは、
innodb_lock_wait_timeout
table_lock_wait_timeout
だと思うんですが、DDLでロックされているテーブルのロック待ちに関しては、上記パラメータが関係ないようでした。
私の設定値は、デフォルトの50(両方とも)

※確認方法
show variables like '%timeout%';


2パターン、やってみました。

セッション1
alter table table1 add primary key(c1); /* 20分間 */

セッション2
start transaction;
insert into a values (100000001); /* セッション1終了後、ロック解除 */
rollback;

セッション1
alter table table1 drop primary key; /* 10分経過 */

セッション2
lock tables table1 write; /* おそらく、セッション1終了後ロック解除するのでしょう */

Q商品DBの開発

現在、商品マスタDBの開発を検討しています。商材の追加が月100件程度あり、更新も結構頻繁に発生します。使用者が、10人程度のためアクセスのDBをファイルサーバー経由で共有する形をとりたいと考えていました。
しかし、マスタ登録前の商談中の商品に関しても簡単に登録し、情報共有できるツールにしたいという追加の要件がでてきました。その場合、このツール上で商談中の商材を仮登録し、商談終了後にマスタ登録の承認を含めた一連の業務フローに対応する必要があります。アクセスではこのフローへの対応が出来ないのではないかと考えています。Notesのような感じのソフトで、安価で開発できるものはないでしょうか。予算は、50万から70万程度を見込んでいます。ユーザーは10人程度を想定しています。ご存知の方ございましたら、ご連絡をお願い致します。

Aベストアンサー

#1さんがおっしゃる通りで何の問題もないかと考えます。
仮登録か本登録かの区別のつく状態をテーブルに持たせておく。

MadeInTokyoさんの疑問はアクセスの機能で十分解決できます。

ユーザーによって参照のみにすることや、見えなくすることやボタンを消したり、フォームを消したり、操作不能にしたりなどなど、まず不可能と思われることはAccessに無いと思って結構です。

それから、DBを仮登録と本登録で分けることはしません。
ひとつで結構です。

また、この程度のユーザーであればAccessDBの信頼性も問題ないと思います。
DBがときどき破損することがありますが、「修復機能」をかければ問題ありません。必要であれば自動修復もかけられます。
DB使用中にテーブルをいじったり、プログラムの作り方が極端に悪くない限り、修復不可能に陥ることはまず無いです。

ひと時も絶対にDBが落ちる瞬間があってはならない!という次元のプロバイダーのような管理をお考えでしたら、他の方々が言われている方法を使用し、Accessは避けられた方が無難です。
ただし、費用を桁違いに出し外注するか、ご自身が専任され昼夜問わずプロ同等の管理を行っていくこととなります。

その他、疑問点がありましたら具体的にご質問ください。

#1さんがおっしゃる通りで何の問題もないかと考えます。
仮登録か本登録かの区別のつく状態をテーブルに持たせておく。

MadeInTokyoさんの疑問はアクセスの機能で十分解決できます。

ユーザーによって参照のみにすることや、見えなくすることやボタンを消したり、フォームを消したり、操作不能にしたりなどなど、まず不可能と思われることはAccessに無いと思って結構です。

それから、DBを仮登録と本登録で分けることはしません。
ひとつで結構です。

また、この程度のユーザーであればAccessDBの信...続きを読む

Qalter table で text が midiumtext になってしまう

当初作ったテーブル(テーブル名=test)では
col1 char(10) unique not null,
col2 text not null,
col3 text not null,
col4 text not null
だったのですが、col1だけをchar→varcharに変えたくて
alter table test modify col1 varchar(10) unique not null
としたところ、他のtext型項目が全てmidiumtextになってしまいました。

ひとつずつtextに直そうと
alter table test modify col2 text not null
を実行し次に
alter table test modify col3 text not null
とするとcol3はtextになるがcol2がまたmidiumtextになってしまいます。

midiumtextほどの容量は必要ないのでcol2~col4をtextに戻したいのですが、
どのようにすればよいのでしょうか。
ご教示願います。

宜しくお願い致します。

当初作ったテーブル(テーブル名=test)では
col1 char(10) unique not null,
col2 text not null,
col3 text not null,
col4 text not null
だったのですが、col1だけをchar→varcharに変えたくて
alter table test modify col1 varchar(10) unique not null
としたところ、他のtext型項目が全てmidiumtextになってしまいました。

ひとつずつtextに直そうと
alter table test modify col2 text not null
を実行し次に
alter table test modify col3 text not null
とするとcol3はtextになるがcol2...続きを読む

Aベストアンサー

UNIQUEは引き継がれるはずなので、changeをつかって
以下のようにしてみてはいかがでしょうか?

ALTER TABLE `test`
CHANGE `col1` `col1` VARCHAR(10) NOT NULL
,CHANGE `col2` `col2` TEXT NOT NULL
,CHANGE `col3` `col3` TEXT NOT NULL
,CHANGE `col4` `col4` TEXT NOT NULL

ただしMySQLのバージョンにもよるでしょうけど、
暗黙のフィールド定義変更がはたらいて手動による
型変更は意味がないかもしれません

参考URL:http://www.mysql.gr.jp/Manual/mysql-4.00.12/manual.ja_Reference.html#Silent_column_changes

Qスタンドアロン端末でのDB構築にお勧めなDBは?

現在、スタンドアロンのPCで下記のような自作システムを使用しています。

OS:Windows98
アプリケーション:Visual Basic6.0 Pro
DB:JET(Microsoft ACCESS97)

今までのところ、DBが壊れるということもなく問題は無いのですが、万が一
のこともあるかと思い、もっとリカバリ機能の発達しているDBに乗り換えよ
うかと考えています。
つきましては、スタンドアロンPCにインストールして使用することのできる、
比較的安価なDBシステムでお勧めな製品がありましたらお教えください。
宜しくお願いします。

Aベストアンサー

とりあえず VB 6.0 Pro を持ってるならMSDEなんてどうでしょうかね。
DAOじゃなくてADO経由でのアクセスになるけれど、今やADOなんてAccessの入門書にも出てますしね。
個人ユースならいろいろ細かいことをやらなくてもいいでしょ。

ただし、MSDE for VisualStudio 6.0 は MS-SQLServer 7.0 相当なので、OfficeXPやVS.NETなんかについてくるMSDE2000に比べると一世代古いですけどね。

MSDE for VisualStudio 6.0
http://www.microsoft.com/japan/msdn/vstudio/msde/default.asp

MSDE実験ページ
http://www.ki.rim.or.jp/~kuro/MSDE/

All About Japan の記事
http://allabout.co.jp/computer/database/subject/msubsub_VB.htm

QALTER TABLE mytable CHANGE

mytableというテーブルのaカラムの型と名前を変更するのは
ALTER TABLE mytable CHANGE a new_a INT;
でできましたが、今度はnew_aをbにすると動時にTINYINT(4)にしたいのですが、SQLの文法が違うようだったので正しいものを教えてください。
ALTER TABLE mytable CHANGE new_a b TINYINT(4);
でなく、何なのですか?

Aベストアンサー

それで合っています。
(少なくともウチの4.0.23ではそれで変更できてます)

本当に文法ミスでのエラーでしょうか?
エラーの内容を確認してみてください。

Q有料DBソフトと無料DBソフトの違い

お早うございます。

有料のOracleやMSSQLなどと、MySQLやFirebirdなどでは一番の違いはどういったものでしょうか。
無料のDBソフトのホームページなどでは良い事しか書いてません。

決定的な違いは(金額以外)何でしょうか?

例えば顧客管理ができる予約ソフトを作成したら

データが大きくなって時に観たい顧客のデータを表示するスピードが違うのでしょうか?
膨大なデータを表示しようとするとスピードに違いがでるのでしょうか。
データが大きくなった時の動き(安定した稼働など)に違いがでるのでしょうか。

仕事で少し関わってきそうだったのでこちらに投稿しました。
よろしくお願いいたします!

Aベストアンサー

>>となると、データベースを扱うという部分ではパフォーマンスはあまり変わらないのでしょうか?

Oracleは、データベースとしてパフォーマンスと耐障害、信頼性を十分に考えた作り方をしていると思います。
Oracleの内部動作について学べば、「プログラマーとして考えたら、こういう作りにするだろうなあ(作るのは面倒だけど・・)」と思えるような正当派の堅実なやり方をしているように思えてきます。
ですので、たぶん、大規模になれば、オープンソースソフトよりも、パフォーマンスがいいような気がします。
でも、個人ベース、中小企業レベルでは、そこまでの大差はつかないような気もします。

たぶん、どのソフトを使うかという場合、単なる速さ以外にも、さまざまな要求項目が出てくると思います。そういう中で、消去法によって残るのがOracleが多いってことだと思いますし、要求項目が少ないなら、オープンソースのソフトから選んでもいいように思います。

そして、データベースを選択するときは、単なるパフォーマンスだけでなく、「自分がこの部署を去ったあとも、システムを維持できるか?」なんてことも考えることになると思います。
そこまで考えたとき、「コストパフォーマンスとしては、最高ではないかもしれないけど、代わりの技術者が得やすくて、安心して使える有償のDBを選択する」という判断となることもあると思います。

>>となると、データベースを扱うという部分ではパフォーマンスはあまり変わらないのでしょうか?

Oracleは、データベースとしてパフォーマンスと耐障害、信頼性を十分に考えた作り方をしていると思います。
Oracleの内部動作について学べば、「プログラマーとして考えたら、こういう作りにするだろうなあ(作るのは面倒だけど・・)」と思えるような正当派の堅実なやり方をしているように思えてきます。
ですので、たぶん、大規模になれば、オープンソースソフトよりも、パフォーマンスがいいような気がします。
...続きを読む


人気Q&Aランキング

おすすめ情報