Anda di halaman 1dari 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 50s 60s 70s 80s 90s

Modelos Sistemas manejadores de archivos Bases de datos jerrquicas Bases de datos de red Bases de datos relacionales 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 3. Software 4. Usuarios (Mquinas) (Programas) (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

3
ARCHIVO CONVENCIONAL

REA DE TRABAJO DEL PROGRAMA DE APLICACIONES

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


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

Relacional

A Relational Model of Data for Large Shared Data Banks

Modelos Basados en Objetos


Percepcin de un mundo real. Entidades y relaciones. Entidades: descritas por un conjunto de atributos. Relaciones: Asociacin entre entidades.

Entidad - Relacin

Dr. Peter Pin-Shan Chen Marzo 1976 The Entity-Relationship Model--Toward a Unified View of Data

Modelos Basados en Objetos

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

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 .

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
Persona

Instancia o entidad

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:

Nombre

Edad

Persona

Nacionalidad

NombreAtributo

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
Atributo 56061234

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

Telfono

Cliente

Claves candidatas: Son superclaves tales que todos sus subconjuntos propios de atributos no son superclave.
Nombre Id_cliente

Telfono

Cliente

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

Telfono

Cliente

No_IFE

ENTIDAD-ATRIBUTO

Nombre
Telfono

Nmero de cuenta Alumno

Fecha de nacimiento Nacionalidad


Da Mes Ao

Edad

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
Casada R con

Asociacin binaria

Mdico E Persona E

atiende R

Paciente E

Asociacin ternaria

E Materia

R Obtiene

E Evaluacin

E Estudiante

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

Supervisa

Supervisor

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 a2 b1

b2 b3 Ayuntamiento

a3 Municipio

Uno a muchos:
Conformada por a1 a2 b1 b2 b3 b4 b5 Departamento

a3

Empresa

Muchos a uno
Pertenece a a1 a2 b1 b2 b3

a3 a4 a5 Sucursal

Empresa

Muchos a muchos
Atiende a a1 a2 b1 b2

a3 a4 Profesor

b3 b4 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

Chen 1 1 N 1 N 1

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

Chen
Obligatoria Obligatoria Obligatoria

Opcional

No existe

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 Modelo Marca Modelo
Tipo Cabina

Id_ Vehculo

Nombre_ Vehculo

No_ Pasajeros

Id_ Vehculo

Nombre_ Vehculo

Capacidad

Precio

Carro

No_de Motor

Precio

Camin

No_de Motor

Marca

Modelo

Id_ Vehculo

Nombre_ Vehculo

No_de Motor

Precio

Moto

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

No_Parte

Pieza

Num_Envo

Cant_Disponible

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: Indica que es parcial 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: una instancia del supertipo disjunta puede ser slo una de los subtipos. Regla de traslape: una instancia del traslape 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: un atributo simple con valores Disjunto alternativos para indicar el subtipo correspondiente. Traslape: un atributo compuesto cuyas Traslape 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=

Atributo simple que indica el tipo de subclase correspondiente

d
H S

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: conjunto de uno o entidades ms tipos de entidad y las interrelaciones asociadas agrupadas en un nico conjunto de entidades abstracta.

Grupos de Entidades Relacionadas Pueden Formar Clusters

Unidad de ventas

Hace negocios con

Cliente

Compra

Material

Usado

Artculo

Artculo vendido

Producido en

Manufacturera

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:
Todo subtipo participa en slo una interrelacin supertipo/subtipo. Un subtipo tiene un nico supertipo: es el concepto de rbol.

Propiedad d

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 pila ape1 ape2 d d nombre Empleado fecha direc

veloc Secretaria Tcnico nivel

tipo Ingeniero Jefe Asalariado sueldo Jefe de ingeniera

Precio 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.

nombre dni

sexo

direc fecha-n

Persona O

sueldo

Empleado d

Estudiante d Ayudante d Maestria


titulo

especialidad

Laboral
nivel

Docente
categora

Licenciatura
grupo

proyecto

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 Tringulo d Ancho Rectngulo Alto

Lado

Cuadrado

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 Alto

Lado

Cuadrado

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 dir

Propietario tiene matricula Vehculo fechacompra

Una categora puede ser parcial o total. Las categoras parciales implementan herencia selectiva. Smbolo: U Las categoras totales implementan herencia mltiple. Smbolo:
U

Edificio

Finca

Persona

Banco U

Empresa

Propiedad

Propietario Categora parcial: Cada propietario hereda los atributos de una Empresa, una Persona o un Banco, dependiendo del supertipo al que pertenezca.

Categora total: Cada Edificio o Finca debe ser miembro de Propiedad.

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.
Edificio Finca Propiedad

Edificio

Propiedad

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

Sucursal

Dirige

Administrador

Alternativa 2: agregacin.
Trabajo

Empleado Trabaja-en

Trabaja en

Sucursal

Dirige

Administrador

La agregacin es una abstraccin segn la cual las interrelaciones se tratan como entidades de nivel ms alto.

RESUMEN DE SIMBOLOGA

Elemento Generalizacin / Especializacin Especializacin total Especializacin parcial Disjuncin Traslape

Smbolo

d O

Elemento Unin / Categora Categora parcial

Smbolo
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 Conj. de entidades Atributo Clave primaria Atributo compuesto (monovaluados) Atributo multivaluado

Equivalencia Relacional Tabla Campo Llave primaria Cada sub atributo se convierte en campo Tabla con campos para el atributo y para la llave de la entidad.

Elemento Atributo compuesto (multivaluados)

Equivalencia Relacional Los atributos multivaluados forman tablas, los monovaluados son campos en la tabla de la entidad. ---Tabla con llave fornea de la entidad fuerte relacionada.

Atributo derivado Entidad dbil

Elemento Interrelacin muchos a muchos

Equivalencia Relacional 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 Interrelacin binaria uno a muchos sin atributos Interrelacin binaria uno a muchos con atributos Interrelacin uno a uno

Equivalencia Relacional La tabla del lado varios incluye a la clave de la tabla del lado uno. La tabla del lado varios incluye los atributos de la interrelacin y la clave de la tabla del lado uno. La clave de una tabla pasa a la otra tabla relacionada.

Elemento interrelaciones recursivas Generalizacin

Equivalencia Relacional Se tratan igual que las otras pero puede resultar en la duplicacin de un atributo en una tabla. 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 Generalizacin

Equivalencia Relacional 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 Nombre Nombre completo ID

AMaterno

Da Antigedad Fecha de contratacin Telfono Empleado

Mes Ao

Direccin

Tipo_empleado

A E

Salario

d
Enterrador

Administrativo

Jardinero

Id_sepulcro

Tipo Fecha de compra Sepulcro

T N Tumba CapacidadT InscripcinT

d
Nicho Altura

F Fosa comn CapacidadF

InscripcinN

NSector Id_sector

Capacidad Superficie

Nombre

APaterno

Sector

Nombre completo Telfono Id_familiar

AMaterno Mes Direccin Da Familiar Nombre Fecha Ao

Id_factura Cantidad Factura

APaterno

Nombre completo Mes Da Ao

AMaterno Mes Da Ao

Fecha Nacimiento

Fallecido

Fecha Fallecimiento

Enterrador

Id_fallecido

Asignado a

Jardinero IDJardinero <pi> Integer Nombre Text APaterno Text AMaterno Text Direccion Text Salario Decimal Antigedad Integer FechaContratacin Date Identifier_1 <pi> Relationship_16 Sector IdSector <pi> Integer NSector Text Capacidad Integer Superficie Decimal Identifier_1 <pi> <M> <M> <M> <M> Relationship_18 <M> <M> <M> <M> <M> <M>

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

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

Relationship_19

Relationship_20

Telfono IDTelfono <pi> Integer <M> Telfono Integer Identifier_1 <pi> Relationship_17 Relationship_12 Familiar IdFamiliar <pi> Integer Nombre Text APaterno Text AMaterno Text Direccion Text Identifier_1 <pi> Relationship_15 Relationship_6 Relationship_4 Relationship_13 <M> <M> <M> <M>

Relationship_14

Sepulcro IDSepulcro <pi> Integer <M> Tipo Text <M> Identifier_1 <pi> Relationship_8 Relationship_21 Nicho Altura Decimal <M> Inscripcin Text FosaComn Capacidad Integer <M> Relationship_22 Fallecido Tumba Capacidad Integer <M> Inscripcin Text

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

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

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

Jardinero IDJardinero Nombre APaterno AMaterno Direccion Salario Antigedad FechaContratacin integer <pk> long varchar long varchar long varchar long varchar decimal integer date

Administrativo IDAdmininstrador Nombre APaterno AMaterno Direccion Salario Antigedad FechaContratacin integer <pk> long varchar long varchar long varchar long varchar decimal integer date

Enterrador 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 Telfono IDTelfono IDEnterrador IDAdmininstrador IdFamiliar IDJardinero Telfono integer integer integer integer integer integer

FK_TELEFONO_RELATIONS_ENTERRAD

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

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

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

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. y 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

Crculo

Se aplica: Jerarqua de clases Generalizacin Polimorfismo

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.

Registrador Referencia dbil

Mensaje de registro

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 0.. 1 mujer jefe 0.. 1 Administra

casado-con

Persona nombre s. s.

trabaja-para emplea-a

Compaa nombre direccin

empleado

Agregacin

coche 1

Persona 0..2 +Padre

+Hijos *

1 motor

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
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.
Todo

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 tupla Un atributo Cardinalidad una tabla con ciertas caractersticas una fila en la relacin una columna de la relacin nmero de filas (tuplas) en la relacin

Atributo Grado La clave primaria Dominio

Columna Nmero de columnas un identificador nico para la relacin una coleccin de valores

RELACIN

Resumen
---- ---- --- ----- --- --- ----- --- ----- ---- --- ----- --- --- ----- --- -D.F GUDALAJARA ETC...

V#:V# v1 v2 v3 v4 v5

PROVEEDOR:NOMBRE STATUS:STATUS CIUDAD:CIUDAD Fernando 20 D.F. Jos 10 Guadalajara Joel 30 Monterrey Miguel 20 Toluca Ivan 30 Cancn
ATRIBUTO GRADO

DOMINIO

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

CARDINALIDAD

RELACIN

TUPLA

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.C.V. DE 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

Son expresiones de verdad asociadas a una base de datos que siempre tienen que ser verdaderas.

Nulo

Atributo desconocido o ausencia de valor

Restricciones de dominio

Asociar a cada atributo con un conjunto de posibles valores

Regla de integridad de Entidades Reglas de Integridad referencial

Ningn componente de la clave primaria de una relacin base puede aceptar nulos. 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) Operaciones derivadas (compuestas)

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

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 EL21 EG37 EG14 EA9 EG5 EL41

