martes, 16 de octubre de 2018

Unidad 2

Estructuras físicas de la base de datos

La Arquitectura de Oracle tiene tres componentes básicos:
1. La Estructura de memoria
2. Los Procesos
3. Los Archivos.

Estructura de memoria
Es la estructura de memoria compartida que contienen datos e información de control para una instancia de una base de datos, cada instancia tiene sus propias estructuras de memoria y se localiza en la memoria virtual del computador. Las estructuras de memoria se denominan System Global Area (SGA) la cual es un área compartida por todos los usuarios y se divide en tres partes:

  • Fondo común compartido (Shared pool)
  • Arear de Memoria rápida (Dtabase buffer cache)
  • Área de registro de rehacer (Redo log buffer)

Archivos
Los archivos que maneja Oracle, se clasifican en cuatro grupos:
  •  Los Archivos de Datos (Datafiles): sirve para el almacenamiento físico de las tablas, índices y procedimientos, estos son los únicos que contienen los datos de los usuarios de la base de datos.
  •  Archivos de Control (control files): tiene la descripción física y dirección de los archivos para el arranque correcto de la base de datos
  • Archivos de Rehacer (redo log files): tienen los cambios que se han hecho a la base de datos para recuperar fallas o para manejar transacciones. Debe esta conformado por dos grupos como mínimo y cada grupo debe esta en discos separados. El principal propósito de estos archivos es de servir de respaldo de los datos en la memoria RAM.
  • Archivos fuera de línea (archived files): archivos opcionales donde se pueda guardar información vieja de los archivos de rehacer, convenientes para respaldos de base de datos
Procesos.
Los procesos son programas que se ejecutan para permitior el acceso a los datos, se cargan en memoria y son transportados para los usuarios. Se clasifican en tres grupos:

  • Procesos de Base o de Soporte: se encargan de traer datos desde y hacia la estructura de memoria (SGA), cada uno tiene su propia área de memoria.
  • Procesos de Usuario: se encarga de ejecutar el código de aplicación del usuario y manejar el perfil del usuario con sus variables de ambiente. Estos procesos no se pueden comunicar directamente con la base de datos, por lo que la comunicación la establecen mediante procesos de servidores.
  • Procesos de Servidores: estos procesos ejecutan las órdenes SQL de los usuarios y llevan los datos del buffer caché para que los procesos de usuario puedan tener acceso a los datos.

Estructura Lógica.

Esquemas y objetos del esquema:
Un esquema es una colección de objetos de la base de datos. Los objetos del esquema son estructuras lógicas que hacen referencia directa a datos de la base de datos (tablas, vistas, secuencias, procedimientos almacenados, sinónimos, índices, clusters y enlaces con otras bases de datos)

 Data Base:
Es un conjunto de datos que tienen un representan una información captada del mundo real, con ellos se puede realizar diversos procesos.

Tablespace:
Una base de datos está formada por una o varias unidades lógicas llamadas tablespaces. Un tablespace es la unidad de almacenamiento lógico. Además, cada una de estos tablespaces está formada por uno o varios ficheros físicos que son los datafiles. Un datafile solamente puede pertenecer a un tablespace. Por lo tanto, los datafiles de una base de datos son todos los datafiles que forman parte de todos los tablespaces de la base.

Segment:
Un segmento almacena la información de una estructura lógica de Oracle dentro de un Tablespace. Está formado por una o más extensiones y, a medida que va creciendo el segmento se van asignando nuevas extensiones al mismo. Hay cuatro tipos de segmentos: de datos, de índices, temporales y de rollback.

Extent:
Una extensión es una unidad lógica de almacenamiento que está formada por un número determinado de bloques de datos contiguos. La agrupación de una o varias extensiones forman un segmento que puede ser una tabla, un índice, un segmento de rollback o un segmento temporal.

Data Block:
Un bloque es la unidad mínima de almacenamiento de información de Oracle. A los bloques también se les conoce como "bloques de datos", "bloques lógicos" o "bloques oracle". Cada uno de estos bloques está formado por un número determinado de bloques del sistema operativo.


miércoles, 3 de octubre de 2018

