Fundamentos de Analisis de Datos
Fundamentos de Analisis de Datos
Fundamentos de Analisis de Datos
Lectura fundamental
Bases de datos
Contenido
2 Modelos de datos
Palabras clave: base de datos, sistemas de gestión de archivos, sistema de gestión de bases de datos (SGBD),
sistema de base de datos, metadatos, modelo de datos.
1. Conceptos de las bases de datos
En los negocios y en la vida cotidiana, las bases de datos están presentes desde antes de la apropiación
de las tecnologías de la información en la sociedad. Guardar los teléfonos y direcciones de clientes
en una libreta, registrar las transacciones de una empresa o mantener un registro de inventarios,
son actividades que en el pasado se han llevado a cabo con la ayuda de libretas, fichas o algún otro
mecanismo de registro. En general, los mencionados son ejemplos de bases de datos, aun cuando no
estén soportados sobre plataformas computacionales. En general, una base de datos puede utilizarse
manualmente o aprovechando herramientas informáticas.
De acuerdo con Date (2001), una base de datos es “un conjunto de datos persistentes que es
utilizado por los sistemas de aplicación de alguna empresa dada” (Date, 2001, p.10). Es importante
aclarar que la palabra empresa se refiere a cualquier sujeto que haga uso de la base de datos como
tal. Para complementar la anterior definición, según Elmasri y Navathe (2007), una base de datos
“es una colección de datos relacionados. Con la palabra datos nos referimos a los hechos (datos)
conocidos que se pueden grabar y que tienen significado implícito” (Elmasri y Navathe, 2007, p.4).
Es de resaltar que, para aclarar estas definiciones, es necesario mencionar las siguientes propiedades
de las bases de datos (Elmasri y Navathe, 2007):
1. Representa algún aspecto del mundo real (UoD, universo del discurso).
Según lo anterior, una base de datos no es una serie de datos aleatorios. Estos provienen de un origen
dado y tiene una aplicación dada. Como se verá a continuación, el uso de sistemas informáticos
permite un mejor registro, acceso y modificación de los datos, para su mejor aprovechamiento.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 2
1.2. Sistemas de gestión de archivos
Aún en nuestros días, es común encontrar oficinas que almacenan y procesan sus datos haciendo uso
de archivos tradicionales. Así, por ejemplo, muchas empresas llevan el registro de sus operaciones
en hojas de cálculo o archivos de texto. Sin embargo, este tratamiento de la información representa
algunos inconvenientes, los cuales se señalan a continuación:
• Falta de relaciones entre datos: es común que, de acuerdo con su utilidad, los datos sean
almacenados en archivos diferentes. Esto conlleva a que sea difícil establecer relaciones entre
los datos como tal, que permitan aprovechar los recursos de información.
• Pérdida de integridad referencial: de la misma manera, tener diversos archivos que manejen
información distinta pero relacionada, implica la aparición de problemas de consistencia entre
los datos.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 3
Por otra parte, cuando las bases de datos están soportadas sobre sistemas computacionales, las
aplicaciones adecuadas para administrar las bases de datos se denominan sistemas de gestión de bases
de datos (SGBD).
Un sistema de gestión de bases de Datos (o en inglés Database Management System – DBMS), es:
“Una colección de programas que permite a los usuarios crear y mantener una base de datos. Es
un sistema de software de propósito general que facilita los procesos de definición, construcción,
manipulación y compartición de las bases de datos entre varios usuario y aplicaciones” (Elmasri y
Navathe, 2007, p.5).
En otras palabras, son aquellos programas informáticos orientados, de manera específica, a definir,
construir y manipular datos por parte de uno o varios usuarios de manera simultánea y efectiva. En
el mercado encontramos algunos ejemplos de sistemas de gestión de bases de datos como: Oracle
Database, Microsoft SQL Server, MySQL, PostgreSQL, DB2 e incluso Access orientado a uso
personal y de pequeños negocios, el cual viene incluido en la suite de Office de Microsoft.
Es importante indicar que los SGBD, para poder efectuar sus tareas, definen a su vez información
acerca de los datos y de la estructura en que estos son almacenados. Dicho de otro modo, son datos
acerca de los datos que están almacenados; a los que se denominarán metadatos.
De acuerdo con Elmasri y Navathe (2007), se entiende como sistema de bases de datos a la
integración entre una base de datos (es decir, los datos e información como tal) y un sistema de
gestión de bases de datos. En estos sistemas, por lo general, se generan consultas para recuperar la
información almacenada y transacciones en las cuales se almacena o modifica información. La Figura
1 muestra la relación entre los conceptos mencionados.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 4
Figura 1. Entorno de un sistema de bases de datos
Fuente: elaboración propia
2. Modelos de datos
Un modelo de datos es una “colección de conceptos que se pueden utilizar para describir la estructura
de una base de datos” (Elmasri y Navathe, 2007, p.28). Estas incluyen las operaciones necesarias para
recuperar y actualizar los datos. Asimismo, por estructura de una base de datos entenderemos “los tipos de
datos, relaciones y restricciones que deben mantenerse para los datos” (Elmasri y Navathe, 2007, p.28).
1. Modelos de alto nivel o modelos conceptuales, que representan más la forma en que los usuarios
se relacionan con los datos.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 5
3. Modelos de bajo nivel o modelos físicos, que son más parecidos a la manera en que se
almacenan los datos en el sistema.
En este tipo de modelo se emplean los conceptos de entidad, atributo y relación. Se entiende por
entidad un objeto de la realidad; por atributos, a aquellas propiedades o características de la entidad
y que la definen; y por relación entenderemos la asociación que se da entre dos o más entidades.
Así, por ejemplo, una entidad puede ser el “cliente” o el “producto” de una compañía; los atributos
de la entidad “cliente” pueden ser “edad”, “estado”, “teléfono” o “dirección” y una relación puede
estar dada por los productos que ha adquirido un cliente. Un modelo representativo de los modelos
conceptuales es el de entidad-relación (Figura 2), que se desarrollará más adelante.
Estos, también denominados modelos lógicos, están más enfocados en las operaciones, que en la
descripción de la realidad. Entre estos modelos tenemos el modelo de datos jerárquico, el modelo de
datos de red, el modelo de datos relacional y el modelo de datos de objetos, los cuales se describen de
manera breve a continuación:
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 6
Organiza los registros en una estructura de árbol y emplea segmentos padre e hijo. Cada segmento es
equivalente a un registro de archivo (Figura 3). Entre las ventajas del modelo jerárquico tenemos
que promueve compartir datos, la simplicidad conceptual, la integridad y la eficiencia en las
relaciones 1:M (uno a muchos). Por otro lado, hace de la navegación algo complejo, no está
estandarizado, no posee un lenguaje de manipulación de datos y no permite tener múltiples padres
ni relaciones M:N (muchos a muchos).
A diferencia del modelo anterior, el de datos en red permite la presencia de múltiples padres, pues
posibilita los enlaces que establecen relaciones entre los registros (Figura 4). En este caso, las
relaciones son binarias y es posible tener múltiples relaciones que parten de un mismo registro.
Entre las ventajas de este modelo encontramos que promueve la integridad de las bases de datos
y se ajusta a los estándares y lenguajes de definición y manipulación de los sistemas de gestión de
bases de datos.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 7
Figura 4. Ejemplo de modelo de datos de red
Fuente: elaboración propia
El modelo de datos relacional fue propuesto por Edgar Frank “Ted” Codd (Codd, 1990), en los años
70. Utilizó el concepto de relación matemática (tabla), basándose en la teoría de conjuntos y la lógica
de predicados. Hoy es uno de los principales paradigmas en el diseño de bases de datos (Figura 5).
El principal concepto del modelo relacional es el uso de relaciones denominadas tuplas, que en la
práctica se encuentran en tablas compuestas por registros o tuplas organizadas en filas (una fila será
entonces una tupla o registro); cada columna correspondería a un campo (Todd, 1976). Entre las
ventajas de este modelo está su facilidad en el diseño, implementación, utilización y administración;
así como su capacidad de acomodarse a lenguajes como SQL y su poder de mantener la integridad
referencial. Por otro lado, requiere de una sólida capacitación a los usuarios.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 8
Figura 5. Ejemplo de modelo relacional
Fuente: elaboración propia
Debido al desarrollo de los lenguajes orientados a objetos, como C#, Java C++, entre otros,
en ocasiones existían ciertas dificultades de adaptar las estructuras de datos de los sistemas de
administración de bases de datos a las clases y objetos utilizados en los lenguajes de programación.
Por esta razón, surgió el grupo de modelos de datos de objetos: ODMG (por sus siglas en inglés)
(Object Data Management Group, 2017).
Las bases de datos orientadas a objetos se diseñan para trabajar bien en conjunción con lenguajes
de programación orientados a objetos, como Java, C#, Visual Basic.NET y C++. Los ODBMS usan
exactamente el mismo modelo que estos lenguajes de programación. De la misma forma, modelos
como los mencionados en los apartados anteriores tienen deficiencias en cumplir los requerimientos
de los sistemas de información geográfica, sistemas de diseño y manufactura asistidos por
computador o multimedia (Figura 6).
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 9
Contar con un modelo orientado a objetos mejora el rendimiento y la consistencia de los datos
cuando se integran con lenguajes de programación.
Es un modelo ampliamente utilizado para el intercambio electrónico de datos en Internet. Utiliza una
estructura a manera de árbol jerárquico con el apoyo de etiquetas (Figura 7).
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 10
<libros>
<libro ISBN= “213123123”>
<titulo>Los días y noches</titulo>
<autor>Luis Díaz</autor>
</libro>
<libro ISBN= “2133424323”>
<titulo>La caza del enemigo</titulo>
<autor>Pepe Suárez</autor>
</libro>
<libro ISBN= “2131234545”>
<titulo>El ultimo amigo</titulo>
<autor>Javier Sánchez</autor>
</libro>
<libro ISBN= “2145345429”>
<titulo>Cuando los cóndores anidan</ti-
tulo>
<autor>Miguel de la Vega</autor>
En este se describe de forma detallada cómo están almacenados físicamente los datos. Incluye
aspectos relacionados con el lugar de almacenamiento de datos, las rutas de acceso, los archivos, los
caracteres separadores, etc.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 11
3.2. Nivel conceptual
Este se centra de manera principal en describir las entidades, atributos, relaciones, operaciones, tipos
de datos y restricciones de la base de datos, sin tener en cuenta los aspectos físicos de esta.
Se enfoca en cómo los usuarios tienen acceso a la información suministrada por la base de datos.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 12
4. Bases de datos NoSQL
EL término NoSQL proviene de “Not Only SQL”. Corresponde a una nueva generación de sistemas
de gestión de bases de datos, que busca superar las limitaciones de las bases de datos relacionales. En
general, estas últimas están orientadas a administrar datos estructurados, con un formato fijo y unos
campos muy bien definidos. Sin embargo, en el entorno actual de Internet y de grandes volúmenes
de datos, se requiere mayor flexibilidad en el manejo de los datos. Así, NoSQL maneja tanto los datos
estructurados como los no estructurados. NoSQL está enfocado a proporcionar:
• Escalabilidad
• Rendimiento
• Alta disponibilidad
• Esquema libre
• Fácil replicación.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 13
Referencias
Codd, E. F. (1990). The Relational Model for Database Management. USA: Addison - Wesley
Publishing Company.
Date, C. (2001). Introducción a los sistemas de bases de datos. Naucalpan de Juárez, México:
Pearson Education.
Todd, S. J. P. (1976). The Peterlee Relational Test Vehicle #x2014;a system overview. IBM Systems
Journal, 15(4), 285–308. https://doi.org/10.1147/sj.154.0285
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 14
INFORMACIÓN TÉCNICA
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 15
Unidad 1 / Escenario 2
Lectura fundamental
Contenido
Palabras clave: modelo entidad-relación o modelo ER, modelo relacional, entidad, conjunto de entidades, atributo o
propiedad, relación o vínculo, clave primaria, grado de una relación.
Introducción
Así como para construir un edificio es necesario tener claro cuál va a ser su utilidad, para la
elaboración de un diseño y establecer cómo se puede realizar la construcción -en térmicos técnicos-
de una base de datos, es importante tener claras las necesidades del cliente, establecer un diseño
adecuado y determinar cuál es la mejor manera de implementarla.
De forma análoga, cuando se desea establecer una base de datos, es necesario tener claro cuál es la
necesidad por la que el cliente desea desarrollarla. Determinar los requerimientos del cliente de forma
adecuada es fundamental para que los diseñadores de bases de datos y los desarrolladores construyan
una solución que se ajuste a estas necesidades de la mejor manera. Para el desarrollo de una base
de datos, frecuentemente se tienen en cuenta las siguientes fases: definición del sistema, diseño,
implementación, carga y conversión de datos, conversión de aplicaciones, prueba y validación, puesta
en marcha, monitorización y mantenimiento (Figura 1).
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 2
En general podemos establecer tres niveles de abstracción en el diseño de una base de datos, así:
• El diseño conceptual
• El diseño lógico
• El diseño físico
1.1.1. Entidades
Se denomina entidad a “una cosa del mundo real con una existencia independiente” (Elmasri y
Navathe, 2007, p.55). Puede representar productos, clientes, empleados, etc. En el diagrama ER se
representa normalmente por un rectángulo de línea sencilla (Figura 2).
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 3
E
Cuando la entidad no tiene atributos clave propios (Elmasri y Navathe, 2007, p.67), es decir, no
tiene clave primaria y su existencia depende de la presencia de una identidad regular, tenemos lo que
se denomina una entidad débil. En lugar de clave primaria, la entidad débil tendrá una clave parcial a
la que se le denomina también discriminador. Así, la clave parcial estará compuesta en realidad por la
clave primaria de la entidad fuerte y el discriminador. En el diagrama ER se representa normalmente
por un rectángulo de línea doble (Figura 3).
Un conjunto de entidades corresponde a “un contenedor lógico para las instancias de un tipo de
entidad y las instancias de cualquier tipo que se deriven de ese tipo de entidad” (Microsoft, 2017).
Como se verá más adelante, la instancia de una entidad corresponderá a una fila de una tabla, la cual
equivaldrá al conjunto de entidades como tal. Cada instancia tendrá los atributos del conjunto de
entidades y una clave única dentro de este, y no estará presente en otro conjunto de entidades. En el
modelo conceptual no se definen las instancias de las entidades, por lo cual no se requiere representar
el conjunto de entidades dentro de este.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 4
1.1.3. Atributos
Un atributo, también denominado propiedad, es la “información que deseamos registrar sobre las
entidades” (Date, 2001, p.13). Por ejemplo, el conjunto de entidades estudiante poseería los atributos
número de identificación, apellidos, nombres y grado, lo que se representa así:
En el diagrama ER, el atributo o propiedad se representa normalmente por una elipse (Figura 4).
• Simple: son aquellos que no se pueden dividir; por ejemplo, número cédula.
• Compuesto: está constituido por varios atributos; por ejemplo, dirección_empleado puede estar
conformado por número_calle, número_carrera, número_apto, bloque, etc.
1.1.4. Claves
Asimismo, si el atributo corresponde a un identificador del registro, es decir, dos elementos del mismo
conjunto de entidades no pueden compartir el valor de ese atributo y, como veremos más adelante,
dos filas de una tabla no pueden tener este valor repetido -pues identifica el registro como tal-,
estamos haciendo referencia a un atributo que corresponde a una clave primaria. En el diagrama ER
se representa por una elipse en la que el atributo está subrayado por una línea continua (Figura 5).
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 5
A
_A_
1.1.5. Relaciones
Además de las entidades que incluyen atributos, tenemos las relaciones. Una relación o vínculo
corresponde a la interacción que tienen dos o más entidades. El grado de una relación se determina
por la cantidad de tipos de entidades participantes. Si, por ejemplo, están involucrados dos tipos de
entidad, se denominará binaria; y si están involucrados tres tipos de entidad, ternaria. En el diagrama
ER estas relaciones se representarán por un rombo y línea que las conectan con las entidades
(Figuras 7 y 8).
E1 R E2
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 6
E1 R E2
E3
Si la entidad es débil, se entenderá que es una relación de identificación y su símbolo será un rombo
con doble línea (Figura 9).
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 7
La razón de cardinalidad N:M en la relación binaria COMPRA, CLIENTE:PRODUCTO, señala que
un cliente puede comprar uno o muchos productos, y a su vez un producto puede ser comprado por
uno o muchos clientes.
Existen ciertas restricciones que pueden darse en la razón de cardinalidad. Por un lado, tenemos la
dependencia de existencia o participación total, que consiste en que para que tengamos instancias
de una entidad es necesario que exista una instancia de otra; es decir, cada entidad de un conjunto
de entidades participa al menos en una relación del conjunto de relaciones. Por ejemplo, para tener
una instancia de empleado debe existir una instancia de departamento en el que trabaje (no podemos
tener un empleado que no pertenezca a un departamento). Por otro parte, tenemos las restricciones
de participación o participación parcial en la que solo algunas entidades del conjunto de entidades
participan en las relaciones del conjunto de relaciones. En este caso, por ejemplo, no todos los
empleados administran un departamento.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 8
1.2. Verificación del diagrama entidad-relación
Para mantener la calidad de los diagramas, se deben incluir ciertas actividades de verificación, las
cuales se describen a continuación.
Una vez establecida la manera en la que el diagrama representa la realidad, se debe verificar que:
Los atributos que determinan cada entidad y cuáles son entidades débiles.
En síntesis, la corrección sintáctica implica que se respete el lenguaje. En ese sentido es aconsejable
utilizar herramientas CASE.
En cuanto a la corrección semántica, esta se asume cuando todos los elementos del problema utilizan
las estructuras que les corresponde. Así, es importante verificar lo siguiente:
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 9
1.2.3. Minimalidad del esquema
Los elementos involucrados en el problema deben aparecer una y solo una vez en el diagrama, de tal
forma que se muestren todos los elementos del mundo real y que estos correspondan a los elementos
del esquema.
Se entiende que un modelo es expresivo cuando de manera natural expresa la realidad empleando
solo la semántica del modelo. Busca determinar cuánto comunica el modelo en términos semánticos.
El diagrama no utiliza más formalismos que los incluidos en el diagrama entidad-relación; en otras
palabras, los elementos gráficos del modelo son suficientes para modelar la realidad.
La abstracción es “el proceso mental que se aplica al seleccionar algunas características y propiedades
de un conjunto de objetos y excluir otras” (Carreño, s.f.). Permite tener una definición más ajustada
a las necesidades de los objetos involucrados en la base de datos. En general, tenemos los siguientes
mecanismos:
Clasificación / instanciación
Agregación / descomposición
Generalización / especialización.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 10
1.3.1. Abstracción por clasificación / instanciación
Una clase en general define un objeto de la realidad, pero no es el objeto de la realidad como tal, sino
solo es la definición del mismo. Un objeto se materializa cuando se crea una instancia. Lo común a
todas las instancias es que posean atributos y métodos comunes a los definidos en la clase. Así, por
ejemplo, la clase vehículo se podría instanciar en un auto rojo e instanciar otro auto azul. Tanto el auto
rojo como el azul, son clasificados como vehículos y son instancias de la clase correspondiente.
Cuando un conjunto de clases constituye una clase que las comprende, hablamos de agregación. Es
decir, por la agregación de clase constituimos una nueva que las comprende. De modo contrario,
cuando de una clase desprendemos clases que la componen hablamos de descomposición. Si
agregamos las partes chasis, carrocería, silla, llanta (en la cantidad de instancias que sea necesario)
obtenemos un automóvil. A su vez, si descomponemos un automóvil, lo podemos hacer en las partes
que corresponden a clases como tal (Figura 11).
Automóvil
Al aplicar la teoría de conjuntos, vemos como algunas clases son parte de un subconjunto de otra.
Así, entendemos como especialización “el proceso de definir un conjunto de subclases de un tipo de
entidad” (Elmasri y Navathe, 2007, p.91).
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 11
Por otro lado, entenderemos como generalización “el proceso inverso de abstracción en el que
eliminamos las diferencias entre distintas entidades, identifiquemos las características comunes y las
generalizamos en una única superclase” (Elmasri y Navathe, 2007, p.93). La Figura 12 muestra un
ejemplo de generalización / especialización.
Vehículo
Aeronave
Los elementos que componen el diagrama relacional son similares a los utilizados en el modelo
entidad-relación; sin embargo, su representación varía, pues busca ajustarse al sistema de gestión de
bases de datos que vamos a emplear.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 12
2.2. Componentes del diagrama relacional
De acuerdo con Date, “dado un conjunto de n tipos o dominios Ti(i=1,2,…,n), que no son
necesariamente todos distintos, r es una relación sobre esos tipos si consta de dos partes: un
encabezado y un cuerpo” (Date, 2001, p.123). Esto corresponde a (aunque no es lo mismo que) una
tabla bidimensional, en la que las filas son los registros y las columnas los campos que corresponden a
los atributos (Tabla 1).
Tabla 1 Ejemplo de tabla para representar una relación
La primera fila o cabecera muestra los nombres de los atributos representados en campos. Las
demás filas o cuerpo reciben el nombre de tupla y almacenan instancias (registros) que pertenecen al
conjunto de entidades representadas por la relación (tabla). El grado de la tabla o grado de una relación
corresponde a la cantidad de campos que posee; por ejemplo, cuatro en la relación de la Tabla 1.
La cardinalidad de una relación corresponderá el número de tuplas que contiene. Nótese que la
cardinalidad varía debido a que continuamente se insertan o eliminan registros. Una relación se
representa a través de una tabla, pero son conceptos diferentes. Por ejemplo, una tabla puede tener
filas repetidas, mientras una relación no puede tener tuplas iguales; por consiguiente, una tabla que
represente una relación no podrá tener filas repetidas.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 13
2.2.2. Dominios
Por dominio entendemos los valores que puede tomar un atributo. Por lo general, en el marco de un
sistema de gestión de bases de datos, el dominio corresponderá a los valores aportados por un tipo de
dato, que es un “conjunto específico de valores de los datos y un conjunto de operaciones que actúan
sobre los datos” (Aguilar, 2008).
Es probable que estos tipos de datos estén definidos por el sistema y por el sistema de gestión de
bases de datos, Así INTEGER, CHAR, VARCHAR, o DATE (Date, 2001) corresponderán a datos
numéricos enteros, caracteres, cadenas de caracteres o fechas correspondientemente. De esta
manera, por ejemplo, si definimos una columna (campo / atributo) denominada fecha_nacimiento
de tipo DATE, su contenido corresponderá a una fecha con las restricciones de sintaxis y de dominio
implicadas. Suponiendo que el formato requerido sea dd-mm-aaaa, colocar a dd un valor inferior a 1 o
superior a 31 (en ocasiones 30 o 28) generaría un error. El siguiente ejemplo de esquema de relación
muestra la manera en que se pueden incluir los dominios:
Por otro lado, también es posible definir un dominio señalando el conjunto de valores que puede
tomar un dato.
2.2.3. Atributos
En el modelo relacional, un atributo corresponde a una columna o campo de una relación. Cada
atributo tendrá por lo tanto un dominio. Si D es el dominio y A el atributo, D es dominio de A y se
denotará:
D=Dom(A)
Dentro de este marco de referencia, un atributo podrá tomar los valores de un domino. Un atributo
estará asociado siempre con una relación y representa una propiedad de la misma, mientras que el
dominio no depende de las relaciones como tal. Así, varios atributos pueden tener el mismo dominio.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 14
2.2.4. Llaves
Para identificar las tuplas o para hacer referencia a ellas, existen las llaves. Podemos clasificar las llaves
en llaves primarias, llaves secundarias y llaves foráneas.
Llave primaria: es el atributo o conjunto de atributos no nulos que identifican una tupla en una relación.
Llave secundaria: es un atributo que no fue seleccionada como llave primaria, pero sus características
son únicas en una relación y corresponden solo a una tupla.
Llave foránea: es un atributo de la relación que corresponde a la llave primaria de otra relación de la
cual es referenciada una tupla.
Cuando una llave foránea de una relación haga referencia a la llave primaria de otra relación, es
necesario que la llave primaria corresponda a una tupla válida en su correspondiente relación. Por esa
razón, se aplican los descriptores PK (primary key) y FK (foreign key) para que la llave foránea no
admita valores nulos.
Lo anterior es importante, debido a que entre las operaciones que podemos ejecutar en una relación
r podemos eliminar una tupla que contenga una llave primaria que corresponda a una llave foránea de
otra relación s. Esto conllevaría a que la llave foránea de s apunte a una tupla inexistente en la relación
r, lo que haría inconsistente el modelo. Por lo tanto, para mantener la integridad referencial podemos
tomar alguna de las siguientes acciones:
Rechazar la modificación.
Asignar un valor nulo a las tuplas de la tabla de referencia s y luego eliminar la tupla
correspondiente en r.
Asignar un valor por defecto a las tuplas de la tabla de referencia s y luego eliminar la tupla
correspondiente en r.
Adicionalmente, es importante tener en cuenta que eliminar una tupla de una relación puede afectar
la integridad referencial de los registros de varias tablas de forma simultánea o en cascada.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 15
2.4. Operaciones relacionales
Son aquellas que se aplican para consultar una relación. Se reconocen las siguientes operaciones
uniarias:
• Selección (select): permite seleccionar un conjunto de tuplas de una relación que satisfaga unas
condiciones dadas. Su notación es σ_(<condicion de selección>) (R).
• Unión (union): dadas las relaciones R y S, crea una nueva relación que incluye todas las tuplas
que están incluidas en las relaciones preexistentes R o en S. Su notación es RuS.
• Intersección (intersection): dadas las relaciones R y S, crea una nueva relación que incluye solo
las tuplas que están en las relaciones preexistentes R y en S. Su notación es R∩S.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 16
• Diferencia (minus): dadas las relaciones R y S, crea una nueva relación que incluye solo las
tuplas que están R, pero que no estén en S. Su notación es R - S.
• Producto cartesiano (cartesian product) o concatenación cruzada (cross join): produce nuevas
tuplas concatenando todas las posibles combinaciones entre n relaciones. Su notación es R X S.
Concatenación (join): combina tuplas de dos relaciones en una sola. Su notación es R⋈<condicion de conexión>(S).
División (division): define una relación sobre el conjunto de atributos C, incluido en la relación R, y
que contiene el conjunto de valores de S, que en las filas de R están combinadas con cada una de las
filas de S. Su notación es R(Z)÷S(Y).
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 17
Así, obtenemos el modelo lógico relacional de un control de salas en un hospital:
El diseño físico de una base de datos consta de cuatro fases, las cuales se describen a continuación.
Se debe conocer la funcionalidad que ofrece el sistema de gestión de bases de datos; soporte de
llaves primarias, foráneas y alternativas; soporte a la definición de datos, dominios y reglas de negocio;
y cómo se crean las relaciones base.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 18
3.1.2. Diseñar las relaciones base para el sistema de gestión de bases de datos
La definición de las relaciones base se hacen a través del lenguaje de definición de datos (LDD) que
corresponde a cada sistema de gestión de bases de datos. Se utiliza información obtenida del diseño
lógico, como:
• Diccionario de datos: lista estructurada de los datos que pertenecen al sistema (Tabla 2).
• Esquema relacional: este incluye relaciones, atributos, llaves primarias y foráneas, y reglas de integridad.
3.1.3. Diseñar las reglas de negocio para el sistema de gestión de bases de datos
Se deben tener en cuenta las restricciones impuestas por las reglas de negocio de la empresa. Por
ejemplo, en el caso del hospital señalado en un apartado anterior, es posible restringir que el número
de camas por salas sea inferior o igual a cinco, y que una sala no puede tener asignados más del
número de camas de la sala. Teniendo esto en cuenta, las restricciones quedarían así:
CONSTRAINT num_camas_chk CHECK (num_camas <=5)
CONSTRAINT pacientes_por_sala CHECK (NOT EXIST (SELECT
Salas_cod_sala FROM Pacientes GROUP BY Salas_cod_sala HAVING
COUNT(*)<num_camas))
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 19
3.1.4. Diseñar el nivel físico
• Espacio en disco: cuánto espacio se requiere para almacenar los datos soportados por el sistema.
• Memoria principal: corresponde al tamaño de la RAM para obtener un buen desempeño del sistema.
Cada día, la seguridad se convierte en un factor crítico dentro de los negocios y organizaciones. Cada
sistema de gestión de bases de datos aporta mecanismos de seguridad. Además, se recomienda:
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 20
Referencias
Aguilar, L. J. (2008). Fundamentos de Programación. Madrid: Mc Graw Hill.
Date, C. (2001). Introducción a los sistemas de bases de datos. Naucalpan de Juárez, México:
Pearson Education.
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 21
INFORMACIÓN TÉCNICA
POLITÉCNICO
POLITÉCNICO GRANCOLOMBIANO
GRANCOLOMBIANO 22
Módulo Teórico-Práctico
Actividad en contexto
Módulo
Nombre de la entrega
Nivel académico
Especialización
Tipo de entrega
Actividad aplicada
Nota
Tenga en cuenta que el tutor le indicará qué herramienta requiere y qué
estrategia deberá desarrollar para evidenciar su participación individual
en un trabajo colaborativo.
DESCRIPCIÓN
DE LA ACTIVIDAD
Aplicar las fases del diseño de bases de datos en la resolución del siguiente caso aplicando los
conceptos del diseño conceptual, diseño lógico y diseño físico.
CASO O PROBLEMA
Usted es contratado para construir una base de datos para la administración de un taller
mecánico.
La base de datos incluirá información acerca de los clientes, los autos, los empleados que
trabajan en el taller y los repuestos utilizados para cada servicio.
POLITÉCNICO GRANCOLOMBIANO
22
La base de datos debe:
PLANTEAMIENTO
DE LA ACTIVIDAD
POLITÉCNICO GRANCOLOMBIANO
33
Unidad 2 / Escenario 3
Lectura fundamental
Normalización
Contenido
1 Introducción
2 Dependencias
3 Normalización
Redundancia: si un autor escribe más de un libro, la nacionalidad del autor se repetirá en todas las
ocasiones.
Anomalías de inserción: si deseamos insertar un libro de un autor que no tengamos no sería posible
pues el id del autor hace parte de la llave primaria.
Anomalía de borrado: si borramos un libro se borran a, la su vez, los datos del autor.
Atributo atómico: se entiende que un atributo es atómico si este no puede dividirse en otros
atributos.
Una manera de solucionar los problemas planteados sería, a partir de la relación ESCRIBE, definir las
siguientes relaciones:
ESCRIBE(IdAutor,ISBN)
A continuación, se describirán una serie de conceptos y técnicas para normalizar una base de datos.
POLITÉCNICO GRANCOLOMBIANO 2
2. Dependencias
Una dependencia es una característica propia del contenido semántico de los datos. Consiste en una
serie de restricciones de usuario en el modelo relacional, que afectan a los atributos en una relación que
se cumplen para cualquier extensión de un esquema de relación. Se representa de la siguiente forma:
R(A,DEP)
Donde R es la relación, A es el conjunto de atributos de la relación y DEP son las dependencias que
existen entre atributos. Entre las dependencias existentes encontramos las siguientes:
• Dependencias de combinación
• Dependencias jerárquicas
• Dependencias multivaluadas
• Dependencias funcionales
Para el desarrollo del curso, nos concentraremos en las dependencias funcionales, las cuales se
describen a continuación.
El concepto de dependencia funcional se puede considerar uno de los más relevantes en la teoría
del diseño del esquema relacional. Una dependencia funcional (DF) es un “vínculo muchos a uno
que va de un conjunto de atributos a otros dentro de una determinada tabla” (Date, 2001, p.330).
También podemos decir que una dependencia funcional es “una restricción que se establece entre dos
conjuntos de atributos de la base de datos” (Elmasri & Navathe, 2007, p.291). Una definición formal
de dependencia funcional, de acuerdo con Elmasri & Navathe, es la siguiente:
POLITÉCNICO GRANCOLOMBIANO 3
Una dependencia funcional, denotada X → Y, entre dos conjuntos de atributos X e Y que son
subconjuntos de R, especifica una restricción en las posibles tuplas que pueden formar un
estado en la relación r de R. La restricción dice que dos tuplas t1 y t2 en r que cumplen que
t1[X]=t2[X], deben cumplir también que t1[Y]=t2[Y] (2007, p.292).
Para entender mejor esta definición, decimos que los valores que toma Y en la tupla r están determinados
por los valores de X (Figura 1). Así podemos encontrar dependencias funcionales tales como:
»» ISBN → Titulo
»» IdUsuario → NombreUsuario
En el proceso de normalización se comprueba que en cada relación o tabla se cumplan las reglas
basadas en la clave primaria y las dependencias funcionales. De tal manera que una relación se
descompone en otras relaciones, hasta que cada una cumpla con dichas reglas.
POLITÉCNICO GRANCOLOMBIANO 4
2.1.1. Descriptores equivalentes
Cedula ↔ Codigo
Si se tiene una relación R(A, DF), donde X e Y son dos descriptores sobre A,
Existe un conjunto de reglas que permiten deducir todas las dependencias funcionales que se dan al
interior de un conjunto dado de atributos. Estas reglas se denominan los axiomas de Armstrong, los
cuales son:
• Axioma de reflexividad:
Teniendo un atributo o un conjunto de atributos, de este puede deducirse él mismo. Así, por
ejemplo, si el título de un libro está incluido en el ISBN, entonces, a partir del ISBN es posible
obtener el título del libro.
• Axioma de aumentatividad:
Esta regla indica que se adicionamos el mismo conjunto de atributos a ambos lados de la
dependencia, obtenemos también dependencias válidas. Así si tenemos la dependencia X → Y
sería válida la relación XZ → YZ.
• Axioma de transitividad:
POLITÉCNICO GRANCOLOMBIANO 5
A partir de los anteriores axiomas se desprenden los axiomas derivados de Armstrong, los cuales son:
Esta regla establece que podemos eliminar atributos del lado derecho de una dependencia, es
decir, se puede descomponer la dependencia funcional X → {A1, A2…, An} en las dependencias
{X → A1, X → A2, …, X → An}
• Axioma de pseudotransitividad:
3. Normalización
Una vez comprendidos los conceptos relacionados con las dependencias funcionales y sus
propiedades, podemos definir las dependencias funcionales para cada relación, de tal forma que cada
una tenga una clave principal en lo que denominan formas normales.
La normalización se entiende como el proceso en el que se aplican reglas a las relaciones obtenidas
del modelo entidad-relación al modelo relacional, con el fin de evitar redundancias, reducir problemas
de actualización de datos y proteger la integridad de los mismos. Es importante mencionar que la
normalización es un proceso posterior al esquema conceptual y ofrece las siguientes ventajas:
POLITÉCNICO GRANCOLOMBIANO 6
El proceso de normalización consta de varios pasos que, a su vez, corresponden a formas normales.
En la medida que se ha llegado a una forma normal con un índice más alto, se puede decir que las
relaciones tienen una forma más fuerte y son menos vulnerables a los problemas planteados. Se
recomienda llegar por lo menos a la tercera forma normal.
Se dice que una tabla está en una forma normal determinada si cumple las condiciones establecidas
para esa forma normal. Se dice que si una forma normal es de grado superior, cumple las
características de las formas normales de nivel inferior, como se observa en la Figura 2.
Boyce Codd NF
Cuarta forma normal 4FN
Quinta forma normal 5FN
Forma normal de dominio/dave DKNF
Por lo general, basta con obtener la tercera forma normal para satisfacer las necesidades que
se presentan en entornos cotidianos. A continuación, se presentan las características de cada
forma normal.
POLITÉCNICO GRANCOLOMBIANO 7
3.1.1. Primera forma normal (1FN)
Se considera que una tabla está en primera forma normal, si y solo si en cada campo de un registro
se tiene un único valor, es decir, es atómico. Esta se puede expresar de manera tabular sin grupos
repetitivos. Se entiende que un atributo es atómico si este no se puede dividir en otros atributos.
Las condiciones con las que debe cumplir la primera forma normal son:
• El orden de los datos o el cambio de los mismos no debe afectar el significado de estos.
Por ejemplo, el siguiente caso ilustra la primera forma normal. Se desea hacer un sistema que
almacene la facturación de una tienda; la orden contiene la siguiente información:
POLITÉCNICO GRANCOLOMBIANO 8
Tabla 1. Tabla no normalizada
Orden
Como se puede observar, hay atributos con el mismo significado: como No_producto y Desc_
producto (Figura 3).
POLITÉCNICO GRANCOLOMBIANO 9
Como se puede observar en la tabla, lo anterior conlleva a anomalías de actualización, pues al insertar
un dato se requiere tanto el número del cliente como el nombre del cliente. Al eliminar una tupla en
la que esta sea la única en la que aparezca un cliente, se perderá la información de este; y cuando se
modifique una tupla, puede generar una incoherencia con otra tupla. Para solucionar esta situación,
dividimos esta tabla en dos, de la siguiente manera:
Orden
Orden_producto
POLITÉCNICO GRANCOLOMBIANO 10
3.1.2. Segunda forma normal (2FN)
Se considera que una relación satisface la segunda forma normal (2FN) si, además de satisfacer
la primera forma normal, todos los atributos que no son clave dependen funcionalmente de forma
irreductible de la clave primaria (Tabla 3). Para llegar a la 2FN:
• Se eliminan los atributos que dependen de forma parcial de la clave primaria, para crear nuevas
relaciones.
Orden
Orden_producto
1 23 1 $10000
1 34 2 $60000
1 24 3 $3000
2 23 2 $20000
2 54 1 $1500
2 65 4 $24000
POLITÉCNICO GRANCOLOMBIANO 11
Producto
23 Martillo $10000
34 Taladro $30000
24 Destornillador $1000
54 Formol $1500
65 Alicate $800
Se considera que una relación satisface la tercera forma normal (3FN) si, además de satisfacer la
segunda Forma normal, todos los atributos que no corresponden a claves primarias dependen de
forma no transitiva de la clave primaria (Tabla 4). Para llegar a la 3FN:
1. Se eliminan los atributos que representan dependencias transitivas y se crean nuevas relaciones
con ellos.
2. Se añaden a la nueva relación los atributos que son determinantes que serán la clave primaria de
la nueva relación.
POLITÉCNICO GRANCOLOMBIANO 12
Tabla 4. Tablas en tercera forma normal
Orden
1 11/4/2017 12 $73000
2 10/4/2017 3 $45000
Cliente
Orden_producto
1 23 1 $10000
1 34 2 $60000
1 24 3 $3000
2 23 2 $20000
2 54 1 $1500
2 65 4 $24000
Producto
23 Martillo $10000
34 Taladro $30000
24 Destornillador $1000
54 Formol $1500
65 Alicate $800
Por regla general, se llega a tercera forma normal; sin embargo, se mencionarán las otras formas normales.
POLITÉCNICO GRANCOLOMBIANO 13
3.1.4. Forma normal Boyce Codd (Boyce Codd NF)
Se considera que una relación está en forma normal Boyce Codd si toda dependencia funcional
no trivial e irreductible a la izquierda tiene como clave una candidata determinante. Es una forma
más precisa de 3FN, en la que se descomponen las relaciones de tal forma que la clave primaria sea
siempre determinante.
Una relación está en cuarta forma normal (4NF) si y solo si cumple con la tercera forma normal
o en BCNF, y no posee dependencias multivaluadas no triviales. Una tabla con una dependencia
multivaluada es aquella en la que existen dos o más relaciones independientes muchos a muchos, que
causan redundancia, la cual se elimina por la cuarta forma normal. En la práctica, se ha comprobado
que no siempre es la más eficiente de las formas normales.
Una relación se dice que está en quinta forma normal 5NF si y solo si, además de estar en cuarta
forma normal, cada dependencia de unión en ella se implica por las claves candidatas.
La forma normal de dominio/clave (DKNF) corresponde a una forma normal que exige que la base de
datos contenga restricciones de dominios y claves.
POLITÉCNICO GRANCOLOMBIANO 14
Referencias
Codd, E. (1990). The Relational Model for Database Management. USA: Addison - Wesley Publishing
Company.
American Federation of Information Processing Societies. Press. (1979). The ANSI/X3/SPARC DBMS
framework: report of the Study Group on Database Management Systems. Computer Systems Research
Group.
Date, C. (2001). Introducción a los sistemas de bases de datos. Naucalpan de Juárez, México: Pearson
Education.
Elmasri, R. & Navathe, S. (2007). Fundamentos de Sistemas de Bases de Datos. Madrid: Pearson,
Addison Wesley.
POLITÉCNICO GRANCOLOMBIANO 15
INFORMACIÓN TÉCNICA
Escenario 3: Normalización
POLITÉCNICO GRANCOLOMBIANO 16
Unidad 2 / Escenario 4
Lectura fundamental
Contenido
1 Introducción
2 Algebra relacional
3 Cálculo relacional
Palabras clave: álgebra relacional, cálculo relacional, restricción, proyección, producto, unión, intersección,
diferencia, concatenación, división.
1. Introducción
En este escenario se hará referencia a los lenguajes formales propios del modelo relacional: el álgebra
relacional y el cálculo relacional. El primero está centrado en el procedimiento o algoritmo, a través
del cual se desea llegar a un resultado; por esto, se considera que el álgebra relacional es de tipo
procedimental. El segundo modelo está centrado en el resultado, sin importar el mecanismo a través
del cual se obtiene; este se considera de tipo declarativo. Sin embargo, existe equivalencia entre los
lenguajes como tal. A continuación, se desarrollarán tanto el álgebra como el cálculo relacional.
2. Algebra relacional
El álgebra relacional es “el conjunto de operadores que toman relaciones como sus operandos y regresan
una relación como resultado” (Date, 2001, p.150). Esta tuvo su origen gracias a las investigaciones de
Edgar F. Codd, quien definió ocho operadores, los cuales trataremos a continuación.
Supongamos que en una empresa en la que 5000 clientes han realizado compras, se desea identificar
aquellos 300 que han llevado a cabo transacciones por mayor valor, para ofrecerles una membresía.
En ese caso se requieren solo los registros que cumplan con la condición dada. La operación más
acertada, desde el punto de vista del álgebra relacional, será la restricción o selección.
Se entiende por restricción o selección la operación que “regresa una relación que contiene todas las
tuplas de una relación especificada que satisfacen una condición especificada” (Date, 2001, p.150).
La Figura 1 muestra en qué consiste la operación de restricción o selección.
POLITÉCNICO GRANCOLOMBIANO 2
Por regla general, la operación de selección es representada por el carácter sigma (σ). Para mayor
claridad, se presentará el siguiente ejemplo. Supongamos que tenemos el siguiente esquema relacional:
Selección ← σsalario>3000000(empleado)
POLITÉCNICO GRANCOLOMBIANO 3
2.2. Proyección π
Pensemos en una relación que representa contablemente a una compañía. En ocasiones, el número
de columnas podría ser inmanejable, porque se requiere solo obtener las columnas que aporten la
información más relevante para la toma de decisiones financieras. En este caso, la operación más
acertada, desde el punto de vista del álgebra relacional, será la proyección.
Se entiende por proyección la operación que “regresa una relación que contiene todas las tuplas o
subtuplas de una relación especificada después de quitar los atributos especificados” (Date, 2001,
p.150). La Figura 2 muestra en qué consiste la operación de proyección.
De la misma forma, la operación de selección es representada por el carácter pi (π). Continuando con
el ejemplo representado en la Tabla 1, se desea una tabla que no me muestre datos distintos al nombre
del empleado y la fecha de ingreso (Tabla 3). La operación a realizar sería entonces:
Proyección ← π <nombre,fecha_ingreso>(empleado)
Nombre Fecha_ingreso
Luis Pérez 2002-5-25
Javier Molina 2005-12-15
Alex Neira 2013-1-25
Jim Cotes 2017-1-1
Martha Castillo 2010-9-26
Fabio Buitrago 2011-1-31
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO 4
Ahora, es posible combinar operaciones de tal forma que una operación se aplique al resultado de
otra. Por ejemplo, se desea conocer solo la fecha de ingreso de los empleados que ganen más de $3
000 000 (Tabla 4). En este caso, la operación se daría de la siguiente manera:
Selección ← σsalario>3000000(empleado)
Proyección ← π <nombre,fecha_ingreso>(selección)
Nombre Fecha_ingreso
Alex Neira 2013-1-25
Martha Castillo 2010-9-26
Fabio Buitrago 2011-1-31
Fuente: elaboración propia
2.3. Producto x
POLITÉCNICO GRANCOLOMBIANO 5
Para dar mayor claridad sobre el comportamiento de la operación producto, observemos el siguiente
ejemplo, en el cual se presenta el producto cartesiano entre las relaciones (zapato) x (chaqueta)
(Tablas 5-7).
Tabla 5. Relación zapato
ID_zapatos Zapatos
1 Mocasín
2 Tenis
3 Botas
Fuente: elaboración propia
ID_chaqueta Chaqueta
1 Cuero
2 Paño
Fuente: elaboración propia
Como se puede observar, para que las relaciones que participan en el producto cartesiano sean
compatibles es necesario que los campos de las relaciones tengan nombres distintos.
POLITÉCNICO GRANCOLOMBIANO 6
2.4. Unión ∪
La operación de unión, dadas las relaciones A y B, en realidad genera un conjunto que contiene
aquellas tuplas que pertenezcan a la relación A o a la relación B. Es importante aclarar que para poder
aplicar la operación de unión se requiere que las tuplas sean homogéneas.
Se define la operación de unión como aquella que contiene todas las tuplas que aparecen en una o en
las dos relaciones especificadas. La Figura 4 muestra en qué consiste la operación de unión.
Para dar mayor claridad sobre el comportamiento de la operación producto, observemos el siguiente
ejemplo, en el cual se presenta la unión entre relaciones (Tablas 8-10).
Tabla 8. Relación A
ID_zapatos Zapatos
1 Mocasín
3 Tenis
4 Botas
Fuente: elaboración propia
Tabla 9. Relación B
ID_zapatos Zapatos
2 Chanclas
4 Botas
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO 7
Tabla 10. Relación resultante de la unión (A) ∪ (B)
ID_zapatos Zapatos
1 Mocasín
2 Chanclas
3 Tenis
4 Botas
Fuente: elaboración propia
2.5. Intersección ∩
Al contrario de la operación de unión, la operación de intersección establece que dadas las relaciones
A y B, se genera un conjunto que contiene aquellas tuplas que pertenezcan tanto a la relación A
como o a la relación B. Es importante mencionar que, al igual que en la operación de unión, en la
intersección se requiere que las tuplas sean homogéneas.
Se define la operación de intersección como aquella que “regresa una relación que contiene todas
las tuplas que aparecen en las dos relaciones especificadas (en ambas, no en una o en otra)” (Date,
2001, p.152). La Figura 5 muestra en qué consiste la operación de intersección.
Para dar mayor claridad sobre el comportamiento de la operación producto, observemos el siguiente
ejemplo, en el cual se presenta la intersección entre relaciones (Tablas 11-13).
POLITÉCNICO GRANCOLOMBIANO 8
Tabla 11. Relación A
ID_zapatos Zapatos
1 Mocasín
3 Tenis
4 Botas
Fuente: elaboración propia
ID_zapatos Zapatos
2 Chanclas
4 Botas
Fuente: elaboración propia
ID_zapatos Zapatos
4 Botas
Fuente: elaboración propia
2.6. Diferencia -
De manera análoga a lo que ocurre con la unión y la intersección, la operación diferencia establece
que dadas las relaciones A y B, se genera un conjunto que contiene aquellas tuplas que pertenezcan
a la relación A, pero no a la relación B. Al igual que en las operaciones de unión e Intersección, en la
operación de diferencia se requiere que las tuplas sean homogéneas. Por otro lado, el orden en que se
ejecuta la operación de diferencia produce un resultado distinto.
Se define la operación de intersección como aquella que “regresa una relación que contiene todas las
tuplas que aparecen en la primera relación, pero no en la segunda de las dos relaciones especificadas”
(Date, 2001, p.152). La Figura 6 muestra en qué consiste la operación de diferencia.
POLITÉCNICO GRANCOLOMBIANO 9
Figura 6. Operación de diferencia
Fuente: elaboración propia
Continuando con el ejemplo señalado en los apartados de unión e Intersección, las Tablas 14 y 15
representan las relaciones (A)-(B) y (B)-(A):
ID_zapatos Zapatos
1 Mocasín
3 Tenis
Fuente: elaboración propia
ID_ZAPATOS ZAPATOS
2 Chanclas
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO 10
La concatenación está definida como la operación que “regresa una relación que contiene todas las
tuplas posibles que son combinación de 2 tuplas de cada una de 2 relaciones especificadas, tales que
las dos tuplas que contribuyen a cualquier combinación dada tengan un valor común para los atributos
comunes de las dos relaciones y ese valor común aparece una vez, y no dos, en la tupla resultante)”
(Date, 2001, p.152). La Figura 7 ilustra mejor el comportamiento de la concatenación.
2.8. División /
POLITÉCNICO GRANCOLOMBIANO 11
El siguiente ejemplo (Tablas 16-18) ilustra la operación de división.
Destino
Panamá
Brasil
Fuente: elaboración propia
Viajero
Luis Díaz
Pedro Suárez
Fuente: elaboración propia
Nótese que tanto Luis como Pedro son viajeros que tiene como destino a Panamá y a Brasil.
Las operaciones que acabamos de ver son las más representativas, pero se han definido otras
operaciones cuyos resultados pueden ser obtenidos a través de la combinación de las operaciones
presentadas y están fuera del alcance del curso.
POLITÉCNICO GRANCOLOMBIANO 12
3. Cálculo relacional
Como se presentaba al comienzo de este escenario, el cálculo relacional no se centra tanto en
el procedimiento sino en el resultado. Mientras en el álgebra relacional podríamos especificar
operaciones tales como seleccionar las tuplas que contienen salarios mayores a $3.000.000 o
proyectar los campos que correspondan al nombre del empleado y el salario; en el cálculo relacional
se declararía: obtener los empleados que ganen $3.000.000 o más. Es decir, el cálculo relacional es
descriptivo, en cambio el álgebra relacional es prescriptiva.
En general, podemos encontrar cálculo relacional orientado a tuplas y cálculo relacional orientado a
dominios. Veamos.
La idea del cálculo orientado a tuplas es que se hallen las tuplas en las que se cumpla un predicado
específico. Este cálculo se basa en variables tupla que corresponden a tuplas que tienen un rango de
valores posibles en una relación. A continuación, se presentan algunas declaraciones que se ajustan al
cálculo relacional orientado a tuplas:
Como se puede evidenciar, la redacción de las declaraciones está orientada a la relación entre variables
de las tuplas; a diferencia del cálculo relacional, orientado a dominios que hacen énfasis en los rangos.
El cálculo relacional orientado a dominios se centra en que las variables de alcance cubren dominios,
en lugar de relaciones. La principal relación es de pertenencia a un conjunto o subconjunto de datos.
POLITÉCNICO GRANCOLOMBIANO 13
En seguida, se presentan ejemplos de declaraciones que se ajustan al cálculo relacional orientado
a dominios.
• Obtener los productos cuyo SKU tenga el mismo número de unidades en bodega.
• Obtener las ciudades que correspondan a las que tengan más de un millón de habitantes.
• Obtener los proveedores que por lo menos, entre sus productos, tengan tornillos.
Nótese que la redacción puede ser similar, pero en el caso del cálculo orientado a tuplas se hace
énfasis en la relación entre variables, mientras que en el cálculo orientado a dominios se hace hincapié
en la pertenencia a un conjunto.
El cuantificador EXISTS se asocia con el cuantificador “Existe algún”, que se denota con el símbolo ∃
de tal manera que para decir “existe algún x tal que x es mayor que y” se denotaría: ∃x/x > y.
De forma análoga, el cuantificador FORALL se asocia con el cuantificador “Para todo” que se denota
por el símbolo de tal manera que para declarar “para todo x tal que x sea mayor que y” se denotaría
x/x>y.
Desde una óptica del cálculo orientado a dominios, se podría aprovechar la relación de pertenencia
denotada por el símbolo . De tal forma que podríamos tener declaraciones tales como “Existe
algún x tal que x pertenece a la relación R” denotada ∃ x/x, o “Para todo x tal que x pertenezca a la
relación R” denotada como x/x.
POLITÉCNICO GRANCOLOMBIANO 14
Referencias
Date, C. (2001). Introducción a los sistemas de bases de datos. Naucalpan de Juárez, México: Pearson
Education.
Elmasri, R. & Navathe, S. (2007). Fundamentos de Sistemas de Bases de Datos. Madrid: Pearson,
Addison Wesley.
POLITÉCNICO GRANCOLOMBIANO 15
INFORMACIÓN TÉCNICA
POLITÉCNICO GRANCOLOMBIANO 16
Unidad 13 / Escenario
Escenario 52
fundamental
Lectura Fundamental
Lenguaje
Etapas deSQL
un plan de comunicación
estratégica
Contenido
2 Lenguajes SQL
En 1986, adquiere el nombre SQL-86 y es publicado por ANSI en 1987. El lenguaje ha tenido
revisiones posteriores en 1987, 1989, 1992, 1999, 2003 2005 y 2008, para introducir, a lo largo
de las distintas versiones y revisiones, características como consultas recursivas, disparadores,
características XML, entre otras funcionalidades.
SQL es un lenguaje basado en los conceptos de álgebra relacional y cálculo relacional descritos en
el escenario anterior. Incluye lenguaje de definición de datos (DDL), lenguaje de manipulación de
datos (DML) y lenguaje de control de Datos (DCL), los cuales se desarrollarán en este escenario. Si
bien, como se indicó anteriormente, SQL es un lenguaje declarativo, en la actualidad incluye algunas
capacidades procedimentales para lograr un mayor aprovechamiento del mismo. A continuación, se
presentan las instrucciones que componen el lenguaje.
POLITÉCNICO GRANCOLOMBIANO 2
2. Lenguajes SQL
Como de señalaba en el apartado anterior, existen tres grupos de instrucciones que componen el
lenguaje de consulta estructurado:
• Data definition languaje – DDL: corresponde al conjunto de instrucciones a través de las cuales
se puede implementar una base de datos previamente diseñada. Entre las instrucciones más
comunes del lenguaje encontramos: CREATE, ALTER, DROP y TRUNCATE.
• Data control languaje – DCL: establece mecanismos de acceso o negación del mismo a la base
de datos; por lo general, son relevantes en lo que a seguridad se refiere.
En seguida, se desarrolla la sintaxis general de SQL y las principales instrucciones de los lenguajes
especificados.
A continuación, señalamos algunos tipos de dato de uso común. Vale la pena mencionar que, al
momento de utilizar un SGBD, es importante consultar la referencia ofrecida por el fabricante para
cada caso (Tabla 1).
POLITÉCNICO GRANCOLOMBIANO 3
Tabla 1. Tipos de datos SQL
Enteros
Tipo de datos Rango Tamaño bytes
-263 (-9.223.372.036.854.775.808) a
BIGINT 8
263-1 (9.223.372.036.854.775.807)
-231 (-2.147.483.648) a 231-1
INT, INTEGER 4
(2.147.483.647)
SMALLINT -215 (-32.768) a 215-1 (32.767) 2
TINYINT 0 a 255 1
Decimal o de punto flotante
POLITÉCNICO GRANCOLOMBIANO 4
4. Sintaxis del lenguaje SQL
En primer lugar, el SQL es un lenguaje que en la mayoría de los casos es “case-insensitive”; es decir,
es indiferente a si se escribe en mayúsculas o minúsculas. Sin embargo, en algunos casos, la forma en
que se escriben los nombres de las tablas, las columnas o los datos puede tener relevancia. Por esa
razón, no se recomienda el uso de la convención "CamelCase” (palabras separadas por mayúsculas
como por ejemplo ‘código, Ciudad’), pues es posible que sea difícil de interpretar el significado de
la variable por parte del programador. En ese caso, se recomienda el uso de palabras separadas por
delimitadores (por ejemplo, código ciudad).
Una instrucción será ejecutada así: desde donde aparece el primer carácter hasta donde aparezca el
carácter punto y coma(;), de la forma en que se presenta en el siguiente ejemplo:
También es posible encontrar instrucciones que toman más de una línea y, por lo tanto, requieren
de un tratamiento distinto para mantener la legibilidad, como el caso del ejemplo que se presenta a
continuación:
CREATE TABLE empresa
(
nit_empresa INT PRIMARY KEY,
nombre_empresa VARCHAR(30),
direccion_empresa VARCHAR(50),
telefono_empresa VARCHAR(16)
);
Al observar el código escrito, se entenderá que el SGBD lo asumirá como una única instrucción
separada en varias líneas, pues tiene un único punto y coma (;). De hecho, si se escribiera en una
única línea generaría exactamente el mismo resultado:
POLITÉCNICO GRANCOLOMBIANO 5
No obstante, es posible que se pierda legibilidad, en especial cuando las instrucciones son cada vez
más complejas. También nótese que tenemos presente que empresa es la entidad y se desarrolla
con los atributos indicados entre paréntesis, que a su vez están separados por coma (,); y que entre
el último atributo y el último paréntesis no hay coma. La sentencia que se acaba de presentar corre
adecuadamente en MySQL; sin embargo, si la corriéramos en PostgreSQL quedaría así:
Para crear una base de datos se emplea la instrucción CREATE, la cual tiene la siguiente sintaxis:
CREATE DATABASE nombre_bd;
POLITÉCNICO GRANCOLOMBIANO 6
Así, si por ejemplo si se desea crear una base de datos en PostgreSQL para listar las bases de datos,
se empleará la instrucción \l, que producirá un resultado similar al siguiente, en el cual se listan las
bases de datos existentes en el sistema:
postgres-# \l
Listado de base de datos
Nombre Dueño Codificación Collate Ctype Privilegios
Spanish_ Spanish_
llevamos postgres UTF8
Spain.1252 Spain.1252
Spanish_ Spanish_
postgres postgres UTF8
Spain.1252 Spain.1252
Spanish_ Spanish_
samp_db postgres UTF8
Spain.1252 Spain.1252
Spanish_ Spanish_ =c/postgres
template 0 postgres UTF8
Spain.1252 Spain.1252 postgres=CTc/postgres
Spanish_ Spanish_ =c/postgres
template 1 postgres UTF8
Spain.1252 Spain.1252 postgres=CTc/postgres
Al ejecutarse la instrucción:
postgres-# \l
Listado de base de datos
Nombre Dueño Codificación Collate Ctype Privilegios
Spanish_ Spanish_
llevamos postgres UTF8
Spain.1252 Spain.1252
Spanish_ Spanish_
mi_db postgres UTF8
Spain.1252 Spain.1252
Spanish_ Spanish_
postgres postgres UTF8
Spain.1252 Spain.1252
Spanish_ Spanish_
samp_db postgres UTF8
Spain.1252 Spain.1252
Spanish_ Spanish_ =c/postgres
template 0 postgres UTF8
Spain.1252 Spain.1252 postgres=CTc/postgres
Spanish_ Spanish_ =c/postgres
template 1 postgres UTF8
Spain.1252 Spain.1252 postgres=CTc/postgres
POLITÉCNICO GRANCOLOMBIANO 7
Supongamos que deseamos cambiar el nombre de la base de datos, la sintaxis de la instrucción será la
siguiente:
(6 filas)
\c nombre_db;
De tal forma que obtendremos:
postgres=# \c mi_bd;
ADVERTENCIA: El código de página de la consola (850) difiere del código
de página de Windows (1252).
Los caracteres de 8 bits pueden funcionar incorrectamente.
Vea la página de referencia de psql «Notes for Windows users»
para obtener más detalles.
Ahora está conectado a la base de datos «mi_bd» con el usuario «postgres».
mi_bd=#
POLITÉCNICO GRANCOLOMBIANO 8
Lo anterior nos indica que la base de datos ha sido seleccionada.
Para eliminar una base de datos se utiliza la instrucción DROP DATABASE, empleando la siguiente
sintaxis:
Nótese que MySQL no tiene una instrucción para cambiar el nombre de la base de datos.
A continuación, se presentarán las instrucciones más comunes para la gestión de tablas al interior de
una base de datos.
POLITÉCNICO GRANCOLOMBIANO 9
Para mostrar las tablas de la base de datos seleccionada, la instrucción en PostgreSQL es \d y en
MySQL se emplea la instrucción SHOW TABLES;:
PostgreSQL MySQL
mi_bd=# \d mysql> SHOW TABLES;
No se encontraron
Empty set (0.02 sec)
relaciones.
Por ejemplo, para crear una tabla de estudiantes se tendrán los siguientes campos:
• Id_estudiante de tipo entero, el cual no podrá ser nulo. Este será un código que el
sistema dará de forma automática e incremental y será una llave primaria.
• Nombre será el nombre del estudiante, una cadena de caracteres de tamaño 30 y no podrá
ser nula.
PostgreSQL
CREATE TYPE sex AS ENUM ('F', 'M');
CREATE TABLE estudiante(
id_estudiante SERIAL NOT NULL PRIMARY KEY,
nombre VARCHAR(30) NOT NULL,
sexo SEX NOT NULL
);
POLITÉCNICO GRANCOLOMBIANO 10
Cuya ejecución desplegará de la siguiente manera:
CREATE TABLE
mi_bd=# \d
Listado de relaciones
Esquema Nombre Tipo Due±o
mi_bd=# \d estudiante
Tabla public.estudiante
Columna Tipo Modificadores
MySQL
POLITÉCNICO GRANCOLOMBIANO 11
Cuya ejecución desplegará así:
En el caso anterior, la instrucción ENUM, que permite de dar un conjunto de opciones cerrada de
valores al campo, podrá escribirse directamente en MySQL, mientras que requerirá de la creación de
un tipo de dato en PostgreSQL.
Si se deseara crear dos llaves primarias, las instrucciones serán en MySQL y PostgreSQL así,
respectivamente:
);
POLITÉCNICO GRANCOLOMBIANO 12
Para indicar la presencia de llaves foráneas se incluirá la instrucción FOREIGN KEY con la siguiente
sintaxis:
CONSTRAINT fk_tabla_tablaforanea
FOREIGN KEY (tablaforanea_id_tablaforanea)
REFERENCES nombre_bd.tabla_foranea (id_tabla_foranea)
ON UPDATE accion ON DELETE accion,,
ON UPDATE CASCADE(,/;)
CONSTRAINT fk_tabla_tablaforanea
FOREIGN KEY (tablaforanea_id_tablaforanea)
REFERENCES nombre_bd.tabla_foranea (id_tabla_foranea)) MATCH
SIMPLE
ON UPDATE accion ON DELETE accion,
Acción Resultado
NO ACTION, Al eliminar o modificar un registro genera un error que indica que existe una
RESTRICT violación de la llave foránea especficada.
CASCADE Elimina o actualiza las referencias en las otras tablas de manera automática.
También es posible incluir índices. Un índice permite agilizar las búsquedas por parte del SGBD,
pues organiza los datos de ese índice a manera de lista ordenada. Para crear un índice se emplea la
siguiente sintaxis:
POLITÉCNICO GRANCOLOMBIANO 13
5.2.2. Manipulación de tablas
Renombrar tablas
ALTER TABLE nombre_tabla RENAME nuevo_nombre;
Por ejemplo:
ALTER TABLE estudiantes ADD programa VARCHAR(20) NULL, anio_ingreso
INT NULL;
Eliminar índice
DROP INDEX identificador_indice;
Eliminar tabla
DROP TABLE IF EXIST nombre_tabla;
Las anteriores son algunos de los formatos de las sentencias más representativas. Sin embargo, se
recomienda consultar las referencias de los fabricantes para establecer variaciones en la sintaxis, al
igual que para establecer otras instrucciones que se ajusten a las necesidades concretas.
Para manipular los datos incluidos en una tabla, se emplean principalmente las instrucciones INSERT,
SELECT, UPDATE y DELETE. A continuación, se describen algunas maneras en que se presenta la
sintaxis para la manipulación de datos.
POLITÉCNICO GRANCOLOMBIANO 14
Inserción de registros: para insertar valores de registros en una tabla se emplea, de forma genérica, la
siguiente sintaxis:
Sin embargo, al tener llaves primarias, el campo 1 no requeriría de la asignación de valor. Por esa razón
se recomienda la siguiente sintaxis:
Así, para el ejemplo que venimos trabajando en secciones anteriores tendríamos, tanto para
PostgreSQL como para MySQL, lo siguiente:
mi_bd=# INSERT INTO estudiante (nombre,sexo) VALUES ('Luis Leyva', 'M');
INSERT 0 1
mi_bd=# INSERT INTO estudiante (nombre,sexo) VALUES ('Monica Galindo', 'M');
INSERT 0 1
mi_bd=# INSERT INTO estudiante (nombre,sexo) VALUES ('Pedro Jaramillo','M');
INSERT 0 1
mysql> INSERT INTO estudiante VALUES (NULL, 'Luis Leyva', 'M');
Query OK, 1 row affected (0.12 sec)
1 Luis Leyva M
2 Monica Galindo M
3 Pedro Jaramillo | M
(3 filas)
Por otro lado, podemos hacer inserción de un registro empleando las siguientes sintaxis:
POLITÉCNICO GRANCOLOMBIANO 15
mysql> SELECT * FROM estudiante;
Columna nombre sexo
1 Luis Leyva M
2 Monica Galindo M
3 Pedro Jaramillo | M
3 rows in set (0.00 sec)
Modificación de registros
Para insertar valores de registros en una tabla se emplea, de forma genérica, la siguiente sintaxis:
UPDATE nombre_tabla SET columna=valor WHERE condición;
En este punto, empleamos la expresión WHERE, la cual permite colocar una condición a partir
de la cual se hacen búsquedas o modificaciones. Al igual que en la mayoría de los lenguajes de
programación, el SQL emplea operadores para comparar campos con valores o campos entre sí. Los
operadores incluidos en el SQL se muestran en las Tablas 3 y 4.
Así, aplicando esta instrucción al ejercicio que se viene trabajando, tenemos:
POLITÉCNICO GRANCOLOMBIANO 16
Tabla 4. Operadores lógicos en SQL
Y obtenemos, respectivamente:
Eliminación de registros: para eliminar registros completos de una tabla se emplea, de forma genérica,
1 Luis Leyva M
2 Monica Galindo F
3 Pedro Jaramillo M
(3 filas)
1 Luis Leyva M
2 Monica Galindo F
3 Pedro Jaramillo M
3 rows in set (0.00 sec)
POLITÉCNICO GRANCOLOMBIANO 17
la siguiente sintaxis:
DELETE FROM nombre_tabla WHERE criterio;
5.2.4. Consultas
Para consultar el contenido completo de una tabla, como ya lo hemos hecho en apartados anteriores,
se emplea la siguiente sintaxis:
SELECT * FROM nombre_tabla;
Si se desea obtener un conjunto de columnas y también una condición que sirva como criterio de
consulta, se aplicará la siguiente sintaxis:
SELECT columna(s) FROM nombre_tabla; WHERE condición;
(1 fila)
Para consultar los datos con ordenamiento se emplea la expresión ORDER BY. Por otro lado, si la
consulta se desea ascendente, se acompaña por la expresión ASC. En caso de esperar una consulta
descendiente, se incluye la expresión DESC.
POLITÉCNICO GRANCOLOMBIANO 18
SELECT nombre, sexo FROM estudiante
mysql> SELECT * FROM estudiante;
ORDER BY nombre DESC;
nombre sexo nombre sexo
1 Luis Leyva M
2 Monica Galindo F
3 Pedro Jaramillo M
Al emplear los operadores mencionados anteriormente, es posible obtener datos que se encuentren
en un rango de valores. A continuación, se presentan algunas sintaxis propuestas para obtener este
objetivo:
SELECT columna(s) FROM nombre_tabla WHERE columna > valor;
SELECT columna(s) FROM nombre_tabla WHERE columna < valor;
SELECT columna(s) FROM nombre_tabla WHERE columna BETWEEN valor
AND valor;
Es posible buscar cadenas o subcadenas al interior de una columna mediante el uso de la expresión
LIKE, como se presenta a continuación:
SELECT columna(s) FROM nombre_tabla WHERE columna LIKE '%valor%';
(%=cualquiera)
POLITÉCNICO GRANCOLOMBIANO 19
mysql> SELECT nombre FROM estudiante WHERE nombre LIKE '%e%';
nombre
Luis Leyva
Pedro Jaramillo
2 rows in set (0.00 sec)
En el ejemplo anterior, buscaremos las filas cuyo nombre contenga la cadena ‘e’:
De forma análoga, es posible buscar cadenas al interior de una columna que no contengan
determinadas cadenas de caracteres al utilizar NOT LIKE;
SELECT columna(s)FROM nombre_tabla WHERE columna NOT LIKE
'%valor%';
mysql> SELECT nombre FROM estudiante WHERE nombre NOT LIKE '%va';
nombre
Monica Galindo
Pedro Jaramillo
2 rows in set (0.00 sec)
Por ejemplo, buscar los nombres de los estudiantes que no terminen en ‘va’:
Es posible buscar coincidencia de valores de datos en una columna al emplear la expresión IN. La
sintaxis es la siguiente:
SELECT columna(s) FROM nombre_tabla WHERE columna IN (valor,
valor);
Luis Leyva
Pedro Jaramillo
2 rows in set (0.00 sec)
Una consulta es finalmente una tabla que corresponde a un subconjunto de otra tabla más amplia.
De tal forma que es posible realizar una subconsulta a partir de otra consulta, como se presenta en la
siguiente sintaxis:
SELECT columna(s) FROM nombre_tabla
WHERE columna = ANY(SELECT columna(s) FROM nombre_tabla; WHERE
condición);
POLITÉCNICO GRANCOLOMBIANO 20
5.2.5. Operaciones
A continuación, se presenta la sintaxis de algunas operaciones útiles para la obtención de datos que
permiten interpretar lo contenido en las tablas.
Desviación estándar (STDDEV): la desviación estándar de los datos de una columna. Por ejemplo:
Contar (COUNT): cuenta la cantidad de veces que están presentes los datos en una columna. Por
ejemplo:
Como se están empleando tablas relacionales, es probable que la llave primara de una tabla
corresponda a un campo que contenga una llave foránea en otra tabla. Es posible unir columnas de
ambas tablas empleando la expresión INNER JOIN, de acuerdo con la siguiente sintaxis:
SELECT columna(s) FROM tabla1 INNER JOIN tabla2 ON tabla1.campo =
tabla2.campo;
También es posible unir las filas de dos tablas al emplear la instrucción UNION. Las columnas que se
unirán deben ser del mismo tipo.
SELECT columna(s) FROM tabla1 WHERE condición UNION SELECT
columna(s) FROM tabla2 WHERE condición;
POLITÉCNICO GRANCOLOMBIANO 21
5.3. Vistas
Hay otro tipo de relaciones SQL que se asemejan a las consultas, pero que no tienen un registro
físico. En realidad, corresponden a tablas virtuales. Se denominan vistas y existen solo en memoria.
Para su creación se emplea la expresión CREATE VIEW y la sintaxis general es como se presenta a
continuación.
POLITÉCNICO GRANCOLOMBIANO 22
Referencias
Date, C. (2001). Introducción a los sistemas de bases de datos. Naucalpan de Juárez, México: Pearson
Education.
Elmasri, R. & Navathe, S. (2007). Fundamentos de Sistemas de Bases de Datos. Madrid: Pearson,
Addison Wesley.
INFORMACIÓN TÉCNICA
POLITÉCNICO GRANCOLOMBIANO 24
Unidad 13 / Escenario
Escenario 62
fundamental
Lectura Fundamental
Programación de bases
Etapas de un plan de datos,
de comunicación
transacciones,
estratégica concurrencia y
recuperación
Contenido
Palabras clave: SQL, función, procedimiento almacenado, cursor, disparador, transacción, concurrencia.
1. Programación en bases de datos
Si bien, el SQL es un lenguaje de alto nivel, no es uno que esté orientado a la programación
como tal, sino más bien, como su nombre lo dice, está orientado a la consulta. Sin embargo, los
procesos involucrados en SQL, al ser programados, incrementan el potencial del uso de las bases
de datos involucradas.
En general, los sistemas de gestión de bases de datos no se emplean de manera aislada, sino que
están integrados a otro tipo de aplicaciones o a lenguajes de programación. Estos, a su vez, están
incorporados con sistemas de acceso al usuario, sea en escritorio o en la web. Por esta razón, de
acuerdo con Elmasri y Navathe (2007, p.252), podemos identificar algunas metodologías para la
programación de bases de datos.
A continuación, en la Figura 1 se presentan algunos ejemplos de código para integrar Java con
PostgreSQL. La integración entre otros lenguajes y sistemas de gestión de bases de datos se dejan al
estudiante como investigación.
POLITÉCNICO GRANCOLOMBIANO 2
public static void conectar(){
try {
Class.forName("org.postgresql.Driver");
Connection conexion = DriverManager.getConnection("jdbc:postgresql://
localhost:5432/mydb","postgres", "password");
conexion.setAutoCommit(false);
System .out.println("Base de datos abierta exitosamente");
}
catch (ClassNotFoundException | SQLException e) {
System.out.println("La base de datos no pudo conectarse");
System.err.println(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
}
Figura 2. Ejemplo de código para realizar consulta desde Java conectado con PostgreSQL
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO 3
En el ejemplo anterior se incluyó, como parámetro, una lista de registros y la sentencia SQL que, una
vez ejecutada, permite recuperar de la base de datos una serie de registros que quedan almacenados
en la variable “resultado”. Luego, los valores almacenados en cada registro son guardados en variables
que, a su vez, permite crear una instancia del objeto equivalente al registro, para ser agregado a la lista
que será retornada al final de la función.
También, se pueden ejecutar otras sentencias SQL como INSERT, UPDATE o DELETE, a través de
códigos como el que se presenta a continuación en la Figura 3.
public static void operacionSQL(String valor){
try {
Class.forName("org.postgresql.Driver");
try (Connection conexion = DriverManager.getConnection("jdbc:postgresql://
localhost:5432/mydb","postgres", "password")) {
conexion.setAutoCommit(false);
Statement declaracion = null;
declaracion = conexion.createStatement();
String SentenciaSQL = "INSERT INTO registros(nombre) VALUES('" +valor+
"');";
declaracion.executeUpdate(SentenciaSQL);
declaracion.close();
conexion.commit();
conexion.close();
}
}
catch (ClassNotFoundException | SQLException e) {
System.out.println("La base de datos no pudo conectarse");
System.err.println(e.getClass().getName() + ": " + e.getMessage());
System.exit(0);
}
Figura 3. Ejemplo de código para insertar en una tabla de una base de datos desde Java conectado con PostgreSQL
Fuente: elaboración propia
En el ejemplo anterior se incluye la sentencia SQL en el código, para hacer modificaciones sobre la
base de datos. Los aspectos propios del lenguaje de programación se dejan al análisis por parte del
estudiante, por estar fuera del alcance del curso.
Como se indicaba en el apartado anterior, en muchas ocasiones las operaciones que se realizan
sobre SQL, se hacen desde un lenguaje de programación con el que se ha establecido una conexión.
POLITÉCNICO GRANCOLOMBIANO 4
Sin embargo, a veces es útil implementar módulos de programa de bases de datos que, valga la
redundancia, son ejecutados en el servidor de bases de datos. Las funciones y procedimientos
son útiles si:
Tanto la función como el procedimiento —dados o no unos parámetros— ejecutan una serie de
operaciones o transformaciones en los datos. Un procedimiento se distingue de una función en
cuanto la función puede retornar un valor, mientras que el procedimiento no lo hace. Un formato
genérico para la declaración de procedimientos es el siguiente (Figura 4) (Elmasri & Navathe,
2007, p.272):
Por otro lado, un formato genérico para declarar una función tiene la siguiente sintaxis (Figura 5):
Así, por ejemplo, crearemos una función para obtener el saldo de una cuenta dato el identificador de la
misma (Figura 6).
POLITÉCNICO GRANCOLOMBIANO 5
CREATE OR REPLACE FUNCTION consultar_saldo(no_cuenta NUMBER)
RETURNS decimal(12,2)
BEGIN
DECLARE saldo decimal(12,2)
SELECT saldo_cuenta INTO saldo FROM cuenta WHERE id_cuenta = no_cuenta;
RETURN saldo;
END;
Para llamar la función se puede emplear, por ejemplo, la siguiente expresión (Figura 7):
SELECT consultar_saldo('043123546')
EXEC consultar_saldo('043123546')
Cada SGBD tiene matices en la sintaxis que deben ser consultados en la documentación puesta a
disposición de cada fabricante.
POLITÉCNICO GRANCOLOMBIANO 6
1.2.2. Cursores
Un cursor es una herramienta que permite que, en lugar de ejecutar una consulta completa a la vez,
sea posible establecer la consulta y, a continuación, leer del resultado de esta un número determinado
de filas a la vez. Entre las razones por las que puede ser conveniente el uso de cursores, tenemos el
emplear la memoria de tal forma que no se ocupe con un gran número de filas. A continuación, en la
Figura 10 vemos cómo se declara un cursor.
BEGIN WORK;
DECLARE mi_cursor CURSOR
FOR SELECT campos FROM tabla;
En general, se emplea la instrucción FETCH para seleccionar la fila que toma el cursor,
FORDWARD la siguiente y BACKWARD la anterior. Por ejemplo, si se desea seleccionar las 5
primeras filas de una consulta se puede indicar de la siguiente manera (Figura 11):
De la misma forma, en cada SGBD la escritura de instrucciones tiene matices que deben ser
consultados en la documentación suministrada por el fabricante.
Los disparadores o triggers son acciones definidas sobre la base de datos, de tal forma que está será
activada antes o después de que se realice alguna operación sobre una tabla, tal como un INSERT,
DELETE o UPDATE, cuando sea llamada por un comando SQL o cuando se ejecute una línea
afectada por comandos SQL.
POLITÉCNICO GRANCOLOMBIANO 7
A continuación, se presenta un ejemplo de trigger empleado para registrar cuando un usuario ha
realizado una inserción de un dato en una tabla (Figura 12).
(…) una unidad única de trabajo. Si una transacción tiene éxito, todas las modificaciones de los
datos realizadas durante la transacción se confirman y se convierten en una parte permanente
de la base de datos. Si una transacción encuentra errores y debe cancelarse o revertirse, se
borran todas las modificaciones de los datos (Microsoft, 2017).
(…) la capacidad de múltiples procesos para acceder o cambiar datos compartidos al mismo
tiempo. Cuanto mayor es el número de procesos de usuario simultáneos que pueden
ejecutarse sin bloquearse entre sí, mayor es la capacidad concurrencia del sistema de base de
datos (Microsoft, 2005).
En la práctica, las bases de datos están siendo afectadas continuamente por procesos transaccionales,
muchas veces concurrentes, los cuales se originan en los usuarios o en los mismos procesos del
sistema. Sin embargo, en caso de existir problemas en alguna transacción es posible que se produzcan
inconsistencias en los datos, que pueden conllevar a errores en la información, problemas para el
usuario o para el propietario del sistema, costos por servicio e, inclusive, problemas legales. De allí la
importancia del control de concurrencia.
POLITÉCNICO GRANCOLOMBIANO 8
2.1. Control de concurrencia
En los momentos en que se presentan transacciones concurrentes sobre las bases de datos, se
deben cumplir las propiedades ACID. Esta denominación es dada por las iniciales en inglés de las
propiedades involucradas.
Esta propiedad entiende a cada transacción como una unidad completa. Es decir, todas las acciones
o procesos involucrados en la transacción se llevan a cabo cuando esta es ejecutada o, por el
contrario, no hay ninguna acción o proceso. En caso de que exista alguna interrupción en los procesos
o acciones involucrados en la transacción, estos serán reversados o anulados, y la base de datos
regresará al estado anterior a la ejecución de la transacción.
Los datos, en toda la base de datos, deben ser siempre consistentes entre sí. No debe haber
referencias a datos que no existan o que contengan información errónea. Así, en toda transacción,
la base de datos debe partir de un estado consistente y terminar en otro estado consistente, para
mantener la integridad referencial.
POLITÉCNICO GRANCOLOMBIANO 9
2.2.3. Aislamiento (isolation)
Supongamos que diversos usuarios estén tratando de acceder y modificar simultáneamente los mismos
datos; esto puede generar inconsistencias entre los datos almacenados. Por esa razón, los datos
involucrados en una transacción no pueden ser empleados por otra transacción hasta que la primera
haya terminado.
Implica que, una vez se confirme que ha concluido exitosamente una transacción en una base de datos,
esta pasa a un estado de consistencia de los datos. Esto con el objetivo de que, incluso si el sistema falla,
los datos se mantengan de forma permanente hasta que puedan llegar a ser modificados por una nueva
transacción.
La base de datos puede estar en dos estados: de consistencia y de inconsistencia. Por lo general, antes
de iniciar la transacción, la base de datos se encuentra en estado de consistencia (debe estarlo). Una
vez inicia la transacción, al involucrar esta con un conjunto de acciones, operaciones o procesos, es
posible que la base de datos entre en un estado temporal de inconsistencia. No obstante, al final de la
transacción, la base de datos debe regresar a un estado de consistencia.
OPERACIÓN DEFINICIÓN
READ En la transacción se está leyendo algún elemento de la base de datos.
WRITE En la transacción se está escribiendo sobre algún elemento de la base de datos.
POLITÉCNICO GRANCOLOMBIANO 10
OPERACIÓN DEFINICIÓN
En la transacción se confirma que las modificaciones hechas deben ser
COMMIT permanentes.
En la transacción se confirma que ninguna de las modificaciones hechas debe ser
ABORT permanente.
Fuente: elaboración propia
La Tabla 1 presenta las operaciones que pueden ser aplicadas en una transacción:
OPERACIÓN DEFINICIÓN
La transacción se está ejecutando.
ACTIVA
PARCIALMENTE Se confirma que la última operación de la transacción fue ejecutada.
CONFIRMADA
CONFIRMADA Se confirma que la transacción fue ejecutada correctamente en su totalidad.
Se presentó algún problema durante la ejecución y la base de datos debe restaurar
FALLA su estado al anterior de la ejecución de la transacción.
COMPLETADA Se ha terminado la transacción.
Fuente: elaboración propia
La Tabla 2 muestra los estados en los cuales se puede encontrar una transacción:
Para facilitar el trabajo con transacciones sobre la base de datos, se emplea el denominado manejador
de transacciones. Este es una aplicación que permite administrar las transacciones que se presentan
en la base de datos y facilitar la implementación de ACID.
2.5. Bloqueos
El sistema puede detener temporalmente la ejecución de transacciones, mientras realiza alguna otra
operación. El objetivo de los bloqueos es evitar conflictos, que sean resultado de la actualización,
ocurridos por la lectura o modificación de datos por parte de los usuarios. Los bloqueos se
caracterizan por:
POLITÉCNICO GRANCOLOMBIANO 11
• Aplicar la serialización en las transacciones. Solo un usuario puede modificar un dato a la vez.
Como se puede evidenciar, ayuda a mantener propiedades tales como el aislamiento. En general,
podemos encontrar bloqueos exclusivos o bloqueos compartidos. Se entiende que un bloqueo es
exclusivo cuando este es solicitado por un único recurso para una transacción; mientras el bloqueo es
compartido cuando se aplica sobre un recurso al que desean acceder varias transacciones.
POLITÉCNICO GRANCOLOMBIANO 12
Referencias
Elmasri, R. & Navathe, S. (2007). Funamentos de Sistemas de Bases de Datos. Madrid: Pearson,
Addison Wesley.
Microsoft. (30 de abril de 2005). Microsoft TechNet. Concurrencia de base de datos y versión de
nivel de fila en SQL Server. Recuperado de https://technet.microsoft.com/en-us/library/cc917674.
aspx
Date, C. (2001). Introducción a los sistemas de bases de datos. Naucalpan de Juárez, México: Pearson
Education.
POLITÉCNICO GRANCOLOMBIANO 13
INFORMACIÓN TÉCNICA
POLITÉCNICO GRANCOLOMBIANO 14
Unidad 14 // Escenario 72
fundamental
Lectura Fundamental
Bases
Etapasdededatos e inteligencia
un plan de comunicación
de negocios
estratégica
Contenido
2 Inteligencia de negocios
Palabras clave: almacén operacional de datos (ODS, Operational Data Store), bases de datos gerenciales, bases de
datos transaccionales, carga, cubo, Data Mart (DM), Data Warehouse (DW).
Introducción
Las empresas de este siglo no son las mismas del siglo pasado. De acuerdo con Laudon (2012), en el
año 2010, en los Estados Unidos, las empresas invirtieron aproximadamente U$562.000.000.000
en hardware, software y sistemas de telecomunicaciones. Esto se debe a que los sistemas de
información dejaron de ser una herramienta para facilitar los procesos en los negocios, y pasaron a ser
transformadores de las organizaciones mismas. La información se ha convertido en apalancador de
valor, lo cual genera ventajas competitivas, acerca a los clientes a las empresas y marca la diferencia
entre crecer o desaparecer del mercado.
Entre las novedades de los sistemas de información gerencial tenemos las siguientes (Laudon &
Laudon, 2012):
• Se impone el uso de las tecnologías móviles frente a las fijas por parte de los usuarios.
• La web pasa de ser estática y unidireccional a ser dinámica, la cual es adecuada a las necesidades
del cliente y personalizada, en muchos casos construida principalmente por los mismos usuarios.
• La cadena de suministro está cada vez más integrada y coordinada a través de las tecnologías de
información.
Como se puede evidenciar, los sistemas de información gerencial pasaron de tener una importancia
operativa a una importancia estratégica para las empresas. De allí que valga la pena analizar la relación
entre los sistemas de información y la gestión estratégica.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
2
1. Administración estratégica e inteligencia de negocios
De acuerdo con Michael Porter, “La estrategia es un conjunto de compromisos y actos integrados
y coordinados, cuyo objetivo es explotar las competencias centrales y conseguir una ventaja
competitiva” (Hitt, Ireland & Hoskisson, 2004). Así, los procesos de administración estratégica
buscan en última instancia lo que se denomina “competitividad estratégica”, concepto que
básicamente se traduce en la consecución de utilidades superiores al promedio. Así mismo, de acuerdo
con Laudon:
(…) los sistemas de información forman parte de una serie de actividades que agregan
valor para adquirir, transformar y distribuir la información que los gerentes pueden
usar para mejorar la toma de decisiones, el desempeño de la organización y, en última
instancia, incrementar la rentabilidad de la empresa (Laudon & Laudon, 2012).
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
3
1.1. Cadena de valor y sistemas de información
Si se observa la cadena de valor propuesta por Michael Porter, se puede evidenciar cómo el desarrollo
tecnológico hace parte de lo que se denomina “actividades de apoyo” (Figura 1) (Hitt, Ireland, &
Hoskisson, 2004).
Figura 1. Cadena de Valor de Michael Porter. Modificado de Laudon & Laudon (2012)
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
4
Sin embargo, al involucrar los sistemas de información de manera transversal a lo largo de todas
las actividades de la organización, la tecnología se integra con las actividades primarias y cobra
importancia estratégica en la organización y permite la creación constante de valor (Figura 2).
Administración y gerencia:
Sistemas de programación electrónica y mensajeria
Recursos humanos:
Actividades Sistemas de planificación de la fuerza de trabajo
de apoyo Tecnologia:
Sistemas de diseño auciliado por computadora
Abastecimiento: Cadena de
Sistemas de pedidos computarizados valor de la
Logística Operaciones Ventas y ServicioL ogística
empresa
de entrada marketing de salida
Sistemas de
Sistemas de
administración
suministros y
de relaciones
abastecimiento
con el clinete
Figura 2. Tecnologías representativas en la cadena de valor de una empresa. Modificado de Laudon & Laudon (2012).
Fuente: elaboración propia
De la misma manera, la información en los negocios tendrá su propia cadena de valor, como se ilustra
en la Figura 3.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
5
Figura 3. La cadena de valor de la información de negocios. Modificado de Laudon & Laudon (2012).
Fuente: elaboración propia
Independientemente del tamaño de las organizaciones, desde PYMES hasta grandes corporaciones, las
empresas se ven obligadas a tomar decisiones, y para tal tarea deben tener conocimiento de su empresa.
Para esto, los sistemas de información son más un medio, que un fin (Aranibar, 2013).
De acuerdo con Laudon (2012), las empresas invierten en sus sistemas de información para lograr
seis objetivos estratégicos:
1. Lograr una excelencia operacional
2. Generar nuevos productos, servicios, modelos de negocios
3. Alcanzar una relación íntima con clientes y proveedores
4. Mejorar la toma de decisiones
6. Sobrevivir en el mercado
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
6
Respecto al primer objetivo, este busca reducir costos y aumentar la productividad (Turban, Volonio &
Wood, 2013). Dicha productividad en general viene dada por la siguiente fórmula:
Productividad= Salidas
Entradas
Los tipos de salidas dependen de la industria; estos pueden ser: número de unidades manufacturadas,
vendidas, servicios prestados, etc. Como entradas tenemos aquello que es nuestro insumo, como
horas-hombre, materias primas, etc. Las ganancias en productividad se ven representadas en:
Por un lado, es posible que el cliente encuentre mecanismos para participar en el desarrollo de
productos; y por otro, en la interacción cotidiana con el cliente, este aporta información valiosa
acerca de su comportamiento, hábitos y necesidades. Gestionar la información en este sentido,
permite alinear el enfoque de la empresa con las necesidades del cliente.
Para lograr este es necesario desarrollar el tercer objetivo, que es establecer una relación íntima con
el cliente. Él ya no es solo un “consumidor”, es un “co-productor”. En ocasiones, puede pasar a tener
el estatus de asociado, pues ya no se espera solo brindarle beneficios al cliente, sino crear una relación
simbiótica en la que este participe en los procesos de negocio.
Los objetivos anteriores permiten establecer, por un lado, el conocimiento del comportamiento
del negocio; y, por otro, crear y administrar el conocimiento de toda la cadena de valor. Este
conocimiento posibilita alcanzar el cuarto objetivo, lo que mejora la toma de decisiones, reduce el
riesgo, alinea los recursos de tecnologías de la información con la estrategia de negocio, e identifica
nuevas oportunidades, riesgos, fortalezas y limitaciones.
Por último, al tener mayor conocimiento del negocio, se podrá aumentar la rentabilidad de la empresa
y obtener ingresos superiores al promedio (Hitt, Ireland, & Hoskisson, 2004). También se generará
valor a los stakeholders, a través de ventajas competitivas, agilidad y velocidad en responder a las
necesidades del mercado; en general, permitirá que la empresa crezca y se mantenga en el tiempo.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
7
1.3. Decisiones estructuradas, semiestructuradas y no estructuradas
En las decisiones estructuradas existen procedimientos o métodos definidos que se deben aplicar,
antes de que el problema tenga que ser resuelto. Este tipo de decisiones son comunes en el nivel
operativo y, en ocasiones, en el táctico. A nivel estratégico, también podemos encontrar decisiones
estructuradas; por ejemplo, si se desea establecer la localización de una planta, pueden existir criterios
medibles y concretos, que son el resultado de modelos matemáticos y definen la ubicación exacta de
esta, de acuerdo con los objetivos de la organización. No obstante, a nivel estratégico, este tipo de
decisiones son poco comunes.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
8
2. Inteligencia de negocios
La inteligencia de negocios (BI, por sus siglas en inglés) ayuda a que “los negocios funcionen
de forma más eficiente, identificando tendencias y relaciones en los datos de la organización
y cree o aproveche ventajas competitivas u oportunidades de negocio” (Turban, Volonio &
Wood, 2013). Así mismo, de acuerdo con Turban, la implementación exitosa de la inteligencia
de negocios implica un desafío técnico, debido principalmente a que requiere de la integración,
computación y análisis de repositorios de datos masivos, los cual no siempre es sencillo.
• Transaccionales
• Gerenciales
• Gestión estratégica
• Gestión táctica
• Gestión operativa
Así, en la cadena de valor de la información, a nivel operativo, los sistemas generan datos; a
nivel táctico, se trabaja con información; y a nivel estratégico, se toman decisiones a partir del
conocimiento.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
9
Figura 4. Modelo piramidal empresarial. Modificado de Aranibar (2013)
Fuente: elaboración propia
Cuando de toma de decisiones se trata, se pueden tener en cuenta criterios subjetivos u objetivos.
Los criterios subjetivos dependen de la habilidad y criterio que tenga el tomador de decisiones;
la presente lectura no tiene en cuenta este tipo de criterios. Por su parte, los criterios objetivos
generalmente tienen en cuenta modelos en los cuales se trata de representar la realidad y en los
que se considera la situación a la que se desea llegar. Este ejercicio se desarrolla a través de la
identificación de variables independientes, relaciones entre ellas y variables dependientes. Esto se
lleva a cabo mediante metodologías que permitan obtener información y conocimiento, que aporten
suficientes criterios para la toma de decisiones.
Aunque es posible que el gerente aplique modelos para la toma de decisiones a través de cálculos
manuales, tendría la dificultad de tener que realizarlos cada vez que requiera tomar una decisión; y en
caso de que las condiciones cambien, realizar nuevos modelos.
Gracias al apoyo de los sistemas de información, el decisor puede contar con herramientas a través de
las cuales puede extraer los datos, a partir de las fuentes o repositorios de información.
Estos se transforman para que puedan ser cargados (ETL) (Kimball & Ross, 2013) en un sistema de
inteligencia de negocios, que aporte información y conocimiento que permita mejorar la toma de
decisiones y reducir la incertidumbre.
En la actualidad, los sistemas de información para la toma de decisiones se pueden clasificar como se
muestra en la Tabla 1.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
10
Tabla 1. Comparación de sistemas de información
Sistema de
Entrada Procesamiento Salida Usuarios Caso
información
Datos Proyecciones, Directorio,
Sistema agregados, Simulación, pronósticos, alta Sistema de
de soporte externos e animación respuestas gerencia, proyección
ejecutivo (ESS, internos, gráfica, a consultas, comités financiera a largo
EIS) estadísticas, interacción resúmenes ejecutivos plazo
indicadores ejecutivos y directivos
Datos de
bajo volumen
Gerencia
optimizados Reportes
funcional,
Sistema de para análisis, especiales, Sistema de apoyo
Simulación, toma gerencia
soporte de modelos análisis de a decisiones
de decisiones, media,
decisiones analíticos, decisión, de inversión y
análisis tomadores
(DSS) modelos de respuestas a financiamiento
de
decisión, consultas
decisiones
herramientas
de análisis
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
11
2.1. Arquitectura para inteligencia de negocios
La inteligencia de negocios, más que un producto o aplicativo, es un concepto a partir del cual se
pueden crear un conjunto de soluciones, que permiten obtener de los datos de la operación del
negocio, así como información y conocimiento para la toma de decisiones. Para esto se hace uso
de herramientas tecnológicas que facilitan el aprovechamiento de este concepto en la creación de
valor. Entre las herramientas que permiten apoyar la aplicación de inteligencia de negocios en la
organización tenemos las siguientes (Aranibar, 2013):
• Análisis multidimensional
• Minería de datos
• Visualización.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
12
En la Figura 5 se puede observar cómo en los sistemas transaccionales se encuentran todos los
registros y repositorios de información, tales como sistemas de planeación de recursos empresariales
(ERP), administración de la relación con el cliente (CRM), hojas electrónicas, archivos planos o datos
almacenados en los sistemas de gestión de bases de datos (DBMS.
A partir de la extracción, transformación y carga (ETL) (Kimball & Ross, 2013), se da un proceso de
selección, filtrado, resumen o sumarización de datos, del cual se obtienen el Data Warehouses (DW,
almacenes de datos), Data Marts (DM, almacenes de datos pero para áreas de negocio) o almacenes
operacionales de datos (ODS). Estos integran los sistemas de procesamiento de transacciones en
línea (OLTP) de diferentes fuentes en sistemas de procesamiento analítico en línea (OLAP), ya sean
soportados por cubos multidimensionales a través de sistemas de procesamiento analítico en línea
multidimensionales (MOLAP) o en sistemas de procesamiento analítico en línea relacional (ROLAP)
—que son similares, pero soportados sobre bases de datos relacionales—.
Por último, los usuarios tendrán acceso a interfaces de sistemas gerenciales, tales como sistemas de
soporte Ejecutivo (ESS / EIS), sistemas de soporte de decisiones (DSS), sistemas de información gerencial
(SIG) o sistemas de procesamiento de transacciones (TPS), que ya fue explicado en la Tabla 1.
En principio, una base de datos es una colección de datos organizados de tal forma que el usuario
pueda acceder a la información cuando necesite de esta. Puede estar soportada en una libreta, una
hoja de Excel o en un complejo sistema de administración de bases de datos. No obstante, para
efectos de la intención de esta lectura fundamental, hablamos de bases de datos para referirnos a las
soportadas sobre sistemas de administración de bases de datos.
En general, se pueden encontrar dos tipos de bases de datos, según su aplicación, involucradas en los
sistemas de inteligencia de negocios (Aranibar, 2013):
De acuerdo con Aranibar, se pueden señalar las diferencias de estos dos tipos de bases de datos en la
Tabla 2.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
13
Tabla 2. Comparación entre bases de datos transaccionales y gerenciales
Tradicionalmente, cuando nos referimos a bases de datos transaccionales, se hace con respecto a aquellas
que registran la información de la operación normal de la empresa, las cuales evitan redundancias y
permiten trabajar sobre ella en tiempo real. Por otro lado, cuando la base de datos está orientada a la toma
de decisiones, principalmente a decisiones semiestructuradas y no estructuradas, dentro de esquemas
como un Data Warehouse o un Data Mart, se refiere a una base de datos gerenciales.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
14
Los Data Warehouse en los que se soportan las bases de datos gerenciales, se caracterizan por (Aranibar,
2013):
• Ser repositorios integrados, normalmente a partir de varias fuentes operacionales de datos, tanto
internas como externas a la organización.
• Son orientados al sujeto, es decir, se centran en información que pueda ser considerada relevante
sobre las actividades básicas de la empresa.
• No es volátil, pues la información que se almacena no debe ser modificada. En ocasiones, por razones
técnicas surge la necesidad de eliminar datos después de cumplido determinado plazo; pero, esto
hace que pueda perderse información histórica.
Por otro lado, mientras en las bases de datos transaccionales se busca eliminar las redundancias, pues
resultan indeseables para el adecuado funcionamiento del sistema; en las bases de datos gerenciales lo que
se busca es generar reportes. Aquí evitar la redundancia pasa a un segundo plano, ya que es más importante
que la información sea adecuada para trabajar de forma analítica, lo cual permitiría redundancias.
El término Data Warehouse (Turban, Volonio & Wood, 2013) se utiliza para hacer referencia a un almacén
de datos que corresponde a una base empresarial. Esta integra y depura información de una o más fuentes
distintas, para luego procesarla y permitir su análisis desde muchas de perspectivas, con buenas velocidades
de respuesta. Un Data Warehouse es una respuesta a la necesidad de consolidar la información para la
inteligencia de negocios. Por otro lado, un Data Mart es un almacén de datos más especializado, el cual está
relacionado normalmente con fines departamentales o sectoriales.
En general, existen dos corrientes en el desarrollo teórico de Data Warehouse: una basada en la teoría de
Inmon (2002) y la otra en la teoría de Kimball (Kimball & Ross, 2013). Para Inmon, el Data Warehouse es una
parte del todo lo que conforma a un sistema de BI. Una empresa tiene un Data Warehouse y los Data Marts
tienen como fuente de información este primero en una aproximación To-Down (Figura 6).
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
15
Data mart 1
Data mart 2
Data mart 3
Datawarehouse
Para Kimball y Ross (2013), el Data Warehouse se compone por un conglomerado de todos los Data
Mart generados por la empresa. La información siempre se almacena en un modelo dimensional en
una configuración Botton-Up (Figura 7).
Data mart 1
Datawarehouse
Data mart 2
Data mart 3
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
16
Por otro lado, se pueden encontrar otras arquitecturas tales como:
• Híbrida, que integra los beneficios de las arquitecturas Inmon y Kimball de tal forma que
coexistan.
• Federada, la cual está distribuida de tal forma que permite cambios permanentes, de acuerdo
con las exigencias de los usuarios.
Si bien existen diferencias entre las arquitecturas, también tienen mucho en común. En general, toda
organización necesita almacenar sus datos y analizar e interpretar sus recursos con el fin de tomar
decisiones críticas o estratégicas. La Tabla 3 muestra una comparación entre arquitecturas.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
17
Enfoque Top-Down Botton-Up Híbrido Federado
• No existe una • La vista
• Requiere
vista global de empresarial es
liderazgo un reto. • Aplicable
la organización
ejecutivo y a bajos
visión. • Existen costos • Altos costos
volúmenes de
de redundancia operativos y
• Consume datos
de datos de gestión de
muchos bases de datos • Pueden existir
Contras recursos en un
solo proyecto.
• Altos costos
operativos, • Existen costos
barreras de
infraestructura
de ETL, de redundancia
• Requiere de red y
aplicaciones, de datos
plataformas aplicaciones al
administración • Demora cliente
integralmente
de bases de relativa de
depuradas.
datos datos
El modelo lógico de las bases de datos está soportado sobre las siguientes premisas (Aranibar, 2013):
• Deben preparar a las bases de datos para soportar la recuperación de una gran cantidad de filas
de datos en forma rápida.
• Deben definir los cálculos a ser almacenados, de forma que se optimice la atención de consultas
recurrentes.
• Debe establecer un nivel de detalle que satisfaga las consultas necesarias por usuarios o analistas.
• Debe estar en función del acceso y uso de la información, en otras palabras, en función en la
frecuencia y velocidad de los reportes.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
18
• Debe reconsiderar la normalización de tablas que afecte la interpretación intuitiva de usuarios no
técnicos.
Son datos organizados lógicamente y que suministran información sobre el contexto del negocio.
Contienen datos cualitativos, como ubicación, productos, clientes y fechas. Es importante resaltar
que en las tablas de dimensiones es obligatoria una tabla de dimensión tiempo. Asimismo, estas tablas
tienen una llave primaria.
Estas tablas contienen precisamente los hechos que se analizarán del negocio, para apoyar la toma
de decisiones. Estas contienen datos cuantitativos y tienen llaves primarias compuestas por las llaves
primarias de las tablas de dimensiones (Figura 8).
CLIENTE FECHAS
id_Cliente 1 VENTAS
NombreCliente id_Cliente 1 id_Fecha
n id_Producto Año
n id_Fecha Trimestral
PRDUCTO n Mes
ImporteTotal
id_Producto 1 Día
Utilidad
Rubro
Tipo
NombreProducto
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
19
Así mismo, existen dos tipos de hechos: básicos y derivados.
• Tabla preagregadas: se generan antes de que se procese la consulta en los procesos ETL.
Hechos
DIM 1 3
n
s ió
DIM 3
en
Dimensión 2 Di
m
DIM 2
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
20
Indicador 1= (atributo 1, valor 5;
Atributo 2, valor 4;
atributo 3, valor 3)
Atributo 1
1ra dimensión)
5
2
Atributo 3
(3da dimensión)
1 3
2
1
1 2 34 Atributo 2
(2da dimensión)
• Esquema estrella
• Esquema constelación.
El esquema estrella tiene una única tabla de hechos central y varias tablas de dimensiones que se
relacionan de forma directa con ella (Figura 11).
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
21
Dimensión 1 Dimensión 2
id_dimensión1
1 id_Dimensión2
Campo1
Campo2
HECHOS 1 Campo1
n id_Dimensión1 Campo2
campoN
n id_Dimensión2 CampoN
n
id_Dimensión3
Dimensión 3 1 Dimensión 4
id_Dmiensión4 n
id_Dimensión3 Hecho1 id_Dimensión4
Campo1 Hecho2 1 Campo1
Campo2 HechoN Campo2
CampoN CampoN
En este modelo se desmota la normalización en su totalidad. Por esa razón, las tablas de dimensiones
se vinculan directamente a la tabla de hechos. Esto hace que tenga los mejores tiempos de respuesta,
sea fácil de modificar, fácil de operar y de analizar, y facilita el uso de herramientas de análisis
(Bernabeu, 2009).
Por su parte, en el esquema copo de nieve, a diferencia del de estrella, existen jerarquías en las
dimensiones y existe una tabla de hechos vinculada a tablas de dimensiones que, a su vez, están
relacionadas con otras tablas de dimensiones (Figura 12).
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
22
Entre las ventajas de este esquema está que aprovecha mejor el espacio, es útil cuando hay tablas de
muchas tuplas, está normalizada (por lo que el diseño es más sencillo) y utiliza jerarquías. Sin embargo,
aumenta la complejidad y reduce el desempeño.
Finalmente, el esquema constelación tiene más de una tabla de hechos, a partir de la cual se
establecen vínculos con tablas de dimensiones al estilo estrella (Figura 13).
Dimensión 1 Dimensión 2
id_Dimensión2
id_dimensión1 1 HECHOS_A id_Dimensión2a
Campo1 1 Campo1
Campo2 n id_Dimensión1
Campo2
campoN id_Dimensión2
n CampoN
Dimensión 3 id_Dimensión3
id_Dimensión3 1 n id_Dmiensión4 HECHOS_B
Campo1 Hecho1 n
id_Dimensión2
Campo2 n Hecho2
id_Dimensión5
CampoN HechoN Hecho1 n
Hecho2 1 Dimensión 5
Dimensión3 HechoN
id_Dimensión5
1
id_ Dimensión3 Campo1
Campo1 Campo2
Campo2 CampoN
CampoN
Al tener más de una tabla de hachos, permite analizar más aspectos clave del negocio y permite la
reutilización de tablas. No lo soportan todas las herramientas.
• Archivos de textos
• Hojas de cálculo
• Informes
• Hipertextos
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
23
Con base en lo anterior, es necesario establecer un sistema para tomar la información de las fuentes
y llevarlas al Data Warehouse. Esto se realiza a través de un proceso de extracción, transformación y
carga (Figura 14) (Bernabeu, 2009).
2.5.1. Extracción
2.5.2. Transformación
La idea es convertir los datos inconsistentes en un conjunto de datos coherentes, para que puedan
ser cargados en un Data Warehouse. En esta función también se llevan a cabo actividades como las
siguientes:
• Unificar la codificación.
2.5.3. Carga
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
24
A través de acciones tales como (Bernabeu, 2009):
Extracción
Carga
Transformación
Como se señaló en los apartados anteriores, un Data Warehouse no permite tener acceso
a información que muestre el comportamiento de un hecho, desde la perspectiva de varias
dimensiones. También es importante mencionar que mientras tenemos dos dimensiones, la
información normalmente se procesa en tablas; pero al querer determinar el comportamiento de un
hecho desde varias dimensiones de forma simultánea, estamos tratando de determinar cómo se da
este frente a múltiples variables. Lo anterior nos permite un análisis multidimensional.
Cuando se trabaja con tres dimensiones o más, estamos hablando de un hipercubo, difícil de abstraer
mentalmente; que, sin embargo, es posible representar con cierta dificultad en dos dimensiones
(Figuras 15 y 16).
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
25
Bidimensional
Bidimensional multiple o Tridimensionalidad en
tridimensional plano
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
26
Así mismo, también se puede representar el hipercubo viéndolo por capas (Figura 17).
Dimensiones páginas
(filtros) Dimensiones columna
(vertical)
Dimensiones fila
(horizontal) Hechos
Es posible observar cómo las tablas dinámicas de Excel se comportan como una herramienta de
análisis multidimensional, que es aplicable a la inteligencia de negocios.
• Rebanar: fija valores para obtener celdas, planos, segmentos o subcubos. Permite alto grado de
análisis.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
27
Región por
tiempo
Tiempo Tiempo
Tiempo Producto
por tiempo
Producto
Producto
Producto
Región Región Región
Figura 18. Rebanadas de un cubo tridimensional. Modificado de Aranibar (2013).
Fuente: elaboración propia
Plano Selda
Subcubo Segmento
Puede pensarse que el análisis multidimensional requiere de aplicaciones costosas y complejas. Sin
embargo, herramientas como Excel ya ofrecen recursos para el análisis multidimensional de datos,
a través del aprovechamiento de las tablas dinámicas. En general existen varias tecnologías de
procesamiento analítico:
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
28
• Procesamiento analítico multidimensional en línea (MOLAP, Multidimensional On-Line
Analytical Processing): en este enfoque, los datos se almacenan en cubos indexados basados en
dimensiones.
• Procesamiento analítico híbrido en línea (HOLAP, Hybrid Online Analytical Process): los datos
utilizan almacenamiento multidimensional y relacional a la vez. En la actualidad, la mayoría de los
productos OLAP son híbridos.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO
29
Referencias
Aranibar, J. (2013). Sistemas de Información Gerencial para la administración del desempeño
empresarial, La convergencia entre Business Intelligence y Balanced Scorecard. La Paz: Holding.
Bernabeu, D. (2009). Data Mart. (Data Prix). Recuperado el 30 de septiembre de 2017 de http://
www.dataprix.com/data-warehousing-y-metodologia-hefesto/i-data- warehousing-investigacion-y-
sistematizacion-concepto-13
Hitt, M., Ireland, D. & Hoskisson, R. (2004). Administración Estratégica (5.a ed.). (P. De la Garza,
Ed.). México: Thompson.
Inmon, W. (2002). Building the data warehouse. John Wiley and Sons.
Kimball, R. & Ross, M. (2013). The Data Warehouse Tollkit (3.a ed.). Indianapolis, United States of
America: Wiley.
Laudon, K. & Laudon, J. (2012). Sistemas de Información Gerencial. (L. Cruz Castillo, Ed.) Naucalpan
de Juárez, México: Pearson.
Laudon, K. & Carol, G. (2014). E-Commerce, Negocios, Tecnología, Sociedad (9.a ed.). (L. Cruz
Castillo, Ed.). México: Pearson Prentice Hall.
Turban, E., Aronson, J. & Peng Liang, T. (2005). Decision Support Systems and Intelligent Systems (7.a
ed.). (B. Horan, Ed.) New Jersey: Pearson Prentice Hall.
Turban, E., Volonio, L. & Wood, G. (2013). Information Technology for Management (9.a ed.). (B. Lang,
Ed.) United States of America.
Castillo, R., Morata, J. & Del Árbol, L. (s.f.). Operational Data Store (ODS). Recuperado de http://
www.lsi.us.es/redmidas/CEDI/papers/933.pdf
Date, C. (2001). Introducción a los sistemas de bases de datos. Naucalpan de Juárez, México: Pearson
Education.
Elmasri, R. & Navathe, S. (2007). Fundamentos de Sistemas de Bases de Datos. Madrid: Pearson,
Addison Wesley.
Referencias de imágenes y tablas
Aranibar, J. (2013). Sistemas de Información Gerencial para la administración del desempeño
empresarial, La convergencia entre Business Intelligence y Balanced Scorecard. La Paz: Holding.
Bernabeu, D. (2009). Data Mart. (Data Prix). Recuperado el 30 de septiembre de 2017 de http://
www.dataprix.com/data-warehousing-y-metodologia-hefesto/i-data- warehousing-investigacion-y-
sistematizacion-concepto-13
Laudon, K. & Laudon, J. (2012). Sistemas de Información Gerencial. (L. Cruz Castillo, Ed.) Naucalpan
de Juárez, México: Pearson.
INFORMACIÓN TÉCNICA
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 32
Módulo Teórico-Práctico
Actividad en contexto
Módulo
Nombre de la entrega
Nivel académico
Especialización
Tipo de entrega
Actividad aplicada
Nota
Tenga en cuenta que el tutor le indicará qué herramienta requiere y qué
estrategia deberá desarrollar para evidenciar su participación individual
en un trabajo colaborativo.
DESCRIPCIÓN
DE LA ACTIVIDAD
Aplicar las fases del diseño de bases de datos en la resolución del siguiente caso aplicando los
conceptos del escenario.
CASO O PROBLEMA
La base de datos incluirá información acerca de los clientes, los autos, los empleados que
trabajan en taller y los repuestos utilizados en cada servicio.
POLITÉCNICO GRANCOLOMBIANO
22
La base de datos debe:
estimada se crea una factura que además incluye un IVA del 19%.
PLANTEAMIENTO
DE LA ACTIVIDAD
POLITÉCNICO GRANCOLOMBIANO
33
Unidad 14 // Escenario 8
2
fundamental
Lectura Fundamental
Metodología
Etapas de unpara la de
plan implementación
comunicación de
un sistema de inteligencia de negocios
estratégica
Contenido
1. Centrarse en el negocio
A continuación, se describirá con más detalle cada una de las etapas (Kimball & Ross, 2013):
Figura 1. Ciclo de vida dimensional del negocio. Modificado de Kimball & Ross (2013)
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 2
1.1. Planificación del proyecto
En esta primera etapa se determina el propósito del proyecto de inteligencia de negocios, los
objetivos y el alcance. Incluye tareas como las que se describen a continuación:
• Definir el alcance
• Establecer tareas
• Programar tareas
• Planificar recursos
Esta definición implica tener entrevistas con el personal del negocio, al igual que con el personal
técnico involucrado. Existen diversos tipos de requerimientos; entre estos tenemos los siguientes:
Los requerimientos de negocio consisten en aquellos que son resultado de las prácticas del negocio
actual. Existen diversas técnicas para obtener estos requerimientos; entre ellas tenemos:
• Casos de uso
• BPM
Corresponden a los requerimientos que hacen uso del sistema y deben ser establecidos en trabajo
conjunto con estos.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 3
1.1.4. Requerimientos del sistema
En este diseño se lleva a cabo el modelado dimensional, en el cual se elige el área a modelizar, se
establece el nivel de granularidad (detalle) y se seleccionan las dimensiones, medidas y tablas de
hechos (lo anterior de acuerdo con lo visto en el escenario 7).
Producto
Funcionalidad
Requerimientos Lo que el Requerimientos Fiabilidad
funcionales sistema hace no funcionales Usabilidad
Eficiencia
Mantenibilidad
Portabilidad
Organizacionales
De entrega
De implementación
Requerimientos de
estándares
Externos
Seguridad
Éticos
Interoperabilidad
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 4
1.3. Diseño físico
• El Hardware
1.5. Implementación
Esta corresponde a la etapa en la que se materializa la solución. Implica la integración de los datos,
los sistemas y los usuarios, así como la puesta en marcha del sistema y la realización de las pruebas y
actividades necesarias para que este funcione adecuadamente.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 5
1.7. Especificación de aplicaciones BI
En esta se establecen los informes estándar y las aplicaciones analíticas que produce el sistema.
Acá se define la arquitectura, tanto del Back end como del Front end; es decir, de la arquitectura
desde la preparación de los datos, hasta la forma en que se entregan los datos al usuario.
Es una actividad transversal a todo el proyecto que busca asegurar que este cumpla con sus objetivos
y que termine exitosamente.
2. Alinear la organización con la estrategia: esta acción evidencia el papel de la empresa y las
sinergias entre las unidades de negocio y de los servicios compartidos.
3. Hacer que la estrategia sea el trabajo diario de todo el mundo: crea conciencia de la estrategia y
establece cuadros de mando personales y salarios con incentivos.
4. Hacer que la estrategia sea un proceso continuo: esto se lleva a cabo al vincular el presupuesto con la
estrategia, crear sistemas analíticos y de información, y establecer un aprendizaje estratégico.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 6
5. Movilizar el cambio a través del liderazgo directivo: esto se logra a través de la movilización, un
proceso de gobernabilidad y un sistema de gestión estratégica.
Entre los problemas que tienen los gerentes en la toma de decisiones encontramos los siguientes:
Partiendo de estas situaciones, se evidencia la necesidad del gerente para la adecuada toma de
decisiones sobre:
• Una visión holística de la organización; es decir, una decisión que afecta positivamente a un área
puede afectar de forma negativa el conjunto de la empresa.
• Información y conocimiento objetivo, que permite mejorar la toma de decisiones y reducir el riesgo.
• Tener información oportuna sobre el desempeño de la organización en conjunto y en cada uno de sus
componentes, para evidenciar desviaciones con respecto a lo planificado y planeado.
• Mantener claro el rumbo de las acciones de acuerdo con los objetivos de la organización.
Los indicadores clave de desempeño (KPI, por sus siglas en inglés: Key Performance Indicator) corresponden
a las medidas de desempeño asociadas con procesos, los cuales son aplicables totalmente a la gestión de
proyectos. El indicador busca mostrar “cómo” ha sido el progreso en un aspecto concreto a evaluar. En las
empresas, estas mediciones suelen estar relacionadas con factores tales como compras, logística, ventas,
servicio al cliente, finanzas, etc. Normalmente, estos indicadores buscan estar asociados con el plan
estratégico del negocio.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 7
Para tener un verdadero control gerencial es necesario establecer indicadores clave de desempeño.
La inteligencia de negocios utiliza un término para designar las métricas que permiten evidenciar
el comportamiento del desempeño y se denominan Indicadores Clave de Desempeño (Key
Performance Indicators – KPI). Un sistema de inteligencia de negocios puede manejar volúmenes
importantes de datos de diferentes fuentes. Según Rozner (2013), las características con las que
debe cumplir un KPI son, las siguientes:
• (S) específicos
• (M) medibles
• (A) alcanzables
• (R) relevantes
• (T) temporales
Sin embargo, no siempre los KPI del funcionamiento tradicional de una empresa se ajustan a las
necesidades de un proyecto.
Muchas veces, para hacer seguimiento a los proyectos, los KPI no son los más adecuados; en especial
porque en el funcionamiento tradicional de la empresa lo que ocurre al final del proceso tiene un
efecto de retroalimentación o mejoramiento continuo. Recordemos que en el funcionamiento de una
empresa, las actividades son continuas y repetitivas. En cambio, en un proyecto las actividades que
se realizan son necesarias para la consecución de los objetivos y, una vez alcanzados, el proyecto ha
concluido de forma definitiva.
Así, los indicadores que son útiles para el desempeño normal de una empresa, no necesariamente lo son
para el desempeño de un proyecto. En especial, porque cuando se obtienen ya no hay nada que hacer, ni
generan ningún beneficio.
Por otro lado, lo planeado en un proyecto no siempre se ajusta a lo que se ejecuta, lo cual hace que ciertos
KPI pierdan vigencia en la medida que se dan cambios. En tercer lugar, el mismo KPI puede afectar el
desempeño del proyecto en la medida que el proyectista puede tratar de ajustar sus metas al cumplimiento
de los KPI, en lugar de ajustarlos al cumplimiento de los objetivos del proyecto. En la medida que se dan
desviaciones, las decisiones se pueden ver afectadas por los mismos KPI.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 8
2.1.2. Elección de KPI correctos para proyectos
De acuerdo con la experiencia, podemos decir que los KPI deben cumplir con algunas características:
• Deben permitir que se realicen acciones correctivas en el curso de las actividades y no esperar a
que termine el proyecto.
• Deben estar sujetos a los objetivos del proyecto y a la estrategia de la organización involucrada.
• Deben tener en cuenta los riesgos y los costos, al igual que el flujo de caja.
• Si afectan el desempeño del proyecto, deben hacerlo de forma positiva para ajustarse a los
objetivos del mismo y de la organización.
A principios de los años 90, Robert Kaplan y David Norton desarrollaron lo que se denomina el
cuadro de mando integral o Balanced Scorecard en la Escuela de Negocios de Harvard. La ventaja
que ofrece este cuadro de mando es que ofrece una visión integral de la organización y de su
desempeño, desde cuatro perspectivas (Kaplan & Norton, 2004). A saber:
• Perspectiva financiera: si tenemos éxito, ¿cómo atendemos los intereses de los accionistas?
• Perspectiva operativa o del proceso interno: ¿cómo podemos ser excelentes en los procesos?
• Perspectiva de aprendizaje: ¿en qué y cómo nuestra organización debe seguir aprendiendo,
mejorando y creando valor?
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 9
El paso siguiente es establecer las relaciones e influencias de los objetivos entre sí, en lo que se
denomina un mapa estratégico. Esto permite evidenciar cómo al afectar un objetivo (medido a través
de un KPI correspondiente) se afectan los objetivos estratégicos de la empresa. Para concluir, se
pueden establecer tableros de comando y visualización de indicadores.
Finalmente, los tableros de control o tableros de comando permiten identificar, de forma resumida,
gráfica y sencilla, el comportamiento de los indicadores de la compañía. Con estos se pueden
establecer semáforos que permitan determinar el grado de cumplimiento de una meta relacionada
con un objetivo organizacional. Esto facilita la toma de decisiones y, por consiguiente, aporta valor
a la organización.
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 10
Referencias
Kaplan, R. & Norton, D. (2004). Cuadro de Mando Integral. Bogotá: Editorial Planeta Colombiana S.A.
Kimball, R. & Ross, M. (2013). The Data Warehouse Tollkit (3.a ed.). Indianapolis, United States of
America: Wiley.
Rozner, S. (2013). Developing Key Performance Indicators, A toolkit for Health Sector Managers.
Bethesda, MD: Health Finance & Governance Project, Abt Associates Inc.
Inmon, W. (2002). Building the data warehouse. John Wiley and Sons.
Referencias de imágenes
Kimball, R., & Ross, M. (2013). The Data Warehouse Tollkit (3.a ed.). Indianapolis, United States of
America: Wiley.
INFORMACIÓN TÉCNICA
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 12