Sei sulla pagina 1di 51

Facultad de Administración

Sistemas Computacionales Administrativos

Experiencia:

Base De Datos

Integrantes:

Moreno Baltazar Luís Ángel


Pérez Morales Abraham
Ramos López Carolina

Catedrático:

Dr. Carlos Arturo Torres Gastelú

Nombre del Trabajo:

Sistemas Manejadores de Base de Datos


(SMDB)

Veracruz, ver a 25 de agosto de 2010.


EQUIPO 7
2010-2011 UDICA

INDICE

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

INTRODUCCION
Antes de iniciar un trabajo sobre los diferentes Sistemas Gestores de Bases de
Datos, debemos tener en cuenta que todos trabajan bajo un mismo lenguaje comun:
SQL. Un poco de Historia:

“Los orígenes del SQL están ligados a los de las bases de datos relacionales. En
1970 E. F. Codd propone el modelo relacional y asociado a este un sublenguaje de
acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas,
los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry
Language) que más tarde sería ampliamente implementado por el SGBD
experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue
Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.
El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión
evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los
diversos SGBD relacionales surgidos en los años siguientes y es por fin
estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de
este lenguaje, el SQL-86 o SQL1. Al año siguiente este estándar es también
adoptado por la ISO.
Sin embargo este primer estándar no cubre todas las necesidades de los
desarrolladores e incluye funcionalidades de definición de almacenamiento que se
consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y
revisado del SQL llamado SQL-92 o SQL2.
En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD
comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las
distintas implementaciones comerciales del lenguaje es amplia, el soporte al
estándar SQL-92 es general y muy amplio”

Pasando a ser un poco mas concretos, diremos que: El SQL es un lenguaje de


acceso a bases de datos que explota la flexibilidad y potencia de los sistemas
relacionales permitiendo gran variedad de operaciones sobre los mismos. Es un
lenguaje declarativo de alto nivel o de no procedimiento, que gracias a su fuerte base
teórica y su orientación al manejo de conjuntos de registros, y no a registros
individuales, permite una alta productividad en codificación. De esta forma una sola
sentencia puede equivaler a uno o más programas que utilizasen un lenguaje de
bajo nivel orientado a registro. SQL, como lenguaje de programación, posee
diferentes dialectos o variaciones. Sin embargo existen dos grandes estándares a los
que se ciñen los manejadores de bases de datos. Estos estándares son:

ANSI SQL, que fue propuesto por el Instituto de Estándares Nacionales Americanos
(ANSI).
Una actualización del estándar ANSI SQL propuesto en 1992 y conocido como SQL-
92 o SQL2

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Con la evolución del modelo relacional para manejar características propias del
paradigma de orientado a objetos (conocido como enfoque post-relacional u objeto-
relacional), así como para la descripción de condiciones dinámicas que rigen la
evolución de los datos y el almacenamiento de programas; hoy en día existe un
esfuerzo de consolidación y adopción de un nuevo estándar conocido como SQL3.
Sin embargo, las herramientas comerciales ofrecen algunas de las características
novedosas incluidas en este estándar.
Las sentencias SQL pertenecen a dos categorías principales: Lenguaje de
Definición de Datos, DDL y Lenguaje de Manipulación de Datos, DML.

Estos dos lenguajes no son lenguajes en sí mismos, sino que es una forma de
clasificar las sentencias de lenguaje SQL en función de su proposito. La diferencia
principal reside en que el DDL crea objetos en la base de datos y sus efectos se
pueden ver en el diccionario de la base de datos; mientras que el DML es el que
permite consultar, insertar, modificar y eliminar la información almacenada en los
objetos de la base de datos. Cuando se ejecutan una sentencia DDL, el SGBD
confirma la transacción actual antes y después de otras sentencias DDL. En cambio,
las sentencias DML no llevan implícito el commit y se pueden deshacer. Existe pues
un problema al mezclar sentencias DML con DDL, ya que estas últimas pueden
confirmar las primeras de manera involuntaria e implicita, lo que en ocasiones puede
ser un problema.

A continuación se presenta una tabla con las sentencias SQL más comunes,
clasificadas según el lenguaje al que pertenecen.

Sentencia DDL Objetivo


ALTER
Recompilar un procedimiento almacenado.
PROCEDURE
Añadir o redefinir una columna, modificar la asignación
ALTER TABLE
de almacenamiento.
Recoger estadísticas de rendimiento sobre los objetos de
ANALYZE
la BD para utilizarlas en el optimizador basado en costos.
CREATE INDEX Crear un índice.
CREATE TABLE Crear una tabla.
DROP INDEX Eliminar un índice.
DROP TABLE Eliminar una tabla.
Conceder privilegios o papeles, roles, a un usuario o a
GRANT
otro rol.
Retirar los privilegios de un usuario o rol de la base de
REVOKE
datos.
TRUNCATE Eliminar todas las filas de una tabla.
Sentencia DML Objetivo

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

COMMIT Confirmar como permamentes las modificaciones realizadas.


DELETE Eliminar filas de datos de una tabla.
INSERT Añadir filas de datos a una tabla.
Deshacer todas las modificaciones realizadas desde la última
ROLLBACK
confirmación.
SELECT Recuperar datos de una tabla.
UPDATE Modificar los datos de una tabla.

La primera fase de cualquier base de datos comienza siempre con sentencias DDL,
ya que antes de poder almacenar información debemos definir los objetos básicos
donde agrupar la información. Los objetos básicos con que trabaja SQL son las
tablas. Una tabla es un conjunto de celdas agrupadas en filas y columnas donde se
almacenan elementos de información.

Una vez que hemos entendido, lo que es el SQL, que es el lenguaje mediante el cual
se entienden todas las bases de datos, podemos proceder a ver lo que es los SGBD.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

DATA BASE MANAGEMENT


SYSTEM
(DBMS)

U
n sistema gestor de base de datos, DBMS Por sus siglas en ingles, es un
programa, o conjuntos de programas, que permite que cualquier cantidad de
usuarios acceda y modifique los datos de una base de datos. A lo largo de los
años, los sistemas de administración de base de datos han aparecido y
desaparecido.

Una base de datos o data base es un conjunto de datos pertenecientes a un


mismo contexto y almacenados sistemáticamente para su posterior uso. En este
sentido, una biblioteca puede considerarse una base de datos compuesta en su
mayoría por documentos y textos impresos en papel e indexados para su consulta.
En la actualidad, y debido al desarrollo tecnológico de campos como la informática y
la electrónica, la mayoría de las bases de datos están en formato digital
(electrónico), que ofrece un amplio rango de soluciones al problema de almacenar
datos.

Existen unos programas denominados sistemas gestores de bases de datos,


abreviados SGBD, que permiten almacenar y posteriormente acceder a los datos de
forma rápida y estructurada. Las propiedades de estos SGBD, así como su
utilización y administración, se estudian dentro del ámbito de la informática.

El propósito general de los sistemas de gestión de base de datos es el de


manejar de manera clara, sencilla y ordenada un conjunto de datos que
posteriormente se convertirán en información relevante para una organización.

Funciones de los SGBD

 LECTURA: Los SGBD deben permitir la lectura e incorporación de


datos, independiente de la versión utilizada.

 MANIPULACIÓN Y ACTUALIZACIÓN: Los SGBD deben permitir


atender las solicitudes del usuario para EXTRAER, CAMBIAR, ADICIONAR Y
ACTUALIZAR datos a la BD.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

 INDEPENDENCIA DE LOS DATOS: Los sistemas actuales permiten


aislar al usuario de la complejidad del almacenamiento físico de los datos.
 CONTROL DE INTEGRIDAD: No deben haber inconsistencias
respecto a la definición y dominios en la estructura de las tablas. ej. el área de una
vereda es una expresión numérica (Number) y no textual (String). ej. el valor edad
no puede ser negativo.

 CONTROL DE REDUNDANCIAS: Minimizar los datos repetidos. Esto


facilita la actualización ya que si hay datos repetidos habrá que modificarlos donde
cada uno este. Si datos repetidos no se actualizan simultáneamente se generarán
inconsistencias y se dice que la BD estará corrupta.

 DICCIONARIO DE DATOS: Los SMBD deben incluir una función de


diccionario de datos donde se relacione información explicativa acerca de los datos
con sus definiciones.

 METADATOS: Los datos sobre los datos son los METADATOS.


Corresponden a una gran ficha donde se describen la identificación, calidad,
distribución y otra información relevante de un conjunto de datos.

 SINCRONIZACIÓN: Una BD puede ser usada por dos usuarios al


tiempo y es necesario prevenir que se pueda modificar un mismo registro al
simultáneamente. Cada usuario debe percibir en tiempo real los arreglos
incorporados por el otro usuario.

 SEGURIDAD: Se necesita un administrador (una persona


/organización/software) que le brinde al sistema diferentes procesos para proteger la
información y dar a los usuarios diferentes niveles de acceso.

