DICCIONARIO DE DATOS
DICCIONARIO DE DATOS

Un diccionario de datos contiene las características lógicas de los datos que se van a utilizar en el sistema que estamos programando, incluyendo nombre, descripción, alias, contenido y organización. Estos dicccionarios se desarrollan durante el análisis de flujo de datos y ayuda a los analistas que participan en la determinación de los requerimientos del sistema, su contenido también se emplea durante el diseño del proyecto.
ejemplo de Videotienda:

CARDINALIDAD
CARDINALIDAD

Otra de las características importantes que hay que tener en cuenta en este modelo es la cardinalidad de cada extremo en una relación. La cardinalidad expresa cuántas del conjunto de entidades de un extremo de la relación están relacionadas con cuántas entidades del conjunto del otro extremo. Pueden ser ``uno a uno'', ``uno a varios'' o ``varios a varios''. Por ejemplo, un artículo puede ser escrito por un solo autor o por varios, pero nunca por ninguno; un autor puede pertenecer a exactamente una institución (no para cero o varias); un artículo puede tener cero, uno o varios experimentos. Finalmente, un autor puede escribir muchos artículos, o ninguno. Observe que las cardinalidades en algunos casos dependen de restricciones arbitrarias: se podría decidir aceptar sólo aquellos autores que han escrito al menos un artículo (y con esto cambiaría la última regla mencionada); hemos decidido considerar sólo la institución primaria para la cual un determinado autor trabaja (y esto ha determinado nuestra segunda regla).

Hay varias maneras de mostrar las cardinalidades en el diagrama. Una de ellas es poner etiquetas en las líneas que unen las relaciones con las entidades. La etiqueta consiste de un mínimo y un máximo, cada uno de los cuales contiene un cero, un uno o una letra n (``varios''). Si la cardinalidad es exactamente uno, se pone sólo el uno. En el caso de una relación varios a varios, lo usual es poner una m en un extremo y una n en el otro.

NORMALIZACION
NORMALIZACION- DEFINICION:


La normalización es el proceso mediante el cual se transforman datos complejos a un conjunto de estructuras de datos más pequeñas, que además de ser más simples y más estables, son más fáciles de mantener. También se puede entender la normalización como una serie de reglas que sirven para ayudar a los diseñadores de bases de datos a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le antecede. La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como un archivo o una tabla de la base de datos, era ineficiente y conducga a errores de lógica cuando se trataban de manipular los datos. La normalización también hace las cosas fáciles de entender. Los seres humanos tenemos la tendencia de simplificar las cosas al máximo. Lo hacemos con casi todo, desde los animales hasta con los automóviles. Vemos una imagen de gran tamaño y la hacemos más simple agrupando cosas similares juntas. Las guías que la normalización provee crean el marco de referencia para simplificar una estructura de datos compleja.

Otra ventaja de la normalización de base de datos es el consumo de espacio. Una base de datos normalizada ocupa menos espacio en disco que una no normalizada. Hay menos repetición de datos, lo que tiene como consecuencia un mucho menor uso de espacio en disco. El proceso de normalización tiene un nombre y una serie de reglas para cada fase. Esto puede parecer un poco confuso al principio, pero poco a poco se va entendiendo el proceso, así como las razones para hacerlo de esta manera.

GRADOS DE NORMALIZACION:

Existen básicamente tres niveles de normalización: Primera Forma Normal (1NF), Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de estas formas tiene sus propias reglas. Cuando una base de datos se conforma a un nivel, se considera normalizada a esa forma de normalización. No siempre es una buena idea tener una base de datos conformada en el nivel más alto de normalización, puede llevar a un nivel de complejidad que pudiera ser evitado si estuviera en un nivel más bajo de normalización.

PRIMERA FORMA NORMAL: Una tabla está en Primera Forma Normal sólo si:

• Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos.
• La tabla contiene una clave primaria.
• La tabla no contiene atributos nulos.
• Si no posee ciclos repetitivos.

Una columna no puede tener múltiples valores. Los datos son atómicos. (Si a cada valor de X le pertenece un valor de Y, entonces a cada valor de Y le pertenece un valor de X)

