lunes, 25 de mayo de 2009

Capitulo I Generalidades

Base de Datos I - Semestre IV

CAPITULO 1. GENERALIDADES
1.1. Sistemas de Gestión de Archivos SGA
1.2. Problemas generados por el esquema de SGA
1.3. Sistemas de Bases de Datos SGBD vs. SGA
1.4. Bases de datos vs. SGBD (DBMS)
1.5. Visión de los Datos
1.6. Modelos de datos
1.7. Lenguajes de Datos

1.1. SISTEMAS DE GESTIÓN DE ARCHIVOS SGA

Hasta hace poco los programadores cuando requerían almacenar información recurrirán a archivos creados dentro de las aplicaciones y de acuerdo a los requerimientos puntuales específicos. Cada uno resolvía su problema de acuerdo a su óptica, muchas veces sin pensar en lo que los demás colegas estaban realizando.
Cuando se requería manipular estos datos se realizaban programas que incluían la definición en detalle de estos archivos para poder operar sobre estos. Cada programa estaba constituido por un número considerable de líneas de código (en ocasiones abrumador), para hacer incluso tareas muy simples como un nuevo reporte, por ejemplo.
Si no existía un mecanismo de coordinación y con normas definidas, las empresas podrían navegar en un mar de programas y cientos de archivos con datos redundantes y muchas veces inconsistentes, algunos de los cuales ya ni siquiera se usaban. Pensar en hacer modificaciones (mantenimiento) a estos sistemas como estos eran un verdadero dolor de cabeza.
A continuación se presentan algunos de sus problemas inherentes.

1.2 PROBLEMAS GENERADOS POR EL ESQUEMA DE SGA

Pensemos en un caso extremo donde cada sección de una empresa ha realizado, independientemente de las demás, sus programas para manipulación de sus propios datos y producir la información que requiere. Casos de estos se dieron y aun se dan en la vida real, más de lo que se pudiera creer.

DIFICULTAD PARA OBTENER LA INFORMACIÓN DESEADA.

Como los reportes son programados de acuerdo a necesidades del momento, los usuarios deben usar lo que ya esté y acomodarlos a sus requerimientos actuales o recurrir a solicitar nuevos programas, inclusive si son pocos los cambios que se quieren (por ejemplo, inclusión de nuevos campos, realización de sencillos cálculos adicionales, etc.).

DATOS SEPARADOS Y AISLADOS

Como cada sección realizó sus propios programas, diseñó los archivos y tipos de datos importantes para estos. Cada cual tenía la parte que le competía.
Cuando se quiere consolidar y agrupar información a nivel empresarial, varios problemas pueden aparecer: Hay que recolectarla desde diferentes archivos, los formatos en cada uno, a pesar de referirse a atributos iguales, son disímiles, hay datos que no se encuentran en ningún archivo y otros más.

DATOS REPETIDOS
A causa de lo anterior aparecen también datos que han sido incluidos en varios archivos, con características diferentes y peor aun con información que puede no concordar. Esto lleva a sistemas de información inconsistente que traen como consecuencia una terrible desconfianza en el sistema.

DIFICULTAD PARA INCLUIR LAS REGLAS DE INTEGRIDAD Y DEL NEGOCIO

Cualquier parámetro, regla o restricción debe ser definida en un programa, por lo tanto los cambios a estas llevan a modificación de aplicaciones y afectan solo aquellos archivos que la aplicación use.

SISTEMAS MANIPULADOS POR VARIOS USUARIOS SIMULTÁNEAMENTE

En los casos que varios usuarios requieran operar una aplicación en concreto (caso típico de facturación) el programado debe incluir en su software rutinas que permitan manejar el acceso concurrente a programas y datos y es su responsabilidad los buenos resultados.
Se entenderá hasta acá, que estos sistemas, sobre todo en organización de tamaño considerable, no podían soportar (a menos que se definieran esquemas muy rigurosos) las operaciones y decisiones; que ofrecian un enorme desgaste administrativo y conllevaban múltiples riesgos.

1.3 Sistema de Gestión de Bases de Datos SGBD o Data Base Manager System DBMS

