Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

TALLER 05 - BASES DE DATOS AVANZADAS

YEIKOB STEVEN BERMDEZ RODRGUEZ


ERIKA FERNANDA FRANCO SASTRE

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS


FACULTAD TECNOLGICA
BASES DE DATOS AVANZADAS
BOGOT
2016
TALLER 05 - BASES DE DATOS AVANZADAS

YEIKOB STEVEN BERMDEZ RODRGUEZ


ERIKA FERNANDA FRANCO SASTRE

Carga masiva de datos

Profesora: Ing. Claudia Liliana Hernndez

UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS


FACULTAD TECNOLGICA
BASES DE DATOS AVANZADAS
BOGOT
2016
INTRODUCCIN

En algunas empresas, almacenan informacin a travs de hojas de clculo Excel


generalmente, por su facilidad y flexibilidad. Sin embargo, tal vez no cuentan con
personal idneo para cargar esta informacin a la base de datos de la empresa, y
lo hacen insertando cada registro, uno por uno, hasta culminar la tediosa tarea.

Imaginemos ahora que pasara si fuera una organizacin muy grande, donde se
tengan registros de miles o millones de usuarios, como el caso de la Registrara
Nacional o el DANE. Sera una tarea absurda la de ingresar registro por registro,
sabiendo que cada da la cantidad de informacin en la organizacin crece
paulatinamente.

Es por eso que existen tcnicas de carga masiva de datos, es decir, archivos que
contienen miles o incluso millones de registros que necesitan ser cargados a la base
de datos de una organizacin, solamente usando una sola sentencia SQL. Sin
embargo, se debe tener en claro, como est estructurada la base de datos, sus
tablas y los datos, para aplicar esta funcin en las bases de datos de manera
exitosa.
TABLA DE CONTENIDO

1. PREPARACIN DE LA BASE DE DATOS ........................................................................ 5


1.1. Crear la Base de Datos ................................................................................................. 5
1.2. Crear la estructura de la bases de datos ................................................................. 5
2. CARGA MASIVA DE DATOS USANDO POSTGRESQL ................................................. 6
2.1. Requisitos ........................................................................................................................ 6
2.2. Formato del archivo de extensin .CSV ................................................................... 6
2.3. Sentencia para PostgreSQL ........................................................................................ 6
2.4. Probando la sentencia en PostgreSQL .................................................................... 7
3. CARGA MASIVA DE DATOS USANDO MYSQL ............................................................ 12
3.1. Sentencia para carga de datos masivos en MySQL ........................................... 12
3.2. Probando la sentencia en MySQL............................................................................ 12
4. CARGA MASIVA DE DATOS EN MYSQL POR CONSOLA ......................................... 17
5. CARGA MASIVA DE DATOS EN MYSQL POR CONSOLA ......................................... 23
6. CONCLUSIONES................................................................................................................... 29
7. REFERENCIAS ...................................................................................................................... 30
1. PREPARACIN DE LA BASE DE DATOS
Procedimiento para cargar datos de manera masiva en el motor de bases de datos:

1.1. Crear la Base de Datos


Abrimos el motor de bases de datos y nos autenticamos.
Abrimos la consola del motor y creamos la base de datos ejecutando la
siguiente sentencia:
CREATE DATABASE examenes_finales;
Seleccionamos la base de datos en la que vamos a trabajar con la siguiente
sentencia:
USE examenes_finales;

1.2. Crear la estructura de la bases de datos


Mediante el lenguaje de definicin de datos DDL, el cual ya est definido,
ejecutamos las sentencias contenidas en el archivo DDL.txt (Adjunto en la carpeta
de este taller) en el motor de bases de datos.
Hasta este momento, la base de datos esta lista para insertar datos.

2. CARGA MASIVA DE DATOS USANDO POSTGRESQL

2.1. Requisitos

El tipo de archivo admitido para cargar los datos masivamente puede ser del
siguiente tipo:
.txt
.CSV
.xml
.xmls

Para efectos prcticos de este taller, vamos a cargar los datos masivamente
mediante un archivo de extensin .CSV

2.2. Formato del archivo de extensin .CSV

El formato para este tipo de archivo es como se plantea a continuacin:

Para delimitar los campos para cada registro, se usa punto y coma ;.
Para delimitar los registros, se usa un salto de lnea, es decir, que queda un
registro debajo de otro.

Ejemplo: vamos a dejar los datos de la tabla, en el formato que se usa en .CSV.

Id_persona nombre_persona telefono_persona


1001 CLAUDIA HERNANDEZ 3111234567
1002 PEPITO PEREZ 3139876543

1001;CLAUDIA HERNANDEZ; 3111234567


1002;PEPITO PEREZ; 3139876543

