Está en la página 1de 696

I.

Conceptos Bsicos de las


Bases de Datos

DATO

Dato es una coleccin de hechos considerados de


forma aislada. Los datos pueden ser nmeros,
palabras, imagenes.
Son el nivel ms bajo de abstraccin a partir del cual
se deriva la informacin.
Informacin es un dato que ha sido manipulado, con
lo que resulta de utilidad para alguien.

CALIDAD DE LA INFORMACIN

La calidad de la informacin se basa en los atributos claves:


Exactitud. Significa que es clara y refleja adecuadamente
el sentido de los datos en los que se basa.
Oportunidad. Implica hacerla llegar dentro del marco del
tiempo necesario. Que se pueda obtener cuando se
necesita.
Relevancia. Debe responder de manera

especfica a lo que busque: qu, dnde,


cundo, quin, cmo

BASE DE DATOS

Una base de datos es un conjunto de datos que


pertenecen al mismo contexto y son almacenados
sistemticamente para su uso posterior.
Son datos interrelacionados que modelan una realidad
La base de datos es el componente estructural
clave en el diseo de sistemas de informacin.
Es la principal fuerza de integracin del sistema de
informacin de una organizacin.

La base de datos se considera desde dos puntos de vista, el fsico y el


lgico:
La base de datos fsica est compuesta de los medios de

almacenamiento, es la forma en que los datos se almacenan


realmente.
El lado lgico se refiere a la recuperacin de los datos almacenados

para satisfacer necesidades especficas de informacin.

SISTEMA MANEJADOR DE BASE


DE DATOS

Un sistema manejador de base de datos (SMBD) es un


conjunto de programas especializados diseados para
describir, proteger, almacenar y accesar la base de
datos.
En un SMBD se pueden realizar las siguientes
operaciones con los datos: definir, crear, organizar,
relacionar, estructurar, acceder a datos, manejar,
consultar.

FUNCIONES DE UN SMBD
Definir todos los datos empleados en el sistema y

especificar las relaciones entre los datos.


Proporcionar un mtodo para dar de alta, dar de baja y

modificar los datos que estn en la base de datos.


Proteger el recurso de los datos de manera que sea

seguro, confiable, consistente y correcto.


Permitir que los usuarios mltiples de la base de datos

compartan los datos.


Permitir la recuperacin de datos mediante un lenguaje

entendible a los usuarios del sistema.

Sistema Manejador de Base


de Datos (SMBD)

Base de Datos

Programas de
Aplicacin

Usuarios Finales

HISTORIA

Principios

Modelos

50s

Sistemas manejadores de archivos

60s

Bases de datos jerrquicas

70s

Bases de datos de red

80s

Bases de datos relacionales

90s

Bases de datos OO

ARQUITECTURA DE TRES
NIVELES
NIVEL FSICO (interno)
Se describe la estructura fsica de la base de datos mediante un esquema
interno. Este esquema se especifica mediante un modelo fsico y describe
todos los detalles para el almacenamiento de la base de datos, as como
los mtodos de acceso. Es el nivel ms bajo de representacin de la base
de datos.
NIVEL CONCEPTUAL (lgico)
Es aquel en el que se definen las estructuras de almacenamiento y las
relaciones que se darn entre ellas. Este esquema oculta los detalles de
las estructuras de almacenamiento y se concentra en describir entidades,
atributos, relaciones, operaciones de los usuarios y restricciones.
NIVEL EXTERNO (externo - vistas)
Puede definirse como la forma en que el usuario aprecia la informacin y
sus relaciones. Cada esquema externo describe la parte de la base de
datos que interesa a un grupo de usuarios determinado y oculta a ese
grupo el resto de la base de datos.

OBJETIVOS DE UN SMBD
Independencia LGICA: Ocurre cuando se modifica el esquema
conceptual sin afectar al resto de los esquemas. Bsicamente se modifica
el esquema conceptual cuando cambian las caractersticas de los datos a
almacenar.
Independencia FSICA:
Se presenta cuando es
posible la modificacin
del esquema fsico sin
afectar a los esquemas
restantes.
Las principales razones
para llevar a cabo una
modificacin
del
esquema fsico sern un
ajuste en el hardware de
almacenamiento
o una redistribucin de

Manipulacin de los datos por personas no


especializadas en computacin:
cualquier persona
consulte y actualice los datos, por medio de lenguajes de
programacin no procedimentales.
Eficacia en el acceso a los datos: permite el acceso
eficaz sin que el que hace el acceso sea especialista o no
en el rea y que conozca o no la estructura interna de los
datos.
El tiempo de respuesta est ntimamente ligado al nmero
de accesos a disco, lo que ser soportado por el SMBD.

Administracin centralizada de los datos: un


grupo de trabajo que se dedique a la definicin de
las estructuras de almacenamiento y de los datos
de la base siguiendo su evolucin a travs del
tiempo.
Redundancia de datos controlada: se busca la
no duplicacin fsica de los datos y de ser
absolutamente necesario un cierto nivel de
redundancia, ste debe estar estrictamente
controlado por el SMBD.

Coherencia de los datos: el SMBD debe tener ciertas


facilidades o tiles para hacer que los PA respeten las
reglas de integridad de la Base de Datos, en particular
aquellas correspondientes a la modificacin de los datos.
Posibilidad de compartir los datos:
un PA puede
usar los datos almacenados en la Base de Datos como
lo desee y como si fuera el nico en usarlo, sin saber
que otro puede estar modificndolo concurrentemente.
Seguridad de los datos: se debe permitir la proteccin
contra accesos no autorizados o malintencionados.

MANEJO DE TRANSACCIONES:
Recuperacin va reprocesamiento
Realizar un respaldo de la base de datos.
Conservar un registro de todas las transacciones

que se hayan procesado a partir de dicho respaldo.


Al presentarse una falla, el equipo de operaciones

puede restaurar la base de datos partiendo del


respaldo y reprocesando todas las transacciones.

Recuperacin va progresiva
Consiste en recuperar la base de datos del respaldo y
aplicar todas las transacciones vlidas a partir del respaldo.
Recuperacin va regresiva
Se deshacen los cambios efectuados por transacciones
errneas o procesadas de un modo parcial, deshaciendo
las modificaciones que stas hicieron en la base de datos.
Concurrencia
Diferentes usuarios pueden manipular los datos al mismo
tiempo y la integridad de los datos se conserva.

COMPONENTES DE UN SBD

1. Datos
2. Hardware

(Mquinas)

3. Software

(Programas)

4. Usuarios

(Personas)

1. DATOS

Los sistemas de base de datos estn


disponibles en mquinas que van desde las
computadoras personales ms pequeas hasta
las mainframes ms grandes.
Los datos de la base de datos en un sistema
grande, sern tanto Integrados como
Compartidos.

2. HARDWARE

Sus componentes son:


Los volmenes de almacenamiento secundario
Los procesadores de hardware y la memoria principal

3. SOFTWARE

Un SMBD es un conjunto de programas que controlan


la creacin, el mantenimiento y el uso de la base de
datos.
Componentes:
Motor del SMBD: Recibe requerimientos lgicos de
otros subsistemas del SMBDs, los convierte en su
equivalente fsico y accesa la base de datos
Subsistema de Definicin de Datos: Crea y
mantiene el diccionario de datos y define la estructura
de los archivos de la base de datos
Subsistema de Manipulacin de Datos: Agrega,
cambia, elimina y consulta datos de una base de
datos

3. SOFTWARE

Componentes (continuacin...)
Subsistema de Generacin de Aplicaciones: Apoya
al usuario a generar aplicaciones transaccionales
Subsistema de Administracin: Apoya al usuario en
la administracin de todo el ambiente de una base de
datos (recuperacin, seguridad, optimizacin,
concurrencia, administracin de cambios)

Sistema Manejador de Bases de Datos

4. USUARIOS

Usuarios sofisticados
Interactan con el sistema sin escribir
programas. En cambio escriben sus preguntas en un lenguaje de
consultas de base de datos.
Usuarios especializados
Algunos usuarios sofisticados escriben
aplicaciones de base de datos especializadas que no encajan en el
marco tradicional de procesamiento de datos.
Usuarios no sofisticados Los usuarios no sofisticados interactan con
el sistema invocando a uno de los programas de aplicacin permanentes
que se han escrito anteriormente en el sistema de base de datos.
Programadores de aplicaciones Los que interactan con el sistema
por medio de llamadas en DML, las cuales estn incorporadas en un
programa escrito en un lenguaje de programacin (C, Java, etc.)

DBA

El Administrador de la Base de Datos (ABD) se


encarga de administrar:

La Base de Datos.
El SMBD relacionado .
Autoriza accesos.
Coordina y vigila su utilizacin.
Adquiere los recursos de software y hardware.
Define las polticas de respaldo y recuperacin de
la base de datos.

DISEADORES DE DB

Identifican los datos que se almacenarn

en la base de datos.
Eligen las estructuras apropiadas para

presentar y almacenar dichos datos.


Estas tareas se realizan antes de que se

implemente la BD y se carguen los datos.

USUARIO FINAL

Existen varias categoras de usuario final:


Usuarios finales ocasionales acceden de vez en
cuando a la BD.
Usuarios finales simples su funcin principal gira en
torno a consultas y actualizaciones constante de la
base de datos.
Usuarios finales avanzados pueden ser los
ingenieros, cientficos, analistas de negocios y otros
que tiene requerimientos complejos.
Usuarios autnomos mantienen BD personales
mediante la utilizacin de programas comerciales.

Los componentes funcionales de un sistema manejador


de base de datos, son:
Gestor de archivos
Gestiona la asignacin de
espacio en la memoria del disco y de las estructuras de
datos usadas para representar informacin.
Manejador de base de datos Sirve de interfaz entre
los datos y los programas de aplicacin.
Procesador de consultas Traduce las proposiciones
en lenguajes de consulta a instrucciones de bajo nivel.
Adems convierte la solicitud del usuario en una forma
ms eficiente.
Compilador de DDL Convierte las proposiciones DDL
en un conjunto de tablas que contienen metadatos,
estas se almacenan en el diccionario de datos.
Archivo de datos En l se encuentran almacenados
fsicamente los datos de una organizacin.
Diccionario de datos
Contiene la informacin
referente a la estructura de la base de datos.
ndices Permiten un rpido acceso a registros que
contienen valores especficos.

SMBD VS. MANEJADOR DE


ARCHIVOS

Los manejadores de archivos no tienen una


estructura interna de registros.
Proporcionan poca o nula seguridad o restriccin
de integridad.
Proporcionan pocas facilidades para recuperar
datos o actualizarlos.
Proporciona poca independencia de los datos
Los archivos tpicamente no estn integrados y
no comparten informacin.

MEMORIA PRINCIPAL

SISTEMA OPERATIVO

2
1

BUFFER DEL SISTEMA OPERATIVO

PROGRAMA DE
APLICACIONES

REA DE TRABAJO DEL


PROGRAMA DE APLICACIONES

3
ARCHIVO
CONVENCIONAL

MEMORIA PRINCIPAL

4
SISTEMA OPERATIVO

3
BUFFER DEL SISTEMA
OPERATIVO
SMBD

BASE DE
DATOS

BUFFER DEL SMBD

PROGRAMA DE
APLICACIONES
REA DE TRABAJO DEL
PROGRAMA DE
APLICACIONES

Nota: El propio SMBD puede


interactuar directamente con la
BD pudiendo ser de esta forma
ms eficiente

EJEMPLO DE UNA CONSULTA

Extraccin:

Resultado (mostrado en una pantalla):

VENTAJAS DE LOS SMBD

1. Independencia de datos y tratamiento


(lgica) Cambio en datos no implica cambio en programas y viceversa.
(fsica) Cambio fsico no implica cambios en la estructura de los datos.
(Menor costo de mantenimiento, promueve integridad de los datos)
2. Coherencia de resultados
Reduce redundancia:
Acciones lgicamente nicas.
Se evita inconsistencia.
3. Mejora en la disponibilidad de datos
No hay dueo de datos (No igual a ser pblicos).
Guarda descripcin y reglas de integridad (Idea de catlogos).
4. Cumplimiento de ciertas normas
Restricciones de seguridad:
Accesos (Usuarios a datos).
Operaciones (Operaciones sobre datos).
5. Otras ventajas
Ms eficiente gestin de almacenamiento.

II Modelos Lgicos Basados


en Objetos

MODELO DE DATOS

Definicin: Coleccin de herramientas conceptuales para


describir datos, relaciones entre ellos, su semntica y
restricciones de integridad.
Se pueden clasificar dependiendo de los tipos de conceptos que
ofrecen para describir la estructura de la base de datos:

Modelos de alto nivel o conceptuales, disponen de conceptos


muy cercanos al modo como la mayora de los usuarios
perciben los datos.
Modelos de Datos de Representacin, tiene conceptos que
pueden ser entendidos por los usuarios finales aunque no
estn demasiado alejados de la forma como se organizan
dentro de la computadora.

CLASIFICACIN

Modelos basados en registros


Modelos basados en objetos
Modelos objeto - relacionales

Modelos Basados en Registros


Almacenan su informacin
en una estructura jerrquica.
Los datos se organizan en
una forma similar a un rbol
(visto al revs).
El contenido de un registro
especfico puede repetirse en
varios sitios

una
inconsistencia de datos .

Jerrquico

Modelos Basados en Registros


Representa los datos mediante
colecciones
de
registros
y sus relaciones se representan
por medio de ligas.
Se permite que un mismo nodo
tenga varios padres.
Ofreca una solucin eficiente
al problema de redundancia de
datos.

De Red

Modelos Basados en Registros

Relacional

Fundamentos Matemticos.
Los datos estn estructurados
a nivel lgico como tablas
formadas por filas y columnas.
Concepto fundamental:
Relacin.
Alto nivel de abstraccin.
Dr. Edgar F. "Ted" Codd Junio 1970
A Relational Model of Data for Large Shared Data Banks

Modelos Basados en Objetos

Entidad - Relacin

Percepcin de un mundo
real. Entidades y relaciones.
Entidades: descritas por
un conjunto de atributos.
Relaciones: Asociacin
entre entidades.
Dr. Peter Pin-Shan Chen Marzo 1976
The Entity-Relationship Model--Toward a Unified View of Data

Modelos Basados en Objetos

Soporta el paradigma orientado a


objetos
almacenando
datos
y
mtodos.
Flexibilidad y soporte para el
manejo de tipos de datos complejos.
Manipula datos complejos en forma
rpida y gilmente .

Orientado a Objetos
Development of an
object-oriented DBMS
D. Maier, J. Stein, A. Otis,
A. Purdy 1986.

Modelos Objeto - Relacionales


Dr. Michael Stonebraker.

Las bases de datos estn presentes en muchos aspectos.


Su desarrollo ha sido en paralelo con las necesidades de
informacin por parte de los distintos usuarios (datamining,
datawarehouse).
Su nivel de abstraccin tambin ha evolucionado con
estos ltimos.
Nuevas formas de representar informacin:
Datos semi-estructurados.

Modelo Entidad Relacin


(MER)

MODELO ENTIDAD-RELACIN

El modelo Entidad Relacin (ER) describe los


datos como entidades, vnculos (asociaciones,
interrelaciones) y atributos.

Entidades y sus atributos. El objeto bsico que


representa el modelo ER es la entidad que es una
cosa del mundo real.

Una entidad puede ser un objeto con existencia


fsica (una persona, un automvil, una casa o un
empleado) o un objeto sin existencia fsica
(proyecto, empresa, empleado, etc.).

HISTORIA

El Modelo Entidad-Relacin, propuesto por Peter


Chen en el artculo ya histrico en 1976, es uno de
los modelos conceptuales ms extendidos.
Artculo:
ACM Transactions on Database Systems, Vol.1, No.
1, March 1976, Peter Pin-Shan Chen, The EntityRelationship Model-Toward a Unified View of Data,
Massachusetts Institute of Technology.

Chen lo caracteriza:
El Modelo Entidad-Relacin puede ser usado
como una base para una vista unificada de
los datos, adoptando el enfoque ms natural
del mundo real que consiste en entidades e
interrelaciones.

Diagramas de Chen

Posteriormente otros autores lo han ampliado


con importantes aportaciones, formndose en
realidad una familia de modelos entidad
relacin.
En este tema se exponen los conceptos del
modelo MER bsico.
El modelo entidad-relacin est formado por
un conjunto de conceptos que permiten
describir la realidad mediante un conjunto de
representaciones grficas y lingsticas.

DEFINICIN

Tcnica semntica de modelado grfico


de datos basada en la percepcin del
mundo real como un conjunto de objetos
bsicos llamados entidades y las
interrelaciones existentes entre ellas.

CONCEPTOS BSICOS

Entidad
Atributo
Relacin (Interrelacin)
Diagramas Entidad-Relacin

CONJUNTO DE ENTIDADES

Es un conjunto de objetos reales o abstractos


sobre el que se tiene informacin, pueden ser
personas, lugares, cosas o eventos de inters.

Smbolo:
NombreEntidad

ENTIDAD

Cada ejemplar de un conjunto de


entidades se denomina instancia o
entidad.
Conjunto de entidades

Instancia o entidad

Persona

TIPOS DE ENTIDADES

Regular o fuerte: Las instancias de este


tipo tienen existencia por s mismas en
el
universo
de
estudio
independientemente de cualquier otro
conjunto de entidades.
Dbil: Las instancias de este tipo
dependen de un conjunto de entidades
existente en el universo, al desaparecer
este conjunto superior, desaparecern
todos los conjuntos de entidades dbiles
vinculadas al mismo.

Entidad

Entidad dbil

ATRIBUTO

Los atributos son cada una


de las propiedades o
caractersticas descriptivas de
la entidad, tales como nombre,
edad y nacionalidad.
Smbolo:

NombreAtributo

Nombre

Edad

Persona

Nacionalidad

Cada entidad de un
mismo conjunto de
entidades posee los
mismos atributos,
tanto en nombre
como en nmero,
diferencindose cada
uno de las entidades
por los valores que
toman dichos
atributos.

25

Mexicana

26

Salvadorea

TIPOS DE ATRIBUTOS

Obligatorios: aquellos que deben tomar un


valor y no se permite que alguna entidad no
tenga un valor en el atributo.
Edad

26

Persona
Salvadorea
Nacionalidad

Opcional: aquellos atributos que pueden tener


valores o no tenerlos. Posiblemente nulo
(ausencia de valor).
nulo
Telfono

Edad
26

Persona
Salvadorea
Nacionalidad

Monovaluado: aquel atributo que slo puede


tener un nico valor. Ejemplo: Edad.
nulo
Telfono

Edad
26

Persona
Salvadorea
Nacionalidad

Multivaluado: aquellos atributos que pueden


tener varios valores. Ejemplo: Telfono.
Smbolo:
0445512345678
56061234

Atributo

Telfono

Edad
26
Persona
Salvadorea
Nacionalidad

Derivados: Su valor se obtiene a partir de


los valores de otros atributos, es decir,
derivan de valores de otros atributos o
entidades relacionadas.
Smbolo:
Edad

Simples: No se pueden dividir en


subpartes.
Smbolo:
Nacionalidad
Compuestos: Se pueden dividir en
subpartes.
Mes
Smbolo:
Da
Fecha de nacimiento

Ao

Claves: Una clave, es el conjunto de atributos de


una entidad que permiten distinguirla de forma
nica del resto de entidades del conjunto de
entidades.
Se aplica tambin a las interrelaciones.
Smbolo:
Atributo

CLAVES

Superclave: Es un conjunto de uno o ms atributos


que, tomados colectivamente, permiten identificar
de forma nica una entidad en el conjunto de
entidades o una interrelacin en el conjunto de
interrelaciones (este conjunto no necesariamente es
mnimo).

Nombre
Id_cliente

Cliente

Telfono

Claves candidatas: Son superclaves tales


que todos sus subconjuntos propios de
atributos no son superclave.
Nombre
Id_cliente

Cliente

Telfono

No_IFE

Clave primaria: Es una clave candidata


elegida por el diseador como elemento
principal para identificar de forma nica las
entidades dentro de un conjunto de entidades
o una interrelacin en el conjunto de
interrelaciones. La clave primaria se debe
elegir de manera que sus atributos en lo
posible nunca cambien.

SELECCIN DE LA CLAVE
PRIMARIA

Nombre
Id_cliente

Cliente

Telfono

No_IFE

ENTIDAD-ATRIBUTO

Nombre
Telfono

Nmero de cuenta
Alumno

Fecha de nacimiento

Edad
Nacionalidad

Da

Ao
Mes

INTERRELACIONES
(ASOCIACIONES)

Las interrelaciones representan asociaciones del mundo real


entre dos o ms entidades.

Maestro ensea a alumnos


Interrelacin

Ensea

Nota: Consideramos que el modelo Entidad


Relacin
fue una desafortunada referencia
(traduccin) del modelo que Chen llam Entity
Relationship (no Entity Relation). En este caso
la palabra Relacin se refiere a Asociacin o
Vnculo o Interrelacin entre Entidades. Es
importante esta aclaracin pues en el modelo
Relacional, la palabra Relacin tiene una
connotacin muy diferente.

Las interrelaciones se caracterizan por:


Nombre: que es un verbo en singular. Ejemplo:
Imparte, escribe, etc.
Grado: nmero de entidades que participan en la
interrelacin.
Cardinalidad: Expresa el nmero de entidades a
las que otra entidad pueda estar asociada, por
medio de un conjunto de interrelaciones.

GRADO

Asociacin unaria

Asociacin binaria

Casada
R
con

Mdico
E
Persona
E

atiende
R

Paciente
E

Asociacin ternaria

E
Materia

R
Obtiene

E
Estudiante

E
Evaluacin

Una interrelacin puede ser recursiva, si


relaciona un conjunto de entidad consigo
mismo.

Empleado

Supervisa

ROL

El nombre de rol indica el papel que una entidad


participante de un conjunto de entidades desempea en
cada instancia de una interrelacin y ayuda a explicar el
significado de la interrelacin.
Supervisado

Empleado

Supervisor

Supervisa

CLAVE FORANEA

CLAVE FORNEA (FK)


Atributo o conjunto de atributos que hace referencia a una
llave primaria de otra relacin o de la misma relacin. En una
interrelacin recursiva como la anterior, un conjunto de
atributos en la relacin Empleado hace referencia a la clave
primaria para indicar quien es el Supervisor.

CARDINALIDAD

Tipos de interrelaciones:
Uno a uno
Uno a muchos
Muchos a uno
Muchos a muchos
Esto depende del entono real dentro del
que se est modelando.

Uno a uno
Tiene
a1

b1

a2

b2

a3

b3

Municipio

Ayuntamiento

Uno a muchos:
Conformada por
a1
a2

a3

Empresa

b1
b2
b3
b4
b5
Departamento

Muchos a uno
Pertenece a
a1
a2

a3
a4
a5
Sucursal

b1
b2
b3

Empresa

Muchos a muchos
Atiende a
a1

b1

a2

b2

a3

b3

a4

b4

Profesor

Estudiante

Consideremos un
vnculo
TRABAJA_PARA
entre los dos
conjuntos de
entidades
EMPLEADO y
DEPARTAMENT
O, que asocia a
cada empleado
con el
departamento
para el que
trabaja

ATRIBUTOS DE LAS
INTERRELACIONES

Las interrelaciones pueden tener atributos


como las entidades.
Atributo

Interrelacin

Semestre

Profesor

Imparte

Asignatura

OPCIONES DE SIMBOLOGA

Cardinalidad

Uno a uno
(1:1)
Uno a muchos
(1:N)
Muchos a uno
(N:1)
Muchos a
muchos (M:N)

Chen
1

Chen
Obligatoria

Opcional

No existe

Obligatoria

Obligatoria

Opcional

Opcional

Obligatoria

Opcional

Cardinalidad
Uno a uno
(1:1)
Uno a muchos
(1:N)
Muchos a uno
(N:1)
Muchos a muchos
(M:N)

Obligatoria

Obligatoria

Opcional

Opcional

Obligatoria

Opcional

Modelo Entidad Relacin


Extendido
(MERE)

MODELO ERE

Subtipos, supertipos y herencia.


Especializacin y generalizacin.
Notacin para subtipos y supertipos.
Interrelaciones y subtipos.
Restricciones en supertipos.
Mltiples jerarquas y herencia.
Categoras.

El modelo ER basta para representar


esquemas de BD de aplicaciones
tradicionales.
Aplicaciones ms nuevas como BD para
CAD/CAM, imgenes, multimedia, minera
de datos, data warehousing, ndices web,
etc. Necesitan un modelo semntico con
conceptos adicionales, componindose el
ER-extendido.

SUBTIPOS, SUPERTIPOS Y
HERENCIA

Subtipo (o subclase): un subagrupamiento


de entidades en un conjunto de entidades
que tiene atributos que son distintos de
otros subagrupamientos.

Supertipo (superclase): un conjunto de


entidades genrica que tiene una
interrelacin con uno o ms subtipos.

Herencia de tipo:
Los subtipos heredan los atributos del
supertipo relacionado.
Una instancia de un subtipo es tambin una
instancia de un supertipo.

Supertipo Empleado
con Tres Subtipos
Derivados

Interrelacin en la
cual todas las
instancias participan

Conjunto de
entidades General

Interrelacin en la
cual slo las
versiones
especializadas
participan
Versin
especializada del
supertipo

Notacin
para
Subtipos y
Supertipos
en el Modelo
EER

NOTACIN DE ALGUNAS
HERRAMIENTAS
Interrelacin en la
cual todas las
instancias participan

Conjunto de
entidades General

Interrelacin en la
cual slo las
versiones
especializadas
participan

Versin especializada
del supertipo

INTERRELACIONES Y SUBTIPOS

Interrelaciones en el nivel de supertipos indica


que todos los subtipos participarn en la
interrelacin.
Las instancias de un subtipo pueden participar
en una interrelacin nica para el subtipo. En
este caso, la interrelacin es mostrada en el
nivel de subtipo.

Interrelacin a
nivel de
supertipos

Interrelacin a
nivel de
subtipos

GENERALIZACIN

Generalizacin: es el proceso de definir un conjunto


de entidades ms general a partir de un conjunto de
entidades ms especializadas. (Bottom-up)
El conjunto de entidades que se especializa en
otros se llama supertipo ( Vehculo, Empleado).
Identificar atributos e interrelaciones comunes, y
formar un supertipo que los incluya.

EJEMPLO
Marca

Id_
Vehculo

Marca

Modelo

Nombre_
Vehculo

No_
Pasajeros

Id_
Vehculo

Modelo

Nombre_
Vehculo

Tipo
Cabina

Capacidad

Precio

No_de
Motor

Carro

Precio

Marca

Modelo

Id_
Vehculo

Nombre_
Vehculo

Precio

Moto

No_de
Motor

Camin

No_de
Motor

ESPECIALIZACIN

Especializacin: el proceso de definir


uno o ms subtipos del supertipo y formar
interrelaciones supertipo/subtipo.
(Top-down)

EJEMPLO

Precio_unitario

Descripcin

Proveedor

Id_Proveedor

Pieza

No_Parte

Cant_Disponible

Num_Envo

Ubicacin

Generalizacin
nfasis en las similitudes.
Cada instancia del supertipo es tambin
una instancia de alguno de los subtipos.
Especializacin
nfasis en las diferencias.
Alguna instancia del supertipo puede no
ser instancia de ningn subtipo.

RESTRICCIONES EN SUPERTIPOS

Indica que una instancia de un supertipo debe


tambin ser miembro de un subtipo.
Regla de especializacin total (completa): Indica
que toda instancia del supertipo tambin debe ser
instancia de algn subtipo. Smbolo: doble lnea.
Regla de especializacin parcial:
parcial Indica que es
posible que alguna instancia del supertipo no
pertenezca a ninguno de los subtipos. Smbolo:
lnea simple.

EJEMPLOS

Un paciente debe ser ya


sea paciente externo o
paciente residente

Un vehculo puede ser


un carro, un camin o
ninguno

Si una instancia de un supertipo puede


ser simultneamente, un miembro de dos
o ms subtipos
Regla disjunta:
disjunta una instancia del supertipo
puede ser slo una de los subtipos.
Regla de traslape:
traslape una instancia del
supertipo puede ser ms de una de los
subtipos.

Un paciente puede ser


