Issuu on Google+

MySQL. ¿Qué es MySQL? Es un sistema de gestión de bases de datos relacional, fue creada por la empresa sueca MySQL AB, la cual tiene el copyright del código fuente del servidor SQL, así como también de la marca. MySQL es un software de código abierto, licenciado bajo la GPL de la GNU, aunque MySQL AB distribuye una versión comercial, en lo único que se diferencia de la versión libre, es en el soporte técnico que se ofrece, y la posibilidad de integrar este gestor en un software propietario, ya que de otra manera, se vulneraría la licencia GPL. El lenguaje de programación que utiliza MySQL es Structured Query Language (SQL) que fue desarrollado por IBM en 1981 y desde entonces es utilizado de forma generalizada en las bases de datos relacionales. Características principales. Inicialmente, MySQL carecía de algunos elementos esenciales en las bases de datos relacionales, tales como integridad referencial y transacciones. A pesar de esto, atrajo a los desarrolladores de páginas web con contenido dinámico, debido a su simplicidad, de tal manera que los elementos faltantes fueron complementados por la vía de las aplicaciones que la utilizan. Poco a poco estos elementos faltantes, están siendo incorporados tanto por desarrolladores internos, como por desarrolladores de software libre. En las últimas versiones se pueden destacar las siguientes características principales: 1.- El principal objetivo de MySQL es velocidad y robustez. 2.- Soporta gran cantidad de tipos de datos para las columnas. 3.- Gran portabilidad entre sistemas, puede trabajar en distintas plataformas y sistemas operativos. 4.- Cada base de datos cuenta con 3 archivos: Uno de estructura, uno de datos y uno de índice y soporta hasta 32 índices por tabla. 5.- Aprovecha la potencia de sistemas multiproceso, gracias a su implementación multihilo. 6.- Flexible sistema de contraseñas (passwords) y gestión de usuarios, con un muy buen nivel de seguridad en los datos. 7.- El servidor soporta mensajes de error en distintas lenguas


8.- Uso de transacciones ACID (Atomic, Consistent Isolated, Durable): Para construir aplicaciones más seguras mediante commit, rollback, crash recovery y bloqueo por registro. 9.- Store Procedures: Para mejorar la programación. 10.- Triggers: Para mejorar las reglas del negocio. 11.- Vistas: Para que la información sensible sea más segura. 12.- Information Schema: Para un fácil acceso a los metadatos. 13.- Transacciones Distribuidas(XA): Para soportar transacciones entre múltiples ambientes de bases de datos. VENTAJAS. 1.- Velocidad al realizar las operaciones, lo que le hace uno de los gestores con mejor rendimiento. 2.- Bajo costo en requerimientos para la elaboración de bases de datos, ya que debido a su bajo consumo puede ser ejecutado en una máquina con escasos recursos sin ningún problema. 2.- Facilidad de configuración e instalación. 3.- Soporta gran variedad de Sistemas Operativos 4.- Baja probabilidad de corromper datos, incluso si los errores no se producen en el propio gestor, sino en el sistema en el que está. 5.- Conectividad y seguridad DESVENTAJAS. 1.- Un gran porcentaje de las utilidades de MySQL no están documentadas. 2.- No es intuitivo, como otros programas (ACCESS).


Especificaciones Técnicas Arquitectura Flexible 

Open Source

Multi-threaded

Pluggable Storage-Engine Architecture

MyISAM

InnoDB

Merge

Memory

Archive

Cluster

OLTP y Transacciones 

ACID Transactions

Commit, Rollback

Foreign Keys, Referential Integrity

Row-level Locking

Customizable Lock Isolation Levels

Distributed Transactions (XA)

Snapshot Repeatable Reads (readers don’t block writers and vice-versa)

Timed Deadlock Detection ANSI SQL Standards

ANSI SQL

SubQueries, Joins, Cursors

Prepared Statements

Views

Triggers

Stored Procedures

User-Defined Functions


Information Schema

Unicode

Referential Integrity

Server-enforced Data Integrity

Strong Data type Support (e.g.Numeric, VARCHAR, BLOB, etc.)

Optimized Datatype Support (e.g. Tinyint, Smallint, Mediumint, Bigint, etc.) Replicación, Cluster & Alta Disponibilidad 

Built-in Replication

EngineMaster/Slave

Dual Master

Replication Ring

Replication Tree

Proven Load Balancing

· Distributed AutoIncrement

Main Memory Cluster Engine with instant failover (available separately)

Respaldos 

Auto-Restart/Recovery

Backup and Point-in-Time Recovery

Logical Online Hot-Backup

Physical Online Hot-Backup (available separately) Manejo del Almacenamiento

Hassle-Free Storage Administration

Automatic Space Expansion

Built-in Space Reclamation

Auto Undo/Rollback Management

Customizable Storage Assignments

Compressed and Archive Tables

Packed Index Storage


Works with NAS or SAN storage Características optimizadas para aplicaciones Web

Server-side Thread Pool

Connection Thread Caching

Query Results Caching

Load Balancing

Prepared Statements

Full Text Search

Multiple Character Sets

Geospatial Support

Multi-Terabyte Scalability Características optimizadas para Data Warehouse

Fast Data Load Utility

High-Speed Multi-Insert Function

GROUP BY WITH ROLLUP

Aggregate UDF

Analytic SQL Functions

Geospatial Support

Archive Storage Engine for historical data

Multi-Terabyte Scalability Seguridad

SSL Support

Built-in Data Encryption/Decryption

Granular External Security Control Fine Grained Object Privileges

View Support

Triggers for auditing

Query Logs for auditing

