Está en la página 1de 24

Concepto De Relacin

Dados dos conjuntos A y B, el producto cartesianos de estos


dos conjuntos es el conjunto formado por todos los pares ordenados
(a,b) donde a es un elemento de A y b es un elemento de B.
Relacin
Dados dos conjuntos A y B una relacin es un subconjunto
del producto cartesiano A x B.

Un elemento a, que pertenece al conjunto A, est
relacionado con un elemento b, que pertenece al conjunto B, si el
par (a, b) pertenece a un subconjunto G (llamado grafo) del
producto cartesiano A x B.
Ejemplo: Sean A = {a, b, c} y B = {1, 2} dos conjuntos. El producto
cartesiano A x B = {(a,1), (a,2), (b,1), (b,2), (c,1), (c,2)}. Una relacin
sera R = {(a,1),(c,2)}.

A las relaciones tambin se les llama correspondencias.



Producto cartesiano
Considere dos conjuntos arbitrarios A y B. El conjunto de
todas las parejas ordenadas (a, b) en donde a A y b B se llama
producto o producto cartesiano de A y B. La definicin de
producto cartesiano puede extenderse fcilmente al caso de ms
de dos conjuntos.

Se llama producto cartesiano de dos conjuntos A y B y se
representa A x B, al conjunto de pares ordenados (a, b), tales que
el primer elemento pertenece al primer conjunto y el
segundo elemento al segundo conjunto. Es decir:
A x B = {(a, b) / a A, b B} El producto cartesiano, en general,
no es conmutativo. Es decir: A x B B x A.

Puede ocurrir que los conjuntos A y B sean coincidentes.


EJEMPLO:

Si A = {a, b, c} y B = {1, 2, 3, 4}, el producto cartesiano es:

A x B = {(a, 1), (a, 2), (a, 3), (a, 4), (b, 1), (b, 2), (b, 3), (b, 4), (c, 1), (c, 2),
(c, 3), (c, 4)}

Se puede representar grficamente por medio de puntos en
un plano, como se muestra a continuacin. Aqu, cada punto P
representa una pareja ordenada (a, b) de nmeros reales
y viceversa; la lnea vertical a travs de P encuentra al eje x en a,
y la lnea horizontal a travs de P encuentra el eje y en b.
A esta representacin se le conoce como diagrama cartesiano.



Hay otra manera de visualizar una relacin y es a travs
de una representacin grfica, donde se destaquen los puntos en el
plano que pertenecen a A y los puntos que pertenecen a B. Se
trazan flechas que indican la relacin que existe entre cada
elemento del conjunto A y su correspondiente en el conjunto B. A
esta representacin grfica se le conoce como un diagrama de
flechas.



Propiedades De Las Relaciones
(Reflexiva, Simtrica, Asimtricas y Transitivas, etc...)
Relaciones Reflexivas e Irreflexivas

Una relacin R en un conjunto A es reflexiva si (a, a) R
para todas las a A, esto es, si a R e para todas las a e A. Una
relacin R en un conjunto A es irreflexiva si a R a para toda a
A.

Por consiguiente, R es reflexiva si cada elemento a e A est
relacionado consigo mismo y es irreflexiva si ningn elemento
est relacionado consigo mismo.

Ejemplo 1:

(a) Sea = [(a, a)\ a A], de modo que A es la relacin
de igualdad en el conjunto A. Entonces A es reflexiva, ya que (a,
a) para todas las a e A.

(b) Sea R = {(a, b) e A x A | a + b}, R es la relacin
de desigualdad en el conjunto A. Entonces R es irreflexible, ya que
(a, a) R para todas las x A.

(c) Sean A = {1, 2, 3}. y J = {(1, 1), (1, 2)}. Entonces A es
reflexiva ya

(2,2) R y (.3,3) R. Por otra parte, R no es irreflexiva, ya que (1, l)
R.

(d) Sea A un conjunto no vacio. Sea R = A x A, la relacin
vaca. Enlaces R no es reflexiva, ya que (a, a) R para todas las a
A (el conjunto vaco tiene elementos). Sin embargo, R es
irreflexiva.

Relaciones Simtricas y Asimtrica

