sábado, 30 de mayo de 2020

Aplicativos con Conexión a Bases de Datos

En realidad, para mi punto de vista, el proceso de conexión de una aplicación con un SGBD es muy similar en todos los casos. Para las bases de datos que están en SQL Server, el proceso se hace mucho más sencillo debido a que ambos programas pertenecen al mismo fabricante. Por otro lado, para conectar una base de datos que este en cualquier otro SGBD se necesita primero descargar las librerías que hacen compatibles a cada SGBD con el entorno de desarrollo (dichas librerías se consigen en las páginas oficiales de los SGBD) y son fáciles de intalar. Una vez instaladas las librerías se debe hacer referencia a ellas, en la opción Referencias de nuestro proyecto. Después, una vez podamos ver la referencia en nuestro explorador de soluciones, procedemos a usar el nameSpace que corresponde a la librería y que nos permitiran hacer uso de los objetos con los cuales se genera la conexión a dicho SGBD.

viernes, 15 de mayo de 2020

Transformaciones lineales

Qué es una transformación lineal?
R/. Una transformación lineal es una función. Cómo toda función tiene su dominio y condominio, sólo que éstos son espacios vectoriales. Para que exista una transformación lineal, se deben cumplir varias propiedades entre dos vectores.

Cuáles son las condiciones para que exista un transformación lineal
R/. Condición 1: T(u+v)=T(u)+T(v)∀u,v∈V
Condición 2: T(k.v)=k.T(v)∀v∈V,∀k∈R

Al menos cinco propiedades o teoremas de las transformaciones lineales
R/. 1. La imagen del vector nulo del dominio 0V0V es el vector nulo del codominio 0w0w.
2. La imagen del vector –v–v es igual al opuesto de la imagen de v
3. Consideremos rr vectores del espacio vectorial VV
4. T: V ® W es un monomorfismo si, y sólo si, T es inyectiva. Es decir, T es un monomorfismo si y sólo si ” u, v Î V: T(u) = T(v) Þ u = v.
5.T: V ® W es un epimorfismo si, y sólo si, T es sobreyectiva. Es decir, T es un epimorfismo si y sólo si ” w Î W, $ v Î V / w = T(v).
6.T: V ® W es un isomorfismo si, y sólo si, T es biyectiva. Es decir, T es un isomorfismo si y sólo si es un monomorfismo y un epimorfismo.
7.T: V ® W es un endomorfismo si y sólo si V = W.
8.T: V ® W es un automorfismo si y sólo si T es un isomorfismo y un endomorfismo.

Un ejemplo de una transformación lineal y Cómo probar esa transformación lineal.

transformacion lineal - es tl o no es tl
Condición 1: T(u+v)=T(u)+T(v)∀u,v∈VT(u+v)=T(u)+T(v)∀u,v∈V
Tomemos dos vectores de R3R3

u=(u1,u2,u3)u=(u1,u2,u3)

v=(v1,v2,v3)v=(v1,v2,v3)

Veamos si
T(u+v)=T(u)+T(v)T(u+v)=T(u)+T(v)


Primero hacemos la suma de uu y vv:
suma de vectores u y v en una transformacion lineal
Y ahora aplicamos TT:

T(u+v)=(u1+v1+u3+v3,u2+v2–2u3–2v3)T(u+v)=(u1+v1+u3+v3,u2+v2–2u3–2v3)

se cumple condicion 1 de transformaciones lineales
T(u+v)=T(u)+T(v)T(u+v)=T(u)+T(v)

En conclusión: se cumple la primera de las condiciones.

Nos faltaría la otra propiedad.

Condición 2:

T(k.v)=k.T(v)∀v∈V,∀k∈RT(k.v)=k.T(v)∀v∈V,∀k∈R


T(k.v)=T((kv1,kv2,kv3))=(kv1+kv3,kv2–2kv3)T(k.v)=T((kv1,kv2,kv3))=(kv1+kv3,kv2–2kv3)

