Dominio/clave

La forma normal de dominio/clave (DKNF) es una forma normal usada en normalización de bases de datos que requiere que la base de datos contenga restricciones de dominios y de claves.
Una restricción del dominio especifica los valores permitidos para un atributo dado, mientras que una restricción clave especifica los atributos que identifican únicamente una fila en una tabla dada.
Esta es el santo grial de la Base de datos y es alcanzado cuando cada restricción en la relación es una consecuencia lógica de la definición de claves y dominios, y, haciendo cumplir las restricciones y condiciones de la clave y del dominio, causa que sean satisfechas todas las restricciones. Así, esto evita todas las anomalías no-temporales.
Es mucho más fácil construir una base de datos en forma normal de dominio/clave que convertir pequeñas bases de datos que puedan contener numerosas anomalías. Sin embargo, construir con éxito una base de datos en forma normal de dominio/clave sigue siendo una tarea difícil, incluso para programadores experimentados de bases de datos. Así, mientras que la forma normal de dominio/clave elimina los problemas encontrados en la mayoría de las bases de datos, tiende para ser la forma normal más costosa de alcanzar. Sin embargo, el no poder alcanzar la forma normal de dominio/clave puede llevar costos ocultos a largo plazo, debido a anomalías que aparecen con el tiempo en las bases de datos que solamente se adhieren a formas normales más bajas.
Una violación de DKNF ocurre en la siguiente tabla:
Persona rica
DNI Persona ricaTipo de persona ricaValor neto en dólares
123Millonario excéntrico124,543,621
456Multimillonario malvado6,553,228,893
789Multimillonario excéntrico8,829,462,998
012Millonario malvado495,565,211
Qué es el SQL ?

El SQL (Structured query language), lenguaje de consulta estructurado, es un lenguaje surgido de un proyecto de investigación de IBM para el acceso a bases de datos relacionales. Actualmente se ha convertido en un estándar  de lenguaje de bases de datos, y la mayoría de los sistemas de bases de datos lo soportan, desde sistemas para ordenadores personales, hasta grandes ordenadores.

Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para alguien que conozca un SQL concreto, como el que vamos a ver aquí corespondiente al Access2000.
Como su nombre indica, el SQL nos permite realizar consultas a la base de datos. Pero el nombre se queda corto ya que SQL además realiza funciones de definición, control y gestión de la base de datos. Las sentencias SQL se clasifican según su finalidad dando origen a tres ‘lenguajes’ o mejor dicho sublenguajes: 
 el DDL (Data Description Language), lenguaje de definición de datos, incluye órdenes para definir, modificar o borrar las tablas en las que se almacenan los datos y de las relaciones entre estas. (Es el que más varia de un sistema a otro)
 el DCL (Data Control Language), lenguaje de control de datos, contiene elementos útiles para trabajar en un entorno multiusuario, en el que es importante la protección de los datos, la seguridad de las tablas y el establecimiento de restricciones en el acceso, así como elementos para coordinar la compartición de datos por parte de usuarios concurrentes, asegurando que no interfieren unos con otros.
 el DML (Data Manipulation Language), lenguaje de manipulación de datos, nos permite recuperar los datos almacenados en la base de datos y también incluye órdenes para permitir al usuario actualizar la base de datos añadiendo nuevos datos, suprimiendo datos antiguos o modificando datos previamente almacenados.

  • modelo de objetos semanticos
  • DEFINICIÓN DE OBJETOS SEMÁNTICOS • Un objeto semántico es una representación de algunas cosas identificables en el ambiente de trabajo de los usuarios, es un conjunto de atributos que describen suficientemente un identidad bien definida. • Una clase de objetos tiene un nombre que las distingue de otras y se escriben con letras mayúsculas.
  • 5. • Los objetos representan entidades bien definidas ya que son ciertas cosas que los usuarios reconocen como independientes y separadas a las que desean dar seguimiento y a partir de eso elaborar reportes.
  • 6. ATRIBUTOS • Existen 3 tipos de atributos: • Atributos Simples: Son lo que tienen un elemento. • Atributos Grupales: Son combinaciones de otros atributos. • Atributos De Los Objetos Semánticos También conocido como enlaces del objeto, establecen una relación entre un objetos semántico y otro.
  • 7. CARDINALIDAD DE LOS ATRIBUTOS • Cardinalidad de los atributos: Cada atributo en un objeto semántico tiene una cardinalidad minima y una cardinalidad máxima. • La minima indica la cantidad de instancias del atributo que debe existir para que el objeto sea valido. • La máxima indica el numero máximo de instancias del atributo que el objeto puede tener. • La cardinalidad se muestra por subíndices en los atributos en el formato “N.M.” , donde “N” es la cardinalidad minima y “M” la cardinalidad maxima.
  • 8. INSTANCIAS DE OBJETOS • Son un formato, o estructura general, que puede utilizarse para cualquier departamento. • Los departamentos pueden tener menos o mas que otros pero debe de tener por lo menos uno.
formularios en acces

