Laboratorio Diccionario de Datos
Laboratorio Diccionario de Datos
Laboratorio Diccionario de Datos
En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del
flujo de datos en todo el sistema. Los elementos más importantes son flujos de datos,
almacenes de datos y procesos. El diccionario guarda los detalles y descripciones de todos
estos elementos.
El diccionario se desarrolla durante el análisis de flujo de datos y auxilia a los analistas que
participan en la determinación de los requerimientos de sistemas.
Este diccionario Contiene las características lógicas de los sitios donde se almacenan los
datos del sistema, incluyendo nombre, descripción, alias, contenido y organización. Identifica
los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato
a la información, se desarrolla durante el análisis de flujo de datos y auxilia a los analistas
que participan en la determinación de los requerimientos del sistema, su contenido también
se emplea durante el diseño.
1. Para manejar los detalles en sistemas muy grandes, ya que tienen enormes
cantidades de datos, aun en los sistemas mas chicos hay gran cantidad de datos.
Los sistemas al sufrir cambios continuos, es muy difícil manejar todos los detalles. Por
eso se registra la información, ya sea sobre hoja de papel o usando procesadores de
texto. Los analistas mas organizados usan el diccionario de datos automatizados
diseñados específicamente para el análisis y diseño de software.
2. Para asignarle un solo significado a cada uno de los elementos y actividades del
sistema.
En un diccionario de datos se encuentra la lista de todos los elementos que forman parte del
flujo de datos de todo el sistema. Los elementos más importantes son flujos de datos,
almacenes de datos y procesos. El diccionario de datos guarda los detalles y descripción de
todos estos elementos.
Los diccionarios de datos proporcionan asistencia para asegurar significados comunes para
los elementos y actividades del sistema y registrando detalles adicionales relacionadas con el
flujo de datos en el sistema, de tal manera que todo pueda localizarse con rapidez.
Estructura de datos: es un grupo de datos que están relacionados con otros y que en
conjunto describen un componente del sistema.
-Descripción:
Se construyen sobre cuatro relaciones de componentes. Se pueden utilizar las siguientes
combinaciones ya sea individualmente o en conjunción con alguna otra.
Relación secuencial: define los componentes que siempre se incluyen en una estructura de
datos.
-Relación de selección: (uno u otro), define las alternativas para datos o estructuras de
datos.
Alias: Cualquier otro nombre que se pueda usar para referirse al elemento de datos. Por
ejemplo, el nombre de un elemento de datos puede ser Balance actual, y el alias puede ser
Size o tamaño: Se refiere al máximo de caracteres o de dígitos que puede tener el elemento
de datos.
Output formato reditmask: Indica cómo se presenta el dato al mostrarse en pantalla o al
imprimirse en un reporte. Por ejemplo, el número de teléfono del cliente se puede guardar en
el disco usando solo números 7878889999, pero presentarse editado en la pantalla o en el
reporte (787) 888-9999.
Default value: Es el valor que el elemento de datos tiene si no se cambia entrando otro
valor.
Source: De dónde se origina el valor del elemento de datos. Puede ser una forma, un
departamento, otro sistema, etc.
En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla
sea considerada como una relación tiene que cumplir con algunas restricciones:
Reglas de Codd
Codd se percató de que existían bases de datos en el mercado las cuales decían ser
relacionales, pero lo único que hacían era guardar la información en las tablas, sin estar
estas tablas literalmente normalizadas; entonces éste publicó 12 reglas que un verdadero
sistema relacional debería tener, en la práctica algunas de ellas son difíciles de realizar. Un
sistema podrá considerarse "más relacional" cuanto más siga estas reglas.
Toda la información en un RDBMS está explícitamente representada de una sola manera por
valores en una tabla.
Cualquier cosa que no exista en una tabla no existe del todo. Toda la información, incluyendo
nombres de tablas, nombres de vistas, nombres de columnas, y los datos de las columnas
deben estar almacenados en tablas dentro de las bases de datos. Las tablas que contienen
tal información constituyen el Diccionario de Datos. Esto significa que todo tiene que estar
almacenado en las tablas.
Toda la información en una base de datos relacional se representa explícitamente en el nivel
lógico exactamente de una manera: con valores en tablas. Por tanto los metadatos
(diccionario, catálogo) se representan exactamente igual que los datos de usuario. Y puede
usarse el mismo lenguaje (ej. SQL) para acceder a los datos y a los metadatos (regla 4).
Cada ítem de datos debe ser lógicamente accesible al ejecutar una búsqueda que combine
el nombre de la tabla, su clave primaria, y el nombre de la columna.
Esto significa que dado un nombre de tabla, dado el valor de la clave primaria, y dado el
nombre de la columna requerida, deberá encontrarse uno y solamente un valor. Por esta
razón la definición de claves primarias para todas las tablas es prácticamente obligatoria.
➢ Se reconoce la necesidad de la existencia del valor nulo, el cual podría servir para
representar, o bien, una información desconocida (ejemplo, no se sabe la dirección de
un empleado), o bien una información que no aplica(a un empleado soltero no se le
puede asignar un nombre de esposa). Así mismo, consideremos el caso de un alumno
que obtiene 0 puntos en una prueba y el de un alumno que no presentó la prueba.
➢ Hay problemas para soportar los valores nulos en las operaciones relacionales,
especialmente en las operaciones lógicas, para lo cual se considera una lógica
trivaluada, con tres (no dos) valores de verdad: Verdadero, Falso y null. Se crean
tablas de verdad para las operaciones lógicas:
La información de tablas, vistas, permisos de acceso de usuarios autorizados, etc. debe ser
almacenada exactamente de la misma manera: En tablas. Estas tablas deben ser accesibles
igual que todas las tablas, a través de sentencias de SQL (o similar).
Debe haber al menos un lenguaje que sea integral para soportar la definición de datos,
manipulación de datos, definición de vistas, restricciones de integridad, y control de
autorizaciones y transacciones.
Esto significa que debe haber por lo menos un lenguaje con una sintaxis bien definida que
pueda ser usado para administrar completamente la base de datos.
Todas las vistas que son teóricamente actualizables, deben ser actualizables por el sistema
mismo.
La mayoría de las RDBMS permiten actualizar vistas simples, pero deshabilitan los intentos
de actualizar vistas complejas.
La capacidad de manejar una base de datos con operandos simples aplica no sólo para la
recuperación o consulta de datos, sino también para la inserción, actualización y borrado de
datos.
Esto significa que las cláusulas para leer, escribir, eliminar y agregar registros (SELECT,
UPDATE, DELETE e INSERT en SQL) deben estar disponibles y operables,
independientemente del tipo de relaciones y restricciones que haya entre las tablas o no.
Los programas de aplicación y las actividades de acceso por terminal deben permanecer
lógicamente inalterados cuando quiera que se hagan cambios (según los permisos
asignados) en las tablas de la base de datos.
La independencia lógica de los datos especifica que los programas de aplicación y las
actividades de terminal deben ser independientes de la estructura lógica, por lo tanto los
cambios en la estructura lógica no deben alterar o modificar estos programas de aplicación.
Todas las restricciones de integridad deben ser definibles en los datos, y almacenables en el
catálogo, no en el programa de aplicación.
Las reglas de integridad: Ningún componente de una clave primaria puede tener valores en
blanco o nulos (ésta es la norma básica de integridad).
Para cada valor de clave foránea deberá existir un valor de clave primaria concordante. La
combinación de estas reglas asegura que haya integridad referencial.
El sistema debe poseer un lenguaje de datos que pueda soportar que la base de datos esté
distribuida físicamente en distintos lugares sin que esto afecte o altere a los programas de
aplicación.
El soporte para bases de datos distribuidas significa que una colección arbitraria de
relaciones, bases de datos corriendo en una mezcla de distintas máquinas y distintos
sistemas operativos y que esté conectada por una variedad de redes, pueda funcionar como
si estuviera disponible como en una única base de datos en una sola máquina.
Regla No. 12 - Regla de la no-subversión
Si el sistema tiene lenguajes de bajo nivel, estos lenguajes de ninguna manera pueden ser
usados para violar la integridad de las reglas y restricciones expresadas en un lenguaje de
alto nivel (como SQL).
Algunos productos solamente construyen una interfaz relacional para sus bases de datos No
relacionales, lo que hace posible la subversión (violación) de las restricciones de integridad.
Esto no debe ser permitido.
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 conducía a errores de lógica cuando se trataban de manipular los
datos.
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.
REGLA DESCRIPCION Primera Forma Normal (1FN) Incluye la eliminación de todos los
grupos repetidos. Segunda Forma Normal (2FN) Asegura que todas las columnas que no son
llave sean completamente dependientes de la llave primaria (PK). Tercera Forma Normal
(3FN) Elimina cualquier dependencia transitiva. Una dependencia transitiva es aquella en la
cual las columnas que no son llave son dependientes de otras columnas que tampoco son
llave.
PRIMERA FORMA NORMAL 1FN
La regla de la Primera Forma Normal establece que las columnas repetidas deben eliminarse
y colocarse en tablas separadas. Poner la base de datos en la Primera Forma Normal
resuelve el problema de los encabezados de columna múltiples. Muy a menudo, los
diseñadores de bases de datos inexpertos harán algo similar a la tabla no normalizada. Una
y otra vez, crearán columnas que representen los mismos datos. La normalización ayuda a
clarificar la base de datos y a organizarla en partes más pequeñas y más fáciles de entender.
En lugar de tener que entender una tabla gigantesca y monolítica que Tiene muchos
diferentes aspectos, sólo tenemos que entender los objetos pequeños y más tangibles, así
como las relaciones que guardan con otros objetos también pequeños.
La regla de la Segunda Forma Normal establece que todas las dependencias parciales se
deben eliminar y separar dentro de sus propias tablas. Una dependencia parcial es un
término que describe a aquellos datos que no dependen de la llave primaria de la tabla para
identificarlos. Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan la
mayoría de los problemas de lógica. Podemos insertar un registro sin un exceso de datos en
la mayoría de las tablas.
Una tabla está normalizada en esta forma si todas las columnas que no son llave son
funcionalmente dependientes por completo de la llave primaria y no hay dependencias
transitivas. Una dependencia transitiva es aquella en la cual existen columnas que no son
llave que dependen de otras columnas que tampoco son llave. Cuando las tablas están en la
Tercera Forma Normal se previenen errores de lógica cuando se insertan o borran registros.
Cada columna en una tabla está identificada de manera única por la llave primaria, y no debe
haber datos repetidos. Esto provee un esquema limpio y elegante, que es fácil de trabajar y
expandir.
En resumen La normalización es una técnica que se utiliza para crear relaciones lógicas
apropiadas entre tablas de una base de datos. Ayuda a prevenir errores lógicos en la
manipulación de datos. La normalización facilita también agregar nuevas columnas sin
romper el esquema actual ni las relaciones. Existen varios niveles de normalización: Primera
Forma Normal, Segunda Forma Normal, Tercera Forma Normal, Forma Normal Boyce-Codd,
Cuarta Forma Normal, Quinta Forma Normal o Forma Normal de Proyección-Unión, Forma
Normal de Proyección-Unión Fuerte, nuevo nivel o forma nos acerca más a hacer una base
de datos verdaderamente relacional. Se Forma Normal de Proyección-Unión Extra Fuerte y
Forma Normal de Clave de Dominio. Cada discutieron las primeras tres formas. Éstas
proveen suficiente nivel de normalización para cumplir con las necesidades de la mayoría de
las bases de datos. Normalizar demasiado puede conducir a tener una base de datos
ineficiente y hacer a su esquema demasiado complejo para trabajar. Un balance apropiado
de sentido común y práctico puede ayudarnos a decidir cuándo normalizar.
¿EN QUÉ CONSISTE EL LENGUAJE ESTRUCTURADO DE BASE DE DATOS?
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query
Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite
especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo
del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar de
forma sencilla información de interés de bases de datos, así como hacer cambios en ellas.
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 sub-lenguaje de acceso a
los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios
de IBM definieron el lenguaje SEQUEL (Structured English Query Language) que más tarde
fue ampliamente implementado por el sistema de gestión de bases de datos (SGBD)
experimental System R, desarrollado en 1977 también por IBM. Sin embargo,
fue Oracle quien lo introdujo por primera vez en 1979 en un producto comercial.
El SEQUEL terminó siendo el predecesor de SQL, que es una versión evolucionada del
primero. El SQL pasa a ser el lenguaje por excelencia de los diversos sistemas de gestión de
bases de datos relacionales surgidos en los años siguientes y fue 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 cubría todas las necesidades de los desarrolladores e incluía
funcionalidades de definición de almacenamiento que se consideró suprimirlas. Así que,
en 1992, se lanzó un nuevo estándar ampliado y revisado del SQL llamado "SQL-92" o
"SQL2".
De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían
en un lenguaje de bajo nivel orientado a registros.
SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de
SQL en lenguajes de programación como: C++, C, Java, PHP, Cobol, Pascal y Fortran.
Autorización: El LDD incluye comandos para especificar los derechos de acceso a las
relaciones y a las vistas.
Tipos de Datos
Algunos de los tipos de datos básicos de SQL son:
Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y el día.
Time: La hora del día en horas minutos segundos (el valor predeterminado es 0).
Timestamp: la combinación de Date y Time.
Optimización
Como ya se dijo antes, y suele ser común en los lenguajes de acceso a bases de datos de
alto nivel, el 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 seriamente 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 SQL
Las aplicaciones en red son cada día más numerosas y versátiles. En muchos casos, el
esquema básico de operación es una serie de scripts que rigen el comportamiento de una
base de datos.
Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar
entre unos y otras sería realmente complicada a gestionar de no ser por la existencia de
estándares que nos permiten el realizar las operaciones básicas de una forma universal.
Es de eso de lo que trata el Structured Query Language que no es más que un lenguaje
estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje
normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en
combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL…).
El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En
efecto, determinadas bases de datos implementan funciones específicas que no tienen
necesariamente que funcionar en otras.
Componentes del SQL El lenguaje SQL está compuesto por comandos, cláusulas,
operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para
crear, actualizar y manipular las bases de datos.
COMANDOS
• Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.
• Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de
datos.
Comandos DLL Comando Descripción CREATE Utilizado para crear nuevas tablas, campos
e índices:
ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de
los campos.
SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio
determinado
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
CLÁUSULAS
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea
seleccionar o manipular.
Comando Descripción
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
WHERE Utilizada para especificar las condiciones que deben reunir los registros que se van
a seleccionar
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden
específico
OPERADORES LÓGICOS
Operador: Uso
OR Es el “o” lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las
dos es cierta.
Operadores de Comparación
Operador Uso:
Mayor que distinto de = Mayor ó Igual que BETWEEN Utilizado para especificar un intervalo
de valores.
Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros
para devolver un único valor que se aplica a un grupo de registros.
Comando Descripción
SUM: Utilizada para devolver la suma de todos los valores de un campo determinado