Nombre Amelia Pedro Luis Rita Julio Carlos

Apellido Pastor Cubedo Collado Renau Prats Baeza

Direccin Magallanes, 15 Bayarri, 11 Borriol, 35 Casalduch, Melilla, 23 Herrero, 51

Telfono 964 284 560 964 535 690 964 522 230 964 257 550 964 524 590 964 247 250

Puesto Director Supervisor Administ. Supervisor Director Supervisor

Fecha_nac 12/10/62 24/3/57 9/5/70 19/5/60 19/12/50 29/2/67

Salario 30000 18000 12000 18000 24000 18000

DNI 39432212E 38766623X 24391223L 39233190F 25644309X 39552133T

Onum O5 O3 O3 O7 O3 O5

salario > 18000 (PLANTILLA)


Resultado:
Enum EL21 EG5 Nombre Amelia Julio Apellido Pastor Prats Direccin Magallanes, 15 Melilla, 23 Telfono 964 284 560 964 524 590 Puesto Director Director Fecha_nac 12/10/62 19/12/50 Salario 30000 24000 DNI 39432212E 25644309X Onum O5 O3

Obtener todos los empleados que trabajan en la oficina 03, dada la siguiente relacin (Plantilla)
Enum EL21 EG37 EG14 EA9 EG5 EL41 Nombre Amelia Pedro Luis Rita Julio Carlos Apellido Pastor Cubedo Collado Renau Prats Baeza Direccin Magallanes, 15 Bayarri, 11 Borriol, 35 Casalduch, Melilla, 23 Herrero, 51 Telfono 964 284 560 964 535 690 964 522 230 964 257 550 964 524 590 964 247 250 Puesto Director Supervisor Administ. Supervisor Director Supervisor Fecha_nac 12/10/62 24/3/57 9/5/70 19/5/60 19/12/50 29/2/67
Salario