ya sea paciente externo
o paciente residente,
pero no ambos

Una pieza puede ser


ambos, comprada y
manufacturada
o

Es un atributo del supertipo cuyo valor


determina el subtipo correspondiente.
Disjunto:
Disjunto un atributo simple con valores
alternativos para indicar el subtipo
correspondiente.
Traslape:
Traslape un atributo compuesto cuyas
subpartes pertenecen a los diferentes
subtipos. Cada subparte contiene un valor
lgico que indica si la instancia pertenece o
no al subtipo asociado.

Tipo_empleado

Tipo_empleado=

d
H
S

Atributo simple
que indica el tipo
de subclase
correspondiente

Comprada

Manufacturada

Tipo

CLUSTER DE ENTIDADES

Los diagramas MERE pueden ser difciles de


entender por la cantidad de elementos que
puede contener.
La solucin es agrupar entidades e
interrelaciones dentro de clusters de
entidades.
Cluster de entidades:
entidades conjunto de uno o
ms tipos de entidad y las interrelaciones
asociadas agrupadas en un nico conjunto
de entidades abstracta.

Grupos de
Entidades
Relacionadas
Pueden Formar
Clusters

Hace
negocios
con

Unidad de
ventas

Cliente

Compra

Material

Usado

Artculo

Producido en

Manufacturera

Artculo
vendido

SIMBOLOGA

Descripcin
Herencia
Especializacin total
Especializacin parcial
Regla disjunta
Regla de traslape

Smbolo

JERARQUAS DE RBOL

Son las jerarquas que se han


visto hasta ahora, en las que se
cumple la restriccin:

Propiedad
d

Todo subtipo participa en slo


una interrelacin
supertipo/subtipo.
Un subtipo tiene un nico
supertipo: es el concepto de rbol.

Edificio

Finca

MLTIPLES JERARQUAS

Mltiples jerarquas: el modelo ERE nos


permite dar al mismo supertipo ms de una
especializacin.
A veces la misma entidad puede ser un
subtipo de dos o ms supertipos. Tal clase
es llamada subtipo compartido y posee
herencia mltiple de sus supertipos.

JERARQUA MLTIPLE
dni

fecha

direc

pila
ape1

nombre

Empleado

ape2
d

tipo

veloc
Secretaria

Tcnico

Ingeniero

Precio
Jefe

Asalariado

nivel

sueldo
Jefe de ingeniera

Subcont

HERENCIA SIMPLE

En una jerarqua de rbol o jerarqua de


especializacin, cada subtipo hereda sus
atributos e interrelaciones
De su nico supertipo directo,
Y de sus supertipos predecesores hasta la
raz.

HERENCIA MLTIPLE

En una jerarqua mltiple de


especializacin un subtipo hereda
atributos e interrelaciones:
De sus supertipos (mltiples) directas.
De todos sus supertipos predecesoras hasta
la raz.

sexo

nombre
dni

direc

Persona

fecha-n

O
sueldo

Laboral
nivel

proyecto

Empleado

Estudiante

especialidad

Docente

Ayudante

Maestria

Licenciatura

categora

titulo

grupo

Investigacin

Docencia

prctica

En herencia mltiple pueden surgir conflictos al heredar


atributos distintos denominados igual.
Horario
Horario
Estudiante
Empleado

Horario?

Ayudante

Cmo resolver el problema?


Definir un orden de prioridad en la herencia. Ayudante
hereda horario de Estudiante y no de Empleado.
Renombrar algunos de los atributos en conflicto.
Ayudante hereda ambos atributos:
Horario corresponde a Horario de Empleado,
HorarioEscuela a Horario de estudiante.

INHIBICIN DE LA HERENCIA

En algunos casos se puede indicar que ciertos atributos


del supertipo no deben ser heredados por los subtipos.
Se puede representar cambiando el color de los
smbolos de atributos inhibidos o con comentarios.
Polgono
Ancho y Alto no
deberan ser
heredados por
Cuadrado

d
Ancho
Tringulo

Lado

Rectngulo

Cuadrado

Alto

REDEFINICIN DE ATRIBUTOS
HEREDADOS

Si un supertipo y un subtipo tienen un atributo


con el mismo nombre, se entiende que el
atributo del subtipo redefine el del supertipo.
Se utiliza el mismo nombre y significado
semntico.
pero se modifica cmo se calcula o cmo se
representa el valor del atributo.
Tiene sentido
derivados.

sobre

todo

para

atributos

rea

Ancho
Rectngulo

Lado

Cuadrado

Alto

rea

Si en el MERE se considera la inhibicin


de herencia y la redefinicin de atributos,
al presentarse conflicto de nombres por
herencia mltiple, las opciones sern:
Renombrar algunos atributos en conflicto.
Inhibir la herencia de algunos atributos.

CATEGORAS

Una categora tiene dos o ms supertipos


que pueden representar distintas entidades,
mientras que las otras interrelaciones
supertipo /subtipo tienen un solo supertipo.
Una categora es un subconjunto de la unin
de sus supertipos. debe existir al menos en
uno de los supertipos, pero no tiene que ser
miembro de todos.

dir

IFE
Persona
nombre

nombre
Unin

Banco
U

dir

Empresa
nombre

Propietario
tiene
matricula

Vehculo

fechacompra

dir

Una categora puede ser parcial o total.


Las categoras parciales implementan
herencia selectiva.
Smbolo:
U
Las categoras totales implementan herencia
mltiple.
Smbolo:
U

Finca

Edificio

Persona

Banco

Propiedad

Propietario

Categora total: Cada Edificio o


Finca debe ser miembro de
Propiedad.

Empresa

Categora parcial: Cada propietario


hereda los atributos de una
Empresa, una Persona o un Banco,
dependiendo del supertipo al que
pertenezca.

CATEGORAS Y GENERALIZACIN

Si dos tipos representan las mismas entidades y


comparten muchos atributos, incluyendo la misma clave,
es preferible la utilizacin de
especializacin/generalizacin; en otro caso la
categorizacin es ms apropiada.
Finca

Edificio

Propiedad

Propiedad

Edificio

Finca

AGREGACIN

Permite combinar varios conjuntos de


entidad, relacionados mediante un conjunto
de interrelacin, para formar un conjunto de
entidad agregada de nivel superior.
til cuando el conjunto de entidad
agregado debe relacionarse con otros
conjuntos de entidad.

Para esta interrelacin se quiere registrar


los administradores que supervisan las
tareas de un empleado.
Existe una entidad Administrador.
Trabajo

Empleado

Trabaja en

Sucursal

Alternativa 1: interrelacin cuaternaria. Da origen a


redundancia.
Trabajo

Empleado

Trabaja en

Dirige

Administrador

Sucursal

Alternativa 2: agregacin.
Trabajo

Empleado

Trabaja en

Trabaja-en

Dirige

Administrador

Sucursal

La agregacin es una abstraccin


segn la cual las interrelaciones
se tratan como entidades de nivel
ms alto.

RESUMEN DE SIMBOLOGA

Elemento

Smbolo

Generalizacin /
Especializacin
Especializacin total
Especializacin parcial
Disjuncin

Traslape

Elemento
Unin / Categora

Smbolo
U

Categora parcial
U

Categora total
Agregacin

Como entidad

ESQUEMAS RELACIONALES DERIVADOS


DEL MER

Algunos les llaman esquemas ER relacionales.


Es una mezcla entre estos modelos y son muy
utilizados por herramientas case.

PASO DE MER Y MERE A TABLAS

Elemento

Equivalencia Relacional

Conj. de entidades

Tabla

Atributo

Campo

Clave primaria

Llave primaria

Atributo compuesto
(monovaluados)

Cada sub atributo se convierte en


campo

Atributo multivaluado

Tabla con campos para el atributo


y para la llave de la entidad.

Elemento

Equivalencia Relacional

Atributo compuesto
(multivaluados)

Los atributos multivaluados forman


tablas, los monovaluados son
campos en la tabla de la entidad.

Atributo derivado

----

Entidad dbil

Tabla con llave fornea de la


entidad fuerte relacionada.

Elemento

Equivalencia Relacional

Interrelacin muchos a
muchos

Tabla cuyos atributos son los de la


interrelacin y las claves primarias
de las entidades relacionadas.

Interrelaciones de orden n

Tabla con los atributos de la


interrelacin y las claves primarias
de las entidades relacionadas.

Elemento

Equivalencia Relacional

Interrelacin binaria uno a


muchos sin atributos

La tabla del lado varios incluye a la


clave de la tabla del lado uno.

Interrelacin binaria uno a


muchos con atributos

La tabla del lado varios incluye los


atributos de la interrelacin y la
clave de la tabla del lado uno.

Interrelacin uno a uno

La clave de una tabla pasa a la otra


tabla relacionada.

Elemento

Equivalencia Relacional

interrelaciones
recursivas

Se tratan igual que las otras pero puede


resultar en la duplicacin de un atributo
en una tabla.

Generalizacin

Para convertir este tipo de interrelacin


en su equivalencia del modelo relacional
hay varias opciones.

Elemento
Generalizacin

Equivalencia Relacional
OPCIN A: Crear una tabla para el
supertipo, con sus atributos
correspondientes y una tabla para cada
subtipo con sus atributos ms la clave
primaria del supertipo.

Elemento

Equivalencia Relacional

Generalizacin

OPCIN B: Crear para cada subtipo una


tabla con los atributos del supertipo ms
los atributos propios, donde la clave
primaria ser la del supertipo. Esta opcin
slo es vlida para especializaciones
totales disjuntas.

Elemento

Equivalencia Relacional

Generalizacin

OPCIN C: Crear una sola tabla con todos


los atributos del supertipo y los subtipos
ms un atributo T que indica el subtipo al
que la tupla pertenece.
Esto corresponde a una especializacin
disjunta y puede generar muchos valores
nulos.

Elemento
Generalizacin

Equivalencia Relacional
OPCIN D: Crear una sola tabla con
todos los atributos del supertipo ms los
atributos de los subtipos, ms unos
atributos Ti cuyo valor lgico nos indicar
a qu subtipo pertenece la tupla. Esta
opcin corresponde una especializacin
con solapamiento.

Elemento
Categoras

Equivalencia Relacional
Se crea una clave para la categora que
identifique cada una de las ocurrencias de la
categora y que ser heredada como clave
fornea por cada uno de los supertipos. Se
aadir un atributo a la tabla de la categora
que exprese a que subtipo pertenece cada
tpla en particular.

PROBLEMA

Enunciado del problema:

Se desea implementar una base de datos para facilitar la gestin y


administracin de un cementerio, en dicha base de datos se contemplan
diferentes categoras laborales, distintos tipos de sepulturas, facturas por
los servicios prestados, incluso se permite que una familia posea su propia
sepultura para un determinado nmero de personas.
El cementerio est dividido en sectores, teniendo estos una capacidad y
extensin variable que ha de quedar reflejada.
Asimismo se quiere tener informacin sobre los empleados mediante datos
personales como nombre y apellidos, direccin, telfono, salario,
antigedad, etc.
Las categoras en las que se dividen los empleados son:

Enterradores
Jardineros
Administrativos

Los jardineros se ocuparn del cuidado de los sectores, de tal forma que un
jardinero est al cuidado de un sector, aunque del cuidado de un sector
pueden encargarse varios jardineros.
Asimismo, cada sector contendr un determinado nmero de sepulturas. Una
sepultura pertenece a un sector.
Las Sepulturas pueden ser:

Nicho
Tumba
Fosa Comn

Es necesario, adems, almacenar informacin sobre el fallecido, as como de


la persona (familiar) que se har cargo de los costes del servicio (todo ello,
obviamente identificado mediante los datos personales y de inters para la
empresa).
Cada fallecido es enterrado por un nico enterrador, lgicamente el enterrador
puede enterrar a ms de un fallecido durante su jornada laboral.

Los nichos tienen capacidad para una sola persona.


Sin embargo una tumba tiene capacidad para varias personas siendo lo normal
4.
La capacidad de una Fosa Comn es superior a la de una Tumba, y es de tipo
entero. En este caso y en los dos anteriores asumimos la indivisibilidad del
fallecido.
Adems, los administrativos emiten facturas para los familiares, de tal forma
que un administrativo puede emitir facturas a varios familiares, y un familiar
puede recibir varias facturas.
El nico tipo de sepultura que puede ser propiedad de un familiar es la Tumba,
siendo propiedad de una nica persona, y dicha persona puede poseer varias
tumbas.

APaterno

Da

AMaterno

Nombre
Nombre
completo

Mes

Antigedad

Ao

Fecha de
contratacin

Direccin

ID

Telfono
Empleado

Tipo_empleado

Salario

d
E

Administrativo

Enterrador

Jardinero

Tipo

Id_sepulcro

Fecha de compra
Sepulcro

N
Tumba
CapacidadT

Nicho

Fosa comn

Altura
InscripcinT

InscripcinN

CapacidadF

NSector

Capacidad

Id_sector
Superficie
Nombre

Nombre
completo

Sector

APaterno

AMaterno

Id_factura
Mes

Telfono

Cantidad
Da

Id_familiar

Ao

Direccin

Nombre

Nombre
completo
Mes

APaterno

AMaterno
Mes

Ao

Ao
Da

Da

Factura

Fecha

Familiar

Fecha
Nacimiento

Enterrador

Fallecido

Id_fallecido

Fecha
Fallecimiento

Asignado a

Enterrador

Administrativo

Jardinero
IDJardinero
<pi> Integer
Nombre
Text
APaterno
Text
AMaterno
Text
Direccion
Text
Salario
Decimal
Antigedad
Integer
FechaContratacin
Date

IDAdmininstrador
<pi> Integer
Nombre
Text
APaterno
Text
AMaterno
Text
Direccion
Text
Salario
Decimal
Antigedad
Integer
FechaContratacin
Date

<M>
<M>
<M>
<M>
<M>
<M>

IDEnterrador
<pi> Integer
Nombre
Text
APaterno
Text
AMaterno
Text
Direccion
Text
Salario
Decimal
Antigedad
Integer
FechaContratacin
Date

<M>
<M>
<M>
<M>
<M>
<M>
<M>

Relationship_16

Relationship_18

<M>
<M>
<M>

Identifier_1 <pi>

Identifier_1 <pi>

Identifier_1 <pi>

<M>
<M>
<M>

Relationship_19

Relationship_20

Sector
IdSector
<pi> Integer
NSector
Text
Capacidad
Integer
Superficie
Decimal

Telfono

<M>
<M>
<M>
<M>

IDTelfono <pi> Integer <M>


Telfono
Integer

Relationship_17
Relationship_12

Familiar
IdFamiliar <pi> Integer
Nombre
Text
APaterno
Text
AMaterno
Text
Direccion
Text

Identifier_1 <pi>

Identifier_1 <pi>

Relationship_14

Relationship_6

Relationship_4

Tumba
Capacidad Integer <M>
Inscripcin Text

Identifier_1 <pi>

Relationship_13

Factura
IdFactura <pi> Integer <M>
Cantidad
Decimal <M>
Fecha
Date

Relationship_8
Relationship_21

Identifier_1 <pi>

Nicho
Altura
Decimal <M>
Inscripcin Text

<M>
<M>
<M>

Identifier_1 <pi>
Relationship_15

Sepulcro
IDSepulcro <pi> Integer <M>
Tipo
Text
<M>

<M>

FosaComn

Relationship_22

Capacidad Integer <M>

Fallecido
IdFallecido
<pi> Integer
Nombre
Text
APaterno
Text
AMaterno
Text
FechaDeNacimiento
Date
FechaDeFallecimiento
Date
Identifier_1 <pi>

<M>
<M>
<M>
<M>
<M>
<M>

IDJardinero
Nombre
APaterno
AMaterno
Direccion
Salario
Antigedad
FechaContratacin

Enterrador

Administrativo

Jardinero

IDAdmininstrador
Nombre
APaterno
AMaterno
Direccion
Salario
Antigedad
FechaContratacin

integer
<pk>
long varchar
long varchar
long varchar
long varchar
decimal
integer
date

IDEnterrador
Nombre
APaterno
AMaterno
Direccion
Salario
Antigedad
FechaContratacin

integer
<pk>
long varchar
long varchar
long varchar
long varchar
decimal
integer
date

FK_TELEFONO_RELATIONS_ADMINIST
FK_SECTOR_RELATIONS_JARDINER
FK_TELEFONO_RELATIONS_JARDINER

integer
<pk>
long varchar
long varchar
long varchar
long varchar
decimal
integer
date

FK_TELEFONO_RELATIONS_ENTERRAD

Telfono

Sector
IdSector
integer
<pk>
IDJardinero integer
<fk>
NSector
long varchar
Capacidad integer
Superficie decimal
FK_SEPULCRO_RELATIONS_SECTOR

IDTelfono
IDEnterrador
IDAdmininstrador
IdFamiliar
IDJardinero
Telfono

integer
integer
integer
integer
integer
integer

<pk>
<fk4>
<fk3>
<fk1>
<fk2>

FK_TELEFONO_RELATIONS_FAMILIAR
FK_FACTURA_RELATIONS_ADMINIST
Familiar
FK_FALLECID_RELATIONS_FAMILIAR
IdFamiliar integer
<pk>
Nombre
long varchar
APaterno long varchar
AMaterno long varchar
Direccion long varchar
FK_FALLECID_RELATIONS_ENTERRAD

Sepulcro

FK_FACTURA_RELATIONS_FAMILIAR

IDSepulcro integer
<pk>
IdSector
integer FK_TUMBA_RELATIONS_SEPULCRO
<fk>
IDSepulcro
Tipo
long varchar
Capacidad
FK_FOSACOMU_RELATIONS_SEPULCRO
Inscripcin

Tumba
integer
<fk>
integer
long varchar

FK_NICHO_RELATIONS_SEPULCRO

Factura
IdFactura
IdFamiliar
IDAdmininstrador
Cantidad
Fecha

integer <pk>
integer <fk1>
integer <fk2>
decimal
date

Nicho
IDSepulcro integer
<fk>
Altura
decimal
Inscripcin long varchar

FosaComn
IDSepulcro integer <fk>
Capacidad integer

FK_FALLECID_RELATIONS_SEPULCRO
Fallecido
IdFallecido
IdFamiliar
IDSepulcro
IDEnterrador
Nombre
APaterno
AMaterno
FechaDeNacimiento
FechaDeFallecimiento

integer
integer
integer
integer
long varchar
long varchar
long varchar
date
date

<pk>
<fk1>
<fk3>
<fk2>

NOCIONES DE DISEO DE BASES DE


DATOS

Proceso por el que se determina la


organizacin de una base de datos,
incluidos su estructura, contenido y las
aplicaciones que se han de desarrollar.

Las metodologas de diseo de bases de


datos NO son muy populares; el NO
LLEVAR
UNA
METODOLOGA
se
considera, con frecuencia, una de las
principales causas de fracaso en el
desarrollo de los sistemas de informacin.

Diseo Conceptual
Diseo Lgico
Diseo Fsico

DISEO CONCEPTUAL

Descripcin de alto nivel de la estructura de


la base de datos.
No
describe
las
estructuras
de
almacenamiento que se necesitarn para
manejar esta informacin.

DISEO LGICO

Parte del esquema conceptual y es una


descripcin de la estructura de la base
de datos.

CUALIDADES DE UN BUEN DISEO

Expresividad Expresar perfectamente la realidad con


suficientes conceptos.
Simplicidad Fciles de entender.
Minimalidad Cada concepto debe tener un significado
distinto.
Formalidad Conceptos con interpretacin nica, precisa y
bien definida.

METODOLOGA DE DISEO

El primer paso en el diseo de una base de datos es la


produccin del esquema conceptual. Cada esquema
conceptual (VISTAS) representa las distintas visiones que los
usuarios tienen de la informacin.
Las nociones de conjunto de entidades y conjunto de
interrelaciones no son precisas.
Es posible definir un conjunto de entidades
interrelaciones entre ellas de diferentes formas.

las

Examinar los diagramas de flujo de datos, que se


pueden haber producido previamente, para
identificar cada una de las reas funcionales.
Entrevistar a los usuarios, examinar los
procedimientos, los informes y los formularios, y
tambin observar el funcionamiento de la empresa.

TAREAS A REALIZAR

Identificar los conjuntos de entidades.


Identificar los conjuntos de relaciones.
Identificar los atributos y asociarlos a
entidades y relaciones.
Determinar los dominios de los atributos.

Determinar los identificadores.


Determinar las jerarquas de generalizacin.
Dibujar el diagrama entidad-relacin.
Revisar el esquema con el usuario.

1. Identificar los conjuntos de entidades:

Examinar las especificaciones de requisitos de


usuario. Se buscan objetos importantes como
personas, lugares o conceptos de inters.
Siempre que sea posible, el usuario debe colaborar
en la identificacin de las entidades.

2. Identificar los conjuntos de relaciones:

Expresiones verbales (oficina tiene empleados). Si


las especificaciones de requisitos reflejan estas
relaciones es porque son importantes para la
empresa y por lo tanto, se deben reflejar en el
esquema conceptual.

3. Identificar los atributos:

Es muy til elaborar una lista de atributos e ir


eliminndolos de la lista conforme se vayan
asociando a una entidad o relacin.

4. Determinar los dominios:

Conjunto de valores que puede tomar el atributo.


Por ejemplo el dominio del atributo sexo de los
empleados es femenino masculino. Se puede
representar por la inicial de la palabra: F, M .

5. Determinar los identificadores:

Cada entidad tiene al menos un identificador. De


cada entidad se escoger uno de los
identificadores como clave primaria en la fase del
diseo lgico.

6. Jerarquas de generalizacin:

Ver si es necesario reflejar las diferencias entre


distintas ocurrencias de una entidad, con lo que
surgirn nuevas subentidades de esta entidad
genrica.

7. Diagrama entidad-relacin:

Dibujar
el
diagrama
entidad-relacin
correspondiente a una de las vistas de los
usuarios.
Se obtiene as un esquema conceptual local.

8. Revisar esquema con usuario:

Este esquema est formado por el diagrama


entidad-relacin y toda la documentacin que
describe el esquema. Retroalimentacin.

EJEMPLO

Se quiere modelar un sistema para manejar artculos


cientficos.
Un ARTCULO est escrito por un AUTOR, aunque a
veces pueden ser varios. Obviamente una misma persona
puede participar en ms de un artculo. Cada artculo tiene
ttulo, resumen y contenido. Cada autor pertenece a
alguna INSTITUCIN.

Utilizamos las siguientes reglas:


1.- Entidad Fuerte Se representa con una
tabla, cuyas columnas corresponden a los
atributos de las entidades. Tabla Autores.
autor_id nombre

nacionalidad

fecha de nacimiento

Utilizamos las siguientes reglas:


2.- Entidad Dbil Se adiciona una columna
por cada atributo de la llave primaria de la
entidad fuerte de la cual el conjunto de
entidades
dbil
depende.
Tabla
Experimentos.
articulo_id

experimento_id nombre

descripcion

Utilizamos las siguientes reglas:


3.- Relacin uno a varios Se incluye en
la tabla del extremo varios las columnas de
la llave primaria del extremo uno.
Alternativamente, se puede representar
usando la regla siguiente.

Utilizamos las siguientes reglas:


4.- Relacin varios a varios Se
representa con una tabla, la cual tiene una
columna por cada atributo de las llaves
primarias de los conjuntos de entidades a los
que est ligada, ms una columna por cada
atributo descriptivo de la relacin.

INTERRELACIONES autor pertenece a


institucin se representa agregando una
columna institucion_id a la tabla autores.
La interrelacin artculo es escrito por autor
se representa de la misma manera,
agregando un nuevo atributo a la tabla
artculos.

INTERRELACIONES artculo cita a


artculo. Crear tabla adicional para
almacenar esta informacin. Una de las
columnas indicar el artculo que cita, y la
otra ser el artculo citado.

articulo_id

ref_articulo_id

INTERRELACIONES Ternaria. Una


institucin financia a un autor para que
trabaje en un artculo. Crear una tabla que
lleva las llaves primarias de las tres tablas, y
una columna adicional para la fecha de
recepcin y el monto.
autor_id

articulo_id

institucion_id

monto

fecha recepcion

Modelos Orientado a objetos

MODELO ORIENTADO A OBJETOS

Modelo orientado a objetos.


Conceptos de datos orientados a objetos.
Modelado conceptual de objetos mediante UML.
Simbologa.
Conceptos avanzados.
Ejemplo de diagrama de clases.

El modelo relacional tradicional es limitado en su habilidad


para representar los datos e interrelaciones complejas
necesarias para aplicaciones avanzadas.
Gran influencia de las tecnologas orientadas a objetos.
La motivacin es mover de objetos temporales manipulados
por programas a objetos persistentes que pueden ser
almacenados en una base de datos.

BASES DE DATOS ORIENTADAS A


OBJETOS

una coleccin de objetos sobre la que se


definen ciertas reglas de organizacin en
almacenamiento secundario para poder
accesarlos.

CONCEPTOS DEL MODELO OO

Vehculo
Platero:Animal
Animal

Punto
Figura

(1,3)
(2,2)
(2,1)

(5,2.5)

Objeto: es una entidad discreta con lmites bien


definidos y con identidad, es una unidad atmica
que encapsula estado y comportamiento.
Literal: difiere de un objeto en que posee un estado
pero no un identificador de objeto.

Clase: es un conjunto de objetos que poseen la


misma estructura, incluyendo los mismos atributos
con los mismos tipos de datos y los mismos
mtodos e interrelaciones. Se definen listando sus
elementos de datos, mtodos e interrelaciones.

Atributo: es una seccin dentro de un clasificador


(una interfaz, clase, subsistema, base de datos o
componente) que describe un rango de valores que
una instancia del clasificador puede contener.
Operacin: un servicio que puede ser requerido a
un objeto para efectuar un comportamiento.

Mtodo: La implementacin de una operacin.


Especfica el algoritmo o procedimiento que efecta
el resultado de una operacin.
Interrelacin: una conexin semntica entre
elementos modelados.

Asociacin: La interrelacin semntica entre dos o


ms clasificadores que implica conexiones entre sus
instancias.
Generalizacin: una interrelacin entre un elemento
ms general y un elemento ms especfico.

Polimorfismo: es la habilidad para usar el mismo


nombre para diferentes operaciones.
Interfase: una declaracin de una coleccin de
operaciones que pueden ser usadas para definir un
servicio ofrecido por una instancia.

Jerarqua de clases: Organizacin de clases


consistentes de superclases y subtipos, en el cual
cada interrelacin es del tipo es un.
Identidad de objeto: Cada objeto en la base de
datos tiene asignado su propio identificador nico.
El modelo OO provee identificadores nicos
automticamente.

EJEMPLO

Figura

Tringulo

Cuadrado

Se aplica:
Jerarqua de clases
Generalizacin
Polimorfismo

Crculo

UML

MODELO Y DIAGRAMA

Un Modelo captura una vista de un sistema del


mundo real. Es una abstraccin de dicho sistema,
considerando un cierto propsito. As, el modelo
describe completamente aquellos aspectos del
sistema que son relevantes al propsito del modelo, y
a un apropiado nivel de detalle.
Un Diagrama es una representacin grfica de una
coleccin de elementos de modelado, a menudo
dibujada como un grafo conexo de arcos (relaciones)
y vrtices (otros elementos del modelo).

EL PORQUE DE MODELAR

Un modelo es una simplificacin de la realidad.


Se construyen modelos de sistemas complejos
porque no se puede comprender un sistema en su
totalidad.
El decidir qu modelo a crear tiene una influencia
profunda en cmo un problema es atacado y cmo
una solucin es formada.
Cada modelo puede ser expresado a diferentes
niveles de precisin.
Los mejores modelos estn conectados a la
realidad.

EL LENGUAJE DE MODELADO

Los mtodos orientados a objetos consisten, al


menos en principio, en un lenguaje y en un proceso
para modelar.
Un lenguaje de modelado es la notacin
(principalmente grfica) de que se valen los
mtodos para expresar diseos.
Notacin: material grfico que se ven en los
modelos (sintaxis del lenguaje de modelado).
Metamodelo: el cual es un diagrama, usualmente
un diagrama de clases que define la notacin, en
ella se muestra las relaciones entre las notaciones.

QU ES UML?

UML = Unified Modeling Language


