You are on page 1of 37

PRIMERA UNIDAD DE APRENDIZAJE

PROGRAMACIÓN EN BASE DE DATOS Y


OPTIMIZACIÓN DEL RENDIMIENTO
TEMA 02
PROGRAMACIÓN EN BASE DE
DATOS
OBJETIVOS DE UNIDAD

• Conocer las herramientas de programación en base


de datos.
• Desarrollar programas en base de datos que permitan
el propósito de un sistema de información.
TEMARIO
1. Introducción a la programación en Base de
datos.
2. Metodologías de Diseño e Implementación
de Bases de Datos
3. Integridad de datos
4. Procedimientos Almacenados
5. Funciones
6. Disparadores.
7. Vistas
8. Ejercicios
1. INTRODUCCION
Una base de datos es un
objeto complejo de
almacenamiento de
información y que permite
su recuperación de forma
rápida y eficaz; la base de
datos no presenta la
información de forma directa
al usuario sino que esta la
hace posible a través del
SGBD que es que mediante
el lenguaje SQL permite
interactuar con las BD.
1. INTRODUCCION

La bases de datos deben


cumplir estos aspectos
• Tener independencia entre
niveles de arquitectura
• Datos definidos aparte de los
programas.
• No redundancia de datos
• Concurrencia controlada
• Diccionario de datos
• Medición de performance
1. INTRODUCCION

Un sistema de información
que esta orientado a las
bases de datos (es decir la
lógica de proceso o negocio
esta dentro de la base de
datos) debe contener rutinas
que permitan soportar los
procesos de las bases de
datos es por ello que se Las bases de datos crean
definen herramientas, programas para el soporte de esta
programas en la DB. lógica y también para asegurar las
propiedades con las que debe
contar una BD: Seguridad,
Integridad, etc.
2. FASES DEL DISEÑO E IMPLEMENTACION DE UNA BASE DE
DATOS
Ciclo Vital del Sistema de Aplicaciones de Base de Datos

1. Definición del sistema


2. Diseño de la base de datos
3. Implementación de la base datos
4. Carga o conversión de datos
5. Conversión de la aplicación
6. Verificación y Validación
7. Operativa
8. Monitorización y Mantenimiento
2. FASES DEL DISEÑO E IMPLEMENTACION DE
UNA BASE DE DATOS

El diseño de la base de datos y el proceso de


implementación

Fase 1: Recopilación y Análisis de Requisitos


Fase 2: Diseño Conceptual de la base de datos
Fase 3: Elección del DBMS
Fase 4: Mapeo del Modelo de datos(diseño lógico)
Fase 5: Diseño Físico
Fase 6: Implementación y puesta a punto del
sistema
2. FASES DEL DISEÑO E IMPLEMENTACION DE UNA BASE DE
DATOS
Contenido de datos y Aplicaciones de base
Estructura de datos
Fase 1: Recopilación y
Análisis de Requisitos Requisitos de datos Requisitos de
Procesamiento
Fase 2: Diseño Diseño del esquema Diseño de
Conceptual de la base conceptual transacciones y de la
de datos (Independiente del aplicación
DBMS) (independiente del
Fase 3: Elección del DBMS)
DBMS

Fase 4: Mapeo Esquema lógico y Restricciones de


del Modelo de diseño de vistas rendimiento de
datos(diseño (Depende del DBMS) frecuencias
lógico)

Diseño del Esquema


