Está en la página 1de 21

1.

2.

Lenguaje de Definicin de Datos


Lenguaje de Manipulacin de
Datos

M. C. Gustavo Alfonso Gutirrez


Carren

Los

'sistemas de gestin de bases de


datos (en ingls database
management system, abreviado
DBMS) son un tipo de software muy
especfico, dedicado a servir de
interfaz entre la base de datos, el
usuario y las aplicaciones que la
utilizan.

M.C. Gustavo A. Gutirrez Carren

mar-10

M.C. Gustavo A. Gutirrez Carren

mar-10

Existen distintos objetivos que deben cumplir los SGBD:

Abstraccin de la informacin. Los SGBD ahorran a los usuarios


detalles acerca del almacenamiento fsico 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 abstraccin.

Independencia. La independencia de los datos consiste en la


capacidad de modificar el esquema (fsico o lgico) 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 informacin que
aparece repetida se actualice de forma coherente, es decir, que todos
los datos repetidos se actualicen de forma simultnea. 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 debera aceptar datos
de un conductor menor de edad. En los SGBD existen herramientas que
facilitan la programacin de este tipo de condiciones.
M.C. Gustavo A. Gutirrez Carren

mar-10

Seguridad. La informacin almacenada en una base


de datos puede llegar a tener un gran valor. Los SGBD
deben garantizar que esta informacin se encuentra
segura de permisos a usuarios y grupos de usuarios,
que permiten otorgar diversas categoras de permisos.
Manejo de transacciones. Una transaccin es un
programa que se ejecuta como una sola operacin.
Esto quiere decir que luego de una ejecucin en la
que se produce una falla es el mismo que se
obtendra si el programa no se hubiera ejecutado. Los
SGBD proveen mecanismos para programar las
modificaciones de los datos de una forma mucho ms
simple que si no se dispusiera de ellos.
Tiempo de respuesta. Lgicamente, es deseable
minimizar el tiempo que el SGBD tarda en darnos la
informacin solicitada y en almacenar los cambios
realizados.

M.C. Gustavo A. Gutirrez Carren

mar-10

El lenguaje de consulta estructurado SQL (por


sus siglas en ingls: Structured Query Language)
es un lenguaje declarativo de acceso a bases de
datos relacionales que permite especificar
diversos tipos de operaciones en stas.
Una de sus caractersticas es el manejo del
lgebra y el clculo relacional permitiendo
efectuar consultas con el fin de recuperar -de
una forma sencilla- informacin de inters de
una base de datos, as como tambin hacer
cambios sobre ella.
Es un lenguaje de cuarta generacin (4GL).

M.C. Gustavo A. Gutirrez Carren

mar-10

El

lenguaje de definicin de datos (en ingls


Data Definition Language, o DDL), es el que
se encarga de la modificacin de la
estructura de los objetos de la base de
datos.
Existen cuatro operaciones bsicas:

CREATE
ALTER
DROP
TRUNCATE

M.C. Gustavo A. Gutirrez Carren

mar-10

Este

comando crea un objeto dentro de la


base de datos.
Puede ser una tabla, vista, ndice, trigger,
funcin, procedimiento o cualquier otro
objeto que el motor de la base de datos
soporte.
Ejemplo (crear una tabla)
CREATE TABLE 'TABLA_NOMBRE' (
'CAMPO_1' INT,
'CAMPO_2' STRING
)

M.C. Gustavo A. Gutirrez Carren

mar-10

CREATE

TABLE tabla (campo1 tipo (tamao)


ndice1 , campo2 tipo (tamao) ndice2 , ...,
ndice multicampo , ... )
Parte
tabla
campo1
campo2
tipo
tamao
ndice1
ndice2

ndice multicampos

M.C. Gustavo A. Gutirrez Carren

