martes, 23 de octubre de 2018

PRACTICAS EN WORKBENCH

Creación de tablas y relaciones en workbench desde cero.


Creación de un modelo  de base de datos en workbench


martes, 16 de octubre de 2018

Practica de usuarios y privilegios

MySQL es un manejador de base de datos de código libre que ayuda a los usuarios a almacenar, organizar y recolectar datos. Tiene variedad de opciones para otorgar a determinados usuarios permisos entre tablas y bases de datos.
En esta practica crearemos una base de datos  con dos tablas (datos personales y calificaciones) a la cual podrán acceder tres diferentes usuarios  (contador, finanzas y división) con diferentes privilegios.
  1.  Para esto entraremos con el usuario root a mysql.
Escribiendo (solo si se ha creado una variable de entorno) mysql -u root -p


Al escribir el comando select user from mysql.user; nos mostrara todos los usuarios existentes en MySQL, asi como lo muestra la imagen de arriba, se desplegara una lista de todos ellos.
En el root se puede crear una base de datos con tablas a las que despues nuestros usuarios podran acceder.

2. Creamos nuestra base de datos: create database alumnos;
Si se quiere corroborar que la base de datos ha sido creada, entonces antes de acceder a ella, escibiriamos: show databases;
Despues accedemos a ella: use alumnos
Ahora estamos dentro de nuestra base de datos y crearemos la primera tabla llamada datos personales.
Codigo: create table datosper(
num_con int not null auto_increment primary key, nombre varchar (50), apellidop varchar(50), cel varchar (10) noot null);




























jueves, 11 de octubre de 2018

UNIDAD 2

ESTRUCTURAS FÍSICAS DE LAS BASE DE DATOS

Estructura física de la base de datos Oracle:


 1.Estructura de la 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.



Fondo común compartido (Shared pool)
Este se utiliza durante el procesamiento de comando y tiene dos zonas:
  • Library Cache
  • Data Dictionary Cache (Dictionary Cache o Row Cache)
Área de Memoria rápida (Dtabase buffer cache)
Mantiene los bloques de datos leídos directamente de los archivos de datos y esta organizada en dos listas.
  • Lista de sucios. Bloques que han sufrido modificaciones y no han sido escritos en disco.
  • Lista de menos recientemente usados: mantiene los bloques libres, los bloques a los que se está accediendo actualmente y los bloques sucios que aún no han sido remitidos a la lista de sucios.
Área de registro de rehacer (Redo log buffer)
Es un buffer circular que mantiene todos los cambios que han sido realizados sobre la base de datos por operaciones de insert, update, delete, create, alter y drop.

2. Archivos

En Oracle los archivos de clasifican en 
2.1 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.

2.2 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

2.3 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.


2.4 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.


3.Los procesos

Los procesos son programas que se ejecutan para permitir el acceso a los datos, se cargan en memoria y son transportados para los usuarios y son clasificados en tres grupos:


3.1. 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.
Tipos de procesos:
Database Writer (DBWR): se encarga de copiar los bloques desde el buffer cache hasta la memoria secundaria.

Log Writer (LGWR): escribe las entradas desde el Log Buffer a disco. 
La escritura de bloques del Redo Log Buffer a disco ocurre secuencialmente y bajo las siguientes reglas:
  • Cuando el Redo Log está lleno en un 33% o más.
  •  Cuando oucrre un time-out (cada tres segundos).
  • Antes de que el DBWR escriba algún bloque modificado a disco.
  • Cuando una transacción se compromete.

Checkpoint (CKPT): encargado de notificar al DBWR para que se escriban en los archivos de datos todos los bloques contenidos en la lista de sucios. Este proceso es invocado en intervalos de tiempo determinados. El CKPT es opcional, si no existe las funciones son realizadas por el LGWR.

System Monitor (SMON): Encargado de realizar un proceso de recuperación rápida cada vez que una instancia es inicializada. Esta labor incluye limpieza de las estructuras de datos de soporte a la ejecución de consultas y llevar a la base de datos a un estado estable previo a la ejecución de aquellas transacciones que no hayan culminado exitosamente. También se encarga de desfragmentar el espacio físico de almacenamiento uniendo bloques de datos libres en la memoria secundaria.

