1/62 mg. samuel oporto díaz modelo relacional inteligencia artificial

47
1 /62 /62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

Upload: conrado-barriga

Post on 24-Jan-2015

12 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

11/62/62

Mg. Samuel Oporto Díaz

Modelo Relacional

INTELIGENCIA ARTIFICIAL

Page 2: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

22/62/62

RELACIONES

Page 3: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

33/62/62

Relación• El concepto modelo relacional se basa en el concepto

matemático de relación.

• Una relación es un subconjunto de un Producto Cartesiano. • El dominio es el conjunto de valores. Los denominamos con

la letra D.

• Sean D1, D2, D3...Dn conjuntos de valores o escalares (dominio) entonces el Producto Cartesiano se define como:

• D1 X D2 X D3...X Dn = { (d1, d2, d3,...,dn) } donde

• d1 D1, d2 D2, d3 D3,..., dn Dn}

Page 4: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

44/62/62

Relación• Una Relación R es un subconjunto de

– D1X D2X D3...XDn y y se denota como:

– R (D1X D2X D3...XDn )

– R(Da, Db, Dc,...) se le llama el Esquema de Relación.

– El grado se define como el número de componentes en el esquema de relación.

Page 5: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

55/62/62

Esquema de la Relación• Es el concepto relación matemática R sobre unos conjuntos

de valores (dominio) D1, D2, D3...Dn

• El esquema se usa para describir una relación o instancia. – Cliente(Nombre,Calle,Ciudad, Número de cuenta)

– Cuenta(Número de cuenta, saldo)

• Las columnas, en el ejemplo Nombre, Calle, Ciudad, Número de cuenta, se les llama atributos.

• Cada atributo es el nombre que se le da sobre el dominio D en el esquema de relación.

Page 6: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

66/62/62

Propiedades de las Relaciones• Todas las tuplas de una relación son distintas.

• No hay orden entre las tuplas• No hay orden entre los atributos• No existen atributos que no sean atómicos• Se pueden relacionar relaciones entre sí a través de

atributos comunes para evitar la duplicación de información.

Page 7: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

77/62/62

MODELO RELACIONAL

Page 8: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

88/62/62

Introducción al modelo relacional• Introducido por E.F. Codd en 1979. • Se representan los datos como una colección de

relaciones. • Cada relación se trata como una tabla de valores.• El modelo relacional utiliza tablas bidimensionales para la

representación lógica de los datos y las relaciones entre ellos.

• Podemos decir que una base de datos relacional consiste de un conjunto de tablas-relaciones relevantes.

Page 9: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

99/62/62

Componentes de una BD relacional• Consiste de tres componentes:

– Estructura de Datos - Esquema de relación.

– Integridad de Datos - reglas semánticas que controlan el comportamiento de la base de datos.

– Manipulación de datos - operaciones en las relaciones.

Page 10: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1010/62/62

ESTRUCTURA DE LOS DATOS

Page 11: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1111/62/62

Estructura de datos - Tablas• Consiste de un conjunto de columnas nominadas (que

tienen un nombre) y una cantidad arbitrarias de filas (tuplas)

• Las filas o tuplas son las ocurrencias de la tabla (entidad o relación representada).

• Las columnas están asociadas con un dominio, que está especificado con un tipo a la columna nominada.

• La tabla representa un objeto o entidad propia.• Cada tabla corresponde a un archivo almacenado en el

nivel físico.

Page 12: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1212/62/62

Propiedades de las tablas• Cada tabla debe cumplir las siguientes condiciones:

– Tener un formato único de fila definido en su esquema.– Las filas o tuplas son únicas.– Las columnas o atributos son únicos, tienen nombre.– El valor de una celda es único.– Las columnas representan un dominio, aunque ese

dominio puede utilizarse en varias columnas.

• Cumple las siguientes propiedades:– Las filas pueden estar en cualquier orden.– Las columnas pueden estar en cualquier orden.– Se referencia a una fila mediante todos sus valores.– Se referencia a una columna mediante el nombre que la

identifica.

Page 13: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1313/62/62

Tuplas• Siempre que se hace referencia al modelo relacional se

utilizará la terminología de tuplas y atributos para filas y columnas.

• Grado de una tabla relacional es el número de atributos que la forma. G(BANCO)=3.

• Cardinalidad de una tabla relacional es el número de tuplas que contiene. C(BANCO)=5.

Page 14: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1414/62/62

Dominios• Es el conjunto de todos los posibles valores para una o más

columnas de una tabla relacional.• Los valores de un dominio se establecen con anterioridad a

su utilización, expresando las posibles restricciones que se deseen para los atributos.

• Existen dos tipos de dominio:– Dominios generales o continuos, donde los atributos

toman valores dentro de un rango definido o dentro de un ámbito.

– Dominios restringidos o discretos, donde los atributos sólo pueden tomar valores dentro de un subconjunto previamente definido.

Page 15: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1515/62/62

Claves• Una clave es un atributo o conjunto de atributos cuyos

valores distinguen unívocamente una tupla en una tabla. Es el conjunto mínimo de atributos cuyos valores le dan una identificación única a la tupla en la relación.

• Cumple las mismas propiedades que el modelo E-R.

• La clave primaria cumple los siguientes requisitos:– Sus valores deben ser siempre conocidos diferentes de nulos.– Deberá seleccionarse la que ocupe un menor espacio de

almacenamiento.– Tener una codificación sencilla.– El contenido de sus valores no debe variar.– Que se utilice en otras tablas para tener una posible interrelación.

Page 16: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1616/62/62

Índices• Las claves se implementan físicamente mediante índices,

éstos establecen formas alternativas de acceso a la información.– Índices primarios, formado por la clave primaria y debe

ser único para cada tabla.– Índices secundarios, si existen claves secundarias, éstas

se establecerán como índices secundarios, pudiéndose crear otros adicionales sobre atributos que no sean clave. A éstos últimos se les denominan índices secundarios múltiples porque pueden tener el mismo valor en diferentes tuplas.

Page 17: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1717/62/62

INTEGRIDAD DE DATOS

Page 18: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1818/62/62

Reglas de Integridad Referencial.

Integridad de Entidades• Para todas las instancias de una entidad los valores de la clave

primaria deben: existir, ser únicos y no-NULL.

Integridad Referencial.• Todos los valores para la clave foranea deben coincidir con un valor de

la clave foranea de la entidad asociada. Asegura que se pueda navegar corectamente en las entidades relacionadas.

• Las claves foraneas crean una relacion jerárquica entre las entidades asociadas. La entidad que recibe la clave foranea es el hijo o dependiente y la tabla que contiene la clave primaria es el entidad padre.

• Para asegurar estas relaciones se han diseñado las siguientes reglas:º Reglas de Delete.º Reglas de Insert

Page 19: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

1919/62/62

Reglas de InsertEstas pueden ser:• Dependencia. Permite insercion de instancias en las entidades hijo

unicamente si coincide con una entidad padre existente.

• Automática. Permite la inserción de una instancia de la entidad hijo. Si la coindicencia con la la entidad padre no existe, entonces este es creado.

• NULLificación. Permite la inserción de una instancia de la entidad hijo. Si la coindicencia con la la entidad padre no existe, entonces la clave foranea en la entidad hijo es puesto en NULL.

• Default. Permite la inserción de una instancia de la entidad hijo. Si la coindicencia con la la entidad padre no existe, entonces la clave foranea en la entidad hijo es puesto en un valor previamente definido.

• Configurable.Permite la inserción de una instancia de la entidad hijo unicamente si cierta validación configurable es encontrada.

• Sin Efecto. La inserción de una instancia es siempre permitido, no es necesario la coincidencia.

Page 20: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2020/62/62

Reglas de Delete.Estas pueden ser:• Restricción. Permite eliminar de instancias en las entidades padre

unicamente si no existe instancias en las entidades hijos relacionadas.

