CM-217 Programacion de Computadoras I

100
 Programación de Computadoras I Ing. Daniel De Santiago

description

Introduccion a Base de Datos, Modelos de Datos, Algebra Relacional y SQL

Transcript of CM-217 Programacion de Computadoras I

Page 1: CM-217 Programacion de Computadoras I

   

Programación de Computadoras I

Ing. Daniel De Santiago

Page 2: CM-217 Programacion de Computadoras I

   This work is licensed under the Creative Commons Attribution­Noncommercial­Share Alike 2.5 Mexico License. To view a copy of this license, visit http://creativecommons.org/licenses/by­nc­sa/2.5/mx/ or send a letter to Creative 

Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Eres Libre de:

Bajo las Condiciones Siguientes:

Copiar, distribuir, y comunicar públicamente la obra Hacer obras derivadas

Atribución. Debes reconocer la autoría de la obra en los términosespecificados por el propio autor o licenciante.

No comercial. No puedes utilizar esta obra para fines comerciales.

Licenciamiento Recíproco. Si alteras, transformas o creas una obra a partir de esta obra, solo podrás distribuir la obra resultante bajo una licencia igual a ésta.

Page 3: CM-217 Programacion de Computadoras I

   

Tema“Base de Datos”

Modelos de Datos

Page 4: CM-217 Programacion de Computadoras I

   

Introducción Base de Datos Una Base de Datos (BD) es una colección de 

datos relacionados que representa un cierto modelo o abstracción del mundo real (algunas veces llamado el mini­mundo). Los cambios en este mini­mundo son reflejados en la base de datos. 

Una base de datos es diseñada, construida y llenada con datos para un propósito específico. Tiene un grupo de usuarios particular, y algunas aplicaciones pre­establecidas en las cuales estos usuarios están interesados.

Page 5: CM-217 Programacion de Computadoras I

   

Introducción BD

EL uso de las BD es contrario al enfoque tradicional, en que cada sistema maneja sus propios datos y archivos. Al usar BD, todos los datos se almacenan en forma integrada, y están sujetos a un control centralizado. Las diversas aplicaciones operan sobre este conjunto de datos.

Page 6: CM-217 Programacion de Computadoras I

   

Introducción BD

Consideremos el siguiente ejemplo: Se desea almacenar la información de los alumnos de esta escuela, con los ramos que inscriben cada semestre y sus respectivas notas. Estos datos se pueden almacenar en una matriz, fijando un máximo de cursos que pueden inscribir cada semestre. La siguiente tabla muestra el enfoque tradicional.

Page 7: CM-217 Programacion de Computadoras I

   ...

4.2MA11ARCC10

ARFI10A97/2José Tapia672680

RCC31B4,5MA37

A6,2CC31A97/2Luis 

González353090

EMA26A5.7SD20ARMA33

A97/2Juan Pérez654564

......

*MA11A*CC10

A*FI10A97/1José Tapia672680

5.5CC30A4,6MA34

ARFI33A97/1Luis Gonzalez353090

4.3QI21A4.2MA22A4.5FI21A97/1Juan Pérez654564

..

.Nota3

Curso 3

Nota 2

Curso 2

Nota 1

Curso 1

SemestreNombreMat

Page 8: CM-217 Programacion de Computadoras I

   

Introducción BD

Describir las desventajas:

Page 9: CM-217 Programacion de Computadoras I

   

Modelos de Datos 

Un modelo de datos es un conjunto de conceptos que pueden ser usados para describir la estructura de una BD.

Conceptos de una Estructura de una BD: tipos de datos las relaciones que existen entre los datos las restricciones que existen entre los datos

Page 10: CM-217 Programacion de Computadoras I

   

Modelos de Datos La siguiente figura muestra los tipos de modelos de 

datos.

Page 11: CM-217 Programacion de Computadoras I

   

Modelo de Datos Físicos

El modelo de datos físico se usa para describir datos en un nivel más bajo

Dos de los más conocidos son el modelo de unificación y el modelo de memoria de marcos

Este tipo de modelos no serán tema de estudio

Page 12: CM-217 Programacion de Computadoras I

   

Modelo Lógicos basados en Objetos

Parten de mundo real delimitando el entorno del sistema y dentro de este entorno identifican los objetos de interés

Se utilizan para describir los datos en los niveles lógico y de visión, y especifican claramente las ligaduras de consistencia de los datos

Como ejemplos de este grupo están el modelo entidad­relación y el modelo orientado a objetos

Page 13: CM-217 Programacion de Computadoras I

   

Modelo Entidad­Relación

Se basa en la percepción de un mundo real que consiste en un conjunto de objetos básicos llamados entidades, y de las relaciones entre estos objetos.

persona automóvil accidenteposee ocurrió

kilometraje

modelo conductor

fecha importeañonombre

ci

domicilio

Page 14: CM-217 Programacion de Computadoras I

   

Modelo Orientado a Objetos

Está basado en una colección de objetos agrupados en clases.

Una clase describe un conjunto de objetos que comparten los mismos atributos, operaciones,  relaciones y semántica

Valor

valorActual()historia()

CuentaCorrientetasaIeInterésValorActual()

Acción

valorActual()

Bono

valorActual()

PropiedadtasaciónvalorActual()

Page 15: CM-217 Programacion de Computadoras I

   

Modelos Lógicos basados en Registros

Se usan para describir los datos en los niveles lógico y de visión

Se usan tanto para especificar la estructura lógica completa de la base de datos como para una descripción de alto nivel.

A diferencia de los modelos basados en registros, no describen muy bien las ligaduras de consistencia de la base de datos

Page 16: CM-217 Programacion de Computadoras I

   

Modelo de Red

Se representa por un conjunto de registros y las relaciones entre ellos por punteros

5 Escobas

10 Sardinas

25 Café

35 Pasas

10 1 10 10                          

35 1 10 5                          

25 2 2 20                          

25 1 1 20                          

10 1 5 10                          

10 2 20 10                          

Page 17: CM-217 Programacion de Computadoras I

   

Modelo Jerárquico

Igual que el de Red pero en forma de Árbol

5 Escobas

10 Sardinas

25 Café

35 Pasas

10 1 10 10                          

35 1 10 5

25 2 2 20

25 1 1 20

10 1 5 10

10 2 20 10

Page 18: CM-217 Programacion de Computadoras I

   

El Modelo Relacional  Este modelo considera la BD como una 

colección de relaciones.

Los sistemas relacionales son importantes porque ofrecen muchos tipos de procesos de datos, como:

Simplicidad Generalidad Facilidad de uso para el usuario final Períodos cortos de aprendizaje Las consultas de información se especifican de 

forma sencilla.

Page 19: CM-217 Programacion de Computadoras I

   

El Modelo Relacional

Las Tablas son un medio de representar la información de una forma más compacta y es posible accesar a la información contenida en dos o más tablas.

Cada fila de la tabla se le denomina Tupla.

Page 20: CM-217 Programacion de Computadoras I

   

El Modelo Relacional

Las bases de datos relacionales están constituidas por una o más tablas que contienen la información ordenada de una forma organizada

       Artículos Movimientosnro_artí nombre nro_artí tipo cant pre_unit

5 Escobas10 Sardina25 Café35 Pasas

10 1 10 1010 2 20 1010 1 5 1010 1 2 1025 1 1 2025 2 2 2025 1 2 535 1 10 5

Page 21: CM-217 Programacion de Computadoras I

   

El Modelo Relacional La BD Relaciones cumplen las siguientes leyes 

básicas: Generalmente, contendrán muchas tablas. Una tabla sólo contiene un número fijo de campos. El nombre de los campos de una tabla es distinto. Cada registro de la tabla es único. El orden de los registros y de los campos no está 

determinados. Para cada campo existe un conjunto de valores 

posible 

Page 22: CM-217 Programacion de Computadoras I

   

Tema“Algebra Relacional”

Operadores y Operandos de un Modelo Relacional

Page 23: CM-217 Programacion de Computadoras I

   

Introducción

Un lenguaje de consulta es un lenguaje con el que el usuario solicita información de la base de datos: se construye una expresión que contesta interrogantes sobre la instancia actual de la base.

En este tema se estudiará la cuestión de las consultas desde una perspectiva abstracta, presentando los principales operadores estándar que se han definido en el Modelo Relacional

Se vera un lenguaje puro que es rígido y formal, pero que ilustra las técnicas fundamentales para la extracción de la información: el Algebra Relacional

Page 24: CM-217 Programacion de Computadoras I

   

Conceptos Básicos

Una Base de Datos Relacional muestra las tablas en forma de filas y columnas

Dominio.­ Es el conjunto de todos los valores permitidos que una columna puede tomar. Se tiene D1,D2,...,Dn, si tenemos n columnas.

ciudad (nro_ciudad  nom_ciudad)

a1 La Paza5 Santa Cruza6 Tarijaa9 Potosí

Page 25: CM-217 Programacion de Computadoras I

   

Conceptos Básicos

Producto cartesiano.­ De lo anterior se tiene v1∈D1,v2∈D2, ... , vn∈Dn, porque cada elemento está en el dominio respectivo. En matemáticas podemos decir que la tupla es un elemento del producto cartesiano de los dominios:

(v1,v2,....,vn)∈(D1xD2x.....xDn) =Xi=1,n(Di)

