Autor: Luis Felipe Wanumen Silva 1 ENCICLOPEDIA CONOCIENDO TOMO XL TEORIA DE BASES DE DATOS ELABORADO POR: LUIS FELIPE WANUMEN SILVA INGENIERO DE SISTEMAS Y AUTOR DE LA ENCICLOPEDIA CONOCIENDO CONTIENE DEFINICIONES, CONCEPTOS, TEOREMAS, ENUNCIADOS Y ALGO MÁS. PRIMERA VERSIÓN AUN NO REVISADA SANTAFE DE BOGOTA D.C. AGOSTO DE 2003. Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva 2 1. TEORIA SOBRE BASES DE DATOS RELACIONALES 1.1. DOMINIO: Un dominio es un conjunto de valores. En la mayoría de libros los autores denotan a un dominio con la letra “D”. Pero bueno, con el ánimo de lograr mayor claridad de esta definición, a continuación se muestran algunos ejemplos de dominios: D(color) ={amarillo, azul, rojo, verde, violeta, magenta, púrpura, gris} D(enteros) = Todos los números enteros Para los dos dominios descritos anteriormente podemos hacer las siguientes aclaraciones: D(color) Es un dominio finito Matemáticamente fue escrito por extensión Dominio numerado que detalla con precisión los elementos que componen dicho dominio D(enteros) Es un dominio infinito Matemáticamente fue escrito por generalización Dominio no enumerado, el cual se detalla por medio de una expresión que generalice a los elementos que constituyen el dominio. A esta forma de expresar los elementos se le conoce comúnmente como predicado 1.2. ATRIBUTO: Un atributo es una pareja ordenada (N, D) donde N es el nombre del atributo y D es el Dominio. Por ejemplo los siguientes son atributos válidos basados en el dominio D(color): (Color_puerta, D(color) ) (Color_carro, D(color) ) 1.3. ESQUEMA: Un esquema es una pareja ordenada (T, A) en la cual “T” hace referencia al nombre de la tabla y “A” hace referencia a un conjunto de atributos obviamente todos con atributos diferentes para poder identificarlos. Ejemplo: Expresar la siguiente tabla en notación matemática: Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva CODIGO Entre 1 y 5000 3 ESTUDIANTE ESTATURA EDAD Entre 20cm y 250cm Entre 1 y 120 años COLOR_DE_PIEL Negra, blanca, trigueña, canela, amarilla, morena Lista de dominios D1 = {x! x es entero y 1<= x <= 5000} D2 = {x! x es real y 20<= x <= 250} D3 = {x! x es entero y 1<= x <= 120} D4 = {negra, blanca, trigueña, canela, amarilla, morena} Lista de atributos A1 = (CODIGO, D1) A2 = (ESTATURA, D2) A3 = (EDAD, D3) A4 = (COLOR_DE_PIEL, D4) Conjunto finito de atributos C = {A1, A2, A3, A4} Relación de “ESTUDIANTE” (ESTUDIANTE, C) Podemos pues comprobar que matemáticamente una tabla se define como una relación, pues una relación es una pareja ordenada conformada por un nombre de la relación y un conjunto finito de atributos que para este caso son: {A1, A2, A3, A4}. 1.4. ASOCIACIÓN: Es una pareja ordenada basada en un atributo. Por ejemplo para el atributo: A1 = (CODIGO, D1) Expuesto en el ejercicio anterior, podemos asegurar que una asociación es una pareja (CODIGO, VALOR), donde VALOR D1. Por decir algo, algunos ejemplos de asociaciones para el atributo A1 son: (CODIGO, 5) (CODIGO, 6) (CODIGO, 20) (CODIGO, 50) (CODIGO, 359) (CODIGO, 4970) No es que se quiera ser un poco extenso en la explicación de las asociaciones, lo que sucede es que dado que es un tema de mucha importancia para comprender los Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva 4 conceptos que después vienen, es necesario realizar un ejercicio que ejemplifique y aclare posibles dudas sobre las asociaciones. Expresar en términos puramente matemáticos la siguiente tabla: CODIGO Entre 1 y 5000 ESTUDIANTE ESTATURA EDAD Entre 20cm y 250cm Entre 1 y 120 años 12 18 50 163 cm 174 cm 150 cm 25 años 21 años 34 años COLOR_DE_PIEL Negra, blanca, trigueña, canela, amarilla, morena trigueña canela blanca Lista de dominios D1 = {x! x es entero y 1<= x <= 5000} D2 = {x! x es real y 20<= x <= 250} D3 = {x! x es entero y 1<= x <= 120} D4 = {negra, blanca, trigueña, canela, amarilla, morena} Lista de atributos A1 = (CODIGO, D1) A2 = (ESTATURA, D2) A3 = (EDAD, D3) A4 = (COLOR_DE_PIEL, D4) Conjunto finito de atributos C = {A1, A2, A3, A4} Relación de “ESTUDIANTE” (ESTUDIANTE, C) Asociaciones basadas en el atributo A1 = (CODIGO, D1) (CODIGO, 12) (CODIGO, 18) (CODIGO, 50) Asociaciones basadas en el atributo A2 = (ESTATURA, D2) (ESTATURA, 163) (ESTATURA, 174) (ESTATURA, 150) Asociaciones basadas en el atributo A3 = (EDAD, D3) (EDAD, 25) (EDAD, 21) (EDAD, 34) Asociaciones basadas en el atributo A4 = (COLOR_DE_PIEL, D4) (COLOR_DE_PIEL, trigueña) Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva 5 (COLOR_DE_PIEL, canela) (COLOR_DE_PIEL, blanca) 1.5. TUPLA: En términos de un usuario normal de una base de datos se puede definir una tupla como un registro, una fila o en términos castizos como un renglón específico de una tabla. Pero para definir matemáticamente una tupla es necesario definirla basada en los atributos de la misma. Comencemos diciendo que dado un esquema (T, C) (Recordemos que T hace referencia al nombre de la tabla y C al conjunto finito de atributos), en donde C = {A1, A2, - - An}, y donde cada atributo Ai está relacionado con el Dominio Di. En otras palabras cada atributo Ai se define así: Ai = (Nombre(i), Di) Y para cada atributo Ai existen las siguientes asociaciones: (Nombre(i), x(j,i)) en donde 1<= j <= Número máximo de filas Una tupla será pues el conjunto de asociaciones (Nombre(i), x(j,i)) en donde 1<= i <= n, para un j específico que concuerda exactamente con el número de fila o de tupla que se quiere obtener. Como podemos apreciar pues, una tupla es un conjunto de asociaciones, una por cada atributo Ai del esquema. 1.6. CUERPO DE UNA RELACIÓN: En la sección anterior habíamos concluido que una tupla era el siguiente conjunto de asociaciones: (Nombre(i), x(j,i)) en donde 1<= i <= n, para un j específico que concuerda exactamente con el número de fila o de tupla que se quiere obtener. Pues bien, el cuerpo de una relación es un conjunto de tuplas (Nombre(i), x(j,i)) 1<= i <= n que van desde la tupla para j=1, hasta la tupla j=K, donde K es el número total de tuplas en el esquema. Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva 6 1.7. CARDINALIDAD: En términos bien sencillos podemos decir que la cardinalidad hace referencia al número de filas de una tabla, es decir que para el caso de la notación que venimos utilizando, el cuerpo de una relación puede ser expresado así: Todas las asociaciones (Nombre(i), x(j,i)) 1<= i <= n que van desde la tupla para j=1, hasta la tupla j=K Donde K es la cardinalidad en el esquema. 1.8. GRADO: En términos bien sencillos, podemos afirmar que el grado es el número de columnas de una tabla. Con lo cual podemos expresar el cuerpo de una relación de la siguiente manera: Todas las asociaciones (Nombre(i), x(j,i)) 1<= i <= n que van desde la tupla para j=1, hasta la tupla j=K Donde K es la cardinalidad en el esquema. Y donde n es el grado en el esquema. 1.9. UNA RELACIÓN: Es un conjunto de esquemas relacionales, junto con el cuerpo correspondiente a dicho esquema. 1.10. UNA BASE DE DATOS RELACIONAL: Es un conjunto finito de relaciones, en donde los nombres de las relaciones no pueden estar repetidos. 1.11. EQUIVALENCIA DE LOS TÉRMINOS MATEMÁTICOS: Términos matemáticos Dominio Atributo Esquema Asociación Tupla Cuerpo de una relación Enciclopedia Conociendo Equivalencia en términos de tablas Conjunto de valores posibles que puede tomar una columna Nombre de una columna de una tabla Encabezados de una tabla Celda de una tabla Fila de una tabla Todas las filas de una tabla (Sin incluir los Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva Cardinalidad Grado Una relación Una base de datos relacional 7 encabezados) Número de filas de una tabla Número de columnas de una tabla Encabezados y filas de una tabla (Osea la tabla completa) Conjunto de tablas 2. NACIMIENTO Y TIPOS DE BASES DE DATOS Las necesidades de las diversas empresas han dado lugar al desarrollo de nuevos sistemas de almacenamiento y dado que dichas necesidades en la actualidad siguen cambiando y creciendo, van entonces surgiendo nuevos términos para ayudar a describir los tipos de bases de datos que pueden ayudar a solucionar dichos problemas. Incluso más adelante como el amigo lector podrá apreciar se muestra que el mismo concepto de bases de datos surge como una necesidad frente a problemas que se tenían en el manejo de la información. 2.1. COMO SURGEN LAS BASES DE DATOS 2.1.1. NECESIDAD DE INTEGRACIÓN En realidad las bases de datos surgen como una necesidad de almacenamiento. Por ejemplo en un principio se escribían aplicaciones que almacenaban información, pero dicha información era almacenada por una aplicación específica y solamente podía ser recuperada por mencionada aplicación. Surgen entonces las siguientes preguntas: ¿como obtener la información de las diversas aplicaciones en una forma común? ¿Qué pasa si la información se repite en las diversas aplicaciones? ¿Cómo integrar los datos comunes de las diversas aplicaciones? 2.1.2. NECESIDAD DE PERSISTENCIA Antiguamente se escribían programas orientados a requisitos, es decir que solucionaban un problema específico de acuerdo a unos requerimientos y necesidades y todo el programa implementaba la solución de dichos requisitos, sin apoyarse de ninguna aplicación adicional. En muchas ocasiones se corría el programa, pero se necesitaba que en la posterior ejecución se guardara información producto de la anterior ejecución del programa. Esto obviamente, se atacó inicialmente con almacenamiento de ficheros planos, pero posteriormente se vió la necesidad de hacerlo de otras formas más robustas. La necesidad de almacenar información entre la ejecución de un aplicativa una vez y la ejecución del mismo aplicativo la siguiente ejecución, se conoce como la necesidad de almacenamiento persistente. La persistencia, tiene que ver entonces con la capacidad que los datos y la información persiste en el tiempo. Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva 8 2.2. CONCEPTO DE BASE DE DATOS Un base de datos es una colección organizada de datos, en la cual los datos se pueden recuperar por medio de un mecanismo establecido con el fin de extractar información que le sea útil a la organización y que solucione un objetivo específico de necesidad de información. Bueno, en realidad los conceptos de bases de datos sin inmensos y podríamos pasarla escudriñando en las diversas definiciones de conceptos de bases de datos, pero esto obviamente tendía menos importancia que el continuar con otros temas más importantes de bases de datos. 2.3. CLASIFICACIONES DE LAS BASES DE DATOS Hoy en día, de acuerdo al tamaño, al tipo y a la función que ejerza una base de datos se la puede clasificar en un tipo, pero dicha clasificación en ocasiones es subjetiva. Por ejemplo imagine amigo lector / estudiante que a una base de datos de gran tamaño se le llame: “Base de datos Gigante”, es muy probable que a una específica base de datos de 50 GB se le considere “Gigante”, pero es muy probable que si algún día salieran disquetes que almacenaran esta cantidad de información, con seguridad este término ya no sería aplicable a una base de este tamaño, sino a una base de datos de por lo menos 1000 GB. Lo anterior, es por poner ejemplos de la subjetividad de estos conceptos y para dar una guía, más que una definición exacta de los términos 2.3.1. BD GLOBALES Y ESPECÍFICAS Las bases de datos que apoyan las necesidades de información a nivel global y general de información de una empresa se denominan “Bases de datos globales”. Mientras tanto a las bases de datos creadas para suplir las necesidades de información específicas de un área pequeña de la empresa se les denomina “Bases de datos operacionales” Algunas personas opinan que las bases de datos operacionales son más pequeñas que las bases de datos globales y que en muchas ocasiones, las bases de datos globales se sirven de la información contenida en las bases de datos operacionales para su existencia, en otras palabras: “Las bases datos operacionales actúan como fuente de datos de las bases de datos globales” Con frecuencia algunos autores sostienen que las bases de datos operacionales también pueden considerarse como bases de datos de producción. Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva 9 2.3.2. BD SIMPLES Y ALMACENES DE DATOS Otros autores opinan que las bases de datos formadas por la unión o integración de otras bases de datos, se llaman bases de datos tipo almacén de datos y las bases de datos simples son las que no están formadas por la unión o integración de otras bases de datos. 2.3.3. DATA MART Y DATA WARE HOUSE El concepto de almacén de datos está ligado a la unión de varias bases de datos, cuando este almacén de datos es a nivel departamental, se le denomina con frecuencia: “Data Mart” (DM) y cuando se unen varias bases de datos departamentales en un gran base de datos se le denomina “Data Warehouse” (DW) Es posible que un almacén de datos esté conformado por varias bases de datos grandes y que sirva más que a un departamento a una necesidad global de la empresa y en este caso particular se podría considerar como una base de datos tipo “Data WareHouse” 2.3.4. BASE DE DATOS GRANDE Y PEQUEÑA Cuando una base de datos almacena gran cantidad de datos, se le denomina “Very large Database” (VLDB), mientras que cuando no, se le denomina “Base de datos pequeña”. Es preciso que el amigo lector / estudiante, no se confunda y trate de imaginar que una base de datos grande es lo mismo que un almacén de datos, por cuanto el almacén de datos por lo general es una base de datos grande, pero conformada por varias bases de datos, mientras que una base de datos tipo (VLDB) es una base de datos grande, pero no conformada por otras bases de datos. 2.4. TIPOS DE BASE DE DATOS 2.4.1. BASES DE DATOS JERÁRQUICAS 2.4.2. BASES DE DATOS DE RED 2.4.3. BASES DE DATOS RELACIONALES 2.4.4. BASES DE DATOS ORIENTADAS A OBJETOS Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva 10 3. CONCEPTOS EN BASES DE DATOS Es preciso que se comprendan ciertos conceptos antes de abordar el conocimiento de un motor de bases de datos, con el fin de sacarle el mayor provecho a la herramienta y de hacer mejores aplicaciones de acceso a bases de datos. Para ayudar a este fin, a continuación se muestran algunos conceptos fundamentales que todo administrador de bases de datos y en general toda persona relacionada con las bases de datos de manera directa o indirecta debe conocer. 3.1. INTEGRIDAD La integridad de los datos en una base de datos se refiere a la consistencia y exactitud Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva Enciclopedia Conociendo 11 Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva 12 TABLA DE CONTENIDO 1. TEORIA SOBRE BASES DE DATOS RELACIONALES ___________ 2 1.1. DOMINIO: ____________________________________________________ 1.2. ATRIBUTO: ___________________________________________________ 1.3. ESQUEMA: ___________________________________________________ 1.4. ASOCIACIÓN: _________________________________________________ 1.5. TUPLA: _______________________________________________________ 1.6. CUERPO DE UNA RELACIÓN: _________________________________ 1.7. CARDINALIDAD: _____________________________________________ 1.8. GRADO: ______________________________________________________ 1.9. UNA RELACIÓN: ______________________________________________ 1.10. UNA BASE DE DATOS RELACIONAL:_________________________ 1.11. EQUIVALENCIA DE LOS TÉRMINOS MATEMÁTICOS: ________ 2 2 2 3 5 5 6 6 6 6 6 2. NACIMIENTO Y TIPOS DE BASES DE DATOS __________________ 7 2.1. COMO SURGEN LAS BASES DE DATOS ________________________ 7 2.1.1. NECESIDAD DE INTEGRACIÓN _______________________________ 7 2.1.2. NECESIDAD DE PERSISTENCIA ______________________________ 7 2.2. CONCEPTO DE BASE DE DATOS ______________________________ 8 2.3. CLASIFICACIONES DE LAS BASES DE DATOS _________________ 8 2.3.1. BD GLOBALES Y ESPECÍFICAS _______________________________ 8 2.3.2. BD SIMPLES Y ALMACENES DE DATOS _______________________ 9 2.3.3. DATA MART Y DATA WARE HOUSE __________________________ 9 2.3.4. BASE DE DATOS GRANDE Y PEQUEÑA _______________________ 9 2.4. TIPOS DE BASE DE DATOS ____________________________________ 9 2.4.1. BASES DE DATOS JERÁRQUICAS _____________________________ 9 2.4.2. BASES DE DATOS DE RED ___________________________________ 9 2.4.3. BASES DE DATOS RELACIONALES ___________________________ 9 2.4.4. BASES DE DATOS ORIENTADAS A OBJETOS __________________ 9 TABLA DE CONTENIDO __________________________________________ 12 Enciclopedia Conociendo Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva Enciclopedia Conociendo 13 Teoría de Bases de Datos Autor: Luis Felipe Wanumen Silva Enciclopedia Conociendo 14 Teoría de Bases de Datos