Desarrollo de Bases de Datos

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Desarrollo de Bases de Datos"

Transcripción

1 SQLJ Motivación Utilización de variables compartidas Compatibilidad de tipos Recuperación de datos Tratamiento de excepciones Contexto de ejecución Contexto de conexión Ejecución de una aplicación SQLJ Motivación Dos tipos de usuario: ocasionales: utilizan SQL interactivo para recuperar datos desarrolladores: utilizan SQL embebido para tratamiento de datos Requisitos del tratamiento de datos modificar/recuperar tuplas? SQL capacidad de cálculo + instrucciones de control? COBOL, C Por tanto, el tratamiento de datos requiere utilizar SQL dentro de un lenguaje de programación SQL embebido Estándar para la inclusión de instrucción SQL dentro de un lenguaje de programación Se extiende el leng. prog. mediante la pre-compilación SQLJ Interfaz de alto nivel: consultas directamente en SQL Análisis sintáctico y semántico en tiempo de (pre)compilación Interoperabilidad: estándar ANSI (diciembre, 1998) Toda instrucción SQL aparece precedida por una palabra clave reconocida durante la pre-compilación Para el caso de JAVA estándar SQLJ Pasos para la ejecución de una aplicación.sqlj Pre-compilador SQLJ comprobación de sintaxis comprobación de tipos comprobación de esquema Compilador Java Código fuente: Java + SQLJ.. #sql [contexto conexión] {select }; Código fuente: Java + JDBC >>sqlj mifichero.sqlj >>javac mifichero.java Código byte: Java + llamadas al controlador JDBC >>java mifichero.class Controlador JDBC Sistema Base de Datos

