Download Diapositiva 1

Document related concepts
no text concepts found
Transcript
José Mendez Aguilar
Álvaro Navarro Moya
DEFINICIONES
Base de Datos
Podemos considerar que es un conjunto de datos de varios tipos, organizados e
interrelacionados. Estos datos deben estar libres de redundancias innecesarias y ser
independientes de los programas que los usan.
SGBD(DBMS)
Son las siglas que significan Sistema de Gestión de Bases de Datos, en inglés DBMS, DataBase
Manager System. En este caso, MySQL es un SGBD.
Consulta
Es una petición al SGBD para que procese un determinado comando SQL. Esto incluye
tanto peticiones de datos como creación de bases de datos, tablas, modificaciones,
inserciones, etc.
Dato
Un dato es una información que refleja el valor de una característica de un objeto real, sea
concreto o abstracto, o imaginario.
SQL
• Lenguaje de Consulta Estructurado (Structured Query
Language)
• Es un lenguaje declarativo de acceso a bases de datos
relacionales que permite especificar diversos tipos de operaciones
sobre las mismas.
• Reúne características del álgebra y el cálculo relacional
permitiendo lanzar consultas con el fin de recuperar información
de interés de una base de datos, de una forma sencilla.
• Es un lenguaje de cuarta generación (4GL).
Componentes del SQL
El lenguaje SQL está compuesto por:
Comandos
Cláusulas
Operadores
Funciones de agregado
Estos elementos se combinan en las instrucciones para
crear, actualizar y manipular las bases de datos.
Comandos
Existen dos tipos de comandos SQL:
Los DLL que permiten crear y definir nuevas bases de
datos, campos e índices.
Los DML que permiten generar consultas para ordenar,
filtrar y extraer datos de la base de datos.
Comandos DLL
Comando
CREATE
DROP
ALTER
Descripción
Utilizado para crear nuevas tablas,
campos
e índices
Empleado para eliminar tablas e
índices
Utilizado para modificar las tablas
agregando
campos o cambiando la definición de
los campos.
Comandos DML
Comando
Descripción
SELECT
Utilizado para consultar registros de la base de datos
que satisfagan un criterio determinado
INSERT
Utilizado para cargar lotes de datos en la base de
datos en una única operación.
UPDATE
Utilizado para modificar los valores de los campos y
registros especificados
DELETE
Utilizado para eliminar registros de una tabla de una
base de datos
Comandos DML
Comando
Descripción
FROM
Utilizada para especificar la tabla de la cual se van a
seleccionar los registros
WHERE
Utilizada para especificar las condiciones que deben
reunir los registros que se van a seleccionar
GROUP
BY
Utilizada para separar los registros seleccionados en
grupos específicos
HAVING
Utilizada para expresar la condición que debe satisfacer
cada grupo
ORDER
BY
Utilizada para ordenar los registros seleccionados de
acuerdo con un orden específico
Operadores Lógicos
Operador
Uso
AND
Es el “y” lógico. Evalúa dos condiciones y
devuelve un valor de verdad sólo si ambas son
ciertas.
OR
Es el “o” lógico. Evalúa dos condiciones y
devuelve un valor de verdad si alguna de las
dos es cierta.
NOT
Negación lógica. Devuelve el valor contrario de
la expresión.
Operadores de comparación
Operador
Uso
<
Menor que
>
Mayor que
<>
Distinto de
<=
Menor ó Igual que
>=
Mayor ó Igual que
BETWEEN
Utilizado para especificar un intervalo de valores.
LIKE
Utilizado en la comparación de un modelo
In
Utilizado para especificar registros de una base de
datos
Funciones de Agregado
Las funciones de agregado se usan dentro de una cláusula
SELECT en grupos de registros para devolver un único valor
que se aplica a un grupo de registros.
Comando
Descripción
AVG
Utilizada para calcular el promedio de los valores de un
campo determinado
COUNT
Utilizada para devolver el número de registros de la
selección
SUM
Utilizada para devolver la suma de todos los valores de
un campo determinado
MAX
Utilizada para devolver el valor más alto de un campo
especificado
MIN
Utilizada para devolver el valor más bajo de un campo
especificado
MySQL
Historia del proyecto
SQL (Lenguaje de Consulta Estructurado)
• Fue comercializado por primera vez en 1981 por IBM, el cual fue
presentado a ANSI y desde ese entonces ha sido considerado como un
estándar para las bases de datos relacionales.
• Desde 1986, el estándar SQL ha aparecido en diferentes versiones como
por ejemplo: SQL:92, SQL:99, SQL:2003.
• MySQL es una idea originaria de la empresa opensource MySQL AB
establecida inicialmente en Suecia en 1995 y cuyos fundadores son David
Axmark, Allan Larsson, y Michael "Monty" Widenius.
• El objetivo que persigue esta empresa consiste en que MySQL cumpla el
estándar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad.
• Michael Widenius en la década de los 90 trató de usar mySQL para
conectar las tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL
no era rápido y flexible para sus necesidades. Esto lo conllevó a crear una
API SQL denominada MySQL para bases de datos muy similar a la de
mySQL pero más portable.
• La procedencia del nombre de MySQL no es clara. Por más de 10 años, las
herramientas han mantenido el prefijo My. También, se cree que tiene
relación con el nombre de la hija del cofundador Monty Widenius quien se
llama My.
• Por otro lado, el nombre del delfín de MySQL es Sakila y fue seleccionado
por los fundadores de MySQL AB en el concurso “Name the Dolphin”. Este
nombre fue enviado por Ambrose Twebaze, un desarrollador de
Opensource Africano, derivado del idioma SiSwate, el idioma local de
Swaziland y corresponde al nombre de una ciudad en Arusha, Tanzania,
cerca de Uganda la ciudad origen de Ambrose.
Especificaciones
Plataformas
MySQL funciona sobre múltiples plataformas, incluyendo:
SunOS
AIX
SCO OpenServer
BSD
SCO UnixWare
FreeBSD
Tru64
HP-UX
Windows 95
GNU/Linux
Windows 98
Mac OS X
Windows NT
NetBSDNovell Netware
Windows 2000
OpenBSD
Windows XP
OS/2 Warp
Windows Vista y otras
QNX
versiones de Windows.
SGI IRIX
Solaris
También existe MySQL para OpenVMS en http://www.pi-net.dyndns.org/anonymous/kits/.
Características de la versión 5.0.22
Un amplio subconjunto de ANSI SQL 99, y varias extensiones.
Soporte a multiplataforma
Procedimientos almacenados
Triggers
Cursors
Vistas actualizables
Soporte a VARCHAR
INFORMATION_SCHEMA
Modo Strict
Soporte X/Open XA de transacciones distribuidas; transacción en dos fases como parte de
esto, utilizando el motor InnoDB de Oracle
Motores de almacenamiento independientes (MyISAM para lecturas rápidas, InnoDB
para transacciones e integridad referencial)
Transacciones con los motores de almacenamiento InnoDB, BDB Y Cluster; puntos de
recuperación(savepoints) con InnoDB
Soporte para SSL
Query caching
Sub -SELECTs (o SELECTs anidados)
Replication with one master per slave, many slaves per
master, no automatic support for multiple masters per
slave.
Indexing y buscando campos de texto completos
usando el motor de almacenamiento MyISAM
Embedded database library
Soporte completo para Unicode
Conforme a las reglas ACID usando los motores InnoDB,
BDB y Cluster
Shared-nothing clustering through MySQL Cluster
Características distintivas
Las siguientes características son implementadas únicamente por MySQL:
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.
Agrupación de transacciones, reuniendo múltiples transacciones de varias
conexiones para incrementar el número de transacciones por segundo.
Mejoras futuras
El mapa de ruta de MySQL 5.1 indica soporte para:
Particionado de la base de datos
Backup en línea para todos los motores de almacenamiento
Replicación segura
Restricciones a nivel de columna
Planificación de eventos
Funciones XML
MySQL en cifras
Según las cifras del fabricante, existirían más de seis millones de copias de MySQL
funcionando en la actualidad, lo que supera la base instalada de cualquier otra
herramienta de bases de datos.
El tráfico del sitio web de MySQL AB superó en 2004 al del sitio de IBM.
Usuarios destacados
Amazon.com
Cox Communication - La cuarta televisión por cable más importante de EEUU,
tienen más de 3.600 tablas y aproximadamente dos millones de inserciones cada hora.
Google - Para el motor de búsqueda de la aplicación AdWords
LiveJournal - Cerca de 300 millones de paginas servidas cada día.
NASA
Slashdot - con cerca de 50 millones de páginas servidas cada día.
Yahoo! - para muchas aplicaciones críticas
Nokia - usa un cluster MySQL para mantener información en tiempo real sobre
usuarios de redes de móviles.
NetQOS - usa MySQL para la gestión de algunas de las redes más grandes del mundo
como las de Chevron, American Express y Boeing.
CNET Networks
Wikipedia - sirve más de 200 millones de consultas y 1,2 millones de actualizaciones
cada día, con picos de 11.000 consultas por segundo.
JDBC
• Es un API de Java para acceder a sistemas de bases de datos, y prácticamente a
cualquier tipo de dato tabular.
• El API JDBC consiste de un conjunto de clases e interfaces que permiten a
cualquier programa Java acceder a sistemas de bases de datos de forma
homogénea.
• Con el API JDBC no es necesario escribir un programa para accesar a Sybase, otro
programa para accesar a Oracle, y otro programa para accesar a MySQL; con esta
API, se puede crear un sólo programa en Java que sea capaz de enviar sentencias
SQL a la base de datos apropiada.
• Al igual que ODBC, la aplicación de Java debe tener acceso a un controlador
(driver) JDBC adecuado. Este controlador es el que implementa la funcionalidad
de todas las clases de acceso a datos y proporciona la comunicación entre el API
JDBC y la base de datos real.
• De manera muy simple, al usar JDBC se pueden hacer tres cosas:
-Establecer una conexión a una fuente de datos (ej. una base de datos)
-Mandar consultas y sentencias a la fuente de datos
-Procesar los resultados
JDBC define ocho
interfaces para
operaciones con bases de
datos, de las que se
derivan las clases
correspondientes. La figura
siguiente, en formato OMT,
con nomenclatura UML,
muestra la interrelación
entre estas clases según el
modelo de objetos de la
especificación de JDBC.
Los distribuidores de bases de datos suministran los controladores que
implementan el API JDBC y que permiten acceder a sus propias
implementaciones de bases de datos. De esta forma JDBC proporciona a los
programadores de Java una interfaz de alto nivel y les evita el tener que tratar
con detalles de bajo nivel para acceder a bases de datos.
En el caso del manejador de bases de datos MySQL, Connector/J es el
controlador JDBC oficial. En el momento de escribir este artículo se pueden
encontrar tres versiones de este controlador, pero sólo una de ellas es la versión
recomendada, la versión estable más reciente (en este caso la versión 3.0.8). Los
procedimientos descritos aquí deben de ser prácticamente los mismos si se utiliza
alguna otra versión del controlador, incluso, si se usa alguna de las versiones en
desarrollo. Por supuesto, se recomienda usar la versión más reciente del
controlador que esté disponible.
Cabe señalar que actualmente JDBC es el nombre de una marca registrada, y ya
no más un acrónimo; es decir, JDBC ya no debe entenderse como "Java Database
Conectivity".
Herramientas necesarias
Un ambiente de desarrollo para Java, tal como el Java 2
SDK, el cual está disponible en java.sun.com. La versión
estándar del SDK 1.4 ya incluye el API JDBC.
Un servidor de bases de datos MySQL al que se tenga
acceso con un nombre de usuario y contraseña.
El controlador JDBC para MySQL, Connector/J
Clase/Interface
Descripción
Driver
Permite conectarse a una base de datos: cada gestor de base
de datos requiere un driver distinto
DriverManager
Permite gestionar todos los drivers instalados en el sistema
DriverPropertyInfo
Proporciona diversa información acerca de un driver
Connection
Representa una conexión con una base de datos. Una
aplicación puede tener más de una conexión a más de una
base de datos
DatabaseMetadata
Proporciona información acerca de una Base de Datos, como
las tablas que contiene, etc.
Statement
Permite ejecutar sentencias SQL sin parámetros
PreparedStatement Permite ejecutar sentencias SQL con parámetros de
entrada/TD>
CallableStatement
Permite ejecutar sentencias SQL con parámetros de entrada y
salida, típicamente procedimientos almacenados
ResultSet
Contiene las filas o registros obtenidos al ejecutar un SELECT
ResultSetMetadata
Permite obtener información sobre un ResultSet, como el
número de columnas, sus nombres, etc.
Muchas
Gracias