Process Monitor (PMON): lleva la pista de los procesos de la base de datos y efectúa labores de limpieza (liberar recursos y bloques ocupados en los cache’s) si alguno de ellos termina prematuramente.

Archiver (ARCH): copia las bitácoras activas cuando éstas se encuentran llenas. Este proceso se encuentra activo sólo cuando el DBMS se encuentra operando en modo ARCHIVELOG, el único modo que admite recuperación de los datos frente a fallas del sistema.

Recoverer (RECO): resuelve transacciones distribuidas que se encuentran pendientes debido a la red o a fallas ocurridas en la base de datos distribuida.

Dispatcher (Dnnn): se crea por cada sesión de trabajo activa; es responsable de enrutar los requerimientos desde el proceso usuario, al cual se encuentra asociado, hacia los procesos servidores y retornar la respuesta al proceso de usuario adecuado. Estos procesos se crean solo cuando se ejecuta con la opción multithreading.

3.2 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.

3.3. 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 de la base de datos Oracle:



Arquitectura MySQL



MySQL es un sistema de bases de datos relacional. Eso significa que la información está organizada en bases de datos, que están compuestas por tablas, que están compuestas por registros, que están compuestos por columnas.
Además de los datos que almacenamos, las tablas pueden contener índices, y algunas de sus columnas tienen propiedades especiales como claves primarias y claves foráneas que permiten establecer relaciones entre las tablas.
Los sistemas que manejan estas estructuras se pueden describir en capas. 
En general, un sistema de bases de datos relacional tiene tres capas:


CAPA APLICACION
La capa de aplicación es la parte más externa del sistema y es la interface a través de la que los usuarios se comunican con el sistema.
La funcionalidad central del sistema está en la capa lógica. Es donde se realizan todas las operaciones del sistema.

CAPA LOGICA


En esta capa se realizan varias operaciones. La primera y que sirve de interface con la capa de aplicación es el procesamiento de las instrucciones SQL. Después hay dos módulos: el manejo de transacciones, y la recuperación después de errores. Finalmente está la parte que se encarga de traducir las instrucciones SQL en acciones sobre el almacenamiento de datos.

CAPA FISICA
Finalmente, la capa física es donde están almacenados los datos.

lunes, 3 de septiembre de 2018

Sistemas gestores de base de datos

Ejemplos de gestores de base de datos

Oracle

 Es uno de los sistemas de gestión de base de datos relacional más fiable y usado. Pertenece a Oracle Corporation y se desarrolló en 1977. Está construido alrededor de un marco en el que se puede acceder directamente a los objetos a partir del lenguaje de consulta SQL. Tiene su propio componente de red para que pueda haber comunicación a través de las redes. Se ejecuta en casi todas las plataformas (Windows, Unix, Linux, MAC OS…). La principal y peculiar característica de Oracle es que, su arquitectura, se divide entre la lógica y la física. A grandes rasgos, esto permite una mayor flexibilidad en las redes de datos y, a la vez, robustez en la estructura de los datos.

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. Así de tener unas ventajas.

 Características:

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 oclientes de la red sólo acceden a la información. 

Microsoft Access

Es un sistema de gestión de bases de datos relacional creado y modificado por Microsoft (DBMS) para uso personal de pequeñas organizaciones. Es 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.

Características: 

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. 
Llamadas a la API de windows. 

Ventajas:

Tablas para almacenar los datos.
 Consultas para buscar y recuperar únicamente los datos que necesita. 
Formularios para ver, agregar y actualizar los datos de las tablas.

Desventajas:

Limitaciones en el procesamiento de las búsqueda.

Sistemas de acceso libre

MySQL

Gestor de simple instalación que actúa del lado del cliente (servidor) y de código abierto con licencia comercial disponible. Actualmente, pertenece a Oracle Corporation. Gestiona bases de datos relacionales. 
Es multiusuario y el más usado dentro del software libre. Destaca por requerir de poca memoria y procesador para funcionar, dando lugar además a una mayor velocidad en sus operaciones. Es usado principalmente para el desarrollo web.

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…).

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. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group).

Apache Derby 