OBJETIVOS DE LOS SGBD

 Abstracción de la información. Los SGBD ahorran a los usuarios


detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de
datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario.
Así, se definen varios niveles de abstracción.

 Independencia. La independencia de los datos consiste en la capacidad


de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar
cambios en las aplicaciones que se sirven de ella.

 Consistencia. En aquellos casos en los que no se ha logrado eliminar la


redundancia, será necesario vigilar que aquella información que aparece repetida se

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

actualice de forma coherente, es decir, que todos los datos repetidos se actualicen
de forma simultánea.
Por otra parte, la base de datos representa una realidad determinada que tiene
determinadas condiciones, por ejemplo que los menores de edad no pueden tener
licencia de conducir. El sistema no debería aceptar datos de un conductor menor de
edad. En los SGBD existen herramientas que facilitan la programación de este tipo
de condiciones.

 Seguridad. La información almacenada en una base de datos puede


llegar a tener un gran valor. Los SGBD deben garantizar que esta información se
encuentra segura de permisos a usuarios y grupos de usuarios, que permiten
otorgar diversas categorías de permisos.

 Manejo de transacciones. Una Transacción es un programa que se


ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la
que se produce una falla es el mismo que se obtendría si el programa no se hubiera
ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de
los datos de una forma mucho más simple que si no se dispusiera de ellos.

 Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo


que el SGBD tarda en darnos la información solicitada y en almacenar los cambios
realizados.

VENTAJAS
Proveen facilidades para la manipulación de grandes volúmenes de datos. Entre
éstas:

 Simplifican la programación de equipos de consistencia.

 Manejando las políticas de respaldo adecuadas, garantizan que los cambios de


la base serán siempre consistentes sin importar si hay errores correctamente, etc.

 Organizan los datos con un impactó mínimo en el código de los programas.

 Bajan drásticamente los tiempos de desarrollo y aumentan la calidad del sistema


desarrollado si son bien explotados por los desarrolladores.

 Usualmente, proveen interfaces y lenguajes de consulta que simplifican la


recuperación de los datos.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

DESVENTAJAS
• Es necesario disponer de una o más personas que administren de la base de
datos, en la misma forma en que suele ser necesario en instalaciones de
cierto porte disponer de una o más personas que administren de los sistemas
operativos. Esto puede llegar a incrementar los costos de operación en una
empresa. Sin embargo hay que balancear este aspecto con la calidad y
confiabilidad del sistema que se obtiene.

• Si se tienen muy pocos datos que son usados por un único usuario por vez y
no hay que realizar consultas complejas sobre los datos, entonces es posible
que sea mejor usar una planilla de cálculo.

• Complejidad: el software muy complejo y las personas que vayan a usarlo


deben tener conocimiento de las funcionalidades del mismo para poder
aprovecharlo al máximo.

• Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que


sea un software de gran tamaño, que requiere de gran cantidad de memoria
para poder correr.

• Coste del hardware adicional: los requisitos de hardware para correr un


SGBD por lo general son relativamente altos, por lo que estos equipos pueden
llegar a costar gran cantidad de dinero.

HERRAMIENTAS
Analizador de logs

Administrador de procesos.

Herramientas para importar y exportar datos.

Herramientas para monitorizar el uso y el funcionamiento de la base de datos.

Programas de análisis estadístico para examinar las prestaciones o las estadísticas


de utilización.

Herramientas para reorganización de índices.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

DIFERENTES SISTEMAS MANEJADORES DE


BASES DE DATOS DISPONIBLES EN EL
MERCADO

SGBD PROPIETARIOS
 Advantage Database  NexusDB
 dBase  Open Access
 FileMaker  Oracle
 Fox Pro  Paradox
 IBM DB2 Universal Database (DB2  PervasiveSQL
UDB)  Progress (DBMS)
 IBM Informix  Sybase ASE
 Interbase de CodeGear, filial de  Sybase ASA
Borland  Sybase IQ
 MAGIC  Window Base
 Microsoft Access  IBM IMS Base de Datos Jerárquica
 Microsoft SQL Server  CA-IDMS

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

SGBD LICENCIAS GNU Y GPL


 Microsoft SQL Server Compact Edition Basica

 Sybase ASE Express Edition para Linux (edición gratuita para Linux)

 Oracle Express Edition 10

 MySQL

SGBD EN WEB

 PHP Magic

SGBD LICENCIA ACADEMICA

o SQL Server Compact

o Adaptive Server Enterprise

o Oracle Database Expres 10g

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

ANALISIS COMPARATIVO ENTRE SISTEMAS


LIBRES Y PROPIETARIOS

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

DETALLE DE 4 SGBD SELECCIONADAS

1.- ORACLE

E
s un sistema de gestión de base de datos relacional (o RDBMS por el
acrónimo en inglés de Relational Data Base Management System),
desarrollado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos más completos
destacando:
 Soporte de transacciones,

 Estabilidad,

 Escalabilidad y

 Soporte multiplataforma.Historia

HISTORIA

Oracle surge a finales de los 70 bajo el nombre de Relational Software a partir


de un estudio sobre SGBD (Sistemas Gestores de Base de Datos) de George Koch.
Computer World definió este estudio como uno de los más completos jamás escritos
sobre bases de datos. Este artículo incluía una comparativa de productos que erigía
a Relational Software como el más completo desde el punto de vista técnico. Esto se
debía a que usaba la filosofía de las bases de datos relacionales, algo que por
aquella época era todavía desconocido.

En la actualidad, Oracle (Nasdaq: ORCL) todavía encabeza la lista. La


tecnología Oracle se encuentra prácticamente en todas las industrias alrededor del
mundo y en las oficinas de 98 de las 100 empresas Fortune 100. Oracle es la
primera compañía de software que desarrolla e implementa software para empresas
100 por ciento activado por Internet a través de toda su línea de productos: base de
datos, aplicaciones comerciales y herramientas de desarrollo de aplicaciones y
soporte de decisiones. Oracle es el proveedor mundial líder de software para
administración de información, y la segunda empresa de software.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

ELEMENTOS QUE PERMITE MANEJAR


ORACLE
Entre los diferentes tipos de objetos que ORACLE permite definir y manipular son:

Tablas: Implementan el concepto de relación del modelo relacional. Toda tabla está
conformada por una serie de columnas (implementan el concepto de atributo). Cada
columna posee un nombre, un tipo de datos y dependiendo del tipo de datos una
longitud.

Dos diferencias fundamentales entre el modelo relacional y la implantación de éste


en ORACLE son:

o Si no se definen restricciones de integridad de identidad, en una tabla pueden


existir filas (tuplas) con los mismos valores para todas sus columnas.

o A pesar de que físicamente se establece un orden entre las tuplas, a nivel


lógico el usuario no es capaz de determinar tal orden.

Vistas: Constituyen una especie de “tablas virtuales”, es decir tablas que no existen
físicamente y son generadas automáticamente cuando se accede a ellas. Una vista
puede ser definida a través de una operación de consulta sobre una o más tablas o
vistas de la base de datos.

Constraints: Constituyen el mecanismo primordial para especificar ciertas reglas


que deben cumplir los datos almacenados en la base de datos. En un sentido
amplio, esta construcción está relacionada con aquellas restricciones de integridad
derivadas del esquema relacional que se implanta en el SGBD. Por lo tanto, esta
construcción puede ser utilizada para definir restricciones de integridad de identidad,
restricciones de integridad referencial, restricciones de dominio en las columnas de
una tabla o inclusive ciertas restricciones explícitas. Esta construcción se basa en
asociar una expresión declarativa que siempre deberá ser cierta en el contexto de la
tabla donde se define.

Sinónimos: Permiten definir referencias directas a un objeto de la base de datos. A


través de los sinónimos se puede permitir el acceso público a un determinado objeto
y ocultar el nombre real del objeto. Un usuario puede crear sinónimos que sólo son
visibles por él, o hacer que el sinónimo sea de uso público (pueda ser utilizado por
otros usuarios de la base de datos).

Unidades de Programa: ORACLE provee cuatro grandes tipos de unidades de


programas:
o las funciones,
o los procedimientos almacenados (stored procedures),

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

o los triggers
o los paquetes (packages).
Toda unidad de programa puede ser escrita utilizando SQL y PL/SQL (constituye la
forma más común).

Tanto las funciones y los procedimientos suelen utilizarse como parte de la definición
de un esquema relacional para implementar restricciones de integridad, reglas del
negocio o políticas determinadas a ser garantizadas por la base de datos.

Los triggers son un tipo especial de procedimientos almacenados que se aplican en


una o más tablas, siguiendo la teoría de reglas ECA (reglas Evento-Condición-
Acción) propias de un paradigma de modelado de bases de datos conocido como
Bases de Datos Activas.
En tal sentido, y adicionalmente a la especificación de las acciones a realizar, un
“trigger” indica:

El evento a partir del cuál automáticamente se ejecutará la acción indicada. Los


