web-dev-qa-db-ja.com

これらのSQLの概念は、初心者、中級者、または上級者向けですか?

私は最近SQLを学び、MySQL/PostgresとすぐにOracle DBを実践しています。データベースの「ロードマップ」調査をウェブで検索しましたが、残念ながら見つかりませんでした。

特定のデータベースの概念が、初心者から中級者、上級者に至るまで、どこに、どのような理由で当てはまるのかを理解したいと思います。ほとんどの場合、リレーショナルデータベースについて考えています。

初心者->中級者->上級者向けに、以下にリストされているスキルのレイアウト方法を説明してください。

  • WHERE句
  • 構文を更新
  • 参加
  • ステートメントの変更と作成
  • 一時テーブル
  • カーソル
  • インデックス
  • 外部キー
  • 制約
  • 取引
  • サブクエリ
  • ピボット
  • 集計関数
  • プロファイリング
  • OLAPおよびOLTP
  • トリガー
  • 実行計画
  • 実行のヒント
  • パフォーマンスカウンター
  • 正規化
16
Daniel

SQLに関して知っておくべきことは2種類あると思います(これは実際に多くのテクノロジに当てはまります)。結合、サブクエリ、ユニオンなど、理解している、または理解していない特定の技術的な事項があります。アートのように、スキルの勾配があるデータベース設計やデータモデリングのように。あなたはそれらのやわらかいもので時間の経過とともに良くなりますが、それらと「彼らがこのように働く」ことがないので、それらを決して「知る」ことはありません。

とは言っても、これは私が一緒に使用する一般的なレイアウトであり、私が間違っている可能性がある他のユーザーからのコメント/考えには完全にオープンです。

初心者

  • Where句(in、betweenなど)
  • 構文を更新
  • 内部結合、左結合、右結合の理解と使用法
  • 構造を変更および作成するための構文
  • 一時テーブルとその使用法
  • カーソル
  • インデックスはどのように機能するかではなく、その目的は何ですか
  • 外部キーの目的とそれらを回避する方法(カスケード削除など)の理解
  • トランザクションの基本を理解する
  • 制約を理解する

中級

  • インデックスのしくみ、クラスター化、非クラスター化などの違い、ページの概要、レイアウト
  • サブクエリを理解し、サブクエリを結合と場所で使用して考えることができる
  • ピボット
  • 関連する場合、自分自身でテーブルに参加することで考えることができます
  • 集約関数を備えたグループバイを介して複雑なデータレポートを生成できます
  • ログの読み取りなど、監視/デバッグ機能で基本的なプロファイリングを実行できます
  • OLAPとOLTPといつ/どこで使用するかOLAP構造の違いを理解する
  • トリガーの使用方法と使用しない方法を知っている
  • トランザクションを理解し、それらをスタックして障害を処理します。

上級

  • 実行プランを読み取り、クエリのさまざまな部分がどのように影響するかを理解できる
  • パフォーマンスを台無しにすることなく実行ヒントを使用してクエリを調整できます(並列処理のヒント、インデックスのヒント、ループのヒントなど)
  • トレースをプロファイルして使用し、実際の負荷の下で実行の統計を識別および理解できます。
  • ディスク上のデータ構造を把握
  • パフォーマンスカウンターを使用し、それらを監視することによるデータベースの負荷と動作を理解できます。
  • OLAP=キューブを設計し、1つのキューブで高度なデータマイニングを行う方法を知っている
  • 最小限のリスクでトリガーの使用方法とトリガーを安全に使用する方法を知っている
  • レイヤーでも分散トランザクションを使用する方法を知っている

私が頭のてっぺんから思いつくのはそれだけです。見逃した人や間違った場所に何かを置いた場合についてコメントを残してください。高度なテクニックの膨大なリストを知っているほど高度ではない

20
Jimmy Hoffa

これが候補者への面接で使用する尺度です。これは明らかに私の個人的な意見であり、規模は簡単に変わる可能性があります。

まず、特に「SQL」ではなく、データベースのスキルを探しています。

初心者:

  • 基本的なSQL構文を知っている
  • 複数のテーブルのデータを選択してフィルタリングできます
  • 内部/外部/クロス結合を理解する
  • 正規化、インデックス作成、トランザクション、ロックに関する漠然とした理解

中級:

  • SQLの手続き型スタイルと宣言型スタイルの違いを理解する
  • 少なくとも1つのDB SQL拡張機能(PSQL、TSQLなど)の経験
  • 第3正規形を理解し、データベースを設計できる
  • インデックスを理解し、実装できる
  • トランザクションを理解し、単一のデータベースで使用できる
  • 実行計画をいつどのように分析するかを把握している

上級:

  • データベースを非正規化する時期と方法を理解する
  • データベースおよび統合システム全体に分散トランザクションをセットアップする方法を理解している
  • 高可用性、データ復旧などのためにデータベースを設定できます
  • 各DBエンジンの内部動作に関する深い理解(少なくとも2つ)
  • データウェアハウジングとレポートへの重要なエクスポージャーのための追加ポイント
  • NoSQLのバリアントへの重要な露出の追加ポイント、および何をいつ使用するかの合理的な基準セット
11
Chris Pitman