Vous êtes sur la page 1sur 37

Instituto Politécnico Nacional

“La Técnica al Servicio de la Patria”

Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías


Avanzadas

Primer Departamental

Presentación, Ejercicios, Tareas y Cierre

09/Septiembre/2018

ALUMNA:

INGRID ALITZEL SÁNCHEZ ELGUEA

PROFESOR:

JUAN CARLOS RAZO RUIZ


ÍNDICE

TAREAS ................................................................................................................................................ 3
TAREA NO. 1 ................................................................................................................................... 3
Presentación 1, concepto de Dato .............................................................................................. 4
Presentación 1, concepto de Información .................................................................................. 4
Presentación 1, concepto de Modelo Relacional ........................................................................ 4
Presentación 1, concepto de Database (Base de Datos)............................................................. 5
Presentación 1, concepto de DBMS (Sistema Manejador de Base de Datos) ............................ 5
Presentación 1, concepto de RDBMS .......................................................................................... 6
Presentación 1, concepto de Field (Campo) ............................................................................... 6
Presentación 1, concepto de Table (Tabla) ................................................................................. 6
Presentación 1, concepto de Index (Índice) ................................................................................ 7
Presentación 1, concepto de View (Vista)................................................................................... 7
Presentación 1, concepto de Register (Regístro) ........................................................................ 8
Presentación 1, concepto de SQL (Structured Query Language) ................................................ 8
Presentación 1, concepto de Query (Consulta) .......................................................................... 9
Presentación 1, concepto de Stored Procedure (Procedimiento Almacenado) ......................... 9
Presentación 1, concepto de Trigger (Disparador) ..................................................................... 9
Presentación 1, concepto de Transaction (Transacción) .......................................................... 10
Presentación 1, concepto de Job (Tarea) .................................................................................. 10
Presentación 1, concepto de Base de Datos Centralizada [16]................................................. 10
Presentación 1, concepto de Base de Datos Distribuida [16] ................................................... 11
TAREA NO.2 .................................................................................................................................. 12
TAREA NO.3 .................................................................................................................................. 16
EJERCICIOS......................................................................................................................................... 18
Presentación 2, concepto de DDL (Data Definition Language) ..................................................... 18
Presentación 2, concepto de DML (Data Manipulation Language) .............................................. 18
Presentación 2, concepto de DSL (Data Security Language) ......................................................... 19
Presentación 2, concepto de Create [22] ...................................................................................... 19
Presentación 2, concepto de Drop [22] ........................................................................................ 20
Presentación 2, concepto de Delete [22] ...................................................................................... 20
Presentación 2, concepto de Grant [22] ....................................................................................... 20
Presentación 2, concepto de Revoke [23]..................................................................................... 21
Presentación 2, concepto de Select [24] ....................................................................................... 22
Selección de todas las columnas de una tabla ................................................................ 22
Ejemplos ..................................................................................................................................... 22
Presentación 2, concepto de Join [22] .......................................................................................... 23
Cosultas mediante JOIN ..................................................................................................... 23
Presentación 2, concepto de Where [22] ..................................................................................... 25
Presentación 2, concepto de Order By [22] .................................................................................. 25
Presentación 2, concepto de Group By [22] ................................................................................. 26
Presentación 2, concepto de Insert [22] ....................................................................................... 26
Presentación 2, concepto de Select… Into [22]............................................................................. 27
Presentación 2, concepto de Insert… Into [22] ............................................................................. 28
SCRIPTS .......................................................................................................................................... 29
"Presentación 2, Creación Equinox, Script 1" hasta Script 4 ......................................................... 29
"Presentación 2, Creación Equinox, Script 1" hasta Script 15 ....................................................... 30
CIERRE ............................................................................................................................................... 35
CONCLUSIONES ............................................................................................................................. 35
REFERENCIAS ................................................................................................................................. 35

TAREAS

TAREA NO. 1

En base a la discusión en clase haga una definición propia de los conceptos fundamentales de las
bases de datos descritos en el tópico anterior: "Repaso de Conceptos de Bases de Datos", slides 2 y
3.

La entrega es en formato PDF (Cualquier otro formato no será calificado), con caratula y calidad
ortográfica anexando este primer ejercicio al portafolio de tareas que se entregará en el primer
parcial
Presentación 1, concepto de Dato

En informática, los datos son representaciones simbólicas (vale decir: numéricas, alfabéticas,
algorítmicas, etc.) de un determinado atributo o variable cualitativa o cuantitativa, o sea: la
descripción codificada de un hecho empírico, un suceso, una entidad. Los datos son, así, la
información (valores o referentes) que recibe el computador a través de distintos medios, y que es
manipulada mediante el procesamiento de los algoritmos de programación. Su contenido puede ser
prácticamente cualquiera: estadísticas, números, descriptores, que por separado no tienen
relevancia para los usuarios del sistema, pero que en conjunto pueden ser interpretados para
obtener una información completa y específica.

En los lenguajes de programación, empleados para crear y organizar los algoritmos que todo sistema
informático o computacional persigue, los datos son la expresión de las características puntuales de
las entidades sobre las cuales operan dichos algoritmos. Es decir, son el input inicial, a partir del cual
puede procesarse y componerse la información. Son particularmente importantes para la estructura
de datos, rama de la computación que estudia la forma particular de almacenaje de la información
en porciones mínimas para lograr una posterior recuperación eficiente. [1]

Presentación 1, concepto de Información

La información está definida como una serie de datos con significado, que organiza el pensamiento
de los seres vivos, en especial el de los seres humanos. En sentido general, la información es un
grupo organizado de datos procesados que integran un mensaje sobre un determinado ente o
fenómeno; permitiendo que el hombre adquiera el conocimiento necesario para la toma de
decisiones en su vida cotidiana. [2]

La información se caracteriza por:

 Los datos: se refiere a toda la información recopilada y codificada, para poder ser archivada
y guardada.
 El orden: para que la información tenga sentido es necesario que este ordenada.
 La veracidad: para que la información sea válida, es necesario que provengan de fuentes
veraces.
 Valor: se refiere a la utilidad de la información para el destinatario

Presentación 1, concepto de Modelo Relacional

El modelo relacional es la representación lógica del esquema entidad-relación. Este es el modelo de


bases de datos más utilizado en la actualidad para modelar problemas reales y administrar datos
dinámicamente. Su idea fundamental se basa en el concepto de tablas, que a su vez se componen
de registros (las filas de una tabla) y campos (las columnas de una tabla). La aparición del artículo
de Codd sobre los SGBD relacionales supuso en la práctica la proposición de un nuevo modelo de
datos basado en la teoría de las relaciones, donde los datos se estructuran lógicamente en forma
de relaciones (tablas), siendo el objetivo fundamental del modelo mantener la independencia de
esta estructura lógica respecto al modo de almacenamiento y a cualquier otra característica de tipo
físico. [3]

El modelo propuesto por Codd presentaba los siguientes objetivos:

• Independencia física. El modo en que se almacenan los datos no debe influir en su manipulación
lógica y, por tanto, los usuarios que acceden a los datos no han de modificar sus programas por
cambios en el almacenamiento físico.

• Independencia lógica. Añadir, eliminar o modificar cualquier elemento de la base de datos no debe
repercutir en los programas y/o usuarios que están accediendo a subconjuntos parciales de los
mismos.

• Flexibilidad. Poder ofrecer a cada usuario los datos de la forma más adecuada a su aplicación.

• Uniformidad. Las estructuras lógicas de los datos presentan un aspecto uniforme (tablas), lo que
facilita la concepción y manipulación de la base de datos por parte de los usuarios.

• Sencillez. Las características anteriores, así como unos lenguajes de usuario sencillos, producen el
resultado de que el modelo de datos relacional es fácil de comprender y de utilizar.

Presentación 1, concepto de Database (Base de Datos)

Una base de datos es un conjunto de datos que pertenecen al mismo contexto almacenados
sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una
base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados
(gracias al ISBN) para su consulta. Desde el punto de vista de la Informática, la base de datos es un
sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a
ellos y un conjunto de programas que manipulen ese conjunto de datos. [3]

Presentación 1, concepto de DBMS (Sistema Manejador de Base de Datos)

Un sistema manejador de bases de datos (SGBD, por sus siglas en inglés) o DataBase Management
System (DBMS) es una colección de software muy específico, cuya función es servir de interfaz entre
la base de datos, el usuario y las distintas aplicaciones utilizadas. Un sistema manejador de bases de
datos (SGBD, por sus siglas en inglés) o DataBase Management System (DBMS) es una colección
de software muy específico, cuya función es servir de interfaz entre la base de datos, el usuario y
las distintas aplicaciones utilizadas. [4]
Como su propio nombre indica, el objetivo de los sistemas manejadores de base de datos es
precisamente el de manejar un conjunto de datos para convertirlos en información relevante para
la organización, ya sea a nivel operativo o estratégico.

Lo hace mediante una serie de rutinas de software para permitir su uso de una manera segura,
sencilla y ordenada. Se trata, en suma, de un conjunto de programas que realizan tareas de forma
interrelacionada para facilitar la construcción y manipulación de bases de datos, adoptando la forma
de interfaz entre éstas, las aplicaciones y los mismos usuarios. Su uso permite realizar un mejor
control a los administradores de sistemas y, por otro lado, también obtener mejores resultados a la
hora de realizar consultas que ayuden a la gestión empresarial mediante la generación de la tan
perseguida ventaja competitiva. [4]

Presentación 1, concepto de RDBMS