SEGUNDA FORMA NORMAL: Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales.En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de dependencia completamente funcional. Una dependencia funcional x \rightarrow y es completamente funcional si al eliminar los atributos A de X significa que la dependencia no es mantenida, esto es que A Є X, (X – {A}) -x-> Y. Una dependencia funcional x \rightarrow y es una dependencia parcial si hay algunos atributos A \in X que pueden ser removidos de X y la dependencia todavía se mantiene, esto es A Є X, (X – {A}) -> Y .

TERCERA FORMA NORMAL: La tabla se encuentra en 3FN si es 2FN y cada atributo que no forma parte de ninguna clave, depende directamente y no transitivamente, de la clave primaria.

CUARTA FORMA NORMAL: Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no funcionales X->->Y, siendo X una super-clave que, X es o una clave candidata o un conjunto de claves primarias.

QUINTA FORMA NORMAL: Una tabla se encuentra en 5FN si:

•La tabla esta en 4FN
•No existen relaciones de dependencias no triviales que no siguen los criterios de las claves. Una tabla que se encuentra en la 4FN se dice que esta en la 5FN si, y sólo si, cada relación de dependencia se encuentra definida por las claves candidatas.

SQL
SQL
El Lenguaje de consulta estructurado Structured Query Language es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella. Es un lenguaje de cuarta generación (4GL).
Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 E. F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado por el SGBD (Sistemas Gestores de Bases de Datos) experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial.
El SEQUEL terminaría siendo el predecesor de SQL, siendo éste una versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos SGBD relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el "SQL-86" o "SQL1". Al año siguiente este estándar es también adoptado por la ISO.
Sin embargo este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideraron suprimir. Así que en 1992 se lanza un nuevo estándar ampliado y revisado del SQL llamado "SQL-92" o "SQL2".
En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio.
El ANSI SQL sufrió varias revisiones y agregados a lo largo del tiempo:
Año Nombre Alias Comentarios
1986
SQL-86
SQL-87 Primera publicación hecha por ANSI. Confirmada por ISO en 1987.

1989
SQL-89
Revisión menor.
1992
SQL-92
SQL2 Revisión mayor.
1999
SQL:1999
SQL2000 Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers y algunas características orientadas a objetos.
2003
SQL:2003
Introduce algunas características de XML, cambios en las funciones, estandarización del objeto sequence y de las columnas autonumericas.
2006
SQL:2006
ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Define maneras importar y guardar datos XML en una base de datos SQL, manipulándolos dentro de la base de datos y publicando el XML y los datos SQL convencionales en forma XML. Además, proporciona facilidades que permiten a las aplicaciones integrar dentro de su código SQL el uso de XQuery, lenguaje de consulta XML publicado por el W3C (World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y documentos XML.
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales permitiendo gran variedad de operaciones en éstos últimos.
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento", que gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales, permite una alta productividad en codificación y la orientación a objetos. De esta forma una sola sentencia puede equivaler a uno o más programas que utilizas en un lenguaje de bajo nivel orientado a registro.
SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución.
El orden de ejecución interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores.
Existe una ampliación de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos difusas, usando la lógica difusa. Este lenguaje ha sido implementado a nivel experimental y está evolucionando rápidamente.
El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE.
CREATE
Este comando crea un objeto dentro de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte.
Ejemplo (crear una tabla)
CREATE TABLE 'TABLA_NOMBRE' (
'CAMPO_1' INT,
'CAMPO_2' STRING
)
CREATE TABLE 'TABLA_NOMBRE' (
'CAMPO_1' DOCUMENTO,
'CAMPO_2' APELLIDO-NOMBRE-EDAD
)
ALTER
Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger,( o disparador) en una Base de datos , es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE).) etc.
Ejemplo (agregar columna a una tabla)
ALTER TABLE 'TABLA_NOMBRE' (
ADD NUEVO_CAMPO INT UNSIGNED
)

DROP
Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER.
Ejemplo
ALTER TABLE ''TABLA_NOMBRE''
(
DROP COLUMN ''CAMPO_NOMBRE1''
)
TRUNCATE
Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande, la desventaja es que TRUNCATE solo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando truncate borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
Ejemplo
TRUNCATE TABLE ''TABLA_NOMBRE1''
Lenguaje de manipulación de datos (LMD)
Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.
El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.
INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.
Forma básica
INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1'', [''valor2,...''])
Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error.
Ejemplo
INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', '4886850');

Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada:

