これらのSQLの概念は、初心者、中級者、または上級の開発者向けですか?[閉まっている]


16

私は最近SQLを学び、MySQL / PostgresとすぐにOracle DBで練習しています。また、データベースの「ロードマップ」調査のためにWebを検索しましたが、残念ながらそれを見つけることができませんでした。

特定のデータベースの概念が初心者から中級者から上級者に至るまでの規模と規模を理解する必要があります。私はほとんどの場合、リレーショナルデータベースについて考えています。

初心者->中級->上級者の進行において、以下にリストされているスキルをどのようにレイアウトするかを説明してください。

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

回答:


20

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

とはいえ、ここに私が行くだろう一般的なレイアウトがあり、私が間違っているかもしれない他の人からのコメント/考えに絶対に開かれています。

初心者

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

中級

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

高度な

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

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


私たちの2つのリストを並べて見るだけでも面白いです
クリスピットマン

11

これは、候補者にインタビューする際に使用する尺度です。これは明らかに私の個人的な意見であり、規模は簡単に変更できます。

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

初心者:

  • 基本的なSQL構文を知っている
  • 複数のテーブルにわたってデータを選択およびフィルタリングできます
  • 内部/外部/クロス結合を理解する
  • 正規化、インデックス付け、トランザクション、ロックの曖昧な理解

中級:

  • SQLの手続き型スタイルと宣言型スタイルの違いを理解する
  • 少なくとも1つのDB SQL拡張機能(PSQL、TSQLなど)の経験
  • データベースを理解し、3番目の標準形式で設計できます。
  • インデックス作成を理解し、実装できます
  • トランザクションを理解し、それらを単一のデータベースで使用できます
  • 実行計画をいつどのように分析するかを知っている

高度:

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

面白いことに、あなたのリストは私のリストとかなり似ています。実行計画を1つ上げましたが、それ以外は基本的に同じです。私はほとんど3番目の標準形式を中間に入れましたが、データモデリングは初心者/中級者/上級者に帰することはできないと考えています。3番目のノーマルを行う方法を知ることはスキルであり、いつ芸術になるかを知ることです。どのようにはかかわらず、関連性があると私はほとんどそのあわやのためだけでなく、中間にそれを置く
ジミー・ホッファ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.