Fefefefefefefefefefefff1
Fefefefefefefefefefefff1
Fefefefefefefefefefefff1
Lectura fundamental
Contenido
1 Historia de las bases de datos
6 El modelo relacional
7 Normalización de modelos
10 SQL
Palabras clave: dato, campo, registro, formas normales, álgebra relacional, objetos.
1. Historia de las bases de datos
Según Jiménez Capel, “Las bases de datos relacionales o modelo relacional fue definido por Edgar Frank
Codd a finales de los años 60; en 1970 publicaría un documento que llevaba por nombre A Relational
Model of data for Large Shared Data Banks (Un modelo relacional de datos para grandes bancos de
datos compartidos), siendo este el documento más importante sobre esta materia y del cual nace el
término. El modelo relacional es el más utilizado en la actualidad” (Jiménez Capel, 2014).
Las grandes empresas cuentan con enormes centrales informáticas y las pequeñas o medianas
empresas cuentan con microcomputadoras. Cuando no se tiene una suficiente capacidad de
hardware, la información se debe distribuir en un conjunto de bases de datos. Por ejemplo, se puede
contar con una base de datos para las cuentas corrientes, otra para el área de cuentas de ahorros, otra
más para el área de tarjetas de crédito o el área de producción.
Una empresa con grandes datacenters, integra y consolida en una única base de datos toda la
información.
POLITÉCNICO GRANCOLOMBIANO 2
4. Base de datos relacionales
Se llama base de datos relacional al modelo que se basa en el concepto matemático de la teoría de
conjuntos, aplicada a un conjunto de datos no redundantes, organizados en filas y columnas,
denominado relación, que permite establecer interconexiones entre los datos (representadas tablas) y
las tablas se relacionan unas con otras a través de dichas conexiones, como se muestra en la figura 1,
donde se puede observar que el EMP está asociado a un DEPARTAMENTO, pero que en el
departamento trabajan muchos empleados.
Figura 1. Ejemplo de una relación entre dos tablas de una base de datos relacional
Fuente: elaboración propia
POLITÉCNICO GRANCOLOMBIANO 3
Dentro de los lenguajes que se consideran de mayor relevancia, para tratar con datos de una base de
datos, tenemos:
SQL. Structured Query Language. Es el lenguaje genérico para manipular los datos de una base de
datos.
En general, SQL es el conjunto de sentencias con las que todos los programas y los usuarios acceden
a datos en una base de datos, ya sea con Oracle, DB2, MySQL, PostgreSQL, etc., Los programas de
aplicación y las herramientas, a menudo permiten a los usuarios acceder a la base de datos sin utilizar
SQL directamente, pero estas aplicaciones, a su vez, deben utilizar SQL al ejecutar la solicitud del
usuario.
El propósito de SQL es proporcionar una interfaz para una base de datos relacional y todas las
sentencias SQL son instrucciones para la base de datos.
SQL difiere de los lenguajes de programación de uso general como C, Java, Cobol, Fortran, PHP,
etc., porque es el que realiza las siguientes tareas:
• Utiliza declaraciones que son complejas y poderosas individualmente y que, por tanto, son
independientes.
SQL es un leguaje interpretado que permite trabajar con datos en el nivel lógico. Por ejemplo, para
recuperar un conjunto de filas de una tabla, se define una condición utilizada para filtrar las filas. Todas
las filas que satisfacen la condición se recuperan en un solo paso y se pueden pasar como una unidad
al usuario, a otra sentencia SQL o a una aplicación.
Otros lenguajes de alto nivel (compilados) que se usan para trabajar con bases de datos
Java. Es uno de los lenguajes de la actualidad que facilita la manipulación de los datos en una base
de datos, porque le han sido incorporadas las respectivas librerías que facilitan operaciones como
insertar, actualizar, consultar y borrar datos de una base de datos.
Pro-C. Es un lenguaje de nivel medio, muy ligado al sistema operativo Unix, pero que trae las librerías
necesarias que facilitan la manipulación de datos de una base de datos como DB2 y Oracle.
POLITÉCNICO GRANCOLOMBIANO 4
COBOL. Es un lenguaje de alto nivel, compilado y orientado hacia la gestión de empresas. Fue
creado por el gobierno de los E.U, para facilitar la manipulación de datos en las empresas, de una
manera más amigable y segura. Cobol es uno de los lenguajes más seguros en cuanto a precisión en el
cálculo y manipulación de datos, razón por la cual los bancos a nivel mundial y otras empresas lo usan
hasta el día de hoy. Es un lenguaje orientado hacia los negocios y ha sido rediseñado para acceder y
operar datos en una base de datos.
Para trabajar con bases de datos desde ambientes Web, se usan lenguajes interpretados como PHP,
JavaScript, Spring MVC, HTML, XML, entre otros.
6. El modelo relacional
El modelo relacional, es un modelo que facilita la organización y representación de los datos que se
quieren almacenar en una base de datos. Se trata de un modelo teórico matemático, que cuenta con
elementos básicos de modelado como las relaciones y un conjunto de operadores propios del álgebra
relacional, para el manejo de los datos sin dar lugar a las ambigüedades.
El modelo relacional, es el modelo utilizado por la mayoría de los sistemas de gestión de bases de
datos comerciales. Es usado para la elaboración del diseño conceptual y el modelo lógico de una base
de datos.
POLITÉCNICO GRANCOLOMBIANO 5
7. Normalización de modelos
El hecho de tener un sistema de gestión de base de datos (SGBD), no garantiza que no se sucedan
redundancias en los datos de un conjunto de tablas de una base de datos sin normalizar.
Dentro de la teoría del diseño de las bases de datos relacionales, es el concepto más importante es el
de las dependencias funcionales.
Una dependencia funcional, es una relación que se establece entre al menos dos atributos de una
entidad. Suponga que se tiene una base de datos relacional con un conjunto de entidades y entre
todas las entidades se tiene un conjunto de n atributos {X1, X2,...,Xn}, así, podríamos decir que la
base datos tiene una relación universal, dada por R = {¨X1,X2,…,Xn}. Con esta conceptualización,
podemos decir que:
Una dependencia funcional, se denota como X ->Y, lo cual nos dice que entre los conjuntos de datos
de X y los datos de Y, existe una dependencia en R, pero esto no supone que Y -> X, así:
Una dependencia funcional, es un tipo de restricción que constituye una generalización del
concepto de clave.
Dependencia funcional parcial, Se dice que un descriptor Y, depende funcionalmente de otro descriptor
X, si y sólo si, a cada valor de X le corresponde un único valor de Y.
POLITÉCNICO GRANCOLOMBIANO 6
Dependencia funcional completa, Se dice que un descriptor Y, depende funcionalmente de otro
descriptor X y, además, de otro descriptor Z.
POLITÉCNICO GRANCOLOMBIANO 7
Ejercicio: Con base en la tabla Nro. 1., Se busca que a un profesor no se le pueda prestar más de un
libro de la misma editorial en el mismo día. Igualmente, que no se le preste a un profesor el mismo
libro más de una vez en la semana:
1. Indicar cuáles son las dependencias funcionales utilizando las siguientes abreviaturas:
Universidad (U), Profesor (P), Asignatura (H), Aula (A), Curso (C), Libro (L), Editorial (E) y
Fecha_Préstamo (F)
Formas normales. Una base de datos se puede normalizar según la necesidad, para operaciones
con una alta transaccionalidad o un volumen de enormes consultas en línea, se recomienda dejarla
en 2FN. Una base de datos estándar, se recomienda dejarla en 3FN. Cuando se desea conservar y
manejar atributos multivalor, se recomienda llegar a la 4FN.
Primera Forma Normal (1FN). La 1FN, fue definida para prohibir los atributos multivalor, es decir,
solo se permiten atributos atómicos (no divisibles).
POLITÉCNICO GRANCOLOMBIANO 8
Figura 3. Dependencias
Fuente: elaboración propia
En la figura 3, se puede apreciar que una compañía le paga a cada empleado de acuerdo con las horas
trabajadas en cada proyecto, con base en el cargo, por ejemplo, una hora de trabajo de un técnico se
cobra diferente a la de un ingeniero. Aquí se puede ver que para que quede en primera forma normal,
no deben existir registros repetidos ni campos multivalor. Para lograr este propósito, se genera una
llave compuesta con el número del proyecto y el número del empelado.
Segunda Forma Normal (2FN). La 2FN, una vez se tiene la estructura de la primera forma normal,
es sencillo pasar a la segunda forma normal, extrayendo de la tabla de la 1FN, los campos en tablas
separadas con cada una de las llaves simples y formando una tabla adicional con los elementos
restantes que aplican a las llaves simples.
Tercera Forma Normal (3FN). La 3FN, Con base en el ejercicio hasta la segunda forma normal,
vemos que queda una dependencia transitiva, la cual debemos desaparecer para llegar a la 3FN.
Se logra separando la dependencia transitiva en otra tabla hija, independiente, pero ligando la tabla
padre a esta tabla hija mediante una llave foránea en la tabla padre.
POLITÉCNICO GRANCOLOMBIANO 9
Proyecto (proy_num, proy_nombre)
Empleado ( emp_num, emp_nobre, cod_cargo(fk)) -> Esta tabla se debe completar.
Cargo (cod_cargo, clase_cargo, valor_hora)
Asignación (num_empl, num_proy, horas_trabajadas)
Se han logrado eliminar todas las dependencias transitivas, entonces podemos decir que estamos en
TERCERA FORMA NORMAL. La 3FN se caracteriza, además, por presentar ATOMICIDAD, es
decir, que presenta atributos que ya no pueden ser sub-divididos.
En la tabla de empleados vemos que el atributo nombre se puede dividir para facilitar los procesos de
organización de los datos, es decir, que se puedan acomodar por apellidos, por nombres, por fecha de
nacimiento, etc., luego, nuestra tabla de empleados quedaría como sigue:
Se requiere formalizar pruebas para detectar errores que se pueden presentar en la puesta en marcha
del proyecto. Así que nuestra tabla de asignación debe incluir campos adicionales para formalizar
una llave compuesta, hasta que no permita redundancia, pero tampoco impida la carga de datos de
manera correcta. Para el caso en estudio, se puede agregar a la tabla de asignación, los atributos
fecha_horas y una secuencia.
Esta afirmación nos lleva a concluir que toda tabla que está en tercera forma normal, es decir no tiene
dependencias transitivas, está en la forma normal de Boyce-Codd (BCNF). Luego, BCFN es un caso
especial de la normalización en 3FN.
POLITÉCNICO GRANCOLOMBIANO 10
8. Almacenamiento de los datos
El almacenamiento de los datos se define como un arreglo de datos integrados, no volátiles y
persistentes en el tiempo, que son tratados y convertidos en información para la toma de decisiones.
Los datos se clasifican y se pueden guardar en grandes repositorios llamados bodega de datos o
datawarehouse.
Operaciones fundamentales del álgebra relacional: proyección, selección, producto cartesiano, unión
y diferencia. Además de las operaciones fundamentales, están las operaciones adicionales como la
división, intersección y la reunión natural o join.
1. R y S son dos relaciones con esquemas idénticos, es decir, el mismo número de columnas y del
mismo tipo.
Sea Películas
Título Año Duración Tipo Estudio
Guerra de los mil días 1900 130 color Fox
La estrategia del caracol 1993 104 color Disney
Solo para tus ojos 1982 105 color Paramount
Sea R
Nombre Dirección Género Fec Nac
Pedro Pérez Calle 127 # 50 - 25 F 6/6/66
Sacarías Arenas Cra 12 # 60 - 25 M 5/5/55
POLITÉCNICO GRANCOLOMBIANO 11
Sea S
Nombre Dirección Género Fec Nac
Lucía Montalván Cra 72 # 45 - 20 M 20/11/56
Pedro Pérez Calle 127 # 50 - 25 F 6/6/66
Operación Proyección . Genera una nueva relación a partir de otra, incluyendo las columnas de la
lista. Sea x1, x3, x5 (R)
Operación Proyección. Genera una nueva relación a partir de otra u otras, con base en restricciones
sobre la selección, ejemplo:
duración>=102 (Películas)
Título Año Duración Tipo Estudio
Guerra de los mil días 1900 130 color Fox
La estrategia del caracol 1993 104 color Disney
POLITÉCNICO GRANCOLOMBIANO 12
duración>=100 and estudio=’Fox’ (Películas)
Título Año Duración Tipo Estudio
Guerra de los mil días 1900 130 color Fox
Operación División (/). T = { R / S }. La división de una relación R entre una relación S, exige que
para toda tupla en R exista su correspondiente en S.
Sea S
C D
c d
e f
Sean R
A B C D
a b c d
a b e f
b c e f
e d c d
e d e f
a b d e
POLITÉCNICO GRANCOLOMBIANO 13
Figura 4. Producto Cartesiano
Fuente: elaboración propia
10. SQL
SQL (Structured Query Language). El SQL fue uno de los primeros lenguajes comerciales creados
para acceder a los datos de las bases de datos relacionales. El SQL fue estandarizado en 1986 por
el Instituto Nacional Estadounidense de Estándares (ANSI) y por la Organización Internacional de
Normalización (ISO) en 1987.
SQL es un lenguaje estructurado para consulta en bases de datos relacionales, con el cual se pueden
realizar diferentes tipos de operaciones. Se basa en el álgebra relacional y en el cálculo relacional.
Se basa en el DDL (Lenguaje de definición de datos) para todo lo que tiene que ver con creación de
tablas, índices, espacios de trabajo, eliminación de tablas y renombrado de tablas. El DML (Lenguaje
de manipulación de datos) es el que permite la consulta de datos, inserción de datos, actualizaciones y
borrado de datos.
El SQL es un lenguaje interpretado, mientras el PLSQL, que es una extensión del SQL, es un
lenguaje estructurado, que debe ser compilado y sirve para construir procedimientos almacenados.
POLITÉCNICO GRANCOLOMBIANO 14
Operaciones básicas con SQL
Todas las sentencias SQL comienzan con cualquiera de las palabras clave como SELECT, INSERT,
UPDATE, DELETE, ALTER, DROP, CREATE, USE, SHOW y todas las sentencias terminan con un
punto y coma (;).
Sintaxis:
a.nombre_empleado as nombre_empleado,
a.cod_cargo as cod_cargo
from empleados a;
Sintaxis:
Update: Una instrucción SQL UPDATE cambia los datos de uno o más registros de una tabla. Se
pueden actualizar todas las filas o seleccionar un subconjunto utilizando una condición.
Ejemplo:
POLITÉCNICO GRANCOLOMBIANO 15
Delete: Sirve para eliminar tuplas de una tabla. Cualquier fila que coincida con la condición WHERE
se eliminará de la tabla. Si se omite la cláusula WHERE, se quitan todas las filas de la tabla. La
instrucción DELETE debe utilizarse con precaución.
Sintaxis:
DELETE FROM tabla [condición WHERE];
Merge: Un sistema de gestión de base de datos relacional utiliza sentencias SQL MERGE, para
INSERTAR nuevos registros o actualizar registros existentes, dependiendo de si la condición coincide.
Sintaxis:
Ejemplo:
GROUP BY e.cod_empleado);
COD BONIFIC
100 100
101 100
POLITÉCNICO GRANCOLOMBIANO 16
102 100
103 100
ON (D.cod_empleado = S.cod_empleado)
commit;
COD BONIFIC
100 340
101 270
102 270
103 100
104 100
105 100
Con este ejercicio, se hacen dos operaciones en una sola. Actualiza el valor de la tabla de bonos
con base en la tabla de empleados. Aquellos empleados del departamento 90, que ganan menos de
25000 dólares, cuyo código coincide en las dos tablas, se les da un bono del 8%. Los que ganen más
de 25000 dólares no se tiene en cuenta y para aquellos códigos de la tabla de bonos cuyos códigos
no figuren en la tabla de empleados, se insertan con un bono del 1%.
POLITÉCNICO GRANCOLOMBIANO 17
11. Fundamentos del paradigma de las bases de datos orientadas a objetos
Algunas aplicaciones no pueden usar bases de datos relacionales por las restricciones propias del
modelo relacional, por lo que los investigadores han venido desarrollando modelos diferentes y uno de
ellos es el de las bases de datos orientadas a objetos (bdoo); el paradigma de bdoo, está basado en las
propiedades de encapsulamiento de los datos.
Una base de datos orientada a objetos, es una base de datos que se integra con programas orientados
a objetos y el producto es un sistema manejado de una base de datos orientada a objetos (ODBMS).
Su característica fundamental está basada en los conceptos clases de objetos y herencia.
Las BDOO, están construidas sobre las bases de datos del modelo E-R, por lo que primero se
trabajan los datos en E-R y se convierten en objetos.
POLITÉCNICO GRANCOLOMBIANO 18
11.2. Estructura de los objetos.
Los objetos en bdoo corresponden a las entidades del modelo E-R. Para hacer más comprensible el
modelo de BDOO, se hace un paralelo con el modelo E-R en los siguientes términos:
• En el modelo E-R, las variables corresponden a los atributos de las tablas, en BDOO, las
variables están contenidas en los objetos
• Los métodos son quienes manejan los mensajes. Cuando se envía un mensaje, el método
correspondiente devuelve un valor como respuesta al mensaje
• Se denomina mensaje a la invocación que un método hace para llamar a otro método.
Los métodos se utilizan para el manejo de los mensajes, así el método antigüedad, se define como un
entero, porque va a recibir la antigüedad del empleado desde que fue dado de alta en la empresa hasta
hoy, luego el método se puede definir como:
int antigüedad()
Donde today() es una función que extrae del sistema, la fecha de hoy para poder restar de ella, la fecha
en la que el empleado entró a la empresa y así obtener su antigüedad, ya sea en años, meses o días.
POLITÉCNICO GRANCOLOMBIANO 19
Figura 6. Definición de la clase empleado
Fuente: Silberschatz & Korth, (2006)
Las BDOO requieren, por lo general, un gran número de clases, algunas muy parecidas como la
clase cliente y la clase empleado. Para efectos de un caso de la vida real, se usará el ejemplo de una
aplicación bancaria que contiene empleados, clientes, cuentas, saldos, cajeros, secretarias, etc.
Analizando el contexto, se puede ver que la clase empleado y la clase cliente, tienen cosas en común
como la dirección, pero tienen aspectos diferentes como el sueldo para el empleado y el valor del
préstamo para el cliente. Para no repetir las cosas comunes, se requiere implementar el concepto de
herencia y de ahí nace una clase superior o super clase, que para este caso es la super clase Persona.
De esta manera, se pueden crear las clases, empleado, cliente, cajero, secretaria, que heredan
los aspectos comunes como dirección, identificación, nombre, etc., pero cada subclase se debe
personalizar con las variables propias de la subclase y sus métodos específicos y así llegamos al
concepto de objeto en una base de datos orientada a objetos, como se muestra en la figura 7.
POLITÉCNICO GRANCOLOMBIANO 20
Figura 6. Definición de la clase empleado
Fuente: Silberschatz & Korth, (2006)
Los administrativos tienen sus variables, pero a su vez heredan características de los empleados, ya
que los administrativos son una especialización de los empleados, pero los empleados son personas
que heredan características de la clase persona, así que esto se debe a que los administrativos se
definen como empleados y, como se puede deducir, los administrativos son también personas
(Silberschatz & Korth, 2006).
Una clase que contiene datos como la clase empleado, cliente, es lo que se conoce en UML, como
clases persistentes, que en bases de datos se llaman entidades o tablas.
Herencia Múltiple. Cuando una subclase puede heredar características de dos superclases, se
dice que esa subclase tiene herencia múltiple. Cuando se tiene este paradigma, se requiere hacer
una programación cuidadosa para no caer en ambigüedades. Supóngase que se tiene la superclase
persona, correspondiente a una universidad, pero a su vez se tienen las subclases profesor y
estudiante. Suponga que el estudiante trabaja como monitor del profesor.
POLITÉCNICO GRANCOLOMBIANO 21
El profesor pertenece a un departamento de la universidad y el estudiante al departamento de
estudiantes. Los dos atributos son diferentes en este momento, pero cuando el estudiante pase a ser
monitor del profesor, tiene que pertenecer como estudiante al mismo departamento del profesor bajo
la subclase monitor, que pertenece tanto a la subclase profesor como a la subclase estudiante, ahí se
tiene un problema con la variable departamento.
Hay una ambigüedad, para resolverla se aconseja crear en cada superclase (profesor y estudiante,
que son las superclases de monitor), una variable para tratar el departamento como dept.profesor
y dept.estudiante. Así la clase monitor usará una o la otra, dependiendo del contexto en el que esté
trabajando.
El manejador de bases de datos relacionales se conoce como SGBD (Sistema de Gestión de Bases
de Datos Relacionales). Para manejar las bases de datos orientadas a objetos, se usa el motor ODMG
(Object Database Management Group). Fue creado por un grupo de industriales y apareció por
primera vez en 1993.
• Modelos de objetos
Modelo de Objetos. ODMG es una biblioteca de clases, donde están los componentes básicos para
el manejo de una BDOO. Dichos componentes son los objetos y las literales.
Un objeto es una instancia auto-contenida de una entidad como, por ejemplo, empleado y tienen un
identificador único y se les pueden asociar los comportamientos o métodos.
Una literal es el elemento que permite manejar las características de los datos como, por ejemplo, un
valor, una cadena, un arreglo o colección de datos.
POLITÉCNICO GRANCOLOMBIANO 22
El sistema ODMG, clasifica los siguientes tipos de objetos:
Array<tipo>: Es un grupo ordenado de objetos del mismo tipo que se pueden acceder por su posición.
Su tamaño es dinámico y los elementos se pueden insertar y borrar de cualquier posición.
Dictionary<clave, valor>: Es como un índice. Está formado por claves ordenadas, cada una de ellas
emparejada con un solo valor.
Tipos estructurados:
ODL es un lenguaje de especificación para definir tipos de objetos para sistemas compatibles con
ODMG. ODL es el equivalente del DDL (lenguaje de definición de datos) del sistema de gestión de
base de datos relacional.
POLITÉCNICO GRANCOLOMBIANO 23
El ODL define las relaciones, los atributos y los tipos, además, especifica la rúbrica de las operaciones.
OQL es un lenguaje declarativo de consulta y equivale al SQL en BDR. Se utiliza para realizar
consultas sobre bases de datos orientadas a objetos. Este lenguaje incluye primitivas de alto nivel para
conjuntos de objetos y estructuras. Se basa en el SQL-92, del cual hereda sentencias como el Select.
Los objetos no son modificados por el OQL, como sí se puede hacer con UPDATE en las BDR, las
modificaciones se pueden realizar mediante los métodos que los objetos tienen.
FROM d in dpto
POLITÉCNICO GRANCOLOMBIANO 24
Referencias
Jiménez Capel, M. Y. (2014). Bases de datos relacionales y modelado de datos (UF1471). Madrid,
España: IC Editorial.
Silberschatz, A., & Korth, H. F. (2006). Fundamentos de bases de datos (5 ed.). Madrid, España:
McGraw Hill.
POLITÉCNICO GRANCOLOMBIANO 25
INFORMACIÓN TÉCNICA
POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 26