INSERT INTO ''tabla'' VALUES (''valor1'', [''valor2,...''])

Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla 'agenda_telefonica'):
INSERT INTO agenda_telefonica VALUES ('Roberto Jeldrez', '4886850');

Formas avanzadas
Inserciones en múltiples filas
Una característica de SQL (desde SQL-92) es el uso de constructores de filas para insertar múltiples filas a la vez, con una sola sentencia SQL:

INSERT INTO ''tabla'' (''columna1'', [''columna2,... ''])
VALUES (''valor1a'', [''valor1b,...'']), (''value2a'', [''value2b,...'']),...

Esta característica es soportada por DB2, PostgreSQL (desde la versión 8.2), MySQL, y H2.

Ejemplo (asumiendo ese 'nombre' y 'número' son las únicas columnas en la tabla 'agenda_telefonica'):

INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850'), ('Alejandro Sosa', '4556550');

Que podía haber sido realizado por las sentencias

INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850');
INSERT INTO agenda_telefonica VALUES ('Alejandro Sosa', '4556550');

Notar que las sentencias separadas pueden tener semántica diferente (especialmente con respecto a los triggers), y puede tener diferente rendimiento que la sentencia de inserción múltiple.
Para insertar varias filas en MS SQL puede utilizar esa construcción:

INSERT INTO phone_book
SELECT 'John Doe', '555-1212'
UNION ALL
SELECT 'Peter Doe', '555-2323';

Tenga en cuenta que no se trata de una sentencia SQL válida de acuerdo con el estándar SQL (SQL: 2003), debido a la cláusula subselect incompleta.
Para hacer lo mismo en Oracle se usa DUAL TABLE, siempre que se trate de solo una simple fila:

INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM DUAL
UNION ALL
SELECT 'Peter Doe','555-2323' FROM DUAL

Una implementación conforme al estándar de esta lógica se muestra el siguiente ejemplo, o como se muestra arriba:

INSERT INTO phone_book
SELECT 'John Doe', '555-1212' FROM LATERAL ( VALUES (1) ) AS t(c)
UNION ALL
SELECT 'Peter Doe','555-2323' FROM LATERAL ( VALUES (1) ) AS t(c)

Copia de filas de otras tablas
Un INSERT también puede utilizarse para recuperar datos de otros, modificarla si es necesario e insertarla directamente en la tabla. Todo esto se hace en una sola sentencia SQL que no implica ningún procesamiento intermedio en la aplicación cliente. Un SUBSELECT se utiliza en lugar de la cláusula VALUES. El SUBSELECT puede contener JOIN, llamadas a funciones, y puede incluso consultar en la misma TABLA los datos que se inserta. Lógicamente, el SELECT se evalúa antes que la operación INSERT este iniciada. Un ejemplo se da a continuación.

INSERT INTO phone_book2

SELECT *
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')

Una variación es necesaria cuando algunos de los datos de la tabla fuente se está insertando en la nueva tabla, pero no todo el registro. (O cuando los esquemas de las tablas no son iguales.)

INSERT INTO phone_book2 ( [name], [phoneNumber] )

SELECT [name], [phoneNumber]
FROM phone_book
WHERE name IN ('John Doe', 'Peter Doe')

El SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir con el esquema de la tabla donde los datos son insertados.

UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.

Forma básica

UPDATE ''tabla'' SET ''columna1'' = ''valor1'' [,''columna2'' = ''valor2'',...]
WHERE ''columnaN = ''valorN''

Ejemplo

UPDATE My_table SET field1 = 'updated value' WHERE field2 = 'N';


DELETE
Una sentencia DELETE de SQL borra cero o más registros existentes en una tabla,

Forma básica
DELETE FROM ''tabla'' WHERE ''columna1'' = ''valor1''

Ejemplo
DELETE FROM My_table WHERE field2 = 'N';

Recuperación de clave

