68
Modelo relacional Informática aplicada

Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Embed Size (px)

Citation preview

Page 1: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Modelo relacional

Informática aplicada

Page 2: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Contenido

• Estructura de las bases de datos relacionales

• Operaciones básicas del álgebra relacional

• Operaciones adicionales del álgebra relacional

• Valores nulos

• Modificación de la base de datos

Page 3: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de una relación

Page 4: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Estructura básicaFormalmente, dados los conjuntos D1, D2, …, Dn una relación es un

subconjunto de D1 D2, Dn

Entonces, una relación es un conjunto de n-tuplas (a1, a2, …, an) donde cada a1 D1.

• Ejemplo: Si– custome_name = {Jones, Smith, Curry, Linsay, …} /*conjunto de todos los

nombre*/– customer_street = {Main, North, Park, …} /*conjunto de todos los nombres de

calles*/– customer_city = {Harrison, Rye, Pittsfield, ..} /*conjunto de todos los nombres de

ciudades*/Entonces r = {(Jones, Main, Harrison), (Smith, North, Rye), (Curry, North, Rye), (Linsay, Park, Pittsfield)}Es una relación sobrecustome_name customer_street customer_city

Page 5: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Tipos de atributos

• Cada atributo de una relación tiene nombre• El conjunto de valores permitidos para cada atributo es

llamado el dominio del atributo.• Los valores de los atributos (normalmente) se requiere

que sea atómicos, esto es, idivisibles.– Los valores multivaluados no son atómicos– Los atributos compuestos no son atómicos

• Un valor especial null es miembro de todo dominio.• Los valores nulos causan complicaciones en la

definición de mucha operaciones.– Ignoraremos los efectos de los valores nulos en nuestra

presentación principal y consideraremos sus efectos después.

Page 6: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Esquema de relaciones

• A1, A2, …, An son atributos

• R = (A1, A2, …, An ) es un esquema de relaciónCustomer_schema = (customer_name,

customer_street, customer_city)

• r(R) es una relación en el esquema de relación Rcustomer(Customer_schema)

Page 7: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Esquemas del banco

• Account-schema = (account-number, branch-name, balance)

• Branch-schema = (branch-name, branch-city, assets)• Customer-schema = (customer-name, customer-street,

customer-city)• Depositor -schema = (customer-name, account-number)• Loan-schema = (loan-number, branch-name, amount)• Borrower-schema = (customer-name, loan-number)

Page 8: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Instancia de relación

• Los valores actuales (instancia de relación) de una relación son especificados por una tabla

• Un elemento t de r es una tupla, representada por un renglón en la tabla

JonesSmithCurry

Lindsay

customer-name

MainNorthNorthPark

customer-street

HarrisonRyeRye

Pittsfield

customer-city

customer

atributos(o columnas)

tuplas(o renglones)

Page 9: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Las relaciones no tiene orden

• El orden en la tuplas es irrelevante (las tuplas se pueden almacenar en orden arbitrario)

• Relación account con tuplas desordenadas

Page 10: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Bases de datos• Una base de datos consiste de múltiples relaciones• La información acerca de una empresa es rota en partes, con cada

relación guardando una parte de la información– account: guarda información de las cuentas– depositor: guarda información acerca de que cliente posee cual cuenta.– customer: guarda información acerca de los clientes

• Guardando información como una relación simple como bank(account_number, balance, customer_name, …) resulta en– Repetición de infrormación (dos clientes poseen una cuenta)– Necesidad de valores nulos (representar un cliente sin una cuenta)

• La teoría de normalización trata del diseño de esquemas relacionales.

Page 11: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

La relación customer

Page 12: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

La relación depositor

Page 13: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Diagrama ER para el banco

Page 14: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Claves• Sea K R• K es superllave de R los valores de K son suficientes para

identificar una tupla única de cada posible relación r(R)– Por “posible r” queremos decir una relación r que puede existir en una

empresa que estemos modelando.– Ejemplo: {cutomer_name, customer_street} y {cutomer_name}– Son ambas superllaves de customer, si ningún par de clientes pueden

tener el mismo nombre.• K es una llave candidata si K es mínima.• Ejemplo: {cutomer_name} es una llave candidata para customer, ya

que es una supellave , y ningún subconjunto de esta es superllave.• Debe cumplirse que si t1 y t2 están en r y t1 t2, entonces t1[K]

t2[K].

Page 15: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Determinando claves desde conjuntos ER

• Conjunto de entidades fuertes: La llave primaria de una entidad viene a ser la llave primaria de la relación

• Conjunto de entidades débil: La llave primaria de la relación consiste de la unión de la llave primaria de la entidad fuerte y el discriminador de la entidad debil

• Conjunto de relaciones: La unión de las llaves primarias de los conjuntos de entidades relacionadas es la superllave de una relación.– Para un conjunto de relaciones binarias de mucho a uno, la llave

primaria del conjunto de entidades “muchos” es la llave primaria de la relación

– Para un conjunto de relaciones uno a uno, la llave primaria de la relación puede ser cualquiera de las llaves de los conjuntos de entidades.

– Para un conjunto de relaciones muchos a muchos, la unión de las llaves primarias viene a ser la llave primaria de la relación

Page 16: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Diagrama esquema para la empresa del banco

En el diagrama del esquema aparece cada relación como un rectángulo con loa atributos listados adentro y el nombre de la relación arriba. En un recuadro superior del rectángulo aparecen los atributos clave. Las dependencias de llaves foráneas aparecen como flechas desde la llave foránea hasta la llave primaria de la relación referenciada.

Page 17: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Lenguajes de consulta

• Lenguajes para que el usuario solicite información de la base de datos

• Categorías de los lenguajes– Procedural– No Procedural

• Lenguajes puros– Álgebra relacional– Cálculo relacional de tuplas– Cálculo relacional de dominios

• Los lenguajes puros forman la base de los lenguajes de consulta que usa la gente

Page 18: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Álgebra relacional

• Lenguaje procedural• Seis operadores básicos

– Selección– Proyección– Unión– Diferencia de conjuntos– Producto cartesiano– Renombrado

• Los operadores toman dos o más relaciones como entrada y generan una nueva relación como resulatdo

Page 19: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de selección - ejemplo

A B C D

1

5

12

23

7

7

3

10

Relación r

A=B^D>5(r) A B C D

1

23

7

10

Page 20: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de selección

• Notación: p(r)• p es llamado predicado de selección• Definido como:

p(r) = {t | t r y p(t)}Donde p es una fórmula del cálculo proposicional

consistiendo de términos conectados por: (y), (o), (no)

Cada término es uno de:<atributo> op <atributo> o <constante>

Donde op es uno de: =, , >, ,<, • Ejemplo de selección:

branch_name(account)

Page 21: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplos

branch_name=‘Perryridge’ (loan)

loan>1200 (loan)

loan>1200 ^ branch_name=‘Perryridge’ (loan)

loan>1200 ^ loan<4000 (loan)

Page 22: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de proyección - ejemplo

A B C

10

20

30

40

1

1

1

2

Relación r

A, C(r) A C

1

1

1

2

A C

1

1

2

Page 23: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de proyección

• Notación: A1,A2,…,Ak(r)• Donde A1, A2, son nombres de atributos y r es

el nombre de la relación • El resultado está definido como una relación de

k columnas obtenidas al borrar las columnas no listadas

• Los renglones duplicados son eliminados del resultado, yaque son conjuntos

• Ejemplo: para eliminar el atributo branch_name de accountaccount_number, balance(account)

Page 24: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de unión - ejemplo

A B

1

2

1

Relaciones r y s

r s A B

1

2

1

3

A B

2

3

Page 25: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de unión

• Notación: r s • Definido como:

r s = {t | t r o t s} • Para que r s sea válido

1. r y s deben tener la misma aridad (mismo número de atributos)

2. Los atributos deben ser compatibles (los valores de las columnas correspondientes debes ser del mismo tipo)

• Ejemplo: encontrar todos los clientes con una cuenta o un préstamo customer_name(depositor) customer_name(borrowert

Page 26: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de diferencia - ejemplo

A B

1

2

1

Relaciones r y s

r - s A B

1

1

A B

2

3

Page 27: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de diferencia

• Notación: r - s• Definido como:

r - s = {t | t r y t s} • Para que r - s sea válido

1. r y s deben tener la misma aridad (mismo número de atributos)

2. Los atributos deben ser compatibles (los valores de las columnas correspondientes debes ser del mismo tipo)

• Ejemplo: encontrar todos los clientes con una cuenta pero sin un préstamo customer_name(depositor) - customer_name(borrower)

Page 28: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de producto cartesiano - ejemplo

A B

1

2

Relaciones r y s

r s

C D E

10

10

20

10

a

a

b

bA B C D E

1

1

1

1

2

2

2

2

10

10

20

10

10

10

20

10

a

a

b

b

a

a

b

b

Page 29: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de producto cartesiano

• Notación: r s

• Definido como: r s = {t q | t r y q s}

• Se supone que los atributos de r(R) y s(S) son disjuntos. (R S = )

• Si no son disjuntos, se debe usar renombrado.

Page 30: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Composición de operaciones

• Se pueden construir expresiones usando múltiples operaciones

• Ejemplo: A=B (r s)

• r s

• A=B (r s)

A B C D E

1

1

1

1

2

2

2

2

10

10

20

10

10

10

20

10

a

a

b

b

a

a

b

b

A B C D E

1

2

2

10

10

20

a

a

b

Page 31: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplos

• Nombres de clientes que viven en Harrison.

customer-name (customer-city =“Harrison”(customer))

• bcustomer_name, borrower.loan_number, loan.loan_number, branch_name, amount

branch-name =“Perryridge”(borrower × loan)

• Misma que la anterior pero de clientes que SI tiene préstamo.

borrower.loan_number = loan.loan_number (branch-name =“Perryridge”(borrower × loan))

• Solo los nombres

bcustomer_nameborrower.loan_number = loan.loan_number (branch-name

=“Perryridge”(borrower × loan)))

Page 32: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de renombrado

• Permite nombrar, y por lo tanto referirse a, el resultado de una expresión del álgebra relacional

• Permite referirse a una relación con más de un noombre

Ejemplo: x (E)

regresa la expresión E bajo el nombre x.Si la expresión de álgebra relacional E tiene aridad n,

entonces x(A1, A2,…, An) (E)

regresa la expresión E bajo el nombre x y con los atributos renombrados A1, A2, …, An.

Page 33: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Banking Example

branch (branch-name, branch-city, assets)

customer (customer-name, customer-street, customer-only)

account (account-number, branch-name, balance)

loan (loan-number, branch-name, amount)

depositor (customer-name, account-number)

borrower (customer-name, loan-number)

Page 34: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Example Queries• Encontrar todos los préstamos sobre $1200

Encontrar los números de préstamo para cada préstamo para el cual la cantidad es mayos que $1200.

amount > 1200 (loan)

loan-number (amount > 1200 (loan))

Page 35: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Example Queries• Encontrar los nombres de todos los clientes que tienen un

préstamo, o una cuenta o ambos en el banco.

•Encontrar los nombres de todos los clientes que tienen un préstamo y una cuenta en el banco.

customer-name (borrower) customer-name (depositor)

customer-name (borrower) customer-name (depositor)

Page 36: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Example Queries• Encontrar los nombres de todos los clientes que tienen un préstamo

en la sucursal Perryridge

Encontrar los nombres de todos los clientes que tienen un préstamo en la sucursal Perryridge pero que no tienen cuenta en cualquier sucursal del banco.

customer-name (branch-name = “Perryridge”

(borrower.loan-number = loan.loan-number(borrower x loan))) –

customer-name(depositor)

customer-name (branch-name=“Perryridge”

(borrower.loan-number = loan.loan-number(borrower x loan)))

Page 37: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Example Queries• Encontrar los nombres de todos los clientes que tienen un préstamo en

la sucursal Perryridge

Query 2

customer-name(loan.loan-number = borrower.loan-number(

(branch-name = “Perryridge”(loan)) x borrower))

Query 1

customer-name(branch-name = “Perryridge” ( borrower.loan-number = loan.loan-number(borrower x loan)))

Page 38: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Example Queries

Encontrar la cuenta con el saldo más alto. Renombre la relación account como d

La consulta es

balance(account) - account.balance

(account.balance < d.balance (account x d (account)))

Page 39: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Definiciones formales

• Una expresión básica del álgebra relacional consiste de una de las siguientes:– Una relación en la base de datos– Una relación constante

• Sean E1 y E2 expresiones del álgebra relacional: las siguientes son todas expresiones del álgebra relacional:– E1 E2– E1 – E2 – E1 E2– p(E1), p es un predicado en atributos en E1– s(E1), S es una lista consistiendo de algunos de los atributos

en E1– x (E1) x es un nuevo nombre para el resultado de E1.

Page 40: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operaciones adicionales

Agregaremos nuevas operaciones que no añaden poder al álgebra relacional, pero que simplifican consultas comunes.

• Intersección de conjuntos

• Reunión natural

• División

• Asignación

Page 41: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de intersección

• Notación: r s • Definido como:

r s = {t | t r y t s}

• Para que r s sea válido1. r y s deben tener la misma aridad (mismo número

de atributos)

2. Los atributos deben ser compatibles (los valores de las columnas correspondientes debes ser del mismo tipo)

• Nota: r s = r – ( r – s)

Page 42: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de unión - ejemplo

A B

1

2

1

Relaciones r y s

r s A B

2

A B

2

3

Page 43: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación unión natural• Notación: r s• Sean r y s relaciones en los esquemas R y S respectivamente.

Entonces, r s es una relación en esquema R S obtenida como sigue:– Considere un par de tuplas tr en r y ts en s.– Si tr y ts tienen el mismo valor en cada uno de los atributos de R S,

agregar t al resultado, donde• t tiene el mismo valor que tr en r• t tiene el mismo valor que ts en s

• Ejemplo– R = (A, B, C, D)– S = (E, B, D)– Esquema resultante = (A, B, C, D, E)– r s se define como:r.A, r.B, r.C, r.D, s.E( r.B = s.B ^ r.D = s.D(r s))

Page 44: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de reunión natural

A B C D

1

2

4

1

2

a

a

b

a

b

B D E

1

3

1

2

3

a

a

a

b

b

A B C D E

1

1

1

1

2

a

a

b

a

b

r s

r s

Page 45: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de división

• Adecuada para las consultas que incluyen la frase “para todos”

• Sean r y s relaciones en los esquemas R y S respectivamente donde:– R = (A1, …, Am, B1, …, Bn)– S = (B1, …, Bn)– El resultado de r s es una relación en el

esquema R – S = (A1, …, Am)• r s = {t | t R-S(r) ^ u s(tu r) }

r s

Page 46: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de divisiónA B

1

2

3

1

1

1

3

4

6

1

2

r

B

1

2s

A

r s

Page 47: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Otro ejemplo de división

A B C D E

a

a

a

a

a

a

a

a

a

a

b

a

b

a

b

b

1

1

1

1

3

1

1

1

D E

a

b

1

1

A B C

r s

a

a

r s

Page 48: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de división cont.

• Propiedad– Sea q – r s– Entonces q es la relación más grande que satisface q

r s• Definición en términos de las operaciones

básicas del álgebra relacional. Sea r(R) y s(S) relaciones, y sea S Rr s = R–S(r) – R–S((R–S(r) s) – R–S,S(r))

• Para ver como– R–S,S(r) simplemente reordena los atributos de r– R–S((R–S(r) s) – R–S,S(r)) da aquellas tuplas en

R–S(r) tales que para alguna tupla u s, ts r.

Page 49: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operación de asignación

• La operación de asignación ( ) provee una forma conveniente de expresar consultas complejas.– Escriba consultas como un programa secuencial consistiendo en

• Una seria de asignaciones• Seguidas por una expresión cuyo valor es desplegado como

resultado de la consulta– Las asignaciones deben ser hechas sobre variables de relación

temporales• Ejemplo: escriba r s como

– temp1 R–S(r)– temp2 R–S((temp1 s) – R–S,S(r))– result temp1 – temp2– El resultado a la derecha de es asignado a la variable relación

a la izquierda de .– Se puede usar la variable en las expresiones subsecuentes.

Page 50: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplos de Consultas

• Encontrar los clientes que tienen una cuenta en por lo menos en la sucursal “Downtown” y “Uptows”

Donde CN denota customer-name y BN denota

branch-name.

Consulta 1

CN(BN=“Downtown”(depositor account))

CN(BN=“Uptown”(depositor account))

Consulta 2

customer-name, branch-name (depositor account)

temp(branch-name) ({(“Downtown”), (“Uptown”)})

Page 51: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplos de Consultas

• Encontrar todos los clientes que tienen una cuenta en alguna sucursal de Brooklyn

customer-name, branch-name (depositor account)

branch-name (branch-city = “Brooklyn” (branch))

Page 52: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Operaciones extendidas del álgebra relacional

• Proyección Generalizada

• Unión externa

• Funciones de Agregación

Page 53: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Proyección generalizada

• Extiende la operación de proyección permitiendo que funciones aritméticas sean usadas en la lista de proyección.

F1, F2, …, Fn(E)• E es cualquier expresión del álgebra relacional• Cada una de las F1, F2, …, Fn son expresiones

aritmeticas involucrando constantes and atributos en el esquema de E.

• Dada la relación credit-info(customer-name, limit, credit-balance), encontrar cuanto más puede una persona gastar:

customer-name, limit – credit-balance (credit-info)

Page 54: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Funciones de agregación y operadores

• Las funciones de Agregación toma una colección de valores y regresa un valor simple como resultado.

avg: valor promediomin: valor mínimomax: valor máximo sum: suma de valuescount: number of values

• Operación de agregación en álgebra relacional

G1, G2, …, Gn g F1( A1), F2( A2),…, Fn( An) (E)– E es cualquier expresión de álgebra relacional– G1, G2 …, Gn es una lista de atributos en los cuales agrupar

(puede estar vacío)– Cada Fi es una función de agregación– Cada Ai es un nombre de atributo

Page 55: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de funciones de agregación

• Relación r:A B

C

7

7

3

10

g sum(c) (r)sum-C

27

Page 56: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de funciones de agregación

• Relación account agrupada por branch-name:

branch-name g sum(balance) (account)

branch-name account-number balance

PerryridgePerryridgeBrightonBrightonRedwood

A-102A-201A-217A-215A-222

400900750750700

branch-name balance

PerryridgeBrightonRedwood

13001500700

Page 57: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Funciones de agregación (cont.)

• Los resultados de las funciones de agregación no tienen nombre– Se puede usar la operación de renombrado– Por conveniencia se permite el renombrado en las funciones

de agregación.

branch-name g sum(balance) as sum-balance (account)

Page 58: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Unión externa

• Una extensión de la operación de unión para evitar pérdida de información

• Calcula la unión luego agrega tuples desde una relación que no ajustan en la otra relación al resultado de la unión.

• Usa valores nulos.– null significa que el valor es desconocido o no existe– Todas laqs comparaciones involucrando nulos son

(rigurosamente) falsos por definición• Las comparaciones con nulos se verán más adelante

Page 59: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de unión externa• Relation loan

Relation borrower

customer-name loan-number

JonesSmithHayes

L-170L-230L-155

300040001700

loan-number amount

L-170L-230L-260

branch-name

DowntownRedwoodPerryridge

Page 60: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de unión externa• Inner Join reunión interna

loan Borrower

loan-number amount

L-170L-230

30004000

customer-name

JonesSmith

branch-name

DowntownRedwood

JonesSmithnull

loan-number amount

L-170L-230L-260

300040001700

customer-namebranch-name

DowntownRedwoodPerryridge

