SlideShare una empresa de Scribd logo
1 de 70
Base de Datos para Aplicaciones


               Unidad I

Manipulación avanzada de datos con SQL




                     M.C. Jaime Lara Alvarez
Contenido

•   Conceptos (BD, BD                      •   Consultas y su representación gráfica
    Relacional, Normalización )            •   Operadores
•   Características y ventajas de una BD   •   Funciones de Agregación
    Relacional
                                           •   Vistas
•   Elementos del Modelo Relacional
                                           •   Valores vacíos y repetidos
•   Sistemas Gestores de BD (SGBD -
    DBMA)                                  •   Modificación de la BD
•   SQL                                    •   Reunión de Relaciones
         • Cláusulas:
              – SELECT
              – FROM
              – WHERE
              – GROUP BY
              – HAVING
              – ORDER BY
Conceptos

• Base de Datos (Banco de datos, colección de datos)
   – Silberschatz:
      • Un sistema de bases de datos es una colección de archivos
        interrelacionados y un conjunto de programas que permitan
        a los usuarios acceder y modificar estos archivos.
      • Uno de los propósitos principales de un sistema de bases de
        datos es proporcionar a los usuarios una visión abstracta de
        los datos. Es decir, el sistema esconde ciertos detalles de
        cómo se almacenan y mantienen los datos.
   – Una BD contiene información relevante para una empresa.
Base de Datos Relacional

• Definición:
  – Una base de datos relacional es un conjunto de
    una o más tablas (a las cuales se les asigna un
    nombre exclusivo) estructuradas en registros
    (líneas) y campos (columnas), que se vinculan entre
    sí por un campo en común.
Normalización

• Las bases de datos relacionales pasan por un
  proceso al que se le conoce como
  normalización, el cual es entendido como el
  proceso necesario para que una base de datos
  sea utilizada de manera óptima.
Características de una BD Relacional

• Los datos estarán
  distribuidos en
  varias tablas
• El mejor diseño de
  una base de datos es
  aquel que involucra
  varias tablas
  relacionadas a través
  de sus llaves
  primarias y foráneas.
Ventajas de una BD Relacional

• Entre las ventajas de este modelo están:
  – Garantiza herramientas para evitar la duplicidad de
    registros, a través de campos claves o llaves.
  – Garantiza la integridad referencial: Así al eliminar
    un registro elimina todos los registros relacionados
    dependientes.
Elementos del Modelo Relacional

Término relacional formal   Equivalente informal

Entidad / Relación          Tabla

Tupla                       Fila o registro

Cardinalidad                Número de filas o registros

Atributo                    Columna o campo

Grado                       Número de columnas o campos

Atributo Identificador      Llave Primaria (PK)

Dominio                     Conjunto de valores legales o permitidos
Elementos del Modelo Relacional
                                              ATRIBUTOS

Nombre de la
TABLA             PELICULA
                  TITULO                      AÑO   DURACION
                  La guerra de las galaxias 1997 120

  TUPLAS          El señor de los anillos     2001 180
  (Registros)     Mar adentro                 2004 90
                  El viaje de Chihiro         2001 120



     El DOMINIO del atributo TITULO = TEXTO

                                 Dominio de AÑO y
                                 DURACION = ENTEROS
Ejemplo: Tabla Película

                                      grado
                                                              atributos



                    título           director      género      rodaje nacionalidad duración

               Amores Perros       A. González     Drama       2000       México     1:45
                 The Matrix       A. Wachowsky Ciencia-ficción 1999       EEUU       1:38
cardinalidad




                  Torrente          S. Segura     Comedia      1997       España     1:10
                                                                                              tuplas
                 Nos miran          N. López      Policiaco    2001       España     1:18
                   Amelie          J. P. Jeunet   Comedia      2001       Francia    1:22
               Los lunes al sol      F. León       Drama       2002       España     1:17
Claves

• Clave candidata:
   – Atributo o atributos que identifican de manera única una
     tupla dada

• Clave Primaria (Primary Key)
   – Elegida a partir de las claves candidatas de la relación.
   – Ningún componente de la clave primaria acepta valores
     nulos.
• Clave Foranea (Foreign Key)
   – Especifica de forma explícita la forma en que dos tablas se
     relacionan.
   – Mecanismo para asegurar la integridad.
Atributos

• Cada atributo de una tabla (relación) tiene un
  nombre
• El conjunto de valores permitidos para cada
  atributo es llamado dominio del atributo
• El valor especial null (sin valor) es parte de todos
  los dominios a menos que se especifique lo
  contrario.
• El número de atributos se denomina grado o
  aridad de la relación.
Sistemas de Gestión de Bases de Datos (SGBD)

• Database management system (DBMS):
   – Existen programas denominados sistemas gestores de bases de datos
     (SGBD), que permiten almacenar y posteriormente acceder a los
     datos de forma rápida y estructurada.
   – El objetivo principal de un SGBD es proporcionar una forma de
     almacenar y recuperar la información de una base de datos de
     manera que sea tanto práctica como eficiente.
• Aplicaciones más usuales:
   – Gestión de empresas e instituciones públicas.
   – Entornos científicos (almacenar la información
     experimental).
Productos SGBD disponibles en el mercado


SGBD libres         SGBD no libres    SGBD no libres y gratuitos
•   MySQL           • dBase            • Microsoft SQL
•   PostgreSQL      • IBM DB2            Server Compact
•   Firebird        • IBM Informix       Edition
•   SQLite          • Interbase de     • Oracle Express
                      CodeGear           Edition 10
•   DB2 Express-C   • Microsoft
•   Apache Derby      Access
                    • Microsoft SQL
                      Server
                    • Oracle
SQL (Structured Query Language)

• Lenguaje basado en el álgebra relacional.
• El lenguaje SQL se considere un lenguaje de consultas,
  contiene además muchas otras capacidades además de
  la consulta en bases de datos. Incluye características para
  definir la estructura de los datos, para la modificación de
  los datos en la base de datos y para la especificación de
  restricciones de seguridad.
Estructura básica de SQL

• La estructura básica de una expresión SQL
  consiste en tres cláusulas:
  – SELECT
  – FROM
  – WHERE
Clausula SELECT

• La cláusula SELECT corresponde a la operación
  proyección del álgebra relacional.
• Se usa para listar los atributos deseados del
  resultado de una consulta.
• El resultado de una consulta SELECT es una
  relación (tabla).
Clausula FROM

• La cláusula FROM corresponde a la operación
  producto cartesiano del álgebra relacional.
• Lista las relaciones que deben ser analizadas en
  la evaluación de la expresión.
Clausula WHERE

• La cláusula WHERE corresponde al predicado
  selección del álgebra relacional.
• Es un predicado que engloba a los atributos de
  las relaciones que aparecen en la cláusula
  FROM.
Clausula WHERE (Continuación)

 – En la cláusula WHERE, SQL usa las conectivas lógicas:
    – And
    – Or
    – Not
• Los operandos de las conectivas lógicas pueden ser expresiones que
   contengan los operadores de comparación:
    – <, <=, >, >=, = y <>.
• SQL permite usar los operadores de comparación para comparar cadenas y
   expresiones aritméticas, así como tipos especiales, tales como el tipo fecha.
• SQL incluye un operador de comparación between para simplificar las
   cláusulas WHERE que especifica que un valor sea menor o igual que un
   valor y mayor o igual que otro valor.
Consultas

• Se puede pensar que una consulta consiste en
  obtener un subconjunto de información que es
  “cortada” de un subconjunto de renglones y
  columnas de una tabla y entonces después es
  “pegada” dentro de una tabla temporal o
  virtual.

• A continuación vamos a ver la representación
  gráfica de los pasos de una consulta
Selección de Filas
Selección de Columnas
Selección de renglones y columnas
Aplicaciones

• Consultas sencillas pueden proporcionar
  información para reportes, para subconjuntos
  de datos para análisis, y respuestas a preguntas
  específicas.
Especificando condiciones para seleccionar renglones


 • El “filtrado” o “selección” de renglones está
   basado en una condición lógica o boleana, la
   cual se evalúa sobre cada uno de los renglones
   de la tabla o tablas sobre las que se está
   trabajando.
 • Para determinar la condición es necesario
   hacer uso de diferente operadores.
Modelo Relacional - Ejemplo
Operadores de comparación
 Operador        Significado                          Ejemplo
=           Igualdad            SELECT idAlumno, Nombre
                                FROM alumno
                                WHERE idAlumno = 1
<           Menor que           SELECT *
                                FROM alumno_materias
                                WHERE calificacion < 8
<=          Menor o Igual que   SELECT *
                                FROM alumno_materias
                                WHERE calificacion <= 7
>           Mayor que           SELECT *
                                FROM alumno_materias
                                WHERE calificacion > 9
>=          Mayor o igual que   SELECT *
                                FROM alumno_materias
                                WHERE calificacion < 8
<>, !=      Diferente           SELECT *
                                FROM alumno
                                WHERE nombre != 'Juan'
Operadores Lógicos




SELECT *
FROM alumno_materias
WHERE alumno = 1 and Calificacion > 7
                             SELECT *
                             FROM alumno_materias
                             WHERE alumno = 1 or Calificacion > 7
                                                                 SELECT *
                                                                 FROM alumno_materias
                                                                 WHERE not Calificacion = 7
Caso de Estudio

• Biblioteca UTP:
  – La biblioteca de la UTP desea almacenar la
    información de sus Libros(titulo, resumen, genero
    literario, editorial), autores y alumnos. La biblioteca
    desea llevar un control de los préstamos realizados
    a los alumno.

  – A manera de ejemplo utilizaremos el modelo
    relacional de la biblioteca para abordar los temas
    siguientes
Modelo Relacional - Biblioteca
Reunión de relaciones


• Ejemplo: ¿Cómo saber los alumnos que han
  realizado prestamos?

  – Esta información se encuentra almacenada en dos
    tablas: en la tabla alumnos y en la tabla prestamos.

• ¿Cómo podemos juntar la información?
Join

• Para unir dos tablas utilizamos la operación join
  dentro de la clausula FROM

• SELECT campo1_, campo_2, …, campo_n
  FROM tabla1 join tabla 2
            on tabla1.campo_t1 = tabla2.campo_t2
  Nota: tenga en cuenta que los campos campo_t1 y campo_t2 tienen que ser del
  mismo tipo y que por lo general uno de estos es llave primaria y el otro es llave
  foranea, aunque esto último no es necesario.
Join – Unión de alumnos con prestamos

• SELECT *
  FROM prestamos p join alumnos a
        on p.alumno = a.matricula
 Nota: Por comodidad se renombrando la tabla
 prestamos como p y la tabla alumnos como a. En
 caso contrario hubiera tenido que escribir:

• SELECT *
  FROM prestamos join alumnos
        on prestamos.alumno = alumnos.matricula
CLÁUSULAS

• GROUP BY

• HAVING

• ORDER BY
Group By

• El atributo o atributos especificados en la
  cláusula group by se usan para formar grupos.
• Las tuplas con el mismo valor en todos los
  atributos especificados en la cláusula group by
  se colocan en un grupo.
Having

• Los predicados de la cláusula having se aplican
  después de la formación de grupos, de modo
  que se pueden usar las funciones de
  agregación.
Order By

• SQL ofrece al usuario cierto control sobre el
  orden en el cual se presentan las tuplas de una
  relación.
• La cláusula order by hace que las tuplas
  resultantes de una consulta se presenten en un
  cierto orden.
Order By - Ejemplo

• Ordenar de forma Ascendente los alumnos
 – SELECT   *
   FROM alumnos
   order by matricula


• Ordenar de forma descendente los alumnos
 – SELECT *
   FROM alumnos
   order by matricula DESC
Funciones de Agregación

• Las funciones de agregación son funciones que
  toman una colección de valores como entrada y
  producen un único valor como salida.

• SQL proporciona cinco funciones de agregación
  primitivas:
 – Media: avg
 – Mínimo: min
 – Máximo: max
 – Total: sum
 – Cuenta: count
