Bases de Datos Relacionales
Upcoming SlideShare
Loading in...5
×
 

Bases de Datos Relacionales

on

  • 982 views

Breve repaso de Bases de Datos Relacionales

Breve repaso de Bases de Datos Relacionales

Statistics

Views

Total Views
982
Views on SlideShare
758
Embed Views
224

Actions

Likes
0
Downloads
49
Comments
0

1 Embed 224

http://ingenieria.uatx.mx 224

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Bases de Datos Relacionales Bases de Datos Relacionales Presentation Transcript

  • Bases de Datos Relacionales Universidad Autonóma de Tlaxcala Dr. Alberto Portilla Flores
  • Modelo relacional Notas by Dr. José Luis Zechinelli Martini
  • Introducción  El almacenamiento y la manipulación de datos ha sido una aplicación de importancia mayor desde los primeros días de las computadoras  Las aplicaciones que requieren de almacenar y recuperar datos, continúan evolucionando  Presumiblemente, las tecnologías de Gestión de Datos continuarán siendo el objeto de esfuerzos de desarrollo e innovación3
  • Características  Basado en la teoría de relaciones:  Álgebra relacional,  Calculo de predicados  SQL.  Modelo de datos simple y formal.  Alto grado de independencia física.  Lenguaje declarativo (SQL) de manipulación de datos.4
  • Conceptos (1)  Un dominio es un conjunto de valores atómicos caracterizados por un nombre: enteros, nombres, edades, ciudades, colores_primarios, etc.  Puede ser definido en intención o en extensión: enteros = lN+. enteros = {0, 1, 2, 3, …, ∞ }.5
  • Ejemplo  colores_primarios =  {rojo, verde, azul}.  nombres =  {cadenas de 20 caracteres} ó  {juan, pedro, pablo}.  enteros =  N+  {0,1,2,3, . . ., ∞}  {numeros <= 10}  {1,4,6,7}  Notas  Por cada dominio es necesario precisar su nombre y el tipo de datos.  Desde el punto de vista de la implementación se tienen dominios predefinidos. (Enteros, booleanos, etc.)6
  • Conceptos (2)  Una relación n-aria es un subconjunto de un producto cartesiano de n dominios. Sean {D1, D2, ... , Dn} un conjunto de dominios y R una relación, R D1 D2 ... Dn.  Cada elemento (v1, v2, ... , vn) R es una tupla y n es el grado de R.7
  • Relación n-aria (1/2)  Intención de una relación (esquema de relación):  Dominios: D1, D2, ..., Dn.  Constituyentes: A1, A2, ..., An donde dom(Ai) = Di con i = 1, 2, ..., n.  Nombre de relación: R regla o predicado que indica si una tupla (v1, v2, ..., vn) pertenece o no al producto cartesiano de dominios que definen la relación.  Extensión de una relación: { (v1, v2, ..., vn) D1x D2 x ... Dn R(v1, v2, ..., vn) = verdadero }.8
  • Relación n-aria (2/2)  Un esquema de relación de grado n se denota por R(A1, A2, ..., An).  Un constituyente dentro de una relación indica el rol de un dominio en una relación.  Una asignación de un D de valores a cada atributo o constituyente: Di = dom( Ai ). Ai : Di.  Una tupla en R se denota por (v1, v2, ..., vn) donde vi es el valor correspondiente al constituyente A.  Un predicado de pertenencia de tuplas a la relación: R(v1, v2, ... , vn) = verdadero.9
  • Ejemplo  D1 = Nombre  D2 = Ciudad  D3 = Ciudad  Nombre = {juan, pedro, pablo}  Ciudad = {puebla, cholula, mexico}  Calcule D=NombrexCiudadxCiudad  La tupla (n,v1,v2) E R tiene el significado:  La persona de nombre n nació en la ciudad v1 y vive en la ciudad v2.10
  • Relación n-aria: Resumen  Intención: esquema de relación R(A1, A2, ..., An) que es invariante en el tiempo.  Extensión: representa los datos presentes a un instante dado en la BD  estado de la BD.  Un valor de atributo es atómico (eventualmente nulo).  La n-tupla es una secuencia ordenada de valores de atributos.  Una relación es un conjunto de n-tuplas donde no existe noción de orden.11
  • Ejemplo R( ESCUELA, DIA, HORA, SALON, PROFESOR ) Intención:  El PROFESOR p da clases en la ESCUELA e el DIA d, a la HORA h, en la SALON s.  El dominio del constituyente HORA está definido por el conjunto de enteros comprendido entre 7 y 20.  Un profesor a una hora dada en el mismo día sólo puede estar en un salón.  Los atributos DIA, HORA y PROFESOR no pueden ser nulos.12
  • Esquema de relación (2)  Se define como una pareja R = < X, > donde X = { A1, A2, ..., An } un conjunto de constituyentes y representa parte de la semántica de la relación.  es un conjunto de restricciones de integridad.13
  • Restricciones de integridad  Una restricción de integridad es una propiedad que no varía en el tiempo.  Son un medio para asegurar que los cambios que se hacen en la base de datos por usuarios autorizados no resultan en una perdida de la coherencia de los datos.14
  • Tipos de restricciones  Restricciones de dominio: forma más elemental de restricción de integridad permiten probar valores insertados en la base.  Valores nulos: la inserción de tuplas incompletas puede introducir valores nulos en la base. Para ciertos atributos los valores nulos son inapropiados.  Llaves: por definición las tuplas de una relación son distintas entre si. El sistema debe asegurar esta unicidad.15
  • Tipos de restricciones  Estructurales: describe la manera en que los atributos se relacionan entre si.  Restricciones referenciales: describen la manera en que se relacionan las tablas. Aseguran que un valor que aparece en una relación para un conjunto de atributos aparece para un cierto conjunto de atributos en otra relación.16
  • Restricción referencial (ejemplo) ESTUDIANTE HORARIO CURSO NOMBRE CURSO MATERIA IS-341 Pedro IS-341 BD IS-417 Juan IS-417 SD17
  • Super-llave de una relación  Existe un subconjunto de atributos de una relación que permite diferenciar a las tuplas entre si. Esto quiere decir que dos tuplas no tienen la misma combinación de valores para esos atributos.  Todo conjunto de atributos que verifica esta propiedad es una super-llave del esquema.  Existes al menos una super-llave ...18
  • Llave de una relación  Una llave es un conjunto de atributos mínimo que permite identificar de manera única a una tupla.  La llave es una super-llave tal que si le quitamos un atributo entonces ya no es super-llave.  Ejemplo: R( ID, NOMBRE, APELLIDOS, FECHA )19
  • Llave extranjera: dependencias inter-relaciones  Sean R1 y R2 dos relaciones: Una llave extranjera impone que el valor de un grupo de atributos de R1 aparece como valor de llave en R2 (dependencias inter-relaciones). VIAJE( NUM_VIAJE, DESTINACION, SALIDA, LLEGADA, PRECIO ) CLIENTE( NUM_CLIENTE, NOMBRE, APELLIDOS, DIRECION ) RESERVACION( NUM_RESERVACION, NUM_VIAJE, FECHA_R, NUM_CLIENTE, OFERTA )20
  • Restricciones de integridad referencial  Expresada entre dos relaciones  Consiste en verificar que la información utilizada en una tupla para designar otra es válida, en particular si la tupla designada existe. Orden de creación o destrucción de las relaciones (tablas).21
  • Esquema relacional de bases de datos  Conjunto de esquemas de relación: S = ( R1, R2, ..., Rn )  conjunto de restricciones de integridad: (S, )  ( R1, R2, ..., Rn ) realización de un esquema relacional.22
  • ESTUDIANTE CURSO NOMBRE CIUDAD FECHAN DEPORTE IS-341 Pedro Cholula 11/10/80 Football IS-341 María Puebla 04/04/80 Natación IS-341 Julia Puebla 15/03/81 Esgrima IS-580 Juan Cholula 20/07/79 FootballHORARIOCURSO DIAS HORA MATERIA PROFESOR SALON LIBRO IS-341 MJ 13:00-13:50 BD José Luis 2102 Navathe IS-580 LMV 05:00-05:50 SBD José Luis 2245 NavatheRESULTADO NOMBRE MATERIA CALIFICACION Pedro BD 8.0 María BD 10.0 Julia BD 9.0 23
  • Ejemplo Dado tres esquemas de relación: ESTUDIANTE = <{ CURSO, NOMBRE, CIUDAD, FECHAN, DEPORTE }, 1> a) “El estudiante de NOMBRE n toma el CURSO c, habita en la CIUDAD ci, tiene por FECHA de nacimiento f y práctica el DEPORTE d”. b) CIUDAD no puede ser NULO. c) La llave primaria de la relación ESTUDIANTE es (NOMBRE). 1 = { a, b, c }24
  • Ejemplo HORARIO = <{ CURSO, DIAS, HORA, MATERIA, PROFESOR, SALON, LIBRO }, 2> d) “El PROFESOR p enseña la MATERIA s con el LIBRO l en el CURSO c los DIAS d a la HORA h en el SALON s”. e) “El número de horas de clase para cada curso es inferior a 30”. f) “Un profesor a una hora determinada sólo puede estar en un salón e impartiendo un solo curso”. = { d, e, f }25
  • Ejemplo RESULTADO = <{ NOMBRE, MATERIA, CALIFICACION }, > g) “El estudiante de NOMBRE n obtuvo la CALIFICACION c en la MATERIA m”. h) La llave primaria de la relación RESULTADO es (NOMBRE, MATERIA). = { g, h }26
  • Ejemplo Esquema relacional: (S, ) i) “El CURSO de la relación ESTUDIANTE debe existir como valor en la relación HORARIO”. j) “La MATERIA de la relación RESULTADO debe existir como valor en la relación HORARIO”. k) “Los NOMBREs de la relación RESULTADO están contenidos en el conjunto de nombres de la relación ESTUDIANTE”. ( S = {ESTUDIANTE, HORARIO, RESULTADO}, = { i, j, k } )27
  • Ejercicio a) Supongamos que se quiere agregar la siguiente tupla a la relación HORARIO: (IS-417, LMV, 08:00-08:50, Pablo, 7110, Mullender ) ¿Es está una relación del esquema HORARIO? b) ¿Es posible agregar en ESTUDIANTE la siguiente tupla? (IS-580, Alicia, México, 08/12/78, Esgrima )28
  • Modelo de datos (modelo lógico) Representación de datos Lenguaje de manipulación (esquema) (necesidades del usuario)29
  • Álgebra relacionalNotas by Dr. José Luis Zechinelli Martini
  • ¿Cómo manipular las relaciones? Álgebra relacional: colección de operadores que permiten:  La selección de tuplas en una relación;  La combinación de tuplas de relaciones diferentes. Principio:  La aplicación de uno o más operadores sobre una relación da siempre como resultado una relación (cerradura).  La información a recuperar se expresa bajo la forma de una relación obtenida por aplicación sucesiva de operadores binarios o únarios cuyos operandos son las relaciones de la BD.
  • Agencia de viajes: RUTA DEL SOLCLIENTE VIAJE NOMBRE DIRECCION DESTINACION SALIDA PRECIOJuan Cain Murray Acapulco 01/06/04 2000.00Rosario Cain Murray Veracruz 15/08/04 1000.00Pedro Ignacio BernalAmalia José Gaos HOTEL APARTAMENTOSCelia Coley Taylor NOMBRE TIPO NOMBRE TIPO FIESTA INN 4 CITADINES 3 CAMINO REAL 5 HOME LUX 5 MIRADOR 3 FIESTA INN 4RESERVACION NUMERO NOMBRE DESTINACION001 Juan Veracruz002 Juan Acapulco003 Celia Acapulco004 Amalia Acapulco
  • SelecciónClientes de ruta del sol que viven en el colegio Cain Murray:CLIENTE R NOMBRE DIRECCION NOMBRE DIRECCION Juan Cain Murray Juan Cain Murray Rosario Cain Murray Rosario Cain Murray Pedro Ignacio Bernal Amalia José Gaos Celia Coley Taylor
  • ProyecciónNombre de los clientes que tienen una reservación: RRESERVACION NUMERO NOMBRE DESTINACION NOMBRE 001 Juan Veracruz Juan 002 Celia Acapulco Celia 003 Amalia Acapulco Amalia
  • Producto cartesianoHoteles ofrecidos por ruta del sol en sus viajesHOTEL VIAJE NOMBRE TIPO DESTINACION SALIDA PRECIO FIESTA INN 4 Acapulco 01/06/03 2000.00 CAMINO REAL 5 Veracruz 15/08/03 1000.00 MIRADOR 3R NOMBRE TIPO DESTINACION SALIDA PRECIO FIESTA INN 4 Acapulco 01/06/03 2000.00 FIESTA INN 4 Veracruz 15/08/03 1000.00 CAMINO REAL 5 Acapulco 01/06/03 2000.00 CAMINO REAL 5 Veracruz 15/08/03 1000.00 MIRADOR 3 Acapulco 01/06/03 2000.00 MIRADOR 3 Veracruz 15/08/03 1000.00
  • UniónAlojamiento con el que trabaja ruta del sol en sus destinos:HOTEL APARTAMENTOS NOMBRE TIPO NOMBRE TIPO FIESTA INN 4 CITADINES 3 CAMINO REAL 5 HOME LUX 5 MIRADOR 3 FIESTA INN 4R NOMBRE TIPO FIESTA INN 4 CAMINO REAL 5 MIRADOR 3 CITADINES 3 HOME LUX 5
  • DiferenciaCadenas que trabajan con ruta del sol y que sólo ofrecen hoteles:HOTEL APARTAMENTOS NOMBRE TIPO NOMBRE TIPO FIESTA INN 4 CITADINES 3 CAMINO REAL 5 HOME LUX 5 MIRADOR 3 FIESTA INN 4 R NOMBRE TIPO CAMINO REAL 5 MIRADOR 3
  • Notación (1) Sean R(X), S(Y), T(Z) tres relaciones con: X = {X1, X2, ..., Xn} Y = {Y1, Y2, ..., Yp} Z = {Z1, Z2, ..., Zq} Las tuplas son expresadas r є R, s є S, t є T.
  • Notación (2)f es una expresión de selección tal que: Xi θ constante con θ { =, >, <, =, <=, >= } es una expresión de selección. Xi θ Xj son expresiones de selección. Si f1 y f2 son expresiones de selección, entonces f1 ^ f2, f1 v f2, ¬ f1 son expresiones de selección.
  • Operaciones de base Operación Notación ResultadoSelección R:f { r(X) r R ^ f(r) = verdadero } σ f (R)Proyección R : (A) { r(A) r R} π A (R) A XProducto R×S { t = (r, s) r R ^ s S}cartesiano Z=X YUnión R S {t t R v t S} ( n = p ^ dom(Xi) = dom(Yi) )Diferencia R–S {t t R ^ t S} ( n = p ^ dom(Xi) = dom(Yi) )
  • Ejemplos (1) Selección:  CLIENTE : DIRECCION = “Cain Murray”  σ DIRECCION = “Cain Murray” (CLIENTE) Proyección:  RESERVACION : (NOMBRE )  π NOMBRE (RESERVACION)  π NOMBRE (σ DIRECCION = “Cain Murray” (CLIENTE))
  • Ejemplos (2) Producto cartesiano:  π NOMBRE, DESTINACION (HOTEL VIAJE)  σ PRECIO < 1500 (π NOMBRE, DESTINACION (HOTEL VIAJE)) Unión: HOTEL APARTAMENTOS Diferencia:  HOTEL – APARTAMENTOS  (HOTEL APARTAMENTOS) – (σ ¬ TIPO = 3 (HOTEL APARTAMENTOS))
  • SQLNotas by Dr. Luciano García-Bañuelos
  • Estructura básica de una consultaSELECT [DISTINCT] Lista-de-atributosFROM Lista-de-relacionesWHERE Predicado-de-selección A( (R1 R2 ... Rn)) © L. García-Bañuelos 44
  • Algunos comentarios La parte SELECT indica la lista de atributos a proyectar en el resultado  La clausula opcional DISTINCT elimina tuplas duplicadas en el resultado Este es el comportamiento normal en teoría de conjuntos  El caracter * puede substituir a la lista de atributos, e indica que todos serán proyectados La parte FROM especifica una lista de relaciones sobre las cuales se calculará un producto cartesiano La parte WHERE especifica la condición de selección  Nótese que esta parte es opcional © L. García-Bañuelos 45
  • Nuestra primera consulta ¿Cuál es el nombre de los empleados que ganan más de 34000? EMP NOMBRE( sal>34000(EMP)) sal>34000 EMP NE NOMBRE PUESTO SAL 1 J. Pérez Gerente 40000 select NOMBRE 2 M. López Analista 34000 from EMP 3 A. Lira Analista 34000 where sal>34000 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 NOMBRE 6 L. Cosio Programador 24000 J. Pérez 7 R. Barco Programador 24000 J. Mirón 8 J. Aspe Gerente 40000 J. Aspe © L. García-Bañuelos 46
  • Álgebra relacional y SQL (R) select * from R where select A A(R) from R select * R S from R, S © L. García-Bañuelos 47
  • Ejemplos (1/3) EMP PROY NE NOMBRE PUESTO SAL NP NOMBRE PRESUPUESTO NG 1 J. Pérez Gerente 40000 1 Textil IS 2000000 1 8 J. Aspe Gerente 40000 2 e-Portal 2500000 1select * EMP EMP.NE=PROY.NG PROYfrom EMP, PROYwhere EMP.NE = PROY.NG NE NOMBRE PUESTO SAL NP NOMBRE PRESUPUESTO NG 1 J. Pérez Gerente 40000 1 Textil IS 2000000 1 1 J. Pérez Gerente 40000 2 e-Portal 2500000 1 © L. García-Bañuelos 48
  • Ejemplos (2/3) EMP PROY NE NOMBRE PUESTO SAL NP NOMBRE PRESUPUESTO NG 1 J. Pérez Gerente 40000 1 Textil IS 2000000 1 8 J. Aspe Gerente 40000 2 e-Portal 2500000 1select E.NOMBREfrom EMP E, PROY P select DISTINCT EMP.NOMBREwhere E.NE = P.NG from EMP, PROY where EMP.NE = PROY.NG NOMBRE NOMBRE J. Pérez J. Pérez J. Pérez Podemos asignar nombres cortos a cada relación © L. García-Bañuelos 49
  • Ejemplos (3/3) SQL provee un operador especial para buscar cadenas con expresiones regulares EMP NE NOMBRE PUESTO SAL 1 J. Pérez Gerente 40000 2 M. López Analista 34000 select NOMBRE from EMP 3 A. Lira Analista 34000 where NOMBRE like „%ez‟ 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 NOMBRE 6 L. Cosio Programador 24000 J. Pérez 7 R. Barco Programador 24000 M. López 8 J. Aspe Gerente 40000 © L. García-Bañuelos 50
  • Unión Busquemos los nombres de los gerentes de los proyectos EMP2 EMP1 NE NOMBRE PUESTO SAL NE NOMBRE PUESTO SAL 2 M. López Analista 34000 1 J. Pérez Gerente 40000 3 A. Lira Analista 34000 4 J. Mirón Consultor 40000 4 J. Mirón Consultor 40000 8 J. Aspe Gerente 40000 5 B. Cortina Ingeniero 34000 PROY NP NOMBRE PRESUPUESTO NG 1 Textil IS 2000000 1 2 e-Portal 2500000 3 © L. García-Bañuelos 51
  • Versión en SQL La siguiente consulta es una respuesta válida: select EMP1.NOMBRE from EMP1, PROY where EMP1.NE = PROY.NG UNION select EMP2.NOMBRE from EMP2, PROY where EMP2.NE = PROY.NG © L. García-Bañuelos 52
  • Intersección Busquemos ahora los nombres de los empleados que aparecen en ambas relaciones EMP1 EMP2 NE NOMBRE PUESTO SAL NE NOMBRE PUESTO SAL 1 J. Pérez Gerente 40000 2 M. López Analista 34000 4 J. Mirón Consultor 40000 3 A. Lira Analista 34000 8 J. Aspe Gerente 40000 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 select NOMBRE from EMP1 INTERSECT select NOMBRE from EMP2 © L. García-Bañuelos 53
  • Diferencia Busquemos ahora los nombres de los empleados que están en EMP1 pero no en EMP2 EMP1 EMP2 NE NOMBRE PUESTO SAL NE NOMBRE PUESTO SAL 1 J. Pérez Gerente 40000 2 M. López Analista 34000 4 J. Mirón Consultor 40000 3 A. Lira Analista 34000 8 J. Aspe Gerente 40000 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 select NOMBRE from EMP1 EXCEPT es el nombre para la EXCEPT diferencia. Algunos SGBDs select NOMBRE usan MINUS from EMP2 © L. García-Bañuelos 54
  • Consultas anidadas (operador IN) ¿Qué hace la siguiente consulta? EMP2 select * NE NOMBRE PUESTO SAL from EMP1 2 M. López Analista 34000 where NE in 3 A. Lira Analista 34000 (select EMP2.NE 4 J. Mirón Consultor 40000 from EMP2) 5 B. Cortina Ingeniero 34000 EMP1NE NOMBRE PUESTO SAL NE NOMBRE PUESTO SAL4 J. Mirón Consultor 40000 1 J. Pérez Gerente 40000 4 J. Mirón Consultor 40000 ¡Calcula la intersección 8 J. Aspe Gerente 40000 de las dos relaciones! © L. García-Bañuelos 55
  • Operador IN (2/3) También nos sirve para calcular la semireunión select * from EMP where NE in (select NG from PROY) En la consulta anidada, buscamos en PROY el conjunto de valores de NG (número de empleado del gerente de proyecto) y posteriormente seleccionamos todas las tuplas de EMP que tengan un NE en el resultado © L. García-Bañuelos 56
  • Operador IN (3/3) Con el mismo principio, calculemos la diferencia select * from EMP1 where NE NOT IN (select EMP2.NE from EMP2) © L. García-Bañuelos 57
  • Otros operadores EXISTS Regresa un valor verdadero si una subconsulta resulta en una relación no nula Operadores de comparación con conjuntos  Permiten comparar (cf. =, <, >, <=, >=, <>) un valor con las tuplas en el resultado de una consulta:  ANY Verdadero si alguno de ellos cumplen la comparación  ALL Verdadero si todos cumplen la comparación © L. García-Bañuelos 58
  • Consultas correlacionadas En los ejemplos anteriores, la subconsulta es independiente de la externa Sin embargo, es posible hacer referencia a resultados en la consulta externa select * from EMP where EXISTS (select * from PROY where PROY.NG = EMP.NE) Esta consulta calcula: EMP PROY.NG = EMP.NE PROY © L. García-Bañuelos 59
  • Operadores de agregación Se trata de operaciones aritméticas que se aplican sobre los resultados en una columna  COUNT ([DISTINCT] A) Número de valores (distintos) en la columna A  SUM ([DISTINCT] A) Suma de todos los valores (distintos) en la columna A  AVG ([DISTINCT] A) Promedio de los valores (distintos) en la columna A  MAX(A) Valor máximo de la columna A  MIN(A) Valor mínimo de la columna A © L. García-Bañuelos 60
  • Ejemplos ¿Cuantos empleados están registrados en la relación EMP? EMP NE NOMBRE PUESTO SAL select COUNT(NOMBRE) 1 J. Pérez Gerente 40000 from EMP 2 M. López Analista 34000 3 A. Lira Analista 34000 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 select COUNT(*) 6 L. Cosio Programador 24000 from EMP 7 R. Barco Programador 24000 8 J. Aspe Gerente 40000 © L. García-Bañuelos 61
  • Ejemplos ¿Cuales son los nombres de los empleados con mayor salario? select NOMBRE from EMP where salario = (select MAX(salario) from EMP) select NOMBRE from EMP ¡Una segunda alternativa where salario >= ALL usando operaciones de (select salario agregación! from EMP) © L. García-Bañuelos 62
  • Fórmulas GROUP BY y HAVING Permiten agrupar subconjuntos de tuplas, y aplicar operadores de agregación SELECT [DISTINCT] Lista-de-atributos FROM Lista-de-relaciones WHERE Predicado-de-selección GROUP BY Lista-de-grupos HAVING Calificación-sobre-el-grupo © L. García-Bañuelos 63
  • Ejemplos (1/2) ¿Cuantos empleados hay en los diferentes puestos? EMP select PUESTO, COUNT(*) NE NOMBRE PUESTO SAL from EMP 1 J. Pérez Gerente 40000 group by PUESTO 2 M. López Analista 34000 3 A. Lira Analista 34000 PUESTO COUNT(*) 4 J. Mirón Consultor 40000 Gerente 2 5 B. Cortina Ingeniero 34000 Analista 2 6 L. Cosio Programador 24000 Consultor 1 7 R. Barco Programador 24000 Ingeniero 1 8 J. Aspe Gerente 40000 Programador 2 © L. García-Bañuelos 64
  • Ejemplos (2/2) ¿Cuantos empleados hay en los diferentes puestos, con salario mayor a 30000? EMP select PUESTO, COUNT(*) NE NOMBRE PUESTO SAL from EMP 1 J. Pérez Gerente 40000 group by PUESTO 2 M. López Analista 34000 having SAL > 30000 3 A. Lira Analista 34000 4 J. Mirón Consultor 40000 PUESTO COUNT(*) 5 B. Cortina Ingeniero 34000 Gerente 2 6 L. Cosio Programador 24000 Analista 2 7 R. Barco Programador 24000 Consultor 1 8 J. Aspe Gerente 40000 Ingeniero 1 © L. García-Bañuelos 65
  • Concepción de bases de datos Notas by Dr. José Luis Zechinelli Martini
  • Objetivos del modelado Permitir una mejor comprensión:  Sistemas reales demasiado complejos.  Abstracción de los aspectos cruciales del problema.  Omisión de detalles. Permitir una concepción progresiva:  Abstracción y refinamiento sucesivos.  Posibilidad de implementar rápidamente.  Organización en módulos o vistas.  Generación de las estructuras de datos y de sus tratamientos. Facilitar la visualización del sistema:  Diagramas con notaciones simples y precisas.  Comprensión visual y no solamente intelectual.
  • Pasos de la concepciónCinco etapas: Percepción del mundo real. Elaboración del esquema conceptual. Concepción del esquema lógico. Afinación del esquema lógico. Elaboración del esquema físico.
  • 1.- Percepción del mundo realEsta etapa consiste en: Estudiar los problemas de los usuarios y comprender sus necesidades. Realizar entrevistas. Analizar la información y los procesos propios de una aplicación. Estudiar los casos parciales (en caso de tener problemas al entender el problema completo). Resultado: esquemas externos. Se requiere utilizar procesos de tipo negocios, reingeniería y de modelado de problemas (ingeniería de software, economía, psicología).
  • 2.- Elaboración del esquema conceptual Integración de los esquemas externos de la etapa precedente en un esquema conceptual:  global,  no redundante,  Coherente. Ida y regreso con la etapa anterior. Resultado: un esquema conceptual (ER, UML).
  • 3.- Concepción del esquema lógico Transformación del esquema conceptual en estructuras de datos soportados por el SGBD elegido:  Relaciones (sistemas relacionales).  Relaciones + tipos (sistemas objeto relacional).  Clases y asociaciones (sistemas orientado a objetos). Resultado: un esquema lógico (etapa automatizable).
  • 4.- Refinamiento del esquema lógico El esquema lógico es un buen esquema:  Sin olvidos.  Ni redundancia de información. Resultado: un esquema lógico en buena forma.
  • 5.- Elaboración del esquema físicoObtener un buen desempeño: Transacciones (identificar los patrones de acceso y de modificaciones frecuentes). Indexación. Reagrupar, dividir, replicar.