Left Outer Join (unión externa izquierda)

loan Borrower

Page 61: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de unión externa• Right Outer Join (unión externa derecha) loan borrower

loan borrower

Full Outer Join (reunión externa total)

loan-number amount

L-170L-230L-155

30004000null

customer-name

JonesSmithHayes

branch-name

DowntownRedwoodnull

loan-number amount

L-170L-230L-260L-155

300040001700null

customer-name

JonesSmithnullHayes

branch-name

DowntownRedwoodPerryridgenull

Page 62: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Valores nulos• Es posible que una tupla tenga valores nulos, denotados por null,

para algunos de sus atributos.• Null significa valor desconocido o que el valor no existe• El resultado de operaciones aritméticas involucrando null es null

– Ej. 5 + null es null• Las funciones de agregación ignoran los valores nulos.

– Es una decisión arbitraria. Podría regresar nulo.– Siguen la semántica de SQL en el manejo de nulos

• para eliminar duplicados y agrupación, los nulos son tratados como cualquier otro valor, y dos nulos se suponen ser iguales.– Alternativas: suponen que los nulos son diferentes– Ambas decisiones arbitrarias, se sigue SQL

Page 63: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Valores nulos

• Cualquier comparación con null regrese desconocido– Ej. 5<num o nul<>nul o nul=nul

• Lógica de tres valores usando el valor desconocido:– OR: (desconocido or true) = true

(desconocido or falso) = desconocido (desconocido or desconocido ) = desconocido

– AND: (desconocido and true) = desconocido (desconocido or falso) = false(desconocido or desconocido ) = desconocido

– NOT: desconocido = desconocido– “P es desconocido” se evalua como true si el predicado P se

evalua como desconocido.• El resultado de la cláusula select es tratado como false

si se evalua a desconocido.

Page 64: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Modificación de la base de datos

• El contenido de la base de datos puede ser modificado por las siguientes operaciones– Borrado– Inserción– Actualización

• Todas las operaciones se expresan mediante asignación

Page 65: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Borrado

• Una petición de borrado se expresa como una consulta. Excepto que en lugar de desplega tupla al usuario, las tuplas seleccionadas son borradas de la base de datos

• Solo se pueden borrar tuplas completas, no se pueden borrar atributos particulares

• El borrado se expresa en álgebra relacional mediante– r r – E

• Donde r es una relación y E es una consulta del álgebra relacional

Page 66: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplo de borrado

• Borra todos los registros de cuentas en la sucursal Perryridge

• Borra todos los registros de préstamos con cantidades entre 0 y 50

• Borra todas las cuentas en todas las sucursales localizadas en Needham.

• • •

account account – branch-name = “Perryridge” (account)

loan loan – amount 0and amount 50 (loan)

r1 branch-city = “Needham” (account branch)

r2 branch-name, account-number, balance (r1)

r3 customer-name, account-number (r2 depositor)

account account – r2

depositor depositor – r3

Page 67: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Inserción

• Para insertar en una relación, nosotros o bien:– Especificamos la tupla a ser insertada– Escribir una consulta cuyo resultado sea un conjunto

de tuplas a insertar

• En álgebra relacional, una inserción se expresa por:– r r EDonde r es una relación y E es una expresión del

álgebra relacionalLa inserción de una sola tupla se expresa por E como

una relación constante conteniendo una tupla

Page 68: Modelo relacional Informática aplicada. Contenido Estructura de las bases de datos relacionales Operaciones básicas del álgebra relacional Operaciones

Ejemplos de inserción

• Inserte información en la base de datos especificando que Smith tiene $1200 en la cuenta A-913 en la sucursal Perryridge– account account {“A-913”, “Perryridge” ,1200}– depositor depostor {“Smith”,“A-913”}

• Como un regalo para todas las cuentas en Perryridge, una cuenta de $200. El número del préstamo sirve como número de cuenta para la cuenta nueva.– r1 ( branch-name = ‘Perryridge’(borrower loan))– account account loan-number,branch-name,200(r1)– depositor depositor customer-name, loan_number(r1)