DNI 39432212E 38766623X 24391223L 39233190F 25644309X 39552133T

Onum

30000 18000 12000 18000 24000 18000

O5 O3 O3 O7 O3 O5

Onum = 03 (PLANTILLA)
Resultado:
Enu m EG37 EG14 EG5 Nombr e Pedro Luis Julio Apellido Cubedo Collado Prats Direccin Bayarri, 11 Borriol, 35 Melilla, 23 Telfono 964 535 690 964 522 230 964 524 590 Puesto Superviso r Administ. Director Fecha_na c 24/3/57 9/5/70 19/12/50 Salari o 18000 12000 24000 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 IA14 IL94 IG4 IG36 IG21 IG16 Calle Enmedio, 128 Riu Ebre, 24 Sorell, 5 Alicante,1 San Francisco, 10 Capuchinos, 19 Rafalafena Area Centro Ronda Sur Grao Poblacin Castelln Castelln Castelln Segorbe Vinaroz Castelln Tipo Casa Piso Piso Casa Piso Piso Hab 6 4 3 3 5 4 Alquiler 600 350 300 325 550 400 Pnum P46 P87 P40 P93 P87 P93

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

Resultado:
Inum IL94 IG4 Calle Riu Ebre, 24 Sorell, 5 Area Ronda Sur Grao Poblacin Castelln Castelln Tipo Piso Piso Hab 4 3 Alquiler 350 300 Pnum P87 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 EL21 EG37 EG14 EA9 EG5 EL41 Nombre Amelia Pedro Luis Rita Julio Carlos Apellido Pastor Cubedo Collado Renau Prats Baeza Direccin Magallanes, 15 Bayarri, 11 Borriol, 35 Casalduch, Melilla, 23 Herrero, 51 Telfono 964 284 560 964 535 690 964 522 230 964 257 550 964 524 590 964 247 250 Puesto Director Supervisor Administ. Supervisor Director Supervisor Fecha_nac 12/10/62 24/3/57 9/5/70 19/5/60 19/12/50 29/2/67 Salario 30000 18000 12000 18000 24000 18000 DNI 39432212E 38766623X 24391223L 39233190F 25644309X 39552133T Onum O5 O3 O3 O7 O3 O5

