josé mendez aguilar Álvaro navarro moya. definiciones base de datos podemos considerar que es un...
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.
• 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).
SQLSQL
Componentes del SQL
El lenguaje SQL está compuesto por:
ComandosCláusulasOperadoresFunciones de agregado
Estos elementos se combinan en las instrucciones paracrear, 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 Descripción
CREATEUtilizado para crear nuevas tablas, campose índices
DROPEmpleado para eliminar tablas e índices
ALTER
Utilizado para modificar las tablas agregandocampos o cambiando la definición de los campos.
Comandos DML
Comando
Descripción
SELECTUtilizado para consultar registros de la base de datos que satisfagan un criterio determinado
INSERTUtilizado para cargar lotes de datos en la base de datos en una única operación.
UPDATEUtilizado para modificar los valores de los campos y registros especificados
DELETEUtilizado para eliminar registros de una tabla de una base de datos
ComandoDescripción
FROMUtilizada para especificar la tabla de la cual se van a seleccionar los registros
WHEREUtilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar
GROUPBY
Utilizada para separar los registros seleccionados en grupos específicos
HAVINGUtilizada para expresar la condición que debe satisfacer cada grupo
ORDERBY
Utilizada para ordenar los registros seleccionados de acuerdo con un orden específico
Comandos DML
Operadores Lógicos
Operador
Uso
ANDEs el “y” lógico. Evalúa dos condiciones y devuelve un valor de verdad sólo si ambas son ciertas.
OREs el “o” lógico. Evalúa dos condiciones y devuelve un valor de verdad si alguna de las dos es cierta.
NOTNegación lógica. Devuelve el valor contrario de la expresió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
InUtilizado para especificar registros de una base de datos
Operadores de comparación
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
AVGUtilizada para calcular el promedio de los valores de un campo determinado
COUNTUtilizada para devolver el número de registros de la selección
SUMUtilizada para devolver la suma de todos los valores de un campo determinado
MAXUtilizada para devolver el valor más alto de un campo especificado
MINUtilizada para devolver el valor más bajo de un campo especificado
Funciones de Agregado
MySQLMySQL
Historia del proyectoHistoria 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
PlataformasMySQL funciona sobre múltiples plataformas, incluyendo:
AIXBSDFreeBSDHP-UXGNU/LinuxMac OS XNetBSDNovell NetwareOpenBSDOS/2 WarpQNXSGI IRIXSolaris
También existe MySQL para OpenVMS en http://www.pi-net.dyndns.org/anonymous/kits/.
SunOSSCO OpenServerSCO UnixWareTru64Windows 95Windows 98Windows NTWindows 2000Windows XPWindows Vista y otras versiones de Windows.
Características de la versión 5.0.22Un amplio subconjunto de ANSI SQL 99, y varias extensiones. Soporte a multiplataformaProcedimientos almacenadosTriggersCursorsVistas actualizablesSoporte 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 cachingSub -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 UnicodeConforme 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 cifrasSegú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 destacadosAmazon.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 NetworksWikipedia - 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