Archive Storage Engine for auditing


Fully backed by MySQL Network 

Certified Testing

Indemnification

24x7 Production Support

Online Knowledge Base

Customized Advisors

Targeted Alerts Buen Desempeño

Dynamic Memory Caches

Unique Query Cache

Multiple Index Type Support (B-tree, R-tree, Hash, etc.)

Cost-based Optimizer

High-speed Query Optimizer

Diagnostics and SQL Tracing Fácil de usar

Fácil de instalar y configurar (aproximadamente 15 minutos para todas las plataformas)

Cambios dinámicos en la configuración

Información del esquema Herramientas Gráficas

MySQL Workbench

MySQL Query Browser

MySQL Administrator

MySQL Migration Toolkit Drivers

MySQL Native C Library


MySQL Drivers for ODBC, JDBC, .Net

Community Drivers for PHP, Perl, Python, Ruby, etc

MySQL Connector/MXJ for deployment as a JMX MBean Plataformas 

32 and 64 bit native binaries

Operating Systems

Linux: RedHat, SuSE, Fedora, Debian

Unix: Solaris, HP-UX, AIX, SCO

BSD: FreeBSD

Apple: Mac OS

Windows: 2000, 2003, XP

Novell: NetWare

CPUs

Intel x86, IA32, IA64

AMD Optaron

IBM PowerPC

Sun SPARC

Additional platforms available

Comandos principales de MYSQL. •Arranque de los servidores. Servidor Linux: safe_mysqld –user=mysqladm & root & Servidor Windows: Mysqld Arranque como usuario: mysql –u usuario –p clave


•Consultas generales sobre las bases de datos Mostrar las bases de datos: show databases; Mostrar las bases de datos seleccionadas: select databases(); Mostrar las tablas que contiene una base de datos: show tables; Seleccionar una base de datos: use nombre_base; Describir la estructura de campos de una tabla: describe nombre_tabla; •Creación de bases de datos, tablas y registros Crear una base de datos: create database nombre_base; Creación de una tabla: create [temporary] table [if no exists] nombre_tabla ( 1

2

3

nombre_campo tipo opciones cláusulas , “““, “““, [último campo] ); [temporary] --> la tabla existirá mientras exista la conexión con el cliente actual o hasta que se emita la instrucción drop table. [if no exist] --> si existe la tabla no se crea una nueva.


(1) Las posibles opciones de tipo de campo son: tinyint --> 1 byte smallint --> 2 byte mediumint --> 3 byte int --> 4 byte bigint --> 8 byte float --> 4 byte double --> 8 byte decimal --> variable char(n) --> cadena de caracteres de longitud fija varchar(n) --> cadena de caracteres de longitud variables tinyblob --> objeto binario largo (muy pequeño) blob --> objeto binario largo (pequeño) mediumblob --> objeto binario largo (medio) longblob --> objeto binario largo (grande) tinytext --> cadena de texto muy pequeña text --> cadena de texto pequeña mediumtext --> cadena de texto media longtext --> cadena de texto larga enum --> una enumeración set --> un conjunto date --> valor fecha (aaaa-mm-dd) time --> valor de hora (hh-mm-ss) datetime --> valor de fecha y hora timestamp --> valor de lapso de tiempo (aaaammddhhmmss) year --> valor de año (2) Las posibilidades del apartado opciones son: Generales: null --> admite valores nulos no null --> rechaza dejar el campo en blanco default --> permite establecer un valor por defecto Columnas numéricas: auto_increment --> para generar identificadores únicos o valores en serie. unisgned --> rechazo de valores negativos Cadena: binary --> trata los valores como cadenas binarias (campos char y varchar) (3) Cláusulas: primary key --> columna indexada para búsqueda rápida. Clave principal, solo puede haber una unique --> crea un índice con valores únicos index, key --> son sinónimos y crean índices que pueden contener valores repetidos.


Lista_de_acción: establece una o varias acciones a realizar, las posibilidades son: a)ADD INDEX [nombre _ índice][columna _ índice]: añade un índice a la tabla basado en la columna especificada. Si se especifican varias columnas deben ir separadas por comas. b) ADD PRIMARY KEY [columna _ índice]: añade una clave principal siguiendo la columna establecida. c) ADD UNIQUE [nombre _ índice][columna _ índice]: añade un índice de valor único a la tabla en función de la columna especificada. d) ALTER [column] nombre _ columna (set default valor | drop default): modifica el valor dedo de una columna o reduce su valor predeterminado actual. e) CHANGE [column] nombre _ columna declaración _ columna: cambia el nombre y la definición de una columna; nombre _ columna -> nombre de la columna a modificar, declaración _ columna -> es el valor de definición por el cual se debe regir la columna, sus opciones son las mismas que las señaladas para la creación de los campos de las tablas. f) DROP [column] nombre _ columna: elimina la columna especificada. g) DROP INDEX nombre_index: elimina el índice de la tabla. h) DROP PRIMARY KEY: elimina la clave principal de la tabla. Si no existe clave principal y si índices con especificación UNIQUE se elimina el primero existente. i) MODIFY [column] declaración _ columna: cambia la declaración de una columna. j) RENAME [AS] nombre_tabla_nueva: cambia el nombre de la tabla.


La empresa CSI viendo las opciones que ofrece MYSQL a decidi贸 a usar su sistema gestor de base de datos lo cual proporciona muchas cosas inter茅senlas y as铆 mismo de que es de licencia gratuita. Esquema l贸gico.

Empresa

Alumno

hace

realiza

Proyecto

Asesor_interno

Estadia

asigna hace Asesor_externo

establece

Calificacion

establece


MYSQL