Después de haber creado el diagrama E-R y convertirlo a tablas, ahora nos queda la parte de implementar la base de datos, creando la misma  y haciendo cada una de las tablas, el esquema de base de datos es el siguiente:

Vamos a utilizar el WAMP Server Versión 2.3, ya instalado en el equipo, abrimos una ventana del MS-DOS y nos posicionamos en la ruta:

C:wampbinmysqlmysql5.5.16bin

Una vez ahí arrancamos el servicio:

mysql –u root

El prompt cambia ahora tenemos el prompt de mysql.

Una base de datos almacena sus datos en tablas.

Una tabla es una estructura de datos que organiza los datos en columnas y filas; cada columna es un campo (o atributo) y cada fila, un registro. La intersección de una columna con una fila, contiene un dato específico, un solo valor.

Cada registro contiene un dato por cada columna de la tabla.

Cada campo (columna) debe tener un nombre. El nombre del campo hace referencia a la información que almacenará.

Cada campo (columna) también debe definir el tipo de dato que almacenará.

La instrucción show databases, nos muestra las bases de datos que tenemos en nuestro servidor de mysql:

Creamos la base de datos con la instrucción create database:

create database ventas;

 inmediatamente después de crear la base de datos, volveremos a mostrar las bases de datos que tenemos en el servidor mysql, para ver que ya se encuentra listada la que acabamos de crear.

Una vez creada la base de datos y que nos cercioramos que se creo, vamos a ponerla en uso, con la instrucción use

use ventas

La instrucción use, es una de las pocas instrucciones en mysql que no usa el separador de comandos, es decir, el punto y coma al final de la instrucción.

Ahora vamos a crear las tablas, empezamos por la tabla de  Proveedor, para esto usaremos la instrucción “create table”.

Por defecto mysql crea las tablas con el motor MyISAM, nosotros necesitamos que las tablas sean creadas con el motor innodb, por lo que hay que definirlo al final de la instrucción con la que creamos la tabla, con la instrucción engine:

Para ver la descripción de la tabla que recién hemos creado usamos la instrucción describe:

Ahora creamos la tabla Cliente:

Después de crear la tabla la describimos. Ahora vamos a crear la tabla Telefono_cliente:

El procedimiento para crear la tabla teléfono_cliente varia con respecto a los dos anteriores, ya que esta tiene una llave o clave foránea, el motor innodb da soporte para llaves foráneas, por lo cual es el que hemos elegido para crear las nuestras, en este caso no será la excepción.

El campo de esta tabla que es una llave foránea es el de “clave_cliente” que es la llave de la tabla cliente, lo definimos inicialmente como lo hemos definido anteriormente, cuidando que tenga exactamente el mismo tipo de dato que en la tabla de donde procede, antes de  finalizar la definición de la tabla tenemos que indicar que hay una llave foránea y de que tabla proviene, con la instrucción:

 

FOREIGN KEY (campo_fk) REFERENCES nombre_tabla (nombre_campo)

Por lo que para efectos de nuestra tabla sería:

foreign key(clave_cliente) references cliente(clave_cliente)

Estamos diciendo que en esta tabla el campo llamdo clave_cliente es una llave foránea que hace referencia o que viene de la tabla cliente y corresponde al campo clave_cliente de esa tabla.

Obviamente existe una restricción que hemos cumplido, y que es que la tabla cliente haya sido creada primero. Lo que tenemos que hacer en el orden de crear las tablas es crear primero aquellas que no tengan relación con otras, es decir, que los campos que la forman sean propios, no tengas llaves foráneas de otras tablas.

Ahora creamos la tabla categoría que esta no  tiene campos de otras tablas:

Ahora si podemos crear la tabla producto, ya que esta tiene campos de otras tablas como categoría y proveedor y estas dos ya han sido creadas con anterioridad:

Después creamos la tabla venta, que tiene una llave foránea que es la “clave_cliente” proveniente de la tabla “cliente”

Y finalmente creamos la tabla detalle:

Ahora finalmente mostramos todas las tablas que recién creamos con la instrucción show tables:

Y ya tenemos la base de datos con las tablas del ejercicio Sistema de ventas. Cualquier duda, error de redacción o de procedimiento favor de externarlo con un comentario. Quedando a la espera. SaluLINUX

 

 

 

 

 

 

 

 

Powered By DT Author Box

Written by chris

Crear base de datos y tablas. Ejercicio 2 “Sistema de ventas”.

5 thoughts on “Crear base de datos y tablas. Ejercicio 2 “Sistema de ventas”.

  • Salulinux….

    Buen post, en verdad, bastante interezante, la neta no muy he usado lo que es MySQL y la creacion de base de datos, esto me da una idea un poco mas clara con respecto al tema…

    Por sierto, tengo una duda… Existe una forma de crear tablas que automaticamente se creen con el motor de innodb, para no anexar esa parte al final de cada tabla que se cree…. Esque por ahi escuche que parece que si se puede, creo que esta en lo de la instalacion del MySQL para que toda base de datos con sus respectivas tablas se creen bajo este motor…. pero no estoy seguro de eso…. se puede??…

    Bueno nuevamente un buen post, la neta se la rifa chido… Salulinux prof y hasta la proxima…..

    1. Hola Rodolfo, dicen que es mejor tarde pero seguro… brevemente te explico, a partir de la version 5.5 de MySQL el motor por defecto de las tablas es innodb…!! en versiones anteriores era MyISAM por eso me quede con la costumbre de que al final de cada tabla le establecia el motor haciendo “engine=innodb”, pero si checas la version de tu mysql y es 5.5 o posterior pues ya puedes omitir ese cachito. También si no quieres innodb como motor predeterminado lo puedes editar en el my.cnf si esta en linux o my.ini si estas en Windows, de igual forma puedes convertir las tablas de un motor a otro, todo esto te lo explico a ti y a la comuna en mi más reciente post, tambien anexo como ver la version de mysql y los motores instalados. Espero que te sirva, puesto que es dedicado para ti, porque sigues de cerca el blog y haces buenas preguntas, de antemano te agradezco y prometo escribir otro de un script existente para convertir tablas de un motor a otro de un solo golpe, en Linux funciona, en Windows tratare de ver que onda y poner el articulo. Gracias nuevamente por seguirnos, por gente como tu es que dan ganas de seguir escribiendo. SaluLINUX

    1. Tienes razón con el dicho, es “mas vale tarde que nunca” y el otro es “mas vale lento pero seguro” creo que hice una mezcla de los dos… ya ando como el chapulín colorado!! ya leí tu comentario, que bueno que se disiparon tus dudas al menos de esto, como me gustaría que hubieran más preguntas de la banda que entra, aunque gastara mucho tiempo en contestarlas, no hay problema en eso. Aquí seguimos a la orden y me gustaría mucho que participaras como escritor en este blog, le comentare a mi Jefe el lic. Guss para que tome cartas en el asunto. SaluLINUX

      1. ejeje, si una buena combinacion para crear uno nuevo…

        si la verdad si se despejaron las dudas, esque tenia esa duda por una practica que realizamoo con unos compañeros, pero pues queria saber que hondas con eso y quien mejor que usted para preguntarle… y mas con el post que publicó

        pues en un vago esfuerzo quise darle mas propaganda a el blog, algunos cuantos lo visitaron y comentaron, verdaderamente este espacio deveria ser mas concurrido, pero pues por una extraña razon no lo es. en fin, esperemos que esto suba un poco mas su nivel, porque si vale la pena la lectura de este blog (aun mas de sus post)…

        Con respecto a lo de participar en el blog estaría bien, lo mas curioso sería que poco posteo en el mio, jajaj, y los temas son simplones a comparacion de este nivel, pero si puediese apoyarlo en algo, adelante.

        Que ande de lo mejor y pues como siempre. SaluLinux.

Leave a Reply

Follow

Get every new post delivered to your Inbox

Join other followers:

%d bloggers like this: