La primera base de datos
De Gleducar, http://www.gleducar.org.ar
|
Este artículo está incluido en el CD educativo Actividades con Software Libre, realizado y publicado por Gleducar en el año 2004.
|
Contenido |
Fundamentacion:
Los alumnos de EGB3 y en especial, de Polimodal, deben conocer esta increíble herramienta que les permitirá realizar trabajos con gran cantidad de datos. Es así que el uso de Bases de Datos ayuda notablemente en la producción y conceptualización de los alumnos en los años superiores del ciclo Polimodal.
Niveles educativos:
EGB3, Polimodal
�?rea curricular específica:
Informática o TIC
�?reas curriculares vinculadas:
Ciencias naturales o sociales, según el ejemplo que quiera desarrollar interdisciplinariamente el docente de informática.
Expectativas de logro:
- Que el alumno conozca qué son las bases de datos y se familiarise con su uso.
- Que el alumno aprenda a construir bases de datos relacionales de estructura cliente-servidor.
- Que el alumno analice las diferencias (ventajas y desventajas) con respecto a otros programas de bases de datos.
Contenidos conceptuales:
- Concepto de base de datos.
- Estructura de una base de datos. Tabla, campo, registro. Campo clave. Clave primaria. Tipos de campo.
- Bases de datos relacionales de estructura cliente-servidor. "Localhost"
- Diferencias (ventajas y desventajas) con respecto a otros programas de bases de datos.
Contenidos procedimentales:
- Monitor MySQL - operación
- Creación de una base de datos.
- Operación básica del DBDesigner.
Contenidos actitudinales:
Actitud positiva hacia el hecho de seguir un instructivo paso a paso, sabiendo que los resultados sólo se verán al final del camino.
Pasos de la didáctica:
Crear la base de datos con el monitor MySQL
Para comenzar, debemos crear una base de datos vacía en nuestro servidor local de MySQL.
Para ello debemos usar el monitor que es una interfaz de línea de comandos. ¡A no asustarse! los pasos son simples y los enumeramos aquí.
- Iniciar el monitor de MySQL:
- Escribir la clave del superusuario (llamado root):
- Por lo general se deja en blanco, cosa no recomendable si se trabaja en ambientes de producción.De modo que presionamos: <Enter>
- Por fin damos la orden que creará la base de datos:
create database primera;<--¡No olvidar el punto y coma al final!
- Salimos del monitor con:
quit;- ¡Listo! Hemos creado la base de datos de nombre: primera
Vemos en el monitor MySQL, la siguiente pantalla:
Conectar a la base de datos primera
Ahora seleccionamos el ícono en el escritorio para iniciar el DBDesigner. El mismo que nos quedó luego de la instalación.
Seleccionándolo, tenemos una pantalla de diseño en blanco con una sugerencia o "Tip" que podemos desactivar picando "Do not show tips on startup". Continuamos picando sobre la cruz azul de "Close Tip Window". La pantalla de inicio la vemos a continuación:
Como vemos, el DBDesigner nos muestra un "escritorio" donde diseñaremos las tablas de las bases de datos.
Primero nos conectaremos a nuestra base de datos local MySQL desde el menú:
Database -> Connect Database
Tal como vemos en la siguiente pantalla:
Para ello debemos tener funcionando el servidor de MySQL en nuestra máquina y haber creado una Base de Datos en el servidor.
El DBDesigner no crea las bases de datos dentro del servidor MySQL. Solo crea elementos dentro de ella.
La base de datos luego se llenará con las tablas que diseñemos con el DBDesigner.
Nos conectamos entonces luego de seleccionar la opción anterior:
Buscamos el servidor que en este caso es: ¡nuestra máquina! Tiene un nombre especial: localhost que significa "anfitrión local" en inglés.
Picamos sobre el "+" de localhost vemos las bases de datos definidas en nuestro servidor tal como vemos a continuación y seleccionamos nuestra base de datos: primera
Llenamos los campos "Conection", "Username" y "Password" para crear una conexión a la base de datos primera y aceptamos presionando el tilde color azul Si queremos cancelar, presionamos la cruz roja.
Crear tablas dentro de la base de datos
Las tablas organizan la información de manera de ser accesible con facilidad para consulta posteriores.
Para crear las bases de datos debemos tener un plan.
Supongamos que debemos guardar los datos de los clientes de una empresa y las llamadas que ellos hacen por diversos motivos, por ejemplo para pedir soporte técnico.
Es importante poder distinguir cada cliente, para ello debemos darle un número o código. Ese código lo ubicará sin dudas aunque tengan nombres, apellidos o domicilios similares. Como código algunos utilizan un dato inherente al dato, en este caso el DNI o DU (Documento de Identidad) pero esto trae problemas. Supongamos por ejemplo que el DNI fue mal ingresado. Como es clave (así se dice cuando es única y sirve para buscar) no podremos hacerlo con facilidad.
Para ello usamos un número único llamado ID (IDentificador) para cada cliente ajeno a los datos inherentes a la persona.
Nuestra base de datos tendría entonces lo siguientes datos:
- Id del cliente
- Documento
- Apellido
- Nombres
- Dirección
- Localidad
- Provincia
- Fecha de Ingreso
- Saldo cuenta corriente
Comencemos entonces a crear nuestra tabla clientes en nuestra base de datos primera.
La forma mas sencilla es ir a la parte inferior del escritorio donde dice "All tables" y seleccionar el icono que tiene la hoja con un signo "+" color naranja claro.
Vemos aqui el escritorio conectado a "primera" en el "localhost" listos para empezar a trabajar:
Vemos en la ultima linea de estado que nos dice que estamos como root en la base de datos "primera" abajo a la derecha en pequeño.
Para verificar la conexión podemos hacer lo siguiente:
Y vemos que estamos efectivamente conectados a primera:
- ¡Atención!
- Debemos seleccionar la conexión "primera" y seleccionarla para conectarnos de nuevo con la base de datos en MySQL.
Crear la tabla clientes
con los siguientes campos o columnas:
- Id del cliente
- Documento
- Apellido
- Nombres
- Dirección
- Localidad
- Provincia
- Fecha de Ingreso
- Saldo cuenta corriente
Vamos entonces adonde habíamos descripto con anterioridad tal como vemos a continuación:
Apenas seleccionamos este ícono aparece la pantalla de diseño de la tabla con valores por omisión como el nombre de la tabla: "Tabla_01" y todo lo demás en blanco:
Cambiamos entonces el nombre de la tabla a clientes:
Ahora seleccionamos el primer renglón y automáticamente aparece el campo "idcliente" con ciertas características:
- Tipo INTEGER
- No puede ser NIL (NN)
- Autoincremental (AI)
- Sin Signo (UNSIGNED)
Este campo es un campo clave que MySQL administra automáticamente al agregarse un nuevo cliente. Se la denomina clave primaria, la misma es única para cada cliente y se mantiene aunque cambien todos los demás datos.
El campo o columna de la base de datos queda entonces así:
Ahora vamos agregando los otros campos:
- Documento
- seleccionamos el tipo de campo
VARCHARde 11 posiciones para este campo. En MySQL lo que definimos como longitud del campo es cómo serán mostrados los campos y no su longitud máxima que en el caso delVARCHARes de 255 caracteres. Definimos 11 caracteres porque el CUIT tiene dos números mas el número de documento de ocho posiciones y el dígito verificador de un caracter. - ¿Porqué no usar simplemente un entero (
INTEGER) como campo? Porque este campo o columna no va a intervenir en cálculo numérico alguno y los campos de caracter son más sencillos de manipular. Para decirle a MySQL que el campo tiene 11 caracteres, escribimos entre paréntesis el valor 11:
- Apellido
- seleccionamos el tipo
VARCHARnuevamente de longitud 30
- Nombres
- también
VARCHARde longitud 30
El tipo VARCHAR permite ahorrar espacio en disco a no usar como sería el tipo CHAR con espacios en blanco lo no usado por datos dentro del registro.
- Direccion
- Como lo anterior de longitud 45 (no separamos la calle de l número de la puerta)
- Localidad
- Aquí podemos usar el poder de la base de datos relacional y poner en lugar del nombre de una localidad que deberíamos repetir una y otra vez en cada registro con la posibilidad de equivocarnos en como se escribe cada vez y luego dificultar las búsquedas; usar el ID de una tabla a crear luego de localidades, quedaría entonces:
- Provincia
- Hacemos lo mismo que para la localidad
- Fecha de ingreso
- MySQL tiene una diversa cantidad de tipos de fecha, nosotros usaremos aquí el tipo DATE que nos permite hacer cálculos referidos a la fecha con facilidad y sin mayores problemas.
- Saldo cuenta corriente
- Usamos el campo tipo
FLOAToDECIMALque son equivalentes y le damos una longitud de 8 para la mantisa y dos decimales porque es un número referido a un saldo de cuenta corriente.
Nuestra tabla queda entonces:
Los nombres de los campos deben cumplir con ciertas reglas: deben empezar con letras, no admiten espacios en ellos y algunos otros detalles (referirse por favor al manual de MySQL)
Una vez que picamos en el tilde color gris que significa aceptar nuestro trabajo. Ahora salvamos nuestro modelo:
File->Save as...
Aparece entonces el cuadro de diálogo:
Ponemos "primera" como nombre de nuestro modelo y aceptamos.
¡Ya guardamos nuestro trabajo!
Diseñar la tabla localidades
Para ello vamos a usar otro método que el que usamos para los clientes; vamos al lado de la tabla clientes y pulsamos <Ctrl-T>, es decir las teclas Ctrl y T simultáneamente, aparece entonces una "tabla vacía" tal como vemos abajo:
Picamos dentro del cuadrito y reaparece la caja de diseño de la tabla que usamos para construir la de clientes.
Nuestra tabla de localidades es simple, tiene tres campos:
- idlocalidad
- Nombre
- Código Postal
- Idlocalidad
- es el campo clave con que relacionaremos esta tabla con la de clientes, como siempre es
INTEGER AUTOINCREMENTAL NOT NULL.
- Nombre
- es un campo
VARCHARde 35 posiciones.
- Código Postal
- es un campo
VARCHARde 8 posiciones
Nuestra tabla queda entonces:
Para ver la potencia del DBDesigner vamos a usar su modo interno de armar relaciones con la tabla provincias.
La creamos con las columnas:
- Idprovincia Integer Not Null Autonumeric
- Nombre Varchar de 35
- Abreviatura Varchar de 15
Ahora le agregaremos a nuestra tabla de clientes una relación 1:1 (uno a uno) de la tabla de clientes a la de provincias. Esto es porque a cada cliente le corresponde una sola provinicia, para eso seleccionamos el icono que esta en la regla del costado:
- Seleccionamos la tabla de provincias y luego la de clientes y automáticamente, DBDesigner nos crea una relación y un campo más a la tabla de clientes:
Grabamos nuestro modelo nuevamente antes de nuestro paso final.
Pasarlo a MySQL
Para eso hacemos File->Save ahora vamos a crear las tablas e índices en el motor de base de datos relacionales.
Para ello debemos usar la opción: File->Export->SQL Script... tal como lo vemos a continuación:
Tenemos dos opciones: Pasar el script al portapapeles: Copy script to clipboard o grabarlo a un archivo Save script to file, seleccionamos en este caso pasarlo al portapapeles.
Seguimos los pasos siguientes para crear las tablas en nuestro motor de MySQL:
- Seleccionamos Copy script to clipboard
- Ahora abrimos el monitor de MySQL nuevamente: #:Inicio->Programas->MySQL->MySQL Server 4.1->MySQL Command Line Client
Nos aparece nuevamente nuestra pantalla donde escribimos la palabra clave y luego en la petición seleccionamos la base de datos primera con la orden: use primera; seguido de <Enter> tal como vemos a continuación:
Ahora "pegamos" el script SQL mediante el menú que aparece cuando picamos en el pequeño icono que está en el extremo superior derecho de la ventana; allí seleccionamos: Editar->Pegar y veremos lo siguiente:
Se ejecutó en el monitor de MySQL las siguientes líneas:
CREATE TABLE clientes ( idclientes INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, [[Gleduwiki_FKidprovinciaCol|FKidprovinciaCol]] INTEGER UNSIGNED NOT NULL, documento VARCHAR(11) NULL, apellido VARCHAR(30) NULL, apellido_2 VARCHAR(30) NULL, direccion VARCHAR(45) NULL, idlocalidad INTEGER UNSIGNED NULL, ingreso DATE NULL, saldo DECIMAL(8,2) NULL, PRIMARY KEY(idclientes) ); CREATE TABLE localidades ( idlocalidades INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nombre VARCHAR(35) NULL, codpostal VARCHAR(8) NULL, PRIMARY KEY(idlocalidades) ); CREATE TABLE provincia ( idprovincia INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nombre VARCHAR(35) NULL, abreviatura VARCHAR(15)) NULL, PRIMARY KEY(idprovincia) );
¡Ahora tenemos en nuestra base de datos MySQL las tablas creadas y listas para usarse!
Finalmente el ingreso de datos
Podemos ingresar datos mediante DBDesigner picando con el botón derecho del mouse sobre la tabla clientes por ejemplo y seleccionamos: Edit Table Data del menú contextual, con los que no aparece:
Seleccionamos localidades desde la lista de selección de las tablas y luego agregamos un registro:
Con esta poderosa herramienta podemos usar el SQL en forma directa, para ello basta pasar del modo Diseño al modo SQL desde el menú: Display->Query Mode
Aquí vemos un ejemplo de como se puede usar:
¿Quiénes participan en esta actividad?
- Gustavo Courault
Recursos:
Volver a CDEducativo






















