Esta página es editable

La primera base de datos

De Gleducar, http://www.gleducar.org.ar

Esta página fue revisada y cumple los estándares de Gleduwiki.

Este artículo está incluido en el CD educativo Actividades con Software Libre, realizado y publicado por Gleducar en el año 2004.

Puedes acceder a mas actividades y recursos del mencionado CD en este enlace.

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í.

  1. Iniciar el monitor de MySQL:
    Menú de Inicio -> Programas -> MySQL -> MySQL Server 4.1 -> MySQL 4.1 Command Line Client
  2. 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>
  3. Por fin damos la orden que creará la base de datos:
    create database primera; <--¡No olvidar el punto y coma al final!
  4. Salimos del monitor con:
    quit;
    ¡Listo! Hemos creado la base de datos de nombre: primera

Vemos en el monitor MySQL, la siguiente pantalla:

Imagen:Gleduwiki PrimeraBD monitormysql.png

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:

Imagen:Gleduwiki PrimeraBD inicioDBDesigner.png

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:

Imagen:Gleduwiki PrimeraBD conectarmysql.png

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:

Imagen:Gleduwiki PrimeraBD conectarmysql2.png

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

Imagen:Gleduwiki PrimeraBD seleccionabaseprimera.png

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:

Imagen:Gleduwiki PrimeraBD escritorioconectado.png

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:

Imagen:Gleduwiki PrimeraBD conectarmysql.png

Y vemos que estamos efectivamente conectados a primera:

Imagen:Gleduwiki PrimeraBD verificarconexion.png

¡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:

Imagen:Gleduwiki PrimeraBD regiontablas.png

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:

Imagen:Gleduwiki PrimeraBD ventanadisenotablas.png

Cambiamos entonces el nombre de la tabla a clientes:

Imagen:Gleduwiki PrimeraBD ventanadisenotablas2.png

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í:

Imagen:Gleduwiki PrimeraBD ventanadisenotablas3.png

Ahora vamos agregando los otros campos:

Documento 
seleccionamos el tipo de campo VARCHAR de 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 del VARCHAR es 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:

Imagen:Gleduwiki PrimeraBD documento.png

Apellido 
seleccionamos el tipo VARCHAR nuevamente de longitud 30
Nombres 
también VARCHAR de 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:

Imagen:Gleduwiki PrimeraBD hastaidlocalidad.png

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 FLOAT o DECIMAL que 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:

Imagen:Gleduwiki PrimeraBD finclientes.png

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:

Imagen:Gleduwiki PrimeraBD grabarcomo.png

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:

Imagen:Gleduwiki PrimeraBD localidad1.png

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 VARCHAR de 35 posiciones.
Código Postal 
es un campo VARCHAR de 8 posiciones

Nuestra tabla queda entonces:

Imagen:Gleduwiki PrimeraBD localidad2.png

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:

Imagen:Gleduwiki PrimeraBD iconorelacion1a1.png

  • 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:

Imagen:Gleduwiki PrimeraBD relacionclienteprovincia.png

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:

  1. Seleccionamos Copy script to clipboard
  2. 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:

Imagen:Gleduwiki PrimeraBD exportarmodelo1.png

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:

Imagen:Gleduwiki PrimeraBD exportaciontablasfin.png

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:

Imagen:Gleduwiki PrimeraBD editotablaclientes.png

Seleccionamos localidades desde la lista de selección de las tablas y luego agregamos un registro:

Imagen:Gleduwiki PrimeraBD editotablalocalidades.png

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:

Imagen:Gleduwiki PrimeraBD modosqlejemplo.png

¿Quiénes participan en esta actividad?

  • Gustavo Courault

Recursos:

MySQL + DBDesigner

Volver a CDEducativo

Copyright © 2002-2010 Asociación Civil Gleducar
Todo los contenidos de este sitio se encuentran bajo una licencia libre del tipo Copyleft
Este sitio ha sido desarrollado usando Software Libre y respeta los estándares web.
Además ha sido diseñado para verse correctamente usando cualquier navegador, en cualquier resolución de pantalla.