lunes, 28 de noviembre de 2016

Comprimir tabla en SQL Server

Se crea una la tabla Documento y luego se le comprimeesto se utiliza en una tabla de alto movimiento de registros. 

Create table Documento
(cod_doc char(2) not null Primary key,
nom_doc varchar(30) not null,
cod_Sunat char(2) not null,
tipo_doc char(1) not null,
est_doc char(1) not null Default 'A')

Comprimir la tabla Documento, usando compresión page, 

Alter Table Documento
Rebuild With (Data_Compression = Page);

Go

domingo, 27 de noviembre de 2016

Creación de una tabla con una columna XML

Creación de una tabla con una columna XML.

USE Tienda
Go

Create Table Proyectos_XML (
Id_Proyecto Int not Null,
Det_Proyecto XML not Null, 
Constraint pk_proy  Primary Key (Id_Proyecto ))

 -- Ingreso de datos a la tabla Proyecto_XML.

Insert Into Proyectos_XML Values
(1'<Proyecto-2017>
<Registro>
<jefe>Remigio Huarcaya</jefe>
<area>Gerencia</area>
<inversion>25500</inversión>
</Registro>

<Registro>
<jefe>Alberto Troncos</jefe>
<area>Administración</area>
<inversión>30200</inversión>
</Registro>

</Proyecto-2017>'),

(2'<Proyecto-2017>
<Registro>
<jefe>María Troncos</jefe>
<area>Arquitectura</area>
<inversión>49500</inversión>
</Registro>

<Registro>
<jefe>Fabiola Guillen</jefe>
<area>Desarrollo de Producto</area>
<inversión>79300</inversión>
</Registro>


</Proyecto-2017>')


-- Seleccionar los registros con xml de la tabla Proyecto_XML
Select * From Proyectos_XML For Xml Raw

Crear una función en SQL Server

Se crea una función que devuelva un número de autogenerado del campo principal de una tabla.
Create table Area
(cod_area char(2) not null,
nom_area varchar(30) not null,
est_area char(1) not null,
Constraint pk_area Primary key (cod_area))
go

-- Ingresamos registros
Insert into Area values ('01','Gerencia','A'),
                                     ('02','Contabilidad','A'),
                                     ('03','Finanzas','A')
go

-- Creación de la función
Create function funcod()
returns char(2)
Begin
Declare @codactual char(2),@codautogenerado char(2)
set @codactual =(select max(cod_area) from Area)
set @codautogenerado=  right('0' + ltrim(str (@codactual + 1)),2)
return (@codautogenerado)
End

-- Prueba de la función

Select Tienda.dbo.funcod()

Adjuntar base de datos en Servidor SQL Server

Adjunta una base de datos al servidor, los archivos de la base de datos (mdf y ldf) se encuentran en la carpeta DemoBK.

EXEC sp_attach_db @dbname = N'Tienda',
   @filename1 = N'c:\DemoBK\Tienda_data.mdf',
             @filename2 = N'c:\DemoBK\Tienda_log.ldf'

Separa base de datos del Servidor SQL Server

Separa una base de datos del servidor SQL Server.

EXEC sp_detach_db 'Tienda', 'true'

sábado, 19 de noviembre de 2016

Creación de trigger en Microsoft SQL Server

Un trigger es un desencadenador que se ejecuta automáticamente cuando se produce un evento sobre una tabla. Se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML).
Los eventos DML son instrucciones Insert, Update o Delete que se aplican a una tabla o vista. 


Ejemplo 1: Crear un trigger que no permita ingresar un precio negativo en la tabla Producto.

Create trigger TR_Inserta_Pro
            On Producto FOR Insert
As
-- La tabla (temporal) inserted contiene los datos que se van a ingresar
If (select pre_pro from inserted)<0
Begin
            Print 'Precio Negativo'
            Rollback --Anula la transacción Insert
End

Ejemplo 2: Crear un trigger que inserte un registro en la tabla auditoría en el caso que se cambie el valor del precio de un Producto.

Create table auditoria
(id_auditoria int identity(1,1) not null primary key,
fecha_auditoria date not null, 
id_pro int not null,
pre_nuevo decimal(7,2) not null,
usuario varchar(20) not null)
-- Creación de trigger TR_Actualiza_Pro.
Create trigger TR_Actualiza_Pro
                      On Producto FOR Update
As
Declare @id int
Declare @nuevopre decimal(7,2)
Select @nuevopre=pre_pro from Inserted
Insert into auditoria values (CONVERT (date, GETDATE()),5,@nuevopre, user)
--Probamos el trigger, modificamos el precio de un producto.

Update Producto set pre_pro =1.5 where id_pro=5

Minería de Datos

Minería de datos es el proceso de descubrir conocimiento en grandes volúmenes  de datos como en los DataWarehouse, para ello utiliza métodos matemáticos para encontrar tendencias y reglas en los datos almacenado.

Según Turban (2007), indican que las herramientas más usadas en Data Mining son:
  • Métodos estadísticos, 
  • Árboles de decisión,
  • Razonamiento en base a casos,
  • Redes neuronales,
  • Algoritmos genéticos.

Propiedad Identity en tabla de Microsoft SQL Server

Propiedad IDENTITY

En una tabla solo se permite una sola columna con la propiedad IDENTITY, se puede usar propiedad solo si la columna es de tipo Entero, se le utiliza mayormente en la clave principal.

IDENTITY [(inicialización, incremento)]

Inicialización:
Valor inicial de la columna.

Incremento:
Es el incremento de columna entre registros. Puede ser positivo o negativo.

Ejemplo :

Se considera id_dis es la clave principal y campo autonumérico de la tabla Distrito.

Create table Distrito
(id_dis int not null primary key identity(1,1), -- Inicia en 1 e incrementa en 1, es un campo autonumérico
nom_dis varchar(20) not null,
codPostal char(2) not null)
go

jueves, 17 de noviembre de 2016

Programación Orientada a objetos en C# - Control de usuario

Se tiene una aplicación SysDemo en 3 capas. En el cual se crea una carpeta CUsuario y se agrega un control de usuario cboDistrito y luego se agrega un objeto combobox.



En el Control de usuario, se ingresa el siguiente código.

public int xid;
public string Cnx = "Data Source=(local);Initial Catalog=SysMedic;Integrated Security=True;user id=sa; pwd=123";

        private void CboDistrito_Load(object sender, EventArgs e)
        {
            SqlConnection cn = new SqlConnection();
            cn.ConnectionString = Cnx;
            llenarDis();
        }

        public void llenarDis()
        {
            comboBox1.ValueMember = "id_dis";
            comboBox1.DisplayMember = "nom_dis";
            comboBox1.DataSource = CapaNegocio.CNMedico.MostrarReg("distrito");
        }

        public int iddis
        {
            get
            {
                return xid;
            }
         
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                xid = Convert.ToInt32(comboBox1.SelectedValue.ToString());
            }
            catch { }
        }