Un lenguaje de propsito general para el modelado orientado a objetos
UML combina notaciones provenientes desde:
- Modelado Orientado a Objetos
- Modelado de Datos
- Modelado de Componentes
- Modelado de Flujos de Trabajo (Workflows)
UML es un lenguaje grfico para:

Especificar
Construir
Visualizar
Documentar

EL PAPEL DE UML

El principal papel de UML es describir


cualquier tipo de sistema en trminos de
diagramas orientados a objetos.
Sistemas de informacin.
Sistemas de tiempo real.
Sistemas distribuidos.
Software de sistemas.
Sistemas de negocios.

UML

El Lenguaje Unificado de Modelado (UML) es una notacin


que combina elementos de tres importantes estndares de
diseo OO:
OMT de Rumbaugh
Anlisis y diseo OO de Booch y
El modelo de Jacobson
Ha tenido varias modificaciones desde su creacin siendo la
ltima versin la 2.0.

DIAGRAMAS UML v1.x

DIAGRAMAS UML v2.0

PAQUETES

Permite dividir un sistema grande en


unidades ms pequeas.
Los paquetes ofrecen un mecanismo general
para la organizacin de los
modelos/subsistemas agrupando elementos
de modelado.

Paquete 1

Paquete 2

CASOS DE USO

Representa la
funcionalidad
que ofrece el
sistema en lo
que se refiere a
su interaccin
externa con los
usuarios.

SECUENCIA

Muestra una interaccin ordenada segn la


secuencia temporal de eventos.

ESTADOS

Muestra la secuencia de estados por los que pasa


un caso de uso, un objeto a lo largo de su vida, o
todo el sistema.
Controla la forma con la que el usuario se introduce
al sistema.

DISTRIBUCIN (DESPLIEGUE)

Muestran la disposicin fsica de los distintos nodos


que componen un sistema y el reparto de los
componentes sobre dichos nodos.

ACTIVIDAD

Muestra cmo fluye el


control de unas
clases a otras con la
finalidad de culminar
con un flujo de control
total que corresponde
con la consecucin
de un proceso ms
complejo.

COMPONENTES

Los diagramas de componentes describen los


elementos fsicos del sistema y sus interrelaciones.
Los componentes
representan todos los
tipos de elementos de
software que entran
en la fabricacin de
aplicaciones
informticas.

Transaccione
s

Actualizar_transaccione
s

bsqueda

Consultas
/reportes

Reservas

CLASES

Es el diagrama principal
para el anlisis y diseo.
Un diagrama de clases
presenta las clases del
sistema con sus
interrelaciones estructurales
y de herencia.
La definicin de clase
incluye definiciones para
atributos y operaciones.

OBJETOS

El Modelado
de Objetos
permite
representar el
ciclo de vida de
los objetos a
travs de sus
interacciones.

NUEVOS DIAGRAMAS EN UML v2.0

Diagramas de Tiempos. Empleados para mostrar las


interacciones donde el propsito fundamental consiste en
razonar sobre la ocurrencia de eventos en el tiempo que
provocan el cambio de estados de un elemento estructural
(clase, componente, etc.).

Diagrama de Comunicacin. Equivalente


al diagrama de colaboracin del OMG UML
1.x. Permite especificar interacciones entre
objetos que conforman la estructura interna
de un clasificador.

COLABORACIN

Es una forma de
representar interaccin
entre objetos.
El diagrama de
colaboracin se centra
en estudiar todos los
efectos de un objeto
dado durante un
escenario.

Diagrama de Estructura Compuesta. Se


emplea para visualizar de manera grfica las
partes que definen la estructura interna de un
clasificador.

Diagrama General de Interaccin. Se


emplea fundamentalmente para representar
las interacciones, a travs de diagramas o
fragmentos de diagramas de secuencias,
entre los actores y el sistema como una gran
caja negra, y de diagramas de actividades en
los que aparecen dichos fragmentos.

MODELO CONCEPTUAL DE OBJETOS CON


UML

Para el diseo de una base de datos se


pueden utilizar los diagramas de:
Casos de uso: para el anlisis de la base de
datos, examinando roles de los usuarios y
operaciones a realizarse con la base de
datos.
Diagrama de clases: para el diseo
conceptual de la base de datos.

DIAGRAMA DE CLASES

El Diagrama de Clases es el diagrama principal utilizado


para anlisis y diseo.
Un diagrama de clases presenta las clases del sistema con
sus relaciones estructurales y de herencia.
La definicin de clase incluye definiciones para atributos y
operaciones.
El modelo de casos de uso aporta informacin para
establecer las clases, objetos, atributos y operaciones.
Representa conjuntos de objetos que comparten atributos y
caractersticas comunes.
Muestra el conjunto de clases, interfaces, colaboracin y
relaciones entre objetos.

ELEMENTOS

Superior: Contiene el nombre.


Intermedio: Contiene los atributos que caracterizan a la
Clase (privado, protegido o pblico).
Inferior: Contiene los mtodos, los cuales son la forma como
interacta el objeto con su entorno (privado, protegido o
pblico).

ATRIBUTOS

Pblico: Indica que el atributo ser visible tanto dentro


como fuera de la clase, es decir, es accesible desde
todos lados.
Privado: Indica que el atributo slo ser accesible
desde dentro de la clase (slo sus mtodos lo pueden
accesar).
Protegido: Indica que el atributo no ser accesible
desde fuera de la clase, pero si podr ser accesado por
mtodos de la clase adems de las subclases que se
deriven (ver herencia).

MTODOS

Un mtodo u operacin es la implementacin de un servicio de la


clase, que muestra un comportamiento comn a todos los objetos. En
resumen es una funcin que le indica a las instancias de la clase que
hagan algo:

Pblico: Indica que el mtodo ser visible tanto dentro como fuera de
la clase, es decir, es accesible desde todos lados.
Privado: Indica que el mtodo slo ser accesible desde dentro de la
clase (slo otros mtodos de la clase lo pueden invocar).
Protegido: Indica que el mtodo no ser accesible desde fuera de la
clase, pero si podr ser invocado por mtodos de la clase adems de
mtodos de las subclases que se deriven (ver herencia).

EJEMPLO

PRINCIPIOS PARA EL MODELADO

Atomizacin: es la divisin de un complejo dominio


del mundo en entidades individuales (tomos),
llamados objetos.

Clasificacin: usa las interrelaciones equivalentes


de objetos con propiedades comunes y similares
para integrarlas en un conjunto y describirlas con
una clase equivalente para el conjunto de
elementos.
Vehculo

Identificacin: la identificacin es realizada


por un identificador para cada unidad.

Vehculo

Se identifica por un cdigo que puede ser


El nmero de motor.

Encapsulacin: asegura la consistencia de un


conjunto de informacin. Un acceso externo directo
a la informacin encapsulada no es posible.
Persistencia: el ciclo de vida de un objeto
persistente es independiente de su uso en un
proceso de aplicacin.

Asociacin: describe interrelaciones entre


objetos con derechos iguales.

Vehculo

Conducido por

Piloto

Generalizacin y especializacin: definen una


interrelacin es un entre objetos. Usando este
principio en diferentes niveles se forman jerarquas o
familias de clases.
Vehculo

Terrestre

Areo

Martimo

Estandarizacin: se definen los objetos y clases


independientemente de un dominio especfico del
mundo, como elementos de modelado estndar.

Agregacin y composicin: definen una


interrelacin es parte de entre clases. La
diferencia entre la agregacin y la composicin est
dada
por
la
dependencia
entre
objetos
componentes y el objeto contenedor.
Carro
UML 2.0 ya slo
considera la
composicin

Motor

Asiento

DIAGRAMAS ESTTICOS

Los diagramas estticos muestran mediante un grfico la


clasificacin de elementos conectados mediante relaciones
estticas.
El diagrama de clase describe los tipos de objetos que hay
en el sistema y las diversas clases de relaciones estticas
que existen entre ellos. Hay dos tipos principales de
relaciones estticas:
Asociaciones (por ejemplo, un cliente puede rentar diversas
videocintas).
Subtipos (una enfermera es un tipo de persona).

DIAGRAMAS DE CLASES

Los diagramas de clase muestran los atributos y mtodos de una clase.

Por todo esto podemos afirmar que:

El Diagrama de Clases es el diagrama utilizado para anlisis y diseo.


Un diagrama de clases presenta las clases del sistema con sus relaciones
estructurales y de herencia.
La definicin de clase incluye definiciones para atributos y operaciones.
Un diagrama de clases es una alternativa de representacin de modelos de
objetos. Esta notacin es independiente de cualquier lenguaje de
programacin.

SIMBOLOGA DE LOS DIAGRAMAS DE


CLASES

Clase: Puede representarse con el smbolo


completo que incluye los atributos y mtodos de la
clase o con un icono de clase para simplicidad.

Clase
atributos
Mtodos

Clase

Atributos y mtodos: stos pueden tener conos indicadores


de la visibilidad que presentan en la clase. Los conos
dependern de la herramienta de modelado.
Por lo general se utilizan smbolos como:
- Atributo o mtodo privado.
+ Atributo o mtodo pblico.
# Atributo o mtodo protegido.

Interrelaciones: las interrelaciones entre clases se


representan con lneas que siguen estos formatos:

Dependencia

Nombre de asociacin y direccin: El nombre de


la asociacin es opcional. Se puede aadir un
tringulo negro slido que indique la direccin en la
cual leer el nombre de la asociacin.

Multiplicidad: es una restriccin que se pone a una


asociacin, que limita el nmero de instancias de
una clase que pueden tener esa asociacin con una
instancia de la otra clase.

Cuenta

La multiplicidad se representa con:


Un nmero fijo: 1
Un intervalo de valores: 2..5
Un rango en el cual uno de los extremos es un
asterisco. Por ejemplo, 2..* significa 2 o ms.
Una combinacin de elementos separados por
comas: 1, 3..5, 7, 15..*
Un asterisco: * . Indica cero o ms.

Roles: Indican el papel que juega una clase en una


asociacin.

CONCEPTOS AVANZADOS

Estereotipo: Son una forma de extender los


diagramas de clase, que permiten definir un estilo
de plantilla de clases. Se colocan entre comillas
espaolas

Clase abstracta: son clases que no pueden


generar ninguna instancia de clase. Se consideran
un concepto intermedio que debe ser redefinido
mediante especializacin. Se representan igual que
una clase normal y se pueden diferenciar
colocndoles el estereotipo abstract

Estereotipo de asociacin: Las asociaciones


pueden estar etiquetadas con estereotipos que
cambian su significado.

Clase A

create

Clase B

Indica que la clase B es creada por la clase A

Clase asociacin: muestran como se implementa


una asociacin particular. Pueden indicar tambin,
formas especiales de referencia, como referencias
dbiles.

Mensaje de
registro

Registrador
Referencia
dbil

Asociaciones N-arias: es una asociacin en la que


participan ms de dos clases.
Ao

Equipo

Jugador

Marcas

Asociaciones calificadas: un calificador es un atributo de


la asociacin cuyos valores sirven para particionar el
conjunto de objetos enlazados a otro.
Un calificador se representa como un pequeo rectngulo
conectado al final de una asociacin y a la clase.
El calificador es parte de la asociacin y no de la clase.

Asociaciones calificadas

EJEMPLO

Asociacin
marido

0.. 1

casado-con
0.. 1
mujer
jefe

Persona

nombre
s. s.

0.. 1
Administra

empleado

trabaja-para
emplea-a

Compaa
nombre
direccin

Agregacin

coche

Persona

1
0..2
+Padre
1
motor

+Hijos

Generalizacin

Responsabilidades

Herencia Mltiple

Dependencia

Herencia

Polimorfismo
Se relaciona fuertemente con herencia.
Muchas formas.

III. Modelo Relacional

El Modelo Relacional es sin lugar a dudas el


fundamento de la tecnologa moderna de base
de datos.
Es un modelo lgico.
lgebra en la mayora de los SMBD.
SMBD: aplicacin que permite definir, crear,
mantener la BD y proporciona acceso a la
misma.

INTRODUCCIN

En 1970 Codd introdujo el modelo relacional, que ms


tarde sera la base para los actuales SMBD.

Dr. Edgar Frank Codd


Fallecido el 18 de abril del
2003.

Quin fueEdgar Frank Codd?


Naci en Portland Bill, Inglaterra.
Estudi becado matemticas y qumica en Oxford.
A los 25 aos viaj a los Estados Unidos y consigui trabajo en IBM.
En 1965 termin un doctorado en computacin de la Univ. de Michigan en Ann
Arbor.
Una evaluacin negativa de su supervisor en Nueva York signific un traslado a los
laboratorios de IBM en San Jos en 1967. Sera aqu que Codd conocera el mundo de
las bases de datos, al que se dedicara en los aos siguientes.
En 1996 obtuvo el premio de la IEEE a pioneros de la computacin.

Edgar Frank Codd Sus Contribuciones

En 1969 invent el Modelo Relacional, el Modelo de Base de Datos ms utilizado hoy en da.
Al inicio el apoyo de IBM a los Sistemas de Base de Datos Tradicionales (de redes) era
mayoritario.
Hasta 1978 el Modelo Relacional llam la atencin del Presidente de IBM Frank Cary.
Ms tarde IBM anuncia SQL/DS su 1er producto relacional en 1981 y despus sacan al mercado
DB2 en 1983.
El trabajo inicial de Codd fue publicado en Communications of the ACM en 1970.
En 1985 postul una lista de 12 reglas que deba cumplir un producto de bases de datos para
ser llamado relacional.

Un poco de historia...

1970, E.F.Codd introduce Modelo Relacional.


Codd, experto matemtico.
Anteriormente uso de punteros.
Direccionamiento a disco.
El archivo B contena un campo con la direccin de disco de A
(relacin).
Desventajas:

Operaciones limitadas sobre datos.


Vulnerables a cambios fsicos.
Mover datos se tenan que redireccionar punteros.

Modelo Relacional, segunda generacin de SMBD.


Datos estructurados a nivel lgico.
Tablas (filas y columnas).
Estructura Lgica, No fsica (Sistema Relacional).
Estructura a nivel fsico era diferente, pero no importaba (archivos
secuenciales, indexacin, cadenas apuntadores, etc.).
Ventaja: sencillez de su estructura lgica.

Las bases de datos relacionales tienen un principio


interesante, denominado:
Principio de Informacin
Todo

el contenido de informacin de la base de datos est


representado en una sola forma; es decir, como valores
explcitos dentro de posiciones de columnas dentro de filas
dentro de tablas.

Aspectos de datos del Modelo Relacional:

Estructura de Datos.
Integridad de Datos.
Manejo de Datos.
Estructura Datos:

La Relacin.
Concepto matemtico.
Representa por una tabla.
Terminologa matemtica (teora de conjuntos y lgica de predicados).

ESTRUCTURA

Una base de datos relacional consiste de una coleccin


de tablas. Cada tabla tiene una estructura similar a la
que se present en el modelo Entidad-Interrelacin.
Cada rengln de esta tabla representa una relacin
entre un conjunto de valores, esto es conocido
formalmente como tupla.
Dado que una tabla es un conjunto de estas
relaciones, hay una fuerte correspondencia entre el
concepto de tabla y el concepto de relacin.

Un atributo representa las propiedades de la relacin, y


se representan mediante columnas en las tablas.
Cada atributo de una relacin se caracteriza por un nombre
y por un dominio.
Un dominio indica qu valores pueden ser asumidos por
una columna de la relacin, o sea, es el conjunto de valores
sobre los que se define el tipo de un atributo.
Por ejemplo, del atributo das de la semana, su dominio
podra ser: {Lunes, , Domingo}.

Matemticamente una relacin definida sobre los n


dominios D1, D2,.., Dn no necesariamente distintos, es
un subconjunto del producto cartesiano de estos
dominios donde cada elemento de la relacin, una
tupla, es una serie de n valores ordenados, o sea, su
primer elemento es de D1, el segundo de D2, etc*.
No debe confundirse con el concepto de relacin que
se dio en el modelo entidad-interrelacin.
*Definicin de Codd, 1970, A relational Model of Data for Larged Shared Data Banks.

Los dominios de todos los atributos deben ser


atmicos (sus dominios son indivisibles).
Es posible que varios atributos tengan el mismo
dominio (nombre_cliente, nombre_empleado).
La integridad de dominio significa que todas las
entradas para cada atributo sean vlidas. Se puede
restringir el tipo de dato, intervalo de valores,
formato, NOT NULL, etc., esto para garantizar la
integridad de los datos.

Los dominios sirven para restringir las comparaciones.


Cuando se realiza una consulta, las condiciones de la consulta
suelen representarse a travs de comparaciones entre atributos de
las relaciones.
Una forma sencilla de identificar si la consulta es semnticamente
correcta es analizar si los atributos que forman parte de una
comparacin son compatibles, es decir, si pertenecen al mismo
dominio.
SELECT * FROM PACIENTE WHERE
PACIENTE.FECHA_INGRESO = 01011984;
SELECT * FROM PACIENTE WHERE
ANIO(PACIENTE.FECHA_INGRESO) < 1984;

Tupla: fila de la relacin.


No siguen orden

Grado: nmero de atributos que contiene una relacin.


No cambia con frecuencia

Cardinalidad: nmero de tuplas que contiene.


Por insertar y eliminar varia constantemente.

Una relacin R definida sobre un conjunto de dominios D1,


D2, D3,... Dn, consta de...
CABECERA (atributo:dominio)
{(A1:D1), (A2:D2),.... (An:Dn)}
El grado de la relacin es n
No hay atributos que se llamen igual

CUERPO (atributo:valor)
{(A1 : VI1), (A2 : VI2),...... (An : VIn)}
Con i=1,2,..,m m es la cardinalidad de la relacin

Grficamente
Relacin = Tabla
Atributo = Columna
Tupla = Fila

La menor unidad semntica de informacin (dato individual)


= Valor Escalar (no tienen estructura interna)

Propiedades Relaciones:

Cada relacin tiene nombre y es distinto a los dems.


Valor de atributo es atmico (normalizado).
No hay atributos con mismo nombre.
Orden atributos no importa (no aporta informacin).
Tuplas distintas, no hay duplicadas.
Orden tuplas no importa (no aporta informacin).

Tipos de Relaciones:

Relaciones Base
Tienen nombre.
Forman parte directa de la BD (autnomas).
Vistas
Con nombre y derivadas.
No poseen datos almacenados propios.
Instantneas
Con nombre y derivadas.
Son reales, tienen datos propios almacenados.
Solo lectura y se refrescan peridicamente.
Resultados de Consulta
Originan de una consulta.
Con o sin nombre.
No persistentes en la BD.

Resultados intermedios
Origen = subconsultas.
Sin nombre y no persisten en la BD.

Resultados temporales
Con nombre.
Se destruyen automticamente en un momento dado.

Claves
Identificadores nicos.
Mediante valores de atributos.

Superclave
Atributo o conjunto de atributos que identifican de modo nico las
tuplas de una relacin.

Clave candidata
Una superclave en la que ninguno de sus subconjuntos es una
superclave de la relacin.

Clave Candidata (propiedades)


Unicidad (nica)
Irreducibilidad (minimalidad)

Clave candidata con ms de un atributo = Clave Compuesta.


Para identificar una clave candidata se debe conocer el
significado real de los atributos.
Clave primaria = clave candidata seleccionada por el
diseador.

Peor de los casos


Clave primaria = todos los atributos de la relacin.

Claves Alternativas (Alternas)


Claves candidatas no seleccionadas como primarias.

Clave Ajena (Fornea)


Atributo(s) que coinciden con la clave primaria de otra relacin.
Representan relaciones entre datos.
Representa una referencia a otra tupla.

Una BD Relacional es un conjunto de relaciones


normalizadas
Para representar el esquema de una BD Relacional:
Nombre de sus relaciones
Atributos
Dominios
Claves primarias
Claves ajenas
VISITA (Qnum,Inum,Fecha,Comentario)

Clave ajena
ONUM

PLANTILLA OFICINA: Oficina pertenece empleado

RESUMEN
Una relacin

una tabla con ciertas caractersticas

Una tupla

una fila en la relacin

Un atributo

una columna de la relacin

Cardinalidad

nmero de filas (tuplas) en la relacin

Atributo

Columna

Grado

Nmero de columnas

La clave primaria

un identificador nico para la relacin

Dominio

una coleccin de valores

RELACIN

---- ---- --- ----- --- --- ----- --- --

D.F
GUDALAJARA
ETC...

PROVEEDOR:NOMBRE STATUS:STATUS CIUDAD:CIUDAD


Fernando
20
D.F.
Jos
10
Guadalajara
Joel
30
Monterrey
Miguel
20
Toluca
Ivan
30
Cancn
ATRIBUTO
GRADO

CARDINALIDAD

RELACIN

V#:V#
v1
v2
v3
v4
v5

---- ---- --- ----- --- --- ----- --- --

TUPLA

---- ---- --- ----- --- --- ----- --- -Clave Primaria

DOMINIO

Resumen

ESTRUCTURA DEL MODELO RELACIONAL

Ejemplo de RELACIN:

RESTRICCIONES DEL MODELO

RESTRICCIONES SEMNTICAS DEL


MODELO

EL MODELO Y LA ARQUITECTURA ANSI

EL MODELO RELACIONAL

Para el desarrollo de este modelo, Codd introdujo una


teora que lo respalda:
lgebra relacional que esta basada en la teora de
conjuntos.
Calculo relacional basado en lgica de predicados
de primer orden.
Los SMBD tpicamente utilizan lenguajes de alto nivel
que pueden ser clasificados en procedimentales y no
procedimentales.

NO PROCEDIMENTAL

En un lenguaje no procedimental, el usuario


describe la informacin deseada sin dar algn
procedimiento especfico para obtener la
informacin:

{ t | C(t) }
Donde C es una condicin dada.

PROCEDIMENTAL

En el lenguaje procedimental el usuario indica al


sistema una secuencia de operaciones sobre la
base da datos para calcular el resultado
deseado:

Selecciona Atributon de Tabla1

LGEBRA VS. CLCULO

El lgebra relacional es procedimental y


consiste en un conjunto de operaciones que
toman 1 2 relaciones como entrada y
produce una nueva relacin como resultado.
El clculo relacional es no procedimental y
slo describe la informacin deseada sin algn
procedimiento especfico.

PRINCIPIOS BSICOS

Principios bsicos Modelo Relacional:


Estructura de datos relacional.
Reglas de Integridad.
Manipulacin (lgebra Relacional).
Clculo Relacional.

lgebra Relacional
Conjunto de operaciones para manipular la
estructura de datos relacional.
Especificar la consulta de datos.
Lenguaje procedimental.

Clculo Relacional
Lenguaje equivalente.
No procedimental.

Disciplinas tienen bases tericas.


Industria del automvil: aerodinmica.

Menor consumo de combustible.


Teora hace las cosas predecibles.

Saber que ocurrir al realizar una accin.


Ejemplo: BD Relacional.

Si un par de tablas estn relacionadas?


Extraccin de datos de las dos a la vez.

Datos obtenidos se basan en valores coincidentes del campo que


tienen en comn.
Por lo tanto, tienen un resultado predecible.
Modelo Relacional y Matemticas
Teora de conjuntos.
Lgica de predicados de primer orden.
Ventaja: Seguro, Robusto, Predecible, Confiables.
No es necesario ser expertos en Matemticas.

Teora describe:
Elementos bsicos para crear una BD Relacional.
Las lneas para construirla.

El organizar estos elementos para conseguir el resultado =


Diseo.

EJEMPLO
Los atributos Nombre, Ciudad, Tipo-Cliente toman los valores de sus
correspondientes dominios.
DOMINIOS

NOMBRES
xxxxxxxxxxxxxx
50

CIUDADES
MONTERREY
MONTERREY
D.F.
MONTERREY
ACAPULCO
MAZATLAN
VERACRUZ
YUCATAN

TIPOS DE CLIENTES
BANCOS
CENTROS EDUCATIVOS
EMPRESAS PRIVADAS
FILIALES
HOSPITALES PRIVADOS
PARA-ESTATALES
DOCTORES
ACCIONISTAS

Relacin Cliente
Nombre
Ciudad
INSTITUTO MEXICANO, A.C.
MONTERREY
UNIVERSIDAD DEL SUR, A.C.
MONTERREY
ADMINISTRADORA MEDICA DE OCCIDENTE, S.A. D.F.
DE C.V.
SERVICIOS HOSPITALARIOS S.A. DE C.V.
MONTERREY
SERVICIOS AGENTE DE SEGURIDAD
ACAPULCO
LAVA RPIDO S.A. DE C.V.
MAZATLAN
BEBIDAS NACIONALES, S.A. DE C.V.
VERACRUZ
CLINICAS DEL NORTE, S.A. DE C.V.
YUCATAN

Tipo-Cliente
BANCOS
CENTROS EDUCATIVOS
EMPRESAS PRIVADAS
FILIALES
HOSPITALES PRIVADOS
PARA-ESTATALES
DOCTORES
ACCIONISTAS

EL MODELO DE DATOS RELACIONAL

El modelo relacional representa la base de datos


como una coleccin de relaciones. En trminos
ms sencillos, cada relacin se asemeja a una
tabla de valores.
En la terminologa formal del modelo relacional,

una fila se denomina tupla, una cabecera de


columnas es un atributo y la tabla se denomina
relacin. El tipo de datos que describe los tipos de
valores que puede aparecer en cada columna se
llama dominio.

Un esquema de relacional R, denotado por R(A1, A2, ..., An),


se compone de un nombre de relacin R y una lista de
atributos A1, A2, , An. El grado de una relacin es el nmero
de atributos n de su esquema de relacin.
ALUMNO(Nombre, NSS, TelefonoCasa, Direccin)
En este esquema de relacin, ALUMNO es el nombre de la
relacin, la cual tiene 4 atributos. El grado de la relacin es 4.

REGLAS DE INTEGRIDAD

Son expresiones de verdad asociadas a una


base de datos que siempre tienen que ser
verdaderas.
Las reglas de integridad aseguran que los
cambios hechos a la base de datos no
resulten en prdida de consistencia de los
datos.

Nulos

Atributo desconocido o ausencia de valor


No representa 0 (cero) ni la cadena vaca
Ocurre porque al momento de insertar la tupla:
se desconoca el valor (nulo aplicable)
no tiene sentido para dicha tupla (nulo no aplicable)

Nulos
Por ejemplo la relacin de productos puede presentar
nulos en ciertos atributos.
Nulos

Relacin: Producto
Producto#
100
101
102
103

Descripcion Precio Existencia


TABLA
42
PARED
750.00
SILLA
13
VESTIDOR 500.00
8

Clave Primaria

RESTRICCIONES DE DOMINIO

Se debe asociar a cada atributo con un conjunto de posibles


valores
Son las restricciones ms bsicas del modelo relacional.
Son fciles de validar.
Una clara definicin de dominios ayuda a validar los valores y a
que la informacin tenga sentido.

EJEMPLO

Los atributos
nombre_cliente y nombre_empleado
pueden pertenecer al mismo dominio, ambos son cadenas de
caracteres.
Pero
sueldoxhora e ndice_de_ganancia
a cierto nivel ambos son nmeros con decimales, pero a un nivel
conceptual el sueldo no puede ser menor a x cantidad y un
ndice va de 0.0 a 1.0

INTEGRIDAD DE ENTIDADES

Ningn componente de la clave primaria de una relacin base puede


aceptar nulos.
La regla de integridad de las entidades se aplica a las relaciones
base.
La regla de integridad de las entidades se aplica slo a las claves
primarias.
Por definicin, una clave primaria es un identificador irreducible que se
utiliza para identificar de modo nico las tuplas. Si se permite que parte
de la clave primaria sea nula, se est diciendo que no todos sus
atributos son necesarios para distinguir las tuplas, con lo que se
contradice la irreducibilidad .

REGLAS DE INTEGRIDAD REFERENCIAL

Si en una relacin hay alguna clave ajena, sus valores deben


coincidir con valores de la clave primaria a la que hace
referencia, o bien, deben ser completamente nulos.
Se aplica a claves ajenas.
Se trata de justificar que si B hace referencia a A,
entonces A debe existir.
La regla indica lo que no se debe presentar pero no dice
como debe evitarse.

Si estando en un estado legal, llega una peticin de operacin


que conduce a un estado ilegal existen 2 opciones:
Rechazar la operacin.
Aceptar la operacin y realizar las operaciones que
conduzcan a un estado legal.

Por lo tanto toda llave ajena deber contestar a 3 preguntas:


Regla de nulos
Tiene sentido aceptar nulos?
Regla de borrado
Qu ocurre si se intenta borrar la tupla representada por la clave ajena?

Restringir: no se permite borrar la tupla referenciada.


Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas que la referencian
mediante la clave ajena.
Anular: se borra la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave
ajena (slo si acepta nulos).

Regla de modificacin
Qu ocurre si se intenta modificar el valor de la clave primaria de la tupla referenciada por la clave ajena ?

Restringir: no se permite modificar el valor clave primaria de la tupla referenciada.


Propagar: se modifica el valor de la clave primaria de la tupla referenciada y se propaga a las
tuplas que la referencian mediante la clave ajena.
Anular: se modifica la clave primaria de la tupla referenciada y las tuplas que la referenciaban
ponen a nulo la clave ajena (slo si acepta nulos).

REGLAS DEL NEGOCIO

Los usuarios o los administradores de la base de datos pueden imponer ciertas


restricciones especficas sobre los datos, denominadas reglas de negocio.

Son siempre referidas en lenguaje natural en un inicio.


Antes de definirse los datos deben de cumplir la condicin.
A este conjunto de reglas Codd le llama:

Integridad del usuario

Ejemplo:
Restriccin en lenguaje natural:

1.

Todos los proveedores deben tener valor del status entre 0 y 101

Restriccin formal

CONSTRAINT PROV_R1
IS_EMPTY (PROV WHERE STATUS <1 OR STATUS>100)
El Administrador debe hacer que se ejecute esta restriccin en todas las
operaciones que intenten insertar un proveedor o cambiar el estatus de uno
existente

RESUMEN

Reglas de Integridad

Nulo

Restricciones de dominio

Son expresiones de verdad asociadas a una base de datos que


siempre tienen que ser verdaderas.

Atributo desconocido o ausencia de valor

Asociar a cada atributo con un conjunto de posibles valores

Regla de integridad de
Entidades

Ningn componente de la clave primaria de una relacin base puede


aceptar nulos.

Reglas de Integridad
referencial

Si en una relacin hay alguna clave ajena, sus valores deben


coincidir con valores de la clave primaria a la que hace referencia, o
bien, deben ser completamente nulos.

Reglas de negocio o Integridad


del Usuario

Restricciones especficas sobre los datos

LGEBRA RELACIONAL

Es un lenguaje de consulta procedimental.


Consta de un conjunto de operaciones.
Toman como entrada una o dos relaciones y producen
como resultado una nueva relacin (lgebra).
Es posible anidar y combinar operadores.

Hay ocho operadores en el lgebra relacional que construyen


relaciones y manipulan datos, estos son:
Operaciones bsicas
(fundamentales)

1. Unin.
2. Seleccin.
3. Diferencia.
4. Producto.
5. Proyeccin.

Operaciones derivadas
(compuestas)

1. Interseccin.
2. Divisin.
3. Join (Reunin).

Operadores Unarios y Binarios.

La Seleccin y la proyeccin son operaciones unarias


porque operan sobre una sola relacin.

El resto de las operaciones son binarias porque


trabajan sobre pares de relaciones.

SELECCIN
Opta por tuplas que satisfagan cierto predicado. Compara

todas las tuplas, una por una y selecciona slo las tuplas que
satisfagan cierta condicin (predicado) especificada.
Representado por sigma ().
Predicado aparece como subndice de ().
La relacin se da entre parntesis.

EJEMPLO

Enum

Nombre

Apellido

Direccin

Telfono

Puesto

Fecha_nac

Salario

DNI

Onum

EL21

Amelia

Pastor

Magallanes, 15

964 284 560

Director

12/10/62

30000

39432212E

O5

EG37

Pedro

Cubedo

Bayarri, 11

964 535 690

Supervisor

24/3/57

18000

38766623X

O3

EG14

Luis

Collado

Borriol, 35

964 522 230

Administ.

9/5/70

12000

24391223L

O3

EA9

Rita

Renau

Casalduch,

964 257 550

Supervisor

19/5/60

18000

39233190F

O7

EG5

Julio

Prats

Melilla, 23

964 524 590

Director

19/12/50

24000

25644309X

O3

EL41

Carlos

Baeza

Herrero, 51

964 247 250

Supervisor

29/2/67

18000

39552133T

O5

salario > 18000 (PLANTILLA)


Resultado:
Enum

Nombre

Apellido

Direccin

Telfono

Puesto

Fecha_nac

Salario

DNI

Onum

EL21

Amelia

Pastor

Magallanes, 15

964 284 560

Director

12/10/62

30000

39432212E

O5

EG5

Julio

Prats

Melilla, 23

964 524 590

Director

19/12/50

24000

25644309X

O3

Obtener todos los empleados que trabajan en la oficina 03, dada la siguiente
relacin (Plantilla)
Enum

Nombre

Apellido

Direccin

Telfono

Puesto

Fecha_nac

Salario

DNI

Onum

EL21

Amelia

Pastor

Magallanes, 15

964 284 560

Director

12/10/62

30000

39432212E

O5

EG37

Pedro

Cubedo

Bayarri, 11

964 535 690

Supervisor

24/3/57

18000

38766623X

O3

EG14

Luis

Collado

Borriol, 35

964 522 230

Administ.

9/5/70

12000

24391223L

O3

EA9

Rita

Renau

Casalduch,

964 257 550

Supervisor

19/5/60

18000

39233190F

O7

EG5

Julio

Prats

Melilla, 23

964 524 590

Director

19/12/50

24000

25644309X

O3

EL41

Carlos

Baeza

Herrero, 51

964 247 250

Supervisor

29/2/67

18000

39552133T

O5

Onum = 03 (PLANTILLA)
Resultado:
Enu
m

Nombr
e

Apellido

Direccin

EG37

Pedro

Cubedo

Bayarri, 11

EG14

Luis

Collado

Borriol, 35

EG5

Julio

Prats

Melilla, 23

Fecha_na
c

Salari
o

24/3/57

18000

Administ.

9/5/70

12000

Director

19/12/50

24000

Telfono

Puesto

964 535
690
964 522
230
964 524
590

Superviso
r

DNI
38766623
X
24391223
L
25644309
X

Onum
O3
O3
O3

Obtener todos los inmuebles de Castelln con un alquiler mensual de hasta 350.
Dada la siguiente relacin (Inmueble)
Inum

Calle

Area

Poblacin

Tipo

Hab

Alquiler

Pnum

IA14

Enmedio, 128

Centro

Castelln

Casa

600

P46

IL94

Riu Ebre, 24

Ronda Sur

Castelln

Piso

350

P87

IG4

Sorell, 5

Grao

Castelln

Piso

300

P40

IG36

Alicante,1

Segorbe

Casa

325

P93

IG21

San Francisco, 10

Vinaroz

Piso

550

P87

IG16

Capuchinos, 19

Castelln

Piso

400

P93

Rafalafena

poblacin='Castelln' AND alquiler<=350 (INMUEBLE)

Resultado:
Inum

Calle

Area

Poblacin

Tipo

Hab

Alquiler

Pnum

IL94

Riu Ebre, 24

Ronda Sur

Castelln

Piso

350

P87

IG4

Sorell, 5

Grao

Castelln

Piso

300

P40

PROYECCIN

Devuelve una relacin que contiene slo los atributos


especificados junto con el operador.
Se representa por la letra griega pi minscula (), con los
atributos objeto de la proyeccin como subndices del
operador.
Por ejemplo:

c1,c2,c3(A)

*devolvera una relacin formada por los atributos, c1, c2 y


c3 de la relacin A.

EJEMPLO

Obtener un listado de empleados mostrando su nmero, nombre, apellido y salario.


Dada la siguiente Relacin (Plantilla)
Enum

Nombre

Apellido

Direccin

Telfono

Puesto

Fecha_nac

Salario

DNI

Onum

EL21

Amelia

Pastor

Magallanes, 15

964 284 560

Director

12/10/62

30000

39432212E

O5

EG37

Pedro

Cubedo

Bayarri, 11

964 535 690

Supervisor

24/3/57

18000

38766623X

O3

EG14

Luis

Collado

Borriol, 35

964 522 230

Administ.

9/5/70

12000

24391223L

O3

EA9

Rita

Renau

Casalduch,

964 257 550

Supervisor

19/5/60

18000

39233190F

O7

EG5

Julio

Prats

Melilla, 23

964 524 590

Director

19/12/50

24000

25644309X

O3

EL41

Carlos

Baeza

Herrero, 51

964 247 250

Supervisor

29/2/67

18000

39552133T

O5

enum,nombre,apellido,salario (PLANTILLA)

Resultado:
Enum

Nombre

Apellido

Salario

EL21

Amelia

Pastor

30000

EG37

Pedro

Cubedo

18000

EG14

Luis

Collado

12000

EA9

Rita

Renau

18000

EG5

Julio

Prats

24000

EL41

Carlos

Baeza

18000

PRODUCTO CARTESIANO

En lgebra relacional el producto de dos relaciones A y


B es: A Veces B o A X B
Produce el conjunto de todas las tuplas t tales que t es
el encadenamiento de una tupla a perteneciente a A y
de una b que pertenece a B. se utiliza el smbolo X para
representar el producto.
Se obtienen todas las posibles combinaciones de
tuplas entre ambas relaciones.

EJEMPLO

(Prestamo)

(Cliente)

nmero-prstamo

nombre-cliente

P-11

Gmez

P-14
P-15
P-16

Fernndez

392

nombre cliente

nmero prstamo

Gmez

P-11

Gmez

P-14

Gmez

P-15

Gmez

P-16

Fernndez

P-11

Fernndez

P-14

Fernndez

P-15

Fernndez

P-16

UNIN

El resultado de la unin es una relacin.


Debe cumplirse la compatibilidad respecto a la unin
entre los dos operandos, lo que garantiza que los atributos
de las relaciones (cabeceras) que participan del operador
en la expresin sean del mismo grado y se correspondan
en cuanto a su dominio.
La unin de dos relaciones A y B compatibles respecto a
la unin, A B es otra relacin cuya cabecera es idntica
a la de A o B y cuyo cuerpo est formado por todas las
tuplas t pertenecientes ya sea a A o a B (o a las dos).

EJEMPLO
Obtener un listado de las reas en las que hay oficinas o inmuebles para alquilar.
Onum

Calle

Area

Poblacin

Telfono

Fax

O5

Enmedio, 8

Centro

Castelln

964 201 240

964 201 340

O7

Moyano, s/n

Centro

Castelln

964 215 760

964 215 670

O3

San Miguel, 1

Villarreal

964 520 250

964 520 255

O4

Trafalgar, 23

Castelln

964 284 440

964 284 420

O2

Cedre, 26

Villarreal

964 525 810

964 252 811

Grao

Inum

Calle

Area

Poblacin

Tipo

Hab

Alquiler

Pnum

IA14

Enmedio, 128

Centro

Castelln

Casa

600

P46

IL94

Riu Ebre, 24

Ronda Sur

Castelln

Piso

350

P87

IG4

Sorell, 5

Grao

Castelln

Piso

300

P40

IG36

Alicante,1

Segorbe

Casa

325

P93

IG21

San Francisco, 10

Vinaroz

Piso

550

P87

IG16

Capuchinos, 19

Castelln

Piso

400

P93

Rafalafena

Area
( rea (OFICINA) ) U

( rea (INMUEBLE) )
Resultado:

Centro
Grao
Ronda Sur
Rafalafena

REUNIN NATURAL (NATURAL JOIN)

La reunin natural ( |x| ) de dos relaciones A y B obtiene como resultado una


relacin cuyas tuplas son todas las tuplas de A concatenadas con todas las tuplas
de B que en los atributos comunes (que se llaman igual) tienen los mismos
valores. Estos atributos comunes aparecen una sola vez en el resultado.
Es una combinacin del producto cartesiano, la seleccin (para seleccionar las
tuplas que tienen los mismos valores) y la proyeccin (para que aparezcan en el
resultado los atributos comunes una sola vez).

EJEMPLO
Averiguar los nombres de todos los clientes que tienen concedido un prstamo en
el banco y averiguar su importe.
nombre-cliente, prstamo.nmero-prstamo, importe
(prestatario.nmero-prstamo = prstamo.nmero-prstamo (prestario x cliente))
nombre cliente

nmero prstamo

Fernndez

P-16

Gmez

P-93

Gmez

P-15

Lpez

P-14

Prez

P-17

1000

Santos

P-11

Moralzarzal

2000

Sotoca

P-23

Becerril

500

Valdivieso

P-17

nmero-prstamo

nombre-sucursal

importe

P-11

Collado Mediano

900

P-14

Centro

1500

P-15

Navacerrada

1500

P-16

Navacerrada

1300

P-17

Centro

P-23
P-93

nombrecliente

nombre-cliente, nmeroprstamo, importe

(prestatario |x|
cliente)

nmero prstamo

Import
e

Fernndez

P-16

1.300

Gmez

P-23

2.000

Gmez

P-11

900

Lpez

P-15

1.500

Prez

P-93

500

Santos

P-17

1.000

Sotoca

P-14

1.500

Valdivieso

P-17

1.000

DIVISIN

Suponiendo que la cabecera de R es el conjunto de atributos A y que la


cabecera S es el conjunto de atributos B, tales que B es un subconjunto
de A, y si C=A-B (los atributos de R que no estn en S), la divisin ()
obtiene una relacin cuya cabecera es el conjunto de atributos C y
que contiene las tuplas de R que estn acompaadas de todas las
tuplas de S.

LGEBRA RELACIONAL

Obtener los propietarios que tengan inmuebles de 4 y


5 habitaciones (a la vez) que hayan sido visitados.
hab,pnum(VISITA) hab=4 or 5(VISITA)

Pnum
P87

La divisin tambin puede ser definida con los


operadores fundamentales de la siguiente forma:

DIFERENCIA

La diferencia de dos relaciones A y B compatibles respecto


a la unin, A B es una relacin cuya cabecera es idntica
a la de A o B y cuyo cuerpo est formado por todas las
tuplas t pertenecientes a A pero no a B. Permite obtener la
Diferencia de dos relaciones tomadas como conjuntos de
tuplas.

EJEMPLO
Obtener un listado de todas las poblaciones en donde hay una oficina y no hay
inmuebles para alquilar. Dada las siguientes relaciones

Onum

Calle

Area

Poblacin

Telfono

Fax

O5

Enmedio, 8

Centro

Castelln

964 201 240

964 201 340

O7

Moyano, s/n

Centro

Castelln

964 215 760

964 215 670

O3

San Miguel, 1

Villarreal

964 520 250

964 520 255

O4

Trafalgar, 23

Castelln

964 284 440

964 284 420

O2

Cedre, 26

Villarreal

964 525 810

964 252 811

Grao

Inum

Calle

Area

Poblacin

Tipo

Hab

Alquiler

Pnum

IA14

Enmedio, 128

Centro

Castelln

Casa

600

P46

IL94

Riu Ebre, 24

Ronda Sur

Castelln

Piso

350

P87

IG4

Sorell, 5

Grao

Castelln

Piso

300

P40

IG36

Alicante,1

Segorbe

Casa

325

P93

IG21

San Francisco, 10

Vinaroz

Piso

550

P87

IG16

Capuchinos, 19

Castelln

Piso

400

P93

Rafalafena

Poblacin
( poblacin (OFICINA) - ( poblacin (INMUEBLE)

Villarreal

INTESECCIN

La interseccin de dos relaciones A y B compatibles respecto


a la unin, A B es una relacin cuya cabecera es idntica a
la de A o B y cuyo cuerpo est formado por todas las tuplas t
pertenecientes tanto a A como a B. Produce el conjunto de
todas las tuplas pertenecientes a A y B.
A B = A-(A-B)

EJEMPLO

Obtener los inmuebles de


3 habitaciones que han
recibido visitas de
inquilinos. Dada las
siguientes relaciones

Qnum

Inum

Fecha

Comentario

Q56

IA14

24/11/99

muy pequeo

Q76

IG4

20/10/99

muy lejos

Q56

IG4

26/11/99

Q62

IA14

14/11/99

no tiene saln

Inum

Calle

Area

Poblacin

Tipo

Hab

Alquiler

Pnum

IA14

Enmedio, 128

Centro

Castelln

Casa

600

P46

IL94

Riu Ebre, 24

Ronda Sur

Castelln

Piso

350

P87

IG4

Sorell, 5

Grao

Castelln

Piso

300

P40

IG36

Alicante,1

Segorbe

Casa

325

P93

IG21

San Francisco, 10

Vinaroz

Piso

550

P87

IG16

Capuchinos, 19

Castelln

Piso

400

P93

Rafalafena

N
( Inum (VISITA) )

( Inum ( (Hab = 3) INMUEBLE) )

IG4

lgebra Relacional Extendida

PROYECCIN EXTENDIDA

Ampla la proyeccin permitiendo que se utilicen


funciones aritmticas en la lista de proyeccin. Tiene la
forma:

Donde E es cualquier expresin de lgebra


relacional y F1, F2, , Fn son expresiones aritmticas
que pueden incluir constantes y/o atributos.

EJEMPLO

No_Cta
Materia
Calificacon
95481904 Leng. de Prog
9
50385974 Algoritmos
10
98385928 Autmatas
8
98792838
I. A.
8
97218294 Prog. Lgica
7

Materia

No_Cta
Materia
95481904 Leng. de Prog
50385974 Algoritmos
98385928 Autmatas
98792838
I. A.
97218294 Prog. Lgica

Resultado

Calificacon-1
8
9
7
7
6

REUNIN EXTERNA

Es una ampliacin de la reunin para trabajar con la


informacin que falta. Es la concatenacin de las tuplas de
R con las de S siendo que los atributos comunes, que se
llaman igual, tienen los mismos valores estos atributos
tienen nulo en S o R.

Esta operacin tiene tres formas:

Reunin externa por la izquierda. Toma todas las tuplas de


la izquierda que no coincidan con ninguna tupla de la relacin
de la derecha, rellena con valores nulos en todos los dems
atributos de la relacin de la derecha.
Reunin externa por la derecha. Igual que la anterior pero
con las tuplas de la derecha.

Reunin externa completa. Es la unin de la reunin


externa izquierda y la reunin externa derecha.

No_Cta Nombre Sexo Nacionalidad


95481904
Juan
M
Mexicana
50385974 Edgar
M
Mexicana
97218294 Elizabeth F
Peruana
Alumno

No_Cta
Materia
Calificacon
95481904 Leng. de Prog
9
50385974
Algoritmos
10
98385928
Autmatas
8
98792838
I. A.
8
Materia

No_Cta Nombre Sexo Nacionalidad No_Cta


Materia
Calificacon
95481904
Juan
M
Mexicana 95481904 Leng. de Prog
9
50385974 Edgar
M
Mexicana 50385974 Algoritmos
10
97218294 Elizabeth F
Peruana
null
null
null

No_Cta Nombre Sexo Nacionalidad No_Cta


Materia
Calificacon
95481904
Juan
M
Mexicana 95481904 Leng. de Prog
9
50385974 Edgar
M
Mexicana 50385974 Algoritmos
10
null
null
null
null
98385928
Autmatas
8
null
null
null
null
98792838
I. A.
8

No_Cta Nombre Sexo Nacionalidad No_Cta


Materia
Calificacon
95481904
Juan
M
Mexicana 95481904 Leng. de Prog
9
50385974 Edgar
M
Mexicana 50385974 Algoritmos
10
null
null
null
null
98385928 Autmatas
8
null
null
null
null
98792838
I. A.
8
97218294

Elizabeth

Peruana

null

null

null

FUNCIONES DE AGREGACIN

Son funciones que toman una coleccin de valores y


devuelven como resultado un nico valor.
La funcin de agregacin sum toma un conjunto de valores y
devuelve la suma de los mismos.
La funcin de agregacin avg devuelve la media de los
valores.

La funcin de agregacin count devuelve el nmero de


elementos del conjunto.
Otras funciones de agregacin habituales son min y max,
que devuelven el valor mnimo y el mximo de la coleccin.
Las colecciones en las que se utilizan las funciones de
agregacin pueden tener valores repetidos; el orden en el que
aparezcan los valores no tiene importancia.

AGRUPACIN

Esta operacin agrupa las tuplas que tienen los mismos valores en
los atributos especificados y realiza uno o ms clculos (funciones
de agregacin) sobre los grupos obtenidos.
Se utiliza la notacin:

para agrupar las tuplas de R por los


atributos A1, A2,An.

EJEMPLO

Letra
a
a
a
b
b
c
c

Numero
1
2
4
1
2
3
4

Nombre
Angel
Amalia
Armando
Beto
Bernab
Carlos
Cecilia

Muestra

Letra
a
b
c

max(numero) count(nombre) avg(numero)


4
3
2.333
2
2
1.5
4
2
3.5

RENOMBRAMIENTO

Se utiliza para cambiar el nombre de una relacin, o


de sus atributos.
Se hace necesaria cuando se debe trabajar varias
veces con la misma relacin como operando, o
cuando existen nombres de relaciones y atributos
idnticos como operandos en una misma operacin.
El operador se representa por la letra griega ro (), y
toma como subndice el nuevo nombre para la relacin
sobre la que acta.

x(A)
iIndica que el resultado de la operacin es una nueva
relacin con el nombre x. Si se desea cambiar tambin el
nombre de los atributos, se indica del siguiente modo:
x(A1,A2,...,An)(A)
dDonde A1, A2, ... An son los nuevos nombres de los
atributos.

MODIFICACIONES DE LA BASE DE DATOS

Tambin es posible expresar en lgebra relacional la


realizacin de ciertas operaciones sobre la base de
datos, con el objetivo de modificar su contenido.

Borrado
rrE

INSERCIN

Para insertar el resultado de una expresin se puede


utilizar:
rrUE

pero tambin se pueden insertar valores constantes del


siguiente modo:

r r U {(Fuengirola,124.765)}

ACTUALIZACIN

Para modificar el valor de una tupla sin modificarlas


todas, se puede utilizar:

r F1,F2,,Fn(r)

y si se desea seleccionar varias tuplas y modificar slo


esas tuplas, se puede utilizar:

r F1,F2,,Fn(P(r)) U (r P(r))

CREACIN DE VISTAS

La creacin de una vista se puede realizar del siguiente


modo:

create view v as Expresin

CLCULO RELACIONAL

El clculo relacional proporciona una notacin para formular la


definicin de la relacin deseada en trminos de las relaciones de la
base de datos.
El CR est basado en una rama de la lgica matemtica,
llamada Lgica de Predicados, Clculo de predicados de
primer orden.
Mientras que en lgebra relacional se debe dar un secuencia de
pasos un procedimiento para obtener cierto resultado, en el
clculo relacional, se describe la informacin que se desea
obtener sin dar algn procedimiento especfico para obtener
dicho resultado.

Un predicado es una funcin con argumentos que se


puede evaluar a verdadero o falso.
Cuando los argumentos se sustituyen por valores, la
funcin lleva a una expresin denominada proposicin.
Ejemplo:
Carlos

es hombre

[Argumento]

[Funcin]

Existen dos lenguajes lgicos de


manipulacin para el modelo relacional:
El Clculo Relacional de Tuplas.
El Clculo Relacional de Dominios.

CLCULO RELACIONAL DE TUPLAS

El Clculo Relacional de Tuplas es en el que se


basa el lenguaje de manipulacin SQL.
Conceptos previos:
Variable-Tupla
Conectivas
Cuantificadores
Trminos
Frmulas bien formadas

VARIABLE TUPLA

Una variable tupla es una variable cuyo rango de valores


son las tuplas de una relacin.
x : R tal que R (a1:dom1, a2:dom2, ..., an:domn)

De esta forma, se especifica de que relaciones tomarn


valores las variables.
La variable x tomar valores en el producto cartesiano de
todos los dominios de R, dom1 dom2 ... domn.

Conectivas
Negacin
Conjuncin
Disyuncin

Implicacin
Cuantificadores
Universal
Existencial

Trminos:
Los smbolos de constantes:
Luis, Mara, Juan, AD1, BDA
Trminos de proyeccin:
x.A, donde x es una variable-tupla y A es el nombre de un atributo de la relacin sobre la que
se declar x. El trmino x.A representa el valor del atributo A en la tupla x.

FRMULAS

Un trmino de dominio R(x), donde R es el nombre de una relacin y x es el nombre de una


variable-tupla que se declar sobre la relacin R
t1 t2, donde t1 y t2 son trminos y es un operador de comparacin (<, >, =, , , ).
Si F1 y F2 son frmulas bien formadas, entonces tambin lo son:
F1 F2
F1 F2
F1 F2
F1
(F1)

xF

xF

Frmulas (Ejemplos):
x.A = y.B
x.A = 'Dedalo'
( x.ciudad='Londres')
( x.codigo=y.codigo y.numero<>z.numero)
x (x.codigo=y.codigo x.numero='123')
x (x.color='rojo')

EVALUACIN DE FRMULAS

R(x): cuando x se instancia a una tupla t, tal que t R, entonces se evala a cierto. En caso
contrario se evala a falso.
t1 t2: se evaluar a cierto o falso segn el resultado de la comparacin. En el caso de que
alguno de los trminos sea de proyeccin, es decir, de la forma x.A, el valor que se utilizar
para realizar la comparacin ser el del aributo A de la tupla que en ese momento instancie
la variable.
Con operadores lgicos no cambia.
La evaluacin de frmulas con cuantificadores se realiza igual que para la lgica de primer
orden. Lo que interesa es encontrar tuplas para las que se cumple cierto predicado.

Su forma general es:


{ t / P ( t )}

Donde:
t
es la variable tupla.
P( t )
es cualquier formula

EJEMPLOS

La unin de dos relaciones R S puede expresarse en CRT as:

2) La diferencia de dos relaciones R - S se expresa de la siguiente forma:

Dado el esquema de base de datos siguiente:


sucursal( nombre, activo, ciudad)
cliente( nombre, calle, ciudad)
depsito( sucursal, n-cuenta, cliente, saldo)
prstamo( sucursal, n-prestamo, cliente, importe)
a) Encontrar la sucursal, n-prestamo, cliente e importe para los
prstamos mayores de 300,000.

Dado el esquema de base de datos siguiente:


sucursal( nombre, activo, ciudad)
cliente( nombre, calle, ciudad)
depsito( sucursal, n-cuenta, cliente, saldo)
prstamo( sucursal, n-prestamo, cliente, importe)
b) Obtener todos los clientes que tienen prstamos de ms de 300,000.

Dado el esquema de base de datos siguiente:


sucursal( nombre, activo, ciudad)
cliente( nombre, calle, ciudad)
depsito( sucursal, n-cuenta, cliente, saldo)
prstamo( sucursal, n-prestamo, cliente, importe)
b) Encontrar a todos los clientes que tienen una cuenta en la sucursal
'Paz', pero que no han sacado un prstamo en esa sucursal:

CLCULO RELACIONAL DE DOMINIOS

Esta forma usa variables de dominio que toman valores


del dominio de un atributo ms que valores de una tupla
completa.
El clculo relacional de dominios, sin embargo, est
ntimamente relacionado con el clculo relacional de
tuplas.

Los tomos del clculo relacional de dominios


tienen una de las formas siguientes:
<X1, X2, Xn> r, donde r es una relacin con n atributos y x1, x2, ...,
xn,, son variables de dominio o constantes de dominio.
Sea x y, donde x e y son variables de dominio y es un operador de
comparacin , , <, =, , >. Se exige que los atributos x e y tengan
dominios que puedan compararse mediante .
X c, donde x es una variable de dominio, es un operador de
comparacin y c es una constante del dominio del atributo para el que x
es una variable de dominio.

Las expresiones del clculo relacional de dominios son


de la forma:
{<X1, X2, Xn> | P(X1, X2, Xn) }
donde x1, x2, ..., xn, representan las variables de
dominio, P representa una frmula compuesta de
tomos.