Colección de datos interrelacionados y un conjunto de programas para acceder dichos datos. Son productos de software fabricados por diferentes proveedores y con diferentes características que los diferencian unos de otros: Dbase, Fox, Access, Informix, Unify, Oracle, Interbase


1.4 BASES DE DATOS

Colección de datos organizados bajo normas establecidas en un modelo seleccionado. La base de datos es un conjunto de información almacenada bajo la estructura diseñada e implementada en el SGBD y relacionada con un asunto o con una finalidad, tal como el seguimiento de los pedidos de clientes o una colección de música.

Generalmente nos referimos a los datos de los usuarios y de la organización, que apoyan el negocio modelado y soportado por el Sistema de Gestión de Bases de Datos. En la etapa de diseño lógico la arquitectura de los datos es independiente del motor donde se montará finalmente.

LA GESTIÓN DE LOS DATOS IMPLICA:

Definición de estructuras para almacenar información

1.5 ABSTRACCIÓN DE DATOS

Característica de un sistema de bases de datos, que permite al usuario o programador operar con los datos sin necesidad de conocer detalles que para él no son de "importancia", ofreciendo así una visión abstracta de estos. Para cumplir con tal fin se han definido diferentes niveles de abstracción:

Nivel Físico. Determina como están almacenados físicamente los datos (pistas, sectores, cilindros), representa el nivel más bajo.

Nivel Lógico o Conceptual. Determina la organización de los archivos. Índices, llaves, orden de campos, tipos de datos.

Nivel de Vistas. Oculta parte de la información a los usuarios, es decir hace visible solo una parte de la base de datos.


INDEPENDENCIA DE DATOS
Propiedad que permite que el cambio en un nivel no afecte el otro

1.6 MODELOS DE DATOS
Colección de herramientas conceptuales para describir:
- Los datos
- Las relaciones de los datos
- La semántica de los datos

Clasificación de los Modelos de Datos:

Modelos Lógicos Basados en Objetos
Modelo Entidad-Relación
Modelo Orientado a Objetos
Modelo de Datos Semántico
Modelo de Datos Funcional

Modelos Lógicos Basados en Registros
Modelo Relacional
Modelo de Red
Modelo Jerárquico

Modelo de Red
Colecciones de registros y las relaciones entre datos se representan mediante enlaces (dirigidos)

Modelo Jerárquico
Los registros se organizan como colecciones de árboles, en lugar de grafos dirigidos

Modelo Relacional
Una Base de Datos Relacional es una base de datos en donde todos los datos visibles al usuario están organizados estrictamente como tablas de valores y en donde todas las operaciones de la base de datos operan sobre estas tablas (Dr. Codd 1970)

1.7 Lenguaje Definición de Datos LDD

Es un conjunto de declaraciones o definiciones que permiten expresar las especificaciones del esquema de la base de datos. A partir de estas se genera el Diccionario de Datos. Igualmente permite determinar la estructura de almacenamiento y los métodos de acceso. Permiten crear, las bases de datos, las tablas, definir índices y reglas de integridad. Igualmente modificar y borrar lo antes definido.

Lenguaje de Manipulación de Datos LMD

A diferencia del anterior este tiene estrecha relación con las operaciones que los usuarios realizan sobre los datos almacenados. Estas operaciones pueden ser: Recuperación o consulta, inserción, borrado y modificación de los datos

1.8 Ejemplo:

En seudo código dar instrucciones LDD y LMD, que permitan crear una base de datos, dos tablas en ella y definir integridad referencial.
Nota: Este seudo código hará un acercamiento a la sintaxis real de un motor de base de datos, pero no se detallaran las instrucciones.