enum,nombre,apellido,salario (PLANTILLA)

Resultado:
Enum EL21 EG37 EG14 EA9 EG5 EL41 Nombre Amelia Pedro Luis Rita Julio Carlos Apellido Pastor Cubedo Collado Renau Prats Baeza Salario 30000 18000 12000 18000 24000 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)
nmero-prstamo P-11 P-14 P-15 P-16

(Cliente)
nombre-cliente Gmez Fernndez 392 nombre cliente Gmez Gmez Gmez Gmez Fernndez Fernndez Fernndez Fernndez nmero prstamo P-11 P-14 P-15 P-16 P-11 P-14 P-15 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 O5 O7 O3 O4 O2 Inum IA14 IL94 IG4 IG36 IG21 IG16 Calle Enmedio, 128 Riu Ebre, 24 Sorell, 5 Alicante,1 San Francisco, 10 Capuchinos, 19 Rafalafena Calle Area Poblacin Castelln Castelln Villarreal Grao Castelln Villarreal Area Centro Ronda Sur Grao Poblacin Castelln Castelln Castelln Segorbe Vinaroz Castelln Tipo Casa Piso Piso Casa Piso Piso Telfono Enmedio, 8 Moyano, s/n San Miguel, 1 Trafalgar, 23 Cedre, 26 Centro Centro 964 201 240 964 215 760 964 520 250 964 284 440 964 525 810 Hab 6 4 3 3 5 4 Alquiler 600 350 300 325 550 400 Fax 964 201 340 964 215 670 964 520 255 964 284 420 964 252 811 Pnum P46 P87 P40 P93 P87 P93

Area
( rea (OFICINA) ) U

Centro Grao Ronda Sur Rafalafena