Un formulario es un tipo de objeto de base de datos que se utiliza fundamentalmente para introducir o mostrar datos en una base de datos. También puede utilizar un formulario como un panel de control que abre otros formularios e informes de la base de datos, o como  un cuadro de diálogo personalizado que acepta las entradas del usuario y realiza una acción basada en las entradas. 

para crear rápidamente un formulario, utilice el comando Autoformato o un Asistente. La función Autoformulario crea un formulario que muestra todos los campos y registros de la tabla o consulta base. El asistente hace preguntas y crea un informe basándose en las respuestas que obtiene. Después, podrá personalizar el formulario en la vista Diseño.

Quinta forma normal


La quinta forma normal (5FN), también conocida como forma normal de proyección-unión (PJ/NF), es un nivel de normalización de bases de datos diseñado para reducir redundancia en las bases de datos relacionales que guardan hechos multi-valores aislando semánticamente relaciones múltiples relacionadas. Una tabla se dice que está en 5NFsi y sólo si está en 4NF y cada dependencia de unión (join) en ella es implicada por las claves candidatas.

Considere el siguiente ejemplo:
Psiquiatra-para-Asegurador-para-Condición
PsiquiatraAseguradorCondición
Dr. JamesHealthcoAnsiedad
Dr. JamesHealthcoDepresión
Dr. KendrickFriendlyCareOCD
Dr. KendrickFriendlyCareAnsiedad
Dr. KendrickFriendlyCareDepresión
Dr. LowensteinFriendlyCareEsquizofrenia
Dr. LowensteinHealthcoAnsiedad
Dr. LowensteinHealthcoDemencia
Dr. LowensteinVictorian LifeTrastorno de conversión
El psiquiatra puede ofrecer tratamiento reembolsable a los pacientes que sufren de la condición dada y que son asegurados por el asegurador dado. En ausencia de cualquier regla que restrinja las combinaciones válidas posibles de psiquiatra, asegurador, y condición, la tabla de tres atributos Psiquiatra-para-Asegurador-para-Condición es necesaria para modelar la situación correctamente.
Sin embargo, suponga que la regla siguiente se aplica:
Cuando un psiquiatra es autorizado a ofrecer el tratamiento reembolsable a los pacientes asegurados por el asegurador P, y el psiquiatra puede tratar la condición C, entonces - en caso que el asegurador P cubra la condición C - debe ser cierto que el psiquiatra puede ofrecer el tratamiento reembolsable a los pacientes que sufren de la condición C y están asegurados por el asegurador P.
Con estas restricciones es posible dividir la relación en tres partes.
Psiquiatra-para-Condición
PsiquiatraCondición
Dr. JamesAnsiedad
Dr. JamesDepresión
Dr. KendrickOCD
Dr. KendrickAnsiedad
Dr. KendrickDepresión
Dr. LowensteinEsquizofrenia
Dr. LowensteinAnsiedad
Dr. LowensteinDemencia
Dr. LowensteinTrastorno de conversión
Psiquiatra-para-Asegurador
PsiquiatraAsegurador
Dr. JamesHealthco
Dr. KendrickFriendlyCare
Dr. LowensteinFriendlyCare
Dr. LowensteinHealthco
Dr. LowensteinVictorian Life
Asegurador-para-Condición
AseguradorCondición
HealthcoAnsiedad
HealthcoDepresión
HealthcoDemencia
FriendlyCareOCD
FriendlyCareAnsiedad
FriendlyCareDepresión
FriendlyCareTrastorno emocional
FriendlyCareEsquizofrenia
Victorian LifeTrastorno de conversión
Note como esta disposición ayuda a quitar redundancia. Suponga que el Dr. James se convierte en un proveedor de tratamientos para FriendlyCare. En la disposición anterior tendríamos que agregar dos nuevas entradas puesto que el Dr. James puede tratar dos condiciones cubiertas por FriendlyCare: ansiedad y depresión. Con la nueva disposición necesitamos agregar una sola entrada (en la tabla Psiquiatra-para-Asegurador).

consultas de referencias cruzadas

Se define una consulta de referencias cruzadas cuando queremos representar una consulta resumen con dos columnas de agrupación como una tabla de doble entrada en la que cada una de las columnas de agrupación es una entrada de la tabla.
Por ejemplo queremos obtener las ventas mensuales de nuestros empleados a partir de los pedidos vendidos. Tenemos que diseñar una consulta resumen calculando la suma de los importes de los pedidos agrupando por empleado y mes de la venta.
Datos con los campos Empleado, Mes y Vendido
La consulta quedaría mucho más elegante y clara presentando los datos en un formato más compacto como el siguiente:
Datos con un campo empleados y uno para cada mes, para no repetir el número de empleado por cada mes
Pues este último resultado se obtiene mediante una consulta de referencias cruzadas.
Observa que una de las columnas de agrupación (empleado) sigue definiendo las filas que aparecen (hay una fila por cada empleado), mientras que la otra columna de agrupación (mes) ahora sirve para definir las otras columnas, cada valor de mes define una columna en el resultado, y la celda en la intersección de un valor de empleado y un valor de mes es la columna resumen, la que contiene la función de agregado (la suma de importes).
Las consultas de referencias cruzadas se pueden crear desde la vista diseño pero es mucho más cómodo y rápido utilizar el asistente.