=k.(v1+v3,v2–2v3)=k.T(v)=k.(v1+v3,v2–2v3)=k.T(v)

Como TT cumple las dos condiciones, es una transformación lineal.

Espacios vectoriales

Qué son los espacios vectoriales?
R/. Es un conjunto de objetos, a los que se les llama vectores que cumplen con dos operaciones definidas, la suma y la multiplicación por un escalar y que están sujetas a 10 axiomas.

Enumere los 8 axiomas para comprobar si un conjunto es un espacio vectorial.
R/. 1. la suma es una operacion interna: ´ u + v ∈ V 
2. la suma es conmutativa: u + v = v + u
3. la suma es asociativa: (u + v) + w = u + (v + w) = u + v + w
4. elemento neutro de la suma: ∃0 ∈ V | v + 0 = v, ∀v ∈ V  
5. elemento inverso en la suma: ∀v ∈ V , ∃v 0 ∈ V | v + v 0 = 0, se escribe v 0 = (−v)
6. la multiplicacion por un escalar produce un vector: ´ cv ∈ V 
7. distributividad I: c (u + v) = cu + cv
8. distributividad II: (c + d)v = cv + d v

Qué es un subespacio vectorial?
R/. Es un subconjunto de un espacio vectorial que debe cumplir con los mismos axiomas de un espacio vectorial

Enumere las tres propiedades que permiten probar si un subconjunto de un espacio vectorial es un subespacio.
1. El vector cero de V está en H.2

2. H es cerrado bajo la suma de vectores. Esto es, para cada u y v en  
      H, la suma u + v está en H.

3. H es cerrado bajo la multiplicación por escalares. Esto es, para cada u en H y cada escalar c, el vector cu está en H.

Explique cuales son la dimensión y el rango de un subespacio y que es una base.

Dimensión de un subespacio: Es el máximo número de vectores independientes que podemos tener en un subespacio. Dicho de otra forma es el rango máximo que puede tener un conjunto de vectores pertenecientes a dicho subespacio.

Rango: El rango de un subespacio es igual a la dimensión del subespacio, por eso se tiene que la dimensión de un subespacio S es igual al rango R. Dim S = r.
(Si un cierto conjunto de vectores tienen rango 2, entonces generan un plano; etc.)

Base: La base de un subespacio, al igual que la de un espacio vectorial es aquel sistema que puede generar dicho subespacio y que a su vez es lienalmente independiente.



 

TIA 2: Implementación y manipulación de bases de datos”

--Para evitar que el video se haga muy largo, voy a ir copiando las tablas con sus respectivos campos de un archivo ya creado, el archivo esta en mi drive como van a observar durante el video
--Se crea la BD
create database agenciaArrendamiento

--Activamos la base de datos que se ha creado
use agenciaArrendamiento

--Procedemos a crear las tablas de la BD, comenzamos por las que no tienen foreign keys para evitar errores o por las que ya tienen los campos que forman los foreign keys
--Se crea la tabla Agencia
create table Agencia(
cod_sucursal int not null primary key,
nom_sucursal varchar(30) not null,
dir_sucursal varchar(50))

--Se crea la tabla Administradores
create table Administradores(
cod_sucursal1 int not null,
ced_administrador int not null primary key,
nom_administrador varchar(30),
tel_administrado int,
foreign key (cod_sucursal1) references Agencia(cod_sucursal))

--Se crea la tabla Contratos
create table Contratos(
cod_contrato int not null primary key,
fecha_inicio date not null,
fecha_fin date not null,
valor_mensualidad float not null)

--se crea la tabla Propietarios
create table Propietarios(
ced_propietario int not null primary key,
tel_propietario int not null,
nom_propietario varchar(50) not null)

--se crea la tabla Propiedades
create table Propiedades(
cod_propiedad int not null primary key,
ubicacion varchar(60) not null,
tipo_inmueble varchar(30) not null,
cant_contratos int not null,
--Esta propiedad se cambio era tipo bit
estado_contrato varchar(2) not null,
cod_sucursal2 int not null,
ced_propietario2 int not null,
foreign key (cod_sucursal2) references Agencia(cod_sucursal),
foreign key (ced_propietario2) references Propietarios(ced_propietario))

