CodeGym/Java Course/All lectures for JA purposes/データベースに関する高度な知識

データベースに関する高度な知識

使用可能

1.1 講義構築の原則

あなたと私は、以下からデータベースとの付き合いを始めました。これは、人々を教える際の私の個人的なアプローチの特徴です。新しいトピックについて話すとき、私はいつも最初に特定のツールを実際に使用する方法を説明します。そして、その人がそれらの使い方を知っていることがわかったとき、私はすべてがどのように機能するかを話し始めます。

このアプローチにはいくつかの理由がありますが、主な理由は、学習プロセスにおいて最も価値があり、最も欠けているリソースは生徒のモチベーションであるということです。

このアプローチは、学校や大学で使用されている私たちが慣れ親しんだものとは少し異なります。しかし、すべては明らかです。学校や大学で勉強するとき、あなたには正しい優先順位があります。勉強は現時点で人生で最も重要なことです。

大人になってから独学で教育に取り組んでいる場合、多くの場合、すでに勉強と仕事、家事、子供や年老いた親の世話を組み合わせなければなりません。そして、ここでは勉強が最優先事項ではないことがよくあります。

すべては優先順位の問題です。スタートアップの世界には、「Fail Fast」、「できるだけ早く失敗する」という概念さえあります。奇妙に聞こえますが、実際には非常に理にかなっています。スタートアップの仕事は、仮説が正しいかどうかを迅速に確認することです。そして、それが真実でない場合は、それに人生の何年も費やす必要はありません。特定のサービスや製品には需要がないことをできるだけ早く理解する方がよいでしょう。

Java と SQL を教えるときも、私は同じアプローチを使用します。つまり、プログラミングを急いでいるのかどうかをできるだけ早く理解する機会を与えます。プログラミングが好きで、ループや配列の使い方を自分で理解できた場合は、指導者の助けと適切に設計されたプログラムがあれば、学習を完了して仕事を見つけるチャンスが十分にあります。

しかし、もう 1 つの事実も同様に重要です。数日休めば、プログラミングが自分には向いていないことが理解できるのです。興味がないだけかもしれませんが、それは問題ありません。したがって、人生の何ヶ月もそれに費やす必要はありません。

大学で学んだ専門分野で働いている卒業生はわずか 40% です。考えてみてください、人々は5〜6年間勉強しましたが、そのうちの60%は自分の専門分野で働かないことを決めました。はい、得られた知識の一部は今でも使用されていますが、約半分は使用されていません。

これが Fail Fast コンセプトの価値です。特定の職業、特定の人、または特定の趣味が自分に適していないことをできるだけ早く理解することです。そして、それらに時間とエネルギーを無駄にしないでください。長期的には、これは非常に良い戦略です。

1.2 SQL とすべて、すべて、すべて

哲学的な導入は終わりました。SQL の学習に戻りましょう。

SQL言語とDBMSは少し異なります。SQL 言語自体は、データベースへの SQL クエリに何を書き込めるかを記述する一種の標準です。DBMS はすでにこの標準を実装しています。一部の DBMS は、標準のいくつかの機能、2 番目の機能、その他の機能などを実装しています。

DBMS が高価であればあるほど、実装される標準の機能が多くなります。また、多くの DBMS は、SQL 標準以外の独自の機能を実装していることがよくあります。場合によっては、これが移植性の問題につながることがあります。つまり、ある DBMS 用に作成された SQL クエリが別の DBMS ではうまく機能しない可能性があります。

Java にも同様の状況があります。Java プログラムが Windows 上で作成された場合、Linux 上では正常に動作しません。この問題を解決するために、Java では、オペレーティング システムごとに異なる実装を持つ特別なクラスが導入されています。例: WindowsPath、LinuxPath などの実装を含む Path クラス。

問題の 2 番目の部分は、バージョン管理の助けを借りて解決されます。さまざまな言語または DBMS で成功したイノベーションはすべて、新しい JDK または SQL 標準に追加されます。JDK にはさまざまなバージョンがあり、バージョンが新しいほど、より多くの機能が備わっていることはすでにご存知でしょう。SQLも同様です。

