la unidad de s sesion edussssssssssssssscacio fisca
Yungán geovanny bdii_t7
1. =
ESCUELA DE: Informática Aplicada A La Educación
NOMBRE: Franklin Geovanny Yungán Gualli
DOCENTE: Leonardo Ayavaca
SEXTO: Semestre “A”
RIOBAMBA- ECUADOR
2. SENTENCIAS DE CONTROL
Un programa es una sucesión de sentencias que son ejecutadas secuencialmente. Las primeras
tres son asignaciones, y la última es una llamada a función. Al ejecutar el programa, cada una de
estas sentencias es ejecutada, una después de la otra, una sola vez.
Además de las sentencias simples, que son ejecutadas en secuencia, existen las sentencias de
control que permiten modificar el flujo del programa introduciendo ciclos y condicionales.
Un condicional es un conjunto de sentencias que pueden o no ejecutarse, dependiendo del
resultado de una condición. Un ciclo es un conjunto de sentencias que son ejecutadas varias veces,
hasta que una condición de término es satisfecha. Tanto los condicionales como los ciclos
contienen a otras sentencias. Para indicar esta relación se utiliza la indotación: las sentencias
contenidas no se escriben en la misma columna que la sentencia de control, sino un poco más a
la derecha:
LAS TRANSACCIONES
El soporte de transacciones que provee DB no es algo nuevo el soporte para este tipo de tablas es
habilitado por default. Las transacciones aportan una fiabilidad superior a las bases de datos. Si
disponemos de una serie de consultas SQL que deben ejecutarse en conjunto, con el uso de
transacciones podemos tener la certeza de que nunca nos quedaremos a medio camino de su
ejecución. De hecho, podríamos decir que las transacciones aportan una característica de
“deshacer” a las aplicaciones de bases de datos.
Para este fin, las tablas que soportan transacciones, como es el caso de InnoDB, son mucho más
seguras y fáciles de recuperar si se produce algún fallo en el servidor, ya que las consultas se
ejecutan o no en su totalidad. Por otra parte, las transacciones pueden hacer que las consultas
tarden más tiempo en ejecutarse.
Además de todo lo anterior, debemos establecer una serie de mecanismos de control para resolver
problemas de concurrencia por un lado (transacciones) y garantizar la seguridad por otro
(autorizaciones). Una transacción es una unidad lógica y atómica de trabajo; es decir, es un
conjunto de sentencias que se ejecutan como si fuesen una sola. Para iniciar una transacción se
utiliza la cláusula SET TRANSACTION y para finalizarla COMMIT (confirma todos los cambios
producidos) o ROLLBACK (deshace todos los cambios desde el inicio de la transacción)
Comandos utilizados para el control de transacciones. (Rafael Camps Paré, Febrero, 2014)
Commit: Este comando da por concluida la transacción actual y hace definitivos los cambios
realizados liberando las filas bloqueadas. Sólo después de que se ejecute commit tendremos
acceso a los datos modificados.
Rollback: Este comando da por concluida la transacción actual y deshace los cambios que se
pudiesen haber producido en la misma, liberando las filas bloqueadas. Se utiliza especialmente
cuando no se puede concluir una transacción porque se han levantado excepciones.
Savepoint: Se utiliza para poner marcas o puntos de salvaguarda al procesar transacciones. Se
utiliza junto con rollback permitiendo deshacer cambios hasta los savepoint. El número de
savepoint está limitado a 5 por sesión pero lo podemos modificar con la siguiente
sentencia:savepoint numero;
Rollback implícito: Este comando se ejecuta cuando un programa almacenado (procedimiento o
función) falla y no se controla la excepción que produjo el fallo. Pero si en el programa tenemos
un commit estos cambios no serán deshechos.
3. Rollback to: Deshace el trabajo realizado después del punto indicado. Pero no se confirma el
trabajo hecho hasta el savepoint. La transacción no finaliza hasta que se ejecuta un comando de
control de transacciones o hasta que finaliza la sesión. (Elmasri, 2002)
AUTORIZACIÓN Y DESAUTORIZACIÓN
AUTORIZACIÓN
Las autorizaciones se llevan a cabo con la sentencia: grant privilegios on objeto to usuarios [with
grant option] donde privilegios puede ser sustituido por all privileges (todos los privilegios), usage
(según el objeto), select (consultas), insert [columnas] (inserción de según qué columna), update,
delete, references. Los objetos pueden ser un dominio, una tabla o una vista; y por fin, los usuarios
pueden ser todos (public) o una lista de identificadores de usuario. Asimismo, se puede utilizar la
opción with grant option, que permite al usuario autorizado a autorizar a otros usuarios con los
mismos privilegios que él ha sido autorizado. Para autorizar, el sql dispone de la siguiente
sentencia:
a) privilegios puede ser:
• ALL PRIVILEGES: todos los privilegios
sobre el objeto especificado.
• USAGE: utilización del objeto
especificado; en este caso el dominio.
• UPDATE [(columnas)]: modificaciones.
Se puede concretar de qué columnas.
• REFERENCES [(columna)]: referencia del
objeto en restricciones de integridad. Se puede
concretar de qué columnas.
c) Usuarios puede ser todo el
mundo: PUBLIC, o bien una lista de los
identificadores de los usuarios que queremos
autorizar.
b) Objeto debe ser:
• DOMAIN: dominio
• TABLE: tabla.
• Vista.
D) La opción WITH GRANT
OPTION permite que el usuario que
autoricemos pueda, a su vez, autorizar a otros
usuarios a acceder al objeto con los mismos
privilegios con los que ha sido autorizado.
DESAUTORIZACIÓN
Para desautorizar la orden utilizada es revoke:[grant option for] privil on objeto to usuarios
[restrict|cascade] la opción restrict no nos permite desautorizar a un usuario si éste ha autorizado
a otros y la opción cascada sí, y además hace que queden todos desautorizados a la vez. Para
desautorizar, el SQL dispone de la siguiente sentencia:
a) privilegios, objeto y usuarios son los mismos que para la sentencia grant.
b) la opción grant option for se utilizaría en el caso de que quisiéramos eliminar el derecho
a autorizar (with grant option).
4. c) si un usuario al que hemos autorizado ha autorizado a su vez a otros, que al mismo tiempo
pueden haber hecho más autorizaciones, la opción cascade hace que queden
desautorizados todos a la vez.
d) la opción restrict no nos permite desautorizar a un usuario si éste ha autorizado a otros.
(Elmasri, 2002)
SUBLENGUAJES ESPECIALIZADOS
Los sublenguajes son un tipo de variante lingüística que ha cobrado gran importancia en las
últimas décadas debido, en primer lugar, a las múltiples dificultades en el tratamiento
informatizado de las lenguas generales y, en segundo lugar, a su propio interés objetivo en el
mundo científico y profesional de hoy. Todo ello ha conducido a la identificación de variantes
lingüísticas temáticas y a la adopción de líneas de investigación.
SQL HOSPEDADO - EJEMPLO EN PHP
Para crear y manipular una base de datos relacional necesitamos SQL. Además, si la tarea que
queremos hacer requiere el poder de procesamiento de un lenguaje de programación como Java,
C, Cobol, Fortran, Pascal, etc., podemos utilizar el SQL hospedado en el lenguaje de
programación elegido. De este modo, podemos utilizar las sentencias del SQL dentro de nuestras
aplicaciones, poniendo siempre delante la palabra reservada EXEC SQL*. Para poder compilar
la mezcla de llamadas de SQL y sentencias de programación, antes tenemos que utilizar un pre
compilador. Un pre compilador es una herramienta que separa las sentencias del SQL y las
sentencias de programación. Allá donde en el programa fuente haya una sentencia de acceso a la
base de datos, se debe insertar una llamada a la interfaz del SGBD. El programa fuente resultante
de la pre compilación ya está únicamente en el lenguaje de programación, preparado para ser
compilado, montado y ejecutado. En la figura que encontraréis en la página siguiente podéis
observar este funcionamiento. (Sanjuán2, junio 2007)
LAS SQL/CLI
Las SQL/CLI (SQL/Call-Level Interface), denominadas de forma abreviada CLI, permiten que
aplicaciones desarrolladas en un cierto lenguaje de programación (con sólo las herramientas
5. disponibles para este lenguaje y sin el uso de un pre compilador) puedan incluir sentencias SQL
mediante llamadas a librerías. Estas sentencias SQL se deben interpretar en tiempo de ejecución
del programa, a diferencia del SQL hospedado, que requería el uso de un pre compilador. La
interfaz ODBC (Open Database Connectivity) define una librería de funciones que permite a las
aplicaciones acceder al SGBD utilizando el SQL. Las rutinas SQL/CLI están fuertemente basadas
en las características de la interfaz ODBC, y gracias al trabajo desarrollado por SAG-X/Open
(SQL Access Group-X/Open), fueron añadidas al estándar ANSI/ISO SQL92 en 1995.
Las SQL/CLI son simplemente rutinas que llaman al SGBD para interpretar las sentencias SQL
que pide la aplicación. Desde el punto de vista del SGBD, las SQL/CLI se pueden considerar,
simplemente, como otras aplicaciones. (Escofet)
Bibliografía
Elmasri, R. N. (2002). Fundamentos de sistemas de bases de datos II (Vol. III). (B. G. Espiga, Ed.)
Addison-Wesley: Cavial.
Escofet, C. M. (s.f.). El lenguaje SQL (Vol. I). UOC.
Rafael Camps Paré, X. F. (Febrero, 2014). Base de datos I (Vol. I). (D. C. Carme Martín Escofet,
Ed.) California, Barcelona: UOC.
Sanjuán2, V. L. (junio 2007). SUBLENGUAJES Y LENGUAS DE FINES ESPECÍFICOS. Odisea.