Está en la página 1de 30

Mdulo 3: Datos Espaciales

Adquisicin y Fuentes

El presente formulario u hoja de DECLARACIN DE AUTENTICIDAD Y HONESTIDAD


ACADMICA, deber ser incorporada al principio del documento donde detallar
y presentar todas sus tareas.
NOTA:
No se recibirn ni calificarn las tareas que no cuenten con el presente formulario
debidamente llenado por el estudiante:

DECLARACIN DE AUTENTICIDAD
Y HONESTIDAD ACADMICA

Yo, Jefferson Stiwar Caadas Cuesta

declaro que el texto y los resultados obtenidos en la realizacin de la tarea o

trabajo que adjunto son absolutamente originales, autnticos y personales. En


tal virtud, declaro que los pasos o procedimientos, resultados, conclusiones y

dems contenido, as como los efectos acadmicos y legales que resulten del
presente trabajo son y sern de mi exclusiva responsabilidad acadmica y legal si
fuese el caso.

Fecha:

UNIGIS | 19942013

03/02/2015

1 de 1

Tarea 1

Un SIG es un conjunto de software que tiene la capacidad de utilizar todas las


potencialidades de las bases de datos para desplegar informacin que se encuentra
referenciada a un territorio, en un mapa. Aunque a primera vista un SIG comparta
caractersticas con los programas de diseo asistido por computadora (CAD), en cuanto a la
produccin de material cartogrfico, importando coordenadas desde un GPS u otros
elementos de captura de las mismas, se diferencia de estos, en su capacidad de poder
permitir realizar consultas, integrar, analizar y representar la informacin.

Las BD le otorgan a los SIG la capacidad de optimizar los datos de las entidades que se han
modelado, facilitan la realizacin de las consultas y optimizan el espacio de
almacenamiento reservado para la informacin. Permiten tambin tener un control sobre la
informacin que se almacena, evitando que los datos sean duplicados. Un SIG que no
cuente con una base de datos, se convierte en nada ms y nada menos que un programa
CAD.

Tarea 2 DISEO LGICO

Despus de analizar los enunciados procedemos a realizar el diseo lgico de la base de


datos, lo que nos permitir encontrar las entidades y los respectivos atributos de las mismas.
Paso 1. Identificacin de Entidades
En un primer anlisis encontramos las siguientes entidades: AREA, OFCD (Oficial de
control de desarrollo), ZONA, VIVIENDA y CONSTRUCTOR, posiblemente una entidad
ARQUITECTO

Grfico 1. Identificacin de Entidades. Diseo Propio

Paso 2. Identificar Relaciones entre Entidades

La relacin entre AREA y OFCD es 1:M, en una oficina de rea se localizan uno o
ms oficiales de control de desarrollo; el oficial de desarrollo solo se localiza en una
oficina de rea.

Un oficial de control de desarrollo puede tener asignadas varias zonas, y cada zona
es controlada por un oficial de control de desarrollo, por lo tanto la relacin entre
OFCD y ZONA es de 1:M.

La relacin entre ZONA y VIVIENDA, es de M:N, ya que todos los tipos de


vivienda se construyen en todas las zonas.

Cada constructor puede desarrollar en varias zonas, la relacin entre zona y


constructor es de M:N.

Cada constructor puede desarrollar diferentes tipos de viviendas, por lo tanto la


relacin entre CONSTRUCTOR y VIVIENDA es de M:N.

Un arquitecto jefe puede dirigir a ms de un constructor a la vez, y ya que un


constructor puede desarrollar en diferentes zonas, podemos asumir que responder
ante diferentes arquitectos jefes, por lo tanto la relacin entre ARQUITECTO y
CONSTRUCTOR es de M:N.

Grfico 2. Identificar Relaciones entre entidades. Diseo propio.

Hasta el momento nuestro diagrama EAR queda as:

Grfico 3. Diagrama entidad-relacin. Diseo propio.

En el diseo lgico de la base de datos, debemos asegurarnos que no existan relaciones de


muchos a muchos. Para solucionar esta problemtica, se rompern las relaciones de M:N

existentes, creando relaciones de 1:M, usando los verbos que describen las relaciones
especificadas en el grfico 2, para generar una nueva tabla, las cuales se conocen como
tablas dbiles y dependen de las claves primarias de las entidades fuertes. Las nuevas
relaciones se aprecian en el grfico 4.

Grfico 4. Creacin de entidades dbiles. Diseo propio.

