Reporte Basedatos

download Reporte Basedatos

of 62

Transcript of Reporte Basedatos

  • 7/22/2019 Reporte Basedatos

    1/62

    1

    INSTITUTO TECNOLGICO DE TLAXIACO

    MATERIA: TALLER DE BASE DE DATOS

    CARRERA: INGENIERA EN SISTEMAS COMPUTACIONALES

    PROYECTO DE UNA LENCERIA

    CATEDRTICO: ING. HILARIO VIDAL GARCA HERNANDEZ

    ELABORO:

    ALICIA AVILA REYES

    RUT MIRIAM CRUZ SNCHEZ

    SEMESTRE: V

    GRUPO: B

    FECHA: 26/08/13

    HEROICA CIUDAD DE TLAXIACO, BOULEVARD TECNOLGICO KM.

    2.5 LLANO YOSOVEE S/N.

  • 7/22/2019 Reporte Basedatos

    2/62

    2

    ndi eINTRODUCCIN .................................................................................................. 3

    PLANTEAMIENTO ................................................................................................ 4

    OBJETIVO GENERAL .......................................................................................... 5

    OBJETIVO ESPECIFICO ...................................................................................... 5

    JUSTIFICACIN ................................................................................................... 6

    METAS ................................................................................................................. 7

    MARCO TERICO. .............................................................................................. 8

    TABLA COMPARATIVA. ........................................................................................ 9

    DIAGRAMA ENTIDAD RELACIN .................................................................... 10

    DIAGRAMA DE CLASE ....................................................................................... 11

    INSTALACION DE POSTGRESQL ...................................................................... 12

    DESARROLLO DEL PROYECTO ......................................................................... 17

    CREACION DE TABLAS ..................................................................................... 17

    INSERTAR DATOS ............................................................................................. 23

    REALIZACION DE CONSULTAS ......................................................................... 34

    SUBCONSULTA ................................................................................................. 38

    CREACIN DE USUARIOS Y ROLES .................................................................. 40

    CREACIN DEL ROLES ..................................................................................... 41

    COMPROBACIN DE PERMISOS A USUARIOS MEDIANTE LA CONSOLA SQLSHELL (PSQL) .................................................................................................... 42

    CREACIN DE VISTAS ...................................................................................... 43

    RESTRICCIONES ............................................................................................... 47

    TRANSACCIONES .............................................................................................. 48

    FUNCIONES Y DISPARADORES ......................................................................... 49

    CONEXIN DE POSGRETSQL A JAVA ............................................................... 56

    CONCLUSIN .................................................................................................... 62

  • 7/22/2019 Reporte Basedatos

    3/62

    3

    Introduccin

    PostgreSQL es un gestor de bases de datos orientadas a objetos (SGBDOO o

    ORDBMS en sus siglas en ingls) muy conocido y usado en entornos de software

    libre porque cumple los estndares SQL92 y SQL99, y tambin por el conjunto de

    funcionalidades avanzadas que soporta, lo que lo sita al mismo o a un mejor nivel

    que muchos SGBD comerciales.

    El origen de PostgreSQL se sita en el gestor de bases de datos POSTGRES

    desarrollado en la Universidad de Berkeley y que se abandon en favor de

    PostgreSQL a partir de 1994. Ya entonces, contaba con prestaciones que lo

    hacan nico en el mercado y que otros gestores de bases de datos comerciales

    han ido aadiendo durante este tiempo.

    PostgreSQL se distribuye bajo licencia BSD, lo que permite su uso, redistribucin,

    modificacin con la nica restriccin de mantener el copyright del software a sus

    autores.

    El proyecto que est a continuacin, presenta las fases de cmo desarrollar

    una base de datos el cual ser de utilidad para el negocio que se seleccion

    para la administracin de todos los recursos de los cuales dispone y hace uso

    dicho negocio ,permitiendo mejorar los tiempos de compra ,venta y atencin al

    cliente as como consecuente la mejora de la administracin de recursos

    monetarios .

    A su vez se hablara del sistema gestor de base de datos (SGB) que permitir

    la creacin de base de datos (BD) ,permitiendo analizar sus ventajas y

    desventajas para obtener un buen aprovechamiento del gestor .

  • 7/22/2019 Reporte Basedatos

    4/62

    4

    Planteamiento

    Crear una base de datos que permita manipular fcilmente la entrada y salida delos productos que proporciona la lencera, agilizando los procesos de venta y

    compra de mercanca y mantener un control de las ganancias y utilidades quefaciliten al usuario final este tipo de actividades,

    Tambin, la base de datos que se desarrollara deber ser fcil de utilizar parafacilitar al usuario final el uso de esta herramienta y mejorar su desempeo.

  • 7/22/2019 Reporte Basedatos

    5/62

    5

    Objetivo General

    Mejorar el conocimiento que se tiene de las bases de datos, adquiriendoconocimientos nuevos en la implementacin de una base a un negocio querequiere una solucin real, mejorando el conocimiento en trabajos de campo, yampliando la visin que se tiene de ciertas reas desconocidas, y que nos ser deayuda para el desarrollo de nuestro perfil.

    Objetivo Especifico

    Facilitar el registro de productos, as como la compra y venta de los artculos paradisminuir el tiempo y costos que se emplean en estas actividades.

  • 7/22/2019 Reporte Basedatos

    6/62

    6

    Justificacin

    Se hizo la eleccin de una lencera para realizar la implementacin de una basede datos, tomando en cuenta que no es muy comn este tipo de base de datos, la

    cual permitir adquirir nuevos conocimientos que podrn ser aplicados a nuestroperfil acadmico, permitiendo adquirir mejor los conocimientos y tcnicas para lasolucin de problemas mediante el anlisis de requisitos que requiera el cliente.

  • 7/22/2019 Reporte Basedatos

    7/62

    7

    Metas

    o Creacin de una base funcional.o Facilidad de uso y manipulacin en caso de anomalas.

    o Optimizacin de recursos y tiempo en la BDo Dar seguridad a la BDo Seguridad final para el usuario final

  • 7/22/2019 Reporte Basedatos

    8/62

    8

    Marco terico.

    Una base de datos es un conjunto de datos almacenados entre los que existen

    relaciones lgicas, diseada para satisfacer la informacin en organizaciones .En

    las bases de datos se almacenan grandes cantidades de datos, que son definidos

    una sola vez y que pueden ser accesible por varios usuarios a la vez en la cual

    los datos integrados en la base de datos no tiene redundancia de datos y

    establece la ms mnima duplicidad de los datos.

    Un Sistema Gestor de Base de Datos es el software que permite gestionar bases

    de datos, ocultando la parte fsica y permitiendo manejarla desde un nivel ms

    conceptual. Dicho software permite separar los programas de los datos de tal

    modo que los programas negocian con el SGBD el acceso a los datos.

    PostgreSQL Es un gestor de base de datos el cual permite almacenar y accesar

    segn el formato de tablas relacionales. Una tabla relacional tiene un nombre

    columnas y definicin. Los datos estn almacenados en las filas ,en el cual las

    tablas pueden estar relacionadas con otras.

    Una BD PostgreSQL est almacenada fsicamente en ficheros, y la

    correspondencia entre los ficheros y las tablas es posible gracias a las estructuras

    internas de la BD, que permiten que diferentes tipos de datos estn almacenadosfsicamente separados. Est divisin lgica se hace gracias a los espacios de

    tablas, tablespaces.

    Por qu utilizar PostgreSQL como nuestro gestor de base de datos?

    Las razones que influyeron para escoger PostgreSQL pgAdmin es la facilidad

    de permitir trabajar en distintas plataformas y arquitecturas ya que es

    multiplataforma, haciendo ms fcil la decisin de trabajarlo, sin necesitar

    requisitos muy elevados o muy especficos para ser implementados en algunos

    servidores de baja capacidad.

    A continuacin se muestra la diferencia que hay en comparacin con otros

    gestores de bases de datos ms comunes.

  • 7/22/2019 Reporte Basedatos

    9/62

    9

    Tabla comparativa.

    SGBD RAM MEMORIA

    VIRTUAL

    ESPACIO

    DISCO

    DURO

    T AMA O

    BASE

    DATOS

    S.O. ARQUITECTURA PROTOCOLO

    TCP/IP

    PROTOCOLO TCP/IP CON

    SSL

    VENTAJAS DESVENTAJAS

    MYSQL

    256

    MB

    512 MB 200 MB INFINITO W INDOS

    SEVEN

    32 BITS/64 BITS

    SE ENCARGA

    DE ATENDER

    EL SOFTWARE

    CON L FIN DE

    QUE TODOS

    SUS

    PRODUCTOS

    SEAN

    COMPATIBLES

    ESTABLECER UN CANAL

    DE COMUNICACIN

    SEGURO Y CIFRADO

    ENTRE DOS DISPOSITIVOS

    CONECTADOS A INTERNET.

    VELOCIDAD AL REALIZAR

    OPERACIONES

    BAJO COSTO EN

    REQUERIMIENTOS

    *SOFTWARE DE CODIGO

    ABIERTO

    BUENA CONECTIVIDAD Y

    SEGURIDAD

    USA LICENCIA GPL

    SOPORTA GRAN VARIEDAD

    DE S.O

    NO ES INTUITIVO

    DOCUMENTADAS.

    EL SOPORTE PARA

    DISPARADORES ES BASICO

    LOS PRIVILEGIOS PARA UNA

    TABLA NO SE ELIMINAN

    AUTOMTICAMENTE

    CUANDO SE ELIMINA UNA

    TABLA NO TIENE PANEL DE

    CONTROL GRFICO Y

    DETALLADO

    ORACLE 1 GB 512 MB 6 GB INFINITO WINDOWS

    SEVEN /

    UNIX /

    LINUX

    32 BITS SI NAMED PIPES.

    ORACLE ES EL MOTOR DE

    BASE DE DATOS RELACIONAL

    MS USADO A NIVEL

    MUNDIAL.ORACLE ES LA

    BASE DE DATOS CON MAS

    ORIENTACIN HACA

    INTERNET UN ACEPTABLE

    SOPORTEEL SOFTWARE DEL

    SERVIDOR PUEDEEJECUTARSE EN MULTITUD

    DE SISTEMAS OPERATIVOS.

    EL PRECIO AS COMO LAS

    LICENCIAS

    LA NECESIDAD DE AJUSTES.

    ACCES 400MB 350 MB 100 MB 1 TB WINDOWS

    SEVEN

    32 BITS / 64 BITS SI SI

    ES UN SOFTWARE FACIL DE

    CONSEGUIR, TIENE

    PAQUETERIA COMPLETA, NO

    NECESITA COMPLEMENTOS

    PARA SU USO

    NO SE PUEDEN CREAR

    BASES DE DATOS MUY

    ROBUSTOS, NO ES

    MULTIPLATAFORMA, ESTA

    ENFOCADO A

    DESARROLLADORES

    PRINCIPIANTES Y A ESTUDI|

    ANTES

    .

  • 7/22/2019 Reporte Basedatos

    10/62

    10

    Diagrama Entidad Relacin

  • 7/22/2019 Reporte Basedatos

    11/62

    11

    Diagrama de clase

    datos_emp

    +curp+nombre+ap_pat+ap_mat

    clientes

    +dni+num_cliente+cant_compra+total_comp+tel_cliente+nom_c+id_cta

    ventas

    +id_vta+total_vta+costo_vta+nom_prod+cod_prod+dni

    empleados

    +id_emp+puesto+hrs_trab+curp+id_vta+cod_postal

    solicita

    +id_solicita+id_emp+id_prod+id_neg

    Dir_emp

    +cod_postal+nombre_mun+colonia+ciudad+nom_calle

    modelo

    +id_modelo+nom_prod+tipo_tela+color

    negocio

    +id_neg+nom_neg+tel_neg

    +dni+id_emp+id_a

    talla

    +id_talla+tamao

    +num_talla

    calle

    +nom_calle+nombre

    nom_cliente

    +nom_c+ap_pat+ap_mat

    almacen

    +id_a

    +modProd_almacenado+nom_marca+cant_prod+id_prov

    en

    +fecha+id_prod+id_a

    num_cuenta

    +id_cta+saldo

    producto

    +id_prod+costo

    +marca_prod+pre_vta+pre_compra+id_modelo+id_talla

    proveedores

    +id_prov+curp_prov+precioVta_prod+prod_abastecer+nom_prov+tel_prov

  • 7/22/2019 Reporte Basedatos

    12/62

    12

    INSTALACION DE POSTGRESQL - 9.1.2

    Descargar el instalador de la base de datos de postgres versin 9.1.2 y ejecutarlo como

    administrador.

    Aceptar trminos y continuar con la instalacin.

  • 7/22/2019 Reporte Basedatos

    13/62

    13

    Elegir una ruta en la cual se instalara el programa, preferentemente dejarlo en el disco C:

    Una vez elegida la ruta o directorio, seguir con la instalacin.

  • 7/22/2019 Reporte Basedatos

    14/62

    14

    Este es el paso ms importante en el cual se creara la contrasea del usuario System o root.

    Se mantiene el puerto por default y se continua con la instalacin.

  • 7/22/2019 Reporte Basedatos

    15/62

    15

    Se mantiene la configuracin por defecto para que el sistema operativo elija la opcin mas

    conveniente.

    Se acepta la instalacin y se continua con la misma, hasta su terminacin,.

  • 7/22/2019 Reporte Basedatos

    16/62

    16

    Una vez ya terminado el proceso, se puede iniciar su programa con la contrasea que

    anteriormente se cre.

  • 7/22/2019 Reporte Basedatos

    17/62

    17

    Desarrollo del proyecto

    1. Recoleccin de datos.2. Realizar el diagrama de entidad-relacin.3. Definir la cardinalidad.

    4. Elaborar el diagrama de clases.5. Normalizar las tablas.6. Realizar tablas.7. definir privilegios a los usuarios8. implementacin en un SGBD.

    CREACION DE TABLAS

    Una vez conectados a una base de datos, la sentencia SQL create tablepermite crear las tablas que necesitemos:

    CREACION DE LA TABLA TALLA

    create table talla(id_talla varchar(3),tamao varchar(15),num_talla

    varchar(10),primary key(id_talla));

    CREACION DE LA TABLA MODELO

    create table modelo(id_modelo varchar(5),nom_prod varchar(15),tipo_telavarchar(10),color varchar(15),primary key(id_modelo));

    select * from modelo;

  • 7/22/2019 Reporte Basedatos

    18/62

    18

    CREACION DE LA TABLA DATOS_EMPLEADOS

    create table datos_emp(curp varchar(18),nombre varchar(10),ap_patvarchar(10),ap_mat varchar(10),primary key(curp));

    select * from datos_emp;

    CREACION DE LA TABLA CALLE

    create table calle(num_calle varchar(4),nombre varchar(15),primarykey(num_calle));

    CREACION DE LA TABLA DATOS PERSONALES DEL CLIENTE

    create table nom_cliente(nom_c varchar(10),ap_pat varchar(10),ap_matvarchar(8),primary key (nom_c));

    select * from nom_cliente;

  • 7/22/2019 Reporte Basedatos

    19/62

    19

    CREACION DE LA TABLA EN:

    create table en(fecha varchar(10),id_prod varchar(4),id_a varchar(4),primarykey(fecha));

    select * from en;

    CREACION DE LA TABLA SOLICITA

    create table solicita(id_solicita varchar(5),id_emp varchar(5), id_prodvarchar(4),id_neg varchar(5),primary key (id_solicita));

    select * from solicita;

    CREACION DE LA TABLA PROVEEDORES

    create table proveedores(id_prov varchar(5),curp_prov

    varchar(18),precioVta_prod integer,

  • 7/22/2019 Reporte Basedatos

    20/62

    20

    prod_abastecer integer,nom_prov varchar(8),tel_prov integer,primary key(id_prov));

    CREACION DE LA TABLA ALMACEN

    create table almacen(id_a varchar(4),modProd_almacenadointeger,nom_marca varchar(15),

    cant_prod integer,id_prov varchar(5),primary key(id_a),

    FOREIGN KEY (id_prov) REFERENCES proveedores(id_prov)on deletecascade on update cascade);

    select * from almacen;

    CREACION DE LA TABLA DIRECCION DEL EMPLADO

    create table Dir_emp(cod_postal varchar(5),nombre_mun varchar(20),coloniavarchar(15),

    ciudad varchar(12),num_calle varchar(4),primary key(cod_postal),

    FOREIGN KEY(num_calle)references calle(num_calle)on delete cascade onupdate cascade);

    select * from Dir_emp;

    CREACION DE LA TABLA VENTAS

  • 7/22/2019 Reporte Basedatos

    21/62

    21

    create table ventas (id_vta varchar(5),total_vta integer,costo_vtainteger,nom_prod varchar(13),cod_prod integer,dni varchar(5),primary key(id_vta),

    FOREIGN KEY(dni)references clientes(dni)on delete cascade on update

    cascade);select * from ventas;

    CREACION DE LA TABLA EMPLEADOS

    create table empleados(id_emp varchar(5),nom_emp varchar(12),puestovarchar(10),

    hrs_trab integer,curp varchar(18),id_vta varchar(5),cod_postalvarchar(5),primary key(id_emp),

    foreign key (curp)references datos_emp(curp)on delete cascade on updatecascade,

    foreign key (id_vta)references ventas(id_vta)on delete cascade on updatecascade,

    foreign key (cod_postal)references dir_emp(cod_postal)on delete cascade onupdate cascade);

    select * from empleados;

    CREACION DE LA TABLA CLIENTES

    create table clientes(dni varchar(5),num_cliente integer,cant_comprainteger,total_comp float,tel_cliente integer,nom_c varchar(15), id_ctavarchar(5),primary key(dni),

  • 7/22/2019 Reporte Basedatos

    22/62

    22

    foreign key(nom_c)references nom_cliente(nom_c)on delete cascade onupdate cascade,

    foreign key(id_cta)references num_cuenta(id_cta)on delete cascade on updatecascade);

    select * from clientes;

    CREACION DE LA TABLA PRODUCTOS

    create table producto(id_prod varchar(4),costo integer, marca_prodvarchar(10),mod_prod integer,pre_vta integer,pre_compra integer,id_modelovarchar(5),id_talla varchar(3),primary key(id_prod),

    foreign key(id_modelo)references modelo(id_modelo)on delete cascade onupdate cascade,

    foreign key(id_talla)references talla(id_talla)on delete cascade on updatecascade);

    select * from producto;

    CREACION DE LA TABLA NEGOCIO

    create table negocio(id_neg varchar(5),nom_neg varchar(8),dir_negvarchar(15),tel_neg integer,dni varchar(5),id_emp varchar(5),id_avarchar(4),primary key(id_neg),

    foreign key(dni)references clientes(dni)on delete cascade on update cascade,

    foreign key(id_emp)references empleados(id_emp)on delete cascade onupdate cascade,

    foreign key(id_a)references almacen(id_a)on delete cascade on updatecascade);

  • 7/22/2019 Reporte Basedatos

    23/62

    23

    select * from negocio;

    INSERTAR DATOS

    INSERTA DATOS EN LA TABLA TALLA

    insert into talla(id_talla, tamao,num_talla)values

    ('A01','GRANDE','38C'),('A02','CHICO','30A'),

    ('A03','CHICO','28A'),

    ('A04','EXTRAGRANDE','40D'),

    ('A05','MEDIANO','36B'),

    ('A06','GRANDE','38D');

    SELECT * FROM talla;

    INSERTAR DATOS EN LA TABLA MODELO

    select * from modelo;

    insert into modelo(id_modelo,nom_prod,tipo_tela,color)

    values('11a','Bra espalda deportiva','algodon','Rojo'),

    ('11b','Paq-2-Bikinis','licra','Negro'),

    ('11c','pantimedias','mezclilla','Blanco'),

    ('11d','boxer caballero','algodon','Nude'),

  • 7/22/2019 Reporte Basedatos

    24/62

    24

    ('11e','pantaleta','rayon','Rosa'),

    ('11f','Panty con sylicona en sintura','nilon','Piel'),

    ('11g','bikini','poliester','Fiusha/Morado'),

    ('11h','boxer ','acrilico','Negro/Piel'),

    ('11i','brasiere','algodon','Blanco/Rosa'),

    ('11j','playera','acrilico','Turquesa/Blanco'),

    ('11k','mini boxer','licra','Turquesa/Blanco'),

    ('11l','bra','poliester','Verde/Fiusha'),

    ('11m','boxer','poliester','Rosa/Verde'),

    ('11n','mini boxer','rayon','Turquesa'),('11','mini boxer','nilon','Morado'),

    ('11o','bra','nilon','Gris/Rosa'),

    ('11p','bikini','mezclilla','Negro/Rosa'),

    ('11q','bady doll','mezclilla','Negro/Turquesa'),

    ('11r','tanga','algodon','Verde Agua'),

    ('11s','cobertor','poliester','Verde/Oxford'),

    ('11t','juego de bao','rayon','Uva'),

    ('11u','edredon','acrilico','Cafe/Turquesa'),

    ('11v','top','stretch','Verde/Turquesa'),

    ('11w','leggigns','stretch','Perla'),

    ('11x','collar','algodon','Multicolores'),

    ('11y','silhouette','piliester','Negro/Rojo'),

    ('11z','CALCETAS CABALLEROS','acrilico','Bugambilia'),

    ('12a','PANTY','mezclilla','Azul Estampado'),

    ('12b','PANTIMEDIAS','licra','Amarillo/Gris'),

    ('12c','PLAYERA','rayon','Oxford')

  • 7/22/2019 Reporte Basedatos

    25/62

    25

    INSERTAR DATOS EN LA TABLA NUMERO CUENTA

    insert into num_cuenta(id_cta,saldo)

    values ('A000',5000),

    ('B500',4000),

    ('C300',2000),

    ('D400'3450),

    ('E500',56073),

    ('F100',4058),

    ('G200',23000),

    ('H600',45900)

    ('I700',2000),

    ('J300',4003),

    ('K200',5000);

    INSERTAR DATOS EN LA TABLA NOMBRE CLIENTE

  • 7/22/2019 Reporte Basedatos

    26/62

    26

    INSERT INTO nom_cliente (nom_c,ap_pat,ap_mat)

    values ('JUAN','GUTIERREZ','TERRA')

    ('RUT','VELASCO','CRUZ'),

    ('BERNA','PELAES','SANCHEZ'),

    ('ESTELA','TRINIDAD','AVILA'),

    ('NOEL','LOPEZ','CARNAVAL'),

    ('IRMA','PAZ','MENDEZ'),

    ('CESAR','DIAZ','PEREZ'),

    ('MARI','PACHECO','TIFON'),

    ('EMILY','SIMBIAN','VELAZCO'),('CARLOS','MALVORO','URTADO');

    SELECT * FROM nom_cliente;

    INSERTAR DATOS EN LA TABLA CLIENTES

    select * from clientes;

    insert intoclientes(dni,num_cliente,cant_compra,total_comp,tel_cliente,nom_c,id_cta)

    values('AA001',2,4,55,9531283,'JUAN','A000'),

    ('AB001',5,5,200,953020,'RUT','B500'),

    ('AC001',7,1,290,836487,'ESTELA','C300'),

    ('AD001',1,3,500,263826,'BERNA','D400'),

    ('AE001',6,20,6000,83936,'IRMA','E500'),

  • 7/22/2019 Reporte Basedatos

    27/62

    27

    ('AF001',2,11,2402,827738,'NOEL','F100'),

    ('AG001',4,1,290,2239,'IRMA','G200'),

    ('AH001',3,2,290,98874,'CESAR','H600'),

    ('AI001',13,2,390,6638465,'MARI','I700'),

    ('AL001',10,4,2900,986363,'EMILY','K200'),

    ('AK001',12,30,8000,953747,'CARLOS','J300');

    INSERTAR DATOS EN LA TABLA VENTAS

    select * from ventas;

    insert into ventas(id_vta ,total_vta,costo_vta,nom_prod,cod_prod,dni)

    values(01,2790,300,'jeans',2513,'AA001'),

    (02,990,350,'bikini',1513,'AB001'),

    (03,2009,420,'boxer',2383,'AC001'),

    (04,2409,390,'mini boxer ',2409,'AG001'),

    (05,1050,200,'brasiere',1409,'AG001'),

    (06,3390,400,'cobertor',2400,'AI001'),

    (08,1200,350,'Bra deportiva',1338,'AH001'),

    (09,4490,400,'juego de bao',2487,'AF001'),

    (10,3790,500,'PANTIMEDIAS',2219,'AD001');

  • 7/22/2019 Reporte Basedatos

    28/62

    28

    INSERTAR DATOS EN LA TABLA DATOS EMPLEADOS

    select * from datos_emp;

    insert into datos_emp(curp,nombre,ap_pat,ap_mat)

    values('CUSR131293MDFRNT08','miriam','cruz','sanchez'),

    ('AIRA238806MMMCVL02','alicia','avila','reyes'),

    ('SARA900926MOCNYN04','antonia m' ,'santiago','reyes'),

    ('SUOM930904MOSRRR08','merari','cruz','ortiz'),

    ('QUFJ900512MOCYRQ06','jesus','quiroz','feria'),

    ('AIAA238806MJJCVL02','aide','avila','aparicio'),

    ('JMAR238806CGHCVL09','jose','marquez','reyes'),

    ('LOGA921020MPYOGU02','gamaliel','lopez','ortiz'),

    ('OOSU900504HOCSNR05','uriel','ososrio','sanchez'),

    ('LORJ920603HOCPXR06','jorge luis','lopez','riao');

    INSERTAR DATOS EN LA TABLA CALLE

  • 7/22/2019 Reporte Basedatos

    29/62

    29

    insert into calle(num_calle,nombre)

    values ('36A','PONCIANO'),

    ('12A','JUAN ALVAREZ'),

    ('23C','HIPODROMO'),

    ('32C','INDEPENDENCIA'),

    ('10A','LEON AVICARIO');

    SELeCT * from calle;

    INSERTAR DATOS EN LA TABLA DIRECCION EMPLEADO

    select * from Dir_emp;

    insert into Dir_emp(cod_postal,nombre_mun,colonia,ciudad,num_calle)

    values (79800,'ocotepec','centro','Tlaxiaco','36A'),(69800,'amilpas','la maravillas','Huajupan','12A'),

    (90923,'lo aguacates','el capulin','Putla','23C'),

    (34647,'nundaco','los fresnos','Oaxaca','32C'),

    (12335,'las piedras','la laguna','Teposcolula','10A');

    INSERTAR DATOS EN LA TABLA EMPLEADOS

    select * from empleados;

  • 7/22/2019 Reporte Basedatos

    30/62

    30

    insert intoempleados(id_emp,nom_emp,puesto,hrs_trab,curp,id_vta,cod_postal)

    values('100A','ESTELA','GERENTE',100,'CUSR131293MDFRNT08',01,79800),

    ('100B','HUGO','CAJERO',105,'AIRA238806MMMCVL02',02,69800),

    ('100C','ADRIAN','CAJERO',105,'SARA900926MOCNYN04',03,90923),

    ('100D','GUDELIA','MOSTRADOR',102,'SUOM930904MOSRRR08',04,34647),

    ('100E','ESMERALDA','MOSTRADOR',102,'QUFJ900512MOCYRQ06',05,12335);

    DATOS INSERTADOS EN LA TABLA PROVEEDORES

    select * from proveedores;insert intoproveedores(id_prov,curp_prov,precioVta_prod,prod_abastecer,nom_prov,tel_prov)

    values('500A','SIAL720809HOCLVS01',600,200,'LUIS ',9531245),

    ('500B','REPC660904MOCYRN06',400,300,'CANDIDA ',95132456);

    INSERTAR DATOS DE LA TABLA ALMACEN

    select * from almacen;

    insert into almacen(id_a,modProd_almacenado,nom_marca,cant_prod,id_prov)

  • 7/22/2019 Reporte Basedatos

    31/62

    31

    values('123a',2448,'VICKY FORM',200,'500A'),

    ('123b',1639,'AMORE',101,'500B'),

    ('123c',1500,'PLAYTEX',202,'500A'),

    ('123d',8122,'PLAYTEX',100,'500B'),

    ('123e',1487,'ILUSION',103,'500A'),

    ('123f',5939,'HANES',154,'500B'),

    ('123g',4343,'ILUSION',50,'500B'),

    ('123h',2276,'ILUSION',20,'500B'),

    ('123i',1276,'AMORE',38,'500A'),

    ('123j',2494,'DORIAN GREY',59,'500B'),('123k',1494,'ILUSION',70,'500A'),

    ('123l',553,'DORIAN GREY',90,'500B'),

    ('123m',2456,'AMORE',100,'500A'),

    ('123n',1456,'PLAYTEX',20,'500A'),

    ('123',2226,'WONDERBRA',35,'500B'),

    ('123o',1226,'WONDERBRA',120,'500B'),

    ('123p',2399,'ALFANI',80,'500A'),

    ('123q',366,'ALFANI',44,'500B'),

    ('123r',2440,'ALFANI',60,'500B');

    INSERTAR DATOS EN LA TABLA PRODUCTO

    select * from producto;

  • 7/22/2019 Reporte Basedatos

    32/62

    32

    insert intoproducto(id_prod,costo,marca_prod,pre_vta,pre_compra,id_modelo,id_talla)

    values

    ('9011',200,'VICKY FORM',4343,265,'11a','A01'),

    ('9012',120,'VICKY FORM',2494,325,'11b','A02'),

    ('9013',160,'VICKY FORM',2456,279,'11c','A03'),

    ('9014',300,'VICKY FORM',2226,469,'11d','A04'),

    ('9015',200,'VICKY FORM',2399,249,'11e','A05'),

    ('9016',99,'VICKY FORM',2440,265,'11f','A06'),

    ('9017',229,'VICKY FORM',1456,399,'11g','A01');

    INSERTAR DATOS EN LA TABLA EN

    INSERT INTO en (fecha,id_prod,id_a)

    values('10-03_13','9011','123a'),

    ('03/10/13','9012','123b'),

    ('04/06/13','9013','123c'),

    ('09/08/13','9014','123d'),

    ('06/12/13','9015','123e'),

    ('01/10/13','9016','123g');

  • 7/22/2019 Reporte Basedatos

    33/62

    33

    INSERTAR DATOS EN LA TABLA NEGOCIO

    select * from negocio;

    insert into negocio(id_Neg,nom_neg,tel_neg,dni,id_emp,id_a)

    values('000a','XION',1104255,'AA001','100A','123a'),

    ('000b','ALICE',1235678,'AF001','100C','123c');

    INSERTAR DATOS EN LA TABLA SOLICITA

    insert into solicita(id_solicita,id_emp,id_prod,id_neg)

    values('AAA','100A','9011','000a'),('BBB','100C','9014','000b');

  • 7/22/2019 Reporte Basedatos

    34/62

    34

    REALIZACION DE CONSULTAS

    Buscar el nombre del cliente su nm. telefnico, saldo=2000 y al nmero decliente al que le corresponde.

    select distinct clientes.nom_c,tel_cliente ,saldo,num_cliente fromclientes,num_cuenta,nom_cliente where saldo=2000;

    Encontrar a los clientes que compraron el en negocio ALICE y en especifico elproducto bikini

    select distinct clientes.nom_c as "NOMBRE CLIENTE", nom_neg,total_compfrom negocio,clientes,ventas where

    nom_prod='bikini' and nom_neg='ALICE';

    Mostrar el nombre del empleado, ciudad, puesto que ocupa y las horas quetrabaja cada uno

    SELECT DISTINCT empleados.nom_emp,Dir_emp.ciudad,puesto,hrs_trabfrom empleados,Dir_emp,datos_emp,calle where Dir_emp.ciudad='Tlaxiaco';

  • 7/22/2019 Reporte Basedatos

    35/62

    35

    Muestra nombre del empleado que trabaja especficamente 100 horas,ciudades en las que trabaja y puesto que ocupa.

    SELECT DISTINCT empleados.nom_emp,Dir_emp.ciudad,puesto,hrs_trabfrom empleados,Dir_emp,datos_emp,calle where empleados.hrs_trab=100;

    select empleados.nom_emp as"nombre empleado",puesto,hrs_trab fromempleados where empleados.nom_emp between 'GERENTE' and'MOSTRADOR';

    Seleccionar productos bikini y bxer su costo tipo de tela y su color

    SELECT modelo.nom_prod ,costo,tipo_tela,color from producto,modelo wheremodelo.nom_prod between 'bikini' and 'boxer';

    Muestra la fecha en que se almaceno el producto, el nombre de la marca elcosto y su nombre

  • 7/22/2019 Reporte Basedatos

    36/62

    36

    select distinct fecha as"fecha almacenada" ,nom_marca,costo,nom_prod fromen,almacen,producto,modelo where nom_marca='PLAYTEX' AND nom_prod IN(

    SELECT nom_prod from modelo where nom_prod='bra');

    Ordenar el nombre de los clientes de forma ascendente deacuerdo a lacantidad de compra que realizaron

    select * from clientes order by cant_compra desc, num_cliente asc;

    select distinct id_solicita,empleados.nom_emp,puesto,costo_vta,nom_c,ventas.nom_prod as "nombrecliente",num_cliente,total_comp, marca_prod from solicita,

    producto,ventas,empleados, clientes,modelo whereempleados.nom_emp='HUGO' order by puesto;

  • 7/22/2019 Reporte Basedatos

    37/62

    37

    select nom_neg,cant_prod,fecha,costo,prod_abastecer fromnegocio,almacen,proveedores,en,producto where prod_abastecer=200 groupby

    nom_neg,cant_prod,fecha,costo,prod_abastecer ;

    select nom_neg,fecha,costo,marca_prod,prod_abastecer,nom_prod fromnegocio,almacen,proveedores,en,producto,modelo where prod_abastecer=300and nom_prod='bikini' group by

    nom_neg,cant_prod,fecha,costo,prod_abastecer,marca_prod,nom_prod;

    Select (modelo.nom_prod,nom_c,cant_compra,marca_prod,nom_emp,costo)from empleados,clientes,producto,modelo,ventas,solicita

  • 7/22/2019 Reporte Basedatos

    38/62

    38

    where (nom_c='IRMA') Order by (costo) asc;

    Select nom_prov,prod_abastecer,precioVta_prod,tel_prov from proveedores;

    SELECT costo,nom_prod,tipo_tela,color FROM producto,modelo WHERE(nom_prod='bikini') AND (costo

  • 7/22/2019 Reporte Basedatos

    39/62

    39

    select nom_prod,costo,nom_emp from empleados,producto,modelo

    where nom_emp=(select nom_emp from empleados wherenom_emp='HUGO')and nom_prod='bady doll'and costo=300 ;

    select count(*) from ventas where costo_vta=350;

    select nom_prod, avg(costo) from producto,modelo group by nom_prod;

    select nom_prod,pre_compra,nom_marca,nom_prov ,tel_prov fromproducto,almacen,proveedores,ventas where tel_prov=(select tel_prov fromproveedores where tel_prov=9531245) AND nom_prod='jeans';

  • 7/22/2019 Reporte Basedatos

    40/62

    40

    select nom_prod,color,marca_prod,costo from producto join modelo onproducto.id_modelo=modelo.id_modelo;

    select nom_emp,ap_pat,ap_mat,puesto,num_calle,colonia,ciudad,nombre_munfrom datos_emp,empleados join Dir_emp onempleados.cod_postal=Dir_emp.cod_postal;

    Creacin de Usuarios y Roles

    Creacin del usuario Alicia:

    create role alicia login encrypted password 'cancer' nosuperuser noinheritcreatedb nocreaterole;en caso de eliminar el usuario Alicia se utiliza la siguiente sintaxis--drop user Alicia;

    Asignacin de permisos al usuario Alicia en la base de datos tiendapara todas las tablas de esa BD.

    GRANT SELECT, UPDATE ONdatos_emp,empleados,calle,Dir_emp,num_cuenta,nom_cliente,ventas,solicita,producto,modelo,en,talla,almacen,proveedores,negocio TOalicia;

    Creacin del usuario rut:

  • 7/22/2019 Reporte Basedatos

    41/62

    41

    create role rut login encrypted password 'ruting94 ' nosuperuser noinheritcreatedb nocreaterole;

    Asignacin de permisos al usuario rut en la base de datos tiendapara todas las tablas de esa BD

    GRANT SELECT, INSERT, UPDATE, DELETE ON clientes, datos_emp,empleados, calle, Dir_emp,num_cuenta,nom_cliente,ventas,solicita,producto,modelo,en,talla,almacen,proveedores,negocio TO rut;

    Creacin del usuario uriel:

    create role uriel login encrypted password 'bich' nosuperuser noinherit createdbnocreaterole;

    Asignacin de permisos al usuario uriel en la base de datos tienda

    para todas las tablas de esa BD

    GRANT SELECT ONclientes,datos_emp,empleados,calle,Dir_emp,num_cuenta,nom_cliente ,ventas,solicita,producto,modelo,en,talla,almacen,proveedores,negocio TO uriel;

    Creacin del roles

    Creacion del rol rol_t con permisos de seleccin y eliminacin al usuarioAlicia

    create role rol_t;grant select ,delete on empleados to rol_t;grant rol_t to alicia;

    Creacion del rol URIEL con permisos de actualizacin al usuario Uriel

    create role URIEL;grant update on clientes,datos_emp,empleados,calle, Dir_emp, num_cuenta,nom_cliente ,ventas ,solicita, producto ,modelo ,en ,talla ,almacen

    ,proveedores ,negocio to URIEL;grant URIEL to uriel;

    Creacion del rol RUTM con permisos de seleccin ,eliminacin yactualizacin al usuario rut

    create role RUTM;grant select ,delete,update,insert on clientes,datos_emp, empleados ,calle,Dir_emp , num_cuenta ,nom_cliente ,ventas, solicita producto ,modelo, en,talla, almacen, proveedores, negocio to RUTM;grant RUTM to rut;

  • 7/22/2019 Reporte Basedatos

    42/62

    42

    Comprobacin de permisos a usuarios mediante la consola

    SQL Shell (psql)

    Inicio-buscarSQL Shell (psql)-insertar los datos correspondientes

    Accesando el usuario Alicia (visualizando la tabla empleados)

    Accesando el usuario rut (eliminando los datos de la tabla Dir_emp y

    visualizando la misma tabla)

  • 7/22/2019 Reporte Basedatos

    43/62

    43

    Accesando el usuario Uriel (seleccin de la columna nom_c de la tabla

    cliente)

    Creacin de vistas

    create view producto_existente as select nom_prod, tipo_tela, color, tamao,marca_prod, pre_compra from modelo, producto, talla wheretamao='MEDIANO' and pre_compra

  • 7/22/2019 Reporte Basedatos

    44/62

    44

    drop view producto_existente;select * from producto_existente;

    create view caracteristicas_producto as select nom_prod, color, marca_prod,costo as "costo por lote" from producto join modelo on product.id_modelo=modelo.id_modelo;drop view caracteristicas_producto;select * from caracteristicas_producto;

  • 7/22/2019 Reporte Basedatos

    45/62

    45

    create view datos_empleados as select nombre ,ap_pat AS "APELLIDOPATERNO",ap_mat AS "APELLIDO MATERNO", puesto,hrs_trab AS "HORASTRABAJADAS" from empleados join datos_emp onempleados.curp=datos_emp.curp;

    select * from datos_empleados ;drop view datos_empleados;

    create view salidas as select distinct nom_c as "NOMBRE DEL CLIENTE",nom_prodas "PRODUCTO QUE COMPRO",nombre as "ATENDIDO POR",costo_vta

    from datos_emp,ventas,nom_cliente where nombre='ESMERALDA'andnom_prod='boxer' ;select * from salidas ;drop view salidas ;

    create view detallesproducto asSELECT pre_vta,nom_prod,tipo_tela,color,marca_prod FROM producto,modeloWHERE (nom_prod='bikini') AND (pre_vta>=200) and(color='Fiusha/Morado');

    select * from detallesproducto ;drop view detallesproducto ;

  • 7/22/2019 Reporte Basedatos

    46/62

    46

  • 7/22/2019 Reporte Basedatos

    47/62

    47

    Restricciones

    Las restricciones permiten especificar condiciones que debern cumplir tablaso columnas para mantener la integridad de sus datos. Algunas de las

    restricciones vendrn impuestas por el modelo concreto que se estimplementando, mientras que otras tendrn su origen en las reglas de negociodel cliente, los valores que pueden tomar algunos campos, etc.Los valores que puede contener una columna estn restringidos en primerlugar por el tipo de datos. sta no es la nica restriccin que se puede definirpara los valores en una columna, PostgreSQL ofrece las restriccionessiguientes:

    null y not null. En mltiples ocasiones el valor de una columna esdesconocido, no es aplicable o no existe. En estos casos, los valorescero, cadena vaca o falso son inadecuados, por lo que utilizamos nullpara especificar.

    create table nom_cliente (

    nom_c varchar(40) not null,

    ap_pat varchar(40) null,

    ap_mat varchar(20),

    );

    unique. Esta restriccin se utiliza cuando no queremos que los valorescontenidos en una columna puedan duplicarse.

    create table calle (

    num_calle varchar(40) unique,

    nombre varchar(40) not null,

    );

    primary key. Esta restriccin especifica la columna o columnas que

    elegimos como clave primaria. Puede haber mltiples columnas unique,pero slo debe haber una clave primaria. Los valores que son nicospueden servir para identificar una fila de la tabla de forma unvoca, por loque se les denomina claves candidatas.

    check. Esta restriccin realiza la evaluacin previa de una expresinlgica cuando se intenta realizar una asignacin. Si el resultado esverdadero, acepta el valor para la columna, en caso contrario, emitir unmensaje de error y rechazar el valor.

  • 7/22/2019 Reporte Basedatos

    48/62

    48

    create table proveedores(

    id_prov varchar(5),

    curp_prov varchar(18),

    precioVta_prod integer,prod_abastecer integer check(prod_abastecer > 10 and

    prod_abastecer< 30 ),

    nom_prov varchar(8),

    tel_prov integer,

    primary key (id_prov));

    Transacciones

    Una transaccin se define como un conjunto de operaciones que tienensignificado solamente al actuar juntas.PostgreSQL ofrece soporte a transacciones, garantizando que ambasoperaciones se realicen o que no se realice ninguna. Para iniciar unatransaccin, se utilizael comando begin y para finalizarla, commit.Al cerrar la transaccin, los registros insertados ya son visibles para todos losUsuarios. Si por alguna razn, por ejemplo una cada del sistema, no seejecuta el commit, la transaccin se cancela. La forma explcita de cancelar unatransaccin es con el comando rollback.

  • 7/22/2019 Reporte Basedatos

    49/62

    49

    Funciones y disparadores

    Como algunos de los gestores de bases de datos relacionales, comercialeslderes en el mercado, PostgreSQL puede incorporar mltiples lenguajes de

    programacin a una base de datos en particular. Este hecho permite, porejemplo:

    Almacenar procedimientos en la base de datos (stored procedure), quepodrn lanzarse cuando convenga.Definir operadores propios. PostgreSQL ofrece por defecto soporte parasu propio lenguaje procedural, el PL/pgSQL. Para instalarlo, basta coninvocar el comando createlang desde el sistema operativo, no desde lalnea de psql.

    La funcin tiene tres partes:

    El encabezado que define el nombre de la funcin y el tipo de retorno. El cuerpo de la funcin, que es una cadena de texto (por lo tanto,

    siempre va entre comillas dobles). La especificacin del lenguaje utilizado.

    La funcin recin creada tiene las mismas caractersticas que las integradas.

    Disparadores

    Las funciones deben llamarse explcitamente para su ejecucin o para incluirlasen consultas. Sin embargo, se puede definir que algunas funciones se ejecutenautomticamente cuando cierto evento tenga lugar en cierta tabla. Estasfunciones se conocen como disparadores o triggers y se ejecutan mediante loscomandos insert, delete y uptade.

    Para poder utilizar una funcin como disparador, no debe recibir argumentos ydebe retornar el tipo especial trigger:

    Procedimientos almacenados

    Se define como un programa, procedimiento o funcin, el cual est almacenadoen la base de datos y listo para ser usado.

    Existen dos ventajas evidentes al utilizar procedimientos almacenados:

  • 7/22/2019 Reporte Basedatos

    50/62

    50

    La ejecucin del procedimiento ocurre en el servidor de base de datos.Esto probablemente aumentara el rendimiento de nuestra aplicacin alno tenerse que mandar datos entre el cliente y el servidor, y no tenerque procesar resultados intermedios entre el cliente para obtener elresultado final.

    Al tener la lgica de la aplicacin implementada en la base de datos notenemos que implementarla en los clientes, con el consiguiente ahorrode lneas de cdigo redundante y complejidad.

    Triggers

    Un trigger (o disparador) en una base de datos, es un procedimiento que seejecuta cuando se cumple una condicin establecida al realizar una operacin.Dependiendo de la base de datos, los triggers pueden ser de insercin(INSERT), actualizacin (UPDATE), o borrado (DELETE). Algunas bases dedatos pueden ejecutar triggers al crear, borrar o editar usuarios, tablas y otrosobjetos.

    La estructura bsica de un triggers es:

    Llamada de activacin: es la sentencia que permite disparar el cdigo aejecutar. Restriccin: es la condicin necesaria para realizar el cdigo. Esta

    condicin puede ser de tipo condicional o de tipo nulidad. Accin a ejecutar: es la secuencia de instrucciones a ejecutar una vez

    que se han cumplido las condiciones iniciales.

    TiposExisten dos tipos de disparadores que se clasifican segn la calidad deejecuciones al realizar.

    Row triggers o (disparadores de fila): son aquellas que se ejecutaran n-veces si se llama n-veces desde la tabla asociada al triggers.

    Statement triggers o (disparadores de secuencia): son aquellos que sinimportar la cantidad de veces que se cumpla con la condicin, suejecucin es nica.

    Desventajas

  • 7/22/2019 Reporte Basedatos

    51/62

    51

    No aceptan parmetros o argumentos pero podran almacenar los datosafectados en tablas temporales.

    No pueden ejecutar las operaciones COMMIT, ROLLBACK por queestas son parte de la sentencia SQL del disparador.

    Pueden causar errores de mutaciones en las tablas, si se han escrito demanera deficiente.

    Ejemplos de procedimientos almacenados

    CREATE OR REPLACE FUNCTION ejemplo_txt(integer, integer) RETURNStext AS $$

    DECLAREnumero1 ALIAS FOR $1;numero2 ALIAS FOR $2;constante CONSTANT integer:=61;resultado INTEGER;resultado_txt TEXT DEFAULT 'El sueldo es justo';

    BEGINresultado := (numero1 * numero2)* constante;

    IF resultado > 2440 THENresultado_txt := 'El sueldo es excesivo 'resultado;END IF;

    RETURN resultado_txt;END;$$ LANGUAGE plpgsql;

    prueba

    SELECT ejemplo_txt(9,5);SELECT ejemplo_txt(8,5);

    Aqu se muetra los resultados de a ejecucion: para este caso el suldo que seotorga por sus horarios de servicio es excesivo.

  • 7/22/2019 Reporte Basedatos

    52/62

    52

    Los resultados de la siguiente ejecucion muestra que el sueldo que se le otorgaal empleado por su horario de servicio es justo.

    Se crea una funcin en el cual nos muestre la cantidad de productos queabastece un proveedor a la tienda.

    Aqu se muestra el resultado de la ejecucion donde se muestra que elproveedor luis abastece 200 productos de la marca viki form al almacen con

    id_a 123c.

  • 7/22/2019 Reporte Basedatos

    53/62

    53

    Se creo un TIGGER que respalde los datos que se eliminan en la tablaproducto

    create table respaldo(id_prod varchar(4),

    costo integer,marca_pro varchar,pre_vta integer,pre_compra integer,id_modelo integer,id_talla integer);

    create function respaldar() returns trigger as 'begin insert into respaldo values( old.id_prod, old.costo, old.marca_prod,

    old.pre_vta,old.pre_compra,old.id_modelo,old.id_talla);return null;

    end' language plpgsql;drop function respaldar();

    create trigger archivar before delete on productofor each row execute procedure respaldar();

    drop trigger archivar on producto;

    delete from producto where id_prod='9011';

    select * from producto;select * from respaldo;

  • 7/22/2019 Reporte Basedatos

    54/62

    54

    Creacin de un taigger en cual se tiene que rellenar todos los campos alinsertar y si no es as se ejecuta el TIGGER

    CREATE FUNCTION descuentoalmacen() RETURNS trigger AS 'BEGINNEW.cant_prod := (NEW.cant_prod)-5;RETURN new;END'LANGUAGE plpgsql;

    CREATE TRIGGER desalamcen BEFORE INSERT or UPDATEON almacen FOR EACH ROWEXECUTE PROCEDURE descuentoalmacen(cant_prod);

    insert into almacen(id_a,modProd_almacenado,nom_marca,cant_prod,id_prov)values('134h',2448,'VICKY FORM',200,'500B');

    select*from almacen;

  • 7/22/2019 Reporte Basedatos

    55/62

    55

    create function costopro () returns trigger as 'begin ----aqui ba el nombre de lafuncion se llama ingreso ()if new.nom_prod isnull then --------------- aqui dice...que si el campo Nombre es

    nulllraise exception ''Ingrese nombre producto'';--------------la excepcion la atrapa y

    me sale "ingrese nombre"end if;if new.marca_prod isnull thenraise exception ''ingrese costo'';------lo missmoend if;return new;

    end' language plpgsql;drop function costopro();

    CREATE TRIGGER ingreso_producto BEFORE INSERT OR UPDATE ONproductoFOR EACH ROW EXECUTE PROCEDURE costopro();

    drop TRIGGER ingreso_producto on producto;

    insert into producto(id_prod,costo,pre_vta,pre_compra,id_modelo,id_talla)values

    ('9198',2000,220,200,'11a','A02');

  • 7/22/2019 Reporte Basedatos

    56/62

    56

    Conexin de posgretSQL a java

    Conexin de posgreSQL 9.0 a java/ NetBeans IDE 6.9

    Ejecutar netbeans ir a archivo > proyecto nuevo

    Clic sobre java > java Application > Siguiente

    Nombrar el proyecto --- en nuestro caso ConexionDB y Siguiente

  • 7/22/2019 Reporte Basedatos

    57/62

    57

    Ya creado el proyecto se obtiene el siguiente resultado

    Este paso es de suma importancia para continuar nuestro proyecto. Se

    debe agregar una librera especfica al proyecto, es decir, debemossealar que esto se realiza para que el lenguaje PosgreSQL en el

    proyecto sea reconocible pues de no agregar una librera al momento de

    compilar el proyecto este no reconocer la sintaxis del cdigo escrito en

    mencionado proyecto.

  • 7/22/2019 Reporte Basedatos

    58/62

    58

    Importar el paquete de la librera a nuestro proyecto (import java.sql.*;) parareconozca los comandos y nos permita realizar la conexin

    static Connection conn = null;Statement st = null;static ResultSet rs = null;static String bd = "lenceria";static String login = "postgres";static String password = "smg";static String url = "jdbc:postgresql://localhost:5432/" + bd;

    public static Connection Enlace(Connection conn) throws SQLException {try {

    Class.forName("org.postgresql.Driver");conn = DriverManager.getConnection(url, login, password);

    } catch (ClassNotFoundException e) {JOptionPane.showMessageDialog(null, e);

    }return conn;

    }

    Actualizar Datos

    try {

    conn = Enlace(conn);

    st = conn.createStatement();

    st.executeQuery("UPDATE proveedores SET curp_prov='" +

    jTextField2.getText() + "',preciovta_prod='" + jTextField3.getText() +"',prod_abastecer='" + jTextField4.getText() + "',nom_prov='" +

    jTextField5.getText() + "',tel_prov='" + jTextField6.getText() + "' WHERE

    id_prov='" + jTextField1.getText() + "';");

    } catch (SQLException ex) {

    JOptionPane.showMessageDialog(this, "Datos Actualizados");

    }

    Eliminar Datos

    Nombre de la basede datos

    Se llama el driver para

    hacer la conexin

    mediante la clase forName

  • 7/22/2019 Reporte Basedatos

    59/62

    59

    int R = JOptionPane.showConfirmDialog(this, "Esta seguro de Eliminar el

    registro",

    "Advertencia", JOptionPane.YES_NO_OPTION,

    JOptionPane.QUESTION_MESSAGE);

    if (R == JOptionPane.YES_NO_OPTION) {

    try {

    st.executeQuery("DELETE FROM proveedores WHERE

    id_prov='" + jTextField1.getText() + "'");

    } catch (SQLException ex) {

    JOptionPane.showMessageDialog(this, "se elimino

    correctamente");

    }

    Visualizar Datos

    ResultSet rs;

    try {

    jTextArea1.setText("");

    conn = Enlace(conn);

    st = conn.createStatement();

    rs = st.executeQuery("SELECT *FROM proveedores");

    while (rs.next()) {

    jTextArea1.append(rs.getString(1) + "\t" + rs.getString(2) + "\t" +

    rs.getString(3) +rs.getString(4) + "\t" + rs.getString(5) + "\t" +

    rs.getString(6) + "\t" +"\t\n");

    }

    } catch (SQLException ex) {

    JOptionPane.showMessageDialog(this, "Hubbo un problema al

    intentar Buscar el registro");

    }

    Agregar Datos

    try {conn = Enlace(conn);st = conn.createStatement();

  • 7/22/2019 Reporte Basedatos

    60/62

    60

    st.executeQuery("INSERT INTO proveedores VALUES('" +jTextField1.getText() + "','" + jTextField2.getText() + "','" +jTextField3.getText() +"','" + jTextField4.getText() + "','" +jTextField5.getText() + "','" + jTextField6.getText() +"');");

    } catch (SQLException ex) {

    ex.getStackTrace();JOptionPane.showMessageDialog(this, "datos Registrados");//

    Logger.getLogger(calle.class.getName()).log(Level.SEVERE, null, ex);}

    Buscar Datos

    try {ResultSet rs;rs = st.executeQuery("SELECT * FROM proveedores WHERE

    id_prov ='" + jTextField1.getText() + "';");rs.next();jTextField2.setText(rs.getString(2));jTextField3.setText(rs.getString(3));jTextField4.setText(rs.getString(4));jTextField5.setText(rs.getString(5));jTextField6.setText(rs.getString(6));

    } catch (SQLException ex) {

    JOptionPane.showMessageDialog(this, "No existe el Registro");}

    Nota : Para la realizacin de formularios agregar etiquetas ,cuadro detexto, segn se requieran para la tabla as como los botones necesariospara agregar,modificar,eliminar,etc

  • 7/22/2019 Reporte Basedatos

    61/62

    61

    Diseo del formulario de la tabla proveedores

  • 7/22/2019 Reporte Basedatos

    62/62

    Conclusin

    La migracin de bases de datos alojadas en productos comerciales a

    PostgreSQL se facilita gracias a que soporta ampliamente el estndar SQL.PostgreSQL cuenta con una serie de caractersticas atractivas como son la

    herencia de tablas (clases),un rico conjunto de tipos de datos que incluyen

    arreglos, direcciones de red,etc. PostgreSQL incluye tambin el procesamiento

    de transacciones, integridad referencial y procedimientos almacenados.

    En concreto, hay procedimientos documentados para migrar los procedimientos

    almacenados desarrollados en lenguajes propietarios de bases de datos

    comerciales (PL/SQL) a PL/PGSQL.

    La API se distribuye para varios lenguajes de programacin como C/C++, Perl,

    Java, PHP, Python, TCL/Tk y ODBC.

    PostgreSQL es extensible. Es posible agregar nuevos tipos de datos y

    funciones al servidor asi como tambin insertar nuevos lenguajes de

    programacin del lado del servidor para la creacin de procedimientos

    almacenados.