viernes, 4 de noviembre de 2016

LENGUAJE TRANSACT-SQL




“AÑO DE LA CONSOLIDACIÓN DEL MAR DE GRAU”
FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICA PROFESIONAL DE INGENIERÍA DE SISTEMAS Y TELEMÁTICA
LENGUAJE DE PROGRAMACIÓN II
“TRABAJO DE INVESIGACIÓN”
LENGUAJE TRANSACT-SQL

AUTORES
MARCHENA HUANUIRE, Greinder Alexis
VASQUEZ VENTURA, Liz Evelin

DOCENTE
PORRO CHULLI, Marco Aurelio

BAGUA GRANDE - AMAZONAS
2016





LENGUAJE TRANSACT-SQL


DEFINICIÓN

Transact-SQL (T-SQL) es una extensión al SQL de Microsoft y Sybase. SQL, que frecuentemente se dice ser un Lenguaje de Búsquedas Estructurado (por sus siglas en inglés), es un lenguaje de cómputo estandarizado, desarrollado originalmente por IBM para realizar búsquedas, alterar y definir bases de datos relacionales utilizando sentencias declarativas. T-SQL expande el estándar de SQL para incluir programación procedural, variables locales, varias funciones de soporte para procesamiento de strings, procesamiento de fechas, matemáticas, etc., y cambios a las sentencias DELETE y UPDATE. Estas características adicionales hacen de T-SQL un lenguaje que cumple con las características de un autómata de Turing.

TRANSACT-SQL es un lenguaje muy potente que nos permite definir casi cualquier tarea que queramos efectuar sobre la base de datos; incluye características propias de cualquier lenguaje de programación características que nos permiten definir la lógica necesaria para el tratamiento de la información:

·         Tipos de datos.
·         Definición de variables.
·         Estructuras de control de flujo.
·         Gestión de excepciones.
·         Funciones predefinidas.

Sin embargo no nos permite:

·         Crear interfaces de usuario.
·         Crear aplicaciones ejecutables, sino elementos que en algún momento llegarán al servidor de datos y serán ejecutados.

Debido a estas restricciones se emplea generalmente para crear procedimientos almacenados, triggers y funciones de usuario.
Puede ser utilizado como cualquier SQL como lenguaje embebido en aplicaciones desarrolladas en otros lenguajes de programación como Visual Basic, C, Java, etc. Y por supuesto los lenguajes incluidos en la plataforma .NET.
También lo podremos ejecutar directamente de manera interactiva, por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio).


CARACTERÍSTICAS GENERALES

El lenguaje SQL se creó con la finalidad de ser un lenguaje muy potente y a la vez muy fácil de utilizar, se ha conseguido en gran medida ya que con una sola frase (instrucción) podemos recuperar datos complejos (por ejemplo datos que se encuentran en varias tablas, combinándolos, calculando resúmenes), y utilizando un lenguaje muy cercano al lenguaje hablado.
Por ejemplo:

SELECT codigo, nombre FROM Clientes WHERE localidad=’Valencia’;

Esta instrucción nos permite SELECCIONAR el código y nombre DE los Clientes CUYA localidad sea Valencia.

La sencillez también radica en que lo que indicamos es lo que queremos obtener, no el cómo lo tenemos que obtener, de eso se encargará el sistema automáticamente.

Las sentencias SQL además siguen todas el mismo patrón:

·         Empiezan por un verbo que indica la acción a realizar,
·         Completado por el objeto sobre el cual queremos realizar la acción,
·         seguido de una serie de cláusulas (unas obligatorias, otras opcionales) que completan la frase, y proporcionan más detalles acerca de lo que se quiere hacer.

Si sabemos algo de inglés nos será más fácil interpretar a la primera lo que quiere decir la instrucción, y de lo contrario, como el número de palabras que se emplean es muy reducido, enseguida nos las aprenderemos.
 Por ejemplo en el DDL (acciones sobre la definición de la base de datos), tenemos 3 verbos básicos:
  • CREATE (Crear)
  • DROP (Eliminar)
  • ALTER (Modificar)

Completados por el tipo de objeto sobre el que actúan y el objeto concreto:

