Вы находитесь на странице: 1из 10

Bases de datos

Una base de datos es un almacn que nos permite guardar grandes cantidades de informacin de forma organizada para que luego podamos encontrar y utilizar fcilmente. A continuacin te presentamos una gua que te explicar el concepto y caractersticas de las bases de datos. El trmino 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 informacin relacionada que se encuentra agrupada estructurada. Desde el punto de vista informtico, 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 ms tablas que guarda un conjunto de datos. Cada tabla tiene una o ms columnas y filas. Las columnas guardan una parte de la informacin sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.

Caractersticas
Entre las principales caractersticas de los sistemas de base de datos podemos mencionar: Independencia lgica y fsica de los datos. Redundancia mnima. Acceso concurrente por parte de mltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditora. Respaldo y recuperacin. Acceso a travs de lenguajes de programacin estndar.

Sistema de Gestin de Base de Datos (SGBD)


Los Sistemas de Gestin de Base de Datos (en ingls DataBase Management System) son un tipo de software muy especfico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definicin de datos, de un lenguaje de manipulacin de datos y de un lenguaje de consulta.

Ventajas de las bases de datos


Control sobre la redundancia de datos: Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, adems de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros estn integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos.

Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato est almacenado una sola vez, cualquier actualizacin se debe realizar slo una vez, y est disponible para todos los usuarios inmediatamente. Si un dato est duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes. Comparticin de datos: En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estn autorizados. Mantenimiento de estndares: Gracias a la integracin es ms fcil respetar los estndares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estndares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estndares de documentacin, procedimientos de actualizacin y tambin reglas de acceso. Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas. Mejora en la seguridad: La seguridad de la base de datos es la proteccin de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integracin de datos en los sistemas de bases de datos hace que stos sean ms vulnerables que en los sistemas de ficheros. Mejora en la accesibilidad a los datos: Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicacin que realice tal tarea. Mejora en la productividad: El SGBD proporciona muchas de las funciones estndar que el programador necesita escribir en un sistema de ficheros. A nivel bsico, el SGBD proporciona todas las rutinas de manejo de ficheros tpicas de los programas de aplicacin. El hecho de disponer de estas funciones permite al programador centrarse mejor en la funcin especfica requerida por los usuarios, sin tener que preocuparse de los detalles de implementacin de bajo nivel. Mejora en el mantenimiento: En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicacin que los manejan. Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven

afectados. Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos. Aumento de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda informacin o se pierda la integridad. La mayora de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo. Mejora en los servicios de copias de seguridad: Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada da, y si se produce algn fallo, utilizar estas copias para restaurarlos. En este caso, todo el trabajo realizado sobre los datos desde que se hizo la ltima copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.

Desventajas de las bases de datos


Complejidad: Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos. Coste del equipamiento adicional: Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir ms espacio de almacenamiento. Adems, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una mquina ms grande o una mquina que se dedique solamente al SGBD. Todo esto har que la implantacin de un sistema de bases de datos sea ms cara. Vulnerable a los fallos: El hecho de que todo est centralizado en el SGBD hace que el sistema sea ms vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup).

Tipos de Campos
Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes. Entre los ms comunes podemos nombrar: Numrico: entre los diferentes tipos de campos numricos podemos encontrar enteros sin decimales y reales decimales. Booleanos: poseen dos estados: Verdadero Si y Falso No.

Memos: son campos alfanumricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados. Fechas: almacenan fechas facilitando posteriormente su explotacin. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los das entre una fecha y otra. Alfanumricos: contienen cifras y letras. Presentan una longitud limitada (255 caracteres). Auto-incrementables: son campos numricos 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.

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 volmenes 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 ms potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volmenes de informaciones.

Modelo entidad-relacin
Los diagramas o modelos entidad-relacin (denominado por su siglas, ERD Diagram Entity relationship) son una herramienta para el modelado de datos de un sistema de informacin. Estos modelos expresan entidades relevantes para un sistema de informacin, sus inter-relaciones y propiedades.

