Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured...

29
Catedra de Base de Datos Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Ciclo Lectivo 2017

Transcript of Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured...

Page 1: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

Catedra de

Base de Datos

Facultad de Ciencias Exactas y Tecnología

Universidad Nacional de Tucumán

Ciclo Lectivo 2017

Page 2: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

Unidad 6: Utilizar SQL como lenguaje de consulta a tablas. Introducción a los lenguajes de

consulta. Diccionario de datos. Tipos de datos. Vistas. Índices. Set de comandos.

Optimización de consultas e indexado. Lenguaje de Consulta Estructurado (SQL):

definición. Tipos de sentencias (DDL, DML y DQL). Definición de Estructuras: base de datos,

tabla, índice, vista.

Programa Analítico de la Materia

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 3: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

Definición

“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, comportándose como un

lenguaje declarativo de alto nivel, que gracias a su fuerte base teórica y su orientación al

manejo de conjuntos de registros, permite una alta productividad en codificación”.

(Dr. Carlos Torres Gastelu)

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 4: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

Características del SQL

Los orígenes del SQL están fuertemente ligados al trabajo presentado por Edgar F. Codd - “Relational Modelo d Data for Large Shared Data Banks” (1.970), en el cual propone un modelo relacional, y asociado a este modelo un sub lenguaje de acceso a los datos. Codd en su trabajo plantea la separación entre el lenguaje de manipulación de los datos y la necesidad de comprender la estructura interna de almacenamiento de la información.

Una sola sentencia en SQL puede equivaler a uno o más programas que utilizasen un lenguaje de bajo nivel orientado a registro. SQL, como lenguaje de programación, posee diferentes dialectos o variaciones. Sin embargo existen dos grandes estándares a los que se ciñen los manejadores de bases de datos.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 5: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

Características del SQL

Año Nombre Alias Comentarios

1896 SQL-86 SQL-87 Primera publicación hecha por ANSI. Confirmada por ISO en 1987.

1989 SQL-89 Revisión menor.

1992 SQL-92 SQL-92 Revisión mayor: (ANSI X3.135 1992)

1999 SQL:1999 SQL2000 Se agregaron expresiones regulares, consultas recursivas ( para relaciones jerarquicas), triggers y algunas características orientadas a objetos.

2003 SQL:2003 Introduce algunas características de XML, cambios en las funciones, estandarización del objeto sequence y de las columnas autonuméricas.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

SQL

Page 6: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

Características del SQL

Año Nombre Alias Comentarios