v  CREATE DATABASE mibase.......;

Permite crear una base de datos llamada mibase, a continuación escribiremos las demás cláusulas que completarán la acción, en este caso dónde se almacenará la base de datos, cuánto ocupará, etc...

v  CREATE TABLE mitabla (.....);

Permite crear una nueva tabla llamada mitabla, entre paréntesis completaremos la acción indicando la definición de las columnas de la tabla.

v  CREATE INDEX miindex...;

Lo mismo para crear un índice.

v  DROP DATABASE  mibase;

Permite borrar, eliminar la base de datos mibase.

v  DROP TABLE mitabla;

Elimina la tabla mitabla.

v  ALTER TABLE mitabla.....;

Permite modificar la definición de la tabla mitabla.

 En el DML (acciones sobre los datos almacenados) utilizaremos los verbos:

v  INSERT (Crear, es decir, insertar una nueva fila de datos)
v  DELETE (Eliminar filas de datos)
v  UPDATE (Modificar filas de datos)
v  SELECT (Seleccionar, obtener)

Por ejemplo:

INSERT INTO mitabla ..... Inserta nuevas filas en mitabla
DELETE FROM mitabla Eliminar filas de mitabla
UPDATE mitabla ....... Actualiza filas de mitabla

Como ejemplo de cláusula dentro de una instrucción tenemos:

SELECT codigo, nombre
FROM Clientes
WHERE localidad=’Valencia’;

En esta sentencia nos aparecen dos cláusulas, la cláusula FROM que nos permite indicar de dónde hay que coger los datos y la cláusula WHERE que permite indicar una condición de selección.

Otra característica de una sentencia SQL es que acaba con un punto y coma (;) originalmente éste era obligatorio y servía para indicar el fin de la instrucción, pero ahora se puede omitir, aunque se recomienda su uso.
En una sentencia utilizaremos palabras reservadas (las fijas del lenguaje), y nombres de objetos y variables (identificadores).

Las palabras reservadas no se pueden utilizar para otro propósito, por ejemplo una tabla no se puede llamar FROM, y los nombres (los identificadores) siguen las reglas detalladas en el punto siguiente.
 Nombres cualificados. En ocasiones deberemos utilizar nombres cualificados, por ejemplo cuando se escribe un nombre de tabla, SQL presupone que se está refiriendo a una de las tablas de la base de datos activa, si queremos hacer referencia a una tabla de otra base de datos utilizamos su nombre cualificado nombrebasedatos.nombredeesquema.nombretabla, utilizamos el punto para separar el nombre del objeto y el nombre de su contenedor.

O por ejemplo si en una consulta cuyo origen son dos tablas, queremos hacer referencia a un campo y ese nombre de campo es un nombre de campo en las dos tablas, pues utilizaremos su nombre cualificado nombretabla.nombrecampo.

 El valor NULL.

Puesto que una base de datos es un modelo de una situación del mundo real, ciertos datos pueden inevitablemente faltar, ser desconocidos o no ser aplicables, esto se debe de indicar de alguna manera especial para no confundirlo con un valor conocido pero que sea cero por ejemplo, SQL tiene para tal efecto el valor NULL que indica precisamente la ausencia de valor.
Por ejemplo: no es lo mismo que el alumno no tenga nota a que tenga la nota cero, esto afectaría también a todos los cálculos que se pueden realizar sobre la  columna nota.


COMANDOS

1. DDL (Data Definition Language) Lenguaje de definición de datos: Es un vocabulario utilizado para definir estructuras de datos en SQL Server 2016. El uso de estas declaraciones para crear, modificar o quitar las estructuras de datos en una instancia de SQL Server.

CREATE

SQL Server Transact-SQL contiene las siguientes instrucciones CREATE. Utilice sentencias CREATE para definir nuevas entidades. Por ejemplo, utilice CREATE TABLE para añadir una nueva tabla a una base de datos.

ALTER

SQL Server Transact-SQL contiene las siguientes instrucciones ALTER. Utilice las instrucciones ALTER para modificar la definición de las entidades existentes. Por ejemplo, utilizar ALTER TABLE para añadir una nueva columna a una tabla o utilice ALTER DATABASE para establecer las opciones de base de datos.