Practica de Usuarios y Privilegios


  • Como veo los usuarios del servidos



  • Hacer una bd llamada alumnos
                           mysql> create database alumnos2;

  • Que contenga dos tablas:
  1. Tabla Datos_per
create table datos_per(num_cont int not null primary key auto_increment,nombre varchar(50),apellido varchar(50));
  1. Tabla calificaciones

create table calificaiones(num_cont int, mat_clave varchar(4),calif int,semestre varchar(1));



  • Como entrar como usuario root

                   mysql -u root -p

  • Crear un usuario con todos los privilegios llamado: contador



  • Crear usuario finanzas con los privilegios :consultar, y modificar


  • Crear usuario división con los privilegios; insertar y consultar

  • Abrir y trabajar con los permisos para cada usuario
trabajando con finanzas
trabajando con division







lunes, 10 de septiembre de 2018

PostgreSQL


Información general
Desarrollador(es)PostgreSQL Global Development Group
Lanzamiento inicial1995
Última versión estable10.5 (info)
9 de agosto de 2018 (1 mes)
GéneroBase de datos objeto-relacional (ORDBMS)
Programado enC
Sistema operativoMultiplataforma
LicenciaPostgreSQL License1
En españolNo

¿Qué es PostgreSQL? 
PostgreSQL es un sistema de base de datos objeto-relacional que tiene las características de los sistemas de base de datos propietarios tradicionales con mejoras de los sistemas de base de datos de la nueva generación. PostgreSQL es libre y el código fuente completo está disponible.

¿Quién controla PostgreSQL?
Si está buscando un guardián, comité central o compañía controladora, dese por vencido -no hay ninguno. El proyecto es dirigido por la comunidad de desarrolladores y usuarios, a la cual cualquiera se puede unir y tener sus contribuciones juzgadas estrictamente en el mérito.
¿Cuál es la licencia de PostgreSQL?
PostgreSQL es distribuido bajo una licencia similar a BSD y MIT. Les permite a los usuarios hacer cualquier cosa que quieran con el código, incluyendo la reventa de los binarios sin el código. La única restricción es que no puede hacer legalmente responsable a los desarrolladores originales por los problemas con el software (aunque esto es, por su puesto, aparte de cualquier acuerdo que pueda hacer con 2ndQuadrant). También está el requerimiento de que este copyright aparezca en todas las copias del software.
¿Qué plataformas son soportadas por PostgreSQL?
En general, cualquier plataforma moderna compatible con Unix, como Linux, Mac OS X y FreeBSD, puede ejecutar PostgreSQL, así como Microsoft Windows. PostgreSQL no depende en el comportamiento de ninguna arquitectura en particular, por lo que casi se puede asegurar que cualquier arquitectura soportada por estos sistemas operativos es soportada por PostgreSQL.
¿Qué controladores están disponibles para PostgreSQL para mi ambiente de programación preferido?
La instalación de PostgreSQL solo incluye las interfaces de C y C embebido. Si bien hay un enorme número de controladores dirigidos a varios ambientes de programación diferentes, todas las demás interfaces son proyectos independientes que se distribuyen por separado; Esto les permite a ellos tener su propio calendario de lanzamientos y equipos de desarrolladores.
Algunos lenguajes de programación como PHP incluyen una interfaz para PostgreSQL. Interfaces para lenguajes/ambientes como Python, Perl, .Net, JDBC y muchas otras están disponibles.
¿Tiene PostgreSQL una herramienta gráfica de administración?
Hay un gran número de herramientas gráficas disponibles para PostgreSQL, tanto de desarrolladores software propietario como de código abierto. 2ndQuadrant oficialmente soporta, y de hecho emplean a un contribuidor activo del tal, la popular aplicación de escritorio de código abierto pgAdminIII. phpPgAdmin también es una herramienta popular, la cual está basada en web.
Pagina web: https://www.postgresql.org/

lunes, 3 de septiembre de 2018

Gestores de Base de Datos

MySQL

Es un sistema de gestión de base de datos relacional, multihilo y multiusuario seguramente el más usado en aplicaciones creadas como software libre.
Por un lado se 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.
Ventajas:
  • Velocidad al realizar las operaciones
  • Bajo costo en requerimientos para la elaboración de bases de datos
  • Facilidad de configuración e instalación.

