herramientas de desarrollo

27
HERRAMIENTAS DE DESARROLLO Base de datos Una Base de Datos es una colección de información perteneciente a un mismo contexto (o problema), que está almacenada de forma organizada en ficheros. 1 Una base de datos está organizada mediante tablas que almacenan información concerniente a algún objeto o suceso. Estas tablas se relacionan formando vínculos o relaciones entre ellas, que ayudan a mantener la información de los diversos objetos de forma ordenada y coherente (sin contradicciones). Cico de Vide de una Base de Datos Como todo, las bases de datos tienen una vida fmita. Nacen en un arrebato de optirnismo,y su vida discurre cosechandofama, fortunay notoriedad,o un anonirnato tranquil0 segun 10s casos, antes de extinguirse. Incluso las bases de datos mas aclamadas acaban siendo sustituidas con el tiempo por otras estructuras mas flexibles y actualizadas, y la vida 1 Gestión de Base de Datos, Iván López Montalbán, Manuel de Castro Vázquez, Garceta, Pág.: 6

Upload: ashley-stronghold-witwicky

Post on 30-Jan-2016

226 views

Category:

Documents


0 download

DESCRIPTION

Herramientas de desarrollo

TRANSCRIPT

Page 1: Herramientas de Desarrollo

HERRAMIENTAS DE DESARROLLO

Base de datos

Una Base de Datos es una colección de información perteneciente a un

mismo contexto (o problema), que está almacenada de forma organizada en

ficheros.1

Una base de datos está organizada mediante tablas que almacenan

información concerniente a algún objeto o suceso. Estas tablas se relacionan

formando vínculos o relaciones entre ellas, que ayudan a mantener la información

de los diversos objetos de forma ordenada y coherente (sin contradicciones).

Cico de Vide de una Base de Datos

Como todo, las bases de datos tienen una vida fmita. Nacen en un arrebato

de optirnismo,y su vida discurre cosechandofama, fortunay notoriedad,o un

anonirnato tranquil0 segun 10s casos, antes de extinguirse. Incluso las bases de

datos mas aclamadas acaban siendo sustituidas con el tiempo por otras

estructuras mas flexibles y actualizadas, y la vida comienzade nuevo. Aunquesu

definicionexacta puede variar, por regla general el ciclo de vida de una base de

datos consta de seis fases.

Analisis: En la fase de análisis se entrevista a 10s accionistas y se

examinan todos 10s sistemas existentes para identificar 10s problemas, las

posibilidades y 10slimites. En esta fase se determinan 10s objetivos y el ámbito

del nuevo sistema.

1 Gestión de Base de Datos, Iván López Montalbán, Manuel de Castro Vázquez, Garceta, Pág.: 6

Page 2: Herramientas de Desarrollo

ii

Diseiio: En la fase de diseiio se crea el diseiio conceptual a partir de las

necesidades determinadas previamente. Tambien se crea un diseiio Iogico y

fisico para preparar la implementacion de la base de datos.

Implernentacion: En la fase de implementacion se instala el sistema de

adrninistracion de la base de datos (DBMS), se crea la base de datos y se

cargan o importan 10s datos.

Pruebas: En la fase de pruebas se examina la base de datos y se ajusta,

por

lo general junto a las aplicaciones asociadas.

Puesta en marcha: En esta fase la base de datos opera normalmente,

produciendo informacion para sus usuarios.

Mantenimiento: En la fase de mantenimiento se introducen cambios en la

base de datos en respuesta a las nuevas necesidades o se modifican las

condiciones operativas (como una carga mas pesada).

El desarrollo de la base de datos no es independiente a1desarrollo de

10ssistemas. De hecho, se suele considerar como uno de 10scomponentes del

proceso mas amplio de desarrollo de sistemas. Las fases del desarrollo de

sistemas coinciden basicamente con las fases del ciclo de vida de una base de

datos, con la diferencia de su alcance. Mientras el diseiio de las bases de datos se

centra en el diseiio del sistema para almacenar 10s datos, el diseiio de sistemas

se ocupa ademas de 10s procesos que incidiran en 10s datos.2