• Cascade. Permite eliminar de instancias en las entidades padre y la eliminación de todas las instancias en las entidades hijos relacionales.

• NULLificación. Permite eliminar de instancias en las entidades padre, si exiset instancias en alguna entidad hijo, los valores de las atributos de la clave foranea son puestos en NULL.

• Default. Siempre permite la eliminación de instancias en las entidades padre, si existe instancias en alguna entidad hijo, los valores de las atributos de la clave foranea son puestos en un valor predefinido.

• Configurable.Permite la eliminación de instancias de la entidad padre unicamente si ciertas restriciocnes son cumplidas

• Sin Efecto. La eliminación de una instancia de la entidad padre es siempre permitido, no se virifica nada.

Page 21: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2121/62/62

ALGEBRA RELACIONAL

Page 22: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2222/62/62

Algebra Relacional• Lenguaje Procedimental• Seis operaciones básicas

1. selección

2. proyección

3. union

4. diferencia de conjunto

5. producto cartesiano

6. renombramiento

• Los operadores toman dos o más relaciones como entrada y su resultado es una nueva relación.

Page 23: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2323/62/62

1. Selección

• Relación r A B C D

1

5

12

23

7

7

3

10

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

1

23

7

10

Page 24: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2424/62/62

1. Selección

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

p(r) = {t | t r and p(t)}

Donde p es una formula consistente con el cálculo proposicional de terminos conectados por : (y), (o), (no)Cada termino es uno de:

<atributo> op <atributo> o <constante>

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

sucursal-nombre=“Perryridge”(cuenta)

Page 25: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2525/62/62

2. Proyección• Relación r:

A B C

10

20

30

40

1

1

1

2

A C

1

1

1

2

=

A C

1

1

2

A,C (r)

Page 26: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2626/62/62

2. 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 es definido como una relación de k columnas obtenidas de borrar las columnas que no están listadas

• Las filas duplicadas son removidas del resultado• E.j. Para eliminar el atributo sucursal-nombre de cuenta

account-number, balance (cuenta)

Page 27: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2727/62/62

3. Unión• Relaciónes r, s:

r s:

A B

1

2

1

A B

2

3

rs

A B

1

2

1

3

Page 28: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2828/62/62

3. Unión• Notación: r s• Definido como:

r s = {t | t r or t s}• Para que r s sea válida.

1. r, s deben ser de la misma cardinalidad (mismo número de atributos)

2. Los dominios de los atributos deben ser compatibles find all customers with either an account or a loan3. r y s pueden ser relaciones temporales que sean resultado de expresiones del álgebra relacional. E.j.

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

Page 29: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

2929/62/62

4. Diferencia de Conjunto• Relations r, s:

r – s:

A B

1

2

1

A B

2

3

rs

A B

1

1

Page 30: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3030/62/62

4. Diferencia de Conjunto• Notación r – s• Definida como:

r – s = {t | t r and t s}• Se debe asegurar que la diferencia de conjuntos se realice

entre relaciones compatibles.– r y s deben ser de la misma aridad– A los domminios de los atributos de r y s sean compatibles

Page 31: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3131/62/62

5. Producto Cartesiano

Relationes r, s:

r x s:

A B

1

2

A B

11112222

C D

1010201010102010

E

aabbaabb

C D

10102010

E

aabbr

s

Page 32: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3232/62/62

5. Producto Cartesiano• Notación r x s• Definido como:

r x s = {(t, q) | t r and q s}• Asume que los atributos de r(R) y s(S) son disjuntos. (Esto

esto, R S = ).• Si los atributos de r(R) y s(S) no son disjuntos, entonces se

debe usar renombramiento.

Page 33: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3333/62/62

Composición de Operaciones• Se pueden construir expresiones usando múltiples

operaciones

• Ejemplo A=C(r x s)

Relationes r, s:

r x s:

A B

1

2

A B

11112222

C D

1010201010102010

E

aabbaabb

C D

10102010

E

aabbr

s

Page 34: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3434/62/62

Composición de Operaciones• Se pueden construir expresiones usando múltiples

