1.- Realiza una investigación sobre las siguientes bases de datos: a.- Mysql Es un sistema de gestión de bases de datos relacional, fue creada por la empresa sueca MYSQL AB, la cual tiene el copyright del código fuente del servidor SQL, así como también de la marca. MySQL es un software de código abierto, licenciado bajo la GPL de la GNU, aunque MySQL AB distribuye una versión comercial, en lo único en que se diferencia de la versión libre, es en el soporte técnico que se ofrece, y la posibilidad de integrar este gestor en un software propietario, ya que de otra manera, se vulneraria la licencia GPL. El lenguaje de programación que utiliza MySQL es Structured Query Languaje (SQL) que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales. MySQL surgió alrededor de la década del 90, Michael Windenis comenzó a usar mSQL para conectar tablas usando sus propias rutinas de bajo nivel (ISAM). Tras unas primeras pruebas, llego a la conclusión de que mSQL no era lo bastante flexible ni rápido para lo que necesitaba, por lo que tuvo que desarrollar nuevas funciones. Esto resulto en una interfaz SQL a su base de datos, totalmente compatible a mSQL.
b.- PostgreSQL PostgreSQL es un gestor de bases de datos orientadas a objetos (SGBDOO o ORDBMS en sus siglas en inglés) muy conocido y usado en entornos de software libre porque cumple los estándares SQL92 y SQL99, y también por el conjunto de funcionalidades avanzadas que soporta, lo que lo sitúa al mismo o a un mejor nivel que muchos SGBD comerciales. El origen de PostgreSQL se sitúa en el gestor de bases de datos POSTGRES desarrollado en la universidad de Berkeley y que se abandonó en favor de PostgreSQL a partir de 1994. Ya entonces, contaba con prestaciones que lo hacían único en el mercado y que otros gestores de bases de datos comerciales han ido añadiendo durante este tiempo.
PostgreSQL se distribuye bajo licencia BSD, lo que permite su uso, redistribución, modificación con la única restricción de mantener el copyright del software a sus autores, en concreto el PostgreSQL Global Development Group y la universidad de California. PostgreSQL puede funcionar en múltiples plataformas (en general, en todas las modernas basadas en Unix) y, a partir de la próxima versión 8.0 (actualmente en su segunda beta), también en Windows de forma nativa. Para las versiones anteriores existen versiones binarias para este sistema operativo, pero no tienen respaldo oficial. La historia de PostgreSQL se inicia en 1986 con un proyecto del profesor Michael Stonebraker y un equipo de desarrolladores de la universidad Berkeley (california), cuyo nombre era POSTGRES. En su diseño se incluyeron algunos conceptos avanzados en bases de datos y soporte parcial a la orientación a objetos. POSTGRES fue comercializado por illustra, una empresa que posteriormente formo parte de Informix (que comercializaba el conocido SGBD del mismo nombre, recientemente absorbida por IBM y su DB/2). Llego un momento en que mantener el proyecto absorbía demasiado tiempo a los investigadores y académicos, por lo que en 1993 se liberó la versión 4.5 y oficialmente se dio por terminado el proyecto. En 1994, Andrew Yu y Jolly Chen incluyeron SQL en Postgres para posteriormente liberar su código en la web con el nombre de Postgres95. El proyecto incluía múltiples cambios al código original que mejoraban su rendimiento y legibilidad. En 1996 el nombre cambio a PostgreSQL retomando la secuencia original de versiones, por lo que se liberó la versión 6.0. En el año 2004 la última versión estable oficial es la 7.4.6, mientras que la versión 8.0 está ya en fase final de estabilización. c.- Oracle Oracle la primera base de datos diseñada para Grid Computing, es un sistema de gestión de base de datos relacional fabricado por Oracle Corporation. Oracle es básicamente una herramienta cliente/servidor para la gestión de base de datos la gran potencia que tiene y su elevado precio hace que solo se vea en empresas muy grandes y multinacionales, por norma general.
Oracle Corporation es una de las mayores compañías de software del mundo. Sus productos van desde bases de datos (Oracle) hasta sistema de gestión. Cuenta además, con herramientas propias de desarrollo para realizar potentes aplicaciones, como Oracle Designer. Oracle es un DBMS (Database Management System, por sus siglas en inglés) poderoso y robusto que funciona en muchos sistemas operativos diferentes, incluyendo Windows 98, Windows 2000, diversas variantes de UNIX, diferentes sistemas operativos de macro computadoras, y Linux. Este es el DBMS más popular del mundo y tiene una larga historia de desarrollo y uso. Oracle muestra al programador mucha de su tecnología y consecuentemente puede afinarse y ajustarse de diversas maneras. Existen muchas configuraciones de la serie Oracle. Para empezar, hay dos versiones diferentes del motor DBMS de Oracle: Oracle personal y Oracle empresarial. Además, existen formas y reportes y también el diseñador Oracle, así como un sistema central de herramientas para la publicación de las bases de datos de Oracle en la Web. (Kroenke, 2003, pág. 329) 2.- Describe los componentes y características principales de las bases de datos. a.- Características principales de Mysql Está escrito en C/C++ y probado con numerosos compiladores. Funciona en muchos sistemas operativos. La API se encuentra disponible en C/C++, Java, Perl, Python, Ruby y TCL. Esta optimizado para equipos de múltiples procesadores. Es muy destacable su velocidad de respuesta. Se puede utilizar como cliente-servidor o incrustado en aplicaciones. Cuenta con un rico conjunto de tipos de datos. Soporta múltiples métodos de almacenamiento de las tablas, con prestaciones y rendimiento diferentes para poder optimizar el SGBD a cada caso concreto. Su administración se basa en usuarios y privilegios. Se tiene constancia de casos en los que maneja cincuenta millones de registros, sesenta mil tablas y cinco millones de columnas. Sus opciones de conectividad abarcan TCP/IP, sockets UNIX y sockets NT, además de soportar completamente ODBC.
Los mensajes de error pueden estar en español y hacer ordenaciones correctas con palabras acentuadas o con la letra ¨ñ¨ y en distintas lenguas. Es altamente confiable en cuanto a estabilidad se refiere. Gran portabilidad entre sistemas, puede trabajar en distintas plataformas y sistemas operativos. Cada base de datos cuenta con 3 archivos: Uno de estructura, uno de datos y uno de índice y soporta hasta 32 índices por tabla. Aprovecha la potencia de sistemas multiproceso, gracias a su implementación multihilo. Flexible sistema de contraseñas (passwords) y gestión de usuarios, con un muy buen nivel de seguridad en los datos. (Thibaud, 2006, pág. 10) b.- Características principales de PostgreSQL. Esta desarrollado en C, con herramientas como Yacc y Lex. La API de acceso al SGBD se encuentra disponible en C, C++, Java, Perl, PHP, Python y TLC, entre otros. Cuenta con un rico conjunto de tipos de datos, permitiendo además su extensión mediante tipos y operadores definidos y programados por el usuario. Su administración se basa en usuarios y privilegios. Sus opciones de conectividad abarcan TCP/IP, sockets Unix y sockets NT, además de soportar completamente ODBC. Los mensajes de error pueden estar en español y hacer ordenaciones correctas con palabras acentuadas o con la letra ñ. Es altamente confiable en cuanto a estabilidad se refiere. Puede extenderse con librerías externas para soportar encriptación, búsquedas por similitud fonética (soundex), etc. Control de concurrencia multi-versión, lo que mejora sensiblemente las operaciones de bloqueo y transacciones en sistemas multi-usuario. Soporte para vista, claves foráneas, integridad referencial, disparadores, procedimientos almacenados, subconsultas y casi todos los tipos y operadores soportados en SQL92 y SQL99. Implementación de algunas extensiones de orientación a objetos. En PostgreSQL es posible definir un nuevo tipo de tabla a partir de otra previamente definida. c.- Características principales de Oracle.
Es una herramienta de administración grafica que es mucho más intuitiva y cómoda de utilizar. Ayuda a analizar datos y efectuar recomendaciones concernientes a mejorar el rendimiento y la eficiencia en el manejo de aquellos datos que se encuentran almacenados. Apoya en el diseño y optimización de modelos de datos. Asistir a los desarrolladores con sus conocimientos de SQL y de construcción de procedimientos almacenados y triggers, entre otros. Apoya en la definición de estándares de diseño y nomenclatura de objetos. Documentar
y
mantener
un
registro
periódico
de
las
mantenciones,
actualizaciones de hardware y software, cambios en las aplicaciones y, en general, todos aquellos eventos relacionados con cambios en el entorno de utilización de una base de datos.
3.- Describe que tipo de modelo de base de datos utiliza: a.- Mysql b.- PostgreSQL c.- Oracle La búsqueda de una mejor administración de datos ha llevado a varios modelos que tratan de resolver los defectos críticos del sistema de archivos. Estos modelos representan escuelas de pensamiento en torno a que es una base de datos, que debe hacer, los tipos de estructura que debe emplear, así como la tecnología que debería usarse para implementar estas estructuras. En la tabla siguiente podremos observar la evolución de los principales modelos de datos.
Figura 1. Evolución de los principales modelos de datos. Modelo jerárquico. Se desarrolló en la década de 1960 para manejar grandes cantidades de datos para complejos proyectos de manufactura, como el cohete Apolo que aterrizo en la luna en 1969. Su estructura lógica básica está representada por un árbol invertido. La estructura jerárquica contiene niveles, o segmentos. Un segmento es el equivalente de un tipo de registro de un sistema de archivos. Dentro de una jerarquía, se percibe una capa más alta como el padre del segmento directamente bajo ella, que se denomina hijo. El modelo jerárquico describe un conjunto de relaciones de uno a muchos (1:M) entre un padre y sus segmentos hijos. (Cada padre puede tener muchos hijos, pero cada hijo tiene solo un padre.) Modelo Red. Fue creado para representar complejas relaciones de datos en forma más efectiva que el modelo jerárquico, para mejorar la operación de una base de datos y para imponer un estándar de base de datos. En el modelo de red, el usuario percibe la base de datos de red como un conjunto de registro en relaciones 1:M, pero, a diferencia del modelo jerárquico, el modelo de red permite que un registro tenga más de un padre. En tanto que el modelo de base de datos de red generalmente no se usa en la actualidad, las definiciones de conceptos estándar de base de datos que emergieron con el modelo de
red todavía se usan en modelos modernos de datos. Algunos conceptos importantes que se definieron son: El esquema, que es la organización conceptual de toda la base de datos según la ve el administrador. El subesquema, que define la parte de la base de datos ¨vista¨ por los programas de aplicación que en realidad producen la información deseada a partir de los datos contenidos dentro de la base de datos. Un lenguaje de administración de datos (DML), que define el ambiente en el que los datos se pueden administrar y trabajar con los datos en la base de datos. Un esquema de lenguaje de definición de datos (DDL), que hace posible que el administrador de una base de datos defina los componentes del esquema. Debido a las desventajas, los modelos jerárquico y de red, fueron sustituidos en gran parte por el modelo de datos relacional en la década de 1980. Modelo relacional, fue introducido en la década de 1970 por E. F. Codd (de IBM) en su destacado artículo científico ¨A Relational Model of Data for Large Shared Databanks¨. El modelo relacional represento un importante avance para usuarios y diseñadores. Para usar una analogía, el modelo relacional produjo una base de datos de ¨transmisión automática¨ para sustituir las bases de datos de ¨transmisión estándar¨ que le precedieron. Su sencillez conceptual preparo el terreno para una genuina revolución en las bases de datos. La base del modelo relacional es un concepto matemático conocido como relación. Para evitar la complejidad de la teoría matemática abstracta, se puede considerar una relación (a veces llamada tabla) como una matriz compuesta de filas y columnas que se intersecan. Cada fila en una relación se llama tupla. Cada columna representa un atributo. El modelo relacional también describe un preciso conjunto de construcciones para manipulación de datos basado en conceptos matemáticos avanzados. El modelo relacional de datos se implementa por medio de un complejo sistema de administración de base de datos relacional (RDBMS, por sus siglas en ingles). El RDBMS realiza las mismas funciones básicas de los sistemas DBMS jerárquico y de red, además de una amplia variedad de otras funciones que hacen que el modelo de datos relacional sea más fácil de entender e implementar.
Modelo entidad-relación. Los modelos ER por lo general se representan en un diagrama de entidad-relación (ERD), que usa representaciones gráficas para modelar componentes de bases de datos. El modelo ER está basado en los siguientes componentes: Entidad. Una entidad se representa en el ERD con un rectángulo, también conocido como caja de entidad Relaciones. Las relaciones describen asociaciones entre datos. Casi todas las relaciones describen asociaciones entre dos entidades. Modelo orientado a objetos (OO). En el modelo de datos orientado a objetos (OODM), tanto los datos como sus relaciones están contenidos en una sola estructura conocida como objeto. A su vez, el OODM es el fundamento para el sistema de administración de una base de datos orientada a objetos (OODBMS). Por lo general, los modelos de datos orientados a objetos se describen usando diagramas de clase mediante el lenguaje de modelado unificado. El lenguaje de modelado unificado (UML) es un lenguaje basado en conceptos OO que describe un conjunto de diagramas y símbolos que se pueden usar para modelar gráficamente un sistema. Se usan diagramas de clase de UML para representar datos y sus relaciones dentro del lenguaje de modelado del sistema orientado a objetos UML más grande.
Figura 2. Comparación de modelos de bases de datos.
Figura 3. Evolución de los modelos de bases de datos. (Coronel, Morris, & Rob, 2011, pág. 35) 4.- Describe que tipo de tablas, objetos, usuarios, tamaño máximo de la base de datos y las características que son necesarias para ser implantada por alguna empresa comercial. Dentro de las muchas opciones de bases de datos, puedo decir que MySQL es una opción muy buena, ya que dentro de sus características o particularidades es que es de fácil manejo y no tiene algún costo, obtener este tipo de bases de datos, el cual tiene ventajas y desventajas como cualquier otro. El software MySQL® proporciona un servidor de base de datos SQL (Structured Query Language) muy rápido, multi-threaded, multi usuario y robusto. El servidor MySQL está diseñado para entornos de producción críticos, con alta carga de trabajo así como para integrarse en software para ser distribuido. MySQL es una marca registrada de MySQL AB. El software MySQL tiene una doble licencia. Los usuarios pueden elegir entre usar el software MySQL como un producto Open Source bajo los términos de la licencia GNU
General
Public
License
(http://www.fsf.org/licenses/)
o
pueden
adquirir
una
licencia comercial estándar de MySQL AB. En MySQL 5.0, usando el motor de almacenamiento MyISAM, el máximo tamaño de las tablas es de 65536 terabytes (256 ^ 7 - 1 bytes). Por lo tanto, el tamaño efectivo máximo para las bases de datos en MySQL usualmente los determinan los límites de tamaño de ficheros del sistema operativo, y no por límites internos de MySQL. El motor de almacenamiento InnoDB mantiene las tablas en un espacio que puede ser creado a partir de varios ficheros. Esto permite que una tabla supere el tamaño máximo individual de un fichero. Este espacio puede incluir particiones de disco, lo que permite tablas extremadamente grandes. El tamaño máximo del espacio de tablas es 64TB. MySQL crea tablas MyISAM con una estructura interna que permite un tamaño máximo de unas 4GB. Puede chequear el tamaño máximo de tabla para una tabla con el comando SHOW TABLE STATUS o con myisamchk -dv tbl_name. MySQL
incluye
la
biblioteca MERGE que
permite
tratar
una
colección
de
tablas MyISAM con una estructura idéntica en una tabla MERGE. Una base de datos puede contener tablas de distintos tipos. Las tablas transaccionales (TSTs) tienen varias ventajas sobre las no transaccionales (NTSTs): Más seguras. Incluso si MySQL cae o tiene problemas de hardware, puede recuperar los datos, mediante recuperación automática o desde una copia de seguridad más el log de transacciones. Puede combinar varios comandos y aceptarlos todos al mismo tiempo con el comando COMMIT (si autocommit está desactivado). Puede ejecutar ROLLBACK para ignorar los cambios (si autocommit está desactivado). Si falla una actualización, todos los cambios se deshacen. (Con tablas no transaccionales, todos los cambios son permanentes.)
Motores
de
almacenamiento
transaccionales
pueden
proporcionar
mejor
concurrencia para tablas que tienen varias actualizaciones concurrentes con lecturas. En MySQL 5.0, InnoDB usa valores de configuración por defecto si no los especifica. Tablas no transaccionales tienen varias ventajas al no tener una sobrecarga transaccional: Más rápidas Menor requerimiento de espacio. Menos memoria para actualizaciones Puede combinar tablas transaccionales y no transaccionales en el mismo comando para obtener lo mejor de ambos mundos. Sin embargo, en una transacción con autocommit desactivado, los cambios de tablas no transaccionales son permanentes inmediatamente y no pueden deshacerse. 5.- Describe cuál de las tres bases de datos sería utilizaría para ser implementada en una empresa comercial. La mayoría de las empresas utilizan bases de datos que tengan soporte técnico, ya que con esto se olvidan de solucionar problemas en futuro. Como en cualquier otra parcela de trabajo en las empresas, las bases de datos son una pieza fundamental que conviene gestionar de manera eficaz para que todo funcione a la perfección. Existen muchas alternativas informáticas para manejarlas, por eso a veces cuesta decidirse por un producto u otro y al final la decisión siempre irá en función de pequeños inputs como el precio o el alcance que ofrezca cada candidato. MySQL Es sumamente fácil de administrar, operar y es famoso por su instalación de 15 minutos, la cual en 15 minutos es posible instalar, configurar y montar una BD relacional ya sea sistemas OLTP o bien OLAP, aunque por excelencia MySQL Server es comúnmente usado para desarrollos Web 2.0 y Enterprise2.0.
Oracle La tecnología Oracle para organizaciones en crecimiento es abierta, fácil de integrar, simple de administrar y altamente escalable, lo cual ayuda a adaptarse más rápido a los cambios del mercado o a los requerimientos del cliente. Las soluciones Oracle permiten alinear sus procesos con las cambiantes necesidades durante un largo período, brindando así valor continuo para nuestra empresa. DBase La seguridad en DBase Plus sigue siendo muy similar a la que ya existía antiguamente en la base de datos MS/DOS DBase 2.0. La ventana de Escritorio que presenta es una combinación de estilos que se tomó de diferentes programas. Es un tributo al poder fácil y entendible flexibilidad que hace de DBase una plataforma superior de desarrollo. Como es a menudo el caso, una simple vista de diseño puede enmascarar mucho de la complejidad del software. Es difícil hacer que el software se vea fácil.
Microsoft Access. Microsoft Access es uno de los sistemas de gestión de bases de datos relacionales más usuales para los sistemas operativos Windows, desarrollado por el mismo Microsoft y orientado a ser usado en un entorno personal o en pequeñas organizaciones. Es un componente de la suite ofimática Microsoft Office. Permite crear ficheros de bases de datos relacionales que pueden ser fácilmente gestionadas por una interfaz gráfica simple. Como se ha venido mencionando le elección de un buen gestor de bases de datos depende del alcance de cada empresa y más que nada de la facilidad de uso.
Bibliografía Coronel, C., Morris, S., & Rob, P. (2011). Bases de datos, diseño, implementacion y administracion. Mexico: Cengage Learning Editores, S.A. Kroenke, D. M. (2003). Prosesamiento de bases de datos: fundamentos, diseños e implementación. México: Pearson Educación. Thibaud, C. (2006). MySQL5. España: Edicione ENI.