2 La biblia de my sql, pag. 322

Page 3: Herramientas de Desarrollo

iii

Modelos de los Datos

Es una colección de herramientas conceptuales para describir los datos, las

relaciones, la semántica y las restricciones de consistencia. Los diferentes

modelos de datos que se han propuesto se clasifican en tres grupos diferentes: 3

Modelos lógicos basados en objetos,

Modelos lógicos basados en registros

Modelos físicos.

Modelos de Datos Basados en Objetos

Los modelos de datos basados en objetos utilizan conceptos tales como

entidades, atributos y relaciones. Una entidad es un objeto singular (una persona,

lugar, cosa, concepto, suceso) dentro de la organización que hay que representar

mediante una base de datos. Un atributo es una propiedad que describe algún

aspecto del objeto suficientemente relevante como para registrarlo y una relación

es una asociación entre entidades. Los tipos más comunes de modelos de datos

basados en objetos son:

Entidad-Relación.

Semántica

Funcional

Orientado a objetos.

Modelos de Datos Basados en Registros

3 Sistemas de Base de Datos, Thomas M. Connolly, Carolyn E. Begg, Pearson, Pág. 41

Page 4: Herramientas de Desarrollo

iv

En un modelo de datos basados en registros, la base de datos está

compuesta por una serie de registros de formato fijo, posiblemente de tipos

distintos. Cada tipo de registros define un número fijo de campos, cada uno de los

cuales suele tener una longitud también fija. Existen tres tipos principales de

modelos lógicos de datos basados en registros:

El modelo de datos relacional,

El modelo de datos en red y

El modelo de datos jerárquico.

Modelo de Datos Físicos

Los modelos de datos físicos describen cómo se almacenan los datos en la

computadora, representando información tal como las estructuras de registro, el

ordenamiento de los registros y las rutas de acceso. No hay tanto modelos físicos

de datos como modelos lógicos, y los modelos físicos más comunes son:

El modelo unificador.

La memoria de marco.

Modelo Entidad-Relación

El modelo de datos entidad-relación (E-R) está basado en una percepción

del mundo real que consta de una colección de objetos básicos, llamados

entidades, y de relaciones entre estos objetos. Una entidad es una «cosa» u

«objeto» en el mundo real que es distinguible de otros objetos.

Page 5: Herramientas de Desarrollo

v

Las entidades se describen en una base de datos mediante un conjunto de

atributos. Una relación es una asociación entre varias entidades. El conjunto de

todas las entidades del mismo tipo, y el conjunto de todas las relaciones del

mismo tipo, se denominan respectivamente conjunto de entidades y conjunto de

relaciones.

La estructura lógica general de una base de datos se puede expresar

gráficamente mediante un diagrama ER, que consta de los siguientes

componentes:

Rectángulos, que representan conjuntos de entidades.

Elipses, que representan atributos.

Rombos, que representan relaciones entre conjuntos de entidades.

Líneas, que unen los atributos con los conjuntos de entidades y los

conjuntos de entidades con las relaciones.

Cada componente se etiqueta con la entidad o relación que representa.

Además de entidades y relaciones, el modelo E-R representa ciertas restricciones

que los contenidos de la base de datos deben cumplir. Una restricción importante

es la correspondencia de cardinalidades, que expresa el número de entidades con

las que otra entidad se puede asociar a través de un conjunto de relaciones. El

modelo entidad-relación se utiliza habitualmente en el proceso de diseño de bases

de datos.

Page 6: Herramientas de Desarrollo

vi

Ilustración 1 Ejemplo de modelo E-R

Cardinalidad

La Cardinalidad de una relación se calcula a través de las participaciones

de sus ocurrencias en ella. Se toman el número máximo de participaciones de

cada una de las entidades en la relación.

De esta manera, se clasifican las siguientes cardinalidades:

Cardinalidad 1:1 Esta Cardinalidad especifica que una entidad A puede

estar vinculada mediante una relación a una y solo una ocurrencia de otra

entidad B. A su vez una ocurrencia de la entidad B solo puede estar

vinculada a una ocurrencia de la entidad A.