Un sistema de gestión de bases de datos relacionales (RDBMS) es un programa que te permite crear,
actualizar y administrar una base de datos relacional. La mayoría de los RDBMS comerciales utilizan
el lenguaje de consultas estructuradas (SQL) para acceder a la base de datos, aunque SQL fue
inventado después del desarrollo del modelo relacional y no es necesario para su uso.

Los principales productos RDBMS son Oracle, DB2 de IBM y Microsoft SQL Server. A pesar de los
desafíos repetidos por tecnologías de la competencia, así como la afirmación de algunos expertos
que dicen que ninguno de los RDBMS actuales ha aplicado plenamente los principios relacionales,
la mayoría de las nuevas bases de datos corporativas siguen siendo creadas y gestionadas con un
RDBMS. [5]

Presentación 1, concepto de Field (Campo)

En informática, un campo es un espacio de almacenamiento para un dato en particular. En las bases


de datos, un campo es la mínima unidad de información a la que se puede acceder; un campo o un
conjunto de ellos forman un registro, donde pueden existir campos en blanco, siendo éste un error
del sistema operativo. En las hojas de cálculo los campos son llamados celdas. [6]

Presentación 1, concepto de Table (Tabla)

Tabla en las bases de datos, se refiere al tipo de modelado de datos, donde se guardan y almacenan
los datos recogidos por un programa. Su estructura general se asemeja a la vista general de un
programa de hoja de cálculo. Una tabla es utilizada para organizar y presentar información. Las
tablas se componen de filas y columnas de celdas que se pueden rellenar con textos y gráficos [7].

Las tablas se componen de dos estructuras:


 Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de
los mismos tipos que los demás registros. Ejemplo: en una tabla de nombres, direcciones,
etc., cada fila contendrá un nombre y una dirección.
 Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente
a los de otros campos. En el ejemplo anterior, un campo contendrá un tipo de datos único,
como una dirección, o un número de teléfono, un nombre, etc.

A los campos se les puede asignar, además, propiedades especiales que afectan a los registros
insertados. El campo puede ser definido como índice o autoincrementable, lo cual permite que los
datos de ese campo cambien solos o sean el principal a la hora de ordenar los datos contenidos.
Cada tabla creada debe tener un nombre único en la Base de Datos, haciéndola accesible mediante
su nombre o su seudónimo (Alias) (dependiendo del tipo de base de datos elegida) [7].

Presentación 1, concepto de Index (Índice)

“Un índice acelera la sentencia SQL” es una de las explicaciones más sencillas que he podido
escuchar acerca de un índice. Y aunque es cierto que describe el aspecto más importante de un
índice, no es -sin embargo- suficiente para este libro. Este capítulo describe la estructura de un
índice de forma más profunda, pero sin perderse demasiado en detalles, lo que permitirá entender
todos los aspectos de la optimización de sentencias SQL, que se explicarán a lo largo de este libro.
Un índice es una estructura diferente dentro de la base de datos; creado con el comando create
index. Requiere su propio espacio en disco y contiene una copia de los datos de la tabla. Eso significa
que un índice es una redundancia. Crear un índice no cambia los datos de la tabla; solamente
establece una nueva estructura de datos que hace referencia a la tabla. De hecho, un índice de base
de datos se parece mucho a un índice de un libro: ocupa su propio espacio, es redundante y hace
referencia a la información actual almacenada en otro lugar [8].

Presentación 1, concepto de View (Vista)

Una vista de base de datos es un subconjunto de una base de datos y se basa en una consulta que
se ejecuta en una o más tablas de base de datos. Las vistas de base de datos se guardan en la base
de datos como consultas con nombre y se pueden utilizar para guardar consultas completas que se
utilizan con frecuencia.

Hay dos tipos de vistas de base de datos: vistas dinámicas y vistas estáticas. Las vistas dinámicas
pueden contener datos de una o dos tablas e incluir automáticamente todas las columnas de la tabla
o tablas especificadas. Las vistas dinámicas se pueden actualizar dinámicamente cuando se crean o
modifican objetos relacionados u objetos ampliados. Las vistas estáticas pueden contener datos de
varias tablas y las columnas necesarias de estas tablas se deben especificar en las cláusulas SELECT
y WHERE de la vista estática. Las vistas dinámicas se pueden actualizar manualmente cuando se
crean o modifican objetos relacionados u objetos ampliados [9].

Las vistas de base de datos se rellenan en función del objeto en el que se basan. Por ejemplo, si
añade o elimina un atributo del objeto WORKORDER, el atributo se añade o elimina la vista dinámica
basada en el objeto. Cuando modifica un atributo, no todos los cambios se aplican a la vista de base
de datos asociada. Por ejemplo, si cambia el tipo de datos de un atributo, el cambio se aplicará a la
vista de base de datos. No obstante, si cambia o añade un dominio al valor predeterminado del
objeto WORKORDER, el cambio no se aplicará automáticamente a la vista de base de datos. En su
lugar, debe aplicar este cambio a la vista de base de datos [9].

Presentación 1, concepto de Register (Regístro)

Registro: es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos
tipos que los demás registros. Ejemplo: en una tabla de nombres, direcciones, etc., cada fila
contendrá un nombre y una dirección [7].

Presentación 1, concepto de SQL (Structured Query Language)

La sigla que se conoce como SQL corresponde a la expresión inglesa Structured Query Language
(entendida en español como Lenguaje de Consulta Estructurado), la cual identifica a un tipo de
lenguaje vinculado con la gestión de bases de datos de carácter relacional que permite la
especificación de distintas clases de operaciones entre éstas. Gracias a la utilización del álgebra y de
cálculos relacionales, el SQL brinda la posibilidad de realizar consultas con el objetivo de recuperar
información de las bases de datos de manera sencilla.

 SQL

El científico Edgar Frank Codd (1923–2003) fue quien propuso un modelo relacional para las bases
de datos y creó un sublenguaje para acceder a los datos a partir del cálculo de predicados. En base
al trabajo de Codd, IBM (International Business Machines) definió el lenguaje conocido como
Structured English Query Language (SEQUEL). El SEQUEL se considera el antecesor de SQL, un
lenguaje de cuarta generación que se estandarizó en 1986. La versión más primitiva de SQL, por lo
tanto, fue la que se bautizó como SQL-86 (también conocida como SQL1) [10].

En esencia, el SQL es un lenguaje declarativo de alto nivel ya que, al manejar conjuntos de registros
y no registros individuales, ofrece una elevada productividad en la codificación y en la orientación a
objetos. Una sentencia de SQL puede resultar equivalente a más de un programa que emplee un
lenguaje de bajo nivel. Una base de datos, dicen los expertos, implica la coexistencia de múltiples
tipos de lenguajes. El denominado Data Definition Language (también conocido como DDL) es aquél
que permite modificar la estructura de los objetos contemplados por la base de datos por medio de
cuatro operaciones básicas. SQL, por su parte, es un lenguaje que permite manipular datos (Data
Manipulation Language o DML) que contribuye a la gestión de las bases de datos a través de
consultas [10].

Presentación 1, concepto de Query (Consulta)

Las consultas pueden realizar diversas funciones en una base de datos. La función más común es
recuperar datos específicos de las tablas. Los datos que quiere ver generalmente están distribuidos
en varias tablas y las consultas le permiten verlos en una única hoja de datos. Además, debido a que
muchas veces no quiere ver todos los registros a la vez, las consultas le permiten agregar criterios
para "filtrar" los datos y obtener solo los registros que quiere. Ciertas consultas son "actualizables",
es decir, puede modificar los datos de las tablas subyacentes mediante la hoja de datos de la
consulta. Si está trabajando en una consulta actualizable, recuerde que los cambios se realizan en
realidad en las tablas, no solo en la hoja de datos de la consulta [11].

Hay dos variedades básicas de consultas: consultas de selección y consultas de acciones. Una
consulta de selección simplemente recupera los datos y los pone a disposición para su uso. Puede
ver los resultados de la consulta en la pantalla, imprimirlos o copiarlos al portapapeles. O bien,
puede usar el resultado de la consulta como un origen de registro para un formulario o un informe.
Una consulta de acción, tal como el nombre lo indica, realiza una tarea con los datos. Las consultas
de acción se pueden usar para crear tablas nuevas, agregar datos a las tablas existentes, o actualizar
o eliminar datos [11].

Presentación 1, concepto de Stored Procedure (Procedimiento Almacenado)

Un procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento)


almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de
datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a
una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual
usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos que necesita
manipular y sólo necesita enviar sus resultados de regreso al usuario, deshaciéndose de la
sobrecarga resultante de comunicar grandes cantidades de datos salientes y entrantes [12] .

Presentación 1, concepto de Trigger (Disparador)

Los Triggers o 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. Los eventos
que hacen que se ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o
actualización (UPDATE), ya que modifican los datos de una tabla [13].
La utilidad principal de un trigger es mejorar la administración de la base de datos, ya que no
requieren que un usuario los ejecute. Por lo tanto, son empleados para implementar las REGLAS DE
NEGOCIO (tipo especial de integridad) de una base de datos. Una Regla de Negocio es cualquier
restricción, requerimiento, necesidad o actividad especial que debe ser verificada al momento de
intentar agregar, borrar o actualizar la información de una base de datos. Los triggers pueden
prevenir errores en los datos, modificar valores de una vista, sincronizar tablas, entre otros [13].

Presentación 1, concepto de Transaction (Transacción)

Una transacción es una unidad de trabajo compuesta por diversas tareas, cuyo resultado final debe
ser que se ejecuten todas o ninguna de ellas. Por regla general en un sistema de base de datos todas
las operaciones relacionadas entre sí que se ejecuten dentro un mismo flujo lógico de trabajo, deben
ejecutarse en bloque. De esta manera si todas funcionan la operación conjunta de bloque tiene
éxito, pero si falla cualquiera de ellas, deberán retrocederse todas las anteriores que ya se hayan
realizado. De esta forma evitamos que el sistema de datos quede en un estado incongruente [14].