Microsoft SQL Server

Es un sistema de gestión de bases de datos relacionales basado en el lenguaje Transact-SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea.
Es un sistema propietario de Microsoft. Sus principales características son:
  • Soporte de transacciones.
  • Escalabilidad, estabilidad y seguridad.
  • Soporta procedimientos almacenados.
  • Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
  • Permite trabajar en modo cliente-servidor donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información.
  • Además permite administrar información de otros servidores de datos
Su principal desventaja es el precio, aunque cuenta con una versión EXPRESS que permite usarlo en entornos pequeños. (Aprox. unos 4GB de información y varios millones de registros por tabla) 


Oracle

Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), fabricado por Oracle Corporation.
Tradicionamente Oracle ha sido el SGBS por excelencia, considerado siempre como el más completo y robusto, destacando por:
  • Soporte de transacciones.
  • Estabilidad.
  • Escalabilidad.
  • Es multiplataforma.
Tambien siempre ha sido considerado de los más caros, por lo que no se ha estadarizado su uso como otras aplicaciones.
Al igual que SQL Server, Oracle cuenta con una versión EXPRESS gratis para pequeñas instalaciones o usuarios personales.

Microsoft Access

Es un sistema de gestión de bases de datos Relacional creado por Microsoft (DBMS) para uso personal de pequeñas organizaciones.
Se ha ofrecido siempre como un componente de la suite Microsoft Office aunque no se incluye en el paquete “básico”.
Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados por otros programas.
Entre las principales funcionalidades reseñables podemos indicar que:
  • Permite crear tablas de datos indexadas.
  • Modificar tablas de datos.
  • Relaciones entre tablas (creación de bases de datos relacionales).
  • Creación de consultas y vistas.
  • Consultas referencias cruzadas.
  • Consultas de acción (INSERT, DELETE, UPDATE).
  • Formularios.
  • Informes.
  • Entorno de programación a través de VBA
  • Llamadas a la API de windows.

PostgreSQL

Es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD.
Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyada por organizaciones comerciales. La comunidad PostgreSQL se denominada el PGDG (PostgreSQL Global Development Group).
Sus principales características son:
  • Alta concurrencia: mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés)
  • Amplia variedad de tipos nativos: provee nativamente varios soportes
  • Ahorros considerables de costos de operación
  • Estabilidad y confiabilidad

DB2

Este SGBD es propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos. Utiliza XML como motor, además el modelo que utiliza es el jerárquico en lugar del modelo relacional que utilizan otros gestores de bases de datos. Es el único de los gestores que hemos comentado que nos relacional.
Sus caracteristicas más importantes son:
  • Permite el manejo de objetos grandes (hasta 2 GB)
  • La definición de datos y funciones por parte del usuario, el chequeo de integridad referencial,
  • SQL recursivo, soporte multimedia: texto, imágenes, video, audio; queries paralelos, commit de dos fases, backup/recuperación on−line y offline.
  • Permite agilizar el tiempo de respuestas de esta consulta
  • Recuperación utilizando accesos de sólo índices.
  • Predicados correlacionados.
  • Tablas de resumen
  • Tablas replicadas
  • Uniones hash
