-2

私の妹は、Web 開発者になる方法を学ぼうと、授業を受け始める予定です。彼女は、私が彼女の決定を導くのを助けるために、いくつかの候補校のクラスリストを送ってくれました.

学校の 1 つは、リレーショナル代数、SQL、データベース管理などを含むデータベース クラスで使用される主要なツールとして Microsoft Access に言及しています。

Microsoft Access を学べば、後で MySQL や Postgres など、社会的に受け入れられる別のデータベース テクノロジを簡単に習得できるのでしょうか? 私の Access の経験は快適なものではなく、学生時代に Access をいじってみると、多くの悪い習慣を身につけました。

基本的に: Microsoft Access は標準準拠の SQL を使用していますか? Microsoft Access の仕組みを知ることで、他のデータベースに必要なスキルを習得できますか?

4

2 に答える 2

2

アクセス 「実際の」データベース ソフトウェアよりも多くの特殊性があると言えます。Access は、SQL データベースのフロント エンドとして簡単に使用できます。これはプログラムの一部です。

クラスが Access に組み込まれたデータベースを使用しているとします。次に、データベースの部分に分解しましょう。

テーブル

Access では、変数に簡略化されたモデルが使用されます。基本的に、典型的な数値、テキスト フィールドなどを使用できます。たとえば、SQL でできるように、小数点以下の桁数を修正できます。ただし、varchar(x) のような変数は表示されません。テキスト フィールドを選択し、フィールド サイズを「8」に設定するだけです。ただし、実際のデータベースと同様に、入力した制限が適用されます。Access は OLE オブジェクトをサポートしますが、すぐに混乱します。Access データベースはファイルのように保存されるだけで、信じられないほど大きくなり、すぐに肥大化する可能性があります。したがって、アドレス帳やテキスト データベースを保存したり、コードを介して外部ソースにリンクしたりするだけでなく、ファイルが大きくなりすぎて使用できないという理由だけで、保存する情報の量に注意する必要があります。

クエリ

Access は、SQL に沿って多くのことを実装しています。SQLに準拠していることは知りません。Access データベースを SQL が使用できるものにエクスポートできると思います。コードでは、DAO、ADO、ADODB、および Jet または Ace エンジンを使用して SQL データベースを操作します。(古いものもありますが、古いデータベースで動作します) ただし、クエリを作成するだけになると、多くのことが似ています。典型的なコマンド -- select、from、where、order、group、having などは正常であり、他の場所で機能するのと同じように機能します。計算された式や複雑な結合を使用すると、奇妙なことが起こります (アクセスはいくつかの種類の結合を実装していませんが、間違いなく最も重要なものである内部結合/結合が表示されます)。たとえば、Access では、distinct の動作が他のデータベース アーキテクチャとは異なります。また、集計関数 (sum/max/min/avg) の使用方法も制限されています。本質的に、Access は多くのタスクで機能しますが、非常にうるさいので、これらの問題を回避するためだけにクエリを作成する必要があり、実際のデータベースでは作成する必要はありません。

帳票・報告書

Access の重要な機能は、コンピューターの専門家ではないユーザーにとって非常に親しみやすいことだと思います。テーブルを簡単にナビゲートし、ドラッグ アンド ドロップしてフォームやレポートを作成できます。したがって、私の本の正式なデータベースではありませんが、非常に便利です...特に、データベースを使用する人が少なく、より「エンタープライズレベル」のソリューションよりも使いやすさ/簡単なセットアップを非常に好む場合. Crystal Reports や、Access データベースが結果を出し、ユーザーが必要に応じてデータを追加できるようにするために多くのコードを作成する必要はありません。

Access がデータベースではない理由

多くの同時接続を処理するためのものではありません。1 人がロックを保持でき、それについて交渉する必要はありません。1 人がデータベースの特定の部分を編集している場合、他のすべてのユーザーがロックアウトされるか、少なくとも読み取り専用に制限されます。また、多くのユーザーで Access を使用しようとしたり、コードを介して多数の要求を送信したりすると、約 10 ~ 20 の同時接続後に切断されます。これは、Oracle と mySQL が構築されている種類のことを意図したものではありません。必要に応じて「すべての」コンピューター ユーザーを対象としていますが、ユーザー エクスペリエンスを大幅に向上させるためにプログラマーが利用できる便利な機能がたくさんあります。

それで、これはあなたがもっと学ぶのに役立ちますか?

それがどのように悪いことになるかわかりません。関係代数をより簡単に見て、データを適切に整理する方法を理解できる環境です。これは、Java、C++、または Python を教えている大学と、それぞれにメリットがある理由についての同様の議論です。Access から SQL データベースにアクセスするためのフロントエンド (テーブルへのリンクをロードする) である Access にすぐに移行できるので、それを使用して非常に優れたクラスを教えることができると確信しています。

于 2012-09-26T18:49:58.077 に答える
2

MS-Access は、データベースを構築し、データベースの基本 (基本) 設計と構造を学習するための優れたサンドピットです。

MS-Access の SQL 実装は、SQL1.x 構文とほぼ同等です。繰り返しになりますが、Access は、クエリ、テーブル、およびビューの間の相互作用を学習するための優れたアプリです。

Access で使用できるマクロの構造はメインストリーム RDBMS に変換されないため、彼女がこのマクロに慣れないように注意してください。最適な同等物は、プロフェッショナルな RDBMS のストアド プロシージャ (SProc) ですが、SProcs には、アクセス マクロが提供できるよりも 1000 倍多くのユーティリティと機能があります。

彼女に MS-Access を試して DBMS のルック アンド フィールを理解してもらいますが、データベースの設計に慣れたら、MS-SQL Express または MySQL、またはその両方に移行してもらいます。SQL-Express は、MS-SQL Std に料金を支払うことなく、本物に近いものです。MySQL は、LAMP Web インフラストラクチャに適しています。

于 2012-09-26T18:48:30.713 に答える