Presentación 1, concepto de Job (Tarea)

Un trabajo (job) o tarea de SQL Server, es un proceso automático que se ejecuta automáticamente
en una programación establecida bajo control del Agente SQL Server. Mediante el uso del Agente
SQL Server para programar, se puede determinar cuándo y en qué orden se realizarán las tareas
administrativas. Las tareas que se programan suelen ser tareas que requieren mucho tiempo y
suelen programarse por la noche cuando la base de datos no está en uso o su uso es más bajo [15].

Presentación 1, concepto de Base de Datos Centralizada [16].

 Un solo punto de control de los clientes para la Web y línea de comandos.


 La vista del explorador permite la administración de trabajos, calendarios, etc.
 Los flujos de trabajos se pueden editar y controlar en el diseño gráfico.
 Los objetos son organizados en una jerarquía de archivo/directorio.
 Grupo de comandos intuitivo.
 Optimiza el procesamiento automatizado que permite que se lleve a cabo más trabajo sin
intervención.
 Reduce el costo de personal al permitir que los empleados se enfoquen en tareas que
consuman menos tiempo y sean menos repetitivas.
 Inicia trabajos basados en tiempo o eventos reduciendo posibles errores humanos.
 Reduce los costos de operación al eliminar la programación manual de procesos repetitivos
y trabajosos.
 Centraliza la gestión de tareas programadas por toda la empresa.
 Realiza tareas rutinarias de mantenimiento del sistema y de procesamiento de datos fuera
de horas.
 Implementa secuencias de trabajos simples y complejos basados en la finalización
satisfactoria de los requisitos de otros trabajos o recursos (archivo o hardware).
 Controla la actividad de los trabajos a través de plataformas múltiples usando un interfaz
de Windows fácil y poderoso.
 Mantiene los trabajos, los calendarios, y otros objetos en una base de datos centralizada o
distribuida que utiliza un formato de datos compartidos a través de plataformas.
 Distribuye la base de datos alrededor de un cluster o por una red y sistemáticamente la
configura cuando es necesario.
 Selectivamente entrega mensajes de excepciones a un beeper, a un sistema de correo
electrónico o como un mensaje automático en la interfaz.

Presentación 1, concepto de Base de Datos Distribuida [16]

 Todos los componentes del sistema residen en un solo computador o sitio.


 Los componentes consisten en los datos, el software del Sistema de Manejador de Bases de
Datos SMBD y los dispositivos de almacenamiento secundario asociados, como discos para
el almacenamiento en línea de la base de datos y cintas para las copias de seguridad.
 Se pueden tener acceso remoto a una base de datos centralizada a través de terminales
conectadas al sitio; los datos y el software del SMBD residen principalmente en un solo sitio.
 La base de datos está almacenada en varias computadoras conectadas en red.
 Surgen debido a la existencia física de organismos descentralizados.
 Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas
universidades, sucursales de tiendas, etcétera
TAREA NO.2

Tarea No. 2

En base a la clasificación del cuadrante mágico de Gartner para los ODBMS (Operational
Database Management Systems) haga un cuadro comparativo (benchmark) de los líderes con
sus ventajas y desventajas.

Ilustración 1. Cuadro Mágico de Gartner [17]


LIDERES VENTAJAS DESVENTAJAS
Ejecución líder de mercado: Los datos de La presión de los precios amplía la
ingresos de Gartner para 2016 del mercado DBMS competencia: Los precios de Microsoft en cuanto a
muestran que los ingresos de Microsoft crecieron cloud seguirán sometidos a presiones tanto por AWS,
por encima de la tasa del mercado. Microsoft se como por Google, ambas con altas puntuaciones
está mostrando cada vez más agresiva, con una otorgadas por sus clientes de referencia para sus
nueva edición para desarrolladores gratuita de SQL modelos de precios. Varios proveedores de productos
Server y con un servicio de migración de bases de en las instalaciones puntuaron mejor en la encuesta
datos para trasladar bases de datos SQL Server y de referencia en cuanto a sus modelos de precios,
Oracle a su base de datos Azure SQL, abriendo aunque Microsoft obtuvo una buena puntuación en
otro campo para competir con AWS. El coste relación calidad-precio. Esto sugiere que hay más
competitivo de Microsoft, la movilidad de licencias y compradores dispuestos a sustituir, de forma
su deseo de ofrecer "el único SLA para bases de selectiva, sus productos por alternativas a Microsoft,
datos con respaldo financiero para disponibilidad, abriendo la competencia interna para futuras cargas
latencia, resultados y consistencia" también han de trabajo.
llamado la atención de los clientes.
Desafíos en la cloud con respecto a productos y
Visión de mercado: Microsoft continúa liderando canales: Los socios de implantación de cloud no han
el mercado en cuanto a visión, con sus ofertas conseguido buenas puntuaciones en comparación
multimodelo SQL para IMDBMS y no relacionales con las obtenidas por los de AWS. Algunas
(con soporte para documentos, valores clave, y, herramientas están desfasadas con respecto a las de
ahora, para gráficos mediante la compatibilidad con otros proveedores incluidos en el Magic Quadrant,
Apache Gremlin), así como el acceso integrado a más concretamente, las herramientas de desarrollo.
analíticas (con soporte para HTAP) y soporte para
la movilidad. A su soporte para implantaciones El síndrome de precios del
híbridas vía SQL Server 2016 Stretch Databases, megaproveedor: Aunque los clientes de referencia
ahora se une el control mediante políticas de Microsoft otorgaron buena puntuación a su
interregionales de Azure CosmosDB en cloud, y relación calidad-precio y al proceso de negociación
múltiples opciones de consistencia de datos de precios, no estaban satisfechos con los métodos
MICROSOFT permiten un diseño selectivo y basado en casos de
uso.
de precios de Microsoft. Los clientes de referencia
señalaban que los precios pueden ser opacos, a no
ser que se entienda bien el producto y cómo se
[17] Satisfacción del cliente: Los clientes de empleará.
referencia han otorgado a Microsoft las
puntuaciones más altas de todos los proveedores
evaluados para experiencia general, respuesta a
sus necesidades, relación calidad-precio,
experiencia de negociación, integración e
implantación, servicio y soporte, soporte
profesional, facilidad de programación y
consistencia modulable. Se encuentra dentro del
25 % de los mejores proveedores evaluados en
cuanto a los clientes de referencia que planean
adquirir productos adicionales de su proveedor en
el plazo de un año.
Estrategia de modernización: Oracle trabaja para Competición en cloud: Oracle ha iniciado su
ampliar su ya sólida cartera con una estrategia andadura en cloud de forma muy seria. Para atraer a
consistente en torno a su producto de cloud pública, los clientes a su propia cloud por delante de las de sus
incluyendo ofertas IaaS, PaaS y SaaS, e incluyendo competidores, la empresa ha aumentado el número de
Cloud at Customer para servicios gestionados licencias de procesador de Oracle necesarias para
dentro del centro de datos de los clientes. La ejecutar sus software en clouds de sus competidores,
empresa sigue defendiendo un enfoque que da lo que, a efectos prácticos, dobla el coste de ejecución
prioridad a los desarrolladores, ofreciendo las de Oracle. La empresa también limita algunas
últimas API de programación y soporte para distintos características nuevas, como In-Memory en Active
tipos de datos. Data Guard, a Oracle Cloud y a sistemas de ingeniería
Oracle empleados en las instalaciones.
Rendimiento de elementos heredados: Tres
cuartos de los clientes de referencia de Oracle llevan Flexibilidad y complejidad de las licencias: Muchos
utilizando Oracle Database más de diez años. El de los clientes de referencia de Oracle mencionaron la
rendimiento del producto, sus características y su complejidad de las licencias y las difíciles
fiabilidad se nombran habitualmente tanto por sus negociaciones como problemas constantes. Algunos
clientes de referencia en la encuesta, como por los también solicitaron más flexibilidad en torno a las
clientes de Gartner. licencias, como por ejemplo, simplificar la licencia de
los servidores virtuales, desplegando créditos medidos
Satisfacción con el producto: Los clientes de de suscripciones e introduciendo precios por uso
referencia de Oracle han puntuado a la empresa por
ORACLE encima de la media en satisfacción general con el
concreto. Para empezar a responder a estas
cuestiones, recientemente, Oracle ha introducido las
producto y en calidad de la formación y de la opciones Universal Credits y Bring Your Own License,
[17] documentación para usuarios finales. La empresa así como reducciones de precios de PaaS en general.
recibió también una puntuación superior a la media
por las características de seguridad de sus Desafíos de soporte y parcheo: Como problema
soluciones. continuo, los clientes de referencia mencionaron que
es difícil trabajar con la organización de soporte de
Oracle, y que obtener el soporte adecuado de Oracle,
a menudo requiere de notificación a instancias
superiores. Algunos mencionaron que el número de
parches emitidos resultaba tedioso y suponía un
desafío para su implementación. La empresa ha
adoptado un modelo de actualizaciones trimestrales
para simplificar el parcheo.

Cuota de mercado de cloud dominante: AWS es Limitado en capacidades de instalaciones: AWS


