jueves, 31 de marzo de 2011

Base De Datos.

  • Que son las bases de datos?.

    Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico.
    Las bases de datos tradicionales se organizan por campos, registros y archivos. Uncampo es una pieza única de información; un registro es un sistema completo de campos; y un archivo es una colección de registros. Por ejemplo, una guía de teléfono es análoga a un archivo. Contiene una lista de registros, cada uno de los cuales consiste en tres campos: nombre, dirección, y número de teléfono.

    Gestores de base de Datos.
    Un gestor de base de datos o sistema de gesti´on de base de datos (SGBD oDBMS) es un software que permite introducir, organizar y recuperar la información de las bases de datos; en definitiva, administrarlas. Existen distintos tipos de gestores de bases de datos: relacional, jerarquico, red, ... El modelo relacional es el utilizado por casi todos los gestores de bases de datos para PC´s.
    Características Generales de los Sistemas Gestores de B.D.
    Aunque hay multitud de aplicaciones para la Gestión de Bases de Datos diferentes en características y precios, podemos encontrar aspectos comunes en todos ellos:
    • Aceptan definiciones de esquemas y vistas (definición de diferentes bases de datos).
    • Manipulan los datos siguiendo las órdenes de los usuarios.
    • Cuidan que se respete la seguridad e integridad de los datos.
    • Permiten definir usuarios y las restricciones de acceso para cada uno de ellos.
    • Controlan la concurrencia y las operaciones asociadas a la recuperación de los fallos.

    Elementos básicos del diseño de base de datos
     Los elementos básicos de una base de datos son:
    1. entidades (entities)
    2. campos (fields)
    3. records
    4. archivos (files)
    5. llaves (keys)
             
     
    1.   Entidad – Persona, lugar, objeto u evento para el cual se obtiene y mantiene datos. Ejemplo: Cliente, Orden, Producto, Suplidor.
    2.  Campo – Atributo o característica de la entidad. Ejemplo: en la entidad Cliente, algunos campos pueden ser Nombre, Apellido, Dirección.
    3.   Record – Es una colección o grupo de campos que describen un miembro de una entidad. Ejemplo, el record de uncliente, o de un producto.
    4.   Archivo – Es un grupo de records que contienen datos sobre una entidad en específico. Ejemplo: el archivo de clientes, es archivo de productos, o de empleados.
    5.   Llave o "Key" – Es un campo que se usa para localizar, acceder o identificar un record en específico. Hay cuatro tipos de “key”:
    a.   "Primary key" – es un campo u combinación de campos que en forma única y mínima identifica un miembro en particular de una entidad. Es único porque no hay dos miembros con el mismo "key". Es mínimo porque contiene tan solo la información necesaria para identificar al miembro de la entidad. Si el "primary key" es una combinación de varios campos se conoce como “multivalue key".
    b.  "Candidate key" – cualquier campo que pueda servir como "primary key". Para seleccionar al "primary key", se escoge el campo que tenga menos datos y sea más fácil de usar. Cualquier campo que no es un "primary key" o un "candidate key" se llama "nonkey field."
    c.   "Foreign key" – es un cambo en un archivo que debe parear con el valor del "primary key" de otro archivo para que se pueda establecer una relación o “link” entre ambos archivos.
    d.  "Secondary key" – es un campo u combinación de campos que se puede usa para acceder records. Los "secondary keys" no necesitan ser únicos. Ejemplo: nombre del cliente, código postal (zipcode)

    Tipos de conexión a una BD (Base de Datos)

    1 - Conexión con DSN (ejemplo para Access)

    La conexion con DSN es la más cómoda, pero sólo se puede utilizar si tenemos acceso al Panel de Control de la máquina servidor. Por supuesto si estamos contruyendo una intranet tenemos el server a nuestro alcanze y a su Panel de Control.
    Si simplemente estamos aprendiendo ASP y usamos el PWS (Personal Web Server) o el IIS 4 de NT tambien disponemos de esta comodidad.
    Veamos como se realiza la conexion a una base de datos de Microsoft Access:

    Creamos nuestra base de Datos en Microsoft Access y la guardamos. Luego vamos a Inicio > Configuracion > Panel de Control y alli elegimos Fuentes de Datos ODBC
    Al ingresar nos encontramos con una pantalla que es el administrador de origenes de datos ODBC. En la solapa DSN de Usuario presionamos el boton Agregar. Luego seleccionamos Microsoft Access Driver (*.mdb) y presionamos Finalizar. Ahora se hara la conexión ODBC. Presionamos el boton Seleccionar y elegimos nuestra Base de Datos e ingresamos el nombre de la base en el primer campo.
    Por último el boton Aceptar
    Si todo salio bien debería aparecer el nombre de nuestra Base de Datos en la solapa DSN de usuario y ya tendremos hecha nuestra conexion ODBC a BS.

    Ahora debemos conectar la base de datos en la pagina ASP
    <%
    'Definimos la variable para la conexión.
    Dim Conex
    Set Conex = Server.CreateObject ("ADODB.Connection")
    'y ya estamos conectados a nuestra base de datos.
    Conex.Open "nombre de la BD"
    'aqui abrimos la tabla. ...
    %>


    Como vieron no es algo dificil... solo hay que aprenderser la linea de conexión. Pero recuerden que esto no servira si suben su BS y su sitio a internet. Para esto deben usar la siguiente conexón.

    2 - Conexión sin DSN

    Este tipo de conexión es más complicada, pero es lo que debemos utilizar si queremos olvidar el panel de control, ya que hacemos la conexión a la base de datos mediante comandos. Ademas es mas rápida ;)
    Observar bien bien la sintaxis... ya que es lo que nos trae los problemas siempre.

    Para Access usando ODBC:
    <%
    Dim Conex
    'Creamos el objeto de conexion ahora...
    Set Conex = Server.CreateObject ("ADODB.Connection")
    Conex.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\misitio\db\mibase.mdb;"
    %>

    Para Access 97 usando OLEDB:
    <%
    Dim Conex
    'Creamos el objeto de conexion ahora...
    Set Conex = Server.CreateObject ("ADODB.Connection")
    Conex.Open "Provider=Microsoft.Jet.OLEDB.3.51; Data Source=C:\misitio\db\mibase.mdb;"
    %>

    Para Access 2000 usando OLEDB:
    <%
    Dim Conex
    'Creamos el objeto de conexion ahora...
    Set Conex = Server.CreateObject ("ADODB.Connection")
    Conex.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\misitio\db\mibase.mdb;"
    %>

    Para SQL Sever:
    <%
    Dim Conex
    'Creamos el objeto de conexion ahora...
    Set Conex = Server.CreateObject ("ADODB.Connection")
    Conex.Open "driver={SQL Server};server=TU_SERVIDOR; database=NOMBRE_BASE; uid=sa;pwd="
    %>

    Importante: En los 3 primeros ejemplos, referidos todos a conexiones con bases de datos Access, use un path fijo. Lo puse asi, para el mejor entendimiento, pero generalmente se hace uso de la funcion Server.MapPath() la cual devuelve el path donde ejecutamos el script
    Les intentaré explicar el uso de esa función mediante un ejemplo que no tiene que ver con conexion a base de datos, pero intentaré que se relacione.
    <%
    Dim path
    'guardamos en la variable path lo que devuelve la función
    path = Server.MapPath("./")
    Response.Write path
    %>

    El código ejecutado, muestra el contenido de la variable path
    C:\InetPub\WWWRoot\directorio_actual
    Como ven la variable path contiene el directorio donde se ejecuta el script.
    Entonces esto se podría usar para indicar el path a la base de datos (que en los ejemplo anteriores lo escribiamos a mano)