Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Primer Departamental
09/Septiembre/2018
ALUMNA:
PROFESOR:
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]
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]
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
• 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.
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]
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]
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]
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].
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].
“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].
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].
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].
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].
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].
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].
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].
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].
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.
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.
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].
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].
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
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.
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]
Este comando crea un objeto dentro del gestor de base de datos. Puede ser una base de datos,
tabla, índice, procedimiento almacenado o vista.
Nombre VARCHAR(50),
Apellido VARCHAR(50),
Direccion VARCHAR(255),
Ciudad VARCHAR(60),
Telefono VARCHAR(15),
Edad (2),
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:
Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla.
Forma básica:
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
Autorización
.-,----------------------------------.
V |
>--TO----+-+-------+--nombre-autorización-+-+------------------><
| +-USER--+ |
| '-GROUP-' |
'-PUBLIC-------------------------'
Revoca permisos concedidos o denegados para un usuario de base de datos, un rol de base de
datos o un rol de aplicación
<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.
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:
Ejemplos
Cada uno de los ejemplos siguientes incluye una subconsulta, que aparece resaltada.
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:
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:
+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| maria | 222 | REDHAT | 10 |
| jesus | 4444 | NOVELL | 20 |
| jesus | 4444 | SUN | 30 |
| NULL | NULL | FORD | 100 |
+--------+----------+--------+----------+
que mostrará:
+--------+----------+--------+----------+
| nombre | telefono | accion | cantidad |
+--------+----------+--------+----------+
| jose | 111 | NULL | NULL |
| manuel | 333 | NULL | NULL |
| NULL | NULL | FORD | 100 |
+--------+----------+--------+----------+
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:
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.
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:
GROUP BY
Combina los registros con valores idénticos, en la lista de campos especificados, en un único
registro:
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:
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*;
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:
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:
Ejemplo (asumiendo que ‘nombre’ y ‘número’ son las únicas columnas de la tabla
‘agenda_telefonica’):
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
SELECT expresiones
INTO nueva_tabla
FROM tabla
[WHERE condiciones];
Presentación 2, concepto de Insert… Into [22]
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
____________________________________________________________________________________
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;
-- Para caballitos
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;
--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
order by 1;
--Pregunta 7
---- Punto 13. Agregue el modelado necesario para que identifiquemos las yeguas
preñadas y su probable fecha de alumbramiento
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/)
[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
[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