operaciones

• Ejemplo A=C(r x s)

• r x s

Selecciona… A=C(r x s)

A B

11112222

C D

1010201010102010

E

aabbaabb

A B C D E

122

102020

aab

Page 35: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3535/62/62

6. Renombramiento• Permite un nuevo nombre para referirse a los resultados de

expresiones del algebra relacional.• Permite referirse a una relación por más de un nombre.• Ejemplo:

x (E)

• Devuelve la expresión E bajo el nombre X• Si la expresión del algebra relacional E tiene aridad n,

entonces

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

• devuelve el resultado de la expresiónE bajo el nombre X, y con los atributos renombrados a A1, A2, …., An.

Page 36: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3636/62/62

Operaciones Adicionales• Se definen operaciones que no adicionan poder al algebra

relacioneal pero simplifican alfunas consultas.

• Intersección• Reunión Natural• División• Asignación

Page 37: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3737/62/62

7. Intersección• Notación: r s• Definida como:• r s ={ t | t r and t s }• Asume:

– r, s tienen la misma aridad – Atributos de r y s son compatibles

• Note: r s = r - (r - s)

Page 38: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3838/62/62

7. Intersección• Relation r, s:

• r s

A B

121

A B

23

r s

A B

2

Page 39: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

3939/62/62

Notación: r s

8. Reunión Natural

• La reunión natural es una operación binaria que permite combinar ciertas selecciones y un producto cartesiano en una sola operación y elimina los atributos repetidos.

• Example:R = (A, B, C, D)

S = (E, B, D)– Result schema = (A, B, C, D, E)– r s is defined as:

r.A, r.B, r.C, r.D, s.E (r.B = s.B r.D = s.D (r x s))

Page 40: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

4040/62/62

8. Reunión Natural• Relaciones r, s:

A B

12412

C D

aabab

B

13123

D

aaabb

E

r

A B

11112

C D

aaaab

E

s

r s

Page 41: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

4141/62/62

9. División

• Adecuada para consultas que incluyen la expresión “para todos”.

• Si r y s son relaciones de los esquemas R y S respectivamente donde:– R = (A1, …, Am, B1, …, Bn)

– S = (B1, …, Bn)

• El resultado de r s es una relación sobre el esquemaR – S = (A1, …, Am)

r s = { t | t R-S(r) u s ( tu r ) }

r s

Page 42: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

4242/62/62

9. División

Relations r, s:

r s: A

B

1

2

A B

12311134612

r

s

Page 43: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

4343/62/62

10. Asignación• La operación de asignación () prevee una conveniente

forma de expresar queries complejos. • Ejemplo: Escribir r s como s

temp1 R-S (r)

temp2 R-S ((temp1 x s) – R-S,S (r))

result = temp1 – temp2

– El resultado a la derecha de es asignado a la relación

de la izquierda de .

– Se pueden usar variable en las sibsiguientes

expresiones.

Page 44: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

4444/62/62

11. Agregación• Funciones de Agregación toma una colección de valores y

retorna un solo valos como resultado.

avg: valor promediomin: valor mínimomax: valor máximosum: suma de valorescount: número de valores

• Operaciones de Agregación en el algebra relacional

G1, G2, …, Gn g F1( A1), F2( A2),…, Fn( An) (E)

– E es cualquier expresión del algebra relacional

– G1, G2 …, Gn es una lista de atributosque se agrupan (pueden ser vacios)

– Cada Fi es una función se agregación

– Each Ai es un nombre de atributo

Page 45: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

4545/62/62

11. Agregación• Relación r:

A B

C

7

7

3

10

g sum(c) (r)sum-C

27

Page 46: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

4646/62/62

11. 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 47: 1/62 Mg. Samuel Oporto Díaz Modelo Relacional INTELIGENCIA ARTIFICIAL

4747/62/62

11. Agregación• El resultado de una agregación no tiene nombre

– Se puede usar la operación de renombramiento para darle un nombre

– Por conveniencia, se permite renombrar como parte de la operación de agregamiento

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