Cardinalidad 1: N (o 1: Muchos) Esta relación especifica que una entidad A

puede estar vinculada mediante una relación a varias ocurrencias de otra

entidad B. Sin embargo, una de las ocurrencias de la entidad B solo puede

estar vinculada a una ocurrencia de la entidad A.

Cardinalidad M: N (o Muchos: Muchos) O también N: M, esta cardinalidad

especifica que una entidad A puede estar vinculada mediante una relación

Page 7: Herramientas de Desarrollo

vii

a varias ocurrencias de la entidad B, y a su vez, una ocurrencia de la

entidad B puede estar vinculada a varias de la entidad A. 4

Modelo Relacional

En el modelo relacional se utiliza un grupo de tablas para representar los

datos y las relaciones entre ellos. Cada tabla está compuesta por varias columnas,

y cada columna tiene un nombre único. En la Figura 3 se presenta un ejemplo de

base de datos relacional consistente en tres tablas: la primera muestra los clientes

de un banco, la segunda, las cuentas, y la tercera, las cuentas que pertenecen a

cada cliente.

Ilustración 2 Ejemplo de una base de datos relacional

4 Gestión de Base de datos, Iván López Montalbán, Manuel de Castro Vázquez, Garceta, Pág.: 47

Page 8: Herramientas de Desarrollo

viii

El modelo relacional es un ejemplo de un modelo basado en registros. Los

modelos basados en registros se denominan así porque la base de datos se

estructura en registros de formato fijo de varios tipos. Cada tabla contiene

registros de un tipo particular. Cada tipo de registro define un número fijo de

campos, o atributos.

Las columnas de la tabla corresponden a los atributos del tipo de registro.

No es difícil ver cómo se pueden almacenar las tablas en archivos.

El modelo de datos relacional es el modelo de datos más ampliamente

usado, y una amplia mayoría de sistemas de bases de datos actuales se basan en

el modelo relacional. El modelo relacional se encuentra a un nivel de abstracción

inferior al modelo de datos E-R. Los diseños de bases de datos a menudo se

realizan en el modelo E-R, y después se traducen al modelo relacional.

Las relaciones en el modelo relacional

Se define una relación como un conjunto de atributos, cada uno de los

cuales pertenece a un dominio, y que posee un nombre que identifica la relación.

Se representa gráficamente por una tabla con columnas (atributos) y filas (tupias).

El conjunto de tupias de una relación representa el cuerpo de la relación y el

conjunto de atributos y el nombre representan el esquema.5

5 Gestión de Base de Datos, Iván López Montalbán, Manuel de Castro Vázquez, Garceta, Pág.: 65

Page 9: Herramientas de Desarrollo

ix

Ilustración 3 definicion de relación

Otros conceptos del modelo relacional

A continuación se definen los conceptos necesarios para transformar el

modelo conceptual (diagrama entidad-relación) en el modelo lógico (modelo

relacional).

• Atributo: Características que describen a una entidad o relación.

• Dominio: Conjunto de valores permitidos para un atributo. Por ejemplo,

cadenas de caracteres, números enteros, los valores Sí o No, etc.

• Restricciones de semántica: Condiciones que deben cumplir los datos para

su correcto almacenamiento. Hay varios tipos:

Restricciones de clave: Es el conjunto de atributos que identifican de

forma única a una entidad.

Restricciones de valor único (UNIQUE): Es una restricción que

impide que un atributo tenga un valor repetido.

Restricciones de integridad referencial: Se da cuando una tabla tiene

una referencia a algún valor de otra tabla. En este caso la restricción

exige que exista el valor referenciado en la otra tabla.

Page 10: Herramientas de Desarrollo

x

Restricciones de dominio: Esta restricción exige que el valor que

puede tomar un campo esté dentro del dominio definido.

Restricciones de verificación (CHECK): Esta restricción permite

comprobar si un valor de un atributo es válido conforme a una

expresión.

Restricción de valor NULO (NULL o NOT NULL): Un atributo puede

ser obligatorio si no admite el valor NULO o NULL, es decir, el valor

falta de información o desconocimiento. Si admite como valor el valor