Los diseñadores de base de datos que usan una clave suplente como la clave principal para cada tabla, se ejecutará en el ocasional escenario en el que es necesario recuperar automáticamente la base de datos, generando una clave primaria de una sentencia SQL INSERT para su uso en otras sentencias SQL. La mayoría de los sistemas no permiten sentencias SQL INSERT para retornar fila de datos. Por lo tanto, se hace necesario aplicar una solución en tales escenarios.
Implementaciones comunes incluyen:
Utilizando un procedimiento almacenado especifico de base de datos que genera la clave suplente, realice la operación INSERT, y finalmente devuelve la clave generada.
Utilizando una sentencia SELECT específica de base de datos, sobre una tabla temporal que contiene la última fila insertada. DB2 implementa esta característica de la siguiente manera:

SELECT *
FROM NEW TABLE ( INSERT INTO phone_book VALUES ( 'Cristobal Jeldrez','0426.817.10.30' ) ) AS t

Utilizando una sentencia SELECT después de la sentencia INSERT con función específica de base de datos, que devuelve la clave primaria generada por el registro insertado más recientemente.
Utilizando una combinación única de elementos del original SQL INSERT en una posterior sentencia SELECT.
Utilizando un GUID en la sentencia SQL INSERT y la recupera en una sentencia SELECT.
Utilizando la función de PHP mysql_insert_id() de MySQL después de la sentencia INSERT.
Utilizando un INSERT con la cláusula RETURNING para Oracle, que sólo se puede utilizar dentro de un PL/SQL bloque, en el caso de PostgreSQL se puede usar también tanto con SQL como con PL/SQL.

INSERT INTO phone_book VALUES ( 'Cristobal Jeldrez','0426.817.10.30' )
RETURNING phone_book_id INTO v_pb_id

Disparadores (Triggers)
Los desencadenantes, también conocidos como disparadores, (triggers en inglés) son definidos sobre la tabla en la que opera la sentencia INSERT, los desencadenantes son evaluados en el contexto de la operación. Desencadenantes BEFORE INSERT permiten la modificación de los valores que se insertará en la tabla. Desencadenantes AFTER INSERT no puede modificar los datos de ahora en adelante, pero se puede utilizar para iniciar acciones en otras tablas, por ejemplo para aplicar mecanismos de auditoría.

Sistemas de gestión de base de datos
Los sistemas de gestión de base de datos con soporte SQL más utilizados son, por orden alfabético:

DB2
Firebird
Informix
Interbase
MySQL
Oracle
PostgreSQL
Pervasive
SQLite
SQL Server
Sybase ASE
MODELO ENTIDAD RELACION
MODELO ENTIDAD RELACION :

El modelo entidad-relación es el modelo conceptual más utilizado para el diseño conceptual de bases de datos. Fue introducido por Peter Chen en 1976. El modelo entidad-relación está formado por un conjunto de conceptos que permiten describir la realidad mediante un conjunto de representaciones gráficas y lingüísticas.
Originalmente, el modelo entidad-relación sólo incluía los conceptos de entidad, relación y atributo. Más tarde, se añadieron otros conceptos, como los atributos compuestos y las jerarquías de generalización, en lo que se ha denominado modelo entidad-relación extendido.

ENTIDAD
Cualquier tipo de objeto o concepto sobre el que se recoge información: cosa, persona, concepto abstracto o suceso. Por ejemplo: coches, casas, empleados, clientes, empresas, oficios, diseños de productos, conciertos, excursiones, etc. Las entidades se representan gráficamente mediante rectángulos y su nombre aparece en el interior. Un nombre de entidad sólo puede aparecer una vez en el esquema conceptual.

Hay dos tipos de entidades: fuertes y débiles. Una entidad débil es una entidad cuya existencia depende de la existencia de otra entidad. Una entidad fuerte es una entidad que no es débil.

RELACION (INTERRELACION)
Es una correspondencia o asociación entre dos o más entidades. Cada relación tiene un nombre que describe su función. Las relaciones se representan gráficamente mediante rombos y su nombre aparece en el interior.
Las entidades que están involucradas en una determinada relación se denominan entidades participantes. El número de participantes en una relación es lo que se denomina grado de la relación. Por lo tanto, una relación en la que participan dos entidades es una relación binaria; si son tres las entidades participantes, la relación es ternaria; etc.