Una relacin R en un conjunto A es simtrica si cuando a R
b, entonces b R a. De esto se sigue que R no es simtrica se tiene a
y b A con a R b, pero b R a. Una relacin R en un conjunto A es
asimtrica si cuando a R b, entonces b Ra. De esto se sigue que R
no es simtrica si se tiene a y b e A con ambos a R b y b R a.
Una relacin R en un conjunto A es asimtrica si cuando a
R b y b R a, entonces a = b. Otra forma de expresar esta definicin
es diciendo que R es anti simtrica si cuando a b, se tiene a R b o
b R a. De esto se sigue que R no es anti simtrica si se tiene a y b
en A. a b, y ambas a R b y b R a.

Ejemplo Sea A = [a, b, c, d, e} y sea R la relacin simtrica
dada por
R = {(a, b), (b, a), (a, c), (c, a), (b, c), (c, b), (b, e), (e, b), (e, a), (a, e),
(c,a), (a,c)}
El grafo dirigido de R se muestra en la figura 2(a), mientras que
en la figura








Grafo dirigido de R Grafo dirigido de R

Aparece el grado de R. Obsrvese que cada arista no
dirigida corresponde a dos pares ordenados en la relacin R.

A una relacin simtrica R en un conjunto A se le
llamar conexa si existe una trayectoria de cualquier elemento
de A a cualquier otro elemento de A. Esto significa sencillamente
que el grafo de R est todo en una pieza. En la figura 3 se
muestran los grafos de dos relaciones simtricas. El grafo de la
figura 3(a) est conectado mientras que el de la figura 3(b) no lo
est.








Relaciones Transitivas

Se dice que una relacin R en un conjunto A es transitiva si
cuando a R b y b R e, entonces a R c. Se sigue que R no es
transitiva si y slo si se puede encontrar elemento a, b y c en A tal
que a R b y b R c, pero a R c.
Ejemplo: Sea A = Z el conjunto de los enteros y sea R la relacin
considerada en el ejemplo 2 Para ver si R es transitiva, se supone
que a R b y b R c. Por consiguiente, a < b; b < c. Entonces se sigue
que a < c, por lo cual a R c. De aqu que R sea transitiva.

Una relacin R en un conjunto A es transitiva si y slo si
satisface las siguientes propiedades: Si existe una trayectoria de
longitud mayor que 1 del vrtice a al vrtice b, hay una
trayectoria de extensin 1 de a a b (esto es, a est relacionada
con b). Establecido algebraicamente, R es transitiva si y slo
si Rn R para todas las n 1.

Es posible caracterizar la relacin transitiva por su matriz
MR = [mij] as:

si mij =1 y mjk = 1, entonces mik = 1

Para ver qu significa transitividad en trminos del grafo
dirigido de una relacin, se traducir esta definicin a trminos
geomtricos.

Si se examinan los vrtices particulares a y c, las
condiciones a R b y b R c

ocurrirn si y slo si existe una trayectoria de longitud 2 de
a a c, esto es, si y slo si a R2 c. Es posible replantear la definicin
de transitividad como sigue: Si a R2 c, entonces a R c, esto es, R2
R (como un subconjunto de A x A).

Relaciones De Equivalencia
(Cerraduras, Clases De Equivalencia y Particiones)
Cerradura de una relacin
Definicin. Sea R una relacin en un conjunto A. Una
cerradura reflexiva ref( R ) de R en A es la menor relacin que
la incluye y que es reflexiva, con smbolos: ( R reflexiva)
(A R ref( R )) R = ref( R )) Una cerradura simtrica sim( R
) de R en A es la menor relacin que la incluye y que es
simtrica, con smbolos: ( Rreflexiva) (A R ref( R )) R =
ref( R ))
Una cerradura transitiva trans( R ) de R en A es la menor
relacin que la incluye y que es transitiva, con
smbolos: ( R reflexiva) (A R ref( R )) R = ref( R )

La cerradura reflexiva y la cerradura simtrica de una
relacin es muy simple de encontrar, solamente se le agregan los
pares necesarios de una forma directa. Cuando conocemos la
matriz asociada a la relacin, la forma de encontrar las
cerraduras anteriores es muy simple.

Teorema: Sea R una relacin en A y M
R
su matriz asociada.
La cerradura reflexiva y la cerradura simtrica de R son nicas
y se pueden obtener mediante las matrices siguientes
M
ref(R)
= M
R
I
n
, donde I
n
es la matriz identidad de orden |A|.
M
sim(R)
= [a
ij
], donde a
ji
= 1 si a
ij
= 1 en M
R
.