eventos que pueden ser especificados pueden resultan de la composición de un tipo
de operación (inserción de una fila, modificación de una fila o eliminación

UNIQUE (Llave alterna) Evita valores repetidos en una columna, admitiendo valores
nulos. Oracle crea un índice automáticamente cuando se habilita esta restricción y lo
borra al deshabilitarse. n de una fila) y un instante de tiempo (previo a la ejecución
de la operación que se solicita, posterior a la operación que se solicita o en lugar de
la operación que se solicita).

Packages: proveen un mecanismo sencillo para encapsular y almacenar un grupo


de operaciones (funciones y stored procedures) que se encuentran relacionados. En
tal sentido pueden ser considerados como construcciones que permiten definir, de
alguna forma, la noción de tipos abstractos de datos en la implantación del modelo
relacional que hace ORACLE.

Enlaces: Son construcciones que permiten asignar nombres a bases de datos


diferentes con el fin de proveer la inter-operabilidad entre éstas. Este tipo
construcciones se utilizan en los diferentes enfoques de inter-operación de bases de
datos (bases de datos federadas, bases de datos distribuidas, etc.) y se escapan de
los objetivos de este curso.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

TIPOS DE DATOS EN ORACLE


Los tipos de datos más comunes y sus características en Oracle Express 10g se
resumen en la siguiente tabla. Las versiones de Oracle comercial soportan una gama
mucho más amplia de tipos de datos.

Tipo de Dato Descripción


Contiene datos binarios con un tamaño máximo de 4 gigabytes. Los
datos binarios nos van a permitir guardar en la base de datos archivos,
imagenes, sonidos, etc ...
BLOB
Casi siempre es preferible guardar la ruta del archivo en la base de
datos en lugar del propio archivo en modo binario, pero existen ciertas
circunstancias en las que no nos queda otra solución.
BINARY_DOUBLE Presición doble
BINARY_FLOAT Presición simple
Un tipo de datos CLOB de Oracle contiene datos de caracteres basados
en el juego de caracteres predeterminados del servidor. Su tamaño
máximo es de 4 gigabytes. Se asigna a cadena.
CLOB Use la siguiente expresión para una consulta de un campo CLOB
SELECT DBMS_LOB.substr(campo,
DBMS_LOB.getlength(campo),1)
FROM tablaprueba;
Almacena datos de tipo carácter alfanumérico de longitud fija, con un
CHAR(tamaño)
tamaño máximo de 2000.
DATE Almacena fechas desde el 1-Ene-4712 AC hasta el 31-Dic-4712 DC.
Datos de tipo carácter alfanumérico de longitud variable con un tamaño
LONG
máximo de hasta 2 Gb.
LONG RAW Soporta datos de longitud variable, con un tamaño máximo de 2 Gb.
Datos numéricos de n dígitos, de los cuales dec son decimales. El
NUMBER(dig [, dec])
tamaño máximo es de 38 dígitos.
Almacena un valor alfanumérico de longitud variable en caracteres
NVARCHAR
Unicode con las mismas restricciones de varchar.
RAW(tamaño) Datos de longitud variable, con un tamaño máximo de 255 bytes.
Fecha y hora (incluidos los segundos), con un tamaño que abarca desde
TIMESTAMP
7 a 11 bytes.
Guarda datos de tipo carácter alfanumérico de longitud variable, con
VARCHAR2(tamaño)
un tamaño máximo de 4,000.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

RESTRICCIONES

Las restricciones de los datos son reglas que se imponen para asegurarnos que los
datos cumplen con una serie de condiciones predefinidas para cada tabla. Estas
restricciones ayudan a conseguir la integridad referencial: todas las referencias
dentro de una Base de Datos son válidas y todas las restricciones se cumplen.

Restricción Descripción
Establece el valor por defecto para esa columna, si no se le asigna
DEFAULT
ninguno.
Comprueba que se cumpla una condición determinada al rellenar esa
CHECK columna. Esta condición sólo debe estar construida con columnas de
esta misma tabla.
El contenido de esta columna será uno de los valores contenidos en una
columna de otra tabla maestra. Esta columna marcada como clave
foreana o ajena puede ser NULL. No hay límite en el número de claves
FOREIGN foreanas. La clave ajena puede ser otra columna de la misma tabla. Se
KEY puede forzar que cuando una fila de la tabla maestra sea borrada, todas
las filas de la tabla detalle cuya clave ajena coincida con la clave borrada
se borren también (borrado en cascada). Esto se consigue añadiendo la
clausula ON DELETE CASCADE en la definición de la clave ajena.
Establece la obligatoriedad de que esta columna tenga un valor no nulo.
Se debe especificar junto a la columna a la que afecta. Los valores nulos
NOT NULL no ocupan espacio, y son distintos a 0 y al espacio en blanco. Hay que
tener cuidado con los valores nulos en las operaciones, ya que 1 * NULL
es igual a NULL.
Conjunto de columnas que forman la clave primaria de esa tabla. Se
comporta como única y obligatoria sin necesidad de explicitarlo. Sólo
PRIMARY puede existir una clave primaria por tabla. Puede ser referenciada como
KEY clave ajena por otras tablas. Crea un índice automáticamente cuando se
habilita o se crea esta restricción. En Oracle, los índices son construidos
sobre árboles B+.
Evita valores repetidos en una columna, admitiendo valores nulos.
UNIQUE Oracle crea un índice automáticamente cuando se habilita esta
restricción y lo borra al deshabilitarse.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

SECUENCIAS
ORACLE proporciona los objetos de secuencia para la generación de valores para campos .
Las secuencias son una solución fácil y elegante al problema de los campos de
autoincremento. La sintaxis general es la siguiente:

CREATE SEQUENCE
<secuence_name>
[MINVALUE <min_val>]
[MAXVALUE <max_val>]
[START WITH <ini_val>]
[INCREMENT BY <inc_val>]
[NOCACHE | CACHE <cache_val>]
[CYCLE]
[ORDER];

CREACION DE TABLAS
CREATE TABLE nombre_tabla (
{nombre_columna tipo_dato [DEFAULT expresión] [restricción_columna] ... |
restricción_tabla}

[,nombre_columna tipo_dato [DEFAULT expresión] [restricción_columna] ... |


restricción_tabla];
);

La sintaxis para crear tablas es:

Donde:

nombre_tabla Nombre de la tabla que se está creando


nombre_columna Nombre del atributo o campo
tipo_dato Tipo de dato del atributo o campo
DEFAULT expresión Representa el valor por defecto de un atributo, de

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

especificar valores de entrada para el atributo


restricción_columna Restricciones a nivel de atributo
restricción_tabla Restricciones compuestas por más de una columna.

MODIFICACIONES
Otra cualidad del sistema de gestión de Oracle es la posibilidad de modificar las
restricciones definidas para una tabla. Esto puede llevar conllevar a “inconsistencia”
de los datos ya introducidos en la base de datos. Por ello, Oracle tiene definidos
mecanismos para modificación de los datos ya existentes

Esta operación se puede realizar con el comando ALTER TABLE.

ALTER TABLE [esquema.]tabla


clausula_constraint [,…]
[ENABLE clausula_activa | DISABLE
clausula_disable]
[{ENABLE|DISABLE} TABLE LOCK]
[{ENABLE|DISABLE} ALL TRIGGERS];

Hay que tener en cuenta varios puntos:

No es posible disminuir el tamaño de una columna, si esta contiene datos.


En las modificaciones, los tipos anterior y nuevo deben ser compatibles, o la
tabla debe estar vacía.
La opción ADD ... NOT NULL sólo será posible si la tabla está vacía.
La opción MODIFY ... NOT NULL sólo podrá realizarse cuando la tabla no
contenga ninguna fila con valor nulo en la columna en cuestión.

TABLAS TEMPORALES
Además de las tablas de la base de datos permanentes, Oracle permite la creación
de tablas temporales para mantener datos propios y exclusivos a una sesión Oracle
determinada. Estos datos permanecerán en el sistema sólo durante el tiempo que
dure la transacción o sesión involucrada. No obstante, al igual que para las tablas
permanentes, la definición de las tablas temporales se almacena en las tablas del
sistema.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Sus ventajas son varias, la información contenida en ella esta solo disponible para la
sesión actual, cualquier inserción, borrado, actualización solo se refleja en la sesión
activa.
Muchas funcionalidades de cualquier tabla normal se mantienen en ella, como
triggers a nivel tabla, vistas, indices, exportar e importar (claro solo la definición de la
tabla).

LIMITES
ORACLE impone los siguientes límites en lo que respecta a los objetos que maneja:

o La longitud de cualquier identificador (nombre de tabla, nombre de columna,


nombre de "constraints", entre otros) se limita a un máximo de 30 caracteres.

o El número máximo de columnas que puede tener una tabla es de 1000.

o El número máximo de columnas que pueden constituir una clave primaria, una
clave alterna o una clave foránea es de 16

