¿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
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:
Conectar a una base de datos de Oracle en el Explorador
de servidores
Para crear una conexión en el
Explorador de servidores
- En el Explorador de servidores, haga clic con el
botón secundario en Conexiones de datos y, a
continuación, en Agregar conexión. - En el cuadro de diálogo Propiedades de vínculo de
datos, elija la ficha Proveedor. - Haga clic en Proveedor de Microsoft OLE DB para
Oracle y después en Siguiente. - Escriba el servidor donde se encuentra la base de
datos a la que desea obtener acceso. - Escriba la contraseña que desea utilizar para
la autenticación cuando inicie una sesión en el
origen de datos. - 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
- 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". - Arrastre la conexión hasta el formulario o el
diseñador. - Aparecerá un objeto OracleConnection en la
bandeja de componentes. - 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
Aparecerá un objeto OracleConnection no
configurado en la bandeja de componentes.- Arrastre un objeto OracleConnection hasta el
formulario o diseñador. - En la ventana Propiedades, haga clic en la propiedad
ConnectionString. - 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. - 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.
¿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:
- como crear la base de datos, ejemplo: create
databases y el nombre especifico. - crear las tablas, ejemplo: create table con su
respectivo nombre. - 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