el claro líder del mercado de servicios de cloud, ofrece sus servicios solo en cloud. Aunque algunas de
tanto en sus ofertas de IaaS como de plataforma, las ofertas de AWS se basan en productos en las
incluyendo los DBMS. Sus beneficios de dbPaas instalaciones, y cuenta con sólidos servicios de
solo en cloud han mejorado su posición, en términos migración, la falta de una versión específica en las
AMAZON de cuota de mercado, en la evaluación de cuota de instalaciones es un factor de limitación para ciertas
mercado de DBMS de Gartner para 2016. La visión organizaciones. AWS cuenta con conectores a
WEB de Amazon continúa centrada en la cloud. arquitecturas en las instalaciones de MariaDB para
facilitar un entorno híbrido.
SERVICES Capacidades de productos diversas
flexibles: AWS ofrece una amplia variedad de
y
El "efecto Amazon”: Una creciente preocupación es
(AWS) [17] capacidades de productos en muchos servicios
distintos, incluyendo dbPaaS relacionales y no
la percepción de que las organizaciones que compiten
con Amazon, como otras empresas de comercio
relacionales. Su visión es ofrecer servicios múltiples electrónico o minoristas, no deben emplear AWS
que ofrezcan las capacidades de mejor adaptación porque solo estarían enriqueciendo a su competidor.
en un entorno unificado de cloud.
Funcionalidad y atención al cliente: En función de la
Precio e integración: En la encuesta de clientes de encuesta de clientes de referencia, AWS solo ha
referencia de este año, AWS ha ocupado la segunda obtenido puntuaciones medias para estas categorías.
posición entre todos los proveedores, tanto por Se destacó especialmente la falta de consistencia y de
idoneidad de precios, como por facilidad de opciones multimodelo en los servicios relacionales,
integración. Su enfoque de la integración difiere del aunque DynamoDB (no relacional) si es compatible
de los proveedores tradicionales de primer nivel, lo con la opción multimodelo. Hay campo para la mejora
que hace que sea más fácil integrar múltiples en lo que respecta a la atención y apoyo al cliente,
servicios. especialmente, para los clientes que no tienen
contratado un plan de servicio Business o Enterprise.
Fuerte crecimiento continuo de DBMS: SAP Percepción del mercado: SAP ha mantenido su
mantiene su posición en las estadísticas de cuota de consistencia en la ejecución año tras año, ya que el
mercado de Gartner para 2016, con un fuerte mercado continúa teniendo en cuenta SAP Hana
crecimiento gracias a SAP Hana. Según SAP, SAP exclusivamente para aplicaciones SAP. SAP debe
Hana contaba con más de 18 000 clientes en cambiar esta percepción, posicionando y ejecutado
octubre de 2017, lo que supone la mitad de la base SAP Hana como DBMS para propósitos generales, o
instalada de aplicaciones SAP. enfrentarse a la posibilidad real de verse relegada por
la competencia.
Visión de mercado: SAP ha avanzado su visión
para este año en varias dirección, enfatizando la Puntuaciones mixtas en la encuesta: Las
cloud y la funcionalidad adicional en la plataforma puntuaciones de referencia de los clientes de SAP
SAP Hana (incluyendo mayor soporte multimodelo y fueron medias en cuanto a las sensaciones generales
una integración más sólida de Spark y Hadoop). de los clientes, pero por debajo de la media en cuanto
Cuenta con un sólido plan para el soporte de a capacidades de producto y a la experiencia de hacer
aplicaciones y datos no SAP, que hasta ahora, ha negocios con SAP, en comparación con las del resto
supuesto un desafío continuo para SAP. de proveedores evaluados. Los comentarios sobre la
implementación fueron de naturaleza mixta.
Velocidad, rendimiento y HTAP: La mayoría de los
clientes de referencia de SAP sigue resaltando el Percepción de los precios de SAP Hana: Las
rendimiento y la velocidad de SAP Hana como puntuaciones de los clientes de referencia de SAP en
puntos fuertes, así como su capacidad de combinar cuanto a métricas de precios se mantuvieron por
transacciones y análisis en la misma base de datos debajo de la media para este Magic Quadrant. Aunque
SAP [17] (HTAP). los precios de ejecución de SAP Hana son inferiores a
los de algunos otros DBMS, las licencias de uso
completo de SAP Hana se tarifican por memoria usada
para datos, y se perciben como caras. Este es uno de
los motivos por los que SAP Hana se emplea
principalmente para aplicaciones SAP, y no para
DBMS de propósitos generales. Convencer al
mercado de que SAP Hana no es caro con respecto a
otros DBMS sigue siendo un desafío de marketing
para SAP.

Características: La cartera de OPDBMS de IBM y Ejecución de ventas: Los ingresos por DBMS y la
su visión a corto plazo incluyen múltiples RDBMS, cuota de mercado de IBM en el 2016, según Gartner,
almacenes de documentos, almacenes de bajaron, continuando con una tendencia que lleva ya
columnas, almacenes de eventos, almacenes de varios años. Varios clientes de referencia hicieron
gráficos y capacidades geoespaciales y de series de comentarios sobre las dificultades que encontraban en
tiempo. Hace un amplio uso de populares los precios y las licencias, así como sobre la necesidad
componentes de código abierto, como Hadoop, de actualizar la estructura de licencias para los estilos
Kafka, Parquet y Spark, así como de la copia de modernos de implantación. IBM ha introducido un
seguridad y la restauración desde y hacia Swift y nuevo modelo de "descargar y usar", una edición
AWS S3. gratuita para desarrolladores con características de
versión de empresa, y programas de precios por
Presencia global: IBM ofrece soporte, suscripción, respaldados por nuevas estructuras de
implementación y servicios en múltiples mercados equipos de ventas y por un seguimiento de la
verticales y tiene una red global de asociados de experiencia del usuario, multipasos y muy bien
software, hardware y servicios. Los importantes estructurado. No obstante, todo esto no se refleja
esfuerzos que IBM ha hecho a lo largo de 2017 para todavía en las conversaciones que ha mantenido
la simplificación de su cartera y para apoyar una Gartner con los clientes, ni en las cifras de ventas de
distribución digital simplificada parecen IBM.
prometedores. El reajuste resultante de recursos y
el aumento del aprovechamiento del código abierto Cambio de cartera: IBM ha realizado importantes
han llevado recientemente a IBM a abandonar su cambios para simplificar su marca (incluyendo el
propia oferta de Apache Hadoop, y en su lugar, cambio de DB2 a Db2), pero los clientes no parecen
centrarse en la venta de Hortonworks Data Platform. percibirlos o se muestran indiferentes ante ellos. Al
IBM [17] Capacidades cloud e híbridas: La creciente
añadir soporte para otros DBMS en cloud con IBM
Compose, IBM diluye su proposición e invita a la
presencia de DBMS de IBM controladas en cloud competencia con sólidos actores establecidos de
refleja el fuerte reposicionamiento y la creciente Amazon, Microsoft y la emergente Google Cloud
influencia de sus adquisiciones y compromisos de Platform. Varios clientes de referencia han percibido
código abierto. Una nueva opción de paquete de dificultades con la integración, y los elementos
gestión de datos (Data Management Bundle) añadidos pueden empeorar dichas dificultades.
permite que el movimiento automático iguale o
mejore las habilitaciones de cliente en un conjunto Desfase de la documentación/formación: Los
de productos que comparten un motor común de clientes de referencia han otorgado a IBM las
análisis de datos. puntuaciones más bajas de entre todos los
proveedores evaluados por la calidad y disponibilidad
de su formación para usuarios finales. Los plazos de
implementación fueron los más largos de todos los
proveedores, reforzando la idea de que IBM sigue
careciendo de "agilidad" de uso, y que sigue viéndose
entorpecido por una complejidad innecesaria, un
comentario recibido con frecuencia en las consultas de
Gartner con los clientes de IBM. El nuevo trabajo de
compartimentación, parte de la iniciativa "descargar y
usar", debería mejorar este aspecto, pero, por ahora,
no se refleja en las interacciones con los clientes.

TAREA NO.3

Tarea No 3:

Investigue las diferentes modalidades de respaldo de bases de datos que permite SQL Server
y explique cómo se ejecutan y cuando se deberían aplicar las diferentes estrategias de
respaldo ya sean completas, diferenciales o transaccionales y qué implica implementar
cada una de ellas.

Complemente su investigación con la estrategia de respaldos válida para un entorno


distribuido por replicación.

SQL Server ofrece backups completes, diferenciales, parciales, del log de transacciones y backups
de cola, que permiten reconstruir una base de datos completamente en caso de fallo del disco, del
servidor o de una instancia. Hay distintos backups, en frío y en caliente, que se pueden utilizar con
SQL Server para adaptarse a cualquier escenario de uso. Las bases de datos de SQL Server pueden
también desconectarse de forma rápida y copiar sus archivos físicos, los cuales después pueden
asociarse a cualquier otra instancia [18].

 Backups del log de transacciones—Los backups de log de transacciones de SQL Server


obedecen a los mismos fines que los backups incrementales de Oracle. Este tipo de backup
almacena todas las transacciones registradas desde el último backup de log de
transacciones.
 Backups diferenciales— se capturan todos los datos modificados desde el último backup
completo. Los backups diferenciales son acumulativos desde el último backup completo
solamente, no son incrementales. Los backups diferenciales no permiten recuperar la base
de datos a un momento concreto o a un punto en el log de transacciones.
 Backups parciales—SQL Server dispone también de backups parciales, que contienen solo
los datos de los grupos de archivos Primario y lectura/escritura de la base de datos. Los
backups parciales no incluyen los grupos de archivos de solo lectura.
Beneficios de la replicación de base de datos

Una replicación de base de datos es una técnica mediante la cual copiamos de forma exacta en otra
ubicación una instancia de la base de datos. Se utiliza en entornos distribuidos de Sistemas de
Gestión de Bases de Datos donde una sola base de datos tiene que ser utilizada y actualizada en
varios lugares de forma simultánea. Actualmente existen en la red multitud de aplicaciones y de
sistemas que tienen por debajo una base de datos que sigue el modelo cliente-servidor. Muchas
veces esos sistemas deben de tener garantizada la accesibilidad por lo que para evitar problemas es
necesario utilizar este tipo de técnicas de replicación de base de datos de forma que un fallo en uno
de los servidores de base de datos no impida a los usuarios seguir utilizando la aplicación. Mediante
la replicación de base de datos, usuarios de todo el mundo pueden estar accediendo a lo que para
ellos son los mismos datos, aunque en realidad, físicamente esos datos pueden estar de forma
transparente para el usuario, en diferentes nodos o localidades [18].

Beneficios de la replicación de base de datos

La replicación te puede ofrecer grandes beneficios relacionados principalmente con el


rendimiento, disponibilidad y seguridad de los datos.

1. Aumento de la fiabilidad: mediante la replicación de base de datos a través de múltiples


servidores, te aseguras que los datos van a estar disponibles incluso en el caso de que una
de las máquinas tenga un fallo grave de hardware. El sistema distribuido de gestión de bases
de datos debe ser capaz de enrutar a los usuarios afectados a otro de los nodos disponibles.
2. Mejora en el rendimiento: al estar los datos distribuidos en diferentes servidores, los
múltiples accesos no saturan los servidores. Esto es importante sobre todo en el caso de
aplicaciones que pueden tener miles o cientos de miles de peticiones simultáneas. El
rendimiento de las aplicaciones aumenta notablemente.
3. Mejora en la seguridad de los datos: en un sistema transaccional tradicional, todas las
actualizaciones de una base de datos se guardan en un mismo disco. La seguridad de tus
datos queda entonces en manos de la estrategia de copias de seguridad que tengas
implementada en ese servidor. Con la replicación de base de datos aumentas la seguridad
de los datos ya que las actualizaciones están siendo escritas en varios servidores. Es decir,
varios discos, varias fuentes de alimentación, CPU’s, etc. son utilizadas para asegurar que
tus datos estarán a salvo en algunos servidores, aunque pueda ocurrir un desastre en otros.

En definitiva la replicación de base de datos se utiliza para propagar los datos en entornos de base
de datos distribuidas de forma que se mejora la confiabilidad y el rendimiento de las aplicaciones
que la utilizan. Tienes diferentes tipos de replicación de base de datos que puedes utilizar. El escoger
uno u otro dependerá de la naturaleza y utilización de los mismos [18].
EJERCICIOS

 18 Conceptos de la presentación 1 bajo los títulos: "Presentación 1, concepto de Dato",


"Presentación 1, concepto de Información", y así sucesivamente.

DADO QUE ES LA MISMA INSTRUCCIÓN DE LA TAREA NO.1, NO SE PONE NUEVAMENTE.

 16 Conceptos de la presentación 2 con nomenclatura similar al punto anterior.

Presentación 2, concepto de DDL (Data Definition Language)

Un lenguaje de base de datos o lenguaje de definición de datos (Data Definition Language, DDL por
sus siglas en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que
permite a los programadores de la misma llevar a cabo las tareas de definición de las estructuras
que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos.

Un Data Definition Language o Lenguaje de descripción de datos (DDL) es un lenguaje de


programación para definir estructuras de datos. El término DDL fue introducido por primera vez en
relación con el modelo de base de datos CODASYL, donde el esquema de la base de datos ha sido
escrito en un lenguaje de descripción de datos que describe los registros, los campos, y "conjuntos"
que conforman el usuario modelo de datos. Más tarde fue usado para referirse a un subconjunto
de SQL, pero ahora se utiliza en un sentido genérico para referirse a cualquier lenguaje formal para
describir datos o estructuras de información, como los esquemas XML [19].

Presentación 2, concepto de DML (Data Manipulation Language)

También es un lenguaje proporcionado por los sistemas gestores de bases de datos. En inglés, Data
Manipulation Language (DML). Utilizando instrucciones de SQL, permite a los usuarios introducir
datos para posteriormente realizar tareas de consultas o modificación de los datos que contienen
las Bases de Datos [20].

Los elementos que se utilizan para manipular los datos, son los siguientes:

 SELECT, esta sentencia se utiliza para realizar consultas sobre los datos.
 INSERT, con esta instrucción podemos insertar los valores en una base de datos.
 UPDATE, sirve para modificar los valores de uno o varios registros.
 DELETE, se utiliza para eliminar las finas de una tabla

Todos estos lenguajes forman parte del lenguaje SQL en general. Es decir, no son aplicables
únicamente a PostgreSQL sino a todos los gestores de bases de datos relacionales tales como Oracle
SQL, MySQL o SQL Server. Si quieres conocer más, y de forma práctica, los dos primeros gestores
aquí cuentas con una escuela online de confianza [20].
Presentación 2, concepto de DSL (Data Security Language)

La gran mayoría de los datos sensibles del mundo están almacenados en sistemas gestores de bases
de datos comerciales tales como Oracle, Microsoft SQL Server entre otros, y atacar una bases de
datos es uno de los objetivos favoritos para los criminales. Esto puede explicar por qué los ataques
externos, tales como inyección de SQL, subieron 345% en 2009, “Esta tendencia es prueba adicional
de que los agresores tienen éxito en hospedar páginas Web maliciosas, y de que las vulnerabilidades
y explotación en relación a los navegadores Web están conformando un beneficio importante para
ellos”[20].

Para empeorar las cosas, según un estudio publicado en febrero de 2009 The Independent Oracle
Users Group (IOUG), casi la mitad de todos los usuarios de Oracle tienen al menos dos parches sin
aplicar en sus manejadores de bases de datos. Mientras que la atención generalmente se ha
centrado en asegurar los perímetros de las redes por medio de, firewalls, IDS / IPS y antivirus, cada
vez más las organizaciones se están enfocando en la seguridad de las bases de datos con datos
críticos, protegiéndolos de intrusiones y cambios no autorizados [20]

Presentación 2, concepto de Create [22]

Este comando crea un objeto dentro del gestor de base de datos. Puede ser una base de datos,
tabla, índice, procedimiento almacenado o vista.

Ejemplo (crear una tabla):

# CREATE TABLE Empleado

id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

Nombre VARCHAR(50),

Apellido VARCHAR(50),

Direccion VARCHAR(255),

Ciudad VARCHAR(60),

Telefono VARCHAR(15),

Peso VARCHAR (5),

Edad (2),

Actividad Específica (100),

idCargo INT)
Presentación 2, concepto de Drop [22]

Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger,
función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede
combinar con la sentencia ALTER.

Ejemplo:

# DROP TABLE 'NOMBRE_TABLA';


# DROP SCHEMA 'ESQUEMA;'
# DROP DATABASE 'BASEDATOS';

Presentación 2, concepto de Delete [22]

Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.

Forma básica:

# DELETE FROM 'tabla' WHERE 'columna1' = 'valor1'

Presentación 2, concepto de Grant [22]

Sentencia GRANT (Autorizaciones de base de datos)

Este formato de la sentencia GRANT otorga las autorizaciones que se aplican a toda la base de datos
(en lugar de privilegios que se aplican a objetos específicos de la base de datos) [21].

Invocación

Esta sentencia puede incorporarse a un programa de aplicación o emitirse mediante el uso de


sentencias de SQL dinámico. Es una sentencia ejecutable que puede prepararse de forma dinámica
sólo si el comportamiento de ejecución de DYNAMICRULES está en vigor para el paquete (SQLSTATE
42509).

Autorización

Se necesita la autorización SYSADM para otorgar la autorización DBADM, y se necesita la


autorización DBADM o SYSADM para otorgar otras autorizaciones.
Sintaxis
.-,-----------------------------.
V |
>>-GRANT----+-BINDADD-------------------+-+--ON DATABASE-------->
+-CONNECT-------------------+
+-CREATETAB-----------------+
+-CREATE_EXTERNAL_ROUTINE---+
+-CREATE_NOT_FENCED_ROUTINE-+
+-IMPLICIT_SCHEMA-----------+
+-DBADM---------------------+
+-LOAD----------------------+
'-QUIESCE_CONNECT-----------'

.-,----------------------------------.
V |
>--TO----+-+-------+--nombre-autorización-+-+------------------><
| +-USER--+ |
| '-GROUP-' |
'-PUBLIC-------------------------'

Presentación 2, concepto de Revoke [23]

Revoca permisos concedidos o denegados para un usuario de base de datos, un rol de base de
datos o un rol de aplicación

REVOKE [ GRANT OPTION FOR ] permission [ ,...n ]


ON
{ [ USER :: database_user ]
| [ ROLE :: database_role ]
| [ APPLICATION ROLE :: application_role ]
}
{ FROM | TO } <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]

<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Presentación 2, concepto de Select [24]

Con la sentencia SELECT, puede especificar el nombre de las columnas que quiera recuperar de una
tabla. Puede indicar varias columnas o sólo una de una tabla o vista, o puede seleccionar todas las
columnas. Cada sentencia SELECT puede seleccionar información de diversas tablas. Puede utilizar
la palabra clave DISTINCT para eliminar información duplicada si se seleccionan datos de varias
tablas. QMF visualiza los datos seleccionados de acuerdo con el código de edición por omisión para
el tipo de datos. No se puede utilizar más de una sentencia SELECT en una consulta que incluya otras
sentencias SQL.

Selección de todas las columnas de una tabla

Para recuperar todas las columnas de una tabla, utilice un asterisco (*) en lugar de nombrar las
columnas. El formato de una sentencia SELECT utilizada para esta selección es:

SELECT * FROM nombretabla


