Spatialite is a GIS extension developed by Alessandro Furieri for Sqlite, the famous file based database system. The upcoming 2.4.0 Release will support the import of OpenStreetMap data. Currently it gets shipped with a dedicated converter called spatialite_osm, which imports the street network from an OSM XML file into a spatialite database. Its usage is simple. Just create an empty database, initialize it and import the OSM data file:
spatialite rlp.sqlite
.read init_spatialite.sql ASCII
spatialite_osm -o rheinland-pfalz.osm -d rlp.sqlite -T roads -m
Spatialite also contains a viewer application. Here’s what the road network looks like while displaying the inner city of Speyer, Germany:

Spatialite GIS showing the inner city of Speyer (data CC-by-SA by openstreetmap and its contributors)
According to the release notes, it also supports routing, which I didn’t try yet. Additionally, there’s a plugin for Mapnik, one of the main renderers used by the project. Importing a shapefile is as simple as importing an OSM file. The first argument is the name of the shx file, the second the database table name to be created:
.loadshp natural natural UTF-8 3004 geom
select CreateSpatialIndex('natural', 'geom');
I never paid any attention to shapefiles as I didn’t see any benefit for my purposes. But after importing them into the sqlite database file, I can imagine some cool stuff one could do with it. But obviously I am not the first one who thinks about rendering by using a spatialite database as data source.
Update:
Meanwhile I imported Shapefiles of Germany into spatialite. Here is Speyer again, this time as displayed by Qgis:
And in case you ever wanted to know where the most buildings are sited in Germany, this screenshot is for you :) :


[...] Points of Interest IT, software, gadgets, openstreetmap, synthesizers, and anything else that matters « Stuffing OSM data into a spatialite database [...]