Sei sulla pagina 1di 7

Bases de datos

1. Introduccin Habitualmente, los programas trabajan con informacin que est en un fichero. Por ejemplo, nuestro simulador de trfico areo trabaja con una lista de planes de vuelo que inicialmente est en un fichero de texto. Al inicio del proceso de simulacin, el programa lee el fichero de texto y coloca la informacin de los planes de vuelo en una estructura de datos (una lista de planes de vuelo). Durante la simulacin utiliza la informacin que hay en la lista (hace recorridos y bsquedas en la lista). Y finalmente, si el usuario lo desea, el programa guarda los planes de vuelo modificados en un fichero de texto. Por tanto, los ficheros de texto se ha usado en dos momentos: al inicio cuando se lee la informacin para cargarla en la estructura de datos y al final cuando se vuelca la informacin de la lista en un fichero. Durante el proceso de simulacin los ficheros no se usan para nada. Con mucha frecuencia ocurre que un programa necesita usar cierta informacin, pero slo en parte y de forma puntual. Por ejemplo, supongamos que nuestro simulador maneja tambin informacin sobre las compaas areas. Para cada compaa queremos tener su identificacin, su telfono y su email, para poder comunicarnos con ella. Podramos pensar en tener un fichero de texto con la informacin de todas las compaas del mundo, y cargar ese fichero en una estructura de datos al inicio del programa para tenerla disponible durante la simulacin, exactamente igual que con la lista de planes de vuelo. Pero a diferencia de los planes de vuelo, la informacin sobre compaas slo la necesitamos en momentos concretos y slo para algunas compaas (por ejemplo, para generar una lista de compaas afectadas por la regulacin, con los telfonos de contacto). Sera muy ineficiente mantener en una estructura de datos la informacin de todas las compaas, cuando en realidad slo necesitaremos la informacin de unas pocas de ellas. Para estos casos, lo ideal es usar una base de datos y un sistema de gestin de bases de datos. Una base de datos no es ms que un fichero organizado de forma especial (no es un fichero de texto) y el sistema de gestin es una aplicacin que realiza de forma eficiente consultas y modificaciones de la informacin que hay en la base de datos. En nuestro proyecto, usaremos una base de datos con las compaas areas de todo el mundo. Al inicio de la simulacin el programa se conectar a la base de datos (no se cargarn todos los datos en una estructura, como ocurre con la lista de planes de vuelo). Durante la simulacin, cuando sea necesario consultar los datos de alguna compaa area se realizar la consulta correspondiente a la base de datos, que se resolver de forma eficiente gracias al gestor de bases de datos. Cuando acabe nuestro programa simplemente cerraremos la conexin a la base de datos y listo.
1

En este prctica aprenderemos a utilizar el sistema de gestin de bases de datos Microsoft SQL Compact Edition, que viene incorporado en la instalacin de Visual C# Express Edition. La prctica se organiza entorno a una coleccin de videos que explican cmo usar ese sistema de gestin de bases de datos desde nuestros programas. En esta gua se explica brevemente todo lo que hay que saber para poder interpretar adecuadamente la informacin de los vdeos. A lo largo de la gua se proponen ejercicios que debers ir haciendo a medida que avanzas.

2. Las tablas de una base de datos y el lenguaje para hacer operaciones Conceptualmente, una base de datos no es ms que una coleccin de tablas. Cada una de las tablas representa una entidad. Por ejemplo, nuestra base de datos va a tener una tabla para representar la entidad lnea area. Podramos tener ms tablas para representar entidades como modelo de aeronave (con informacin sobre las caractersticas tcnicas de todos los modelos de aeronave del mundo) o la entidad aerdromo (con informacin sobre las caractersticas de todos los aerdromos). Una tabla tiene una serie de finas. Cada fila corresponde a un registro de la base de datos. En el caso de la tabla de lneas areas cada fila de la tabla contiene la informacin de una lnea area. Las columnas de la tabla corresponden a las diversas informaciones que queremos tener registradas para cada registro. En nuestro ejemplo, para cada lnea area queremos tener su nombre, su telfono y el nmero de aeronaves que tiene la lnea area. La siguiente imagen muestra el aspecto que puede tener la tabla de lneas areas, con informacin de tres lneas areas.

