Download Integrantes Isabel Herrera Jaime Aguilar Jesús Porras Luz Cala
Document related concepts
Transcript
Integrantes Isabel Herrera Jaime Aguilar Jesús Porras Luz Cala DBMS Agenda ¿Qué es Oracle? •POSTGRE SQL •SQL SERVER •ORACLE *¿Qué es Oracle? * Historia * Arquitectura •MySQL La arquitectura Oracle es básicamente una herramienta cliente-servidor para la gestión de base de datos creada por Oracle Corporation. Es considerado el SGBD más complejo por poseer: •Soporte de transacciones •Estabilidad •Escalabilidad •Es multiplataforma Es un producto vendido a nivel mundial, aunque la gran potencia que tiene y su elevado precio hace que sólo se vea en empresas muy grandes y multinacionales. DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE *¿Qué es Oracle? * Historia * Arquitectura •MySQL HISTORIA La compañía Oracle surgió hace 25 años cuando Larry Ellison y sus co-fundadores, Bob Miner y Ed Oates se dieron cuenta del potencial existente en el modelo de la base de datos relacional. De esta compañía surgió el Relational Software (Actual arquitectura Oracle) gracias a los estudios sobre SGDB de George Koch. Para ese entonces era el sistema más complejo desde el punto de vista técnico, debido a su filosofía de las bases de datos relacionales. DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE *¿Qué es Oracle? * Historia * Arquitectura •MySQL Arquitectura Consiste de varios procesos corriendo donde reside la instancia, los espacios de memoria dedicados a ejecutar procesos específicos y la base de datos física con sus archivos de control, de datos y de transacciones. DBMS Agenda •POSTGRE SQL •SQL SERVER La Instancia de Oracle Una instancia de Oracle está conformada por varios procesos (procesos de usuario y los que se ejecutan en el background de Oracle) y espacios de memoria compartida. •ORACLE * Arquitectura 1.La Instancia *SGA *Buffer cache *Buffer redo log *Shared Pool 2.Procesos 3.Base de datos •MySQL •El Área Global del Sistema (SGA) Es un área de memoria compartida que se utiliza para almacenar información de control y de datos de la instancia. DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura 1.La Instancia *SGA *Buffer cache *Buffer redo log *Shared Pool 2.Procesos 3.Base de datos •MySQL •El buffer de caché (database buffer cache) Almacena los bloques de datos utilizados recientemente. Al utilizarse este buffer se reducen las operaciones de entrada y salida. •El buffer de redo log Guarda los cambios efectuados en la base de datos. Estos buffers escriben en el archivo físico de redo log tan rápido como se pueda sin perder eficiencia. DBMS Agenda •POSTGRE SQL •SQL SERVER •El área shared pool Esta área almacena estructuras de memoria compartida, tales como las áreas de código SQL compartido e información interna del diccionario. •ORACLE * Arquitectura 1.La Instancia *SGA *Buffer cache *Buffer redo log *Shared Pool 2.Procesos 3.Base de datos •MySQL 1. El caché de biblioteca se utiliza para almacenar código SQL compartido. 2. El caché del diccionario de datos está conformado por un grupo de tablas y vistas que se identifican la base de datos. DBMS Agenda Procesos de la Instancia •POSTGRE SQL •DBWR (database writer): escribe en disco . •SQL SERVER •LGWR (log writer): escribe información desde el buffer de log hacia el archivo redo log. •ORACLE •CKPT (checkpoint): advierte al proceso DBWR de efectuar * Arquitectura un proceso de actualización en el disco de los datos 1.La Instancia mantenidos en memoria. *Procesos *PGA •PMON (process monitor): Su misión es monitorizar los procesos del servidor y tomar acciones correctivas cuando alguno de ellos se interrumpe en forma abrupta. 2.Procesos 3.Base de datos •MySQL DBMS Agenda •POSTGRE SQL •SQL SERVER •SMON (system monitor): Levanta una instancia cuando se le da la instrucción de partida. Enseguida limpia los segmentos temporales y recupera las transacciones interrumpidas. •ARCH (archiver): respalda la información almacenada en los archivos redo log cuando éstos se llenan. Este proceso está siempre activo con el modo ARCHIVELOG. •ORACLE * Arquitectura 1.La Instancia *Procesos *PGA 2.Procesos 3.Base de datos •MySQL El Área Global de Programas (PGA) Esta área de memoria contiene datos e información de control para los procesos que se ejecutan en el servidor de Oracle. DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura 1.La Instancia 2.Procesos *Usuarios *Servidores 3.Base de datos •MySQL •Procesos de Usuarios: Cuando un usuario se conecta a la base de datos, se crea un proceso de usuario que se encarga de efectuar el código de aplicación del usuario y manejar su perfil con sus variables de ambiente. •Procesos de Servidores: Ejecutan las ordenes SQL de los usuarios y llevan los datos al database buffer cache para que los procesos del usuario puedan tener acceso a los datos. Se pueden tener diversos los tipos de servidores: dedicados y multihilos. DBMS Agenda Archivos de Datos (Datafiles) •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura 1.La Instancia 2.Procesos 3.Base de datos -Datafiles -Controlfiles -Redo log files -Archiver log files •MySQL Sirven para el almacenamiento físico de las tablas, índices y agrupamientos (clusters) y procedimientos. Contienen los datos de los usuarios. Los espacios de tablas (tablespaces) son las unidades lógicas manejadas por oracle para manejar y controlar el espacio de los discos. DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura 1.La Instancia 2.Procesos 3.Base de datos -Datafiles -Controlfiles Archivos de Control (Control Files) Contienen la dirección física y descripción de los archivos de la base de datos y de los archivos de rehacer para el arranque correcto de la BD. Estos archivos se crean automáticamente cuando se da una orden CREATE DATABASE y no son editables. Archivos de Rehacer (Redo log files) Contiene los cambios realizados a la BD para la recuperación ante fallas o el manejo de las transacciones.El principal propósito de estos archivos es servir de respaldo de los datos en la memoria RAM. Archivos Fuera de Línea (Archived log Files) Son Archivos opcionales donde se guarda información vieja de los archivos de rehacer. -Archiver log files -Redo log files •MySQL DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura * Concurrencia * Locks * Recuperacion * Seguridad * Herramientas * Versiones •MySQL Arquitectura DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura * Concurrencia * Locks * Recuperacion * Seguridad * Herramientas * Versiones •MySQL La Concurrencia en Oracle Oracle utiliza multiversión para permitir el acceso concurrente a los datos. Control de concurrencia multiversión Oracle automáticamente proporciona consistencia de lectura: datos que una consulta ve son de un mismo pto en el tiempo (consistencia de lectura a nivel de sentencia). También puede proporcionar consistencia de lectura a todos las consultas de una transacción (consistencia a nivel de transacción). DBMS Agenda Oracle proporciona consistencia de lectura a dos niveles: •Nivel de sentencia •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura * Concurrencia * Locks * Recuperacion * Seguridad * Herramientas * Versiones •MySQL •Nivel de transacción Oracle proporciona tres niveles de aislamiento •read-committed: Nivel de aislamiento por defecto. Cada consulta de una transacción solo ve los datos que fueron confirmados antes de que la consulta comenzara. Se producen lecturas no reproducibles. •serializable transactions: Solamente se ven los cambios realizados por transacciones confirmadas + cambios efectuados por ella misma. •read-only : transacciones de solo lectura ven datos confirmados antes de empezar y no permiten modificaciones de los datos. DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura * Concurrencia * Locks * Recuperacion * Seguridad * Herramientas * Versiones •MySQL Manejador de Locks Los Bloqueos son los mecanismos que utiliza Oracle para evitar que dos transacciones accedan al mismo recurso. ORACLE utiliza el nivel menos restrictivo guiándose por las siguientes reglas: •Operaciones de lectura no esperan a las de escritura sobre los mismos datos. •Operaciones de escritura no esperan a las de lectura sobre los mismos datos. •Operaciones de escritura solamente esperan a otras operaciones de escritura que intentan modificar la misma tupla. ORACLE no escalona los bloqueo. •Interbloqueos DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura * Concurrencia * Locks * Recuperacion * Seguridad * Herramientas * Versiones •MySQL Manejador de Recuperación Siempre existe la posibilidad de que el sistema falle: se debe recuperar la BD lo más rápidamente posible e intentar que exista una pérdida de datos mínima. Posibles fallos: •Fallo del usuario:Un error del usuario (ej. borrado de tabla) puede requerir recuperar la BD a un pto anterior al error. •Fallo del proceso: Cuando un proceso que está accediendo a la BD falla. •Fallo de la instancia:Cuando una instancia se aborta inesperadamente se necesita una recuperación de la instancia. •Fallo físico de algún fichero: Ocurre cuando un disco, un fichero o una porción de un fichero no puede leerse por estar dañado. DBMS Agenda Seguridad en Oracle •Autenticación de usuarios: •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura - Mediante contraseña - Mediante SO. - Global de usuario •Administración de privilegios * Concurrencia - Privilegios de sistema. * Locks - Privilegios de objetos * Recuperacion •Administración de contraseñas * Seguridad •Registro de transacciones * Herramientas •Recovery manager * Versiones •Recuperación base de datos •MySQL DBMS Agenda •POSTGRE SQL •SQL SERVER •ORACLE * Arquitectura * Concurrencia * Locks * Recuperacion * Seguridad * Herramientas * Versiones •MySQL Herramienta para la Creación de Usuarios Para crear un usuario se debe seleccionar, en primer lugar, la opción correspondiente en la aplicación. DBMS Agenda Versiones de Oracle •Oracle Edición Estándar •POSTGRE SQL •Oracle Edición Enterprise •SQL SERVER •Personal Oracle •ORACLE •Oracle Lite * Arquitectura OTROS PRODUCTOS * Concurrencia •Oracle 9iAS (Application Server) * Locks * Recuperacion •Oracle 9iAS, que remplaza al Oracle Application Oracle Forms Developer * Seguridad •Oracle Reports Developer * Herramientas •Oracle Discoverer * Versiones •Oracle 9iAS Portal •MySQL DBMS Agenda Sitios Web •POSTGRE SQL •SQL SERVER http://www.napolifirewall.com/ORACLE.htm •ORACLE http://www.orape.net/subidos/manualbd/arquit ectura.doc Sitios Web •MySQL http://www.infor.uva.es/~jvegas/cursos/bd/ora seg/oraseg.html http://www.infor.uva.es/~jvegas/cursos/bd/ora seg/oraseg.html DBMS Introducción SQL SERVER Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias Que es SQL SERVER ?? SQL Server es un sistema administrador para Bases de Datos relacionales basadas en la arquitectura Cliente / Servidor (RDMS). DBMS Arquitectura de SQL SERVER Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias ARQUITECTURA CLIENTE/SERVIDOS – El Cliente es responsable de la parte lógica y de presentar la información al usuario. – SQL Server administra Bases de Datos y distribuye los recursos disponibles del servidor DBMS Arquitectura de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias – Sistema administrador para Bases de Datos Relacionales (RDBMS): – Asegurarse de que la información es almacenada correctamente . – Crear una estrategia de copias de seguridad. DBMS Arquitectura de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias TRANSACT - SQL: Transact – SQL es un lenguaje que utiliza SQL Server para poder gestionar los datos que contienen las tablas. DBMS Arquitectura de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias SQL Server usa una arquitectura de comunicación por capas para aislar aplicaciones internas de red y protocolos DBMS Arquitectura de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias – Aplicación Una aplicación es desarrollada usando una aplicación de interfaz de programación para Base de Datos – Interfaz de la base de datos. Librería de red Una librería de Red, también conocida como Net-Library, debe ser instalada tanto en el cliente como en el servidor DBMS Arquitectura de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias – Tabular Data Stream Los paquetes TDS son encapsulados en los paquetes de red hechos por la protocol stak usada por las Net-Libraries. – Servicio Open Data Este es un componente de SQL Server que se encarga de las conexiones de red DBMS Motor de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias – Motor relacional – Motor de almacenamiento DBMS consultas de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias DBMS Arquitectura de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias DBMS consulta de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias DBMS consulta de SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias DBMS Seguridad en SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias – La autentificación identifica al usuario que está usando una cuenta y verifica sólo la habilidad de conectarse con SQL Server. DBMS Seguridad en SQL SERVER Agenda Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias Autentificación de login: Un usuario debe tener una cuenta para conectarse al SQL Server. Este reconoce 2 mecanismos de autentificación . Autentificación de SQL SERVER Cuando se usa, un administrador del Sistema de SQL Server, define una cuenta y un password . Autentificación de Windows NT Cuando se usa, el usuario no necesita de una cuenta de SQL Server, para conectarse. DBMS Seguridad en SQL SERVER Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias Roles : Permiten reunir a los usuarios en una sola unidad a la cual se le pueden aplicar permisos. SQL Server contiene roles de servidor y de Base de Datos predefinidos, para tareas administrativas comunes, de manera que pueden asignársele determinados permisos administrativos a un usuario en particular. • Roles fijos del Servidor . • Roles fijos de la Base de Datos . • Roles de usuarios definidos en la Base de Datos DBMS – – – – – – – – – INTEFACES DE PROGRAMACIÓN DE Agenda APLICACIONES SQL SERVER Introducción a SQL SERVER Arquitectura SQL SERVER Motor SQL SERVER Seguridad SQL SEVER Interfaz de programación Herramientas Actual de SQL SERVER Referencias DBMS INTEFACES DE PROGRAMACIÓN DE APLICACIONES SQL SERVER – Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias OLE DB: Esta es una interfaz de acceso a datos. OPEN DATABASE CONNECTIVITY: ODBC) Es una interfaz común para tener acceso a base de datos SQL. ACTIVE X DATA OBJECTS: (ADO) Encapsula la OLE DB API en un modelo simplificado de objetos que reduce el desarrollo de aplicaciones y los costos de mantenimiento REMOTE DATA OBJECTS: (RDO) Mapea y encapsula al ODBC API DBMS Herramienta de administración graficas de SQL SERVER – Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias DBMS Herramienta de administración graficas de SQL SERVER – Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias OSQL (Object Structured Query Language) es una utilidad que permite el uso de sentenciasTransact-SQL, así como de procedimientos del sistema, y también el manejo de ficherosscript. Esta utilidad utiliza ODBC para conectarse con el servidor. OSQL se ejecuta directamente desde el sistema operativo, una vez ejecutado permite sentencias Transact-SQL, e interactúa directamente con SQL Server.BCP es una utilidad que permite copiar datos de SQL Server a un fichero de datos definido por el usuario. DBMS – Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias SQL Server incluye cuatro servicios: MSSQLServer. MSSQLServer se encarga del procesamiento de transacciones y consultas, así como del control de la base de datos y la integridad de los datos. SQLServerAgent se encarga de la gestión de operadores, alertas y trabajos de la base de datos. MSDTC se encarga del control de transacciones distribuidas. Microsoft Search se encarga de la administración de índices y catálogos, para la búsqueda indexada de texto. 1.3. Arquitectura Cliente-Servidor. SQL Server se encarga de administrar bases de datos relacionales basadas en la arquitectura Cliente / Servidor (RDBMS: Relational Database Management Sistema). DBMS LOS PRO Y CONTRAS – Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias La primera base de datos en escalar desde la computadora portátil hasta la empresa utilizando la misma base de código y ofrecer el 100% de compatibilidad de código – La mejor integración con Windows NT Server – La mejor integración con Microsoft Transaction Server – Gestión: Con un completo interfaz gráfico que reduce la complejidad innecesaria de las tareas de administración y gestión de la base de datos. DBMS – Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias El reinicio de todos los datos en una base de datos es un trabajo serio que invita a la potencial pérdida de datos. Cuanto más grande sea la base de datos, más onerosa será esta obligación. Sin embargo, después de mirar las herramientas de migración del SQL Server 7.0, es obvio que Microsoft se ha planteado esta operación como algo muy serio. DBMS Lo mas actual en SQL SERVER – Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias ¾ Microsoft SQL Server 2000 – Microsoft SQL Server 2005 Plataforma Windows NT DBMS Lo mas actual en SQL SERVER – Agenda – Introducción a SQL SERVER – Arquitectura SQL SERVER – Motor SQL SERVER – Seguridad SQL SEVER – Interfaz de programación – Herramientas – Actual de SQL SERVER – Referencias REFERENCIAS: es.geocities.com www.hipertexto.info DBMS MySQL o Definición o Características Arquitectura MySQL MySQL es un sistema de gestión de base de datos, multihilo y multiusuario. MySQL AB desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso. MySQL está poseído y patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licencia. DBMS MySQL MySQL o Definición o Características Arquitectura MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. DBMS MySQL o Definición o Características Arquitectura MySQL • Velocidad: Mysql es mucho más rápido que la mayoría de sus rivales. • Funcionalidad: Mysql dispone de muchas de las funciones que exigen los desarrolladores profesionales, como compatibilidad completa con ACID, compatibilidad para la mayor parte de SQL ANSI , volcados online, duplicación, funciones SSL e integración con la mayor parte de los entornos de programación. • Portabilidad: Mysql se ejecuta en la inmensa mayoría de sistemas operativos y, la mayor parte de los casos, los datos se pueden transferir de un sistema a otro sin dificultad. DBMS MySQL o Definición MySQL • Facilidad de uso: Mysql resulta fácil de utilizar y de administrar. Las herramientas de Mysql son potentes y flexibles, sin sacrificar su capacidad de uso. o Características Arquitectura MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. Poco a poco los elementos de los que carecía, han siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. DBMS MySQL MySQL Entre las características disponibles versiones se puede destacar: en las últimas o Características o Amplio subconjunto del lenguaje extensiones son incluidas igualmente. Arquitectura o Disponibilidad en gran cantidad de plataformas y sistemas. o Definición SQL. Algunas o Diferentes opciones de almacenamiento según si se desea velocidad en las operaciones o el mayor número de operaciones disponibles. o Transacciones y claves foráneas. o Conectividad segura. o Replicación. o Búsqueda e indexación de campos de texto. DBMS MySQL o Definición MySQL MySQL es un sistema de administración relacional de bases de datos. Características implementadas únicamente por MySQL: o Características Arquitectura o Múltiples motores de almacenamiento (MyISAM, Merge, InnoDB, BDB, Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y Example en 5.x), permitiendo al usuario escoger la que sea más adecuada para cada tabla de la base de datos. o Agrupación de transacciones, reuniendo múltiples transacciones de varias conexiones para incrementar el número de transacciones por segundo. DBMS MySQL Arquitectura MySQL DBMS MySQL Arquitectura General de los DBMS MySQL Arquitectura o Gral. DBMS o MySQL DBMS MySQL Capa Logica en Alto Nivel De MySQL MySQL Arquitectura o Gral. DBMS o MySQL DBMS MySQL Arquitectura de MySQL MySQL 1.- Capa de Aplicacion Arquitectura o Gral. DBMS o MySQL En esta capa es donde los clientes y usuarios interactúan con el MySQL. En esta capa hay tres componentes que pueden ser vistos en el diagrama, estos componentes ilustran las diferentes clases de usuarios que pueden interactuar con MySQL, los cuales son Administradores, Clientes y Usuarios de consulta o usuarios query. DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL Algunas utilidades Administrativas son: o Mysqladmin o Isamchk y Myisamchk o Mysqldump En cambio el usuario de consulta interactua con Mysql atravez de la Query interface que seria mysql DBMS MySQL Arquitectura de MySQL MySQL 2.- Capa Lógica Arquitectura o Gral. DBMS o MySQL Query Processor La inmensa mayoría de interacciones en el sistema ocurre cuando un usuario tiene el deseo de consultar o manipular los datos subyacentes en el almacenamiento. Esas interacciones son especificada usando un lenguaje de manipulación de datos (SQL), son analizados sintacticamente y optimizado por un query processor. DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL oEmbedded DML Precompiler: Cuando una petición es recibida de un cliente en la capa de aplicación, es la responsabilidad del Embedded DML Precompiler (lenguaje de manipulación de datos) extraer las declaraciones relevantes del SQL encajadas en los comandos del API del cliente oDDL Compile Las peticiones de tener acceso a las bases de datos de MySQL recibidas de un administrador son procesadas por el DDL Compiler (lenguaje de definición de datos). El cual compila los comandos (que son declaraciones del SQL) que interactúan directamente con la base de datos. DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL oQuery Parser: Después de obtener las declaraciones pertinentes descifrados de los peticiones de clientes o Administrativos, el siguoiente paso seria analizar sintacticamente el MySQL Quero. en esta etapa el objetivo del Query Parser es crear una estructura de árbol sintáctico basada en la averiguación a fin de que puede fácilmente ser comprendida por los otros componentes mas adelante. oPreprocesador Query Arbol sintáctico obtenido del Query parser, es utilizado en esta etapa para chequear la sintaxis SQL y chequear la semántica del MySQL Query con el fin de determinar si el query es valido DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL oSecurity/Integration Manager el papel del control de integridad y de seguridad es inspeccionar para ver si el cliente tiene acceso para conectarse a la base de datos. Mysql soporta ACID oQuery Optimizar Después de determinar que el cliente tiene los permisos correctos para acceder a la tabla específica en la base de datos. la query es sometida a optimizacion. MySQL utiliza el optimizador para ejecutar preguntas del SQL tan rápidamente como sea posible DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL oExecution Engine Ejecuta en contra de la base de datos el query una vez ya optimizado, luego procede a ejecutar las declaraciones SQL y acceder a la capa física de la base de datos MySQL. DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL Transaction Management DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL oTransaction Manager El gerente de transacción es responsable de asegurarse de que la transacción este registrada y ejecutado con atomicidad. oConcurrency-Control Manager: El gestor de control de concurrencia es responsable de asegurarse de que las transacciones son ejecutadas separadamente e independientemente DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL Recovery Management DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL olog manager El log manager es responsable de poner en bitácora cada operación ejecutada en la base de datos. Hace eso almacenando el registro de servicio en disco a través del manejador del buffer. oRecovery Manager El control de recuperación es responsable de restaurar la base de datos para su último estado estable. Hace eso usando el log para la base de datos. DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL Storage Management El almacenamiento se hace físicamente en algún tipo de almacenamiento secundario, de cualquier forma que el acceso dinámico de este medio no es práctico. Así, todo trabajo se hace a través de un número de buffers. DBMS MySQL Arquitectura de MySQL MySQL Arquitectura o Gral. DBMS o MySQL oStorage Manager En el nivel mínimo existe el Storage Manager (control de Almacenamiento). El papel del Gerente de Almacenamiento es mediar peticiones entre el gestor del buffer y el almacenamiento secundario. oBuffer Manager El propósito del Gerente del Recurso es aceptar peticiones del motor de ejecución (Execution engine). El Gerente del Recurso recibe referencias para datos dentro de la memoria del buffer manager y le devuelve esta información a los estratos superiores. DBMS MySQL Arquitectura o Gral. DBMS o MySQL MySQL AGENDA Brev. Historia La implementación del DBMS Postgres comenzó en 1986 como un proyecto de investigación del grupo del Profesor Michael Stonebraker en Berkeley • ingres Su siguiente proyecto fue 'Postgres' (post-ingres) • Usaba un lenguaje de consulta más avanzado: POSTQUEL Introdujo reglas, procedimientos, tipos definibles y conceptos de orientación a objetos en 1987 Versiones centradas en mejorar la portabilidad y fiabilidad AGENDA Brev. Historia Andrew Yu y Jolly Chen, decidieron reescribir gran parte del código de Postgres y sustituir POSTQUEL por un subconjunto ampliado de SQL Fue lanzada en 1995 como Postgres95 • Pasó a manos de la comunidad de Internet • Evolucionó hasta lo que es ahora PostgreSQL PostgreSQL es un gestor de Bases de Datos basado en el modelo relacional, aunque incorpora algunos conceptos del modelo Orientado a Objetos, tales como la herencia • Ofrece gran variedad de herramientas y librerías para acceder a las Bases de Datos AGENDA Brev. Historia Arquitectura General Arquitectura General (Highest level - Client/Server) AGENDA Brev. Historia Arquitectura General Highest level Client/Server Cliente: AGENDA Brev. Historia Arquitectura General Highest level Client/Server Libpq: • es responsable de manejar la comunicación con los procesos del cliente • establecer la conexión al postmaster • obtención del hilo del servidor del postgre para la sesión operacional • Transmite a peticiones de la operación de usuarios Servidor: AGENDA Brev. Historia Arquitectura General Highest level Client/Server El Postmater: • es responsable de aceptar la petición de conexión del cliente • realizar control de la autentificación y de acceso en la petición del cliente • Establecer la comunicación entre el cliente y el servidor del postgre AGENDA El Store Manager Brev. Historia Arquitectura General Highest level Client/Server Es responsable de la gestión de la memoria externa y del control de recurso generales, incluyendo el manejador de buffer, el manejador de archivo, el manejador de control de consistencia y lock Procesamiento de una Consulta AGENDA Brev. Historia Arquitectura General Highest level Client/Server Procesamiento de consulta El Parser: AGENDA Brev. Historia Arquitectura General Highest level Client/Server Procesamiento de consulta Etapas • Verifica la validez sintáctica de la cadena de consulta • Si es correcta se crea un parser tree • Se transforma Query tree El Rewrite: • Se toma el árbol devuelto por la etapa parser y se realiza la búsqueda de reglas presentes dentro de la consulta • Si se encuentra alguna regla dentro de la consulta, la estructura de árbol se transforma en una expresión equivalente que incluye las relaciones base • Una aplicación del sistema de reescritura se da cuando en la consulta interviene una vista El Planner: AGENDA Brev. Historia Arquitectura General Highest level Client/Server Procesamiento de consulta Etapas • La Tarea de la etapa de optimización es crear un plan de ejecución óptimo, el query plan. • Primero, se combinan todas las posibles formas de recorrer y unir las relaciones que aparecen en la consulta. • Todos los Path’s creados llevan al mismo resultado y la tarea del optimizador es estimar el costo de ejecución de cada Path y encontrar cúal de éstos es el mas barato El Executor: • Es el encargado de ejecutar el query plan y de recuperar las tuplas de la forma como lo indica el plan. Procesos en el Ejecutor AGENDA Brev. Historia Arquitectura General Highest level Client/Server Procesamiento de consulta Etapas AGENDA Brev. Historia Arquitectura General Highest level Client/Server Procesamiento de consulta Etapas El Query Evaluation Engineering: • Acepta los comandos SQL generados de un programa de aplicación de usuario • produce la evaluación de Query Plans • ejecuta estos Plans en la base de datos Los Files and Access Methods: • apoya el concepto de un archivo, el cual en un DBMS, es una colección de páginas o una colección de registros • Soporta el tope de lo archivos e índices El Buffer Management: AGENDA Brev. Historia Arquitectura General Highest level Client/Server Procesamiento de consulta Etapas • Asigna y mantiene el control de la memoria • Manda las paginas del disco a la memoria principal según lo necesitado en respuesta a las peticiones leidas • ofrece generalmente una política mejor del reemplazo EL Disk Space Manager: • maneja el espacio en el disco, donde se almacenan los datos • Apoya el concepto de página de modo que le asigna la capa mas alta • Lee y escribe las paginas con esta capa • El tamaño de la página se elige tales que la lectura o escritura de una página se puede hacer en una entrada-salida del disco. El Transaction Management: Brev. Historia • se asegura de que las transacciones soliciten y lancen las cerraduras según un protocolo de fijación conveniente Arquitectura General • programar la ejecución de transacciones AGENDA Highest level Client/Server Procesamiento de consulta Etapas El Lock Management: subsistema, junto con Transaction Management , proporciona control de concurrencia, la restauración no actualizada, y la recuperación de la falla • Este • Los Archivos, los buffer y el Disk manager deben obrar recíprocamente con este y el transaction manager cuando se esta accediendo a los datos AGENDA Brev. Historia Arquitectura General Highest level Client/Server Procesamiento de consulta Etapas Control de Concurrencia MVCC, o Control de Concurrencia Multi-Versión (MultiVersion Concurrency Control) Es la tecnología que PostgreSQL usa para evitar bloqueos innecesarios Un lector nunca es bloqueado por un escritor. En su lugar, PostgreSQL mantiene una ruta a todas las transacciones realizadas por los usuarios de la base de datos. PostgreSQL es capaz entonces de manejar los registros sin necesidad de que los usuarios tengan que esperar a que los registros estén disponibles