Una relación recursiva es una relación donde la misma entidad participa más de una vez en la relación con distintos papeles. El nombre de estos papeles es importante para determinar la función de cada participación.
La cardinalidad con la que una entidad participa en una relación especifica el número mínimo y el número máximo de correspondencias en las que puede tomar parte cada ocurrencia de dicha entidad. La participación de una entidad en una relación es obligatoria (total) si la existencia de cada una de sus ocurrencias requiere la existencia de, al menos, una ocurrencia de la otra entidad participante. Si no, la participación es opcional (parcial). Las reglas que definen la cardinalidad de las relaciones son las reglas de negocio.

A veces, surgen problemas cuando se está diseñado un esquema conceptual. Estos problemas, denominados trampas, suelen producirse a causa de una mala interpretación en el significado de alguna relación, por lo que es importante comprobar que el esquema conceptual carece de dichas trampas. En general, para encontrar las trampas, hay que asegurarse de que se entiende completamente el significado de cada relación. Si no se entienden las relaciones, se puede crear un esquema que no represente fielmente la realidad.

Una de las trampas que pueden encontrarse ocurre cuando el esquema representa una relación entre entidades, pero el camino entre algunas de sus ocurrencias es ambiguo. El modo de resolverla es reestructurando el esquema para representar la asociación entre las entidades correctamente.
Otra de las trampas sucede cuando un esquema sugiere la existencia de una relación entre entidades, pero el camino entre una y otra no existe para algunas de sus ocurrencias. En este caso, se produce una pérdida de información que se puede subsanar introduciendo la relación que sugería el esquema y que no estaba representada.

ATRIBUTO
Es una característica de interés o un hecho sobre una entidad o sobre una relación. Los atributos representan las propiedades básicas de las entidades y de las relaciones. Toda la información extensiva es portada por los atributos. Gráficamente, se representan mediante bolitas que cuelgan de las entidades o relaciones a las que pertenecen.

Cada atributo tiene un conjunto de valores asociados denominado dominio. El dominio define todos los valores posibles que puede tomar un atributo. Puede haber varios atributos definidos sobre un mismo dominio.
Los atributos pueden ser simples o compuestos. Un atributo simple es un atributo que tiene un solo componente, que no se puede dividir en partes más pequeñas que tengan un significado propio. Un atributo compuesto es un atributo con varios componentes, cada uno con un significado por sí mismo. Un grupo de atributos se representa mediante un atributo compuesto cuando tienen afinidad en cuanto a su significado, o en cuanto a su uso. Un atributo compuesto se representa gráficamente mediante un óvalo.

Los atributos también pueden clasificarse en monovalentes o polivalentes. Un atributo monovalente es aquel que tiene un solo valor para cada ocurrencia de la entidad o relación a la que pertenece. Un atributo polivalente es aquel que tiene varios valores para cada ocurrencia de la entidad o relación a la que pertenece. A estos atributos también se les denomina multivaluados, y pueden tener un número máximo y un número mínimo de valores. La cardinalidad de un atributo indica el número mínimo y el número máximo de valores que puede tomar para cada ocurrencia de la entidad o relación a la que pertenece. El valor por omisión es (1,1).

Por último, los atributos pueden ser derivados. Un atributo derivado es aquel que representa un valor que se puede obtener a partir del valor de uno o varios atributos, que no necesariamente deben pertenecer a la misma entidad o relación.

IDENTIFICADOR
Un identificador de una entidad es un atributo o conjunto de atributos que determina de modo único cada ocurrencia de esa entidad. Un identificador de una entidad debe cumplir dos condiciones:
1. No pueden existir dos ocurrencias de la entidad con el mismo valor del identificador.
2. Si se omite cualquier atributo del identificador, la condición anterior deja de cumplirse.
Toda entidad tiene al menos un identificador y puede tener varios identificadores alternativos. Las relaciones no tienen identificadores.
Jerarquía de generalización
Una entidad E es una generalización de un grupo de entidades E a la 1, E a la 2,… E a la n, si cada ocurrencia de cada una de esas entidades es también una ocurrencia de E. Todas las propiedades de la entidad genérica E son heredadas por las subentidades.

Cada jerarquía es total o parcial, y exclusiva o superpuesta. Una jerarquía es total si cada ocurrencia de la entidad genérica corresponde al menos con una ocurrencia de alguna subentidad. Es parcial si existe alguna ocurrencia de la entidad genérica que no corresponde con ninguna ocurrencia de ninguna subentidad. Una jerarquía es exclusiva si cada ocurrencia de la entidad genérica corresponde, como mucho, con una ocurrencia de una sola de las subentidades. Essuperpuesta si existe alguna ocurrencia de la entidad genérica que corresponde a ocurrencias de dos o más subentidades diferentes.

