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.