データベースプログラマー/管理者の応募者にどのようにインタビューしますか?


12

インタビュー中に、基本的なデータベース設計の質問をします。データベース設計に関しては、正規化(When-Why)が懸念事項の1つです。同期されたサーバーと関連する問題を考慮した理由/理由/方法を含むサイトのシナリオ。セキュリティ問題など。

  1. 希望する特定のデータベースシステム(Oracleなど)のコンテキストから質問しますか?
  2. どんな技術的な質問をしますか?
  3. どのようなシナリオをサイトに配置し、それらのシナリオに対する回答として何を探しますか?
  4. 彼らがセキュリティ問題の処理に精通している場合、どのように見つけますか?
  5. その他の関連する質問。(例:DB復元/バックアップ)

ありがとうございました。

回答:


15

ここだシニアデータベース管理者のための私のトップ10のインタビューの質問は、ここだジュニアDBAのためのトムLarock著のトップ10の質問が。

他の人が候補者がサーバーのトラブルシューティングを行うことを提案していることに気付きました。そのアプローチをとる場合は、スナップショット付きの仮想マシンを使用してください。特定の構成またはパフォーマンスの問題がある特定の方法でサーバーをセットアップし、そのスナップショットを取得してから、インタビューのたびにスナップショットにロールバックできます。

その場合は、タスクを実際に実行させる種類のタスクに限定してください。本番DBAに正規化について尋ねたり、開発DBAに1つのノードがクラスターに参加しない理由を尋ねたりしないでください。

本番DBAタスクは次のとおりです。

  • バックアップ、インデックスメンテナンス、およびDBCCのジョブをセットアップします。データベースをバックアップする頻度と、ローカルまたはネットワークを介してバックアップするかどうかを尋ねます。特定のテープバックアップソフトウェアが既に再開されていない限り、どのように構成するかを尋ねないでください。
  • ジョニーがログインできず、クエリを実行できない理由を見つけてください。
  • クエリが遅いと不満を言う人がいます。何が起こっているのかを知るためにどこを見ればいいか教えてください 次に、呼び出したばかりでクエリが終了したと言いますが、二度と起こらないようにしたいのです。
  • 昨夜のバックアップから単一のテーブルを復元します。

開発タスクは次のとおりです。

  • このストアドプロシージャをデバッグします。
  • この実行計画を解釈します。
  • 顧客を請求書に結合するビューを作成します。

AdventureWorksスキーマを使用します。おそらく彼らは最近それで遊んだことがないが、少なくとも説明するのは簡単だ。


3
本当に?そのジュニアDBAの質問リストはばかげています。これらは、大学での最初の学期の後に開発者から正しい答えを得る質問です。「私は開発者です。テーブルに一意のキーが必要な理由を説明してください」を除いて、シニアDBAの質問がもっと好きです。開発者がすでにそれを知っていると信じたいからだと思います。私は開発者で、少なくともJr. DBAの役割を引き受けることができないものは知りません:o
Gromer 2009年

5
びっくりするでしょう。私は、トムの質問に対する答えを持っていなかった6桁の仕事のDBA候補者数十人にインタビューしました。
ブレントオザー

2
ブレントが言ったことに同じ。多数のインタビューを実施してきたので、10年のOracleと5年のSQL ServerとOCPとMCDBAの証明書を持っているとの履歴書にもかかわらず、これらのジュニアDBAの質問に答えられなかった候補者がかなり入ってきました。
K.ブライアンケリー

3
また、開発者がテーブルに一意のキーが必要であることを既に知っていると信じたいというGromerの発言からも笑いを感じています。私が入ったすべてのコンサルティング契約に$ 1があり、主キーを追加するだけでパフォーマンスの問題を修正した場合、ああ、待ってください。;-)
ブレントオザー

1
覚えておいて、私たちはあなたが雇わない開発者を選別することについて話している。もちろん、あなたは賢い開発者の周りにいます-しかしそれはあなたが敗者を雇わなかったからです。これらの質問は敗者を除外します。
ブレントオザー

9

私のソフトウェアチームでは、インタビューの一環として、データベースの理解度をテストしています。

提示-非常に貧弱な設計(CRMタイプのアプリケーションを考えてください)で、約30分の思考時間の後、設計を改善するように依頼します。

次に、彼らが話していることに基づいて、さらに質問をします。

私たちは理解を探っています

  • パフォーマンスV正規化
  • 主要な設計とリファレンタル整合性
  • 改善点-代替DB構造-トリガー、ビュー、手順
  • デザインが弱い領域-多対多の関係を克服する方法
  • これがサーバーに与える影響-メンテナンス
  • データセキュリティの問題
  • アプリケーションのセキュリティの問題

その後、チームとして、これらのタイプの質問に対するジュニア/シニア/アーキテクトタイプの回答と考えるものについて考えました。

そのため-パフォーマンスv規範化-

そもそも問題を見て、その理由を議論することができます(ジュニア)

