Hola a todos, hoy les voy a dejar un código donde se muestra como crear, cargar, leer y modificar los datos de un archivo en pascal.
Recuerden que este código lo pueden compilar y funciona perfectamente. También recuerden que las explicaciones de los mismos están como comentarios en el código.
domingo, 30 de noviembre de 2014
domingo, 16 de noviembre de 2014
Buffers de Lectura y Escritura en Archivos
Antes de comenzar a explicar como movernos dentro de los datos de un archivo, tenemos que entender como funcionan los buffers de lectura/escritura del Sistema Operativo.
Debido a los tiempos de acceso de la RAM y del Disco Rigido, se busco una forma optima de obtener los datos, lo que se hace es leer de a bloques grandes del disco y estos datos se guardan temporalmente en memoria RAM.
Esta lectura se dispara con la petición de obtención de un dato en disco, y como se dijo, junto a ella se trae mas datos (Un Bloque), ya que es muy probable que la siguiente lectura el dato a obtener esté continua a la anterior, y por ello la siguiente vez que se requiera un dato, este no lo buscara en el disco, si no que ya estará en RAM por lo cual se ahorra mucho tiempo de espera al obtener el dato.
Pasa lo mismo con la escritura, es mas rápido escribir un bloque entero de memoria que pequeñas partes del mismo, por ello también se cuenta con un bloque para las escrituras, donde se van almacenando los datos hasta que el programa se cierre o el bloque se llene (también podemos indicar al Sistema Operativo desde el programa que escriba el buffer en disco cuando mas lo creamos conveniente).
Resumiendo un poco, recordemos que entre el disco rígido y nuestro programa vamos a tener un buffer (Estos son registros en RAM) y que gracias a ello tenemos una mejora en la performance de nuestras lecturas y escrituras.
Saludos a todos :) Happy Hacking } ; )
Debido a los tiempos de acceso de la RAM y del Disco Rigido, se busco una forma optima de obtener los datos, lo que se hace es leer de a bloques grandes del disco y estos datos se guardan temporalmente en memoria RAM.
Esta lectura se dispara con la petición de obtención de un dato en disco, y como se dijo, junto a ella se trae mas datos (Un Bloque), ya que es muy probable que la siguiente lectura el dato a obtener esté continua a la anterior, y por ello la siguiente vez que se requiera un dato, este no lo buscara en el disco, si no que ya estará en RAM por lo cual se ahorra mucho tiempo de espera al obtener el dato.
Pasa lo mismo con la escritura, es mas rápido escribir un bloque entero de memoria que pequeñas partes del mismo, por ello también se cuenta con un bloque para las escrituras, donde se van almacenando los datos hasta que el programa se cierre o el bloque se llene (también podemos indicar al Sistema Operativo desde el programa que escriba el buffer en disco cuando mas lo creamos conveniente).
Resumiendo un poco, recordemos que entre el disco rígido y nuestro programa vamos a tener un buffer (Estos son registros en RAM) y que gracias a ello tenemos una mejora en la performance de nuestras lecturas y escrituras.
Saludos a todos :) Happy Hacking } ; )
Archivos, Operaciones Básicas, Crear, Abrir y Cerrar
Hola a todos, hoy les vengo con las operaciones básicas para poder comenzar a trabajar con archivos, lamentablemente (para mi que me gustan otros lenguajes) voy a tener que usar pascal ya que la cátedra lo dicta con ese lenguaje.
Abajo dejo el código con los comentarios necesarios para comprender todo lo necesario para comenzar a trabajar con los archivos.
Abajo dejo el código con los comentarios necesarios para comprender todo lo necesario para comenzar a trabajar con los archivos.
sábado, 15 de noviembre de 2014
Formas de Acceso a la Información de un Archivo
Hola a todos, hoy les vengo con las formas que tenemos de acceder a un archivo.
Existen 3 formas de acceder a un archivo, y estas son:
Existen 3 formas de acceder a un archivo, y estas son:
- Secuencial: El acceso a los datos es secuencial, dicho de otra forma, se accede a los datos desde el principio hasta el final, uno tras el otro.
- Secuencial Indizado: El acceso a los datos se realiza según algún criterio de ordenación, sin tener en cuenta el orden físico de los datos. (Esto se realiza mediante el uso de indices en los archivos), cuando utilizamos esta forma de acceso vamos a notar que después de ingresar un nuevo dato, al recuperarlo, este estará ordenado.
- Directo: Conociendo las características de un dato se puede obtener el mismo con un solo acceso, mas allá de su orden físico o lógico predeterminado.
A partir de ahora viene lo mas lindo, que es hacer código XD.
En los próximos post, va ir acompañado de la teoría un código ejemplo del mismo en pascal, ( si lo se pascal :(, no queda de otra, la cátedra lo usa para dictar esta materia ), pero para los que les guste otro lenguaje, voy a crear un repo en githup donde iré poniendo estos mismos ejemplos en otros lenguajes de programación, de esta forma yo practico esos otros lenguajes ( También los aprendo ) y a mas de uno le servirá para aprender un lenguaje nuevo :)
Saludos a todos, Happy Haking } ; )
Administración de Archivos
Cuando trabajemos con archivos, nos vamos a encontrar con dos tipos de administración de archivos.
Estos dos tipos de administración se basan en su visión y estos son:
Estos dos tipos de administración se basan en su visión y estos son:
- Visión Física: Este es el archivo que se encuentra físicamente en el disco.
- Visión Lógica: Este es el archivo utilizado desde el algoritmo.
Como ocurre toda la magia?
Como primer capa de administración los archivos físicos tienen a los controladores de los discos rígidos, y son estos controladores quienes crean, modifican y eliminan a los archivos físicos directamente.
Como segunda capa de administración a los archivos físicos se tiene a los Sistemas Operativos, estos son los que dan una capa de abstracción al uso de los archivos. Estos nos simplifican la manipulación de archivos. Como parte de su abstracción dan al desarrollador un serie de instrucciones para su fácil interacción con los mismos.
En la capa de administración Lógica tenemos a los distintos lenguajes de programación, estos definen un archivos lógico ( Variable ) que es inicializado por el Sistema operativos, esto se realiza mediante una instrucción que enlaza el archivo lógico con el archivo físico. Esta es la forma que tenemos de indicarle al sistema operativo que cambios queremos que realice en el archivo físico.
Cada lenguaje tiene su propia forma de enlazar el archivo lógico con el físico, en algunos de ellos nos vamos a dar cuenta cuando hace el enlace y en otros no, ya que nos abstraen un poco mas el proceso de manipulación del archivo.
Bueno por el momento esto es todo :)
Saludos y Happy Haking } ; )
lunes, 10 de noviembre de 2014
Archivos
Hola a todos, lo que vamos a ver ahora es el uso de archivos, la idea es ir entendiendo como se fue generando de a poco la necesidad de construir lo que hoy conocemos como sistemas de base de datos. Comencemos :)
Todo esto se inicio con la necesidad de persistir los datos que manipulamos en nuestra computadora, viendo que si bien , durante una sesión en la computadora estos datos persistían en la RAM, estos dejaban de existir cuando reiniciábamos la computadora, y eh! ahi el primer problema, ¿Cómo persistir nuestros datos mas allá de una sesión?, la solución fue almacenarlo en archivos en medios de almacenamiento permanente ( o secundario), como son los Discos Rígidos.
Bien pero que es un archivo?
Según Wikipedia : Un Archivo es un conjunto de bits que es almacenado en un dispositivo. Leer completo Aquí.
Según el libro que leo: Un Archivo es una colección de registros que abarcan entidades con un aspecto común y originadas para algún propósito particular.
Para mi un archivo es un conjunto de datos relacionados entre si bajo un objetivo común, ordenados homogéneamente.
Otra cosa que debemos entender es la diferencia que existe entre la RAM y los dispositivos secundarios; esta diferencia radica básicamente en dos aspectos:
Todo esto se inicio con la necesidad de persistir los datos que manipulamos en nuestra computadora, viendo que si bien , durante una sesión en la computadora estos datos persistían en la RAM, estos dejaban de existir cuando reiniciábamos la computadora, y eh! ahi el primer problema, ¿Cómo persistir nuestros datos mas allá de una sesión?, la solución fue almacenarlo en archivos en medios de almacenamiento permanente ( o secundario), como son los Discos Rígidos.
Bien pero que es un archivo?
Según Wikipedia : Un Archivo es un conjunto de bits que es almacenado en un dispositivo. Leer completo Aquí.
Según el libro que leo: Un Archivo es una colección de registros que abarcan entidades con un aspecto común y originadas para algún propósito particular.
Para mi un archivo es un conjunto de datos relacionados entre si bajo un objetivo común, ordenados homogéneamente.
Otra cosa que debemos entender es la diferencia que existe entre la RAM y los dispositivos secundarios; esta diferencia radica básicamente en dos aspectos:
- Capacidad: La Memoria RAM tiene un espacio limitado y por lo general los datos se procesan en ella mientras el programa este en funcionamiento, y cuando este se cierra se persisten los datos en una memoria secundaria ( como los discos rígidos).
- Tiempos de Acceso: Los dispositivos de almacenamiento secundario por lo general son mas lentos que la memoria RAM, y es por ello que no se trabaja directamente sobre estos medios de almacenamiento. Ya se que mas de uno estará diciendo que actualmente las memorias de estado solido, como los pen drive tiene un acceso casi igual a las RAM y con ellas se pueden alcanzar una velocidad semejante a las RAM, pero lo que no se toma en cuenta ahí es que estos medios son muy caros y que a nivel usuario tal vez son precios razonables pero cuando hablamos de grandes volúmenes de datos estos gastos por ahi no se justifican, ya que tendríamos que tener dispositivos de almacenamientos de estado solido del orden del tera byte.( de esto seguiremos hablando en post posteriores).
Bueno ya dimos el punta pie para iniciar con la parte mas linda de esto que es entender el porque y el como fue evolucionando el concepto de base de datos, ademas de que ya se acerca mas la parte que comenzar a tirar código que lo que mas me gusta XD.
Saludos a todos y Happy Haking } ; )
martes, 4 de noviembre de 2014
Categorías de usuarios de base de datos
Hoy les voy a hablar de un tema muy corto, definir los tipos de usuarios que pueden interactuar de forma directa o indirecta con una base de datos. Esto es esencial ya que el uso de una base de datos no solo se restringe al ámbito Informático.
Estos usuarios se clasifican en:
Estas son las distintas categorías de usuarios que podemos ver en entornos de base de datos.
Bueno estos post que fui haciendo eran mas para ponernos en contexto en el mundo de las bases de datos, espero que de aquí en mas los siguientes post sean mas prácticos y nos vayan ayudando a entender que hay desde los cimientos de una base de datos hasta conocer que es lo vemos cuando interactuamos con los mismos.
Saludos a todos, Happy Haking } ; )
Estos usuarios se clasifican en:
- Administrador de BD: Este usuario es el que define el esquema, los permisos de quienes van a acceder a la base de datos, definir las restricciones de integridad para mantener la consistencia de datos, es el que interactúa directamente con el SGBD (Sisema de Gestión de Base de Datos).
- Programadores de Aplicaciones: Son los informáticos que desarrollan los sistemas de Software.
- Usuarios sofisticados: Usuarios que realizan consultas a la base de datos, mediante un lenguaje de consultas (LMD), Por lo general estos usuarios son del ámbito informático.
- Usuarios especializados: Estos usuarios por lo general desarrollan aplicaciones no tradicionales ( Sistemas Expertos).
- Usuarios Normales: Estos son los usuarios finales de toda aplicación de software, estos interactuan de forma indirecta con la base de datos.
Estas son las distintas categorías de usuarios que podemos ver en entornos de base de datos.
Bueno estos post que fui haciendo eran mas para ponernos en contexto en el mundo de las bases de datos, espero que de aquí en mas los siguientes post sean mas prácticos y nos vayan ayudando a entender que hay desde los cimientos de una base de datos hasta conocer que es lo vemos cuando interactuamos con los mismos.
Saludos a todos, Happy Haking } ; )
Modelo de Datos
Hola a todos, hoy les quiero hablar de los modelos de datos.
Lo primero que hay que entender es ¿Qué es un modelo?.
Según mi comprensión un modelo es:"Un objecto o un algo de donde se va a usar sus definiciones de como esta compuesto y las definiciones de sus estructuras para reproducir otro objeto u ente abstracto similar a este.".
Según Internet un modelo es: "Cosa que sirve como pauta para ser imitada, reproducida o copiada.".
Según la Real Academia Española:"Esquema teórico, generalmente en forma matemática, de un sistema o de una realidad compleja, como la evolución económica de un país, que se elabora para facilitar su comprensión y el estudio de su comportamiento".
Una base de datos es una estructura compuesta por varios elementos y uno de ellos es el modelo de datos, siendo este fundamental y mas importante. Recordemos que según su definición este modelo va a describir como están formados los datos en si, su semántica, sus relaciones, sus restricciones de integridad y la consistencia de la misma.
Existen tres tipos de modelos de datos:
Modelos lógicos basados en objetos:
Estos modelos son utilizados para representar la información de un problema del mundo real con un esquema de alto nivel de abstracción. Dentro de estos modelos se destacan, el modelo de entidades y relaciones, y el modelo orientado a objetos.
El modelo de datos Entidad Relación (ER) está integrado por entidades y sus relaciones.Una entidad es un objeto de la realidad que se describe por un conjunto de características denominadas atributos. Actualmente, este modelo es el mas utilizado debido a su simplicidad y, al mismo tiempo, a su potencia expresiva.
El modelo orientado a objetos representa la realidad con objetos de similares características a los objetos del mundo real. En lo particular considero que este nivel es el mas adecuado para llevar adelante la mayoría de los desarrollos informáticos, debido a su gran escalabilidad.
Modelos lógicos basados en registros:
Estos modelos utilizan la estructura de datos de registros para almacenar la información en una Base de Datos, Existen tres modelos basados en registros: modelo jerárquico, modelo red y modelo relacional.
La esencia del modelo jerárquico consiste en utilizar registros vinculados entre si formando una estructura de árbol.
El modelo de red también utiliza registros vinculados que generan una estructura de grafo.
El modelo relacional utiliza un conjunto de tablas para representar la información. Una tabla se compone por filas, denominadas tuplas, y por columnas. Cada fila representa un registro, y cada columna, un campo o atributo. Estas tablas se vinculan entre si y establecen relaciones de integridad entre los datos que la componen. Este modelo es el más utilizado desde hace mas de tres decadas.
Esto es todo en cuanto a modelo de datos, para los que aún no les resulta del todo familiar los niveles de abstracción de Vista, lógicos y físicos, les recomiendo que se den una vuelta por mi anterior post que esta aquí.
Saludos a todos y Happy Haking } ; )
Lo primero que hay que entender es ¿Qué es un modelo?.
Según mi comprensión un modelo es:"Un objecto o un algo de donde se va a usar sus definiciones de como esta compuesto y las definiciones de sus estructuras para reproducir otro objeto u ente abstracto similar a este.".
Según Internet un modelo es: "Cosa que sirve como pauta para ser imitada, reproducida o copiada.".
Según la Real Academia Española:"Esquema teórico, generalmente en forma matemática, de un sistema o de una realidad compleja, como la evolución económica de un país, que se elabora para facilitar su comprensión y el estudio de su comportamiento".
Una base de datos es una estructura compuesta por varios elementos y uno de ellos es el modelo de datos, siendo este fundamental y mas importante. Recordemos que según su definición este modelo va a describir como están formados los datos en si, su semántica, sus relaciones, sus restricciones de integridad y la consistencia de la misma.
Existen tres tipos de modelos de datos:
- Modelo lógico basado en objetos.
- Modelo lógico basado en registros.
- Modelo Físico.
Modelos lógicos basados en objetos:
Estos modelos son utilizados para representar la información de un problema del mundo real con un esquema de alto nivel de abstracción. Dentro de estos modelos se destacan, el modelo de entidades y relaciones, y el modelo orientado a objetos.
El modelo de datos Entidad Relación (ER) está integrado por entidades y sus relaciones.Una entidad es un objeto de la realidad que se describe por un conjunto de características denominadas atributos. Actualmente, este modelo es el mas utilizado debido a su simplicidad y, al mismo tiempo, a su potencia expresiva.
El modelo orientado a objetos representa la realidad con objetos de similares características a los objetos del mundo real. En lo particular considero que este nivel es el mas adecuado para llevar adelante la mayoría de los desarrollos informáticos, debido a su gran escalabilidad.
Modelos lógicos basados en registros:
Estos modelos utilizan la estructura de datos de registros para almacenar la información en una Base de Datos, Existen tres modelos basados en registros: modelo jerárquico, modelo red y modelo relacional.
La esencia del modelo jerárquico consiste en utilizar registros vinculados entre si formando una estructura de árbol.
El modelo de red también utiliza registros vinculados que generan una estructura de grafo.
El modelo relacional utiliza un conjunto de tablas para representar la información. Una tabla se compone por filas, denominadas tuplas, y por columnas. Cada fila representa un registro, y cada columna, un campo o atributo. Estas tablas se vinculan entre si y establecen relaciones de integridad entre los datos que la componen. Este modelo es el más utilizado desde hace mas de tres decadas.
Esto es todo en cuanto a modelo de datos, para los que aún no les resulta del todo familiar los niveles de abstracción de Vista, lógicos y físicos, les recomiendo que se den una vuelta por mi anterior post que esta aquí.
Saludos a todos y Happy Haking } ; )
Niveles de visión de los datos
Hoy les vengo a hablar de los distintos niveles de visión que tienen los datos, en una base de datos.
Debido a que la interacción con las bases de datos se convirtió en una interacción muy compleja, por las estructuras de datos que cada vez se volvían mas y mas complejas, se comenzó a definir distintos niveles de abstracción para poder interactuar con la base de datos.
Estos niveles con:
Debido a que la interacción con las bases de datos se convirtió en una interacción muy compleja, por las estructuras de datos que cada vez se volvían mas y mas complejas, se comenzó a definir distintos niveles de abstracción para poder interactuar con la base de datos.
Estos niveles con:
- Nivel de Vista: Esta corresponde al nivel mas alto de las capas de abstracción, en esta capa solo se muestra lo que se desea ver de la base de datos. Es posible generar varias vistas, cada una de ellas de diferentes partes de la base de datos.
- Nivel Lógico: En esta vista se describe la base de datos completa, indicando los datos y las relaciones entre las mismas, el resultado de la misma es una estructura simple que puede conducir a estructuras mas complejas en el nivel físico.
- Nivel Físico: Este es el nivel mas bajo de la abstracción, en el cual se describe como realmente se almacenan los datos, detallando las estructuras mas complejas de bajo nivel.
Estos son los distintos niveles de abstracción en las bases de datos.
esto es todo por este articulo.
Saludos y Happy Haking } ; )
Suscribirse a:
Comentarios (Atom)
ZonedDateTime & OffsetDateTime
Hoy quiero compartirles algunas pruebas que realice con ZonedDateTime y OffsetDateTime. En primer lugar podemos decir que tenemos un ...
-
Migración MongoDB 2.4 -> 2.6 -> 3.2 (con replicas) Este post pretende mostrar los pasos a seguir para la migración del mongoDB 2.4 ...
-
Hoy quiero compartirles algunas pruebas que realice con ZonedDateTime y OffsetDateTime. En primer lugar podemos decir que tenemos un ...
-
Hola a todos, hace mucho que no me doy una vuelta por acá XD. Hoy tengo ganas de escribir del trabajo en equipo, hace poco me tope con u...