2.3. Sentencia para PostgreSQL

Dependiendo del motor de bases de datos, la sentencia cambia parcial o totalmente,


ya que unos motores tienen funciones distintas a otros. Para el motor de bases de
datos PostgreSQL, la sentencia de carga masiva de datos es:

COPY tabla FROM ruta/del/archivo.extensin USING DELIMITERS ;


Anlisis de la sentencia: Se usa la palabra reservada COPY seguida del nombre
de la tabla en la cual vamos a cargar los datos, luego colocamos la palabra
reservada FROM para decir desde donde se va hacer la copia, la cual, va entre
comillas simples especificando la ubicacin del archivo, indicando tambin su
extensin, seguidamente se usa la palabra reservada USING DELIMITERS con lo
cual indicamos despus en comillas simples, el carcter con el cual vamos a
delimitar cada campo de un registro.

2.4. Probando la sentencia en PostgreSQL

Teniendo nuestra base de datos creada, entendiendo como es el formato de los


datos a cargar masivamente, y conociendo cmo funciona la sentencia de carga
masiva de datos en PostgreSQL, ejecutamos la sentencia para la carga masiva de
informacin a la base de datos para la tabla profesor.

Para efectos prcticos, vamos a guardar el archivo que contiene los datos masivos:
profesor.CSV en la ruta C:/, es decir, en la raz del disco local C.
Ahora abrimos la consola y ejecutamos la sentencia como sigue a continuacin:
COPY profesor FROM C:/profesor.CSV USING DELIMITERS ;

SELECT * FROM profesor


COPY asignatura FROM C:/asignatura.CSV USING DELIMITERS ;

SELECT * FROM asignatura


COPY salon FROM 'C:/salon.CSV' USING DELIMITERS ';'

SELECT * FROM salon


COPY grupo FROM 'C:/grupo.CSV' USING DELIMITERS ';'

SELECT * FROM grupo


3. CARGA MASIVA DE DATOS USANDO MYSQL
Para MySQL, los requisitos en cuanto al tipo de archivo y al formato de estos es
similar a PostgreSQL, lo nico que cambia es la sentencia, que en MySQL, es ms
compleja como ya veremos.

3.1. Sentencia para carga de datos masivos en MySQL

Para el motor de bases de datos MySQL, la sentencia de carga masiva de datos es:

LOAD DATA LOCAL INFILE ruta/del/archivo.extensin


INTO TABLE tabla
FIELDS TERMINATED BY ;
LINES TERMINATED BY \n
(nombre_col_1, nombre_col_2,,nombre_col_n);

Anlisis de la sentencia
LOAD DATA LOCAL INFILE: Indica que se van a cargar datos desde un archivo
local, es decir, alojado en la misma mquina. Luego entre comillas simples se
escribe la ubicacin del archivo con su respectiva extensin.

INTO TABLE: Indica a que tabla se cargaran los datos masivos. Despus se escribe
el nombre de la tabla.
FIELDS TERMINATED BY: Indica cual va a ser el delimitador de los campos de un
registro, se escribe luego entre comillas simples el carcter delimitador.
LINES TERMINATED BY: Indica cual va a ser el delimitador para los registros, este
delimitador se escribe entre comillas simples y se recomienda usar el salto de lnea
\n, como en programacin.
Finalmente entre parntesis se escribe el nombre de los campos en el orden como
se quiere que se guarden o como se tengan los datos. Se separa con una coma
estos nombres de columnas.

3.2. Probando la sentencia en MySQL

Teniendo nuestra base de datos ya creada, entendiendo como es el formato de los


datos a cargar masivamente, y conociendo cmo funciona la sentencia de carga
masiva de datos para MySQL, ejecutamos la sentencia para la carga masiva de
informacin a la base de datos para la tabla profesor. Podemos usar el mismo
archivo profesor.CSV, almacenado en C:/.
Ejecutamos ahora la siguiente sentencia en MySQL:

LOAD DATA LOCAL INFILE 'C:/profesor.CSV'


INTO TABLE profesor
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(id_prof,nombre_prof);

Probamos el xito de la carga masiva de datos haciendo una proyeccin a la tabla


profesor, con SELECT * FROM profesor;
LOAD DATA LOCAL INFILE 'C:/asignatura.CSV'
INTO TABLE asignatura
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(codigo_a,nombre_a);

SELECT * FROM asignatura;


LOAD DATA LOCAL INFILE 'C:/salon.CSV'
INTO TABLE salon
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(numero_s,edificio_s,capacidad_s);

SELECT * FROM salon;