INDICES
Un índice en el Servidor Oracle es un objeto de la base de datos que permite
acelerar la recuperación de filas usando una estructura de punteros. Los índices
pueden ser creados explícitamente o automáticamente. Si no se tiene un índice
sobre la columna, entonces se debe hacer un barrido total de la tabla para una
búsqueda. Un índice ofrece acceso rápido y directo a los registros de una tabla. Su
propósito es reducir la necesidad de I/O a disco. El índice es automáticamente usado
y mantenido por el Servidor Oracle. Una vez que un índice es creado, no se requiere
actividad directa del usuario.

Los índices son lógica y físicamente independientes de la tabla sobre la que se


aplican. Esto significa que pueden ser creados o eliminados en cualquier momento y
no tiene efectos sobre la tabla base u otros índices.

Dos tipos de índices pueden ser creados.

o Un tipo es un índice único o unique. El Servidor Oracle crea automáticamente


este tipo de índice cuando en una tabla se define una columna que tiene una
restricción de PRIMARY KEY o UNIQUE. El índice toma el mismo nombre que
la restricción.

o El otro tipo de índice que un usuario puede crear es un índice no único (non-
unique). Por ejemplo, se puede crear un índice de columna FOREIGN KEY
para una operación de unión en una consulta que acelere la respuesta.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Las claves primarias, unicas y secundarias se indexan automáticamente Si la base


de datos se usa, en su mayoría, para consulta (lectura), es recomendable utilizar
muchos índices, pues se agiliza el rendimiento. Por el contrario si la base de datos
se actualiza con frecuencia, conviene añadir el menor número de índices.

Cuando elimina una tabla, también se eliminan los índices asociados.

SENTENCIA “ INSERT “

Para insertar datos en una relación, se especifica la tupla que se desea insertar o se
formula una consulta cuyo resultado sea el conjunto de tuplas que se desea insertar.
Obviamente, los valores de los atributos de las tuplas que se inserten deben
pertenecer al dominio de los atributos. De igual modo, las tuplas insertadas deben
ser de la aridad -número de atributos- correcta.

Un formato posible es:

INSERT INTO nombre-tabla VALUES (serie de valores);

El orden en el que se asignen los valores en la cláusula VALUES tiene que coincidir
con el orden en que se definieron las columnas en la creación del objeto tabla, dado
que los valores se asignan por posicionamiento relativo.

Otra forma de usar la sentecia INSERT es:

INSERT INTO nombre-tabla (columna1, columna2.....)


VALUES (valor1, valor2....);

En este caso los valores se asignarán a cada una de las columnas mencionadas por
posicionamiento relativo. Es necesario que por lo menos se asignen valores a todas
aquellas columnas que no admiten valores nulos en la tabla (NOT NULL).

SENTENCIA “ UPDATE “
En determinadas situaciones puede ser deseable cambiar un valor dentro de una
tupla, sin cambiar todos los valores de la misma. Para ello se utiliza el comando
UPDATE cuya sintaxis se muestra a continuación.

UPDATE tabla SET {columna = expresión,}+ [WHERE condición];

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Se especificará en la cláusula SET las columnas que se actualizarán y con qué


valores. La cláusula WHERE indica las filas con las que se va a trabajar, si la
cláusula WHERE la actualización afectará a todas las filas de la tabla. Actualiza los
campos correspondientes junto con los valores que se le asignen, en el subconjunto
de filas que cumplan la condición de selección. Sin condición de selección, la
actualización se da en todas las filas de la tabla. Si se desea actualizar a nulos, se
asignará el valor NULL.

SENTENCIA “ DELETE “
Borrará todas las filas que cumplan la condición especificada en la cláusula WHERE.
Si esta cláusula se omite, se borrarán todas las filas de la tabla. DELETE borra todas
las filas de una tabla, pero no la definición de la tabla del diccionario. Esta es una
diferencia con la sentencia DROP TABLE, que elimina el contenido de la tabla y la
definición de la misma.

La sintaxis es la que sigue:

DELETE FROM tabla [WHERE condición];

Obsérvese que cada comando DELETE sólo opera sobre una relación. Si se desea
borrar tuplas de varias relaciones es necesario utilizar una orden DELETE por cada
relación.

FUNCION “SELECT ~ WHERE ~ FROM ~


AS ~ORDER BY ~ BETWEEN ~ CASE ”
La recuperación de los datos en el lenguaje SQL se realiza mediante la sentencia
SELECT, seleccionar. Esta sentencia permite indicar al SGBD la información que se
quiere recuperar. Esta es la sentencia SQL, con diferencia, más habitual. La
sentencia SELECT consta de cuatro partes básicas:

o La cláusula SELECT seguida de la descripción de lo que se desea ver, los


nombres de las columnas a seleccionar. Esta parte es obligatoria.
o La cláusula FROM seguida de la especificación de las tablas de las que se
han de obtener los datos. Esta parte es obligatoria.
o La cláusula WHERE seguida por un criterio de selección, una condición. Esta
parte es opcional.
o La cláusula ORDER BY seguida por el criterio de ordenación. Esta parte es
opcional.

Una primera aproximación a la sintaxis de la sentencia SELECT puede mostrarnos la


siguiente expresión:

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

SELECT {* | {columna,}+} FROM {tabla,}+ [WHERE condición] [ORDER BY


{expresiónColumna [ASC | DESC],}+];

Las columnas a seleccionar se enumeran sin más en la cláusula SELECT. Si se


desea seleccionar todas las columnas use el carácter asterisco ' *'.

Cuando se consulta una base de datos, los nombres de las columnas se usan como
cabeceras de presentación. Si éste resulta demasiado largo, corto o críptico, puede
cambiarse con la misma sentencia SQL de consulta, creando un alias de columna.

La cláusula FROM define las tablas de las que se van a seleccionar las columnas.
Se puede añadir al nombre de las tablas el usuario propietario de las mismas de la
forma usuario.tabla. De esta manera podemos distinguir entre las tablas de un
usuario y otro.

Oracle siempre considera como prefijo el nombre del propietario de las tablas,
aunque no se lo indiquemos. De esta forma dos o más usuarios pueden tener tablas
que se llamen igual sin que surjan conflictos.

Un campo calculado o campo derivado es una expresión numérica y que deberá ser
referenciada mediante un alias mediante el uso de la cláusula AS, en Oracle está
sentencia es opcional.

La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una


tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos una
condición en la cláusula WHERE.

Esta condición regresa todas las filas que cumplen dicha condicional. La complejidad
del criterio de búsqueda es prácticamente ilimitada, y en él se pueden combinar
operadores de diversos tipos con funciones de columnas, componiendo expresiones
más o menos complejas.

Condición de búsqueda basada en rango

La condición BETWEEN indica los puntos extremos del rango, y devolvera todos
los datos que se encuentren en el rango solicitado.

La condición de pertenencia de un conjunto (IN) comprueba si un valor de los


datos se corresponde con uno de los valores especificados en una determinada lista

La operación más utilizada sobre las cadenas de caracteres es la comparación de


patrones, para la que se usa el operador LIKE. Para la descripción de los patrones
se utilizan dos caracteres especiales:

% El carácter % coincide con cualquier

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

subcadena de caracteres
El carácter _ coincide con cualquier
_
carácter

En general, las filas de la tabla resultados de una consulta SQL, no están ordenadas
por ningún criterio particular. Sin embargo podemos garantizar que los resultados de
la consulta queden ordenados utilizando la cláusula ORDER BY en la instrucción
SELECT.

La cláusula ORDER BY está compuesta por una lista de identificadores de columna


según los cuales hay que ordenar los resultados, separados por comas.
ORDER BY se usa para especificar el criterio de ordenación de la respuesta a la
consulta. Por defecto la ordenación es ascendente, aunque se puede especificar un
orden descendente (DESC). La ordenación se puede establecer sobre el contenido
de columnas o sobre expresiones con columnas.

Cuando se realiza una consulta sobre una tabla en la que se extrae información de
varias columnas, puede ocurrir que, si no incluimos la/s columna/s que forman la
clave principal, obtengamos filas repetidas en la respuesta.
Si este comportamiento es no satisfactorio podemos utilizar la cláusula DISTINCT
para eliminar las filas duplicadas obtenidas como respuesta a una consulta.

La expresión CASE permite utilizar la lógica IF-THEN-ELSE en sentencias SQL sin


tener que invocar procedimientos. Esta expresión se incluye a partir de la versión
Oracle9i Server.
La siguiente es la sintaxis que presenta la expresión CASE:

SELECT campos,

CASE expresión WHEN Comparación_1 THEN


return_expresión_1

[ WHEN Comparación_2 THEN return_expresión_2

WHEN Comparación_n THEN return_expresión_n

ELSE else_expresión]

END

FROM tabla

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Todas estas funciones, son usadas al momento de hacer una consulta usando la
funcion SELECT, y pueden o no usarse, depende las necesidades de cada usuario.