La Matriz identidad I
n
de orden n es:
{$ {(1,,0), (vdots, ddots, vdots), (0,,1)] $}
O sea que para lograr la cerradura reflexiva debemos agregar 1s
en la diagonal, para la cerradura simtrica debemos agregar 1s
en luagres simtricos a la diagonal principal donde existan 1s.
Cierre de equivalencia

Para calcular el cierre de equivalencia de una relacin
binaria R sobre un conjunto A:
Calcularemos primero su cierre reexivo, (R)
Sobre el resultado calcularemos el cierre simtrico, ((R))
nalmente el cierre transitivo del resultado anterior, (((R)))

Clases de Equivalencia
Al conjunto de los elementos del conjunto A que estn
relacionados con l se llama clase de equivalencia.
Ejemplo:
La relacin a - b = 2.k (mltiplo de 2), siendo a y b nmeros
enteros es una relacin de equivalencia porque cumple las
propiedades: Reflexiva: a - a = 0 = 2.k (k = 0). Simtrica: a - b = b -
a porque b - a = -(a - b). Si a - b es mltiplo de 2, -(a - b) tambin lo
ser. Transitiva: a - b = 2.k1 b - c = 2.k2 Sumando queda a - c =
2.k3 Entonces a - c es mltiplo de 2.

En el ejemplo anterior, la clase de equivalencia del nmero
cero (uno de los elementos del conjunto de los nmeros
enteros) C(0) = {... -4, -2, 0, 2, 4, ...}, pues 0 - (-4) es mltiplo de 2, 0 -
(-2) es mltiplo de 2 ya s sucesivamente. La clase de equivalencia
del nmero 1 ser C(1) = {... -5, -3, -1, 1, 3, 5, ...} pues la diferencia
entre 1 y los nmeros indicados es mltiplo de 2.

Del mismo modo podramos calcular las clases de
equivalencia de ms nmeros.


El conjunto formado por las clases de equivalencia se
llama conjunto cociente.
En el ejemplo anterior el conjunto cociente Z / 2 es el
conjunto formado por las clases de todos los elementos Z / 2 = {C(0),
C(1), C(2), ... }.
Particiones

Sea X un conjunto. P es una particin de X si y slo si:


Los conjuntos de P son disyuntos 2 a 2, es decir, si
y entonces Observe que si P es una
particin de X, entonces todo elemento de X est en uno y slo un
elemento uno y slo un elemento de modo que parte a en
conjuntos disyuntos. Por ejemplo, el conjunto de barriles propuesto
al comienzo de la seccin es una particin del conjunto de mangos.
Otro ejemplo de una particin es de la divisin poltica de un pas:
El pas (visto como un conjunto de personas) se parte en estados o
departamentos no vacos disyuntos entre s.
Ejemplo

Sea ={1, 2, 3, 4, 5, 6, 7, 8, 9}
Entonces = {{1, 9}, {2, 8}, {3, 4, 5, 6, 7}}
Es una particin de X en tres conjuntos: elementos externos (1,9),
elementos semi-externos (2, 8) y elementos internos (3, 4, 5, 6, 7).
Note que Q = {{1, 2, 9}, {2, 8}, {3, 4, 5, 6, 7}} no es particin de X
(por qu?).
Como lo habamos insinuado, resulta que toda relacin de
equivalencia determina de manera natural una particin.






















