あなたの質問は、2つの異なる抽象化レベル、つまり概念レベルと論理レベルを組み合わせています。
概念レベルでは、提案されたデータベースの情報要件を説明することに関心があります。説明をある解決策または別の解決策に傾けることなくこれを行うと便利です。この目的に役立つモデルの1つは、実体関連(ER)モデルです。このモデルでは、主題はエンティティ(サブジェクト)とそれらのエンティティ間の関係に分類されます。すべてのデータは、エンティティの1つまたは関係の1つの側面を説明していると見なされます。
「Is-a」と「has-a」の関係は、この抽象化レベルに関連しています。このレベルでは、関係は識別されますが、実装されません。
データベースの概念モデルを作成した後、データベース自体を作成する前に、論理設計フェーズを実行して、データベースの論理モデルを作成すると便利です。データベースをリレーショナルにする場合は、論理モデルをリレーショナルモデルにすると便利です。リレーショナルモデルは、次のレベルの抽象化です。
ここで主キーと外部キーが登場します。これらのキーは、概念的な段階で特定された関係を実装します。これは、リレーショナルモデルがリレーションシップを実装する方法です。この段階では、ジャンクションテーブル、テーブル構成、正規化などの設計上の問題に関与します。
概念レベルと論理レベルに加えて、物理レベルとスクリプトレベルがあります。しかし、これらはあなたの質問の範囲外です。
2種類の関係は、解決すべき問題の特徴です。主キーへの外部キー参照は、提案されたソリューションの機能です。