DROP

SQL Server Transact-SQL contiene las siguientes instrucciones DROP. Utilice DROP para eliminar las entidades existentes. Por ejemplo, usar DROP TABLE para eliminar una tabla de una base de datos.

2. DML (Lenguaje de manipulación de datos) Es un vocabulario usado para recuperar y trabajar con datos en SQL Server 2016. Use estas instrucciones para agregar, modificar, consultar o quitar datos de una base de datos de SQL Server.

INSERT

Agrega una o varias filas a una tabla o una vista en SQL Server.

UPDATE

Cambia los datos de una tabla o vista de SQL Server.

DELETE

Quita una o varias filas de una tabla o vista de SQL Server.

SELECT

Recupera filas de la base de datos y habilita la selección de una o varias filas o columnas de una o varias tablas en SQL Server.

3. DCL (Data Control Language) Es el lenguaje de control de datos, que incluye una serie de comandos que permiten al administrador controlar el acceso a los datos contenidos en la base de datos.

DENY

Deniega los permisos sobre los objetos de la base de datos. Este es la orden que siempre prevalece.

GRANT

Permite a un usuario trabajar con los datos o ejecutar determinadas instrucciones Transact - SQL.

4. DTL (Lenguaje de transacción de datos) Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica. Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado. Una transacción debe contar con ACID (un acrónimo inglés) que quiere decir: Atomicidad, Consistencia, Aislamiento y Durabilidad. Entonces para que un Sistema de Gestión de Bases de Datos sea considerado Transaccional, debe cumplir con estos criterios (ACID). Para esto, el lenguaje de consulta de datos SQL (Structured Query Language), provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción.

COMMIT

Le indica al motor que puede considerar la transacción completada con éxito. Marca el final de una transacción implícita o explícita éxito. Si @@ TRANCOUNT es 1, COMMIT TRANSACTION hace que todas las modificaciones de datos realizadas desde el inicio de la operación en una parte permanente de la base de datos, libera los recursos en poder de la transacción, y decrementos @@ TRANCOUNT a 0. Si @@ TRANCOUNT es mayor que 1, confirmar la transacción disminuye @@ TRANCOUNT solamente por 1 y la transacción se mantiene activo.

ROLLBACK

Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.
Es una transacción explícita o implícita al principio de la transacción, o a un punto de almacenamiento dentro de la transacción. Puede usar ROLLBACK TRANSACTION para borrar todas las modificaciones de datos realizadas desde el inicio de la operación o de un punto de salvaguarda. También libera recursos en poder de la transacción. 


RESUMEN

En este trabajo de investigación hemos presentado los comandos más utilizadas del lenguaje Transact-SQL.
Como ya comentamos el Lenguaje Transact-SQL es fundamental para trabajar con SQL Server. Todas las aplicaciones que se comunican con SQL Server lo hacen enviando instrucciones Transact-SQL al servidor, independientemente de la interfaz de la aplicación.
Nos ayuda a definir tareas mientras trabajamos con base de datos, debido a que este lenguaje tiene algunas restricciones en el propio lenguaje, casi siempre lo utilizamos en la creación de los procedimientos almacenados, funciones de usuario y también en los triggers.


SUMMARY

In this research we have presented the most used of Transact-SQL language commands.
As we discussed Transact-SQL Language is essential to work with SQL Server. All applications that communicate with SQL Server do by sending Transact-SQL statements to the server, regardless of the application interface.
It helps us to define tasks while working with database, because this language has some restrictions on the language itself, almost always used in creating stored procedures, user roles and also in triggers.


RECOMENDACIONES 

·         No use la cláusula into nombre de tabla (“SELECT… INTO”). Esto bloqueará mientras se ejecuta la consulta las tablas del sistema. En su lugar cree primero las tablas y luego re-escribe la sentencia como INSERT INTO tabla_name SELECT.
·         Consta de instrucciones Transact-SQL que pueden ejecutarse para crear índices nuevos y más eficaces o para eliminar aquellos que ya no son efectivos.
·         No usar funciones sobre columnas que están en el Where dado que SQL no tiene índices basados en funciones por lo que tendría que recorrer toda la tabla.