1. Crear la Base de Datos ejem1:
CREAR BASE_DATOS ejem1;
2. Creación de la tabla cliente:
CREAR TABLA cliente(
Cedula char(12) NO NULO,
Nombre char(25),
Direccion char(30),
Ciudad char(15),
Llave Primaria(cedula));
3. Creación tabla factura:
CREAR TABLA factura(
numero char(6) NO NULO,
ced_cliente char(12) NO NULO,
fecha date,
total money,
Llave Primaria (numero),
Llave Foránea(ced_cliente)
Referencia cliente(cedula));
Consultas:
1. Mostrar la información de los clientes:
SELECCIONE todos los campos
Desde la Tabla clientes.
2. Mostrar los clientes de la ciudad de Medellín:
SELECCIONE todos los campos
Desde la Tabla clientes
Cuya ciudad sea "Medellín".
3. Agregar el campo o atributo IVA la tabla factura:
ALTERAR TABLA factura ADICIONE iva money;
4. Borrar los clientes de Bogotá"
BORRE DESDE cliente
DONDE ciudad sea "Bogota".


TEORÍA GENERAL BASES DE DATOS I

¿Qué son las bases de datos?
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. A continuación te presentamos una guía que te explicará el concepto y características de las bases de datos.

El término 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 información relacionada que se encuentra agrupada ó estructurada.

Desde el punto de vista informático, 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 más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.

Definición de base de datos

Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.

Características
Entre las principales características de los sistemas de base de datos podemos mencionar:
• Independencia lógica y física de los datos.
• Redundancia mínima.
• Acceso concurrente por parte de múltiples usuarios.
• Integridad de los datos.
• Consultas complejas optimizadas.
• Seguridad de acceso y auditoria.
• Respaldo y recuperación.
• Acceso a través de lenguajes de programación estándar.
Sistema de Gestión de Base de Datos (SGBD)

Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management System) 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. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación 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, además de provocar la falta de consistencia de datos.

En los sistemas de bases de datos todos estos ficheros están 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 actualización se debe realizar sólo 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.

Compartición 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 estén autorizados.

Mantenimiento de estándares:
Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estándares de documentación, procedimientos de actualización y también 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 protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más 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 aplicación que realice tal tarea.

Mejora en la productividad:
El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación.

El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel.

Mejora en el mantenimiento:
En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación 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 simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría 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 día, y si se produce algún 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 más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara.

Vulnerable a los fallos:
El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más 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 más comunes podemos nombrar:
• Numérico: entre los diferentes tipos de campos numéricos podemos encontrar enteros “sin decimales” y reales “decimales”.
• Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”.
• Memos: son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados.
• Fechas: almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra.
• Alfanuméricos: contienen cifras y letras. Presentan una longitud limitada (255 caracteres).
• Autoincrementables: son campos numéricos 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 volúmenes 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 más potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.
Modelo entidad-relación
Los diagramas o modelos entidad-relación (denominado por su siglas, ERD “Diagram Entity relationship”) son una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información, sus inter-relaciones y propiedades.

Cardinalidad de las Relaciones
El diseño 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 información de manera lógica, posee un orden que debe ser cumplido para acceder a la información de manera coherente. Cada base de datos contiene una o más tablas, que cumplen la función de contener los campos.
En el siguiente ejemplo mostramos una tabla “comentarios” que contiene 4 campos.

Los datos quedarían organizados como mostramos en siguiente ejemplo:


Por consiguiente una base de datos posee el siguiente orden jerárquico:
• Tablas
• Campos
• Registros
• Lenguaje SQL

El lenguaje SQL es el más 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.
A continuación veremos un ejemplo de ellos:
• Mostrar: para mostrar los registros se utiliza la instrucción Select. Select * From comentarios.
• Insertar: los registros pueden ser introducidos a partir de sentencias que emplean la instrucción Insert. Insert Into comentarios (titulo, texto, fecha) Values ('saludos', 'como esta', '22-10-2007')
• Borrar: Para borrar un registro se utiliza la instrucción Delete. En este caso debemos especificar cual o cuales son los registros que queremos borrar. Es por ello necesario establecer una selección que se llevara a cabo mediante la cláusula Where. Delete From comentarios Where id='1'.
• Actualizar: para actualizar los registros se utiliza la instrucción Update. Como para el caso de Delete, necesitamos especificar por medio de Where cuáles son los registros en los que queremos hacer efectivas nuestras modificaciones. Además, tendremos que especificar cuáles son los nuevos valores de los campos que deseamos actualizar. Update comentarios Set titulo='Mi Primer Comentario' Where id='1'.