Introducción a
las bases de datos
Objetivos de los sistemas
de bases de datos
Otros objetivos:
• Adaptarse al mundo de Internet
• Incorporar el tiempo como un elemento de caracterización de la información.
• Adaptarse al desarrollo orientado a objetos.
• Servir eficientemente los Data Warehouse.
Seguridad: actualmente, en el campo de los SGBD, el término seguridad se suele utilizar para hacer referencia a los temas relativos a la confidencialidad, las autorizaciones, los derechos de acceso, etc. Los SGBD permiten definir autorizaciones o derechos de acceso a diferentes niveles: al nivel global de toda la BD, al nivel entidad y al nivel atributo.
Concurrencia de usuarios: un objetivo fundamental de los SGBD es permitir que varios usuarios puedan acceder concurrentemente a la misma BD.
Integridad de los datos: nos interesará que los SGBD aseguren el mantenimiento de la calidad de los datos en cualquier circunstancia.
Problemas de la redundancia: en el mundo de los ficheros tradicionales, cada aplicación utilizaba su fichero. Sin embargo, puesto que se daba mucha coincidencia de datos entre aplicaciones, se producía también mucha redundancia entre los ficheros. Ya hemos dicho que uno de los objetivos de los SGBD es facilitar la eliminación de la redundancia.
Flexibilidad e independencia: la complejidad de las BD y la necesidad de irlas adaptando a la evolución del SI hacen que un objetivo básico de los SGBD sea dar flexibilidad a los cambios. Interesa obtener la máxima independencia posible entre los datos y los procesos usuarios para que se pueda llevar a cabo todo tipo de cambios tecnológicos y variaciones en la descripción de la BD, sin que se deban modificar los programas de aplicación ya escritos ni cambiar la forma de escribir las consultas (o actualizaciones) directas.
Consultas no predefinidas y complejas: el objetivo fundamental de los SGBD es permitir que se hagan consultas no predefinidas (ad hoc) y complejas.
Abstracción de la información
La abstracción de datos es una técnica o metodología que permite diseñar estructuras de datos. La abstracción consiste en representar bajo ciertos lineamientos de formato las características esenciales de una estructura de datos. Este proceso de diseño evita los detalles específicos de implementación de los datos.
Este proceso se realiza mediante tres niveles
•Nivel de Vistas: El nivel más alto de abstracción describe sólo parte de la base de datos completa. Los usuarios que utilizan este nivel de abstracción tienen una gran simplificación en su interacción con el sistema, ya que ven un conjunto de programas de aplicación (vistas) que esconden los detalles de los tipos de datos. Además de esconder detalles de nivel lógico también proporcionan un mecanismo de seguridad para evitar que los usuarios accedan a ciertas partes, prohibidas para ellos, de la base de datos.
•Nivel Lógico: Es el siguiente nivel más alto de abstracción. Describe qué datos se almacenan en la base de datos y qué relaciones existen entre esos datos. Los administradores de bases de datos, que deben decidir la información que se mantiene en la base de datos, usan el nivel lógico de abstracción.
•Nivel Físico: Describe cómo se almacenan realmente los datos. Se describen en detalle las estructuras de datos complejas de bajo nivel.
Lenguaje de definición de datos
El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar, borrar o definir las tablas en las que se almacenan los datos de la base de datos
Existen cuatro operaciones basicas
TRUNCATE | BORRAR TABLA: Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE.
DROP | ELIMINAR
: Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
ALTER | MODIFICAR: Este comando permite modificar la estructura de una tabla u objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc.
CREATE | CREAR: Este comando permite crear objetos de datos, como nuevas bases de datos, tablas, vistas y procedimientos almacenados.
Lenguaje de manipulación de datos
Un lenguaje de manipulación de datos (LMD) es un lenguaje que permite a los usuarios acceder o manipular los datos organizados mediante el modelo de datos apropiado
Hay dos tipos basicamente
LMDs declarativos (también conocidos como LMDs no procedimentales). Requieren que el usuario especifique qué datos se necesitan sin especificar cómo obtener esos datos.
Los LMDs declarativos son más fáciles de aprender y usar que los LMDs procedimentales. Sin embargo, como el usuario no especifica cómo conseguir los datos, el sistema de bases de datos tiene que determinar un medio eficiente de acceder a los datos
El componente LMD del lenguaje SQL es no procedimental.
LMDs procedimentales. Requieren que el usuario especifique qué datos se necesitan y cómo obtener esos datos.
Manejador de bases de datos
Un manejador de datos es un conjunto de software bastante específico que sirven de interfaz para unir tres elementos: las bases de datos en sí, los usuarios y las diferentes aplicaciones que se utilizan para ello. Para mayor información, una interfaz es una superficie de contacto informatizada, una especie de soporte donde se interrelacionan los múltiples elementos necesarios para lograr el objetivo deseado.
La finalidad de estos manejadores es manejar todos los datos que le llegan y convertirlos en una información relevante para el usuario. Dicha información puede ser de diferentes tipos o utilizarse por varios motivos, como son las técnicas de estrategia. En cualquier caso, es una herramienta de gran utilidad en todos los aspectos
Para lograr el objetivo, se crea un conjunto de programas, cada cual realizando una tarea específica, que finalmente se interrelacionan entre sí para así facilitar la construcción y la manipulación de los datos que se archivarán en la base creada.
Administrador de bases de datos
Una de las principales razones de usar SGBDs es tener un control centralizado tanto de los datos como de los programas que acceden a esos datos. La persona que tiene este control central sobre el sistema se llama administrador de la base de datos (ABD).
Sus funciones son
• Mantenimiento rutinario. Algunos ejemplos de actividades rutinarias de mantenimiento del administrador de la base de datos son:
3. Supervisión de los trabajos que se ejecuten en la base de datos y asegurarse de que el rendimiento no se degrada por tareas muy costosas iniciadas por algunos usuarios.
2. Asegurarse de que haya suficiente espacio libre en disco para las operaciones normales y aumentar el espacio en disco según sea necesario
1. Copia de seguridad periódica de la base de datos, bien sobre cinta o sobre servidores remotos, para prevenir la pérdida de datos en caso de desastres como inundaciones.
• Concesión de autorización para el acceso a los datos. La concesión de diferentes tipos de autorización permite al administrador de la base de datos determinar a qué partes de la base de datos puede acceder cada usuario. La información de autorización se mantiene en una estructura del sistema especial que el sistema de base de datos consulta cuando se intenta el acceso a los datos en el sistema.
• Modificación del esquema y de la organización física. Los ABD realizan cambios en el esquema y en la organización física para reflejar las necesidades cambiantes de la organización, o para alterar la organización física para mejorar el rendimiento.
• Definición de la estructura y del método de acceso.
• Definición del esquema. El ABD crea el esquema original de la base de datos escribiendo un conjunto de instrucciones de definición de datos en el LDD.
Usuarios de la base de datos
Hay cuatro tipos diferentes de usuarios de un sistema de base de datos, diferenciados por la forma en que ellos esperan interactuar con el sistema. Se han diseñado diferentes tipos de interfaces de usuario para diferentes tipos de usuarios.
•Usuarios especializados. Son usuarios sofisticados que escriben aplicaciones de bases de datos especializadas que no son adecuadas en el marco de procesamiento de datos tradicional.
•Los usuarios sofisticados interactúan con el sistema sin programas escritos. En su lugar, ellos forman sus consultas en un lenguaje de consulta de bases de datos. Cada una de estas consultas se envía al procesador de consultas, cuya función es transformar instrucciones LMD a instrucciones que el gestor de almacenamiento entienda. Los analistas que envían las consultas para explorar los datos en la base de datos entran en esta categoría.
•Programadores de aplicaciones. Son profesionales informáticos que escriben programas de aplicación. Los programadores de aplicaciones pueden elegir entre muchas herramientas para desarrollar interfaces de usuario. Las herramientas de desarrollo rápido de aplicaciones (DRA) son herramientas que permiten al programador de aplicaciones construir formularios e informes sin escribir un programa.
•Usuarios normales. Son usuarios no sofisticados que interactúan con el sistema mediante la invocación de alguno de los programas de aplicación permanentes que se ha escrito previamente.
Estructura general del sistema
Un sistema de base de datos se encuentra dividido en módulos cada uno de los cuales controla una parte de la responsabilidad total de sistema. En la mayoría de los casos, el sistema operativo proporciona únicamente los servicios más básicos y el sistema de la base de datos debe partir de esa base y controlar además el manejo correcto de los datos. Así el diseño de un sistema de base de datos debe incluir la interfaz entre el sistema de base de datos y el sistema operativo.
Los componentes funcionales de un sistema de base de datos, son
•Índices. Permiten un rápido acceso a registros que contienen valores específicos.
•Diccionario de datos. Contiene la información referente a la estructura de la base de datos.
•Archivo de datos. En él se encuentran almacenados físicamente los datos de una organización.
•Compilador de DDL. Convierte las proposiciones DDL en un conjunto de tablas que contienen metadatos, estas se almacenan en el diccionario de datos.
Una forma gráfica de representar los componentes antes mencionados y la relación que existe entre ellos sería la siguiente.
•Procesador de consultas. Traduce las proposiciones en lenguajes de consulta a instrucciones de bajo nivel. Además convierte la solicitud del usuario en una forma más eficiente.
•Manejador de base de datos. Sirve de interfaz entre los datos y los programas de aplicación.
•Gestor de archivos. Gestiona la asignación de espacio en la memoria del disco y de las estructuras de datos usadas para representar información.
Seguridad y control en un
sistema de base de datos
seguridad de datos se refiere a medidas de protección de la privacidad digital que se aplican para evitar el acceso no autorizado a los datos, los cuales pueden encontrarse en ordenadores, bases de datos, sitios web, etc. La seguridad de datos también protege los datos de una posible corrupción.
La seguridad de datos, también conocida como seguridad de la información o seguridad informática, es un aspecto esencial de TI en organizaciones de cualquier tamaño y tipo. Se trata de un aspecto que tiene que ver con la protección de datos contra accesos no autorizados y para protegerlos de una posible corrupción durante todo su ciclo de vida.
Seguridad de datos incluye conceptos como encriptación de datos, tokenización y prácticas de gestión de claves que ayudan a proteger los datos en todas las aplicaciones y plataformas de una organización
Independencia de datos
Hay dos tipos de independencia de datos
Independencia lógica: hay independencia lógica cuando los usuarios* no se ven afectados por los cambios en el nivel lógico.
Independencia física: hay independencia física cuando los cambios en la organización física de la BD no afectan al mundo exterior (es decir, los programas usuarios o los usuarios directos).
Tipos de Bases de Datos
De acuerdo a su modelo
Otros tipos: bases de datos deductivas, documentales.
Bases de datos orientadas a objetos: Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento).
Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos
Bases de datos multidimensionales: Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP.
Bases de datos relacionales:es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente.
Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd,2 de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos.
Bases de datos transaccionales: Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales.
Bases de datos de red: Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).
Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.
Bases de datos jerarquicas: En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.
Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento
De acuerdo a su funcion
Bases de datos o "bibliotecas" de información química o biológica: Son bases de datos que almacenan diferentes tipos de información proveniente de la química, las ciencias de la vida o médicas.
Directorios
Bases de datos de texto completo: Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas.
Bases de Datos Bilbiograficas: Solo contienen una subrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc.
Bases de Datos Dinámicas:Son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y edición de datos, además de las operaciones fundamentales de consulta. Un ejemplo, puede ser la base de datos utilizada en un sistema de información de un supermercado.
Bases de Datos Estáticas: Son bases de datos únicamente de lectura, utilizadas principalmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones, tomar decisiones y realizar análisis de datos para inteligencia empresarial.
Definicion de Bases de Datos
Es una colección de información/datos almacenada de cierta forma y con una estructura específica, (eso depende del motor usado, por ejemplo MongoDB o PostgreSQL), que tienen rutinas optimizadas para guardar, eliminar, consultar y gestionar información.
una base de datos está conformada por modelos o tablas; cada tabla tiene N atributos, de diferentes tipos de datos, ellos se guardan como registros
Es necesario poder almacenar millones de registros de forma optimizada para nuestros sistemas, y por ello debemos contar con la herramienta adecuada para consultarlos, ya que nuestros recursos siempre serán limitados
Historia de las
bases de datos
En la década de los 90 (1990-2000) surgió las bases de datos orientas a objetos que tuvieron bastante éxito en el momento de ejecutar datos complejos en los lugares donde las bases de datos relacionales no han podido desenvolverse con una manera eficaz, de esta forma se desarrollaron herramientas como Excel y Access. Así se creó la tercera generación de Sistemas Gestores de Bases de Datos.
En la década de los 80 (1980-1990) se creó un lenguaje de consulta de estructurado (SQL) que permitió realizar consultas con el fin de recuperar datos de interés de una Database (BD) y realizar modificaciones.
En la década de los 70 (1970-1980) un científico de la informática, llamado Edgar Frank Codd aclaró el modelo relacional a la vez que publicó una serie de reglas para los sistemas de datos relacionales. Este hecho dio el nacimiento de la segunda generación de los Sistemas Gestores de Bases de Datos (SGBD).
Más tarde a este evento Larry Ellison basado al trabajo de Edgar Frank Codd creó el Relational Software System que actualmente se conoce como Oracle Corporation, desarrollando así un Sistema de Gestión de Bases de Datos Relacional llevando por nombre el mismo que el de la empresa.
En la década de los 60 (1960-1970) los ordenadores bajaron de precio con el fin de que las compañías las pudieran adquirir, esto dio paso a que se popularizara el uso de los discos (cosa que fue un buen adelanto para la época ya que un disco duro tiene información persistente, o sea, que perdura en el tiempo).
Charles Bachman desarrolló un tipo de bases de datos conocido como modelo en red que permitió la creación de un “estándar” en los sistemas de bases de datos, gracias a la creación de nuevos lenguajes de sistemas de información.
En esta misma época comenzó la primera generación de bases de datos de red y las bases de datos jerárquicas ya que abría la posibilidad de almacenar estructuras de datos en listas y árboles.
En la década de los 50 (1950-1960) se da origen a las cintas magnéticas ayudando a la automatización de la información y realizar respaldos. Por medio de este mecanismo se comenzó a automatizar información pero con la desventaja de que sólo se podía hacer de forma secuencial.
En 1884, Herman Hollerith desarrolló el tabulador electromagnético de tarjetas perforadas con el fin de ayudar en el resumen de información y posteriormente a la contabilidad.
El concepto de bases de datos ha estado ligado a la Informática, sin embargo un dato curioso es que a raíz de la necesidad de tener “tratamientos automáticos de la información” surge el concepto de “Informática” que no es más que la combinación entre: Información y Automatización.
La primera vez que se escuchó el término de bases de datos fue en 1963 en un simposio en California
El ser humano siempre ha tenido la necesitad de guardar información es por ello que los orígenes de tener bases de datos provienen de la antigüedad
en donde ya se tenía en existencia grandes bibliotecas y toda clase de registros entre ellos los que se llevaban de las cosechas.
refiriéndose a ella como un conjunto de “información” relacionada que se encuentra agrupara o estructurada
IBM, Microsoft y Oracle son las dueñas
del mercado de las BD hasta la fecha