--se crea la tabla Caracteristicas
create table Caracteristicas(
cod_propiedad1 int not null,
estrato int not null,
cant_habitaciones int not null,
cant_banos int not null,
metros_cuadrados float not null,
parqueadero int,
piso int not null,
--Esta propiedad se cambio, era tipo bit
porteria varchar(2) not null,
foreign key (cod_propiedad1) references Propiedades(cod_propiedad))

--se crea la tabla Pagos
create table Pagos(
cod_propiedad2 int not null,
cod_contrato1 int not null,
fecha_pago date not null,
foreign key (cod_propiedad2) references Propiedades(cod_propiedad),
foreign key (cod_contrato1) references Contratos(cod_contrato))

--se crea la tabla clientes
create table Clientes(
ced_cliente int not null primary key,
tel_cliente int not null,
nom_cliente varchar(50) not null)

--se crea la tabla propiedad arrendada
create table PropiedadArrendada(
ced_cliente1 int not null,
cod_propiedad1 int not null,
valor_contrato_inicial float not null,
ced_administrador1 int not null,
cod_contrato2 int not null,
foreign key(ced_cliente1) references Clientes(ced_cliente),
foreign key(cod_propiedad1) references Propiedades(cod_propiedad),
foreign key(ced_administrador1) references Administradores(ced_administrador),
foreign key(cod_contrato2) references Contratos(cod_contrato))

--Se crea la tabla certificado de trabajo
create table CertificadoTrabajo(
cod_certificado int not null primary key,
ced_cliente2 int not null,
foreign key(ced_cliente2) references Clientes(ced_cliente))

--Se crea la tabla fiador
create table Fiador(
ced_fiador int not null primary key,
tel_fiador int not null,
cant_bienes int not null,
tipo_de_bienes varchar(200) not null,
ced_cliente3 int not null,
foreign key(ced_cliente3) references Clientes(ced_cliente))

--Como la BD ya esta creada, vamos a corroborar como quedaron las relaciones mirando el diagrama de la BD
--Como ya vimos que la estructura esta bien, prodecemos a ingresar datos a las diferentes tablas, para posteriormente desarrollar los ejercicios propuestos por el profesor

--Primero ingresamos datos a la tabla Agencia
insert into Agencia values(1,'Sede Centro','Calle 1')
insert into Agencia values(2,'SedN norte','Calle 2')
insert into Agencia values(3,'Sede Sur','Calle 3')

--Ingresamos datos a la tabla administradores
insert into Administradores values(1,1,'Martha Sofía',555)
insert into Administradores values(2,2,'Elkin José',222)
insert into Administradores values(3,3,'Armando Cuesta',333)

--Ingresamos datos a la tabla propietarios
insert into Propietarios values(4,7584,'Anibal Ruiz')
insert into Propietarios values(5,6952,'Jorge Peréz')
insert into Propietarios values(1,666,'Cristian Castro')
insert into Propietarios values(2,111,'Daniel García')
insert into Propietarios values(3,777,'Ray Vanegas')

--Ingramos datos a la tablal Propiedades
insert into Propiedades values(1,'Belén','Apartamento',2,'Si',1,1)
insert into Propiedades values(2,'Prado Centro','Casa',5,'No',3,2)
insert into Propiedades values(3,'Llano Grande','Hacienda',6,'No',2,3)
insert into Propiedades values(4,'Calle 25 # 12-12','Local Comercial',1,'Si',2,3)
insert into Propiedades values(5,'Poblado','Casa',2,'Si',2,4)
insert into Propiedades values(6,'Poblado','Casa',3,'Si',2,5)