Es un sistema gestor de base de datos relacional escrito en Java que puede ser empotrado en aplicaciones Java y utilizado para procesos de transacciones online. Tiene un tamaño de 2 MB de espacio en disco. Inicialmente distribuido como IBM Cloudscape, Apache Derby es un proyecto open source licenciado bajo la Apache 2.0 License. Actualmente se distribuye como Sun Java DB. 

Características: 

APIs para JDBC y SQL. Soporta todas las características de SQL92 y la mayoría de SQL99. 
Su código mide alrededor de 2000KB comprimido.
Soporta cifrado completo, roles y permisos. Además posee SQL SCHEMAS para separar la información en un única base de datos y control completo de usuarios. 
A partir de la versión 10.4 trae un sistema simple de replicación maestro-esclavo.
Transacciones y recuperación ante errores ACID. 

Ventajas: 

se pude configurar como cliente/servidor • tiene la opción del manejador debase de datos soporta la arquitectura cliente/servidor desventajas: • es tedioso solo lo puedes manipular si conoces lo básico de SQL • necesitas códigos para crear la base de dato

B2 express-C 

Es un motor de base de datos perteneciente a la empresa IBM, conteniendo parte de las funcionalidades de la versión de pago DB2 propiedad también de la empresa IBM, este motor de base de datos es gratuita pero no libre (como aquellas que tienen licencia GPL) y cuenta con la ventaja de no tener limite de crecimiento en sus archivos de base de datos. 

Características:

Compatibilidad SQL, lo que facilita la ejecución de aplicaciones escritas para otras bases de datos principales, en DB2.
Mejorías para el desarrollo de aplicativos.
Mejoras en seguridad 

Ventajas:

No hay Límites de Datos
No hay límites de conexiones

martes, 28 de agosto de 2018

ADMINISTRADOR DE BASE DE DATOS

Que es un administrador de base de datos

Toda organización que maneja grandes volúmenes de datos requiere un sistema de gestión de base de datos (DBMS). La persona o grupo de personas encargadas de administrar, supervisar y asegurar el adecuado uso de los datos dentro de un DBMS (Database Management System) son los DBA.

Funciones de un administrador de base de datos


Gestión General de Base de Datos

El DBA es la persona con más conocimientos sobre base de datos en una organización. Como tal, debe entender las reglas básicas de la tecnología de base de datos relacional y ser capaz de comunicarlos con precisión a los demás.

Modelado de Datos y Diseño de Base de Datos

Esta tarea es más difícil de lo que parece. Un modelo conceptual de datos describe los requisitos de datos a un nivel muy alto, un modelo de datos lógico proporciona en profundidad los detalles de los tipos de datos, longitudes, relaciones y cardinalidad. El DBA utiliza técnicas de normalización para ofrecer modelos de datos que reflejen las necesidades de los datos de la empresa.

Auditoria

Una de las tareas de un DBA es identificar qué usuarios tienen acceso a insertar, actualizar o eliminar datos, y cuándo.
Regularmente, para realizar las funciones de autorías los DBAs tienen que trabajar en combinación con los auditores internos y externos de la empresa.

Integración con aplicaciones

Las aplicaciones tienen que interconectarse unas con otras, generalmente utilizando base de datos como el medio para compartir los datos. Los DBAs a menudo se involucran en los procesos de integrar las aplicaciones existentes con las bases datos que administran. Esto puede incluir la creación de aplicaciones a medida, scripts, etc.

Resguardo y recuperación de datos

Uno de los aspectos más fundamentales del trabajo del DBA es proteger los datos de la organización. Esto incluye hacer copias de seguridad periódicas de los datos y mantenerlos a salvo de la destrucción accidental o intencional.

Administración de cambios

La configuración del servidor SQL Server o MySQL, el esquema de base de datos, el código de Transact-SQL, y muchas otras facetas del ecosistema de aplicaciones cambian con el tiempo. A menudo es la responsabilidad del DBA realizar el análisis de impacto antes de realizar los cambios dentro de una DBMS. Implementar cambios, hacer pruebas piloto y documentar todos los cambios y procedimientos es parte del trabajo de un DBA.
Ademas estan otras funciones como la inteligencia de negocios y almacenamiento de datos y la de planificación de capacidad, las cuales sirven para que la empresa tome una mejor decision en cuanto a la administracion y el tamaño de sus bases de datos.