2006 SQL:2006 ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Define maneras de importar y guardar datos XML en una base de datos SQL, manipulándolos dentro de la base de datos y publicando el XML y los datos SQL convencionales en forma XML. Además, proporciona facilidades que permiten a las aplicaciones integrar dentro de su código SQL el uso de Xquery, lenguaje de consulta XML publicado por el W3C (World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y documentos XML.

2008 SQL:2008 Permite el uso de cláusula ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores del tipo INSTEAD OF. Añade la sentencia TRUNCATE.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 7: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

Arquitectura Estándar de Tres Niveles

Los sistemas de gestión de base de datos relacional soportan la arquitectura estándar en tres niveles. Como se muestra en la figura, las bases de datos relaciones proporcionan independencia de datos tanto lógica como física, porque separan los niveles externo, lógico e interno.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 8: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

Nivel Lógico

El nivel lógico para las bases de datos relacionales consiste en tablas base que se almacenan físicamente. Estas tablas se crean mediante el Administrador de Base de Datos (ABD) con el uso del comando CREATE TABLE (crear tabla). Una tabla base puede tener cualquier numero de índices, creados por el ABD usando el comando CREATE INDEX(crear índice). Un índice se usa para acelerar la recuperación de registros con base en el valor en una o más columnas . Un índice menciona los valores que existen para la columna indexada y la ubicación de los registros que tienen dichos valores.

Nivel Físico

En el nivel físico, las tablas base se representan, junto con sus índices, en archivos. La representación física de las tablas puede no corresponder exactamente con la noción de una tabla como un objeto bidimensional que consiste en filas y columnas. Sin embargo, las filas de la tabla si corresponden con los registros almacenados físicamente, aunque su orden y otros detalles de almacenamiento pueden ser diferentes del concepto de ellos.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 9: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

Vistas

Una vez creadas las tablas bases, se pueden crear “VISTAS” para los usuarios, con el uso del comando CREATE VIEW (crear vista). Una vista puede ser un subconjunto de una sola tabla base, o bien crearse al combinar tablas bases.

Las vistas son “tablas virtuales”, que no se almacenan de modo permanente, sino que se crean cuando el usuario necesita acceder a las mismas. Los usuarios no saben que sus vistas no se almacenan de manera física en forma de tabla.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 10: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

Tabla Comparativa MySQL y SQL Server

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 11: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

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.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 12: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

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.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 13: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL

Los comandos más importantes en DDL son:

- CREATE TABLE

- CREATE INDEX

- ALTER TABLE

- ALTER INDEX

- DROP TABLE

- DROP INDEX

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 14: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DDL

CREATE TABLE

Este comando se lo utiliza para crear las tablas bases que forman la esencia de una base de

datos relacional. Consiste de uno o mas encabezados (headings) de columna, que proporcionan

el nombre y el tipo de datos de la columna, y cero o más filas de datos, contienen un valor

de datos del tipo de datos especificados para cada columna.

La forma de dicho comando es:

CREATE TABLE nombre_tabla (nombre_columna tipo_columna, [restricciones – NULL/NOT

NULL, DEFAULT, UNIQUE, CHECKJ],……,

[restricciones tabla – PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK….])

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 15: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DDL

CREATE TABLE

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 16: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DDL

CREATE INDEX

Los índices nos ayudan a obtener datos de las tablas en forma más rápida. Al dirigirnos al

índice primero ahorramos tiempo y seguramente es el método mas eficiente para ubicar la

información que necesitamos. Sin un índice, el sistema de base de datos lee a través de toda la

tabla (este proceso se denomina “escaneo de tabla”) para localizar la información deseada. Con

el índice correcto en su lugar, el sistema de base de datos puede entonces primero dirigirse al

índice para encontrar de donde obtener los datos, y luego dirigirse a dichas ubicaciones para

obtener los datos necesarios. Esto es mucho más rápido.

Por lo tanto, generalmente se recomienda crear índices en tablas. Un índice puede cubrir una o

más columnas. La sintaxis general para la creación de un índice es:

CREATE INDEX nombre_indice ON nombre_tabla (nombre_columna);

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 17: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DDL

CREATE INDEX

Si queremos crear un índice con respecto al

LAST_NAME quedaría la sintaxis de la siguiente

manera:

CREATE INDEX idxlastname ON Customer

(Last_Name);

Si queremos que el índice se de mas de una columna se escribe:

CREATE INDEX idxdireccion ON Customer (City,Country);

CREATE INDEX idxnombrecompleto ON Customer (First_Name, Last_Name);

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 18: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DDL

ALTER TABLE

Una vez creada una tabla, los usuarios pueden encontrarla más útil si contiene un ítem de datos adicional,

no tiene una columna particular o tiene diferentes restricciones. Aquí, la naturaleza dinámica de una

estructura de base de datos relacional hace posible cambiar las tablas base existentes.

Por ejemplo, para agregar una nueva columna a la derecha de la tabla se usa el comando de la siguiente

forma:

ALTER TABLE nombre_tabla ADD nombre_columna tipo_columna;

Ejemplo: se decide agregar a la tabla Productos la columna Estado, cuyo tipo de datos es char(15)

ALTER TABLE productos ADD Estado CHAR(15);

Por lo que nuestra tabla queda de la siguiente forma:

PRODUCTOS (codigo_producto, nombre_producto, tipo, descripcion, precio, Estado)

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 19: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DDL

DROP TABLE

Las tablas se pueden eliminar en cualquier momento mediante el comando:

DROP TABLE nombre_tabla;

Cuando se ejecuta este comando se remueven la tabla en si y todos los registros contenidos en ella.

Además, todos los indices y todas las vistas que dependen de ella se deben de eliminar. También se puede

eliminar cualquier indice con la siguiente secuencia:

DROP INDEX nombre_indice;

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 20: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DDL

Tipos de Datos

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.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 21: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DML

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

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 22: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DML

Sentencia INSERT

Una sentencia INSERT de SQL agrega uno o más registros a una ( y solo una) tabla en una base de datos

relacional.

Forma Básica

INSERT INTO nombre_tabla (“nombre_columna1”,”[nombre_columna2…..]”) VALUES (“valor1”, “[valor2...]”);

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 23: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DML

Sentencia UPDATE

Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes

en una tabla.

Forma Básica

UPDATE nombre_tabla SET “nombre_columna1”=“nuevo_valor,” [“nombre_columna2”=“nuevo_valor2,….”]

WHERE condición;

Ejemplo

UPDATE proveedores SET emailpro=mailto:[email protected] WHERE codigopro=4000;

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 24: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DML Sentencia DELETE

La sentencia DROP de SQL elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger,

función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.

Forma Básica

DROP TABLE nombre_tabla;

La sentencia DELETE borra uno o más registros existentes en una tabla.

Forma Básica

DELETE FROM nombre_tabla WHERE nombre_columna1=valor1;

Ejemplo

DELETE FROM proveedores WHERE codigopro=4000

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 25: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DML

Sentencia SELECT

La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base de datos.

El formato de la sentencia SELECT es:

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 [ASC | DESC], …[[nombre_columna|índice_columna[ASC |

DESC ]]]]

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 26: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