--Ingramos datos en la tabla caracteristicas
insert into Caracteristicas values(1,2,3,2,89,1,22,'Si')
insert into Caracteristicas values(2,4,5,3,120,2,1,'No')
insert into Caracteristicas values(3,1,10,4,340,3,1,'Si')
insert into Caracteristicas values(4,2,3,2,88,4,4,'Si')
insert into Caracteristicas values(5,6,4,3,98,2,3,'Si')
insert into Caracteristicas values(6,6,5,3,122,2,9,'Si')

--Ingresamos datos en la tabla CLientes
insert into Clientes values(10,852,'Antonio Casas')
insert into Clientes values(20,741,'Esteban Hernandez')
insert into Clientes values(30,963,'Paul Ossa')

--Ingreamos datos en la tabla certificadoTrabajo
insert into CertificadoTrabajo values(366,10)
insert into CertificadoTrabajo values(455,20)
insert into CertificadoTrabajo values(255,30)

--Ingresamos datos en la tabla fiador
insert into Fiador values(654,3573,1,'Casa',10)
insert into Fiador values(321,5926,1,'Apartamento',20)
insert into Fiador values(951,3847,1,'Casa',30)

--Ingresamos datos en la tabla contratos
insert into Contratos values(1,'09/11/2009','09/11/2010',2050000)
insert into Contratos values(2,'03/04/2004','03/04/2005',1050000)
insert into Contratos values(3,'01/01/2001','01/01/2002',1250000)
insert into Contratos values(4,'01/01/2016','01/01/2017',2050000)
insert into Contratos values(5,'01/01/2018','01/01/2019',1250000)
insert into Contratos values(6,'01/01/2013','01/01/2014',3000000)

--Ingresamos los datos en la tabla propiedad arrendada
insert into PropiedadArrendada values(10,4,1400000,1,1)
insert into PropiedadArrendada values(20,5,1200000,2,2)
insert into PropiedadArrendada values(30,6,7000000,3,3)

--Como vimos, se ingresó toda la información a la BD correctamente, ahora prodecemos a realizar los ejercicios propuestos por el profesor
--Mostrar los datos de las propiedades con número de habitaciones mayor que 3 y tiene un área mayor que 68 mts2 o son tipo casa.

select * from Caracteristicas C where C.cant_habitaciones >3 and C.metros_cuadrados >68
--Como se ve en la parte de abajo, nos muestra los resultados de la búsqueda que hicimos
--Mostrar los datos de los pagos generados por la propiedad con dirección calle 25 #12-12.

select * from Propiedades Pr where Pr.ubicacion in ('Calle 25 # 12-12')
--Se puede apreciar el resultado en la parte inferior de la pantalla
--Mostrar los datos de las propiedades arrendadas en fechas menores a 01/01/2016

Select * from Contratos C where c.fecha_inicio <'01/01/2016'
--Se ven los resultados en la parte inferior de la pantalla
--Mostrar los datos de clientes que han arrendado casas en el poblado y sus dueños son Jorge Pérez o Aníbal Ruiz

select cl.nom_cliente, cl.tel_cliente, cl.ced_cliente, p.tipo_inmueble, p.ubicacion
from dbo.Propiedades p
inner join dbo.PropiedadArrendada pa on pa.cod_propiedad1 = p.cod_propiedad
inner join dbo.Propietarios pr on pr.ced_propietario = p.ced_propietario2
inner join dbo.Clientes cl on cl.ced_cliente = pa.ced_cliente1
where p.ubicacion = 'Poblado' and p.tipo_inmueble = 'Casa' and (pr.nom_propietario in('Jorge Peréz','Anibal Ruiz'))

Vídeo creación BD

Es demasiado importante aprender a manejar las BD, ya que casi todas las aplicaciones que vayamos a crear en el futuro van a tener que tener como mínimo una BD conectada para el intercambio de datos. Ahora en nuestra sociedad que dice que la mayor riqueza son los datos, por ende nosotros, los futuros programadores debemos saber manejar lo mejor posible dicha "riqueza" si queremos destacar como programadores y grandes profesionales.