En esta sentencia, nombretabla es el nombre de la tabla o vista en la que se va a
buscar. Por ejemplo, esta sentencia devuelve todas las columnas de Q.ORGAN:
SELECT * FROM Q.ORGAN
Esta consulta devuelve todas las columnas pero sólo visualiza las filas en las que
el número de departamento es 10:
SELECT *
FROM Q.PLANTILLA
WHERE DTO = 10

Ejemplos

Cada uno de los ejemplos siguientes incluye una subconsulta, que aparece resaltada.

SELECT DTO, NOMBRE, SALARIO


FROM Q.PLANTILLA CORRVAR
WHERE SALARIO =
(SELECT MAX(SALARIO)
FROM Q.PLANTILLA
WHERE DTO = CORRVAR.DTO)
SELECT ID, NOMBRE
FROM Q.PLANTILLA
WHERE DTO IN
(SELECT DISTINCT NUMDEP
FROM Q.ORGAN
WHERE DIVISION = 'AMERICA')
ORDER BY ID
SELECT DTO, AVG(SALARIO)
FROM Q.PLANTILLA
GROUP BY DTO
HAVING AVG(SALARIO) >
(SELECT AVG(SALARIO) FROM Q.PLANTILLA)
Presentación 2, concepto de Join [22]

Cosultas mediante JOIN


JOIN
La sentencia SQL JOIN se utiliza para relacionar varias tablas. Nos permitirá obtener un listado de
los campos que tienen coincidencias en ambas tablas:

# select nombre, telefono, accion, cantidad from clientes join accion


es on clientes.cid=acciones.cid;

resultando:

+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| maria | 222 | REDHAT | 10 |
| jesus | 4444 | NOVELL | 20 |
| jesus | 4444 | SUN | 30 |
+--------+----------+--------+----------+

LEFT JOIN
La sentencia LEFT JOIN nos dará el resultado anterior mas los campos de la tabla de la
izquierda del JOIN que no tienen coincidencias en la tabla de la derecha:

# select nombre, telefono, accion, cantidad from clientes left join a


cciones on clientes.cid=acciones.cid;

con resultado:

+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| jose | 111 | NULL | NULL |
| maria | 222 | REDHAT | 10 |
| manuel | 333 | NULL | NULL |
| jesus | 4444 | NOVELL | 20 |
| jesus | 4444 | SUN | 30 |
+--------+----------+--------+----------+

RIGHT JOIN
Identico funcionamiento que en el caso anterior pero con la tabla que se incluye en la consulta a la
derecha del JOIN:

# select nombre, telefono, accion, cantidad from clientes right join


acciones on clientes.cid=acciones.cid;

cuyo resultado será:

+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| maria | 222 | REDHAT | 10 |
| jesus | 4444 | NOVELL | 20 |
| jesus | 4444 | SUN | 30 |
| NULL | NULL | FORD | 100 |
+--------+----------+--------+----------+

UNION y UNION ALL


Podemos combinar el resultado de varias sentencias con UNION o UNION ALL. UNION no nos
muestra los resultados duplicados, pero UNION ALL si los muestra:

# select nombre, telefono, accion, cantidad from clientes left join a


cciones on clientes.cid=acciones.cid where accion is null union selec
t nombre, telefono, accion, cantidad from clientes right join accione
s on clientes.cid=acciones.cid where nombre is null;

que mostrará:

+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| jose | 111 | NULL | NULL |
| manuel | 333 | NULL | NULL |
| NULL | NULL | FORD | 100 |
+--------+----------+--------+----------+

Presentación 2, concepto de Where [22]

Clausula WHERE
La cláusula WHERE puede usarse para determinar qué registros de las tablas enumeradas en la
cláusula FROM aparecerán en los resultados de la instrucción SELECT. WHERE es opcional, pero
cuando aparece debe ir a continuación de FROM:

# SELECT Apellidos, Salario FROM Empleados


WHERE Salario > 21000;
# SELECT Id_Producto, Existencias FROM Productos
WHERE Existencias <= Nuevo_Pedido;

Presentación 2, concepto de Order By [22]

Con frecuencia, sin embargo, necesitamos enumerar el resultado en un orden particular. Esto podría
ser en orden ascendente, en orden descendente, o podría basarse en valores numéricos o de texto.
En tales casos, podemos utilizar la palabra clave ORDER BY para alcanzar nuestra meta.

La sintaxis para una instrucción ORDER BY es la siguiente:

SELECT "nombre_columna"
FROM "nombre_tabla"
[WHERE "condición"]
ORDER BY "nombre_columna" [ASC, DESC];

[ ] Significa que la instrucción WHERE es opcional. Sin embargo, si existe una cláusula WHERE, viene
antes de la cláusula ORDER BY ASC significa que los resultados se mostrarán en orden ascendente,
y DESC significa que los resultados se mostrarán en orden descendente. Si no se especifica ninguno,
la configuración predeterminada es ASC. Es posible ordenar por más de una columna. En este caso,
la cláusula ORDER BY anterior se convierte en:

ORDER BY "nombre1_columna" [ASC, DESC], "nombre2_columna" [ASC, DESC]


Presentación 2, concepto de Group By [22]

GROUP BY
Combina los registros con valores idénticos, en la lista de campos especificados, en un único
registro:

# SELECT campos FROM tabla WHERE criterio


GROUP BY campos del grupo

Todos los campos de la lista de campos de SELECT deben o bien incluirse en la cláusula GROUP BY o
como argumentos de una función SQL agregada:

# SELECT Id_Familia, Sum(Stock)


FROM Productos GROUP BY Id_Familia;

HAVING es similar a WHERE, determina qué registros se seleccionan. Una vez que los registros se
han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar.

# SELECT Id_Familia Sum(Stock) FROM Productos GROUP BY Id_Familia HAVING Sum(Stock) > 100
AND NombreProducto Like BOS*;

Presentación 2, concepto de Insert [22]

INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de
datos relacional.

Forma básica:

# INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES ('


'valor1'', [''valor2,...''])

Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será
asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT
deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las
restricciones es violada, no se agrega la fila y se devuelve un error.

Ejemplo:
# INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jel
drez', 4886850);

Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:

# INSERT INTO ''VALUES (''valor1'', [''valor2,...''])

Ejemplo (asumiendo que ‘nombre’ y ‘número’ son las únicas columnas de la tabla
‘agenda_telefonica’):

# INSERT INTO agenda_telefonica VALUES ('Jhonny Aguiar', 080473968);

Presentación 2, concepto de Select… Into [22]

SQL Server: instrucción SELECT INTO

Instrucción SELECT INTO en SQL Server (Transact-SQL) con sintaxis y ejemplos.

Descripción

La instrucción SELECT INTO de SQL Server (Transact-SQL) se usa para crear una tabla a partir de
una tabla existente al copiar las columnas de la tabla existente. Es importante tener en cuenta que
al crear una tabla de esta manera, la nueva tabla se completará con los registros de la tabla
existente (en función de la instrucción SELECT).

Sintaxis

La sintaxis de la instrucción SELECT INTO en SQL Server (Transact-SQL) es:

SELECT expresiones
INTO nueva_tabla
FROM tabla
[WHERE condiciones];
Presentación 2, concepto de Insert… Into [22]

INSERT INTO que inserta un registro en una tabla. Su sintaxis es la siguiente:

INSERT INTO nombre_tabla


(columna1,columna2,columna3)
VALUES ('valor1','valor2','valor3');

En primer lugar ponemos el nombre de la sentencia "INSERT INTO" seguido del nombre de la tabla.

A continuación, entre paréntesis ponemos el nombre de las columnas que tiene la tabla separadas
por comas. No es necesario poner el nombre de todas las columnas de la tabla, podemos poner sólo
aquellas en las que vayamos a insertar datos. La columna de clave primaria con autoincremento
tampoco la pondremos, ya que su valor se genera automáticamente. Las columnas que no
pongamos tomarán el valor nulo o por defecto.

Seguidamente ponemos la palabra clave "VALUES" (también podemos poner "VALUE"), seguido de
los valores que tendrán las columnas en ese registro. Estos se ponen incluidos dentro de un
paréntesis, entre comillas y separados por comas. Incluso cuando el valor sea una variable de PHP
debemos ponerlos entre comillas.

Los valores escritos en "VALUES" se corresponden uno a uno con el nombre de las columnas, de
manera que el "valor1" se insertará en la "columna1", el "valor2" en la "columna2" y así
sucesivamente. Debe haber el mismo número de valores que de columnas, de otro modo la
sentencia sql sería erronea.
SCRIPTS

"Presentación 2, Creación Equinox, Script 1" hasta Script 4

1. Creación de la base de datos de acuerdo al diagrama relacional bajo el nombre Equinox


2. Creación de las tablas con sus llaves primarias
3. Creación de las relaciones con la integración de las llaves foráneas
4. Genere las tareas de importación de los datos iniciales en las tablas usando los archivos de
texto con los datos de carga.

____________________________________________________________________________________

1. create database equinox; 31. --foreign key (Fecha) references