( rea (INMUEBLE) ) Resultado:

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-sucursal importe 900 1500 1500 1300 1000 2000 500 nombre cliente Fernndez Gmez Gmez Lpez Prez Santos Sotoca Valdivieso nmero prstamo P-16 P-93 P-15 P-14 P-17 P-11 P-23 P-17 P-11 P-14 P-15 P-16 P-17 P-23 P-93 Collado Mediano Centro Navacerrada Navacerrada Centro Moralzarzal Becerril

nmero-prstamo

nombrecliente Fernndez

nmero prstamo P-16 P-23 P-11 P-15 P-93 P-17 P-14 P-17

Import e 1.300 2.000 900 1.500 500 1.000 1.500 1.000

nombre-cliente, nmeroprstamo, importe

Gmez Gmez Lpez Prez Santos Sotoca Valdivieso

(prestatario |x| cliente)

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
Onum O5 O7 O3 O4 O2

Obtener un listado de todas las poblaciones en donde hay una oficina y no hay inmuebles para alquilar. Dada las siguientes relaciones
Calle Area Poblacin Castelln Castelln Villarreal Grao Castelln Villarreal Telfono Fax Enmedio, 8 Moyano, s/n San Miguel, 1 Trafalgar, 23 Cedre, 26 Centro Centro 964 201 240 964 215 760 964 520 250 964 284 440 964 525 810 964 201 340 964 215 670 964 520 255 964 284 420 964 252 811

Inum IA14 IL94 IG4 IG36 IG21 IG16

Calle Enmedio, 128 Riu Ebre, 24 Sorell, 5 Alicante,1 San Francisco, 10 Capuchinos, 19

Area Centro Ronda Sur Grao

Poblacin Castelln Castelln Castelln Segorbe Vinaroz

Tipo Casa Piso Piso Casa Piso Piso

Hab 6 4 3 3 5 4

Alquiler 600 350 300 325 550 400

Pnum P46 P87 P40 P93 P87 P93

Rafalafena

Castelln

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

Qnum

Inum IA14 IG4 IG4 IA14

Fecha 24/11/99 20/10/99 26/11/99 14/11/99

Comentario muy pequeo muy lejos

Obtener los inmuebles de 3 habitaciones que han recibido visitas de inquilinos. Dada las siguientes relaciones
Inum IA14 IL94 IG4 IG36 IG21 IG16 Calle Enmedio, 128 Riu Ebre, 24 Sorell, 5 Alicante,1 San Francisco, 10 Capuchinos, 19 Area Centro

Q56 Q76 Q56 Q62

no tiene saln

Poblacin Castelln Castelln Castelln Segorbe Vinaroz

Tipo Casa Piso Piso Casa Piso Piso

Hab 6 4 3 3 5 4

Alquiler 600 350 300 325 550 400

Pnum P46 P87 P40 P93 P87 P93

Ronda Sur Grao

Rafalafena

Castelln

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

Calificacon-1 8 9 7 7 6

Resultado

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 F 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 [Funcin]

[Argumento]

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)

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

xF xF

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. 2. 3. 4. 5.

Reglas fundamentales Reglas estructurales Reglas de integridad Reglas de manipulacin de datos 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 Verdadero Falso Verdadero etc.

AND AND AND OR

null null null null

= = = =

null null Falso Verdadero

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 RS RT RB RZ RN RE RQ RJ RM RI RC RV RA RF RP RD RL RX Structure Data Types Basic operators Advenced operators Naming Commands for the DBA Qualifiers Indicators Manipulation Integrity Catalog Views Autorization Functions Protection Principles of DBMS design Principles of language design Distributed database management DESCRIPCIN Fund 9 3 31 2 7 8 3 0 14 11 8 8 6 3 1 8 8 0 Basic 5 6 6 42 7 14 10 14 6 23 3 0 10 7 4 8 9 29 Total 14 9 37 44 14 22 13 14 20 34 11 8 16 10 5 16 17 29

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


Regla de 1985 1 2 3 4 5 6 7 8 9 10 11 12 Caracterstica RM/V2 RS1 RM1 RS-13,RM-10 RC-1 RM-3 RV-4,RV-5 RM-4 RP-1 RP-2 RP-3 RP-4 RI-16 Nombre Information rule Guaranteed access Missing information Active catalog Comprehensive data sublanguage View updatability High level language Physical data independence Logical data independence Integrity independence Distribution independence Non-Subversion

