1-¿Qué es una clave principal? Cuando defines una clave principal en Access estás definiendo un campo dentro de una tabla que es especial en el sentido de que es el que es el guía que identifica cada registro y te permite mantener la tabla permanentemente ordenada. Tener una clave principal te ayuda a que el trabajo con la tabla sea más fácil, lo cuál se traduce en que Access realice operaciones de búsqueda y ordenación de forma más rápida. Cuando defines una clave principal en una tabla, ésta debe ser única, significa que no puedes encontrar dos valores repetidos para ese campo dentro de la tabla. Para definir una clave principal en una tabla en Access, solo tienes que editar la estructura de la tabla, elegir el campo que quieres definir como clave principal y hacer clic sobre el icono de llave amarilla. 2-¿Qué es un índice? El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla en una base de datos. Al aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuales se hacen frecuentes búsquedas. El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice. Los índices pueden ser creados usando una o más columnas, proporcionando la base tanto para búsquedas rápidas al azar como de un ordenado acceso a registros eficiente. 3-Tipos de Bases de Datos: Planas y relacionales Tipos de bases de datos Existen varios tipos de bases de datos; cada tipo de base de datos tiene su propio modelo de datos (los datos de cómo está estructurado). Entre ellas se incluyen; Modelo plano, modelo jerárquico, modelo relacional y modelo de red. El modelo de base de datos plana En un modelo de base de datos global, hay dos dimensiones (estructura plana) de conjunto de datos. Por ejemplo, hay una columna de información y dentro de esta columna, se supone que cada dato se referirá a la otra. Por ejemplo, un modelo de base de datos plana sólo El Modelo Relacional El modelo relacional es el más popular tipo de base de datos y una herramienta extremadamente potente, no sólo para almacenar información, también para acceder a ella. Las bases de datos relacionales son organizadas en forma de tablas. La belleza de un cuadro es que la información se puede acceder o añadir sin reorganizar las tablas. Una tabla puede tener muchos registros y cada registro puede tener muchos campos. Cuadros que a veces se llaman una relación. Por ejemplo, una empresa puede tener una base de datos denominada los pedidos de los clientes, dentro de esta base de datos serán diferentes tablas o relaciones de todos los relativos a los pedidos de los clientes. Tablas pueden incluir la información del cliente (nombre, dirección, contacto, información, número de cliente, etc.) y otras tablas (relaciones), como las órdenes que el cliente compró anteriormente (esto puede incluir un número de artículo, la descripción del artículo, cantidad de pago, la forma de pago, etc.). Cabe señalar que cada registro (grupo de campos) en una base de datos relacional tiene su propia clave principal. Una clave principal es el único campo que hace que sea fácil identificar a un registro. Bases de datos relacionales utilizan un programa llamado interfaz estándar SQL o Query Language. SQL se utiliza actualmente en prácticamente todas las bases de datos relacionales. Bases de datos relacionales son extremadamente fáciles de personalizar para adaptarse a casi cualquier tipo de almacenamiento de datos. Usted puede crear fácilmente las relaciones de los artículos que usted vende, los empleados que trabajan para su empresa, etc. 4-Utilidad de las bases de datos Desde esta opción del menú de Access, podemos realizar las siguientes Operaciones: • Convertir Base de datos • Compactar y reparar base de datos • Administrador de tablas vinculadas • Divisor de base de datos • Administrador del panel de control • Asistente para convertir a SQL Server • Crear archivo MDE Si la base de datos en uso contiene código de Microsoft Visual Basic, la operación de guardar la base de datos de Microsoft Access como un archivo MDE produce la compilación de todos los módulos, la eliminación del código de origen modificable y la compactación de la base de datos de destino. El código de Visual Basic se seguirá ejecutando, pero no se podrá ver ni modificar, y el tamaño de la base de datos de Access se reducirá a causa de la eliminación del código. Además, se optimizará el uso de la memoria, con la consiguiente mejora del rendimiento. 5-Planeación y Diseño de una Base de Datos La metodología para desarrollar una base de datos, se puede dividir en tres fases principales: planeación, diseño y desarrollo. En la fase de planeación se establece el modelo de la base, que implica analizar los siguientes apartados: justificación, objetivos, usuarios, alcance, cobertura temática, geográfica, temporal e idiomática; tipo y soportes de las fuentes documentales a incluir, nivel de procesamiento documental: referencial, referencial con resumen, referencial con resumen y con texto completo, productos y servicios que se proporcionarán, definición de requerimientos de insumos, equipo, software y recursos humanos El diseño, comprende la selección del sistema informático o Sistema de Gestión de Bases de Datos, el diseño de la estructura técnica de la base que a su vez incluye la definición de 5 etiquetas y campos, elaboración de formatos de captura, definición de campos a indizar, formatos de visualización y despliegue, pruebas de captura y consulta de la información. La última es la fase de operación o desarrollo de la base, implica la contratación y capacitación del personal, compra de equipo, elaboración de los criterios, políticas y estrategias para la localización, adquisición y selección de las fuentes a analizarse, el diseño de un sistema de control de calidad, elaboración de manuales técnicos, de políticas y procedimientos e implementación de un programa de promoción y difusión 6-Consultas y Relaciones (Modelo Entidad – Relación) • Es un modelo conceptual de datos de alto nivel: Sirve para representar los conceptos del Mundo que nos interesan con sus relaciones y características. • Es una herramienta muy utilizada directamente o a través de otras herramientas o programas (como Data-Architect de Sybase). • FASES en el DISEÑO de una BASE de DATOS: – Fases independientes del SGBD (Sistema Gestor de Bases de Datos, o DBMS, DataBase Management System), para obtener: • Esquema Conceptual: Definición de datos, relaciones... • Especificación de funciones necesarias (transacciones). – Fases dependientes del SGBD, para obtener: • Esquema Interno: Ficheros donde almacenar datos, directorios... • Programas para efectuar las transacciones. 7-Proyectos con Bases de Datos Los proyectos son el ámbito donde las ideas se trasladan a la práctica, donde los países traducen sus objetivos de reducción de la pobreza en medidas concretas. Antes de emprender los proyectos, los países elaboran Estrategias amplias encaminadas a reducir la pobreza y fomentar el desarrollo económico. En el Ciclo de los proyectos se describe el proceso que estos atraviesan: identificación, financiamiento, ejecución y evaluación. En Instrumentos de financiamiento se examinan los diversos instrumentos que el Banco utiliza para respaldar los proyectos de desarrollo económico y reducción de la pobreza de los países en desarrollo. En Políticas y procedimientos se explican las normas cuyo objeto es asegurar que los proyectos sean racionales desde el punto de vista económico, financiero, social y ambiental. En Medición de resultados se detallan las distintas formas en que el Banco evalúa los proyectos. 8-Algunos motores de Bases de Datos MongoDB Es una base de datos Open Source de gran rendimiento, escalable, schema-free (creo que esto se refiere a que no es una base de datos relacional convencional, aunque no estoy del todo seguro) y orientada a documentos (esquemas de datos tipo JSON). Hay drivers preparados para usar esta base de datos desde lenguajes como PHP, Python, Perl, Ruby, JavaScript, C++ y muchos más. Hypertable Hypertable es un sistema de almacenamiento distribuido de datos de alto rendimiento diseñado para soportar aplicaciones que requieran máximo rendimiento, escalabilidad y eficiencia. Se ha diseñado y modelado a partir del proyecto BigTable de Google y se enfoca sobre todo a conjuntos de datos de gran escala. Apache CouchDB Como en el caso de MongoDB, este proyecto está destinado a ofrecer una base de datos orientada a documentos que se pueden consultar o indexar en modo MapReduce usando JavaScript. CouchDB ofrece una API JSON RESTful a la que se puede acceder desde cualquier entorno que soporte peticiones HTTP. Neo4j Es un motor de persistencia completamente transaccional en Java que almacena los datos mediante grafos, y no mediante tablas. Neo4j ofrece una escalabilidad masiva. Puede manejar grafos de varios miles de millones de nodos/relaciones/propiedades en una única máquina, y se puede escalar a lo largo de múltiples máquinas. Riak Riak es una base de datos ideal para aplicaciones web y combina: Una tienda con un valor clave descentralizado Un motor map/reduce flexible Una interfaz de consultas HTTP/JSPN amigable. Oracle Berkeley DB Se trata de un motor de bases de datos embebidas que proporciona a los desarrolladores persistencia local, rápida y eficiente con una administración nula. Oracle Berkeley DB es una librería que se enlaza directamente en nuestras aplicaciones y permite realizar llamadas simples a funciones en lugar de enviar mensajes a un servidor remoto para mejorar el rendimiento. Apache Cassandra Cassandra es probablemente uno de los proyectos NoSQL más concoidos del mercado. Se trata de una base de datos distribuida de segunda generación con alta escalabilidad que está siendo usada por gigantes como Facebook (que es quien la ha desarrollado), Digg, Twitter, Cisco y más empresas. El objetivo es ofrecer un entorno consistente, tolerante a fallos y de alta disponibilidad a la hora de almacenar datos. Memcached Memcached es un almacén del tipo in-memory key-value para pequeñas cadenas de datos arbitrarios (textos, objetos) de resultados de llamadas a base de datos, llamadas a API, o rende rizado de páginas. Está orientado a acelerar aplicaciones web dinámicas al aliviar la carga de la base de datos. Firebird Firebird -no confundir con Firefox- es una base de datos relacional que puede ser utilizada en Linux, Windows y varias plataformas UNIX, y ofrece un alto rendimiento y potente soporte de lenguajes para procedimientos almacenados y triggers. Redis Redis es una base de datos avanzada del tipo fast key-value que está escrita en C y que se puede usar como memcached, por delante de una base de datos tradicional, o bien por sí sola de forma independiente. Tiene soporte para varios lenguajes de programación y se utiliza en proyectos muy populares como GitHub o Engine Yard. También hay un cliente PHP llamado Rediska que permite gestionar bases de datos Redis. HBase HBase es u almacén distribuido del tipo column-oriented que puede ser también denominado como la base de datos Hadoop. El proyecto está dirigido a ofrecer tablas enormes de “miles de millones de filas, y millones de columnas”. Dispone de un gateway RESTful que soporta XML, Protobug y opciones de codificación binaria de datos. Keyspace Se trata de un almacén del tipo key-value con replicación consistente y que funciona sobre sistemas operativos Windows. Keyspace ofrece una alta disponibilidad al enmascarar los fallos de servidor y red y al aparecer como un único servicio de alta disponibilidad. 4store 4store es un motor de almacenamiento de bases de datos y de consultas que mantiene datos en formato RDF. Está escrito en ANSI C99, está diseñado para funcionar en sistemas UNIX y ofrece una plataforma de alto rendimiento, escalable y estable. MariaDB MariaDB es una rama compatible hacia atrás de MySQL® Database Server. Incluye soporte para la mayoría de los motores de almacenamiento Open Source, y además para el propio motor de almacenamiento Maria. Drizzle Es un fork de MySQL que se centra en ser una base de datos eficiente y estable, sobre todo optimizada para aplicaciones de Internet y que siguen la filosofía Cloud Computing. HyperSQL Es un motor de bases de datos relacionales SQL escrito en Java. HyperSQL ofrece un pequeño pero veloz motor de bases de datos que dispone de tablas in-memory y basadas en disco, y que soporta los modos embebidos y servidor. Además, dispone de herramientas como una consola de comandos SQL y una interfaz gráfica para las consultas. MonetDB MonetDB es un sistema de bases de datos para aplicaciones de alto rendimiento dirigidas a la minería de datos, OAP, GIS, búsquedas XML, y recolección de información a partir de ficheros de texto y multimedia. Persevere Es un motor de almacenamiento de objetos y un servidor de aplicaciones (ejecutándose en Java/Rhino) que ofrece almacenamiento de datos dinámicos JSON para el desarrollo rápido de aplicaciones de Internet orientadas a datos y basadas en JavaScript . eXist-db EXist-db está desarrollada a través de la tecnología XML. Almacena datos CML según el modelo de datos de este estándar, y se caracteriza por un procesado eficiente y basado en índices de XQuery.