Un subconjunto es un caso particular de generalización con una sola entidad como subentidad. Un subconjunto siempre es una jerarquía parcial y exclusiva.
Ejemplo Modelo Entidad/Relacion con smartdraw puedes crear facilmente todo tipo de diagramas de flujo, esquemas de redes de ordenadores, organigramas empresariales entre otros aqui un modelo de E/R.
CREACION DE FORMULARIO ACCES
FORMULARIO ACCES

Para crear un formulario tenemos varías opciones.


Podemos acceder a todas ellas desde la pestaña Crear:




Diseño del formulario abre un formulario en blanco en la vista diseño y tenemos que ir incorporando los distintos objetos que queremos aparezcan en él. Este método no se suele utilizar ya que en la mayoría de los casos es más cómodo y rápido crear un autoformulario o utilizar el asistente y después sobre el formulario creado modificar el diseño para ajustar el formulario a nuestras necesidades. En esta unidad veremos más adelante cómo modificar el diseño de un formulario.


Asistente para formularios utiliza un asistente que nos va guiando paso por paso en la creación del formulario.

Formulario consiste en crear automáticamente un nuevo formulario que contiene todos los datos de la tabla o consulta seleccionada en el Panel de Exploración.

Gráficos dinámicos abrirá un formulario en blanco basado en la utilización de gráficos dinámicos.

Explicaremos a continuación la forma de crear un formulario utilizando el asistente.

EL ASISTENTE PARA DATOS

Para arrancar el asistente para formularios haz clic en la opción Asistente para formularios que puedes ver en la imagen anterior.

Aparece la primera ventana del asistente:









En esta ventana nos pide introducir los campos a incluir en el formulario.
Primero seleccionamos la tabla o consulta de donde cogerá los datos del cuadro Tablas/Consultas, este será el origen del formulario. Si queremos sacar datos de varias tablas lo mejor será crear una consulta para obtener esos datos y luego elegir como origen del formulario esa consulta.
A continuación seleccionamos los campos a incluir en el formulario haciendo clic sobre el campo y clic sobre el botón o simplemente doble clic sobre el campo.

Si nos hemos equivocado de campo pulsamos el botón y el campo se quita de la lista de campos seleccionados.

Podemos seleccionar todos los campos a la vez haciendo clic sobre el botón o deseleccionar todos los campos a la vez haciendo clic sobre el botón .
Una vez seleccionada la distribución que nos interesa pulsamos el botón

Siguiente y aparece la siguiente pantalla:



En esta pantalla elegimos la distribución de los datos dentro del formulario. Seleccionando un formato aparece en el dibujo de la izquierda el aspecto que tendrá el formulario con esa distribución
El asistente para formularios (cont.).












En esta pantalla elegimos el estilo que queremos dar al formulario, podemos elegir entre los estilos que tiene definidos Access. Seleccionando un estilo aparece en el dibujo de la izquierda el aspecto que tendrá el formulario con ese estilo.

Una vez seleccionado el estilo que nos interesa pulsamos el botón Siguiente y aparece la última pantalla del asistente para formularios:



En esta ventana el asistente nos pregunta el título del formulario, este título también será el nombre asignado al formulario.





Antes de pulsar el botón Finalizar podemos elegir entre:
Abrir el formulario para ver o introducir información en este caso veremos el resultado del formulario preparado para la edición de registros, por ejemplo:














Modificar el diseño del formulario, si seleccionamos esta opción aparecerá la vista Diseño de formulario donde podremos modificar el aspecto del formulario, por ejemplo:



La pestaña Diseño de formulario
El primer botón que vemos es uno de los más útiles cuando trabajamos con formularios, permite pasar de una vista a otra


Si lo desplegamos podemos elegir entre Vista Diseño la que estamos describiendo ahora y la Vista Formulario que nos presenta los datos del origen del formulario tal como lo tenemos definido en la vista diseño.
Access 2007 introduce la Vista Presentación que nos permite trabajar casi del mismo modo en que lo hacemos con la Vista de Diseño pero con las ventajas de la Vista Formulario, pues nos muestra a tiempo real los datos del formulario para que nos hagamos una idea aproximada de cómo será su aspecto final.