LOAD DATA LOCAL INFILE 'C:/grupo.CSV'
INTO TABLE grupo
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(codigo_g,codigo_a_g,fecha_examen_g,hora_examen_g,num_matric_g,id_pr
of,numero_s,edificio_s);

SELECT * FROM grupo;


4. CARGA MASIVA DE DATOS EN MYSQL POR
CONSOLA

Primero abrimos el CMD de Windows, y all vamos a la carpeta de MySQL asi:

cd / C:\Program Files\MySQL\MySQL Workbench 6.3 CE

Luego, nos autenticamos con el siguiente comando:

mysql u root p

Despus del comando anterior, ingresamos la contrasea.

Ahora, lo que se hace despus, es crear la base de datos y usarla:

CREATE DATABASE examenes;

USE examenes;
Luego, creamos la estructura de la base de datos, a partir del archivo DDL.txt
(adjunto en la carpeta de este taller), podemos copiar y pegar cada sentencia.

El procedimiento para cargar los datos masivamente a una tabla de la base de


datos, es el mismo, como el numeral (3) de este taller, carga masiva de datos
usando MySQL, veamos:

LOAD DATA LOCAL INFILE 'C:/profesor.CSV'


INTO TABLE profesor
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(id_prof,nombre_prof);
Para corroborar que los datos se cargaron exitosamente, hacemos una proyeccin
a la tabla profesor, con SELECT * FROM profesor;

LOAD DATA LOCAL INFILE 'C:/asignatura.CSV'


INTO TABLE asignatura
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(codigo_a,nombre_a);
SELECT * FROM asignatura;

LOAD DATA LOCAL INFILE 'C:/salon.CSV'


INTO TABLE salon
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(numero_s,edificio_s,capacidad_s);
SELECT * FROM salon;

LOAD DATA LOCAL INFILE 'C:/grupo.CSV'


INTO TABLE grupo
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
(codigo_g,codigo_a_g,fecha_examen_g,hora_examen_g,num_matric_g,id_pr
of,numero_s,edificio_s);
SELECT * FROM grupo;
5. CARGA MASIVA DE DATOS EN MYSQL POR
CONSOLA
Primero abrimos el Shell de PostgreSQL desde el men:

Luego, nos autenticamos dando enter seguidamente hasta el password, all


ingresamos la contrasea correcta y ya:
Ahora, lo que se hace despus, es crear la base de datos y usarla:

CREATE DATABASE examenes;


\c examenes;

Despues copiamos las sentencias de la estructura de la base de datos a partir del


archive de texto DDL.txt.
Ahora, ejecutamos las sentencias de carga de archivos masivos, al igual que el
numeral (3) de este taller:

COPY profesor FROM C:/profesor.CSV USING DELIMITERS ;;

Rectificamos cada tabla con una proyeccin:

SELECT * FROM profesor;


COPY asignatura FROM C:/asignatura.CSV USING DELIMITERS ;;

SELECT * FROM asignatura;

COPY salon FROM C:/salon.CSV USING DELIMITERS ;;


SELECT * FROM salon;

COPY grupo FROM C:/grupo.CSV USING DELIMITERS ;;


SELECT * FROM grupo;
6. CONCLUSIONES

La carga masiva de archivos en bases de datos, facilita enormemente el trabajo, ya


que permite cargar los datos masivos, contenidos ya sean de un archivo de Excel,
un block de notas u otros archivos soportados para esta tcnica.

Hay que conocer muy bien el motor de bases de datos con el que se est trabajando,
para ver que funciones ofrece para este tipo de caractersticas y de qu forma se
usa, ya que algunos motores son ms estrictos que otros en el tema de la carga
masiva de datos.

Por ltimo, se debe tener cuidado en la forma como est estructurada la base de
datos, mas estrictamente la tabla, y en cmo estn organizados los datos masivos,
almacenados en el archivo, ya que una mala prctica, puede traer desgastes
tcnicos y administrativos, porque se debe modificar o en su defecto, volver a crear
la base de datos desde cero, en el caso de que se carguen incorrectamente los
datos, y esto puede traer consecuencias fatales si se ignora, ya que sera imposible
conseguir una consulta correctamente.
7. REFERENCIAS

ALARCON, Paul. Subir un csv a una base de datos postgres. {En lnea}. 01 de
Julio de 2013. {02 de Abril de 2016}. Disponible en:
http://pag66.blogspot.com.co/2013/07/subir-un-csv-una-base-de-datos-
postgres.html

LARA, Jess. Cargar datos en mySQL con LOAD DATA INFILE. {En lnea}. 03 de
Agosto de 2007. {02 de Abril de 2016}. Disponible en:
https://phenobarbital.wordpress.com/2007/08/03/cargar-datos-en-mysql-con-load-
data-infile/

También podría gustarte