BASE DE DATOS Base de datos Definición Una base de datos o banco de datos, también conocido como DB? (Data Base = Base de datos en inglés) o también como BBDD o BD, es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. A continuación te presentamos una guía que te explicará el concepto y características de las bases de datos. El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos. Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro. Mediante una base de datos es posible procesar archivos guiándose por el significado de sus contenidos y por las características de organización. Una base de datos debe reflejar la información de una realidad relevante para una organización. El diseño de la forma y estructura de la base de datos es un proceso muy importante, pues de ello dependerá la simplicidad o complejidad de los programas de aplicación, y lo compacta o redundante que sea la información dentro del sistema. Página 1 BASE DE DATOS Funcionalidad de un DB Una base de datos (sea cual sea) es un soporte digital que tiene como fin el almacenamiento masivo de información en formato texto plano. No es capaz de almacenar imágenes como se cree, sino que almacena las rutas (path) de dichas fotos; ni almacena otro tipo de datos; sino que almacena sus rutas de acceso de ser necesario. Las bases de datos, son utilizadas en sistemas que requieren una interacción fluida con la aplicación; estas se encargan muchas veces de administrar, editar, y dar de alta. Usualmente la base de datos, esta ligada a la programación directa del site, causando que una edición en ella cause una modificación directa en lo que ve el usuario. Ejemplos de aplicación de una base de datos (entiéndase que están ligadas a un lenguaje dinámico como PHP o ASP): E – comerce, Agendas, Libros de visitas, foros, portales, etc CARACTERÍSTICAS Independencia lógica y física de los datos. Redundancia mínima. Acceso concurrente por parte de múltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditoria. Respaldo y recuperación. Acceso a través de lenguajes de programación estándar. Página 2 BASE DE DATOS Clasificación Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su clasificación: Según la variabilidad de los datos almacenados Bases de datos estáticas Éstas son bases de datos de sólo lectura, utilizadas primordialmente 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 y tomar decisiones. Bases de datos dinámicas Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub, etc. Según el contenido Bases de datos bibliográficas Solo contienen un surrogante (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. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque si no estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias—ver más abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de análisis de laboratorio, entre otras. 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. Directorios Un ejemplo son las guías telefónicas en formato electrónico. Página 3 BASE DE DATOS Tipos de Base de Datos Entre los diferentes tipos de base de datos, podemos encontrar los siguientes: MySql: es una base de datos con licencia GPL basada en un servidor. Se caracteriza por su rapidez. No es recomendable usar para grandes volúmenes de datos. PostgreSql y Oracle: Son sistemas de base de datos poderosos. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre. Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser creada bajo el programa access, el cual crea un archivo .mdb con la estructura ya explicada. Microsoft SQL Server: es una base de datos más potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones. Modelos de bases de datos Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos. Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos. Algunos modelos con frecuencia utilizados en las bases de datos: Bases de datos jerárquicas Éstas son bases de datos que, como su nombre indica, almacenan su información en una estructura jerárquica. 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. Página 4 BASE DE DATOS Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos. Base 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. Base de datos relacional Éste es el modelo más utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Edgar Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla). En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales. Durante su diseño, una base de datos relacional pasa por un proceso al que se le conoce como normalización de una base de datos. Durante los años '80 (1980-1989) la aparición de BASE produjo una revolución en los lenguajes de programación y sistemas de administración de datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje base para su gestión. Página 5 BASE DE DATOS Bases de datos multidimensionales Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos multidimensional podría serlo también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar. 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: • • • Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos. Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases. Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos. En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones. Se está trabajando en SQL3, que es el estándar de SQL92 ampliado, que soportará los nuevos conceptos orientados a objetos y mantendría compatibilidad con SQL92. Bases de datos documentales Permiten la indexación a texto completo, y en líneas generales realizar búsquedas más potentes. Tesaurus es un sistema de índices optimizado para este tipo de bases de datos. Base de datos deductivas Un sistema de base de datos deductivas, es un sistema de base de datos pero con la diferencia de que permite hacer deducciones a través de inferencias. Se basa principalmente Página 6 BASE DE DATOS en reglas y hechos que son almacenados en la base de datos. También las bases de datos deductivas son llamadas base de datos lógica, a raíz de que se basan en lógica matemática. Gestión de bases de datos distribuida La base de datos está almacenada en varias computadoras conectadas en red. Surgen debido a la existencia física de organismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas universidades, sucursales de tiendas, etcétera. . CAMPO (FIELD). Espacio o área donde se colocan datos de un registro. Tipos de Campos Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes. Entre los más comunes podemos nombrar: Numérico: entre los diferentes tipos de campos numéricos podemos encontrar enteros “sin decimales” y reales “decimales”. Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”. Memos: son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados. Fechas: almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra. Alfanuméricos: contienen cifras y letras. Presentan una longitud limitada (255 caracteres). Auto incrementables: son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad resulta: Servir de identificador ya que resultan exclusivos de un registro. Página 7 BASE DE DATOS Tipos de Campo Un campo puede ser: Campo genérico (También llamado Campo índice o campo clave (llave)) [editar] Aquel campo que posee un dato único para una repetición de entidad. Puede servir para la búsqueda de una entidad en específico. Tipos de campo Caja de selección Permite crear una o más cajas de selección. Cada línea escrita en las 'opciones' aparecerá como una caja de selección diferente en la ventana de edición de la entrada. Al editar la entrada podremos seleccionar una o más de las opciones y al visualizar la entrada aparecerá en el campo correspondiente el texto de la o las opción/es seleccionada/s (en el caso de que se haya seleccionado más de una opción aparecerán la una bajo la otra, no en la misma línea). Los Botones de radio se pueden utilizar si se desea que el usuario, al editar la entrada, seleccione tan sólo una de las opciones. Las cajas de selección múltiple se pueden utilizar, por ejemplo, en una base de datos de películas, que pueden ser de horror, comedia, del oeste, etc. En este caso se podrían seleccionar combinaciones de géneros, por ejemplo horror-comedia o comedia-del oeste. El campo Menú (selección múltiple) también permite una selección de opciones, pero en este caso clicando en un menú (lo cual a menudo no resulta tan obvio como seleccionar una opción). Fecha Permite que los usuarios entren una fecha seleccionando en un listado desplegable el día, mes y año correspondientes. Archivo Permite que los usuarios suban un fichero desde su ordenador. Si se trata de un fichero de imagen sería mejor opción seleccionar el campo dibujo. Página 8 BASE DE DATOS Menú Es parecido a la caja de selección pero el texto escrito en el área opciones se presentará como un listado desplegable a la hora de editar la entrada. Cada línea de las opciones será una opción del desplegable. Menú (selección múltiple) Parecido al caso anterior pero permite que el usuario seleccione más de una opción al editar la entrada manteniendo apretadas las teclas de control o mayúsculas mientras clica con el ratón. Resulta un poco más complejo de utilizar que la caja de selección, que también permite selecciones múltiples. Número Pide a los usuarios que escriban un número. El número debe ser entero, aunque puede ser negativo (por ejemplo: -2,-1,0,1,2,3,...). Si se escriben caracteres no numéricos éstos y los que le siguen no aparecerán o, si no hay ningún número, el resultado será el cero. Por ejemplo: "3.14" se transformará en "3"; "1,000,000" en "1"; y "seis" aparecerá como "0". Dibujo Permite al usuario subir un fichero de imagen desde su ordenador. Botones de radio Permite al usuario escoger una de diversas opciones. Además, tan sólo podrá guardar la entrada cuando haya realizado la selección. Si sólo hay dos opciones opuestas (por ejemplo verdadero/falso, sí/no), se puede utilizar una caja de selección múltiple, aunque de esta manera se podrán guardar entradas aunque el usuario no haya seleccionado ninguna de las opciones. Texto Los usuarios pueden escribir hasta 60 caracteres de texto. El campo área de texto se puede utilizar para textos más largos o que requieran algún tipo de formato. Área de texto Permite a los usuarios escribir un texto largo y añadirle formato de manera similar a cuando se escribe un mensaje a un foro. Puede especificar el ancho en columnas y el alto en filas del área que se presentará a los usuarios. URL Pide al usuario que escriba una URL. Si se selecciona la opción auto enlazar la URL ésta aparecerá como un hipervínculo. Si además se escribe algo en nombre forzado para el enlace éste será el texto utilizado para el hipervínculo. Por ejemplo: en una base de datos sobre autores puede resultar interesante incorporar la página web del autor. Si se escribe 'página web' como nombre Página 9 BASE DE DATOS forzado, al clicar en el texto página web de la entrada podremos acceder a la URL que hayamos escrito. ¿Para qué sirve una DB? Almacenar datos ¿Cómo se aprende a programar en mySQL? No se aprende, mySQL es una base de datos, no un lenguaje ¿SQL es una base de datos? SQL server sí, pero SQL es un lenguaje ¿Cuántos tipos hay? Muchos, pero los habituales en web son Access, mySQL y SQL Server 2000 ¿Necesito algún lenguaje especial para conectarme? Sí, SQL es el lenguaje para interactuar con las bases de datos ¿Qué es un Query? Una consulta a la base de datos ¿Qué es ABM? Alta, Baja y Modificación de cualquier cosa. Usualmente de una base de datos que contiene datos. ¿Qué es CMS? Control Managment System: Un panel de control que administra un web site, y a menudo una base de datos. Estructura normal de una DB Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que debe ser cumplido para acceder la información de manera coherente. Cada base de datos tiene una o más tablas, las cuales cumplen la función de contener los campos. Un ejemplo de tabla sería “contactos”. Para entender mejor esto, sería como un libro en el excel. Mientras que los campos serían las columnas del excel donde se ordena cada datos insertado al libro. Ejemplo “id, nombres, apellidos, teléfono”. Y luego finalmente tenemos las filas (row), que son la información propiamente dicha. Por consiguiente una base de datos posee el siguiente orden jerárquico: • • • Tablas Campos Registros Página 10 BASE DE DATOS En la web, se suelen usar 3 tipos de bases de datos: Access: Es una base de datos desarrollada por Microsoft comúnmente utilizada bajo el lenguaje ASP (Active Server Pages). Esta base de datos, debe ser creada bajo el programa access, el cual crea archivo .mdb con la estructura ya explicada. El programa usa un entorno gráfico normal, y es muy parecido a usar excel. MySQL: Es una base de datos con licencia GPL basada en un servidor, puede ser sólo creada por código. Usualmente se utiliza el programa phpMyAdmin como soporte para administrar la base de datos en el nivel de programación (a un usuario normal le resultaría complicado utilizarla desde linea de comandos). SQL Server: Es una base de datos más potente que access desarrollada por Microsoft también, que se supone es recomendable arriba del millon datos. PostgreSQL / Oracle: Son realmente mucho más poderosas que todas las antes mencionadas, aunque también se duplican los problemas. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre. Página 11 BASE DE DATOS LLAVE PRIMARIA O IDENTIFICADORA. Cada instancia de una entidad debe ser unívocamente identificable, de manera tal que cada registro de la entidad debe estar separado y ser unívocamente identificable del resto de los registros de esa misma entidad; y quien permite esta identificación es la llave primaria. La llave primaria, que generalmente se identificada por medio de la letra @, puede ser un atributo o una combinación de atributos. En consecuencia en cada archivo solo podrá existir un único registro que posea un valor determinado para su llave primaria. En otras palabras no puede existir en un archivo un registro que cuente con el mismo valor de otro registro en el campo de la llave primaria; la llave primaria no puede tener valores repetidos para distintos registros. La llave primaria debe permitirle a un Sistema de Gestión de Base de Datos (SGBD), correctamente proyectado, generar un error si un usuario intenta incluir un nuevo registro cuya llave primaria coincida con la de otro registro ya existente en el archivo. En el caso de la Base de Datos de compras, descripta anteriormente, las llaves primarias de cada archivo son: • • • ARCHIVO DE PRODUCTOS: @ Código artículo ARCHIVO DE PROVEEDORES: @ Código proveedor ARCHIVO ORIGEN DE LOS PRODUCTOS: @(Código proveedor + Código producto). INDICES DE ACCESO Un índice de acceso es un archivo auxiliar utilizado internamente por el SGDB para acceder directamente a cada registro del archivo de datos. La operación de indexación, creada por el SGDB, ordena a los registros de un archivo de datos de acuerdo con los campos utilizados como llave primaria e, incrementa sensiblemente la velocidad de ejecución de algunas operaciones sobre el archivo de datos. Normalmente para cada archivo de datos debe existir un índice cuya llave de indexación sea idéntica a su llave primaria. Este índice es llamado índice primario. También es posible crear índices para un archivo de datos utilizando atributos (campos), o conjunto de atributos, diferentes de los de la llave primaria. Este tipo de índice, llamado índice secundario, es utilizado para reducir el tiempo de localización de una determinada información dentro de un archivo o para clasificar los registros del archivo de acuerdo con el orden necesario para la obtención de la información deseada. Página 12 BASE DE DATOS Microsoft Access es un programa Sistema de gestión de base de datos relacional creado y modificado por Microsoft para uso personal de pequeñas organizaciones. Es un componente de la suite Microsoft Office aunque no se incluye en el paquete "básico". Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados por otros programas. Dentro de un sistema de información entraría dentro de la categoria de Gestión y no en la de Ofimática como algunos creen. Inconvenientes Para bases de datos de gran calibre (en cuanto a volumen de datos o de usuarios) es recomendable usar otros sistemas como MySQL o Microsoft SQL Server, y código VBA (Visual Basic para Aplicaciones). Entre sus mayores inconvenientes figuran que no es multiplataforma, pues sólo está disponible para sistemas operativos de Microsoft, Su uso es inadecuado para grandes proyectos de software que requieren tiempos de respuesta críticos o muchos accesos simultáneos a la base de datos. Extensiones de archivo Microsoft Access usa las siguientes extensiones para guardar sus datos: .mdb -Base de datos de Access (Versión 2003 y anteriores) .mde -Base de datos de Access protegida, con macros (Versión 2003 y anteriores) .accdb - Base de datos de Access (Versión 2007) .accde - Base de datos de Access protegida, con macros (Versión 2007 y anteriores) .mam - Macro de Access .maq - Consulta de Access .mar - Informe de Access .mat - Tabla de Access .maf - Formulario de Access .adp - Proyecto de Acess .adn - Plantilla de proyecto de Access Página 13 BASE DE DATOS Lenguaje SQL Este es el lenguaje que se utiliza para conectarse a una base de datos. Son sentencias, que realizan un query (consulta) a la DB a fin de que esta les responda con una cantidad de datos limitada según lo buscado. Básicamente, existen muchísimas funciones de SQL, pero detallaré las más usuales, con las cuales se pueden lograr una interacción buena con la DB. Tendencias futuras En el futuro la mayoría de las organizaciones cambiarán la forma convencional de manejo de la información a la arquitectura de base de datos a las ventajas derivadas de su uso. El uso de las bases de datos distribuidas se incrementará de manera considerable en la medida en que la tecnología de comunicación de datos brinde más facilidades para ello. El uso de bases de datos facilitará y soportará en gran medida a los Sistemas de Información para la Toma de Decisiones. Página 14