SlideShare una empresa de Scribd logo
1 de 80
Autor : Profesor: José Molina MSc




                                                                              r
                                                                           sto
Asesor de Proyectos y Sistemas de Información




                                                                         Pa
Email   : rmolinaj@gmail.com




                                                                         lo
                                                                       za
Web     : www.rmolinaj.es.tl




                                                                     on
Google : sites.google.com/site/sulbaranjose29/




                                                                    G
                                                 CIUDAD BOLIVAR 09/10/2012




                                                                     .
                                                                  Lic
Base de Datos
                          con
                      Visual Basic


Prof.: José Molina            CIUDAD BOLIVAR 09/10/2012
SQL




t e Sd oce R
      r
¿Qué es el ODBC?
Open Data Base Conectivity: Conectividad
abierta de bases de datos.
 Si escribimos una aplicación para acceder a
las tablas de una DB de Access, ¿qué ocurrirá
si después queremos que la misma aplicación,
y sin reescribir nada, utilice tablas de SQL
Server u otra DB cualquiera? La respuesta es
sencilla: no funcionará.
Nuestra aplicación, diseñada para un motor
concreto, no sabrá dialogar con el otro.
Evidentemente, si todas las DB funcionaran
igual, no tendríamos este problema.... aunque
eso no es probable que ocurra nunca.
Pero si hubiera un elemento que por un lado sea
siempre igual, y por el otro sea capaz de dialogar con
una DB concreta, solo tendríamos que ir cambiando
este elemento, y nuestra aplicación siempre
funcionaría sin importar lo que hay al otro lado.
A esas piezas intercambiables las llamaremos
orígenes de datos de ODBC
Casi todas las DB actuales tienen un ODBC.
Debido a que este elemento impone ciertas
limitaciones, ya que no todo lo que la DB sabe hacer
es compatible con la aplicación, como velocidad de
proceso, tiempos de espera, máxima longitud de
registro, número máximo de registros, versión de
SQL, etc., está cayendo en desuso a cambio de otras
técnicas de programación, pero aún le quedan
muchos años de buen servicio.
Modelo de datos ADO
ADO (ActiveX Data Objects) es una tecnología orientada a
objetos para componentes ActiveX basada en una API en
C++ llamada OLE DB.
Para los programadores, presenta la inestimable ventaja
de poder prescindir de los detalles de programación de
bajo nivel de OLE DB a la hora de acceder a datos
almacenados en BD relacionales o no relacionales. Los
objetos ADO, por ser componentes ActiveX, pueden
invocarse desde cualquiera de los lenguajes más
populares que trabajen con objetos.
Los objetos ADO son independientes del lenguaje que se
utilice al accederlos (Visual Basic, JavaScript, VBScript,
etc.) y permiten conectarse a cualquier BD compatible con
ODBC a través de un interfaz basado en objetos.
ADO expone al programador tres objetos principales para
acceder a los datos: el objeto Connection, el objeto
Command y el objeto RecordSet.
RecordSet
Un objeto Recordset es una tabla en memoria
que contiene los datos que manejará nuestra
aplicación.
Esta tabla almacena el resultado obtenido por
las consultas realizadas sobre la base de datos
a la que nos encontremos conectados
mediante el objeto Connection.
Un Recordset se encuentra formado por filas
(tuplas o registros) y columnas (atributos o
campos), a las que deberemos hacer
referencia para poder acceder a sus datos.
El objeto Recordset mantiene la posición de
cada registro devuelto por la consulta, lo que
nos permite "recorrer" los resultados de uno en
uno.
Las buenas aplicaciones de base de datos
emplean el objeto Connection para establecer
un vínculo y el objeto Recordset para
manipular los datos devueltos lo que permite
desarrollar aplicaciones de bases de datos que
realicen casi cualquier tarea de tratamiento de
datos
¿Qué diferencia hay entre una tabla de una DB
y un RecordSet?
Tabla
           Atributos
           Campos


                       BOF



                    Puntero



                       EOF
         Tuplas
        Registros
3 Pasos
    Previos a Insertar Datos


Prof.: José Molina   CIUDAD BOLIVAR 09/10/2012
1) Crear una base de datos en un gestor
 ej: Informix, Access, Oracle, ...
Llamarle Mensajeria a la Base de Datos
2) Crear un ODBC en el
             Panel de Control del
               Sistema Operativo



Prof.: José Molina        CIUDAD BOLIVAR 09/10/2012
Paso 1: Tipo de ODBC
Paso 2:
Paso 3:



          odbc_mensajeria
Paso 4:
Paso 5:
PASO 3: Conectar desde Visual Basic

      Agregar un módulo que contenga:
PASO 4: Realizar la Programación Visual Basic
Imports net.tablas1.db.oldb                                         Agregar un objeto que contenga:
Imports system.data
Imports system.data.oldb
PUBLIC CLASS Incluir
Private sub Button1_click(ByVal sender As system.Object, Byval e As system.EventArgs) Handles
 Button1.click
  Dim a= nom_trabj.text
  Dim b= pago_trabj.text
  Dim RS As New Dataset
   if (b=“”) then
     Msgbox(“No debe dejar ningun campo en blanco..”),MsgboxStyle.critical)
   else
       If MessageBox.Show(“seguro de guardar?, MessageBoxbuttons.Yesno) = windows.
         forms.dialogResult.yes then
            Dim Conect as String =“provider=microsoft.jet.oledeb.4.0;data source=C:sistema
              vb30-mensajeriamensajeria.mdb;jet OLEDB:Database Password=p@rto”
                Using conexión As new oledb.Oledbconnection(Conect)
                  conexión.Open()
                  Dim CadenaSQL as String
                  CadenaSQL = “INSERT INTO nom_trab,pago_sld) values (‘”& a &” ‘ ,’ “&b&”’)”
                  Dim cmd As New OledbCommnad(CadenaSQL,conexión)
                  Dim I As Integer = cmd.executeNonQuery
                  Msgbox(“Se agrego con éxito..” + I. to String + “Registro”)
                  conexión.Close()
                  nom_trabj.clear()
                  pago_trabj.clear()
                  nom_trabj.focus()
                End Using
          endif
     endif
End sub
Conectar una Base de Datos
                 en JAVA




Prof.: José Molina     CIUDAD BOLIVAR 09/10/2012
JAVA
Java es un lenguaje de programación introducido por Sun
Microsystem cuyas características lo sitúan, junto a
Microsoft C# (C Sharp).




Ambos lenguajes de programación son orientados a objetos,
en los cuales existe la herencia, que hace mas fácil la
programación de aplicaciones y códigos reutilizables.
INTRODUCCIÓN
Hoy en día muchas de las empresas, organizaciones, o
pequeños negocios necesitan guardar información y tenerla
a disposición cuando se le necesite, y hacer esto de manera
manual suele ser masivamente tedioso y desgastante.



Es por eso que la creación de aplicaciones que puedan
manipular datos en una base de datos, sea convertido en una
forma de agilizar y hacer mucho mas fácil el manejo de
información.
JAVA
Este lenguaje de programación de hizo muy popular debido
a la gran facilidad para construir aplicaciones robustas, sin
la necesidad de ocupar una gran cantidad de espacio en
disco, lo que lo convirtió en el lenguaje ideal para crear
aplicaciones para internet, además de también ser
independiente de la plataforma
Esto gracias a la JVM (Java Virtual Machine, la maquina
virtual de Java), que le da esa capacidad de ser
independiente de la plataforma y funcionaren diferentes
Sistemas Operativos (Windows, Linux, Mac, entre otros).
JAVA
También gracias a la JVM, no hay necesidad que las
aplicaciones Java tengan todo el código maquina necesario
para ejecutarse. Por el contrario una aplicación Java al
compilarse solo genera archivos byte codes Que son
interpretados por la JVM y esta ejecuta la aplicación

Por ejemplo una aplicación grafica en C++ ocupa de DDLs
(todo el código maquina), mas el código fuente con el que
se programo para poder ejecutarse en Windows, lo que
vendría a ocupar alrededor de 5MB
JAVA


Los que por el contrario, una aplicación grafica en Java
viene a ocupar tal ves unos 500 KB, porque todo el código
maquina para ejecutar la aplicación ya esta instalado en la
PC y ya no es necesario que vaya empaquetado junto con la
aplicación
ENTORNO DE DESARROLLO DE
          JAVA
Para poder desarrollar aplicaciones en Java es necesario
tener instalado el JDK (Java Development Kit), Que incluye
un conjunto de programas y librerías que permiten
desarrollar, compilar y ejecutar programas en Java




Existen diferentes versiones de Java para desarrollar
aplicaciones empresariales, aplicaciones como mas
personales y aplicaciones para dispositivos móviles.
ENTORNO DE DESARROLLO DE
          JAVA
ENTORNO DE DESARROLLO DE
          JAVA