Fase 5: Diseño Físico interno (Depende del
DBMS)
Fase 6:
Implementación de
Implementación y
Sentencias DDL transacciones y
puesta a punto del
Sentencias SDL aplicaciones
sistema
Fuente: Elmasri, R. A., & Navathe, S. B. (2007). Fundamentos de sistemas de bases de datos (No. 004.65). Addison Wesley,.
2. INTEGRIDAD DE DATOS.
La exigencia de integridad de los datos garantiza la
calidad de los datos de la base de datos. Por ejemplo si se
especifica para un alumno que su edad debe ser un
numero entero positivo mayor a 14, la base de datos no
debe permitir otro valor, o si el indicador de genero es
“F” y “M” solo se deben admitir estos valores.
La integridad de los datos lo podemos definir desde el
diseño de la BD.
La integridad de datos pertenece a una de las siguientes
categorías:
a)Integridad de entidad
b)Integridad de dominio
c)Integridad referencial
d)Integridad definida por el usuario
2. INTEGRIDAD DE DATOS.
a) INTEGRIDAD DE ENTIDAD
La integridad de entidad define una fila como entidad
única para una tabla determinada. La integridad de
entidad exige la integridad de las columnas de los
identificadores o la clave principal de una tabla, mediante
índices y restricciones UNIQUE, o restricciones PRIMARY
KEY.
b) INTEGRIDAD DE DOMINIO
La integridad de dominio viene dada por la validez de las
entradas para una columna determinada. Puede exigir la
integridad de dominio para restringir el tipo mediante
tipos de datos, el formato mediante reglas y restricciones
CHECK, o el intervalo de valores posibles mediante
restricciones FOREIGN KEY, restricciones CHECK,
definiciones DEFAULT, definiciones NOT NULL y reglas.
2. INTEGRIDAD DE DATOS.
c) INTEGRIDAD REFERENCIAL
La integridad referencial protege las relaciones
definidas entre las tablas cuando se crean o se eliminan
filas. En SQL Server la integridad referencial se basa en
las relaciones entre claves externas y claves principales
o entre claves externas y claves exclusivas, mediante
restricciones FOREIGN KEY y CHECK.
La integridad referencial garantiza que los valores de
clave sean coherentes en las distintas tablas. Para
conseguir esa coherencia, es preciso que no haya
referencias a valores inexistentes y que, si cambia el
valor de una clave, todas las referencias a ella se
cambien en consecuencia en toda la base de datos.
2. INTEGRIDAD DE DATOS.
d) INTEGRIDAD DEFINIDA POR EL USUARIO
La integridad definida por el usuario permite definir
reglas de empresa específicas que no pertenecen a
ninguna otra categoría de integridad. Todas las
categorías de integridad admiten la integridad definida
por el usuario.
Se incluye todas las restricciones de nivel de columna y
nivel de tabla en CREATE TABLE, procedimientos
almacenados y desencadenadores.
2. INTEGRIDAD DE DATOS.
Como se exige la integridad de los datos.
• En la implementación, sin embargo se
identifica en el análisis y se definen en el
diseño a los datos deben cumplir esta
integridad
• Se exige a través de:
– Primary Key
– Foreing Key
– Unique
– Check
– Default
– Valores null
3. PROCEDIMIENTOS ALMACENADOS

Procesamiento inicial de los procedimientos almacenados


3. PROCEDIMIENTOS ALMACENADOS

Procesamiento inicial de los procedimientos almacenados


3. PROCEDIMIENTOS ALMACENADOS

Procesamiento inicial de los procedimientos almacenados


3. PROCEDIMIENTOS ALMACENADOS

Procesamiento posterior de los procedimientos almacenados


3. PROCEDIMIENTOS ALMACENADOS
Un procedimiento almacenado es un programa que esta
almacenado en la base de datos y listo para ser usado; es un grupo
de una o varias instrucciones Transact-SQL . Los procedimientos se
asemejan a las construcciones de otros lenguajes de programación,
porque pueden:
• Aceptar parámetros de entrada y devolver varios valores en
forma de parámetros de salida al programa que realiza la
llamada.
• Contener instrucciones de programación que realicen
operaciones en la base de datos. Entre otras, pueden
contener llamadas a otros procedimientos.
• Devolver un valor de estado a un programa que realiza una
llamada para indicar si la operación se ha realizado
correctamente o se han producido errores, y el motivo de
estos.
3. PROCEDIMIENTOS ALMACENADOS
Ventajas de los procedimientos almacenados

• Exposición de los detalles de las tablas de la base de datos


• Proporcionar mecanismos de seguridad.
• Mejorar el rendimiento
• Reducir el trafico de red
• Reutilización del código.
• Mayor seguridad.
• Al llamar a un procedimiento a través de la red, solo está
visible la llamada que va a ejecutar el procedimiento.
• Si ha habido cambios importantes en las tablas o datos a
los que se hace referencia en el procedimiento, el plan
precompilado podría hacer que el procedimiento se
ejecutara con mayor lentitud. En este caso, volver a crear
el procedimiento y forzar un nuevo plan de ejecución
puede mejorar el rendimiento.
3. PROCEDIMIENTOS ALMACENADOS

SINTAXIS
• Para crear procedimiento
CREATE PROCEDURE
NombreProcedimiento [Lista_de_parámetros] AS (Sentencias
SQL)[RETURN [Valor]]
Donde:
NombreProcedimiento : Identificador que determina el nombre asignado
al procedimientoy que debe cumplir con la regla de definición de
identificadoresestablecida en MSSQL Server.
Lista_de_parámetros : Parámetros definidos en el procedimiento con la
siguientesintaxis:
@nombre_var Tipo_var
As
Begin
Sentencias SQL.
End
4. FUNCIONES

Las funciones son otra estructura de


programación en base de datos que permite
ejecutar un conjunto de operaciones sql con el
fin de obtener un resultado o resultados.
4. FUNCIONES

• Las funciones son rutinas que permiten