FUNCIONES EN ORACLE
Existen en ORACLE muchas funciones que pueden complementar el manejo de los
datos en las consultas. Se utilizan dentro de las expresiones y actuan con los valores
de las columnas, variables o constantes.

Se pueden incluir en las clásulas SELECT, WHERE y ORDER BY.

Pueden anidarse funciones dentro de funciones. Y existe una gran variedad de


funciones para cada tipo de datos:

o aritméticas

o de cadenas de caracteres,

o de manejo de fechas,

o de conversión,

Funciones Aritméticas
Función Descripción
ABS(n) Valor absoluto de n.
Entero inmediatamente
CEIL(n)
superior o igual a n.
Entero inmediatamante inferior
FLOOR(n)
o igual a n.
MOD(m, n) Resto de la división de m por n
Devuelve la expresión exp si
NVL(val,
val es NULL, y val si en otro
exp)
caso.
POWER(m, Calcula la potencia n-esima de
n) m.
Calcula el redondeo de m a n
ROUND(m, decimales. Si n< 0 el redondeo
n) se efectua por la izquierda del
punto decimal.
SIGN(n) Calcula el signo de n,
devolviendo -1 si n < 0, 0 si n

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

= 0 y 1 si n > 0.
SQRT(n) Raíz cuadrada de n.
Calcula m truncado a n
TRUNC(m,
decimales (n puede ser
n)
negativo).

Funciones de Cadenas de Carácteres


Función Descripción
Devuelve el valor ASCII de
ASCII(cadena)
cadena.
Devuelve el carácter cuyo valor
CHR(n)
codificado es n.
Concatenada c1 con c2. Es
CONCAT(c1, c2)
esquivalente al operador ||.
Regresa cadena con el primer
INITCAP(cadena)
carácter en mayúsculas.
LENGTH(cadena) Devuelve la longitud de cadena.
Retorna la cadena con todas sus
LOWER(cadena)
letras en minúsculas.
Devuelve c1 con longitud n, y
LPAD(c1, n, c2) ajustada a la derecha, rellenando
por la izquierda con c2.
Devuelve c1 en la que cada
REPLACE(c1,c2,c3) ocurrencia de la cadena c2 ha
sido sustituida por la cadena c3.
Devuelve c1 con longitud n, y
RPAD(c1, n, c2) ajustada a la izquierda,
rellenando por la derecha con c2.
c1 es una cadena que se desea
compactar por la derecha. n son
los carácteres individuales que
RTRIM(c1 [, n])
se eliminaran del lado derecho.
Si se omite n eliminara todos los
espacios en blanco
Devuelve la sudcadena de c1
SUBSTR(c1, m, n) compuesta por n carácteres a
partir de la posicion m.
Convierte caracteres de una
cadena en caracteres diferentes,
TRANSLATE (c1, c2, c3)
según un plan de sustitución
marcado por el usuario.
UPPER(cadena) Convierte la cadena con todas

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

sus letras en mayúsculas.

Funciones de Manejo de Fechas:

Oracle almacena fechas en un formato numérico interno de 7 bytes:


Siglo, año, mes, día, horas, minutos, segundos

El formato de fecha por defecto es DD-MON-YY

SYSDATE es una función que devuelve fecha y hora (pseudocolumna del sistema)

DUAL es una tabla virtual de la BD, que puede ser usada para inspeccionar
SYSDATE.

Operadores aritméticos de fechas


o Sumar o restar un número y/o de una fecha da por resultado una fecha.

o Restar dos fechas para encontrar la cantidad de días entre esas fechas.

o Sumar horas a una fecha dividiendo la cantidad de horas por 24.

Función Descripción
ADD_MONTHS(d, n) Fecha d incrementada en n meses.
Extrae un valor de fecha o de intervalo de tiempo.

EXTRACT ( { YEAR | MONTH | DAY | HOUR |


EXTRACT MINUTE | SECOND } | { TIMEZONE_HOUR |
TIMEZONE_MINUTE } | { TIMEZONE_REGION |
TIMEZONE_ABBR } FROM { date_value | interval_value
})
LAST_DAY(d) Fecha del último día del mes d.
MONTHS_BETWEEN(d1, d2) Diferencia en meses entre las fechas d1 y d2.
Próxima fecha para el día de la semana cad
NEXT_DAY(d, cad)
(Domingo, lunes...) después de la fecha d.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

SYSDATE Fecha actual.


SELECT SYSTIMESTAMP FROM
Fecha y ahora actual
dual;

Funciones de Conversión de Tipo

Función Descripción
Convierte la cadena cad a un número,
TO_NUMBER(cad,
opcionalmente de acuerdo con el formato
[fmto])
fmto. El formato es opcional
Convierte la fecha d a una cadena de
TO_CHAR(d [, fmto]) carácteres, opcionalmente de acuerdo con
el formato fmto.
Convierte la cadena cad de tipo varchar2 a
TO_DATE(cad, fmto) fecha, opcionalmente de acuerdo con el
formato fmto.

Con las fechas pueden utilizarse varios formatos. Estos formatos permiten modificar la
presentación de una fecha. En la siguiente tabla se presentan algunos formatos de fecha y el
resultado que generan.

Máscaras de Formato Numéricas:


Formato Descripción
cc ó scc Valor del siglo.
y, yyy ó sy, yyy Año con coma, con o sin signo.
Año sin signo con cuatro, tres, dos o un
yyyy ó yyy ó yy ó y
dígitos.
q Trimestre.
ww ó w Número de la semana del año o del mes.
mm Número del mes.
ddd ó dd ó d Número del día del año, del mes o de la

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

semana.
hh ó hh12 ó hh24 La hora en formato 12h. o 24h.
mi Los minutos de la hora.
Los segundos dentro del minuto, o desde las
ss ó sssss
0 horas.
syear ó year Año en Inglés
Nombre del mes o su abreviatura de tres
month o mon
letras.
Nombre del día de la semana o su
day ó dy
abreviatura de tres letras.
a.m. ó p.m. El espacio del día.
Indicador del año respecto al del nacimiento
b.c. ó a.d.
de Cristo.

CONSULTAS DESDE MULTIPLES TABLAS


Reglas de Combinación:

o Pueden combinarse tantas tablas como se desee.

o El criterio de combinación puede estar formado por más de una pareja de


columnas.

o En la cláusula SELECT pueden citarse columnas de ambas tablas,


condicionen o no la combinación.

o Si hay columnas con el mismo nombre en las distintas tablas, deben


identificarse especificando la tabla de procedencia o utilizando un alias de
tabla.

SUBCONSULTAS
Una subconsulta es aquella consulta de cuyo resultado depende otra consulta,
llamada principal, y se define como sentencia SELECT que está incluida en la orden
WHERE de la consulta principal.

Una subconsulta es una instrucción SELECT anidada dentro de una instrucción


SELECT, SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra
subconsulta.

Una subconsulta, a su vez, puede contener otra subconsulta y así hasta un máximo
de 16 niveles. Las particularidades de las subconsultas son:

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

a) Su resultado no se visualiza, sino que se pasa a la consulta principal para su


comprobación.
b) Puede devolver un valor único o una lista de valores y en dependencia de esto se
debe usar el operador del tipo correspondiente.
c) No puede usar el operador BETWEEN, ni contener la orden ORDER BY.
Puede contener una sola columna, que es lo más común, o varias columnas.Este
d)
último caso se llama subconsulta con columnas múltiples. Cuando dos o más
columnas serán comprobadas al mismo tiempo, deben encerrarse entre
paréntesis.

Las subconsultas pueden devolver más de una columna, y se habrán de comparar


de manera consecuente:

o Las columnas de la clausula WHERE de la consulta principal deben estar


agrupadas por paréntesis.

o Las columnas encerradas entre paréntesis deben coincidir en número y tipo


de datos con los datos que devuelve la subconsulta.

Se puede utilizar una subconsulta para insertar valores en una tabla en el momento
de la creación de la misma con la cláusula AS.

INSTRUCCIÓN JOIN

La instrucción JOIN sirve para unir dos tablas en base a un criterio, el cual
generalmente es un campo llave.

Es una operación que combina registros de dos tablas en una base de datos
relacional que resulta en una nueva tabla (temporal) llamada tabla de JOIN. En el
lenguaje de consulta SQL hay dos tipos de JOIN: INNER y OUTER.

Como caso especial, una tabla (tabla base, vista o una tabla JOIN) puede realizar la
operación JOIN sobre ella misma otra vez. Esto se conoce como self-JOIN.

Matemáticamente, un JOIN es una relación de composición. Estas son las


operaciones fundamentales en el álgebra relacional.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

FUNCIONES DE AGREGACION
Las funciones de agregación o agrupamiento son funciones que toman una colección
de valores y devuelven como resultado un único valor.
Las funciones de agrupamiento que se pueden utilizar en Oracle son las siguientes.