Base de datos:
El lenguaje de consulta estructurado o 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 ellas. Una de sus caractersticas
es el manejo del lgebra y el clculo relacional que permiten
efectuar consultas con el fin de recuperar de forma sencilla
informacin de inters de bases de datos, as como hacer cambios
en ellas.
Caractersticas generales del SQL
El SQL es un lenguaje de acceso a bases de datos que explota
la flexibilidad y potencia de los sistemas relacionales y permite as
gran variedad de operaciones.
Es un lenguaje declarativo de "alto nivel" o "de no
procedimiento" que, gracias a su fuerte base terica y su
orientacin al manejo de conjuntos de registros y no a registros
individuales permite una alta productividad en codificacin y
la orientacin a objetos. De esta forma, una sola sentencia puede
equivaler a uno o ms programas que se utilizaran en un
lenguaje de bajo nivel orientado a registros. SQL tambin tiene las
siguientes caractersticas:
Lenguaje de definicin de datos: El LDD de SQL proporciona
comandos para la definicin de esquemas de relacin, borrado de
relaciones y modificaciones de los esquemas de relacin.
Lenguaje interactivo de manipulacin de datos: El LMD de
SQL incluye lenguajes de consultas basado tanto en lgebra
relacional como en clculo relacional de tuplas.
Integridad: El LDD de SQL incluye comandos para
especificar las restricciones de integridad que deben cumplir los
datos almacenados en la base de datos.
Definicin de vistas: El LDD incluye comandos para definir
las vistas.
Control de transacciones: SQL tiene comandos para
especificar el comienzo y el final de una transaccin.
SQL incorporado y dinmico: Esto quiere decir que se pueden
incorporar instrucciones de SQL en lenguajes de programacin
como: C++, C, Java, PHP, Cobol, Pascal y Fortran.
Autorizacin: El LDD incluye comandos para especificar los
derechos de acceso a las relaciones y a las vistas.
Tipos de Datos
Algunos de los tipos de datos bsicos de SQL son:
Date: una fecha de calendario que contiene el ao (de cuatro
cifras), el mes y el da.
Time: La hora del da en horas minutos segundos (el valor
predeterminado es 0).
Timestamp: la combinacin de Date y Time.
Optimizacin
Como ya se dijo antes, y suele ser comn en los lenguajes de
acceso a bases de datos de alto nivel, el SQL es un lenguaje
declarativo. O sea, que especifica qu es lo que se quiere y no cmo
conseguirlo, por lo que una sentencia no establece explcitamente
un orden de ejecucin.
El orden de ejecucin interno de una sentencia puede afectar
seriamente a la eficiencia del SGBD, por lo que se hace necesario
que ste lleve a cabo una optimizacin antes de su ejecucin.
Muchas veces, el uso de ndices acelera una instruccin de
consulta, pero ralentiza la actualizacin de los datos.
Dependiendo del uso de la aplicacin, se priorizar el acceso
indexado o una rpida actualizacin de la informacin. La
optimizacin difiere sensiblemente en cada motor de base de datos
y depende de muchos factores.
Existe una ampliacin de SQL conocida como FSQL (Fuzzy
SQL, SQL difuso) que permite el acceso a bases de datos difusas,
usando la lgica difusa. Este lenguaje ha sido implementado a
nivel experimental y est evolucionando rpidamente.
Lenguaje sql para crear tablas, editar, insertar, consultar y
borrar y todo lo referente.
Lenguaje de definicin de datos (DDL)
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. Incluye rdenes para
modificar, borrar o definir las tablas en las que se almacenan los
datos de la base de datos. Existen cuatro operaciones bsicas:
CREATE, ALTER, DROP y TRUNCATE.
CREATE | CREAR
Este comando permite crear objetos de datos, como nuevas
bases de datos, tablas, vistas y procedimientos almacenados
Ejemplo (crear una tabla)
CREATE TABLE 'CUSTOMERS';
ALTER | MODIFICAR
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 'ALUMNOS' ADD EDAD INT UNSIGNED;
DROP | ELIMINAR
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
DROP TABLE 'ALUMNOS';.
TRUNCATE | BORRAR TABLA
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 'NOMBRE_TABLA';
Lenguaje de manipulacin de datos DML(Data Manipulation
Language)
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.
SELECT | SELECCIONAR
La sentencia SELECT nos permite consultar los datos almacenados
en una tabla de la base de datos.
Forma bsica
SELECT [ALL | DISTINCT ]
<nombre_campo> [{,<nombre_campo>}]
FROM <nombre_tabla>|<nombre_vista>
[{,<nombre_tabla>|<nombre_vista>}]
[WHERE <condicion> [{ AND|OR <condicion>}]]
[GROUP BY <nombre_campo> [{,<nombre_campo >}]]
[HAVING <condicion>[{ AND|OR <condicion>}]]
[ORDER BY <nombre_campo>|<indice_campo> [ASC | DESC]
[{,<nombre_campo>|<indice_campo> [ASC | DESC ]}]]
SELECT
Palabra clave que indica que la sentencia de SQL que
queremos ejecutar es de seleccin.

ALL
Indica que queremos seleccionar todos los valores.Es el
valor por defecto y no suele especificarse casi nunca.

DISTINCT
Indica que queremos seleccionar slo los valores
distintos.

FROM
Indica la tabla (o tablas) desde la que queremos
recuperar los datos. En el caso de que exista ms de
una tabla se denomina a la consulta "consulta
combinada" o "join". En las consultas combinadas es
necesario aplicar una condicin de combinacin a
travs de una clusula WHERE.

WHERE
Especifica una condicin que debe cumplirse para que
los datos sean devueltos por la consulta. Admite los
operadores lgicos AND y OR.

GROUP
BY
Especifica la agrupacin que se da a los datos. Se usa
siempre en combinacin con funciones agregadas.

HAVING
Especifica una condicin que debe cumplirse para que
los datos sean devueltos por la consulta. Su
funcionamiento es similar al de WHERE pero aplicado
al conjunto de resultados devueltos por la consulta.
Debe aplicarse siempre junto a GROUP BY y la
condicin debe estar referida a los campos contenidos
en ella.

ORDER
BY
Presenta el resultado ordenado por las columnas
indicadas. El orden puede expresarse con ASC (orden
ascendente) y DESC (orden descendente). El valor
predeterminado es ASC.
Ejemplo:
Para formular una consulta a la tabla Coches y recuperar
los campos matricula, marca, modelo, color, numero_kilometros,
num_plazas debemos ejecutar la siguiente consulta. Los datos
sern devueltos ordenados por marca y por modelo en orden
ascendente, de menor a mayor. La palabra clave FROM indica
que los datos sern recuperados de la tabla Coches.
SELECT matricula, marca, modelo, color, numero_kilometros,
num_plazas
FROM Coches
ORDER BY marca,modelo;
Ejemplo de Consulta simplificada a travs de un comodn de
Campos (*):
El uso del asterisco indica que queremos que la consulta
devuelva todos los campos que existen en la tabla y los datos sern
devueltos ordenados por marca y por modelo.
SELECT * FROM Coches ORDER BY marca, modelo;
Clusula WHERE
La clusula WHERE es la instruccin que nos permite filtrar
el resultado de una sentencia SELECT. Habitualmente no
deseamos obtener toda la informacin existente en la tabla, sino
que queremos obtener slo la informacin que nos resulte til en
ese momento. La clusula WHERE filtra los datos antes de ser
devueltos por la consulta. Cuando en la Clusula WHERE
queremos incluir un tipo texto, debemos incluir el valor entre
comillas simples.
Ejemplos:
En nuestro ejemplo, se desea consultar un coche en concreto,
para esto se agreg una clusula WHERE. Esta clusula especifica
una o varias condiciones que deben cumplirse para que la
sentencia SELECT devuelva los datos. En este caso la consulta
devolver slo los datos del coche con matrcula para que la
consulta devuelva slo los datos del coche con maricula MF-234-
ZD o bien la matrcula FK-938-ZL . Se puede utilizar la
clusula WHERE solamente, en combinacin con tantas
condiciones como queramos.
SELECT matricula, marca, modelo, color, numero_kilometros,
num_plazas
FROM Coches
WHERE matricula = 'MF-234-ZD'
OR matricula = 'FK-938-ZL' ;

Una Condicin WHERE puede ser negada a travs del
Operador Lgico NOT. La Siguiente consulta devolver todos los
datos de la tabla Coches, menos el que tenga la Matrcula MF-234-
ZD .
SELECT matricula,marca, modelo, color, numero_kilometros,
num_plazas
FROM coches
WHERE NOT matricula = 'MF-234-ZD';
La Siguiente consulta utiliza la condicional DISTINCT, la
cual nos devolver todos los valores distintos formados por los
Campos Marca y Modelo. de la tabla coches.
SELECT DISTINCT marca, modelo FROM coches;
Clusula ORDER BY
La clusula ORDER BY es la instruccin que nos permite
especificar el orden en el que sern devueltos los datos. Podemos
especificar la ordenacin ascendente o descendente a travs de las
palabras clave ASC y DESC. La ordenacin depende del tipo de
datos que este definido en la columna, de forma que un campo
nmerico ser ordenado como tal, y un alfanmerico se ordenar
de la A a la Z, aunque su contenido sea nmerico. El valor
predeterminado es ASC si no se especifica al hacer la consulta.
Ejemplos:
SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM coches
ORDER BY marca ASC,modelo DESC;
Este ejemplo, selecciona todos los campos matricula, marca,
modelo, color, numero_kilometros y num_plazas de la tabla coches,
ordenndolos por los campos marca y modelo, marca en forma
ascendente y modelo en forma descendente.
SELECT matricula,
marca,
modelo,
color,
numero_kilometros,
num_plazas
FROM coches
ORDER BY 2;
Este ejemplo, selecciona todos los campos matrcula, marca,
modelo, color, numero_kilometros y num_plazas de la tabla coches,
ordenndolos por el campo marca, ya que aparece en segundo
lugar dentro de la lista de campos que componen la SELECT.
INSERT | INSERTAR
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 'tablatura' ('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.
Ejemplo
INSERT INTO agenda_telefonica (nombre, numero)
VALUES ('Roberto Jeldrez', 4886850);
Cuando se especifican todos los valores de una tabla, se
puede utilizar la sentencia acortada:
INSERT INTO nombreTabla VALUES ('valor1', ['valor2,...'])
Ejemplo (asumiendo que 'nombre' y 'nmero' son las nicas
columnas de la tabla 'agenda_telefonica'):
INSERT INTO agenda_telefonica
VALUES ('Jhonny Aguiar', 080473968);
Formas avanzadas
Una caracterstica de SQL (desde SQL-92) es el uso
de constructores de filas para insertar mltiples filas a la vez, con
una sola sentencia SQL:
INSERT INTO ''tabla'' (''columna1'', [''columna2,... ''])
VALUES (''valor1a'', [''valor1b,...'']),
(''value2a'', [''value2b,...'']),...;
Esta caracterstica es soportada por DB2, PostgreSQL (desde
la versin 8.2), MySQL, y H2.
Ejemplo (asumiendo que 'nombre' y 'nmero' son las nicas
columnas en la tabla 'agenda_telefonica'):
INSERT INTO agenda_telefonica VALUES ('Roberto Fernndez',
'4886850'), ('Alejandro Sosa', '4556550');
Que poda haber sido realizado por las sentencias
INSERT INTO agenda_telefonica VALUES ('Roberto Fernndez',
'4886850');
INSERT INTO agenda_telefonica VALUES ('Alejandro Sosa',
'4556550');
Notar que las sentencias separadas pueden tener semntica
diferente (especialmente con respecto a los triggers), y puede tener
diferente rendimiento que la sentencia de insercin mltiple.
Para insertar varias filas en MS SQL puede utilizar esa
construccin:
INSERT INTO phone_book
SELECT 'John Doe', '555-1212'
UNION ALL
SELECT 'Peter Doe', '555-2323';
Tenga en cuenta que no se trata de una sentencia SQL vlida
de acuerdo con el estndar SQL (SQL: 2003), debido a la clusula
subselect incompleta.
Para hacer lo mismo en Oracle se usa DUAL TABLE, siempre que
se trate de solo una simple fila:
INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM DUAL
UNION ALL
SELECT 'Peter Doe','555-2323' FROM DUAL
Una implementacin conforme al estndar de esta lgica se
muestra el siguiente ejemplo, o como se muestra arriba (no aplica
en Oracle):
INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM LATERAL ( VALUES (1) ) AS
t(c)
UNION ALL
SELECT 'Peter Doe','555-2323' FROM LATERAL ( VALUES (1) ) AS
t(c)
Copia de filas de otras tablas
Un INSERT tambin puede utilizarse para recuperar datos
de otros, modificarla si es necesario e insertarla directamente en
la tabla. Todo esto se hace en una sola sentencia SQL que no
implica ningn procesamiento intermedio en la aplicacin cliente.
Un SUBSELECT se utiliza en lugar de la clusula VALUES. El
SUBSELECT puede contener JOIN, llamadas a funciones, y puede
incluso consultar en la misma TABLA los datos que se inserta.
Lgicamente, el SELECT se evala antes que la operacin INSERT
est iniciada. Un ejemplo se da a continuacin.
INSERT INTO phone_book2

SELECT *
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
Una variacin es necesaria cuando algunos de los datos de
la tabla fuente se est insertando en la nueva tabla, pero no todo
el registro. (O cuando los esquemas de las tablas no son iguales.)
INSERT INTO phone_book2 ( [name], [phoneNumber] )

SELECT [name], [phoneNumber]
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')
El SELECT produce una tabla (temporal), y el esquema de la
tabla temporal debe coincidir con el esquema de la tabla donde los
datos son insertados.
UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar
los valores de un conjunto de registros existentes en una tabla.
Ejemplo
UPDATE My_table SET field1 = 'updated value asd' WHERE
field2 = 'N';
DELETE
Una sentencia DELETE de SQL borra uno o ms registros
existentes en una tabla.
Forma bsica
DELETE FROM tabla WHERE columna1 = 'valor1'
Ejemplo
DELETE FROM My_table WHERE field2 = 'N';
Recuperacin de clave
Los diseadores de base de datos que usan una clave suplente
como la clave principal para cada tabla, se ejecutar en el
ocasional escenario en el que es necesario recuperar
automticamente la base de datos, generando una clave primaria
de una sentencia SQL INSERT para su uso en otras sentencias
SQL. La mayora de los sistemas no permiten sentencias SQL
INSERT para retornar fila de datos. Por lo tanto, se hace
necesario aplicar una solucin en tales escenarios.
Implementaciones comunes incluyen:
Utilizando un procedimiento almacenado especfico de base de
datos que genera la clave suplente, realice la operacin
INSERT, y finalmente devuelve la clave generada.
Utilizando una sentencia SELECT especfica de base de datos,
sobre una tabla temporal que contiene la ltima fila insertada.
DB2 implementa esta caracterstica de la siguiente manera:
SELECT *
FROM NEW TABLE ( INSERT INTO phone_book VALUES (
'Cristobal Jeldrez','0426.817.10.30' ) ) AS t
Utilizando una sentencia SELECT despus de la sentencia
INSERT con funcin especfica de base de datos, que devuelve
la clave primaria generada por el registro insertado ms
recientemente.
Utilizando una combinacin nica de elementos del original
SQL INSERT en una posterior sentencia SELECT.
Utilizando un GUID en la sentencia SQL INSERT y la recupera
en una sentencia SELECT.
Utilizando la funcin de PHP mysql_insert_id()
de MySQL despus de la sentencia INSERT.
Utilizando un INSERT con la clusula RETURNING
para Oracle, que slo se puede utilizar dentro de
un PL/SQLbloque, en el caso de PostgreSQL se puede usar
tambin tanto con SQL como con PL/SQL.
INSERT INTO phone_book VALUES ( 'Cristobal
Jeldrez','0426.817.10.30' )
RETURNING phone_book_id INTO v_pb_id
En el caso de MS SQL se puede utilizar la siguiente instruccin:
SET NoCount ON;
INSERT INTO phone_book VALUES ( 'Cristobal
Jeldrez','0426.817.10.30' );
SELECT @@IDENTITY AS ID
Disparadores
Los disparadores, tambin conocidos como desencadenantes
(triggers en ingls) son definidos sobre la tabla en la que opera la
sentencia INSERT, y son evaluados en el contexto de la operacin.
Los desencadenantes BEFORE INSERT permiten la modificacin
de los valores que se insertarn en la tabla. Los desencadenantes
AFTER INSERT no puede modificar los datos de ahora en
adelante, pero se puede utilizar para iniciar acciones en otras
tablas, por ejemplo para aplicar mecanismos de auditora.
Sistemas de gestin de base de datos
Los sistemas de gestin de base de datos con soporte SQL ms
utilizados son, por orden alfabtico:
DB2
Firebird
HSQL
Informix
Interbase
MariaDB
Microsoft SQL Server
MySQL
Oracle
PostgreSQL
PervasiveSQL
SQLite
Sybase ASE

Diccionario de datos.
Es un catlogo, un depsito, de los elementos en un sistema.
Como su nombre lo sugiere, estos elementos se centran alrededor
de los datos y la forma en que estn estructurados para satisfacer
los requerimientos de los usuarios y las necesidades de la
organizacin. En un diccionario de datos se encuentra la lista de
todos los elementos que forman parte del flujo de datos en todo el
sistema. Los elementos ms importantes son flujos de datos,
almacenes de datos y procesos. El diccionario guarda los detalles y
descripciones de todos estos elementos.
Si los analistas desean conocer cuntos caracteres abarca un
determinado dato o qu otros nombres recibe en distintas partes
del sistema, o dnde se utiliza, encontrarn las respuestas en un
diccionario de datos desarrollado en forma apropiada.
El diccionario se desarrolla durante el anlisis de flujo de
datos y auxilia a los analistas que participan en la determinacin
de los requerimientos de sistemas.
Definicin de Elementos
El nivel ms importante de datos es el elemento dato. (es
probable que usted conozca otros nombres que se le dan a este
trmino: campo dato o parte elemental.). Ninguna unidad ms
pequea tiene significado para los analistas de sistemas o
usuarios.
Los elementos dato son los bloques bsicos para todos los
dems datos del sistema. Por si mismo conllevan suficiente
significado para ningn usuario.

Diccionario de datos
Contiene las caractersticas lgicas de los sitios donde se
almacenan los datos del sistema, incluyendo nombre, descripcin,
alias, contenido y organizacin. Identifica los procesos donde se
emplean los datos y los sitios donde se necesita el acceso inmediato
a la informacin, se desarrolla durante el anlisis de flujo de datos
y auxilia a los analistas que participan en la determinacin de los
requerimientos del sistema, su contenido tambin se emplea
durante el diseo.
Razones para su utilizacin:
1- Para manejar los detalles en sistemas muy grandes, ya que
tienen enormes cantidades de datos, aun en los sistemas mas
chicos hay gran cantidad de datos.

Los sistemas al sufrir cambios continuos, es muy difcil
manejar todos los detalles. Por eso se registra la informacin, ya
sea sobre hoja de papel o usando procesadores de texto. Los
analistas mas organizados usan el diccionario de datos
automatizados diseados especficamente para el anlisis y diseo
de software.
2- Para asignarle un solo significado a cada uno de los elementos y
actividades del sistema.
Los diccionarios de datos proporcionan asistencia para
asegurar significados comunes para los elementos y actividades
del sistema y registrando detalles adicionales relacionadas con el
flujo de datos en el sistema, de tal manera que todo pueda
localizarse con rapidez.
3- Para documentar las caractersticas del sistema, incluyendo
partes o componentes as como los aspectos que los distinguen.
Tambien es necesario saber bajo que circunstancias se lleva a cabo
cada proceso y con que frecuencia ocurren. Produciendo una
comprensin mas completa. Una vez que las caractersticas estn
articuladas y registradas, todos los participantes en el proyecto
tendrn una fuente comn de informacin con respecto al
sistema.
4- Para facilitar el anlisis de los detalles con la finalidad de
evaluar las caractersticas y determinar donde efectuar cambios
en el sistema.
Determina si son necesarias nuevas caractersticas o si
estn en orden los cambios de cualquier tipo.
Se abordan las caractersticas:
* Naturaleza de las transacciones: las actividades de la empresa
que se llevan a cabo mientras se emplea el sistema.
* Preguntas: solicitudes para la recuperacin o procesamiento de
informacin para generar una respuesta especifica.
* Archivos y bases de datos: detalles de las transacciones y
registros maestros que son de inters para la organizacin.
* Capacidad del sistema: Habilidad del sistema para aceptar,
procesar y almacenar transacciones y datos
5- Localizar errores y omisiones en el sistema, detectan
dificultades, y las presentan en un informe. Aun en los manuales,
se revelan errores.
Contenido de un registro del diccionario
El diccionario tiene dos tipos de descripciones para el flujo
de datos del sistema, son los elementos datos y estructura de datos.

Elemento dato: son los bloques bsicos para todos los dems
datos del sistema, por si mismos no le dan un significado suficiente
al usuario. Se agrupan para formar una estructura de datos.
Descripcin: Cada entrada en el diccionario consiste de un
conjunto de detalles que describen los datos utilizados o
producidos por el sistema. Cada uno esta identificado con:
Un nombre: para distinguir un dato de otro.
Descripcin: indica lo que representa en el sistema.
Alias: porque un dato puede recibir varios nombres,
dependiendo de quien uso este dato.
Longitud: porque es de importancia de saber la cantidad de
espacio necesario para cada dato.
Valores de los datos: porque en algunos procesos solo son
permitidos valores muy especficos para los datos. Si los valores de
los datos estn restringidos a un intervalo especifico, esto debe
estar en la entrada del diccionario.
Estructura de datos: es un grupo de datos que estn
relacionados con otros y que en conjunto describen un componente
del sistema.
Descripcin: Se construyen sobre cuatro relaciones de
componentes. Se pueden utilizar las siguientes combinaciones ya
sea individualmente o en conjuncin con alguna otra.
Relacin secuencial: define los componentes que siempre se
incluyen en una estructura de datos.
Relacin de seleccin: (uno u otro), define las alternativas
para datos o estructuras de datos incluidos en una estructura de
datos.
Relacin de iteracin: (repetitiva), define la repeticin de un
componente.
Relacin opcional: los datos pueden o no estar incluidos, o
sea, una o ninguna iteracin.
Notacin: Los analistas usan smbolos especiales con la finalidad
de no usar demasiada cantidad de texto para la descripcin de las
relaciones entre datos y mostrar con claridad las relaciones
estructurales. En algunos casos se emplean trminos diferentes
para describir la misma entidad (alias) estos se representan con
un signo igual (=) que vincula los datos.