Ficheros:
Una de las ventajas que aporta el tratamiento informatizado de la información, es la capacidad de almacenamiento en poco espacio, la rapidez en el proceso de los datos y la precisión en los resultados obtenidos.
Fichero: Es un conjunto ordenado de datos que tienen entre si una relación lógica y están almacenados en un soporte de información adecuado para la comunicación con el ordenador.
En un fichero se almacena información referente a un mismo tema en una forma estructurada, con el fin de manipular los datos de manera individual.
Un fichero esta compuesto por estructuras de datos más simples denominadas REGISTROS.
Los registros están formados por CAMPOS que contienen información referente a un elemento o característica en particular dentro del fichero.
Registro Lógico: Conjunto de información identificable acerca de uno de los elementos a que hace referencia el fichero.
Registro Físico: Conjunto de información que según las posibilidades de cada máquina puede ser escrito o leído de una sola vez.
Los registros físicos están almacenados en el soporte de información.
Un bloque o registro físico puede constar de un número variable de registros lógicos, esto es, se pueden transferir varios registros lógicos en una sola operación de lectura/escritura. Este fenómeno recibe el nombre de BLOQUEO. El número de registros lógicos contenidos en un bloque recibe el nombre de FACTOR DE BLOQUEO.
El bloqueo de registros aporta dos grandes ventajas: mayor velocidad en los procesos de entrada/salida y mejor aprovechamiento de la capacidad del soporte de almacenamiento.
En algunos casos un registro lógico excepcionalmente largo, puede ocupar más de un registro físico. Estos registros reciben el nombre de REGISTROS EXPANDIDOS.
Dirección Lógica: Es la posición relativa que ocupa un fichero.
Dirección Física : Posición real o efectiva donde se encuentra dicho registre en el soporte de información.
Los ficheros se guardan en dispositivos de memoria masiva, estando limitado su tamaño por el de los dispositivos que los alberguen. Los dispositivos de memoria auxiliar pueden ser de dos tipos Secuencial o NO Direccionables y de acceso directo o direccionables. En los soportes secuenciales, si se quiere acceder al registro N hay que leer los N-1 registros anteriores. En los de acceso directo, por el contrario, se puede acceder directamente a un registro físico sin más que dar su dirección.
Dentro de un determinado fichero, los registros van a ser identificados por un campo o conjunto de campos, a los cuales se los denomina LLAVE o IDENTIFICATIVO. Esto sirve para discriminar cada registro de los demás.
Se dice que una llave esta duplicada cuado uno o mas registros distintos toman el mismo valor.
&6.2
Creación: Operación previa a cualquier otra, que supone una descripción de las características de los datos. La vida de un fichero comienza con la creación del mismo.
Consulta o Recuperación: Esta operación se realiza a nivel de registro para conocer la información contenida en el fichero.
Mantenimiento o Actualización: Una vez que el fichero está creado, podrá surgir la necesidad de modificar la información que contiene. Esto supondrá tres tipos de operaciones distintas a nivel de registro:
1)Inserción de un registro cuando aparezcan nuevas entidades.
2)Modificación de un registro para el cual se han producido cambios.
3)Eliminación o Borrado de un registro porque hayan desparecido las correspondientes entidades.
La supresión de un registro se puede realizar de dos modos:
a)Eliminación por marca o borrado lógico, que consiste en la modificación del valor de un campo mediante el cual los programas de aplicación detectan que el contenido del registro no tiene validez.
b)Eliminación real, consiste en hacer que ese registro sea inaccesible, o bien ocupar su espacio con otros registros en ese fichero.
Borrado o Destrucción : Elimina la información del fichero, así como su estructura. La destrucción del fichero supone el fin de la existencia del mismo.
&6.3
Tipos de Ficheros …
° Según la longitud de registro.
*Longitud fija: Se denominan así a los registros en los que la suma de los caracteres en todos los campos es constante.
*Longitud variable: Son aquellos registros que tienen cada uno una longitud diferente en el fichero.
*Delimitados: La longitud del registro es variable y no es posible conocer en que medida difieren unos de otros. El sistema incluye un carácter especial para indicar el final de registro. En este caso, se dice que el fichero es de tipo texto.
*Indefinido: Son aquellos en los que la longitud es totalmente variable. El sistema operativo no realiza ninguna gestión. El programa de usuario es el que se encarga de localizar el principio y el fin de cada registro.
*Según el uso que se haga de ellos. Los ficheros se utilizan para realizar funciones diversas dentro de una aplicación informática.
*Ficheros permanentes: Contienen la información necesaria para el funcionamiento de una aplicación. Su vida es larga y normalmente no pueden generarse de forma inmediata a partir de otros ficheros.
Dentro de los ficheros permanentes podemos distinguir 3 tipos:
*Ficheros maestros o de situación: Contienen información que refleja el estado actual de los datos. Estos ficheros se actualizan periódicamente para adaptarlos a cada nueva situación.
*Ficheros Constantes: Son los que mantienen datos fijos para la aplicación. Su información permanece prácticamente inamovible. Se utilizan principalmente como ficheros de consulta.
*Ficheros Históricos: Son aquellos que contienen datos que fueron actuales en tiempos anteriores. Están constituidos por registros que recogen cronológicamente las distintas modificaciones en el tiempo que ha sufrido el fichero.
*Ficheros Temporales: Contienen información necesaria para un proceso específico dentro de una aplicación. Se generan a partir de los datos de los ficheros permanentes. Tienen vida efímera, y únicamente son utilizados para obtener resultados o actualizar la información de los ficheros permanentes.
*Ficheros Intermedios: Se generan a partir de los resultados de un programa y se utilizarán como entrada a otro dentro de la misma tarea. Solo se usan para pasar información de un proceso a otro.
*Ficheros de Maniobras: Se utilizan para no perder información generada por un proceso por falta de espacio en memoria principal, no se puede conservar.
*Ficheros de Resultados: Se generan a partir de los resultados finales de un proceso que van a ser transferidos a un dispositivo de salida, por ejemplo un fichero de impresión.
&6.4
Tipos de organización de ficheros:
Secuencial: Los registros se encuentran almacenados de forma contigua, sin dejar ningún espacio entre ellos y sin ningún índice que indique las direcciones de cada registro. Está es la única organización de ficheros que puede ser gestionada en un dispositivo no direcciónable. Los registros se encuentran ordenados según un indicativo que se toma como base de clasificación.
En este tipo de organización, las operaciones que se pueden realizar sobre los ficheros son :
*Añadir: Solo es posible escribir al final del fichero.
*Consulta: La consulta se realiza de forma secuencial, es decir para leer el registro que ocupa la posición N es necesario leer previamente las N-1 posiciones anteriores.
*Operaciones de Actualización: Estas operaciones no son fáciles de realizar en un fichero secuencial. La actualización de un fichero secuencial obliga a escribirlo de nuevo totalmente, es decir, cada operación de actualización implica crear de nuevo el fichero.
*Consulta: Únicamente en el caso de que los registros sean de longitud fija, se puede determinar la dirección de comienzo de un registro a partir de su posición relativa en el fichero.
*Modificación: Una vez localizado un registro, se puede reescribir en él dentro del propio fichero, siempre que la modificación no suponga un aumento de la longitud del registro.
*Borrado: No es posible realizar un borrado real de un registro del fichero. Sin embargo, podemos hacer lo que se denomina un borrado lógico, que consiste en marcar el registro de forma que al leerlo se identifique como no valido.
La organización secuencial se suele utilizar con ficheros en los que en cada proceso se debe acceder a la mayor parte de los registros del mismo. Una ventaja es que aprovecha bien el espacio y que es sencilla de utilizar. Su principal inconveniente es la falta de flexibilidad y la velocidad de acceso.
Secuencial Encadenada: Los ficheros almacenan además de su propia información, un puntero, con la dirección del registro siguiente, según el orden lógico del fichero.
Con esta organización se pueden realizar las siguientes operaciones:
*Añadir: Para añadir un registro al final del fichero, se localiza la posición del ultimo registro del fichero. El puntero de este último registro contendrá una dirección nula. Una vez localizado el final del fichero, el nuevo registro se escribirá en una zona libre, colocando en su campo de puntero una dirección nula.
*Recuperación: La consulta es secuencial. Para leer un determinado registro, se accede al primero en la lista y se comprueba si es el registro buscado. Si no es así lee la dirección siguiente.
*Inserción: Para insertar un registro, es necesario localizar la posición en que se desea insertar, es decir, entre que dos registros se quiere situar. Físicamente, el registro se escribe en una dirección de memoria arbitraria que se encuentre disponible.
*Modificación: Si la modificación no implica un aumento en la longitud ni una alteración del valor del campo llave, se localizara el registro y simplemente habrá que sobrescribir en la misma posición. En el caso contrario primero se insertará un nuevo registro que incluya la modificación y posteriormente se borrará el registro con la información desactualizada.
*Borrado: Para eliminar un registro del fichero, solo hay que destruir su dirección del puntero del registro anterior.
La velocidad de acceso al fichero depende del número de registros lógicos que se pueden leer en un bloque.
La organización encadenada es adecuada en ficheros que utilizan procesos interactivos.
Secuencial Indexada:
Un fichero con organización secuencial indexada se considera compuesto de dos zonas:
*Zona de registros: Contiene todos los registros del fichero, ordenados según el valor de alguna llave. Está zona se puede ver como una estructura secuencial pura.
*Zona de Índices: Es una estructura formada por un número de registros inferior al total de registros del fichero. Al igual que la zona de registros , la zona de índices posee un organización secuencial pura.
Los registros de la zona de índices posee una estructura particular que nada tiene que ver con los registros reales de fichero. Están formados por dos campos:
1-Campo Llave.
2 - ampo Dirección.
La zona de registros se considera dividida en una serie de tramos lógicos o segmentos, cada uno de los cuales está formado por registros consecutivos. Por cada tramo en la zona de registros existe un registro en la zona de índices. Dicho registro en la zona de índices contendrá en su campo llave el valor del ultimo registro del tramo, y en el campo de dirección del primer registro del tramo. De esta manera se accede de forma directa a un segmento de la zona de registros a partir de la zona de índices.
*Consulta: Se pueden realizar consultas secuenciales, sin embargo, este tipo de organización se caracteriza por la posibilidad de realizar consultas conocida su llave, sin tener que leer los registros anteriores en el fichero.
*Inserción: No es posible insertar un registro en ficheros con está organización, ya que formalmente se trata de una organización secuencial pura. Sólo se pueden añadir registros.
*Modificación: Si la modificación no implica un aumento de longitud del registro ni supone una variación del valor de la llave del registro, la actualización puede realizarse directamente. En caso contrario, habría que reorganizar el fichero completo.
*Eliminación: Tampoco es posible borrar un registro, auque si se permite un borrado lógico.
Una mejora para esta estructura consiste en utilizar la denominada organización secuencial indexada encadenada que hace uso de punteros en los registros.
Directa o Aleatoria:
En la organización aleatoria no tiene por qué existir ninguna relación lógica entre los registros y su colocación física. Cada registro se sitúa en una dirección de memoria que se calcula aplicando una fórmula o algoritmo matemático.
Existen muchos métodos para generar las direcciones de los registros. Todos ellos tomarán el valor de un campo del registro, aplicaran la transformación y obtendrán la dirección.
Cuando se detecta que la dirección asignada a un registro está ya ocupada por otro. Se puede optar por dos alternativas:
a) Buscar una dirección libre en el mismo espacio de fichero.
b) Reservar una zona de desbordamiento e ir almacenado los sinónimos en esa zona consecutiva a medida que van apareciendo.
El problema fundamental de esta organización es la elección de la transformación o método de direccionamiento que se ha de usar para cada tipo de fichero.
*Direccionamiento Directo: Este método consiste en asignar a cada llave una dirección lógica , es decir, la transformación asigna como dirección el valor de la llave. El problema es que tiene que haber tantas direcciones como valores de la llave y que las llaves han de ser numéricas.
*Direccionamiento Asociado: Normalmente se utiliza cuando las llaves son alfanuméricas y consiste en asociar a cada llave una dirección lógica por medio de una tabla. Se construye una tabla con todas las llaves de fichero y la dirección física. Este tipo de direccionamiento no produce sinónimos, pero necesita espacio adicional para la tabla.
*Direccionamiento Calculado(Hashing): En este tipo, la dirección de cada registro se obtiene mediante una serie de cálculos matemáticos realizados con la llave. El principal problema que plantea es la existencia de sinónimos.
División por número primo: Si N es el número máximo estimadote registros en el fichero y P es el número primo mas próximo a N, se divide la llave por P y se utiliza como dirección el resto de la operación.
*Cuadrado de la llave: Si la llave no es un número muy alto, se eleva al cuadrado y se extraen como dirección unas cuantas cifras inmediatas.
*Truncamiento o Extracción: Se trunca la llave, quedándonos con las 4 o 5 ultimas cifras, y a partir de ellas con una serie de cálculos matemáticos se obtiene la dirección.
*Plegamiento: Se utiliza cuando la lave toma valores numéricos muy grandes. Consiste en recortar la llave en trozos y después sumar dichos trozos. Al resultado de la suma se le puede volver a aplicar cualquier otro método de los escritos.
*Consulta: Se realiza siempre por llave. Para leer un determinado registro, únicamente te ha de aplicar el algoritmo de transformación a la llave si el registro buscado no se encuentra en la dirección resultante.
*Inserción: Para insertar un nuevo registro, se aplica a la llave el algoritmo de transformación elegido. Si la dirección que resulta de aplicar el método de direccionamiento ya esta ocupada por otro registro, se emplea un algoritmo de resolución de sinónimos.
*Modificación: Siempre se puede realizar esta operación. Para localizar el registro se aplica la transformación correspondientea a la llave. Una vez que se obtiene la información se modifica la información del registro.
*Borrado: Siempre se realiza un borrado lógico. Se localiza el registro mediante algoritmos y se marca con un valor determinado para indicar que no es un registro valido.
&6.5
Parámetros de utilización de ficheros:
Al crear un fichero en necesario especificar que organización tendrá. La elección de una determinada organización implica tener en cuenta el tipo de operaciones a que van a ser sometidos los ficheros.
*Volumen: Es el número de caracteres, que ocupa el fichero en el soporte de almacenamiento.
Antes de la creación del fichero, se puede evaluar el espacio que ocupara.
*Crecimiento: Especifica el aumento o disminución del tamaño del fichero. Utiliza como parámetros la tasa de crecimiento, que es el número de altas y bajas que se procesan en cada tratamiento del fichero.
*Actividad: Se refiere al número de procesos de consulta y modificación que sufrirá el fichero a lo largo de su vida.
Parámetros:
*Tasa de consulta: Es el número de registros tratados en cada procesamiento del fichero.
*Frecuencia de Renovación: es el número de veces que se accede al fichero para insertar o borrar por unidad de tiempo.
&6.6
Tratamiento de Ficheros:
La captura de datos se hace leyendo directamente los documentos fuente, utilizando códigos de barras o introduciendo los datos desde una terminal.
La calidad de la producción de un sistema de procesamiento de datos depende más de los operadores que de la maquina.
El resultado de ejecutar un programa fiable, únicamente será correcto si la entrada de datos preparada por personas es precisa.
*Documentos de ida y vuelta: Documento obtenido como resultado de un proceso que contiene los datos de entrada para otro.
Validación de Datos: El proceso de validación consiste en comprobar los datos de entrada antes de almacenarlos o procesarlos. La validación es uno de los pasos mas importantes y que mas tiempo consumen en muchos sistemas de tratamiento de datos. Básicamente, el objetivo de la validación es el control de la información suministrada a la máquina.
Existen muchas técnicas de validación. Una de las mas simples consiste en el uso de totales. Normalmente los datos numéricos de particular importancia disponen de dígitos de seguridad . El valor de estos dígitos se calcula a partir de los demás dígitos del número.
Ordenación de datos:
Muchos de los procesos sobre ficheros u otras estructuras de datos, requieren que éstos se encuentren ordenados. Un fichero está ordenado cuando los registros aparecen en él de forma creciente o decreciente según el valor de uno a varios campos. Ordenar los registros en el fichero consiste en colocarlos en un determinado orden, que vendrá dado por el valor de uno o varios campos llamados llaves de ordenación.
Si un fichero esta ordenado y esta almacenado en un soporte direcciónable, es posible localizar o buscar con gran rapidez un registro que contenga un determinado valor en el campo por el que se encuentra ordenado el fichero.
Métodos de ordenación :
*Inserción: Se construye lista ordenada con los valores de las llaves de los registros del fichero. Una vez construida, se va leyendo secuencialmente y se escriben los registros correspondientes en el fichero de salida. Cuando se vaya a insertar una nueva llave, se insertara en el lugar que le corresponda, quedando la lista ordenada.
*Mezcla: Se procede a una mezcla reiterada de secuencias del fichero ya ordenadas. Sea N el número de valores de llave distintos del fichero. Partimos de N segmentos cada uno, desordenados; estos segmentos se mezclan dos a dos, produciendo N/2 segmentos ordenados de dos registros. Este proceso se repite reiteradas veces hasta ordenar el fichero completo.
Búsqueda:
*Búsqueda secuencial: Supone examinar cada uno de los registros del fichero hasta que se encuentra el solicitado. Se usa solamente cuando el fichero contiene un número pequeño de registros o carece de orden.
*Búsqueda Dicotómica: Este tipo de búsqueda es posible en ficheros ordenados. Consiste en dividir el fichero en subficheros mas pequeños.
*Búsqueda por Bloques: Con este método se realiza el mismo recorrido sobre las llaves que en un fichero secuencial indexado. Para localizar un registro se considera el fichero lógicamente dividido en bloques.
Generación de Informes:
La mayoría de los ficheros de un sistema de tratamiento de información contienen grandes cantidades de datos. Para tener una idea adecuada y correcta del estado del sistema, es importante generar informes a intervalos regulares. La información que se obtiene será un resumen de los datos de uno o mas ficheros, aunque es muy habitual encontrar información que no esta almacenada directamente en nuestro sistema.
Normalmente un sistema informatico podrá generar una gran variedad de informes, dependiendo de la información que se necesite en cada instante o de la clase de persona a la que va destinado dicho informe.
Seguridad de los Datos:
Es usual realizar copias de seguridad periódicamente de todos los ficheros que forman el sistema de tratamiento de datos, por ejemplo, una vez a la semana , guardando las copias de seguridad en un lugar seguro hasta que dejen de tener validez.
BASES DE DATOS ….
Una de las aplicaciones mas significativas de las computadoras es el almacenamiento, recuperación y mantenimiento de grandes cantidades de información utilizando entidades hardware/software conocidas como sistemas de información.
Problemas de los manejadores de ficheros:
*Actualización de la información: La realización de actualizaciones puede resultar costosa cuando se tiene información parcial o totalmente duplicada en varios ficheros; incluso puede que éstos tengan organizaciones diferentes. Si al tener que actualizar un determinado dato no se actualiza en todos los lugares donde se encuentra, se producen lo que se denominan inconsistencias en la base de datos.
*Redundancia: Este problema consiste en tener datos que no aportan información , ya que se pueden deducir de otros. El caso típico de redundancia es mantener el mismo dato almacenado en varios sitios.
*Rigidez de Búsqueda: A cada fichero se le dará una determinada organización, de acuerdo con los tipos de accesos que se creían más frecuentes, ero puede ocurrir que se necesiten otros modos de acceso y sean difíciles de llevar a cabo sobre la organización ya existente.
*Dependencia con los programas: Las relaciones entre los datos almacenados en los ficheros no están patentes en éstos. Es el programa que los utiliza el que se encarga de ello.
*Confidencialidad y Seguridad: La confidencialidad de los datos consiste en evitar la consulta de estos a determinados usuarios. Otro aspecto que debe garantizarse es la seguridad de los datos almacenados, de forma que no puedan ser modificados por personas no autorizadas.
Concepto y estructura de BASES DE DATOS.
Base de Datos: Sistema formado por un conjunto de datos organizados de tal forma que se controla el almacenamiento de datos redundantes. Los datos resulta independientes de los programas que los usan, se almacenan los datos y las relaciones entre ellos y se puede acceder a los datos de diversas formas.
Requisitos de un buen sis de bdd. :
*Varios usuarios pueden acceder simultáneamente.
*Se controla el acceso de datos.
*Los datos se almacenan sin redundancia.
*Se podrán usar distintos métodos de acceso.
*Deben existir mecanismos concretos de recuperación de información en caso de fallo de la computadora.
*Se podrá cambiar el soporte físico de la base de datos sin que repercuta en la misma ni en los programas que la usan.
*Se podrán modificar los datos contenidos en la base de datos, las relaciones entre ellos o incluir nuevos datos sin afectar a los programas que los usan.
*Existe una interfaz de usuario que permite utilizar la base de datos de forma cómoda y sencilla.
Una entidad es un objeto real o abstracto con características diferenciadores, capaces de hacerse distinguir de otros objetos, y del cual se almacena información en la base de datos.
Una entidad esta formada por un conjunto de ítems de datos o atributos, cada uno de los cuales aporta alguna característica en la definición de la entidad.
En una base de datos, la información de cada entidad se va a almacenar en registros, y cada atributo, en campos de dicho registro. En una base de datos vamos a tener distintos tipos de registros, cada entidad necesita registros con estructura diferente. Esta es la diferencia principal entre las Bases de Datos y los ficheros. En una base de datos habrá tantos tipos de registros como entidades, mientras que en un fichero todos los registros tienen la misma estructura, habrá un único tipo de registro.
Súper Clave: Se denomina súper clave de una entidad a un atributo o conjunto de atributos que permite identificar de forma única a una ocurrencia de la entidad.
Clave Candidata: Es cuando de una súper clave no se puede obtener ningún subconjunto que sea a su vez súper clave.
Clave primaria o principal: De todas las claves candidatas el diseñador elige una que será la clave principal .
Decimos que existe una referencia entre dos entidades, cuando un campo o conjunto de campos de una de las entidades es clave de la otra; esto nos va a permitir localizar una entidad a partir de otra.
A este conjunto de atributos que forman la clave de la segunda entidad se la denomina CLAVE FORANEA O CLAVE AJENA de la entidad.
Sistemas gestores de base de datos ….
*Definición del esquema de base de datos: Una vez diseñado el esquema de la base de datos, hemos de describirlos mediante un conjunto de instrucciones. Esto se realiza mediante un lenguaje especifico, denominado lenguaje de descripción de datos(DDL).
*Acceso a la información desde un lenguaje de alto nivel: Esto se realiza mediante un lenguaje especifico, denominado lenguaje de manipulación de datos (DML). El DML puede ser utilizado de dos formas diferentes.
*Acceso a la información en modo conversacional: EL SGBD debe incorporar una interfaz de usuario a través de la cual introducir sentencias de DDL o DML directamente desde un terminal para obtener información interactiva.
*Gestión de Archivos: Función realizada por un módulo denominado gestor de archivos que se encarga de la comunicación con el sistema operativo.
Abstracción de la Información …
*Nivel de Visión: A este nivel, cada grupo de usuarios posee conocimiento únicamente de aquella parte de la base de datos que le afecta. Este conocimiento ha de interpretarse a nivel de abstracción.
*Nivel conceptual: La unión de todas las vistas, da lugar al nivel conceptual. A este nivel, se conoce la descripción de todos los datos y las relaciones existentes entre ellos.
*Nivel Físico: A este nivel se describe cómo se encuentran los datos almacenados físicamente en memoria secundaria. Es el nivel más cercano al hardware y se encuentra íntimamente ligado a el.
Tipos de Bases de Datos …
*Bases de datos jerárquicas: En este tipo de bases de datos sólo se pueden crear estructuras jerárquicas. Están formadas por una colección de registros unidos a través de relaciones que pueden ser de uno a uno o de uno a muchos no siendo posible definir relaciones de muchos a muchos. Las relaciones se implementan físicamente utilizando punteros.
*Bases de datos en red: Las bases de datos en red son muy parecidas a las jerárquicas. Se permite cualquier tipo de relaciones aunque, en principio, se distingue entre bases de datos en red simple y bases de datos en red compleja. Cualquier sistema es representable en una base de datos en red.
*Bases de datos relacionales: Una base de datos relacional está formada por tablas. Una tabla es una estructura bidimensional formada por sucesión de registros del mismo tipo.
Una tabla es la forma en que un usuario ve sus datos. Se divide horizontalmente en filas y verticalmente en columnas.
Se define una clave como un atributo o conjunto de atributos que identifican una fila. Los requisitos que debe cumplir una clave son : Identificación inequívoca y no redundancia.
Modelos de Datos …
Un modelo de datos se puede definir como un grupo de herramientas conceptuales para describir los datos, sus relaciones, su semántica y sus limitaciones.
Propiedades de modelos de datos..
Propiedades estáticos: Son variables en el tiempo. Quedan especificadas en el modelo de datos por las estructuras. La parte estática se define mediante el esquema de la base de datos con el lenguaje de definición de datos (DDL).
Propiedades dinámicas: Son las propiedades que varían con el tiempo. En el modelo de datos, son las operaciones.
Las operaciones sobre un modelo de datos pueden ser:
*Selección: Localización de los datos deseados.
*Acción: Realización de una acción sobre los datos seleccionados.
Usuarios de la Base de Datos …
Se consideran tres clases de usuarios:
*Programador de Aplicaciones: Encargado de escribir programas de aplicación que utilicen bases de datos.
*Usuario final: Accede a la base de datos desde un terminal empleando un lenguaje de consulta (DML).
*Administrador de la base de datos: Es la persona encargada del control general del sistema de base de datos.
Independencia de datos ..
Se dice que una aplicación es dependiente de los datos cuando es imposible cambiar la estructura de almacenamiento y la estrategia de acceso sin afectar la aplicación.
En un sistema de bases de datos se hace necesario que los datos resulten independientes de las aplicaciones.
Hay dos razones ..
*Aplicaciones diferentes requerirán vistas diferentes de los mismos datos.
* El administrador de la base de datos deberá tener libertad para modificar la estructura.
DDL Y DML ..
El lenguaje de definición de datos(DDL), proporciona ordenes para definir, eliminar y modificar tablas, así como para crear índices y vistas. Las ordenes SQL más importantes del DDL son :
* CREATE TABLE
* ALTER TABLE
* MODIFY
* DROP TABLE
El lenguaje de manipulación de datos(DML), esta basado en el algebra relacional, e incluye órdenes para insertar, suprimir y modificar filas de la base de datos.
ORDENES:
* INSERT
* UPDATE
* DELETE
* SELECT
Sistemas Operativos …
El sistema operativo es el software básico y fundamental de un sistema informático. Sin su existencia, el elemento hardware solo seria una entidad física sin utilidad.
Una primera aproximación nos presentaría al sistema operativo como un tipo de software que controla el funcionamiento del elemento del elemento físico, ocultando sus detalles al usuario, permitiéndole así trabajar de una forma fácil y segura. Para ello, el sistema operativo enmascara los recursos físicos, permitiendo un manejo sencillo y flexible.
Por otra parte, un ordenador integra un conjunto de elementos necesarios para llevar acabo su trabajo.
ELEMENTOS:
* Procesador
* Memoria Principal
* Dispositivos Periféricos
* La información
Características deseables de un sistema de datos..
Eficiencia: De cara a no desperdiciar tiempo útil del funcionamiento del sistema informático, el sistema operativo debe realizar sus funciones de una forma rápida.
Fiabilidad: Un sistema operativo debe ser fiable, ya que un fallo en él puede dar lugar a la inutilización del ordenador que está controlando.
Facilidad de Mantenimiento: Debe ser posible llevar a cabo modificaciones de forma sencilla sobre el sistema operativo.
Pequeño Tamaño: Un S-O debe ser lo más pequeño posible. Esto se debe a que un sistema operativo pequeño ocupa menos espacio, en memoria, es menos propenso a errores y más eficiente.
Funciones de los sistemas operativos …
*Facilitar la tarea del usuario.
*Administrar los dispositivos de hardware
* Administrar y mantener el sistema de ficheros en dispositivos de memoria masiva.
*Apoyar a otros programas.
* Proteger los datos y los programas.
* Contabilizar el uso de recursos realizados por los distintos usuarios.
Interfaz Usuario ..
Para comunicarse cómodamente con el ordenador, los programas incluyen módulos para definir la interfaz de usuario. Cada programa de aplicación dispone de sus propios módulos de interfaz con el usuario y el sistema operativo también dispone de su propia interfaz de usuario.
Interfaz de línea de ordenes ..
En una interfaz de línea de órdenes, el usuario controla el programa mediante el teclado de órdenes después del indicador de petición de entada del prompt. El prompt indica que el sistema operativo está listo para aceptar una orden. Las ordenes obedecen unas sintaxis y semántica claramente preestablecidas.
Como es lógico, el principal inconveniente de este tipo de interfaces es que obliga al usuario a conocer el lenguaje de órdenes para llevar a cabo cualquier tarea.
Interfaz Grafica De Usuario (GUI)
*Trabajo en un entorno de ventanas.
*Sistemas de menú de cortina.
*Cajas de dialogó.
*Iconos.
*Escritorio digital.
Administración del Hardware.
Gestión Del Procesador:
*Preparación de programas: Incluye la transferencia de los programas ejecutables de usuario desde la memoria masiva a la memoria principal a partir de una determinada dirección de memoria por medio de un programa que se denomina cargador.
*Asignación de Recursos: Los sistemas operativos poseen una política de asignación de recursos.
* Planificación del proceso: Consiste en el control, a través de una determinada política de asignación de tiempos, de la utilización del procesador por parte de los distintos procesos que en un momento determinado se encuentren en el sistema.
*Relanzamiento de procesos: Se restablecen los valores de cada elemento en el momento de la interrupción, hasta conseguir el estado de la ejecución del programa. Una vez subsanada la causa de la parada, le vuelve a tocar el turno, se pone en funcionamiento nuevamente el proceso.
Gestión de la memoria.
El módulo de gestión de memoria del sistema operativo se encarga de asignar ciertas porciones de la memoria principal a los diferentes programas o partes de los programas que la puedan necesitar mientras el resto de los datos y programas se mantienen en dispositivos de memoria masiva. El control y gestión de la memoria principal también exige que se establezcan zonas de seguridad para que no se produzcan colisiones entre las distintas áreas de memoria asignadas a cada programa.
Gestión de entradas y salidas..
El módulo del sistema operativo encargado del control de E/S intenta tratar el problema haciendo posible que los programadores de aplicaciones puedan realizar operaciones de E/S de una forma independiente de las particularidades del dispositivo, ocultándoles las peculiaridades del hardware de periféricos.
Administración del sistema de ficheros..
Los sistemas operativos agrupan la información dentro de compartimientos lógicos para almacenarla en los soportes de almacenamiento masivo. Estos grupos de información son denominados ficheros.
Abstracción De fichero lleva asociadas las siguientes caracteristicas:
*Capacidad de almacenamiento: Deben ser capaces de contener grandes cantidades de información.
*Permanencia: La información que contienen debe permanecer y sobrevivir a los procesos que generan o utilizan.
*Posibilidad de acceso Concurrente: Distintos procesos deben poder acceder concurrentemente a la información del fichero.
Tan pronto como se empieza a usar el ordenador, se acumula un gran número de ficheros de diversos tipos, de tal forma que se hace difícil su uso por parte del usuario. Para solucionar este problema, se hace necesario el uso de otros medios que permitan organizar ficheros dentro de grupos mas pequeños y mas lógicos. Por este motivo, los sistemas operativos hacen uso de una segunda abstracción, la de DIRECTORIO. Los directorios están constituidos por la agrupación, según un criterio elegido, de un conjunto de ficheros.
Apoyo a otros Programas..
Una de las funciones mas importantes del sistema operativo es proporcionar servicios a otros programas. A menudo, estos servicios son similares a los que proporciona el S-O directamente a los usuarios.
Estos servicios liberan al programador de trabajos engorrosos ya que realizan de forma automática alguna de las siguientes funciones.
*Transferencias de informaciones o ficheros.
* Revisión de espacio disponible.
*Reserva de memoria. Etc.
Protección.
Errores de sistema: El sistema operativo debe ser capaz de detectar los errores de los programas de aplicación y diagnosticarlos lo antes posible de cara a limitar sus efectos.
Abuso intencionado de los recursos del sistema: Este asunto es más difícil de resolver, ya que, de hecho pocos sistemas operativos pueden realmente evitar que se produzca cualquier acción no autorizada.
Si bien existen sistemas de protección en todos los niveles de sistema operativo, se presta mas atención a la seguridad de la memoria principal y de los soportes de memoria masivo.
Contabilidad del uso de recursos..
Una de las tareas más habituales de los sistemas operativos es el mantenimiento de una contabilidad del gasto de recursos que realiza cada uno de los usuarios.
Generalmente, la parte más considerable del coste a contabilizar es el tiempo de procesador. Para llevar a cabo esta tarea, el módulo encargado de la misma recibe la información del planificador, que le informa del tiempo de CPU consumido por cada proceso.
Tipos de Sistemas Operativos..
Multitarea.
*Multitarea cooperativa: En este esquema existe una cooperación entre el sistema operativo y los programas de aplicación. Los procesos realizan periódicamente una inspección de cara a detectar si otro proceso necesita el procesador.
*Multitarea con asignación de prioridades: Con este esquema el sistema operativo mantiene una lista de los procesos que intervienen en cada momento. Cuando se inserta un proceso en la lista, se le asigna una prioridad.
Sistemas Multiusuarios..
Los sistemas monousuarios son sistemas muy simples que sólo permiten la conexión de un único usuario en un instante dado.
Los sistemas multiusuario permiten que más de un usuario acceda a la computadora al mismo tiempo.
Los sistemas multiusuario permiten, además, que cada usuario pueda ejecutar varios programas simultáneamente.
Multiproceso..
Los sistemas informaticos que contienen dos o más procesadores interconectados, trabajando simultáneamente, se denominan multiprocesador.
Es necesario un tipo especial de S-O para gestionar un sistema multiprocesador. A este tipo de sistema operativo se los denomina multiproceso o de multiprocesamiento.
Los primeros S-O dentro de esta categoría utilizaban lo que se denomina multiproceso asimetrico, que se caracterizaba porque un procesador principal controla el comportamiento global de todos los demás, utilizandolos como si fueran otros dispositivos conectados al bus del ordenador.
El multiproceso simétrico, por otro lado permite que la capacidad del sistema aumente linealmente por cada procesador adicionado. En este caso no existe procesador controlador único.
Sistemas Operativos de tiempo real..
Existen aplicaciones que son especialmente sensibles al factor tiempo, ya que dependen del tiempo exacto. Estas aplicaciones se denominan de tiempo real.
Los sistemas operativos de tiempo real son ampliamente utilizados en aplicaciones capaces de controlar y regular el medio en que operan, como pueden ser control industrial, militar, etc. Estos sistemas deben ser capaces de responder a determinados eventos que se pueden producir asincronicamente y con gran frecuencia en unos plazos de tiempo previamente especificados.
Lenguaje Maquina..
Es el único lenguaje que entiende directamente el ordenador.
Por está razón su estructura está totalmente adaptada a los circuitos de la maquina y muy alejada de la forma de expresión y análisis de los problemas propia de los humanos. Esto hace que la programación en este lenguaje resulte tediosa y complicada.
Las principales caracteristicas del lenguaje máquina son:
*Las instrucciones se expresan en el alfabeto binario, pudiendose utilizar códigos intermedios.
*Los datos se referencian por medio de las direcciones de memoria donde se encuentran.
*Las instrucciones realizan operaciones muy simples.
*Existe muy poca versatilidad para la redacción de las instrucciones ya que tienen un formato rigido en cuanto a la posición de los distintos campos.
*El lenguaje máquina depende y esta intimamente relacionado a la CPU del ordenador, por esto los programas en lenguaje maquina no son transferibles de un modelo de ordenador a otro. (no son portables).
Lenguaje Ensamblador..
El lenguaje ensamblador constituye el primer intento de sustitución del lenguaje máquina por uno más cercano al usado por los humanos. Este acercamiento a las personas se plasma en las siguientes aportaciones:
*Uso de una notacion simbolica o nemotécnica para representar los codigos de operación.
*Direccionmiento simbolico. En lugar de utilizar direcciones binarias absolutas, los datos pueden ser identificados con nombres como COSTE, TOTAL , etc.
*Se permite el uso de comentarios, haciendo posible la redaccion de programa más legibles.
Este tipo de lenguajes hacen corresponder a cada instrucción en ensamblador una instrucción en código máquina. Esta traduccion es llevada a cabo por un programa llamado ensamblador.
Para solventar en cierta medida la limitación que supone poseer un repertorio de instrucciones tan reducido, se han desarrollado unos ensambladores especiales denominados macroensambladores. Los lenguajes que traducen los macro ensambladores disponen de macroinstrucciones cuya traducción da lugar a varias instrucciones máquina y no a una sola. Existen macroinstrucciones para dividir, multiplicar,etc.
Lenguajes de alto nivel..
*Son independientes de la arquitectura física de la computadora. Esto les da portabilidad.
*La ejecución de un programa en lenguaje de alto nivel requiere de una traduccion del mismo a lenguaje maquina.
*Por lo general una sentencia en un lenguaje de alto nivel da lugar al ser traducida a varias instrucciones en lenguaje máquina.
*Utilizan notaciones cercanas a las usadas por las personas en un determinado ambito.
*Suelen incluir instrucciones potentes de uso frecuente que son ofrecidas por el lenguaje de programación.
*Los lenguajes de alto nivel, no permiten aprovechar los recursos internos de la máquina.
TRADUCTORE, COMPILADORES E INTÉRPRETES
Un traductor es un meta programa que toma como entrada un programa escrito en lenguaje simbólico alejado de la maquinadenominado programa fuente y proporcionan como salida otro programa semánticamente equivalente, escrito en lenguaje comprensible por el hardware de la computadora denominado programa objeto.
Un compilador traduce completamente el programa fuente, generando un programa objeto.
Un interprete permite que un programa fuente escrito en un determinado lenguaje vaya traduciendose y ejecutandose directamente sentencia a sentencia por la computadora. El interprete capta una sentencia fuente, la analiza y la interpreta, dando lugar a su ejecución.
Proceso de compilación..
Para llevar a cabo la compilación de un programa este ddebe residir en memoria principal simultáneamente con el compilador. El resultado de la compilación puede dar lugar a la aparición de errores, en dicho caso no se genera el programa objeto.
Una vezfinalizada la compilación y obtenido el programa objeto, es necesario someterlo a un proceso de motaje donde se nelazaran los distintos módulos que lo componen.
Este proceso de montaje es realizado por un programa denominado encuadernador o montador(linker).
La compilación es un proceso complejo que consume a veces un tiempo muy superior a la propia ejecución del programa. Este proceso consta en general de dos etapas fundamentales.
*Analisis
*Sisntesis
El compilador utiliza internamente na tabla de simbolos para introducir determinados datos que necesita.
Esta tabla interviene en todas las etapas de compilación, asi mismo el compilador posee un módulo de tratamiento de errores que permite determinar que se deben producir ante la aparición de cualquier tipo de erro.
Analisis Lexografíco..
Durante el analisis lexografico se examina el programa fuente de izquierda a derecha, reconociendo las unidades básicas de información pertenecientes al lenguaje.
En caso de no existir errores en este primer analisis , se obtine una representación de programa formada por:
*Una descripción de simbolos en la tabla de simbolos.
*Una secuencia de símbolos en la cual, junto a cada simbolo se incluye una referencia de dicho en la tabla de simbolos.
Analisis sintáctico..
El analisis sintáctico recibe la tira de tokens del analizador lexicografíco e investiga en ellla los posibles errores sintacticos que aparezcan, estos errores pueden ser expresiones estructuradas incorrectamente, falta de algún token dentro de una sentencia, formato incorrecto en una asignación.etc.
En caso de no encontrar errores el proceso de analisis sintáctico, se agrupan los componentes léxicos en frases gramaticales que seran utilizadas en la sintesis del programa objeto. Estas frases se suelen representar mediante un arbol sintactico que pone de manifiesto la estrucura jerárquica de los componentes de un programa.
Analisis Semántico..
El analisis semántica se encarga de estudiar la coherencia semántica del código fuente a partir de la identificación de las construcciones sintácticas y de la información almacenada en la tabla de símbolos.
Sintesis del programa objeto..
La etapa de sintesis construye el programa objeto deseado a partir de la representación intermedia obtenida en la etepa de analisis.
Generación de un código Intermedio..
En la fase de generación de código intermedio se traduce el resultado de la etapa de análisis a un lenguaje intermedio propio del compilador.
Caracteristicas:
*Debe ser independiente de la máquina.
*Debe ser facil de producir.
*Debe ser facil de traducir a lenguaje máquina.
Optimización de Código..
Consiste en tomar el codigo intermedio de forma global y optimizarlo, adaptandolo a las caracteristicas del procesador al que va dirijido para mejorar los resultados de su ejecución.
La optimización se realiza en cualquier parte del programa, pero es en los bucles donde se consiguen los mejores resultados.
Un problema de la optimización es que incrementa el tamaño y complejidad del compilador.
Generación de Codigo Objeto..
Durante la generación de codigo objeto, se traduce el código intermedio optimizado al código final, es decir, al lenguaje maquina del procesador al que el compilador va dirigido. Para ello se reserva la memoria necesaria para cada elemento del codigo intermedio y cada instrucción en lenguaje intermedio es traducida a varias instrucciones en lenguaje máquia.
Detección y tratamiento de errores..
*Diagnostico de error: Un compilador, cunado detecta un error, trata de buscar su localización exacta y la posible causa de esta.
*Recuperación del error: después de detectar un error, cada fase debe tratarlo de alguna forma para continuar la compilación y permitir de esta forma la detección de más errores en el programa fuente, aunque no se genere codigo objeto.
Tipos de Errores:
* Error lexicograficos.
*Errores sintácticos.
*Errores Semánticos .
*Errores lógicos.
* Errores de ejecución.
Suscribirse a:
Enviar comentarios (Atom)

No hay comentarios:
Publicar un comentario