En el grfico 3 podemos apreciar que la entidad ARQUITECTO se encuentra marcada con


un signo de interrogacin, esto le he hecho de manera intencional, para poder analizar la
forma en que esta entidad debe ser anexada a la BD, debido a que no se encuentran
mayores atributos durante el anlisis previo, la suprimir como una entidad fuerte, puesto
que su creacin solo ocupara espacio; y se dejar inmersa en la entidad CONSTRUCTOR.
La relacin entre ZONA y CONSTRUCTOR se encuentra marcada como relacin sobrante,
esto lo hago para aclarar, que al momento de realizar las relaciones entre tres entidades a, b
y c, si a se relaciona con b y b se relaciona con c, no es necesaria la relacin entre a y c; en
nuestro caso ZONA, CONSTRUCTOR y VIVIENDA; CONSTRUCTOR y VIVIENDA se
encuentran relacionados, al igual que VIVIENDA y ZONA, estn en una relacin, puedo
entonces, prescindir de la relacin entre las entidades CONSTRUCTOR y ZONA. Despus
de estas consideraciones nuestro diagrama ER, nos queda as:

Grfico 5. Diagrama ER modificado

Paso 3 Asignacin de Atributos

Grfico 6. Asignacin de atributos a las entidades. Diagrama EAR. Diseo propio

En este punto del diseo lgico de la BD, surge una cuestin Dnde ubicar el atributo de
la cantidad? Pues de acuerdo a los enunciados, El sistema debe ser capaz de registrar cuntas
residencias estn siendo desarrolladas en cada zona por cada constructor, bien podra hacer parte

de las entidades VIVIENDA o CONSTRUCTOR; para solucionar este inconveniente y de


paso buscar mejorar la estructura de la base de datos, se suprimen las entidades ERIGIR y
EDIFICA, por una entidad dbil, a la que llamare ERIGIR1, cuyos atributos estarn
conformados por los que se encontraban en las entidades suprimidas y se adiciona aqu el
atributo de la cantidad, obsrvese el grfico 7 para una mayor comprensin.

Grfico 7. Se puede observar la supresin de las entidades dbiles ERIGIR y EDIFICA, que han sido
reemplazadas por la entidad, de igual manera dbil, ERIGIR1, la cual se muestra con sus respetivos atributos.

Con esta modificacin en el diseo, ahora tendramos un nuevo diagrama EAR

Identificacin de claves primarias (PK)

areaid: clave numrica

tarjproofcd: matrcula profesional del oficial de control de desarrollo.

Idzona: clave numrica

Idvivivienda: clave numrica

tarjproconst: Matrcula profesional del constructor.

En Colombia existe el COPNIA (Consejo Profesional Nacional de Ingeniera), que se