4/5 NFを推奨しますが、パフォーマンスの問題を非正規化し、問題を明確にする方法を理解します(シニア)

彼らはスタースキーマなどの異なるタイプの設計を推奨し、多くのレベルでの影響を議論しますか(建築家)

  • 主要な設計と参照整合性

参照整合性はデータの関係を強化するために必要であり、これについて議論することができますが、Key Choice and Design(Junior)の問題は表示されません

データボリュームとデータタイプに関する問題を議論しますvデータの自然キーを探して、なぜこれらを見るのか、そして参照整合性に伴う問題(上級)について話し合うことができます

キーと整合性に関連するさまざまな視点を議論し、迅速な設計のためにさまざまな実際のモデルを思い付くことができます(Architect)

写真が撮れます。

さらにコメントを追加したい場合は、コメントを投稿し、残りの部分について私たちが考えていることを詳しく説明しますが、最初の2つだけを含めて、私たちが考えたことに関するアイデアを提供します。

ポイントは、1。質問について考えることです。2.私たちは、チームとして、これらのタイプの質問に対するジュニア/シニア/アーキテクトタイプの回答と考えるものについて考えました。

私は候補者としてチームを強調し、チームは入ってくる人のスキルに自信を持たなければなりません。もし彼らが異なるレベルへの答えとして彼らが見ているものを考え出せば、入ってくる人はチームにより良く適合することを望みます。また、チームが候補者の選択に影響を与えることができます。また、質問パネルに参加する人を指名します。チームの賛同で大いに役立ちます。


5

いくつかの正規化問題、潜在的なセキュリティ障害があった架空のデータベースを作成できますが、一般的には従業員データベースのように非常に典型的に見えます。次に、参加者が結合を介してデータベース内の特定のデータを取得する方法について簡単な質問をすることから始め、正規化およびセキュリティの問題に関するより難しい質問に進みます。


1

スマートを参照してください

...そして、最近読んだ本、読んでいるブログ、聞いているポッドキャストを尋ねます。そして、彼らがstackoverflow.comとserverfault.comに参加しているかどうか尋ねます;-)


1
また、機密データを扱う場合は、犯罪歴のチェックも行います。あなたは賢くて、物事を成し遂げ、悪である誰かを望んではいけません;
クリスW.レア

1
:Joelsブックについてを参照してくださいスティーブ・イェジのブログ記事steve-yegge.blogspot.com/2008/06/...
ニックKavadias

ありがとう-Yeggeの投稿は楽しくて刺激的でした。私は特にこれが好きでした:「あなたは超人的に神のような人が欲しいです。あなたにたくさんのものを教えることができる人。
クリスW.レア

1

これは必ずしもデータベース関連ではありませんが、インタビューに追加したいのは、実践的な問題解決と設計シナリオです。

実践的な問題については、人がアクセスできるシステムを用意し、オープンエンドの問題をトラブルシューティングしてもらいます。ここでの私の個人的なお気に入りはパフォーマンスの問題です。インタビューの要求に応じて必要に応じて再現できるものではなく、正解が1つしかないことはまれです。代わりに、候補者がトラブルシューティングプロセスを実行するのを見ることができます。また、候補者は、環境に関する詳細情報を入手するために、ディスカッションを開く必要があります。重要なのは、インタビュアーが問題について正直になり、設定を誤って設定したり、そのような何かのためにシナリオをイースターエッグハントに変えないことです。

設計シナリオでは、候補者に新しいプロジェクトの一般的な概要を提示し(つまり、レガシーの依存関係がない)、プロジェクトの目標を満たす特定の領域(DBA、システム、またはネットワーク)で一般的な設計を考え出すよう依頼します。重要なのは、誰かが頭の中でシナリオ全体を維持できるようにプロジェクトを小さく保つことであり、説明するのに数分もかからない。

ここで使用しているシステムおよびネットワークの人々の例は、ビジネスの特定の制約を考慮して、セットアップされている小さなブランチオフィスの設計を説明することです。DBA側では、おそらく小さくて明白なCRUDアプリケーションを使用します。どちらの場合でも、詳細な設計ではなく概要を探し、候補者が出てくる一般的な問題を探すかどうかを確認します。

これらのシナリオの両方の重要なポイントは、トピックに関するディスカッションを開き、候補者が自分の質問でディスカッションをリードできるようにすることです。どちらに対しても正確な答えを求めていないことは明らかです。

あなたがイメージできるように、私はインタビューでトリビアを大いに嫌います。


0

彼女/彼に話させてください。過去の経験について尋ね、どのような問題に遭遇し、どのように処理したかを尋ねます。一般的な問題を解決するためにこれまたはそれを選択する動機は何でしたか[バックアップ?モニタリング?スケールアウト、スケールアップ、セキュリティ]。

聞くだけで、その人について多くを伝えることができると思います。

特定の専門分野を探しているなら、詳細な質問をしてください-Stefan Thybergからの提案はとても良いです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.