SQL – DML

Sentencia SELECT

SELECT: Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de selección. ALL: Indica que queremos seleccionar todos los valores. Es el valor por defecto y no suele especificarse casi nunca. DISTINCT: Indica que queremos seleccionar sólo los valores distintos. FROM: Indica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso de que exista más de una tabla se denomina a la consulta "consulta combinada" o “JOIN". En las consultas combinadas es necesario aplicar una condición de combinación a través de una cláusula WHERE. WHERE: Especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Admite los operadores lógicos AND y OR. GROUP BY : Especifica la agrupación que se da a los datos. Se usa siempre en combinación con funciones agregadas. HAVING: Especifica una condición que debe cumplirse para los datos. Especifica una condición 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 condición 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

SELECT matricula, marca, modelo, color, numero_kilometros, num_plazas FROM tCoches WHERE matricula= 'M-1525-ZA';

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 27: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

Fundamentos de bases de datos / Abraham Silberschatz, Henry F. Korth /y/ S. Sudarshan.—(Tra. Fernándo Sá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.

Introducción al SQL para Usuarios y Programadores / Cornelio et al / THOMSON / 2003 / 2da. 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 Zaballa Pérez.--Rev. Tca. Alfredo Goñi Sarriguren , Arturo Jaime Elizondo /y/ Tomás A. Pérez Fernández) Pearson Educación. Madrid /c.2002/3a. ed.

Bibliográficas Principal

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 28: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

Bibliografía

• Paper “A relational model for a large shared data banks”, E. F. Codd. ” – ACM – 1970.

• “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.

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez

Page 29: Presentación de PowerPoint - Cátedras Facultad de ... · SQL Definición “El SQL (Structured Query Languaje, Lenguaje de Consulta Estructurado) es un lenguaje de acceso a bases

Sitio Web de la Cátedra http://catedras.facet.unt.edu.ar/bd

BASES DE DATOS

Bases de Datos Ing. Franco D. Menendez