SQL 言語には、その標準のいくつかのバージョンがあり、年ごとに名前が付けられています。

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL:2019

良いニュースです。私たちはこれらの標準を研究するつもりはありません。まず、これをすべて学び習得するには何年もかかります。そして第二に、これらの標準は Android のバージョンのようなものです。リリースからわずか 5 ~ 10 年で、この標準は非常に普及します。

大量のデータを含むデータベースでは、信頼性と安定性が求められます。「機能するものは触らないでください」が、データベースを扱うすべての人のモットーです。そして、データベースの新しいバージョンへの移行は、そのようなソリューションのすべての利点がすでに明白になっている 5 年ごとに行われます。

1.3 括弧の外

上で述べたように、データベースのプロフェッショナルになるには何年もかかります。プロは私たちが勉強しないことをたくさん知っています。ただし、データベースに他に何が含まれているかについて少し説明します。

ほとんどすべての最新のデータベースは以下をサポートしています。

1 手続き型言語 (PL)

RDBMS は、SQL Server 上で実行されるプロシージャと関数を作成する機能をサポートしており、クエリ中にデータに対してさまざまな処理を行うことができます。たとえば、PL SQL クエリを Oracle サーバーに書き込んだところ、そのクエリに応じてデータを含む HTML ページが生成されました。はい、できます。

2つのイベント(トリガー)

最新の DBMS はすべて、SQL 言語でトリガーと呼ばれるイベントのメカニズムをサポートしています。トリガーは、何らかのアクションに対する応答として発生します。たとえば、データベースへの書き込み試行をすべてインターセプトし、変更の正確な時刻を新しい行に追加できます。

3 ロギング

最新のデータベースは超高速であることを目指しているため、多くの場合、すべての変更 (新しい行、削除された行、変更された行) は最初にログと呼ばれる特別なファイルに書き込まれます。そしてしばらくしてから、SQL サーバーはこれらのレコードをメイン データベースとマージします。

ある意味、これは Java のガベージ コレクターの動作に似ています。また、最初にオブジェクトに削除済みのマークを付けるだけで、アイドル時間中にメモリのクリーンアップと最適化を実行します。

4 つのプラグイン

DBMS や多くのプログラムに対して、独自のプラグインを作成できます。このようなプラグインを使用すると、固有のデータ型やそれらを操作するための関数を追加したり、DBMS の標準動作を変更したりできます。これは、オープンソース データベースを使用していてバグがある場合に特に便利です。

5 分散作業 (クラスター)

最新の SQL サーバーの一般的なシナリオは、複数のサーバーのクラスターです。最も単純なオプションは、データが 1 つのサーバーに書き込まれ、サーバーのグループから読み取られる場合です。この場合、SQL サーバー間のデータベース同期のさまざまなシナリオを構成できます。

6 シャーディング

大量のデータがある場合、それらは異なるデータベースに分割され始めます。1 つのテーブルを複数の異なるデータベースに分割して保存できるという事実まで。

シャーディングは垂直方向と水平方向に行うことができます。垂直シャーディングは、テーブルがいわば垂直線で切断されるのに対し、水平シャーディングは水平シャーディングに分割されることを意味します。

たとえば、テーブル内のすべてのデータを年ごとに分割することにしました。2019 年のデータは 1 つのテーブル、2020 年のデータは 2 番目というようになります。これは水平シャーディングになります。

7 押し込まないものを押し込む

データベース開発のある段階で、ますます多くのビジネス ロジックがデータベースに追加され始めました。すべてはプロシージャ、関数、サーバーによる Web ページの生成から始まり、最終的には、Python、JavaScript、さらには Java や C++ など、ほとんどすべての一般的な言語のサポートが DBMS に追加されました。

詳細に入るまではクールに聞こえますが、本当に Web アプリケーションのビジネス ロジックを Java で記述したいですか。これは SQL サーバー内で実行されます。SQL サーバーには、JDK、Java ライブラリ、フレームワークがなく、メモリがほとんどなく、大量のメモリがありません。他の制限は?

コメント
  • 人気
  • 新規
  • 古い
コメントを残すには、サインインしている必要があります
このページにはまだコメントがありません