lunes, 26 de octubre de 2009

Por donde comenzar con Scrum

domingo, 25 de octubre de 2009

UML

Tema2

Caso Practico UML

CasoPracticoVideoclubResuelto

Diseño Orientado a Objetos con UML

Desarrollo Orientado a Objetos con UML [libro-book-español-spanish] height="500" width="100%" > value="http://d1.scribdassets.com/ScribdViewer.swf?document_id=2458870&access_key=key-sjbj63aumlx2obn8rwa&page=1&version=1&viewMode=list">

miércoles, 14 de octubre de 2009

Servidor vinculado SQL Server 2005 y PostgreSQL

Pasos:
1. Descargarse e instalarse la version odbc mas actual para PostgreSQL de: http://www.postgresql.org/ftp/odbc/versions/msi/psqlodbc_08_04_0100.zip

2. Crear un oriden de datos de tipo “System DNS” en Panel de control->Herramientas administrativas->Origenes de datos ODBC, que conecte a su servidor PostgreSQL y nombrarlo por ejemplo “Pucallpa” (base de datos espacial con extensión PostGIS de ejemplo)


Figura 1: conexión ODBC a una base de datos PostgreSQL

3. Correr el siguiente código en el SQL Server Management Studio Express:

EXEC master.dbo.sp_addlinkedserver @server = N'Pucallpa', @srvproduct=N'Microsoft OLE DB Provider for ODBC Driver', @provider=N'MSDASQL', @datasrc='Pucallpa', @location='localhost', @catalog='pucallpa'

Este código es para añadir un servidor vinculado a SQL Server.

4. Correr el siguiente código en el SQL Server Management Studio Express: para asociar el login al servidor vinculado.


EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Pucallpa', @useself=N'False', @locallogin=NULL, @rmtuser='postgres', @rmtpassword='xxx'

5. Ejecutar el siguiente código SQL desde SQL Server 2005:

SELECT * FROM OpenQuery(Pucallpa, 'select cod_lote from lotes')

Algo que me pidieron hacer hace un tiempo como consulta fue: saber el numero de habitantes en los lotes que están a 500 metros de un mercado de la ciudad de Pucallpa (llamado Mercado Nro 02)

SELECT --a.codlote, a.radio, u.nro_habitantes

sum(nro_habitantes)

FROM OpenQuery(Pucallpa, 'select * from mercadolimit5001000') a

left join tb_unidad_catastral u on substring(u.ucnumero,7,8) = a.codlote

where a.radio = 500


Figura 2: Lotes a 500 mts del Mercado N° 2

Para saber cuantos lotes estan a una distancia de otro lote (en este caso el mercado n° 2) hago la siguiente consulta en PostgreSQL con extensión espacial PostGIS:

Figura 3: Consulta espacial en la base de datos “pucallpa” de PostgreSQL

select l.* from lotes l, lotes a where( st_distance(l.geometria, a.geometria)<=1000 and a.cod_lote in ('01040001', '01040002', '01040003', '01040004', '01040005'))

  1. La tabla mercadolimit5001000 a sido creada con la finalidad de almacenar los datos de la consulta anterior, se ejecuto el sigueinte SQL en postgres:

insert into mercadolimit5001000 select l.cod_lote, 500 from lotes l, lotes a where( st_distance(l.geometria, a.geometria)<=500 and a.cod_lote in ('01040001','01040002','01040003','01040004','01040005'

Si desean ver un poco mas a modo de consulta y capas sobre la base de datos espacial que se utilizo en este post esta alojada en el Servidor de Mapas de la Municipalidad Provincial de Coronel Portillo en la que eh sido colaborador directo, ubicado en la siguiente direccion: http://201.230.96.134/pucallpa/mapa.phtml

Proximos Articulos:

- retomando PHP Zend Framework demo

- Google Maps con PHP aplicado a un Sistema de Posicionamiento Global