¿Qué son el flujo de datos y el diccionario de datos?
Diagrama de flujo de datos: denominado DFD, que utiliza gráficos para expresar las funciones lógicas del sistema, el flujo lógico de datos dentro del sistema y el proceso de transformación lógica. Es la principal herramienta de expresión. Aplicación para métodos de análisis de sistemas estructurados. Un método gráfico para representar modelos de software.
El significado de los símbolos básicos del diagrama de flujo de datos:
1. El rectángulo representa la entidad externa de los datos
2. representa el procesamiento de datos transformados Lógica;
3. El rectángulo del lado derecho representa el almacenamiento de datos
4.
Existen los siguientes elementos principales en el diagrama de flujo de datos:
→: flujo de datos. Un flujo de datos es el camino por el que viajan los datos dentro de un sistema y, por tanto, consta de un conjunto de datos con una composición fija. Por ejemplo, el formulario de reserva de billetes consta de elementos de datos como nombre del pasajero, edad, unidad, número de identificación, fecha, destino, etc. Dado que el flujo de datos son datos en flujo, debe tener una dirección de flujo. Excepto que no es necesario nombrar el flujo de datos entre el almacenamiento de datos y el almacenamiento de datos, el flujo de datos debe nombrarse con sustantivos o frases nominales.
□: Fuente de datos (punto final). Representa entidades fuera del sistema, que pueden ser personas, objetos u otros sistemas de software.
○: Tratamiento (tratamiento) de datos. El procesamiento es una unidad que procesa datos. Recibe cierta entrada de datos, la procesa y produce resultados.
〓: Almacenamiento de datos. Representa el almacenamiento estático de información, que puede representar archivos, partes de archivos, elementos de bases de datos, etc.
Al dibujar un diagrama de flujo de datos único, debe prestar atención a los siguientes principios:
1. Un flujo de datos de salida procesado no debe tener el mismo nombre que el flujo de datos de entrada. incluso si sus componentes son los mismos.
2. Mantener la conservación de los datos. En otras palabras, los datos de todos los flujos de datos de salida de un proceso deben obtenerse directamente del flujo de datos de entrada del proceso, o de los datos que puede generar el proceso.
3. Cada proceso debe tener tanto un flujo de datos de entrada como un flujo de datos de salida.
4. Todo flujo de datos debe comenzar con un procesamiento o finalizar con un procesamiento.
El diccionario de datos es donde Oracle almacena información sobre la base de datos y su propósito es describir datos. Por ejemplo, información del creador de una tabla, información de tiempo de creación, información de espacio de tabla, información de permiso de acceso de usuario, etc. Cuando los usuarios encuentran dificultades al operar datos en la base de datos, pueden acceder al diccionario de datos para ver información detallada.
El diccionario de datos en Oracle se divide en estático y dinámico. El diccionario de datos estático principalmente no cambia cuando el usuario accede al diccionario de datos, pero el diccionario de datos dinámico depende del rendimiento de la operación de la base de datos y refleja cierta información intrínseca de la operación de la base de datos, por lo que a menudo no es estático al acceder a este tipo de diccionario de datos. Estos dos tipos de diccionarios de datos se analizarán a continuación.
1. Diccionario de datos estático
Este tipo de diccionario de datos se compone principalmente de tablas y vistas. Cabe señalar que no se puede acceder directamente a las tablas del diccionario de datos, pero se puede acceder a las vistas del diccionario de datos. Las vistas en el diccionario de datos estáticos se dividen en tres categorías, cada una de las cuales consta de tres prefijos: usuario_*, todos_*, dba_*.
user_*
Esta vista almacena información sobre los objetos que pertenecen al usuario actual. (Es decir, todos los objetos en este modo de usuario)
all_*
Este intento almacena información sobre los objetos a los que el usuario actual puede acceder. (En comparación con user_*, all_* no necesita ser propietario del objeto, solo necesita tener permiso para acceder al objeto)
dba_*
Esta vista almacena todos los objetos en la base de datos Información del objeto. (La premisa es que el usuario actual tiene permiso para acceder a estas bases de datos y, por lo general, debe tener permisos de administrador)
Como se puede ver en la descripción anterior, definitivamente habrá superposición en los datos almacenados entre las tres. De hecho, excepto por la diferencia en el alcance del acceso (debido a que los permisos son diferentes, el alcance de los objetos de acceso es diferente), todo lo demás es consistente. Específicamente, dado que las vistas del diccionario de datos son propiedad de SYS (usuario del sistema), solo SYS y los usuarios con permisos del sistema DBA pueden ver todas las vistas en el caso predeterminado. Los usuarios sin autoridad de DBA solo pueden ver las vistas user_* y all_*.
No pueden ver las vistas dba_* sin que se les concedan los permisos SELECT pertinentes.
Debido a la similitud entre los tres, a continuación se utiliza user_ como ejemplo para presentar varias vistas estáticas de uso común:
vista user_users
Describe principalmente la vista estática actual. información del usuario, que incluye principalmente el nombre de usuario actual, la identificación de la cuenta, el estado de la cuenta, el nombre del espacio de tabla, la hora de creación, etc. Por ejemplo, ejecutar el siguiente comando puede devolver esta información.
select * from user_users
vista user_tables
Describe principalmente la información de todas las tablas propiedad del usuario actual, incluidos nombres de tablas, nombres de espacios de tablas y nombres de clústeres. , etc. . A través de esta vista, puede comprender claramente qué tablas puede operar el usuario actual. El comando de ejecución es: select * from user_tables
user_objects view
Describe principalmente la información de todos los objetos propiedad del usuario actual, incluidas tablas, vistas, procedimientos almacenados, activadores, paquetes, e índices, secuencia, etc. Esta vista es más completa que la vista user_tables. Por ejemplo, si necesita obtener información sobre un tipo de objeto llamado "paquete1" y su estado, puede ejecutar el siguiente comando:
select object_type,status
from user_objects p>
where object_name=upper('package1');
Debe prestar atención al uso de la parte superior aquí. Todos los objetos en el diccionario de datos están en mayúsculas, pero PL/SQL no. distingue entre mayúsculas y minúsculas, por lo que en la práctica Asegúrese de prestar atención a la coincidencia de mayúsculas y minúsculas durante la operación.
Vista user_tab_privs
Esta vista almacena principalmente información de permisos para todas las tablas del usuario actual. Por ejemplo, para conocer la información de permisos del usuario actual en la tabla1, puede ejecutar el siguiente comando:
seleccione * de user_tab_privs donde table_name=upper('table1')
Comprender la información de permisos del usuario actual en la tabla1 Después de los permisos de la tabla, puede saber claramente qué operaciones se pueden realizar y cuáles no.
Todas las vistas anteriores comienzan con user_. De hecho, las que comienzan con all_ son exactamente iguales, excepto que la información enumerada son los objetos a los que el usuario actual puede acceder en lugar de los objetos que posee. usuario. Para aquellos que comienzan con dba_, se requieren derechos de administrador y otros usos son exactamente los mismos, por lo que no entraré en detalles aquí.
2. Diccionario de datos dinámicos
Oracle contiene algunas tablas y vistas potenciales mantenidas por administradores de sistemas como SYS. Dado que se actualizan constantemente cuando la base de datos se está ejecutando, se denominan diccionarios de datos dinámicos (o vista de rendimiento dinámico). Estas vistas proporcionan información sobre las operaciones de memoria y disco, por lo que solo podemos tener acceso de solo lectura a ellas y no podemos modificarlas.
Estas vistas de rendimiento dinámico en Oracle son todas vistas que comienzan con v$, como v$access. La siguiente es una introducción a varias vistas principales de rendimiento dinámico.
v$access
Esta vista muestra los objetos de base de datos bloqueados en la base de datos y los objetos de sesión (objetos de sesión) que acceden a estos objetos.
Ejecute el siguiente comando:
select * from v$access
Los resultados son los siguientes: (Debido a que hay muchos registros, solo parte de los registros se extraen aquí)
p>
SID
PROPIETARIO TIPO DE OBJETO
27 DKH V$CURSOR DE ACCESO
27 PUBLIC V $ACCESS SYNONYM
27 SYS DBMS_APPLICATION_INFO PACKAGE
27 SYS GV$ACCESS VIEW
v$session
Esta vista enumera los detalles de la sesión actual. Dado que esta vista tiene muchos campos, los campos detallados no se enumeran aquí. Para obtener más información, puede escribir directamente: desc v$session en la línea de comando sql*plus.
v$active_instance
Esta vista describe principalmente información sobre las instancias activas en la base de datos actual. Aún puede utilizar la instrucción select para observar esta información.
v$context
Esta vista enumera la información de atributos de la sesión actual. Como espacio de nombres, valores de atributos, etc.
3. Resumen
Lo anterior es el contenido básico del diccionario de datos de Oracle. Hay muchas vistas útiles que no se pueden explicar aquí por razones de espacio. Espero que todos les presten más atención en el uso diario. En resumen, un buen uso de la tecnología de diccionario de datos puede permitir a los desarrolladores de bases de datos comprender mejor la imagen general de la base de datos, lo que es de gran ayuda para la optimización y gestión de la base de datos.