Tupla.­ Cada una de las filas de una tabla se compone de n elementos (V1,V2,..,Vn). En matemáticas este conjunto ordenado de elementos se llama tupla

Page 26: CM-217 Programacion de Computadoras I

   

Conceptos Básicos

Relación.­ Es un subconjunto del producto cartesiano de una lista de dominios, no necesariamente disjuntos

Es por esto que en el álgebra relacional se denomina relación a una tabla y tupla a un fila de tabla.

Page 27: CM-217 Programacion de Computadoras I

   

Símbolos del Lenguaje Los símbolos básicos del lenguaje son: símbolos de puntuación: paréntesis "(", ")" y coma ",". símbolos de variables: se representan mediante letras minúsculas 

del final del alfabeto: r, s, t, u, v, w, x, y, z. símbolos de constantes: se representan mediante letras minúsculas 

del principio del alfabeto: a, b, c, d, e. símbolos de funciones: también se representan con letras 

minúsculas, pero del centro del alfabeto: f, g, h, i .. símbolos de predicados: se representan mediante letras 

mayúsculas. operadores lógicos: ¬ (negación),   (implicación), → ∨ (conjunción) y 

∧ (disyunción). cuantificadores: ∀ (cuantificador universal) y ∃ (cuantificador 

existencial).

Page 28: CM-217 Programacion de Computadoras I

   

Símbolos del Lenguaje

La jerarquía en la precedencia de los operadores y cuantificadores es (de mayor a menor):

1) ¬, ∀ , ∃ 2) ∨ 3) ∧ 4) → Dicha precedencia se puede alterar utilizando los 

paréntesis. Los operadores   y→ ∧ y el cuantificador ∀ se introducen 

en el lenguaje por conveniencia, ya que en realidad no son necesarios pues: F   G   ( ¬F )→ ≡ ∨G ∀x(F)   ¬≡ ∃x(¬F) F∧G   ¬( ¬F≡ ∨¬G )

Page 29: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Las operaciones de álgebra relacional manipulan relaciones. Esto significa que estas operaciones usan uno o dos relaciones existentes para crear una nueva relación. Esta nueva relación puede entonces usarse como entrada para una nueva operación

Page 30: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

El álgebra relacional consta de nueve operaciones:

Unión  Intersección  Diferencia  Producto  Selección  Proyección  Reunión  División  Renombrar 

Page 31: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Unión (∪) La operación de unión permite combinar datos de 

varias relaciones. Supongamos que una determinada empresa internacional posee una tabla de empleados para cada uno de los países en los que opera. Para conseguir un listado completo de todos los empleados de la empresa tenemos que realizar una unión de todas las tablas de empleados de todos los países.

No siempre es posible realizar consultas de unión entre varias tablas, para poder realizar esta operación es necesario e imprescindible que las tablas a unir tengan las mismas estructuras, que sus campos sean iguales.

Page 32: CM-217 Programacion de Computadoras I

   

Operación Union ­ ∪

Ejemplo:  Teniendo dos relaciones R y S, R∪S, es el 

conjunto de tuplas que pertenecen a R, a S o a ambas. R y S deben tener esquemas con conjuntos idénticos de atributos

Page 33: CM-217 Programacion de Computadoras I

   

Operación Union, ∪

Juan Díaz C/Pez,10    9­9­62Ana Gómez C/Luna,3    8­3­58

Nombre Dirección    Fecha Nombre Dirección    Fecha

Juan Díaz C/Pez,10    9­9­62Luis Díaz C/ Sol, 5     8­5­67

Juan Díaz C/Pez,10 9­9­62Ana Gómez C/Luna,3 8­3­58Luis Díaz C/ Sol, 5 8­5­67

Nombre Dirección Fecha

R S

R∪S

Page 34: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Diferencia (­) La operación diferencia permite identificar filas 

que están en una relación y no en otra. Tomando como referencia el caso anterior, deberíamos aplicar una diferencia entre la tabla R y la tabla S para saber aquellas personas que no están en las dos tablas

Page 35: CM-217 Programacion de Computadoras I

   

Operación Diferencia, − 

Ana Gómez C/Luna,3 8­3­58

Nombre Dirección Fecha

R−S

La diferencia de dos relaciones R y S,      R ­ S, es el conjunto de tuplas de R que no pertenecen a S. R y S deben tener esquemas con conjuntos idénticos de atributos

Page 36: CM-217 Programacion de Computadoras I

   

Intersección (∩)

La operación de intersección permite identificar filas que son comunes en dos relaciones

Al igual que la operación Union, para poder realizar esta operación es necesario e imprescindible que las tablas a unir tengan las mismas estructuras, que sus campos sean iguales.

Las Operaciones del Algebra Relacional

Page 37: CM-217 Programacion de Computadoras I

   

Intersección ­ ∩

Equivalencia R∩S   ( R − ( R − S) )≡

Juan Díaz C/Pez,10 9­9­62R∩S

Page 38: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Producto (x) La operación producto consiste en la 

realización de un producto cartesiano entre dos tablas dando como resultado todas las posibles combinaciones entre los registros de la primera y los registros de la segunda. Esta operación se entiende mejor con el siguiente ejemplo:

Page 39: CM-217 Programacion de Computadoras I

   

Operación Producto Cartesiano, ⨯

Sean R y S dos relaciones de grado m y n, respectivamente. El producto cartesiano, R⨯S, es una relación de grado m + n formada por todas las posibles tuplas en las que los m primeros elementos constituyen una tupla de R y los n últimos una tupla de S

Page 40: CM-217 Programacion de Computadoras I

   

Operación Producto Cartesiano, ⨯

R A B1 23 4

S B C D2 5 64 7 89 10 11

RXS A R.B S.B C D1 2 2 5 61 2 4 7 81 2 9 10 113 4 2 5 63 4 4 7 83 4 9 10 11

Page 41: CM-217 Programacion de Computadoras I

   

Operación Producto Cartesiano, ⨯

10042

98372511

54332210

ZWYX

Tabla BTabla A

El producto de A * B daría como resultado la siguiente tabla:

Page 42: CM-217 Programacion de Computadoras I

   

Operación Producto Cartesiano, ⨯

100422511

98372511

54332511

100422210

98372210

54332210

Tabla A * Tabla B

Page 43: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Selección (σ) Por medio de esta operación se posibilita la 

selección de un subconjunto de tuplas de una relación que corresponden a una condición (columnaOPERADORvalor) determinada

El grado (total de columnas de la Relación), se conserva

Page 44: CM-217 Programacion de Computadoras I

   

Operación Selección, σ

Formato de Uso: σ (condición) (RELACION) σF(R)

Esta operación es la que normalmente se conoce como consulta.

En este tipo de consulta se emplean los diferentes operadores de comparación (=,>, <, >=, <=, <>)

Y los operadores lógicos: ∧(and),∨(or), ¬ (not)

Page 45: CM-217 Programacion de Computadoras I

   

Operación Selección, σ

Entonces, la selección, σF(R), es el 

conjunto de tuplas t de R tales que, cuando para todo i sustituimos el i­ésimo componente de t por la ocurrencia correspondiente en F, la fórmula es verdadera

Page 46: CM-217 Programacion de Computadoras I

   

Operación Selección, σ

Juan Díaz C/Pez,10 9­9­62Ana Gómez C/Luna,3 8­3­58Luis Díaz C/ Sol, 5 8­5­67

Nombre Dirección Fecha

La fórmula es F = Nombre > “B”

Juan Díaz C/Pez,10 9­9­62Luis Díaz C/ Sol, 5 8­5­67

Nombre Dirección Fechaσ

F(R)

R

Page 47: CM-217 Programacion de Computadoras I

   

Ejemplos Selección, σPERSONACedula Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario

71134534 Juan Mesa Uribe M Cra 25 22­1 2567532 1,600,000

23423445 Betancur Bermudez F Cra 45 11­13 3433444 1,300,00012453535 Gloria Garces F Tr. 12 43­5 2756533 1,700,00075556743 Pedro Ochoa Pelaez M Cll.6ta 14­45 2686885 1,200,00043533322 Patricia Angel Guzmán F Cll. 45 23­1 2674563 1,350,00078900456 Carlos Betancur Agudelo M Cir. 5 12­5 4445775 1,500,000

Ana María

Betancur 

Page 48: CM-217 Programacion de Computadoras I

   

Ejemplos Selección, σ

Muestra el resultado de las siguientes selecciones: σcedula = 71134534 (PERSONA)

σsexo = "F"(PERSONA)

σ(primer_apellido = "Bentancur") ∧ (sexo ="F") (PERSONA)

σsexo = "M") ∨ (salarios >= 1,350,000) (PERSONA)

Page 49: CM-217 Programacion de Computadoras I

   

Ejemplos Selección, σ

Resultado:Cedula Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario

71134534 Juan Mesa Uribe M Cra 25 22­1 2567532 1,600,000

σcedula = 71134534 (PERSONA)

Resultado:Cedula Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario

23423445 Betancur Bermudez F Cra 45 11­13 3433444 1,300,00012453535 Gloria Betancur Garces F Tr. 12 43­5 2756533 1,700,000

σsexo = "F"(PERSONA)

Ana María

Page 50: CM-217 Programacion de Computadoras I

   

Ejemplos Selección, σ

Resultado:Cedula Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario

23423445 Betancur Bermudez F Cra 45 11­13 3433444 1,300,00012453535 Gloria Betancur Garces F Tr. 12 43­5 2756533 1,700,000

σ(primer_apellido = "Bentancur") ∧ (sexo ="F") (PERSONA)

Ana María

Resultado:Cedula Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario

71134534 Juan Mesa Uribe M Cra 25 22­1 2567532 1,600,00012453535 Gloria Garces F Tr. 12 43­5 2756533 1,700,00075556743 Pedro Ochoa Pelaez M Cll.6ta 14­45 2686885 1,200,00043533322 Patricia Angel Guzmán F Cll. 45 23­1 2674563 1,350,00078900456 Carlos Betancur Agudelo M Cir. 5 12­5 4445775 1,500,000

σsexo = "M") ∨ (salarios >= 1,350,000) (PERSONA)

Betancur 

Page 51: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Proyección ()  Una proyección es una selección en la que 

seleccionamos aquellos campos que deseamos recuperar. Tomando como referencia el caso de la operación selección es posible que lo único que nos interese recuperar sea el número de seguro social, omitiendo así los campos teléfono, dirección, etc.. Este último caso, en el que seleccionamos los campos que deseamos, es una proyección.

Page 52: CM-217 Programacion de Computadoras I

   

Operación Proyección, 

Formato de Uso: <lista de atributos>(Relación)

(x)(R)

Ejemplos:

La proyección, X(R), donde R es una 

relación definida sobre el conjunto de atributos T y X   T⊆ , es una relación constituida por las columnas de R correspondientes a los atributos de X

Page 53: CM-217 Programacion de Computadoras I

   

Operación Proyección, 

Juan Díaz C/Pez,10 9­9­62Ana Gómez C/Luna,3 8­3­58Luis Díaz C/ Sol, 5 8­5­67

Nombre Dirección Fecha

Juan Díaz 9­9­62Ana Gómez 8­3­58Luis Díaz 8­5­67

Nombre Fecha

R

, nombre fecha de Nacimiento

(R)

Page 54: CM-217 Programacion de Computadoras I

   

Ejemplos Proyección, 

PERSONACedula Nombre Primer_Apellido Segundo_Apellido Sexo Dirección Telefono Salario71134534 Juan Mesa Uribe M Cra 25 22­1 2567532 1,600,00023423445 Ana María Betancur Bermudez F Cra 45 11­13 3433444 1,300,00012453535 Gloria Garces F Tr. 12 43­5 2756533 1,700,00075556743 Pedro Ochoa Pelaez M Cll.6ta 14­45 2686885 1,200,00043533322 Patricia Angel Guzmán F Cll. 45 23­1 2674563 1,350,00078900456 Carlos Betancur Agudelo M Cir. 5 12­5 4445775 1,500,000

Betancur 

Page 55: CM-217 Programacion de Computadoras I

   

Ejemplos Proyección, 

Muestre el resultado de las siguientes proyecciones:

cedula, nombre, primer_apellido, segundo_apellido (PERSONA)

cedula, salario (PERSONA)

cedula, nombre, salario (σ (sexo = "M")∨(salario >= 1,350,000) 

(PERSONA))

Page 56: CM-217 Programacion de Computadoras I

   

Ejemplos Proyección, 

ResultadoCedula Nombre Primer_Apellido Segundo_Apellido71134534 Juan Mesa Uribe23423445 Ana María Betancur Bermudez12453535 Gloria Garces75556743 Pedro Ochoa Pelaez43533322 Patricia Angel Guzmán78900456 Carlos Betancur Agudelo

, , , cedula nombre primer_apellido segundo_apellido

( )PERSONA

Betancur 

Resultado:Cedula Salario71134534 1,600,00023423445 1,300,00012453535 1,700,00075556743 1,200,00043533322 1,350,00078900456 1,500,000

, cedula salario

( )PERSONA

Page 57: CM-217 Programacion de Computadoras I

   

Ejemplos Proyección, 

Resultado:Cedula Nombre Salario71134534 Juan 1,600,00012453535 Gloria 1,700,00075556743 Pedro 1,200,00043533322 Patricia 1,350,00078900456 Carlos 1,500,000

, , cedula nombre salario

(σ ( = " ")sexo M ∨( >= , , ) salario 1 350 000

( ))PERSONA

Page 58: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Reunión (Join) θ La reunión se utiliza para recuperar datos a 

través de varias tablas conectadas unas con otras mediante cláusulas JOIN. La operación reunión se puede combinar con las operaciones selección y proyección

Page 59: CM-217 Programacion de Computadoras I

   

Operador Reunion, θ

Ejemplo: La θ­union  de R y S, donde θ se refiere a una condición arbitraria sobre los atributos de R y S, que representaremos por C, R|><|C S, se construye como: Se forma el producto cartesiano R y S Se selecciona, en el producto, solo la tupla 

que cumplan la condición C

Page 60: CM-217 Programacion de Computadoras I

   

Operador Reunion, θ

4532

1923

7531

DCBA ECA

732

293

951

251

R S

Page 61: CM-217 Programacion de Computadoras I

   

Operador Reunion, θ

La condición es C = A >= E

2934532

2514532

2931923

2511923

ES.CS.ADCBAR|><|CS

Page 62: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Reunion Natural (Join Natural) Sean R y S dos relaciones con uno o mas 

atributos en común. La reunion natural, R|><|S, se calcula del modo siguiente:

Se calcula el producto cartesiano R x S Para cada atributo Ai común, se seleccionan 

las filas en las que el valor R.Ai coinciden con el valor de S.Ai

Realizada la selección, eliminar la columna S.Ai

Page 63: CM-217 Programacion de Computadoras I

   

Operador Reunion Natural

4532

1923

7531

DCBAR

732

293

951

251

ECAS

21923

97531

27531

EDCBAR |><| S

Page 64: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

División ÷ Operación del álgebra relacional que crea una 

nueva relación, seleccionando las filas en una relación que se corresponden con todas las filas en otra relación. 

Page 65: CM-217 Programacion de Computadoras I

   

Operador Division, ÷

Sean R y S relaciones de grado r y s, respectivamente, donde r > s y S≠∅. Entonces, el cociente, R÷S, es el conjunto de tuplas t de grado (r­s), tales que para toda tupla u de S, la tupla (t, u) esta en R. En términos de operaciones básicas:R ÷ S     ≡ π

1,2,...,r­s (R) −   π

1,2,...,r­s ((  π

1,2,...,r­s (R) × S) − R)

Page 66: CM-217 Programacion de Computadoras I

   

Operador Division, ÷

7231

7221

1823

9534

5321

DCBAR

72

53

DCS

21

BAR ÷ S

Page 67: CM-217 Programacion de Computadoras I

   

Las Operaciones del Algebra Relacional

Renombrar () Dada la relación R, el renombrado de R a S, 

S(R), es una relación que tiene exactamente 

las mismas tuplas y los mismos atributos que R, sólo que el nombre de la relación es S

Page 68: CM-217 Programacion de Computadoras I

   

Operador Renombrar, 

R A B1 23 4

A B1 23 4

S( )R

Page 69: CM-217 Programacion de Computadoras I

   

Tema“Structured Query 

Language”Breve introducción al SQL

Page 70: CM-217 Programacion de Computadoras I

   

