Professional Documents
Culture Documents
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
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.
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
Base de Datos
Programas de Aplicacin
Usuarios Finales
HISTORIA
Modelos Sistemas manejadores de archivos Bases de datos jerrquicas Bases de datos de red Bases de datos relacionales Bases de datos OO
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.
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
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)
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
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
en la base de datos.
Eligen las estructuras apropiadas para
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.
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
MEMORIA PRINCIPAL
4
SISTEMA OPERATIVO
3
BUFFER DEL SISTEMA OPERATIVO SMBD
BASE DE DATOS
Nota: El propio SMBD puede interactuar directamente con la BD pudiendo ser de esta forma ms eficiente
Extraccin:
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.
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
Jerrquico
De Red
Relacional
Entidad - Relacin
Dr. Peter Pin-Shan Chen Marzo 1976 The Entity-Relationship Model--Toward a Unified View of Data
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 .
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
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
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
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
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
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.
Nombre Id_cliente
Telfono
Cliente
No_IFE
ENTIDAD-ATRIBUTO
Nombre
Telfono
Edad
INTERRELACIONES (ASOCIACIONES)
Las interrelaciones representan asociaciones del mundo real entre dos o ms entidades.
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
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
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 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.
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.
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.
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 puede ser ya sea paciente externo o paciente residente, pero no ambos
Tipo_empleado
Tipo_empleado=
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.
Unidad de ventas
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
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
nombre dni
sexo
direc fecha-n
Persona O
sueldo
Empleado d
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
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
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
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.
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
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
Smbolo
d O
Smbolo
U
Como entidad
Algunos les llaman esquemas ER relacionales. Es una mezcla entre estos modelos y son muy utilizados por herramientas case.
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.
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.
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.
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:
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:
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.
AMaterno
Mes Ao
Direccin
Tipo_empleado
A E
Salario
d
Enterrador
Administrativo
Jardinero
Id_sepulcro
d
Nicho Altura
InscripcinN
NSector Id_sector
Capacidad Superficie
Nombre
APaterno
Sector
APaterno
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>
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
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>
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
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
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.
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.
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.
Es muy til elaborar una lista de atributos e ir eliminndolos de la lista conforme se vayan asociando a una entidad o relacin.
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 .
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.
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
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.
una coleccin de objetos sobre la que se definen ciertas reglas de organizacin en almacenamiento secundario para poder accesarlos.
(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
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:
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.
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
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.
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.
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
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
Vehculo
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.
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
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.
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.
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
Clase asociacin: muestran como se implementa una asociacin particular. Pueden indicar tambin, formas especiales de referencia, como referencias dbiles.
Mensaje de registro
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
empleado
Agregacin
coche 1
+Hijos *
1 motor
Generalizacin
Responsabilidades
Herencia Mltiple
Dependencia
Herencia
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.
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
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;
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 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.
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
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
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
Ejemplo de RELACIN:
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:
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.
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.
EJEMPLO Los atributos Nombre, Ciudad, Tipo-Cliente toman los valores de sus correspondientes dominios.
DOMINIOS
NOMBRES xxxxxxxxxxxxxx 50
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 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
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 .
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).
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:
1.
Todos los proveedores deben tener valor del status entre 0 y 101
Restriccin formal
RESUMEN
Reglas de Integridad
Son expresiones de verdad asociadas a una base de datos que siempre tienen que ser verdaderas.
Nulo
Restricciones de dominio
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.
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)
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
Telfono 964 284 560 964 535 690 964 522 230 964 257 550 964 524 590 964 247 250
Onum O5 O3 O3 O7 O3 O5
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
Onum
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
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)
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
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
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
Calle Enmedio, 128 Riu Ebre, 24 Sorell, 5 Alicante,1 San Francisco, 10 Capuchinos, 19
Hab 6 4 3 3 5 4
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
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
no tiene saln
Hab 6 4 3 3 5 4
Rafalafena
Castelln
N ( Inum (VISITA) )
IG4
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.
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:
EJEMPLO
Letra a a a b b c c
Numero 1 2 4 1 2 3 4
Muestra
Letra a b c
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.
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
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
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.
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.
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.
EJEMPLOS
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:
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
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:
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
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 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:
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.
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
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.
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.
REGLAS DE CODD
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)
Codd indica que los SMBDR deben soportar relaciones, dominios, llaves primarias y llaves forneas.
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.
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)
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:
= = = =
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.
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.
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).
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
El SMBD protege a los programadores y a usuarios finales contra tener que saber conceptos posicionales en la base de datos.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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
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
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
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
Se representa por: S \ /T
Las 4 uniones internas estn basadas en los comparadores: Menor, menor o igual, mayor y mayor o igual.
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.
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.
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.
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.
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.
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
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
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.
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
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
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
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
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.
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.
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.
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).
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.
EMP
EMP
ENombre Pancho Jos Jos Pedro Adrin Rodrigo D12 A A D12 D01 A
Dep#
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.
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.
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
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.
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.
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
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.
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
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],...];
Se pueden crear expresiones usando datos de tipo numrico y fecha con los siguientes operadores aritmticos:
Operador + * /
La siguiente sentencia muestra el uso del operador suma con la columna salary:
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:
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.
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.
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';
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:
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;
SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201);
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>
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
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;
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)
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
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
Numricas
Conversin
Fechas
Funciones de caracteres
Resultado
employee_id, last_name, department_id employee_id, last_name, department_id employees employees last_name = 'higgins'; 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
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';
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
SELECT
-------------------------------------45.92 45 0 4300
SELECT last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = 'SA_REP';
CURRENT_DATE devuelve la fecha actual CURRENT_TIME devuelve la hora CURRENT_TIMESTAMP devuelve la fecha y la hora
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)
SELECT
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;
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
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;
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);
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 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);
n joi i qu E
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.
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) ;
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
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.
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:
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
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.
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.
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.
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.
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.
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.
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 ]
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.
es trivial si Y es un subconjunto
{ V#, P# } { V# }
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.
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
calle-cliente ciudad-cliente
En el mundo real Dos ciudades pueden tener calles que se llamen igual.
Relacin cliente
numero-prestamo importe
P-15
un
Relacin prstamo
Cuando se disea una base de datos relacional se enumera en primer lugar las dependencias funcionales que se deben cumplir siempre.
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 .
EJEMPLO
R = (A, B, C, G, H, I) A B A C CG H CG I B H
La dependencia funcional H.
La dependencia funcional
CG HI.
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 .
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
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 .
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)
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
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
ABC AC
es raro en
ABC ABCD AC
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
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:
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.
de
dependencias
Hay dos dependencias funcionales con el mismo conjunto de atributos a la izquierda de la flecha: ABC AB Estas dependencias funcionales se combinan en: ABC
A es raro para ABC porque F implica lgicamente (F {ABC}) U {BC} Esta afirmacin es verdadera porque BC ya est en el conjunto de dependencias funcionales. C es raro para ABC, ya que ABC viene lgicamente implicado por AB y por BC. Por tanto, el recubrimiento cannico es AB BC