NULL, el atributo es opcional.

Disparadores o triggers: Son procedimientos que se ejecutan para

hacer una tarea concreta en el momento de insertar, modificar o

eliminar información de una tabla.

Restricciones genéricas adicionales o aserciones (ASSERT). Permite

validar cualquiera de los atributos de una o varias tablas.

• Clave: Una clave es un conjunto de atributos que identifican de forma única

una ocurrencia de entidad. En este caso, las claves pueden ser simples

(atómicas) o compuestas. Además, hay varios tipos de clave:

Superclave: Identifican a una entidad (pueden ser no mínimas).

Clave Candidata: Es la mínima Superclave.

Clave Primaria: Es la clave candidata elegida por el diseñador como

clave definitiva.

Page 11: Herramientas de Desarrollo

xi

Clave foránea: Es un atributo de una entidad, que es clave en otra

entidad.6

Normalización

Habitualmente, el diseño de una base de datos termina en el paso del

modelo

entidad-relación al modelo relacional. No obstante, siempre que se diseña un

sistema, no solo una base de datos, sino también cualquier tipo de solución

informática, se ha de medir la calidad de la misma, y si no cumple determinados

criterios de calidad, hay que realizar, de forma iterativa, sucesivos refinamientos

en el diseño, para alcanzar la calidad deseada.

Uno de los parámetros que mide la calidad de una base de datos es la

forma normal en la que se encuentra su diseño. Esta forma normal puede

alcanzarse cumpliendo ciertas restricciones que impone cada forma normal al

conjunto de atributos de un diseño. El proceso de obligar a los atributos de un

diseño a cumplir ciertas formas normales se llama normalización.

Las formas normales pretenden alcanzar dos objetivos:

Almacenar en la base de datos cada hecho solo una vez, es decir, evitar la

redundancia de datos. De esta manera se reduce el espacio de

almacenamiento.

6 Gestión de Base de Datos, Iván López Montalbán, Manuel de Castro Vázquez, Garceta, Pág.: 66

Page 12: Herramientas de Desarrollo

xii

Que los hechos distintos se almacenen en sitios distintos. Esto evita ciertas

anomalías a la hora de operar con los datos7

ESQUEMA DEL MODELO RELACIONAL

Un relación se compone del esquema (o intensión de la relación) y de la

extensión.

Ilustración 4

Si consideramos la representación tabular anterior (figura 4), el esquema

correspondería a la cabecera de la tabla y la extensión correspondería al cuerpo:

7 Gestión de Base de Datos, Iván López Montalbán, Manuel de Castro Vázquez, Garceta, Pág.: 74

Page 13: Herramientas de Desarrollo

xiii

El esquema de la relación consiste en un nombre de relación R y un

conjunto de atributos {A1, A2,..., An}.

El esquema de la relación de la figura 4 se podría denotar, por ejemplo,

como EMPLEADOS (DNI, nombre, apellido, sueldo), o también, EMPLEADOS

(nombre, apellido, DNI, sueldo), porque cualquier ordenación de sus atributos se

considera válida para denotar el esquema de una relación.8

Conviene observar que cada atributo es único en un esquema de relación,

porque no tiene sentido que un mismo dominio ejerza dos veces el mismo papel

en un mismo esquema. Por consiguiente, no puede ocurrir que en un esquema

de relación haya dos atributos con el mismo nombre. En cambio, sí que se

puede repetir un nombre de atributo en relaciones diferentes. Los dominios de

los atributos, por el contrario, no deben ser necesariamente todos diferentes

en una relación.

PRIMERA FORMA NORMAL

En esta forma normal se prohíbe que en una tabla haya atributos que

puedan tomar más un valor. Esta forma normal es inherente al modelo

relacional, puesto que las tablas gestionadas por un SGBD relacional, están

construidas de esta forma.

8 Introducción a las bases de Datos, Camps Paré Rafael, Pág. 10

Page 14: Herramientas de Desarrollo

xiv

Por ejemplo, en la Figura se puede ver la diferencia entre una tabla

que cumple la FN1 y otra que no;

Segunda Forma Normal