DESCRIPCIN DE LAS CATEGORAS

Terminologa:

Una tabla-R es Una tabla-R es un tipo especial un tipo especial de subconjunto de subconjunto No existe el No existe el concepto de concepto de posicin ni posicin ni duplicados duplicados

Trmino Matemtico Relacin de grado n Atributo Dominio Tupla Cardinalidad de una relacin

Trmino en la Base de Datos tabla-R con n columnas Columna de una tabla-R Tipo de datos extendido Fila en una tabla-R Nmero de filas en una tabla-R

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 relaciones base son aquellas que estan Las relaciones base son aquellas que estan representadas internamente por datos representadas internamente por datos almacenados en alguna forma definida por la almacenados en alguna forma definida por la implementacin, de otra forma son llamadas implementacin, de otra forma son llamadas relaciones derivadas, como las vistas que se relaciones derivadas, como las vistas que se crean aapartir de las primeras sin contener crean partir de las primeras sin 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
Esquema externo Esquema conceptual Esquema interno

Trmino-R
Vistas Relaciones base 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 Y. Vardi habla sobre la relacion universal en su Moshe Y. Vardi habla sobre la relacion universal en su artculo de 1988 llamado The universal-relational data model artculo de 1988 llamado The universal-relational data model for logical independence buscando una forma para lograr que for logical independence buscando una forma para lograr que si hay una modificacin en la base de datos (ej. porque dos si hay una modificacin en la base de datos (ej. porque dos tablas se convierten en una sola) no sea necesario modificar tablas se convierten en una sola) no sea necesario modificar la aplicacin, yyno se haga por medio de crear Vistas la aplicacin, no se haga por medio de crear Vistas innecesarias desde el principio peviendo posibles innecesarias desde el principio peviendo 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 valores de verdad pueden ser Los valores de verdad pueden ser cualquier combinacin de los trminos de cualquier combinacin de los trminos de comparacin utilizando los conectores comparacin utilizando los conectores lgicos NOT, OR, AND eeIMPLICA lgicos NOT, OR, AND 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 puede usar cualquiera de los 10 Se puede usar cualquiera de los 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 valores de verdad pueden ser cualquier combinacin de Los valores de verdad pueden ser cualquier combinacin de los trminos de comparacin utilizando los conectores lgicos los trminos de comparacin utilizando los conectores lgicos NOT, OR, AND eeIMPLICA NOT, OR, AND 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 Aplicable (Marca-A)

Valor-de-BD
No aplicable (Marca-I) Otro

Valor de BD: Valor elemental de la base de datos. Es cualquier valor que una 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 sola columna puede tener en una relacin. (Excepto en ciertas funciones especficos es un valor atmico) especficos es un valor 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. 1. El SMBD no maneja las marcas como si fueran valores. Ahora hay dos tipos de marcas, donde antes solamente exista una. Algunos lenguajes anfitriones manejan objetos llamados nulos que su significado es algo muy distinto a las marcas en la base de datos. En ingls es un trmino mas adecuado.

1.

1.

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 A+A=A I+I=I

x+A=A A+I=I x+I=I

A+x=A I+A=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

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

v v v a v i v f v

a = Marca-A, i = Marca-I

P v a i f

not P f a i v

PQ

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

v v v a v i v f v

PQ

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

v v v a a i i 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# E107 E912 E239 E575 E123 E224

ENombre Pancho Jos Jos Pedro Adrin Rodrigo

Dep# D12 A A D12 D01 A

Salario 10,000 12,000 12,000 A 15,000 A

H_Ciudad Zitcuaro Colima Colima Colima Cuernavaca Puebla

EMP

Emp# E107 E912 E239 E575 E123 E224

ENombre Pancho Jos Jos Pedro Adrin Rodrigo D12 A A D12 D01 A

Dep#

Salario 10,000 12,000 12,000 A 15,000 A

H_Ciudad Citcuaro Colima Colima Colima Cuernavaca Puebla