Cardinalidad de las Relaciones El diseo de relaciones entre las tablas de una base de datos puede ser la siguiente: Relaciones de uno a uno: una instancia de la entidad A se relaciona con una y solamente una de la entidad B. Relaciones de uno a muchos: cada instancia de la entidad A se relaciona con varias instancias de la entidad B. Relaciones de muchos a muchos: cualquier instancia de la entidad A se relaciona con cualquier instancia de la entidad B. Estructura de una Base de Datos Una base de datos, a fin de ordenar la informacin de manera lgica, posee un orden que debe ser cumplido para acceder a la informacin de manera coherente. Cada base de datos contiene una o ms tablas, que cumplen la funcin de contener los campos.

Una base de datos posee el siguiente orden jerrquico: Tablas Campos Registros Lenguaje SQL

El lenguaje SQL es el ms universal en los sistemas de base de datos. Este lenguaje nos permite realizar consultas a nuestras bases de datos para mostrar, insertar, actualizar y borrar datos. Mostrar: para mostrar los registros se utiliza la instruccin Select. Select * From comentarios. Insertar: los registros pueden ser introducidos a partir de sentencias que emplean la instruccin Insert. Insert Into comentarios (titulo, texto, fecha) Values ('saludos', 'como esta', '22-10-2007') Borrar: Para borrar un registro se utiliza la instruccin Delete. En este caso debemos especificar cual o cuales son los registros que queremos borrar. Es por ello necesario establecer una seleccin que se llevara a cabo mediante la clusula Where. Delete From comentarios Where id='1'. Actualizar: para actualizar los registros se utiliza la instruccin Update. Como para el caso de Delete, necesitamos especificar por medio de Where cules son los registros en los que queremos hacer efectivas nuestras modificaciones. Adems, tendremos que especificar cules son los nuevos valores de los campos que deseamos actualizar. Update comentarios Set titulo='Mi Primer Comentario' Where id='1'.

Lenguaje de Programacin ms Usados en la Actualidad. Java


Es un lenguaje de programacin orientado a objetos, desarrollado por Sun Microsystems a principios de los aos 90. El lenguaje en s mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos ms simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulacin directa de punteros o memoria. Con respecto a la memoria, su gestin no es un problema ya que sta es gestionada por el prpio lenguaje y no por el programador. Las aplicaciones Java estn tpicamente compiladas en un bytecode, aunque la compilacin en cdigo mquina nativo tambin es posible. En el tiempo de ejecucin, el bytecode es normalmente interpretado o compilado a cdigo nativo para la ejecucin, aunque la ejecucin directa por hardware del bytecode por un procesador Java tambin es posible El lenguaje Java se cre con cinco objetivos principales: 1. Debera usar la metodologa de la programacin orientada a objetos. 2. Debera permitir la ejecucin de un mismo programa en mltiples sistemas operativos. 3. Debera incluir por defecto soporte para trabajo en red. 4. Debera disearse para ejecutar cdigo en sistemas remotos de forma segura. 5. Debera ser fcil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.

