Lenguajes formales

4,334 views
4,271 views

Published on

Published in: Education, Travel
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,334
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Lenguajes formales

  1. 1. INSTITUTO TECNOLOGICO SUPERIOR DE LERDO<br /><ul><li>Fundamentos de bases de datos
  2. 2. Equipo 3
  3. 3. América Nayelli Ramírez Elicerio
  4. 4. Johana Martínez
  5. 5. sayra
  6. 6. Erick pulido
  7. 7. Ángel Delgadillo
  8. 8. Manuel Gutiérrez
  9. 9. Jesús Eduardo Ibarra</li></li></ul><li>Lenguajes Formales<br />Existen varios lenguajes de consultas “puros”: el álgebra relacional es procedimental, mientras que el cálculo relacional de tuplas y el cálculo relacional de dominios no lo son.<br />
  10. 10. Estos lenguajes de consultas son rígidos y formales, y carecen del “azúcar sintáctico” de los lenguajes comerciales, pero ilustran las técnicas fundamentales para la extracción de datos de las bases de datos. <br />
  11. 11. El álgebra relacional consiste en un conjunto de operaciones que tornan una o dos relaciones corno entrada y generan otra relación nueva como resultado. <br />Se examinarán con gran detalle el lenguaje del álgebra relacional<br />
  12. 12. <ul><li>Selección
  13. 13. Proyección
  14. 14. Unión
  15. 15. diferencia de conjuntos
  16. 16. producto cartesiano</li></ul>Las operaciones fundamentales del álgebra relacional son<br />
  17. 17. <ul><li>intersección de conjuntos</li></ul>Además de las operaciones fundamentales hay otras operaciones<br />
  18. 18. <ul><li>división </li></li></ul><li>reunión natural y Asignación<br />Menú de asignación del alumnado<br />
  19. 19. Existen cinco operaciones fundamentales que a continuación se detallaran, por medio de estas se puede realizar cualquier consulta. <br />Operaciones fundamentales<br />
  20. 20. Es una operación unaria (actúa sobre una relación única). Sirve para obtener determinadas duplas de una relación, basándose en que dichas duplas cumplan un predicado determinado P. <br />Su sintaxis es la siguiente:<br />donde r es la relación sobre la que se actúa y P es el predicado que debe cumplirse. <br />1.- Selección (σ). <br />σP (r) <br />
  21. 21. Si por ejemplo tenemos la relación: <br /> estudiante = (NE, nombre, edad, dirección) y queremos seleccionar al estudiante 2249 tendremos que hacer:<br />Ejemplo:<br />σ NE =2249(estudiante) <br />
  22. 22. El predicado de selección admite los siguientes operadores relacionales: <br /> Además un predicado puede estar compuesto por varias condiciones unidas por los conectivos<br />< , ≤ , > , ≥ , = <br /> ∨ ∧<br />
  23. 23. De esta manera se seleccionarían todos los estudiantes llamados Pepe y cuya edad supere los 25 años.<br />Ejemplo:<br />σ nombre = "Pepe" ∧ edad > 25 (estudiante)<br />
  24. 24. Es también una operación unaria. Proyecta una nueva relación con un nuevo esquema en el cual aparezcan solamente los atributos que se especifican en la operación. Sintaxis: <br /> Donde A1 ,...., An es la lista de atributos y "r" la relación sobre la que se actúa.<br />2.- Proyección (Π): <br />Π A1 ,..., An(r). <br />
  25. 25. Si, por ejemplo, queremos tener toda la relación de estudiantes, pero sólo con el nombre haríamos: <br />Si quisiésemos obtener el nombre del estudiante 224: <br />Ejemplo:<br />Πnombre (estudiante) <br />Πnombre (σ NE = 2249 (estudiante)) <br />
  26. 26. Si el número de tuplas de r1 es n1, y el número de tuplas de r2 es n2, el número de tuplas de la relación obtenida será n1·n2.<br />3.- Producto Cartesiano (r1 x r2): <br />
  27. 27. Supongamos que tenemos las siguientes relaciones: <br />ejemplo<br />Cliente = (nombre_cliente, ciudad, calle) Sucursal = (nombre_sucursal, activo, ciudad) Prestamo = (num_prestamo, nombre_sucursal, nombre_cliente, importe) Deposito = (num_cuenta, nombre_sucursal, nombre_cliente, saldo) <br />
  28. 28. Si realizamos el producto cliente x préstamo, el esquema sería la unión de los esquemas:<br />(cliente.nombre_cliente, ciudad, calle, num_prestamo, nombre_sucursal, prestamo.nombre_cliente, importe) <br />
  29. 29. Como tuplas obtenemos las posibles combinaciones de tuplas de cliente con tuplas de préstamo. <br />Habrá muchas tuplas de la nueva relación en las que se cumplirá que:<br />t[cliente.nombre_cliente] ≠ t[prestamo.nombre_cliente]<br />
  30. 30. Por ello, normalmente la operación de producto cartesiano va unida a una selección que de entre todas las posibles combinaciones de tuplas selecciona las que cumplen unas condiciones.<br />
  31. 31. queremos localizar los clientes y las ciudades donde viven que tengan un préstamo.<br />Por ejemplo <br />Π prestamo.nombre_cliente, ciudad (σprestamo.nombre_cliente = cliente.nombre_cliente (cliente x prestamo))<br />
  32. 32. Actúa sobre dos relaciones uniéndolas. El resultado es, por tanto, una nueva relación con el mismo esquema que las relaciones implicadas y con un número de tuplas que es la unión de las tuplas de r1 y r2 (los elementos duplicados se desechan). <br />r1 y r2 deben tener el mismo esquema, es decir, los dominios de los atributos i-ésimos de cada uno de los esquemas debe coincidir. <br />4.- Unión de Conjuntos (r1 ∪ r2): <br />
  33. 33. En el ejemplo que estamos considerando, no podríamos hacer la unión de cliente con préstamo, pero sí sería posible hacer esto otro por ejemplo:<br />ejemplo<br />(Π nombre_cliente (cliente)) ∪ (Πnombre_cliente (prestamo)) <br />
  34. 34. Con la anterior operación obtendríamos los nombres de los clientes que tienen préstamo o no. <br /> En la práctica esta sería una operación inútil, puesto que se supone que todos los que tienen un préstamo en un banco son automáticamente clientes del banco.<br />
  35. 35. si queremos conocer los clientes que tienen en la sucursal 2 una cuenta, un préstamo, o ambas cosas, la operación a realizar sería:<br />Veamos otra unión que sería de mayor utilidad:<br />(Π nombre_cliente(σnombre_sucursal = "2" (prestamo))) ∪ <br />(Π nombre_cliente(σnombre_sucursal = "2"(deposito))) <br />
  36. 36. Es una operación binaria que da como resultado una relación con los elementos que están en r1, y no están en r2. Lógicamente r1 y r2 deben tener el mismo esquema. <br />5.- Diferencia de Conjuntos (r1 - r2): <br />
  37. 37. si por ejemplo queremos saber el nombre de los clientes que tienen un préstamo en la sucursal principal, pero que no tienen cuenta en dicha sucursal:<br />Ejemplo:<br />Πnombre_cliente(σnombre_sucursal = "Principal" (prestamo))) - (Π nombre_cliente(σnombre_sucursal = "Principal" (deposito))) <br />
  38. 38. Con las cinco operaciones definidas (operaciones fundamentales) se puede realizar cualquier consulta en álgebra relacional. Aun así, existen otras operaciones (operaciones adicionales), que facilitan algunos tipos de consulta frecuente, y que puede resultar muy tedioso el hacerlas mediante las operaciones fundamentales.<br />

×