Descripcin
Es el nombre de la tabla que se va a crear.
Es el nombre del campo o de los campos
que se van a crear en la nueva tabla. La
nueva tabla debe contener, al menos, un
campo.
Es el tipo de datos de campo en la nueva
tabla. (Ver Tipos de Datos)
Es el tamao del campo slo se aplica para
campos de tipo texto.
Es una clusula CONSTRAINT que define el
tipo de indice a crear. Esta clusula en
opcional.
Es una clusula CONSTRAINT que define el
tipo de indice multicampos a crear. Un
ndice multi campo es aquel que est
indexado por el contenido de varios
campos. Esta clusula en opcional.
mar-10

Tipo de Indice
UNIQUE

PRIMARY KEY

FOREIGN KEY

M.C. Gustavo A. Gutirrez Carren

Descripcin
Genera un ndece de clave nica. Lo que
implica que los registros de la tabla no
pueden contener el mismo valor en los
campos indexados.
Genera un ndice primario el campo o los
campos especificados. Todos los campos de
la clave principal deben ser nicos y no
nulos, cada tabla slo puede contener una
nica clave principal.
Genera un ndice externo (toma como
valor del ndice campos contenidos en
otras tablas). Si la clave principal de la
tabla externa consta de ms de un campo,
se debe utilizar una definicin de ndice de
mltiples campos, listando todos los
campos de referencia, el nombre de la
tabla externa, y los nombres de los campos
referenciados en la tabla externa en el
mismo orden que los campos de referencia
listados. Si los campos referenciados son la
clave principal de la tabla externa, no
tiene que especificar los campos
referenciados, predeterminado por valor,
el motor Jet se comporta como si la clave
principal de la tabla externa fueran los
campos referenciados.
mar-10

Este

comando permite modificar la


estructura de un objeto.
Se pueden agregar/quitar campos a una
tabla, modificar el tipo de un campo,
agregar/quitar ndices a una tabla, modificar
un trigger, etc.
Ejemplo (agregar columna a una tabla)
ALTER TABLE 'TABLA_NOMBRE' (
ADD NUEVO_CAMPO INT
)

M.C. Gustavo A. Gutirrez Carren

mar-10

ALTER TABLE tabla {ADD {COLUMN tipo de


campo[(tamao)] [CONSTRAINT ndice]
CONSTRAINT ndice multicampo} |
DROP {COLUMN campo I CONSTRAINT nombre del
ndice} }

Parte
tabla
campo
tipo
tamao

ndice

ndice multicampo

Descripcin
Es el nombre de la tabla que se desea
modificar.
Es el nombre del campo que se va a aadir
o eliminar.
Es el tipo de campo que se va a aadir.
El el tamao del campo que se va a aadir
(slo para campos de texto).
Es el nombre del ndice del campo (cuando
se crean campos) o el nombre del ndice de
la tabla que se desea eliminar.
Es el nombre del ndice del campo
multicampo (cuando se crean campos) o el
nombre del ndice de la tabla que se desea
eliminar.

M.C. Gustavo A. Gutirrez Carren

mar-10

Operacin

ADD COLUMN

ADD

DROP COLUMN

DROP

M.C. Gustavo A. Gutirrez Carren

Descripcin
Se utiliza para aadir un nuevo
campo a la tabla, indicando el
nombre, el tipo de campo y
opcionalmente el tamao (para
campos de tipo texto).
Se utliza para agregar un ndice
de multicampos o de un nico
campo.
Se utliza para borrar un campo.
Se especifica nicamente el
nombre del campo.
Se utiliza para eliminar un
ndice. Se especifica nicamente
el nombre del ndice a
continuacin de la palabra
reservada CONSTRAINT.

mar-10

Este

comando elimina un objeto de la base


de datos.
Puede ser una tabla, vista, ndice, trigger,
funcin, procedimiento o cualquier otro
objeto que el motor de la base de datos
soporte.
Se puede combinar con la sentencia ALTER.
Ejemplo
ALTER TABLE ''TABLA_NOMBRE''
(
DROP COLUMN ''CAMPO_NOMBRE1''
)
M.C. Gustavo A. Gutirrez Carren

