Documente Academic
Documente Profesional
Documente Cultură
TRABAJO DE INVESTIGACION
2
AGRADECIMIENTOS
3
CONTENIDO
Pág.
1. INTRODUCCIÓN 10
2. OBJETIVOS 11
2.1 OBJETIVO GENERAL 11
2.2 OBJETIVOS ESPECÍFICOS 11
3 PLANTEAMIENTO DEL PROBLEMA Error! Bookmark not defined.
3.2 JUSTIFICACIÓN 12
6 DESARROLLO DEL PROYECTO 16
CONCLUSIONES 22
RECOMENDACIONES 23
BIBLIOGRAFÍA 24
LISTA DE GRÁFICAS
4
Pág
-Sin graficas
LISTA DE ANEXOS
-No aplica
5
GLOSARIO
Base de datos relacional Una colección de relaciones normalizadas en la que cada relación
tiene un nombre distintivo. Bases de datos distribuidas Son Bases de Datos que no están
almacenadas totalmente en un solo lugar físico, (están segmentadas) y se comunican por
6
medio de enlaces de comunicaciones a través de una red de computadoras distribuidas
geográficamente.
Campo Un campo es la unidad básica de una base de datos. Un campo puede ser, por
ejemplo, el nombre de una persona. Los nombres de los campos no pueden empezar con
espacios en blanco y caracteres especiales. No pueden llevar puntos, ni signos de
exclamación o corchetes.
Clave principal La clave principal en una tabla de una base de datos que se selecciona
para identificar de forma unívoca cada registro de la tabla. Por ejemplo, en una tabla de
alumnos podría ser su número de expediente académico.
DDL Lenguaje de definición de datos utilizado para describir todas las estructuras de
información y los programas que se usan para construir, actualizar e introducir la
información que contiene una base de datos.
Diseño de la base de datos Cuando trabajamos con bases de datos relacionales es habitual
distribuir la información en diferentes tablas vinculadas entre sí. Esta característica obliga a
un proceso de planificación y diseño previo para obtener el resultado esperado. Piensa que
deseas almacenar en la base de datos, qué datos necesitas recuperar y en definitiva,
determina el propósito final del proyecto para establecer unos cimientos lo suficientemente
sólidos.
DBMS Conjunto de programas destinados a manejar la creación y todos los accesos a las
bases de datos. Se compone de un lenguaje de definición de datos (DDL: Data Definition
Language), de un lenguaje de manipulación de datos (DML: Data Manipulation Language)
y de un lenguaje de consulta (SQL: Structured Query Language).
7
objetos, como por ejemplo, imágenes. Los archivos creados en este lenguaje suelen
identificarse por su extensión del tipo: "nombre_archivo.html". Informe Los informes tienen
como objetivo proporcionar las herramientas necesarias para obtener una copia impresa de
los datos existentes en una base de datos aunque existen otras posibilidades tan
interesantes como la generación de archivos en formato PDF. Habitualmente, los informes
se suelen construir a partir de los resultados obtenidos de la ejecución de consultas. De
esta forma combinamos la posibilidad de seleccionar sólo los datos que deseemos que nos
ofrecen las consultas con la ventaja de imprimirlos que aportan los informes. Integridad
referencial La integridad referencial es una propiedad imprescindible en cualquier base de
datos. Gracias a la integridad referencial se garantiza que un conjunto de datos (registro)
siempre se relacione con otros conjuntos válidos, es decir, que existen en la base de datos.
Implica que en todo momento dichos datos sean correctos, sin repeticiones innecesarias,
datos perdidos y relaciones mal resueltas.
Tulpa También se denomina de este modo a un registro o fila de una tabla. Valor nulo
Representa un valor para un atributo que es actualmente desconocido o no es aplicable
para ese registro. Vista El resultado dinámico de una o más operaciones relacionales que
operan sobre las relaciones base para producir otra relación. Una vista es una relación
virtual que no tiene por qué existir necesariamente en la base de datos, sino que puede
producirse cuando se solicite por parte de un usuario concreto, generándose en el momento
de la solicitud.
8
RESUMEN
9
Documentar el código generado, incluyendo detalles como autor del
procedimiento, fecha de creación y versión actual, así́ como un registro de los
cambios que dicho procedimiento ha sufrido a lo largo de su vida.
Asegurarse de que los tipos de datos están correctamente definidos, evita
problemas de compilación o transformación de tipos que baja el rendimiento de
la base de datos.
Utilizar las llamadas a procedimientos desde las aplicaciones, siempre que
sea posible que actúan como caja negra frente a la base de datos y protege a
las aplicaciones de posibles cambios de estructuras lógicas de las consultas.
Evitar la generación de código dinámico, evita errores a largo plazo si las
estructuras de datos cambian, así como evitar problemas de seguridad
(denominados Inyección SQL)
Evitar llamadas a funciones de manera innecesaria, ejemplo llamar a la
función now():date para pedir la hora cada vez que se estime en vez de
almacenarla en una variable temporal en la que solo se la llame una vez.
1. INTRODUCCIÓN
10
agradable ya que sus palabras clave permiten escribir las ordenes como si fueran
frases en las que se especifica (en inglés) que es lo que queremos obtener. Por
ejemplo: SELECT nombre FROM municipios WHERE población>5000 ORDER BY
población; Devuelve el nombre de aquellos municipios con una población mayor de
5000 habitantes y los presenta ordenados por tamaño. Sin embargo los lenguajes
declarativos carecen de la potencia de los procedimentales Se ha convertido, debido
a su eficiencia, en un estándar para las bases de datos relacionales, de hecho el
gran éxito del modelo de base de datos relacional se debe en parte a la utilización
de un lenguaje como SQL. A pesar de su teórico carácter estándar, se han
desarrollado, sobre una base común, diversas versiones ampliadas como las de
Oracle o la de Microsoft SQL server. Incluye diversos tipos de capacidades: •
Comandos para la definición y creación de una base de datos (create table). •
Comandos para inserción, borrado o modificación de datos (insert, delete, update).
• Comandos para la consulta de datos seleccionados de acuerdo a criterios
complejos que involucran diversas tablas relacionadas por un campo común
(select). • Capacidades aritméticas: En SQL es posible incluir operaciones
aritméticas así como comparaciones, por ejemplo A > B + 3. • Asignación y
comandos de impresión: es posible imprimir una tabla construida por una consulta
o almacenarla como una nueva tabla.
2. OBJETIVOS
11
Asignación y comandos de impresión: es posible imprimir una tabla construida por
una consulta o almacenarla como una nueva tabla.
3.2 JUSTIFICACIÓN
----------------------------------------------------------------------
-----
--
-- Crear la tabla donde se reflejaran los nuevos cliente menores de
edad
12
--
----------------------------------------------------------------------
-----
----------------------------------------------------------------------
------
--
-- Crear una funcion que separe a los clientes jovenes en tb_promocion
joven
--
----------------------------------------------------------------------
------
BEGIN
13
temp_row.age := NEW.age;
temp_row.address := NEW.address;
temp_row.city := NEW.city;
temp_row.country := NEW.country;
temp_row.contact_email := NEW.contact_email;
temp_row.phone := NEW.phone;
BEGIN
-- Inserta los valores en la tabla CDC
INSERT INTO ventas.tb_promocion_joven SELECT temp_row.*;
END;
RETURN NULL;
----------------------------------------------------------------------
------
--
-- Crear el disparador que activa la funcion
--
----------------------------------------------------------------------
------
----------------------------------------------------------------------
------
--
-- Inserciones que prueban la funcion
--
----------------------------------------------------------------------
------
14
INSERT INTO ventas.tb_client ( client_id, client_name, age, address,
city, country, contact_email, phone, created_date ) VALUES
('10000', 'Susana', '15','C/ Real 1', 'Soria', 'España', NULL, NULL,
NULL),
('10001', 'Rosana', '16','C/ Real 1', 'Soria', 'España', NULL, NULL,
NULL),
('10002', 'Javier', '35','C/ Real 2', 'Soria', 'España', NULL, NULL,
NULL);
15
6 DESARROLLO DEL PROYECTO
Donde:
functionName es el nombre de la función.
parameter1 a parameterN es el nombre del parámetro.
type1 a typeN es el tipo de dato del parámetro.
returnType es el tipo de dato que regresa la función.
$$ son delimitadores, el código tiene que ir encerrado en estos caracteres.
BEGIN y END inician y terminan el bloque de código de la función.
LANGUAGE plpgsql indica que el lenguaje utilizado es Procedure Language, de
PostgreSql.
El lenguaje puede ser SQL también. Si este es el caso, cambia la forma de utilizar
los parámetros.
Comencemos creando una función que regrese un entero con la fecha en formato
Unix Time, sin parámetros.
CREATE OR REPLACE FUNCTION
unixtime()
16
RETURNS
integer
AS
$$
BEGIN
RETURN
EXTRACT(
epoch FROM now() AT TIME ZONE 'utc'
)::int;
END;
$$
LANGUAGE
plpgsql;
Donde:
unixtime es el nombre de la función.
No tenemos parámetros.
integer es el tipo de dato que regresa la función.
17
epoch FROM p_date AT TIME ZONE 'utc'
)::int;
END;
$$
LANGUAGE
plpgsql;
Excelente! Ahora vamos a crear una función para devolver una cadena encriptada
con el algoritmo SHA1.
**Nota**Si no tienes instalado el módulo pgcrypt, instalalo con el comando:
CREATE EXTENSION pgcrypto;
18
El lenguaje es SQL, STRICT es para que regrese null si el argumento es null e
IMMUTABLE para indicarle que no accederá a datos, que solo utilizará los
parámetros datos. Como podemos observar, el parámetro utilizado no tiene
nombre, solo el tipo, y lo utilizamos con denotación ordinal $1, es decir el primer
argumento.
Comandos:
• Los que permiten crear y definir nuevas bases de datos, campos e índices.
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP: Empleado para eliminar tablas e índices 1 equivalente a una fila de una
tabla 2A partir de este momento, cuando escriba una sentencia SQL lo haré en
negrita, utilizando el prompt de PostgreSQL que consiste en el nombre de la base
de datos (si no se especifica ninguna utilizare de forma genérica bd) seguido de
=#, y con los diferentes elementos de la consulta separados por lineas. Esto último
facilita la interpretación de la orden, pero recuerda que a la hora de trabajar es
preferible escribir toda la orden en una sola línea
INSERT: Utilizado para cargar lotes de datos en la base de datos en una única
operación.
19
DELETE: Utilizado para eliminar registros de una tabla de una base de datos 1.3
Cláusulas Las cláusulas son condiciones utilizadas para concretar que datos son
los que se desea seleccionar o manipular.
WHERE: Utilizada para especificar las condiciones que deben reunir los registros
que se van a seleccionar
HAVING: Utilizada para expresar la condición que debe satisfacer cada grupo
ORDER BY: Utilizada para ordenar los registros seleccionados de acuerdo con un
orden específico
Operadores Lógicos:
AND: Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son
ciertas.
OR: Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos
es cierta.
LIKE: Para la comparación de una cadena de texto con una expresión regular 1.6
Funciones de Agregación Las funciones de agregación se usan dentro de una
cláusula
20
AVG: Utilizada para calcular el promedio de los valores de un campo
determinado.
MAX: Utilizada para devolver el valor más alto de un campo especificado MIN
Utilizada para devolver el valor más bajo de un campo especificado.
21
CONCLUSIONES
22
RECOMENDACIONES
No aplica.
23
BIBLIOGRAFÍA
1 https://sites.google.com/site/basdededatosrelacionales/home/glosario
2. https://www.um.es/geograf/sigmur/sigpdf/postgresql.pdf
3. http://www.diegocalvo.es/procedimientos-y-funciones-en-postgresql/
4. https://desarrollo.espino.info/bases-de-datos/funciones-en-postgresql.html
5. https://es.wikipedia.org/wiki/SQL#targetText=SQL%20(por%20sus%20siglas
%20en,como%20realizar%20cambios%20en%20ellas.
6. https://www.postgresql.org
7. https://www.uoc.edu/pdf/masters/oficiales/img/913.pdf
8. http://bibliotecadigital.univalle.edu.co/bitstream/10893/10313/3/Fundamentos
%20de%20Bases%20de%20Datos.pdf
9. https://rua.ua.es/dspace/bitstream/10045/2990/1/ApuntesBD1.pdf
24