Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
C AT EG O R Y: B A S E S D E DATO S
J A N UA RY 3 0 , 2 0 1 2
Introducción
SQLite es un gestor de bases de datos pequeño y simple que se usa ampliamente como
apoyo al software (aplicaciones de escritorio, navegadores web, etc.) y en sistemas
embebidos como los teléfonos móviles (Android por ejemplo).
Procedimiento
Crear la tabla con el campo autonumérico (code en este caso).
);
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 1/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
1|demo1|10.1
2|demo2|20.2
3|demo3|30.3
SELECT last_insert_rowid();
Enlaces
SQLite
http://sqlite.org/
SQLite autoincrement
http://www.sqlite.org/autoinc.html
How do I create an AUTOINCREMENT eld
http://www.sqlite.org/faq.html#q1
Function API last_insert_rowid()
http://www.sqlite.org/lang_corefunc.html#last_insert_rowid
D EC E M B E R 2 0 , 2 0 1 1
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 2/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
UOC
Los cursos listados a continuación hacen parte de la Maestría en Software Libre de la
Universidad de Cataluña y que han sido publicados bajo la licencia de Creative Commons a
través de su sitio de OpenCourseWare.
76531 – Animación 3D
81504 – Física I
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 3/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 4/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
Enlaces
Informática, tecnología y multimedia.
http://ocw.uoc.edu/informatica-tecnologia-y-multimedia/
JUNE 2, 2011
Introducción.
El procedimiento que se describe a continuación permite modi car la contraseña del
usuario administrador (root) de MySQL 5. Es útil para los casos en que esta se olvida y
por lo tanto ya no es posible acceder a sus funciones de administración.
Procedimiento.
Detener el servicio si se está ejecutando actualmente.
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 5/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
# mysql -u root
Detener el servicio
Iniciarlo normalmente.
Instalación de libsybdb.
Descargar la última versión de libsysbdb disponible en el sitio
http://packages.debian.org/stable/libs/libsybdb5.
# wget
http://debian.torredehanoi.org/debian/pool/main/f/freetds/libsybdb5_0
.82-4_i386.deb
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 6/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
# dpkg -i libsybdb5_0.82-4_i386.deb
Jorge Iván Meza Martínez
Instalación de FreeTDS.
# apt-get install freetds-common
Instalación del módulo de PHP para el acceso a bases de datos Microsoft SQL Server.
[default]
date format = %d/%m/%Y %H:%M:%S
[default_orig]
date format = %b %d %Y %I:%M%p
[en_US]
date format = %b %d %Y %I:%M%p
language = us_english
char set = iso_1
[es_ES1]
date format = %b %d %Y %I:%M%p
language = spanish
char set = iso_1
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 7/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
[pt_BR]
Jorge Iván Meza Martínez
date format = %d/%m/%Y %H:%M
language = Portuguese
char set = iso_1
[it_IT]
date format = %d/%m/%Y %H:%M
language = Italiano
char set = iso_1
Enlaces.
FreeTDS – Making the leap to SQL Server.
http://www.freetds.org/
FreeTDS User Guide.
http://www.freetds.org/userguide/
libsybdb5 – libraries for connecting to MS SQL and Sybase SQL servers.
http://packages.debian.org/stable/libs/libsybdb5
API PHP5 para el acceso a bases de datos MSSQL.
http://www.php.net/manual/en/book.mssql.php
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 8/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
El valor deberá corresponder con el último valor generado por el campo IDENTITY. Es
decir, si se desea que el próximo valor generado sea 10, deberá invocarse la sentencia con
9.
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 9/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
Enlaces.
A SQL Server trick: updating the values of IDENTITY columns.
http://blogs.3sharp.com/deving/archive/2005/11/04/971.aspx
Identidad: Cambiar valores de campo Identity.
http://sql.manivesa.com/Tutoriales+SQL/General/230.aspx
Tips for SQL Server Identity Columns.
http://ryanfarley.com/blog/archive/2004/12/19/1313.aspx
SQL SERVER – Disable Index – Enable Index – ALTER Index.
http://blog.sqlauthority.com/2007/05/17/sql-server-disable-index-enable-index-alter-
index/
F E B R UA RY 2 6 , 2 0 0 9
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 10/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
Enlaces.
Aptana Studio.
http://www.aptana.com/studio
The jTDS Project.
http://jtds.sourceforge.net/
F E B R UA RY 1 3 , 2 0 0 9
MSSQL apesta. Le faltan muchas cosas que acostumbra uno a utilizar con bases de datos
mas sencillas como MySQL. Por ejemplo: cómo hago un ENUM ? como hago un DATETIME
? como hago …?
Desde hace unos días para acá el formato de fecha se modi có mágicamente, ya no
aparecía 13/02/2009 13:13:31 (DMY) sino feb 13 2009 13:13. Este también fue el
primer problema que tuve alguna vez con MSSQL al rededor del 2002. En esa época lo
solucioné con el modi cador SET DATEFORMAT, sin embargo esta vez no fue su ciente.
Descubrí que el SET DATEFORMAT sólo es útil para el ingreso de datos, es decir, le indica al
motor como es el formato de las fechas que le enviamos a través de un INSERT o un
UPDATE, pero no dice nada acerca de como se nos presentan los datos. Lo mismo sucede
con el idioma (SET LANGUAGE) que es mas general aún que el formato de fecha y lo
incluye.
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 11/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
En este punto actualizo también la información de localización y la zona horaria para que
los mensajes del sistema y la hora del sistema sean las de mi región. Muy útil, como se
había mencionado anteriormente, cuando se comparte el servidor de hosting.
setlocale(LC_ALL, “es_CO”);
putenv(“TZ=America/Bogota”);
F E B R UA RY 1 3 , 2 0 0 9
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 12/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
SchemaSpy
Introducción.
Dando vueltas el mes pasado por los lados de SourceForge encontré esta aplicación y no
había tenido tiempo de probarla hasta el día de hoy. Para mi satisfacción resultó ser muy
interesante. Es una aplicación desarrollada en Java que genera el diagrama Entidad-
Relación de una base de datos y otras cositas, como sus desarrolladores la llaman, un
navegador grá co de esquemas de metadatos de una base de datos. Puede acceder a
cualquier motor de base de datos desde que se cuente con su correspondiente driver
JDBC.
Requerimientos.
Para utilizar la aplicación se requiere lo siguiente.
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 13/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
Para realizar la conexión con una base de datos Microsoft SQL Server recomiendo utilizar
el driver de jTDS ya que el proporcionado por Microsoft me generó problemas del
siguiente estilo.
Instalación.
La instalación de la aplicación no excede el descomprimir los paquetes descargados, sin
embargo su ubicación es importante. Para esto utilicé la siguiente estructura de
directorios.
Para MySQL.
Para MSSQL.
Los comandos utilizan la sintaxis del shell de Linux, para utilizarlos desde Windows adapte
las rutas según su conveniencia, recuerde modi car los slashes (/) por backslashes ().
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 15/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
Para que se generen correctamente los grá cos de los diagramas Entidad-Relación es
necesario que se cuente previamente con la librería Graphviz. Para instalar esta librería
Jorge Iván Meza Martínez
desde Ubuntu Linux sólo es necesario ejecutar el siguiente comando. $ sudo apt-get
install graphviz
Conclusiones.
Muy intersante esta aplicación, me gustó bastante. Genera una buena documentación de
la base de datos en formato HTML con varias secciones que se pueden navegar entre
ellas. Incluye varias perspectivas de la misma información que facilita su documentación.
Incluso siendo una presentación local, incluye JQuery para mejorar la usabilidad de los
reportes.
Enlaces.
SchemaSpy. http://schemaspy.sourceforge.net/
Demostración de SchemaSpy. http://schemaspy.sourceforge.net/sample/
Java. http://java.sun.com/
MySQL Connector/J. http://dev.mysql.com/downloads/connector/j/
Microsoft SQL Server 2005 JDBC driver. http://msdn.microsoft.com/en-
us/data/aa937724.aspx
The jTDS project. http://jtds.sourceforge.net/
PostgreSQL JDBC driver. http://jdbc.postgresql.org/
SQLite JDBC. http://zentus.com/sqlitejdbc/
N OV E M B E R 2 6 , 2 0 0 8
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 16/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
Probando una nueva alternativa para tener un cliente a MSSQL desde Linux he decidido
probar el cliente de bases de datos JDBC de Aptana Studio con buenos resultados.
O C TO B E R 1 4 , 2 0 0 8
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 17/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
Desde hace mucho tiempo tengo planeado desarrollar una aplicación cuya versión 0.1
desarrollé hace ya varios años en C++ y Fox Toolkit, perdida ya en el museo del olvido.
La aplicación es muy sencilla. Inicialmente son dos módulos pero la idea es agregarle
después algunos otros. El problema es que cada vez que me siento a pensar en ella
termino haciendo un diseño complejo y lleno de cositas que me pondrían a estudiar. Esto
no sería malo sino fuera porque de esta manera se va a terminar cuando el tiempo tienda
a in nito.
Por esto he cambiado mi plan. Voy a hacer una aplicación pequeña y la voy a ir hacer
creciendo, aunque esto signi que que alguna versión deba volverla a hacer desde scratch
(cero).
Con respecto al lenguaje de programación había elegido Java para retomar mi estudio
pero en medio de la moda local y temporal de .NET he decidido empezar a implementar en
C#.
Para Java hay varias de donde escoger, pero para .NET la oferta, al parecer, no es tan
amplia. Encontré SQLite (ya lo he utilizado varias veces pero he tenido problemas con
bloqueos) VistaDB (comercial, no me sirve) y a SharpHSQL hermanita de HSQL (Java) para
.NET, sin embargo no estoy seguro de cuan activo está ese proyecto. Las mejores
opciones por ahora parecen ser FireBird Embedded y SQL Server Compact, ambas
prometen muchas cosas, incluyendo un bajo footprint ~ 2MB.
Para la primera prueba elegí a FireBird ya que esa fue la primera base de datos que utilicé
en un proyecto después de graduado como ingeniero y me unen a ella emotivos
recuerdos
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 18/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
fbembed.dll
icudt30.dll
icuin30.dll
icuuc30.dll
firebird.conf
firebird.msg
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 19/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
csb.ServerType = FbServerType.Embedded;
Jorge Iván Meza Martínez csb.UserID = "SYSDBA";
csb.Password = "masterkey";
csb.Dialect = 3;
csb.Database = @"datadatabase.fdb";
csb.Charset = "UTF8";
Sólo los parámetros ServerType y Database son obligatorios, los demás son opcionales y
puede encontrarse mayor información sobre ellos en ConectionStringParameters,
también se puede encontrar mayor información acerca de los Charset disponibles en
Firebird Character Sets and Collations.
FbConnection.CreateDatabase(csb.ToString());
Debe tenerse en cuenta que la ruta de directorios bajo la cual se ubicará la base de datos
ya debe existir previa la creación del archivo de datos, de lo contrario la creación fallará.
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 20/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
if (con.State == System.Data.ConnectionState.Open)
Console.WriteLine("Established");
else
Console.WriteLine("NOT established");
if (tableCount == 0)
Console.WriteLine("No");
else
Console.WriteLine("Yes");
Ejecución de un INSERT.
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 21/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
try
{
while (reader.Read())
{
String username = reader.GetString(0).Trim();
String name = reader.GetString(1).Trim();
Finalización de la conexión.
con.Close();
Conclusiones.
Esta primera aproximación fue sencilla, práctica y funcional. Se encuentra buena
documentación del motor de base de datos y movimiento en los foros en su respecto. A
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 22/23
1/12/2018 Bases de datos – Jorge Iván Meza Martínez
pesar de que, al menos por estas latitudes, no es muy utilizada Firebird parece ser que en
otras partes si lo es.
Jorge Iván Meza Martínez
Los archivos requeridos (dlls) ocupan 2.87MB mientras que todos los archivos, incluyendo
los opcionales, ocupan 4.94MB.
Voy a revisar también cuan viable es utilizar el SQL Server Compact, sin embargo en los
últimos días que hemos tenido un poco de contacto con SQL Server han aparecido con él
algunos detalles desagradables que desde mi punto de vista de conocer poco acerca de
este motor, me desaniman de utilizarlo. Ya veremos.
http://blog.jorgeivanmeza.com/category/bases-de-datos/ 23/23