Sueldo promedio de un DBA

Según la firma Robert Half Techonology, los DBA están dentro del grupo de profesionales mejores pagados en la industria de la tecnología de la información (TI). La firma realizó una encuesta salarial en el año 2012 en los EEUU y los resultados arrojaron que el rango salarial de un Administrador de Base de Datos (DBA) es de $79,000.00 – $113,750.00 y el rango salarial de un Desarrollador de Base de Datos (DBD) es de $82, 000.00 – $119,750.00.





lunes, 27 de agosto de 2018

PRACTICA DE COMANDOS EN MySQL

Practica de comando en MySQL desde el cmd.

Descargar manual de comando MySQL: Manual de MySQL
Ingresamos en MySQL en el cmd escribiendo la variable de entorno: mysql -u root -p



Crearemos una base de datos: create database biblioteca;


Y para que nos muestre la base de datos creada escribiremos : show databases;
Como lo muestra la imagen de arriba.
Ahora con nuestra base de datos creada, haremos una tabla en ella llamada libros, pero primero debemos entrar en la base de datos:  use biblioteca
Y después: create table libros(id_clave int not null auto_increment,nombre_lib varchar(45) not null, autor varchar(20), primary key (id_clave));


Y crearemos otra tabla llamada usuarios: create table usuario(id_claveusuario int not null auto_increment, nombre varchar(45) not null, apell varchar(45), semestre varchar(10) not null, tel int (10), primary key (id_claveusuario));

SEGUNDA PRACTICA EN MySQL

Creando una base de datos llamada banco: create database banco;


Crear tabla clientes: create table clientes(id_clientes int not null auto_increment, nombre varchar(45) not null direccion varchar(45) not null, 
primary key(id_clientes));


Mostrar la base de datos: show databases;


Insertar datos en la tabla clientes: insert into clientes values (1,'Karina Sanchez Perez', 'Evergreen Av. 102');
Mostrar los datos en la tabla: describe clientes;
Selecconar los datos de una tabla en especifico: select * from clientes;



TERCERA PRACTICA EN MySQL


Utilizando una base de datos llamada banco.
Modificaremos la tabla clientes, insertando mas datos, modificándolos y borrandolos.

  • Insertar datos: insert into clientes (nombre, direccion) values('Ramon Martinez', 'calle num 20');





  • Actualizaremos datos: update clientes set nombre='Karina Sanchez Perez' where id_clientes=2;



  • Borraremos datos: DELETE FROM clientes where id_clientes=1;
  • En la siguiente imagen se muestran los cambios hechos en nuestra tabla cliente, dando el comando: select * from clientes;

MySQL

QUE ES MySQL

MySQL es un sistema de administración de bases de datos (Database Management System, DBMS) para bases de datos relacionales. Así, MySQL no es más que una aplicación que permite gestionar archivos llamados de bases de datos.

APLICACIONES

MySQL es muy utilizado en aplicaciones web, como Joomla, Wordpress, Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL.

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. Sea cual sea el entorno en el que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar y corregir errores tanto de SQL como de programación.

REQUERIMIENTOS DE MySQL


  • 512 Mb de memoria Ram
  • 1024 Mb maquina virtual
  • 1 GB  de espacio de disco duro
  • Sistema operativo:Windows,Linux y Unix
  • Arquitectura del sistema 32/64 bit
  • Protocolo de red TCP/IP


COSTOS DE MySQL

Hay dos versiones de las licencias comerciales perpetuas que se venden a
los socios  la MySQL Classic y MySQL Pro.
El costo para la licencia MySQL Classic es $399
MySQL Pro El coste para MySQL Pro es
$699. La version Classic y Pro de la licencia del terceros se licencia por
base del servidor, permitiendo que un numero ilimitado de usuarios, los
dispositivos, las maquinas, etc. conecten con el servidor, sin hacia fuera
un limite de CPUs en esa maquina.

PRACTICAS EN WORKBENCH

Creación de tablas y relaciones en workbench desde cero. Creación de un modelo  de base de datos en workbench