直接的な答え:問題が比較的単純であるという理由だけで、それを単純に保つために何かをしない理由はありません。手よりも足で歩く方がはるかに簡単です。「ああ、半マイル行けばいい、それは短い距離なので、手で歩いたほうがいい」と言ったことは今まで覚えていません。
より長い答え:都市の名前以外の情報を保持しておらず、都市の事前設定リストがない場合(たとえば、ドロップダウンを作成するため)、スキーマはすでに正規化されています。都市名以外の都市テーブルには何が含まれますか?(オハイオ州デイトンとテネシー州デイトンなど、異なる州に同じ名前の2つの都市がある可能性があるため、州は市に依存できないと思います。)関連する正規化のルールは「非キー依存関係なし」です。キーではないデータに依存するデータがあります。たとえば、各都市の緯度と経度がある場合、このデータは同じ都市を参照するすべてのレコードで繰り返されます。その場合、緯度と経度を保持するために別の都市テーブルを作成することをお勧めします。もちろん、「都市コード」を作成することもできます これは、都市テーブルにリンクする整数または省略形です。しかし、都市に関する他のデータがない場合、これがどのように何かを得るのかわかりません。
技術的には、CityはVenueに依存していると思います。会場が「ロックフェラーセンター」の場合、それは都市がニューヨークでなければならないことを意味します。しかし、会場がオプションの場合、これは問題を引き起こします。1つの可能性は、会場名、都市、および州をリストする会場テーブルを用意することです。会場を指定しない場合は、各都市に「未指定」を設定します。これは教科書の方が正しいでしょうが、実際には、ほとんどの場合、venuを指定しないと、ほとんど得られません。ほとんどの場合、venuを指定する場合は、おそらくそれは良い考えです。
ああ、そして、イベントとスポンサーの間には本当に1:1の関係がありますか?イベントに複数のスポンサーを含めることはできないと私は信じています。(実際には、複数のスポンサーによるイベントがたくさんありますが、おそらくあなたの目的のために、「プライマリスポンサー」などだけを気にします。)しかし、スポンサーが複数のイベントを開催することはありませんか?それはありそうもないようです。