encapsular sentencias TRANSACT-SQL que se
ejecutan frecuentemente.

• Las funciones definidas por el usuario, en tiempo


de ejecución de lenguaje TRANSACT-SQL o común
(CLR), acepta parámetros, realiza una acción,
como un cálculo complejo, y devuelve el resultado
de esa acción como un valor.

• El valor de retorno puede ser un escalar (único)


valor o una tabla.
4. FUNCIONES

El uso de las funciones se da en:


• Sentencias TRANSACT-SQL como SELECT
• En las aplicaciones de llamar a la función
• En la definición de otra función definida por el
usuario.
• Para parametrizar una vista o mejorar la
funcionalidad de una vista indizada
• Para definir una columna en una tabla
• Para definir una restricción CHECK en una columna
• Para reemplazar a un procedimiento almacenado
4. FUNCIONES

Tipos de Funciones
• Funciones Escalares.
• Funciones con valores de Tabla (Línea).
• Funciones Integradas.

Funciones
Escalares

Funciones
Funciones
con Valores
Integradas
Tabla
4. FUNCIONES

Funciones Escalares.
Son definidas por el usuario devuelven un único
valor de datos.
• El valor escalar es el resultado de una sola
instrucción.
• Devuelven el único valor que puede ser de
cualquier tipo de datos
excepto text, ntext,image, cursor y timestamp.
4. FUNCIONES

SINTAXIS – FUNCION ESCALAR


CREATE FUNCTION ufnNombre_Funcion
---parametros
(@variable) RETURNS Tipo_Dato
AS
Begin
Body of function
End;
go
4. FUNCIONES

Funciones DE TIPOS TABLA


• Las funciones con valores de tabla definidas por
el usuario devuelven un tipo de datos table.
• Las funciones con valores de tabla insertados no
tienen cuerpo; la tabla es el conjunto de
resultados de una sola instrucción SELECT.
• Se parece a un procedimiento almacenado.
4. FUNCIONES

SINTAXIS
FUNCION CON VALORES TABLA
CREATE FUNCTION Nombre_Funcion
---parametros
(@variable) RETURNS TABLE
AS
Begin
SELECT …..

End;
go
Ejecucion
Select * from nombrefuncion()
4. FUNCIONES

FUNCIONES INTEGRADAS
• SQL Server proporciona funciones integradas para ayudar
a realizar diversas operaciones.
• No se pueden modificar. Puede utilizar funciones
integradas en instrucciones Transact-SQL para:
– Tener acceso a información de las tablas del sistema
de SQL Server sin tener acceso a las tablas del sistema
directamente. Para obtener más información.
– Las funciones integradas devuelven tipos de datos
escalares o table. Por ejemplo, @@ERROR devuelve 0
si la última instrucción Transact-SQL se ejecutó
correctamente. Si la instrucción generó un error,
@@ERROR devuelve el número de error. Y la función
SUM(parameter) devuelve la suma de todos los
valores del parámetro.
• .
4. FUNCIONES

FUNCIONES INTEGRADAS
• SUM
• AVG
• COUNT
EJEMPLO
Select Sum(Nota1) from TNotas
5. DISPARADORES

• Un "trigger" (disparador o desencadenador) es un


tipo de procedimiento almacenado que se ejecuta
cuando se intenta realizar una operación en una
tabla o vista.
• Se crean para conservar la integridad referencial y la
coherencia entre los datos entre distintas tablas.
• Si se intenta modificar (agregar, actualizar o eliminar)
datos de una tabla en la que se definió un disparador
para alguna de estas acciones (inserción,
actualización y eliminación), el disparador se ejecuta
(se dispara) en forma automática.
• Se invoca de forma automática
5. DISPARADORES

• SINTAXIS
CREATE TRIGGER NombreTriger
ON Tabla
// sobre la operacion
AFTER INSERT, UPDATE
AS
Begin

end
6. VISTAS

• Es una tabla virtual cuyo contenido (columnas y


filas) se define mediante una consulta. Utilice esta
instrucción para crear una vista de los datos de
una o varias tablas de la base de datos.
• Sirve para centrar, simplificar y personalizar la
percepción de la base de datos para cada usuario.
• Es un mecanismo de seguridad, que permite a los
usuarios obtener acceso a los datos por medio de
la vista, pero no les conceden el permiso de
obtener acceso directo a las tablas base
subyacentes de la vista.
• Eficiente es reportes.
6. VISTAS

• SINTAXIS

CREATE VIEW NombreVista


AS
Select campos from Tabla
7. DESARROLLAR

• Identificar 2 ventajas y 2 desventajas de los


trigers.
• Identificar que sentencias sql DML y DDL no
permiten ser usadas en las vistas,
procedimientos, trigers y funciones.

You might also like