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

Post on 24-Jan-2015

10 views 1 download

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

11/62/62

Mg. Samuel Oporto Díaz

Modelo Relacional

INTELIGENCIA ARTIFICIAL

22/62/62

RELACIONES

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}

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.

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.

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.

77/62/62

MODELO RELACIONAL

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.

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.

1010/62/62

ESTRUCTURA DE LOS DATOS

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.

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.

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.

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.

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.

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.

1717/62/62

INTEGRIDAD DE DATOS

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

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.

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.

2121/62/62

ALGEBRA RELACIONAL

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.

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

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)

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)

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)

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

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)

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

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

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

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.

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

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

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.

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

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)

3838/62/62

7. Intersección• Relation r, s:

• r s

A B

121

A B

23

r s

A B

2

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))

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

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

4242/62/62

9. División

Relations r, s:

r s: A

B

1

2

A B

12311134612

r

s

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.

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

4545/62/62

11. Agregación• Relación r:

A B

C

7

7

3

10

g sum(c) (r)sum-C

27

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

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)