SQL (Structured Query Language

El lenguaje SQL (Structured Query Language, "Lenguaje de Consulta Estructurado") es una evolución del lenguaje SEQUEL (structured english query language) desarrollado en IBM.

El SQL se encuentra normalizado por el Instituto Americano de Normalización (ANSI) y fue construido en principio como un lenguaje algebraico, enriqueciéndose más tarde con funciones predicativas

Page 71: CM-217 Programacion de Computadoras I

   

Características

El SQL es manejable bajo dos modalidades distintas: como módulo interactivo que proporciona un potente lenguaje de consultas interpretadas y como lenguaje huésped de un lenguaje anfitrión.

Respeta la independencia entre el nivel conceptual y las aplicaciones (nivel externo), ya que permite la creación de esquemas externos personalizados.

Garantiza una seguridad total de acceso a los datos, gracias a una distribución selectiva de prioridades de acceso.

Page 72: CM-217 Programacion de Computadoras I

   

Características

Garantiza la independencia entre el nivel conceptual y el nivel interno. El usuario no nota la presencia de un índice, es asunto del administrador el conseguir la optimización de las ejecuciones.

Permite la gestión multiusuario de los datos. Cada fila a la que se accede para su modificación queda automáticamente bloqueada por el sistema. En particular, el SQL contiene el concepto de transacción, que permite restaurar el estado anterior de la BD en caso de anomalías.

Independencia de los vendedores. El SQL es ofertado por los principales vendedores. Los programas que lo utilizan pueden transferirse de un sistema de gestión de BD a otro con mínimo esfuerzo de conversión.

Page 73: CM-217 Programacion de Computadoras I

   

Estructura del Lenguaje

La estructura del lenguaje SQL contiene un limitado número de verbos o palabras clave, distribuidos en tres grandes grupos funcionales: DDL – Data Definition Language (lenguaje de 

descripción de datos) DML – Data Manipulation Language (lenguaje 

de manipulación de datos) DCL – Data Control Language (lenguaje de 

control de datos)

Page 74: CM-217 Programacion de Computadoras I

   

Estructura del Lenguaje

DDL: Permite la descripción de la estructura de la BD (tablas, vistas, índices,...)

DML: Permite el manejo de las tablas y las vistas mediante sus cuatro verbos, correspondientes a las cuatro operaciones fundamentales sobre los datos.

DCL: Contiene los operadores para la gestión de transacciones (COMMIT y ROLLBACK) y prioridades de acceso a los datos (GRANT y REVOKE)

Page 75: CM-217 Programacion de Computadoras I

   

Estructura del Lenguaje

DDL

CREATEDROPALTER

DML

SELECTINSERTDELETEUPDATE

DCL

GRANTREVOKECOMMIT

ROLLBACK

Los Comandos mas importantes son:

Page 76: CM-217 Programacion de Computadoras I

   

Consulta de Datos con SQL

El DQL ­ Data Query Language (lenguaje de consulta de datos) forma parte del lenguaje DML de SQL. El único comando que pertenece a este lenguaje es el versátil comando SELECT. Este comando permite: Obtener datos de ciertas columnas de una 

tabla (proyección)

Page 77: CM-217 Programacion de Computadoras I

   

Consulta de Datos con SQL

Obtener registros (filas) de una tabla de acuerdo con ciertos criterios (selección)

Mezclar datos de tablas diferentes (union, join)

Realizar cálculos sobre los datos Agrupar datos

Page 78: CM-217 Programacion de Computadoras I

   

Sintaxis sencilla del Select

SELECT * | { [DISTINCT] columna | expresión [[AS] alias] , }FROM tabla;

* . El asterisco significa que se seleccionan todas las columnasDISTINCT. Hace que no se muestren los valores duplicadoscolumna. Es el nombre de la columna de la tabla que se desea mostrarexpresión. Una expresión valida SQLalias. Es el nombre que se le da a la cabecera de la columna en el resultado de esta instrucción

Page 79: CM-217 Programacion de Computadoras I

   

Sintaxis sencilla del Select

Ejemplos: Selección de todos los registros de la tabla 

clientes: SELECT * FROM Clientes;

Selección de algunos campos SELECT nombre, apellido1, apellido2 FROM 

Clientes

Page 80: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

El comando SELECT permite implementar de forma exacta todas las consultas del álgebra relacional

La proyección () se implementa así:

nombre, apellido

(Cliente)

La proyección en SQL se escribe como:SELECT nombre, apellido FROM Cliente;

Page 81: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

La selección (σ) se implementa usando la clausula WHERE. Por ejemplo:  σ

nombre=”Pepe” ∧ edad > 25(Cliente)

En SQL se escribiría así:

SELECT * FROM Cliente WHERE nombre='Pepe and edad > 25

Page 82: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

En la clausula WHERE se pueden utilizar los siguientes operadores de comparación >, <, >=, <=, =, <>

Y los operadores lógicos AND, OR, NOT

Page 83: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

Ejemplos: /* Obtiene a las personas entre 25 y 50 años 

de edad */

SELECT nombre, apellido FROM Personas WHERE edad>=25 AND edad<=50;

/* Obtiene a las personas de mas de 60 años o de menos de 20 años */

SELECT nombre, apellido FROM Personas WHERE edad>60 or edad<20;

Page 84: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

El Producto Cartesiano (R X S) se implementa en SQL así: SELECT * FROM R, S

Ejemplo: Teniendo dos tablas una llamada Películas y otra Estudio. El Producto Cartesiano se escribiría así: Algebra relacional → Película x Estudio SQL → SELECT * FROM Película, Estudio

Page 85: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

Película Estudio

ID_Película Nombre Año ID_Estudio ID_Estudio Nombre1 La guerra de las galaxias 1977 3 1 Ghibli2 La comunidad del anillo 2001 2 2 New Line Cinema3 Mar adentro 2004 4 3 Lucasfilms4 El viaje de Chihiro 2001 1 4 Sogecine

Page 86: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

Película x EstudioID_Película Nombre Año ID_Estudio ID_Estudio Nombre

1 La guerra de las galaxias 1977 3 1 Ghibli1 La guerra de las galaxias 1977 3 2 New Line Cinema1 La guerra de las galaxias 1977 3 3 Lucasfilms1 La guerra de las galaxias 1977 3 4 Sogecine2 La comunidad del anillo 2001 2 1 Ghibli2 La comunidad del anillo 2001 2 2 New Line Cinema2 La comunidad del anillo 2001 2 3 Lucasfilms2 La comunidad del anillo 2001 2 4 Sogecine3 Mar adentro 2004 4 1 Ghibli3 Mar adentro 2004 4 2 New Line Cinema3 Mar adentro 2004 4 3 Lucasfilms3 Mar adentro 2004 4 4 Sogecine4 El viaje de Chihiro 2001 1 1 Ghibli4 El viaje de Chihiro 2001 1 2 New Line Cinema4 El viaje de Chihiro 2001 1 3 Lucasfilms4 El viaje de Chihiro 2001 1 4 Sogecine

Page 87: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

La operación Reunion (Join) R|><|C S en SQL se escribe: SELECT * FROM R, S WHERE R.c = S.c

Usando las tablas anteriores SELECT * Película, Estudio WHERE 

Pelicula.ID_Estudio = Estudio.ID_Estudio

Page 88: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

Película |><| EstudioID_Película Nombre Año ID_Estudio ID_Estudio Nombre

1 La guerra de las galaxias 1977 3 3 Lucasfilms2 La comunidad del anillo 2001 2 2 New Line Cinema3 Mar adentro 2004 4 4 Sogecine4 El viaje de Chihiro 2001 1 1 Ghibli

Page 89: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

El operador Renombrar () permite cambiar el nombre de la relación, para diferenciar atributos del mismo nombre.

SQL proporciona un mecanismo para renombrar tanto relaciones como atributos. Para ello utiliza la cláusula AS, que tiene la forma siguiente: SELECT * nombre­antiguo AS nombre­nuevo

Page 90: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

Las operaciones de SQL UNION, INTERSECT y EXCEPT operan sobre relaciones y corresponden a las operaciones del álgebra relacional  ,   y –∪ ∩

Al igual que la unión, intersección y diferencia de conjuntos en el álgebra relacional, las relaciones que participan en las operaciones han de ser compatibles; esto es, deben tener el mismo conjunto de atributos.

Page 91: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

Ejemplo SELECT – UNIÓN Para encontrar todos los clientes que poseen 

un préstamo, una cuenta o las dos cosas en el banco, se escribirá:

(SELECT nom_clien FROM prestatario) UNION (SELECT nom_clien FROM impositor)

Page 92: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

PRESTATARIO IMPOSTOR

nro_pres Nom_cliente Año ID_Estudio nro_cuenta Nom_cliente123 Alejandra Guerra 1977 3 987 Alejandra Guerra321 Luis Contreras 2001 2 789 Gabriel Soto

Nom_clienteAlejandra GuerraLuis ContrerasGabriel Soto

Page 93: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

Ejemplo SELECT – INTERSECCIÓN Para encontrar todos los clientes que tienen 

tanto un préstamo como una cuenta en el banco se escribiría:

(SELECT nom_clien FROM prestatario) INTERSECT (SELECT nom_clien FROM impositor)

Page 94: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

PRESTATARIO IMPOSTOR

nro_pres Nom_cliente Año ID_Estudio nro_cuenta Nom_cliente123 Alejandra Guerra 1977 3 987 Alejandra Guerra321 Luis Contreras 2001 2 789 Gabriel Soto

Nom_clienteAlejandra Guerra

Page 95: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

Ejemplo SELECT – DIFERENCIA Para encontrar todos los clientes que tienen 

cuenta pero no tienen ningún préstamo en el banco se escribiría:

(SELECT nom_clien FROM prestatario) EXCEPT (SELECT nom_clien FROM impositor)

Page 96: CM-217 Programacion de Computadoras I

   

Relación con  el Algebra Relacional

PRESTATARIO IMPOSTOR

nro_pres Nom_cliente Año ID_Estudio nro_cuenta Nom_cliente123 Alejandra Guerra 1977 3 987 Alejandra Guerra321 Luis Contreras 2001 2 789 Gabriel Soto

Nom_clienteLuis Contreras

Page 97: CM-217 Programacion de Computadoras I

   

Resumen

El modelo de datos relacional se basa en un conjunto de tablas. El usuario del sistema de bases de datos puede consultar esas tablas, insertar nuevas tuplas, borrar tuplas y actualizar (modificar) las tuplas. Hay varios lenguajes para expresar estas operaciones

Page 98: CM-217 Programacion de Computadoras I

   

Resumen

El álgebra relacional define un conjunto de operaciones algebraicas que operan sobre tablas y devuelven tablas como resultado. Estas operaciones se pueden combinar para obtener expresiones que expresan las consultas deseadas. El álgebra define las operaciones básicas usadas en los lenguajes de consulta relacionales

Page 99: CM-217 Programacion de Computadoras I

   

Resumen

SQL incluye varias constructoras del lenguaje para las consultas sobre la base de datos. Todas las operaciones del álgebra relacional se pueden expresar en SQL. SQL también permite la ordenación de los resultados de una consulta en términos de los atributos

Page 100: CM-217 Programacion de Computadoras I

   

Referencias

2o Curso de Administración de Sistemas Informáticos, Jorge Sánchez

Sistemas de Información II, Carlos Castillo Fundamentos de Base de Datos, Abraham 

Silberschatz, Henry F. Korth, S. Sudarshan Base de Datos Modelos y Analisis, Patricia 

Rendon V.