Das sind keine Karten! Das sind lediglich Geodaten. So wie sie auch in der Datenbank bei osm liegen. Daraus wollen allenfalls mal Karten werden.

Eine SQL Datenbank ist ein bisschen zu allgemein. Wenn du wirklich ein großes Projekt, und Deutschland ist nicht klein, planst sollte es schon eine mit geodatenunterstüzung sein. Bei OSM ist das Postgresql mit der Erweiterung Postgis. Damit hast schon sehr viel von deiner Goecodierung erledigt, da diese Datenbank dann zu den angegeben Koordinaten oder Adressen dann eine Umkreis suche machen kann und dir dann entweder Koordinaten für Adressen oder Adressen für Koordinaten liefern kann.
Die Frage wird nur sein wie du die Datenbank aufbaust. Zum rendern der Karte verwendet der OSM Server Mapnik und ein spezielles Datenbankschema, welches von osm2pgsql befüllt wird.
Dieses Schema erweist sich aber mitunter als hinderlich, wenn man bestimmte Dinge in den Rohdaten finden möchte. Daher gibt es auch ein Snapshotshema welches durch Ossmosis bedient wird. Damit hast du dann quasie eine Datenbank an der Hand welche API konform aufgebau ist und dann solche Suchanfragen bewältigen kann.
In der Vergangenheit habe ich hier leider immer nur gelesen, dass besonders ambitionierte Nutzer beide Datenbanktypen parallel einsetzen um alle Aufgaben zu erfüllen. Alternativ kannst du natürlich auch am Style deiner Datenbank rumschrauben um so das optimum zu erreichen.

Außerdem solltest du dir immer dessen bewust sein, dass OSM keine amtlichen vollständigen Daten hat und somit bestimmte Dinge vielleicht auch nicht findet.

Also der Anfang wäre erstmal die Datenbank dazuzubringen dir die Ergebnisse zu liefern welche du willst.

Unter Linux gibt es bereits eine recht einfache Möglichkeit alle pakete für ein Mapnik rendering zu installieren:
http://wiki.openstreetmap.org/wiki/DE:Ubuntu_tile_server