La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tecnología de la Información Ing. Diego J. Arcusin BASES DE DATOS / SQL.

Presentaciones similares


Presentación del tema: "Tecnología de la Información Ing. Diego J. Arcusin BASES DE DATOS / SQL."— Transcripción de la presentación:

1 Tecnología de la Información Ing. Diego J. Arcusin info@digikol.com.ar BASES DE DATOS / SQL

2 Sistemas basados en archivosSistemas basados en archivos –Predecesores de los SGBD (sistemas de Gestión de Bases de Datos) –Colección de programas de aplicación. –Cada programa define y gestiona sus datos. –Problemas significativos: Redundancia de datos Dependencia entre programas y datos. INTRODUCCION

3 Limitaciones de los Sistemas basados en archivos –Separación y aislamiento de los datos –Duplicación de los datos –Dependencia entre los datos –Formatos de archivos incompatibles –Consultas fijas –Crecimiento de programas de aplicación INTRODUCCION

4 Sistemas basados en archivos Ejemplo: En un banco que tiene aplicativos basados en archivos un cliente abre una cuenta y luego solicita un crédito  REDUNDANCIA. INTRODUCCION

5 Sistemas de gestión de base de datos –BD –BD es una colección de datos relacionados. –SGBD –SGBD software que gestiona y controla el acceso a la BD. –Aplicación BD –Aplicación BD programa que interactúa con BD. El SGBD interactúa con las aplicaciones y la BD. –Compras en el supermercado –Depósito en el banco –Reserva en un hotel INTRODUCCION

6 Un SGBD normalmente: –Permite a los usuarios definir la BD mediante DDL y manipular la BD mediante DML. –Proporciona acceso controlado a la BD. –Proporciona un catálogo que contiene descripciones de la BD. INTRODUCCION

7 Ventajas SGBD Control de redundancia de datos Coherencia y Compartición de datos Mayor integración de datos Mayor seguridad Mejor accesibilidad de datos y capacidad de respuesta. Productividad mejorada Mejora de seguridad y recuperación INTRODUCCION

8 Desventajas SGBD Complejidad Tamaño Costo de SGBD Costo de hardware adicional Costos de conversión de hardware Prestaciones Mayor impacto a fallos INTRODUCCION

9 TIPOS DE BASE DE DATOS 1. JERARQUICAS 3. EN RED 5. TRANSACCIONALES 8. RELACIONALES 2. MULTIDIMENSIONALES 4. ORIENTADAS A OBJETOS 6. DOCUMENTALES 7. DEDUCTIVAS

10 BASE DE DATOS RELACIONALES La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información. El lenguaje más habitual para construir las consultas a bases de datos relacionales es el SQL Permiten establecer interconexiones (relaciones) entre los datos (que están guardados en tablas), y a través de dichas conexiones relacionar los datos de ambas tablas, de ahí proviene su nombre:"Modelo Relacional".

11 DBMS (DATABASE MANAGEMENT SYSTEM, SISTEMA DE GESTION DE BASE DE DATOS) Son un tipo de software muy específico, dedicado a servir de interfaz entre las bases de datos y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.

12 DIAGRAMA ENTIDAD - RELACIÓN Un diagrama o modelo entidad-relación (a veces denominado por sus siglas, E-R "Entity relationship", o, "DER" Diagrama Entidad Relación) es una herramienta para el modelado de datos de un sistema de información. Estos modelos expresan entidades relevantes para un sistema de información así como sus interrelaciones y propiedades.

13 DIAGRAMA ENTIDAD RELACION Representa una “cosa” u "objeto" del mundo real con existencia independiente, es decir, se diferencia unívocamente de cualquier otro objeto o cosa, incluso siendo del mismo tipo, o una misma entidad. Los atributos son las características que definen o identifican a una entidad. Describe cierta dependencia entre entidades o permite la asociación de las mismas. ENTIDAD ATRIBUTO RELACION

14 RELACIONES Las relaciones que almacenan datos son llamadas "relaciones base" y su implementación es llamada "tabla". Otras relaciones no almacenan datos, pero son calculadas al aplicar operaciones relacionales. Estas relaciones son llamadas "relaciones derivadas" y su implementación es llamada "vista" o "consulta".