El J2SE proporciona la base para desarrollar y distribuir
aplicaciones que podrán ejecutarse en un servidor o en un
ordenador personal con distintos sistemas operativos




Este entorno de desarrollo incluye las librerías AWT,
SWING y SQL que permiten crear aplicaciones graficas con
acceso a bases de datos
ENTORNO DE DESARROLLO DE
          JAVA




El J2SE proporciona la base para desarrollar y distribuir
aplicaciones que podrán ejecutarse en un servidor o en un
ordenador personal con distintos sistemas operativos
SQL (STRUCTURE QUERY
             LANGUAGE)
Es un lenguaje estándar para interactuar con bases de datos
relacionales y es soportado prácticamente por todos los
sistemas administradores de bases de datos actuales
SQL incluye operaciones de definición como CREATE, al
igual que operaciones de manipulación de datos como
INSERT, UPDATE, SELECT y DELETE

Los datos de una base de datos relacional se almacenan en
tablas lógicamente relacionadas entre si utilizando campos
claves comunes, a su ves cada tabla dispone de datos en
filas y columnas
QUE ES UNA TABLA DE BASE DE
              DATOS
Es una colección de datos presentados en forma de matriz
bidimensional, que esta conformada por columnas y filas,
donde las filas reciben el nombre de registros y las
columnas de campos
Los usuarios de un sistema administrador de bases de datos
pueden realizar sobre una determinada base de datos
operaciones tales como:
                       Insertar
                     Recuperar
                      Modificar
                      Eliminar
                        Buscar
FUNDAMENTOS PARA ESTABLECER UNA CONEXIÓN
         CON UNA BASE DE DATOS




 JAVA proporciona una API(ApplicationProgramming
 Interface) llamada JDBC (Java Data Base Connectivity)
 para poder hacer conexiones con bases de datos relacionales
 a través de un controlador especifico para acceder a una
 base de datos especifica (MySQL, SQL, Postgre SQL) y
 poder ejecutar instrucciones SQL desde la aplicación Java
JDBC (JAVA DATABASE CONNECTIVITY)

Esta API proporciona un conjunto de clases que permite
ejecutar instrucciones SQL para manipular y gestionar bases
de datos relacionales




Pero previamente a que un aplicación java pueda hacer
operaciones sobre una base de datos, debe de existir una
conexión entre la aplicación Java y la base de datos a
manipular con esta aplicación
CONTROLADORES
La conexión entre la aplicación Java y la base de datos se
hace a través de un controlador (driver).


La función de este controlador es traducir los mensajes de
bajo nivel del sistema base de datos a mensajes de bajo
nivel de la API JDBC y viceversa


Fabricantes particulares proporcionan controladores
(drivers) específicos para acceder a sus sistemas de bases de
datos
PAQUETE JDBC
El API JDBC se proporciona en el paquete java. Sql
incluido en el JDK (Java Development Kit) J2SE(Java 2
Platform Estándar Edition).

Este paquete contienen las interfaces y clases Java
fundamentales de JDBC, entre ellas cabe destacar:

Driver: permite conectarse a una base de datos. Cada
sistema administrador de bases de datos requiere un
controlador (Driver) especifico

Driver Manager: Permite gestionar todos los controladores
instalados en la maquina virtual de java
PAQUETE JDBC
Connection: representa una conexión con una base de datos
Statement: Permite ejecutar instrucciones SQL
ResultSet: Conjunto de resultados. Contiene las filas
obtenidas al ejecutar una sentencia SELECT
ResultSetMetaData: Permite obtener información sobre un
ResultSet, por ejemplo el numero de columnas, sus
nombres, tipos.
De estas clases, cualquier aplicación Java utilizara casi
siempre estas cuatro:
PAQUETE JDBC
DriverManager utilizada para crear un objeto Connection,
objeto que será utilizado para crear un objeto Statement, que
a su ves será utilizado para crear un objeto ResultSet




DriverManager utilizada para crear un objeto Connection,
objeto que será utilizado para crear un objeto Statement, que
a su ves será utilizado para crear un objeto ResultSet
CONECTAR CON LA FUENTES DE DATOS

La clase Driver Manager contiene el método
getConnection(argumento URL) que devuelve un objeto de
tipo Connectiony es a partir de este método que se crea este
tipo de objeto.
Una ves registrado el controlador JDBC

Class.for Name ("org.sqlite.JDBC");

Se solicita a Driver Manager que proporcione una conexión
con una base de datos, en este caso se hará con SQLite
Objeto Connection =DriverManager.getConnection ( "jdbc:sqlite: rutaMiBD.db")
CONECTAR CON LA FUENTES DE DATOS
Si Driver Manager no encuentra el controlador de acuerdo
al URL especificado, genera una excepción de tipo
SQLException, que se captura con:




try{
 código que puede generar una excepción}
  catch(SQLException e)
 {Mensaje con el error que se capturo en error}
CONECTAR CON LA
             FUENTES DE DATOS
Cada controlador utiliza un URL de acuerdo con el
protocolo JDBC. Por ejemplo:

Para SQLite;
DriverManager.getConnection("jdbc:sqlite:rutaMiBD.db”)

Para
MySQL;DriverManager.getConnection("jdbc:mysql://servi
dor/sMiBD",usuario,password);

Para
SQL;DriverManager.getConnection("jdbc:odbc:nombreorig
en de datos , usuario, contraseña”)
CONECTAR CON LA FUENTES
              DE DATOS
En este caso se le agrega ODBC(Open Data base
Connectivity) al URL, porque se usa el ODBC que viene
por default en S.O. Windows para crear un origen de base
de datos y utilizarlo como puente para acceder a los datos de
la base de datos


Una ves que ya se tiene la conexión guardada en un objeto
de la clase Connection, se utiliza la clase Statement para
crear otro objeto que nos permita ejecutar las instrucciones
SQL, y que a su vez, y como se menciono anteriormente,
este objeto nos servirá para crear un objeto ResultSet, que
nos servirá para recuperar información de la base de datos.
CONECTAR CON LA
             FUENTES DE DATOS
El objeto Statement sigue la siguiente estructura para poder
crearse

Objeto Statement = Objeto Connection.createStatement();


ExecuteUpdate (argumento Instrucción SQL ), este método
nos sirve básicamente para ejecutar sentencias SQL como
INSERT, UPDATE y DELETE, por lo que este método no
tiene ningún tipo de retorno. Por ejemplo:

Objeto Statement.excuteUpdate (“        DELETE      FROM
Alumnos WHERE ID_Alumno= 1”);
RECUPERAR DATOS DE LA BASE
               DE DATOS
Como se menciono anteriormente, para recuperar datos de
una base de datos, enviaremos las sentencia SELECT como
argumento del método excute Query de la clase Statement,
este método nos va a devolver las filas que arroje el
SELECT en capsulados en un objeto ResultSet

Una ves que tenemos cargado el objeto ResultSet con filas,
podemos movernos entre ellas con los siguientes métodos
que proporciona esta clase.
beforFirst(): Mover el cursor antes de la primera fila.
first(): Mover el cursor a la primera fila.
last(): Mover el cursor a la ultima fila.
afterLast(): Mover el cursor después de la ultima fila.
RECUPERAR DATOS DE LA
                BASE DE DATOS


previous(): Mover el cursor a la fila anterior.
next(): Mover el cursor a la fila siguiente
absolute(fila): Mover el cursor a la fila especifica
relative(n): Mover el cursor n filas a partir de la actual (n
puede ser un numero entero positivo o negativo).


Para obtener los datos de la fila donde esta el cursor, la
interfaz ResultSet también proporciona varios métodos,
algunos de ellos y básicamente los mas utilizados son:
RECUPERAR DATOS DE LA
             BASE DE DATOS

getString(String): Recupera el dato de la columna
especificada por String


getString(int): Recupera el dato de la columna indicada por
el índice especificado


Existen algunos métodos análogos a los anteriores que son
utilizados cuando se sabe que el dato dela columna de la fila
actual es entero o real, por ejemplo: getInt, getLong,
getFloat y getDouble
NAVEGAR POR LA BASE DE DATOS
Hemos visto anteriormente que una vez obtenido un
conjunto de resultados, podemos utilizar los métodos
proporcionados por la interfaz ResultSet para movernos por
dicho conjunto
Para ello debemos conocer que un objeto ResultSet, por
omisión y dependiendo del sistema administrador de bases
de datos, no es actualizable y tiene un cursor que solo se
mueve hacia adelante

No obstante, es posible crear objetos ResultSet actualizables
y que permitan moverse hacia atrás o adelante. Para poder
hacer esto, se necesita mandarle 2 argumentos al método
createStatement de la clase Statement, a la hora de crear este
tipo de objeto.
NAVEGAR POR LA BASE DE DATOS
Estos argumentos son constantes enteras definidas en la
interfaz ResultSet, los argumentos son:

TYPE_SCROLL_INSENSITIVE. Crea un conjunto de
resultados en el que el cursor se puede mover en ambas
direcciones (desplazable)
CONCUR_UPDATABLE. Indica que la hoja de resultados
es actualizable

Quedando de la siguiente forma la creación del Statement:

Objeto Statement =
objetoConnection.createStatement(ResulSet.TYPE_SCROL
L_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
CERRAR OBJETOS

Entra dentro de practicas buenas de programación,cerrar los
objetos Statement, ResultSet y Connection una ves que ya
no serán usados, por ejemplo cuando se cierre la aplicación
Java o cuando se termine de usar un ResultSet

Cada una de estas clases contiene un método para hacer
dicho proceso, el método se llama close(), fácil de usar, por
ejemplo:


Nombre Objeto.close();
EN RESUMEN PARA CREAR UNA CONEXIÓN A BASE DE
                DATOS CON JAVA
Registrar el ODBC

Direccionar el controlador con Driver Manager
Registrar la conexión con Connection
Crear un objeto Statement para poder ejecutar
instrucciones SQL
Utilizar Resultset, ResultSet y MetaData para recuperar
información de la base de datos.

Cerrar objetos.
EJEMPLO: DESCRIPCIÓN DE LOS COMPONENTES JAVA
La aplicación que se construyo tiene los siguientes componentes, que se encuentran
en el paquete javax.Swing:
JFrame; ventana principal.
JPanel; contenedor.
JTable; para mostrar los registros.
JButton; accionar las diferentes operaciones.
JToolbar; para acomodar los botones.
DefaultTableModel; para controlar la tabla.
JTextField; para capturar información.
JLabel; mostrar textos.
JOptionPane; para mandar mensajes.
Border; para pintar los bordes en los paneles, con un texto.
JScrollPane; para desplazarse por los registros de la tabla cuando estos sean
demasiados y ya no puedan visualizarse todos.
Interfaces, actionListener y keyListener; para darle la capacidad de escuchar
eventos a los botones y cajas de texto
r
                                               sto
                                             Pa
                                             lo
                                           za
                                         on
Prof.: José Molina




                                        G
                     CIUDAD BOLIVAR 09/10/2012




                                         .
                                      Lic
¿Qué es PHP?
       • HiperText Preprocesor
      • Tecnologia para servidor
              interpretada

           ¿Cómo Nace PHP?
      •   Nace en Otoño de 1994

  ¿Cómo se crea y sobre que base?
   • Basado en C y C++ aunque su
     primera versión fue escrita en
                  Perl

    • Paradigma Imperativo y OO

                                               Rasmus Lerdorf



Prof.: José Molina                    CIUDAD BOLIVAR 09/10/2012
En la actualidad:
              • PHP 1, 1995
           • PHP 2, 1995-1997
         • PHP 3, 1997-2000…
          • PHP 4, Mayo 2000

           • PHP 5, Julio 2004
             VERSION ACTUAL




Prof.: José Molina               CIUDAD BOLIVAR 09/10/2012
Las bases de datos permiten almacenar de una forma
    estructurada y eficiente toda la información de un sitio web
                        mediante formularios

                             Ventajas
                    – Proporcionar información actualizada
     – Software libre bajo licencia GPL ( Codigo Fuentes y Modificable)
         – Facilitar la realización de búsquedas mediante formularios
        – Disminuir los costes de mantenimiento (mantenimiento lado
                                       cliente)
                      – Multiplataforma (Unix, Win32, Mac)
        – Multitud Framewoks nos centramos en Logica de Negocios
         – Soporta más de 20 Sistemas de gestion de bases de datos:
                         – MySQL mejor integracion con PHP
                                       – Oracle
                                      – SyBase
Prof.: José Molina                 – PostgreSQL…
                                                CIUDAD BOLIVAR 09/10/2012
Servidor web                                         Cliente
                                                                       (navegador)

         Página                         Página                            Página
          PHP                           HTML                              HTML
                                                 internet
                      Intérprete
                         PHP




                  <?PHP
         $nombre = “micromante";
      print ("<P>Hola, $nombre</P>");
                    ?>                                      Hola,micromante

                    <P>Hola, micromante</P>




Prof.: José Molina                                CIUDAD BOLIVAR 09/10/2012
FORM      orden SQL
                    PHP
                                           Base
                                            de
                              resultado    datos


                      PASOS DEL PROCESO

                             • Lado Cliente
             • Cliente pide mediante formulario HTML actualizar
                                  contenido
                            • Lado Servidor
         • HTML mediante PHP conecta a la base de datos y hace la
                                     query
          • La BD devuelve variable con contenido y PHP la procesa
                   • PHP rederiza el contenido a mostrar
                             • Lado Cliente
            • Muestra la web renderizada en formato HTML en el
                                  navegador
Prof.: José Molina                          CIUDAD BOLIVAR 09/10/2012
Conectar con el servidor de bases de datos:
                            mysql_connect()
                 Seleccionar una base de datos:
                           mysql_select_db()
          Enviar la instrucción SQL a la base de datos:
                              mysql_query()
                Obtener y procesar los resultados:
                mysql_num_rows() y mysql_fetch_array()
      Cerrar la conexión con el servidor de bases de datos:
                              mysql_close()




Prof.: José Molina                      CIUDAD BOLIVAR 09/10/2012
Mediante $_GET[‘variable’]
 •   Normalmente, GET es usado para obtener un archivo u otro
     recurso, posiblemente con parámetros especificando más
     exactamente lo que se necesita. El contenido de la variable
                      es visible en navegador

                    Mediante $_POST[‘variable’]
     • Normalmente POST es usado para enviar un pedazo de
       datos al servidor para ser procesado, cualquier cosa que
          esto signifique. Gestion de contraseñas y variables
           importantes. De forma oculta en cabecera HTML

Prof.: José Molina                       CIUDAD BOLIVAR 09/10/2012
Seleccionar una base de datos: mysql_connect()
              Devuelve true en caso de éxito y false en caso
                                contrario
                             Sintaxis:
           $ CONEXIÓN = mysql_connect(SERVER,USER,PASS)

                             Ejemplo:
        mysql_connect(“localhost",“carlos", “1234") or die("No
                  se pudo conectar a la base ");




Prof.: José Molina         CIUDAD BOLIVAR 09/10/2012
Seleccionar una base de datos: mysql_select_db()
            Devuelve true en caso de éxito y false en caso
                              contrario
                             Sintaxis:
                     mysql_select_db (database);
                             Ejemplo:
                  mysql_select_db (“usuarios”)
       or die (“No se puede seleccionar la base de datos”);




Prof.: José Molina         CIUDAD BOLIVAR 09/10/2012
Enviar la instrucción SQL a la base de datos: mysql_query()
  • Devuelve un identificador o true (dependiendo de la
    instrucción) si la instrucción se ejecuta correctamente y
                       false en caso contrario

                           Sintaxis:

       $consulta = mysql_query (instrucción, $conexion);

                           Ejemplo:

        $consulta = mysql_query (“select * from noticias”,
                           $conexion)
                  or die (“Fallo en la consulta”);

          $consulta = mysql_query (VARIABLECADENA,
                           $conexion)
                  or die (“Fallo en la consulta”);

Prof.: José Molina       CIUDAD BOLIVAR 09/10/2012
mysql_real_escape_string():
           funcion para el escapado de
           caracteres antes de enviar la
                      query.




Prof.: José Molina   CIUDAD BOLIVAR 09/10/2012
Obtener y procesar los resultados: mysql_num_rows(),
                       mysql_fetch_array()

  •    mysql_query() devuelve las filas de la tabla afectadas
                        por la instrucción
       •   mysql_num_rows() devuelve el número de filas
                           afectadas

 •    mysql_fetch_array(), que obtiene una fila del resultado
         en un array asociativo cada vez que se invoca
                            Sintaxis:
               $nfilas = mysql_num_rows ($consulta);
               $fila = mysql_fetch_array ($consulta);




Prof.: José Molina        CIUDAD BOLIVAR 09/10/2012
Cerrar la conexión con el servidor de bases de datos:
                       mysql_close()
                           Sintaxis:
                 mysql_close ($IDCONEXION);
                           Ejemplo
                     mysql_close ($conexion);


  “MUY IMPORTANTE SIEMPRE DEBEMOS CERRAR LA CONEXIÓN
   PARA EVITAR POSIBLES HACKS A NUESTRA BASE DE DATOS”




Prof.: José Molina                     CIUDAD BOLIVAR 09/10/2012
•   Requisitos
                   •Servidor web Apache (www.apache.org)
                    • con el módulo PHP (www.php.net)
        •   y la base de datos MySQL (www.mysql.com) si se desea
                            crear páginas dinámicas

                       •   Utilidades Recomendadas
            •    XAMPP es una distribución de Apache que incluye
                MySQL, PHP y otras herramientas para el desarrollo de
                     aplicaciones web, como phpMyAdmin.
                       (http://es.wikipedia.org/wiki/XAMPP)

        •       Editores de PHP, como DevPHP (www.sourceforge.net),
                            • Manuales de PHP y MySQL




Prof.: José Molina                   CIUDAD BOLIVAR 09/10/2012
BASE DE DATOS
             DISTRIBUIDAS
                     ORACLE




                                                       r
                                                    sto
                                                  Pa
                                                  lo
                                                za
                                              on
Prof.: José Molina




                                             G
                          CIUDAD BOLIVAR 09/10/2012




                                              .
                                           Lic
Se trata de una base de datos a nivel lógico, pero que
en realidad (físicamente) está implementada en varias
ubicaciones físicas, incluso en máquinas diferentes y
distantes.

Cada máquina ejecuta su propia instancia y conjuntos
de archivos y todas se conectan en red para hacer
que el usuario no tenga que cambiar su código para
reflejar esta distribución.

La dificultad de esta estructura suele estar aliviada
por medio de instantáneas que graban
momentáneamente os datos de las tablas distantes.

Permiten trabajar con los datos copiados y se
programan para que cada cierto tiempo recojan
nuevamente los datos a fin de reflejar sus cambios.

Posee arquitectura
   cliente/servidor.
Utiliza el software de redOracl
e Net8 para comunicación
entre bases de datos. Net8
permite a las bases de datos
comunicarse a través de redes
para  soportar transacciones
distribuidas y remotas.

Empaqueta sentencias SQL en
uno de los muchos protocolos
de comunicación para
facilitar al cliente la
comunicación con el servidor
y después empaqueta y
devuelve los resultados de
forma similar al cliente
DATABASE LINKS
Concepto central en las BD distribuidas en
ORACLE.

Un DB Link define un camino unidireccional
desde una BD ORACLE a otra.

Un usuario local puede acceder a través de
un link a objetos de esquemas de otros
usuarios en BD
remotas (siempre que tenga permiso suficient
e para hacerlo) como si se tratara de una
única BD.

Se almacenan en el catálogo:
   SELECT db_link FROM user_db_links;
CREACIÓN Y BORRADO DB
                LINK
Creación:
  Crea un link público de nombre nombreLink que establece

   un enlace a una BD remota cuya ubicación está descrita
   en el nombre de servicio a través un usuario y contraseña
   de dicha BD.

        CREATE PUBLIC DATABASE LINK nombreLink
       CONNECT TO usuario IDENTIFIED BY contraseña
              USING 'nombre de servicio';

Borrado:

           DROP [PUBLIC] DATABASE LINK nombreLink
NOMBRE DE SERVICIO
Cada BD es identificada unívocamente en una         BD
distribuida por un nombre global de BD. Este consta del
nombre de la BD junto con el nombre del host en la red
en la que esta BD está ubicada.

Este nombre se hace transparente al usuario mediante el
uso de nombres de servicio (service names) en la
definición de los enlaces (links).

Los nombres de servicio se definen en el archivo
tnsnames.ora                de Oracle, cuya ubicación
depende del ordenador:
 
   c:oracleora92networkadmintnsnames.ora
EJEMPLO

NombreServiceName =
  (DESCRIPTION =
     (ADDRESS_LIST =
       (ADDRESS = (PROTOCOL = TCP)(HOST=
         NombreOrdenadorEnRed)(PORT = 1521))
   )
   (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = NombreBD)
    )
)
TIPOS DE DBLINKS
                              USUARIOS
ENLACES

 PRIVADOS: Sólo lo              FIXED: Hay que
  puede usar el que los           indicar en la
  crea.                           definición usuario y
(CREATE                           contraseña.
  DATABASELINK ....)
                              
                                  CONNECTED USER(SIN

    PÚBLICOS: Lo pueden           CONNECT): Válido
    usar todos los usuarios       para el usuario
    de la BD.                     conectado. Debe
                                  tener en la BD remota
                                  una cuenta con el
(CREATEPUBLICDATABA               mismo nombre de
  SELINK ....)                    usuario y misma
                                  contraseña.
LINKS

El nombre de un objeto en una BD es unívoco
dentro del esquema de su propietario. Sin
embargo, en una BD remota puede existir un
esquema      con      el     mismo      nombre,
que puede tener un objeto con el mismo nombre.

   Acceso a través de un link a un objeto remoto de un
    determinado propietario en una BD remota:
           propietario.nombreObjeto@nombreLink
    O bien
                nombreObjeto@nombreLink


    Si el usuario que accede al objeto es el propietario del
    mismo.
CONSULTA A BDD
              REMOTAS
Para realizar consultas en una BD distribuida
podemos utilizar objetos situados en una BD remota. Se
utiliza para ello los links previamente creados.

   SELECT nombre
   FROM dbb.autor@link
   WHERE nacionalidad = "Francia“

    SELECT nombre

    FROM dbb.autor@link, libro

    WHERE dbb.autor.idautor@link = libro.idautor
   AND nacionalidad = "Francia“

También es posible realizar operaciones de
actualización (insert, update, delete) en la BD
remota, siempre que tengamos el permiso         necesario
para realizarlas.
SINONIMOS
Las referencias a las tablas de la BD remota en las anteriores
consultas no son transparentes al usuario : necesita conocer el
nombre del link y el propietario dela tabla. Para hacerlas
totalmente transparentes se pueden definir sinónimos.

CREACIÓN:

     CREATE [PUBLIC] SYNONYM nombreSinomimo
    FOR nombreObjeto;

Permite referirse a un nombre global de un objeto a través del
  sinónimo.

Esconde el acceso remoto a la tabla haciendo transparente su
  acceso. El parámetro

PUBLIC hace disponible el sinónimo para todos los usuarios.
EJEMPLO DE
      CREAR/BORRAR SINÓNIMO
 CREATE SYNONYM autores
 FOR dbb.autor@link

Autores actúa como sinónimo de dbb.autor@link .
Ahora podemos definir consultas totalmente
transparentes al usuario:
  SELECT nombre
  FROM autores
  WHERE nacionalidad = "Francia"

 DROP[PUBLIC] SYNONYM autores;
WIKI:
         •APACHE: http://wiki.apache.org/general/
           •PHP: http://es.wikipedia.org/wiki/PHP
        •MYSQL: http://es.wikipedia.org/wiki/MySQL

                LIBROS y REFERENCIA:
   •DREAMWEAVER 8 Y PHP | Ed.ANAYA (David Powers)
    •PHP Y MYSQL | Ed.RA-MA (Jacobo Pavon Puertas)
 •FLASH CS3 DINAMICO, AS3, PHP, XML Y BD | Ed.ANAYA
        •PHP, XML Y BASES DE DATOS | Ed.ANAYA
                      Referencia
 http://es.scribd.com/lvillacorta_1/d/48466088BASE-DE-DATO




Prof.: José Molina    CIUDAD BOLIVAR 09/10/2012
Conexion a bases de datos

Más contenido relacionado

La actualidad más candente

Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
Jorge Garcia
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
LuiS YmAY
 
Introducción a la Capa de Red
Introducción a la Capa de RedIntroducción a la Capa de Red
Introducción a la Capa de Red
Javier Peinado I
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
josecuartas
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
Comdat4
 
Comparacion de Gestores de Base de Datos
Comparacion de Gestores de Base de DatosComparacion de Gestores de Base de Datos
Comparacion de Gestores de Base de Datos
Victor Zevallos
 
La capa de aplicación
La capa de aplicaciónLa capa de aplicación
La capa de aplicación
Juan Alvarez
 
Configuracion y administracion del espacio en disco
 Configuracion y administracion del espacio en disco Configuracion y administracion del espacio en disco
Configuracion y administracion del espacio en disco
Yael_21
 

La actualidad más candente (20)

Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Fundamentos de las bases de datos
Fundamentos de las bases de datosFundamentos de las bases de datos
Fundamentos de las bases de datos
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
Programacion de base de datos - Unidad 1: Conexion a la base de datos con un ...
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridad
 
Modelo Relacional (Base de Datos)
Modelo Relacional (Base de Datos)Modelo Relacional (Base de Datos)
Modelo Relacional (Base de Datos)
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Introducción a la Capa de Red
Introducción a la Capa de RedIntroducción a la Capa de Red
Introducción a la Capa de Red
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
DDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datosDDL - Lenguaje de definición de datos
DDL - Lenguaje de definición de datos
 
Unidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos ConceptualUnidad 3 Modelamiento De Datos Conceptual
Unidad 3 Modelamiento De Datos Conceptual
 
Curso de Python
Curso de PythonCurso de Python
Curso de Python
 
Capa de enlace de datos
Capa de enlace de datosCapa de enlace de datos
Capa de enlace de datos
 
Comparacion de Gestores de Base de Datos
Comparacion de Gestores de Base de DatosComparacion de Gestores de Base de Datos
Comparacion de Gestores de Base de Datos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
La capa de aplicación
La capa de aplicaciónLa capa de aplicación
La capa de aplicación
 
Configuracion y administracion del espacio en disco
 Configuracion y administracion del espacio en disco Configuracion y administracion del espacio en disco
Configuracion y administracion del espacio en disco
 

Similar a Conexion a bases de datos

Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
josecuartas
 
Bases dedatossql serveryc
Bases dedatossql serverycBases dedatossql serveryc
Bases dedatossql serveryc
veron3144
 

Similar a Conexion a bases de datos (20)

U7 postgre sql
U7 postgre sqlU7 postgre sql
U7 postgre sql
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
Programa yaaaa
Programa yaaaaPrograma yaaaa
Programa yaaaa
 
Qué es el odbc
Qué es el odbcQué es el odbc
Qué es el odbc
 
Designer oracle
Designer oracleDesigner oracle
Designer oracle
 
DAM-S5.pptx
DAM-S5.pptxDAM-S5.pptx
DAM-S5.pptx
 
Sistema.inventario@hotmail.com
Sistema.inventario@hotmail.comSistema.inventario@hotmail.com
Sistema.inventario@hotmail.com
 
tecnología de conectividad de datos
tecnología de conectividad de datostecnología de conectividad de datos
tecnología de conectividad de datos
 
Taller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 ConectividadTaller de Base de Datos - Unidad 7 Conectividad
Taller de Base de Datos - Unidad 7 Conectividad
 
Sercicios web
Sercicios webSercicios web
Sercicios web
 
Taller No. 1 Introducción a Bases de Datos
Taller No. 1 Introducción a Bases de DatosTaller No. 1 Introducción a Bases de Datos
Taller No. 1 Introducción a Bases de Datos
 
Taller No. 1 Introducción a Bases de Datos
Taller No. 1 Introducción a Bases de DatosTaller No. 1 Introducción a Bases de Datos
Taller No. 1 Introducción a Bases de Datos
 
Conexión a SQL Server con C#.NET a través de ODBC
Conexión a SQL Server con C#.NET a través de ODBCConexión a SQL Server con C#.NET a través de ODBC
Conexión a SQL Server con C#.NET a través de ODBC
 
Act4 bd moreno_joel
Act4 bd moreno_joelAct4 bd moreno_joel
Act4 bd moreno_joel
 
Java con base de datos
Java con base  de datosJava con base  de datos
Java con base de datos
 
curso_mysql.pdf
curso_mysql.pdfcurso_mysql.pdf
curso_mysql.pdf
 
Bases dedatossql serveryc
Bases dedatossql serverycBases dedatossql serveryc
Bases dedatossql serveryc
 
bases de-datos_sql_server_con_c_
bases de-datos_sql_server_con_c_bases de-datos_sql_server_con_c_
bases de-datos_sql_server_con_c_
 
Phpy odbc
Phpy odbcPhpy odbc
Phpy odbc
 
Java con Base de Datos
Java con Base de DatosJava con Base de Datos
Java con Base de Datos
 

Más de Universidad Nororiental Gran Mariscal de Ayacucho

Más de Universidad Nororiental Gran Mariscal de Ayacucho (20)

Roraima acoep (enero 2016)
Roraima acoep (enero 2016)Roraima acoep (enero 2016)
Roraima acoep (enero 2016)
 
Roraima acoep (enero 2016)
Roraima acoep (enero 2016)Roraima acoep (enero 2016)
Roraima acoep (enero 2016)
 
Sistemas operativos distribuidos
Sistemas operativos distribuidosSistemas operativos distribuidos
Sistemas operativos distribuidos
 
Material de exposición de MSF
Material de exposición de MSFMaterial de exposición de MSF
Material de exposición de MSF
 
Presentación Socio Política Ley Orgánica de Educación
Presentación Socio Política Ley Orgánica de EducaciónPresentación Socio Política Ley Orgánica de Educación
Presentación Socio Política Ley Orgánica de Educación
 
Foro misiones sociales
Foro misiones socialesForo misiones sociales
Foro misiones sociales
 
La educacion que venezuela necesita
La educacion que venezuela necesitaLa educacion que venezuela necesita
La educacion que venezuela necesita
 
Metodologia kendall y Kendall
Metodologia kendall y KendallMetodologia kendall y Kendall
Metodologia kendall y Kendall
 
Seguridad en sistemas computacionales
Seguridad en sistemas computacionalesSeguridad en sistemas computacionales
Seguridad en sistemas computacionales
 
Fundamentos de sistemas operativos final
Fundamentos de sistemas operativos finalFundamentos de sistemas operativos final
Fundamentos de sistemas operativos final
 
Exposicion documentacion de sistemas
Exposicion documentacion de sistemasExposicion documentacion de sistemas
Exposicion documentacion de sistemas
 
Implantacion de sistemas
Implantacion de sistemasImplantacion de sistemas
Implantacion de sistemas
 
Auditoria
AuditoriaAuditoria
Auditoria
 
Kendal y Kendal
Kendal y KendalKendal y Kendal
Kendal y Kendal
 
Xp
XpXp
Xp
 
Diapositivas xp
Diapositivas xpDiapositivas xp
Diapositivas xp
 
Programación Xp Nocturno
Programación Xp NocturnoProgramación Xp Nocturno
Programación Xp Nocturno
 
Metodologia ROM
Metodologia ROMMetodologia ROM
Metodologia ROM
 
Metodologia omt
Metodologia omtMetodologia omt
Metodologia omt
 
Rup
RupRup
Rup
 

Último

PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
lupitavic
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Francisco158360
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 

Último (20)

Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Imperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperioImperialismo informal en Europa y el imperio
Imperialismo informal en Europa y el imperio
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 

Conexion a bases de datos

  • 1. Autor : Profesor: José Molina MSc r sto Asesor de Proyectos y Sistemas de Información Pa Email : rmolinaj@gmail.com lo za Web : www.rmolinaj.es.tl on Google : sites.google.com/site/sulbaranjose29/ G CIUDAD BOLIVAR 09/10/2012 . Lic
  • 2. Base de Datos con Visual Basic Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 3. SQL t e Sd oce R r
  • 4. ¿Qué es el ODBC? Open Data Base Conectivity: Conectividad abierta de bases de datos. Si escribimos una aplicación para acceder a las tablas de una DB de Access, ¿qué ocurrirá si después queremos que la misma aplicación, y sin reescribir nada, utilice tablas de SQL Server u otra DB cualquiera? La respuesta es sencilla: no funcionará. Nuestra aplicación, diseñada para un motor concreto, no sabrá dialogar con el otro. Evidentemente, si todas las DB funcionaran igual, no tendríamos este problema.... aunque eso no es probable que ocurra nunca.
  • 5. Pero si hubiera un elemento que por un lado sea siempre igual, y por el otro sea capaz de dialogar con una DB concreta, solo tendríamos que ir cambiando este elemento, y nuestra aplicación siempre funcionaría sin importar lo que hay al otro lado. A esas piezas intercambiables las llamaremos orígenes de datos de ODBC Casi todas las DB actuales tienen un ODBC. Debido a que este elemento impone ciertas limitaciones, ya que no todo lo que la DB sabe hacer es compatible con la aplicación, como velocidad de proceso, tiempos de espera, máxima longitud de registro, número máximo de registros, versión de SQL, etc., está cayendo en desuso a cambio de otras técnicas de programación, pero aún le quedan muchos años de buen servicio.
  • 6.
  • 7. Modelo de datos ADO ADO (ActiveX Data Objects) es una tecnología orientada a objetos para componentes ActiveX basada en una API en C++ llamada OLE DB. Para los programadores, presenta la inestimable ventaja de poder prescindir de los detalles de programación de bajo nivel de OLE DB a la hora de acceder a datos almacenados en BD relacionales o no relacionales. Los objetos ADO, por ser componentes ActiveX, pueden invocarse desde cualquiera de los lenguajes más populares que trabajen con objetos. Los objetos ADO son independientes del lenguaje que se utilice al accederlos (Visual Basic, JavaScript, VBScript, etc.) y permiten conectarse a cualquier BD compatible con ODBC a través de un interfaz basado en objetos. ADO expone al programador tres objetos principales para acceder a los datos: el objeto Connection, el objeto Command y el objeto RecordSet.
  • 8. RecordSet Un objeto Recordset es una tabla en memoria que contiene los datos que manejará nuestra aplicación. Esta tabla almacena el resultado obtenido por las consultas realizadas sobre la base de datos a la que nos encontremos conectados mediante el objeto Connection. Un Recordset se encuentra formado por filas (tuplas o registros) y columnas (atributos o campos), a las que deberemos hacer referencia para poder acceder a sus datos.
  • 9. El objeto Recordset mantiene la posición de cada registro devuelto por la consulta, lo que nos permite "recorrer" los resultados de uno en uno. Las buenas aplicaciones de base de datos emplean el objeto Connection para establecer un vínculo y el objeto Recordset para manipular los datos devueltos lo que permite desarrollar aplicaciones de bases de datos que realicen casi cualquier tarea de tratamiento de datos ¿Qué diferencia hay entre una tabla de una DB y un RecordSet?
  • 10. Tabla Atributos Campos BOF Puntero EOF Tuplas Registros
  • 11. 3 Pasos Previos a Insertar Datos Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 12. 1) Crear una base de datos en un gestor ej: Informix, Access, Oracle, ... Llamarle Mensajeria a la Base de Datos
  • 13. 2) Crear un ODBC en el Panel de Control del Sistema Operativo Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 14. Paso 1: Tipo de ODBC
  • 16. Paso 3: odbc_mensajeria
  • 19. PASO 3: Conectar desde Visual Basic Agregar un módulo que contenga:
  • 20. PASO 4: Realizar la Programación Visual Basic Imports net.tablas1.db.oldb Agregar un objeto que contenga: Imports system.data Imports system.data.oldb PUBLIC CLASS Incluir Private sub Button1_click(ByVal sender As system.Object, Byval e As system.EventArgs) Handles Button1.click Dim a= nom_trabj.text Dim b= pago_trabj.text Dim RS As New Dataset if (b=“”) then Msgbox(“No debe dejar ningun campo en blanco..”),MsgboxStyle.critical) else If MessageBox.Show(“seguro de guardar?, MessageBoxbuttons.Yesno) = windows. forms.dialogResult.yes then Dim Conect as String =“provider=microsoft.jet.oledeb.4.0;data source=C:sistema vb30-mensajeriamensajeria.mdb;jet OLEDB:Database Password=p@rto” Using conexión As new oledb.Oledbconnection(Conect) conexión.Open() Dim CadenaSQL as String CadenaSQL = “INSERT INTO nom_trab,pago_sld) values (‘”& a &” ‘ ,’ “&b&”’)” Dim cmd As New OledbCommnad(CadenaSQL,conexión) Dim I As Integer = cmd.executeNonQuery Msgbox(“Se agrego con éxito..” + I. to String + “Registro”) conexión.Close() nom_trabj.clear() pago_trabj.clear() nom_trabj.focus() End Using endif endif End sub
  • 21. Conectar una Base de Datos en JAVA Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 22. JAVA Java es un lenguaje de programación introducido por Sun Microsystem cuyas características lo sitúan, junto a Microsoft C# (C Sharp). Ambos lenguajes de programación son orientados a objetos, en los cuales existe la herencia, que hace mas fácil la programación de aplicaciones y códigos reutilizables.
  • 23. INTRODUCCIÓN Hoy en día muchas de las empresas, organizaciones, o pequeños negocios necesitan guardar información y tenerla a disposición cuando se le necesite, y hacer esto de manera manual suele ser masivamente tedioso y desgastante. Es por eso que la creación de aplicaciones que puedan manipular datos en una base de datos, sea convertido en una forma de agilizar y hacer mucho mas fácil el manejo de información.
  • 24. JAVA Este lenguaje de programación de hizo muy popular debido a la gran facilidad para construir aplicaciones robustas, sin la necesidad de ocupar una gran cantidad de espacio en disco, lo que lo convirtió en el lenguaje ideal para crear aplicaciones para internet, además de también ser independiente de la plataforma Esto gracias a la JVM (Java Virtual Machine, la maquina virtual de Java), que le da esa capacidad de ser independiente de la plataforma y funcionaren diferentes Sistemas Operativos (Windows, Linux, Mac, entre otros).
  • 25. JAVA También gracias a la JVM, no hay necesidad que las aplicaciones Java tengan todo el código maquina necesario para ejecutarse. Por el contrario una aplicación Java al compilarse solo genera archivos byte codes Que son interpretados por la JVM y esta ejecuta la aplicación Por ejemplo una aplicación grafica en C++ ocupa de DDLs (todo el código maquina), mas el código fuente con el que se programo para poder ejecutarse en Windows, lo que vendría a ocupar alrededor de 5MB
  • 26. JAVA Los que por el contrario, una aplicación grafica en Java viene a ocupar tal ves unos 500 KB, porque todo el código maquina para ejecutar la aplicación ya esta instalado en la PC y ya no es necesario que vaya empaquetado junto con la aplicación
  • 27. ENTORNO DE DESARROLLO DE JAVA Para poder desarrollar aplicaciones en Java es necesario tener instalado el JDK (Java Development Kit), Que incluye un conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en Java Existen diferentes versiones de Java para desarrollar aplicaciones empresariales, aplicaciones como mas personales y aplicaciones para dispositivos móviles.
  • 29. ENTORNO DE DESARROLLO DE JAVA El J2SE proporciona la base para desarrollar y distribuir aplicaciones que podrán ejecutarse en un servidor o en un ordenador personal con distintos sistemas operativos Este entorno de desarrollo incluye las librerías AWT, SWING y SQL que permiten crear aplicaciones graficas con acceso a bases de datos
  • 30. ENTORNO DE DESARROLLO DE JAVA El J2SE proporciona la base para desarrollar y distribuir aplicaciones que podrán ejecutarse en un servidor o en un ordenador personal con distintos sistemas operativos
  • 31. SQL (STRUCTURE QUERY LANGUAGE) Es un lenguaje estándar para interactuar con bases de datos relacionales y es soportado prácticamente por todos los sistemas administradores de bases de datos actuales SQL incluye operaciones de definición como CREATE, al igual que operaciones de manipulación de datos como INSERT, UPDATE, SELECT y DELETE Los datos de una base de datos relacional se almacenan en tablas lógicamente relacionadas entre si utilizando campos claves comunes, a su ves cada tabla dispone de datos en filas y columnas
  • 32. QUE ES UNA TABLA DE BASE DE DATOS Es una colección de datos presentados en forma de matriz bidimensional, que esta conformada por columnas y filas, donde las filas reciben el nombre de registros y las columnas de campos Los usuarios de un sistema administrador de bases de datos pueden realizar sobre una determinada base de datos operaciones tales como: Insertar Recuperar Modificar Eliminar Buscar
  • 33. FUNDAMENTOS PARA ESTABLECER UNA CONEXIÓN CON UNA BASE DE DATOS JAVA proporciona una API(ApplicationProgramming Interface) llamada JDBC (Java Data Base Connectivity) para poder hacer conexiones con bases de datos relacionales a través de un controlador especifico para acceder a una base de datos especifica (MySQL, SQL, Postgre SQL) y poder ejecutar instrucciones SQL desde la aplicación Java
  • 34. JDBC (JAVA DATABASE CONNECTIVITY) Esta API proporciona un conjunto de clases que permite ejecutar instrucciones SQL para manipular y gestionar bases de datos relacionales Pero previamente a que un aplicación java pueda hacer operaciones sobre una base de datos, debe de existir una conexión entre la aplicación Java y la base de datos a manipular con esta aplicación
  • 35. CONTROLADORES La conexión entre la aplicación Java y la base de datos se hace a través de un controlador (driver). La función de este controlador es traducir los mensajes de bajo nivel del sistema base de datos a mensajes de bajo nivel de la API JDBC y viceversa Fabricantes particulares proporcionan controladores (drivers) específicos para acceder a sus sistemas de bases de datos
  • 36. PAQUETE JDBC El API JDBC se proporciona en el paquete java. Sql incluido en el JDK (Java Development Kit) J2SE(Java 2 Platform Estándar Edition). Este paquete contienen las interfaces y clases Java fundamentales de JDBC, entre ellas cabe destacar: Driver: permite conectarse a una base de datos. Cada sistema administrador de bases de datos requiere un controlador (Driver) especifico Driver Manager: Permite gestionar todos los controladores instalados en la maquina virtual de java
  • 37. PAQUETE JDBC Connection: representa una conexión con una base de datos Statement: Permite ejecutar instrucciones SQL ResultSet: Conjunto de resultados. Contiene las filas obtenidas al ejecutar una sentencia SELECT ResultSetMetaData: Permite obtener información sobre un ResultSet, por ejemplo el numero de columnas, sus nombres, tipos. De estas clases, cualquier aplicación Java utilizara casi siempre estas cuatro:
  • 38. PAQUETE JDBC DriverManager utilizada para crear un objeto Connection, objeto que será utilizado para crear un objeto Statement, que a su ves será utilizado para crear un objeto ResultSet DriverManager utilizada para crear un objeto Connection, objeto que será utilizado para crear un objeto Statement, que a su ves será utilizado para crear un objeto ResultSet
  • 39. CONECTAR CON LA FUENTES DE DATOS La clase Driver Manager contiene el método getConnection(argumento URL) que devuelve un objeto de tipo Connectiony es a partir de este método que se crea este tipo de objeto. Una ves registrado el controlador JDBC Class.for Name ("org.sqlite.JDBC"); Se solicita a Driver Manager que proporcione una conexión con una base de datos, en este caso se hará con SQLite Objeto Connection =DriverManager.getConnection ( "jdbc:sqlite: rutaMiBD.db")
  • 40. CONECTAR CON LA FUENTES DE DATOS Si Driver Manager no encuentra el controlador de acuerdo al URL especificado, genera una excepción de tipo SQLException, que se captura con: try{ código que puede generar una excepción} catch(SQLException e) {Mensaje con el error que se capturo en error}
  • 41. CONECTAR CON LA FUENTES DE DATOS Cada controlador utiliza un URL de acuerdo con el protocolo JDBC. Por ejemplo: Para SQLite; DriverManager.getConnection("jdbc:sqlite:rutaMiBD.db”) Para MySQL;DriverManager.getConnection("jdbc:mysql://servi dor/sMiBD",usuario,password); Para SQL;DriverManager.getConnection("jdbc:odbc:nombreorig en de datos , usuario, contraseña”)
  • 42. CONECTAR CON LA FUENTES DE DATOS En este caso se le agrega ODBC(Open Data base Connectivity) al URL, porque se usa el ODBC que viene por default en S.O. Windows para crear un origen de base de datos y utilizarlo como puente para acceder a los datos de la base de datos Una ves que ya se tiene la conexión guardada en un objeto de la clase Connection, se utiliza la clase Statement para crear otro objeto que nos permita ejecutar las instrucciones SQL, y que a su vez, y como se menciono anteriormente, este objeto nos servirá para crear un objeto ResultSet, que nos servirá para recuperar información de la base de datos.
  • 43. CONECTAR CON LA FUENTES DE DATOS El objeto Statement sigue la siguiente estructura para poder crearse Objeto Statement = Objeto Connection.createStatement(); ExecuteUpdate (argumento Instrucción SQL ), este método nos sirve básicamente para ejecutar sentencias SQL como INSERT, UPDATE y DELETE, por lo que este método no tiene ningún tipo de retorno. Por ejemplo: Objeto Statement.excuteUpdate (“ DELETE FROM Alumnos WHERE ID_Alumno= 1”);
  • 44. RECUPERAR DATOS DE LA BASE DE DATOS Como se menciono anteriormente, para recuperar datos de una base de datos, enviaremos las sentencia SELECT como argumento del método excute Query de la clase Statement, este método nos va a devolver las filas que arroje el SELECT en capsulados en un objeto ResultSet Una ves que tenemos cargado el objeto ResultSet con filas, podemos movernos entre ellas con los siguientes métodos que proporciona esta clase. beforFirst(): Mover el cursor antes de la primera fila. first(): Mover el cursor a la primera fila. last(): Mover el cursor a la ultima fila. afterLast(): Mover el cursor después de la ultima fila.
  • 45. RECUPERAR DATOS DE LA BASE DE DATOS previous(): Mover el cursor a la fila anterior. next(): Mover el cursor a la fila siguiente absolute(fila): Mover el cursor a la fila especifica relative(n): Mover el cursor n filas a partir de la actual (n puede ser un numero entero positivo o negativo). Para obtener los datos de la fila donde esta el cursor, la interfaz ResultSet también proporciona varios métodos, algunos de ellos y básicamente los mas utilizados son:
  • 46. RECUPERAR DATOS DE LA BASE DE DATOS getString(String): Recupera el dato de la columna especificada por String getString(int): Recupera el dato de la columna indicada por el índice especificado Existen algunos métodos análogos a los anteriores que son utilizados cuando se sabe que el dato dela columna de la fila actual es entero o real, por ejemplo: getInt, getLong, getFloat y getDouble
  • 47. NAVEGAR POR LA BASE DE DATOS Hemos visto anteriormente que una vez obtenido un conjunto de resultados, podemos utilizar los métodos proporcionados por la interfaz ResultSet para movernos por dicho conjunto Para ello debemos conocer que un objeto ResultSet, por omisión y dependiendo del sistema administrador de bases de datos, no es actualizable y tiene un cursor que solo se mueve hacia adelante No obstante, es posible crear objetos ResultSet actualizables y que permitan moverse hacia atrás o adelante. Para poder hacer esto, se necesita mandarle 2 argumentos al método createStatement de la clase Statement, a la hora de crear este tipo de objeto.
  • 48. NAVEGAR POR LA BASE DE DATOS Estos argumentos son constantes enteras definidas en la interfaz ResultSet, los argumentos son: TYPE_SCROLL_INSENSITIVE. Crea un conjunto de resultados en el que el cursor se puede mover en ambas direcciones (desplazable) CONCUR_UPDATABLE. Indica que la hoja de resultados es actualizable Quedando de la siguiente forma la creación del Statement: Objeto Statement = objetoConnection.createStatement(ResulSet.TYPE_SCROL L_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
  • 49. CERRAR OBJETOS Entra dentro de practicas buenas de programación,cerrar los objetos Statement, ResultSet y Connection una ves que ya no serán usados, por ejemplo cuando se cierre la aplicación Java o cuando se termine de usar un ResultSet Cada una de estas clases contiene un método para hacer dicho proceso, el método se llama close(), fácil de usar, por ejemplo: Nombre Objeto.close();
  • 50. EN RESUMEN PARA CREAR UNA CONEXIÓN A BASE DE DATOS CON JAVA Registrar el ODBC Direccionar el controlador con Driver Manager Registrar la conexión con Connection Crear un objeto Statement para poder ejecutar instrucciones SQL Utilizar Resultset, ResultSet y MetaData para recuperar información de la base de datos. Cerrar objetos.
  • 51. EJEMPLO: DESCRIPCIÓN DE LOS COMPONENTES JAVA La aplicación que se construyo tiene los siguientes componentes, que se encuentran en el paquete javax.Swing: JFrame; ventana principal. JPanel; contenedor. JTable; para mostrar los registros. JButton; accionar las diferentes operaciones. JToolbar; para acomodar los botones. DefaultTableModel; para controlar la tabla. JTextField; para capturar información. JLabel; mostrar textos. JOptionPane; para mandar mensajes. Border; para pintar los bordes en los paneles, con un texto. JScrollPane; para desplazarse por los registros de la tabla cuando estos sean demasiados y ya no puedan visualizarse todos. Interfaces, actionListener y keyListener; para darle la capacidad de escuchar eventos a los botones y cajas de texto
  • 52. r sto Pa lo za on Prof.: José Molina G CIUDAD BOLIVAR 09/10/2012 . Lic
  • 53. ¿Qué es PHP? • HiperText Preprocesor • Tecnologia para servidor interpretada ¿Cómo Nace PHP? • Nace en Otoño de 1994 ¿Cómo se crea y sobre que base? • Basado en C y C++ aunque su primera versión fue escrita en Perl • Paradigma Imperativo y OO Rasmus Lerdorf Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 54. En la actualidad: • PHP 1, 1995 • PHP 2, 1995-1997 • PHP 3, 1997-2000… • PHP 4, Mayo 2000 • PHP 5, Julio 2004 VERSION ACTUAL Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 55. Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web mediante formularios Ventajas – Proporcionar información actualizada – Software libre bajo licencia GPL ( Codigo Fuentes y Modificable) – Facilitar la realización de búsquedas mediante formularios – Disminuir los costes de mantenimiento (mantenimiento lado cliente) – Multiplataforma (Unix, Win32, Mac) – Multitud Framewoks nos centramos en Logica de Negocios – Soporta más de 20 Sistemas de gestion de bases de datos: – MySQL mejor integracion con PHP – Oracle – SyBase Prof.: José Molina – PostgreSQL… CIUDAD BOLIVAR 09/10/2012
  • 56. Servidor web Cliente (navegador) Página Página Página PHP HTML HTML internet Intérprete PHP <?PHP $nombre = “micromante"; print ("<P>Hola, $nombre</P>"); ?> Hola,micromante <P>Hola, micromante</P> Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 57. FORM orden SQL PHP Base de resultado datos PASOS DEL PROCESO • Lado Cliente • Cliente pide mediante formulario HTML actualizar contenido • Lado Servidor • HTML mediante PHP conecta a la base de datos y hace la query • La BD devuelve variable con contenido y PHP la procesa • PHP rederiza el contenido a mostrar • Lado Cliente • Muestra la web renderizada en formato HTML en el navegador Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 58. Conectar con el servidor de bases de datos: mysql_connect() Seleccionar una base de datos: mysql_select_db() Enviar la instrucción SQL a la base de datos: mysql_query() Obtener y procesar los resultados: mysql_num_rows() y mysql_fetch_array() Cerrar la conexión con el servidor de bases de datos: mysql_close() Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 59. Mediante $_GET[‘variable’] • Normalmente, GET es usado para obtener un archivo u otro recurso, posiblemente con parámetros especificando más exactamente lo que se necesita. El contenido de la variable es visible en navegador Mediante $_POST[‘variable’] • Normalmente POST es usado para enviar un pedazo de datos al servidor para ser procesado, cualquier cosa que esto signifique. Gestion de contraseñas y variables importantes. De forma oculta en cabecera HTML Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 60. Seleccionar una base de datos: mysql_connect() Devuelve true en caso de éxito y false en caso contrario Sintaxis: $ CONEXIÓN = mysql_connect(SERVER,USER,PASS) Ejemplo: mysql_connect(“localhost",“carlos", “1234") or die("No se pudo conectar a la base "); Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 61. Seleccionar una base de datos: mysql_select_db() Devuelve true en caso de éxito y false en caso contrario Sintaxis: mysql_select_db (database); Ejemplo: mysql_select_db (“usuarios”) or die (“No se puede seleccionar la base de datos”); Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 62. Enviar la instrucción SQL a la base de datos: mysql_query() • Devuelve un identificador o true (dependiendo de la instrucción) si la instrucción se ejecuta correctamente y false en caso contrario Sintaxis: $consulta = mysql_query (instrucción, $conexion); Ejemplo: $consulta = mysql_query (“select * from noticias”, $conexion) or die (“Fallo en la consulta”); $consulta = mysql_query (VARIABLECADENA, $conexion) or die (“Fallo en la consulta”); Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 63. mysql_real_escape_string(): funcion para el escapado de caracteres antes de enviar la query. Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 64. Obtener y procesar los resultados: mysql_num_rows(), mysql_fetch_array() • mysql_query() devuelve las filas de la tabla afectadas por la instrucción • mysql_num_rows() devuelve el número de filas afectadas • mysql_fetch_array(), que obtiene una fila del resultado en un array asociativo cada vez que se invoca Sintaxis: $nfilas = mysql_num_rows ($consulta); $fila = mysql_fetch_array ($consulta); Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 65. Cerrar la conexión con el servidor de bases de datos: mysql_close() Sintaxis: mysql_close ($IDCONEXION); Ejemplo mysql_close ($conexion); “MUY IMPORTANTE SIEMPRE DEBEMOS CERRAR LA CONEXIÓN PARA EVITAR POSIBLES HACKS A NUESTRA BASE DE DATOS” Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 66. Requisitos •Servidor web Apache (www.apache.org) • con el módulo PHP (www.php.net) • y la base de datos MySQL (www.mysql.com) si se desea crear páginas dinámicas • Utilidades Recomendadas • XAMPP es una distribución de Apache que incluye MySQL, PHP y otras herramientas para el desarrollo de aplicaciones web, como phpMyAdmin. (http://es.wikipedia.org/wiki/XAMPP) • Editores de PHP, como DevPHP (www.sourceforge.net), • Manuales de PHP y MySQL Prof.: José Molina CIUDAD BOLIVAR 09/10/2012
  • 67. BASE DE DATOS DISTRIBUIDAS ORACLE r sto Pa lo za on Prof.: José Molina G CIUDAD BOLIVAR 09/10/2012 . Lic
  • 68. Se trata de una base de datos a nivel lógico, pero que en realidad (físicamente) está implementada en varias ubicaciones físicas, incluso en máquinas diferentes y distantes. Cada máquina ejecuta su propia instancia y conjuntos de archivos y todas se conectan en red para hacer que el usuario no tenga que cambiar su código para reflejar esta distribución. La dificultad de esta estructura suele estar aliviada por medio de instantáneas que graban momentáneamente os datos de las tablas distantes. Permiten trabajar con los datos copiados y se programan para que cada cierto tiempo recojan nuevamente los datos a fin de reflejar sus cambios. Posee arquitectura  cliente/servidor.
  • 69. Utiliza el software de redOracl e Net8 para comunicación entre bases de datos. Net8 permite a las bases de datos comunicarse a través de redes para  soportar transacciones distribuidas y remotas. Empaqueta sentencias SQL en uno de los muchos protocolos de comunicación para facilitar al cliente la comunicación con el servidor y después empaqueta y devuelve los resultados de forma similar al cliente
  • 70. DATABASE LINKS Concepto central en las BD distribuidas en ORACLE. Un DB Link define un camino unidireccional desde una BD ORACLE a otra. Un usuario local puede acceder a través de un link a objetos de esquemas de otros usuarios en BD remotas (siempre que tenga permiso suficient e para hacerlo) como si se tratara de una única BD. Se almacenan en el catálogo:  SELECT db_link FROM user_db_links;
  • 71. CREACIÓN Y BORRADO DB LINK Creación:  Crea un link público de nombre nombreLink que establece un enlace a una BD remota cuya ubicación está descrita en el nombre de servicio a través un usuario y contraseña de dicha BD. CREATE PUBLIC DATABASE LINK nombreLink CONNECT TO usuario IDENTIFIED BY contraseña USING 'nombre de servicio'; Borrado: DROP [PUBLIC] DATABASE LINK nombreLink
  • 72. NOMBRE DE SERVICIO Cada BD es identificada unívocamente en una BD distribuida por un nombre global de BD. Este consta del nombre de la BD junto con el nombre del host en la red en la que esta BD está ubicada. Este nombre se hace transparente al usuario mediante el uso de nombres de servicio (service names) en la definición de los enlaces (links). Los nombres de servicio se definen en el archivo tnsnames.ora de Oracle, cuya ubicación depende del ordenador:  c:oracleora92networkadmintnsnames.ora
  • 73. EJEMPLO NombreServiceName = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST= NombreOrdenadorEnRed)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = NombreBD) ) )
  • 74. TIPOS DE DBLINKS USUARIOS ENLACES  PRIVADOS: Sólo lo  FIXED: Hay que puede usar el que los indicar en la crea. definición usuario y (CREATE contraseña. DATABASELINK ....)  CONNECTED USER(SIN  PÚBLICOS: Lo pueden CONNECT): Válido usar todos los usuarios para el usuario de la BD. conectado. Debe tener en la BD remota una cuenta con el (CREATEPUBLICDATABA mismo nombre de SELINK ....) usuario y misma contraseña.
  • 75. LINKS El nombre de un objeto en una BD es unívoco dentro del esquema de su propietario. Sin embargo, en una BD remota puede existir un esquema con el mismo nombre, que puede tener un objeto con el mismo nombre.  Acceso a través de un link a un objeto remoto de un determinado propietario en una BD remota: propietario.nombreObjeto@nombreLink O bien nombreObjeto@nombreLink  Si el usuario que accede al objeto es el propietario del mismo.
  • 76. CONSULTA A BDD REMOTAS Para realizar consultas en una BD distribuida podemos utilizar objetos situados en una BD remota. Se utiliza para ello los links previamente creados.  SELECT nombre  FROM dbb.autor@link  WHERE nacionalidad = "Francia“  SELECT nombre  FROM dbb.autor@link, libro  WHERE dbb.autor.idautor@link = libro.idautor  AND nacionalidad = "Francia“ También es posible realizar operaciones de actualización (insert, update, delete) en la BD remota, siempre que tengamos el permiso necesario para realizarlas.
  • 77. SINONIMOS Las referencias a las tablas de la BD remota en las anteriores consultas no son transparentes al usuario : necesita conocer el nombre del link y el propietario dela tabla. Para hacerlas totalmente transparentes se pueden definir sinónimos. CREACIÓN: CREATE [PUBLIC] SYNONYM nombreSinomimo FOR nombreObjeto; Permite referirse a un nombre global de un objeto a través del sinónimo. Esconde el acceso remoto a la tabla haciendo transparente su acceso. El parámetro PUBLIC hace disponible el sinónimo para todos los usuarios.
  • 78. EJEMPLO DE CREAR/BORRAR SINÓNIMO CREATE SYNONYM autores FOR dbb.autor@link Autores actúa como sinónimo de dbb.autor@link . Ahora podemos definir consultas totalmente transparentes al usuario: SELECT nombre FROM autores WHERE nacionalidad = "Francia" DROP[PUBLIC] SYNONYM autores;
  • 79. WIKI: •APACHE: http://wiki.apache.org/general/ •PHP: http://es.wikipedia.org/wiki/PHP •MYSQL: http://es.wikipedia.org/wiki/MySQL LIBROS y REFERENCIA: •DREAMWEAVER 8 Y PHP | Ed.ANAYA (David Powers) •PHP Y MYSQL | Ed.RA-MA (Jacobo Pavon Puertas) •FLASH CS3 DINAMICO, AS3, PHP, XML Y BD | Ed.ANAYA •PHP, XML Y BASES DE DATOS | Ed.ANAYA Referencia http://es.scribd.com/lvillacorta_1/d/48466088BASE-DE-DATO Prof.: José Molina CIUDAD BOLIVAR 09/10/2012