Yungán geovanny bdii_t7

5
= ESCUELA DE: Informática Aplicada A La Educación NOMBRE: Franklin Geovanny Yungán Gualli DOCENTE: Leonardo Ayavaca SEXTO: Semestre “A” RIOBAMBA- ECUADOR

Transcript of Yungán geovanny bdii_t7

Page 1: Yungán geovanny bdii_t7

=

ESCUELA DE: Informática Aplicada A La Educación

NOMBRE: Franklin Geovanny Yungán Gualli

DOCENTE: Leonardo Ayavaca

SEXTO: Semestre “A”

RIOBAMBA- ECUADOR

Page 2: Yungán geovanny bdii_t7

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.

Page 3: Yungán geovanny bdii_t7

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).

Page 4: Yungán geovanny bdii_t7

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

Page 5: Yungán geovanny bdii_t7

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.