E <- EMP [Dep#, Salario]


E Dep# D12 * ** A A D12 D01 *** A Salario 10,000 12,000 12,000 A 15,000 A E Dep# D12 A D12 D01 Salario 10,000 12,000 A 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 1970 1974 1978 1979 1981 1982 1983 1986 1987 1988

EVENTO Codd define el modelo relacional de bases de datos. IBM comienza el proyecto System/R. Se publica el primer articulo que describe el lenguaje SEQUEL. Se realizan pruebas de System/R con clientes. Oracle introduce el primer SMBDR comercial. Relational Technology introduce Ingres. IBM anuncia SQL/DS. ANSI forma el comit para estndares de SQL. IBM anuncia DB2. Se ratifica el estndar SQL1. Sybase introduce un SMBDR para el procesamiento de transacciones. Se ratifica el estndar ISO SQL1. Ashton-state y Microsoft anuncian SQL Server para 0S/2.

FECHA 1989 1990 1991 1992

EVENTO Se publica la primera prueba de rendimiento TPC (TPC-A). Se publica la prueba de rendimiento TCP-B. Se publica la especificacin de acceso a bases de datos SQL Access Group. Microsoft publica la especificacin ODBC. Se ratifica el estndar ANSI SQL2 (SQL.2). Se publica la pruba de rendimiento TCP-C (OLTP). Por primera vez se distribuyen sistemas de almacenamiento de datos SQL especializados. Por primera vez se distribuyen productos ODBC. Se distribuye comercialmente tecnologa paralela de servidores de bases de datos. Se publican el API estndar para el acceso OLAP a bases de datos y la prueba de rendimiento OLAP. 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.

1993

1994 1996 1997

FECHA 1998

EVENTO 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. J2EE estandariza el acceso JDBC a bases de datos desde los servidores de aplicaciones. Oracle introduce servidores de aplicaciones con cach integrada de bases de datos. Microsoft introduce SQL Server 2000, dirigido a las aplicaciones empresariales. La posibilidad de integracin de XML aparece en los principales productos SMBDR. IBM adquiere el negocio de bases de datos de Informix. Gartner clasifica a IBM como primer fabricante de bases de datos, superando a Oracle.

1999 2000 2001

2002

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 SELECT INSERT UPDATE DELETE

DESCRIPCIN Utilizada para recuperar datos de la base de datos. Utilizada para aadir filas de datos a una tabla en la base de datos. Utilizada para modificar los valores de los datos en la base de datos. Utilizada para eliminar filas de una tabla en una base de datos

LENGUAJE DE DEFINICIN DE DATOS (LDD)

SENTENCIA CREATE DROP

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

ALTER

e ndices.

LENGUAJE DE CONTROL DE DATOS (LCD)

SENTENCIA GRANT REVOKE COMMIT ROLLBACK

DESCRIPCIN Se utiliza para conceder privilegios de acceso a los usuarios. Utilizada eliminar privilegios de acceso a los usuarios. Se Utiliza para finalizar la transaccin actual. Utilizada para abortar la transaccin actual

LDM: SELECT

Capacidades de la sentencia SELECT

Proyeccin

Seleccin

Tabla 1 Reunin

Tabla 1

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 BETWEEN ...AND... IN(lista) LIKE IS NULL

Significado Entre dos valores (inclusivo)

Cualquiera de la lista de valores Que coincida con el patrn 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 OR

Significado Es TRUE si ambas condiciones son verdaderas Es TRUE si alguna es las condiciones es verdadera Es TRUE si la siguiente condicin es falsa

NOT

Orden de evaluacin Operador Significado 1 Operadores aritmticos Operador 2 Es TRUEOperador de concatenacin 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) CAST (valor AS tipo de dato) CHAR_LENGTH (expresin) CONVERT (expresin USING conversin) CURRENT_DATE CURRENT_TIME (precisin) CURRENT_TIMESTAMP (precisin) EXTRACT (parte FROM expresin)

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

Convierte el valor que est en un tipo de dato a otro tipo de dato compatible. Devuelve la longitud de la expresin, generalmente cadena, en caracteres. Convierte una cadena al tipo especificado de codificacin. Devuelve la fecha actual del sistema. Devuelve la hora actual y la fecha actual del sistema, con la precisin especificada Devuelve la hora actual y la fecha actual del sistema, con la precisin especificada Extrae la parte especificada de la Fecha especificada.

