Aprendizaje+en+BD-INF306


 * APRENDIZAJES DE INF-306 (BASE DE DATOS)**


 * A LO LARGO QUE SE DESARROLLABA EL CURSO DE BASE DE DATOS SE PUDO COMPRENDER QUE LA BASE DE DATOS 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.**

El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Evitar la redundancia de los datos.
 * Evitar problemas de actualización de los datos en las tablas.

Proteger la integridad de los datos.En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones:


 * Cada tabla debe tener su nombre único.
 * No puede haber dos filas iguales. No se permiten los duplicados.
 * Todos los datos en una columna deben ser del mismo tipo.



**Terminología relacional equivalente**
 * Atributo = columna o campo
 * Registro = registro, fila, renglón o tupla
 * Clave = llave o código de identificación
 * Clave Candidata = superclave mínima
 * Clave Primaria = clave candidata elegida
 * Clave Ajena (o foránea) = clave externa o clave foránea
 * Clave Alternativa = clave secundaria
 * Dependencia Multivaluada = dependencia multivalor

RDBMS = Del inglés Relational Data Base Manager System que significa, Sistema Gestor de Bases de Datos Relacionales.

1FN = Significa, Primera Forma Normal o 1NF del inglés First Normal Form.

Los términos Relación, Tupla y Atributo derivan del álgebra y cálculo relacional, que constituyen la fuente teórica del modelo de base de datos relacional. Todo atributo en una tabla tiene un dominio, el cual representa el conjunto de valores que el mismo puede tomar. Una instancia de una tabla puede verse entonces como un subconjunto del producto cartesiano entre los dominios de los atributos. Sin embargo, suele haber algunas diferencias con la analogía matemática, ya que algunos RDBMS permiten filas duplicadas, entre otras cosas. Finalmente, una tupla puede razonarse matemáticamente como un elemento del producto cartesiano entre los dominio.

**DBMS** Los sistemas de gestión de bases de datos (en inglés database management system, abreviado DBMS) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Propósito: El propósito general de los sistemas de gestión de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante para una organización. Objetivos: Existen distintos objetivos que deben cumplir los SGBD: **Ventajas** Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de los datos. 1. Inconvenientes: Típicamente, es necesario disponer de una o más personas que administren la base de datos, de la misma forma en que suele ser necesario en instalaciones de cierto porte disponer de una o más personas que administren los sistemas operativos. Esto puede llegar a incrementar los costos de operación en una empresa. Sin embargo hay que balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene. 2. Si se tienen muy pocos datos que son usados por un único usuario por vez y no hay que realizar consultas complejas sobre los datos, entonces es posible que sea mejor usar una hoja de cálculo. 3. Complejidad: el software muy complejo y las personas que vayan a usarlo deben tener conocimiento de las funcionalidades del mismo para poder aprovecharlo al máximo. 4. Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un software de gran tamaño, que requiere de gran cantidad de memoria para poder correr. 5. Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo general son relativamente altos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero. **Productos SGBD disponibles en el mercado SGBD** libresPostgreSQL (http://www.postgresql.org Postgresql) Licencia BSD Firebird basada en la versión 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0. **SGBD no libresMySQL: Licencia Dual**, depende del uso. No se sabe hasta cuándo permanecerá así, ya que ha sido comprada por Oracle. Sin embargo, existen 2 versiones: una gratuita que sería equivalente a la edición "express" SQL server de Microsoft Windows, y otra más completa de pago. **SGBD no libres y gratuitos**
 * Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.
 * Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.
 * Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones.
 * Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
 * Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos.
 * Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la información solicitada y en almacenar los cambios realizados.
 * Proveen facilidades para la manipulación de grandes volúmenes de datos (ver objetivos). Entre éstas:
 * Simplifican la programación de equipos de consistencia.
 * Manejando las políticas de respaldo adecuadas, garantizan que los cambios de la base serán siempre consistentes sin importar si hay errores correctamente, etc.
 * Organizan los datos con un impacto mínimo en el código de los programas.
 * Disminuyen drásticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien explotados por los desarrolladores.
 * SQLite (http://www.sqlite.org SQLite) Licencia Dominio Público
 * DB2 Express-C ([])
 * Apache Derby ([])
 * MariaDB ([])
 * MySQL ([])
 * Advantage Database
 * dBase
 * FileMaker
 * Fox Pro
 * gsBase
 * IBM DB2: Universal Database (DB2 UDB)
 * IBM Informix
 * Interbase de CodeGear, filial de Borland
 * MAGIC
 * Microsoft Access
 * Microsoft SQL Server
 * NexusDB
 * Open Access
 * Oracle
 * Paradox
 * PervasiveSQL
 * Progress (DBMS)
 * Sybase ASE
 * Sybase ASA
 * Sybase IQ
 * WindowBase
 * IBM IMS Base de Datos Jerárquica
 * CA-IDMS
 * Microsoft SQL Server Compact Edition Basica
 * Sybase ASE Express Edition para Linux (edición gratuita para Linux)
 * Oracle Express Edition 10 (solo corre en un servidor, capacidad limitada)