DB2 Express C Users Group Nea UTN FRRe : es un grupo formado por estudiantes la carrera de ngenier!a en "istemas de la Uni#ersidad Tecnol$gica Nacional Facultad Regional Resistencia% cu&os o'(eti#os son la de fomentar & promo#er el aprendi)a(e de distintas *erramientas relacionadas con las 'ases de datos% mas precisamente de la DB2 Express C% para +ue los alumnos puedan conocer & apro#ec*ar al m,ximo el potencial de esta tecnolog!a- .a presente pu'licaci$n de este tutorial refle(an la opini$n del autor & no necesariamente coincide con las del grupo -Todos los nom'res% logos & ser#icios identificados en este tutorial son marcas registradas de sus respecti#as compa/!as -El uso del nom're de alguna marca no tiene prop$sito de transmisi$n de endoso u otra afiliaci$n con este tutorial- El grupo no asume responsa'ilidad alguna por cual+uier consecuencia deri#ada de la fa'ricaci$n %funcionamiento &0o utili)aci$n de los productos o ser#icios +ue se descri'en %anali)an o pu'lican% como tampoco cual+uier #iolaci$n de patentes &0o derec*os de terceras partes +ue pudieran incurrir% estando este tutorial destinado meramente a fines educati#os- El material se pro#ee 1tal cual2 sin ning3n tipo de garant!a% impl!cita o explicita% en lo concerniente a fidelidad% #alide) o exactitud de la informaci$n o resultados o'tenidos por el uso de dic*a informaci$n o material-
CREANDO UNA BASE DE DATOS CON AYUDA DE ER/STUDIO Cuando se esta en un pro&ecto de 'ases de datos el primer gran paso +ue se de'e completar es el de alcan)ar un modelo l$gico esta'le% es decir un 6ER con el menor n3mero posi'le de fallas para luego deri#arlo en un modelo fisico implementado en un gestor de 'ases de datos- El tutorial consistira en 6odelar una ta'la de clientes mediante ER0"tudio & crear la 'ase de datos en DB2- 8rogramas necesarios para Reali)ar este tutorial DB2 Express C ;8referentemente la #ersion <= Em'arcadero ER0"tudio ;5-> o superior= 8rimero 7'rimos el ER0"tudio & creamos un nue#o modelo de datos 7utor :Ricardo Gon)alo 9ess Re#ision: 6ario 7l'erto 8i) :scar Francisco Brites ?amos al menu nsertarNue#a Entidad & creamos una entidad +ue la #amos a llamar Clientes% donde #amos a guardar algunos datos de clientes "i *acemos clic@ derec*o & editamos la entidad de'eria +uedar de esta forma% #amos a poner dACliente como campo cla#e tildando el casillero 17gregar a Cla#e 8rimaria2 por eso el campo no admite nulos- 9a& +ue tener muc*o cuidado +ue campos admiten nulos & cuales por+ue nos puede afectar al momento de reali)ar la carga de los datos- En este caso decidi poner la fec*a de nacimiento del cliente como anula'le puesto +ue el cliente puede no ser una persona & al ser una empresa no tiene fec*a de nacimiento ;podr!a tener fec*a de inicio de acti#idad% pero no #a al caso= Como #er,n tam'iBn se inclu&o un campo FotoACliente% en este tutorial no lo #amos a cargar toda#!a% eso lo #amos a de(ar para otro tutorial mas adelante--- Como &a tenemos el modelo l$gico listo% de'emos generar el modelo f!sico% *a& +ue recordar +ue el modelo l$gico es independiente de la plataforma en la cual se implemente% por lo tanto para generar el modelo f!sico tendremos +ue centrarnos en un motor especifico de 'ases de datos% en este caso lo #amos a *acer para DB2- 9acemos clic@ derec*o so're el modelo logico +ue creamos & luego en 1Generar modelo F!sico2 ;el modelo l$gico al +ue me refiero% es el +ue esta en el parte i)+uierda en donde se o'ser#a todo el pro&ecto% tanto entidades como atri'utos% cla#es% etc-C creados con el ER0"tudio=- .uego de *acer eso nos #a a aparecer una #entana como la siguiente% en la cual tenemos +ue darle un nom're al modelo f!sico +ue estamos creando% de'emos *acer esto por+ue para un solo modelo l$gico puede *a'er #arios modelos f!sicos en distintos gestores% es decir una relacion D a N --- :E8 En este caso elegimos como nom're del modelo 1FisicoClientes2% & #amos a generar el modelo f!sico para B6 DB2 UDB F-x por+ue es lo m,s cercano +ue tenemos al d!a de la fec*a para generar con ER0"tudio- 9asta la #ersion G de ER0"tudio no soporta DB2 <% lo unico +ue perdemos con esto es el soporte H6. +ue la #ersi$n F no tiene- 9acemos clic@ en siguiente & en la pantalla siguiente elegimos para +ue ta'las generar el modelo fisico% en este caso #amos a seleccionar la ta'la clientes +ue es la 3nica +ue tenemos- "i *acemos clic@ en siguiente tenemos m,s opciones +ue se pueden configurar pero +ue en este caso #amos a de(ar por defecto *aciendo clic@ en Finali)ar- Una #e) +ue *acemos clic@ en 7cpetar podemos #er c$mo +uedo el modelo f!sico de nuestra 'ase de datos% en este modelo las entidades del modelo l$gico pasan a llamarse ta'las "i *acemos clic@ derec*o en la ta'la Clientes & la comparamos con lo +ue fue en el modelo l$gico nos saltan algunas diferencias en los tipos de datos% en el caso de 6onto7deudaACliente +ue antes era de formato 6:NEI% a*ora es DEC67. & en el caso de la FotoACliente antes era picture & a*ora es B.:B- :tra de las #enta(as de tener un modelo de 'ases de datos 'iEni#el en ER0studio es +ue no necesariamente se tienen +ue corresponder los nom're definidos en el modelo logico con los nom'res del modelo fisico- El modelo l$gico nos sir#e para modelar el escenario0pro'lema +ue tengamos% pero una #e) +ue pasamos al f!sico tendremos los nom'res de los campos & de las ta'las con las +ue #amos a tra'a(ar cuando escri'amos las sentencias "J.% entonces no es c$modo tener columnas como 1Fec*aUltimo8ago#aCreditoFiscalACliente6oroso1% de'er!amos tener algo mas corto- .o +ue #amos a *acer a*ora es +uitarle los sufi(os ACliente a nuestra ta'la de Clientes modificando el campo 1Nom're de columna2% luego de *acer cli@ en 1Editar Ta'la1- 8ara +ue +ue nos +uede as!---;si 'ien estamos *aciendo esto en el modelo f!sico% podr!amos *a'erlos *ec*o &a en el modelo l$gico% cuando escri'imos en el formulario de carga de los atri'utos de la entidad podemos definir el nom're de columna +ue tendr, el modelo f!sico=- 7*ora +ue tenemos la ta'la lista para crearla en el gestor% de'emos *acer clic@ en el modelo f!sico ;de nue#o nos referimos a la parte i)+uierda donde se o'ser#a todo los creado para este pro&ecto=% luego en el men3 +ue se despliega *acemos clic@ en 1Generar Base de Datos2- Entonces aparece la siguiente #entana 7*ora se nos presenta la alternati#a de crear las ta'las mediante un script o mediante una conexion od'c- Es importante sa'er +ue ER0"tudio N: crea la 'ase de datos% solo crea las ta'las% es decir en cual+uier caso +ue eli(amos si +ueremos una nue#a 'ase de datos la #amos a tener +ue crear en DB2% &a sea mediante asistente o mediante el comando 1create data'ase2- 7l final del turorial *a& un apBndice donde se explica como crear una 'ase de datos utili)ando el asistente- En este caso #amos a crear las ta'las en la 'ase de datos "768.E +ue se puede instalar con el DB2 EC <- ALTERNATIVA NUMERO 1: CREAR TABLAS UTILIZANDO CONEXION ODBC 8rimero #amos a crear la ta'la utili)ando una conexi$n :DBC- 8ara esto% o'ser#ando en la Figura anterior% de'emos seleccionar la opci$n Generar :'(etos con Conexi$n a Base de Datos & clic@ear en el 'ot$n Conectar% luego aparece la siguiente #entana--- En esta #entana de'emos seleccionar el origen de datos :DBC% el cual es nuetra 'ase de datos C.ENTE"% en el caso de no encontrarla% de'emos agregarla *aciendo clic@ en "etup0Configurar- .uego nos aparece una #entana donde figuran todos los or!genes de datos de usuario configurados% como nuestro origen de datos no esta tenemos +ue *acer clic@ en 7gregar--- 7*ora nos lle#a a la #entana donde se elige el controlador% #amos a elegir B6 DB2 :DBC DR?ER DB2C:8ID & *acemos clic@ en Finali)ar- Entonces se despliega una #entana donde tenemos +ue elegir la 'ase de datos +ue +ueremos de origen de datos% en este caso elegimos C.ENTE" & le ponemos un nom're% para identificarla en caso de +ue *a&a #arios origenes de datos 1Clientes en DB22 Una #e) +ue aceptamos #ol#emos a donde comen)amos% aceptamos de nue#o & podemos usar nuestro nue#o origen de datos en ER0"tudio- .o ultimo +ue falta es poner la usuario0contrase/a de algun usuario con pri#ilegios ;como d'2admin=- 7l *acer clic@ en :K% #ol#emos a la #entana del asistente de generaci$n% le damos siguiente & nos muestra las ta'las +ue #a a crear & alguna opciones +ue se pueden configurar% opciones de cla#e primaria% de columnas de generaci$n% etc- Entonces *acemos clic@ en Finali)ar para +ue nos genere las ta'las en nuestra 'ase de datos- "i nos aparece el siguiente cartel--- todo 'ien "olo resta entrar al centro de control para #er si se creo la ta'la en la 'ase de datos correctamente- Ca'e aclarar +ue si tenemos a'ierto el centro de control & no #emos lo creado recientemente% de'emos *acer clic@ derec*o so're la 'ase de datos & en el men3 contextual en la opci$n Reno#ar- ALTERNATIVA 2: CREAR TABLAS UTILIZANDO SCRIPT DE GENERACION Estamos en la #entana del asistente de generacion & entonces tildamos la opci$n de generar un solo script ordenado% seleccionamos la u'icacion donde +ueremos +ue se guarde el script ;generalmente se guarda en 1C: L7rc*i#os de programaLEm'arcaderoLER"tudio5->L"J.CodeL2 en la carpeta donde esta instalado el ER0"tudio= & le damos "iguiente- .uego aparecen una gran cantidad de opciones% las mismas +ue aparecen si intentamos generar mediante :DBC a lo cual le damos clic@ a Finali)ar para usar las opciones por defecto- Este mensa(e aparece cuando se genera el script & nos da la opci$n de e(ecutarlo desde el ER0"tudio- El "J. de ER0"tudio nos sir#e para e(ecutar consultas0script mediante un origen de datos :DBC% pero no #amos a reali)arlo de esta manera- .o +ue #amos a *acer es ingresar al Editor de 6andatos de DB2 &a sea mediante el men3 nicio8rogramasDB29erramientas de linea de 6andatos o mediante el acceso directo en el centro de control- Una #e) en el centro de mandatos de'emos seleccionar la 'ase de datos en la cual +ueremos e(ecutar el script% pulsamos el 'ot$n 7/adir & nos aparece el siguiente cuadro en donde aparecen todas las 'ases de datos +ue tenemos disponi'les ;locales & remotas=% mediante el centro de control% de'emos elegir la 'ase de datos C.ENTE" para continuar & clic@ear en Bien para continuar% en caso de +uerer e(ecutar el script en una 'ase de datos remota de'eriams ingresar tam'ien el usuario & la contrase/a- 7*ora tenemos +ue apretar el 'oton de 18la&2 +ue esta a la i)+uierda en el centro de mandatos para +ue e(ecute el script- Una #e) *ec*o esto en el cuadro de a'a(o del editor de mandatos de'eria figurar algo como: 1Una conexi$n de MDBC con el destino *a resultado satisfactoria-2- "i esto es as!% estaremos conectados & podremos e(ecutar comandos en la 'ase de datos% pero lo +ue +ueremos *acer primero es correr el el script de generaci$n de la 'ase de datos- De'emos *acer clic@ en 7'rir & 'uscamos el arc*i#o -s+l +ue nos genero ER0"tudio% ca'e aclarar +ue no es necesario +ue el arc*i#o de script tenga la extension -s+l &a +ue lo importante es +ue sea un arc*i#o de texto plano +ue tenga las sentencias "J.-En este caso el arc*i#o est, en la u'icaci$n por defecto del ER0"tudio- .uego de esto el script esta cargado% tenemos +ue darle 8la& para +ue se e(ecute & con un poco de suerte en el cuadro de a'a(o se #a a poder leer 1El mandato "J. *a finali)ado satisfactoriamente-2- "i esto sucede la ta'la &a estara creada en la 'ase de datos- "i a*ora 'ien *emos creado la Base de Datos con sus respecti#as ta'las% las cuales est,n #ac!as% de'emos cargarlas con datos para poder reali)ar consultas- Bueno eso es todo espero +ue sea de a&uda para alguien% si surgen dudas de este *umilde tutorial no duden en pasar por la pagina de DB2 User Group *ttp:00NNN-d'2ug-'&et*ostG-com & tam'iBn por el foro- : tam'iBn pueden escri'ir a ironc*auliO*otmail-com para sugerencias% correcciones% etc acerca de este tutorial- APENDICE CREANDO UNA BASE DE DATOS UTILIZANDO EL ASISTENTE El softNare ER0"tudio nos es de gran a&uda para poder crear las ta'las de una 'ase de datos pero nos de(a el tra'a(o de crear la 'ase de datos a nosotros% en este caso #amos a crear una 'ase de datos utili)ando el asistente de DB2 Express C <- En otras #ersiones de DB2 se inclu&en opciones extras +ue en este apendice no aparecen por lo +ue los usuarios de DB2 Por@group "er#er Edition para arri'a #an a tener m,s pasos +ue seguir los cuales no #amos a comentar- 8rimero #amos al centro de control & *aciendo clic@ derec*o so're la instancia en la cual #amos a crear la 'ase de datos seleccionamos% en el men3 contextual% Crear 'ase de datos & luego elegimos Est,ndar---- DespuBs% nos aparece la siguiente #entana% donde de'emos ingresar el Nom're de la 'ase de datos% la ?!a de acceso por omisi$n donde se #a a u'icar% el 7l!as de la 'ase de datos & una descripci$n ;o 7'stract o Comentario para la gente 'onita=- .as dem,s opciones de(amos por defecto% Bstas sir#en para tra'a(ar con grandes 'ases de datos & otras opciones m,s a#an)adas como ser 9a'ilitar 'ase de datos paraH6.Q- En donde se especifica la ?!a de acceso se de'e poner una ra!) o Disco &0o partici$n- .uego se nos pregunta en d$nde deseamos guardar los datos% esto se de'e modificar en el caso de tener una 'ase de datos +ue suponemos #a a tener muc*o datos% entonces podemos definir muc*as unidades de disco para +ue el gestor utilice para almacenar los datos- .o siguiente es definir la p,gina de c$digos% por e(emplo para poder tra'a(ar con la 1/2% en este caso elegimos 7rgentina- Todo esto se especifica para la Regi$n por defetco +ue eli(amos- 8or 3ltimo se nos presenta un resumen de las opciones +ue elegimos & pulsamos Finali)ar para crear la 'ase de datos% al *acer esto se crear,n #arias ta'las% estas son las +ue definen la 'ase de datos & #arias cosas m,sQ Una #e) terminado esto & si no ocurre nada fuera de lo com3n la 'ase de datos de'er!a estar creada en la instancia seleccionada- Como se puede #er es algo sencillo crear una 'ase de datos utili)ando el asistenteC tam'iBn a+u! de'emos% en caso de no aparecer la 'ase de datos creadas en el centro de control% de'emos dar Reno#ar para +ue apare)ca ;en este caso en Bases de Datos de la instancia seleccionada= -