緊張する面接でスキーマを読み解く
見慣れないテーブル図をすばやく読み取り、面接中に適切な確認質問をする方法を学びます。
「緊張する面接でスキーマを読み解く」はCoddyKit上の無料Coding Interview Prepレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCoding Interview Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Coding Interview Prepコースには全4レッスンが含まれています。
実際の面接で役立つスキル
実際の面接では、見慣れないスキーマを渡され、その場でクエリを書くよう求められます。このレッスンでは、時間に追われていてもスキーマを落ち着いて、繰り返し確認できる方法を学びます。
ステップ1:テーブルを一覧にする
ステップ1:テーブルを一覧にします。まず名前だけを読み、それぞれがどのエンティティを表すか推測します。order_itemsのように2つのエンティティをつなぐ名前は、通常、中間テーブルです。
ステップ2:主キーを見つける
ステップ2:主キーを見つけます。通常はidや<table>_idという名前です。キーから、そのテーブルの粒度、つまり1行が何を意味するかが分かるため、JOINで行が意図せず増えるのを防げます。
ステップ3:外部キーをたどる
ステップ3:外部キーをたどります。customer_idのような列はcustomers.idを指します。リンクを矢印で図にすると、それが使うことになるJOINの経路になります。
-- Inferred join path from the foreign keys
SELECT *
FROM order_items oi
JOIN orders o ON o.id = oi.order_id
JOIN customers c ON c.id = o.customer_id;ステップ4:キーからカーディナリティを読み取る
ステップ4:キーからカーディナリティを読み取ります。外部キーを持つテーブルが多側で、参照先のテーブルが1側です。1人の顧客に対して、多数の注文があります。
ステップ5:NULL許容と型を確認する
ステップ5:NULL許容とデータ型を確認します。NULLを許容する外部キーは、LEFT JOINが必要であることを示す場合があります。また、日付が本当にDATE型か、金額が本当に数値型かも確認します。
ステップ6:適切な確認質問をする
ステップ6:確認質問をします。「どのステータスが完了を表しますか?」「メールアドレスは一意ですか?」面接官は、質問するか、確認せずに進めて失敗するかを見るために、曖昧さを意図的に残していることがあります。
例題:60秒でスキーマを読み取る
ここまでを組み合わせて、4つのECテーブルを素早く読み、それぞれの粒度と外部キーを説明してみましょう。1分以内にすべてのJOIN経路が分かれば、どのような質問にも答えられるようになります。
読み取りをクエリに変える
「顧客ごとの総売上」を求めるよう依頼されたとします。先にキーをたどっているため、クエリはほぼ自然に書けます。売上は明細行の粒度に存在し、そこから顧客までJOINします。
SELECT c.id, c.name, SUM(oi.qty * oi.unit_price) AS revenue
FROM customers c
JOIN orders o ON o.customer_id = c.id
JOIN order_items oi ON oi.order_id = o.id
GROUP BY c.id, c.name
ORDER BY revenue DESC;よくある落とし穴
予測しやすい落とし穴に注意しましょう。誤った粒度による二重計上、行を取りこぼす内部結合、メールアドレスをキーとして扱うことなどです。この6つのステップが、すべての落とし穴への対策になります。
考えを声に出すと評価につながる
考えを声に出して説明すると評価につながります。「これはECのテーブルに見えます。粒度は1つの明細行なので、顧客までJOINします」と説明しましょう。早い段階で面接官に考えを修正してもらえます。
理解度チェック
見慣れないスキーマにカーディナリティの考え方を適用してみましょう。
まとめ
6つのステップを振り返りましょう。テーブルを一覧にし、主キーから粒度を確認し、外部キーをたどり、カーディナリティを読み取り、NULL許容を確認し、最後に質問します。先に読み、後から書きましょう。
よくある質問
「緊張する面接でスキーマを読み解く」レッスンは無料ですか?
はい。「緊張する面接でスキーマを読み解く」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Coding Interview Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Coding Interview Prepコースには全4レッスンが含まれています。
「緊張する面接でスキーマを読み解く」で何を学びますか?
見慣れないテーブル図をすばやく読み取り、面接中に適切な確認質問をする方法を学びます。 ブラウザで直接実行するハンズオンコードでCoding Interview Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Coding Interview Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCoding Interview Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「緊張する面接でスキーマを読み解く」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCoding Interview Prepレッスンでコードを書いて実行できますか?
はい。すべてのCoding Interview Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- SQLとは何か、なぜ面接で問われるのか
- 論理的なクエリ実行順序
- 主キー、外部キー、制約
- 緊張する面接でスキーマを読み解く