Upload
conrado-barriga
View
12
Download
1
Embed Size (px)
Citation preview
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)