También podremos acceder a las vistas Tabla dinámica, Hoja de datos y Gráfico dinámico, que ya hemos comentado, si previamente lo permitimos en las propiedades del formulario.

En la sección Herramientas podrás encontrar el botón Agregar campos existentes, que hace aparecer y desaparecer el cuadro Lista de campos en el que aparecen todos los campos del origen de datos para que sea más cómodo añadirlos en el área de diseño como veremos más adelante.
En la parte central puedes ver la sección Controles y campos en el que aparecen todos los tipos de controles para que sea más cómodo añadirlos en el área de diseño como veremos más adelante.

Todo formulario tiene asociada una página de código en la que podemos programar ciertas acciones utilizando el lenguaje VBA (Visual Basic para Aplicaciones), se accede a esta página de código haciendo clic sobre el botón .
Con el botón hacemos aparecer y desaparecer el cuadro Propiedades del control seleccionado. Si quieres saber más sobre las propiedades del formulario haz clic aquí
.

FORMULARIO TABLA CLIENTE



CREACION DE CONSULTAS EN ACCES
CONSULTA ACCES
Para crear una consulta, seguir los siguientes pasos:


Abrir la base de datos donde se encuentra la consulta a crear.
Hacer clic en el botón Diseño de Consulta en la pestaña Crear:

También tenemos la posibilidad de utilizar el Asistente para consultas que puedes ver en la imagen anterior para crear cons
ultas con un poco de ayuda.
Si haces clic en el botón Asistente para consultas aparecerá el siguiente cuadro de diálogo:
El Asistente para consultas sencillas crea una consulta de selección sencilla como definimos en el apartado anterior.
Los otros asistentes nos permiten generar tipos especiales de consulta que veremos más adelante.

Nosotros explicaremos detenidamente la opción Diseño de consulta que te permitirá crear cualquiera de las anteriores por ti mismo.
Al entrar en la Vista Diseñ
o de consulta nos pide primero las tablas de las que la consulta sacará los datos con un cuadro de diálogo parecido al siguiente:
Seleccionar la tabla de la que queremos sacar datos y hacer clic sobre el botón Agregar.
Si queremos sacar datos de varias tablas agregar de la misma forma las demás tablas.
Finalmente hacer clic sobre el botón Cerrar.

Aparecerá la ventana Vista Diseño de consultas.



LA VISTA DE DISEÑO


Si observas la pantalla, en la parte superior tenemos la zona de tablas donde aparecen las tablas añadidas con sus correspondientes campos, y en la parte inferior denominada cuadrícula QBE definimos la consulta.
Cada columna de la cuadrícula QBE corresponde a un campo.
Cada fila tiene un propósito que detallamos brevemente a continuación, más adelante iremos profundizando en la explicación:


Campo: ahí ponemos el campo a utilizar que en la mayoría de los casos será el campo a visualizar, puede ser el nombre de un campo de la tabla y también puede ser un campo calculado.



Tabla: nombre de la tabla de la que sacamos el campo. Nos será útil cuando definamos consultas basadas en varias tablas.
Orden: sirve para ordenar las filas del resultado.

Mostrar: si la casilla de verificación aparece desactivada la columna no aparecerá en el resultado, se suele desactivar cuando queremos utilizar el campo para definir la consulta pero no queremos que aparezca en el resultado. Por ejemplo si queremos que la consulta nos saque todos los alumnos de Valencia, necesitamos el campo Poblacion para seleccionar los alumnos pero no queremos que aparezca la población en el resultado ya que todos son de la misma población.

Criterios: sirve para especificar un criterio de búsqueda. Un criterio de búsqueda es una condición que deben cumplir los registros que aparecerán en el resultado de la consulta. Por lo tanto está formado por una condición o varias condiciones unidas por los operadores Y (AND) y O (OR).
O: esta fila y las siguientes se utilizan para combinar condiciones.




ESTA TABLA DE CONSULTA ES SOBRE CLIENTE CON DEUDA















ESTA TABLA DE CONSULTA DE EDAD Y SEXO DEL CLIENTE