El dato es una representacin simblica (numrica, alfabtica, algortmica, etc)
de un atributo o variable cuantitativa. Los datos describen hechos empricos, sucesos y entidades. Es un valor o referente que recibe el computador por diferentes medios, los datos representan la informacin que el programador manipula en la construccin de una solucin o en el desarrollo de un algoritmo. Los datos aisladamente pueden no contener informacin humanamente relevante. Slo cuando un conjunto de datos se examina conjuntamente a la luz de un enfoque, hiptesis o teora se puede apreciar la informacin contenida en dichos datos. Los datos pueden consistir en nmeros, estadsticas o proposiciones descriptivas. Los datos convenientemente agrupados, estructurados e interpretados se consideran que son la base de la informacin humanamente relevante que se pueden utilizar en la toma de decisiones, la reduccin de la incertidumbre o la realizacin de clculos. Es de empleo muy comn en el mbito informtico y, en general, prcticamente en cualquier investigacin cientfica. En programacin, un dato es la expresin general que describe las caractersticas de las entidades sobre las cuales opera un algoritmo. En Estructura de datos, es la parte mnima de la informacin.
Que es una base de datos Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemticamente para su posterior uso. En este sentido; una biblioteca puede considerarse una base de datos compuesta en su mayora por documentos y textos impresos en papel e indexados para su consulta. Actualmente, y debido al desarrollo tecnolgico de campos como la informtica y la electrnica, la mayora de las bases de datos estn en formato digital (electrnico), y por ende se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
Existen programas denominados sistemas gestores de bases de datos, abreviado DBMS, que permiten almacenar y posteriormente acceder a los datos de forma rpida y estructurada. Las propiedades de estos DBMS, as como su utilizacin y administracin, se estudian dentro del mbito de la informtica.
Las aplicaciones ms usuales son para la gestin de empresas e instituciones pblicas; Tambin son ampliamente utilizadas en entornos cientficos con el objeto de almacenar la informacin experimental. Computadora Una computadora o computador (del ingls computer y este del latn computare - 'calcular'), tambin denominada ordenador (del francs ordinateur, y este del latn ordinator), es una mquina electrnica que recibe y procesa datos para convertirlos en informacin til. Una computadora es una coleccin de circuitos integrados y otros componentes relacionados que pueden ejecutar con exactitud, rapidez y de acuerdo a lo indicado por un usuario o automticamente por otro programa, una gran variedad de secuencias o rutinas de instrucciones que son ordenadas, organizadas y sistematizadas en funcin a una amplia gama de aplicaciones prcticas y precisamente determinadas, proceso al cual se le ha denominado con el nombre de programacin y al que lo realiza se le llama programador. La computadora adems de la rutina o programa informtico, necesita de datos especficos (a estos datos, en conjunto, se les conoce como "Input" en ingls o de entrada) que deben ser suministrados, y que son requeridos al momento de la ejecucin, para proporcionar el producto final del procesamiento de datos, que recibe el nombre de "output" o de salida. La informacin puede ser entonces utilizada, reinterpretada, copiada, transferida, o retransmitida a otra(s) persona(s), computadora(s) o componente(s) electrnico(s) local o remotamente usando diferentes sistemas de telecomunicacin, que puede ser grabada, salvada o almacenada en algn tipo de dispositivo o unidad de almacenamiento.
La caracterstica principal que la distingue de otros dispositivos similares, como la calculadora no programable, es que es una mquina de propsito general, es decir, puede realizar tareas muy diversas, de acuerdo a las posibilidades que brinde los lenguajes de programacin y el hardware. Que es un procesador: El procesador es el cerebro del sistema, encargado de procesar toda la informacin. Bsicamente, es el "cerebro" de la computadora. Prcticamente, todo pasa por l, ya que es el responsable de ejecutar todas las instrucciones existentes. Mientras ms rpido vaya el procesador, ms rpido sern ejecutadas las instrucciones. Es el componente donde es usada la tecnologa ms reciente. Los mayores productores de procesadores en el mundo, son grandes empresas con tecnologa para fabricar procesadores competitivos para computadoras: Intel (que domina el mercado), AMD, Va e IBM, que fabrica procesadores para otras empresas, como Transmeta. Algunos de los modelos ms modernos, y los cuales cuentan con la tecnooga ms avanzada de la actualidad son el Intel Core Sandy Bridge en sus variabtes i3, i5 e i7, el AMD Fusion y FX, los cuales pueden incorporar hasta 8 ncleos. Los anteriormente mencionados cubren la mayora de las necesidades en computadoras de escritorio, mientras que para dispositivos porttiles como celulares y tablets podemos contar con procesadores ARM, Atom, Tegra2 y Snapdragon. El procesador es el componente ms complejo y frecuentemente ms caro, pero l no puede hacer nada solo. Como todo cerebro, necesita de un cuerpo, que es formado por los otros componentes de la computadora, incluyendo la memoria, el disco duro, la placa de vdeo y de red, monitor, teclado y mouse.
NIVELES DE ABSTRACCIN DE UNA BASE DE DATOS: 1.- En el nivel interno. Este esquema se especifica mediante un modelo fsico y describe todos los detalles para el almacenamiento de la base de datos, as como los mtodos de acceso. Es el nivel ms cercano al almacenamiento fsico de los datos. Permite escribirlos tal y como estn almacenados en el ordenador. En este nivel se disean los archivos que contienen la informacin, la ubicacin de los mismos y su organizacin, es decir se crean los archivos de configuracin. 2.- En el nivel conceptual. Este esquema oculta los detalles de las estructuras de almacenamiento y se concentra en describir entidades, atributos, relaciones, operaciones de los usuarios y restricciones. En este nivel se representan los datos que se van a utilizar sin tener en cuenta aspectos como lo que representamos en el nivel interno. 3.- En el nivel externo. Se describen varios esquemas externos o vistas de usuario. Cada esquema externo describe la parte de la base de datos que interesa a un grupo de usuarios determinados y ocultos a ese grupo el resto de la base de datos. Es el ms cercano al usuario. En este nivel se describen los datos o parte de los datos que ms interesan a los usuarios. Una base de datos especfica tiene un nico nivel interno y un nico nivel conceptual pero puede tener varios niveles externos. Modelo entidad-relacin Un diagrama o modelo entidad-relacin (a veces denominado por sus siglas en ingls, E-R "Entity relationship", o del espaol DER "Diagrama de Entidad Relacin") es una herramienta para el modelado de datos que permite representar las entidades relevantes de un sistema de informacin as como sus interrelaciones y propiedades. El Modelo Entidad-Relacin. Se elabora el diagrama (o diagramas) entidad-relacin. Se completa el modelo con listas de atributos y una descripcin de otras restricciones que no se pueden reflejar en el diagrama.
El modelado de datos no acaba con el uso de esta tcnica. Son necesarias otras tcnicas para lograr un modelo directamente implementarle en una base de datos. Brevemente: Permite mostrar resultados entre otras entidades pertenecientes a las existentes de manera que se encuentre la normatividad de archivos que se almacenaran Transformacin de relaciones mltiples en binarias. Normalizacin de una base de datos de relaciones (algunas relaciones pueden transformarse en atributos y viceversa). Conversin en tablas (en caso de utilizar una base de datos relacional). Entidad Representa una cosa u "objeto" del mundo real con existencia independiente, es decir, se diferencia unvocamente de otro objeto o cosa, incluso siendo del mismo tipo, o una misma entidad. Algunos Ejemplos: Una persona. (Se diferencia de cualquier otra persona, incluso siendo gemelos). Un automvil. (Aunque sean de la misma marca, el mismo modelo,..., tendrn atributos diferentes, por ejemplo, el nmero de chasis). Una casa (Aunque sea exactamente igual a otra, an se diferenciar en su direccin). Una entidad puede ser un objeto con existencia fsica como: una persona, un animal, una casa, etc. (entidad concreta); o un objeto con existencia conceptual como: un puesto de trabajo, una asignatura de clases, un nombre,etc. (entidad abstracta). Una entidad est descrita y se representa por sus caractersticas o atributos. Por ejemplo, la entidad Persona las caractersticas: Nombre, Apellido, Gnero, Estatura, Peso, Fecha de nacimiento. Atributos Los atributos son las caractersticas que definen o identifican a una entidad. Estas pueden ser muchas, y el diseador solo utiliza o implementa las que considere ms relevantes. Los atributos son las propiedades que describen a cada entidad en un conjunto de entidades. En un conjunto de entidades del mismo tipo, cada entidad tiene valores especficos asignados para cada uno de sus atributos, de esta forma, es posible su identificacin unvoca.
Ejemplos: A la coleccin de entidades alumnos, con el siguiente conjunto de atributos en comn, (id, nombre, edad, semestre), pertenecen las entidades: (1, Sofa, 38 aos, 2) (2, Josefa, 19 aos, 5) (3, Carlos, 20 aos, 2) ... Cada una de las entidades pertenecientes a este conjunto se diferencia de las dems por el valor de sus atributos. Ntese que dos o ms entidades diferentes pueden tener los mismos valores para algunos de sus atributos, pero nunca para todos. En particular, los atributos identificativos son aquellos que permiten diferenciar a una instancia de la entidad de otra distinta. Por ejemplo, el atributo identificativo que distingue a un alumno de otro es su nmero de id. Para cada atributo, existe un dominio del mismo, este hace referencia al tipo de datos que ser almacenado o a restricciones en los valores que el atributo puede tomar (cadenas de caracteres, nmeros, solo dos letras, solo nmeros mayores que cero, solo nmeros enteros...). Cuando algn atributo correspondiente a una entidad no tiene un valor determinado, recibe el valor nulo, bien sea porque no se conoce, porque no existe o porque no se sabe nada al respecto del mismo. Modelo relacional El modelo relacional para la gestin de una base de datos es un modelo de datos basado en la lgica de predicados y en la teora de conjuntos. Es el modelo ms utilizado en la actualidad para modelar problemas reales y administrar datos dinmicamente. Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San Jos (California), no tard en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de relaciones. Estas relaciones podran considerarse en forma lgica como conjuntos de datos llamados tuplas. Pese a que sta es la teora de las bases de datos relacionales creadas por Edgar Frank Codd, la mayora de las veces se conceptualiza de una manera ms fcil de imaginar, esto es, pensando en cada relacin como si fuese una tabla que est
compuesta por registros (cada fila de la tabla sera un registro o tupla), y columnas (tambin llamadas campos).
Descripcin En este modelo todos los datos son almacenados en relaciones, y como cada relacin es un conjunto de datos, el orden en el que stos se almacenen no tiene relevancia (a diferencia de otros modelos como el jerrquico y el de red). Esto tiene la considerable ventaja de que es ms fcil de entender y de utilizar por un usuario no experto. La informacin puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poder para administrar la informacin. Este modelo considera la base de datos como una coleccin de relaciones. De manera simple, una relacin representa una tabla que no es ms que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila tambin se puede denominar tupla o registro y a cada columna tambin se le puede llamar campo o atributo. Para manipular la informacin utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formales el lgebra relacional y el Clculo relacional. El lgebra relacional permite describir la forma de realizar una consulta, en cambio, el Clculo relacional slo indica lo que se desea devolver.
Esquema Un esquema contiene la definicin de una estructura (generalmente relaciones o tablas de una base de datos), es decir, determina la identidad de la relacin y qu tipo de informacin podr ser almacenada dentro de ella; en otras palabras, el esquema contiene los metadatos de la relacin. Todo esquema constar de:
Nombre de la relacin (su identificador). Nombre de los atributos (o campos) de la relacin y sus dominios; el dominio de un atributo o campo define los valores permitidos para el mismo, equivalente al tipo de dato por ejemplo character, integer, date, string... Instancias Una instancia de manera formal es la aplicacin de un esquema a un conjunto finito de datos. En palabras no tan tcnicas, se puede definir como el contenido de una tabla en un momento dado, pero tambin es valido referirnos a una instancia
cuando trabajamos o mostramos nicamente un subconjunto de la informacin contenida en una relacin o tabla, como por ejemplo:
Ciertos caracteres y nmeros (una sola columna de una sola fila). Algunas o todas las filas con todas o algunas columnas Cada fila es una tupla. El nmero de filas es llamado cardinalidad. El nmero de columnas es llamado aridad o grado. Base de datos relacional Base de datos relacional Una base de datos relacional es un conjunto de una o ms tablas estructuradas en registros (lneas) y campos (columnas), que se vinculan entre s por un campo en comn, en ambos casos posee las mismas caractersticas como por ejemplo el nombre de campo, tipo y longitud; a este campo generalmente se le denomina ID, identificador o clave. A esta manera de construir bases de datos se le denomina modelo relacional. Estrictamente hablando el trmino se refiere a una coleccin especfica de datos pero a menudo se le usa, en forma errnea como sinnimo del software usado para gestionar esa coleccin de datos. Ese software se conoce como SGBD (sistema gestor de base de datos) relacional o RDBMS (del ingls relational database management system). Las bases de datos relacionales pasan por un proceso al que se le conoce como normalizacin de una base de datos, el cual es entendido como el proceso necesario para que una base de datos sea utilizada de manera ptima. Entre las ventajas de este modelo estn: Garantiza herramientas para evitar la duplicidad de registros, a travs de campos claves o llaves. Garantiza la integridad referencial: As al eliminar un registro elimina todos los registros relacionados dependientes. Favorece la normalizacin por ser ms comprensible y aplicable.
Estructura de los Diferentes SMBD Un SMBD es el sistema manejador de las bases de Datos, aqu se muestra la estructura del funcionamiento interno de algunos manejadores. Ejemplos: - Oracle - SQL Server - My SQL - PostgreSQL
ORACLE Oracle es un sistema de administracin de base de datos (o RDBMS), fabricado por Oracle Corporation. Se considera a Oracle como uno de los sistemas de bases de datos ms completos, destacando su:
Soporte de transacciones. Estabilidad. Escalabilidad. Es multiplataforma. Su mayor defecto es su enorme precio, que es de varios miles de euros (segn versiones y licencias). Otro aspecto que ha sido criticado por algunos especialistas es la seguridad de la plataforma, y las polticas de suministro de parches de seguridad. Contenido: ESTRUCTURA DE ORACLE La estructura de Oracle tiene tres componentes bsicos, las estructuras de memoria para almacenar los datos y el cdigo ejecutable, los procesos que corren
el sistema de base de datos y las tareas de cada usuario conectado a la base de datos y los archivos que sirven para el almacenamiento fsico, en disco, de la informacin de la base de datos.
SQLServer Microsoft SQL Server es un sistema administrador para Bases de Datos relacionales basadas en la arquitectura Cliente / Servidor (RDBMS) que usa Transact-SQL para mandar peticiones entre un cliente y el SQL Server. Constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, MySQL, PostgreSQL entre otros. Caractersticas: Soporte de transacciones. Escalabilidad, estabilidad y seguridad. Soporta procedimientos almacenados. Incluye tambin un potente entorno grfico de administracin, que permite el uso de comandos
DDL y DML grficamente. Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el servidor y los terminales o clientes de la red slo acceden a la informacin. Adems permite administrar informacin de otros servidores de datos.
Contenido: - Estructura SQLServer - Arquitectura RDBMS - Arquitectura Cliente-Servidor - Interfaces de Programacin Aplicables SQL Server usa una estructura de comunicacin por capas para aislar aplicaciones internas de red y protocolos. Esta estructura permite desplegar la misma aplicacin en diferentes ambientes de red. Los componentes en la estructura de comunicacin incluyen:
APLICACIN: Una aplicacin es desarrollada usando una aplicacin de interfaz de programacin para Base de Datos (API). La aplicacin no tiene conocimiento de los protocolos internos de red usados para la comunicacin con SQL Server. INTERFAZ DE LA BASE DE DATOS: Esta es una interfaz usada por una aplicacin para mandar peticiones a SQL Server y procesar los resultados devueltos por SQL Server. LIBRERA DE RED: Este es un componente de Software de comunicacin que empaqueta las peticiones de la Base de Datos y los resultados para transmitirlos por medio del protocolo de red apropiado. Una librera de Red, tambin conocida como Net-Library, debe ser instalada tanto en el cliente como en el servidor. Tanto Clientes como Servidores pueden usar ms de una Net-Library al mismo tiempo, pero deben usar una Librera de Red comn para comunicarse satisfactoriamente. SQL Server soporta protocolos de red tales como TCP/IP, Novell, IPX/SPX, Banyan VINES/IP, Named Pipes,y Apple Talk ADSP. TABULAR DATA STREAM: (TDS) Es un protocolo por niveles de aplicacin usado para la comunicacin entre un Cliente y SQL Server. Los paquetes TDS son encapsulados en los paquetes de red hechos por la protocol stak usada por las Net-Libraries. SERVICIOS OPEN DATA: Este es un componente de SQL Server que se encarga de las conexiones de red, pasando las peticiones del cliente al SQL Server para
procesar y regresar cualquier resultado a los Clientes. Open Data escucha automticamente en todas las Net-Libraries que estn instaladas en el servidor.
ARQUITECTURA RDBMS Arquitectura de servidor simtrico y paralelo con balanceo automtico de carga en mltiples procesadores. Kernel multithread real para mejor rendimiento transaccional y escalabilidad. Soporte grandes bases de datos (VLDB) (+1 TB). Completo proceso transaccional interactivo con rollback automtico y recuperacin de roll-forward. Optimizador de consultas mejorado basado en coste. Checkpointing mejorado para un mejor throughput de datos y tiempo de respuesta. Soporte E/S asncrono para acceso en paralelo a mltiples dispositivos de disco para un mejor throughput. Bloqueo a nivel fija y pgina con escalacin de bloqueos; resolucin automtica de deadlocks. Datos distribuidos y replicacin. Llamadas a procedimientos remotos servidor-a-servidor (procedimientos almacenados remotos).
Replicacin asncrona o contnua basada en registros, o sincronizacin planificada de tablas point-in-time. Configuracin de replicacin grfica y caractersticas de gestin. Replicacin de subscriptores ODBC, incluyendo IBM DB2, ORACLE, SYBASE y Microsoft Access. Ei Distributed Transaction Coordinator gestiona transacciones que involucran a dos o ms servidores SQL (proceso Two Phase Commit 2PC) transparente. Replicacin de tipos de datos Texto e Imagen. Data Warehousing y amplio soporte de datos. Ejecucin transaccional en paralelo, carga e indexacin de datos , y verificacin de integridad. Backup/restore en paralelo de alta velocidad que soporta hasta 32 discos o dispositivos de cinta. Las extensiones de consulta OLAP, CUBE, y ROLLUP permiten conjuntos de resultados multidimensionales. EXEC e INTO ahora permiten almacenar en tablas resultados desde procedimientos almacenados. Copias de seguridad en cinta y recuperacin de tablas individuales. Reconstruccin de ndice sin realizar dropping y recreacin del ndice. ARQUITECTURA CLIENTE SERVIDOR
SQL Server usa la arquitectura Cliente / Servidor para separar la carga de trabajo en tareas que corran en computadoras tipo Servidor y tareas que corran en computadoras tipo Cliente: El Cliente es responsable de la parte lgica y de presentar la informacin al usuario. Generalmente, el cliente corre en una o ms computadoras Cliente, aunque tambin puede correr en una computadora Servidor con SQL Server. SQL Server administra Bases de Datos y distribuye los recursos disponibles del servidor (tales como memoria, operaciones de disco, etc) entre las mltiples peticiones. La arquitectura Cliente /Servidor permite desarrollar aplicaciones para realizar en una variedad de ambientes. INTERFACES DE PROGRAMACIN DE APLICACIONES
Una Base de Datos API define como escribir una aplicacin para conectar una Base de Datos y pasar comandos a la Base de Datos. SQL Server provee soporte nativo para dos clases principales de Bases de Datos API, lo cual define la interfaz de objetos de datos que se puede usar. Las Bases de Datos API se usan para tener mayor control sobre el comportamiento y desarrollo de las aplicaciones.
OLE DB: Esta es una interfaz de acceso a datos basada en el COM (Component Object Model). Soporta aplicaciones escritas usando OLE DB o Interfaces de Objetos de Datos basadas en OLE DB. Puede accesar a la informacin en SQL Server, otras Bases de Datos relacionales y otras fuentes de datos.
OPEN DATABASE CONNECTIVITY: (ODBC) Es una interfaz por capas. Accesa directamente al protocolo SQL Server TDS y soporta aplicaciones o componentes que estn escritos usando ODBC o interfaces basadas en ODBC. Puede accesar a los datos en SQL Server, y otras Bases de Datos relacionales, pero generalmente no puede ser usado para accesar otras fuentes de datos. MySQL MySQL es un sistema de gestin de base de datos relacional, multihilo y multiusuario una subsidiaria de Sun Microsystems y sta a su vez de Oracle Corporation, desde abril de 2009 desarrolla MySQL como software libre en un esquema de licenciamiento dual.
Por un lado se ofrece bajo la GNU PL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia especfica que les permita este uso. Est desarrollado en su mayor parte en ANSI C. Contenido: - Estructura de MySQL
ESTRUCTURA MySQL
En la siguiente figura se muestra la estructura interna de MySQL, ms adelante se describe el funcionamiento de cada una de sus partes. A continuacin se enumeran cada parte de la estructura de MySQL mostradas en la figura. Contenido: Aplicaciones e Interfaces
- Procesador Query - Manejador de Transaccin y Recuperacin - Manejador de Almacenado
Aplicaciones e Interfaces La capa de aplicacion de MySQL es donde los clientes y los usuarios obran recprocamente con el MySQL RDBMS.
Hay tres componentes en esta capa como puede ser visto en el diagrama acodado de la arquitectura de MySQL en la siguiente imagen.
Estos componentes ilustran las diversas clases de usuarios que puedan obrar recprocamente con el MySQL RDBMS, que son los administradores, los clientes y los usuarios de la pregunta. Los administradores utilizan el interfaz y las utilidades administrativos Procesador Query
La mayora extensa de interacciones en el sistema ocurre cuando un usuario desea visin o manipular los datos subyacentes en el almacenaje.A continuacin se muestra la estructura del Procesador Query en MySQL y ms adelante la explicacin de cada una de las partes que lo componen.
Precompiler Encajado de DML Cuando una peticin se recibe de un cliente en la capa de uso, es la responsabilidad del precompiler encajado de DML (lengua de manipulacin de datos) extraer las declaraciones relevantes del SQL encajadas en los comandos del API del cliente, o traducir al cliente ordena en las declaraciones correspondientes del SQL. - Recopilador de DDL Las peticiones de tener acceso a las bases de datos de MySQL recibidas de un administrador son procesadas por el recopilador de DDL (idioma de definicin de datos). El recopilador de DDL compila los comandos (que son declaraciones del SQL) de obrar recprocamente directamente con la base de datos. El administrador y las utilidades administrativas no exponen un interfaz, y por lo tanto se ejecutan directamente al servidor de MySQL. Por lo tanto, el precompiler encajado de DML no lo procesa, y ste explica la necesidad de un recopilador de DDL. - Programa de anlisis de Query El paso siguiente implica el analizar de la pregunta de MySQL. En esta etapa, el objetivo del programa de anlisis de la pregunta es crear una estructura arborescente del anlisis basada en la pregunta para poderla entender fcilmente por los otros componentes ms adelante en la tubera. -Preprocesador Query La pregunta analiza el rbol, segn lo obtenido del programa de anlisis de la pregunta, despus es utilizada por el preprocesador de la pregunta comprobar el sintaxis del SQL y comprobar la semntica de la pregunta de MySQL para determinarse si la pregunta es vlida.
- Encargado De Security/Integration Una vez que la pregunta de MySQL se juzgue para ser vlida, el servidor de MySQL necesita comprobar el Access Control List para saber si hay el cliente. - Optimizador De Query MySQL utiliza el optimizador de la pregunta para ejecutar preguntas del SQL tan rpidamente como sea posible. Consecuentemente, sta es la razn por la que el funcionamiento de MySQL es rpido comparado al otro RDBMS. La tarea del optimizador de la pregunta de MySQL es analizar la pregunta procesada para considerar si puede aprovecharse de algunas optimizaciones que permitan que procese la pregunta ms rpidamente.
- Motor De la Ejecucin Una vez que el optimizador de la pregunta de MySQL haya optimizado la pregunta de MySQL, la pregunta se puede entonces ejecutar contra la base de datos. Esto es realizada por el motor de la ejecucin de la pregunta, que despus procede a ejecutar las declaraciones del SQL y tiene acceso a la capa fsica de la base de datos de MySQL.
Manejador de Transaccin y Recuperacin La estructura del manejador de transaccin y recuperacin de MySQL se muestra en la siguiente imagen, y a continuacin se explica su funcionamiento.
- Gestor de transacciones Una transaccin es una sola unidad del trabajo que tiene unos o ms comandos de MySQL en ella. El gestor de transacciones es responsable de cerciorarse de que la transaccin est registrada y ejecutada atmico. - Encargado Del Control Concurrencia apropiados de datos en la base de datos del encargado de recurso.
Una vez que se adquiera la cerradura, slo las operaciones en una transaccin pueden manipular los datos. Si una diversa transaccin intenta manipular los mismos datos bloqueados, el encargado del concurrencia-control rechaza la peticin hasta que la primera transaccin es completa. - Encargado Del Registro El encargado del registro es responsable de registrar la operacin de e mismo ejecutada en la base de datos. Hace tan almacenando el disco del entrar a travs del encargado del almacenador intermediario. Las operaciones en el registro se almacenan como comandos de MySQL. As, en el caso de un fallo del sistema, ejecutar cada comando en el registro traer detrs la base de datos a su estado estable pasado.
- Encargado De la Recuperacin El encargado de la recuperacin es responsable de restaurar la base de datos a su estado estable pasado. Hace tan usando el registro para la base de datos, que se adquiere del encargado del almacenador intermediario, y ejecutando cada operacin en el registro. Desde los registros del encargado del registro todas las operaciones realizadas en la base de datos (del principio de la vida de la base de datos), ejecutando cada comando en el fichero de diario recuperaran la base de datos a su estado estable pasado. Manejador de Almacenado El almacenaje se hace fsicamente en un cierto tipo de almacenaje secundario, no obstante el acceso dinmico de este medio no es prctico. As, todo el trabajo se hace a travs de un nmero de almacenadores intermediarios. Los almacenadores intermediarios residen en memoria principal y virtual y son manejados por un encargado del almacenador intermediario. Este encargado trabaja conjuntamente con dos otras entidades del encargado relacionadas con el almacenaje: el encargado de recurso y el encargado del almacenaje. A continuacin se muestra la estructura:
- Encargado Del Almacenaje
En el nivel ms bajo existe el encargado del almacenaje. El papel del encargado del almacenaje es mediar peticiones entre el encargado del almacenador intermediario y el almacenaje secundario. El encargado del almacenaje hace peticiones a travs del regulador de disco subyacente (y a veces del sistema operativo) de recuperar datos del disco fsico y los divulga de nuevo al encargado del almacenador intermediario. - Encargado Del Buffer El papel del encargado del almacenador intermediario es asignar los recursos de la memoria para el uso de la visin y los datos de la manipulacin. El encargado del almacenador intermediario toma en peticiones ajustadas a formato y decide cunto memoria a asignar por almacenador intermediario y cunta almacenadores intermediarios a asignar por la peticin. Todas las peticiones se hacen del encargado de recurso. - Encargado De Recurso El propsito del encargado de recurso es aceptar peticiones del motor de la ejecucin, puesto les en peticiones de la tabla, y solicita las tablas del encargado del almacenador intermediario. El encargado de recurso recibe referencias a los datos dentro de la memoria del encargado del almacenador intermediario y vuelve estos datos a las capas superiores.
PostgreSQL PostgreSQL es un potente sistema de bases de datos relacional libre, liberado bajo licencia BSD. Tiene ms de 15 aos de activo desarrollo y arquitectura probada que se ha ganado una muy buena reputacin por su confiabilidad e integridad de datos. Funciona en todos los sistemas operativos importantes, incluyendo LINUX, UNIX, Mac OSX, Solaris y Windows. Contenido: La DBMS por dentro. Almacenamiento y Organizacin de los Datos. Los ndices. LA DBMS POR DENTRO
PostgreSQL tiene una arquitectura que involucra muchos estilos, en su nivel ms alto es un esquema clsico cliente-servidor, mientras que el acceso a la data es un esquema en capas.
El Libpq es el responsable de manipular las comunicaciones entre la aplicacin cliente y el postmaster (servicio del PostgreSQL en el servidor). El server esta compuesto por 2 grandes subsistemas, el Postmaster que es el responsable de aceptar las comunicaciones con el cliente y autentificar y dar acceso. El Postgre se encarga de la administracin de los querys y comandos enviados por el cliente. PostgreSQL trabaja bajo el concepto de process per user, eso significa un solo procesos cliente por conexin. Tanto el Postmaster como el Postgre deben estar junto en el mismo servidor siempre. El Storage Manager es responsable de la administracin general de almacenamiento de los datos, controla todos lostrabajos del back-end incluido la administracin del buffer, archivos, bloqueos y control de la consistencia de la informacin. ALMACENAMIENTO Y ORGANIZACIN DE LOS DATOS Los datos siempre se van a guardar en disco (esto puede no ser literalmente un HD). Esto genera un intenso trabajo de I/O, cuando leemos la data la sacamos del disco para pasarla a la RAM, cuando escribimos la bajamos de la RAM al disco.
La data en cualquier DBMS se almacena en pequeos bloques de disco llamadas pginas.img3.png Ests pginas se guardan en un disco en diferentes posiciones fsicas, mucha dispersin crear uno desempeo en el dbms, en sistemas de almacenamiento como los HD (osea casi el 99%) esto es un gran problema. Afortunadamente ahora existen soluciones basadas en Discos de Estado Slido que ayudan con este problema. El tamao de una pgina en PostgreSQL puede ser tan pequeo como 8k (por defecto) hasta un mximo de 32k y no se permite que un tupla pueda ser mas grande que una pgina de tamao. Cuando se necesita guardar data muy grande (un video por ejemplo) la data es comprimida y partida en pequeas filas que se guardan en una tabla paralela, esto es transparente para el usuario. Las pginas contienen items los cuales apuntan a tuplas o entradas de ndices junto con metadata Para el caso de PostgreSQL las operaciones de L/E primero se consulta al Buffer Manager (memoria RAM) si contiene la pgina.
PostgreSQL posee un solo Storage Manager (MySql tiene 5 o ms por ejemplo), este esta compuesto por varios mdulos que proveen administracin de las transacciones y acceso a los objetos de la base de datos. Los mdulos que componen el Storage Manager son:
Transaction System Relational Storage Time Management Concurrency Control y Timestamp Management Record Acces
PostgreSQL siempre esta aadiendo data, la data modificada o borrada realmente no se modifica o se borra, las pginas donde ellas estn almacenadas se marca como no visible y se inserta un nuevo registro completo con un clon de toda la data.
Esto hace que la base de datos ocupe mucho espacio y afecta el tiempo de acceso a la data.
LOS NDICES Cada tipo de bsqueda tienen un tipo de ndice adecuado para trabajarla, bsicamente un es un archivo donde esta parte de la data y estructura de una tabla con las search key de bsqueda. En simple como es un ndice:
La forma clsica es buscar por extremos y medios (bsqueda binaria), pero esto hace que sea altamente costosa la bsqueda, entonces es preferible organizar los ndices en estructuras ms eficientes como los rboles.
La cantidad de elementos en un nodoes delimitado por una constante predefinida, exactamente no deben haber mas de 2 veces elementos que la constante.
Los nuevos elementos son insertados en el nodo que le corresponda segn su valor, en caso de que el nodo haya copado su capacidad mxima de elementos entonces el nodo se divide en 2 partes iguales y se crea una hoja superior con los ndices apropiados. Para borrar un elemento se realiza la bsqueda del mismal llegar al nodo que lo contiene se bloquea.
El nodo se trabaja en memoria sacando el elemento a borrar y se reescribe totalmente el nodo, ocasionalmente el nodo queda con menos elementos que la cantidad de la constante definida de elementos mximos. Caractersticas de los ndices: Segn la estructura de ordenamiento del mismo: Tree-based (Btree, Rtree), hash-based, other (Tsearch2). Segn el ordenamiento fsico de la data. Clustered vs. Unclustered Indexes. Segn la asociacin con la data. primary vs. secondary indexes, manejo de duplicados. Segn la cantidad de columnas que incorpore en la search key. Multi-part key = Composite Indexes. Los ndices clusterizados o no clusterizados.
Un ndice clusterizado es aquel donde la data esta ordenada o cercanamente ordenada fsicamente con las entradas de la data del ndice. Una tabla solo puede estar clusterizada solo por un ndice, no ms. Son altamente apreciados en bsquedas por rangos, pero su costo de mantenimiento es alto debido al reordenamiento que siempre tiene que hacerse a la data.