Evaluacin de Frmulas:
1) Depende de la clase de tomo que sea:
a) R(t1, t2, ..., tn):
Si se puede encontrar una tupla de R, tal que los valores de los atributos a1, a2,
..., an de la tupla coinciden con los de los respectivos trminos t1, t2, ..., tn, entonces
la frmula se evala a cierto. En otro caso se evala a falso.
b) t1 t2: La evaluacin es equivalente a la vista en el CRT, dependiendo del
resultado de la comparacin.
2) Evaluacin de frmulas con operadores lgicos: Es idntica a la ya estudiada.
3) Evaluacin de frmulas con cuantificadores: La nica diferencia es que ahora el
dominio de las variables es el dominio asociado a uno de los atributos de una
relacin. Este es el dominio que se debe usar para realizar su asignacin.

EJEMPLOS

1) La unin de dos relaciones R S puede expresarse en CRT as:

2) La diferencia de dos relaciones R - S se expresa de la siguiente forma:

Dado el esquema de base de datos siguiente:


sucursal( nombre, activo, ciudad)
cliente( nombre, calle, ciudad)
depsito( sucursal, n-cuenta, cliente, saldo)
prstamo( sucursal, n-prestamo, cliente, importe)
a) Encontrar la sucursal, n-prestamo, cliente e importe para los
prstamos mayores de 300,000

Dado el esquema de base de datos siguiente:


sucursal( nombre, activo, ciudad)
cliente( nombre, calle, ciudad)
depsito( sucursal, n-cuenta, cliente, saldo)
prstamo( sucursal, n-prestamo, cliente, importe)
b) Obtener todos los clientes que tienen prstamos de ms de 300,000

Dado el esquema de base de datos siguiente:


sucursal( nombre, activo, ciudad)
cliente( nombre, calle, ciudad)
depsito( sucursal, n-cuenta, cliente, saldo)
prstamo( sucursal, n-prestamo, cliente, importe)
b) Encontrar a todos los clientes que tienen una cuenta en la
sucursal 'Paz', pero que no han sacado un prstamo en esa
sucursal:

CRT VS. CRD

QUERY BY EXAMPLE

Visualizan en pantalla una fila vaca de cada una de las tablas que indica el usuario. El
usuario rellena estas filas con un ejemplo de lo que desea y el sistema devuelve
los datos que siguen tal ejemplo. Uno de estos lenguajes es QBE (Query-byExample).
Caractersticas del QBE

Utiliza una sintaxis bidimensional.

Los querys se expresan con ejemplos.

Alta relacin con clculo relacional.

No procedural.

Los querys se expresan utilizando Esqueletos de tablas.

El usuario selecciona el esqueleto que requiera.

El usuario llena el esqueleto con un ejemplo.

Una fila ejemplo se forma de constantes y elementos ejemplo que en realidad son
variables de dominio.

Las variables de dominio se distinguen por un guion bajo al inicio.

Las constantes se despliegan sin ninguna caracterstica especial.


Ejemplos del QBE

Encontrar todos los clientes con una cuenta de tipo SFU:

El prefijo P indica que se imprima este campo.


La variable de dominio se puede omitir si no se usa en otro lugar del query.

Encontrar todos las cuentas que no se encuentran en Burnaby:

Encontrar todos los clientes con cuenta tipo SFC y Metro Town:

Encontrar los clientes que tengan una cuenta tipo SFC, Metro Town o ambas:

Encontrar todos los clientes que tengan una cuenta igual a la de Jones:

Todos las cuentas con balance entre 1300 y 1500:

DATALOG

Datalog (Database Logic) es un lenguaje lgico que es la forma ms simple de lgica


desarrollada para el modelo relacional.
Datalog sin recursin tiene el mismo poder expresivo que el lgebra relacional.
Datalog es similar a Prolog en su sintaxis, pero su semntica operacional es diferente.
Una regla o clusula en Datalog tiene la forma:
cabeza cuerpo.
donde cabeza es un tomo y cuerpo es una lista de tomos que puede ser vaca; en
este caso se habla de un hecho. Los hechos se escriben as:
cabeza
Un tomo es de la forma:
P(t1,...,tn)
Donde P es un smbolo de predicado y ti son variables o constantes. No se admiten
smbolos de funcin en ti, a diferencia de Prolog.

SIGNIFICADO DE LAS REGLAS LGICAS

Una regla se escribe:

P Q1, ..., Qn.

y se lee: "Si Q1, Q2, ... y Qn son ciertos, entonces P es cierto". Si n=0, "P es cierto", y se
escribe:
P.
(esto es un hecho)
Interpretacin de la teora de modelos
La interpretacin de una coleccin de predicados asigna cierto o falso a cada posible
instancia de los predicados, donde los argumentos se escogen de un conjunto infinito de
constantes.
La interpretacin se representa habitualmente por el conjunto de instancias verdaderas.
Ejemplo:(1) p(X) :- q(X).
(2) q(X) :- r(X).
Dominio: los enteros.
Un posible dominio M1={r(1),q(1),p(1),q(2),p(2),p(3)}, conjunto de instancias verdaderas.

Datalog es una versin de Prolog adecuada para las bases de datos, y se


diferencia en:
1. Datalog no admite smbolos de funcin en los argumentos.
2. El significado de los programas Datalog sigue el punto de vista de teora de
modelos.
Prolog, en cambio, se basa en un significado computacional que se desva de los
significados de la teora de modelos y de la teora de pruebas.
El modelo de datos de Datalog es similar al relacional:
Una relacin se representa por un predicado.
Sin embargo, sus argumentos siguen una notacin posicional, no explcita como
en el modelo relacional (cada columna tiene un nombre).

EJEMPLO

Una instancia r de la relacin R(A,B) en el modelo relacional definida por:

se representa en Datalog por los hechos:

r(1,2), r(3,4).

En Datalog, el primer argumento de R se corresponde con el atributo A, y el


segundo con B.
El significado de la relacin en ambos modelos de datos es el mismo, el
conjunto de tuplas {(1,2), (3,4)}.
Es decir, hay una relacin de tipo R entre 1 y 2, y entre 3 y 4.

En Datalog, el primer argumento de R se corresponde con el atributo A, y el


segundo con B.
El significado de la relacin en ambos modelos de datos es el mismo, el
conjunto de tuplas {(1,2), (3,4)}.
Es decir, hay una relacin de tipo R entre 1 y 2, y entre 3 y 4.
Predicados intencionales y extencionales
Es otra diferencia entre Datalog y las bases de datos relacionales.
Un predicado cuya relacin se almacena explcitamente en la base de datos
se denomina extencional.
Un predicado que se define en trminos de reglas se denomina intencional.

PREDICADOS INTENCIONALES Y
EXTENCIONALES
Es otra diferencia entre Datalog y las bases de datos relacionales.
Un predicado cuya relacin se almacena explcitamente en la base de datos se
denomina extencional.
Un predicado que se define en trminos de reglas se denomina intencional.
Por ejemplo, en la base de datos genealgica:
madre, padre, mujer, hombre: extencional
madre(ana,pedro).
madre(ana,juan).
...
padre(jose,julia).
padre(luis,jose).
...
progenitor, antepasado: intencional
progenitor(X,Y) :- madre(X,Y).
progenitor(X,Y) :- padre(X,Y).
antepasado(X,Y) :- progenitor(X,Y).
antepasado(X,Y) :- progenitor(X,Z), antepasado(Z,Y).

RECURSIVIDAD Y GRAFOS DE
DEPENDENCIA
Las reglas Datalog son en general recursivas.
Para determinar si un determinado predicado es recursivo se construye un
grafo de dependencias.
Sus nodos son predicados.
Hay un arco de p a q si hay una regla con un subobjetivo cuyo predicado
sea p y con una cabeza cuyo predicado sea q.
Un programa lgico es recursivo si hay uno o ms ciclos en el grafo.
Un predicado es recursivo si forma parte de un ciclo.
Ntese que p y q pueden ser el mismo predicado (de hecho, el caso ms
habitual).

EJEMPLO

hermano(X,Y) :- progenitor(Z,X), progenitor(Z,Y), X Y.


primo(X,Y) :- progenitor(PX,X), progenitor(PY,Y),
hermano(PX,PY).
primo(X,Y) :- progenitor(PX,X), progenitor(PY,Y), primo(PX,PY).
pariente(X,Y) :- hermano(X,Y).
pariente(X,Y) :- pariente(X,Z), progenitor(Z,Y).
pariente(X,Y) :- pariente(Z,Y), progenitor(Z,X).

Reglas de Codd

ANTECEDENTES
En la dcada de los 80 comenzaron a aparecer numerosos sistemas de
gestin de bases de datos (SGBD) que se anunciaban como
"relacionales". Sin embargo estos sistemas carecan de muchas
caractersticas que se consideran importantes en un sistema relacional,
perdiendo muchas ventajas del modelo relacional. Como ejemplo
extremo de esto "sistemas relacionales" eran simplemente sistemas que
utilizaban tablas para almacenar la informacin, no disponiendo de
elementos como claves primarias, etc.

En 1985 Codd public 12 reglas que un verdadero sistema relacional


debera de cumplir. En la prctica algunas de ellas son difciles de
realizar.

Un sistema podr considerarse "ms relacional" cuanto ms siga estas


reglas.

REGLAS DE CODD

Las reglas pueden ser divididas en 5 reas funcionales:

1.

Reglas fundamentales

2.

Reglas estructurales

3.

Reglas de integridad

4.

Reglas de manipulacin de datos

5.

Reglas de independencia de datos

1. FUNDAMENTALES (0 Y 12)

Regla 0

Para que un sistema se denomine sistema de gestin de


bases de datos relacionales (SMBDR o RDBMS por sus
siglas
en
ingls),
este
sistema
debe
usar
(exclusivamente) sus capacidades relacional para
gestionar la base de datos.

Regla 12: Regla de la No Subversin


Si un sistema relacional tiene un lenguaje de bajo nivel (una tupla cada
vez), ese lenguaje de bajo nivel no puede ser usado para saltarse
(subvertir) las reglas de integridad y restricciones expresadas en los
lenguajes relacionales de ms alto nivel (una relacin o conjunto de
tuplas cada vez).
Todo acceso a la base de datos debe ser controlado a travs del SGBD
para que la integridad de la base de datos no pueda ser comprometida
sin el conocimiento del usuario o el administrador de la base de datos
(ABD).
Debido a que algunos problemas no se pueden solucionar directamente
con el lenguaje de alto nivel. Normalmente se usa SQL incrustado en un
lenguaje anfitrin (por ejemplo C) para solucionar estos problemas. Se
utiliza el concepto de cursor para tratar individualmente las tuplas de una
relacin. En cualquier caso no debe ser posible saltarse los limitantes de
integridad impuestos al tratar las tuplas a ese nivel.

2. ESTRUCTURALES (1 Y 6)

La pieza estructural fundamental es la relacin.

Codd indica que los SMBDR deben soportar relaciones,


dominios, llaves primarias y llaves forneas.

Cada relacin debe tener una llave primaria.

Regla 1: Regla de la Informacin

Toda la informacin en una base de datos relacional se


representa explcitamente en el nivel lgico exactamente
de una manera: con valores en relaciones.

Toda la informacin, an los metadatos (diccionario,


catlogo) se deben de representar (en relaciones) y
manipular exactamente igual que los datos.

Regla 6: Regla de Actualizacin de Vistas

Todas las vistas que son tericamente actualizables se


pueden actualizar por el sistema.

El problema es determinar cules son las vistas


tericamente actualizables, ya que no est muy claro.
Cada sistema puede hacer unas suposiciones particulares
sobre las vistas que son actualizables.

3. INTEGRIDAD (3 y 10)

Regla 3: Tratamiento Sistemtico de Ausencia de Valores

En la base de datos, el hecho de que algn valor falte, es


siempre representado de la misma forma sistemtica y uniforme,
independientemente del tipo de datos del valor faltante. Para
ste propsito son utilizadas marcas.

Se reconoce la necesidad de la existencia de marcas nulas,


para un tratamiento sistemtico de los mismos pero hay
problemas para soportarlos en las operaciones relacionales,
especialmente en las operaciones lgicas.

Lgica trivaluada. Existen tres (no dos) valores de verdad:


Verdadero, Falso y Desconocido (null). Se crean tablas de verdad
para las operaciones lgicas:

null

AND

null

null

Verdadero

AND

null

null

Falso

AND

null

Falso

OR

null

Verdadero

Verdadero
etc.

Un inconveniente es que de cara al usuario el manejo de los


lenguajes relacionales se complica pues es ms difcil de entender.

Regla 10: Independencia de Integridad


Las restricciones de integridad especficas para una determinada base de
datos relacional deben (poder) ser definidas en el sublenguaje de datos
relacional, y almacenadas en la base de datos (catlogo), no en los
programas de aplicacin.
El objetivo de las bases de datos no es slo almacenar los datos, si no
tambin sus interrelaciones y restricciones para evitar que se codifiquen en
los programas. Por lo tanto en una base de datos relacional se deben
poder definir restricciones de integridad.
Como parte de las restricciones inherentes al modelo relacional, es decir
que forman parte de su definicin, estn:
Integridad de entidad. Toda relacin debe tener una clave primaria.
Integridad referencial. Toda clave externa no nula debe existir en la
relacin donde es primaria.

4. MANIPULACIN DE DATOS (2,4, 5 Y 7)

Regla 2: Regla del Acceso Garantizado

Para todos y cada uno de los datos (valores atmicos) de una


base de datos relacional se garantiza que son accesibles por
una combinacin de nombre de relacin, valor de clave
primaria y nombre de columna.
Cualquier dato almacenado en una base de datos relacional
tiene que poderse referenciar unvocamente. Para ello hay que
indicar en qu relacin est, cul es la columna y cul es la fila
(mediante la clave primaria).

Regla 4: Diccionario Dinmico en Lnea Basado en el


Modelo Relacional
La descripcin de la base de datos (metadatos) est
representada a nivel lgico de la misma forma que los datos
ordinarios, de modo que los usuarios autorizados pueden
usar el mismo lenguaje relacional para su consulta, igual que
lo aplican a los datos normales.
Esta es una consecuencia de la regla 1 que se destaca por
su importancia. Los metadatos se almacenan usando el
modelo relacional, con todas las consecuencias.

Regla 5: Regla del Sublenguaje de Datos Completo


Un sistema manejador de bases de datos relacionales debe
soportar varios lenguajes y varios modos de uso. Sin embargo,
debe existir al menos un lenguaje cuyas sentencias sean
expresables, mediante una sintaxis bien definida, como cadenas
de caracteres y que sea completo, soportando:

Definicin de datos
Definicin de vistas
Manipulacin de datos (interactiva y por programa)
Restricciones de integridad
Autorizacin
Restricciones de transaccin (Begin, commit, rollback).

Adems de poder tener interfaces ms fciles de utilizar para


hacer consultas, siempre debe de haber una manera de hacerlo
todo de manera textual, que es tanto como decir que pueda ser
incorporada en un programa tradicional.

Un lenguaje que cumple esto en gran medida es SQL.

Regla 7: Insercin, Actualizacin y Borrado de Alto Nivel

La capacidad de manejar una relacin base o derivada como un


solo operando se aplica no slo a la recuperacin de los datos
(consultas), si no tambin a las operaciones de insercin,
actualizacin y borrado de datos.

Esto es, el lenguaje de manejo de datos tambin debe ser de alto


nivel (de conjuntos). Algunas bases de datos inicialmente slo
podan modificar las tuplas de la base de datos de una en una (un
registro cada vez).

5. INDEPENDECIA DE DATOS (8, 9 Y 11)

Regla 8: Independencia Fsica de Datos

Los programas de aplicacin y actividades de la terminal


permanecen inalterados a nivel lgico siempre que se
realicen
cambios
en
las
representaciones
de
almacenamiento o mtodos de acceso.

El modelo relacional es un modelo lgico de datos, y


oculta las caractersticas de su representacin fsica.

Regla 9: Independencia Lgica de Datos

Los programas de aplicacin y actividades de la terminal


permanecen inalterados a nivel lgico siempre que se realicen
cambios a las relaciones base que preserven la informacin.
Cuando se modifica el esquema lgico preservando informacin
no es necesario modificar nada en niveles superiores.
Ejemplo de cambios que preservan la informacin:
Aadir un atributo a una relacin base.

Regla 11: Independencia de Distribucin

El sublenguaje de manipulacin de datos de un sistema


manejador de bases de datos relacionales debe permitir que
los programas de aplicacin y las consultas permanezcan
lgicamente sin cambios si los datos estn fsicamente
centralizados o distribuidos.
Las mismas rdenes y programas se ejecutan igual en una
base de datos centralizada que en una distribuida.

Las bases de datos relacionales son fcilmente distribuibles:


Se parten las relaciones en fragmentos que se distribuyen.
Cuando se necesitan las relaciones completas se
recombinan usando operaciones relacionales con los
fragmentos.
Sin embargo se complica ms la gestin interna de la integridad,
etc.

Esta regla es responsable de tres tipos de transparencia de distribucin:


Transparencia de localizacin. El usuario tiene la impresin de que
trabaja con una BD local. (aspecto de la regla de independencia
fsica)
Transparencia de fragmentacin. El usuario no se da cuenta de que
la relacin con que trabaja est fragmentada. (aspecto de la regla de
independencia lgica de datos).
Transparencia de replicacin. El usuario no se da cuenta de que
pueden existir copias (rplicas) de una misma relacin en diferentes
lugares.
Esta regla no dice que para ser completamente relacional el sistema
manejador de base de datos debe de soportar bases de datos

REGLAS DE CODD
CLASE

DESCRIPCIN

Fund

Basic

Total

RS

Structure

14

RT

Data Types

RB

Basic operators

31

37

RZ

Advenced operators

42

44

RN

Naming

14

RE

Commands for the DBA

14

22

RQ

Qualifiers

10

13

RJ

Indicators

14

14

RM

Manipulation

14

20

RI

Integrity

11

23

34

RC

Catalog

11

RV

Views

RA

Autorization

10

16

RF

Functions

10

RP

Protection

RD

Principles of DBMS design

16

RL

Principles of language design

17

RX

Distributed database management

29

29

Comparacin con las reglas de Codd originales (las 12):


Regla de 1985

Caracterstica RM/V2

Nombre

RS1

Information rule

RM1

Guaranteed access

RS-13,RM-10

Missing information

RC-1

Active catalog

RM-3

Comprehensive data
sublanguage

RV-4,RV-5

View updatability

RM-4

High level language

RP-1

Physical data independence

RP-2

Logical data independence

10

RP-3

Integrity independence

11

RP-4

Distribution independence

12

RI-16

Non-Subversion

DESCRIPCIN DE LAS CATEGORAS

Una
Unatabla-R
tabla-Res
es
un
tipo
especial
un tipo especial
de
desubconjunto
subconjunto

Terminologa:

Trmino Matemtico

Trmino en la Base de Datos

Relacin de grado n

tabla-R con n columnas

Atributo

Columna de una tabla-R

Dominio

Tipo de datos extendido

Tupla

Fila en una tabla-R

Cardinalidad de una
relacin

Nmero de filas en una


tabla-R

No
Noexiste
existeelel
concepto
conceptode
de
posicin
posicinnini
duplicados
duplicados

RS - ESTRUCTURA

Estas reglas se refieren a la estructura del SGDBR, en general estas


reglas indican que la informacin contenida en la base de datos
puede ser vista por los usuarios y por los programadores de la
aplicacin y estos no necesitan saber conceptos posicionales en la
base de datos, es decir, a un usuario no le importa en donde esta
almacenada la informacin o cual es el primer registro o el ltimo; si
una fila es movida a otro tipo de almacenamiento, el usuario lo
percibe como si no se hubiese cambiado.
En estas reglas tambin se prohbe la duplicidad de filas en
cualquier relacin, ya sea tabla, vista o algn derivado.
Tambin nos hablan de la llaves primarias y forneas.

RT TIPOS DE DATOS EXTENDIDOS

Son reglas que todo SMBDR debe cumplir y se refieren al


manejo de los datos de fecha, hora y moneda.
Todo SMBDR debe soportar fechas, tiempo de reloj y moneda
como tipos de datos extendidos y en todo momento se debe
tener acceso a la fecha y hora actual.
Los componentes de fecha (DD/MM/AA) pueden ser tratados
por separado al igual que los componentes de hora
(HH:MM:SS).
El SMBDR soporta la conversin de fecha y hora de cualquier
zona horaria a fecha y hora Greenwich y viceversa; soporta
monedas no negativas pero no necesariamente soporta la
conversin automtica de monedas de diferentes pases.

RB OPERADORES BSICOS

Estas reglas se refieren al manejo de los operadores


bsicos como son:
el producto cartesiano, la proyeccin, el operador
select haciendo uso de todos sus comparadores (por
ejemplo: <, >, =, <=, >=,por mencionar algunos), la
extensin booleana del select como es el uso de los
operadores and, or, not, el uso del join, unin,
operadores como interseccin, diferencia, divisin,
asignacin, insercin, actualizacin y borrado .

RZ OPERADORES AVANZADOS

Estas reglas hacen referencia a los operadores avanzados


que utilizan los SMBDR. Algunos operadores son:
Delimitador o frame, joins entre 2 o mas relaciones,
incluyendo todos los operadores relacionales (<, >, =, <=,
>=, etc), joins internos, externos, izquierdos y derechos,
unin, diferencia, interseccin, insercin, actualizacin,
borrado, etc.

RN REGLAS DE NOMBRAMIENTO

Todos los dominios deben tener asignados nombres que


sean distintos el uno del otro y distintos de los nombres de
relaciones y funciones. Todas las relaciones y todas las
funciones definidas por el usuario deben tener asignados
nombres que sean distintos el uno del otro y distintos de
los dominios, tipos de datos y columnas.
Tambin se menciona en estas reglas la nomenclatura de
las columnas de resultados ya sea al aplicar algn
operador o alguna funcin.

RA AUTORIZACIN

Este conjunto de reglas describe la forma en que un


SMBD debe realizar los permisos a la base de datos,
define los tipos de permisos, la autorizacin de acciones,
el bloqueo por registro, rengln o columna, el mbito de
los permisos, la forma de asignar y revocar los permisos,
etc.

RF FUNCIONES ESCALARES Y DE
AGREGACIN

Este conjunto de reglas describe los dos tipos de


funciones escalares (como las funciones de manipulacin
de fechas) y de agregacin (funciones de conteo de
registros, suma, promedio, mximos y mnimos) que un
SMBD debe de tener para la manipulacin de registros y
columnas, as tambin describe la forma en que deben
tratarse las funciones definidas por el usuario.

RP PROTECCIN FSICA

Estas reglas describen cmo un SMBD debe proteger la


inversin que una empresa o institucin hace por su uso.
Dichos temas de los que trata esta regla se refieren a la
proteccin fsica y lgica de los datos, as como a la
independencia de integridad y de distribucin de los datos.

RD PRINCIPIOS DE DISEO DE SMBD

Estas reglas describen cuales son los principios bsicos


de diseo que un SMBD debe contemplar, como la no
violacin de las leyes fundamentales de las matemticas
en las cuales se basa el modelo relacional, la capa de
presentacin
de
acceso,
la
independencia
de
concurrencia, la proteccin y bloqueos de accesos no
autorizados, los ndices basados en el dominio, las
estadsticas de la base de datos, la forma de tratar los
datos, etc.

RL DISEO DE LENGUAJES
RELACIONALES

Estas reglas describen qu factores se deben de tomar


en cuenta para el diseo de un lenguaje relacional, entre
esos factores describe a la variedad de usuarios
incluyendo a los programadores, la forma en que deben
de compilarse y re-compilarse los programas que se
realicen con este lenguaje, las reglas para el mbito de
las instrucciones, y entre otros temas los bloques
delimitadores de mltiples comandos como el BEGIN y
el END.

RX ADMINISTRACIN DE BD
DISTRIBUIDAS

Este conjunto de reglas describe la forma en que un SMDB


debe ser autnomo para poder distribuir los datos en varios
sitios, la forma en que deben de estar organizados los
catlogos que definen la estructura de la base de datos, el
nombrado de las reglas, la forma en que deben ser
nombrados los objetos en una base de datos distribuida, la
redistribucin y reversibilidad de transacciones, las reglas
de integridad para la distribucin de las vistas y datos, etc.

RE COMANDOS PARA EL ABD

Estos son orientados para el uso del administrador de la


base de datos (ABD). Se enfocan en la estructura de la base
y en la administracin de la informacin, realiza cambios en la
estructura de los dominios, renombra, elimina, agrega y
modifica las caractersticas de las columnas de una tabla-R.
Se especifican el manejo de los ndices, de su creacin y
eliminacin, la existencia de un comando para el control de
las filas duplicadas. Establece la existencia de comandos
para la carga de informacin en la base de datos as como su
respectiva exportacin a un tipo determinado de archivo.

RQ CALIFICADORES

Un calificador o modificador es una expresin que puede


usarse en un comando para alterar algn aspecto de la
ejecucin de dicho comando. En este contexto hablamos
de los comandos relacionales. El inters de estas reglas
est en la administracin de la base de datos.

RM MANIPULACIN

Las reglas de manipulacin se enfocan en las capacidades y


en las propiedades generales del lenguaje relacional, sin
especificar sus caractersticas y su sintaxis. Se especifica
que el acceso a los datos debe estar garantizado en una
lgica accesible por una combinacin adecuada de
propiedades. Establece las caractersticas principales del
lenguaje relacional de datos, sentencias de alto nivel
referentes a actualizacin, insercin y borrado de
informacin, los efectos de la aplicacin de operadores
aritmticos sobre valores ausentes (aplicables o inaplicables)
y la manipulacin de la informacin que contiene valores
ausentes.

RI INTEGRIDAD

Se establecen los tipos de restricciones (constraints) que un


SMBD debe soportar usando declaraciones expresadas en
lenguaje relacional. Estas reglas se refieren a las
especificaciones que una restriccin debe aplicar, las
respuestas que se dan a un intento de violacin a la
integridad de la restriccin, determinacin de la aplicabilidad
y el almacenamiento de su definicin. Especifica las
definiciones de usuario referentes a los valores de la base
de datos as como el manejo de los tipos de datos
marcados (Mark A y Mark I, ausentes aplicable y ausente
no aplicable).

RC - CATLOGO

Los catlogos segn las reglas de Codd es una parte muy


importante en un SMBD ya que establecen parte de las
caractersticas del sistema como puede ser la concurrencia que
debe poseer ya que los SMBD son usados generalmente en red
con varios usuarios a la vez, adems de que acumula toda la
informacin de las estructuras utilizadas, como por ejemplo para
las tablas-R establece 10 puntos que se deben especificar en su
creacin para su correcto almacenamiento. Establece la
descripcin de las vistas, la descripcin de las columnas (Cmo se
almacenan en el catlogo y qu puntos se deben especificar).
Establece que en los catlogos se deben especificar las
caractersticas de los datos autorizados y como regla tambin se
tiene que en el catalogo se tienen las estadsticas.

RV VISTAS

Las vistas estn diseadas para intentar aislar a los usuarios,


incluyendo a las aplicaciones de los programadores, de la
base relacional. Permitiendo (1) cambios a realizarse en la
definicin de las relaciones de la base (2) Los cambios
correspondientes en la definicin de la vista, en tal caso
almacenar las vistas que no se cambiaron segn el contexto.
Las vistas permiten al usuario percibir la base de datos en
trminos de las relaciones derivadas que directamente
pertenecen en las aplicaciones. Las vistas tambin pueden ser
usadas para restringir el acceso a la totalidad de los datos de
la base y establecer que con la debida autorizacin un usuario
tenga acceso a determinadas vistas.

RS-1 CARACTERSTICAS DE LA
INFORMACIN

El SGBD requiere que toda la informacin de la base de


datos pueda ser vista por los programadores de
aplicacin y usuarios interactivos en las terminales en
trminos de valores por relaciones y de ninguna otra
manera en las relaciones base. Exactamente una manera
adicional est permitida en relaciones derivadas llamada,
ordenamiento por valores dentro de la relacin.

Caractersticas Orientadas a la
Estructura y a los Datos

RS-1 LA INFORMACIN

Para las relaciones base el SMBD requiere que toda la


informacin de la base de datos que pueda ser vista por los
programadores de aplicaciones y usuarios interactivos en las
terminales est explcitamente en trminos de valores en
relaciones, y no de otra forma.
Las
Lasrelaciones
relacionesbase
baseson
sonaquellas
aquellasque
queestan
estan
representadas
representadasinternamente
internamentepor
pordatos
datos
almacenados
en
alguna
forma
definida
almacenados en alguna forma definidapor
porlala
implementacin,
implementacin,de
deotra
otraforma
formason
sonllamadas
llamadas
relaciones
derivadas,
como
las
vistas
relaciones derivadas, como las vistasque
quese
se
crean
creanaapartir
partirde
delas
lasprimeras
primerassin
sincontener
contener
datos.
datos.

RS-2 LIBRES DE CONCEPTOS


POSICIONALES

El SMBD protege a los programadores y a usuarios


finales contra tener que saber conceptos posicionales en
la base de datos.

RS-3 - NO DUPLICIDAD DE FILAS EN


RELACIONES

El SMBD prohbe la ocurrencia de filas duplicadas en


cualquier relacin (base, vista o derivado), y de esta
manera protege al usuario de las complejidades sutiles y
lo poco optimizable de la base de datos que resultan
como consecuencia de permitir el uso de filas
duplicadas.

RS-4 PORTABILIDAD DE LA
INFORMACIN

RS-4 Portabilidad de la Informacin

Si una fila de una tabla-R es movida por el SMBD, el


contenido de su informacin tal como es percibida por el
usuario permanece sin cambio alguno, y por lo tanto no
necesita ser cambiada. La informacin tal como es
percibida por los usuarios, no debe depender del equipo
o ubicacin en que se encuentren los datos.

RS-5 ARQUITECTURA EN 3 NIVELES

Un SMBD relacional tiene una arquitectura de tres niveles


que consiste en vistas, relaciones base y la representacin
de datos al ser almacenados.

Trmino ANSI

Trmino-R

Esquema externo

Vistas

Esquema conceptual

Relaciones base

Esquema interno

Representacin al
almacenar

RS-6 - DOMINIOS COMO TIPO DE DATO


EXTENDIDO

Cada dominio que semnticamente es diferente, debe


ser nombrado en forma diferente y debe ser definido por
separado de la declaracin de la tabla-R (ya que puede
ser usado en mas de una tabla-R).
Cada dominio se declara como un tipo de datos
extendido, no como un simple tipo de datos bsico.

RS-7 DESCRIPCIN DE COLUMNAS

Por cada columna de cada tabla-R, debe haber la


capacidad de declarar (1) el dominio a utilizar en aquella
columna (de forma que se pueda identificar el tipo de
datos extendido) y (2) las restricciones adicionales, si es
que las hay, que se deben aplicar a los valores de dicha
columna.

RS-8 UNA LLAVE PRIMARIA EN CADA


TABLA-R BASE

En todas y cada una de las tablas-R base, el SMBD debe


requerir que sea declarada una y slo una llave primaria. En
todo momento los valores almacenados en una columna (en
forma simple o compuesta) deben ser diferentes entre s.
En ningn momento se debe permitir que falte algn valor
en una columna que componga la llave primaria.
No debe tener nulos en un atributo o en un conjunto de
atributos que componen la llave primaria.

RS-9 LLAVE PRIMARIA EN ALGUNAS


VISTAS

Para cada vista, el SMBD debe soportar la declaracin de


una sola llave primaria siempre que el ABD observe que la
definicin de esta vista as lo permita, sin ignorar la
caracteristica de entidad-integridad (RI-7). En lo posible, el
SMBD debe verificar que la declaracin de una llave
primaria de una vista sea consistente con las declaraciones
de la llave primaria de las tablas-R base que la componen.

RS-10 LLAVE FORANEA

El SMBD permite la declaracin de cualquier columna o


combinacin de columnas de la tabla-R base como una
llave fornea (donde sea semnticamente aplicable).
Generalmente se incluye en esta declaracin las llaves
primarias destinadas (usualmente es slo una) para esta
llave fornea. Sin embargo, el SMBD no debe, con su
diseo, obligar a que slo una llave primaria sea dada
para una llave fornea, a pesar de que muy
frecuentemente ocurre el caso de que esto se de.

RS-11 DOMINIOS COMPUESTOS

Se puede declarar un nombre a una combinacin de


dominios simples, tomando en cuenta que este nombre es
distinto de cualquier otro dominio (simple o compuesto).
La secuencia en la cual los dominios aparecen en esta
declaracin es parte del significado de la combinacin.

RS-12 COLUMNAS COMPUESTAS

Se puede declarar un nombre a una combinacin de


columnas en una tabla-R base o en una vista, siempre y
cuando ese nombre sea distinto del de cualquier otra
columna (simple o compuesta) de esa tabla-R y siempre y
cuando se haya declarado un dominio compuesto para los
valores de esta columna compuesta. El orden de las
columnas que conforman esta columna compuesta es parte
de su significado, y debe corresponder exactamente con el
orden de los dominios que forman el dominio compuesto
correspondiente.

RS-13 INFORMACIN FALTANTE


REPRESENTADA

En toda la base de datos, el hecho de que falte algn


valor es representado de la misma forma y en forma
sistemtica, independientemente del tipo de dato
faltante.
Se utilizan marcas con este fin.

RS-14 EVITANDO LA RELACIN


UNIVERSAL

Ni la agrupacin de todas las relaciones base, ni la


agrupacin de todas las vistas, debe verse como una
relacion universal (como es definida por la universidad
Stanford). Sin embargo el ABD debe poder crear dicha
relacin como una vista mas.
Moshe
MosheY.
Y.Vardi
Vardihabla
hablasobre
sobrelalarelacion
relacionuniversal
universalen
ensu
su
artculo
de
1988
llamado
The
universal-relational
data
model
artculo de 1988 llamado The universal-relational data model
for
forlogical
logicalindependence
independencebuscando
buscandouna
unaforma
formapara
paralograr
lograrque
que
sisihay
una
modificacin
en
la
base
de
datos
(ej.
porque
dos
hay una modificacin en la base de datos (ej. porque dos
tablas
tablasse
seconvierten
conviertenen
enuna
unasola)
sola)no
nosea
seanecesario
necesariomodificar
modificar
lalaaplicacin,
y
no
se
haga
por
medio
de
crear
Vistas
aplicacin, y no se haga por medio de crear Vistas
innecesarias
innecesariasdesde
desdeelelprincipio
principiopeviendo
peviendoposibles
posibles
modificaciones
futuras.
modificaciones futuras.

Operadores Bsicos

RB-1 REDUCIR EL NFASIS EN EL


PRODUCTO CARTESIANO COMO
OPERADOR

Un SMBD relacional no debe soportar el producto


cartesiano como un operador explcitamente separado.
Sin embargo un comando relacional podra tener un
caso extremo que sea interpretado como la peticin de
hacer un producto cartesiano.

RB-2 EL OPERADOR PROYECCIN

El operador proyeccin emplea una sola tabla-R como su


operando. El operador genera un resultado intermedio en
el cul las columnas listadas por nombre en el comando
son salvadas y las columnas omitidas en el comando son
ignoradas.
De esta tabla-R se genera el resultado final, removiendo
todas las ocurrencias excepto una de cada fila que ocurre
mas de una vez.

Buscando aplicar la proyeccin de ENAME, BIRTH_DATE, SALARY, CITY


Sobre la tabla:

RB-3 a 12 EL OPERADOR THETA-SELECT

El operador theta-select originalmente llamado theta-restrict emplea una


sola tabla-R como su operando. En su uso normal, el termino theta-select
es abreviado como select y esto significa que el comparador de igualdad
= debera ser asumido a menos que exista un comparador alternativo
explcito especificado. Esto genera como resultado una tabla-R que
contiene algunas de las mismas filas completas que el operando contiene
(las filas que satisfacen la condicin expresada en el comando).
Para distinguir el theta-select del comando select de SQL, podemos
referimos explcitamente al theta-select como un select algebrico y
referirnos explcitamente al select de SQL como select de SQL. Es
importante recordar que el operando no contiene filas duplicadas y por lo
tanto tampoco el resultado.

1) RB-3 Igualdad
2) RB-4 Desigualdad
3) RB-5 Menor que
4) RB-6 Menor o igual que
5) RB-7 Mayor que
6) RB-8 Mayor o igual que
7) RB-9 El ms grande que sea menor que
8) RB-10 El ms grande que sea menor o igual que
9) RB-11 El ms chico que sea mayor que
10)RB-12 El ms chico que sea mayor o igual que

RB-13 EXTENSIN BOOLEANA THETASELECT


Sea R una relacin con columnas simples o compuestas que incluyen
la columna A y la columna B. Sea @ uno de los 10 comparadores
usados en el theta-select, y sea x una variable o constante en un
lenguaje de computadora.
Suponiendo que:
R [ A @ x ] y R [ A @ B ] denotan operaciones theta-select,
Entonces:
A @ x y A @ B son llamadas trminos de comparacin cada trmino de
comparacin tiene un valor de verdad.
Los
Los valores
valores de
de verdad
verdad pueden
pueden ser
ser
cualquier
combinacin
de
los
trminos
de
cualquier combinacin de los trminos de
comparacin
comparacin utilizando
utilizando los
los conectores
conectores
lgicos
NOT,
OR,
AND
e
IMPLICA
lgicos NOT, OR, AND e IMPLICA

RB-14 a 23 OPERADOR THETA-JOIN

Emplea 2 tablas-R como sus operandos. Esto genera


como resultado una tabla-R que contiene filas de un
operando concatenado con filas del segundo operando,
pero slo donde la condicin especfica verdadera es
encontrada. Para simplificar, siempre se hace referencia
a este operador con el nombre join.

Se
Sepuede
puedeusar
usarcualquiera
cualquierade
delos
los10
10
operadores
lgicos
vistos
previamente
operadores lgicos vistos previamente

RB-24 EXTENSIN BOOLEANA THETAJOIN

Sean R, S relacines con columnas simples o compuestas


que incluyan a R.B y S.C. Suponga que R.B y S.C trazan sus
valores en un dominio comn. Sea @ uno de los Operadores
de comparacin usados en theta-join.
Suponiendo que R [B @ C] S denota una operacin theta-join.
Entonces B @ C es llamado un termino de comparacin, y
cada termino de comparacin es un valor de verdad.
Los
Losvalores
valoresde
deverdad
verdadpueden
puedenser
sercualquier
cualquiercombinacin
combinacinde
de
los
trminos
de
comparacin
utilizando
los
conectores
lgicos
los trminos de comparacin utilizando los conectores lgicos
NOT,
NOT,OR,
OR,AND
ANDeeIMPLICA
IMPLICA

RB-25 EL OPERADOR DE JOIN NATURAL

Un equi-join genera un resultado en el cual dos de las columnas


son idnticas en valores, aunque con nombres de columnas
diferentes. Estas dos columnas se derivan de la comparacin de
columnas de los operandos (ya sean columnas simples o
compuestas). De los 10 tipos del theta-join, equi-join es el nico
que arroja un resultado en el cual dichas columnas son
redundantes por completo. El join natural se comporta
exactamente como el equi-join excepto que una de las columnas
redundantes, simple o compuesta, es omitida en el resultado. Para
hacer que el nombre de la columna sea claro y respetar la
conmutatividad entre las columnas, la columna de comparacin
que se quede en el resultado recibir el nombre de la que
aparezca primero alfabticamente, de las dos posibilidades.

RB-26 EL OPERADOR DE UNIN

Intencionalmente no es tan general como el operador de


unin en matemticas, el cul permite formacin de la
unin de un conjunto de construcciones con un conjunto de
partes con un conjunto de empleados, por ejemplo. En
cambio la unin relacional permite solamente la unin de
construcciones con construcciones, partes con partes o
empleados con empleados, siguiendo el mismo ejemplo.
(los operandos que cumplen con esta caracterstica son
union-compatibles).

RB-27 OPERADOR DE INTERSECCIN

Suponga que S y T son dos relaciones unin-compatibles.


Entonces, son suficientemente compatibles una con otra
para que el operador de interseccin sea aplicable. Las
columnas deben ser alineadas de la misma forma que
deben ser alineadas para el operador unin. El resultado de
aplicar la interseccin a la relacin S y T es una relacin
que contiene slo aquellas filas de S que tambin
aparezcan en T. Por supuesto, el resultado de la relacin
no contiene filas duplicadas.

RB-28 OPERADOR DIFERENCIA

Suponga que S y T son dos relaciones unin-compatibles.


Entonces, ellas son suficientemente compatibles para aplicar
el operador diferencia. Las columnas deben ser alineadas en
la misma forma en que deben ser alineadas para aplicar el
operador unin. El resultado de aplicar la diferencia
relacional a las relaciones S y T es una relacin que
contiene slo aquellas filas de S que no aparezcan como
filas de T. Por supuesto, la relacin resultante no contiene
filas duplicadas.

RB-29 OPERADOR DIVISIN


RELACIONAL

La divisin relacional es similar en algunos aspectos a la


divisin aritmtica. En la divisin relacional, tal como en la
divisin aritmtica hay un dividendo, un divisor, un cociente,
e incluso un residuo. Es decir, la divisin relacional tiene
operadores y resultados muy similares a la divisin
matemtica. Sin embargo, en vez de manejar enteros,
maneja relaciones. Ninguna de dichas relaciones requiere
informacin numrica en absoluto, e incluso si la tuviera, no
deben ser los componentes que jueguen un papel crucial en
la divisin relacional.

RB-30 ASIGNACIN RELACIONAL

Cuando se consulta una base de datos, el usuario desear


tener el resultado de la consulta (una relacin) almacenada en
memoria bajo el nombre de su eleccin. El usuario tambin
podra desear que esta relacin almacenada, participe en
alguna consulta relacional posterior o una actividad de
manipulacin. Ambas peticiones son satisfechas en una
extensin certera por la asignacin relacional. Este operador
es denotado por en la expresin T rve, donde (1) rve
denota una expresin relacin-valor (una expresin cuya
evaluacin produce una realacin), y (2) T denota un nombre
de usuario-seleccionado para la relacin que es especificada
por rve y que es almacenada en memoria.

RB-31 OPERADOR INSERT

El operador insert permite una coleccin de una o ms filas sean


insertadas dentro de una relacin. Sin embargo, el usuario no tiene
control sobre donde van las filas insertadas. Pueden an ser
agregadas por el SMBD al final o en otro sitio de la relacin
principal. La frase se indica entre comillas porque no hay concepto
para el final de una relacin en el modelo relacional. Esta es
responsabilidad slo del SMBD determinar exactamente en donde
deberan estar almacenadas las filas, aunque esta posicin pueda
ser afectada por las rutas de acceso ya declaradas por el ABD para
aquella relacin. Se asume que, para la insercin de nuevas filas
dentro de una relacin T, el catalogo ya contiene una descripcin
detallada de T.

RB-32 OPERADOR UPDATE

Administrando una base de datos, ocasionalmente puede


ser necesario cambiar los valores de uno o ms
componentes de una o ms filas que ya existen dentro de
una relacin. Usualmente se distingue de insertar por
completo nuevas filas porque los componentes que su
valor cambia llegan a representar un porcentaje muy
pequeo del nmero de componentes en cada fila.

RB-33 ACTUALIZACIN DE PK CON


CASCADA

Rara vez es necesario actualizar el valor de la llave


primaria, pero cuando es necesario es importante que se
haya hecho correctamente. De otro modo, la integridad
en la base de datos puede ser perdida y esta puede ser
relativamente difcil de recuperar.

RB-34 ACTUALIZACIN DE PK
MARCANDO FKs

Este operador se comporta de la misma forma que la


de la caracterstica RB-33, en vez de actualizar los
valores de las llaves forneas, el SMBD marca cada
valor de la llave fornea como ausente-pero-aplicable.
Si una o ms llaves forneas esta declarada entonces
el valor ya no tiene el estatus de ausente, entonces el
comando es por completo rechazado por el SMBD.

RB-35 OPERADOR DELETE

El operador delete permite a un usuario borrar mltiples


renglones; de una relacin mltiple incluye los casos
especiales de cero y uno, y estos casos no reciben un trato
especial. Porque incluye el cero como una posibilidad. Una
razn es que esa condicin donde el usuario tiene
incorporado el comando delete puede no satisfacer a ningn
rengln. Por supuesto, es necesario para el usuario
especificar la relacin pertinente e identificar los renglones a
ser borrados en cualquiera de las dos formas permitidas por
el operador update.

RB-36 BORRADO CON CASCADA

Esto operador de borrado es similar al descrito en regla RB-35,


excepto que se tiene que tomar en cuenta que un componente
simple o compuesto de cada una de las filas siendo suprimidas
resulta ser el valor de la llave primaria de una relacin base.
Esto es verdadero incluso si la tachadura es ejecutada por una
vista (relacin virtual). As, la ejecucin de RB-35 a menudo
violar la integridad referencial. Ya que la integridad de
referencia por lo general no es comprobada totalmente hasta
el final de una transaccin, esta violacin puede ser solamente
un estado transitorio dentro de la transaccin.

RB-37 BORRADO EN CASCADA Y DELETE


OPCIONAL DEL HERMANO

Este operador es similar a la regla RB-36, pero es


mucho menos peligroso, porque el ciclo inicial de cada
secuencial no provoca el disparo de
ciclos
subsecuentes. Esto reduce el peligro y es una razn
fuerte por la que debera permitirse llaves forneas con
valores que fallen, a no ser que el DBA tenga una razn
importante para que esto no se justifique.

Operadores Avanzados

RZ-1 DELIMITANDO UNA RELACIN

Un marco separa un conjunto de renglones dentro de


cualquier particin del conjunto de renglones en cualquier
otro miembro. Esta separacin se realiza agregando una
nueva columna a la relacin en la relacin y, con esta
columna, asignar un valor distinto para cada miembro
distinto de la particin. El nombre estndar para esta
columna es FID o identificador de marco.

RZ-2 EXTENDER LA DESCRIPCIN DE


UNA RELACIN PARA INCLUIR COLUMNAS
DE OTRA

La relacin citada primero en el comando es nica cuya


descripcin es alterada para incluir todas las columnas de
la segunda relacin citada que no est en la primera.
Las columnas de esta manera introducidas en la primera
relacin son llenados de valores marca-A, a menos que el
calificador VALUE RQ-13 es aplicado para especificar un
valor particular.

RZ-3 a 12 SEMI-THETA-JOIN

Suponga que los operandos de un theta-join son S y T, donde


theta es una de las 10 operadores de comparacin (=, <>, <, <=,
>, >=, G<, G<=, L>, L>=), y las columnas a ser comparadas son
la columna A simple o compuesta de S con la columna B simple
o compuesta de T. Suponga que la relacin T es proyectada
sobre de la columna B. El resultado de esta proyeccin contiene
slo aquellos valores de B que son distintos de la otra. El semijoin de S sobre A con T sobre B produce esa subrelacin de S
cuyos valores en la columna A estn restringidos para slo esas
que califica de acuerdo con el comparador theta con respecto a
la proyeccin de T sobre B.

RZ-13 LEFT OUTER EQUI-JOIN

La reunin externa izquierda (left outer equi-join) de S


sobre B con T sobre C, denotada por U = S [ B / = C) T,
est definida en trminos de la reunin interna (inner equijoin o IEJ) y el incremento izquierdo externo (left outer
increment o LOI). LOI esta definido como sigue:
seleccionar aquellas tuplas de S cuyos valores a comparar
estn en la columna S a comparar. B no participan en la
reunin interior, y aaden a cada tupla una tupla vaca pero
de valores ausentes y tamao compatible con T.

RZ-14 RIGHT OUTER EQUI-JOIN

La reunin externa derecha (right outer equi-join) de S


sobre B con T sobre C, denotada por V = S [B = \ C] T, est
definida en trminos de inner equi-union (IEJ) y el
incremento derecho externo (ROl). ROl est definida como
sigue: selecciona aquellas tuplas de T cuyos valores a
comparar estn en la columna T. Y no participa en la
reunin interna, y aaden a cada tupla una tupla vacia pero
de valores ausentes y tamao compatible con S.

RZ-15 EQUI-JOIN EXTERNOS


SIMTRICOS

La reunin externa simtrica (symmetric outer equijoin) de S sobre B con T sobre C, denotada
W = S [ B / = \ C ] T,
est definida por
W = LOI union IEJ union ROI.
Esto implica que W = U union V.

RZ-16 LEFT OUTER NATURAL JOIN

Primero, se forma el equi-join natural interno


W de S sobre A con T sobre B. Entonces, se
forma la diferencia relacional
W1 = S - W [P, A].
Entonces, extendemos W1 a travs de S para
producir W2. Finalmente, se forma la left
outer natural union LONJ = W union W2

RZ-17 RIGHT OUTER NATURAL JOIN

Primero, se forma la inner natural equi-join W de


S sobre A con T en B. Despus, se forma la
diferencia W3 = T - W [A, Q]. Entonces, se extiende
W3 a S para formar W4. Finalmente, se forma la
right outer natural union RONJ = W union W4.

RZ-18 SYMMETRIC OUTER NATURAL


JOIN

Primero, se forma W y W2 como en los tres primeros


pasos de la regla : RZ-16. Entonces, se forma W4 como
en los tres primeros pasos de la regla RZ-17. Finalmente,
se forma la symmetric outer natural union, tomando la
unin: SONJ = W2 union W union W4. O bien, la
symmetric outer union = LONJ union RONJ. Note que
la union en el modelo relacional siempre incluye el retiro
de las filas duplicadas de el resultado.

RZ-19 OUTER UNION

Suponga que los operandos de outer union son la S y la


T. Como primer paso aplicamos el operador extend tanto
a la S como a la T: extend S per T y llamamos esto St:
extend T per S y llamamos esto Ts. Ahora, St y Ts son del
mismo grado, y cada uno contiene columnas basadas en
todos los dominios en S y todos los dominios en T. De
hecho St y Ts son completamente compatibles en la
unin. Como el paso segundo y final, se forma St union
Ts, que producen outer union S \ U / T.

RZ-20 OUTER SET DIFFERENCE

La outer set difference S \ - / T entre las relaciones S


y T, con S como la fuente informacin y T como la
relacin reducida. Esta generada por medio de los
siguientes pasos:

Se forma St = S per T;
Se forma Ts = T per S;
Se forma la semi-equi-join U = S[sem=] Ts;
Se forma S \ - / T = St U.

RZ-21 INTERSECCIN INTERNA


DETERMINADA

Se representa por:
S \ /T

RZ-22 a 25 UNIONES T INTERNOS

Las 4 uniones internas estn basadas en los


comparadores:
Menor, menor o igual, mayor y mayor o igual.

RZ-26 a 37 UNIONES T EXTERNAS

La unin externa T de relaciones S sobre A con T sobre B consiste en la


unin-T U de S sobre A con T sobre B, juntos con los conjuntos
adicionales de tuplas, llamado incrementos externos. La unin interior T de
S sobre A con T sobre B se denota:
V = S [[ A @ B ] ] T , donde @ espera uno de los cuatro ordenamientos de
comparacin. S es llamada el operador izquierdo y T el operador derecho.
Hay dos incrementos externos claramente definidos. Para construir el
incremento izquierdo externo, recoja aquellas tuplas del operando
izquierdo S que no resulta participar en la unin T interior; a cada uno de
estos, aada un nmero suficiente de valores marcados para indicar que
el valor de cada componente de una tupla de T. Para construir el
incremento derecho externo, recoja aquellas tuplas del operando derecho
T que no participen en la unin T interior; a cada uno de estos, aada un
nmero suficiente de valores para indicar que el valor de cada
componente de una tupla de S.

RZ-38 SELECT DEFINIDO POR EL


USUARIO
Este operador est denotado: S [ i; p(A); t ]
Donde:
i es el valor inicial de la funcin (opcional)
p es la funcin de evaluacin (requerido)
t es terminador de la funcin (opcional)
El argumento A de la funcin p denota una o mas columnas simples de la
relacin S.
Sin embargo, un valor verdadero de p(A) puede ser computado por
algunas filas usando solamente componentes de A de esas filas. Si A
es una coleccin de columnas, mas de un componente de cada fila es
involucrado.

RZ-39 UNIN DEFINIDA POR EL


USUARIO

La unin definida por usuario es ms poderosa que las uniones


empotradas. Esto contiene una fila de una relacin con una fila
del otro siempre que una funcin definida por usuario p
transforme los componentes especificados de estas filas en el
valor de verdad VERDADERO. De ser incluido en la orden, la
funcin que inicializa es ejecutada a la terminacin y al principio
mismo de la unin antes de que cualquier fila del primer
operando sea encadenada con cualquier fila del segundo
operando. Las versiones temporales de los operandos son
entregadas como el resultado de ejecucin. De ser incluido en el
comando, la funcin que se termina es ejecutada al final mismo
de la unin en el punto que todas las filas que deben ser
encadenado han sido encadenados.

RZ-40 UNIN RECURSIVA

La unin recursiva es un operando con el operando. Este


operando es una relacin que representa un grfico dirigido.
Una de las columnas de esta relacin juega un papel
subordinado (SUB), mientras el otro juega un superior (SUP)
papel. Cada tupla representa un borde de un grfico dirigido, y
segn la convencin este borde es dirigido del nodo identificado
por el componente de SUP abajo al nodo identificado por el
componente SUB. Como las uniones normalmente son
aplicadas a los pares de relaciones, es conveniente pensar en
el operando solo como 2 relaciones idnticas. La unin
recursiva es como este par de relaciones idnticas por
corresponder cada SUB valor en un operando a un valor del
segundo operando. Esto es en todos los pares de
identificadores para los nodos que son unidos por relaciones en
un grfico cclico, no importan las longitudes de la relaciones.

RZ-41 OPERADOR SEMI-INSERT

Una insercin en la T en el acto f representada por un


semi-tupla es solicitada. El SMBD examina la mitad
pertinente de T para ver si la f ya se encuentra ah. Si la f
esta en la T, el SMBD rechaza la peticin. Si no, el SMBD
asocia la f con una existencia que aparea el hecho que
resulta tener su otra mitad por omisin, si ningn punto
est disponible, crea tal punto haciendo una copia que
satisfactoriamente puede unirse.

RZ-42 OPERADOR SEMI-UPDATE

Una actualizacin es solicitada lo que debe ser aplicado


a un hecho que es representado por una semi-tupla de
T. Si el SMBD es capaz de encontrar al menos una
semi-tupla la cual pertenezca, se procede a actualizar
cada copia que exista. Si el SMBD es incapaz de
encontrar tal semi-tupla, es rechazada la peticin.

RZ-43 y 44 SEMI-ARCHIVE Y SEMIDELETE

El DBMS comprueba para considerar si el hecho ser


archivado o suprimido ocurra en ms de un semi-tuple de T.
Si es as como paso 1, almacena o elimina todas las filas de
T(excepto una fila) en el cual el ocurre el hecho. Como paso
2, el SMBD marca como faltantes los componentes de un
semi-tuple restante de T. Si en el comienzo el hecho que se
archivar o suprimido ocurre solamente una vez, se omite el
paso 1 y se ejecuta el paso 2. Si el hecho que se archivar o
ser suprimido no ocurre en T, el SMBD rechaza la peticin

MANEJO DE INFORMACIN FALTANTE EN


MR V2

Clasificacin de informacin faltante por tipo y por


razn
Ausente
Tuplas completas
No-eventos

Eventos
desconocidos
para el SMBD

Eventos
no aplicables

Valor-de-BD
Aplicable
(Marca-A)

No aplicable
(Marca-I)

Otro

Valor
Valorde
deBD:
BD:Valor
Valorelemental
elementalde
delalabase
basede
dedatos.
datos.Es
Escualquier
cualquiervalor
valorque
queuna
una
sola
sola columna
columna puede
puede tener
tener en
en una
una relacin.
relacin. (Excepto
(Excepto en
en ciertas
ciertas funciones
funciones
especficos
especficoses
esun
unvalor
valoratmico)
atmico)

Valor-de-BD: Valor elemental de la base de datos. Es cualquier valor


que una sola columna puede tener en una relacin. (Excepto en ciertas
funciones especficos es un valor atmico).
MARCAS:

Anteriormente se conocan como valores nulos.


El SMBD no las trata como valores, ni como variables.
Sin embargo podran ser tratadas como algn tipo de valor por
el lenguaje anfitrin.
Marca-A: Marca de valor ausente, pero aplicable.
Marca-I: Marca de valor no aplicable.

Se debe dejar de usar el trmino valor nulo por las siguientes


razones:
1.

El SMBD no maneja las marcas como si fueran valores.

1.

Ahora hay dos tipos de marcas, donde antes solamente


exista una.

1.

Algunos lenguajes anfitriones manejan objetos llamados


nulos que su significado es algo muy distinto a las
marcas en la base de datos.

1.

En ingls es un trmino mas adecuado.

Las marcas no son tratadas como valores. Por ejemplo si la columna


es de tipo numrica, no se permite incrementar o decrementar
aritmticamente una marca, aun que al resto de los valores si.
Si x es un Valor-de-BD, I es una Marca-I y A es una Marca-A:

x + x = 2x

x+A=A

A+x=A

A+A=A

A+I=I

I+A=I

I+I=I

x+I=I

I+x=I

Existen tablas muy similares para la resta, multiplicacin y divisin,


excepto que las operaciones solamente entre Valores-de-BD
entregan el valor aritmtico segn la operacin.

En cuanto a las cadenas de caracteres, no se puede


concatenar nada a una marca.
Existe tambin una tabla similar a la de la suma con marcas.
Dichas tablas se pueden resumir as:

Si decimos que las Marcas-I son de primera clase, las Marcas-A


son de segunda clase y los Valores-de-BD son de tercera clase,
la combinacin (aritmtica o de otra forma) de cualesquiera dos
elementos entrega un elemento del tipo de mayor clase
presente en los operandos.

PK Y FK EN RELACIONES BASE

Una regla importante es que en una BD relacional, para


mantener integridad, nunca se almacena informacin de
un objeto no identificado (o identificado en forma no
adecuada). Es por eso que no se permite que las llaves
primarias contengan marcas (de ninguno de los dos
tipos) -> integridad de entidad.
En el caso de las llaves forneas debe ser posible
exclusivamente asignar Marcas-A, o algn valor que
preserve la restriccin de integridad referencial.

FILAS CON MARCAS-A Y/O MARCAS-I

Cualquier fila que contenga solamente Marcas-A y/o


Marcas-I debe ser eliminada de la relacin por el
SMBD. (RI-12)
Dicha fila no presenta informacin para ninguna
relacin derivada, ya sea vista, consulta, snapshot,
etc.

APLICACIN DE IGUALDAD

Igualdad semntica: El significado participa fuertemente


Por ejemplo:
Si el atributo Fecha_Nacimiento tiene Marca-A, y se evala:
Fecha_Nacimiento > 1966-1-1
es verdadero? es falso?
Igualdad simblica (o formal): El significado es ignorado

LGICA DE 3 VALORES DEL RM/V2 (RM


V1)
El valor nulo representa un tal vez (maybe)

P
v
m
f

not P
f
m
v

El valor nulo representa un tal vez (maybe)

PQ
P
v
m
f

not P
f
m
v

v
P m
f

v
v
v
v

Q
m f
v v
m m
m f

El valor nulo representa un tal vez (maybe)

PQ
P
v
m
f

not P
f
m
v

v
P m
f

v
v
v
v

Q
m f
v v
m m
m f

Q
PQ
v m
v v m
P m m m
f f f

f
f
f
f

LGICA DE 4 VALORES DEL RM/V2 (RM


V2)
a = Marca-A, i = Marca-I

P
v
a
i
f

not P
f
a
i
v

a = Marca-A, i = Marca-I

P
v
a
i
f

not P
f
a
i
v

PQ

v
v v
a v
i v
f v

Q
a i f
v v v
a a a
a i f
a f f

a = Marca-A, i = Marca-I

P
v
a
i
f

not P
f
a
i
v

PQ

v
v v
a v
i v
f v

Q
a i f
v v v
a a a
a i i
a I f

PQ

v
v v
a a
i i
f f

Q
a
a
a
i
f

i
i
i
i
f

f
f
f
f
f

SELECTS, EQUI-JOINS, INEQUALITY JOINS,


DIVISIN RELACIONAL

Siempre que un Equi-Join requiera una comparacin de


igualdad, y uno de los dos, o los dos elementos sean una
marca del mismo tipo (aplicable o no aplicable), las filas
adecuadas sern pegadas si y slo si fue especificado el
cualificador Tal vez.
Si el cualificador Tal vez no fue especificado, entonces la
ejecucin entregar solamente aquellos casos en que la
evaluacin sea verdadera.

ORDENACIN DE VALORES Y MARCAS

El ordenamiento debera ser manejado de forma similar que


la igualdad.
Hay dos tipos de ordenamiento: orden semntico, y orden
simblico. El orden semntico aplica cuado se est usando
un menor-que o un mayor-que en un sublenguaje de datos
relacionales. El orden simblico aplica cuando se utiliza la
clusula Order By. (por lo pronto SQL, cuando maneja
marcas en la clusula Order By stas deben ser del tipo
aplicables). Por ejemplo en DB2, las Marcas-A van
inmediatamente despus de los valores, y despus de sos
van las Marcas-I.

FUNCIONES ESCALARES APLICADAS A


ARGUMENTOS MARCADOS

Funcin escalar es aquella que recibe escalares como


operandos y entrega un escalar.
Como vimos en la tabla de la suma, si alguno de los
operandos es Marca-I, el resultado es Marca-I, en
cambio si el operando de la clase mayor es Marca-A, el
resultado ser Marca-A.

APLICACIN DE FUNCIONES
ESTADSTICAS

Una forma conveniente para manejar este tipo de


funciones, es por medio de funciones de un solo
argumento, para reemplazar las Maracas-A y las
Marcas-I por algn valor predeterminado (reglas
RQ-4 y RQ-5).

ELIMINACIN DE FILAS DUPLICADAS

En ninguna circunstancia el SMBD debera permitir entregar filas


repetidas. Incluso si el usuario ejecuta una proyeccin que no tiene
la llave primaria o por alguna otra razn que pudiera presentar filas
repetidas. El optimizador del SMBD debera eliminar la necesidad
actual de especificar expresamente que no se quieren los
duplicados.
Si las filas no tienen marcas, entonces es obvia la identificacin de
filas duplicadas, pero de otra forma dos filas son duplicadas si al
evaluar dos componentes de filas <x, y> se cumple:
1.- x, y son valores y x=y o
2.- Uno del par es marcado el otro no o
3.- ambos x, y son marcas, y las marcas son iguales simblicamente
(ambas son Marca-A o ambas son Marca-I) y si la condicin 1 es
satisfecha para al menos un par de componentes evaluados.

ELIMINACIN DE FILAS DUPLICADAS

EMP

Emp#

ENombre

Dep#

Salario

H_Ciudad

E107

Pancho

D12

10,000

Zitcuaro

E912

Jos

12,000

Colima

E239

Jos

12,000

Colima

E575

Pedro

D12

Colima

E123

Adrin

D01

15,000

Cuernavaca

E224

Rodrigo

Puebla

Emp#

EMP

ENombre

Dep#

Salario

H_Ciudad

E107

Pancho

D12

10,000

Citcuaro

E912

Jos

12,000

Colima

E239

Jos

12,000

Colima

E575

Pedro

D12

Colima

E123

Adrin

D01

15,000

Cuernavaca

E224

Rodrigo

Puebla

E <- EMP [Dep#, Salario]


E

Dep#

Salario

D12

10,000

12,000

**

12,000

D12

D01

15,000

***

Dep#

Salario

D12

10,000

12,000

D12

##

D01

15,000

MARCAS GENERADAS POR OPERADORES

Al agregar una columna en una relacin dada, todos los


valores de dicha columna sern Marcas-A. No tendra caso
ponerles Marcas-I ya que no tendra sentido la existencia de
esa columna si todas las filas debieran tener marcas no
aplicables en esa columna.
Los operadores outer-join y outer-union son capaces de
generar relaciones derivadas en que alguna(s) columna(s)
tengan Valores-de-BD ausentes. En ese caso tambin ser
razonable que usen Marcas-A.

CAMBIOS NECESARIOS EN EL LENGUAJE


Manejo del cualificador Tal vez (para esto sera necesario que el SGBD
maneje la lgica de tres-valores o la de cuatro-valores)
Ej.: el elemento X requiere que la condicin K que sea Verdadero o Tal Vez:
(X where K) U (X where K MAYBE)

Si se usa la lgica de cuatro-valores, ser necesario un Tal Vez_A y un


Tal Vez_I
Ej: si queremos encontrar:
1) Todos los empleados que reciben o podran recibir comisiones por ventas
SELECT serial_number FROM employees
WHERE comission IS NOT I-MARKED
2) Todos los empleados que no podran recibir comisiones por ventas
SELECT serial_number FROM employees
WHERE comission IS I-MARKED

IV. SQL

INTRODUCCIN

El Lenguaje de consulta estructurado (Structured Query Language o SQL)


es un lenguaje que se utiliza para interactuar con bases de datos
relacionales.
SQL se utiliza para controlar todas las funciones que el SGBD ofrece a los
usuarios, entre las que se hallan las siguientes:

Definicin de los datos. SQL permite que el usuario defina la


estructura y la organizacin de los datos almacenados y las
relaciones entre los elementos almacenados.
Recuperacin de los datos. SQL permite que el usuario o un
programa de aplicacin recupere de la base de datos los datos
almacenados y los utilice.

Manipulacin de datos. SQL permite que el usuario o una aplicacin


actualice la base de datos aadiendo datos nuevos, eliminando datos
antiguos y modificando los datos almacenados previamente.

Control de acceso. SQL puede utilizarse para restringir la capacidad del


usuario para recuperar, aadir y modificar datos, protegiendo as los datos
almacenados contra los accesos no autorizados.
Compartir datos. SQL utiliza para coordinar los datos compartidos entre
usuarios concurrentes, asegurando as que no interfieran entre s.
Integridad de datos. SQL define restricciones de integridad en la base de
datos, protegindola as del deterioro debido a las actualizaciones
inconsistentes o a los fallos del sistema.

HISTORIA

SQL (que se pronuncia "ese-cu-ele" y no "siquel") empieza en


1974 con la definicin, por parte de Donald Chamberlin y de
otras personas de IBM, de un lenguaje para la especificacin
de las caractersticas de las bases de datos que adoptaban el
modelo relacional.
Este lenguaje se llamaba SEQUEL (Structured English Query
Language) y se implement en un prototipo llamado
SEQUEL-XRM entre 1974 y 1975.

Las experimentaciones con ese prototipo llevaron, entre 1976


y 1977, a una revisin del lenguaje (SEQUEL/2), que a partir
de ese momento cambi de nombre por motivos legales,
convirtindose en SQL.
IBM creo el prototipo System R, a finales de los 70s, basado
en SQL Gracias al xito de este sistema, tambin otras
compaas empezaron a desarrollar sus productos
relacionales basados en SQL.

Otro producto relacional llamado Ingres, desarrollado por


cientficos en la Universidad de California, Berkeley, casi al
mismo tiempo, trabajaba en su propio lenguaje llamado
QUEL muy similar al SQL de IBM.
El primer producto relacional fue el de Oracle Corporation en
1979 seguido por el de IBM, SQL/DS (1980/81) y DB2
(1982/83).

La primera versin comercial de Ingres estuvo disponible a


principios de los 80s. Sybase liber la primera versin de su
producto en 1986 y en 1988 Microsoft liber SQL Server.
SQL fue reconocido como el lenguaje comnmente usado en
los SGBD, pero los diferentes productos tenan diferencias
que se incrementaban con el tiempo, por lo cual era
necesario crear un estndar.

El trabajo en el estndar oficial de SQL comenz en 1982,


cuando ANSI encargo a su comit X3H2 la definicin de un
lenguaje estndar de bases de datos, ese lenguaje fue SQL
ese lenguaje fue SQL debido a su amplia aceptacin.
El estndar se desarrollo basndose en el SQL de DB2, pero
con algunas diferencias. Despus de varias revisiones se
termino el estndar ANSI en 1986 y como estndar ISO en
1987.

El estndar fue revisado y aumentado en 1989 y suele


llamarse SQL-89 o estndar SQL1.
A SQL1 le faltaban muchas caractersticas por la
incompatibilidad de los productos por lo cual se definan
como caractersticas dependientes de la implementacin.

Para abordar los problemas que tena el estndar SQL1 el


comit ANSI sigui con el proceso de estandarizacin y
distribuy borradores que especificaban caractersticas que
muchos productos SQL no tenan.
En 1992 el estndar supero la proceso de aprobacin del
comit ANSI y surgi SQL2 (denominado oficialmente SQL92) el cual ocupa cerca de 600 pginas mientras que SQL1
tena menos de 100.

SQL2 tena tres niveles de cumplimiento del estndar:


Nivel inicial. Slo exige una capacidad adicional mnima
respecto al estndar SQL-89.
Nivel intermedio. Se creo como un avance con respecto
a SQL-89 pero evitando los aspectos ms complejos y la
mayora de los problemas dependientes del sistema y de
los productos.
Nivel completo. Exige una implementacin completa de
todas las posibilidades de SQL2.

EL estndar ANSI/ISO SQL3 surgi en 1999 y fue


desarrollado bajo la supervisin de los comits ANSI e ISO.
El estndar tiene ms de 1500 pginas.
SQL3 extiende el modelo relacional de datos para incorporar
objetos y tipos de datos complejos dentro de tablas
relacionales junto con todos los mecanismos de soporte.

FECHA

EVENTO

1970

Codd define el modelo relacional de bases de datos.

1974

IBM comienza el proyecto System/R.


Se publica el primer articulo que describe el lenguaje SEQUEL.

1978

Se realizan pruebas de System/R con clientes.

1979

Oracle introduce el primer SMBDR comercial.

1981

Relational Technology introduce Ingres.


IBM anuncia SQL/DS.

1982

ANSI forma el comit para estndares de SQL.

1983

IBM anuncia DB2.

1986

Se ratifica el estndar SQL1.


Sybase introduce un SMBDR para el procesamiento de transacciones.

1987

Se ratifica el estndar ISO SQL1.

1988

Ashton-state y Microsoft anuncian SQL Server para 0S/2.

FECHA

EVENTO

1989

Se publica la primera prueba de rendimiento TPC (TPC-A).

1990

Se publica la prueba de rendimiento TCP-B.

1991

Se publica la especificacin de acceso a bases de datos SQL Access Group.

1992

Microsoft publica la especificacin ODBC.


Se ratifica el estndar ANSI SQL2 (SQL.2).
Se publica la pruba de rendimiento TCP-C (OLTP).

1993

Por primera vez se distribuyen sistemas de almacenamiento de datos SQL especializados.


Por primera vez se distribuyen productos ODBC.

1994

Se distribuye comercialmente tecnologa paralela de servidores de bases de datos.

1996

Se publican el API estndar para el acceso OLAP a bases de datos y la prueba de


rendimiento OLAP.

1997

UDB DB2 de IBM unifica la arquitectura DB2 para las plataformas de IBM y de otros
fabricantes.
Los principales fabricantes de SGBD anuncian estrategias de integracin de Java.

FECHA

EVENTO

1998

Microsoft SQL Server 7 ofrece soporte de bases de datos para Windows NT en el mbito
empresarial.
Oracle 8i ofrece integracin entre las bases de datos e Internet y rompe con el modelo
Cliente/Servidor.
Se distribuyen por primera vez productos comerciales de bases de datos residentes en
memoria.

1999

J2EE estandariza el acceso JDBC a bases de datos desde los servidores de aplicaciones.

2000

Oracle introduce servidores de aplicaciones con cach integrada de bases de datos.


Microsoft introduce SQL Server 2000, dirigido a las aplicaciones empresariales.

2001

La posibilidad de integracin de XML aparece en los principales productos SMBDR.


IBM adquiere el negocio de bases de datos de Informix.

2002

Gartner clasifica a IBM como primer fabricante de bases de datos, superando a Oracle.

Una sentencia o instruccin SQL es como una frase (escrita en ingls ) con la que
decimos lo que queremos obtener y de donde obtenerlo.
Todas las sentencias empiezan con un verbo (palabra reservada que indica la accin
a realizar), seguido del resto de clusulas, algunas obligatorias y otras opcionales
que completan la frase.
Consideraciones para escribir sentencias SQL:

Las sentencias SQL no distinguen entre maysculas y minsculas.


Las sentencias SQL pueden estar en una o ms Lneas.
Las palabras reservadas (keywords) no pueden ser abreviadas o divididas
entre lneas.
Las clusulas son usualmente colocadas en lneas separadas.
El sangrado debe ser usado para mejorar la legibilidad.

LENGUAJE DE MANIPULACIN DE DATOS


(LDM)

SENTENCIA

DESCRIPCIN

SELECT

Utilizada para recuperar datos de la base de datos.

INSERT

Utilizada para aadir filas de datos a una tabla en la base de datos.

UPDATE

Utilizada para modificar los valores de los datos en la base de


datos.

DELETE

Utilizada para eliminar filas de una tabla en una base de datos

LENGUAJE DE DEFINICIN DE DATOS


(LDD)

SENTENCIA
CREATE
DROP

ALTER

DESCRIPCIN
Utilizada para crear nuevas tablas, vistas, esquemas, dominios e
ndices.
Empleada para eliminar tablas, vistas, esquemas, dominios e

ndices.
Utilizada para modificar las tablas, vistas, esquemas, dominios

e ndices.

LENGUAJE DE CONTROL DE DATOS (LCD)

SENTENCIA
GRANT

DESCRIPCIN
Se utiliza para conceder privilegios de acceso a los usuarios.

REVOKE

Utilizada eliminar privilegios de acceso a los usuarios.

COMMIT

Se Utiliza para finalizar la transaccin actual.

ROLLBACK

Utilizada para abortar la transaccin actual

LDM: SELECT

Capacidades de la sentencia SELECT

Proyeccin

Seleccin

Tabla 1

Tabla 1
Reunin

Tabla 1

Tabla 2

Sintaxis de la sentencia SELECT:


SELECT [DISTINCT] [<calificador>.]<nombre_columna> | * | <expresin>
[AS <alias_columna>],...
FROM <tabla_o_nombre_vista> | [[AS] <tabla_alias>]
[WHERE <predicado>]
[GROUP BY [<calificador>.]<nombre_columna>,...
[HAVING <predicado>] ]
[ORDER BY <nombre_columna> | <numero_columna> [ASC | DESC],...];

La siguiente sentencia selecciona todas las columnas de la


tabla departments:

SELECT *
FROM
departments;

La siguiente sentencia selecciona todas las columnas de la


tabla departments:

SELECT department_id, location_id


FROM
departments;

LMD: SELECT - OPERADORES

Se pueden crear expresiones usando datos de tipo numrico


y fecha con los siguientes operadores aritmticos:

Operador

Descripcin

Suma

Resta

Multiplicacin

Divisin

La siguiente sentencia muestra el uso del operador suma con la


columna salary:

SELECT last_name, salary, salary + 300


FROM
employees;

La precedencia de los operadores es la siguiente:

La Multiplicacin y la divisin tienen ms prioridad que la


suma y las resta.
Los operadores que tiene la misma prioridad son evaluados
de izquierda a derecha.
Los parntesis son usados para forzar el orden de evaluacin
y clarificar las sentencias.

La siguiente sentencia muestra la precedencia del operador


multiplicacin con la columna salary:

SELECT last_name, salary, 12*salary+100


FROM
employees;

La siguiente sentencia muestra el uso de parntesis para


cambiar el orden de evaluacin:

SELECT last_name, salary, 12*(salary+100)


FROM
employees;

LMD: SELECT NULOS EN EXPRESIONES

La siguiente sentencia muestra como afectan los nulos en


expresiones aritmticas:

SELECT last_name, 12*salary*commission_pct


FROM
employees;

LMD: SELECT COLUMNAS ALIAS

Una columna alias:


Renombra el encabezado de una columna.
Es til con clculos.
Inmediatamente despus del nombre de columna debe de ir
la palabra reservada AS entre el nombre de columna y el alias.
Requiere comillas dobles para alias que contengan espacios
o caracteres especiales.

La siguiente sentencia muestra como poner alias a las


columnas:

SELECT last_name AS name, commission_pct AS comm


FROM
employees;

LMD: SELECT OPERADOR DE


CONCATENACIN

Un operador de concatenacin:
Concatena columnas o cadenas de caracteres a otras
columnas.
Esta representado por dos barras verticales ( || ).
Crea una columna como resultado que es una expresin de
carcter.

La siguiente sentencia muestra como utilizar el operador de


concatenacin:

SELECT last_name || job_id AS "Employees"


FROM employees;

La siguiente sentencia muestra como utilizar el operador de


concatenacin:

SELECT last_name ||' is a '||job_id


AS "Employee Details"
FROM
employees;

LMD: SELECT COLUMNAS DUPLICADAS

La siguiente sentencia muestra como eliminar las filas


duplicadas:

SELECT DISTINCT department_id


FROM
employees;

LMD: SELECT CLAUSULA WHERE

La clusula WHERE nos permite limitar el nmero de filas en


una consulta:

SELECT employee_id, last_name, job_id, department_id


FROM
employees
WHERE department_id = 90 ;

Las cadenas de caracteres y los valores de fecha deben ir encerradas en


comillas simples.
Los valores de carcter son sensibles a las maysculas y minsculas, y los
valores de fechas son sensibles al formato.
La clusula WHERE nos permite limitar en base al last_name:
SELECT last_name, job_id, department_id
FROM
employees
WHERE last_name = 'Whalen';
La clusula WHERE nos permite limitar en base al last_name:
SELECT start_date, end_date
FROM job_history
WHERE start_date = '1993-01-13';

Operador

Significado

Igual que

>

Mayor que

>=

Mayor que o igual que

<

Menor que

<=

Menor que o igual que

<>

Diferente que

La clusula WHERE nos permite limitar el nmero de filas con


el operador de comparacin:

SELECT last_name, salary


FROM
employees
WHERE salary <= 3000;

Operador

Significado

BETWEEN
...AND...

Entre dos valores (inclusivo)

IN(lista)

Cualquiera de la lista de valores

LIKE

Que coincida con el patrn

IS NULL

Si es un nulo

El operador BETWEEN nos permite limitar el nmero de filas


utilizando un rango de valores:

SELECT last_name, salary


FROM
employees
WHERE salary BETWEEN 2500 AND 3500;

El operador IN nos permite probar si un elemento es parte de


una lista de valores:

SELECT employee_id, last_name, salary, manager_id


FROM
employees
WHERE manager_id IN (100, 101, 201);

% : Cualquier secuencia de cero o mas caracteres


_ : Un solo carcter. (cualquiera)

El operador LIKE nos permite buscar filas que cumplan con un


determinado patrn:
Empieza con S
SELECT first_name
FROM employees
WHERE first_name LIKE 'S%';

El operador LIKE nos permite buscar filas que cumplan con un determinado
patrn:
El Segundo caracter es o
SELECT
FROM
WHERE

last_name
employees
last_name LIKE _o%';

Contiene SA_
SELECT employee_id, last_name, job_id
FROM
employees
WHERE job_id like '%SA\_%';

\ : Es el carcter de escape predeterminado, el cual puede ser


cambiado agregando al final:
ESCAPE <CHAR>

El operador IS NULL nos sirve para identificar los nulos:

SELECT last_name, manager_id


FROM employees
WHERE manager_id IS NULL;

Operador
AND

Significado
Es TRUE si ambas condiciones son
verdaderas

OR

Es TRUE si alguna es las condiciones


es verdadera

NOT

Es TRUE si la siguiente condicin es


falsa

Orden de evaluacin
Operador
Significado
1
Operadores aritmticos
Operador
2
de concatenacin
Es TRUEOperador
si ambas condiciones
son
AND
3
Operadores de comparacin
verdaderas
IS [NOT] NULL, LIKE, [NOT] IN
OR 4
Es TRUE si alguna es las condiciones
5
[NOT] BETWEEN
es verdadera
6
Operador lgico NOT
Es TRUE si la siguiente condicin es
NOT
7
Operador lgico AND
falsa
8
Operador lgico OR

LMD: SELECT ORDER BY

Para ordenar filas se utiliza la clusula ORDER BY.


La clusula ORDER BY debe estar al final de la sentencia
SELECT.
Esta clusula tiene un modificador que puede ser:
ASC: orden ascendente (opcin por defecto).
DESC: orden descendente.

La siguiente consulta ordena de manera ascendente la fecha de contrato:


SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date ;

La siguiente consulta ordena de manera descendente la fecha de contrato:


SELECT last_name, job_id, department_id, hire_date
FROM employees
ORDER BY hire_date DESC ;

Se puede ordenar en base al alias de una columna:


SELECT employee_id, last_name, salary*12 as annsal
FROM employees
ORDER BY annsal ;
Tambin en base a una columna que no se desplegar:
SELECT employee_id, salary*12 as annsal
FROM employees
ORDER BY last_name;

Se puede ordenar con mltiples columnas:

SELECT last_name, department_id, salary


FROM employees
ORDER BY department_id, salary DESC ;
En este caso sern acomodadas las filas de acuerdo a
department_id, y todas las filas que tengan el mismo dato en
sta columna, sern ordenadas en forma descendente segn el
salario de cada empleado.

ESTNDAR DE SQL-99

Funcin SQL
BIT_LENGTH (expresin)

Descripcin
Devuelve la longitud de la
generalmente una cadena, en bits.

expresin,

CAST (valor AS tipo de dato)

Convierte el valor que est en un tipo de dato a


otro tipo de dato compatible.

CHAR_LENGTH (expresin)

Devuelve la longitud de la expresin,


generalmente cadena, en caracteres.

CONVERT (expresin USING conversin)

Convierte una cadena al tipo especificado de


codificacin.

CURRENT_DATE

Devuelve la fecha actual del sistema.

CURRENT_TIME (precisin)

Devuelve la hora actual y la fecha actual del


sistema, con la precisin especificada

CURRENT_TIMESTAMP (precisin)

Devuelve la hora actual y la fecha actual del


sistema, con la precisin especificada

EXTRACT (parte FROM expresin)

Extrae la parte especificada de la Fecha


especificada.

Funcin SQL

Descripcin

LOWER (cadena)

Convierte la cadena de caracteres a minsculas.

OCTET_LENGTH (cadena)

Regresa la longitud de la expresin en bytes.

POSITION (subcadena IN cadena)

Devuelve la posicin del carcter o subcadena


en la cadena de caracteres.

SUBSTRING (cadena, inicio, longitud)

Devuelve una subcadena de la cadena


especificada, desde la posicin de inicio hasta la
longitud dada.

TRANSLATE (string expression USING


translation rule)

Devuelve Returns string translated into another


string according to specified rules.

TRIM(LEADING | TRAILING | BOTH char


expression FROM string expression)

Elimina el carcter indicado que aparezca en la


posicin especificada de la cadena.

UPPER (cadena)

Convierte la cadena de caracteres a maysculas.

Funciones

Funciones de
slo una fila

Funciones de
mltiples filas

LMD: FUNCIONES DE UNA SOLA FILA

Permiten manipular datos.


Actan sobre cada fila.
Devuelven un valor por fila.
Pueden modificar el tipo de dato.
Pueden estar anidadas.
Aceptan argumentos, los cuales pueden
ser una columna o una expresin.

Caracteres

Generales

Funciones de
slo una fila

Conversin

Numricas

Fechas

LMD: FUNCIONES DE CARACTERES

Funciones
de caracteres

Funciones de manipulacin
de maysculas y minsculas
LOWER
UPPER
INITCAP

Funciones de manipulacin
de caracteres
SUBSTR
LENGTH
POSITION
LPAD | RPAD
TRIM
REPLACE

Estas funciones convierten las maysculas y minsculas.

Funcin

Resultado