encarga de llevar el registro de los profesionales de la ingeniera, mediante la ley 842 de
2003. Para poder ejercer legalmente la Ingeniera, sus profesiones afines o sus profesiones
auxiliares en el territorio nacional, en las ramas o especialidades regidas por la presente ley, se
requiere estar matriculado o inscrito en el Registro Profesional respectivo, que seguir llevando el
Copnia, lo cual se acreditar con la presentacin de la tarjeta o documento adoptado por este para
tal fin.. (https://copnia.gov.co).

Identificacin de claves forneas (FK)


ENTIDAD

LLAVES FORNEAS

OFCD

areaid

ZONA

ofcd

ERIGIR1

zona,vivienda,constructor

Documentacin
TABLA AREA
Nombre

areaid
nomarea

Nombre

Tipo de

Valores

completo

datos

nulos

Identificador de
rea
Nombre del
rea

Serial

No nulo

Varchar(20)

No nulo

dirarea

Direccin del
rea

Varchar(30)

No nulo

Telarea

Nmero
telefnico del
rea

integer

null

nico Dominio,
Restricciones
nico

Clave primaria de
rea
Maysculas. El
dominio es
NORTE,
CENTRO y SUR
Maysculas. El
dominio es
AV.NORTE,
AV.CENTRO y
AV.SUR
Acepta valores
numricos. El
dominio es 555555,
666666, 777777

Tabla OFCD
Nombre

idofcd

nomofcd

telofcd

Nombre

Tipo de

Valores

completo

datos

nulos

Identificador de
Serial
Oficial de
control de
desarrollo
Nombre del
Varchar(20)
Oficial de
Control de
desarrollo
Telfono del
Integer
Oficial de
control de
desarrollo

tarjproofcd Matrcula
Varchar(16)
profesional del
Oficial de
control de
desarrollo
areaid
Identificador de serial
rea

nico Dominio,
Restricciones

No nulo

No nulo

null

No nulo

Maysculas. El
dominio es
NORTE,
CENTRO y SUR
Maysculas. El
dominio es
AV.NORTE,
AV.CENTRO y
AV.SUR
Llave primaria de
OFCD

Clave externa. Ver


tabla Area

Tabla ZONA
Nombre

idzona

nomzona

exten
ofcd

Nombre

Tipo de

Valores

completo

datos

nulos

Restricciones

No nulo

Llave primaria
ZONA

No nulo

Acepta maysculas y
minsculas. El
dominio es La
Floresta, Espaa, San
Francisco, La Unin,
La Pradera, Simn
Bolvar y Bellavista
Extensin del rea
Llave fornea. Ver
tabla OFCD

Identificador de Serial
la zona de
construccin
Nombre de la
Varchar(20)
zona de
construccin

extensin
Matrcula
profesional del
Oficial de
control de
desarrollo

Integer
Varchar(16)

No nulo

nico Dominio,

de

Tabla VIVIENDA
Nombre

Nombre

Tipo de

Valores

completo

datos

nulos

Restricciones

Serial

No nulo

Llave primaria
VIVIENDA

Varchar(20)

No nulo

Acepta maysculas y
minsculas. El
dominio es Semi,
Aislada, v
Villa y
Departamentos

Tipo de
datos

Valores
nulos

Serial

No nulo

Varchar(20)

No nulo

idvivienda

Identificador
del tipo de
vivienda
tipovivienda Descripcin
del tipo de
vivienda
construida

nico Dominio,

de

Tabla CONSTRUCTOR
Nombre

Nombre
completo

idconst

Identificador
del constructor
nombconst Nombre del
constructor
dirconst
Direccin del
constructor
telconst
Nmero
telefnico del
constructor
tarjproconst Matrcula
profesional del
constructor
arquitecto
Nombre del
arquitecto jefe

varchar
integer

null

Varchar(16)

No nulo

Varchar(20)

null

Tipo de
datos

Valores
nulos

nico Dominio,
Restricciones,
comentarios

Acepta maysculas y
minsculas.
Extensin del rea

Llave primaria

Tabla ERIGIR1
Nombre

Nombre
completo

Iderigir
zona

Identificador
Serial
Identificador de serial
la zona

No nulo
No nulo

nico Dominio,
Restricciones,
comentarios
Llave fornea. Ver
tabla zona. Candidata
a llave primaria
compuesta

vivienda

Identificador
del tipo de
vivienda

serial

constructor Matrcula
profesional del
constructor

Varchar(

null

cantidad

integer

No nulo

cantidad

Llave fornea. Ver


tabla vivienda.
Candidata a llave
primaria compuesta
Llave fornea. Ver
tabla constructor.
Candidata a llave
primaria compuesta
Almacena la cantidad
de viviendas erigidas

El diseo lgico de una BD, permite al diseador realizar una representacin grfica de las
entidades del mundo real, sus atributos y su forma de interactuar unas con otras; permite
comprender y planificar el funcionamiento y desarrollo de la base de datos.

Tarea 3 DISEO FSICO

create table area(


AreaId
integer not null,
NomArea
varchar(20) not null,
DirArea
varchar(30) not null,
TelArea
Integer,
primary key (AreaId)
);
Create table ofcd(
IdOfcd

integer,

NomOfcd

varchar(50) not null,

telOfc

integer,

tarjproOfcd

varchar(16)primary key not null,

AreaId

integer,

foreign key(AreaId)REFERENCES area(AreaId)


);

create table zona(


Idzona

integer not null,

Nomzona

varchar(30),

exten

integer,

ofcd

varchar(16),

primary key (Idzona),


foreign key (ofcd) REFERENCES ofcd(tarjproOfcd)
);
create table vivienda(
Idvivienda integer,
tipovivienda varchar(30),
primary key (Idvivienda)
);

create table constructor(


idconst

integer,

nombconst

varchar(50),

dirconst

varchar(30),

telconst

integer,

tarjprofconst varchar(16),
primary key (tarjprofconst)
);
create table erigir1 (
iderigir1 serial,
zona integer,
vivienda integer,
constructor varchar(16),
cantidad integer,
foreign key (zona) references zona(idzona),
foreign key (vivienda) references vivienda(idvivienda),
foreign key (constructor) references constructor(tarjprofconst)
);

AGREGAR LAS ACTUALIZACIONES Y ELIMINACIONES EN CASCADA

alter table zona


add constraint FK_ofcd_zona,
foreign key (ofcd) references ofcd(tarjproOfcd),
on update cascade,
on delete cascade

alter table ofcd


add constraint FK_area_ofcd
foreign key (AreaId) references area(AreaId)
on update cascade
on delete cascade;
alter table erigir1
add constraint erigir_zona
foreign key (zona) references zona(idzona)
on update cascade
on delete cascade;

alter table erigir1


add constraint erigir_vivienda
foreign key (vivienda) references vivienda(idvivienda)
on update cascade
on delete cascade;

alter table erigir1


add constraint erigir_constructor
foreign key (constructor) references constructor(tarjprofconst)
on update cascade
on delete cascade;

INSERCIN DE DATOS

INSERT INTO area (AreaId,NomArea,DirArea,TelArea) VALUES


(1,'NORTE','AV.NORTE',777777);
INSERT INTO area (AreaId,NomArea,DirArea,TelArea) VALUES
(2,'CENTRO','AV.CENTRO',555555);
INSERT INTO area (AreaId,NomArea,DirArea,TelArea) VALUES
(3,'SUR','AV.SUR',666666);

INSERT INTO vivienda (idvivienda,tipovivienda) values (1,'Semi');


INSERT INTO vivienda (idvivienda,tipovivienda) values (2,'Aislada');
INSERT INTO vivienda (idvivienda,tipovivienda) values (3,'Villa');
INSERT INTO vivienda (idvivienda,tipovivienda) values (4,'Departamentos');

INSERT INTO constructor (idconst, nombconst, dirconst, telconst, tarjprofconst,


arquitecto) Values (1, 'Carrera', 'Ambato', 2345672,'5252159295dnc','Parra');
INSERT INTO constructor (idconst, nombconst, dirconst, telconst, tarjprofconst,
arquitecto) Values (2, 'Torres', 'Quito', 2365667,'2121512939abx','Santamaria');
INSERT INTO constructor (idconst, nombconst, dirconst, telconst, tarjprofconst,
arquitecto) Values (3, 'Freire','Riobamba',2421673,'1213801411xyz','Castro');
INSERT INTO constructor (idconst, nombconst, dirconst, telconst, tarjprofconst,
arquitecto) values (4, 'Larrea','Ambato',3422354,'1234567890pqr','Bermeo');

INSERT INTO ofcd (idofcd, nomofcd, telofc, tarjproofcd, areaid)


VALUES (1,'zambrano',801234,'2525512959cnd',1);
INSERT INTO ofcd (idofcd, nomofcd, telofc, tarjproofcd, areaid)
VALUES (2,'rueda',802345,'1212159293xba',1);
INSERT INTO ofcd (idofcd,nomofcd,telofc,tarjproofcd,areaid)
VALUES (3,'daz',803456,'2131084111zxy',2);
INSERT INTO ofcd (idofcd,nomofcd,telofc,tarjproofcd,areaid)
VALUES (4,'prez',804567,'4151102324pqr',2);
INSERT INTO ofcd (idofcd,nomofcd,telofc,tarjproofcd,areaid)
VALUES (5,'maldonado',805678,'5161112425bcd',3);
INSERT INTO ofcd (idofcd,nomofcd,telofc,tarjproofcd,areaid)
VALUES (6,'lpez',806789,'6171122526cde',3);

insert into zona (idzona,nomzona,exten,ofcd) values (1,'La Floresta',50,'2525512959cnd');


insert into zona (idzona,nomzona,exten,ofcd) values (2,'Espaa',193,'1212159293xba');
insert into zona (idzona,nomzona,exten,ofcd) values (3,'San
Francisco',148,'2131084111zxy');
insert into zona (idzona,nomzona,exten,ofcd) values (4,'La Union',32,'2131084111zxy');
insert into zona (idzona,nomzona,exten,ofcd) values (5,'La Pradera',170,'4151102324pqr');
insert into zona (idzona,nomzona,exten,ofcd) values (6,'Simon
Bolivar',279,'2525512959cnd');
insert into zona (idzona,nomzona,exten,ofcd) values (7,'Bellavista',89,'5161112425bcd');

insert into erigir1(zona,vivienda,constructor,cantidad)


values (1,1,'5252159295dnc',10);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (1,2,'5252159295dnc',5);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (1,3,'5252159295dnc',15);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (2,1,'2121512939abx',3);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (3,2,'5252159295dnc',5);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (3,1,'5252159295dnc',5);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (3,2,'1234567890pqr',4);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (3,2,'1213801411xyz',2);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (4,3,'5252159295dnc',11);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (4,4,'1213801411xyz',12);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (5,1,'5252159295dnc',20);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (6,3,'2121512939abx',3);
insert into erigir1(zona,vivienda,constructor,cantidad)
values (7,2,'1213801411xyz',12);

Tarea 4. MANTENIMIENTO Y CONSULTA DE UNA BD CON SQL.

Consulta
select nomzona,tipovivienda,cantidad
from erigir1,zona,vivienda
where erigir1.zona=3
and erigir1.vivienda=2
and zona.idzona=erigir1.zona
and vivienda.idvivienda=erigir1.vivienda
4.1
select nombconst,arquitecto,nomofcd
from
erigir1 inner join vivienda on (erigir1.vivienda=vivienda.idvivienda)
inner join zona on (erigir1.zona=zona.idzona)
inner join constructor on (erigir1.constructor=constructor.tarjprofconst)
inner join ofcd on (zona.ofcd=ofcd.tarjproofcd)
and vivienda.tipovivienda like 'Departamentos%'

4.2
select SUM(cantidad), tipovivienda
from
erigir1 inner join vivienda on (erigir1.vivienda=vivienda.idvivienda)
inner join zona on (erigir1.zona=zona.idzona)
and zona.nomzona IN('San Francisco','Espaa')
group by
vivienda.tipovivienda

4.3
select SUM(cantidad), tipovivienda
from
erigir1 inner join vivienda on (erigir1.vivienda=vivienda.idvivienda)
inner join zona on (erigir1.zona=zona.idzona)
inner join ofcd on (zona.ofcd=ofcd.tarjproofcd)
and vivienda.tipovivienda LIKE 'Villa%'
and ofcd.nomofcd IN ('maldonado','lpez')
group by
vivienda.tipovivienda

4.4
SELECT AVG(exten),SUM(exten)
from zona

select MAX(cantidad), tipovivienda,nombconst


from erigir1,vivienda,constructor
where
erigir1.vivienda=vivienda.idvivienda
and erigir1.constructor=constructor.tarjprofconst
and vivienda.tipovivienda like 'Aislada%'
group by
tipovivienda,

nombconst

Tarea 5.

Lo primero que haremos es importar los archivos shp, shx y dbf de los datos
proporcionados para la tarea a la carpeta bin de postgresql, cuya ruta es C:\Program
Files\PostgreSQL\9.4\bin

Luego ejecutamos la consola de DOS presente en Windows en modo administrador para


evitar problemas de acceso, una vez ejecutado, nos dirigiremos a la carpeta bin mediante el
uso de comandos propios de DOS, donde almacenamos los archivos.

Realizamos dos pasos para importar los shps

Generar un archivo SQL para importar mediante el shp2pgsql

Abrir y ejecutar desde pgAdmin.

Los cdigos a utilizar sern

Shp2pgsql zonas zonas > zonas.sql


Shp2pgsql TipoCasa Tipocasa >TipoCasa.sql
Shp2pgsql Ambato Ambato > Ambato.sql

Realizado este procedimiento, nos dirigimos a pgAdmin y abrimos una nueva de ventana de
consulta SQL, seleccionamos archivo y abrir, seleccionamos el archivo SQL generado y
clic en open, observaremos las isntrucciones SQL para crear e insertar datos en las tablas

Antes de ejecutar la instruccin SQL debemos estar seguros de que nuestra base de datos
tenga instalada la extensin PostGis, para ello hacemos clic derecho sobre la BD,

escogemos New Object, New Extensin, y en el cuadro de dialogo seleccionamos PostGis.


As queda la extensin vinculada al esquema public

Luego podremos ejecutar la instruccin SQL de consulta.


Select * From zonas

Select * From Tipo Casa


Select * From Ambato

Los siguiente que haremos ser darle sentido a los campos geomtricos que presentan
nuestras tablas, para ello ejecutaremos la funcin ST_ASTEXT, lo que nos permitir
extraer un listado comprensible de coordenadas, utilizando tambin la funcin SRID
(System Reference ID) para determinar el ID del sistema de Referencia.

Sintaxis:
SELECT gid,coordx,coordy, geom,ST_ASTEXT(geom), ST_SRID(geom)from tipocasa;
SELECT gid,area,f_area, geom,ST_ASTEXT(geom), ST_SRID(geom)from zonas;

También podría gustarte