En la Capa Negocio de la aplicación.

public class CNMedico
    {
         public static DataTable MostrarReg(string xreg)
        {
            CDMedico obj = new CDMedico();
            return obj.MostrarReg(xreg);
        }

    }

En la Capa Data de  la aplicación

 public class CDMedico
    {
        public DataTable MostrarReg(string xreg)
        {
            DataTable DtResultado = new DataTable();
            SqlConnection SqlCon = new SqlConnection();
            try
            {
                SqlCon.ConnectionString = ClsConexion.Cnx;
                SqlCon.Open();

                SqlCommand SqlCmd = new SqlCommand();
                SqlCmd.Connection = SqlCon;
                SqlCmd.CommandText = "usp_ListaReg";
                SqlCmd.CommandType = CommandType.StoredProcedure;
                SqlParameter par1 = new SqlParameter();
                par1.ParameterName = "@tabla";
                par1.Value = xreg;
                SqlCmd.Parameters.Add(par1);
                SqlDataAdapter Da = new SqlDataAdapter(SqlCmd);
                Da.Fill(DtResultado);

            }
            catch (Exception ex)
            {

            }
            return DtResultado;

        }

El procedimiento almacenado en la base de datos SysMedic

Create Proc usp_ListaReg @tabla varchar(20)
as
Declare @sql varchar(50)
Set @sql ='Select * From ' + @tabla +' order by 2'
Exec (@sql)

Creación de tablas en SQL Server

------------------------------------------------
-- Base de datos : Tienda
-- Tema               : Creación de tablas
------------------------------------------------
Use tienda
go

Create table distrito
(id_dis int not null Constraint pk_dis primary key identity(1,1),
nom_dis varchar(20) not null,
codPostal char(2) not null)
go

-- Muestra la estructura de la tabla
-- sp_help es un procedimiento almacenado
sp_help distrito
go

--Lista las tablas de la base de datos Tienda
-- sysobjects es una tabla de sistema
Select * from sysobjects where type='U'
go
-- U -> User table


lunes, 14 de noviembre de 2016

Creación de procedimiento almacenado en Oracle

Para el ingreso de datos la tabla distritos de la base de datos Tienda (Oracle), se construye un procedimiento almacenado.

Create or replace Procedure usp_IngDis (nom varchar2,
                                                                  cod char)
Is
Begin
  Insert into Distrito (nom_dis, codPostal) values (nom, cod);
 Commit;
End;

Probar el procedimiento almacenado en sqldeveloper:

call usp_IngDis 'Villa María del Triunfo', '35';

También podemos organizar los procedimientos almacenados en paquetes asociados a la tabla distrito. Un paquete general y un paquete Body (Describe los procedimientos).

Create or replace Package pk_distrito
Is

    Procedure usp_IngDis (nom varchar2,
                                           cod char);
End pk_distrito;


Create or replace Package Body pk_distrito
Is
    Create or Replace Procedure usp_IngDis (nom varchar2,
                                                                        cod char)
    Is
    Begin
      Insert into Distrito (nom_dis, codPostal) values (nom, cod);
     Commit;
    End;

End pk_distrito;

Programación java con oracle - Estructura de proyecto Java

Crear un proyecto en Java Application (usando el IDE Netbeans) con el nombre SysTiendaSoft, luego 3 Package (CapaData, CapaEntidad, CapaNegocio o CapaLogica)

  • En la carpeta Bibliotecas, adicionar el archivo ojdbc7.jar.
  • Crear un JFrame Form en carpeta systiendasoft, con el nombre de FrmDistrito.

  • Crear la Java Class en el paquete CapaData.
package CapaData;

import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.JOptionPane;

public class ConectarDB {
    private Connection conexion;
    
    public Connection getConexion() {
        return conexion;
    }
    public void setConexion(Connection conexion) {
        this.conexion = conexion;
    } 
    public ConectarDB conectar() {

        try {

            Class.forName("oracle.jdbc.OracleDriver");
            String BaseDeDatos = "jdbc:oracle:thin:@localhost:1521:XE";

            conexion = DriverManager.getConnection(BaseDeDatos, "TIENDA","1234");

            if (conexion != null) {
                System.out.println("Conexión correcta !!");
            } else {
                System.out.println("Conexión errada !!");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }        
        return this;
    }

}

  • En el paquete CapaNegocio, crear un Java Class, con el nombre de Distrito.

package CapaNegocio;

import CapaData.ConectarDB;
import java.sql.CallableStatement;

public class Distrito {

     public void IngresaDis (CapaEntidad.Distrito oDis){

        //Conexión con la BD Tienda
        ConectarDB obj = new ConectarDB();       
        obj.conectar();        
        try{
            CallableStatement sentencia = obj.getConexion().prepareCall("{call usp_IngDis(?,?)}");            
            sentencia.setString(1,oDis.getNomDis());
            sentencia.setString(2,oDis.getCodPostal());            
            
            sentencia.executeUpdate();
            
        }catch (Exception e){
            System.out.print(e.getMessage());
        }
    }
}

  • En el botón Grabar del Jframe Distrito, ingrese el siguiente código.
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
               
        try {
            
            CapaEntidad.Distrito reg = new CapaEntidad.Distrito();        
            reg.setNomDis(txtNom.getText());
            reg.setCodPostal(txtCod.getText());
            
            CapaNegocio.Distrito objDistrito = new CapaNegocio.Distrito();
            objDistrito.IngresaDis(reg);
                        
        } catch (Exception ex) {
        ex.printStackTrace();
        }        
        
    }  

Remigio Huarcaya Almeyda


Enlace para iniciar Oracle Express

Puede iniciar Oracle Express con el siguiente link, considerando el ip 127.0.0.1, puerto 8080

        http://127.0.0.1:8080/apex/f?p=4950

Remigio Huarcaya Almeyda

viernes, 11 de noviembre de 2016

Creación de tablas en Oracle

A continuación se crea la tabla cliente, zona y vendedor y secuencia para las claves principales con sus triggers respectivos para el incremento automático de la clave principal.

Create table Distrito
(id_dis number not null Primary key,
nom_dis varchar2(25) not null,
codPostal char(2) not null);

Create table Vendedor
(id_ven number not null Primary key,
nom_ven varchar2(25) not null,
ape_ven varchar2(25) not null,
dni_ven char(8) not null,
id_dis number not null,
Constraint fk_vendis Foreign key (id_dis) references distrito (id_dis));

Create sequence sq_iddis;

Create or replace Trigger Tr_dis before Insert on distrito
for each row
begin
  select sq_iddis.NextVal Into :new.id_dis from dual;
end;

Create sequence sq_idven;

Create or replace Trigger Tr_ven before Insert on vendedor
for each row
begin
  select sq_idven.NextVal Into :new.id_ven from dual;
end;

/*Ingresamos datos*/
Insert into distrito (nom_dis, codpostal) values ('Comas','30');
Insert into distrito (nom_dis, codpostal) values ('Los Olivos','01');
Insert into distrito (nom_dis, codpostal) values ('Rimac','02');

Insert into vendedor (nom_ven, ape_ven, dni_ven,id_dis) values ('Alberto','Huarcaya','78965423',3);
Insert into vendedor (nom_ven, ape_ven, dni_ven,id_dis) values ('Nicolas','Almeida','32165896',1);
commit;

Remigio Huarcaya Almeyda

jueves, 10 de noviembre de 2016

Conexión con base de datos Oracle

Para realizar una conexión a una base de datos Oracle, utilizaremos el software sqldeveloper.

  • Haga doble clic en el programa sqldeveloper.

  • Haga clic derecho sobre Conexiones y seleccione Nueva Conexión.

  • Ingrese datos generales de la conexión que se indican y luego pulse Probar y Conectar.

  • Listar las tablas de la base datos Tienda, que se crean por defecto, con la siguiente instrucción.

  • Ya puede crear las tablas en la base de datos Tienda.
Remigio Huarcaya Almeyda


miércoles, 9 de noviembre de 2016

Realizar Backup de base de datos

Antes de realizar una copia de seguridad, debe crear un carpeta donde se almacenará la copia de la base de datos SQL Server.

Supongamos que tenemos la base de datos Tienda y una carpeta Backup

Ejemplo 1: Copia de seguridad sencilla.


Ejemplo 2 : Copia de seguridad completa y comprimida.


Crear base de datos Oracle

Crear una base de datos Oracle :
  • Iniciar Oracle Express 11g.
  • Ingresar el usuario y contraseña de SYSTEM.
Base de datos Oracle
  • Aparece la siguiente ventana y haga clic en el botón Application Express

  • Crear la base de datos, indicar nombre, usuario y contraseña, luego haga clic en el botón Create WorkSpace.
  • Luego continúe con la siguiente ventana.

  • Listo la base de datos ha sido creada y ahora continuamos con el sqldeveloper, para crear las tablas.
Remigio Huarcaya Almeyda

martes, 8 de noviembre de 2016

Instalar Oracle Express 11g

Para instalar Oracle Express 11 g, debe obtener e instalar en orden los siguientes programas :

  • jdk-8u101-windows-i586.
  • OracleXE112_Win32.
    • Debe descomprimirlo.
    • Para instalarlo, haga Doble clic en Setup.exe
    • Durente la instalación le solicitará la contraseña del usuario SYSTEM, este servirá para ingresar como administrador.
  • sqldeveloper-4.1.3.20.78-no-jre.
    • Debe descomprimirlo
    • No se instala, solo haga Doble clic en sqlDeveloper.
Descarga Oracle Express 11g de la pagina oficial Oracle.



http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html

Remigio Huarcaya Almeyda

viernes, 4 de noviembre de 2016

creación de una base datos en sql server

Usamos el comando : Create Database <Nombre de base de datos>
Ejemplo :
Create Database Tienda
go
--Listar las base datos del servidor
sp_helpDb
go

martes, 1 de noviembre de 2016

Internet de las cosas


Es una  red que interconecta objetos físicos (refrigeradora, microndas, TV, cafetera, equipo de sonido, etc.) utilizando el Internet.