LOWER(Hola')

hola

UPPER('Hola')

HOLA

INITCAP('hola mundo') Hola Mundo

SELECT
SELECT
FROM
FROM
WHERE
WHERE

employee_id,
employee_id, last_name,
last_name, department_id
department_id
employees
employees
last_name
last_name == 'higgins';
'higgins';

SELECT employee_id, last_name, department_id


FROM
employees
WHERE LOWER(last_name) = 'higgins';

Estas funciones manipulan cadenas de caracteres:


Funcin

Resultado

SUBSTR('Hola Mundo', ,1,5)

Hola

LENGTH('Hola Mundo')

10

POSITION('Hola Mundo, a')

LPAD(Hola,10,'*')

******Hola

RPAD(Hola, 10, '*')

Hola******

TRIM('H' FROM 'Hola Mundo')

ola Mundo

Uso de las funciones de manipulacin de caracteres:

SELECT employee_id, first_name, last_name,


job_id, LENGTH (last_name),
POSITION('a' in last_name) as "Contiene 'a'?"
FROM
employees
WHERE SUBSTR(job_id, 4) = 'REP';

LMD: FUNCIONES NUMRICAS

ROUND:
Redondea el valor al decimal especificado
ROUND(45.926, 2) 45.93
TRUNC:
Trunca un valor al decimal especificado
TRUNC(45.926, 2) 45.92
MOD:
Devuelve el residuo de una divisin
MOD(1600, 300) 100

Uso de la funcin numrica ROUND:

SELECT ROUND(45.923,2), ROUND(45.923,0),


ROUND(45.923,-1)

Uso de la funcin numrica TRUNC:

SELECT

TRUNC(45.923,2), TRUNC(45.923),
TRUNC(45.923,-2), TRUNC(4365.923,-2)

-------------------------------------45.92 45
0 4300

Uso de la funcin numrica MOD:

SELECT last_name, salary, MOD(salary, 5000)


FROM
employees
WHERE job_id = 'SA_REP';

LMD: FUNCIONES DE FECHAS

CURRENT_DATE devuelve la fecha actual


CURRENT_TIME devuelve la hora
CURRENT_TIMESTAMP devuelve la fecha y la hora

Uso de las funciones CURRENT_DATE, CURRENT_TIME y


CURRENT_TIMESTAMP;

SELECT CURRENT_TIME, CURRENT_DATE,


CURRENT_TIMESTAMP

LMD: FUNCIONES GENERALES

Estas funciones trabajan con cualquier tipo de datos y


permiten trabajar con nulos:
NULLIF (expr1, expr2) (nota: iguales null, diferentes expr1)
COALESCE (expr1, expr2, ..., exprn) (nota: primer no null)

Uso de la funcin COALESCE:

SELECT

last_name,
COALESCE(commission_pct, salary, 10)as comm
FROM
employees
ORDER BY commission_pct;

Uso de la funcin NULLIF:

SELECT first_name, LENGTH(first_name) as "expr1",


last_name, LENGTH(last_name) as "expr2",
NULLIF(LENGTH(first_name), LENGTH(last_name)) AS result
FROM employees;

LMD: MLTIPLES TABLAS

employee_id

last_name

department_id

department_id

department_name

location_id

100

King

90

101

Kochhar

90

60

IT

1400

70

Public Relations

2700

70

80

Sales

2500

110

90

Executive

1700

100

Finance

1700

110

Accounting

1700

120

Treasury

1700

204

Baer

205

Higgins

employee_id

department_id

department_name

199

50

Shipping

200

10

Administration

201

20

Marketing

202

20

Marketing

203

40

Human Resources

204

70

Public Relations

205

110

Accounting

206

110

Accounting

Atencin: en los siguientes casos el nmero de registros


obtenidos es el producto cartesiano de las tablas originales
Falt alguna condicin en el join.
Alguna condicin en el join es invlida.
Todas las filas de la primera tabla son reunidas a
todas las filas de la segunda.

Sintaxis de la sentencia SELECT (en sql 99):


SELECT
table1.column, table2.column
FROM table1
[ CROSS JOIN table2 ] |
[ NATURAL JOIN table2 ] |
[ JOIN table2 USING (column_name) ] |
[ JOIN table2
ON (table1.column_name = table2.column_name) ] |
[ LEFT | RIGHT | FULL OUTER JOIN table2
ON (table1.column_name = table2.column_name) ];

CROSS JOIN
Esta clusula produce el producto cruz de las dos tablas.
select last_name, department_name
from employees
CROSS JOIN departments;

Produce el mismo resultado que:


select last_name, department_name
from employees, departments;

NATURAL JOIN
Esta clusula est basada en todas las columnas de las dos
tablas que tienen el mismo nombre
Selecciona las filas que tienen el mismo valor en estas
columnas de ambas tablas
Si hay columnas con el mismo nombre, pero con tipo de
datos diferente, sale un error.
select department_id, department_name, location_id, location_id, city
from departments
NATURAL JOIN locations
where department_id IN (20, 50);

JOIN con USING

Si varias columnas tienen el mismo nombre, pero diferentes tipos


de datos, se puede modificar el NATURAL JOIN para especificar las
columnas que se deben usar.
Si varias columnas tienen el mismo nombre, pero queremos
especificar que solamente una debe participar en el NATURAL JOIN,
se debe usar USING.
No se deben usar nombres de tablas o alias en las columnas
referenciadas.
NATURAL JOIN y USING son mutuamente excluyentes.

JOIN con USING


select e.employee_id, e.last_name, d.location_id
from employees e JOIN departments d
USING (department_id);
select e.employee_id, e.last_name, d.location_id
from employees e JOIN departments d
USING (d.department_id);
d.

Se obtiene el mismo resultado con:


in
select employees.employee_id, employees.last_name,
o
j
ui
departments.location_id
q
E
from employees, departments
where employees.department_id = departments.department_id;

JOIN con ON

La clusula NATURAL JOIN es bsicamente un equijoin de todas las


columnas con el mismo nombre.
Se usa ON para especificar condiciones arbitrarias o especificar columnas a
reunir.
Si se usa ON, las condiciones de bsqueda estn separadas de las
condiciones del join, por lo que es ms fcil de entender.

select e.employee_id, e.last_name, e.department_id,


d.department_id, d.location_id
from employees e JOIN departments d
ON (e.department_id = d.department_id)
where e.department_id IN (20, 50);

JOIN de tres tablas usando ON


select employee_id, city, department_name
from employees e
JOIN departments d
ON d.department_id = e.department_id
JOIN locations l
ON d.location_id = l.location_id
where e.department_id IN (20, 50);

Se obtiene el mismo resultado con:


select employee_id, city, department_name
from employees e, departments d, locations l
where d.department_id = e.department_id
and d.location_id = l.location_id
and e.department_id IN (20, 50);

in
o
j
ui
q
E

INNER JOIN vs. OUTER JOIN

En SQL 99 el join de dos tablas que devuelve solamente filas que


si coinciden con las condiciones, es un INNER JOIN.
Un join entre dos tablas que devuelve el resultado del INNER JOIN
y tambin devuelve las filas que no coinciden con las condiciones, en
la tabla de la izquierda, en la de la derecha, o ambas es un LEFT
OUTER JOIN,
RIGHT OUTER JOIN, o un FULL OUTER JOIN.

LEFT OUTER JOIN


select e.last_name, e.department_id, d.department_name
from employees e
LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id) ;

RIGHT OUTER JOIN


select e.last_name, e.department_id, d.department_name
from employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id) ;

FULL OUTER JOIN

select e.last_name, e.department_id, d.department_name


from employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id) ;

VI. Diseo de Base de Datos

OBJETIVO

Generar un conjunto de esquemas relacionales que


permitan almacenar la informacin con un mnimo de
redundancia, pero a la vez faciliten la recuperacin de
la informacin.
Obtener esquemas
manipulacin.

exentos

de

anomalas

de

PROBLEMAS DEL ESQUEMA RELACIONAL

Redundancia. Se llama as a los datos que se repiten


continua e innecesariamente por las tablas de las bases
de datos.
Ocasiona un mayor tamao en la base de datos
almacenada, lo que repercute en problemas de espacio,
acceso ms lento de la informacin. La ms grave de las
consecuencias es si deviene en inconsistencia.
Cuando es excesiva es evidente que el diseo hay que
revisarlo.
Es el primer sntoma de problemas y se detecta
fcilmente.

Ambigedades. Datos que no clarifican suficientemente


el registro al que representan. Los datos de cada
registro podran referirse a ms de un registro o incluso
puede ser imposible saber a qu ejemplar exactamente
se estn refiriendo.
Es un problema muy grave y difcil de detectar.

Prdida de restricciones
dependencias funcionales.

de

integridad.

Normalmente

debido

Ejemplos:
Restricciones de existencia (valores nulos).
Restricciones de unicidad (valores duplicados.

Integridad referencial: permite asegurar que un valor que aparece en una


relacin para un conjunto de atributos determinado aparezca tambin en
otra relacin para un cierto conjunto de atributos.

Se arreglan siguiendo una serie de pasos concretos.

Anomalas en operaciones de modificacin de


datos. El hecho de que al insertar un elemento haya
que repetir tuplas en una tabla para variar unos pocos
datos.
O que eliminar un elemento suponga eliminar varias
tuplas. Por ejemplo, que eliminar un cliente suponga
borrar seis o siete filas de la tabla de clientes, sera
un error muy grave y por lo tanto un diseo terrible).

Propiedades indeseables. Un mal diseo nos conducira a:


Repeticin de la informacin.
Imposibilidad para representar determinada informacin con certeza.

Metas del diseo:


Evitar redundancia de datos.
Asegurar que las relaciones entre atributos estn representadas.
Facilitar la verificacin de actualizaciones para evitar violaciones de
integridad en la base de datos.

EJEMPLO

Algunos de los problemas planteados se ven en el


siguiente diseo de datos para un banco.
La informacin es sobre los prstamos que se
guardan en una sola relacin, prstamo, que se
define mediante el esquema de relacin:

Esquema-prestamo =(nombre-sucursal,
ciudad-sucursal,
activo, nombrecliente,
nmero-prstamo,
importe)

nombre-sucursal

ciudad-sucursal

activo

nombre-cliente

numeroprstamo

importe

Centro

Arganzuela

9.000.000

Santos

P-17

1.000

Moralzarzal

La Granja

2.100.000

Gmez

P-23

2.000

Navacerrada

Aluche

1.700.000

Lpez

P-15

1.500

Centro

Arganzuela

9.000.000

Sotoca

P-14

1.500

Becerril

Aluche

400.000

Santos

P-93

500

Collado Mediano

Aluche

8.000.000

Abril

P-11

900

Navas de la Asuncin

Alcal de Henares

300.000

Valdivieso

P-29

1.200

Segovia

Cerceda

3.700.000

Lpez

P-16

1.300

Centro

Arganzuela

9.000.000

Gonzlez

P-18

2.000

Navacerrada

Aluche

1.700.000

Rodrguez

P-25

2.500

Galapagar

Arganzuela

7.100.000

Amo

P-10

2.200

Se sabe que:
Cada sucursal bancaria tiene un valor nico del
activo, por lo que dado el nombre de una sucursal se
puede identificar de manera nica el valor del activo.
Cada sucursal puede conceder muchos prstamos
por lo que, dado el nombre de una sucursal, no se
puede determinar de manera nica el numero de un
prstamo.

Repeticin de la informacin. Supngase que se desea aadir un


nuevo prstamo a la base de datos: Navacerrada, Aluche, 1.700.000,
Fernndez, P-31, 1.500

Hay que repetir los datos del activo y de la ciudad de la


sucursal.

Actualizacin. Supngase que el activo de la sucursal de


Navacerrada cambia de 1.700.000 a 1.900.000.

Hay que modificar muchas tuplas de la relacin prestamo.

Imposibilidad para representar determinada informacin. No se


puede representar de manera directa la informacin relativa a cada
sucursal (nombre-sucursal, ciudad-sucursal, activo) a menos que
haya como mnimo un prstamo en esa sucursal

El principio fundamental reside en que las tablas deben


referirse a objetos o situaciones muy concretas, relacionados
exactamente con elementos reconocibles por el sistema de
informacin de forma inequvoca y que cada fila de una tabla
representa inequvocamente un elemento reconocible en el
sistema.
Es difcil a nivel conceptual agrupar esos elementos
correctamente.
La teora de la normalizacin permite afrontar el problema de
diseo de bases de datos relacionales de una manera
rigurosa y objetiva.

PAUTAS INFORMALES DE DISEO

Semntica de los atributos.


Reduccin de los valores redundantes en la tuplas.
Reduccin de los valores nulos en las tuplas.
Eliminacin de la posibilidad de generacin de tuplas espurias.
Para representar el esquema de una base de datos relacional se debe
dar el nombre de sus relaciones, los atributos de stas, los dominios
sobre los que se definen estos atributos, las llaves primarias y las llaves
forneas.

Ejemplo:
a) Semnticamente confusas

Pauta 1: Disee un esquema de relacin de modo


que sea fcil explicar su significado. No combine
atributos de varios tipos de entidades y tipos de
vnculos en una sola relacin.

Ejemplo:
b) Informacin redundante en la tuplas y
anomalas de actualizacin.

Anomalas de actualizacin:
Anomalas de insercin.
Anomalas de eliminacin.
Anomalas de modificacin.

Pauta 2: Disee los esquemas de las relaciones de modo


que no haya anomalas de insercin, eliminacin o
modificacin en las relaciones. Si hay anomalas selelas
con claridad a fin de que los programas que actualicen la BD
operen correctamente.

Ejemplo:
c) Valores nulos en la tuplas.

Pauta 3: Hasta donde sea posible, evite incluir en


una relacin base atributos cuyos valores puedan
ser nulos. Si no es posible evitar los nulos,
asegrese de que se apliquen slo en casos
excepcionales y no a la mayora de las tuplas de la
relacin.

Ejemplo:
c)Tuplas espurias.
Se aplica proyeccin a EMP_PROY

Se aplica join natural a EMP_PROY1 y LUGARES_EMP.

Pauta 4: Disee los esquemas de modo que puedan


reunirse por condiciones de igualdad sobre atributos claves,
para garantizar que no se formen tuplas errneas.

DEPENDENCIA FUNCIONAL: BASES

Es una restriccin entre dos conjuntos de atributos de la


base de datos.
Son restricciones del conjunto de relaciones legales.
Juega un papel importante en el Diseo de Base de datos.
El concepto de dependencia funcional
generalizacin de la idea de una llave.

es

una

Definicin: Es una restriccin entre dos conjuntos de


atributos de la base de datos.
Teniendo una relacin R.
Con n atributos {A1,A2, ... , An}
En lo que R = {A1,A2, ... , An}

Dos casos de DF (Dependencia Funcional):

El valor de una clave candidata dada en un


determinado momento.

El conjunto de todos los valores posibles que podra


tomar esa clave candidata en diferentes momentos.

Definicin de DF segn caso a):


Sea r una relacin y sean X y Y subcojuntos arbitrarios del
conjunto de atributos de r. Entonces decimos que Y es
dependiente funcional de X si y slo si cada valor de X en r
est asociado precisamente con un valor de Y en r. (siempre
que dos tuplas de r coincidan en su valor X, tambin
coincidirn en su valor Y).
XY

DEFINICIN

Sea R un esquema de relacin.


Sean A y B dos conjuntos de atributos de la base de datos.
Donde

A RyB R

La dependencia funcional
A B
es en R si y solo si para alguna relacin aceptable r(R),
siempre que dos tuplas t1 y t2 de r concuerden con los
atributos A, tambin concuerdan sobre los atributos B.
Esto es:

t1[A] = t2 [A] t1[B ] = t2 [B ]

Por ejemplo: la siguiente relacin satisface la DF.


{ V# } { ciudad }
V#

CIUDAD

P#

CANT

V1

Londres

P1

100

V1

Londres

P2

100

V2

Pars

P1

200

V2

Pars

P2

200

V3

Pars

P2

300

V4

Londres

P2

400

V4

Londres

P4

400

V4

Londres

P5

400

No se cumple: { P# } { cant }

Otras dependencias funcionales:


{ V#, P# } { cant }
{ V#, P# } { ciudad }
{ V#, P# } { ciudad, cant }
{ V#, P# } { V# }
{ V#, P# } { V#, P#, ciudad, cant }
{ V# } { cant }
{ cant } { V# }

DETERMINANTE Y DEPENDIENTE

Determinante Dependiente
Cuando se contiene slo un atributo en ambos
conjuntos denominado conjunto individual, se escribe:
V# ciudad

Definicin de DF segn caso b).


Sea R una llave candidata y sean X y Y subconjuntos
cualesquiera del conjunto de atributos de R.
Entonces, decimos que Y es dependiente
funcionalmente de X si y slo si en todo valor vlido
posible de R, cada valor X est asociado
precisamente con un valor Y. (En todo valor vlido
posible de R, siempre que dos tuplas coincidan en X,
tambin lo harn en Y).
XY

De las dependencias anteriores, las siguientes DFs no son


vlidas todo el tiempo:
V# cant
Cant V#
Debido a que se tendra como restriccin que todo envo de un
proveedor dado tiene la misma cantidad. Lo cual es valido
para la instancia actual de la relacin, pero no para todos los
valores posibles de la relacin.
Se usara el trmino dependencia funcional para el caso b), e
independiente del tiempo.

TIPOS DE DEPENDENCIA

Equivalente:
XY

YX

se representa: X Y

Ejemplo: { V# } { cant }

{ cant } { V# }

Plena o completa: Si X(X1,X2), se dice que Y es


dependiente funcional completa de X, si depende
funcionalmente de X, pero no depende de ningn
subconjunto del mismo.
XY

pero: X1 | Y

Lo representamos: X

X2 | Y

Funcional elemental: Si una DF plena tiene como


descriptor determinado un atributo simple.
V# ciudad.
Funcional Transitiva: Sea una relacin R(X,Y,Z), en la que:
X Y, Y Z y Y | X, se dice que Z tiene dependencia
transitiva respecto a X, a travs de Y.

Funcional trivial: X Y
de X (Y C X).

es trivial si Y es un subconjunto

{ V#, P# } { V# }

USO DE DEPENDENCIAS FUNCIONALES

1.

Probar las relaciones para verificar si stas son vlidas


bajo un conjunto dado de dependencias funcionales.
Si una relacin r es vlida bajo un conjunto F de
dependencias funcionales, se dice que

r satisface F

1.

Especifica restricciones sobre el conjunto de


relaciones validas.

Decimos que F cumple con R si todas las relaciones


validas sobre R satisfacen el conjunto de
dependencias funcionales F.

F se cumple en R

UNA RELACIN SATISFACE UNA DF

calle-cliente ciudad-cliente

En el mundo real
Dos ciudades pueden tener
calles que se llamen igual.

nombre-cliente

calle-cliente

Ciudad-cliente

Santos

Mayor

Peguerinos

Gmez

Carreteras

Cerceda

Lpez

Mayor

Peguerinos

Prez

Carreteras

Cerceda

Fernndez

Jazmn

Len

Gonzlez

Arenal

La Granja

Relacin cliente

No se incluye en el conjunto de dependencias


funcionales que se cumple en Esquema-cliente.

UNA DF SE CUMPLE EN UN ESQUEMA

numero-prestamo importe

En la empresa real
Cada prstamo tienen
nico importe.

un

numero-prestamo

Nombre-sucursal

importe

P-17

Centro

1.000

P-23

Moralzarzal

2.000

P-15

Navacerrada

1.500

P-14

Centro

1.500

P-93

Becerril

500

P-18

Centro

2.000

Relacin prstamo

Se exige que la restriccin nmero-prstamo importe


se cumpla en Esquema-prstamo

Cuando se disea una base de datos


relacional se enumera en primer lugar las
dependencias funcionales que se deben
cumplir siempre.

CIERRE DE UN CONJUNTO DE
DEPENDENCIAS

Dado un conjunto de dependencias funcionales S, hay


seguramente otras dependencias funcionales que son
lgicamente implcitas por S.
Si A B y B C, entonces podemos inferir A C
Ejemplo:
{ V#, P# } { CIUDAD, CANT }
Implica a las dos siguientes:
{ V#, P# } CIUDAD
{ V#, P# } CANT

El conjunto de todas la dependencias funcionales lgicamente implicadas por S


es la cerradura de S. ( S+ ).
Podemos encontrar todas las DF de S+, aplicando las Reglas de Inferencia,
tambin llamados Axiomas de Armstrong.
El cmputo del cierre de un conjunto de atributos con respecto a un conjunto
de dependencias funcionales se utiliza para determinar llaves y para asistir a la
normalizacin de relaciones.

AXIOMAS DE ARMSTRONG

Propuestas por W. Armstrong en Dependency Structures of


Data Base Relationships Suecia, 1974.
Son correctos porque no generan dependencias funcionales
incorrectas.
Son completos, porque, para un conjunto dado F de
dependencias funcionales permite generar todo F+.

Notacin:
Letras griegas (, , ,..) para conjuntos de atributos
Letras latinas maysculas para atributos individuales
ab denota
Regla de la reflexibilidad. Si es un conjunto de
atributos y , entonces se cumple que

Regla de la aumentatividad. Si se cumple que y


un es un conjunto de atributos y , entonces se
cumple que
Regla de la transitividad. Si se cumple que y
tambin se cumple que un , entonces se cumple
que .
Aunque los axiomas son completos, resulta difcil utilizarlos
directamente para el clculo de F+

OTRAS REGLAS

Regla de la unin. Si se cumple que y que


entonces se cumple que .
Regla de la descomposicin. Si se cumple que
entonces se cumple que y que .

Regla de la pseudotransitividad. Si se cumple que


y que , entonces se cumple que .

EJEMPLO

Esquema de relacin

R = (A, B, C, G, H, I)

Conjunto de dependencias funcionales

La dependencia funcional
H.

A B
A C
CG H
CG I
B H

Dado que se cumple A B y B H, se aplica la regla de


transitividad

La dependencia funcional

CG HI.

Dado que CG H y CG I, se aplica la regla de unin.


La dependencia funcional

AG I.

Dado que A C y CG I, se aplica la regla de


pseudotransitividad.
O se aplica la regla de aumentatividad en A C para
inferir AG CG. Finalmente se aplica la regla de
transitividad de la anterior y CG I .

CIERRE DE UN CONJUNTO DE ATRIBUTOS

Los trminos a la derecha y a la izquierda de una


dependencia funcional son subconjuntos de R.
Un conjunto de tamao n tiene 2n subconjuntos.
Por lo que hay

2 x 2n = 2 n + 1
dependencias funcionales posibles
n es el nmero de atributos de R.

Procedimiento que demuestra formalmente el modo de


utilizar los axiomas de Armstrong para calcular F+.
F+ := F
repeat
for each dependencia funcional f en F+
aplicar reflexibilidad y agregacin sobre f
agregar el resultado de dependencias funcionales hacia F+
for each par de dependencias funcionales f1y f2 en F+
If f1y f2 puede ser combinada usando transitividad then
agrega el resultado de la dependencia funcional a F+
until F+ no cambie ms

El algoritmo para encontrar si un conjunto es una


superclave implica el clculo del conjunto de atributos
determinados funcionalmente por .

Uno no muy eficiente es tomar todas las dependencias

funcionales con como trmino de la izquierda y tomar


la unin de los trminos de la derecha de todas esas
dependencias.

Uno ms eficiente tiene que dado un conjunto de


atributos , se define el cierre de bajo F (denotado por
+) como el conjunto de atributos que son
funcionalmente determinados por bajo F:
resultado:=;
While (cambios en resultado) do
for each dependencia funcional in F do
begin
if resultado then resultado:= resultado ;
end

Ejemplo:
Esquema de relacin
Conjunto de dependencias funcionales
Calcular

(AG)+

resultado = AG
A B hace que se incluya B a resultado
resultado:= resultado B

R = (A, B, C, G, H, I)
AB
AC
CG H
CG I
BH
A B est en F
A resultado (AG)

Ejemplo:

AB
AC
CG H
CG I
BH

A C hace que resultado sea ABCG


CG H hace que resultado sea ABCGH
CG I hace que resultado sea ABCGHI

USO DE ATRIBUTOS DE CERRADURA

Existen mltiples usos para el algoritmo del atributo cerradura:


Prueba de la superllave:
Para probar si X es una superllave, calculamos X+, y
checamos si X+ contiene todos los atributos de R.
Prueba de dependencias funcionales
Para checar si una dependencia funcional X Y
conserva (o en otras palabras, esta en F+), solo checa si
Y C X+.
Es decir, calculamos X+ usando atributos cerradura, y
entonces checar si ste contiene Y.

COBERTURA CANNICA

Conjuntos de dependencias funcionales pueden tener dependencias


redundantes que pueden ser deducidas desde otras
Ejemplo: AC es redundante en {AB, BC, AC}.
Partes de una dependencia funcional pueden ser redundantes.
Ejemplo: {AB, BC, ACD}
Puede ser simplificada a
{AB, BC, AD}
Intuitivamente una cobertura cannica de F es un conjunto minimo de
dependencias funcionales equivalente a F, no teniendo dependencias
redundantes o partes redundantes de dependencias.

Cualquier base de datos que satisfaga el conjunto de


dependencias funcionales simplificado tambin satisfar el
conjunto original, y viceversa, dado que los dos conjuntos
tienen el mismo cierre. Sin embargo, el conjunto simplificado es
ms sencillo de verificar.
El conjunto simplificado puede construirse como se describir a
continuacin.
Un atributo de una DF es raro o extrao si puede eliminarse
sin modificar el cierre del conjunto de DFs.

DEFINICIN

Sea F un conjunto de dependencias funcionales y


la dependencia funcional de F.
El atributo A es raro en si A y F implica
lgicamente a (F - {}) {( - A) }
El atributo A es raro en si A y el conjunto de
dependencias funcionales (F- {}) { - (
A)} implica lgicamente a F.

EJEMPLOS

Sean las dependencias funcionales:


Entonces

es raro en

ABC

Sean las dependencias funcionales:


Entonces

ABC
AC

ABCD
AC

es raro en el lado derecho de ABCD

Hay que prestar atencin a la direccin de las implicaciones


cuando se utiliza la definicin de los atributos raros: si se
intercambian el lado derecho y el izquierdo la implicacin se
cumplir siempre

Para comprobar eficientemente si un atributo A es raro en la


dependencia :
Si A, hay que considerar el conjunto:
F= (F-{ }) U { (-A)})
Y comprobar si A puede inferirse a partir de F, para ello hay que
calcular + bajo F: si incluye A entonces A es raro en .
Si A , sea =-{A}, hay que comprobar si se puede inferir que
a partir de F, para ello hay que calcular + bajo F: si + incluye todos
los atributos de entonces A es raro en .

Sea F

AB CD, A E y EC

Comprobar si C es raro en AB () CD ()
Hay que calcular el cierre de los atributos AB bajo F=

Conjuntos de dependencias funcionales pueden tener dependencias


redundantes que pueden ser deducidas desde otras.
Ejemplo: A C es redundante en:

{ A B, BC, AC }

Partes de una dependencia funcional pueden ser redundantes


{ A B, BC, ACD}
puede ser simplificada a

{ A B, BC, AD}

Intuitivamente, una cobertura cannica de F es un conjunto


"mnimo" de dependencias funcionales equivalente a F, no teniendo
dependencias redundantes o partes redundantes de dependencias.

Un recubrimiento cannico Fc, de F es un conjunto


dependencias tales que F implica lgicamente todas
dependencias de Fc, y Fc, implica lgicamente todas
dependencias de F. Adems, Fc debe cumplir
propiedades siguientes:

de
las
las
las

Ninguna dependencia de Fc, contiene atributos raros.


Cada lado izquierdo de una dependencia funcional es
nico. Es decir, no hay dos dependencias 11, y
22 de Fc, tales que 1= 2.

El recubrimiento cannico de un conjunto de dependencias


funcionales F puede calcularse de la manera siguiente:
Repeat
Utilizar la regla de la unin para sustituir cualquier
dependencia de F de la forma 11 U 12 con 112 .
Hallar una dependencia funcional con un atributo raro en
o en .
Until F no cambie.

Considrese el siguiente conjunto


funcionales F del esquema (A,B,C):

de

ABC
BC
AB
ABC
Calculamos el recubrimiento cannico de F.

dependencias

Hay dos dependencias funcionales con el mismo conjunto de


atributos a la izquierda de la flecha:
ABC
AB
Estas dependencias funcionales se combinan en:
ABC

A es raro para ABC porque F implica lgicamente


(F {ABC}) U {BC}
Esta afirmacin es verdadera porque BC ya est en el conjunto de
dependencias funcionales.
C es raro para ABC, ya que ABC viene lgicamente implicado por
AB y por BC.
Por tanto, el recubrimiento cannico es
AB
BC

También podría gustarte