Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Base de Datos
Base de Datos
Captulo
Conceptos generales
En este captulo veremos los primeros elementos para aproximarnos al uso de las bases de datos, explicando los diferentes tipos de guardado de los datos (Archivos y Bases de datos). Tambin se indicar cmo se organizan los archivos (secuenciales, indexados y relativos) y se presentarn algunos conceptos, tales como registro, campo y tipo de datos.
Un poco de historia Organizacin de los archivos Inconvenientes en el uso de archivos Qu es una base de datos? Ventajas de utilizar bases de datos Resumen Actividades 16 17 18 20 23 25 26
BASES DE DATOS
UN POCO DE HISTORIA
Lo primero y fundamental para ingresar al apasionante mundo de la programacin con bases de datos, es lo siguiente:
datos proceso informacin
En la figura vemos las tres etapas bien definidas de todo proyecto. La primera es Datos, que son los elementos bsicos o fundamentales con los que cuento en el momento de inicio de la tarea a realizar, por si solos, ellos no poseen ningn valor agregado. La segunda es Proceso, que es un conjunto de acciones o tareas que se realizan en un orden especfico con un principio y un fin bien definidos. Por ltimo, la tercera es Informacin y es el resultado que se obtiene como consecuencia de procesar los datos, y el fin primordial que se busca en todo sistema o programa informtico, obtener informacin certera y precisa en el menor tiempo posible. Si bien los datos y la informacin son nicos e inconfundibles, pueden existir mltiples procesos para llegar a la informacin deseada, tomando como punto de partida los datos que poseemos, lo que se busca es que sea el ms eficiente de todos los factibles. Ahora bien queda claro que durante toda la secuencia anteriormente definida hay datos que en determinado momento estn en movimiento y en otro determinado momento estn en reposo; los datos que estn en movimiento es tema para otro libro. Lo que nos importa a nosotros realmente son los datos que estn en reposo. Como es lgico de imaginar, estos datos que se encuentran en reposo hay que guardarlos en algn lugar. Para ello, dentro del mundo de sistemas, los lugares lgicos factibles para dicha tarea son: Archivos, Bases de datos, etc..... Cabe aclarar, como detalle significativo, que segn cmo se organice lgicamente la informacin se facilitar o dificultar, esperemos que esto ltimo no nos suceda, el acceso a ella.
PERSISTENCIA DE DATOS
Comenzaremos a definir algunos trminos usados en el mundo de la programacin, como complemento de las nociones tericas elaboradas. Normalmente en la jerga informtica, para referirse a los datos en reposo se suele decir persistencia de datos.
16
usr.code
Un poco de historia
Archivos Secuenciales
En dichos archivos tanto para leer un registro como para escribir un registro, se hace de a uno por vez y un registro detrs de otro. Ej., supngase que usted tuviera 30 contactos en su agenda guardada en un archivo secuencial y que nuestro amigo Juan Perez estuviera guardado en la posicin de registro nmero 20. Para ver cul era la direccin de mail de su amigo, usted debera abrir el archivo secuencial para lectura y leer los 19 registros anteriores hasta que al leer el registro 20 accediera al mail de aquel. Imagnese si su lista de contactos fuera mucho ms grande y Juan Prez se encontrara guardado en un registro muy posterior, creo que no hace falta ninguna otra explicacin. Es importante que se entienda que en este tipo de organizacin, salvo el primer registro, todos los dems registros tienen un registro que los precede y salvo el ltimo registro, todos los dems tienen un registro que los sucede. El orden fsico de los registros se corresponde con el orden lgico.
El almacenamiento lgico se refiere a la estructura lgica de cmo se organiza la informacin. Ej.: Uno podra tener los datos de sus contactos dentro de a) Una agenda de contactos como la del Outlook, b) Una tabla dentro de una base de datos o c) Una planilla de Excel. La informacin lgica podra estar almacenadas fsicamente en uno o ms archivos de un disco rgido,
usr.code
17
Conceptos generales
Antes de la existencia de las bases de datos, la informacin lgica (a partir de ahora siempre que digamos informacin vamos a asumir que es informacin lgica) se guardaba en archivos. Un archivo estaba compuesto por registros y cada registro estaba compuesto por un conjunto de campos.
BASES DE DATOS
Archivos Indexados
Para evitar el problema que se generaba con los archivos secuenciales, se cre una estructura que anexa al archivo de datos un ndice segn un orden y criterio predefinido, con lo cual se agiliza el acceso a los datos organizados por dicho ndice. Un ejemplo de esto son los ndices de los libros. Si estos no existieran usted estara obligado a leer el libro pgina por pgina, pero con el ndice Ud. puede acceder al tema que le interesa directamente sin tener que leer todas las pginas anteriores. El orden fsico de los registros se corresponde con el orden lgico.
Archivos Relativos
En este tipo de organizacin el orden fsico de los registros no necesariamente se corresponde con el orden lgico de ellos. El contenido de los datos del registro determina su posicin fsica, de manera que, conociendo el registro se puede hacer referencia a dicha posicin. Se puede acceder a cada uno de los registros sin necesidad de leer los que le preceden. La relacin entre el registro y su posicin fsica se obtiene mediante una frmula.
Redundancia de datos
Por lo general, para las aplicaciones que persisten sus datos en archivos, cada aplicacin est asociada a un archivo. Por ejemplo, si los sistemas de una empresa estn soportados sobre archivos es muy probable que el rea de recursos humanos posea
REGISTRO Y CAMPOS
Un registro es la mnima unidad disponible a la cual se puede acceder en un archivo. Tomemos como ejemplo el caso de la agenda de contacto y supongamos que tomamos como datos relevantes el Nombre, DNI, la direccin, el telfono, el mail y la fecha de nacimiento. A estos datos los llamaremos campos. Es decir que nuestro registro est compuesto por 6 (seis) campos.
18
usr.code
Un poco de historia
Ahora bien, veamos un par de detalles. Est claro que cada departamento (ventas, y RRHH) debern cargar los nmeros de legajos, nombres y apellido de los empleados una vez cada uno con lo cual dichos datos estarn cargados dos veces (duplicados) en dos archivos diferentes (esto es redundancia de datos). Supngase que la empresa posee empleadas solteras y que alguna de ellas se casa y desea que la registren con su apellido de casada. Por lo que citamos anteriormente, cada departamento estara obligado a actualizar el apellido de esta.
TABLAS
La tabla es un objeto de una base de datos que almacena datos en una coleccin de filas y columnas. La tabla se define por medio de las columnas que contiene. Cada columna representa a un campo diferente y cada fila a un registro diferente. El concepto de campo y registro es el mismo que para los archivos. Una base de datos puede contener o albergar una o ms tablas.
usr.code
19
Conceptos generales
un archivo con los datos ms relevantes de todos sus empleados, as el registro contendra los siguientes campos: Nmero de Legajo, Nombres, Apellido, DNI, direccin, telfono, mail, fecha de nacimiento, fecha de ingreso (por citar los ms relevantes, podra tener ms atributos o campos). A su vez, el departamento de ventas tambin podra tener un archivo propio en el cual se persistieran los datos de la venta realizadas por cada uno de los empleados, con el siguiente diseo de registro: Legajo Empleado, Nombre del Empleado, Apellido del Empleado, Nmero de Venta, Importe Venta.
BASES DE DATOS
SQL SERVER
SQL Server es un motor de base de datos que comercializa Microsoft. Este posee varias aplicaciones para la administracin de las bases de datos. En este libro haremos incapi en dos aplicaciones fundamentales: el Enterprise Manager (Administrador de tareas) y el Query Analizer (Analizador de consultas) y lo usaremos para realizar demostraciones prcticas.
20
usr.code
Figura 2. Vista de la Base de datos Empresa_de_Ventas en SQL Server con las Tablas de Empleados y Ventas_Empleados.
La Figura 2 muestra la pantalla del Enterprise Manager (Administrador de Tareas) de SQL Server. Observe que en la parte izquierda de la pantalla aparece una solapa de Bases de Datos y dentro de ella hemos creado una base de datos de nombre Empresa_de_Ventas y adems ella tiene seleccionada la solapa Tablas. Y si nos fijamos su parte superior derecha, encontraremos las tablas Empleados y Ventas_Empleados. La idea de esta figura es que se vaya familiarizando poco a poco con el entorno de trabajo que propone esta aplicacin de Microsoft. Observe que en la Figura 3 se muestra la Tabla Empleados desde la ventana de propiedades, para activarla simplemente hay que presionar el botn derecho del mouse con la tabla seleccionada y elegir la opcin Propiedades. Fjese que no se llegan a ver todos sus campos y habra que desplazarse con las barras laterales.
PROPIEDADES DE LA TABLA
TRANSACCIONES
Si hace doble clic sobre la tabla seleccionada se desplegar su ventana de Propiedades. Desde ah, podr acceder directamente a todas las opciones de la tabla.
El concepto de transaccin es definir una unidad bsica de trabajo. Esta unidad bsica de trabajo est compuesta por un conjunto de tareas o instrucciones a realizar.
usr.code
21
Conceptos generales
BASES DE DATOS
Observe que la ventana de la Figura 4 muestra la vista de diseo de la tabla denominada Ventas_Empleados donde, del lado izquierdo de la pantalla aparece el nombre del campo con el cual se lo identificar de aqu en adelante y del lado derecho, el tipo de dato que guardar ese campo (Char[n], {n cantidad de posiciones}, int {nmero entero}, money {moneda}, datetime {da y hora}, etc.).
Normalizar los datos de la base de datos. Evitar la redundancia de datos. Evitar la inconsistencia de datos. Garantizar la integridad de los datos. Garantizar la seguridad de los datos. Compartir los datos. Facilidad de modificar los datos.
Normalizar los datos: Es una metodologa (ya lo veremos con profundidad en prximos captulos) que permite minimizar entre otras cosas la redundancia de datos, y agiliza y garantiza la actualizacin de estos. Evitar redundancia de datos: Como poltica de las bases de datos, estos se tratan de guardar en un nico lugar y cuando existe la necesidad de acceder a ellos, se hace por medio de relaciones entre los mismos. A veces se sacrifica el tema de no ser redundante en pos de la performance. Evitar inconsistencias de datos: Dado que las bases de datos utilizan transacciones se puede garantizar prcticamente la inexistencia de inconsistencias de datos. Garantizar la integridad de los datos: Como se evita la redundancia de datos y la inconsistencia y se manejan transacciones, la integridad est garantizada. El concepto bsico de integridad es que la informacin obtenida de la base de datos es correcta en todo momento. Garantizar la seguridad de los datos: Debido a que los accesos a la base de datos tanto para usuarios como para aplicaciones estn dados por medio de permisos, si estos ltimos estn bien definidos nadie podr ingresar a ningn lugar que no le est permitido ni acceder a un conjunto de datos que no le est permitido. Existen adems otros tipos de objetos de la base de datos, como las vistas (que las veremos en captulos siguientes) que tambin colaboran en el tema de seguridad y restricciones de acceso a los datos. Compartir los datos: Dado que todos los datos de una base de datos se almacenan en un mismo lugar lgico (la base de datos) estos se pueden compartir sin problema entre distintos usuarios y aplicaciones. Facilidad de modificar los datos: Como se evita la redundancia de datos y estos se guardan en un nico lugar es ms fcil poder realizar modificaciones sobre ellos.
Conceptos generales
Vamos a describir brevemente algunas de las principales ventajas de utilizar base de datos para la persistencia de los datos:
BASES DE DATOS
modificar estos archivos. El propsito principal de un sistema de bases de datos es proporcionar a los usuarios una visin abstracta de los datos. Es decir, el sistema esconde ciertos detalles desde cmo se almacenan y mantienen los datos. Para que el sistema sea til, debe recuperar los datos eficientemente. Como muchos usuarios de sistemas de bases de datos no estn familiarizados con computadoras, los desarrolladores esconden la complejidad a los usuarios a travs de varios niveles de abstraccin para simplificar la interaccin de los usuarios con el sistema: Nivel fsico: el nivel ms bajo de abstraccin describe cmo se almacenan realmente los datos. Se presentan en detalle las estructuras de datos complejas de bajo nivel. Nivel lgico: el siguiente nivel ms alto de abstraccin describe qu datos se almacenan en la base de datos y qu relaciones existen entre esos datos. Los administradores de bases de datos, que deben decidir la informacin que se mantiene en la base de datos, usan el nivel lgico de abstraccin. Nivel de vistas: el nivel ms alto de abstraccin describe solo parte de la base de datos completa. El sistema puede proporcionar muchas vistas para la misma base.
Nivel de vista
Vista 1 Vista 2 Vista 3
Nivel lgico
Nivel fsico
Figura 5. Niveles de abstraccin que posee la base de datos y la interrelacin entre ellos.
En el nivel fsico, un registro se puede describir como un bloque de posiciones almacenadas consecutivamente (por ejemplo, palabras o bytes). El compilador del lenguaje esconde este nivel de detalle para los programadores. En el nivel lgico cada registro de este tipo se describe mediante una definicin de tipo, y se define la relacin entre estos tipos de registros. Los programadores, cuando usan un lenguaje de programacin, trabajan en este nivel de abstraccin. En forma anloga, los administradores habitualmente trabajan en este nivel de abstraccin. Finalmente, en el nivel de vistas, los usuarios de computadoras ven un conjunto de programas de aplicacin que esconden los detalles de los tipos de datos. Anlogamente, en el nivel de vistas se definen varias vistas de una base de datos, y los
24 usr.code
Ejemplares y Esquemas
La coleccin de informacin almacenada en la base de datos en un momento particular se llama un ejemplar de la base de datos. El diseo completo de la base de datos se llama esquema de la base de datos. Los esquemas son raramente modificados, si es que lo son alguna vez. Un esquema de base de datos corresponde a una definicin de tipo en un lenguaje de programacin. Una variable de un tipo dado tiene un valor particular en un instante de tiempo. As, el valor de una variable en lenguajes de programacin corresponde a un ejemplar de un esquema de bases de datos. Los sistemas de bases de datos tienen varios esquemas divididos, de acuerdo con los niveles de abstraccin que se han discutido. En el nivel ms bajo, est el esquema fsico; en el nivel intermedio est el esquema lgico, y en el nivel ms alto est el subesquema. En general, los sistemas de bases de datos soportan un esquema fsico, un esquema lgico y varios subesquemas.
RESUMEN
En este captulo vimos cmo se guardan los datos en reposo de los diferentes sistemas o programas. Explicamos los diferentes tipos de guardado de los datos (Archivos y Bases de datos). Dimos una pequea explicacin de las diferentes formas en que se organizan los archivos (secuenciales, indexados y relativos) y explicamos algunos conceptos bsicos de archivos y bases de datos de forma elemental, como ser registro, campo y tipo de datos. Adems definimos de forma elemental conceptos como redundancia, integridad, inconsistencia de datos y transacciones.
usr.code
25
Conceptos generales
usuarios de la base de datos ven esas vistas. Adems de esconder detalles del nivel lgico de la base de datos, las vistas tambin proporcionan un mecanismo de seguridad para evitar que los usuarios accedan a partes de la base de datos.
ACTIVIDADES
TEST DE AUTOEVALUACIN
1 A qu tipo de datos nos abocaremos a lo largo de este libro? Por qu? 2 De qu forma podemos guardar los datos? 3 Cules son los tipos de organizacin de archivos conoce? 4 Cul es la diferencia que existe entre un registro y un campo? 5 Qu es una base de datos? 6 Cmo se organizan los datos dentro de una base de datos? 7 Con qu motor de base de datos vamos a trabajar? 10 Cules son los niveles de abstraccin de una base de datos? 8 Cules son las ventajas de utilizar una base de datos? 9 A qu nos referimos al hablar de la normalizacin de una base de datos?
26
usr.code