Un diseño se encuentra en FN2 si está en FN1 y además, cada atributo que

no forma parte de la clave tiene dependencia completa de la clave principal.

Ejemplo:

COMPRAS (CódigoProducto, CódigoProveedor, NombreProducto,

Cantidad,

FechaCompra).

CódigoProducto →NombreProducto, por tanto, al no ser dependencia funcional

completa, no está en FN2.

TERCERA FORMA NORMAL

Un diseño se encuentra en FN3 si está en FN2 y además, no hay ningún

atributo no clave que depende de forma transitiva de la clave.

Page 15: Herramientas de Desarrollo

xv

Ejemplo:

PRODUCTOS (CódigoProducto, Nombre, Fabricante, País).

CódigoProducto→Fabricante

Fabricante→País

CódigoProducto→-≠País

País depende transitivamente de CódigoProducto, por tanto, no está en

tercera forma normal.

Sistemas Gestores de Base de Datos (SGBD)

Se define un Sistema Gestor de Base de Datos, en adelante SGBD, como

el conjunto de herramientas que facilitan la consulta, uso y actualización de una

base de datos.

Funciones de los SGBD

Los SGBD cumplen con casi todas funciones que a continuación se enumeran:

1. Permiten a los usuarios almacenar datos, acceder a ellos y actualizarlos de forma sencilla y con un gran rendimiento, ocultando la complejidad y las características físicas de los dispositivos de almacenamiento.

2. Garantizan la integridad de los datos, respetando las reglas y restricciones que dicte el programador de la base de datos. Es decir, no permiten operaciones que dejen cierto conjunto de datos incompletos o incorrectos.

3. Integran, junto con el sistema operativo, un sistema de seguridad que garantiza el acceso a la información exclusivamente a aquellos usuarios que dispongan de autorización.

4. Proporcionan un diccionario de metadatos, que contiene el esquema de la base de datos, es decir, cómo están estructurados los datos en tablas, registros y campos, las relaciones entre los datos, usuarios, permisos, etc.

Page 16: Herramientas de Desarrollo

xvi

5. Permiten el uso de transacciones, garantizan que todas las operaciones de la transacción se realicen correctamente, y en caso de alguna incidencia, deshacen los cambios sin ningún tipo de complicación adicional.

6. Ofrecen, mediante completas herramientas, estadísticas sobre el uso del gestor, registrando operaciones efectuadas, consultas solicitas, operaciones fallidas y cualquier tipo de incidencia. Es posible de este modo, monitorizar el uso de la base de datos, y permiten analizar hipotéticos malfuncionamientos.

7. Permiten la concurrencia, es decir, varios usuarios trabajando sobre un mismo conjunto de datos. Además, proporcionan mecanismos que permiten arbitrar operaciones conflictivas en el acceso o modificación de un dato al mismo tiempo por parte de varios usuarios.

8. Independizan los datos de la aplicación o usuario que esté utilizándolos, haciendo más fácil su migración a otras plataformas.

9. Ofrecen conectividad con el exterior. De esta manera, se puede replicar y distribuir bases de datos. Además, todos los SGBD incorporan herramientas estándar de conectividad.

10. Incorporan herramientas para la salvaguarda y restauración de la información en caso de desastre. Además, deben ofrecer sencillas herramientas para la importación y exportación automática de la información.9

Abstracción de Datos

Para que el sistema sea útil debe recuperar los datos eficientemente. Como

muchos usuarios de sistemas de bases de datos no están familiarizados con

computadores, los desarrolladores esconden la complejidad a los usuarios a

través de varios niveles de abstracción para simplificar la interacción de los

usuarios con el sistema.

De tal manera que se dividen en tres niveles de abstracción los cuales son los

siguientes:

Nivel físico: El nivel más bajo de abstracción describe cómo se almacenan realmente los datos. En este nivel se describen a detalle las estructuras de datos complejas de bajo nivel.

9 Gestión de Base de Datos, Iván López Montalbán, Manuel de Castro Vázquez, Garceta, Pág.: 16

Page 17: Herramientas de Desarrollo

xvii