Función Cometido
AVG(col) Promedio de todos los valores de la columna col.
COUNT(col) Cuenta el número de filas agrupadas.
MAX(col) Valor máximo de todos los valores de la columna col.
Calcula el valor mínimo de todos los valores de la columna
MIN(col)
col.
SUM(col) Suma de los valores de la columna col.
STDDEV(col) Desviación estándar de los valores de la columna col.
VARIANCE(col) Varianza de los valores de la columna col

Observe que los valores nulos no participan en el cálculo de las funciones de


conjuntos. Estas funciones se pueden utilizar con las cláusulas DISTINCT y ALL.
También se pueden utilizar aunque no realicemos agrupación alguna en la consulta,
considerando a toda la tabla como un grupo.

CURSORES
Los cursores se utilizan en PL/SQL para manejar las sentencias SELECT. Un cursor
esta formado por un conjunto de registros devueltos por una instrucción SQL del tipo
SELECT. Desde un punto de visto interno a la base de datos Oracle, los cursores

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

son segmentos de memoria utilizados para realizar operaciones con los registros
devueltos tras ejecutar una sentencia SELECT.

Reciben el nombre de cursores implícitos, cuando la sentencia SELECT regresa solo


un registro.

Para procesar instrucciones SELECT que devuelvan más de una fila, son necesarios
cursores explicítos combinados con un estructura de bloque.

Un cursor admite el uso de parámetros. Los parámetros deben declararse junto con
el cursor.

El siguiente diagrama representa como se procesa una instrucción SQL a través de


un cursor.

Cursores implícitos
Se utilizan cuando la sentencia SELECT devuelve un solo registro. En cada cursor
implicito debe existir palabra reservada INTO.
Las variables que reciben los datos devueltos por el cursor tienen que contienen el
mismo tipo de dato que las columnas de la tabla.

Cursores explícitos
Se utilizan cuando la sentencia SELECT puede devolver varios registros. También
se pueden utilizar en consultas que devuelvan un solo registro por razones de
eficiencia con respecto a los cursores implícitos, eficiencia que mejorará
especialmente si el cursor explícito se tiene que ejecutar varias veces dentro del

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

bloque de código PL/SQL.

Un cursor explícito tiene que ser definido previamente como cualquier otra variable
PL/SQL y debe serle asignado un nombre. Veamos un ejemplo que muestra el
nombre de los jugadores que participaron en todos los minutos del Torneo Apertura
2008, posición y goles anotados o recibidos:

Los cursores explícitos admiten el uso de parámetros. Los parámetros deben


declararse junto con el cursor. Por ejemplo: Considere a los jugadores del apertura
2008 del Futbol Mexicano de primera división que jugaron todos los minutos y
además anotaron al menos un gol.

Al trabajar con cursores debemos considerar:

o Es necesario abrir el cursor para poderlo leer.

o El resultado de la lectura de un cursor se puede comprobar usando los


atributos de cursores.

o Cuando se cierra el cursor, es ilegal tratar de usarlo.

o Es ilegal tratar de cerrar un cursor que ya está cerrado o no ha sido abierto

o Por medio de ciclo LOOP podemos iterar a través del cursory debe agregarse
una condición para salir del bucle:

o Toman los valores TRUE, FALSE o NULL dependiendo de la situación:

PROCEDIMIENTOS ALMACENADOS
Un procedimiento es un subprograma que ejecuta una acción específica y que no
devuelve ningún valor. Un procedimiento tiene un nombre, un conjunto de
parámetros (opcional) y un bloque de código.

La sintaxis de un procedimiento almacenado es la siguiente:

CREATE [OR REPLACE]


PROCEDURE <nombre_procedure> [(<param1> [IN|OUT|IN OUT]
<type>,
<param2> [IN|OUT|IN OUT] <type>, ...)]
IS
-- Declaración de variables locales
BEGIN

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

-- Sentencias
[EXCEPTION]
-- Sentencias control de excepción
END [<nombre_procedure>];

Al especificar el tipo de dato del parámetro no debemos especificar la longitud del


tipo
Los parámetros pueden ser de entrada (IN), de salida (OUT) o de entrada salida (IN
OUT). El valor por defecto es IN, y se toma ese valor en caso de que no
especifiquemos nada.
También es posible usar cursores dentro de un procedimiento almacenado.

TRIGGERS
Un disparador (o trigger) es un tipo especial de procedimiento almacenado asociado
a una tabla que se ejecuta al realizar una operación “básica” (INSERT, un DELETE o
un UPDATE) sobre ésta. La operación básica que despierta al trigger es conocida
como sentencia disparadora.

La ejecución del disparador puede ser antes (before) o después (after) de llevar a
cabo la sentencia disparadora. Es posible especificar condiciones adicionales para la
ejecución del disparador (restrictores). Dado que una sentencia disparadora puede
afectar una o más filas de una tabla, es necesario especificar si se quiere que el
disparador se ejecute para cada una de las filas afectadas o para el bloque en
general.

Para diseñar un disparador hay que cumplir dos requisitos:

o Especificar las condiciones en las que se va a ejecutar el disparador. Esto se


descompone en un evento que causa la comprobación del disparador y una
condición que se debe cumplir para ejecutar el disparador.
o Especificar las acciones que se van a realizar cuando se ejecute el
disparador. Los triggers PL/SQL constituyen una potente herramienta para
mantener la integridad de la base de datos, ya que pueden llevar a cabo
cualquier acción que sea necesaria para el mantenimiento de dicha integridad.

Los triggers PL/SQL pueden llamar a otros procedimientos y disparar otros triggers,
pero no admiten parámetros y no pueden ser invocados desde otros procedimientos
PL/SQL.

La sintaxis de un disparador Oracle es

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

CREATE [OR REPLACE] TRIGGER nombre


{BEFORE | AFTER | INSTEAD OF} // Temporalidad del
Evento
{INSERT | DELETE | UPDATE [OF <lista de columnas>]} ON
<tabla>
[FOR EACH ROW | STATEMENT] //Granularidad
[WHEN condición]
[DECLARE//Declaración de variables
…]
BEGIN
cuerpo del trigger
[EXCEPTION
…]
END;

Temporalidad del Evento: AFTER / BEFORE

• BEFORE: Ejecutan la acción asociada antes de que la sentencia sea ejecutada

o Decidir si la acción debe realizarse o no


o Utilizar valores alternativos para la sentencia

CREATE TRIGGER NombreTrigger


BEFORE Insert ON NombreTabla ….

• AFTER: Ejecutan la acción asociada después de que se haya ejecutado la


sentencia
CREATE TRIGGER NombreTrigger
AFTER Insert ON NombreTabla ….

INSTEAD OF
Desde Oracle 8 se proporciona los disparadores de sustitución, con ciertas
restricciones

INSTEAD OF es una cláusula válida solo para vistas; no se puede especificar un


disparador INSTEAD OF en una tabla. Si una vista tiene un disparador INSTEAD
OF, cualquier vista creada sobre ésta debe tener a su vez un disparador INSTEAD
OF. Cuando definimos disparadores INSTEAD OF para columnas LOB, podemos
leer tanto el seudo-registro :OLD como el seudo-registro :NEW, pero no se puede
modificar sus valores. Evento: Tipo de orden DML sobre una tabla que provoca la
activación del disparador.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

{INSERT | DELETE | UPDATE [OF <lista de


columnas>]}

Granuralidad del Evento:


• A NIVEL DE FILA: FOR EACH ROW:Ejecutan la acción asociada tantas veces
como filas se vean afectadas por la sentencia que lo dispara. Si ninguna fila se ve
afectada, no se dispara

• A NIVEL DE SENTENCIA: FOR EACK STATEMENT: Disparadores con nivel de


orden. Es la opción por defecto. Ejecutan una única vez la acción asociada,
independientemente del número de filas que se vean afectadas por la sentencia
(incluso si no hay filas afectadas).

Condición: WHEN
La cláusula WHEN sólo es válida para los disparadores con nivel de fila, no puede
contener subconsultas, vistas. Si está presente, el cuerpo del disparador sólo se
ejecutará para las filas que cumplan la condición especificada en la cláusula.
La cláusula WHEN tiene la forma:
WHEN condición
donde condición es una expresión booleana que será evaluada para cada fila. Se
puede hacer también referencia a los registros :new y :old dentro de la condición,
pero en ese caso no se utilizan los dos puntos.

Registros :old y :new

Estas variables se utilizan del mismo modo que cualquier otra variable PL/SQL, con
la salvedad de que no es necesario declararlas, son de tipo %ROWTYPE
y contienen una copia del registro antes (OLD) y despues(NEW) de la acción SQL
(INSERT, UPDATE, DELETE) que ha ejecutado el trigger. Utilizando esta variable
podemos acceder a los datos que se están insertando, actualizando o borrando.

De uso exclusivo en los disparadores de nivel de fila, si se intenta hacer referencia a


cualquiera de los dos dentro de otro tipo de disparador, se obtendrá un error de
compilación.

