みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

MySQLとかPostgreSQLとかMicros

oft SQL ServerなどのリレーショナルデータベースとMicrosoft Accessやらファイルメーカープロ
や昔あったロータスアプローチなどのリレーショナルデータベースソフトとの違いがよくわかりま
せん。
私は最初ロータスアプローチでデータベースなるものに触れ、リレーショナルの便利さに感動し、
とはいえ素人レベルですが、それなりに仕事などに役立てていました。
ただ、アプローチというソフトは作成すると.defファイルやら.aprファイルやらごちゃごちゃファイル
が自動的に出来上がることに何となくすっきりしないなぁと思ったこと、ならびに書店などでの
解説本の絶対的不足、まわりの使用者もほとんど皆無であることに不安を抱き、Accessに
移行しました(Access97)。
Accessは1つのファイルにデータ部分やオブジェクト(クエリーやフォームやレポートなど)が入って
いるように見えるので扱いやすいこと、アプローチでリレーションの基礎的なことが分っていたので
スムースに理解できたこと、解説本や掲示板などでの情報交換が容易なこと、また特にAccessの
レポートの驚異的な表現力・自由度に心奪われ、しばらくどっぷりはまっていました。
ところがこのAccess、個人での使用では自分的には十分なのですが、共有使用・ネットワーク上で
の複数ユーザーでの使用を試みた場合、かなりの確立で破損等が生じました。
会社内で複数使用を試みたのですが同時使用、特に同時5台以上になると使い物になりませんで
した。自分の設計に問題があるとは思いますが、テーブル(データ)部分のみ分割したり、あれこれ
したのですがやはり弱い。で、Accessはあくまで個人ユーザーレベルものであり複数ユーザーでの
利用を考えれば表記のMySQLやPostgreSQLなどを使用すべきという記事をネット上でよくみかけ
ます。
で、とりあえずMySQLをダウンロードしてみたのですが、、、、何がなにやらさっぱりわかりません。
テーブルは?フォームはどうしたら作れるの?レポートは?何??
どなたかこれらRDBMSについてわかりやすく教えていただけないでしょうか?
フォームやレポートはこれらにはないのでしょうか????

投稿日時 - 2012-11-27 21:42:18

QNo.7819016

困ってます

質問者が選んだベストアンサー

RDBはIBMが最初に開発したデーターベースシステムです。
当時基本的にはプログラムを書いて情報を取り出し、設定はOSのコマンド(当時はコントロールランゲージ)で行いました。SQLというものを全面的に押し出したのはS38からだと思います。
その後UNIX用としてOracle、サイベースSQLServerが登場します。この時はPCのOSなんか貧弱でデーターベースを動かせるような物では無かったんですね。
マイクロソフトとIBMはDOSの次のバージョンとして共同でOS2を考えます。マイクロソフトではWindows New Technolgy(NT),IBMではOS2として発売します。UNIXやAS400に匹敵するOSを考えたのです。今のWindowsはXPからNTと同じものになってます。
これに載せるDBとしてMSがサイベースからライセンスを買い取ったのがMSSQLServerです。サイベースはまさかPCで業務処理なんかできるわけ無いと思い、競合することは無いと考えライセンスを売ったのです。まあ今ではUNIX並になりSQLSERVERと言えばMSだと思っている人の方が多い状況です。実はサイベースの優秀なテクノロジーが無ければMSSQLSERVERは存在してないのです。
でRDBに管理ツール(マネージメントシステム)をつけたものがRDBMSなのです。
DBにはロータスノーツのようなカード型DB、イメージやビデオを管理する階層型DB、さらにXMLデータを管理するXMLDBなどいろいろな種類があり目的に応じて使用するのです。
Accessは厳密にはRDBMSではなくISAMファイルという形式のものです。SQLをサポートして見た目上RDBに見せかけていますが基本的には大昔のファイル形式なんです。
まあRDBにはフォームやレポートなんて概念はありません。これらはプログラムで作成するものです。AccessはCaseToolのように簡単にフォームを作れる仕組みを、VBの技術から抜き出して作り提供したという事です。
通常のRDBはJavaの統合環境EcripsやMSのVisualStudio.NETのC#などで作ったプログラムからデーター制御します。
なぜこんな面倒なことをするのか?みんなAccessでいいじゃん。と思うでしょうが、大人数で利用するプログラムというのはたとえAccessのVBAで書いたとしても、膨大なコードになるのです。
それは高速処理、排他制御、ログイン制御などを記述する必要があるからです。Accessはこれらの処理を全部省いて簡単にしているが故個人利用しか出来ません。
たとえばテーブルのデーターを開いて好きな箇所を編集するなんてExcel見たいな処理を100人がやったら?
どの人の処理が優先されてどこを書き込むか?全く制御無しに出来ないですよ。開いたときの情報は1秒後には他の人が変えてるかもしれません。1秒どころか0コンマ何秒です。逆に他の人が更新できないようにしてしまったら。一万件あったら一万件が一人のためにロックされその人が終わるまで待つことに。これでは仕事になりません。
つまりこれを頭を使って細かくプログラムで制御するように書くのです。コンピューターは自動では理解できない作業なんです。
印刷も同じ印刷するためにデーターを呼び出しているのか、編集するために呼び出しているのかこれをコンピューターに知らせる必要があるのです。どれだけ細かい作業か分かりますよね。
その他大きなRDBには更新失敗時には即時情報回復させる機能もあります。
まあ書き出したらきりがありません。RDBMSの管理だけでも食っていけるほど大変な作業なんです。プログラムもRDBが絡むだけで料金が跳ね上がります。世の中RDBは社会インフラを背負ってますので。
それとMSSQLSERVERもExpress版は無料。VisualStudio.NETも無料版があります。両方あれば一応無料で使えるシステムが組めるという事。制限はありますけどね。

投稿日時 - 2012-11-27 22:22:55

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

>フォームやレポートはこれらにはないのでしょうか????

無いです。

MySQL、PostgreSQL、SQLserverなどはデータベース機能しか無いので、アプリケーションは別の手段で作る必要があります。これらはクライアントサーバー方式で、クライアントアプリケーションにデータベース機能をサービスします。複数アプリケーションプロセスからの同時使用は可能です。

ファイルメーカープロやAccessなどは、データベース機能とアプリケーション開発機能が一体化した物です。その代わりに複数ユーザからの同時使用は想定されていません。どちらかというと、データベースっぽい機能がおまけに付いているというイメージ。Excelに毛が生えた物というか。

投稿日時 - 2012-11-27 22:14:29

あなたにオススメの質問