Para hacer operaciones con las tablas de una base de datos (consultas y modificaciones) se usa un lenguaje estndar que se denomina SQL (Structured Query Language). La consulta ms bsica que se puede hacer en SQL es:
SELECT * FROM LineasAereas

Con esta consulta estamos pidiendo que seleccione todas las columnas (*) de todos los registros de la tabla que se llama LineasAereas. El resultado de esta
2

consulta es una tabla con toda la informacin de la base de datos, es decir, una tabla como la de la imagen anterior. A continuacin se muestran algunas consultas con la tabla que se obtiene como resultado (asumiendo que la tabla LineasAereas contiene la informacin que se muestra en la imagen anterior).
SELECT Nombre FROM LineasAereas

SELECT Telefono FROM LineasAereas WHERE (Nombre = 'Iberia') SELECT Nombre, Telefono FROM LineasAereas WHERE (NumeroAeronaves > 50) AND (NumeroAeronaves < 100)

Adems de consultas, tambin pueden hacerse operaciones de modificacin de registros en la base de datos. Por ejemplo, la operacin para insertar un nuevo registro en la tabla sera:
INSERT INTO LineasAereas VALUES('AirNostrum', '913456723', 14)

La operacin para incrementar el nmero de aeronaves de Iberia sera:


UPDATE SET WHERE LineasAereas NumeroAeronaves = NumeroAeronaves + 1 (Nombre = 'AirNostrum')

Ya puedes ver el primer video de la coleccin, que muestra cmo crear una base de datos y la tabla correspondiente usando el asistente de bases de datos, y cmo realizar operaciones en el lenguaje SQL, tambin desde el asistente. Reproduce en tu ordenador las operaciones que te muestre el video y comprueba que todo funciona correctamente. Parte I: Crear la base de datos y hacer consultas desde el asistente http://youtu.be/btUlvdf9eZ0 Como ejercicio complementario, aade a la base de datos una nueva tabla para registrar modelos de aeronave. Decide tu mismo qu informacin quieres registrar de cada modelo (dos o tres datos), define las columnas de la tabla, aade algunos registros y prctica con algunas consultas. Esta tabla muestra ms tipos de operaciones en SQL que te ayudarn a tener una visin ms amplia de lo que se puede hacer. Los ejemplos se refieren a
3

una base de datos que tiene una tabla de clientes y para cada cliente tenemos su DNI, su nombre y su edad
SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT count(*) FROM clientes; * FROM clientes WHERE edad>18 ORDER BY edad ASC; * FROM clientes WHERE edad>18 ORDER BY edad DESC; * FROM clientes WHERE edad>18 AND edad <30; * FROM clientes WHERE DNI=1111111111H; * FROM clientes WHERE nombre LIKE j%; * FROM clients WHERE DNI LIKE %H; max(edad) FROM clientes;

INSERT UPDATE UPDATE DELETE DELETE

INTO clientes VALUES (22222222T, enric,25); clientes SET nombre=pep WHERE DNI=22222222T; clientes SET edad=edad+1 WHERE DNI=22222222T; FROM clientes WHERE DNI=22222222T and edad<18; FROM clientes WHERE DNI=22222222T;

Intenta adaptar algunas de estas consultas y modificaciones al caso de tu base de datos y tus tablas. 3. Consultas y modificaciones de bases de datos desde nuestros programas en C# En el video anterior has visto cmo crear una base de datos con sus tablas y hacer operaciones con ellas usando el asistente de bases de datos. Pero lo que nos interesa realmente es realizar operaciones con bases de datos desde nuestros programas en C#. Los siguientes videos muestran cmo conectarse desde nuestro programa a una base de datos, realizar consultas y modificaciones. Es importante que veas cmo el programa debe recorrer la tabla resultante de una consulta para extraer de ella la informacin y mostrarla al usuario. Tambin es importante que veas la diferencia entre hacer una consulta (que da como resultado una tabla con los resultados de la consulta) y hacer una operacin de modificacin de la base de datos (que no da como resultado ninguna tabla, sino un nmero entero que indica cuntas filas de la tabla han sido afectadas por la modificacin). Parte II: Conectarse a la base de datos http://youtu.be/7NvRSClokfI Parte III: Consultas a la base de datos http://youtu.be/1OUrNcq9n0A Parte IV: Ms consultas http://youtu.be/hH9_aIb_hfM
4