15 Unidad básica de una base de datos. Un campo puede ser, por ejemplo, el nombre de una persona. Tipo de CampoTamaño de Almacenamiento TINYINT1 byte SMALLINT2 bytes MEDIUMINT3 bytes INT4 bytes INTEGER4 bytes BIGINT8 bytes FLOAT(X)4 ú 8 bytes FLOAT4 bytes DOUBLE8 bytes DOUBLE PRECISION8 bytes REAL8 bytes DECIMAL(M,D M+2 bytes sí D > 0, M+1 bytes sí D = 0 NUMERIC(M,D) M+2 bytes if D > 0, M+1 bytes if D = 0 Tipo de campoTamaño de Almacenamiento CHAR(n)n bytes VARCHAR(n)n +1 bytes TINYBLOB, TINYTEXT Longitud+1 bytes BLOB, TEXTLongitud +2 bytes MEDIUMBLOB, MEDIUMTEXT Longitud +3 bytes LONGBLOB, LONGTEXT Longitud +4 bytes ENUM('value1','val ue2',...) 1 ó dos bytes dependiendo del número de valores SET('value1','value 2',...) 1, 2, 3, 4 ó 8 bytes, dependiendo del número de valores CAMPO

16 Una tabla en una especie de "archivo" en el cuál definimos una estructura de filas y columnas con la información que deseamos almacenar. Codigo Seria un código para idetificar al cliente. NombreEl nombre de nuestro cliente. ApellidosApellidos del cliente. CUITCUIT del cliente. DireccionLa dirección del cliente. TelefonoEl teléfono del cliente. TABLA

17 Un registro es un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. CodigoNombreApellidosCUITDireccionTelefono 1LucasPerez Lopez000000001Av/ calle 5910002525 2LuisMartin Perez000000002C/ Lope 15910002524 REGISTRO (FILA)

18 Cada tabla puede tener uno o más campos cuyos valores identifican de forma única cada registro de dicha tabla, es decir, no pueden existir dos o más registros diferentes cuyos valores en dichos campos sean idénticos. Pueden existir varias claves únicas en una determinada tabla, y a cada una de éstas suele llamársele candidata a clave primaria. CLAVE UNICA

19 Una clave primaria es una clave única elegida entre todas las candidatas que define unívocamente a todos los demás atributos de la tabla, para especificar los datos que serán relacionados con las demás tablas. Sólo puede existir una clave primaria por tabla y ningún campo de dicha clave puede contener valores NULL. CLAVE PRIMARIA

20 Una clave foránea es una referencia a una clave en otra tabla. Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de empleados, obviamente se permite que haya varios empleados en un mismo departamento, pero existirá sólo un departamento. CLAVE FORANEA

21 Los índices pueden ser creados con cualquier combinación de campos de una tabla. Las consultas que filtran registros por medio de estos campos, pueden encontrar los registros de forma no secuencial usando la clave índice. Los índices generalmente no se consideran parte de la base de datos, pues son un detalle agregado. Sin embargo, los índices son desarrolladas por el mismo grupo de programadores que las otras partes de la base de datos. INDICES

22 ¿Qué es SQL? Lenguaje de consulta estructurado (SQL: Structured Query Languague). Es un lenguaje de base de datos normalizado. Utilizado para consultar, modificar o eliminar datos en una Base de Datos.

23 Componentes Comandos Claúsulas Operadores Funciones

24 Comandos Existen 2 tipos: – DLL (definición de datos): Permiten crear y definir nuevas bases de datos, campos e índices. CREATE DROP ALTER – DML (manipulación de datos): Permiten generar consultas para ordenar, filtrar y extraer datos. SELECT INSERT UPDATE DELETE

25 CREATE TABLE Esta sentencia se usa para crear tablas en una Base de datos. La syntaxis es: CREATE TABLE table_name ( column_name1 data_type atributte, column_name2 data_type atributte, column_name3 data_type atributte,.... ); CREATE TABLE inasistencia ( id int NOT NULL AUTO_INCREMENT, id_alumno int NOT NULL, id_causa int NOT NULL, fecha date NOT NULL, descripcion varchar(255), PRIMARY KEY (id) );

26 INSERT INTO Esta sentencia se usa insertar registros en las tablas de una Base de datos. La syntaxis es: INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...); INSERT INTO Persons (P_Id, LastName, FirstName) VALUES (5, 'Tjessem', 'Jakob');

27 SELECT Esta sentencia se usa para seleccionar datos de las tablas, el resultado lo muestra en una tabla temporal. La syntaxis es: SELECT column_name(s) FROM table_name; SELECT LastName,FirstName FROM Persons; LastNameFirstName HansenOla SvendsonTove PettersenKari SELECT * FROM Persons; el * selecciona todos los campos de la tabla

28 Cláusulas FROM WHERE GROUP BY HAVING ORDER BY

29 Operadores Lógicos: –AND –OR –NOT Comparación:, <>, =

30 Funciones COUNT SUM MAX MIN AVG

31 Consulta básica SELECT A FROM B Donde A son los datos que requiero (columnas) y B es de donde obtengo esos datos.

32 Ejemplo SELECT nombre, apellidos, edad FROM estudiantes

33 WHERE A veces NO se necesitan obtener datos tan generales, y es cuando se aplican filtros, con la clausula WHERE. SELECT A FROM B WHERE C Donde C, es una o más condiciones.

