Infelizmente, você não pode conectar uma página da web diretamente a um banco de dados por questões de segurança; normalmente, você precisa de um middleware para unir os dois.
Portanto, para o seu exemplo e se você preferir o software de código aberto, poderá usar facilmente o GeoServer como servidor geográfico para servir seus dados do banco de dados PostGIS para a página HTML do OpenLayers.
Por que isso é bom é que o GeoServer servirá os dados de maneira padrão, o OGC Web Map Server (WMS) ou o Web Feature Service (WFS) e ambos são entendidos pelo OpenLayers e muitas outras APIs (ESRI, Leaflet etc.) e outros computadores Software GIS (ESRI, MapInfo, QGIS, uDig etc)
Então, eu observaria a documentação do GeoServer, que mostra como conectar o GeoServer ao PostGIS e depois fornecer os dados.
http://docs.geoserver.org/stable/en/user/gettingstarted/index.html
Se você é novo nesse tipo de coisa, não há melhor lugar para começar do que os tutoriais do OpenGeo
http://workshops.opengeo.org/
Eu definitivamente ficaria com seus dados no PostGIS se
a) você tem muitos dados b) deseja executar consultas (como você faz) ec) se muitas pessoas vão usar seu aplicativo
Se você deseja executar consultas, eu consultaria o Web Processing Services (WPS), estes ainda são "novos", mas são suportados no GeoServer.
No entanto, se você possui uma pequena quantidade de dados e pode executar as consultas previamente e usar o OpenLayers para exibir, você deve usar o GeoJSON a partir de um arquivo simples ou até mesmo o TopoJSON, que está ganhando muita popularidade com a biblioteca javascript D3 - veja aqui http://bost.ocks.org/mike/map/ O tutorial de Mike Bostock é ótimo.
espero que ajude