Parte V: Modificaciones de la base de datos http://youtu.be/xF8Xtj4d-qY Reproduce en tu ordenador las operaciones que muestran estos vdeos y verifica que funcionan correctamente. Despus, aade operaciones para realizar consultas y modificaciones de la tabla de modelos de aeronave (las consultas y modificaciones que te apetezcan). 4. Copiar la base de datos de un proyecto a otro La base de datos es un fichero que est en la carpeta de nuestro proyecto (junto con los ficheros de cdigo o los ficheros de texto con datos). El siguiente video de la coleccin explica un problema que puede aparecer con los ficheros de la base de datos y que afecta a la integridad de la informacin que hay en la base de datos. Adems de explicar cmo se resuelve este problema, el video muestra cmo debes hacer para pasar la base de datos a tus compaeros de forma que puedan incorporarla a su proyecto. Esto ser necesario porque si trabajis juntos en el proyecto tendris que usar todos la misma base de datos y si alguien del equipo modifica esa base de datos debe pasrsela al resto. Parte VI: El problema con los ficheros de la base de datos y cmo pasarle la base de datos a los compaeros. http://youtu.be/5eU6DHZZZvY Comprueba que no tienes problema para pasar tu base de datos de un proyecto a otro nuevo. 5. Reorganizar el cdigo El ltimo video de la coleccin muestra cmo reorganizar el cdigo de forma que cada una de las operaciones que quieres hacer con la base de datos est encapsulada en una funcin o un procedimiento. El cdigo queda as mucho ms claro. Parte VII: Reorganizar el cdigo http://youtu.be/-IxB6ExLTgk Completa el cdigo con procedimientos y funciones para hacer las operaciones que te interesa con la tabla de modelos de aeronave. En Atenea encontrars el cdigo correspondiente a esta ltima versin de nuestro programa.

6. Ms sobre bases de datos En esta prctica has aprendido a trabajar con bases de datos que tienen una o varias entidades (tablas). Esas entidades no tienen relacin entre s y se trabaja de forma independiente con ellas. Normalmente, las entidades de una base de datos tienen relacin entre si. Por ejemplo, la tabla de lneas areas puede estar relacionada con la tabla de modelos de aeronave porque una lnea area puede tener varias aeronaves y cada una de ellas es de un modelo determinado. Cuando las tablas estn relacionadas entonces es posible realizar en SQL consultas ms complejas como por ejemplo: Dime las caractersticas tcnicas de todas las aeronaves que tiene una determinada lnea area Dime el nombre y el telfono de todas las lneas areas que tienen al menos 3 aeronaves con capacidad para ms de 150 pasajeros En este curso no vamos a estudiar cmo hacer bases de datos con entidades relacionadas entre si, ni como hacer esas consultas ms complejas. Pero si te interesa el tema, en la siguiente pgina web encontrars un tutorial muy bueno que te permitir aprender mucho ms: http://www.w3schools.com/sql/default.asp 7. Ejercicio Implement a data base with two entities: user and product. The attributes of a user are: name and password. The attributes of a product are: name, price and number of units of this product available in the store. Write a C# program (in console mode) that presents to the user a menu with three options: Subscribe: The program will ask the user for name and password and will insert a new record in the database. Unsubscribe: The program will ask the user for name and password and will access the data base to check if the password is correct. If so, the program will delete the user from the data base. On the contrary, the program rejects the chosen option. Access to the system: The program will ask the user for name and password and will access the data base to check if the password is correct. If so, the program will present the user a second group of options. On the contrary, the program rejects the chosen option.

The second group of options to be presented to the user if he gains access to the system is: List all products in the data base. List information of one product whose name is introduced from console. Insert a new product. Delete the product whose name is introduced from console Calculate the total value of products in the store (the sum of units per prices). List product that satisfy two conditions: o are more expensive than a given price (to be read from console) o the number of units of the product in store are less that another quantity also read from console.

Potrebbero piacerti anche