2. use equinox; Eventos(Fecha)
32. );
3. create table Razas(
4. idRaza int not null, 33. create table Cuadras(
5. Descripcion varchar(60) not 34. Id_Ejemplar int not null,
null, 35. Id_Criadero int not null,
6. Origen varchar(60), 36. Nombre varchar(255) not null,
7. Uso varchar(60) 37. Raza int not null,
8. primary key(idRaza) 38. Edad int not null,
9. ); 39. Sexo varchar(255) not null,
40. Alzada float,
10. create table Cruzas( 41. Aspecto varchar(255),
11. Id_Raza_1 int not null, 42. Peso float,
12. Id_Raza_2 int not null, 43. Padre int,
13. Cruza int not null, 44. Id_Criadero_p int,
14. primary 45. Madre int,
key(Id_Raza_1,Id_Raza_2), 46. Id_Criadero_m int,
15. --foreign key(Cruza) references 47. Corral int not null,
Razas 48. Destino varchar(255) not null,
16. ); 49. Precio_Alquiler float,
50. Ejemplar_San_Cristobal bit not
17. create table Eventos( null,
18. Id_Evento int not null, 51. Fecha_Nacimiento date,
19. Nombre varchar(MAX) not null, 52. Fecha_Compra date,
20. Fecha date not null, 53. Precio_Compra money,
21. Lugar varchar(MAX) 54. Costo_Mensual_Promedio money,
22. primary key(Id_Evento,Fecha) 55. Costo_Total_Invertido money,
23. ); 56. Precio_Venta money,
57. primary
24. create table Premios( key(Id_Ejemplar,Id_Criadero)
25. Id_Ejemplar int not null,
26. Id_Criadero int not null, 58. );
27. Id_Evento int not null,
28. Premio varchar(100) not null, 59. create table Criaderos(
29. Fecha date, 60. Id_Criadero int not null,
30. primary 61. Nombre varchar(255) not null,
key(Id_Ejemplar,Id_Criadero,Id_E 62. Direccion varchar(255),
vento,Premio), 63. Telefono varchar(255) not null,
64. Contacto_Principal varchar(255),
65. primary key(Id_Criadero) 74. primary
66. ); key(Id_Ejemplar,Id_Criadero,Fech
a_Traslado)
75. );
67. create table Alquiler(
68. Id_Ejemplar int not null,
69. Id_Criadero int not null,
70. Fecha_Traslado date not null, 76. select * from criaderos;
71. Fecha_Devolucion date not null, 77. drop table Cuadras;
72. Monto_Pagado money not null,
73. Ingreso bit not null, 78. drop database equinox;

"Presentación 2, Creación Equinox, Script 1" hasta Script 15

1. ¿Cuántos ejemplares tiene RSC agrupados por sexo, raza y destino? Genere una vista
llamada EjemplaresPropios para contestarlo.
2. Las instalaciones de RSC cuentan con 14 corrales, al momento ¿cuántos tenemos ocupados
y cuantos disponibles?
3. ¿Cuáles ejemplares con características reproductivas tiene RSC ordenados por nombre? Use
la vista EjemplaresPropios para contestarlo.
4. ¿Detecta alguna inconsistencia en los datos? ¿Si sí, cuál?- ¿Cómo se puede corregir y
prevenir?
5. ¿Cuál es el balance que tenemos del alquiler de ejemplares del año pasado?, indicar la
cantidad y si el balance es positivo o negativo. Genere una tabla temporal llamada
#TempBalance para contestarlo.
6. ¿Cuáles razas diferentes puede RSC desarrollar con sus propios ejemplares? Use la vista
EjemplaresPropios para contestarlo.
7. ¿Cuáles razas diferentes puede RSC desarrollar únicamente con ejemplares alquilados? Use
la vista EjemplaresPropios para contestarlo.
8. ¿Cuánto tendríamos que invertir aproximadamente si a una yegua se le invierten 1800
pesos mensuales y a un semental 550 semanales?
9. ¿Cuáles razas diferentes puede RSC desarrollar con los ejemplares de los que dispone ya
sean propios o alquilados?
10. Presente un plan de cruzas para el próximo año considerando maximizar el número de crías
y minimizar el costo sabiendo que todas las yeguas no están preñadas.
11. ¿Cuáles ejemplares propios están sin probabilidades de producir alguna cría en la situación
actual?
12. ¿Qué decisiones podemos tomar en base a estos ejemplares?
13. Agregue el modelado necesario para que identifiquemos las yeguas preñadas y su probable
fecha de alumbramiento
14. Agregue el modelado para incluir control de nuestras cuentas y movimientos bancarios
15. Agregue el modelado para incluir control de nuestras ventas
use Equinox;
select * from Alquiler;
select * from Criaderos;
select * from Cuadras;
select * from Razas;
select * from Cruzas;
select * from EjemplaresPropios;

/* Volver Cuadras */
-- Llenar tabla
insert into Cuadras2 select * from Cuadras;
-- Cambiar nulos a
update Cuadras2 set Corral = null where Corral=0;

drop table Cuadras;

-- Cuantos ejemplares tenemos San Cristobal?


select count(*) from Cuadras where Id_Criadero = 1;
select count(*) as CantEjemplares, Cr.Nombre as Criadero from Cuadras C inner join
Criaderos Cr
on C.Id_Criadero = Cr.Id_Criadero group by Cr.Nombre;

/* 1.¿Cuántos ejemplares tiene RSC agrupados por sexo, raza y destino? */


CREATE VIEW EjemplaresPropios AS
SELECT *
FROM Cuadras where Cuadras.Id_Criadero=1;

select * from EjemplaresPropios;

-- Cuántos ejemplares tenemos agrupados por sexo, raza y destino.


SELECT count(*) as Cantidad, R.descripcion AS Descripcion, EP.Sexo,
EP.Destino
FROM EjemplaresPropios EP inner join Razas R on EP.Raza=R.Id_Raza
group by R.descripcion, EP.Sexo, EP.Destino;

/* 2. Las instalaciones de RSC cuentan con 14 corrales, al momento


¿cuántos tenemos ocupados por ejemplares propios? */
select count(*) from EjemplaresPropios where Corral is not null;

-- Cuántos están ocupados por ejemplares alquilados?


select count(*) from Cuadras where Corral is not null and Id_Criadero<>1;

-- Cuántos tenemos libres?


select 14-count(*) as Corrales_libres from Cuadras where Corral is not null;

/* 3. ¿Cuáles ejemplares con características reproductivas tiene RSC ordenados (por


nombre)?
Use la vista EjemplaresPropios para contestarlo. */
select count(*) as cantEjemplares, EP.Nombre from EjemplaresPropios EP
where (Sexo='Caballo' and Edad>=3) Or (Sexo='Yegua' and (Edad between 4 and
20))
group by EP.Nombre;

-- ¿Cuantos ejemplares tenemos contemplado para reproduccion?


select count(*) as cantEjemplares, EP.Nombre from EjemplaresPropios EP
where Destino = 'Semental' or Destino = 'Reproducción'
group by EP.Nombre;

-- Para caballitos

CREATE VIEW EjemplaresNoReproductivos AS


update EjemplaresPropios
set Destino='Venta'
select * from EjemplaresPropios EP
where (Sexo='Caballo' and (Edad<3 or Edad>25))
union
select * from EjemplaresPropios EP
where (Sexo='Yegua' and (Edad<4 or Edad>20));
-- and (Edad <=4 and Ejemplar_San_Cristobal = 0);

-- Buena práctica: Primero realizar la consulta y después realizar el update


Select * from EjemplaresNoReproductivos
where Edad <=4 and Ejemplar_San_Cristobal = 0;

Update EjemplaresNoReproductivos
set destino='VENTA'
where Edad <=4 and Ejemplar_San_Cristobal = 0;

Create Trigger
ValidaDestino
ON
Cuadras
After
Insert, update
As
If exists(
select
*
From
EjemplaresPropios EP
Where
(((Ep.sexo='Caballo' and (Edad<3 or Edad>25))
OR (Sexo='Yegua' and (Edad<4 or Edad>20))) AND (Destino not in
('Venta','Crianza')))
)
BEGIN
Raiserror('No se puede asignar ese destino al ejemplar', 16, 1);
ROLLBACK TRANSACTION;
RETURN
END;

/* 5.¿Cuál es el balance que tenemos del alquiler de ejemplares del año pasado?,
indicar la cantidad y si el balance es positivo o negativo.
Genere una tabla temporal llamada #TempBalance para contestarlo. */
Declare @FechaIni Date,
@FechaFin Date,
@Anio int;

Set @Anio = (select Datepart(year, GETDATE()));


set @FechaIni = (Select(cast(CONCAT(@Anio-1,'-01-01')as date)));
set @FechaFin = (Select(cast(CONCAT(@Anio-1,'-12-31')as date)));
select sum(Monto_Pagado) as Monto
into #TempBalance
From Alquiler A
where
A.Fecha_Traslado between @FechaIni and @FechaFin
AND Ingreso = 1
UNION
select sum(Monto_Pagado)*-1 as Balance
From Alquiler A
where
A.Fecha_Traslado between @FechaIni and @FechaFin
AND Ingreso = 0;

--Pregunta 6

--Punto 1 ---
select distinct R.Descripcion from Razas R inner join Cruzas C on C.Cruza =
R.Id_Raza inner join Ejemplares_Propios EP on C.Raza_1=EP.Raza inner join
Ejemplares_Propios EP1 on C.Raza_2=EP1.Raza
where
EP.Sexo <> EP1.Sexo
and EP.Destino in ('Reproducción','Semental')
and EP1.Destino in ('Reproducción','Semental')
union

--Punto 2 Padre y madre de la misma raza


SELECT distinct R.descripcion as Raza
FROM Ejemplares_Propios EP1
inner join Razas R on R.Id_Raza= EP1.Raza
inner join Ejemplares_Propios EP2
on EP1.Raza = EP2.Raza
WHERE
EP1.Sexo <> EP2.Sexo
and EP1.Destino in ('Reproducción','Semental')
and EP2.Destino in ('Reproducción','Semental')
union

--Punto 3 1 padre de una raza y otro de otra raza compatible


select DISTINCT r.Descripcion
FROM
Ejemplares_Propios E1
INNER JOIN Cruzas C ON C.Cruza = E1.Raza
INNER JOIN Ejemplares_Propios E2 ON (E2.Raza = C.Raza_1 or E2.raza =
C.Raza_2)
INNER JOIN Razas r on r.Id_Raza = E1.Raza
WHERE
E2.Sexo <> E1.Sexo
AND E1.Destino IN ('Semental','Reproducción')
AND E2.Destino IN ('Semental','Reproducción')

order by 1;
--Pregunta 7

create view Ejemplares_No_Propios as select * from Cuadras where


Id_Criadero <> 1;
--Punto 1
select distinct R.Descripcion from Razas R inner join Cruzas C on C.Cruza =
R.Id_Raza inner join Ejemplares_No_Propios EP on C.Raza_1=EP.Raza inner join
Ejemplares_No_Propios EP1 on C.Raza_2=EP1.Raza
where
EP.Sexo <> EP1.Sexo
and EP.Destino in ('Reproducción','Semental')
and EP1.Destino in ('Reproducción','Semental')

--Punto 2 Padre y madre de la misma raza


SELECT distinct R.descripcion as Raza
FROM Ejemplares_No_Propios EP1
inner join Razas R on R.Id_Raza= EP1.Raza
inner join Ejemplares_No_Propios EP2
on EP1.Raza = EP2.Raza
WHERE
EP1.Sexo <> EP2.Sexo
and EP1.Destino in ('Reproducción','Semental')
and EP2.Destino in ('Reproducción','Semental');

--Punto 3 1 padre de una raza y otro de otra raza compatible


select DISTINCT r.Descripcion
FROM
Ejemplares_No_Propios E1
INNER JOIN Cruzas C ON C.Cruza = E1.Raza
INNER JOIN Ejemplares_No_Propios E2 ON (E2.Raza = C.Raza_1 or E2.raza =
C.Raza_2)
INNER JOIN Razas r on r.Id_Raza = E1.Raza
WHERE
E2.Sexo <> E1.Sexo
AND E1.Destino IN ('Semental','Reproducción')
AND E2.Destino IN ('Semental','Reproducción')

---- Punto 13. Agregue el modelado necesario para que identifiquemos las yeguas
preñadas y su probable fecha de alumbramiento

create table Nacimientos(


IdYegua int not null,
IdCriadero int,
FechaCruza date not null,
Fecha_probable_alumbramiento date,
CONSTRAINT PK_IdYegua primary key (IdYegua),
);
----Punto 14. Agregue el modelado para incluir control de nuestras cuentas y
movimientos bancarios

--ALTER TABLE Nacimientos add constraint fk_Nacimientos_IdYegua FOREIGN


KEY(Id_Raza1) references Razas (idRaza)

create table Cuentas(


IdCuenta INT NOT NULL,
IdCriadero INT not null,
NoCuenta VARCHAR(20) not null,
Banco VARCHAR (50) not null,
CLABE VARCHAR(50) not null,
CONSTRAINT PK_IdCuenta primary key (IdCuenta),
);

create table Movimientos(


IdMovimiento int not null,
IdCtaOrigen int not null,
IdCtaDestino int not null,
Cantidad float not null,
Naturaleza varchar(50),
Fecha date not null,
Transferencia int,
CONSTRAINT PK_IdMov primary key (IdMovimiento),
);

CIERRE

CONCLUSIONES

De acuerdo a lo visto con anterioridad, me doy cuenta que un sinfín de conceptos que son básicos,
no los tenía claros y ahora que tuve la oportunidad de investigarlos, analizarlos y buscar ejemplos
logré aprender de una forma integral. Asimismo, mediante el cuadro mágico de Gartner, logré
inmiscuirme dentro de las ventajas y desventajas de los grandes emporios de la industria dentro de
las telecomunicaciones. Finalmente, la continua práctica a través de los scripts, fortaleció mis
habilidades en la creación y manejo de Bases de Datos.

REFERENCIAS

[1] (A. 2018,04. Concepto de Dato en informática. Equipo de Redacción de Concepto.de. Obtenido
2018,09, de https://concepto.de/dato-en-informatica/)

[2] CONCEPTO DEFINICION, E. I. (2011). ¿Qué es Información? - Su Definición, Concepto y


Significado. Retrieved September 8, 2018, from https://conceptodefinicion.de/informacion/

[3] Ciencias y Técnicas Estadísticas. (2014). TEMA 2: El modelo relacional. México, Ciudad de México.
Retrieved from
http://informatica.uv.es/estguia/ATD/apuntes/teoria/documentos/ModeloRelacional.pdf

[4] Power Data. (2015)¿Qué es el sistema manejador de bases de datos? Retrieved September 8,
2018, from https://blog.powerdata.es/el-valor-de-la-gestion-de-datos/bid/406549/qu-es-el-
sistema-manejador-de-bases-de-datos

[5] SEARCH DATA CENTER. (2015). ¿Qué es Sistema de gestión de bases de datos relacionales
(RDBMS)? - Definición en WhatIs.com. Retrieved September 8, 2018, from
https://searchdatacenter.techtarget.com/es/definicion/Sistema-de-gestion-de-bases-de-datos-
relacionales-RDBMS

[6] David Martinez. (2012). Definicion de campo registro base de datos datawarehouse | Estructura
de datos. Retrieved September 8, 2018, from http://estructura-
davomtz92.blogspot.com/2012/10/definicion-de-campo-registro-base-de.html

[7] Diego Rafael Llanos Ferraris. Fundamentos de informática y programación en C. Paraninfo. ISBN 978-84-
9732-792-3. Consultado el 16 de noviembre de 2017.

[8] Markus Winand. (2010). Anatomía de un índice SQL: ¿Que es un índice SQL? Retrieved
September 9, 2018, from https://use-the-index-luke.com/es/sql/índice-anatomía

[9] IBM. (2014). IBM Knowledge Center - Vistas de base de datos. Retrieved September 9, 2018,
from
https://www.ibm.com/support/knowledgecenter/es/SSLKT6_7.6.0/com.ibm.mt.doc/configur/c_vi
ews.html

[10] Autores: Julián Pérez Porto y Ana Gardey. Publicado: 2010. Actualizado: 2012.
Definicion.de: Definición de SQL (https://definicion.de/sql/)

[11] Microsoft. (2014). Conceptos básicos sobre bases de datos - Access. Retrieved September 9,
2018, from https://support.office.com/es-es/article/conceptos-básicos-sobre-bases-de-datos-
a849ac16-07c7-4a31-9948-3c8c94a7c204

[12] «Basic Elements of Oracle SQL: Data Types». Oracle Database SQL Language Reference 11g
Release 2 (11.2). Oracle Database Documentation Library. Redwood City, CA: Oracle USA, Inc.
Consultado el 8 de junio de 2016.

[13] Oracle. (2018). Trigger (base de datos) - Wikipedia, la enciclopedia libre. Retrieved September
9, 2018, from https://es.wikipedia.org/wiki/Trigger_(base_de_datos)#Enlaces_externos

[14] Oracle. (2018). Trigger (base de datos) - Wikipedia, la enciclopedia libre. Retrieved September
9, 2018, from https://es.wikipedia.org/wiki/Trigger_(base_de_datos)#Enlaces_externos

[15] ANALISIS Y PROGRAMACION. (2014). Análisis y Programación: Crear trabajos (Jobs) con SQL
Server 2014. Retrieved September 9, 2018, from
https://analisisyprogramacionoop.blogspot.com/2016/01/trabajos-jobs-sql-server-2014.html

[16] CIDECAME UAEH. (2014). 5.1.3 Diferencia entre una Base de Datos Centralizada y una
Distribuida. Retrieved September 9, 2018, from
http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro21/513_diferencia_entre_una_base_de_
datos_centralizada_y_una_distribuida.html

[17] GARTNER. (2017). Magic Quadrant para sistemas de gestión de base de datos operativas.
Retrieved September 9, 2018, from https://www.gartner.com//technology/media-
products/reprints/microsoft/1-4K1D44S-ESL.html

[18] MICROSOFT. (2008). Guía Práctica de SQL Server 2008 para profesionales de Oracle. ESTADOS
UNIDOS. Retrieved from https://www.danysoft.com/free/SQLServer2008forOracle.pdf
[19] Wikipedia. (2018). Lenguaje de definición de datos. Retrieved September 9, 2018, from
https://es.wikipedia.org/wiki/Lenguaje_de_definición_de_datos

[20] POSTGRE SQL. (2014). Diferencias entre DDL, DML y DCL - TodoPostgreSQL. Retrieved
September 9, 2018, from https://todopostgresql.com/diferencias-entre-ddl-dml-y-dcl/

[21] IBM. (n.d.). IBM Knowledge Center - Sentencia GRANT (Autorizaciones de base de datos).
Retrieved September 9, 2018, from
https://www.ibm.com/support/knowledgecenter/es/SSEPGG_8.2.0/com.ibm.db2.udb.doc/adm
in/r0000958.htm

[22] GEO TALLERES. (n.d.). Conceptos básicos de SQL — documentación de geotalleres-teoria -


1. Retrieved September 9, 2018, from https://geotalleres.readthedocs.io/es/latest/conceptos-
sql/conceptos_sql.html

[23] Microsoft. (n.d.). REVOKE (permisos de entidad de seguridad de base de datos de Transact-
SQL) | Microsoft Docs. Retrieved September 9, 2018, from https://docs.microsoft.com/es-
es/sql/t-sql/statements/revoke-database-principal-permissions-transact-sql?view=sql-server-
2017

[24] IBM Knowledge Center - SELECT. (n.d.). Retrieved September 9, 2018, from
https://www.ibm.com/support/knowledgecenter/es/SS9UMF_12.1.0/ref/ref/tpc/dsq_select.htm
l