Average - avg


• Retorna el valor medio de expresión

• Sintaxis
  – AVG(expresión)

• Revisar:
  – http://www.w3schools.com/sql/sql_func_avg.asp
Max, Min


• Devuelven el mínimo o el máximo de un
  conjunto de valores contenidos en un campo
  especifico de una consulta. Ejemplo:

• SELECT   min(id_Volumen) as 'ID Mínimo',
           max(id_Volumen) as 'ID Máximo‘
  FROM     volumenes
Count

• Con mucha frecuencia se usa la función de
  agregación count para contar el número de
  tuplas de una relación.
• La notación para esta función en SQL es
  count(*).
Count

• Obtener el total de prestamos:
  – SELECT count(*) as 'Total de prestamos‘
    FROM prestamos



• Obtener el total de libros:
  – SELECT count(*) as 'Total de libros‘
    FROM libros
Count

• Obtener los prestamos realizados por cada alumno

• SELECT matricula, nombre,
       count(*) as 'Prestamos realizados'
  FROM alumnos a join prestamos p
                  on a.matricula = p.alumno
  GROUP BY matricula
Sum

• Retorna la suma de expr. Si el conjunto
  resultado no tiene registros, SUM() retorna
  NULL.

• Sintaxis
  – SUM(expresión)
Ejemplo: Count y Sum

• Obtener de cada libro su titulo, la cantidad de libros que cuenta la
  biblioteca de cada libro y los libros disponibles para préstamo.

• SELECT       titulo,
               count(*) as 'Cantidad de Libros',
               sum(disponible) as 'Libros disponibles‘

  FROM         volumenes join libros
                            on libros.isbn = volumenes.libro

  GROUP BY libro;
LIMIT

• La cláusula LIMIT puede usarse para restringir el número de registros
  retornados por el comando SELECT. LIMIT tiene uno o dos argumentos
  numéricos, que deben ser enteros positivos (incluyendo cero).
• Con dos argumentos, el primer argumento especifica el desplazamiento
  del primer registro a retornar. El desplazamiento del registro inicial es 0.
• Con un argumento, el valor especifica el número de registros a retornar
  desde el comienzo del conjunto de resultados, en otras palabras, LIMIT n
  es equivalente a LIMIT 0,n.

• Ejemplo: Seleccionar los primeros 5 libros ordenados por su nombre.

             SELECT titulo                     SELECT titulo
             FROM libros                       FROM libros
             ORDER BY BINARY titulo            ORDER BY BINARY titulo
             LIMIT 0,5                         LIMIT 5
Vistas
Vistas

• Si los datos de la BD cambian, entonces los resultados de las
  consultas también deben de cambiar.
• Una vista es un resultado de una consulta SQL de una o varias
  tablas; también se le puede considerar una tabla virtual (Tabla en
  donde se almacenan los resultados de una consulta y es virtual
  porque solo es temporal para la ejecución de una consulta
  determinada).
• Las vistas tienen la misma estructura que una tabla: filas y
  columnas. La única diferencia es que sólo se almacena de ellas la
  definición, no los datos. Los datos que se recuperan mediante
  una consulta a una vista se presentarán igual que los de una
  tabla.
Vistas ( Continuación )

• Al igual que sucede con una tabla, se pueden
  insertar, actualizar, borrar y seleccionar datos
  en una vista.
• Una vista se especifica a través de una
  sentencia SELECT.
• La mayoría de los SGBD soportan la creación y
  manipulación de vistas.
• Las vistas fueron introducidas en la versión 5.0
  del servidor de base de datos MySQL.
CREATE VIEW

CREATE VIEW   nombre_vista   AS
              SELECT *
              FROM tablaX
CREATE VIEW - Ejemplo

CREATE VIEW alu_materia_calificacion as
SELECT     a.idAlumno as Matricula,
           a.Nombre as 'Nombre del Alumno',
           m.Nombre as 'Nombre de la Materia',
           am.Calificacion
FROM (alumno a JOIN alumno_materias am
     ON a.idAlumno = am.Alumno)
JOIN materia m ON am.materia = m.idMateria
Consultar datos de la vista
Consultas sobre Vistas
Trabajando con valores nulos

• Desde que se va construyendo la definición de
  cada tabla, se puede restringir a que un campo
  pueda o no aceptar valores nulos.
• Un valor nulo significa que para un campo de
  cualquier tipo de los que se permiten definir
  (int, char, varchar, etc.) no se le asigne valor
  alguno (como si se quedara vacio).
Trabajando con valores nulos


SELECT *
FROM tabla t
WHERE t.columna is null

SELECT *
FROM tabla t
WHERE not (t.columna is null)
Manejo de Valores duplicados

  SELECT FirstName
  FROM Students

• Si se quiere obtener el resultado sin
  que aparezcan valores duplicados, se
  puede usar la palabra clave DISTINCT

  SELECT DISTINCT m.FirstName
  FROM Member m
Modificación de la BD

• Borrado

• Inserción

• Actualizaciones
Borrado

• DELETE FROM alumno
  • Borra todas las tuplas de la relacion alumno


• DELETE FROM alumno
  WHERE idAlumno = 5
  • Borra la tupla identificada por el idAlumno 5.

• DELETE FROM alumno_materias
  WHERE calificacion < 7
  • Borra las tuplas de la tabla alumno_materia que tengan una
    calificacion menor a 7
Inserción

• INSERT INTO tabla
  VALUES      ( ‘valor 1’, 2, ...)

• INSERT INTO alumno (idAlumno, Nombre)
  VALUES      (5, ‘Guadalupe Reyes');
Actualizaciones

• UPDATE alumno
  SET    nombre = ‘Juan Perez’

• UPDATE alumno
  SET    Nombre = 'Juan Pérez‘
  WHERE idAlumno = 1
Reunion de Relaciones

•   Inner join
•   Left outer join
•   Right outer join
•   Natural join
Reunion de Relaciones
Inner join
left outer join
Right outer join
Natural join
Referencias

• FUNDAMENTOS DE BASES DE DATOS
  Silberschatz, Korth, Sudarshan. Quinta Edición.
  McGraw-Hill 2006
  ISBN: 84 – 481 – 4644 - 1

• Sintaxis de SELECT
   – http://dev.mysql.com/doc/refman/5.0/es/select.html
• Avg
  • http://www.w3schools.com/sql/sql_func_avg.asp
• Group By
   – http://dev.mysql.com/doc/refman/5.0/es/group-by-functions.html

Más contenido relacionado

La actualidad más candente

Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relaciondanielglot
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicojosecuartas
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Yarquiri Claudio
 
Modelo entidad relación BD Matriculas
Modelo entidad relación BD MatriculasModelo entidad relación BD Matriculas
Modelo entidad relación BD MatriculasEmerson Garay
 
Creación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerCreación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerJenny Lophezz
 
Compartir Archivos Entre Dos Maquinas Virtuales
Compartir Archivos Entre Dos Maquinas VirtualesCompartir Archivos Entre Dos Maquinas Virtuales
Compartir Archivos Entre Dos Maquinas Virtualescarlos andres
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionLuiS YmAY
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworksDaniel Cam Urquizo
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridadkamui002
 
Modelo conceptual
Modelo conceptual Modelo conceptual
Modelo conceptual Claü Vides
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacionoswchavez
 
Elementos del escenario
Elementos del escenarioElementos del escenario
Elementos del escenarioAlumic S.A
 
Linea de tiempo de sistemas operativos
Linea de tiempo de sistemas operativosLinea de tiempo de sistemas operativos
Linea de tiempo de sistemas operativosMiguel Magaña
 
Modelos de objetos semanticos
Modelos de objetos semanticosModelos de objetos semanticos
Modelos de objetos semanticosMarelvis_inf
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datosAlvaro Cardona
 
Ejemplos de diagramas =)
Ejemplos de diagramas =)Ejemplos de diagramas =)
Ejemplos de diagramas =)bat1820
 
Concepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerConcepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerMarcos Omar Cruz Ortrega
 

La actualidad más candente (20)

Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Transformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logicoTransformar modelo entidad relacion a modelo logico
Transformar modelo entidad relacion a modelo logico
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos
 
Modelo entidad relación BD Matriculas
Modelo entidad relación BD MatriculasModelo entidad relación BD Matriculas
Modelo entidad relación BD Matriculas
 
Creación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracerCreación de red inalámbrica con cisco packet tracer
Creación de red inalámbrica con cisco packet tracer
 
Compartir Archivos Entre Dos Maquinas Virtuales
Compartir Archivos Entre Dos Maquinas VirtualesCompartir Archivos Entre Dos Maquinas Virtuales
Compartir Archivos Entre Dos Maquinas Virtuales
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Patrones de diseño y frameworks
Patrones de diseño y frameworksPatrones de diseño y frameworks
Patrones de diseño y frameworks
 
Modelo relacional y reglas de integridad
Modelo relacional y reglas de integridadModelo relacional y reglas de integridad
Modelo relacional y reglas de integridad
 
Modelo conceptual
Modelo conceptual Modelo conceptual
Modelo conceptual
 
Clase 3 Modelo Entidad Relacion
Clase 3   Modelo Entidad   RelacionClase 3   Modelo Entidad   Relacion
Clase 3 Modelo Entidad Relacion
 
Elementos del escenario
Elementos del escenarioElementos del escenario
Elementos del escenario
 
Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02Diagrama de clases - Ejemplo monográfico 02
Diagrama de clases - Ejemplo monográfico 02
 
Linea de tiempo de sistemas operativos
Linea de tiempo de sistemas operativosLinea de tiempo de sistemas operativos
Linea de tiempo de sistemas operativos
 
Modelos de objetos semanticos
Modelos de objetos semanticosModelos de objetos semanticos
Modelos de objetos semanticos
 
Codigo para crear la base de datos
Codigo para crear la base de datosCodigo para crear la base de datos
Codigo para crear la base de datos
 
Ejemplos de diagramas =)
Ejemplos de diagramas =)Ejemplos de diagramas =)
Ejemplos de diagramas =)
 
Concepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson PenkerConcepto y extensiones de negocio de Eriksson Penker
Concepto y extensiones de negocio de Eriksson Penker
 
Capa física
Capa físicaCapa física
Capa física
 
Unidad 6 Lenguaje Sql
Unidad 6 Lenguaje SqlUnidad 6 Lenguaje Sql
Unidad 6 Lenguaje Sql
 

Destacado

Proyecto administracion de una biblioteca
Proyecto administracion de una bibliotecaProyecto administracion de una biblioteca
Proyecto administracion de una bibliotecaUniversidad de Panamá
 
Optimización JavaScript y CSS
Optimización JavaScript y CSSOptimización JavaScript y CSS
Optimización JavaScript y CSSlucascepeda
 
Administración de la biblioteca
Administración de la bibliotecaAdministración de la biblioteca
Administración de la bibliotecacostadaiana
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryGonzalo Chacaltana
 
Como Crear Una Bd En Acces
Como Crear Una Bd En AccesComo Crear Una Bd En Acces
Como Crear Una Bd En Accesdeiccy anahi
 
Comparativa sgbd comercial vs libre
Comparativa sgbd comercial vs libreComparativa sgbd comercial vs libre
Comparativa sgbd comercial vs libreFportavella
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosActimel
 
Base de Datos
Base de DatosBase de Datos
Base de DatosFRDO
 
Administracion de bibliotecas
Administracion de bibliotecasAdministracion de bibliotecas
Administracion de bibliotecasAndres Fernandez
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnLuis Jherry
 
Normalizacion 1 -_3_fn
Normalizacion 1 -_3_fnNormalizacion 1 -_3_fn
Normalizacion 1 -_3_fnLuis Jherry
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacionAngeliik Cortes
 
Trabajo final bibliotecas publicas-ensayo
Trabajo final bibliotecas publicas-ensayoTrabajo final bibliotecas publicas-ensayo
Trabajo final bibliotecas publicas-ensayomilebote
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciònomarzon
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacionBrayan Vega Diaz
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
 
Analisis y diseño de sistema bibliotecario
Analisis y diseño de sistema bibliotecarioAnalisis y diseño de sistema bibliotecario
Analisis y diseño de sistema bibliotecarioJose Guzman
 
Diagramas de flujo, especificaciones y diseño de procesos
Diagramas de flujo, especificaciones y diseño de procesosDiagramas de flujo, especificaciones y diseño de procesos
Diagramas de flujo, especificaciones y diseño de procesosIvan Vera Montenegro
 

Destacado (20)

Proyecto administracion de una biblioteca
Proyecto administracion de una bibliotecaProyecto administracion de una biblioteca
Proyecto administracion de una biblioteca
 
Optimización JavaScript y CSS
Optimización JavaScript y CSSOptimización JavaScript y CSS
Optimización JavaScript y CSS
 
Administración de la biblioteca
Administración de la bibliotecaAdministración de la biblioteca
Administración de la biblioteca
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
Como Crear Una Bd En Acces
Como Crear Una Bd En AccesComo Crear Una Bd En Acces
Como Crear Una Bd En Acces
 
Comparativa sgbd comercial vs libre
Comparativa sgbd comercial vs libreComparativa sgbd comercial vs libre
Comparativa sgbd comercial vs libre
 
Sistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de DatosSistemas Gestores de Bases de Datos
Sistemas Gestores de Bases de Datos
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Administracion de bibliotecas
Administracion de bibliotecasAdministracion de bibliotecas
Administracion de bibliotecas
 
Normalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fnNormalizacion boyce codd_4_fn
Normalizacion boyce codd_4_fn
 
Normalizacion 1 -_3_fn
Normalizacion 1 -_3_fnNormalizacion 1 -_3_fn
Normalizacion 1 -_3_fn
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacion
 
Trabajo final bibliotecas publicas-ensayo
Trabajo final bibliotecas publicas-ensayoTrabajo final bibliotecas publicas-ensayo
Trabajo final bibliotecas publicas-ensayo
 
Normalizaciòn
NormalizaciònNormalizaciòn
Normalizaciòn
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacion
 
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
DIAGRAMAS DE VENN, OPERACIONES CON CONJUNTOS.
DIAGRAMAS DE VENN, OPERACIONES CON CONJUNTOS.DIAGRAMAS DE VENN, OPERACIONES CON CONJUNTOS.
DIAGRAMAS DE VENN, OPERACIONES CON CONJUNTOS.
 
Analisis y diseño de sistema bibliotecario
Analisis y diseño de sistema bibliotecarioAnalisis y diseño de sistema bibliotecario
Analisis y diseño de sistema bibliotecario
 
Diagramas de flujo, especificaciones y diseño de procesos
Diagramas de flujo, especificaciones y diseño de procesosDiagramas de flujo, especificaciones y diseño de procesos
Diagramas de flujo, especificaciones y diseño de procesos
 

Similar a SQL avanzada para manipulación de datos

Similar a SQL avanzada para manipulación de datos (20)

Unid2 transact sql 1
Unid2  transact sql 1Unid2  transact sql 1
Unid2 transact sql 1
 
Base De Datos I
Base De Datos IBase De Datos I
Base De Datos I
 
Unidad4 sql
Unidad4 sqlUnidad4 sql
Unidad4 sql
 
Tsql
TsqlTsql
Tsql
 
Ddl
DdlDdl
Ddl
 
Diapositiva_BD_Unidad_02_TES.pdf
Diapositiva_BD_Unidad_02_TES.pdfDiapositiva_BD_Unidad_02_TES.pdf
Diapositiva_BD_Unidad_02_TES.pdf
 
sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
Abf leccion 12
Abf leccion 12Abf leccion 12
Abf leccion 12
 
Presentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datosPresentaciones base de datos , fundamentos de base de datos
Presentaciones base de datos , fundamentos de base de datos
 
Tsql
TsqlTsql
Tsql
 
Amnel
AmnelAmnel
Amnel
 
Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2Database fundamental itprosdc_chapter2
Database fundamental itprosdc_chapter2
 
Lenguaje de defincion de datos
Lenguaje   de  defincion de datosLenguaje   de  defincion de datos
Lenguaje de defincion de datos
 
Fundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sqlFundamentos de BD - Unidad 6 lenguaje sql
Fundamentos de BD - Unidad 6 lenguaje sql
 
Ddl
DdlDdl
Ddl
 
Manual basico del_lenguaje_sql
Manual basico del_lenguaje_sqlManual basico del_lenguaje_sql
Manual basico del_lenguaje_sql
 
Consultasensqlbsico 120928134812-phpapp01
Consultasensqlbsico 120928134812-phpapp01Consultasensqlbsico 120928134812-phpapp01
Consultasensqlbsico 120928134812-phpapp01
 
Lenguaje transact sql
Lenguaje transact sqlLenguaje transact sql
Lenguaje transact sql
 
Base de Datos I (I Bimestre)
Base de Datos I (I Bimestre)Base de Datos I (I Bimestre)
Base de Datos I (I Bimestre)
 
Jpa
JpaJpa
Jpa
 

Más de Jaime Lara

Creación de Interactivos con Educaplay
Creación de Interactivos con Educaplay Creación de Interactivos con Educaplay
Creación de Interactivos con Educaplay Jaime Lara
 
Lógica de Programación
Lógica de ProgramaciónLógica de Programación
Lógica de ProgramaciónJaime Lara
 
Caso de uso libreria
Caso de uso libreriaCaso de uso libreria
Caso de uso libreriaJaime Lara
 
Ejercicio UTPBookStore
Ejercicio UTPBookStoreEjercicio UTPBookStore
Ejercicio UTPBookStoreJaime Lara
 
Problemas Unidad I
Problemas Unidad IProblemas Unidad I
Problemas Unidad IJaime Lara
 
Objetivo y temario de bda
Objetivo y temario de bdaObjetivo y temario de bda
Objetivo y temario de bdaJaime Lara
 
Programación - Clase 1
Programación - Clase 1Programación - Clase 1
Programación - Clase 1Jaime Lara
 

Más de Jaime Lara (13)

Unity
UnityUnity
Unity
 
Unity
UnityUnity
Unity
 
Creación de Interactivos con Educaplay
Creación de Interactivos con Educaplay Creación de Interactivos con Educaplay
Creación de Interactivos con Educaplay
 
Lógica de Programación
Lógica de ProgramaciónLógica de Programación
Lógica de Programación
 
Caso de uso libreria
Caso de uso libreriaCaso de uso libreria
Caso de uso libreria
 
Ejercicio UTPBookStore
Ejercicio UTPBookStoreEjercicio UTPBookStore
Ejercicio UTPBookStore
 
Problemas Unidad I
Problemas Unidad IProblemas Unidad I
Problemas Unidad I
 
Clase 5
Clase 5Clase 5
Clase 5
 
Clase 4
Clase 4Clase 4
Clase 4
 
Clase 3
Clase 3Clase 3
Clase 3
 
Clase 2
Clase 2Clase 2
Clase 2
 
Objetivo y temario de bda
Objetivo y temario de bdaObjetivo y temario de bda
Objetivo y temario de bda
 
Programación - Clase 1
Programación - Clase 1Programación - Clase 1
Programación - Clase 1
 

Último

Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 

Último (20)

Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 

