presentación de powerpoint...• lenguaje de definición de datos (ddl): proporciona comandos para...
TRANSCRIPT
4/11/19
Catedra de
Base de
DatosFacultad de Ciencias Exactas y Tecnología
Universidad Nacional de Tucumán
Ciclo Lectivo 2019
“El algebra relacional es un conjunto de operaciones que describen paso a paso como calcularuna respuesta sobre las relaciones componiendo un lenguaje formal basado en operadores yque utiliza para ello relaciones”
Tipificación
En las operaciones binarias existen restricciones referidas al GRADO(atributos) o a laCARDINALIDAD(tuplas).Por lo que cada Relación seria una tabla bidimensional en donde cada renglón o tupla, tienedatos que pertenecen a alguna cosa, y en donde cada columna o atributo pertenecen a estatabla.
Algebra Relacional
Ing. Franco D. Menendez
Operador Selección
“Se encuentra simbolizado mediante σ, permite seleccionar un subconjunto de tuplas de una
relación (R), todas aquellas que cumplan la(s) condición(es) P”, esto es:
σP(R)
Ejemplo: Tenemos la siguiente Tabla
σFecha_Alta '01/01/1998'(Clientes)
NroCli Nombre Fecha_Alta Saldo
1 Enrique 14/09/1996 100
3 German 19/12/1994 500
4 Alejandro 02/01/1999 90
NroCli Nombre Fecha_Alta Saldo
4 Alejandro 02/01/1999 90
Algebra Relacional
Ing. Franco D. Menendez
Operador Proyección
“Se encuentra simbolizado mediante π, permite extraer columnas (atributos) de una relación,
dando como resultado un subconjunto vertical de atributos de la relación”, esto es:
Π A1,A1,…,An
donde A1, A2,…, An son atributos de la relación R .
Ejemplo: Tenemos la siguiente Tabla
Πnombre, saldo(Clientes)
Algebra Relacional
Ing. Franco D. Menendez
Operadores
Operador Unión
“La unión se denota por A + B” .
Operador Diferencia
“La diferencia se denota por A - B” .
Operador Intersección
“La intersección se denota por A ∩ B” .
Operador Producto
“El producto se denota por A x B” .
Algebra Relacional
Ing. Franco D. Menendez
Primera Forma Normal (1NF): Una tabla está en Primera Forma Normal si:
• Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son
indivisibles, mínimos.
• La tabla contiene una llave primaria única, y no contiene valores nulos.
• No debe existir variación en el número de columnas.
• Los Campos no llave deben identificarse por la llave (Dependencia Funcional).
• Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir,
si los datos cambian de orden no deben cambiar sus significados.
• Una tabla no puede tener múltiples valores en cada columna. Los datos son atómicos. (Si a
cada valor de X le pertenece un valor de Y , y viceversa).
• Esta forma normal elimina los valores repetidos dentro de una BD.
Normalización
Ing. Franco D. Menendez
Segunda Forma Normal (2NF): Dependencia Funcional. Una relación está en 2FN si está en
1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la
clave principal. Es decir que no existen dependencias parciales. (Todos los atributos que no son
clave principal deben depender únicamente de la clave principal).
Por ejemplo {DNI, ID_PROYECTO} HORAS_TRABAJO (con el DNI de un empleado y el ID de un
proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho
proyecto) es completamente dependiente dado que ni DNI HORAS_TRABAJO ni ID_PROYECTO
HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO}
NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI NOMBRE_EMPLEADO
mantiene la dependencia.
Normalización
Ing. Franco D. Menendez
Tercera Forma Normal (3NF): Una relación La tabla se encuentra en 3FN si es 2FN y si no
existe ninguna dependencia funcional transitiva entre los atributos que no son clave.
Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de
relación R es una dependencia transitiva si hay un conjunto de atributos Z que no es un
subconjunto de alguna clave de R, donde se mantiene X->Z y Z->Y.
Normalización
Ing. Franco D. Menendez
Definición 1: “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un
lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas
relacionales permitiendo gran variedad de operaciones sobre los mismos, comportandose
como un lenguaje declarativo de alto nivel, que gracias a su fuerte base teórica y su orientación
al manejo de conjunto de registros, permite una alta productividad en codificación“
(dr. Carlos Torres Gastelu)
Definición 2: ” SQL es un lenguaje que permite expresar diversas operaciones , por ejemplo
aritméticas, combinatorias, lógicas, de selección y ordenamiento, con datos almacenados en
Base de Datos relacionales, cuya información esta contenida en estructuras llamadas tablas, y
donde los datos están dispuestos en filas y columnas”
(Enrique Rivero et al)
SQL
Ing. Franco D. Menendez
Arquitectura Estándar de Tres niveles
Los sistemas de gestión base de datos relacional soportan la arquitectura estándar en tres
niveles.
SQL
Ing. Franco D. Menendez
Nivel LógicoEl nivel lógico para las bases de datos relacionales consiste en tablas base que se almacenanfísicamente. Estas tablas se crean mediante el Administrador de Base de Datos (ABD) con eluso del comando CREATE TABLE (crear tabla).Una tabla base puede tener cualquier numero de índices, creados por el ABD usando elcomando CREATE INDEX(crear índice). Un índice se usa para acelerar la recuperación deregistros con base en el valor en una o más columnas . Un índice menciona los valores queexisten para la columna indexada y la ubicación de los registros que tienen dichos valores.
Nivel FísicoEn el nivel físico, las tablas base se representan, junto con sus índices, en archivos. Larepresentación física de las tablas puede no corresponder exactamente con la noción de unatabla como un objeto bidimensional que consiste en filas y columnas. Sin embargo, las filas dela tabla si corresponden con los registros almacenados físicamente, aunque su orden y otrosdetalles de almacenamiento pueden ser diferentes del concepto de ellos.
VistasUna vez creadas las tablas bases, se pueden crear “VISTAS” para los usuarios, con el uso delcomando CREATE VIEW (crear vista). Una vista puede ser un subconjunto de una sola tablabase, o bien crearse al combinar tablas bases.
SQL
Ing. Franco D. Menendez
SQL consta de varios componentes
• Lenguaje de Definición de Datos (DDL): Proporciona comandos para la definición de
esquemas de relación, borrado de relaciones y modificaciones a los esquemas de relación.
• Lenguaje Interactivo de Manipulación de Datos (DML): Incluye un lenguaje de consultas
basado tanto en el algebra relacional, como en el calculo relacional de tuplas.
• Integridad: El DDL incluye comandos para especificar las restricciones de integridad que
deben cumplir los datos almacenados en la base de datos.
• Control de Transacciones: Incluye comandos para especificar el comienzo y el final de las
transacciones.
• Autorización: Incluye comandos para especificar los derechos de acceso a las relaciones y a
las vistas.
SQL
Ing. Franco D. Menendez
El lenguaje de Definición de Datos (DDL)
Permite:
• Especifica un conjunto de relaciones.
• Proporcionar información relativa a un conjunto de relaciones.
Permite Conocer:
• El esquema de cada relación.
• El dominio de valores asociados a cada atributo.
• Las restricciones de integridad.
• El conjunto de índices que se deben mantener para cada relación.
• La información de seguridad y de autorización de cada relación.
• A estructura de almacenamiento físico de cada relación en el disco
SQL
Ing. Franco D. Menendez
Los comandos más importantes en DDL son:CREATE TABLECREATE TABLE nombre_tabla (nombre_columna tipo_columna, [restricciones – NULL/NOTNULL, DEFAULT, UNIQUE, CHECKJ],……, [restricciones tabla – PRIMARY KEY, FOREIGN KEY,UNIQUE, CHECK….])
CREATE INDEXCREATE INDEX nombre_indice ON nombre_tabla (nombre_columna);
ALTER TABLEALTER TABLE nombre_tabla ADD nombre_columna tipo_columna;
DROP TABLEDROP TABLE nombre_tabla;
DROP INDEXDROP INDEX nombre_indice;
SQL
Ing. Franco D. Menendez
Tipos de Datos –DDL
Los tipos de datos disponibles concluyen varios tipos numéricos, cadenas de caracteres de
longitud fija y de longitud variable, cadenas de bits y tipos definidos por el usuario. Los tipos
de datos disponibles varían de DBMS a DBMS.
SQL
Ing. Franco D. Menendez
Manipulación de la Base de Datos (DML)
El lenguaje de consulta de SQL es declarativo, también llamado no procedural, lo que significa
que permite especificar cuales datos se recuperan sin dar los procedimientos para
recuperarlos. Se puede usar como un lenguaje interactivo para consultas, incrustado en un
lenguaje de programación huésped, o como un lenguaje completo en si para cálculos con el uso
de SQL/PSM (Persistent Stored Modules= Modulos de almacenamiento persistentes).
Los comandos DML son:
SELECT
UPDATE
INSERT
DELETE
SQL
Ing. Franco D. Menendez
Los comandos DML son:UPDATEUPDATE nombre_tabla SET “nombre_columna1”=“nuevo_valor,” [“nombre_columna2”=“nuevo_valor2,….”] WHERE condición;
INSERTINSERT INTO nombre_tabla (“nombre_columna1”,”[nombre_columna2…..]”) VALUES (“valor1”,“[valor2...]”);
DELETEDELETE FROM nombre_tabla WHERE nombre_columna1=valor1;
SELECT
SELECT [ALL | DISTINCT ] nombre_columna [,nombre_columna…]
FROM nombre_tabla|nombre_vista [nombre_tabla|nombre_vista…]
[WHERE condicion [AND|OR condicion]]
[GROUP BY nombre_columna [nombre_columna …]]
[HAVING condicion [AND|OR condicion]] [ORDER BY nombre_columna|índice_columna]]]
SQL
Ing. Franco D. Menendez
SQL – Procedimientos Almacenados
Definición
- Un procedimiento almacenado es un conjunto de sentencias SQL y de control de flujo.
- Un procedimiento almacenado es una colección de instrucciones guardadas en la Base de
Datos.
- La ventaja de un procedimiento almacenado es que al ser ejecutado , este se ejecuta
directamente en el motor de base de datos, el cual usualmente corre en un servidor por
separado.
Ing. Franco D. Menendez
SQL – Procedimientos Almacenados
Ventajas
- Simplifican la ejecución de tareas repetitivas.
- Corren mas rápido que las mismas instrucciones ejecutadas en forma interactiva.
- Reducen el trafico a través de la red.
- Pueden capturar errores antes que ellos puedan entrar a la base de datos.
- Establece consistencia porque ejecuta las tareas de la misma forma.
- Permite el desarrollo modular de aplicaciones.
- Ayuda a proveer seguridad.
- Puede forzar reglas y defaults complejos de los negocios.
Ing. Franco D. Menendez
SQL – Procedimientos Almacenados
Tipificación
- Procedimientos almacenados definidos por el usuario: son procedimientos definidos por el
usuario que se debe llamar explícitamente.
- Triggers: Son procedimientos definidos por el usuario que se ejecutan automáticamente
cuando se modifica un dato en un tabla.
- Procedimientos del sistema: Procedimientos suministrados por el sistema.
- Procedimientos Extendidos: Procedimientos que se hacen llamadas al sistema operativo y
ejecutan tareas a ese nivel.
Ing. Franco D. Menendez
SQL – Procedimientos Almacenados
Ventajas en el rendimiento
- Un procedimiento almacenado se ejecuta más rápido que un batch porque:
- El procedimiento almacenado ya ha sido analizado.
- Ya se han resuelto las referencias a los objetos referenciados en el procedimiento
almacenado.
- No se necesita construir el árbol de búsqueda, el usa el que se hace en el momento de
compilarlo.
- No se necesita crear un plan de búsqueda, porque ya el procedimiento tiene uno.
Ing. Franco D. Menendez
SQL – Procedimientos Almacenados
Crear y borrar procedimientos almacenados- Sintaxis de creación:
CREATE PROCEDURE nombre_procedimiento (IN parametros)BEGIN
Sentencias.END
Ejemplo:DELIMITER $$CREATE DEFINER=`usuario1`@`localhost` PROCEDURE `ver1`(IN `vnombre` varchar(20))
NO SQLselect * from pais where nombre=vnombre$$
DELIMITER ;
Ing. Franco D. Menendez
SQL – Procedimientos Almacenados
VARIABLESLos procedimientos almacenados pueden crear y usar variables locales, las cuales solo existen mientrasexista el procedimiento. Las variables no las puede usar otro proceso.
SENTENCIAS VALIDASUn procedimiento almacenado puede:- Seleccionar y modificar datos;- Crear tablas temporales y permanentes.- Llamar a otros procedimientos almacenados.- Referenciar objetos de base de datos.
SENTENCIA INVALIDASUn procedimiento no puede ejecutar:- Use database.- Create view.- Create default.- Create rule.- Create procedure.- Create trigger.
Ing. Franco D. Menendez
SQL – Trigger
Un trigger es un procedimiento almacenado asociado con una tabla, el cual se ejecuta automáticamente
cuando se modifica un dato de esa tabla.
Un trigger se define asociado con una tabla para una o mas sentencias de manipulación de datos. Se puede
definir para insert, update, o delete o cualquier combinación de ellos.
APLICACIONES TÍPICAS
- Hace modificaciones en cascada sobre tablas relacionadas.
- Deshacer cambios que violan la integridad de los datos.
- Forzar restricciones que son muy complejas para reglas y restricciones.
- Mantener datos duplicados.
- Mantener columnas con datos derivados.
- Hacer ajustes de registros.
Ing. Franco D. Menendez
SQL – Trigger
Un trigger pueden:
- Declarar variables locales.
- Invocar procedimientos almacenados.
Un trigger no puede:
- Llamarse directamente.
- Usar parámetros.
- Definirse sobre tablas temporales o vistas.
- Crear objetos permanentes de la base de datos.
Las operaciones con registro minimo (como select into) no disparan los triggers.
Ing. Franco D. Menendez
SQL – Trigger
SENTENCIA SQL OLD NEW
InsertNo definido; todos los campos toman valor NULL
Valores que serán insertados cuando se complete la orden.
UpdateValores originales de la fila, antes de la actualización
Nuevos valores que serán escritos cuando se complete la orden.
DeleteValores antes del borrado de la fila.
No definido; todos los campos toman el valor NULL.
Ing. Franco D. Menendez
SQL – Vistas
Una vista es un SELECT almacenado. El motor distingue dos tipos de tabla, las base y lasderivadas. Una tabla base es una tabla existente en el motor de almacenamiento. Una tabladerivada, es la tabla que surge de cualquier combinación de tablas base, literales y/ofunciones.
Funciones de una vista
- Proporcionar un nivel de seguridad, ya que permiten excluir datos para que ciertos usuariosno los vean.-
- Proporcionan un mecanismo para que los usuarios vean los datos en el formato quedeseen.-
- Representan una imagen consistente y permanente de la base de datos, incluso si la base dedatos cambia su estructura.
Sintaxis
CREATE VIEW nombre_vista AS<sentencia sql>
ENDIng. Franco D. Menendez
BIBLIOGRAFIATecnología y Diseño de Bases de Datos / Mario Piattini , Esperanza Calero, Belen Vela / Edit Alfaomega/ 2010 Ed.
Fundamentos de bases de datos / Abraham Silberschatz, Henry F. Korth/y/ S. Sudarshan.—(Tra. FernándoSáenz Pérez, Antonio García Cordero /y/ Jesús Correas Fernández.-- Rev. Tca. Luis Grau Fernández). McGraw Hill. Madrid /c.2008/5a. Edic.
Fundamentos de sistemas de bases de datos / Ramez Elmasri/y/ Shamkant B. Navathe.—(Tra. Verónica Canivell Castillo, Beatriz Galán Espiga /y/ Gloria ZaballaPérez.--Rev. Tca. Alfredo GoñiSarriguren , Arturo Jaime Elizondo /y/ Tomás A. Pérez Fernández) Pearson Educación. Madrid /c.2002/3a. ed.
Introducción al SQL para Usuarios y Programadores / Cornelio et al / THOMSON / 2003 / 2da. Edic
Ing. Franco D. MenendezIng. Franco D. Menendez
1. Bases de datos / Reinosa et al / Edit. Alfaomega / 1era. Edic / 2012.
2. Programación de Bases de Datos con MySQL y PHP / Helma Spona / Edit.
Alfaomega / 1era. Edic / 2010.
3. Bases de datos / Pablo Rovarini y Herminia de Herca. Argentina 2005/2a.ed.
4. Procesamiento de bases de datos. fundamentos, diseño e implementación /
David M. Kroenke.—(Tra. Ana Elizabeth García Hernández.--Rev. Tca. Juan Raúl
Esparza Martínez). Pearson Educación. México /c.2003/8ª. Edic.
BIBLIOGRAFIA
COMPLEMENTARIA
Ing. Franco D. Menendez
https://catedras.facet.unt.edu.ar/bd/