Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Oracle vs. MYSQL




Enviado por josevallep1



    1. Oracle
    2. MySQL

    ORACLE

    ¿QUE ES ORACLE?

    Oracle es una potente herramienta cliente/servidor para la
    gestión
    de Bases de
    Datos.

    para su utilización primero sería
    necesario la instalación de la herramienta servidor
    (Oracle 8i) y posteriormente podríamos atacar a la
    base de datos
    desde otros equipos con herramientas
    de desarrollo
    como Oracle Designer y Oracle Developer, que son las herramientas
    básicas de programación sobre Oracle.

    Para desarrollar en Oracle utilizamos PL/SQL un
    lenguaje de
    5ª generación, bastante potente para tratar y
    gestionar la base de datos,
    también por norma general se suele utilizar SQL al crear
    un formulario.

    Es posible lógicamente atacar a la base de datos
    a través del SQL plus incorporado en el paquete de
    programas
    Oracle para poder realizar
    consultas, utilizando el lenguaje
    SQL.

    Oracle Developer: Es una herramienta que nos
    permite crear formularios en
    local, es decir, mediante esta herramienta nosotros podemos crear
    formularios, compilarlos y ejecutarlos, pero si queremos que los
    otros trabajen sobre este formulario deberemos copiarlo
    regularmente en una carpeta compartida para todos, de modo que,
    cuando quieran realizar un cambio,
    deberán copiarlo de dicha carpeta y luego volverlo a subir
    a la carpeta. Este sistema como
    podemos observar es bastante engorroso y poco fiable pues es
    bastante normal que las versiones se pierdan y se machaquen con
    frecuencia. La principal ventaja de esta herramienta es que es
    bastante intuitiva y dispone de un modo que nos permite componer
    el formulario, tal y como lo haríamos en Visual Basic o en
    Visual C, esto
    es muy de agradecer.

    Oracle Designer: Es una herramienta que se
    conecta a la base de datos y por tanto creamos los formularios en
    ella, de esta manera todo el mundo se conecta mediante Designer a
    la aplicación que contiene todos los formularios y no hay
    problemas de
    diferentes versiones, esto es muy útil y perfecto para
    evitar machacar el trabajo de
    otros. Pero el principal y más notable problema es la
    falta de un entorno visual para diseñar el formulario, es
    decir, nos aparece una estructura
    como de árbol en la cual insertamos un formulario, a la
    vez dentro de éste insertamos bloques o módulos que
    son las estructuras
    que contendrán los elementos del formularios, que pueden
    estar basados en tablas o no.
    Por lo tanto si queremos hacer formularios para practicar o para
    probar qué es esto de Oracle, os recomiendo que
    uséis Developer pues es mucho más fácil e
    intuitivo al principio.

    Oracle es un producto
    vendido a nivel mundial, aunque la gran potencia que
    tiene y su elevado precio hace
    que sólo se vea en empresas muy
    grandes y multinacionales, por norma general. En el desarrollo de
    páginas
    web pasa lo mismo: como es un sistema muy caro no está
    tan extendido como otras bases de datos, por ejemplo, Access,
    MySQL,
    SQL Server,
    etc.

    FUNCIONES ORACLE

    Una función es
    un conjunto de instrucciones en PL/SQL, que pueden ser llamados
    usando el nombre con que se le haya creado. Se diferencian de los
    procedimientos, en que las funciones
    retornan un valor al
    ambiende desde donde fueron llamadas.

    La sintaxis para crear una función es la
    siguiente:

    CREATE [OR REPLACE] FUNCTION name [(param [IN] datatype)
    . . .]
    RETURN datatype
    [IS|AS] pl/sql_subprogram

    El uso de OR REPLACE permite sobreescribir una
    función existente. Si se omite, y la función ya
    existe, se producirá, un error. El unico modificador
    permitido para los parámetros es IN, y si se omite, se
    tomará por defecto. Es decir, solo se permiten
    parámetros de entrada.

    A continuación se presenta un ejemplo de
    creación de una función:

    SQL> CREATE FUNCTION get_bal (acc_no IN NUMBER)
    1> RETURN NUMBER
    2> IS
    3> acc_bal NUMBER(11,2); /* declaración de una variable
    */
    4> BEGIN
    5> SELECT balance
    6> INTO acc_bal /* asignación */
    7> FROM accounts
    8> WHERE account_id = acc_no;
    9> RETURN(acc_bal);
    10> END

    La función get_bal retorna el balance de una
    cuenta dada.

    Si se desea eliminar (borrar) una función, se usa
    la instrucción:

    SQL> DROP FUNCTION name;

    CREACION DE UNA BASE DE DATOS EN
    ORACLE

    1. Requerimientos del
    Sistema

    Estacion de Trabajo:
    Procesador

    Pentium 166 MHz o Superior
    Minimo 128 Mb
    RAM*, 1 Gb
    Disco Duro
    Entre 298 y 587 Mb disponible de espacio en disco, dependiendo de
    la opcion que escoja
    Sistema Operativo:
    Windows NT 4.0,
    Windows 2000, Windows98 or Windows95
    * Requiere 256 Mb
    RAM si está usando utilidades
    JAVA
    (Compare, Merge, Version History Viewer, Version Event
    Viewer, Dependency Manager)
    Para
    Windows, Podrias necesitar una cuenta
    de Servidor.
    Servidor:

    Minimo 64 Mb RAM, de los
    cuales 32 Mb estarán disponibles para el System Global
    Area (SGA)
    Para cada Repositorio:
    Aproximadamente 140 Mb en el SYSTEM tablespace para los paquetes
    del repositorio, procedimeintos and vistas
    entre 20 y 325 Mb en otras tablespaces, para los datos
    del repositorio
    Oracle8i Enterprise Edition ó Standard Edition, release
    8.1.7*
    version de
    SQL*Plus compatible con su Base
    de datos
    version de TNS Listener compatible su Base de Datos

    2. Especificación
    parametros fichero INIT.ORA

    C:oracleadmindbicopspfileinit.ora

    Parametros

    • db_name = "dbicops"
    • db_files = 1024
    • db_block_size = 8192
    • control_files = ("C:oracleoradatadbicopscontrol01.ctl",
      "C:oracleoradatadbicopscontrol02.ctl",
      "C:oracleoradatadbicopscontrol03.ctl")
    • db_block_buffers = 13498
    • shared_pool_size = 36860928
    • processes = 150
    • log_buffer = 32768
    • max_dump_file_size = 10240 # limit trace file size to
      5M each
    • background_dump_dest =
      C:oracleadmindbicopsbdump
    • user_dump_dest =
      C:oracleadmindbicopsudump

    Especificación de Parámetros
    DB_NAME: indica el identificador de la BD que en este caso es
    ‘prueba’. Debe tener
    como máximo 8 caracteres. Único parámetro
    obligatorio.
    CONTROL_FILES: Este parámetro contendrá el nombre
    de los ficheros de
    control y su
    ubicación, como, por ejemplo:
    /DISK1/control01.conç
    DB_BLOCK_SIZE: Tamaño del bloque de datos
    de Oracle. Por defecto: 2K o 4K. Una
    vez fijado no puede modificarse.
    DB_BLOCK_BUFFERS: Especifica el número de buffers de la
    caché en la SGA. Cuanto
    más grande , menos acceso a disco tendremos. Sin embargo,
    ocuparemos más memoria
    y
    será necesario realizar más swapping. Compromiso
    de eficacia
    y rapidez.
    SHARED_POOL_SIZE: Tamaño en bytes del pool compartido. Por
    defecto: 3500000.
    LOG_BUFFER: Número de bytes asignados al buffer de redo
    log en la SGA.
    PROCESSES:Máximo número de
    procesos de SO que pueden acceder de
    forma
    concurrente. Mínimo: 1 por usuario +
    procesos de arrancados con cada
    instancia.
    DB_FILES: Número de ficheros que se podrán crear en
    una BD. Mín 1, máx depende del
    SO.
    LOG_FILES:Máximo número de ficheros de log.
    MAX_DUMP_FILE_SIZE: Máximo tamaño en bloques de SO
    de los ficheros de traza.
    BACKGROUND_DUMP_DEST: Ubicación de los ficheros de las
    trazas de los
    procesos.
    USER_DUMP_DEST: Ubicación de los ficheros de traza de los
    usuarios.
    CORE_DUMP_DEST: Ubicación de los ficheros de traza de los
    ficheros core.
    ROLLBACK_SEGMENTS: Nombres de los
    segmentos de rollback.

    3. Ejecución y creación de
    la

    base de datos
    (I)

    Ejecutamos el comando svrmrgl
    Ejecución y creación de la base de datos (II)
    SVRMGR> connect INTERNAL
    Connected.
    SVRMGR> startup nomount
    pfile="C:oracleadmindbicopspfileinit.ora"
    ORACLE instance started.
    Total System Global Area 153487388 bytes
    Fixed Size 75804 bytes
    Variable Size 42758144 bytes
    Database Buffers 110575616 bytes
    Redo Buffers 77824 bytes
    SVRMGR> CREATE DATABASE dbicops
    2> LOGFILE 'C:oracleoradatadbicopsredo01.log' SIZE
    1024K,
    3> 'C:oracleoradatadbicopsredo02.log' SIZE 1024K,
    4> 'C:oracleoradatadbicopsredo03.log' SIZE 1024K
    5> MAXLOGFILES 32
    6> MAXLOGMEMBERS 2
    7> MAXLOGHISTORY 1
    8> DATAFILE 'C:oracleoradatadbicopssystem01.dbf' SIZE 264M
    REUSE AUTOEXTEND ON NEXT 10240K
    9> MAXDATAFILES 254
    10> MAXINSTANCES 1
    11> CHARACTER SET WE8ISO8859P1
    12> NATIONAL CHARACTER SET WE8ISO8859P1;
    Statement processed.
    SVRMGR> spool off

    CREACION DE
    CONEXIONES A UNA BASE DE DATOS DE ORACLE

    Para conectarse a una base de datos, utilice el
    Proveedor de Microsoft OLE
    DB para Oracle.

    Nota   Para poder arrastrar y colocar
    elementos en el Explorador de servidores para
    bases de datos de Oracle, la conexión de datos debe
    utilizar el Proveedor de Microsoft OLE DB para Oracle.

    Nota de seguridad   El almacenamiento de
    los detalles de la cadena de conexión (como el nombre de
    servidor, el nombre de usuario y la contraseña) puede
    afectar a la seguridad de la aplicación. El uso de la
    Seguridad integrada de Windows es un
    modo más seguro de
    controlar el acceso a una base de datos.

    Existen dos maneras de conectarse a una base de datos de
    Oracle:

    • Visualmente, con herramientas de tiempo de
      diseño.
    • Mediante programación.

    Conectar a una base de datos de Oracle en el Explorador
    de servidores

    Para crear una conexión en el
    Explorador de servidores

    1. En el Explorador de servidores, haga clic con el
      botón secundario en Conexiones de datos y, a
      continuación, en Agregar conexión.
    2. En el cuadro de diálogo Propiedades de vínculo de
      datos, elija la ficha Proveedor.
    3. Haga clic en Proveedor de Microsoft OLE DB para
      Oracle y después en Siguiente.
    4. Escriba el servidor donde se encuentra la base de
      datos a la que desea obtener acceso.
    5. Escriba la contraseña que desea utilizar para
      la autenticación cuando inicie una sesión en el
      origen de datos.
    6. Haga clic en Aceptar.

    Conectar con una base de datos de Oracle desde la
    aplicación

    La creación de conexiones a orígenes de
    datos desde la aplicación se puede llevar a cabo
    visualmente utilizando los diseñadores de Visual Studio
    .NET o mediante programación, creando objetos de
    conexión a datos en el código.

    Conectar a una base de datos de Oracle
    Visualmente

    Visual Studio admite la creación de objetos de
    datos arrastrando elementos desde el Explorador de servidores o
    la ficha Datos del Cuadro de herramientas hasta el formulario o
    diseñador.

    Para crear una conexión desde el
    Explorador de servidores

    1. Cree una Conexión de datos en el Explorador de
      servidores para la base de datos de Oracle. Para obtener
      más información, vea la sección
      anterior titulada "Conectar a una base de datos de Oracle en el
      Explorador de servidores".
    2. Arrastre la conexión hasta el formulario o el
      diseñador.
    3. Aparecerá un objeto OracleConnection en la
      bandeja de componentes.
    4. Avance hasta la sección "Pasos siguientes" que
      aparece más adelante en este tema.

    Para crear una conexión desde la
    ficha Datos del Cuadro de herramientas

    1. Aparecerá un objeto OracleConnection no
      configurado en la bandeja de componentes.

    2. Arrastre un objeto OracleConnection hasta el
      formulario o diseñador.
    3. En la ventana Propiedades, haga clic en la propiedad
      ConnectionString.
    4. Seleccione una conexión existente en la lista
      desplegable o haga clic en Nueva conexión para abrir el
      cuadro de diálogo Propiedades de vínculo de datos
      y configure una conexión nueva.
    5. Avance hasta la sección "Pasos siguientes" que
      aparece más adelante en este tema.

    Conectar a una base de datos de Oracle mediante
    programación

    Puede crear un objeto OracleConnection directamente en
    el código.

    Para crear una conexión mediante
    programación entre la aplicación y una base de
    datos de Oracle

    • El siguiente código crea un objeto
      y define la
      propiedad
      OracleConnection.ConnectionString
      .
    • ' Visual
      Basic
    • Public Sub ConnectToOracle()
    • Dim conn As New
      OracleClient.OracleConnection()
    • ' TODO: Modify the connection string and include
      any
    • ' additional required properties for your
      database.
    • conn.ConnectionString = & _
    • "Data Source=<oracle data source
      name>;Integrated Security=yes"
    • Try
    • conn.Open()
    • ' Insert code to process data.
    • Catch ex As Exception
    • MessageBox.Show("Failed to connect to data
      source")
    • Finally
    • conn.Close()
    • End Try
    • End Sub
    • // C#
    • public void ConnectToOracle()
    • {
    • OracleClient.OracleConnection conn =
    • new OracleClient.OracleConnection ();
    • // TODO: Modify the connection string and include
      any
    • // additional required properties for your
      database.
    • conn.ConnectionString = "Data Source=" +
    • "<oracle data source name>;Integrated
      Security=yes";
    • try
    • {
    • conn.Open();
    • // Insert code to process data.
    • }
    • catch (Exception ex)
    • {
    • MessageBox.Show("Failed to connect to data
      source");
    • }
    • finally
    • {
    • conn.Close();
    • }
    • }
    • EXPLORADOR
      DE SERVICIORES PARA BASES DE DATOS ORACLE

    Las bases de datos de Oracle presentan algunas
    diferencias en el Explorador de servidores. Por ejemplo, cuando
    agrega una conexión a una base de datos de Oracle,
    verá las siguientes carpetas: Diagramas de base
    de datos, Tablas, Sinónimos, Vistas, Procedimientos
    almacenados, Funciones, Especificaciones de paquete y Cuerpos de
    paquete. En los siguientes temas se describen brevemente cada uno
    de los objetos del Explorador de servidores para bases de datos
    de Oracle.

    Diagramas de base de datos

    La carpeta Diagramas de base de datos contiene diagramas
    con nombre que muestran la estructura de la base de datos de
    forma gráfica. Para obtener más información
    sobre cómo trabajar con diagramas,

    Tablas

    La carpeta Tablas contiene las tablas base de la base de
    datos. Para obtener información adicional sobre
    cómo trabajar con tablas,

    Sinónimos

    La carpeta Sinónimos contiene nombres
    alternativos para las tablas, vistas, secuencias, procedimientos
    almacenados, funciones, paquetes e instantáneas. Puede
    utilizar sinónimos para tener acceso fácilmente a
    los objetos de base de datos sin utilizar
    calificadores.

    Para crear un nuevo
    sinónimo

    • Desde una consulta o secuencia de comandos SQL,
      ejecute la siguiente instrucción:
    • create synonym name

    for table

    Sustituya name por el nombre del sinónimo y
    table por el nombre de la tabla.

    Para recuperar datos de un
    sinónimo

    • En el Explorador de servidores, haga clic con el
      botón secundario del mouse
      (ratón) y elija Recuperar datos de sinónimo. Una
      cuadrícula muestra el
      propietario, nombre de columna, tipo de tabla,
      precisión, etc., para las columnas accesibles de todas
      las tablas, vistas y clústeres.

    Para obtener más información sobre
    cómo trabajar con sinónimos, consulte la documentación de Oracle.

    Vistas

    La carpeta Vistas contiene bloques con nombre de
    código SQL que filtran los datos disponibles de las tablas
    subyacentes. Para obtener información adicional sobre
    cómo trabajar con vistas.

    Procedimientos almacenados

    La carpeta Procedimientos almacenados contiene bloques
    con nombre de código SQL a los que ya se ha comprobado la
    sintaxis y se han compilado. Los procedimientos almacenados
    normalmente suponen una mejora de rendimiento.

    Funciones

    La carpeta Funciones contiene bloques con nombre de
    código SQL que puede devolver valores a un
    programa de
    llamada..

    Especificaciones del paquete

    La carpeta Especificaciones del paquete contiene
    grupos con
    nombre de procedimientos públicos, funciones, excepciones,
    variables,
    constantes y cursores. Las especificaciones de paquete resultan
    útiles para compartir datos y aumentar la eficiencia.

    Para crear una nueva
    especificación de paquete

    • En el Explorador de servidores, haga clic con el
      botón secundario del mouse en el nodo Especificaciones
      del paquete y elija Nueva especificación de paquete en
      el menú contextual. En el editor se muestra una
      plantilla con la sintaxis correcta de Oracle para
      especificaciones de paquete.
    • CREATE OR REPLACE PACKAGE USER.PACKAGE1
      AS
    • /*
    • FUNCTION FUNCTION_NAME( PARAMETERS )
    • RETURN DATATYPE;
    • PROCEDURE PROCEDURE_NAME( PARAMETERS );
    • */

    END;

    Para editar una especificación de
    paquete

    • En el Explorador de servidores, haga clic con el
      botón secundario del mouse y elija Editar
      especificación de paquete en el menú contextual.
      En el editor se muestra el código SQL para la
      especificación de paquete.

    Para obtener más información sobre
    cómo utilizar especificaciones de paquete, consulte la
    documentación de Oracle.

    Cuerpos de paquete

    La carpeta Cuerpos de paquete contiene cuerpos de
    paquete con nombre creados a partir de especificaciones de
    paquete. Para obtener más información sobre
    cómo trabajar con cuerpos de paquete, consulte la
    documentación de Oracle.

    Para crear un nuevo cuerpo de
    paquete

    • En el Explorador de servidores, haga clic con el
      botón secundario del mouse en el nodo Cuerpos de paquete
      y elija Nuevo cuerpo del paquete en el menú contextual.
      En el editor se muestra una plantilla con la sintaxis correcta
      de Oracle para cuerpos de paquete.
    • CREATE OR REPLACE PACKAGE BODY USER.PACKAGE1
      AS
    • /*
    • FUNCTION FUNCTION_NAME( PARAMETERS )
    • RETURN DATATYPE;
    • IS
    • RETURN_VARIABLE DATATYPE;
    • BEGIN
    • END;
    • PROCEDURE PROCEDURE_NAME( PARAMETERS );
    • AS
    • BEGIN
    • END;
    • */
    • END;

    Para editar un cuerpo de
    paquete

    • En el Explorador de servidores, haga clic con el
      botón secundario del mouse y elija Editar cuerpo de
      paquete en el menú contextual. En el editor se muestra
      el código SQL para el cuerpo de paquete.

    MYSQL

    ¿QUE ES MYSQL?

    Mysql es una base de datos muy popular.

    MySQL es un servidor multi-hilos de bases de datos de
    código abierto,

    confiable, rápido, compacto, poderoso y
    multiplataforma podemos hacer las bases de datos a código
    abierto.

    Esta base de datos la desarrollo la empresa Mysql
    AB, una gran ventaja es que se puede utilizar gratis y su
    código fuente siempre esta disponible, nos podemos guiar
    por medio de manuales, los
    cuales nos explicar:

    1. como crear la base de datos, ejemplo: create
      databases y el nombre especifico.
    2. crear las tablas, ejemplo: create table con su
      respectivo nombre.
    3. insertar datos, así: inser into values
      ‘’.

    Y muchas otras cosas más que hemos visto en este
    curso que a mi parecer fue muy importante ya que esta es una de
    las bases de datos mas fuertes en nuestro medio.

    Sus principales características son: 
       - El principal objetivo de
    MySQL es velocidad y
    robustez.  
       - Escrito en C y C++, testado con GCC 2.7.2.1. Usa
    GNU autoconf para potabilidad.  
       - Clientes C, C++,
    Java, Perl,
    TCL, etc 
       - Multiproceso, es decir puede usar varias CPU si
    éstas están disponibles.  
       - Puede trabajar en distintas plataformas y S.O.
    distintos.  
       - Sistema de contraseñas y privilegios muy
    flexible y segura.  
        - Registros de
    longitud fija y variable.  
       - 16 índices por tabla, cada índice
    puede estar compuesto de 1 a 15 columnas o partes de ellas con
    una longitud máxima  de 127 bytes.  
       - Todas las columnas pueden tener valores por
    defecto.  
       - Todos los datos están grabados en formato
    ISO8859_1.  
       - Los clientes usan TCP o UNIX Socket
    para conectarse al servidor.  
       - El servidor soporta mensajes de error en distintas
    lenguas.  
       - Todos los comandos tienen -help o -? Para las
    ayudas.  
       - Diversos tipos de columnas como enteros de 1, 2,
    3, 4, y 8 bytes, coma flotante, doble precisión, carácter, fechas, enumerados,
    etc. 

    LA LICENCIA DE MYSQL

    MySQL se licencia bajo los términos de la
    Licencia Pública General GNU.

    Es gratis para uso interno y para los ISPs. Por ejemplo
    es gratis si lo usa para desarrollo de software o para las
    compañías que lo usan como servidor de base de
    datos, y también es gratis si desarrolla una
    aplicación a medida para un cliente.

    La licencia tiene un valor unitario de $200 (USD), y
    puede comprar muchas licencias antes de usarlas para sacar
    partido de importantes descuentos.

    Puede distribuir una aplicación no GPL que use
    MySQL sin pagar la licencia si el uso de MySQL no es requerido
    (es decir, si la aplicación puede hacer las mismas cosas
    usando alternativamente otro sistema, servidor o controlador de
    bases de datos o lo que sea).

    Crear la base de datos

    Ejecutar los siguientes comandos SQL en
    el servidor MySQL.

    #

    # Host: localhost Database: prueba

    #——————————————————–

    # Server version 4.0.14-max

    #

    # Table structure for table 'empresas'

    #

    DROP DATABASE IF EXISTS PRUEBA_DB;

    CREATE DATABASE PRUEBA_DB;

    USE PRUEBA_DB;

    DROP TABLE IF EXISTS Empresas;

    CREATE TABLE IF NOT EXISTS Empresas (

    RUC varchar(8) NOT NULL,

    RAZONSOCIAL varchar(50) NOT NULL,

    PRIMARY KEY (RUC),

    KEY RAZONSOCIAL (RAZONSOCIAL)

    );

    #

    # Dumping data for
    table 'empresas'

    #

    INSERT INTO empresas VALUES("10000293","SANCHEZ TUTUSIMA
    CARMEN ROSA");

    INSERT INTO empresas VALUES("10000347","VELAZCO BERROA
    PETRONA");

    INSERT INTO empresas VALUES("10000447","PRADO DE ORBE
    TULA RORA");

    INSERT INTO empresas VALUES("10000794","ANDIA MARQUEZ
    LUIS MELITON"); 

    Como extraer información de una base de
    datos

    Para esto se utiliza la función select, a
    continuación veremos un ejemplo de este con una base de
    datos llamada empresa:

    Para acceder a la base de datos utilizamos la sentencia
    USE.

    mysql> USE empresa;

    Recibimos un mensaje "Database changed"
    (base de datos cambiada). Una base de datos está formada
    por tablas, muy semejantes a las tablas de cualquier libro.
    Para ver qué tablas tenemos escribimos la sentencia SHOW
    TABLES.

    mysql> SHOW TABLES;

    +——————-+

    | Tables_in_empresa |

    +——————-+

    | articulos |

    | clientes |

    | conformes |

    | empleados |

    | facturas |

    | grupos |

    | lineas_factura |

    | sucursales |

    | ventas
    |

    +——————-+

    9 rows in set (0.00 sec)

    Para ver qué contiene alguna de
    esas tablas escribimos nuestra primera instrucción SELECT
    :

    mysql> SELECT * FROM sucursales;

    +—-+————-+

    | id | descripcion |

    +—-+————-+

    | 1 | Centro |

    | 2 | Unión |

    | 3 | Malvín |

    +—-+————-+

    Esta tabla está formada por dos columnas: Id y
    Descripción. Los nombres de columnas
    tampoco pueden llevar tildes. Debajo de los nombres están
    los valores.
    Tenemos una fila, por ejemplo, donde Id vale 2 y Descripcion es
    "Unión". Para averiguar más sobre esta tabla
    escribimos:

    El varchar(15) que se encuentra en la 3ª fila,
    2ºcolumna significa que la columna Descripcion puede tener
    un número variable de caracteres, hasta 15.
    Análogamente el int(10) que se encuentra en la 2ª
    fila, 2ª columna indica que Id es un número
    entero.
    La palabra PRI que se encuentra en la 2ªfila, 4ª
    columna significa que Id caracteriza de manera única una
    fila. Es decir, cada fila de sucursales va a tener un
    número que va a estar en la columna Id. Diferentes filas
    tendrán diferentes números. De manera que un valor
    de Id, si está en la tabla, determina una fila. PRI es una
    abreviatura de PRIMARY KEY , clave primaria. Esta es una
    expresión usada en computación para indicar una columna que se
    usa para identificar las filas. Es algo así como el
    número de documento de identidad para
    las personas. Si se quiere hacer una referencia a una sucursal en
    otra tabla se usa el Id.

    Diferentes tipos de
    datos

    Para nuestra finalidad hay 3 grandes tipos de datos:
    numéricos, cadenas de caracteres y fechas.
    Los datos numéricos pueden ser enteros (int) o decimales
    (decimal). Los decimales tienen una parte entera y una
    fraccionaria. Por ejemplo, un decimal puede valer 120.40.
    Las cadenas de caracteres representan texto,
    generalmente con un largo variable, hasta un máximo dado.
    Pueden contener letras, números y otros caracteres como
    ‘=’,’+’, etc.
    Ya vimos un ejemplo con la columna Descripcion de la tabla
    sucursales. Las columnas de tipo fecha tienen, en su
    descripción, la palabra "date". Cualquier columna puede,
    en principio, tomar el valor NULL, que representa un valor
    desconocido o inexistente. Sin embargo, cuando se crearon las
    tablas el administrador de
    la base de datos normalmente especificó que la
    mayoría de las columnas no pueden tomar valores NULL. Las
    que sí pueden aparecen con la palabra YES en la columna
    NULL de la tabla que se obtiene haciendo el query "DESCRIBE
    nombre_de_tabla" . Vemos que por ejemplo en la tabla Sucursales
    la base de datos no aceptará un valor NULL ni en Id ni en
    Descripcion.

    Almacenar sólo la información
    necesaria

    Es muy importante que solo almacenemos los datos que
    consideremos mas importantes en nuestra base de datos, ya que si
    creamos campos o tablas innecesarios estaremos perdiendo espacio
    en nuestra base, y al almacenar tantos datos nos podrá
    traer una serie de conflictos en
    las consultas como lo es la redundancia.

    Como hacer para agregar campos?

    Bueno, esto simplemente es un concepto
    erróneo, ya que en MySQL podemos usar el comando ALTER
    TABLE para modificar la definición de una tabla en
    cualquier momento para que se adecue a nuestras necesidades
    cambiantes.
    La normalización

    Nos sirve para llevar un control claro y
    conciso de nuestra información, esto le permite a MySQL
    ser muy eficiente al momento de almacenar y recuperar los datos
    de las tablas, además de que nos da la flexibilidad de
    crecer y escalar nuestras aplicaciones sin la necesidad de
    reestructurar una base de datos a cada momento.

    Principales objetivos de
    la normalización:

    • Controlar la redundancia de la
      información.
    • Evitar pérdidas de
      información.
    • Capacidad para representar toda la
      información.
    • Mantener la consistencia de los
      datos.

    Utilizar índices
    apropiadamente

    Los índices son un sistema especial que utilizan
    las bases de datos para mejorar su rendimiento global. Al definir
    índices en las columnas de una tabla, se le indica a MySQL
    que preste atención especial a dichas columnas.
    MySQL permite definir hasta 32 índices por cada tabla y
    cada índice puede incorporar hasta 16 columnas. Aunque un
    índice de varias columnas puede no resultar de utilidad obvia a
    primera vista, lo cierto es que resulta muy útil a la hora
    de realizar búsquedas frecuentes sobre un mismo conjunto
    de columnas.

    Dado que los índices hacen que las consultas se
    ejecuten más rápido, podemos estar incitados a
    indexar todas las columnas de nuestras tablas. Sin embargo, lo
    que tenemos que saber es que el usar índices tiene un
    precio. Cada vez que hacemos un INSERT, UPDATE, REPLACE, o DELETE
    sobre una tabla, MySQL tiene que actualizar cualquier
    índice en la tabla para reflejar los cambios en los
    datos.
    La razón para tener un índice en una columna es
    para permitirle a MySQL que ejecute las búsquedas tan
    rápido como sea posible (y evitar los escaneos completos
    de tablas). Podemos pensar que un índice contiene una
    entrada por cada valor único en la columna. En el
    índice, MySQL debe contar cualquier valor duplicado. Estos
    valores duplicados decrementan la eficiencia y la utilidad del
    índice.
    Así que antes de indexar una columna, debemos considerar
    que porcentaje de entradas en la tabla son duplicadas. Si el
    porcentaje es demasiado alto, seguramente no veremos alguna
    mejora con el uso de un índice.
    Normas para
    tener en cuenta en el diseño de la base de
    datos.

    El último paso del diseño de la base de
    datos es adoptar determinadas convenciones de nombres. Aunque
    MySQL es muy flexible en cuanto a la forma de asignar nombre a
    las bases de datos, tablas y columnas, he aquí algunas
    reglas que es conveniente observar:

    • Utilizar caracteres
      alfanuméricos.
    • Limitar los nombres a menos de 64
      caracteres (es una restricción de MySQL).
    • Utilizar el guión bajo (_)
      para separar palabras.
    • Utilizar palabras en
      minúsculas (esto es más una preferencia personal que
      una regla).
    • Los nombres de las tablas
      deberían ir en plural y los nombres de las columnas en
      singular (es igual una preferencia personal).
    • Utilizar las letras ID en las
      columnas de clave primaria y foránea.
    • En una tabla, colocar primero la
      clave primaria seguida de las claves
      foráneas.
    • Los nombres de los campos deben ser
      descriptivos de su contenido.

    Los nombres de los campos deben ser unívocos
    entre tablas, excepción hecha de las claves.

    WILSON FERNANDO SOLARTE

    BIBIANA MARIA PALACIOS GARCIA

    MARIA ISABEL TORRES LARGO

    Enviado por:

    José Valle

    TECNOLOGIA EN INFORMATICA V

    CORPORACION UNIVERSITARIA MINUTO DE DIOS

    BELLO-ANTIOQUIA

    2005

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter