Professional Documents
Culture Documents
Contenido
Conceptos / Conceptualización.......................................................................................................1
Base de Datos................................................................................................................................ 2
Estructura Física de una Base de Datos ...................................................................................... 2
Estructura Lógica de una Base de Datos .....................................................................................3
Consideraciones Especiales para todos los Objetos ....................................................................3
Creando Objetos ........................................................................................................................3
Como Manipular Datos de una Base de Datos ............................................................................3
Ejemplo – Base de Datos “Eventos” ........................................................................................... 4
Creación de Vistas .......................................................................................................................... 7
Procedimientos Almacenados ........................................................................................................ 7
Disparadores / Triggers ................................................................................................................. 8
Ejemplo de Disparador / Trigger ................................................................................................ 9
Conceptos / Conceptualización
1. Base de Datos (Database): Para SQL Server es simplemente una colección de objetos
administrados lógicamente como una unidad.
1. Tabla (Table): Es una colección de información relevante para el usuario. Las tablas están
compuestas por una colección de campos.
2. Campo (Field): Espacio de memoria que posee un nombre y un tipo, que es utilizado para
referirse a un dato especifico en una tabla.
4. Índice (Index): Son estructuras asociadas con una tabla o vista y brindan la posibilidad de
acelerar la recuperación de datos. (Lista de Valores ordenados y controlados por la base
de datos)
5. Llave Principal (Primary Key): Es el identificador único de un registro de una tabla que no
puede repetirse.
6. Llave Extranjera (Foreing Key): Es el identificador en una tabla que apunta o hace
referencia a una llave primaria de otra tabla.
7. Diagrama Entidad Relación (DER): Forma grafica de las restricciones e integridad de una
base de datos a nivel de tablas.
10. Función (Function): Son pequeños programas que se utilizan generalmente para devolver
valores específicos a una vista u otros objetos de la base datos. Este programa está escrito
en Transact-SQL (T-SQL).
11. Disparador (Trigger): Son pequeños programas que se utilizan para controlar las
acciones que un usuario puede realizar en una determinada tabla de la base de datos
Base de Datos
1. Archivo Principal: Este archivo generalmente tiene el mismo nombre de la base de datos
más la frase _DATA y con extensión MDF
2. Archivo de Registro de Transacciones (Log): Este archivo generalmente tiene el mismo
nombre de la base de datos más la frase _LOG y con extensión LDF
- 2 -
Manual de SQL Server 2005 – Autor: Jorge A. Giarelli – Julio 2008
1. Tablas
2. Índices
3. Vistas
4. Procedimientos Almacenados
5. Otros Elementos Lógicos
Creando Objetos
Los objetos pueden ser creados por medio de un ambiente gráfico o utilizando sentencias SQL
para cada tipo de ellos. A continuación ejemplos de la creación de objetos por medio de sentencia
o SCRIPTs.
- 3 -
Manual de SQL Server 2005 – Autor: Jorge A. Giarelli – Julio 2008
USE CONTROL_EVENTOS
SELECT CODIGO_EVENTO,
DESCRIPCION_EVENTO,
LUGAR_EVENTO,
FECHA_EVENTO
FROM EVENTOS
- 4 -
Manual de SQL Server 2005 – Autor: Jorge A. Giarelli – Julio 2008
SELECT CODIGO_EVENTO,
DESCRIPCION_EVENTO,
LUGAR_EVENTO,
FECHA_EVENTO
FROM EVENTOS
SELECT CODIGO_EVENTO,
DESCRIPCION_EVENTO,
LUGAR_EVENTO,
FECHA_EVENTO
FROM EVENTOS
SELECT LUGAR_EVENTO,
COUNT(*) AS TOTAL_EVENTOS
FROM EVENTOS
GROUP BY LUGAR_EVENTO
MONTH(FECHA_EVENTO)
SELECT *
FROM EVENTOS
WHERE FECHA_EVENTO > GETDATE()
b. Se desea saber cuántos días faltan para tener los eventos de hoy en adelante.
SELECT CODIGO_EVENTO,
DESCRIPCION_EVENTO,
DATEADD("dd", 10, FECHA_EVENTO) AS NUEVA_FECHA
FROM EVENTOS
WHERE YEAR(FECHA_EVENTO) = 2008
UPDATE EVENTOS
SET FECHA_EVENTO = DATEADD("dd", 10, FECHA_EVENTO)
WHERE YEAR(FECHA_EVENTO) = 2008
b. Se desea actualizar el Lugar del Evento con Código Número 3 y colocarle “HOTEL
MARRIOT”
UPDATE EVENTOS
SET LUGAR_EVENTO = 'HOTEL MARRIOT'
WHERE CODIGO_EVENTO = 3
DELETE
FROM EVENTOS
WHERE CODIGO_EVENTO = 2
DELETE
FROM EVENTOS
- 6 -
Manual de SQL Server 2005 – Autor: Jorge A. Giarelli – Julio 2008
Creación de Vistas
Una vista es la representación lógica de los campos de una o más tablas, las cuales deben estar
relacionadas entre sí por uno o más campos específicos.
1. Se desea crear una vista (objeto lógico) que muestre solamente el Nombre del Evento y la
Fecha del mismo.
a. Paso No. 1: Preparar una consulta con el comando SELECT para obtener la
información solicitada.
SELECT CODIGO_EVENTO,
DESCRIPCION_EVENTO
FROM EVENTOS
Procedimientos Almacenados
Un procedimiento almacenado es un pequeño programa que realiza acciones específicas de
acuerdo a las necesidades del DBA. Este programa está escrito en Transact-SQL (T-SQL).
USE CONTROL_EVENTOS
--------------------------------
-- INSERTAR UN NUEVO REGISTRO --
--------------------------------
INSERT INTO EVENTOS( CODIGO_EVENTO,
DESCRIPCION_EVENTO,
LUGAR_EVENTO,
FECHA_EVENTO)
VALUES (1,
'CONFERENCIA ORACLE',
'COSTARICA',
- 7 -
Manual de SQL Server 2005 – Autor: Jorge A. Giarelli – Julio 2008
'08-01-2008'
)
--------------------------------
-- INSERTAR UN NUEVO REGISTRO --
--------------------------------
INSERT INTO EVENTOS( CODIGO_EVENTO,
DESCRIPCION_EVENTO,
LUGAR_EVENTO,
FECHA_EVENTO)
VALUES (2,
'CONFERENCIA HP',
'COSTARICA',
'08-02-2008'
)
--------------------------------
-- INSERTAR UN NUEVO REGISTRO --
--------------------------------
INSERT INTO EVENTOS( CODIGO_EVENTO,
DESCRIPCION_EVENTO,
LUGAR_EVENTO,
FECHA_EVENTO)
VALUES (3,
'GRADUACION JULIO 2009',
'UTH',
'06-26-2008'
)
END
Disparadores / Triggers
Un disparador o triggers se utiliza para controlar las acciones que un usuario puede realizar en
determinada tabla de la base de datos, por ejemplo: si una persona desea introducir un nuevo
evento en la tabla de eventos, podríamos crear un disparador para que se actualice el número de
eventos que se encuentra en otra tabla.
- 8 -
Manual de SQL Server 2005 – Autor: Jorge A. Giarelli – Julio 2008
1. Crearemos una nueva tabla para almacenar información resumida de los eventos
realizados
USE CONTROL_EVENTOS
----------------------------------------------------
-- ENCONTRAR CUANTOS REGISTROS HAN SIDO INSERTADOS -
----------------------------------------------------
SELECT @REGISTROS_INSERTADOS = COUNT(*)
FROM INSERTED
--------------------------------------------------------
-- VERIFICAR SI HAY REGISTROS EN LA TABLA DE RESUMENES -
--------------------------------------------------------
SELECT @REGISTROS_RESUMEN = COUNT(*)
FROM RESUMEN_EVENTOS
IF(@REGISTROS_RESUMEN > 0)
BEGIN
-- ENCONTRO DATOS O SEA QUE DEBEMOS ACTUALIZARLO
UPDATE RESUMEN_EVENTOS
SET CANTIDAD_EVENTOS = CANTIDAD_EVENTOS +
@REGISTROS_INSERTADOS
- 9 -
Manual de SQL Server 2005 – Autor: Jorge A. Giarelli – Julio 2008
END
ELSE
BEGIN
-- NO ENCONTRO DATOS O SEA QUE DEBEMOS INSERTARLO
INSERT INTO RESUMEN_EVENTOS (CANTIDAD_EVENTOS)
VALUES(@REGISTROS_INSERTADOS)
END
END
- 10 -