mar-10

Este comando trunca todo el contenido de una tabla.


La ventaja sobre el comando DROP, es que si se
quiere borrar todo el contenido de la tabla, es mucho
ms rpido, especialmente si la tabla es muy grande.
La desventaja es que TRUNCATE slo sirve cuando se
quiere eliminar absolutamente todos los registros, ya
que no se permite la clusula WHERE.
Si bien, en un principio, esta sentencia parecera ser
DML (Lenguaje de Manipulacin de Datos), es en
realidad una DDL, ya que internamente, el comando
TRUNCATE borra la tabla y la vuelve a crear y no
ejecuta ninguna transaccin.
Ejemplo
TRUNCATE TABLE ''TABLA_NOMBRE1''
M.C. Gustavo A. Gutirrez Carren

mar-10

Un lenguaje de manipulacin de datos (Data


Manipulation Language, o DML en ingls) es un
lenguaje proporcionado por el sistema de gestin
de base de datos que permite a los usuarios
llevar a cabo las tareas de consulta o
manipulacin de los datos, organizados por el
modelo de datos adecuado.
El lenguaje de manipulacin de datos ms
popular hoy da es SQL, usado para recuperar y
manipular datos en una base de datos relacional.
Otros ejemplos de DML son los usados por bases
de datos IMS/DL1, CODASYL u otras.

M.C. Gustavo A. Gutirrez Carren

mar-10

Utilizado para consultar registros de la base de datos


que satisfagan un criterio determinado.
La sintaxis bsica de una consulta de seleccin es la
siguiente:
SELECT Campos FROM Tabla
Puede contener alguna de las siguientes clausulas:

FROM
Utilizada para especificar la tabla de la cual
se van a seleccionar los registros
WHERE
Utilizada para especificar las condiciones que
deben reunir los registros que se van a seleccionar
GROUP BY Utilizada para separar los registros
seleccionados en grupos especficos
HAVING
Utilizada para expresar la condicin que
debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros
seleccionados de acuerdo con un orden especfico
M.C. Gustavo A. Gutirrez Carren

mar-10

Predicado
ALL
TOP

DISTINCT

DISTINCTROW

Descripcin
Devuelve todos los campos
de la tabla
Devuelve un determinado
nmero de registros de la
tabla
Omite los registros cuyos
campos seleccionados
coincidan totalmente
Omite los registros
duplicados basandose en la
totalidad del registro y no
slo en los campos
seleccionados.

M.C. Gustavo A. Gutirrez Carren

mar-10

Una sentencia INSERT de SQL agrega uno o ms


registros a una (y slo una) tabla en una base de
datos relacional.
Forma bsica
INSERT INTO ''tabla'' (''columna1'', [''columna2,... ''])
VALUES (''valor1'', [''valor2,...''])
Las cantidades de columnas y valores deben ser
iguales.
Si una columna no se especifica, le ser asignado el
valor por omisin.
Los valores especificados (o implcitos) por la
sentencia INSERT debern satisfacer todas las
restricciones aplicables.
Si ocurre un error de sintaxis o si alguna de las
restricciones es violada, no se agrega la fila y se
devuelve un error.
M.C. Gustavo A. Gutirrez Carren

mar-10

Una

sentencia UPDATE de SQL es utilizada


para modificar los valores de un conjunto de
registros existentes en una tabla.
Forma bsica
UPDATE ''tabla''
SET ''columna1'' = ''valor1'' ,''columna2'' =
''valor2'',...
WHERE ''columnaN = ''valorN''

M.C. Gustavo A. Gutirrez Carren

mar-10

Una

sentencia DELETE de SQL borra uno o


ms registros existentes en una tabla,
Forma bsica
DELETE FROM ''tabla''
WHERE ''columna1'' = ''valor1''

M.C. Gustavo A. Gutirrez Carren

mar-10

También podría gustarte