2 Utilización de variables compartidas Variables de Java que aparecen en sentencias SQL void ejemplo() throws Exception { String cuentaa = null; String cuentab = null; Integer elsaldo = null; DefaultContext contexto1 = new DefaultContext ( jdbc:oracle:oci8:@midb, unusuario, secreto, false ); Cont. OJO: Identificadores de SQL no son sensibles. Identificadores de Java sí son sensibles #sql [ctx] {update Alumno set nota= :la_nota where dni = :el_dni} #sql [contexto1] {select saldo INTO :elsaldo from cuentacorriente where codigo = :cuentaa}; instrucción SQLJ contexto en el que se ejecuta la sentencia SQL Las variables compartidas precedidas por : #sql [contexto1] {update cuentacorriente set saldo = saldo + :elsaldo where codigo = :cuentab}; #sql [ctx1] {select nombre into :el_nombre from Alumno where dni = :el_dni} Compatibilidad de tipo SQL? Tipos Java (escalares) boolean byte short int long float double Tipos SQL BIT TINYINT SMALLINT INTEGER BIGINT REAL FLOAT, DOUBLE Java #sql [ctx] {update Alumno set nota= :la_nota where dni = :el_dni} A la variable de SQL nota se le asigna la variable JAVA la_nota sus tipos tienen que ser compatibles El valor null Los tipos de datos de Java NO soportan el valor null. SQLJ define para cada clase escalar de Java, una clase wrapper donde se soporta el valor null existe un método xxxvalue que permite la conversión al tipo primitivo (p.ej intvalue pasa a int) otros métodos: tostring(int), valueof(string), shortvalue() Nótese que si el tipo es wrapper empieza por mayúscula Tipos Java Tipos SQL (clases wrapper) java.lang.boolean BIT java.lang.byte TINYINT java.lang.short SMALLINT java.lang.integer INTEGER java.lang.long BIGINT java.lang.float REAL java.lang.double FLOAT, DOUBLE java.lang.string CHAR, VARCHAR, LONGVARCHAR java.math.bigdecimal NUMERIC, DECIMAL byte[ ] BINARY, VARBINARY, LONGBINARY java.sql.date DATE java.sql.time TIME java.sql.timestamp TIMESTAMP cont. Pasar null de Java a SQL String elnombre = null; Short laedad = null; #sql {insert into Alumno (dni, nombre, edad) values (444, :elnombre, :laedad)}; Recuperar null de SQL en Java Short eldni; Short laedad; #sql {select edad into :laedad from Alumno where dni = :eldni} short auxedad = laedad.shortvalue(); error Si una variable de tipo primitivo recibe null se genera el error SQLNullException Recuperación de datos Si SELECT devuelve un solo valor. El resultado se guarda en una variable del lenguaje anfitrión #sql {SELECT edad INTO :laedad FROM Alumno where dni = :eldni} Si SELECT devuelve un conjunto de valores. El resultado se guarda en un CURSOR

3 Cursores identificados por posición Un cursor es un objeto de la clase iterator El nº de columnas es igual al de la pregunta Se especifica el tipo de los atributos de la pregunta #sql publiciterator itealumno (Integer, String); // 1.- define el tipo itealumno itealumno uncursor; // 2.- se introduce variable de este tipo Integer eldni; String elnombre; #sql uncursor = {select dni, nombre from Alumno}; // 3.- se abre el cursor while (true) { // 4.- se itera sobre el cursor #sql {fetch :uncursor into :eldni, :elnombre}; if(un_cursor.endfetch()) break; // true si no hay más tuplas System.out.println (eldni, elnombre); } un_cursor.close(); // 4.- se cierra el cursor Cursores identificados por el nombre (recomendado) Un iterador especifica el nombre y tipo de los atributos de la pregunta Los valores de los atributos del registro se obtienen con métodos con nombre el del atributo #sql publiciterator itealumno (Integer el_dni, String el_nombre); itealumno uncursor; // variable de tipo la clase anterior Integer eldni; String elnombre; #sql uncursor = {select nombre as el_nombre, dni as el_dni from Alumno}; // asignación cjto. tuplas while (uncursor.next()) { // avanza a la sgte. tupla. (false, si no hay más) eldni = uncursor.el_dni(); // obtiene el valor del atributo de la tupla elnombre = uncursor.el_nombre(); System.out.println (eldni, elnombre);} uncursor.close(); // liberación del recurso Tratamiento de excepciones Excepción es un objeto de tipo SQLException se crea cuando se produce una excepción métodos: getmessage, geterrorcode, getsqlstate try{ #sql {select nombre into :elnombre from Alumno where dni = :eldni};} catch( SQLNullException ne ){ System.out.println( Seha encontrado un valor null: + ne. geterrorcode());} catch( SQLException e ){ System.out.println( Error: + e.getmessage() + e.geterrorcode());} Contexto de conexión Una instrucción SQL se ejecuta en un contexto de conexión #sql [contexto] {update Alumno set nota= :la_notawhere dni = :el_dni} Este contexto indica el SGBD, la base de datos usuario y password modo autocommit con el que se ejecutará la instrucción SQL Este contexto se define como una instancia de la clase sqlj.runtime.defaultcontext Clase DefaultContext static DefaultContext DefaultContext(java.lang.String url, java.lang.string user, java.lang.string password, boolean autocommit) Crea el contexto por defecto static DefaultContext getdefaultcontext() Devuelve el contexto por defecto static void setdefaultcontext(defaultcontext ctx) Establece el contexto por defecto Ejemplo DefaultContext miejemplo = new DefaultContext ( jdbc:oracle:oci8:@midb, unusuario, secreto, false ); DefaultContext.setDefaultContext ( miejemplo ); #sql [miejemplo] {update }; //no sería necesario poner el contexto miejemplo.close(); public void close() Cierra el actual contexto

4 Varios contextos de conexión simultáneos Necesidad de usar en la aplicación SGBDs distintos Necesidad de usar BD diferentes Necesidad de añadir más funcionalidades a la clase contexto de conexión DefaultContext miejemplo = newdefaultcontext ( jdbc:oracle:oci8:@midb, unusuario, secreto, false ); DefaultContext otroejemplo = newdefaultcontext ( jdbc:oracle:oci8:@midb, otrousuario, misecreto, false ); DefaultContext.setDefaultContext ( miejemplo ); #sql {select }; #sql [otroejemplo] {update }; // utiliza el contexto por defecto miejemplo.close(); otroejemplo.close( ); Contexto de ejecución Una instrucción SQL se ejecuta en un contexto de ejecución: #sql [unctxcon, unctxeje] {update Alumno set nota = nota + 1 where curso = 5}; Este contexto es una zona compartida por el runtime del SGBD y el programa, para intercambiar información sobre MaxRows: máximo nº de tuplas que puede guardar un cursor MaxFieldSize: máximo nº de bytes de un atributo QueryTimeout: segundos de espera a una sentencia SQL UpdateCount: nº tuplas afectadas con última sentencia SQL SQLWarnings : texto error generado en la ejecución Estos atributos se guardan como una instancia de la clase sqlj.runtime.executioncontext Ejemplo // Crea un contexto de ejecución donde guarda las incidencias ExecutionContext unctxeje = new ExecutionContext(); #sql [unctxcon, unctxeje] {delete from Alumno where curso = 5}; System.out.println( Se han borrado + unctxeje.getupdatecount() + alumnos ); // Espera 3 segundos a que se ejecute la sentencia SQL unctxeje.setquerytimeout(3); Tratamiento fichero.sqlj Pre-compilador SQLJ comprobación de sintaxis comprobación de tipos comprobación de esquema Compilador Java Código fuente: Java + SQLJ.. #sql [contexto conexión] {select }; Código fuente: Java + JDBC >>sqlj mifichero.sqlj >>javac Código byte: Java + llamadas al controlador JDBC Controlador JDBC mifichero.java >>java mifichero.class #sql [unctxcon, unctxeje] {update Alumno set curso = 5}; Sistema Base de Datos Configuración de la pre-compilación Algunos parámetros de configuración dir : directorio de los ficheros.java generados user y password : nombre de usuario, y su clave, para conectarse a la bd. (si no es null, el sistema realiza comprobación online) url: indica dónde establecer la conexión driver: controladores JDBC offline/online: comprobación sin/con conexión a la bd. Pueden indicarse explícitamente: >> sqlj -user=unusuario -password=secreto mifichero.sqlj en el fichero sqlj.properties, consultado al invocar a sqlj sqlj.user=unusuario sqlj.password=secreto Conexión durante la pre-compilación mifichero.sqlj SQLJ mifichero.java Conexiones en la compilación Compilador Java miejemplo mifichero.class otroejemplo Conexiones en la ejecución

5 public class top5 { #sql static iterator top5it (String unalumno, Integer notamedia); void listartop5() throws Exception { top5it lostop5; String elalumno = null; Integer lanotamedia = null; int contador = 0; #sql lostop5 = { SELECT elalumno AS unalumno, avg(nota) AS notamedia FROM AluAsi GROUP BY elalumno ORDER BY 2 DESC}; System.out.println("ALUMNO " + "SU NOTA MEDIA"); while (lostop5.next() && contador < 5) { elalumno = lostop5.unalumno(); lanotamedia = lostop5.notamedia(); System.out.println(elAlumno + " " + lanotamedia); contador = contador + 1; } lostop5.close();} Ejercicio La casa discográfica VIRGIN desea crear una base de datos sobre las canciones, los autores y los cantantes que hacen distintas versiones de dichas canciones. Un autor puede componer distintas canciones y una canción puede tener distintos compositores (tabla Aut_Can). Por otro lado, los cantantes pueden realizar distintas versiones de una determinada canción. Las canciones están agrupadas en álbumes (tabla Can_Can_Al). En un álbum una misma canción puede ser cantada por distintos cantantes, pero un cantante no puede tener diferentes versiones de la misma canción en el mismo álbum. El diagrama E/R y las tablas correspondientes son estas: top5() {ConnectionManager.initContext();}} Esquema Esquema Autor M AUT_CAN N M CAN_CAN_AL N P Cantante Fecha Duración AUTOR (NomAut, Tfno, Cuota) CANCION (Título, Estilo) CANTANTE (NomCan, Tfno, País) ALBUM (Código, DiscosPlatino) AUT_CAN (ElAutor, LaCanción) CAN_CAN_AL (LaCanción, ElCantante, ElAlbum, Fecha, Duración) Canción Álbum Ejercicio 1 Ejercicio 1 Expresar en SQLJ un programa que cree un nuevo album recopilatorio con las canciones 1º) de cualquier estilo 2º) existan más de dos versiones de las mismas, y 3º) cuyos autores hayan compuesto alguna canción de estilo Jazz. Expresar en SQLJ un programa que cree el album XXX The BEST que contenga para cada autor sus 5 canciones de más éxito, es decir, aquellas que aparezcan en más álbumes. Conseguir todas las canciones Para cada canción Comprobar que si es de algún autor de Jazz Comprobar número de versiones Si se cumplen las dos anteriores Insertar en la BD (número de álbum y cantante fijos que deberíamos saber)

6 Ejercicio 1 Conseguir todas las canciones Select titulo from cancion Comprobar que si es de algún autor de Jazz Select 2 FROM AUT_CAN AS AC1 NJ Autor NJ AUT_CAN AS AC2 NJ Canción WHERE AC1.título=:título AND C2.Estilo= Jazz (si devuelve tuplas es que sí tiene autor de Jazz) Comprobar número de versiones Select COUNT (Distinct Album) INTO :numversiones from CAN-CAN-AL WHERE título=:titulo (si >2, entonces insertar en la BD) Otras opciones del lenguaje Borrar o modificar la tupla actual #sql [ctx] {delete from tabla WHERE CURRENT OF :variableiteradoranfitrión}; #sql [ctx] {update tabla set atributo = valor WHERE CURRENT OF : variableiteradoranfitrión}; #sql iterator UnIterador(String, String); UnIterador iter; #sql iter = {select nombre, dir from cliente where ciudad= Donostia }; while (true) { #sql {fetch :iter into:nombre, :dir}; if (iter.endfetch()) break; System.out.println (nombre+ " " + dir + " Borrar (S/N)?"); entrada= new BufferedReader (new InputStreamReader (System.in)); tecla= entrada.readline(); if (tecla.equals( S")) #sql{deletefrom cliente wherecurrentof:iter}; } Procedimientos almacenados Los definen los usuarios. Son objetos del esquema Se ejecutan en el SGBD La sintaxis de las llamadas depende del SGBD. Por ejemplo, en Oracle #sql [ctx] { CALL procedimiento(:arg1, :arg2) }; #sql [ctx] var= { VALUES funcion(:arg1, :arg2) }; Transacción Comienzo de la transacción: Al realizar una operación SQL sobre tuplas de la BD El control de concurrencia se basa en reservas A nivel de tupla Reserva de tupla: lo hace el sistema al escribir Para leer no se hace reserva Liberar la reserva: Automáticamente AutoCommit Manualmente #sql {rollback}; AutoCommit Se puede definir cuando se crea el contexto de conexión: Autocommit=false DefaultContext ctx1= new DefaultContext ( jdbc:oracle:oci8:@mibd, Jon, secreto, false); Las transacciones se deben terminar manualmente Autocommit=true DefaultContext ctx2= new DefaultContext ( jdbc:oracle:oci8:@mibd, Nerea, asaber, true); Las transacciones se terminan automáticamente en cuanto terminan sus operaciones NO hay posibilidad de hacer ROLLBACK Autocommit También se puede cambiar a través del contexto de conexión: ctx.getconnection().setautocommit(true); Tiene que ser la primera operación de la transacción

7 Recomendaciones para el diseño de transacciones #sql public iterator IteBDNotas(int nota); IteBDNotas bdnotas; #sql bdnotas = {select nota from Matricula where codalum = 787}; #sql media = {select avg(nota) from Matricula where codalum = 787}; while (bdnotas.next()) { nota = bdnotas.nota(); if (nota > media) {System.out.println( );} } #sql public iterator itebdnotas (int nota); itebdnotas bdnotas; // Solo se obtienen las notas que son superiores a la media #sql bdnotas = {select nota from Matricula where codalum = 787 and nota > (select avg(nota) from Matricula where codalum = 787 )}; while (bdnotas.next()) { nota = bdnotas.nota(); System.out.println( ); }. Row Prefetching El estándar JDBC trae las tuplas del resultado de una consulta de una en una Para cada tupla hace falta un acceso a la BD Con la opción DefaultRowPrefetch las tuplas traidas se pueden agrupar Se ahorran accesos a la BD El valor por defecto es 10 (Oracle) Se debe indicar el valor a cada instancia del contexto de conexión Row prefetching Cambiar el valor por defecto a 20 tuplas en un contexto concreto (ctx) ((OracleConnection)ctx.getConnection()).getDefaultRowPrefetch() ((OracleConnection)ctx.getConnection()).setDefaultRowPrefetch(20) Cambiarlo en el contexto por defecto ((OracleConnection)DefaultContext.getDefaultContext().getConnection()).get DefaultRowPrefetch() ((OracleConnection)DefaultContext.getDefaultContext().getConnection()).set DefaultRowPrefetch(20) Update batching Las operaciones UPDATE, DELETE, INSERT se pueden agrupar (en un proceso batch) para que la ejecución sea más rápida (ahorrando accesos a la BD) Las instrucciones en modo batch deben ser del mismo tipo Esta característica se aplica a cada contexto de ejecución Update batching ExecutionContext ctxeje = new ExecutionContext(); ctxeje.setbatching(true); ctxeje.setbatchlimit(limite); for (int j=1; i<=limite; i++) { } // meter las instrucciones en un lote #sql [ctxeje ] { INSERT INTO Tabla VALUES(:i) }; //Ejecución explícita de todas las inserciones a la vez int[ ] kop = ctxeje.executebatch();

8 Update batching las instrucciones de un lote se ejecutan de manera implícita: Antes de ejecutar una instrucción de otro tipo Cuando se ejecuta commit Cuando se llega al límite de instrucciones batch Otras instrucciones ctxeje.isbatching() ctxeje.getbatchlimit() ctxeje.getbatchupdatecounts() ctxeje.cancel() Update batching ExecutionContext ctxeje = new ExecutionContext(); ctxeje.setbatching(true); ctxeje.setbatchlimit(3); #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where dni=1}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where dni=2}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where dni=3}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where dni=4}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where dni=5}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where categoria=10}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where categoria=20}; #sql [ctxeje] {commit}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where categoria=20}; ctxeje.executebatch Cuántos lotes hay y cuándo se ejecutan? Update batching ExecutionContext ctxeje = new ExecutionContext(); ctxeje.setbatching(true); ctxeje.setbatchlimit(3); #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where na=1}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where na=2}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where na=3}; // llegado al límite #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where na=4}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where na=5}; #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where categoria=10}; // límite =3 #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where categoria=20}; #sql [ctxeje] {commit}; // se ha llegadoha terminado la transacción #sql [ctxeje] {update Empleado set sueldo=sueldo+100 where categoria=20}; ctxeje.executebatch(); // petición de ejecución explícita Niveles de aislamiento en transac. Priorizar transacciones Es posible hacer operaciones de lectura y escritura Cuando se compromete una transacción se liberan las reservas (protocolo estricto de dos fases) Garantizar la serialización empeora el nivel de concurrencia Para mejorar la concurrencia se propone relajar las reglas definiendo niveles de aislamiento Se pueden ejecutar concurrentemente las transacciones que tienen distintos niveles de aislamiento Niveles de aislamiento en transac. Para definir las características de la transacción se debe utilizar como primera instrucción: set transaction [read only read write] [isolation level [read uncommitted read committed [diagnostics size <valor>] repeatable read serializable]] Read uncommited Solo operaciones de lectura Recomendable solo para transacciones que tienen funciones estadísticas Las transacciones (Tj) pueden leer datos sin comprometer Puede aparecer el problema de la lectura sucia (dirty read)

9 Read uncommitted (dirty read) Read commited Transacción T1 #sql {update cuenta set saldo= saldo- :cant where numcta= :ctax}; Transacción T2 #sql {update cuenta set saldo = saldo+ :cant where numcta= :ctay}; if () #sql {rollback}; Transacción T2 #sql iterator MiIter(int numcta); #sql {set transaction isolation level read uncommitted}; MiIter iter; #sql iter = {select numctafrom cuenta where saldo<0}; while (iter.next( )) { ctax = iter.numcta( ); mandar_carta(ctax);} La transacción (Tj) no puede leer ni escribir un dato modificado por otra transacción (Ti) hasta que éste se comprometa Evita la lectura sucia (dirty read) La transacción Tk puede leer o modificar un dato leido antes por Tj antes de comprometerlo Puede ocurrir el problema de la lectura irrepetible (unrepeatable read) Read committed (unrepeatable read) Transacción T1 #sql iterator MiIter(int dni); #sql {set transaction isolation level read committed}; MiIter iter; #sql iter = {select dni from cuenta where saldo> }; a = iter.dni( ); Transacción T2 #sql iter = {select dni from cuenta where saldo> }; Transacción T2 #sql {update cuenta set saldo= saldo - :cant where numcta= A2345}; Repeatable read Se aplica el protocolo de reserva de dos fases con todo Se evita la lectura sucia (dirty read) Se evita la lectura irrepetible (unrepeatable read) Puede aparecer el problema de la modificación fantasma cuando hay transacciones que introducen nuevas tuplas. El predicado no se tiene en cuenta Repeatable read (ghost update) Serializable Transacción T1 #sql iterator MiIter(int dni); #sql {set transaction isolation level repeatable read}; MiIter iter; #sql iter = {select dni from cuenta where saldo> }; a = iter.dni( ); Transacción T2 #sql iter = {select dni from cuenta where saldo> }; Transacción T2 #sql {insert intocuentavalues (A2565, 37, , , 2, Matia )}; Se evita la lectura sucia Se evita la lectura irrepetible Se evita la modificación fantasma En el grafo de prioridad, también se almacena información acerca de los predicados utilizados En oracle se usan rollback segments y marcas de tiempo Consistencia a nivel de transacción: los datos utilizados a lo largo de la transacción, son los comprometidos al comienzo de la misma.

10 Serializable Transacción T1 update cuentaset saldo= saldo * 2 where numcta= 2 Transacción T2 set transaction isolation level serializable update cuentaset saldo = saldo + 20 where numcta= 1 insert intocuentavalues (4, ) select * from cuenta commit update cuentaset saldo = saldo + 30 where numcta= 3 select * from cuenta update cuentaset saldo = saldo + 30 where numcta= 2 Error de pérdidade la serialización: ORA Niveles de aislamiento. Resumen Reserva de exclusión larga sobre las tuplas Reserva compartida larga sobre las tuplas Reservas de exc., compart. y sobre predicados largas Read uncommited NO NO Read commited SI NO NO Repeatable read SI SI NO Serializable SI SI NO Reservalarga = al comprometerse la transacción se libera la reserva(vsse libera la reservanada más terminar de usar el dato) No todos los SGBD ofrecen todos los niveles de aislamiento Oracle: Read committed, Serializable DB2: Read uncommited, Read commited, repeatable read & serializable Reservas explícitas LOCK TABLE Sintaxis: LOCK TABLE Tabla/Vista IN modo -reserva MODE [NOWAIT] Reserva explícita de una tabla completa Sin NOWAIT la transacción se queda en espera hasta lograr la reserva Modos de reserva Clave Otras reservas compatibles Consistencia nivel de transacción ROW SHARE IS IS, IX, S, SIX ROW EXCLUSIVE IX IS, IX SHARE S IS, S SHARE ROW EXCLUSIVE SIX IS EXCLUSIVE X -- Reservas explícitas SELECT FOR UPDATE Sintaxis: SELECT FOR UPDATE [OF tabla] [NOWAIT] Nivel de consistencia de transacciones Las tuplas encontradas se reservan una a una, pero todas a la vez y en modo exclusivo Si una tupla ya está reservada Con NOWAIT Se envía un mensaje de error al momento Sin NOWAIT La transacción se queda en espera hasta que se libera la reserva Si es en un iterador al llenarlo se reservan las tuplas (y no cuando se hace next) Para liberar la reserva, se espera al commit o al rollback (y no cuando se acaba de trabajar con el iterador) No se pueden utilizar: funciones agregadas, la cláusula group by, ni distinct Se pueden reservar varias tablas de una consulta con Join SELECT FOR UPDATE. Ejemplo for update Definición y verificación de restricciones #sql libres = {select asientos from espectaculo where cod = 34 } System.out.println (libres + asientos disponibles. + Cuántas entradas quiere? ); cant = entrada.readline( ); if (cant<= libres) #sql {update espectáculo set asientos = asientos - :cant where cod = 34}; else { } select nombre, saldo from cuenta natural join cliente where ciudad= Durango for update of Cuenta CONSTRAINT nombre-restricción [NOT] DEFERRABLE [INITIALLY [DEFERRED IMMEDIATE] ] Not Deferrable (No diferible) La comprobación de la restricción se realiza cada vez que se ejecuta una sentencia SQL en la transacción. Deferrable (Diferible) La comprobación de la restricción se puede diferir hasta el punto en el que se compromete la transacción initially deferred, initially immediate: Se indica cuándo se realizará la comprobación de las restricciones diferibles Initially immediate Se comprueba cada vezque se ejecutauna sentenciasql Reserva las cuentasde los clientes de Durango

11 Cambio de las definiciones de restricciones SET CONSTRAINTS [ALL murriztapen_izena {, urriztapen_izena}] [DEFERRED IMMEDIATE] En general las restricciones serán diferibles La comprobación de las restricciones diferidas se retrasa hasta que se haga explícito #sql {set immediate} o hasta comprometer la transacción. Al comprometer una transacción que tiene las restricciones diferidas, el sistema las pasa al estado immediate y se hacela comprobación. Si se viola una restricción, se termina la transacción (rollback) y se envía un mensaje de error Restricciones. Ejemplos #sql {insert into alumno values (23, )}; create table alumno( constraint matriculado check dni in (select dni from matricula) not deferrable) insert commit create table alumno( constraint matriculado check dni in (select dni from matricula) deferrableinitially immediate ) insert commit Restricciones. Ejemplos #sql {insert into alumno values (23, )}; create table alumno( constraint matriculado check dni in (select dni from matricula) deferrableinitially deferred ) insert commit insert set constraint immediate commit

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero Ingeniería Técnica en Informática Escuela Universitaria de Informática Universidad Politécnica de Madrid Asignatura: Administración de Bases de Datos Tema 5: Proceso de Transacciones Pedro P. Alarcón Cavero

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí

Más detalles

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 Manejo de Concurrencia en Mysql Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 InnoDB y TRANSACTION ISOLATION LEVEL... 3 Lecturas consistentes que no

Más detalles

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas. Vistas. El resultado de una consulta en el caso de SQL siempre es una tabla, ésta se puede hacer permanente dentro de la base de datos. En este caso se dice que esta tabla resultado es una vista o una

Más detalles

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

MySQL y Sesiones en PHP. Área de Ingeniería Telemática MySQL y Sesiones en PHP Contenido Repaso de SQL PHP y MySQL MySQL en PHP 2 Numéricos Standard: Repaso SQL: tipo de datos INTEGER o INT, SMALLINT, DECIMAL o DEC, NUMERIC FLOAT, REAL, DOUBLE PRECISION BIT

Más detalles

BASES DE DATOS curso 2002/3

BASES DE DATOS curso 2002/3 3º Ingeniero en Informática BASES DE DATOS curso 2002/3 Anexos del tema 14.- Control de la concurrencia Algunas notas interesantes acerca del significado y propósito de los niveles de aislamiento de transacciones

Más detalles

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ] SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

Manejo de Transacciones

Manejo de Transacciones Bases de Datos Transacciones 1 Manejo de Transacciones Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos Transacciones 2 Transacciones Hasta ahora el modelo de operación en la BD

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

JDBC. Una mini-introducci. introducción

JDBC. Una mini-introducci. introducción JDBC Una mini-introducci introducción Introducción JDBC (Java DataBase Connectivity) Protocolo para utilizar bases de datos relacionales desde Java Se basa en la utilización n de drivers que implementan

Más detalles

T12 Vistas y tablas temporales

T12 Vistas y tablas temporales 1 de 9 17/05/2013 14:01 Lecciones SQL > T12 Vistas y tablas temporales En esta sesión vamos a mostrar dos tipos de objetos de uso habitual en cualquier SGBD: las vistas y las tablas temporales. Mientras

Más detalles

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES Tema 6. CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES TRANSACCIONES Una transacción es una unidad lógica de trabajo o procesamiento (ejecución de un programa que incluye operaciones de acceso a la base de

Más detalles

Restricciones de Integridad

Restricciones de Integridad Restricciones de Integridad Amparo López Gaona México, D.F. Semestre 2000-I Restricciones de Integridad Las principales restricciones de integridad que pueden indicarse son: La clave primaria. Claves candidatas.

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

Bases de Datos Relacionales

Bases de Datos Relacionales 2da. Parte Bases de Datos Relacionales Objetivos de la Clase SQL. Tipos de sentencias SQL Describir los tipos de dato que se pueden utilizar al especificar la definición de columnas. Sentencias SQL Select.

Más detalles

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.

A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla. 4. TABLAS A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla. 4.1. Principales Elementos Al momento de generar y diseñar una tabla es importante

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

Laboratorio Informix. Stored Procedures Triggers

Laboratorio Informix. Stored Procedures Triggers Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Ejercicios: Administración de Bases de Datos en ORACLE

Ejercicios: Administración de Bases de Datos en ORACLE Ejercicios: Administración de Bases de Datos en ORACLE BDA-1 Arquitectura de ORACLE Ejercicios: 1. Si un usuario se conecta al SQL*Plus y realiza un UPDATE sobre la tabla Empleados. Qué proceso ejecuta

Más detalles

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM

Estructura de una BD Oracle. datafiles redo log controlfiles tablespace objetos Estructura lógica. Tablespaces tablespace SYSTEM Estructura de una BD Oracle. Una BD Oracle tiene una estructura física y una estructura lógica que se mantienen separadamente. La estructura física se corresponde a los ficheros del sistema operativo:

Más detalles

Bases de Datos / Elementos de Bases de Datos 2011. Que es un Stored Procedure? Stored Procedures: Ventajas

Bases de Datos / Elementos de Bases de Datos 2011. Que es un Stored Procedure? Stored Procedures: Ventajas Bases de Datos / Elementos de Bases de Datos 2011 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Que es un Stored

Más detalles

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en

Más detalles

Bases de Datos 2. Teórico

Bases de Datos 2. Teórico Bases de Datos 2 Teórico Structured Query Language (SQL) Características de SQL Standard Opera sobre conjuntos de tuplas: incluso para las operaciones de inserción, borrado y actualización. No elimina

Más detalles

Desarrollo Cobol/DB2

Desarrollo Cobol/DB2 Desarrollo Cobol/DB2 Preparación de programas Precompilador DB2 Toma los postulados SQL del programa fuente Revisa la sintaxis de SQL Crea un programa fuente traducido de las sentencias SQL Crea el DBRM

Más detalles

CONSULTAS BASICAS EN SQL SERVER

CONSULTAS BASICAS EN SQL SERVER CONSULTAS BASICAS EN SQL SERVER CONSULTAS DE SELECCION Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta

Más detalles

10. JDBC. 10. JDBC Introducción. java.sql

10. JDBC. 10. JDBC Introducción. java.sql 10 JDBC 287 10 JDBC Introducción javasql JDBC(Java DataBase Connectivity), consiste en un conjunto de clases e interfaces Java que permiten desarrollar aplicaciones de acceso a Bases de Datos JDBC envía

Más detalles

Oracle 12c DISEÑO Y PROGRAMACIÓN

Oracle 12c DISEÑO Y PROGRAMACIÓN Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo

Más detalles

Tema 33. El lenguaje SQL

Tema 33. El lenguaje SQL Tema 33. El lenguaje SQL Introducción... 1 Modos de uso... 2 Ejecución de las sentencias SQL... 2 Instrucciones DDL Data Definition Language-... 3 Instrucciones DML Data Manipulation Language-... 4 Instrucciones

Más detalles

Procedimientos para agrupar y resumir datos

Procedimientos para agrupar y resumir datos Procedimientos para agrupar y resumir datos Contenido Introducción Presentación de los primeros n valores Uso de funciones de agregado 4 Fundamentos de GROUP BY 8 Generación de valores de agregado dentro

Más detalles

Tema 6. Transacciones y seguridad

Tema 6. Transacciones y seguridad Tema 6. Transacciones y seguridad Las aplicaciones de bases de datos a gran escala, con bases de datos de gran tamaño y con cientos de usuarios concurrentes, como los sistemas de reservas, los bancos,

Más detalles

abacformacio@abacformacio.com 1

abacformacio@abacformacio.com 1 Cu Oracle 10gg Estudia el servidor de bases de datos Oracle 10g desde el punto de vista de un diseñador y programador de bases de datos, prestando atención a los objetos que puede crear, como tablas, consultas

Más detalles

Lenguaje para descripción de datos

Lenguaje para descripción de datos Amparo López Gaona tación Fac. Ciencias, UNAM Mayo 2012 Definición de Datos El lenguaje para definición de datos permite especificar: Esquema de cada relación. El dominio de cada atributo. Restricciones

Más detalles

CURSORES EN SQL SERVER

CURSORES EN SQL SERVER Año del Centenario de Machu Picchu para el mundo CURSORES EN SQL SERVER Curso: IMPLEMENTACION DE BASE DE DATOS VII Ciclo Integrantes: Vásquez Paredes, Pablo Bustamante Auccasi, Janett Córdova Farfán, Carlos

Más detalles

Práctica sobre compartición de instancias remotas.

Práctica sobre compartición de instancias remotas. Práctica sobre compartición de instancias remotas. Para esta práctica se ha construido un pequeño sistema cliente-servidor que permite la resolución de Sudokus entre varios jugadores. El servidor consta

Más detalles

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

CONSULTAS DE RESUMEN SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE CONSULTAS DE RESUMEN Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes

Más detalles

Base de datos Procedimientos Almacenados y Funciones

Base de datos Procedimientos Almacenados y Funciones Base de datos Procedimientos Almacenados y Eduardo Saavedra A. Universidad Nacional Andrés Bello 4 de noviembre de 2008 Contenidos Ventajas 1 Ventajas 2 3 4 5 Conceptos Ejemplo 6 Procedimiento Almacenado

Más detalles

Bases de datos relacionales y el modelo entidad-relación

Bases de datos relacionales y el modelo entidad-relación Bases de datos relacionales y el modelo entidad-relación Qué es una base de datos relacional? El sistema gestor de bases de datos El modelo entidad-relación entidad, atributos y elementos (tablas, columnas

Más detalles

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008 Base de Datos I SQL PROCEDURAL Triggers y Stored Procedures Ing. Gustavo A. Correa Reina UNCPBA 2008 SQL Procedural Posibilita el uso de código procedural conjuntamente con sentencias SQL que son almacenadas

Más detalles

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL

TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL 5.6 MODIFICACIÓN DE LA BASE DE DATOS SQL posee comandos destinados también para modificar la base de datos, entre estos se tienen operaciones de borrado,

Más detalles

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

Más detalles

Bases de Datos / Elementos de Bases de Datos 2015

Bases de Datos / Elementos de Bases de Datos 2015 Bases de Datos / Elementos de Bases de Datos 2015 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Stored Procedures

Más detalles

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL. GUIA DE LABORATORIO # 5 Nombre de la Practica: Manipulación de datos Lugar de ejecución: Centro de Computo MATERIA: Base de Datos II CICLO: 02-2012 I. OBJETIVOS ESPECIFICOS Qué el estudiante: Manipule

Más detalles

2.1 La interfaz de JDBC para el programador de aplicaciones... 3. 2.2 La interfaz JDBC para los controladores JDBC... 5

2.1 La interfaz de JDBC para el programador de aplicaciones... 3. 2.2 La interfaz JDBC para los controladores JDBC... 5 $SpQGLFH& &RQWURODGRUHV-'%& $%'& ( )+*-,/.1032/2465/(7%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%98 8:%;*-32)@0 *A.>BCEDGFH%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%3%EI

Más detalles

Java y MySQL. Ciclo de ejecución

Java y MySQL. Ciclo de ejecución Java y MySQL JDBC: Java DataBase Connectivity Cliente Servidor Aplicación Java Driver JDBC MySQL Conexión cliente-servidor MySQL Java Runtime Librerías JDBC El driver implementa las interfaces del paquete

Más detalles

SQL Los fundamentos del lenguaje

SQL Los fundamentos del lenguaje Introducción 1. Un poco de historia 11 2. Las normas SQL 12 3. Descripción rápida del modelo relacional 14 3.1 Principales conceptos del modelo relacional 15 3.2 Principales reglas 16 4. Los operadores

Más detalles

Introducción a los Sistemas de Gestión de Bases de Datos

Introducción a los Sistemas de Gestión de Bases de Datos a los Sistemas de Gestión de Bases de Datos Servicios y Aplicaciones Telemáticas gsyc-profes@gsyc.escet.urjc.es Noviembre de 2008 c 2008 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados.

Más detalles

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso 2010 2011. Cuatrimestre de otoño. 17 de Enero de 2011 1. (0,75 PUNTOS) Identificad a continuación las sentencias que son ciertas, descartando

Más detalles

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011

Structured Query Language (SQL) Fundamentos de Bases de Datos InCo - 2011 Structured Query Language () Fundamentos de Bases de Datos InCo - Un poco de historia Lenguajes de consulta relacionales: SEQUEL (IBM-1970) QUEL (Ingres-1970) QBE (IBM-1970) es el lenguaje comercial más

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

Dossier de prácticas

Dossier de prácticas Dossier de prácticas Intranet / Extranet Màster d Enginyeria del Software Desenvolupament d aplicacions sobre Internet Fundació Politècnica de Catalunya Jaume Moral Ros Albert Obiols Vives 1 Dossier de

Más detalles

Tema 4. Manipulación de datos con SQL

Tema 4. Manipulación de datos con SQL Tema 4 Manipulación de datos con SQL Índice Tema 4 1. Inserción de registros. Consultas de datos anexados. 2. Modificación de registros. Consultas de actualización. 3. Borrado de registros. Consultas de

Más detalles

Manual del Protocolo XML-RPC de Mensajería Negocios

Manual del Protocolo XML-RPC de Mensajería Negocios Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...

Más detalles

FACULTAD DE INGENIERÍA

FACULTAD DE INGENIERÍA NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Variables y Tipos de Datos PRÁCTICA NÚM. [ 1 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje

Más detalles

MANUALITO MS-SQL SERVER

MANUALITO MS-SQL SERVER MANUALITO MS-SQL SERVER Contenido 1. Crear Store Procedures en MS SQL Server... 1 2. Crear Triggers en MS SQL Server... 5 3. Crear Vistas en MS SQL Server... 9 1. Crear Store Procedures en MS SQL Server

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 8. Elementos Básicos FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 8. Elementos Básicos 1.- Ejemplo Introductorio. 2.- Dominios. 3.- Relaciones. 4.- Bases de Datos Relacionales. (Capítulo 11 del Date) EJEMPLO

Más detalles

Bases de Datos 3º Informática de Sistemas

Bases de Datos 3º Informática de Sistemas TEMA 2.- EL SISTEMA GESTOR DE BASES DE DATOS. Concepto y Funciones del SGBD. Lenguajes de los SGBD. Niveles de Abstracción. Arquitectura ANSI/SPARC. Componentes del SGBD. 1. Concepto y Funciones del SGBD.

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA LSC 2009-2 12001 Administración de Bases de Datos PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA

Más detalles

MANUAL DE USUARIO DESKTOP

MANUAL DE USUARIO DESKTOP 2013 TEM SOLUCIONES MANUAL DE USUARIO DESKTOP Usuario Desktop Tem Soluciones TABLA DE CONTENIDO INTRODUCCIÓN... 3 LOGIN... 4 Login... 4 PÁGINA DE BIENVENIDA... 4 ENVIAR SMS... 5 Solo SMS (Single SMS):...

Más detalles

TEMA 20: CONCEPTOS BÁSICOS DE SQL

TEMA 20: CONCEPTOS BÁSICOS DE SQL TEMA 20: CONCEPTOS BÁSICOS DE SQL OBJETIVOS DEL TEMA Introducción al lenguaje de consultas SQL. Para iniciar esta parte del curso se va a utilizar el programa SQLITE que es sencillo, multiplataforma y

Más detalles

Estructura de Bases de datos. Leonardo Víquez Acuña

Estructura de Bases de datos. Leonardo Víquez Acuña Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 9. Reglas de Integridad 1.- Introducción. 2.- Claves Primarias. 3.- Regla de Integridad de Entidades. 4.- Claves Ajenas. 5.- Regla de Integridad

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

Más detalles

Oracle básico (IV): Programación en PL/SQL

Oracle básico (IV): Programación en PL/SQL Oracle básico (IV): Programación en PL/SQL El lenguaje de programación de Oracle, llamado PL/SQL, es un lenguaje portable, procedural y de transacción muy potente y de fácil manejo, con las siguientes

Más detalles

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences

Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences Ejercicios - Persistencia en Android: proveedores de contenidos y SharedPreferences Índice 1 Compartir datos entre actividades con Shared Preferences (0.75 puntos)... 2 2 Actividad de preferencias (0.75

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

Modelo de Objetos Distribuidos

Modelo de Objetos Distribuidos Remote Method Invocation Modelo de Objetos Distribuidos Un objeto remoto es un objeto cuyos métodos pueden ser invocados desde otra máquina virtual de java, potencialmente en un host diferente. Modelo

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

Más detalles

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002

Bibliografía. Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002 SEGURIDAD 1 Bibliografía Fundamentos de Sistemas de Bases de Datos (3. edición) Elmasri, Navathe Addisson Wesley 2002 Índice Aspectos generales Gestión de usuarios creación modificación Gestión de perfiles

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Revista Electrónica Granma Ciencia. Vol.10, No.2, Mayo - Agosto de 2006 ISSN 1027-975X

Revista Electrónica Granma Ciencia. Vol.10, No.2, Mayo - Agosto de 2006 ISSN 1027-975X Revista Electrónica Granma Ciencia. Vol.10, No.2, Mayo - Agosto de 2006 ISSN 1027-975X TÍTULO: El Control de Transacciones como mecanismo de seguridad en Bases de Datos Oracle. AUTORES: Osmani Miranda

Más detalles

Oracle Database 10g: Taller de Administración I 1-2

Oracle Database 10g: Taller de Administración I 1-2 Oracle Database 10g: Taller de Administración I 1-2 Marco de gestión Hay tres componentes principales del marco de gestión de la BD Oracle: Labasededatosylainstanciaqueseestágestionando Un listener que

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

Repaso de las características más importantes de la programación Java y su adaptación a Android

Repaso de las características más importantes de la programación Java y su adaptación a Android Repaso de las características más importantes de la programación Java y su adaptación a Android 1. Entorno de programación en java 2. Variables y tipos de datos 3. Operaciones y operadores 4. Clases y

Más detalles

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus Iniciando con Oracle Índice de contenido Ingresando a Oracle...1 Cambiando Su Contraseña...1 Ingresando un Comando SQL en SQL*Plus...2 Saliendo de SQL*Plus...2 Consiguiendo Ayuda...2 Creación de una Tabla...3

Más detalles

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

BASE DE DATOS QUÉ ES UNA BASE DE DATOS? BASE DE DATOS BASE DE DATOS QUÉ ES UNA BASE DE DATOS? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Actualmente la mayoría de

Más detalles

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Uso de excepciones en Java

Uso de excepciones en Java Uso de excepciones en Java En Java, cuando se produce un error en un método, se lanza un objeto Throwable. Cualquier método que haya llamado al método puede capturar la excepción y tomar las medidas que

Más detalles

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Introducción a Java LSUB. 15 de enero de 2015 GSYC Introducción a LSUB GSYC 15 de enero de 2015 (cc) 2014 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial - SinObraDerivada

Más detalles

Entrarás a formar parte de nuestra bolsa de empleo a la que acuden las empresas en busca de nuestros alumnos.

Entrarás a formar parte de nuestra bolsa de empleo a la que acuden las empresas en busca de nuestros alumnos. CURSO PROFESIONAL DE TRANSACT-SQL MÁSTER EN DESARROLLO DE APLICACIONES WEB CON JAVA ENTERPRISE EDITION Precio: 450 Euros y Matrícula Gratis. Modalidad: Presencial en nuestras aulas. Valores añadidos: Nuestro

Más detalles

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL 1. Conexión con la Base de Datos: se debe realizar a partir de algún programa que implemente el protocolo SSH (Secure Shell), a partir

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

2. ESTUDIO DE INDICES

2. ESTUDIO DE INDICES Asignatura de Administración de Bases de Datos Curso 2011/2012 Pág. 1 PRÁCTICA DE ADMINISTRACIÓN DE BASES DE DATOS Una compañía de salud gestiona datos relativos a las consultas médicas a pacientes por

Más detalles

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas)

Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Base de Datos Oracle 10g: Introducción a SQL Código: D17216 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. En este

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11 Página 1 de 11 GUIA N 11 - DESARROLLO DE SOFTWARE A TRES CAPAS Objetivo: Desarrollar una aplicación de software con tres capas (Presentación Lógica Persistencia) donde se establezca una conexión con una

Más detalles

8 SQL SERVER 2008 RA-MA

8 SQL SERVER 2008 RA-MA ÍNDICE Capítulo 1. Características, novedades y entorno de trabajo... 17 1.1 Novedades en SQL Server 2008... 17 1.2 Instalación de Microsoft SQL Server 2008... 19 1.3 Versiones de Microsoft SQL Server

Más detalles

Capítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD)

Capítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD) Capítulo 1: Introducción a los Sistemas de Gestión de Bases de Datos (SGBD) Fernando Cano Espinosa Universidad de Oviedo. Departamento de Informática fcano@uniovi.es Produced with L A T E X seminar style

Más detalles

Procedimientos, Funciones, Trigger y Cursores en ORACLE

Procedimientos, Funciones, Trigger y Cursores en ORACLE Procedimientos, Funciones, Trigger y Cursores en ORACLE PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre que se

Más detalles

Referencia SQL en la versión de HUGOSQL White Paper por: HUGOSQL 2012

Referencia SQL en la versión de HUGOSQL White Paper por: HUGOSQL 2012 Referencia SQL en la versión de HUGOSQL White Paper por: HUGOSQL 2012 Audiencia Este documento va dirigido a desarrolladores, estudiantes universitarios y usuarios de SQL que tengan conocimiento básico

Más detalles

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl Resumen demandas de almacenamiento y procesamiento de datos. Es el conjunto de estas dos capacidades

Más detalles

8. Sentencia return y métodos

8. Sentencia return y métodos 92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL ESCUELA COLOMBIANA DE INGENIERÍA JULIO GARAVITO LABORATORIO DE INFORMÁTICA BOGOTÁ D. C. 2007-2 TABLA DE CONTENIDO INTRODUCCIÓN... 3 1. COMANDOS... 4 1.1 Comandos DLL... 4

Más detalles

Transacciones, Recuperación y Control de Concurrencia

Transacciones, Recuperación y Control de Concurrencia Transacciones, Recuperación y Control de Concurrencia Diseño de Bases de Datos Relacionales Curso 2011/2012 Sergio Ilarri silarri@unizar.es Transacciones (I) Transacción Secuencia de operaciones que deben

Más detalles