Funcin SQL LOWER (cadena) OCTET_LENGTH (cadena) POSITION (subcadena IN cadena) SUBSTRING (cadena, inicio, longitud)

Descripcin Convierte la cadena de caracteres a minsculas. Regresa la longitud de la expresin en bytes. Devuelve la posicin del carcter o subcadena en la cadena de caracteres. Devuelve una subcadena de la cadena especificada, desde la posicin de inicio hasta la longitud dada. Devuelve Returns string translated into another string according to specified rules. Elimina el carcter indicado que aparezca en la posicin especificada de la cadena. Convierte la cadena de caracteres a maysculas.

TRANSLATE (string expression USING translation rule) TRIM(LEADING | TRAILING | BOTH char expression FROM string expression) UPPER (cadena)

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

Numricas

Conversin

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 LOWER(Hola') UPPER('Hola') hola HOLA

Resultado

INITCAP('hola mundo') Hola Mundo

SELECT SELECT FROM FROM WHERE WHERE

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

SELECT employee_id, last_name, department_id FROM employees WHERE LOWER(last_name) = 'higgins';

Estas funciones manipulan cadenas de caracteres: Funcin SUBSTR('Hola Mundo', ,1,5) LENGTH('Hola Mundo') POSITION('Hola Mundo, a') LPAD(Hola,10,'*') RPAD(Hola, 10, '*') TRIM('H' FROM 'Hola Mundo') Resultado Hola 10 4 ******Hola Hola****** 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


department_id department_name location_id

employee_id 100 101

last_name King Kochhar

department_id 90 90

60 70 80 90 100 110 120 IT Public Relations Sales Executive Finance Accounting Treasury 1400 2700 2500 1700 1700 1700 1700

204 205 employee_id Baer Higgins department_id 70 110 department_name

199 200 201 202 203 204 205 206 50 10 20 20 40 70 110 110 Shipping Administration Marketing Marketing Human Resources Public Relations Accounting 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:


n select employees.employee_id, employees.last_name, joi i departments.location_id qu 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);

n joi i qu 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 Centro Moralzarzal Navacerrada Centro Becerril Collado Mediano Navas de la Asuncin Segovia Centro Navacerrada Galapagar

ciudad-sucursal Arganzuela La Granja Aluche Arganzuela Aluche Aluche Alcal de Henares Cerceda Arganzuela Aluche Arganzuela

activo 9.000.000 2.100.000 1.700.000 9.000.000 400.000 8.000.000 300.000 3.700.000 9.000.000 1.700.000 7.100.000

nombre-cliente Santos Gmez Lpez Sotoca Santos Abril Valdivieso Lpez Gonzlez Rodrguez Amo

numeroprstamo P-17 P-23 P-15 P-14 P-93 P-11 P-29 P-16 P-18 P-25 P-10

importe 1.000 2.000 1.500 1.500 500 900 1.200 1.300 2.000 2.500 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# V1 V1 V2 V2 V3 V4 V4 V4 CIUDAD Londres Londres Pars Pars Pars Londres Londres Londres P# P1 P2 P1 P2 P2 P2 P4 P5 CANT 100 100 200 200 300 400 400 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 y YX se representa: X Y
y { cant } { V# }

Ejemplo: { V# } { cant }

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 Y y X2 | Y Lo representamos: X

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

nombre-cliente Santos Gmez

calle-cliente Mayor Carreteras Mayor Carreteras Jazmn Arenal

Ciudad-cliente Peguerinos Cerceda Peguerinos Cerceda Len La Granja

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

Lpez Prez Fernndez Gonzlez

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

numero-prestamo P-17 P-23

Nombre-sucursal Centro Moralzarzal Navacerrada Centro Becerril Centro

importe 1.000 2.000 1.500 1.500 500 2.000

En la empresa real Cada prstamo tienen nico importe.

P-15

un

P-14 P-93 P-18

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 Conjunto de dependencias funcionales

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

La dependencia funcional 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)+ R = (A, B, C, G, H, I) AB AC CG H CG I BH A B est en F A resultado (AG)

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

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


B

ABC AC

es raro en

ABC ABCD AC

Sean las dependencias funcionales: Entonces


C

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): ABC BC AB ABC

de

dependencias

Calculamos el recubrimiento cannico de F.

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