• :old y :new son registros que nos permiten acceder a los datos de la fila actual

La siguiente tabla resume los valores regresados por estos seudoregistros en


diferentes eventos

Seudoregistros
Evento
:OLD :NEW

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

INSERT NULL Nuevos valores


DELETE Valores almacenados NULL
UPDATE Valores almacenados Nuevos valores

Bloque PL/SQL
Bloque es la unidad de estructura básica en los programas PL/SQL. Supone una
mejora en el rendimiento, pues se envían los bloques completos al servidor para ser
procesados en lugar de enviar cada secuencia SQL.

Partes de un bloque:

o Zona de declaraciones: zona opcional. Se declaran los objetos locales


(variables, constantes...).

o Zona de instrucciones: zona obligatoria.

o Zona de tratamiento de excepciones: zona opcional. Se tratan excepciones


en el programa.

Forma de crear un bloque:

Zona de declaraciones: DECLARE

Tipos de datos
NUMBER
CHAR (longitud fija)
VARCHAR (longitud variable)
DATE
BOOLEAN (es un tipo PL/SQL, no de BD).
Declaración implícita del tipo de datos.
var1 var2%TYPE
var tabla.campo%TYPE

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Declaración de registros
var tabla%ROWTYPE
var cursor%ROWTYPE

Cuerpo: bloque PL/SQL y SQL


este bloque de instrucciones se realiza si se ejecuta la sentencia activadora
especificada para el trigger y, si existe una cláusula WHEN ésta es TRUE. Con las
siguientes restricciones:

o Un disparador no puede emitir ninguna orden de control de transacciones


(COMMIT, ROLLBACK o SAVEPOINT).

o El disparador se activa como parte de la ejecución de la orden que provocó el


disparo, y forma parte de la misma transacción que dicha orden.

o Cuando la orden que provoca el disparo es confirmada o cancelada, se


confirma o cancela también el trabajo realizado por el disparador.

o Ningún procedimiento o función llamada por el disparador puede emitir


órdenes de control de transacciones.

o No puede contener ninguna declaración de variables LONG o LONG RAW.

o Restricciones en tablas a las que se puede acceder

o No puede modificar las columnas de clave primaria.

INSERTING, DELETING Y UPDATING


Si un trigger puede ser activado por más de un tipo de operación (por ejemplo,
"INSERT OR DELETE OR UPDATE OF Tabla"), el cuerpo del trigger puede utilizar
los predicados condicionales INSERTING, DELETING y UPDATING para ejecutar
bloques específicos de código, dependiendo del tipo de operación que activó el
disparador.

La sintaxis es la siguiente

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

CREATE OR REPLACE TRIGGER Ejemplo


BEFORE INSERT OR UPDATE OR DELETE ON tabla
BEGIN
IF DELETING THEN
Acciones asociadas al borrado
ELSIF INSERTING THEN
Acciones asociadas a la inserción
ELSIF UPDATING
Acciones asociadas a la modificación
END IF;
END Ejemplo;
En un UPDATE, se puede especificar el nombre de una columna en un predicado
condicional UPDATING para determinar si la columna especificada ha sido
actualizada. Por ejemplo:
CREATE OR REPLACE TRIGGER Ejemplo
BEFORE INSERT OR DELETE OR UPDATE ON tabla
BEGIN
IF DELETING THEN
Acciones asociadas al borrado
ELSIF INSERTING THEN
Acciones asociadas a la inserción
ELSIF UPDATING(‘COL1’)
Acciones asociadas a la modificación
ELSIF UPDATING(‘COL2’)
Acciones asociadas a la modificación
END IF;

RAISE_APPLICATION_ERROR
Permite que un programa PL/SQL pueda generar errores tal y como lo hace Oracle.
Cuando se produce un error no tratado en la sección EXCEPTION, el error pasa
fuera del bloque, al entorno que realizó la llamada.

Con RAISE_APPLICATION_ERROR se pueden generar errores similares con el


mensaje que se quiera y, como ocurre con los errores generados por Oracle, el
programa genera una EXCEPCIÓN.

La excepción puede tratarse en la sección EXCEPTION del bloque PL/SQL que la


genera o del bloque que efectúe su llamada, usando el manejador OTHERS y
SQLCODE/SQLERRM.

Formato: RAISE_APPLICATION_ERROR(<NE>, <ME>, [<PE>])

o <NE>: Número del error, comprendido entre –20.000 y –20.999.


o <ME>: Mensaje del error, de longitud máxima 512 caracteres.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

o <PE>: Preservar errores es un valor lógico opcional. Indica si el error se


introduce a la lista de errores ya generados (TRUE) o sustituye la lista actual
con el nuevo error (FALSE, valor predeterminado).

Permite generar errores con mensajes más significativos que los que generaría
Oracle: Puede utilizarse en la sección EXCEPTION.

Hace que requieran el mismo tratamiento los errores definidos por el usuario y los
errores predefinidos.

EXCEPCIONES PREDEFINIDAS
Hay Excepciones Predefinidas que controlan errores particulares (Todas aquellas
excepciones que no son controladas por el sistema manejador de excepciones
Oracle y/o por las excepciones definidas por el programador, controlando cualquier
tipo de error). Algunas son:

INVALID_CURSOR: Se genera al intentar efectuar una operación ilegal sobre un


cursor, como cerrar o intentar extraer datos de un cursor no abierto.

CURSOR_ALREADY_OPEN: Surge al intentar abrir un cursor ya abierto.

NO_DATA_FOUND: Cuando una orden SELECT..INTO no devuelve ninguna fila o


cuando se intenta referenciar un elemento de una tabla PL/SQL al que no se le ha
asignado ningún valor previamente.

TOO_MANY_ROWS: Si una orden SELECT..INTO devuelve más de una fila.

INVALID_NUMBER: Si falla la conversión de cierto valor a un tipo NUMBER o


cuando usamos un dato no numérico en lugar de un dato numérico.

VALUE_ERROR: Se genera cada vez que se produce un error aritmético, de


conversión, de truncamiento o de restricciones en una orden procedimental (si es
una orden SQL se produce la excepción INVALID_NUMBER). Ej.: Si asignamos una
cadena o número de mayor longitud que el tipo de la variable receptora.

STORAGE_ERROR y PROGRAM_ERROR: Son errores internos que no deberían


producirse. Ocurren respectivamente si PL/SQL se queda sin memoria o por un fallo
en el motor PL/SQL de Oracle y debería avisarse del error al departamento de
soporte técnico de Oracle.

DUP_VAL_ON_INDEX: Es el error ORA-1, generado cuando se intenta insertar una


fila en una tabla con un atributo UNIQUE y el valor de ese campo en la fila que se
intenta insertar ya existe.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

ZERO_DIVIDE: Intento de división por cero.

Compilado Triggers
El funcionamiento de un trigger deja de estar ENABLE si dependen de
Procedimientos almacenados o función en el cuerpo del disparador y este es
modificado. Los disparadores DISABLE por razones de dependencia son
recompilado en la próxima invocación.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Firebird

F
irebird es una base de datos relacional que
ofrece muchas características de SQL ANSI
estándar y que funciona en Linux,
Windows, MacOSX y una variedad de plataformas
UNIX. Firebird ofrece una concurrencia excelente, alto
rendimiento y un poderoso lenguaje de
procedimientos almacenados y disparadores. Ha
estado usándose en producción bajo varios
nombres desde 1981.

El Proyecto Firebird es un proyecto independiente de programadores de C y


C++, asesores técnicos y colaboradores que desarrollan y mejoran a Firebird, la
base de datos relacional basada en el código fuente liberado por Inprise Corp (ahora
conocida como Borland Software Corp) el 25 de julio de 2000.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Objetivos
Apoyar y lograr el avance del manejador de base de datos relacional Firebird
Proveer los mecanismos e infraestructura no comerciales para aceptar y administrar
los fondos recaudados, e invertir tales fondos para promover el esfuerzo del
desarrollo de esta base de datos.

Fomentar la cooperación y la afiliación de individuos, organizaciones sin fines


de lucro y compañías comerciales involucradas o que estén planeando estar
involucradas en el desarrollo, apoyo y promoción de los proyectos de software de
Firebird y sus productos y actividades asociadas.

Historia

A finales de la década de 1990, Borland decidió liberar el código de Interbase.


Diversos integrantes de la plantilla crearon una nueva empresa denominada
IBPhoenix, y junto a otros desarrolladores independientes, crearon el fork ahora
conocido como Firebird. Más tarde, Borland decidiría volver a privatizar Interbase y
comercializar sus licencias. Sin embargo, Firebird sigue siendo un proyecto de
código abierto bajo una licencia similar a la MPL (Mozilla Public License).

Características

 Es multiplataforma, y actualmente puede ejecutarse en los sistemas