Nivel lógico: El siguiente nivel más alto de abstracción describe qué datos se almacenan en la base de datos y qué relaciones existen entre esos datos. Los administradores de bases de datos, son los que deben decidir cuál es la información que se mantiene en la base de datos.

Nivel de vistas: El nivel más alto de abstracción describe sólo parte de la base de datos completa. Debido a la variedad de información almacenada en una base de datos muchos usuarios no necesitan toda esta información. En su lugar, tales usuarios necesitan acceder sólo a una parte de la base de datos. Para que su interacción con el sistema se simplifique, se define la abstracción del nivel de vistas. El sistema puede proporcionar muchas vistas para la misma base de datos.10

Ilustración 5.1 Los tres niveles de abstracción

Lenguajes de Base de Datos

Un sistema de bases de datos proporciona un lenguaje de definición de datos para

especificar el esquema de la base de datos y un lenguaje de manipulación de

datos para expresar las consultas a la base de datos y las modificaciones. En la

práctica, los lenguajes de definición y manipulación de datos no son dos lenguajes

separados; en su lugar simplemente forman partes de un único lenguaje de bases

de datos.

Lenguaje de definición de datos

10 Fundamentos de Base de Datos, Abraham Silberschatz, Henry F. Korth, Mc Graw Hill, Pág. 4

Page 18: Herramientas de Desarrollo

xviii

Un esquema de base de datos se especifica mediante un conjunto de definiciones

expresadas mediante un lenguaje especial llamado lenguaje de definición de datos

(LDD).

Lenguaje de manipulación de datos

La manipulación de datos es:

• La recuperación de información almacenada en la base de datos.• La inserción de información nueva en la base de datos.• El borrado de información de la base de datos.• La modificación de información almacenada en la base de datos.

Un lenguaje de manipulación de datos (LMD) es un lenguaje que permite a los

usuarios acceder o manipular los datos organizados mediante el modelo de datos

apropiado. Hay dos tipos básicamente:

• LMD procedimental. Requieren que el usuario especifique qué datos se necesitan y cómo obtener esos datos.

• LMD declarativo (también conocidos como LMD no procedimentales). Requieren que elusuario especifique qué datos se necesitan sin especificar cómo obtener esos datos.11

Lenguaje SQL

SQL (Structured Query Language) es el lenguaje estándar para trabajar con bases

de datos relacionales y es soportado prácticamente por todos los productos en el

mercado. Originalmente, SQL fue desarrollado en IBM Research a principios de

los años setenta; fue implementado por primera vez a gran escala en un prototipo

de IBM, y posteriormente en numerosos productos comerciales de IBM y de

muchos otros fabricantes. El nombre oficial es Estándar Internacional del

Lenguaje de Base de Datos SQL (1992).12

11 Fundamentos de Base de Datos, Abraham Silberschatz, Henry F. Korth, Mc Graw Hill, Pág. 712 Introducción a los Sistemas de Base de Datos, Date. C. J., Pearson, Pág. 83

Page 19: Herramientas de Desarrollo

xix

SQL se convirtió, en términos computacionales, en un lenguaje completo (ahora

incluye instrucciones como CALL, RETURN, SET, CASE. IF, LOOP, LEAVE,

WHILE y REPEAT, así como diversas características relacionadas como las

variables y los manejadores de excepciones). SQL es un lenguaje enorme.

Por último, se debe mencionar que SQL está muy lejos de ser el lenguaje

relacional perfecto; padece de faltas tanto de omisión como de comisión. Sin

embargo, este estándar, es soportado por casi todos los productos del mercado y

todo profesional de bases de datos debe saber algo acerca de él.

My SQL

MySQL es un sistema de administración de bases de datos relational

(RDBMS). Se trata de un programa capaz de almacenar una enorme cantidad de

datos de gran variedad y de distribuirlos para cubrir las necesidades de cualquier

tipo de organizacion, desde pequeiios establecimientos comerciales a grandes

empresas y organismos administrativos. MySQL compite con sistemas RDBMS

propietarios conocidos, como Oracle, SQL Server y DB2.13

13 La Biblia de Mysql, Pag. 40