Ventajas No se necesita el cdigo otra vez si se quiere ejecutar el programa en otra mquina. Un solo cdigo funciona para todos los browsers compatibles con Java o donde se tenga una Mquina Virtual de Java (Mac's, PC's, Sun's, etc). Java es un lenguaje de programacin orientado a objetos, y tiene todos los beneficios que ofrece esta metodologa de programacion (ms adelante doy una pequea introduccin a la filosofa de objetos). Un browser compatible con Java deber ejecutar cualquier programa hecho en Java, esto ahorra a los usuarios tener que estar insertando "plug-ins" y dems programas que a veces nos quitan tiempo y espacio en disco. Java es un lenguaje y por lo tanto puede hacer todas las cosas que puede hacer un lenguaje de programacin: Clculos matemticos, procesadores de palabras, bases de datos, aplicaciones grficas, animaciones, sonido, hojas de clculo, etc. Si lo que me interesa son las pginas de Web, ya no tienen que ser estticas, se le pueden poner toda clase de elementos multimedia y permiten un alto nivel de interactividad, sin tener que gastar en paquetes carsimos de multimedia. Desventajas Hay diferentes tipos de soporte tcnico para la misma herramienta, por lo que el anlisis de la mejor opcin se dificulta. Para manejo a bajo nivel deben usarse mtodos nativos, lo que limita la portabilidad. El diseo de interfaces grficas con awt y swing no es simple.o Existen herramientas como el JBuilder que permiten generar interfaces grficas de manera sencilla, pero tienen un costo adicional. Puede ser que no haya JDBC para bases de datos poco comerciales. Algunas herramientas tienen un costo adicional.

C
Es un lenguaje de programacin de propsito general asociado, de modo universal, al sistema operativo UNIX. Sin embargo, la popularidad, eficacia y potencia de C se ha producido porque este lenguaje no est prcticamente asociado a ningn sistema operativo, ni a ninguna mquina en especial. Esta es la razn fundamental por la que C es conocido como el lenguaje de programacin de sistemas por excelencia. Ventajas Tiene una gran cantidad de ventajas sobre otros lenguajes y constituyen precisamente la razn fundamental de que despus de casi dos dcadas de uso C siga siendo uno de los lenguajes ms populares, utilizados en empresas, organizaciones y fbricas de software de todo el mundo. C se caracteriza por su velocidad de ejecucin. En los primeros das de la informtica los problemas de tiempo de ejecucin se resolvan escribiendo todo o parte de una aplicacin en lenguaje ensamblador (muy al lenguaje de mquina).

Debido a que existen muchos programas escritos en el lenguaje C, se han creado numerosas bibliotecas C para programadores profesionales que soportan gran variedad de aplicaciones. Desventajas: Carece de instrucciones de entrada/salida, de instrucciones para el manejo de cadenas de caracteres, con lo que este trabajo queda para la librera de rutinas, con la consiguiente prdida de transportabilidad. La excesiva libertad en la escritura de los programas puede llevar a errores en la programacin que, por ser correctos sintcticamente no se detectan a simple vista. Por otra parte las precedencias de los operadores convierten a veces las expresiones en pequeos rompecabezas.

C++
Es un lenguaje de programacin diseado a mediados de los aos 1980 por Bjarne Stroustrup. La intencin de su creacin fue el extender al exitoso lenguaje de programacin C con mecanismos que permitan la manipulacin de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje hbrido. Posteriormente se aadieron facilidades de programacin genrica, que se sum a los otros dos paradigmas que ya estaban admitidos (programacin estructurada y la programacin orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programacin multiparadigma. Actualmente existe un estndar, denominado ISO C++, al que se han adherido la mayora de los fabricantes de compiladores ms modernos. Existen tambin algunos intrpretes, tales como ROOT. Ventajas - Lenguaje de programacin orientado a objetos. - Lenguaje muy didctico, gracias a este lenguaje puedes aprender muchos otros lenguajes con gran facilidad, como C#, Java, Visual Basic, Javascript, PHP, entre otros. - Es muy potente en lo que se refiere a creacin de sistemas complejos, un lenguaje muy robusto. - Permite elaborar aplicaciones sencillas como un "Hello World!" hasta sistemas operativos y mucho ms, todo eso dependiendo del manejo del lenguaje. - Actualmente, puede compilar y ejecutar cdigo de C, ya viene con libreras para realizar esta labor. - Es un lenguaje muy empleado, existen muchos tutoriales en lnea, libros, cdigos fuentes abiertos... hay material de sobra y basta para aprender lo necesario y mucho ms con este lenguaje. - Existen muchos algoritmos cuyo pseudocdigo se encuentra ya desarrollado en C++, de manera que puedes tomarlo y amoldarlo a tu solucin (porque el que veas un fragmento de cdigo no asegura que sea correcto al 100%).

Desventajas: - Uso de DLLs (libreras dinmicas) muy complejo. Java y .Net han evolucionado estos conceptos manipulando las DLLs mediante los frameworks que proveen. En cambio, en C+ + el desarrollador debe encargarse de cargar y liberar de memoria estas libreras, y correr los riesgos por el manejo de esta memoria. - Elaborar un sistema en C++ es como construir un rascacielos: tiene buen soporte y es robusto, pero si existen errores en los pisos inferiores toda la parte superior se viene abajo terriblemente. - Manejo de punteros y memoria respecto a ello. Claro, esta tambin es una gran ventaja porque permite un mejor control de la memoria y una buena administracin de recursos de computadora, pero la inexperiencia de los desarrolladores o la prdida de costumbre con este tipo de variables (sobre todo cuando son dobles o triples punteros, inclusive de mayor orden) los lleva al desastre. - No es recomendable para desarrollo de pginas Web. - Existen muchos entornos de programacin para C++. No existen estndares para ello. De manera que puedes encontrar C++ para Unix/Linux, C++ para Windows, C++ para MacOS, y asi indistintamente. Adems, en cada SO encuentras diferentes IDEs de desarrollo, y tambin encuentras IDEs para desarrollo de aplicaciones grficas como Anjuta, Qt para Unix/Linux, Borland C++ Builder y Visual Studio C++ para Windows. PHP El lenguaje de programacin interpretado PHP naci como Personal Home Page (PHP) Tools. Fue creado por el programador dans Rasmus Lerdorf en 1994 para la creacin de pginas web dinmicas. El acrnimo recursivo, sin embargo, actualmente est vinculado a PHP Hypertext Pre-Processor. El lenguaje es administrado por The PHP Group y no cuenta con una especificacin formal. La Free Software Foundation, por lo tanto, considera la licencia PHP como parte del software libre. El PHP suele utilizarse en interpretacin del lado del servidor aunque tambin puede usarse desde una interfaz de lnea de comandos y para la creacin de otros tipos de programas. Lerdorf dise la primera versin de PHP en lenguaje Perl con base en la escritura de un grupo de CGI del lenguaje C. Su intencin era presentar su currculum vitae y almacenar datos como la cantidad de visitantes que accedan a su pgina web. Los programadores israeles Zeev Suraski y Andi Gutmans reescribieron el analizador sintctico en 1997 y crearon el PHP3, cambiando el nombre del lenguaje al actual. Con el tiempo, estos programadores reescribiran la totalidad del cdigo de PHP. Actualmente el PHP suele incrustarse dentro del cdigo HTML de las pginas web y ejecutarse desde un servidor. Se estima que PHP est presente en ms de veinte millones de sitios y en cerca de un milln de servidores. Una de las ventajas de PHP es su parecido con lenguajes comunes de programacin estructurada (como Perl y C), lo que ayuda a que los programadores puedan desarrollar aplicaciones complejas en poco tiempo.

Ventajas Es un lenguaje multiplataforma. Completamente orientado a la web. Capacidad de conexin con la mayora de los motores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL. Capacidad de expandir su potencial utilizando la enorme cantidad de mdulos (llamados ext's o extensiones). Posee una amplia documentacin en su pgina oficial ([2]), entre la cual se destaca que todas las funciones del sistema estn explicadas y ejemplificadas en un nico archivo de ayuda. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. PHP es Open Source, lo cual significa que el usuario no depende de una compaa especfica para arreglar cosas que no funcionan, adems no ests forzado a pagar actualizaciones anuales para tener una versin que funcione. Muchos de nosotros que hemos esperado que Allaire arregle algo apreciamos esto. Permite las tcnicas de Programacin Orientada a Objetos. Biblioteca nativa de funciones sumamente amplia e incluida. No requiere definicin de tipos de variables aunque sus variables se pueden evaluar tambin por el tipo que estn manejando en tiempo de ejecucin. Tiene manejo de excepciones (desde PHP5). Rapidez. PHP generalmente es utilizado como modulo de Apache, lo que lo hace extremadamente veloz. Esta completamente escrito en C, as que se ejecuta rpidamente utilizando poca memoria. Puede interactuar con muchos motores de bases de datos tales como MySQL, MS SQL, Oracle, Informix, PostgreSQL, y otros muchos. Siempre podrs disponer de ODBC para situaciones que lo requieran. Desventajas Si bien PHP no obliga a quien lo usa a seguir una determinada metodologa a la hora de programar (muchos otros lenguajes tampoco lo hacen), aun estando dirigido a alguna en particular, el programador puede aplicar en su trabajo cualquier tcnica de programacin y/o desarrollo que le permita escribir cdigo ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrn de diseo Modelo Vista Controlador (o MVC), que permiten separar el tratamiento y acceso a los datos, la lgica de control y la interfaz de usuario en tres componentes independientes. La ofuscacin de cdigo es la nica forma de ocultar los fuentes. El manejo de errores no es tan sofisticado como Cold Fusion o ASP. No existe IDE o Debugger. Una IDE puede no ser importante para la mayora de los programadores y un debugger ha sido prometido por Zend Tech para un futuro muy cercano.