34 Ejemplo SELECT nombres, apellidos, edad FROM estudiantes WHERE edad > 21

35 Alias Los alias son un nombre de asignación que se le dan a los recursos, en este caso las tablas. Luego se pueden llamar a sus atributos desde ese alias, continuados con un punto (“.”).

36 Ejemplo SELECT c.nombres, f.nombres FROM campus c, funcionarios f WHERE c.id_campus = f.id_campus

37 Alias 2 Es posible dar un alias (nombre) al titulo de las columnas de una tabla, que no es el mismo que posee en la Base de Datos. Ejemplo sin Alias: Select l.titulo, l.agno From libros l TITULOAGNO Matemáticas2007 Lenguaje y Comunicaciones1998 Cs. Biológicas2003

38 Ejemplo con Alias TITULOAÑO Matemáticas2007 Lenguaje y Comunicaciones1998 Cs. Biológicas2003 Select l.titulo, l.agno As AÑO From libros l

39 GROUP BY La cláusula GROUP BY se usa para generar valores de agregado para cada fila del conjunto de resultados. Cuando se usan sin una cláusula GROUP BY, las funciones de agregado sólo devuelven un valor de agregado para una instrucción SELECT. Ejemplo: SELECT nombre_columna1, nombre_columna2 FROM nombre_tabla GROUP BY nombre_columna1

40 GROUP BY: Ejemplo nombre_tiendaventasfecha Valdivia150005-jan-2010 Temuco25007-jan-2010 Valdivia30008-jan-2010 Osorno70008-jan-2010 tienda_info CONSULTA SELECT nombre_tienda, SUM(ventas) FROM tienda_info GROUP BY nombre_tienda RESULTADO Valdivia1800 Temuco250 Osorno700

41 HAVING Especifica una condición de búsqueda para un grupo o agregado. HAVING sólo se puede utilizar con la instrucción SELECT. Normalmente, HAVING se utiliza en una cláusula GROUP BY. Cuando no se utiliza GROUP BY, HAVING se comporta como una cláusula WHERE. Ejemplo: SELECT nombre_columna1, SUM(nombre_columna2) FROM nombre_tabla [ GROUP BY nombre_columna1 ] HAVING (condición de función aritmética)

42 HAVING: Ejemplo nombre_tiendaventasfecha Valdivia150005-jan-2010 Temuco25007-jan-2010 Valdivia30008-jan-2010 Osorno70008-jan-2010 tienda_info CONSULTA SELECT nombre_tienda, SUM(ventas) FROM tienda_info GROUP BY nombre_tienda HAVING SUM(ventas) > 1500 RESULTADO Valdivia1800

43 ORDER BY Especifica el orden utilizado en las columnas devueltas en una instrucción SELECT. La cláusula ORDER BY no es válida en vistas, funciones insertadas, tablas derivadas ni subconsultas. Ejemplo: SELECT nombre_columna1, nombre_columna2 FROM nombre_tabla [ WHERE condicion ] ORDER BY nombre_columna1 [ ASC, DESC ]

44 ORDER BY: Ejemplo nombre_tiendaventasfecha Valdivia150005-jan-2010 Temuco25007-jan-2010 Valdivia30008-jan-2010 Osorno70008-jan-2010 tienda_info CONSULTA SELECT nombre_tienda, ventas, fecha FROM tienda_info ORDER BY ventas DESC RESULTADO Valdivia150005-jan-2010 Osorno70008-jan-2010 Valdivia30008-jan-2010 Temuco25007-jan-2010

45 OPERADORES LOGICOS (AND-OR) C1C2C1 AND C2 VVV VFF FVF FFF C1C2C1 OR C2 VVV VFV FVV FFF

46 OPERADORES LOGICOS: Ejemplo AND nombre_tiendaventasfecha Valdivia150005-jan-2010 Temuco25007-jan-2010 Valdivia30008-jan-2010 Osorno70008-jan-2010 tienda_info CONSULTA SELECT * FROM tienda_info WHERE ventas > 500 AND nombre_tienda = ‘Valdivia’ RESULTADO Valdivia150005-jan-2010

47 OPERADORES LOGICOS: Ejemplo OR nombre_tiendaventasfecha Valdivia150005-jan-2010 Temuco25007-jan-2010 Valdivia30008-jan-2010 Osorno70008-jan-2010 tienda_info CONSULTA SELECT * FROM tienda_info WHERE ventas > 500 OR nombre_tienda = ‘Valdivia’ RESULTADO Valdivia150005-jan-2010 Valdivia30008-jan-2010 Osorno70008-jan-2010


Descargar ppt "Tecnología de la Información Ing. Diego J. Arcusin BASES DE DATOS / SQL."

Presentaciones similares


Anuncios Google