CONCLUSIONES

·         El Lenguaje Transact-SQL es un lenguaje muy utilizado para controlar, definir y acceder a los datos almacenados de una base de datos.
·         El Lenguaje Transact-SQL es un lenguaje universal que se emplea en cualquier sistema gestor e base de datos.
·         El Lenguaje Transact-SQL es un lenguaje muy potente que nos ayuda a definir tareas mientras trabajamos con bases de datos.


APRECIACION DEL EQUIPO

Como equipo de trabajo damos nuestra apreciación sobre el tema:
El lenguaje Transact-SQL suma una gran importancia ya que con esto podemos entender claramente lo que es manejo de la información y además teniendo en cuenta que es el lenguaje mejor pagado en el mercado laboral y es fácilmente adaptarse a otros (SGBD) Sistema de Gestión de Bases de Datos como ORACLE, MYSQL, etc.


GLOSARIO

  • IBM: International Business Machines, es una reconocida empresa multinacional estadounidense de tecnología y consultoría con sede en Armonk, Nueva York.
  • STRING: Es un tipo de datos inmutable. Esto significa que una vez que uno ha creado un string, uno no puede cambiar su valor. Es por esto que todas las operaciones que uno efectúa sobre un string crean strings nuevos, y no modifican el original.
  • TRIGGERS: También llamados disparadores son objetos que se asocian con tablas y se almacenan en la base de datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya que se ejecutan cuando sucede algún evento sobre las tablas a las que se encuentra asociado.
  • ACID: Es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español.


REFERENCIAS

aulaclic. (Febrero de 2010). aulaclic. Obtenido de aulaclic: http://www.aulaclic.es/sqlserver/t_2_2.htm
Diaz, R. (06 de marzo de 2014 ). robertodiazg.blogspot.pe. Obtenido de robertodiazg.blogspot.pe: http://robertodiazg.blogspot.pe/2014/03/sentencias-sql-ddl-dml-dcl-y-tcl.html
Gutirrez, J. (s.f). dryvalleycomputer.com. Obtenido de dryvalleycomputer.com: http://dryvalleycomputer.com/index.php/bases-de-datos/mysql/111-dcl-lenguaje-de-control-de-datos
HE_JIA_YUAN. (9 de September de 2016). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/en-us/library/ms190295.aspx
Kutedragon11761. (17 de 10 de 2016). microsoft. Obtenido de microsoft: https://msdn.microsoft.com/en-us/library/ff848799.aspx
microsoft. (2 de Mayo de 2016). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/en-us/library/cc879259.aspx
microsoft. (2 de Mayo de 2016). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/en-us/library/cc879314.aspx
microsoft. (2 de Mayo de 2016). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/en-us/library/cc879262.aspx
microsoft. (10 de Junio de 2016). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/en-us/library/ms181299.aspx
microsoft. (s.f). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/es-es/library/ms189835.aspx
microsoft. (s.f). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/es-es/library/ms177523.aspx
microsoft. (s.f). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/es-es/library/ff848766.aspx
microsoft. (s.f). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/es-es/library/ms174335.aspx
microsoft. (s.f). microsoft.com. Obtenido de microsoft.com: https://msdn.microsoft.com/es-es/library/ms189499.aspx
mitecnologico. (s.f). mitecnologico.com. Obtenido de mitecnologico.com: http://mitecnologico.com/Main/LenguajeDeControlDeDatos
wikipedia. (17 de Octubre de 2016). wikipedia. Obtenido de wikipedia: https://es.wikipedia.org/wiki/Transact-SQL
wikipedia. ( 8 de junio de 2016). wikipedia. Obtenido de wikipedia: https://es.wikipedia.org/wiki/Transacci%C3%B3n_(base_de_datos)

Link para las diapositivas:



VÍDEOS 






















2 comentarios:

  1. Agregar VIDEO sobre el TEMA:Buena PRESENTACION. Se recomienda ILUSTRAR el TEMA. Gracias por su investigación y aporte. Saludos

    ResponderEliminar
    Respuestas
    1. Ingeniero voy a subir un vídeo mediante Youtube y poner el link en este blogg

      Eliminar