SQL avanzada para manipulación de datos

  • 1. Base de Datos para Aplicaciones Unidad I Manipulación avanzada de datos con SQL M.C. Jaime Lara Alvarez
  • 2. Contenido • Conceptos (BD, BD • Consultas y su representación gráfica Relacional, Normalización ) • Operadores • Características y ventajas de una BD • Funciones de Agregación Relacional • Vistas • Elementos del Modelo Relacional • Valores vacíos y repetidos • Sistemas Gestores de BD (SGBD - DBMA) • Modificación de la BD • SQL • Reunión de Relaciones • Cláusulas: – SELECT – FROM – WHERE – GROUP BY – HAVING – ORDER BY
  • 3. Conceptos • Base de Datos (Banco de datos, colección de datos) – Silberschatz: • Un sistema de bases de datos es una colección de archivos interrelacionados y un conjunto de programas que permitan a los usuarios acceder y modificar estos archivos. • Uno de los propósitos principales de un sistema de bases de datos es proporcionar a los usuarios una visión abstracta de los datos. Es decir, el sistema esconde ciertos detalles de cómo se almacenan y mantienen los datos. – Una BD contiene información relevante para una empresa.
  • 4. Base de Datos Relacional • Definición: – Una base de datos relacional es un conjunto de una o más tablas (a las cuales se les asigna un nombre exclusivo) estructuradas en registros (líneas) y campos (columnas), que se vinculan entre sí por un campo en común.
  • 5. Normalización • Las bases de datos relacionales pasan por un proceso al que se le conoce como normalización, el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera óptima.
  • 6. Características de una BD Relacional • Los datos estarán distribuidos en varias tablas • El mejor diseño de una base de datos es aquel que involucra varias tablas relacionadas a través de sus llaves primarias y foráneas.
  • 7. Ventajas de una BD Relacional • Entre las ventajas de este modelo están: – Garantiza herramientas para evitar la duplicidad de registros, a través de campos claves o llaves. – Garantiza la integridad referencial: Así al eliminar un registro elimina todos los registros relacionados dependientes.
  • 8. Elementos del Modelo Relacional Término relacional formal Equivalente informal Entidad / Relación Tabla Tupla Fila o registro Cardinalidad Número de filas o registros Atributo Columna o campo Grado Número de columnas o campos Atributo Identificador Llave Primaria (PK) Dominio Conjunto de valores legales o permitidos
  • 9. Elementos del Modelo Relacional ATRIBUTOS Nombre de la TABLA PELICULA TITULO AÑO DURACION La guerra de las galaxias 1997 120 TUPLAS El señor de los anillos 2001 180 (Registros) Mar adentro 2004 90 El viaje de Chihiro 2001 120 El DOMINIO del atributo TITULO = TEXTO Dominio de AÑO y DURACION = ENTEROS
  • 10. Ejemplo: Tabla Película grado atributos título director género rodaje nacionalidad duración Amores Perros A. González Drama 2000 México 1:45 The Matrix A. Wachowsky Ciencia-ficción 1999 EEUU 1:38 cardinalidad Torrente S. Segura Comedia 1997 España 1:10 tuplas Nos miran N. López Policiaco 2001 España 1:18 Amelie J. P. Jeunet Comedia 2001 Francia 1:22 Los lunes al sol F. León Drama 2002 España 1:17
  • 11. Claves • Clave candidata: – Atributo o atributos que identifican de manera única una tupla dada • Clave Primaria (Primary Key) – Elegida a partir de las claves candidatas de la relación. – Ningún componente de la clave primaria acepta valores nulos. • Clave Foranea (Foreign Key) – Especifica de forma explícita la forma en que dos tablas se relacionan. – Mecanismo para asegurar la integridad.
  • 12. Atributos • Cada atributo de una tabla (relación) tiene un nombre • El conjunto de valores permitidos para cada atributo es llamado dominio del atributo • El valor especial null (sin valor) es parte de todos los dominios a menos que se especifique lo contrario. • El número de atributos se denomina grado o aridad de la relación.
  • 13. Sistemas de Gestión de Bases de Datos (SGBD) • Database management system (DBMS): – Existen programas denominados sistemas gestores de bases de datos (SGBD), que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. – El objetivo principal de un SGBD es proporcionar una forma de almacenar y recuperar la información de una base de datos de manera que sea tanto práctica como eficiente. • Aplicaciones más usuales: – Gestión de empresas e instituciones públicas. – Entornos científicos (almacenar la información experimental).
  • 14. Productos SGBD disponibles en el mercado SGBD libres SGBD no libres SGBD no libres y gratuitos • MySQL • dBase • Microsoft SQL • PostgreSQL • IBM DB2 Server Compact • Firebird • IBM Informix Edition • SQLite • Interbase de • Oracle Express CodeGear Edition 10 • DB2 Express-C • Microsoft • Apache Derby Access • Microsoft SQL Server • Oracle
  • 15. SQL (Structured Query Language) • Lenguaje basado en el álgebra relacional. • El lenguaje SQL se considere un lenguaje de consultas, contiene además muchas otras capacidades además de la consulta en bases de datos. Incluye características para definir la estructura de los datos, para la modificación de los datos en la base de datos y para la especificación de restricciones de seguridad.
  • 16. Estructura básica de SQL • La estructura básica de una expresión SQL consiste en tres cláusulas: – SELECT – FROM – WHERE
  • 17. Clausula SELECT • La cláusula SELECT corresponde a la operación proyección del álgebra relacional. • Se usa para listar los atributos deseados del resultado de una consulta. • El resultado de una consulta SELECT es una relación (tabla).
  • 18. Clausula FROM • La cláusula FROM corresponde a la operación producto cartesiano del álgebra relacional. • Lista las relaciones que deben ser analizadas en la evaluación de la expresión.
  • 19. Clausula WHERE • La cláusula WHERE corresponde al predicado selección del álgebra relacional. • Es un predicado que engloba a los atributos de las relaciones que aparecen en la cláusula FROM.
  • 20. Clausula WHERE (Continuación) – En la cláusula WHERE, SQL usa las conectivas lógicas: – And – Or – Not • Los operandos de las conectivas lógicas pueden ser expresiones que contengan los operadores de comparación: – <, <=, >, >=, = y <>. • SQL permite usar los operadores de comparación para comparar cadenas y expresiones aritméticas, así como tipos especiales, tales como el tipo fecha. • SQL incluye un operador de comparación between para simplificar las cláusulas WHERE que especifica que un valor sea menor o igual que un valor y mayor o igual que otro valor.
  • 21. Consultas • Se puede pensar que una consulta consiste en obtener un subconjunto de información que es “cortada” de un subconjunto de renglones y columnas de una tabla y entonces después es “pegada” dentro de una tabla temporal o virtual. • A continuación vamos a ver la representación gráfica de los pasos de una consulta
  • 25. Aplicaciones • Consultas sencillas pueden proporcionar información para reportes, para subconjuntos de datos para análisis, y respuestas a preguntas específicas.
  • 26. Especificando condiciones para seleccionar renglones • El “filtrado” o “selección” de renglones está basado en una condición lógica o boleana, la cual se evalúa sobre cada uno de los renglones de la tabla o tablas sobre las que se está trabajando. • Para determinar la condición es necesario hacer uso de diferente operadores.
  • 28. Operadores de comparación Operador Significado Ejemplo = Igualdad SELECT idAlumno, Nombre FROM alumno WHERE idAlumno = 1 < Menor que SELECT * FROM alumno_materias WHERE calificacion < 8 <= Menor o Igual que SELECT * FROM alumno_materias WHERE calificacion <= 7 > Mayor que SELECT * FROM alumno_materias WHERE calificacion > 9 >= Mayor o igual que SELECT * FROM alumno_materias WHERE calificacion < 8 <>, != Diferente SELECT * FROM alumno WHERE nombre != 'Juan'
  • 29. Operadores Lógicos SELECT * FROM alumno_materias WHERE alumno = 1 and Calificacion > 7 SELECT * FROM alumno_materias WHERE alumno = 1 or Calificacion > 7 SELECT * FROM alumno_materias WHERE not Calificacion = 7
  • 30. Caso de Estudio • Biblioteca UTP: – La biblioteca de la UTP desea almacenar la información de sus Libros(titulo, resumen, genero literario, editorial), autores y alumnos. La biblioteca desea llevar un control de los préstamos realizados a los alumno. – A manera de ejemplo utilizaremos el modelo relacional de la biblioteca para abordar los temas siguientes
  • 31. Modelo Relacional - Biblioteca
  • 32. Reunión de relaciones • Ejemplo: ¿Cómo saber los alumnos que han realizado prestamos? – Esta información se encuentra almacenada en dos tablas: en la tabla alumnos y en la tabla prestamos. • ¿Cómo podemos juntar la información?
  • 33. Join • Para unir dos tablas utilizamos la operación join dentro de la clausula FROM • SELECT campo1_, campo_2, …, campo_n FROM tabla1 join tabla 2 on tabla1.campo_t1 = tabla2.campo_t2 Nota: tenga en cuenta que los campos campo_t1 y campo_t2 tienen que ser del mismo tipo y que por lo general uno de estos es llave primaria y el otro es llave foranea, aunque esto último no es necesario.
  • 34. Join – Unión de alumnos con prestamos • SELECT * FROM prestamos p join alumnos a on p.alumno = a.matricula Nota: Por comodidad se renombrando la tabla prestamos como p y la tabla alumnos como a. En caso contrario hubiera tenido que escribir: • SELECT * FROM prestamos join alumnos on prestamos.alumno = alumnos.matricula
  • 35. CLÁUSULAS • GROUP BY • HAVING • ORDER BY
  • 36. Group By • El atributo o atributos especificados en la cláusula group by se usan para formar grupos. • Las tuplas con el mismo valor en todos los atributos especificados en la cláusula group by se colocan en un grupo.
  • 37. Having • Los predicados de la cláusula having se aplican después de la formación de grupos, de modo que se pueden usar las funciones de agregación.
  • 38. Order By • SQL ofrece al usuario cierto control sobre el orden en el cual se presentan las tuplas de una relación. • La cláusula order by hace que las tuplas resultantes de una consulta se presenten en un cierto orden.
  • 39. Order By - Ejemplo • Ordenar de forma Ascendente los alumnos – SELECT * FROM alumnos order by matricula • Ordenar de forma descendente los alumnos – SELECT * FROM alumnos order by matricula DESC
  • 40. Funciones de Agregación • Las funciones de agregación son funciones que toman una colección de valores como entrada y producen un único valor como salida. • SQL proporciona cinco funciones de agregación primitivas: – Media: avg – Mínimo: min – Máximo: max – Total: sum – Cuenta: count
  • 41. Average - avg • Retorna el valor medio de expresión • Sintaxis – AVG(expresión) • Revisar: – http://www.w3schools.com/sql/sql_func_avg.asp
  • 42. Max, Min • Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Ejemplo: • SELECT min(id_Volumen) as 'ID Mínimo', max(id_Volumen) as 'ID Máximo‘ FROM volumenes
  • 43. Count • Con mucha frecuencia se usa la función de agregación count para contar el número de tuplas de una relación. • La notación para esta función en SQL es count(*).
  • 44. Count • Obtener el total de prestamos: – SELECT count(*) as 'Total de prestamos‘ FROM prestamos • Obtener el total de libros: – SELECT count(*) as 'Total de libros‘ FROM libros
  • 45. Count • Obtener los prestamos realizados por cada alumno • SELECT matricula, nombre, count(*) as 'Prestamos realizados' FROM alumnos a join prestamos p on a.matricula = p.alumno GROUP BY matricula
  • 46. Sum • Retorna la suma de expr. Si el conjunto resultado no tiene registros, SUM() retorna NULL. • Sintaxis – SUM(expresión)
  • 47. Ejemplo: Count y Sum • Obtener de cada libro su titulo, la cantidad de libros que cuenta la biblioteca de cada libro y los libros disponibles para préstamo. • SELECT titulo, count(*) as 'Cantidad de Libros', sum(disponible) as 'Libros disponibles‘ FROM volumenes join libros on libros.isbn = volumenes.libro GROUP BY libro;
  • 48. LIMIT • La cláusula LIMIT puede usarse para restringir el número de registros retornados por el comando SELECT. LIMIT tiene uno o dos argumentos numéricos, que deben ser enteros positivos (incluyendo cero). • Con dos argumentos, el primer argumento especifica el desplazamiento del primer registro a retornar. El desplazamiento del registro inicial es 0. • Con un argumento, el valor especifica el número de registros a retornar desde el comienzo del conjunto de resultados, en otras palabras, LIMIT n es equivalente a LIMIT 0,n. • Ejemplo: Seleccionar los primeros 5 libros ordenados por su nombre. SELECT titulo SELECT titulo FROM libros FROM libros ORDER BY BINARY titulo ORDER BY BINARY titulo LIMIT 0,5 LIMIT 5
  • 50. Vistas • Si los datos de la BD cambian, entonces los resultados de las consultas también deben de cambiar. • Una vista es un resultado de una consulta SQL de una o varias tablas; también se le puede considerar una tabla virtual (Tabla en donde se almacenan los resultados de una consulta y es virtual porque solo es temporal para la ejecución de una consulta determinada). • Las vistas tienen la misma estructura que una tabla: filas y columnas. La única diferencia es que sólo se almacena de ellas la definición, no los datos. Los datos que se recuperan mediante una consulta a una vista se presentarán igual que los de una tabla.
  • 51. Vistas ( Continuación ) • Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar datos en una vista. • Una vista se especifica a través de una sentencia SELECT. • La mayoría de los SGBD soportan la creación y manipulación de vistas. • Las vistas fueron introducidas en la versión 5.0 del servidor de base de datos MySQL.
  • 52. CREATE VIEW CREATE VIEW nombre_vista AS SELECT * FROM tablaX
  • 53. CREATE VIEW - Ejemplo CREATE VIEW alu_materia_calificacion as SELECT a.idAlumno as Matricula, a.Nombre as 'Nombre del Alumno', m.Nombre as 'Nombre de la Materia', am.Calificacion FROM (alumno a JOIN alumno_materias am ON a.idAlumno = am.Alumno) JOIN materia m ON am.materia = m.idMateria
  • 54. Consultar datos de la vista
  • 55.
  • 57. Trabajando con valores nulos • Desde que se va construyendo la definición de cada tabla, se puede restringir a que un campo pueda o no aceptar valores nulos. • Un valor nulo significa que para un campo de cualquier tipo de los que se permiten definir (int, char, varchar, etc.) no se le asigne valor alguno (como si se quedara vacio).
  • 58. Trabajando con valores nulos SELECT * FROM tabla t WHERE t.columna is null SELECT * FROM tabla t WHERE not (t.columna is null)
  • 59. Manejo de Valores duplicados SELECT FirstName FROM Students • Si se quiere obtener el resultado sin que aparezcan valores duplicados, se puede usar la palabra clave DISTINCT SELECT DISTINCT m.FirstName FROM Member m
  • 60. Modificación de la BD • Borrado • Inserción • Actualizaciones
  • 61. Borrado • DELETE FROM alumno • Borra todas las tuplas de la relacion alumno • DELETE FROM alumno WHERE idAlumno = 5 • Borra la tupla identificada por el idAlumno 5. • DELETE FROM alumno_materias WHERE calificacion < 7 • Borra las tuplas de la tabla alumno_materia que tengan una calificacion menor a 7
  • 62. Inserción • INSERT INTO tabla VALUES ( ‘valor 1’, 2, ...) • INSERT INTO alumno (idAlumno, Nombre) VALUES (5, ‘Guadalupe Reyes');
  • 63. Actualizaciones • UPDATE alumno SET nombre = ‘Juan Perez’ • UPDATE alumno SET Nombre = 'Juan Pérez‘ WHERE idAlumno = 1
  • 64. Reunion de Relaciones • Inner join • Left outer join • Right outer join • Natural join
  • 70. Referencias • FUNDAMENTOS DE BASES DE DATOS Silberschatz, Korth, Sudarshan. Quinta Edición. McGraw-Hill 2006 ISBN: 84 – 481 – 4644 - 1 • Sintaxis de SELECT – http://dev.mysql.com/doc/refman/5.0/es/select.html • Avg • http://www.w3schools.com/sql/sql_func_avg.asp • Group By – http://dev.mysql.com/doc/refman/5.0/es/group-by-functions.html