Este documento describe los componentes básicos de una base de datos, incluyendo tablas, formularios, consultas e informes. Explica que las tablas almacenan los datos en filas y columnas, los formularios permiten la entrada y visualización de datos, las consultas recuperan datos específicos de varias tablas, e informes generan reportes. También resume brevemente la evolución histórica de las bases de datos desde las cintas magnéticas hasta las bases de datos relacionales modernas.
3. TABLA DE
CONTENIDO
INTRODUCION...........................................................................................1
QUE ESUNA BASE DE DATOS...........................................................................2
Tipos de bases de datos.........................................................................................3-4-5-6-7
EVOLUCION DE LA BASE DE DATOS……………………..(8)-(15)
Formulariosy componentes………………………………………………16-(26)
Tabla, registro y campos………………………………………………………..27-(39)
Tipos de tablasen mi SQL……………………………………………………….39-(42)
Historia y evolución de mysql, Server y postrer…………………………42-(52)
El modeloentidad relación………………………………………………………………..57-(61)
Modelorelacional…………………………………………………………………………..62-(65)
Las consultas……………………………………………………………………..66-(70)
La indexación…………………………………………………………………..71-(75)
Bases de datosdistribuidas……………………………………76-(83)
Base de datosno sql……………………………………………………………….83-
4. 1
INTRODUCION
Lo que van haber se trata de las bases de
datos, acces y su historia además todo lo
primordial de acces con todas las
respuestas que le puedan ayudar ahora
sin mas que decir les dejo el desarrollo de
acces y para
La principal ventaja de utilizar bases de
datos es que múltiples usuarios pueden
acceder a ellas al mismo tiempo.
5. 2
QUE ES UNA BASE DE
DATOS
Una base de datos (cuya abreviatura
es BD) es una entidad en la cual se
pueden almacenar datos de manera
estructurada, con la menor
redundancia posible. Diferentes
programas y diferentes usuarios
deben poder utilizar estos datos. Por
lo tanto, el concepto de base de
datos generalmente está
relacionado con el de red, ya que se
debe poder compartir esta
información. Generalmente se
habla de un "Sistema de
6. 3
información" para designar a la
estructura global que incluye todos
los mecanismos para compartir
diferentes datos del sistema de
información
Tipos de bases de datos
El modelo de base de datos plana
En un modelo de base de datos global,
hay dos dimensiones (estructura plana)
de conjunto de datos. Por ejemplo, hay
una columna de información y dentro
de esta columna, se supone que cada
dato se referirá a la otra. Por ejemplo,
un modelo de base de datos plana sólo
7. 4
incluye los códigos postales. Dentro de
la base de datos, sólo habrá una
columna y cada nueva fila dentro de
una columna será un nuevo código
postal.
El modelo de base de datos jerárquica
El modelo jerárquico de bases de datos
se asemeja a la estructura de un árbol,
tal como Microsoft Windows organiza
las carpetas y archivos. En un modelo
jerárquico de bases de datos, cada
enlace es anidado con el fin de
conservar los datos organizados en un
orden particular en un mismo nivel de
8. 5
lista. Por ejemplo, una base de datos
jerárquico de las ventas, puede incluir
las ventas de cada día como un archivo
separado. Anidadas dentro de este
archivo están todas las ventas (el
mismo tipo de datos) para el día.
Modelo de la Red
En un modelo de red, la característica
definitoria es que se almacena un
registro con un enlace a otros registros
- en efecto, una red. Estas redes (o, a
veces, a que se refiere como punteros)
puede ser una variedad de diferentes
tipos de información como números de
9. 6
nodo de un disco o incluso la
dirección.
El Modelo Relacional
El modelo relacional es el más popular
tipo de base de datos y una
herramienta extremadamentepotente,
no sólo para almacenar información,
también para acceder a ella. Las bases
de datos relacionales son organizadas
en forma de tablas. La belleza de un
cuadro es que la información se puede
acceder o añadir sin reorganizar las
tablas. Una tabla puede tener muchos
registros y cada registro puede tener
10. 7
muchos campos.
Cuadros que a veces se llaman una
relación. Por ejemplo, una empresa
puede tener una base de datos
denominada los pedidos de los clientes,
dentro de esta base de datos serán
diferentes tablas o relaciones de todos
los relativos a los pedidos de los
clientes. Tablas pueden incluir la
información del cliente (nombre,
dirección, contacto, información,
número de cliente, etc.) y otras tablas
(relaciones), como las órdenes que el
cliente compró anteriormente (esto
puede incluir un número de artículo,
la descripción del artículo, cantidad de
11. 8
pago, la forma de pago, etc.). Cabe
señalar que cada registro (grupo de
campos) en una base de datos
relacional tiene su propia clave
principal. Una clave principal es el
único campo quelpo. hace que sea fácil
identificar a un registro.
12. 9
Evolución de la base
de datos
El uso de sistemas de bases de datos
automatizadas, se desarrollo a partir de
la necesidad de almacenar grandes
cantidades de datos, para su posterior
consulta, producidas por las nuevas
industrias que creaban gran cantidad
de información.
Década de 1950
En este lapso de tiempo se da origen a
las cintas magnéticas, las cuales
13. 10
sirvieron para suplir las necesidades de
información de las nuevas industrias.
Por medio de este mecanismo se
empezó a automatizar la información
de las nóminas, como por ejemplo el
aumento de salario. Consistía en leer
una cinta o más y pasar los datos a
otra, y también se podían pasar desde
las tarjetas perforadas. Simulando un
sistema de Backus, que consiste en
hacer una copia de seguridad o copia
de respaldo, para guardar en un medio
extraíble la información importante.
La nueva cinta a la que se transfiere la
información pasa a ser una cinta
maestra. Estas cintas solo se podían
14. 11
leer secuencial y ordenadamente.
Década de 1960
El uso de los discos en ese momento
fue un adelanto muy efectivo, ya que
por medio de este soporte se podía
consultar la información directamente,
esto ayudo a ahorrar tiempo. No era
necesario saber exactamente donde
estaban los datos en los discos, ya que
en milisegundos era recuperable la
información. A diferencia de las cintas
magnéticas, ya no era necesaria la
secuencialidad, y este tipo de soporte
empieza a ser ambiguo.
Los discos dieron inicio a las Bases de
15. 12
Datos, de red y jerárquicas, pues los
programadores con su habilidad de
manipulación de estructuras junto con
las ventajas de los discos era posible
guardar estructuras de datos como
listas y árboles.
Década de 1970
Edgar Frank Codd (23 de agosto de
1923 – 18 de abril de 2003), en un
artículo "Un modelo relacional de
datos para grandes bancos de datos
compartidos" ("A Relacional Medel of
Data for Largue Shares Data Banks")
en 1970, definió el modelo relacional y
publicó una serie de reglas para la
16. 13
evaluación de administradores de
sistemas de datos relacionales y así
nacieron las bases de datos
relacionales.
A partir de los aportes de Codd el
multimillonario Larry Allison
desarrollo la base de datos Oracle, el
cual es un sistema de administración
de base de datos, que se destaca por sus
transacciones, estabilidad, escalabilidad
y multiplataforma.
Inicialmente no se uso el modelo
relacional debido a que tenía
inconvenientes por el rendimiento, ya
que no podían ser competitivas con las
bases de datos jerárquicas y de red.
Ésta tendencia cambio por un proyecto
17. 14
de IBM el cual desarrolló técnicas para
la construcción de un sistema de bases
de datos relacionales eficientes,
llamado Sistema R.
Edgar Frank Codd IBM
Corporation Larry Ellison
Década de 1980
Las bases de datos relacionales con su
sistema de tablas, filas y columnas,
pudieron competir con las bases de
datos jerárquicas y de red, ya que su
nivel de programación era bajo y su
uso muy sencillo.
En esta década el modelo relacional ha
conseguido posicionarse del mercado
18. 15
de las bases de datos. Y también en este
tiempo se iniciaron grandes
investigaciones paralelas y distribuidas,
como las bases de datos orientadas a
objetos.
Principios década de los 90
Para la toma de decisiones se crea el
lenguaje SQL, que es un lenguaje
programado para consultas. El
programa de alto nivel SQL es un
lenguaje de consulta estructurado que
analiza grandes cantidades de
información el cual permite especificar
diversos tipos de operaciones frente a
la misma información, a diferencia de
19. 16
las bases de datos de los 80 que eran
diseñadas para las aplicaciones de
procesamiento de transacciones. Los
grandes distribuidores de bases de
datos incursionaron con la venta de
bases de datos orientada a objetos.
Finales de la década de los 90
El boom de esta década fue la
aparición de la WWW “Word Wide
Web‿ ya que por éste medio se
facilitaba la consulta de las bases de
datos. Actualmente tienen una amplia
capacidad de almacenamiento de
información, también una de las
ventajas es el servicio de siete días a la
20. 17
semana las veinticuatro horas del día,
sin interrupciones a menos que haya
planificaciones de mantenimiento de
las plataformas o el software.
Siglo XXI
En la actualidad existe gran cantidad
de alternativas en línea que permiten
hacer búsquedas orientadas a
necesidades especificas de los usuarios,
una de las tendencias más amplias son
las bases de datos que cumplan con el
protocolo Open Archives Iniciativa –
Protocolo por Metadato Harvesting
(OAI-PMH) los cuales permiten el
almacenamiento de gran cantidad de
22. 19
Formularios y
componentes
Formulario: Los Formularios
básicamente permite diseñar los
datos para visualizarse por pantalla.
Pero no sólo muestran datos
informativos de las tablas, también
son interactivos, por tanto permiten
introducir nuevos registros en las
tablas, modificar e incluso borrar
registros de las de una o varias
tablas relacionales. También
pueden hacer cálculos (campos
calculados o controles de cuadros
de texto) con los datos de las tablas.
Los campos que contienen objetos
OLE (imágenes, fotos, sonidos,
videos, etc.) necesitan ser
23. 20
mostrados en un formulario para
que se vean y/o escuchen...
EJEMPLO
Supongamos un conjuntos de
entidades de modelos de coches
que se que desea trasladar al
modelo de tablas relaciones. Se
definen en la tabla PRODUCTOS
de la imagen inferior. El atributo
(campo) Descripción que describe
el nombre del modelo de un coche.
el campo foto es una imagen (foto)
del modelo de coche en un campo
OLE que necesitar ser visualizado
en un formulario.
24. 21
El formulario permite ver la
fotografía y una lista desplegable
como se ve en la imagen siguiente.
En la tabla sólo puede verse los
registros como filas, en la que la
foto es un campo con un contenido
de tipo Imagen.
25. 22
Crear este formulario es
sumamente fácil. Pulsamos el
botón Diseño del formulario,
establecemos la propiedad de
formulario Origen del registro a la
tabla PRUDUCTOS. Obtenemos la
lista de campos que ves en la
imagen siguiente. Arrastramos el
campo foto al área de diseño de la
sección Detalla como ves en la
imagen sin olvidar ajustar las
propiedades del campo OLE foto,
por último insertamos un control
26. 23
lista. Si se ejecuta el asistente debes
saber que responder a las preguntas
del asistente.
Pero veamos otro ejemplo.
Supongamos un conjunto de
entidades de empleados de una
27. 24
empresa se convierten en la tabla o
consulta que muestra la imagen (C-
LISTADO-EMPLEADOS) inferior.
Los campos disponibles son
Apellido, Nombre, Po (porcentaje,
complemento o plus), Salario, etc.
Con el campo Salario y el campo
Porcentaje (Po en la imagen)
queremos realizar cálculos como el
salario bruto, es decir salario base
(campo Salario) mas el porcentaje
del salario que indica el campo
Porcentaje. Algunos empleados
tienen cero en como valor de
Porcentaje, no tienen plus,
complemento o comisión. También
queremos aplicar una retención
sobre el salario bruto (salario base
+ posible comisión). La retención
puede corresponde al IRPF que se
introduce como porcentaje. Y
28. 25
finalmente el neto o líquido que
ingresará el empleado..
La imagen siguiente muestra lo
que debe realizar el formulario
30. 27
Cuando se crea una base de datos, los
datos se almacenan en tablas. Cada
tabla representa a una entidad de la
base de datos (alumno, libro, producto,
…).
Una tabla es similar en apariencia a
una hoja de cálculo, en cuanto a que
los datos se almacenan en filas y
columnas. Cada fila de una tabla se
denomina registro. En los registros es
donde se almacena cada información
individual. Cada registro consta
de campos (al menos uno). Los campos
corresponden a las columnas de la
tabla (nombre, dirección, titulo, …)
Antes de crear tablas, debes examinar
cuidadosamente tus requisitos y
diseñar la base de datos para
determinar las tablas que necesitas.
31. 28
Cada registro tiene que estar
unívocamente definido, tiene que ser
único, no puede haber registros
duplicados. Para ello, definiremos uno
de los campos como clave. Es decir, la
clave define de manera única al
registro (DNI, matricula, código, Id
articulo.
Consultas
Las consultas son las que
verdaderamente hacen el trabajo en
una base de datos. Pueden realizar
numerosas funciones diferentes. Su
función más común es recuperar datos
específicos de las tablas. Los datos que
deseas ver suelen estar distribuidos por
varias tablas y, gracias a las consultas,
puedes verlos en una sola hoja de
datos.
32. 29
Además, puesto que normalmente no
deseas ver todos los registros a la vez,
las consultas le permiten agregar
criterios para “filtrar” los datos hasta
obtener solo los registros que desee
(libros que se han prestados y que
tienen que estar devueltos antes del
12/05/2015, alumnos que han nacido
en el año 2000.
Formularios
Los formularios se conocen a veces
como “pantallas de entrada de datos”.
Son las interfaces que se utilizan para
trabajar con los datos y, a menudo,
contienen botones de comando que
ejecutan diversos comandos. Se puede
crear una base de datos sin usar
formularios, editando los datos de las
hojas de las tablas. No obstante, casi
todos los usuarios de bases de datos
prefieren usar formularios para ver,
33. 30
escribir y editar datos en las tablas. Los
formularios proporcionan un formato
fácil de utilizar para trabajar con los
datos.
La introducción de los datos
directamente sobre las tablas es
bastante incómoda. Los formularios
permiten la introducción de datos en
las tablas de una forma más sencilla y
más limpia. En vez de introducir los
datos directamente sobre la tabla, los
datos se introducen en la tabla a través
de los formularios.
Informes
Los informes sirven para resumir y
presentar los datos de las tablas.
Normalmente, un informe responde a
una pregunta específica. Un informe se
puede ejecutar en cualquier momento
y siempre reflejará los datos
34. 31
actualizados de la base de datos. Los
informes suelen tener un formato que
permita imprimirlos, pero también se
pueden consultar en la pantalla,
exportar a otro programa o enviar por
correo electrónico.
Macros y Módulos
Las macros en Access se pueden
considerar como un lenguaje de
programación simplificado, que se
puede utilizar para aumentar la
funcionalidad de la base de datos. Las
macros contienen acciones que
realizan tareas, como abrir un informe,
ejecutar una consulta o cerrar la base
de datos. Casi todas las operaciones de
bases de datos que normalmente se
realizan manualmente se pueden
35. 32
automatizar mediante macros,
ahorrando así mucho tiempo.
Los módulos, como las macros, son
objetos que sirven para aumentar la
funcionalidad de la base de datos. Los
módulos se escriben en el lenguaje de
programación de Visual Basic para
Aplicaciones
36. 33
Tabla, registro y
campos
Las tablas son objetos fundamentales
de una base de datos porque en ellas es
donde se conserva toda la información
o los datos. Así, una base de datos de
una empresa puede tener una tabla
Contactos que almacene los nombres
de los proveedores, las direcciones de
correo electrónico y los números de
teléfono. En este artículo se ofrece
información general sobre las tablas de
las bases de datos de Access. Antes de
crear una, tenga claro cuáles son sus
requisitos y decida cuántas necesita. Si
desea ver una introducción sobre cómo
planear y diseñar una base de datos,
37. 34
Relaciones de tabla
Aunque cada tabla de una base de
datos almacena datos acerca de un
asunto específico, las tablas de una
base de datos relacional como Access
almacenan datos sobre asuntos
conectados entre sí. Por ejemplo, es
posible que una base de datos
contenga:
Una tabla de clientes con los clientes
de su empresa y sus direcciones.
Una tabla de productos con los
productos a la venta, incluidos los
precios e imágenes de cada artículo.
Una tabla de pedidos en la que se
realice un seguimiento de los pedidos
de los clientes.
Para conectar los datos almacenados
en tablas diferentes, se crean
relaciones. Una relación es una
38. 35
conexión lógica entre dos tablas que
tienen campos en común.
Claves
Los campos que forman parte de una
relación de tabla se denominan claves.
Una clave consta por lo general en un
campo, pero puede estar compuesta
por más de un campo. Existen dos tipos
de claves:
Clave principal: una tabla puede tener
solamente una clave principal. Una
clave principal está compuesta de uno
o más campos que identifican cada
registro almacenado en la tabla de
forma exclusiva. Access proporciona
automáticamente un número de
identificación único (denominado
número de Id.), que funciona como la
clave principal.
39. 36
Clave externa: una tabla puede tener
una o más claves externas. Este tipo de
clave contiene valores que se
corresponden con los valores de la
clave principal de otra tabla. Por
ejemplo, puede tener una tabla Pedidos
en la que cada pedido tenga un
número de identificación de cliente
que se corresponda con un registro de
una tabla Clientes. El campo de
identificador de cliente es una clave
externa de la tabla Pedidos.
La correspondencia de valores entre
campos principales es la base de la
relación de una tabla. La relación de
una tabla se puede usar para combinar
datos de tablas relacionadas. Por
ejemplo, suponga que tiene una tabla
Clientes y una tabla Pedidos. En la
tabla Clientes, cada registro se
40. 37
identifica por el campo de clave
principal (identificador).
Para asociar cada pedido a un cliente,
se agrega un campo de clave externa a
la tabla Pedidos correspondiente al
campo de identificador de la tabla
Clientes y luego se crea una relación
entre las dos claves. Al agregar un
registro a la tabla Pedidos, usa un valor
para el identificador de cliente de la
tabla Clientes. Siempre que desee ver
información sobre el cliente de un
pedido, usa la relación para identificar
con qué datos de la tabla Clientes se
corresponden los registros de la tabla
Pedidos.
41. 38
Un registro se compone de campos,
como un nombre, una dirección y un
número de teléfono. Los registros se
suelen denominar filas y los campos se
42. 39
suelen denominar columnas. Microsoft
Office Access 2007 permite agregar,
editar o eliminar registros de una tabla
directamente en la Vista de hoja de
datos.
AGREGAR UN NUEVO REGISTRO
Se agrega un nuevo registro a una base
de datos cuando se dispone de un
nuevo elemento del que se desea
realizar un seguimiento. Por ejemplo,
puede que desee agregar un nuevo
contacto a la tabla Contactos cuando
desea registrar la información de un
nuevo amigo o compañero. Cuando se
agrega un nuevo registro, Office
Access 2007 lo anexa al final de la
tabla.
43. 40
Para agregar un registro, abra primero
una tabla o un formulario. A veces se
abre automáticamente un formulario
cuando se abre una base de datos. Por
ejemplo, cuando abre una base de
datos creada a partir de la plantilla
Contactos, se abre automáticamente el
formulario Lista de contactos. Este
formulario es el formulario de inicio
de la base de datos Contactos.
Los campos
Podemos agregar muchos tipos de
campos que formarán parte de nuestra
base de datos. Cada campo admite
distintos tipos de datos, con diferentes
interfaces. Después de crear los
campos deseados podemos añadir
información en la base de datos.
Un campo es el nombre de la unidad
de información. Cada entrada en
44. 41
una base de datos puede tener
múltiples campos de diversos tipos. Por
ejemplo, un campo de texto llamado
'color favorito', que permite escribirlo,
o un menú llamado 'población' que
permita escoger de un listado de
poblaciones posibles. La combinación
de campos diversos nos permitirá
recabar toda la información que
consideremos relevante sobre los ítems
que constituyen la base de datos.
45. 42
NOMBRE Y DESCRIPCIÓN DEL
CAMPO
Todos los campos necesitan un
nombre y una descripción cuando se
crean.
TIPOS DE CAMPOS
Caja de selección
Permite crear una o más cajas de
selección. Cada línea escrita en las
'opciones' aparecerá como una caja de
selección diferente en la ventana de
edición de la entrada. Al editar la
entrada podremos seleccionar una o
más de las opciones y al visualizar la
entrada aparecerá en el campo
correspondiente el texto de la o las
opción/es seleccionada/s (en el caso de
que se haya seleccionado más de una
opción aparecerán la una bajo la otra,
no en la misma línea). Los Botones de
46. 43
radio se pueden utilizar si se desea que
el usuario, al editar la entrada,
seleccione tan sólo una de las opciones.
Las cajas de selección múltiple se
pueden utilizar, por ejemplo, en una
base de datos de películas, que pueden
ser de horror, comedia, del oeste, etc.
En este caso se podrían seleccionar
combinaciones de géneros, por
ejemplo horror-comedia o comedia-del
oeste.
El campo menú múltiple también
permite una selección de opciones,
pero en este caso clicando en un menú
(lo cual a menudo no resulta tan obvio
como seleccionar una opción).
Fecha
Permite que los usuarios entren una
fecha seleccionando en un listado
47. 44
desplegable el día, mes y año
correspondientes.
Archivo
Permite que los usuarios suban un
fichero desde su ordenador. Si se trata
de un fichero de imagen sería mejor
opción seleccionar el campo dibujo.
Menú
Es parecido a la caja de selección pero
el texto escrito en el área opciones se
presentará como un listado
desplegable a la hora de editar la
entrada. Cada línea de las opciones
será una opción del desplegable.
Menú (selección múltiple)
Parecido al caso anterior pero permite
que el usuario seleccione más de una
opción al editar la entrada
manteniendo apretadas las teclas de
48. 45
control o mayúsculas mientras clica
con el ratón. Resulta un poco más
complejo de utilizar que la caja de
selección, que también permite
selecciones múltiples.
Número
Pide a los usuarios que escriban un
número. El número debe ser entero,
aunque puede ser negativo (por
ejemplo: -2,-1,0,1,2,3,...). Si se escriben
caracteres no numéricos éstos y los que
le siguen no aparecerán o, si no hay
ningún número, el resultado será el
cero. Por ejemplo: "3.14" se
transformará en "3"; "1,000,000" en "1"; y
"seis" aparecerá como "0".
Dibujo
Permite al usuario subir un fichero de
imagen desde su ordenador.
49. 46
Botones de radio
Permite al usuario escoger una de
diversas opciones. Además, tan sólo
podrá guardar la entrada cuando haya
realizado la selección. Si sólo hay dos
opciones opuestas (por ejemplo
verdadero/falso, sí/no), se puede
utilizar una caja de selección múltiple,
aunque de esta manera se podrán
guardar entradas aunque el usuario no
haya seleccionado ninguna de las
opciones.
Texto
Los usuarios pueden escribir hasta 60
caracteres de texto. El campo área de
texto se puede utilizar para textos más
largos o que requieran algún tipo de
formato.
50. 47
Área de texto
Permite a los usuarios escribir un texto
largo y añadirle formato de manera
similar a cuando se escribe un mensaje
a un foro. Puede especificar el ancho
en columnas y el alto en filas del área
que se presentará a los usuarios.
URL
Pide al usuario que escriba una URL. Si
se selecciona la opción auto enlazar la
URL ésta aparecerá como un
hipervínculo. Si además se escribe algo
en nombre forzado para el enlace éste
será el texto utilizado para el
hipervínculo. Por ejemplo: en una base
de datos sobre autores puede resultar
interesante incorporar la página web
del autor. Si se escribe 'página web'
como nombre forzado, al clicar en el
texto página web de la entrada
51. 48
podremos acceder a la URL que
hayamos escrito.
Tipos de tablas en
mysql
1.ISAM.- es el formato de almacenaje
mas antiguo, y posiblemente pronto
desaparecerá. Presentaba limitaciones
(los ficheros no eran transportables
entre máquinas con distinta
arquitectura, no podía manejar
ficheros de tablas superiores a 4
gigas). Si aun tienes tablas tipo ISAM,
cámbialas a MYISAM.
2.MYISAM.- es el tipo de tabla por
defecto en MySQL desde la versión
3.23. Optimizada para sistemas
operativos de 64 bits, permite ficheros
de mayor tamaño que ISAM. Además
52. 49
los datos se almacenan en un formato
independiente, con lo que se pueden
copiar tablas de una máquina a otra
de distinta plataforma. Posibilidad de
indexar campos BLOB y TEXT
3.HEAP.- Crea tablas en memoria. Son
temporales y desaparecen cuando el
servidor se cierra; a diferencia de una
tabla TEMPORARY, que solo puede
ser accedida por el usuario que la
crea, una tabla HEAP puede ser
utilizada por diversos usuarios.
4.BDB.- Base de datos Berkeley. TST.
Solo en MySQL MAX
5.INNODB.- TST, ACID, con posibilidad
de commit, rol back, recuperación de
errores y bloqueo a nivel de fila.
6.MERGE mas que un tipo de tabla es
la posibilidad de dividir tablas
MYISAM de gran tamaño (solo útil si
son verdaderamente de GRAN
tamaño) y hacer consultas sobre todas
53. 50
ellas con mayor rapidez. Las tablas
deben ser misan e idénticas en su
estructura.
MySQL nos permite variar el tipo de
tabla después de que esta fue creada.
TST se refiere a ‘Transacciones zafe
tablas’, o tablas para transacciones
seguras. A este tipo pertenecen DBD y
INNODB.
Las tablas tipo TST son menos rápidas
y ocupan mas memoria, pero a cambio
ofrecen mayor seguridad frente a
fallos durante la consulta.
Las tablas TST están disponibles desde
la versión 4.0 de MySQL
Las tablas TST permiten ir
introduciendo consultas y finalizar con
un COMMIT (que las ejecuta) o
ROLLBACK (que ignora los cambios)
54. 51
En bases de datos se denomina ACID a
un conjunto de características
necesarias para que una serie de
instrucciones puedan ser consideradas
como una transacción. Así pues, si un
sistema de gestión de bases de datos es
ACID compilan quiere decir que el
mismo cuenta con las funcionalidades
necesarias para que sus transacciones
tengan las características ACID.
En concreto ACID es un acrónimo de
Atomicity, Consistencia, Asolación and
Durability: Atomicidad, Consistencia,
Aislamiento y Durabilidad en español.
Historia y Evolución
de mysql, server y
postrer
Orígenes
55. 52
El origen de MySQL se remonta a la
década de los ochenta. Michael
Widenius, también conocido como
Monti, un joven programador que
realizaba complejas aplicaciones en
lenguaje BASIC, al no encontrar un
sistema de almacenamiento de
archivos que le resultara satisfactorio,
pensó en construir el suyo propio.
Años después, en 1995, y en
colaboración con David Axmark,
Widenius desarrolló un producto que
básicamente era el resultado de sus
investigaciones, más dos aportaciones
nuevas: el uso del lenguaje SQL y la
accesibilidad a través de Internet.
Así nació MySQL y también la
empresa MySQL AB.
Fig. 8.1. Michael Widenius
56. 53
Evolución
La evolución de MySQL se produce
con las sugerencias de los usuarios,
canalizadas por la empresa MySQL AB,
que contrata a programadores de todo
el mundo para que, a través de
Internet, vayan ampliando y
mejorando el producto. Las versiones,
como es costumbre en este tipo de
software libre, se van colgando en
Internet para que los usuarios puedan
disponer de ellas.
Sin embargo, también como es
habitual, hay que distinguir entre
versiones de prueba o beta y versiones
estables o de producción. Las versiones
de prueba o beta están a disposición de
los usuarios para ser testadas en busca
de posibles mejoras. Por su parte,
57. 54
las versiones estables o de
producción son las que ya están
preparadas para ser utilizadas a pleno
rendimiento.
En la actualidad, 4.1. 14 es la última
versión estable. Esta versión dispone de
características como gestión de
transacciones, integridad referencial
(bajo ciertas condiciones), uso de
índices, incorporación de librerías,
etcétera. La versión de prueba
actualmente disponible es la 5.0, que
empieza a incorporar elementos hasta
ahora no incluidos en MySQL, como el
uso de procedimientos, cursores,
triggers o vistas.Existe una versión
incluso más reciente, la 5.1, pero que
aún es un proyecto. Esta versión
promete mejoras en la seguridad y en
la gestión de claves ajenas, aunque
todavía no se conoce cómo se
58. 55
plasmarán dichas características en
posteriores versiones estables.
SQL SELVER
La historia de SQL (que se pronuncia
deletreando en inglés las letras que lo
componen, es decir "ese-su-ele" y no
"piquel" como se oye a menudo)
empieza en 1974 con la definición, por
parte de Donald Chamberlain y de
otras personas que trabajaban en los
laboratorios de investigación de IBM,
de un lenguaje para la especificación
de las características de las bases de
datos que adoptaban el modelo
relacional. Este lenguaje se llamaba
SEQUEL (Estructurad English Quera
Lenguaje) y se implementó en un
59. 56
prototipo llamado SEQUEL-XRM entre
1974 y 1975. Las experimentaciones
con ese prototipo condujeron, entre
1976 y 1977, a una revisión del
lenguaje (SEQUEL/2), que a partir de
ese momento cambió de nombre por
motivos legales, convirtiéndose en
SQL. El prototipo (Sistema R), basado
en este lenguaje, se adoptó y utilizó
internamente en IBM y lo adoptaron
algunos de sus clientes elegidos.
Gracias al éxito de este sistema, que no
estaba todavía comercializado, también
otras compañías empezaron a
desarrollar sus productos relacionales
basados en SQL. A partir de 1981, IBM
comenzó a entregar sus productos
relacionales y en 1983 empezó a
vender DB2. En el curso de los años
ochenta, numerosas compañías (por
ejemplo Oracle y Súbase, sólo por citar
algunos) comercializaron productos
60. 57
basados en SQL, que se convierte en el
estándar industrial de hecho por lo que
respecta a las bases de datos
relacionales.
En 1986, el ANSI adoptó SQL
(sustancialmente adoptó el dialecto
SQL de IBM) como estándar para los
lenguajes relacionales y en 1987 se
transformó en estándar ISO. Esta
versión del estándar va con el nombre
de SQL/86. En los años siguientes, éste
ha sufrido diversas revisiones que han
conducido primero a la versión SQL/89
y, posteriormente, a la actual SQL/92.
El hecho de tener un estándar definido
por un lenguaje para bases de datos
relacionales abre potencialmente el
camino a la intercomunicabilidad
entre todos los productos que se basan
en él. Desde el punto de vista práctico,
por desgracia las cosas fueron de otro
61. 58
modo. Efectivamente, en general cada
productor adopta e implementa en la
propia base de datos sólo el corazón del
lenguaje SQL (el así llamado Entre
leves o al máximo el Intermédiate
leve), extendiéndolo de manera
individual según la propia visión que
cada cual tenga del mundo de las bases
de datos.
Actualmente, está en marcha un
proceso de revisión del lenguaje por
parte de los comités ANSI e ISO, que
debería terminar en la definición de lo
que en este momento se conoce como
SQL3. Las características principales de
esta nueva encarnación de SQL
deberían ser su transformación en un
lenguaje stand-alome (mientras ahora
se usa como lenguaje hospedado en
otros lenguajes) y la introducción de
nuevos tipos de datos más complejos
62. 59
que permitan, por ejemplo, el
tratamiento de datos multimedia les.
POSTGRE SQL
El Sistema Gestor de Bases de Datos
Relacionales Orientadas a Objetos
conocido como PostgreSQL (y
brevemente llamado Postgres95) está
derivado del paquete Postgres escrito
en Berkeley. Con cerca de una década
de desarrollo tras él, PostgreSQL es el
gestor de bases de datos de código
abierto más avanzado hoy en día,
ofreciendo control de concurrencia
multa-versión, soportando casi toda la
sintaxis SQL (incluyendo su consultas,
transacciones, y tipos y funciones
definidas por el usuario), contando
también con un amplio conjunto de
enlaces con lenguajes de
63. 60
programación (incluyendo C, C++,
Java, Perl, tal y Python).
EL PROYECTO POSTGRES DE
BERKELEY
La implementación
del DBMS Postgrescomenzó en 1986.
Los conceptos iniciales para el sistema
fueron presentados en Te Designa
of Postores la definición del modelo de
datos inicial apareció
en Te Postgres Data Modelo. El diseño
del sistema de reglas fue descrito en
ese momento en Te Designó of
te Postgres Rules Sistema. La lógica y
arquitectura del gestor de
almacenamiento fueron detalladas en
Te Postgres Storage Sistema.
Postgres ha pasado por varias
revisiones importantes desde entonces.
El primer sistema de pruebas fue
64. 61
operacional en 1987 y fue mostrado en
la Conferencia ACM-SIGMOD de 1988.
Lanzamos la Versión 1, descrita en Te
Implementación of Postgres, a unos
pocos usuarios externos en Junio de
1989. En respuesta a una crítica del
primer sistema de reglas (A Comentar
en te Postgres Rules Sistema), éste fue
rediseñado (En Rules, Procederes,
Coaching and Bies in Databas
Sistemas) y la Versión 2, que salió en
Junio de 1990, lo incorporaba. La
Versión 3 apareció en 1991 y añadió
una implementación para múltiples
gestores de almacenamiento, un
ejecutor de consultas mejorado y un
sistema de reescritura de reglas nuevo.
En su mayor parte, las siguientes
versiones hasta el lanzamiento
de Postgres95 (ver más abajo) se
centraron en mejorar la portabilidad y
la fiabilidad.
65. 62
Postgres forma parte de la
implementación de muchas
aplicaciones de investigación y
producción. Entre ellas: un sistema de
análisis de datos financieros, un
paquete de monitorización de
rendimiento de motores a reacción,
una base de datos de seguimiento de
asteroides y varios sistemas de
información geográfica. También se ha
utilizado como una herramienta
educativa en varias universidades.
Finalmente, Ilustra Información
Technologies (posteriormente
absorbida por Informes) tomó el
código y lo
comercializó. Postgres llegó a ser el
principal gestor de datos para el
proyecto científico de computación
Sequoia 2000 a finales de 1992.
66. 63
El tamaño de la comunidad de
usuarios externos casi se duplicó
durante 1993. Pronto se hizo obvio que
el mantenimiento del código y las
tareas de soporte estaban ocupando
tiempo que debía dedicarse a la
investigación. En un esfuerzo por
reducir esta carga, el proyecto terminó
oficialmente con la Versión 4.2.
POSTGRES95
En 1994, Andrew Ya y Dolly añadieron
un intérprete de lenguaje SQL
a Postgres. Postgres95 fue publicado a
continuación en la Web para que
encontrara su propio hueco en el
mundo como un descendiente de
dominio público y código abierto del
código original Postgres de Berkeley.
El código de Postgres95 fue adaptado a
ANSI C y su tamaño reducido en un
67. 64
25%. Muchos cambios internos
mejoraron el rendimiento y la
facilidad de
mantenimiento.Postgres95 v1.0.x se
ejecutaba en torno a un 30-50% más
rápido en el Wisconsin Benchmarking
comparado composteos v4.2. Además
de corrección de errores, éstas fueron
las principales mejoras:
El lenguaje de
consultas Postule fue reemplazado
con SQL (implementado en el
servidor). Las su consultas no
fueron soportadas
hasta PostgreSQL(ver más abajo),
pero podían ser emuladas
en Postgres95 con
funciones SQL definidas por el
usuario. Las funciones agregadas
fueron re implementadas. También
se añadió una implementación de
68. 65
la cláusula GROUP BY. La
interfaz libpqpermaneció
disponible para programas escritos
en C.
Además del programa de
monitorización, se incluyó un
nuevo programa (psql) para
realizar consultas SQL interactivas
usando la librería GNU realinee.
Una nueva librería de
interfaz, libpgtcl, soportaba clientes
basados en Tal. Un Shell de
ejemplo, pgtclsh, aportaba nuevas
órdenes Tal para interactuar con el
motor Postgres95desde
programas tal
Se revisó la interfaz con objetos
grandes. Los objetos grandes de
Inversion fueron el único
mecanismo para almacenar objetos
grandes (el sistema de archivos de
Inversion fue eliminado).
69. 66
Se eliminó también el sistema de
reglas a nivel de instancia, si bien
las reglas siguieron disponibles
como reglas de reescritura.
Se distribuyó con el código fuente
un breve tutorial introduciendo las
características comunes de SQL y
de Postgres95.
Se utilizó GNU maque (en vez
de BSDmake) para la
compilación.Postgres95 también
podía ser compilado con un pc sin
parches (al haberse corregido el
problema de alineación de
variables de longitud doble).
POSTGRESQL
En 1996, se hizo evidente que el
nombre "Postgres95" no resistiría el
paso del tiempo. Elegimos un nuevo
nombre, PostgreSQL, para reflejar la
relación entre el Postgres original y las
70. 67
versiones más recientes con
capacidades SQL. Al mismo tiempo,
hicimos que los números de versión
partieran de la 6.0, volviendo a la
secuencia seguida originalmente por el
proyecto Postgres.
Durante el desarrollo de Postgres95 se
hizo hincapié en identificar y entender
los problemas en el código del motor
de datos. Con PostgreSQL, el énfasis ha
pasado a aumentar características y
capacidades, aunque el trabajo
continúa en todas las áreas.
Las principales mejoras
en PostgreSQLincluyen:
Los bloqueos de tabla han sido
sustituidos por el control de
concurrencia multi-versión, el cual
permite a los accesos de sólo
lectura continuar leyendo datos
71. 68
consistentes durante la
actualización de registros, y
permite copias de seguridad en
caliente desde pg_dump mientras la
base de datos permanece disponible
para consultas.
Se han implementado importantes
características del motor de datos,
incluyendo subconsultas, valores
por defecto, restricciones a valores
en los campos (constraints) y
disparadores (triggers).
Se han añadido funcionalidades en
línea con el estándar SQL92,
incluyendo claves primarias,
identificadores entrecomillados,
forzado de tipos cadena literales,
conversión de tipos y entrada de
enteros binarios y hexadecimales.
Los tipos internos han sido
mejorados, incluyendo nuevos tipos
de fecha/hora de rango amplio y
72. 69
soporte para tipos geométricos
adicionales.
La velocidad del código del motor
de datos ha sido incrementada
aproximadamente en un 20-40%, y
su tiempo de arranque ha bajado el
80% desde que la versión 6.0 fue
lanzada.
Modelo de entidad
relación
73. 70
Este modelo se obtiene en tiempo de
diseño de la base de datos. Fue
propuesto por Peter Chan en 1976 y
desde entonces se viene utilizando de
una forma muy global.
Se caracteriza por utilizar una serie de
símbolos y reglas para representar los
datos y sus relaciones.
Con este modelo conseguimos
representar de manera grafica la
estructura lógica de una base de datos.
Los principales elementos del modelo
entidad-relación son las entidades con
sus atributos y las relaciones entre
entidades.
74. 71
Elementos del modelo entidad-
relación
Entidad
Se trata de un objeto del que se recoge
información de interés de cara a la
base de datos. Gráficamente se
representan mediante un rectángulo.
Un ejemplo seria la entidad banco,
donde se recogerían los datos relativos
a ese banco, como puede ser el
nombre, el número de sucursal, la
dirección, etc.
Dentro de las entidades pueden ser
fuertes o débiles. Las fuertes son las
75. 72
que no dependen de otras entidades
para existir, mientras que las entidades
débiles siempre dependen de otra
entidad sino no tienen sentido por ellas
mismas.
Relación
Podemos definir la relación como una
asociación de dos o más entidades. A
cada relación se le asigna un nombre
para poder distinguirla de las demás y
saber su función dentro del modelo
entidad-relación. Otra característica es
el grado de relación, siendo las de
grado 1 relaciones que solo relacionan
una entidad consigo misma. Las de
76. 73
grado 2 son relaciones que asocian dos
entidades distintas, y las de grado n
que se tratan de relaciones que unen
mas de dos entidades.
Las relaciones se representas
gráficamente con rombos, dentro de
ellas se coloca el nombre de la
relación.
Otra característica es el tipo de
correspondencia entre dos relaciones;
1:1. Uno a uno, a cada ocurrencia de
una entidad le corresponde como
máximo una ocurrencia de la otra
entidad relacionada.
77. 74
1:N. Uno a Mucho, a cada ocurrencia
de la entidad A le pueden
corresponder varias de la entidad B.
N:M. Muchos a muchos, cada
ocurrencia de una entidad puede
contener varias de la otra entidad
relacionada y viceversa.
Para finalizar las características de la
relación tenemos la cordialidad que
define el número máximo y mínimo
de ocurrencias de cada tipo de entidad.
Se representa con los valores máximo
coma mínimo encerrados entre
paréntesis encima de la relación.
(máximo, mínimo)
Atributo
78. 75
Se define como cada una de las
propiedades de una entidad o relación.
Cada atributo tiene un nombre y todos
los posibles valores que puede tener.
Dentro de una entidad tiene que haber
un atributo principal que identifica a la
entidad y su valor tiene que ser único.
Un ejemplo de atributo principal seria
el DNI dentro de la entidad persona.
Ponemos un ejemplo de lo que seria
un esquema del modelo entidad-
relación.
79. 76
Modelo relacional
Se trata de un modelo bastante potente
y a la vez bastante simple , que nos
representas problemas. El elemento
principal de este modelo es la relación.
Por lo que podemos decir que una base
de datos relacional está compuesta por
un conjunto de relaciones.
Relación
La relación se representa mediante una
tabla, esta tabla representa a lo que en
el modelo entidad-relación
llamábamos entidad. Esta tabla
80. 77
contiene los atributos (columnas) y las
tuplas (filas).
Atributo: se trata de cada una de las
columnas de la tabla. Vienen definidas
por un nombre y pueden contener un
conjunto de valores.
Tuplas: se trata de cada una de las
filas de la tabla. Es importante señalar
que no se pueden tener tuplas
duplicadas en una tabla.
Dominios
El dominio dentro de la estructura del
modelo relacional es el conjunto de
valores que puede tomar un atributo.
Existen dos tipos de dominios:
81. 78
dominios generales: son aquellos que
están comprendidos entre un máximo
y un mínimo.
dominios restringidos: son los que
pertenecen a un conjunto de valores
específicos.
Claves
Cada tuplas de una tabla tiene que
estar asociada a una clave única que
permita identificarla.
Una clave puede estar compuesta por
uno o más atributos.
Una clave tiene que ser única dentro
de su tabla y no se puede descartar
ningún atributo de la misma para
identificar una fila.
Existen dos tipos de claves:
82. 79
Clave primaria (Primar Key): es el
valor o conjunto de valores que
identifican una fila dentro de una
tabla. Nunca puede ser NULL. Un
ejemplo claro de clave primaria seria
el DNI, que es único para cada
persona y no puede ser NULL.
Clave ajena (Forigan Key): es el valor
o valores de una tabla que
corresponde con el valor de una clave
primaria en otra tabla. Esta clave es la
que representa las relaciones entre las
tablas.
Vistas
Se trata de una tabla ficticia la cual
muestra atributos de otras tablas
83. 80
relacionadas. De esta forma obtenemos
los datos que nos interesan de una o
varias tablas. Es importante señalar
que no se pueden realizar operaciones
sobre vistas.
Las consultas
84. 81
Las consultas en Access nos permiten
‘filtrar’ la información proveniente de
una tabla. Por ejemplo, en el caso de
trabajar con una tabla que contuviera
una agenda telefónica, podríamos,
mediante una consulta, hacer que
aparecieran en pantalla solo los
teléfonos de las personas que fueran de
una determinada ciudad, o los que
tuvieran unos apellidos determinados.
Podemos utilizar consultas tanto para
campos numéricos como para campos
de tipo texto. Para comprender mejor
como funcionan las consultas, crea la
siguiente tabla en Access (si no sabes
cómo hacerlo, míralo en el capítulo 1
de este tutorial). Todos los campos son
de tipo ‘texto’, ten en cuenta que,
aunque el teléfono va a contener
números, no vamos a realizar
operaciones con ellos (no vamos a
85. 82
sumar los números de teléfono, por
ejemplo), además, puede que
queramos incluir guiones (-),
paréntesis u otros signos dentro del
número. Cuando guardes la tabla
asígnale el nombre de ‘AGENDA’ (sin
las comillas)
Nombre Apellidos Ciudad Teléfono
Antonio García Cádiz 8422597
Ana López Milán 7798542
Antonio Fernández Cádiz 2971102
86. 83
Ana García Londres 0524457
Esta tabla contiene cuatro registros.
Cada uno contiene los datos personales
de algunas personas. Una vez que
tengas creada la tabla y hayas
introducido los cuatro registros cierra
la tabla (pero no cierres la base de
datos)
Para crear una consulta,
Primero debes activar el apartado de
consultas en la ventana de la base de
datos. Fíjate que en la parte superior
aparece junto a ‘Tablas’, el apartado
‘Consultas’, haz clic sobre este apartado
para crear la consulta
Haz clic sobre el botón ‘Nuevo’
Selecciona la opción Vista diseño y
pulsa el botón aceptar
87. 84
Aparecerá una nueva ventana con
todas las tablas que tienes creadas en la
base de datos. Entre ellas debe de
aparecer la que acabas de crear
AGENDA (o el nombre que le hayas
asignado)
Selecciónala con el botón izquierdo del
ratón y luego pulsa el botón Agregar.
Si lo haces bien, verás que aparece una
pequeña ventana en la parte superior
izquierda de la pantalla con el nombre
de la tabla (si no es así, vuelve a repetir
la operación hasta que aparezca)
Pulsa el botón Cerrar
Fíjate que en la pequeña ventana que
tienes arriba, aparecen los nombres de
los campos de la tabla (nombre,
apellidos, ciudad y teléfono)
En la parte de abajo aparece otra
ventana más grande (que está vacía)
llena de filas (campo, tabla, orden,
mostrar, criterios, o)
88. 85
Haz un doble clic con el botón
izquierdo del ratón sobre el campo
‘Nombre’ (en la ventana pequeña de
arriba). Si lo haces bien, verás que este
campo aparece en la primera de las
columnas de la ventana de abajo y que
debajo del nombre del campo, aparece
el nombre de la tabla
Repite lo mismo para el campo
apellidos (haz un doble clic sobre él
con el botón izquierdo del ratón)
Si lo has hecho bien, deberías tener dos
columnas, una con el campo ‘nombre’
y otra a la izquierda con el campo
‘apellidos’
Para comprobar el resultado haz clic
sobre el botón ‘Vista’ (en la parte
superior de la ventana de Access, el
primero de la izquierda, justo debajo
de la palabra ‘Archivo’)
Si lo has hecho bien, verás que
aparecen los datos de la tabla, pero
89. 86
solo el nombre y los apellidos, no
aparecen los otros dos campos porque
no han sido añadidos.
La indexación
90. 87
La indexación es la principal
herramienta para optimizar el
rendimiento general de cualquier base
de datos. Es también la más conocida
por los usuarios de servidores Misal y,
paradójicamente, su no utilización es
una de las principales causas de bajo
rendimiento en servidores de bases de
datos.
Muchos administradores y
diseñadores simplemente parecen
olvidar usar índices para optimizar
los accesos a las bases de datos. Por
otro lado, algunas personas tienden
a indexar todo, esperando que de
esta manera el servidor acelere
cualquier tipo de consulta que se le
solicite. En realidad, esta práctica
puede causar una disminución en el
rendimiento, sobre todo en lo que
91. 88
respecta a inserciones y
modificaciones.
Para ver las ventajas de utilizar índices,
analizaremos en primer término una
simple búsqueda en una tabla sin
índice alguno:
• El constante acceso de escritura de
una tabla la mantiene desordenada.
• La ordenación de una tabla es una
operación costosa: el servidor tendría
que detenerse un tiempo considerable
para ordenar sus tablas.
• Muchas tablas tienen más de un
criterio de ordenación: ordenar según
una columna implica desordenar otra.
• La inserción y eliminación de datos
sin alterar el orden en una tabla es
costosa: la inserción de un registro en
una tabla grande implicaría una larga
espera en la actualización de la misma.
92. 89
• Si se opta por mantener la tabla
desordenada (que es la opción más
viable), una búsqueda implicaría
forzosamente un recorrido secuencial
(también denominado full san),
registro por registro.
El uso de índices en la ordenación de
las bases de datos ofrece las ventajas
siguientes:
• Permite ordenar las tablas por
varios criterios simultáneamente.
• Es menos costoso ordenar un
archivo índice, porque incluye sólo
referencias a la información y no la
información en sí.
• El coste de inserción y eliminación
es menor.
• Con los registros siempre
ordenados se utilizaran algoritmos
mucho más eficientes que el simple
recorrido secuencial en las consultas.
93. 90
El uso de índices también comporta
alguna desventaja:
• Los índices ocupan espacio en disco.
• Aún teniendo registros pequeños, el
mantener en orden un índice
disminuye la velocidad de las
operaciones de escritura sobre la tabla.
A pesar de estos inconvenientes, la
utilización de índices ofrece mayores
ventajas que desventajas, sobre todo en
la consulta de múltiples tablas, y el
aumento de rendimiento es mayor
cuanto mayor es la tabla.
Consideremos por ejemplo una
consulta sobre las tablas A, B, y C,
independientemente delcontenido de
la cláusula share, las tres tablas se
deben de combinar para hacer posible
posteriormente el filtrado según las
condiciones dadas:
94. 91
selecta *
Fromm A,B,C
share A. A = C.V.
and C.V. = CC.;
Consideremos que no son tablas
grandes, que no sobrepasan los 1.000
registros. Si A tiene 500 registros, B
tiene 600 y C 700, la tabla resultante de
la
consulta anterior tendrá 210 millone
s de registros. Misal haría el produc
to cartesiano de las tres tablas y,
posteriormente, se recorrería la
relación resultante para buscar los
registros que satisfacen las condiciones
dadas, aunque al final el resultado
incluya solamente 1.000 registros.
95. 92
Si utilizamos índices Misal los utilizaría
de una forma parecida a la siguiente:
• Tomaría cada uno de los registros
de A.
• Por cada registro de A, buscaría los
registros en B que cumpliesen con la
condición A. A = B.b. Como B está
indexado por el atributo 'b', no
necesitaría hacer el recorrido de todos
los registros, simplemente accedería
directamente al registro que cumpliese
la condición.
• Por cada registro de A y B
encontrado en el paso anterior,
buscaría los registros de C que
cumpliesen la condición B.b = C.c. Es el
mismo caso que en el paso anterior.
Comparando las dos alternativas de
búsqueda, la segunda ocuparía cerca
del 0,000005% del tiempo original.
96. 93
Base de datos
distribuida
En un sistema de base de datos
distribuida, los datos se almacenan en
varios computadores. Los
computadoresde un sistema distribuido
se comunican entre sí a través de
diversos medios de comunicación, tales
como cables de alta velocidad o líneas
telefónicas. No comparten la memoria
principal ni el reloj.
Los procesadores de un sistema
distribuido pueden variar en cuanto su
tamaño y función. Pueden incluir
microcomputadores pequeños,
estaciones de trabajo y sistemas de
computadores grandes de aplicación
97. 94
general. Estos procesadores reciben
diferentes nombres, tales como
localidades, nodos o computadores.
Un sistema distribuido de bases de datos
consiste en un conjunto de localidades,
cada uno de las cuales puede participar
en la ejecución de transacciones que
accedan a datos de una o varias
localidades. La diferencia principal
entre los sistemas de base de datos
centralizados y distribuidos es que, en
los primeros, los datos residen en una
sola localidad, mientras que, en los
últimos, se encuentran en varias
localidades.
Características:
Un sistema distribuido de base de datos
consiste en un conjunto de localidades,
cada una de las cuales mantiene un
sistema de base de datos local. Cada
98. 95
localidad puede procesar transacciones
locales, o bien transacciones globales
entre varias localidades, requiriendo
para ello comunicación entre ellas. Las
localidades pueden estar dispersas, ya
sea por un área geográfica extensa (a lo
largo de un país), llamadas redes de
larga distancia; o en un área reducida
(en un mismo edificio), llamadas redes
de área local. Para las primeras se
utilizan en la comunicación líneas
telefónicas, conexiones de microondas
y canales de satélites;mientras que para
las segundas se utiliza cables coaxiales
de banda base o banda ancha y fibra
óptica.
99. 96
Consideraciones al distribuir la base de
datos:
Existen varias razones para construir
sistemas distribuidos de bases de datos
que incluyen compartir la información,
fiabilidad y disponibilidad y agilizar el
procesamiento de las consultas. Pero
también tiene sus desventajas, como
desarrollos de software más costosos,
mayor posibilidad de errores y costos
extras de procesamiento.
VENTAJAS Y DESVENTAJAS:
Ventajas de la distribución de datos:
La principal ventaja de los sistemas
distribuidos es la capacidad de
compartir y acceder a la información de
una forma fiable y eficaz.
100. 97
Utilización compartida de los datos y
distribución del control:
La ventaja principal de compartir los
datos por medio de la distribución es
que cada localidad pueda controlar
hasta cierto punto los datos
almacenados localmente. En un
sistema centralizado, el administrador
de base de datos de la localidad central
controla la base de datos. En un sistema
distribuido existe un administrador
global de la base de datos que se
encarga de todo el sistema. Parte de esta
responsabilidad se delega al
administrador de base de datos de cada
localidad. Dependiendo del diseño del
sistema distribuido, cada administrador
101. 98
local podrá tener un grado de
autonomía diferente, que se conoce
como autonomía local. La posibilidad
de contar con autonomía local es en
muchos casos una ventaja importante
de las bases de datos distribuidas.
Fiabilidad y disponibilidad:
Si se produce un fallo en una localidad
de un sistema distribuido, es posible que
las demás localidades puedan seguir
trabajando. En particular, si los datos se
repiten en varias localidades, una
transacción que requiere un dato
específico puede encontrarlo en más de
una localidad. Así, el fallo de una
localidad no implica necesariamente la
desactivación del sistema.
102. 99
El sistema debe detectar cuando falla
una localidad y tomar las medidas
necesarias para recuperarse del fallo. El
sistema no debe seguir utilizando la
localidad que falló. Por último, cuando
se recupereo repareesta localidad, debe
contarse con mecanismos para
reintegrarla al sistema con el mínimo
de complicaciones.
La disponibilidad es fundamental para
los sistemas de bases de datos que se
utilizan en aplicaciones de tiempo real.
Por ejemplo, si una línea aérea no
puede tener acceso a la información, es
posible que pierda clientes a favor de la
competencia.
103. 100
Agilización del procesamiento de
consultas:
Si una consulta comprende datos de
varias localidades, puede ser posible
dividir la consulta en varias sub-
consultas que se ejecuten en paralelo en
distintas localidades. Sin embargo, en
un sistema distribuido no se comparte
la memoria principal, así que no todas
las estrategias de intersección se
pueden aplicar en estos sistemas. En los
casos en que hay repetición de los datos,
el sistema puede pasar la consulta a las
localidades más ligeras de carga.
Desventajas de la distribución de los
datos:
104. 101
La desventaja principal de los sistemas
distribuidos es la mayor complejidad
que se requiere para garantizar una
coordinación adecuada entre
localidades.
El aumento de la complejidad se refleja
en:
· Coste del desarrollo de
software: es más difícil estructura
un sistema de bases de datos
distribuidos y por tanto su coste es
menor.
Mayor posibilidad de errores: puesto
que las localidades del
sistema distribuido operan en
paralelo, es más difícil garantizar
que los algoritmos sean correctos.
105. 102
Mayor tiempo extra de
procesamiento: El intercambio
de mensajes y los cálculos
adicionales son una forma de
tiempo extra que no existe en los
sistemas centralizados.
Base datos noSQL
NOSQL
El problema de la escalabilidad de
SQL fue reconocido por empresas
Web 2.0, con grandes necesidades de
datos e infraestructura, como Google,
Amazon y Facebook. Ellos solos
tuvieron que buscar soluciones
propias a este problema, con
106. 103
tecnologías
como Vegetable, DynamoDB,
y Cassandra.
Este interés creciente dio lugar a una
serie de sistemas de gestión de base de
datos NoSQL (DBMS), con un
enfoque en el rendimiento, la
fiabilidad y la coherencia. Se
reutilizaron y mejoraron varias
estructuras de indexación existentes
con el propósito de mejorar la
búsqueda y el rendimiento de lectura.
En primer lugar, había tipos de bases
de datos NoSQL (de origen cerrado),
desarrolladas por grandes empresas
para satisfacer sus necesidades
107. 104
específicas, como BigTable de
Google, que se cree es el primer
sistema NoSQL y DynamoDB de
Amazon.
El éxito de estos sistemas patentados,
inició el desarrollo de varios sistemas
de bases de datos de código abierto y
de propietarios similiares siendo los
más populares Hypertable,
Cassandra, MongoDB, DynamoDB,
HBase y Redis.
¿QUÉ HACE A NOSQL DIFERENTE?
Una diferencia clave entre las bases
de datos de NoSQL y las bases de
datos relacionales tradicionales, es el
108. 105
hecho de que NoSQL es una forma de
almacenamiento no estructurado.
Esto significa que NoSQL no tiene
una estructura de tabla fija como las
109. 106
que se encuentran en las bases de
datos relacionales.
VENTAJAS Y DESVENTAJAS DE LAS
BASES DE DATOS NOSQL
Ventajas
Las bases de datos de NoSQL
presentan muchas ventajas en
comparación con las bases de datos
tradicionales.
A diferencia de las bases de datos
relacionales, las bases de datos NoSQL
están basadas en key-value pairs
Algunos tipos de almacén de bases de
datos NoSQL incluyen diferentes tipos
de almacenes como por ejemplo el
almacén de columnas, de documentos,
de key value store, de gráficos, de
110. 107
objetos, de XML y otros modos de
almacén de datos.
Algunos tipos de almacén de bases de
datos NoSQL incluyen almacenes de
columnas, de documentos, de valores
de claves, de gráficos, de objetos, de
XML y otros modos de almacén de
datos.
Podría decirse que las bases de datos
NoSQL de código abierto tienen una
implementación rentable. Ya que no
requieren las tarifas de licencia y
pueden ejecutarse en hardware de
precio bajo.
Cuando trabajamos con bases de datos
NoSQL, ya sean de código abierto o
tengan un propietario, la expansión es
más fácil y más barata que cuando se
trabaja con bases de datos relacionales.
Esto se debe a que se realiza un
escalado horizontal y se distribuye la
111. 108
carga por todos los nodos. En lugar de
realizarse una escala vertical, más
típica en los sistemas de bases de datos
relacionales.
Desventajas
Por supuesto, las bases de datos
NoSQL no son perfectas, y no siempre
van a ser la elección ideal.
La mayoría de las bases de datos
NoSQL no admiten funciones de
fiabilidad, que son soportadas por
sistemas de bases de datos relacionales.
Estas características de fiabilidad
pueden resumirse en: “atomicidad,
consistencia, aislamiento y
durabilidad.” Esto también significa
que las bases de datos NoSQL, que no
soportan esas características, ofrecen
consistencia para el rendimiento y la
escalabilidad.
112. 109
Con el fin de apoyar las características
de fiabilidad y coherencia, los
desarrolladores deben implementar su
propio código, lo que agrega más
complejidad al sistema.
Esto podría limitar el número de
aplicaciones en las que podemos
confiar para realizar transacciones
seguras y confiables, como por
ejemplo los sistemas bancarios.
Otras formas de complejidad
encontradas en la mayoría de las bases
de datos NoSQL, incluyen la
incompatibilidad con consultas SQL.
Esto significa que se necesita un
lenguaje de consulta manual, haciendo
los procesos mucho más lentos y
complejos.
113. 110
Bibliografía
Nació el día 9 del mes de
Septiembre del año 2003
En Santo Domingo Republica Dominicana
Creció en villa mella entro en la
Escuela alos dos años liego fue
Pasando de escuela en escuela
Alos 12 años entro a la escuela cristo obrero desde
séptimo hasta segundo de bachiller
Luego en técnico de informática
Le pusieron la ultima clase que
Era un libro en el que le llamo
Desarrollo de base de datos
Ahora sigue estudiando para cumplir su sueño
De que algún día llegar