Su principal desventaja es el precio, está dirigido solo a grandes empresas con necesidades de almacenamiento y  procesamiento muy altas.
Al igual que SQL Server y Oracle dispone de una versión EXPRESS gratis pero no de libre distribución 

  • FireBird
  • Potente y, a la vez, sencillo sistema de gestión de base de datos relacional SQL. Es uno de los mejores gestores de código abierto (Open Source) compatible con Windows y Linux. Entre otras funciones, da soporte completo para procedimientos almacenados, transacciones compatibles con las características ACID y métodos de acceso múltiple (nativo, Python, .NET, etc…).
  • MariaDB
    MariaDB   es un programa sistema de manejo de bases de datos  multiplataforma descendiente de MySQL creado en el año 2009  por el descontento de modelo de desarrollo. Se distribuye bajo la licencia GPL que es una software completamente libre y además se ha introducido dos nuevos motores de almacenamiento Aria y XtraDB en sustitución de MyISAM y InnoDB. 
    Para usar este gestor de base datos existen apis para los diferentes lenguajes de programación e incluso los mismos apis que se usan para MySQL son compatibles.
  • SQLite
    SQLite es un sistema de manejo de bases de datos de tipo modelo relacional multiplataforma, este gestor de base datos se diferencia entre los demás que son cliente-servidor, si no es una biblioteca en proceso que implementa un sistema autónomo, sin necesidad de hacer configuración. SQLite es una base de datos SQL embebido motor, que se puede  leer y escribir directamente a los archivos de disco normal, cuyo archivo  puede soportar con la versión 3 de SQLite hasta 2 Terabytes.
  • MogoDB
    MongoDB es un sistema de base de datos NoSQL multiplataforma, orientado a documentos desarrollado bajo la filosofía de software libre, los datos son guardados en la base datos  en estructuras de datos similar a JSON de JavaScript e incluso  tiene la capacidad de realizar consultas utilizando JavaScript por el cual también existen apis para distintos lenguajes de programación para realizar consultas  e informes.
    La mayoría de los gestores base datos no empaquetan un programa que nos permita administrar nuestras base de datos, para la cual existe un programa  llamado Navicat Premium, es un programa de pago que permite gestionar las bases de datos de forma mucho más cómoda e intuitiva que se puede usar para los 6 primeros sistemas gestores base de datos populares  que se menciona en este articulo, para  MongoDB se puedes optar a usar el uMongo.

jueves, 30 de agosto de 2018

Guia MySQL

Comandos Basicos para Bases de Datos MySql

Estos son algunos comandos utiles usados por MySQL para manejar bases de datos. Es un listado basico donde no hay mucha explicacion. Simplemente es una guia para comenzar a trabajar con la base de datos Mysql.
Obtener informacion sobre la base de datos Mysql:
  • show databases; – Listar todas las bases de datos.
  • connect [database]; – Conectarse a esa base de datos.
  • show tables; – Listar todas las tablas de una base de datos.
  • show table status; – Muestra informacion sobre las tablas de la base de datos.
  • describe [table]; – Muestra la estructura de una tabla de la base de datos
Manejo de bases de datos Mysql:
    • drop table [table]; – Elimina la tabla, incluyendo registros y estructura.
    • drop table if exists [table]; – Elimina la tabla de la base de datos, pero antes verifica que exista.
    • truncate table [table]; – Elimina los registros, pero mantiene la esrtuctura de la tabla.
    • rename table [table] to [nuevo nombre de tabla]; – Renombra una tabla de la base de datos.
    Algunos comandos utiles para cunsultas Mysql:
    • select * from [table] limit [numero]; – Muestra los registros desde el 1 hasta [numero].
      Ej. select * from tabla limit 10; – Muestra los 10 primeros registros.

      select * from [table] limit [numero inicio],[numero]; – Muestra los registros desde el numero de inicio hasta numero inicio + numero.

      Ej. select * from tabla limit 11,10; – Muestra desde registro 11 hasta el 20.
    Bases de datos Mysql en consola:
    • $ mysqladmin -u -p create – crear base de datos.
    • $ mysqladmin -u -p drop – borrar la base de datos.
    • $ mysqladmin -u root -p proc – listar procesos en ejecucion en el servidor de bases de datos Mysql.
    • $ mysqladmin -u root -p -i 5 status – verificar status cada 5 segundos.
    • $ mysqldump –opt -u -h -p > /path/to/file – Exportar base de datos a un archivo.
    • $ mysqldump –opt -u -h –all-databases -p > /path/to/file – Exportar TODAS las bases de datos a un archivo.
    • $ mysql -h -u -p < /path/to/file – Importar un archivo a la base de datos a mysql
    • $ mysqlcheck -o -u root -p –all-databases – Optimizar las bases de datos mysql.
    Verificacion y reparacion de bases de datos erroneas:
    • check table [table]; – Verificar la tabla.
    • repair table [table]; – Reparar la tabla rota.
Guia Mysql comandos