operativos: Linux, HP-UX, FreeBSD, Mac OS, Solaris y Microsoft Windows.

 Ejecutable pequeño, con requerimientos de hardware bajos.

 Arquitectura Cliente/Servidor sobre protocolo TCP/IP y otros (embedded).

 Soporte de transacciones ACID y claves foráneas.

 Es medianamente escalable.

 Buena seguridad basada en usuarios/roles.

 Diferentes arquitecturas, entre ellas el Firebird incrustado (embedded server)


que permite ejecutar aplicaciones monousuario en ordenadores sin instalar el
software Firebird.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

 Bases de datos de sólo lectura, para aplicaciones que corran desde


dispositivos sin capacidad de escritura, como cd-roms.

 Existencia de controladores ODBC, OLEDB, JDBC, PHP, Perl, .net, etc.

 Requisitos de administración bajos, siendo considerada como una base de


datos libre de mantenimiento, al margen de la realización de copias de seguridad.

 Pleno soporte del estándar SQL-92, tanto de sintaxis como de tipos de datos.

 Completo lenguaje para la escritura de disparadores y procedimientos


almacenados denominado PSQL.

 Capacidad de almacenar elementos BLOB (Binary Large OBjects).

 Soporte de User-Defined Functions (UDFs).

 Versión autoejecutable, sin instalación, excelente para la creación de


catálogos en CD-Rom y para crear versiones de evaluación de algunas aplicaciones.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Microsoft SQL server

Está disponible para la mayoría de las plataformas de sistemas operativos.


Su bajo consumo lo hacen apto para ser ejecutado en una máquina con escasos
recursos sin ningún problema.

El conjunto de aplicaciones Apache-PHP-MySQL es uno de los más utilizados


en aplicaciones en ambiente Web Velocidad a la hora de realizar las operaciones.

Según las cifras del fabricante, existirían cinco millones de copias de MySQL
corriendo en la actualidad, lo que supera la base instalada de cualquier otra
herramienta de bases de datos.

Microsoft SQL Server es capaz de integrar los nuevos


desarrollos para estos entornos específicos con los desarrollos
heredados de aplicaciones "tradicionales". Es más, cada
aplicación que desarrollemos para ser empleada en entornos
de red local puede ser utilizada de forma transparente –en
parte o en su totalidad- desde entornos Internet, Intranet o
Extranet.

Plataforma de desarrollo fácil y abierto: integrada con las mejores tecnologías


de Internet como ActiveX, ADC y Microsoft Transaction Server y con las mejores
herramientas de gestión y desarrollo para Internet como FrontPage97, Microsoft
Office97 y Visual Interdev.

Diseñada para INTERNET: Es el único gestor de base de datos que contiene


de forma integrada la posibilidad de generar contenido HTML de forma automática.

La Base de Soluciones Integradas: La Integración total con BaclOffice permite


resolver toda las necesidades de infraestructura de la empresa con un sólo paquete.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Potente y Escalable: Microsoft SQL Server es la única base de datos cuyo


rendimiento sobre Internet está publicado, ofreciendo registros espectaculares.

Mínimo coste de Propiedad: La sencillez de la instalación, y la potencia de sus


herramientas de gestión y el menor coste de toda la industria para entornos Internet,
hacen de Microsoft SQL Server la mejor opción con el menor coste.

M
My SQL
ySQL es un sistema de gestión de base de
datos relacional, multihilo y multi usuario con
más de seis millones de
instalaciones.1 MySQL AB —desde enero de
2008 una subsidiaria de Sun
Microsystems y ésta a su vez de Oracle Corporation desde abril
de 2009— desarrolla MySQL como software libre en un esquema
de licenciamiento dual.

Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con
esta licencia, pero para aquellas empresas que quieran incorporarlo en productos
privativos deben comprar a la empresa una licencia específica que les permita este
uso. Está desarrollado en su mayor parte en ANSI C.

Al contrario de proyectos como Apache, donde el software es desarrollado por


una comunidad pública y el copyright del código está en poder del autor individual,
MySQL es propietario y está patrocinado por una empresa privada, que posee el
copyright de la mayor parte del código.

Esto es lo que posibilita el esquema de licenciamiento anteriormente


mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte
y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que
colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y
Michael Widenius.

Historia del proyecto

SQL (Lenguaje de Consulta Estructurado) fue comercializado por primera vez


en 1981 por IBM, el cual fue presentado a ANSI y desde entonces ha sido
considerado como un estándar para las bases de datos relacionales. Desde 1986, el
estándar SQL ha aparecido en diferentes versiones como por ejemplo: SQL:92,
SQL:99, SQL:2003. MySQL es una idea originaria de la empresa opensource
MySQL AB establecida inicialmente en Suecia en 1995 y cuyos fundadores son
David Axmark, Allan Larsson, y Michael "Monty" Widenius. El objetivo que persigue
esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin sacrificar
velocidad, fiabilidad o usabilidad.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Michael Widenius en la década de los 90 trató de usar mSQL para conectar


las tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rápido y
flexible para sus necesidades. Esto lo llevó a crear una API SQL denominada
MySQL para bases de datos muy similar a la de mSQL pero más portable.

La procedencia del nombre de MySQL no es clara. Desde hace más de 10


años, las herramientas han mantenido el prefijo My. También, se cree que tiene
relación con el nombre de la hija del cofundador Monty Widenius quien se llama My.

Por otro lado, el nombre del delfín de MySQL es Sakila y fue seleccionado por
los fundadores de MySQL AB en el concurso “Name the Dolphin”. Este nombre fue
enviado por Ambrose Twebaze, un desarrollador de Open source Africano, derivado
del idioma SiSwate, el idioma local de Swazilandia y corresponde al nombre de una
ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de Ambrose.

Lenguajes de programación

Existen varias APIs que permiten, a aplicaciones escritas en diversos


lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C, C+
+, C#, Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (con una
implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby,Gambas,
REALbasic (Mac), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza
una API específica. También existe un interfaz ODBC, llamado MyODBC que
permite a cualquier lenguaje de programación que soporte ODBC comunicarse con
las bases de datos MySQL. También se puede acceder desde el sistema SAP,
lenguaje ABAP.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

Aplicaciones

MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas


(Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de
seguimiento de errores como Bugzilla. Su popularidad como aplicación web está
muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es
una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional
MyISAM, pero puede provocar problemas de integridad en entornos de alta
concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la
modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que
hace a MySQL ideal para este tipo de aplicaciones.

Plataformas

MySQL funciona sobre múltiples plataformas, incluyendo:


 AIX  QNX

 BSD  SGI IRIX

 FreeBSD  Solaris

 HP-UX  SunOS

 GNU/Linux  SCO OpenServer

 Mac OS X  SCO UnixWare

 NetBSD  eBD

 Novell Netware  Windows 95, Windows 98,


Windows NT, Windows 2000,
 OpenBSD Windows XP, Windows Vista y otras
versiones de Windows.
 OS/2 Warp

OpenVMS (véase: www.pi-net.dyndns.org/anonymous/kits/).

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

CONCLUSION
En conclusión, podemos decir, que los sistemas gestores de bases de datos, son
unas aplicaciones muy útiles en lo que es la automatización de las empresas, y un
gran apoyo en los sistemas de información. Tambien, cada uno tiene ventajas y
desventajas, no hay uno que sea perfecto, sin embargo, para nuestros fines,
consideramos que el SGBD mas completo, es Oracle.

Tambien aprendimos que tienen una importante historia, que existen muchas
funciones y tambien, muchos programas, algunos gratuitos, algunos de paga,
algunos de prueba, y que debemos escoger aquel que se ajuste a las necesidades
de nuestro cliente.

Otro punto importante es que aprendimos que aunque haya muchos programas y
versiones de ellas, todas ellas hablan el mismo lenguaje : SQL, lo cual facilita mucho
las cosas, ya que si nosotros sabemos codigo SQL, básicamente, la vamos a poder
hacer en cualquier sistema que nos pongan.

BIBLIOGRAFIA
o Connolly & Begg. (2005). Sistemas de bases de datos. Un enfoque práctico
para diseño, implementación y gestión. Pearson Addison Wesley. Madrid.

o Kroenke. (2002). Procesamiento de Bases de Datos. Fundamentos, Diseño e


Implementación. Octava Edición. Pearson. Prentice Hall.

o Luque ruiz, Gómez-Nieto, López Espinosa & Cerruela García. (2002). Bases
de Datos. Desde Chen hasta Codd con Oracle. Alfaomega Ra-Ma. México

o Piattiani, Esparza Marcos, Calero Coral & Vela Belen.(2007). Tecnología y


diseño de Bases de Datos. AlfaOmega Ra-Ma. México.

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ
EQUIPO 7
2010-2011 UDICA

o Silberschatz, Korth & Sudarshan. (2006). Fundamentos de Base de Datos. Mc


Graw Hil. Quinta Edición. España.

o http://www.microsoft.com/mexico/sql/2008/default.aspx

BASES DE DATOS DR. CARLOS A. TORRES


GASTELÚ

Potrebbero piacerti anche