SlideShare uma empresa Scribd logo
1 de 110
Baixar para ler offline
Acceso a datos en
aplicaciones web del
entorno servidor
Programación web en el entorno servidor
22/11/2017
José Miguel Castillo Castillo
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
1
INDICE DE CONTENIDO. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
1. MODELOS DE DATOS
1.1 Concepto de dato. Ciclo de vida de los datos
1.2 Tipos de datos
1.3 Definición de un modelo conceptual
1.4 El modelo relacional
1.5 Construcción del modelo lógico de datos
1.6 El modelo físico de datos
1.7 Transformación de un modelo lógico
1.8 Herramientas para la realización de modelos de datos
2. SISTEMAS DE GESTIÓN DE BASES DE DATOS
2.1 Definición de SGBD
2.2 Componentes de un SGDB
2.3 Terminología de SGDB
2.4 Administración de un SGDB
2.5 Gestión de transacciones en un SGBD
2.6 Soluciones de SGBD
2.7 Criterios para la selección de SGBD comerciales
3. LENGUAJES DE GESTIÓN DE BASE DE DATOS - ESTÁNDAR SQL
3.1 Descripción del estándar SQL
3.2 Creación de bases de datos
3.3 Gestión de registros en tablas
3.4 Consultas
3.5 Conversión, generación y manipulación de datos
3.6 Consultas múltiples. Uniones
3.7 Agrupaciones
3.8 Vistas
3.9 Funciones avanzadas
4. LENGUAJE DE MARCAS DE USO COMÚN EN EL LADO SERVIDOR
4.1 Origen e historia de los lenguajes de marcas - XML
4.2 Características de XML
4.3 Estructura de XML
4.4 Estándares basados en XML
4.5 Análisis XML
4.6 Uso de XML en el intercambio de información
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
2
1. MODELOS DE DATOS
Los datos aisladamente pueden no contener información humanamente relevante. Sólo cuando un
conjunto de datos están agrupados de forma coherente siguiendo un enfoque concreto podremos
acceder eficazmente a la información contenida en dichos datos.
1.1. Concepto de dato. Ciclo de vida de los datos
Se puede definir un dato como un valor o referente que recibe el ordenador para que el
programador pueda desarrollar un entorno o encontrar una solución concreta para un algoritmo.
En programación, un dato es la expresión general que describe las características de las entidades
sobre las cuales opera un algoritmo. Cuando se habla de estructuras de datos se hace referencia la
parte más pequeña de información con sentido por sí mismo.
Un dato por sí mismo no constituye información, es el procesamiento de los datos lo que nos
proporciona información.
Los sistemas de información tienen un ciclo de vida formado de las siguientes fases:
 Planificación. En esta fase tendremos que definir el problema, determinar identificar las
restricciones del sistema y analizar si es factible para concluir si es posible llevar a cabo el
proyecto.
 Análisis. En esta fase se estudian las necesidades de información de los usuarios finales,
constituyéndose la base del diseño de un sistema de información. También es en este
período cuando se plantean todos los por menores para poder obtenerlos resultados que se
esperan o quieren.
 Diseño. En esta fase se deben preparar identificar alternativas del sistema, evaluaciones de
las alternativas del sistema, selección de la mejor configuración y preparación propuestas de
implementación.
 Implementación. Trabajaremos directamente a implementación lo que incluirá la adquisición
del hardware y del software. Es el momento también de la preparación de la base de datos y
de las instalaciones físicas.
 Uso y mantenimiento. Esta es la etapa final del ciclo de desarrollo de sistemas. En este
período se pone en ejecución todo el trabajo realizado por parte de analistas y usuarios, es
decir, la supervisión, evaluación y modificación de un sistema en el momento que deje de ser
efectivo para las nuevas tareas que ocurran en un futuro.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
3
1.2. Tipos de datos
Básicos.
Cada lenguaje de programación trabaja con una variedad de tipos de datos concretos.
Por ejemplo, PHP soporta distintos tipos de datos
 Integer.
 Floating Point number.
 String.
 Array.
 Object.
En la mayoría de los lenguajes suelen ser los mismos tipos aunque con pequeñas variaciones:
Enteros.
Los integers, o enteros, pueden tener distintos valores numéricos que se expresan con diferentes
anotaciones.
Por ejemplo,
$a = 18; # decimal.
$a = -18; # decimal negativo.
$a = 022; # anotación octal; es igual a 18 decimales.
$a = 0x12; # anotación hexadecimal, es igual a 18 decimales.
Coma flotante.
También conocido como floating point, este tipo de datos son los números con la coma móvil que
nos permiten representar cantidades extremadamente grandes y pequeñas de una manera muy
eficiente y compacta, y con la que se pueden realizar operaciones aritméticas. El estándar para la
representación en coma flotante es el IEEE 754.
Cadenas de caracteres (string).
La sintaxis básica es $string = "Yo soy una cadena";
Si se utilizan las comillas (""), el contenido de la cadena se expande (o, técnicamente, "interpolado").
Por ejemplo,
$num = 10;
$string = "El número es $num";
Esto visualizará "El número es 10".
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
4
otro ejemplo,
Arrays o matrices.
Los arrays de valores se pueden crear explícitamente definiendo los elementos, o introduciendo
valores en la propia matriz.
Por ejemplo:
$a = ("abc", "def", "ghi");
Crea el array definiendo explícitamente sus elementos.
En este otro ejemplo, se hace de forma diferente,
$a[0] = "abc";
$a[1] = "def";
$a[2] = "ghi"; el array se crea con tres elementos. Recordemos que el primer elemento de un array
se identifica con el número "0". Si, por ejemplo, la longitud de una array es "5", éste incluye seis
elementos. El elemento que tiene el índice "0" es el primero del array.
Si, en cambio, para añadir elementos a un array (supongamos que nos referimos al que hemos
creado arriba) se utilizan los corchetes vacíos y los datos se ajustan al array. Por ejemplo:
$a[] = "lmn";
$a[] = "opq";
En este caso, el array se alarga 2 elementos y resulta ser:
$a[0] = "abc";
$a[1] = "def";
$a[2] = "ghi";
$a[3] = "lmn";
$a[4] = "opq";
Este ejemplo es mucho más útil cuando queremos ajustar los elementos al array sin acudir a
funciones específicas y sin tener que leer el número de los elementos que están en el array. Todo se
ajustará automáticamente y correctamente.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
5
Los array asociativos se basan, en cambio, en parejas nombre-valor (name-value).
Por ejemplo,
$a = array(
"nombre" => "Mario",
"apellido" => "Rossi",
"email" => "mario@rossi.com",
);
Objetos.
Por ejemplo, en PHP,
class visualiza {
function ejecutar_visualiza () {
echo "Visualiza un mensaje";
}
}
$obj=new visualiza;
$obj->ejecutar_visualiza();
En primer lugar definimos la clase visualiza, que incluye la función ejecutar_visualiza que quiere decir
que visualiza simplemente un mensaje en la pantalla.
Con la declaración new inicializamos el objeto $obj e invocamos la función visualizar con el operador
-> en $obj.
Registros.
Una tabla de una base de datos debemos definirla como una estructura formada por filas y columnas
o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la
misma tabla tienen la misma estructura. A cada una de estas filas se les denomina registro.
Por tanto, un registro se puede definir como un conjunto de campos que contienen los datos que
pertenecen a una misma repetición de entidad. Se le asigna automáticamente un número
consecutivo (número de registro) que en ocasiones es usado como índice aunque lo normal y
práctico es asignarle a cada registro un campo clave para su búsqueda.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
6
Dinámicos.
Los tipos de datos dinámicos pueden ser almacenados en estructuras de datos estáticas pero para
ello tienen que utilizarse los llamados vectores o las menos empleadas matrices dimensionales.
En caso de almacenar las estructuras de datos dinámicas en estructuras estáticas es recomendable
comprobar si se conoce el número máximo y la cantidad media de datos que puedan tener. Si ambos
valores son parecidos, se puede emplear una variable de vector estática o automática. Si son muy
diferentes, o bien se desconocen, es conveniente ajustar el tamaño del vector al número de
elementos que haya en un momento determinado en la estructura de datos y, por lo tanto,
almacenar el vector en una variable de carácter dinámico.
Las estructuras de datos dinámicas se almacenan, por lo común, empleando variables dinámicas.
También es posible definir una estructura de datos dinámica como una colección de variables
dinámicas cuya relación queda establecida mediante punteros, siendo posible modificar fácilmente
tanto el número de datos de la estructura (creando o destruyendo las variables que los contienen)
como la propia estructura, cambiando las direcciones contenidas en los apunta-dores de sus
elementos.
1.3. Definición de un modelo conceptual
Un modelo conceptual es un conjunto de conceptos y de reglas destinados a representar de forma
global los aspectos lógicos de los diferentes tipos de elementos existentes en la realidad que está
siendo analizada. Se suele hablar de una representación figurada de una experiencia empírica cuyo
objetivo es ayudar a comprender la realidad. Según muchos autores, son marcos o estructuras que
representan la realidad, pero no son la realidad sino su abstracción.
Los modelos de datos se dividen en dos partes bien diferenciadas:
1. Lenguaje de definición de datos (DDL, Data Definition Languaje) que es un lenguaje que se
emplea para escribir específicamente como serán los datos a almacenar en la base de datos y las
condiciones que debe cumplir para ser aceptados. Permite definir las relaciones entre objetos.
2. Lenguaje de manipulación de datos (DML, Data Manipulation Languaje) que es un lenguaje
utilizado para manipular esos datos (leer, añadir nuevos datos, modificar, borrar).
Patrones.
Los patrones son soluciones a situaciones comunes que se producen a la hora de modelar datos.
Existen dos patrones principales que ayudarán a establecer la estructura que tendrán los
documentos para lograr relacionar datos que en una base de datos relacional estarían en diferentes
tablas:
 Embeber. Si tienes experiencia en bases de datos orientadas u objetos, este patrón seguiría el
mismo principio para la implementación de un TDA (Tipo de Dato Abstracto).
 Referenciar. Este patrón busca imitar el comportamiento de las claves foráneas para relacionar
datos que deben estar en colecciones diferentes.
Hay que tener en cuenta que en pleno proceso de modelado cuando se realizan muchas
actualizaciones sobre datos de colecciones relacionadas hay que intentar en lo posible que aquellos
datos que se vayan a modificar se encuentren en el mismo documento.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
7
Modelo genéricos.
Al igual que los patrones, los modelos genéricos ofrecen soluciones a problemas comunes.
Los patrones ayudan a resolver situaciones concretas pero con los modelos genéricos podemos
resolver situaciones que cubrirían la mayoría de los requisitos de un problema.
No se parte de un modelo desde cero sino que se parte de una estructura genérica y se modifica para
adaptarlo a las circunstancias. Por ejemplo, un blog en Internet.
1.4. El modelo relacional
Su objetivo fundamental es trabajar con las relaciones. Siguiendo la teoría de las bases de datos
relacionales creadas por Edgar Frank Codd estas relaciones podrían considerarse en forma lógica
como un conjunto de datos llamados tuplas.
La mayoría de las ocasiones se conceptualiza de una manera más sencilla, pensando en cada relación
como si fuese una tabla que está compuesta por registros (cada fila de la tabla sería un registro o
tupla), y columnas (también llamadas campos).
Descripción.
Todos los datos son almacenados en relaciones, y como cada relación es un conjunto de datos, el
orden en el que éstos se almacenen no tiene relevancia (a diferencia de otros modelos como el
jerárquico y el de red).
Esta cuestión aporta la posibilidad de entender y ser utilizado por un usuario no experto. La
información puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia
flexibilidad y poder para administrar la información.
Este modelo considera la base de datos como una colección de relaciones. De manera sencilla, una
relación representa una tabla que no es más que un conjunto de filas, cada fila es un conjunto de
campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila
también se puede denominar tupla o registro y a cada columna también se le puede llamar campo o
atributo.
Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos
lenguajes formales el álgebra relacional y el cálculo relacional. El álgebra relacional permite describir
la forma de realizar una consulta, en cambio, el cálculo relacional sólo indica lo que se desea
devolver.
Esquema.
Un esquema contiene la definición de una estructura (generalmente relaciones o tablas de una base
de datos), es decir, determina la identidad de la relación y que tipo de información podrá ser
almacenada dentro de ella; en otras palabras, el esquema contiene los metadatos de la relación.
Todo esquema constará de:
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
8
Nombre de la relación (su identificador).
Nombre de los atributos (o campos) de la relación y sus dominios (el dominio de un atributo o campo
define los valores permitidos para el mismo, equivalente al tipo de dato)
Por ejemplo character, integer, date, string…
Instancias.
Se puede definir como el contenido de una tabla en un momento dado pero también sería correcto
referirse a una instancia cuando se trabaja o se muestran únicamente un subconjunto de la
información contenida en una relación o tabla.
Entidades y tipos de entidades.
Una entidad caracteriza a un tipo de objeto, real o abstracto, del problema a modelizar. Toda entidad
tiene existencia propia, es distinguible del resto de las entidades, tiene nombre y posee atributos
definidos en un dominio determinado. Una entidad es todo aquello de lo que se desea almacenar
información.
Por ejemplo, en el diagrama E-R las entidades se representan mediante rectángulos, como en el
siguiente caso,
Elementos de datos. Atributos.
Los atributos definen o identifican las características de entidad (es el contenido propiamente de la
entidad). Cada entidad contiene distintos atributos, que dan información sobre esta entidad. Estos
atributos pueden ser de distintos tipos (numéricos, texto, fecha...).
Los atributos se representan como círculos que descienden de una entidad, y no es necesario
representarlos todos, sino los más significativos, como a continuación.
Por ejemplo, en una entidad denominada Coches habría que recoger información propia de los
coches.
Unos posibles atributos serían los siguientes: número de chasis, matrícula, DNI del propietario,
marca, modelo y muchos otros que complementen la información de cada coche.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
9
Relaciones. Tipos, subtipos. Cardinalidad.
Las relaciones se representan en el diagrama E-R mediante flechas y rombos.
Cada entidad interviene en una relación con una determinada cardinalidad que es el número de
instancias o elementos de una entidad que pueden asociarse a un elemento de la otra entidad
relacionada. Este dato numérico se representa mediante una pareja de datos siguiendo la sintaxis
(cardinalidad mínima, cardinalidad máxima), asociada a cada uno de las entidades que intervienen en
la relación.
Son posibles las siguientes cardinalidades: (0,1), (1,1), (0,n), (1,n), (m,n). También se informa de las
cardinalidades máximas con las que intervienen las entidades en la relación.
El tipo de relación se define tomando los máximos de las cardinalidades que intervienen en la
relación. Hay cuatro tipos posibles:
1. Una a una (1:1). En este tipo de relación, una vez fijado un elemento de una entidad se conoce la
otra. Por ejemplo, nación y capital.
2. Una a muchas (1:N). Por ejemplo, cliente y pedidos.
3. Muchas a una (N:1). Simetría respecto al tipo anterior según el punto de visto de una u otra
entidad.
4. Muchas a muchas (N:N). Por ejemplo, personas y viviendas.
Toda entidad debe ser unívocamente identificada y distinguible mediante un conjunto de atributos
(quizás un solo atributo) denominado identificador o clave principal o primaria. Puede haber varios
posibles identificadores para una misma entidad, en cuyo caso se ha de escoger uno de ellos como
identificador principal siendo el resto identificadores alternativos.
Por ejemplo, dni y número de seguridad social de una persona.
Hay unas normas de sentido común a seguir cuando se dibuja un diagrama E-R. La primera es
emplear preferentemente líneas rectas en las relaciones y evitar en lo posible que estas líneas se
crucen. Se suele usar nombres para describir las entidades y verbos para las relaciones. Esto es lógico
ya que las entidades se ponen en común cuando se realiza alguna acción. Los verbos empleados no
necesariamente tienen que ser siempre infinitivos.
Por ejemplo, si se desea almacenar información sobre personas y los coches que eventualmente
posean. Una misma persona puede poseer varios coches aunque puede haber personas que no
posean ningún coche. Los coches se identifican mediante su número de matrícula y las personas
mediante su documento nacional de identidad. Todo coche tiene un solo propietario. Se ha de
almacenar la fecha en que una determinada persona adquirió un determinado coche.
Una entidad del modelo E-R puede ser fuerte o débil. Una entidad fuerte existe por sí misma sin
depender la existencia de alguna otra entidad. Por el contrario la existencia de una instancia de una
entidad débil depende de la existencia previa de otra entidad.
Si la entidad débil puede ser identificada sin necesidad de identificar previamente la entidad de cuya
existencia depende, diremos que la entidad débil lo es por existencia únicamente. Si la entidad débil
no puede ser identificada independientemente, sino que previamente es necesario identificar a la
entidad de cuya existencia depende, diremos que la entidad débil lo es por identificación.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
10
Por extensión se considera que una relación en la hay entidades débiles también se dice débil por
existencia o por identificación según sea el tipo de debilidad de las entidades que intervengan en la
relación.
Por ejemplo,
Se desea almacenar información sobre buques petroleros y las refinerías donde éstos realizan
operaciones de descarga de crudo. Un buque puede descargar combustible en cierta cantidad y en
una determinada fecha en una de varias refinerías. En una misma refinería pueden descargar varios
buques. Los buques se identifican mediante una matrícula naval y las refinerías mediante un código.
Se desea almacenar información sobre empresas y sucursales de empresas. Una empresa puede tener
varias sucursales repartidas geográficamente. Una sucursal determinada debe pertenecer a una y
solo una empresa. Las sucursales se numeran correlativamente para cada empresa.
Se desea almacenar información sobre personas y sus viviendas en propiedad. Supondremos que una
vivienda tan solo puede pertenecer a una persona y que no toda persona debe ser obligatoriamente
propietaria de al menos una vivienda.
Una idea para reconocer entidades débiles es pensar qué es lo que sucede cuando se borra una
instancia concreta de la entidad fuerte.
Por ejemplo, si se desea diseñar una pequeña base de datos para almacenar información relativa a
los estudios universitarios de un colectivo de alumnos pertenecientes a una misma facultad. Un
alumno puede cursar a la vez varias asignaturas pertenecientes a cursos distintos. Cada curso se
compone de una serie de asignaturas que se imparten en aulas. Las asignaturas se agrupan en áreas
de conocimiento y los profesores que las imparten se agrupan en departamentos que supondremos
no guardan relación con las áreas de conocimiento. No hay asignaturas sin alumnos. Todo profesor
debe estar adscrito a un único departamento. Una asignatura puede ser impartida por varios
profesores siempre que éstos pertenezcan al mismo departamento. Puede haber profesores que no
impartan docencia.
Hay que tener en cuenta en el ejemplo anterior que la restricción de que una asignatura no pueda
ser enseñada por profesores de departamentos distintos no es expresable en el diagrama E-R. En la
realidad deberá ser indicada utilizando el DDL cuando se cree la base de datos.
El aspecto básico para elaborar un diagrama E-R es la determinación de entidades para lo cual se
extraen de la descripción verbal del sistema los nombres comunes y entre ellos se escogen los que
claramente aporten información valiosa. Con el resto de nombres se utiliza el sentido común
descartando los inútiles. En caso de duda, es mejor incluir una entidad que posteriormente se revele
como innecesaria que perder información relevante al problema.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
11
Un atributo que lógicamente pueda estar en varias entidades se ubicará finalmente en la entidad en
la que sea más fijo, es decir, en la que esté más ligado al resto de atributos de esa entidad. Por
sentido común pueden añadirse atributos que no aparezcan citados expresamente en la descripción
verbal del problema.
Muchas veces es posible simplificar el diagrama E-R eliminando entidades innecesarias.
Por ejemplo, si una entidad que interviene únicamente en una relación del tipo una a una (1:1) no
tiene como atributo más que su código, este atributo puede incluirse en la entidad con la que está
relacionada eliminar tanto la relación como la entidad.
Claves. Tipos de claves.
El modelo entidad - relación exige que cada entidad tenga un identificador, se trata de un atributo o
conjunto de atributos que identifican de forma única a cada uno de los ejemplares de la entidad. De
tal forma que ningún par de ejemplares de la entidad puedan tener el mismo valor en ese
identificador.
Un ejemplo de identificador es el atributo "DNI" que identifica de forma única a cada uno de los
españoles.
Estos identificadores reciben en nombre de Identificador Principal (IP) o Clave Primaria (PK - Primary
Key-). Se puede dar el caso de existir algún identificador más en la entidad, a estos identificadores se
les denomina Identificadores Candidatos (IC).
Los atributos identificadores de una entidad se representan en los diagramas de la siguiente forma.
En el diseño de bases de datos relacionales, se llama clave primaria a un campo o a una combinación
de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de
esta manera una columna o conjunto de columnas. No puede haber dos filas en una tabla que tengan
la misma clave primaria.
Una clave primaria debe identificar unívocamente a todas las posibles filas de una tabla y no solo a
las filas que se encuentran en un momento determinado.
Ejemplos de claves primarias son DNI (asociado a una persona) o ISBN (asociado a un libro). Las guías
telefónicas y diccionarios deben usar identificadores que permitan referirse unívocamente a cada
uno de los elementos.
El modelo relacional, según se lo expresa mediante cálculo relacional y álgebra relacional, no
distingue entre clave primaria y otros tipos de claves. Las claves primarias fueron agregadas al
estándar SQL principalmente para conveniencia del programador. En una arquitectura entidad-
relación, la clave primaria permite las relaciones de la tabla que tiene la clave primaria con otras
tablas que van a utilizar la información de esta tabla.
Tanto claves únicas como claves primarias pueden referenciarse con claves foráneas.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
12
En el contexto de bases de datos relacionales, una clave foránea o clave ajena (o Foreign Key FK) es
una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de
columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en
otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave
primaria u otra clave candidata en la tabla referenciada.
Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla
referenciada. Así, una fila en la tabla referendo no puede contener valores que no existen en la tabla
referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar
información. Esto es una parte esencial de la normalización de base de datos.
Normalización. Formas normales.
El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones
obtenidas tras el paso del modelo entidad-relación al modelo relacional.
Las bases de datos relacionales se normalizan para:
 Evitar la redundancia de los datos.
 Evitar problemas de actualización de los datos en las tablas.
 Proteger la integridad de los datos.
En el modelo relacional es habitual denominar tabla a una relación aunque para que una tabla sea
considerada como una relación tiene que cumplir con las siguientes condiciones restrictivas:
 Cada tabla debe tener su nombre único.
 No puede haber dos filas iguales. No se permiten los duplicados.
 Todos los datos en una columna deben ser del mismo tipo.
Edgar F. Codd definió las tres primeras formas normales (1NF, 2NF, y 3NF) que posteriormente se
han resumido dependiendo de que todos los atributos no-clave sean dependientes en "la clave, la
clave completa, y nada excepto la clave".
Por ejemplo, si se intenta agrupar los datos de una pequeña biblioteca.
Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de sólo tener campos atómicos,
pues el nombre del lector es un campo que puede (y conviene) descomponerse en apellido paterno,
apellido materno y nombres. Tal como se muestra en la siguiente tabla.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
13
La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de otra
manera, todos los atributos no clave deben depender por completo de la clave primaria.
Actualmente en nuestra tabla tenemos varias dependencias parciales si consideramos como
atributo clave el código del libro.
Por ejemplo, el título es completamente identificado por el código del libro, pero el nombre
del lector en realidad no tiene dependencia de este código, por tanto estos datos deben ser
trasladados a otra tabla.
La nueva tabla sólo contendrá datos del lector
Hemos creado una tabla para contener los datos del lector y también tuvimos que crear la columna
CodLector para identificar unívocamente a cada uno. Sin embargo, esta nueva disposición de la base
de datos necesita que exista otra tabla para mantener la información de qué libros están prestados a
qué lectores.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
14
Para la Tercera Forma Normal (3NF) la relación debe estar en 2NF y además los atributos no clave
deben ser mutuamente independientes y dependientes por completo de la clave primaria. También
recordemos que dijimos que esto significa que las columnas en la tabla deben contener solamente
información sobre la entidad definida por la clave primaria y, por tanto, las columnas en la tabla
deben contener datos acerca de una sola cosa.
En nuestro ejemplo en 2NF, la primera tabla conserva información acerca del libro, los autores y
editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos.
Debemos crear otras tablas que relacionen cada libro con sus autores y editoriales.
Las cuarta y quinta formas normales (4NF y 5NF) se ocupan específicamente de la representación de
las relaciones muchos a muchos y uno muchos entre los atributos. La sexta forma normal (6NF), en
pocas palabras, se basa en el principio de que si se tiene más de dos llaves candidatas en una tabla,
se tendrán que crear otras tablas con estas.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
15
No es muy utilizada la sexta forma normal porque genera más tablas cuando tenemos pequeñas
bases de datos.
1.5. Construcción del modelo lógico de datos
Habitualmente un modelo de datos permite describir:
 Las estructuras de datos de la base, es decir los tipos de los datos que se manejaran y la
forma en que se relacionan entre ellos.
 Las restricciones de integridad. Un conjunto de condiciones que deben cumplir los datos para
reflejar correctamente la realidad deseada.
 Operaciones de manipulación de los datos. Las operaciones de añadir, borrar, modificar y
recuperar los datos de una base.
 Otro enfoque es pensar que un modelo de datos permite describir los elementos de la
realidad que intervienen en un problema dado y la forma en que se relacionan esos
elementos entre sí.
Especificación de tablas.
Una tabla es utilizada para organizar muchos tipos de información. Las tablas se componen de filas y
columnas de celdas que se pueden rellenar con textos y gráficos.
Las tablas se componen de dos estructuras:
1. Registro. Es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los
mismos tipos que los demás registros.
Por ejemplo, en una tabla de nombres y direcciones, cada fila contendrá un nombre y una
dirección.
2. Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los
de otros campos.
Por ejemplo, siguiendo el caso anterior, un campo contendrá un tipo de datos único, como una
dirección, o un número de teléfono, un nombre, etc.
A los campos se les puede asignar, además, propiedades especiales que afectan a los registros
insertados. El campo puede ser definido como índice lo cual permite que los datos de ese campo
cambien solos automáticamente incrementando en cada nuevo registro.
Cada tabla creada debe tener un nombre único en la cada Base de Datos, haciéndola accesible
mediante su nombre o su seudónimo (Alias, dependiendo del tipo de base de datos elegida) La
estructura de las tablas viene dado por la forma de un archivo plano los cuales en un inicio se
componían de un modo similar.
Definición de columnas.
Una columna es un conjunto de valores de datos de un simple tipo particular, uno por cada fila de la
tabla. Las columnas proporcionan la estructura según la cual se componen las filas.
El término campo es frecuentemente intercambiable con el de columna, aunque muchos consideran
más correcto usar el término campo (o valor de campo) para referirse específicamente al simple
elemento que existe en la intersección entre una fila y una columna.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
16
Por ejemplo, una tabla que representa compañías pudo tener las siguientes columnas:
ID(identificador entero, único a cada fila)
Nombre (texto)
Dirección 1 (texto)
Dirección 2 (texto)
Ciudad (identificador entero, proviene de una tabla separada de ciudades, de la que cualquier
información del estado o del país puede ser tomada)
Código postal (texto)
Industria (identificador entero, Proviene de una tabla separada de industrias)
Cada fila proporcionaría un valor de los datos para cada columna y después sería entendida como un
sólo simple valor de datos estructurado, en este caso representando a una compañía.
Especificación de claves.
En cualquier base de datos los registros incluidos en sus diferentes tablas deben estar perfectamente
identificados y de esto se encargan las claves o llaves. Trasladando este concepto a la vida real, cada
ciudadano tiene un número de DNI, puede haber dos personas con igual nombre e incluso apellidos
iguales, pero ambos se diferenciarán por su número de DNI, que es único en "teoría".
Cada tabla debe contener al menos un campo que permita identificar unívocamente cada registro.
Este campo puede ser real, como el propio DNI de una persona. O puede ser un valor que nos
inventemos para conseguir el mismo fin, como un número que asignemos automáticamente a cada
registro, asegurándonos (realmente lo hará Base) de que no se repita. Otra opción es utilizar una
combinación de campos para identificar los registros de la tabla.
Por ejemplo podríamos definir la combinación de Nombre y Apellidos de nuestra tabla para este fin.
Sin embargo, existe la probabilidad de que haya alumnos con igual nombre y apellidos, por lo que no
sería una clave del todo válida.
Conversión a formas normales. Dependencias.
En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la
mayoría de las bases de datos.
Una tabla está en Primera Forma Normal si:
 Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son
indivisibles, mínimos.
 La tabla contiene una llave primaria única.
 La llave primaria no contiene atributos nulos.
 No debe existir variación en el número de columnas.
 Los Campos no llave deben identificarse por la llave. Dependencia Funcional.
 Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los
datos cambian de orden no deben cambiar sus significados
 Una tabla no puede tener múltiples valores en cada columna.
Los datos son atómicos. A cada valor de X le pertenece un valor de Y y viceversa.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
17
Esta forma normal elimina los valores repetidos dentro de una BD.
Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave
dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales.
Todos los atributos que no son clave principal deben depender únicamente de la clave principal.
Por ejemplo {DNI, ID_PROYECTO} -> HORAS_TRABAJO (con el DNI de un empleado y el ID de un
proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es
completamente funcional dado que ni DNI -> HORAS_TRABAJO ni ID_PROYECTO -> HORAS_TRABAJO
mantienen la dependencia.
Sin embargo {DNI, ID_PROYECTO} -> NOMBRE_EMPLEADO es parcialmente dependiente dado que
DNI -> NOMBRE_EMPLEADO mantiene la dependencia.
Formalmente, un esquema de relación está en 3 Forma Normal Elmasri-Navathe, si para toda
dependencia funcional, se cumple al menos una de las siguientes condiciones:
 X es superllave o clave.
 A es atributo primo de R; esto es, si es miembro de alguna clave en R.
Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma normal.
Formalmente, un esquema de relación R está en FNBC (Forma normal de Boyce-Codd ), si y sólo si,
para toda dependencia funcional X -> A válida en R, se cumple que X es superllave o clave.
De esta forma, todo esquema R que cumple FNBC, está además en 3FN; sin embargo, no todo
esquema R que cumple con 3FN, está en FNBC.
Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no
funcionales X->->Y, siendo X una súper-clave que, X es o una clave candidata o un conjunto de claves
primarias.
Una tabla se encuentra en 5FN si:
 La tabla está en 4FN
 No existen relaciones de dependencias no triviales que no siguen los criterios de las claves.
Una tabla que se encuentra en la 4FN se dice que está en la 5FN si, y sólo si, cada relación de
dependencia se encuentra definida por las claves candidatas.
Para hablar de dependencia funcional debemos hablar de que B es funcionalmente dependiente de
A.
Por ejemplo si se conoce el valor de DNI tiene una conexión con Apellido o Nombre.
Las dependencias funcionales del sistema se escriben utilizando una flecha bajo la siguiente sintaxis,
FechaDeNacimiento -> Edad
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
18
Armstrong aportó tres axiomas aplicables a las dependencias:
1. Dependencia funcional Reflexiva.
2. Si "y" está incluido en "x" entonces x -> y
3. A partir de cualquier atributo o conjunto de atributos siempre puede deducirse él mismo
Si la dirección o el nombre de una persona están incluidos en el DNI, entonces con el DNI podemos
determinar la dirección o su nombre.
Dependencia funcional Aumentativa.
X -> y entonces xz -> yz
DNI -> nombre
DNI, dirección -> nombre, dirección
Si con el DNI se determina el nombre de una persona, entonces con el DNI más la dirección también
se determina el nombre y su dirección.
Dependencia funcional transitiva.
Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente
de X y Z de Y, pero X no depende funcionalmente de Y, se dice entonces que Z depende
transitivamente de X.
Simbólicamente sería: X -> Y -> Z entonces X -> Z
Ejemplo gráfico de dependencia funcional transitiva,
FechaDeNacimiento -> Edad
Edad -> Conducir
FechaDeNacimiento -> Edad -> Conducir
Tendremos que FechaDeNacimiento determina a Edad y que Edad determina a Conducir,
indirectamente podremos condicionar Conducir con FechaDeNacimiento
Las propiedades deducidas son:
 Unión. x->y y y->z entonces x->yz
 Pseudo-transitiva. x->y y wy->z entonces wx->z
 Descomposición. x->y y z está incluido en y entonces x -> z
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
19
1.6. El modelo físico de datos. Ficheros de datos
En la informática el concepto de modelo de datos se centra en el planeamiento del desarrollo de
aplicaciones y la decisión de cómo se almacenarán los datos y cómo se accederá a ellos.
Si se utilizan las mismas estructuras para el almacenamiento y el acceso distintas aplicaciones podrán
compartir información.
Por ejemplo un formulario de registro en una página de Internet, donde para nuestro nombre sólo
podemos ingresar letras, y para nuestra fecha de nacimiento, números con un orden específico (como
ser día, mes y año). Estas restricciones responden a necesidades de la base de datos y deberían ser
iguales en dos bases entre las que se quisiera compartir información.
Como inconveniente ante la gran ventaja de la eficiencia que presentan el alto costo del desarrollo, la
operación y el mantenimiento de los sistemas y las interfaces.
Si la calidad de los modelos de datos implementados es baja este hecho puede ser un obstáculo para
el crecimiento de una empresa ya que es algo muy visual cuando una compañía que nunca invirtió
muchos recursos en su infraestructura digital decide que quiere modernizarse y descubre que cuenta
con una base de datos tan ineficiente y mal concebida, que resultaría más sencillo y menos costoso
reconstruir todo desde el comienzo.
Descripción de los ficheros de datos.
Habitualmente se llama fichero a un conjunto de información clasificada y almacenada de diversas
formas para su conservación y fácil acceso en cualquier momento.
Un fichero puede ser un sistema de archivos físicos contenidos en cajas u otros elementos de
almacenamiento que forman parte de un conjunto mayor como una biblioteca o archivo público o
privado. Es aplicable que el fichero utilice una taxonomía o sistema de clasificación común para todos
sus contenidos que permiten la búsqueda de datos específicos de forma rápida y sencilla. El más
común es el orden alfabético por concepto o autor, pero también puede clasificarse la información
según áreas temáticas, por orden cronológico u otros criterios dependiendo de la información
contenida en el fichero.
En informática, un archivo o fichero también es un conjunto de información que se almacena en
forma virtual para ser leído y/o accedido por medio de una computadora.
Las posibilidades de almacenamiento y clasificación son mucho más variadas en un sistema
informático ya que la información no ocupa un espacio físico y es posible conservar millones de datos
en un dispositivo muy pequeño.
Se puede guardar información de texto, audio o video en un mismo lugar sin inconveniente alguno.
El propio sistema organiza taxonómicamente la información de forma automática permitiendo que el
usuario la encuentre con sólo introducir palabras claves en un buscador lo que permitirá realizar
operaciones rápidas y ágiles cuando la información almacenada es múltiple.
Los sistemas informáticos suelen ser réplicas de los ficheros físicos organizando el contenido en
carpetas y subcarpetas creadas y administradas por el usuario que son ubicadas en el disco interno y
que pueden ser abiertas mediante accesos directos dispuestos en el escritorio virtual del ordenador.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
20
Tipos de ficheros.
De acuerdo a los datos que almacenan podemos clasificarlos en:
 ASCII. En este tipo de archivo los datos son almacenados a través de un simple texto. Esto
permite intercambiar a los datos que contienen así como también para crear archivos que el
propio usuario pueda modificar.
 Binario. Esta clase de archivos, en cambio, almacena información en un lenguaje al que sólo
la propia computadora comprende, por ejemplo colores, sonidos, imágenes u órdenes. Estos
archivos son de menor peso que los anteriores.
Modos de acceso.
De acuerdo al mecanismo que se utiliza para acceder a los archivos se encuentran los siguientes
tipos:
 Archivos directos. En estos cada registro puede leerse y escribirse directamente.
 Archivos secuenciales, en estos archivos los registros se organizan de manera secuencial de
manera tal que para leer uno, se deben haber leído los anteriores.
Organización de ficheros.
Son los modos de disponer los registros del fichero en el soporte.
Existen tres modos principales:
 Secuencial: Un registro a continuación de otro. Los registros están dispuestos uno a continuación
de otro. Existen dos formas de este tipo: simple y encadenado.
 Simple. Un registro físico es el bloque fijo que se transfiere del disco a la memoria principal, y
por tanto puede contener más de un registro lógico.
Este tipo de fichero presenta la posibilidad de realizar consultas rápidas dentro del
procesamiento secuencial. También son posibles modificaciones teniendo en cuenta las
diferentes posibilidades que pueden verse en la siguiente tabla.
Si el soporte es secuencial la modificación obliga a hacer una
copia del fichero.
Si el soporte es directo es posible hacer modificaciones
sencillas, pero la inserción y el borrado requieren una copia del
fichero.
Las características de este método son:
o Proceso lento para consultas puntuales.
o Aprovechan mucho el espacio de almacenamiento (sólo se precisa el justo para los
datos).
o Posibilidad de usar cualquier tipo de soporte.
o Problema para procesar un fichero por más de una clave (campo de registro), ya que
si un registro está ordenado en función de una clave no puede estarlo por otra.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
21
Las soluciones a este problema son: o bien se tienen dos ficheros iguales o más (tantos como
clasificaciones diferentes haya) cada uno ordenado con respecto a una clave, o bien se
clasifica el fichero cada vez que se quiera acceder (lo cual es muy lento).
 Encadenado.
Los registros deben contener un campo extra para almacenar el puntero (que puede dar la
dirección exacta del siguiente registro o bien ser una dirección relativa respecto del comienzo
del fichero). Se crea para evitar las copias implicadas en el proceso de inserción y borrado;
estos procesos sólo conllevan un reajuste de punteros.
Los punteros son entre registros físicos, y recordemos que en un registro físico cabe más de
un registro lógico.
Este tipo de organización se usa mucho con diferentes estructuras:
o Listas Simples. Son de acceso o procesamiento secuencial y suelen ser pilas o colas.
Son las más sencillas y responden a la descripción general que se ha hecho para los
ficheros secuenciales encadenados.
o Listas Múltiples. En este tipo de listas cada registro lleva más de un puntero.
Permiten tener clasificados los registros por más de una clave, teniendo varios
campos de puntero. Suele haber un registro índice que es cabeza de todas las listas,
o sea, es un registro de punteros que apuntan al principio de la lista correspondiente
a la ordenación que deseemos.
Como los registros no se almacenan secuencialmente, y sin embargo si se accede
secuencialmente, este acceso es más lento porque la cabeza tiene que ir dando saltos.
Uno de los principales problemas de las estructuras encadenadas es que si se hacen muchas
supresiones, quedan excesivos huecos, con lo que el fichero se desaprovecha excesivamente.
1.7. Transformación de un modelo lógico en un modelo físico de datos
Los objetivos del diseño físico son:
 Minimizar el tiempo de respuesta. Tiempo entre la introducción de una transacción T de BD y
la obtención de respuesta.
 Maximizar la productividad de las transacciones.
 Optimizar el aprovechamiento del espacio. Cantidad de espacio ocupado por ficheros de la
BD y sus estructuras de acceso.
 En general se especifica límites promedio y del peor de los casos de cada parámetro anterior
como parte de los requisitos de rendimiento del sistema.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
22
El afinamiento del diseño puede esquematizarse de la siguiente forma,
Durante el diseño físico hay que tener en cuenta diversos factores:
 Que el rendimiento depende del tamaño y número de registros en los ficheros.
Estimación del tamaño de registro y del número de registros para cada fichero.
 Estimar crecimiento de cada fichero, es decir responder a cómo y cuánto va a crecer el
tamaño del registro, o en número de registros.
 El uso que se espera dar a la base de datos. Implicará estimar patrones de actualización y
obtención de datos para cada fichero, considerando todas las transacciones.
1.8. Herramientas para la realización de modelos de datos
La capacidad de realizar un diseño de modelo visualizándolo de forma gráfica, a través de los
Diagramas E-R, o de obtener un diagrama y documentación de una base de datos existente aumenta
enormemente la eficiencia de nuestro trabajo reduciendo drásticamente el tiempo necesario con
respecto a una realización manual de dichas tareas de diseño, análisis y estudio.
Algunas de estas herramientas son las siguientes:
 Toad. Permite trabajar con una gama amplísima de bases de datos relacionales desde las
más populares a las más especializadas. Aporta una potente herramienta de desarrollo que
simplifica el trabajo rutinario.
 Oracle Data Modeler. Aplicación que puede ejecutarse de manera independiente o
incorporarse como un módulo en otras herramientas como por ejemplo la también gratuita
Oracle SQL Developer.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
23
 SQL Power Architect. Estamos ante una herramienta de modelado de datos que fue creada
por los diseñadores de almacenamiento de datos y tiene muchas características únicas
dirigidas específicamente para el arquitecto de almacenamiento de datos. Permite a los
usuarios de la herramienta ingeniería inversa de bases de datos existentes, realizar perfiles
de datos en bases de datos de origen y generar automáticamente los metadatos de ETL.
 SQL Power Architec es una herramienta ideal para grupos de desarrollo donde se pude
realizar el modelado de datos y poder así tener documentado el modelo de datos de todas
las aplicaciones que se desarrollan.
Algunas Características de SQL Power Architect:
 Permite acceder a las bases de datos a través de JDBC.
 Puedes conectarte a múltiples bases de datos al mismo tiempo.
 Compara modelos de datos y estructuras de bases de datos e identifica las discrepancias.
 Drag-and-drop de las tablas origen y las columnas en el área de trabajo.
 Ingeniería directa/inversa para PostgreSQL, Oracle, MS SQL Server y muchas más.
 Todos los proyectos se guardan en formato XML.
 OLAP modelos de esquema: cubos, medidas, dimensiones, jerarquías y niveles.
SQL Power Architec edición Community es gratuita bajo licencia Open Source GPL v.3.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
24
2. SISTEMAS DE GESTIÓN DE BASES DE DATOS (SGBD)
Los sistemas de gestión de bases de datos (SGBD) proporcionan métodos para mantener la
integridad de los datos, para administrar el acceso de usuarios a los datos y para recuperar la
información si el sistema se corrompe permitiendo presentar la información de la base de datos en
variados formatos.
La mayoría de los SGBD incluyen un generador de informes y también es habitual que incluyan un
módulo gráfico que permita presentar la información con gráficos y tartas.
2.1. Definición de SGBD
Hay muchos tipos de SGBD distintos según los datos que manejen y dependiendo de los tamaños de
las bases de datos ya que podemos estar hablando desde ordenadores personales y con poca
memoria hasta grandes sistemas que funcionan en mainframes con sistemas de almacenamiento
especiales.
NOTA: Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el
almacenamiento, modificación y extracción de la información en una base de datos, además de
proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden
acceder a la información usando herramientas específicas de interrogación y de generación de
informes.
Algunas cuestiones vinculadas directamente con las bases de datos son:
 Definir una base de datos consiste en especificar los tipos de datos, estructuras y
restricciones para los datos que se almacenarán.
 Construir una base de datos es el proceso de almacenar los datos sobre algún medio de
almacenamiento.
 Manipular una base de datos incluye funciones como consulta, actualización, etc. de bases
de datos.
 La estructura general de un sistema de bases de datos puede verse en el siguiente esquema,
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
25
2.2. Componentes de un SGDB. Estructura
Según Korth, los componentes funcionales de un SGBD deben incluir:
 Un procesador de consultas que traduzca sentencias en un lenguaje de consultas a
instrucciones de bajo nivel que entienda el gestor de la base de datos.
 Un gestor de base de datos que proporcione la interface entre los datos de bajo nivel
almacenados en la base de datos y los programas de aplicación y las consultas que se hacen
en el sistema.
 Un gestor de archivos que gestione la asignación de espacio en la memoria del disco y de las
estructuras de datos usadas para representar la información almacenada en disco.
 Un pre compilador del llamado lenguaje de manipulación de datos DML.
 Un compilador del lenguaje de definición de datos DDL que convierta sentencias en un
conjunto de tablas metadatos o “datos sobre datos”.
 Un gestor del diccionario de datos
Ejemplo de diccionario de dato,
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
26
 Un sistema de control de autorización.
 Un procesador de comandos.
 Un sistema de control de la integridad.
Por ejemplo, cuando una operación cambia los datos de la base de datos, este sistema debe
comprobar que la operación a realizar satisface todas las restricciones de integridad necesarias.
 Un optimizador de consultas que determine la estrategia óptima para la ejecución de las
consultas.
 Un gestor de transacciones que realice el procesamiento de las transacciones.
 Un planificador responsable de asegurar que las operaciones que se realizan
concurrentemente sobre la base de datos tienen lugar sin conflictos.
 Un gestor de recuperación que garantice que la base de datos permanece en un estado
consistente en caso de que se produzca algún fallo.
 Un gestor de buffers que se responsabilice de transferir los datos entre memoria principal y
los dispositivos de almacenamiento secundario.
Gestión de almacenamiento.
Se trata de la interface entre los programas de aplicación, las consultas y los datos de bajo nivel. Su
misión es controlar el acceso a la información en la BD e interactúa con el gestor de ficheros para
actualizar, recuperar o almacenar los datos de la BD.
Está compuesto habitualmente por los siguientes elementos:
 El gestor de transacciones que nos asegura que la BD quede en un estado consistente
después de un fallo del sistema.
 El gestor de memoria intermedia que se encarga de transferir los datos entre la memoria
principal y los dispositivos de almacenamiento secundario.
 El gestor de archivos que cuando se trabaja con ficheros dispersos es el responsable de
llamar a la función de dispersión para generar la dirección de los registros.
Gestión de consultas.
El procesador de consultas recibe las peticiones de consulta o actualización y encuentra la mejor
manera de realizarla mediante un plan de ejecución. Sus principales componentes son:
 Un pre compilador del LMD incorporado para el trabajo en conjunto con el compilador del
LMD para generar el código adecuado.
 Un compilador de LMD.
 Un motor de evaluación que ejecute las instrucciones de bajo nivel generadas por el
compilador.
 Un intérprete del lenguaje de definición de datos.
Motor de reglas.
En informática, una llamada regla de negocio es una descripción muy concreta que permite controlar
y/o tomar una decisión en una empresa o una organización.
Estas reglas permiten describir lo que se debe hacer y pueden ser expresadas como reglas simples
(del tipo SI <<Condiciones>> ENTONCES <<Acciones>>), como cuadro de decisión o como árbol de
decisión.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
27
Las operaciones habituales llevadas a cabo por los motores de reglas son:
 edición, creación e interpretación
 organización
 comprobación, validación y simulación
 gestión del ciclo de vida
 despliegue
 gestión de los derechos.
2.3. Terminología de SGDB
Principales términos relacionados con SGBD:
1. Administración de Base de Datos Relacional: El programa que funciona con dos tablas de
datos al mismo tiempo, relaciona la información mediante vinculaciones establecidas por
una columna o campos comunes.
2. Acceso: La manera en la cual los archivos o conjunto de datos son referenciados por la
computadora.
3. Base de Datos: Es una serie de datos organizados y relacionados entre sí, los cuales son
recolectados y explotados por los Sistemas de Información de una empresa o negocio en
particular.
4. Buscadores: O también llamados motores de búsqueda, son herramientas que permiten
clasificar la información que existe en la red y hacerla localizable en poco tiempo según las
preferencias del usuario.
5. Campo: Los nombres de los campos, no pueden empezar con espacios en blanco y caracteres
especiales. No pueden llevar puntos, ni signos de exclamación o corchetes. Si pueden tener
espacios en blanco en el medio.
6. Datos estadísticos: estos almacenan información estadística sobre los datos en la base de
datos.
7. El DBMS: es un conjunto de programas que se encargan de manejar la creación y todos los
accesos a las bases de datos.
8. Eliminación: Es una solicitud de eliminación que se expresa de forma muy parecida a una
consulta. Sólo es posible eliminar tuplas completas.
9. Facilidad de Consultas: Este tipo de consultas tienen como misión proporcionar la
información solicitada por el usuario de una forma correcta y rápida.
10. Formulario: es el elemento en forma de fecha que permite la gestión de los datos de una
forma más cómoda y visiblemente más atractiva.
11. Gestor de Base de Datos: Es un conjunto de programas que permiten crear y mantener una
base de datos, asegurando su integridad, confidencialidad y seguridad.
12. Independencia de los datos: Se refiere a la protección contra los programas de aplicaciones
que pueden originar modificaciones cuando se altera la organización física y lógica de las
bases de datos.
13. JDBC: La Conectividad de Bases de Datos Java es una especificación de la interfaz de
aplicación de programa (application program interface, API) para conectar los programas
escritos en Java a los datos en bases de datos populares.
14. La manipulación de datos: la manipulación de datos es la recuperación de información
almacenada en la base de datos.
15. Lenguaje de consulta: Estos lenguajes son generalmente de más alto nivel que los lenguajes
de programación. Los lenguajes de consulta pueden clasificarse como procedimentales y no
procedimentales.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
28
16. Manipulación de Base de Datos: Usando la base de Datos -- el usuario puede añadir, borrar y
modificar información a la base de datos así como también hacer consultas.
17. Modelo de base de datos orientado a objetos: es una adaptación a los sistemas de bases de
datos. Se basa en el concepto de encapsulamiento de datos y código que opera sobre estos
en un objeto.
18. Modelos de Red: Este modelo permite la representación de muchos a muchos de una Base
de Datos. El modelo de red evita redundancia en la información, a través de la incorporación
de un tipo de registro denominado el conector.
19. Nivel lógico: definición de las estructuras de datos que constituyen la base de datos.
20. Reglas de Integridad: Son restricciones que definen los estados de consistencias de las bases
de datos.
21. DBMS: Es un conjunto de programas que se encarga de manejar la cremación y todos los
acceso a las bases de datos.
22. DDL: Es un lenguaje de definición de datos.
23. Rectángulos: es parte de la estructura de base de datos y son aquellos que representan un
conjunto de entidades.
24. Recuperación: Proporcionar como mínimo el mismo nivel de recuperación que los sistemas
de bases de datos actuales. De forma que, tanto en caso de fallo de hardware como de fallo
de software, el sistema pueda retroceder hasta un estado coherente de los datos.
25. Sistema de Administración de Base de Dato: Es el software que controla la organización,
almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos.
26. Sistema gestor de base de datos: Es un conjunto de programas que permiten crear y
mantener una base de datos, asegurando su integridad, confidencialidad y seguridad.
27. Software: Es un sistema manejador de bases de datos que permite al usuario acceder con
facilidad a los datos almacenados o que ande ser almacenados.
28. Transacciones compartidas: La transacción compartida permite que varias personas
intervengan en una sola transacción.
29. Usuario final: Es quien accede a las bases de datos por medio de un lenguaje de consulta o
de programas de aplicación.
2.4. Administración de un SGDB
El papel del DBA.
De forma general podemos decir que está vinculado con los siguientes conceptos:
 Recuperabilidad.
 Integridad y verificación de la integridad de datos
 Seguridad e implementación de controles de acceso a los datos
 Disponibilidad.
 Desarrollo y soporte a pruebas.
El diseño lógico y físico de las bases de datos a pesar de no ser obligaciones de un administrador de
bases de datos puede formar parte de su trabajo. Esas funciones por lo general están asignadas a los
analistas de bases de datos o a los diseñadores de bases de datos.
Los deberes de un administrador de bases de datos dependen de la descripción del puesto,
corporación y políticas de tecnologías de información (TI) y puede incluir recuperación de desastres
(respaldos y pruebas de respaldos) y análisis de rendimiento entre otras cuestiones.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
29
La disponibilidad significa que los usuarios autorizados tengan acceso a los datos cuando lo necesiten
para atender a las necesidades del negocio. De manera incremental los negocios han ido requiriendo
que la información esté disponible todo el tiempo (siete días a la semana, 24 horas del día). La
industria de TI ha respondido a estas necesidades con redundancia de red y hardware para
incrementar las capacidades administrativas en línea.
La recuperabilidad significa que, si se da algún error en los datos, el DBA (administrador de base de
datos) pueda reponer la base de datos al tiempo y estado en que se encontraba en estado
consistente antes de que el daño se causara.
Las actividades de recuperación incluyen el hacer respaldos de la base de datos y almacenar esos
respaldos de manera que se minimice el riesgo de daño o pérdida de los mismos, tales como hacer
diversas copias en medios de almacenamiento removibles y almacenarlos fuera del área en
antelación a un desastre anticipado.
La recuperabilidad, frecuentemente denominada “recuperación de desastres”, tiene dos formas
primarias. La primera son los respaldos y después las pruebas de recuperación.
La recuperación de las bases de datos consiste en información y estampas de tiempo junto con
bitácoras los cuales se cambian de manera tal que sean consistentes en un momento y fecha en
particular. Es posible hacer respaldos de la base de datos que no incluyan las estampas de tiempo y
las bitácoras, la diferencia reside en que el DBA debe sacar de línea la base de datos en caso de llevar
a cabo una recuperación.
La integridad de una base de datos significa que, la base de datos o los programas que generaron su
contenido, incorporen métodos que aseguren que el contenido de los datos del sistema no se rompa
así como las reglas del negocio.
Por ejemplo, un distribuidor puede tener una regla la cual permita que sólo los clientes individuales
puedan solicitar órdenes; a su vez cada orden identifique a uno y sólo un proveedor.
Continuando con el ejemplo, en el proceso de inserción de una nueva orden a la base de datos, está
a su vez tendría que cerciorarse de que el cliente identificado existe en su tabla para que la orden
pueda darse.
Seguridad significa la capacidad de los usuarios para acceder y cambiar los datos de acuerdo a las
políticas del negocio, así como, las decisiones de los encargados. Al igual que otros metadatos, una
DBMS relacional maneja la seguridad en forma de tablas. Estas tablas son las “llaves del reino” por lo
cual se deben proteger de posibles intrusos.
El rendimiento significa que la base de datos no cause tiempos de respuesta poco razonables. En
sistemas muy complejos cliente/servidor y de tres capas, la base de datos es sólo uno de los
elementos que determinan la experiencia de los usuarios en línea y los programas desatendidos.
Algunos roles del personal de TI relacionados con la administración de base de datos:
 Programador de aplicaciones.
 Administrador de sistema.
 Administrador de datos.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
30
Gestión de índices.
El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones,
permitiendo un rápido acceso a los registros de una tabla en una base de datos.
El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el
elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté
indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver el
registro que se encuentre en la posición marcada por el índice.
Existen diferentes tipos de índices:
 HASH. Un hash es el resultado de dicha función o algoritmo. Una función de hash es una
función para resumir o identificar probabilísticamente un gran conjunto de información,
dando como resultado un conjunto imagen finito generalmente menor (un subconjunto de
los números naturales por ejemplo).
 B-TREE. Los árboles-B ó B-árboles son estructuras de datos de árbol que se encuentran
comúnmente en las implementaciones de bases de datos y sistemas de archivos. Los árboles
B mantienen los datos ordenados y las inserciones y eliminaciones se realizan en tiempo
logarítmico amortizado. La idea tras los árboles-B es que los nodos internos deben tener un
número variable de nodos hijo dentro de un rango predefinido. Cuando se inserta o se
elimina un dato de la estructura, la cantidad de nodos hijo varía dentro de un nodo.
La sintaxis en MySQL sería:
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
[USING index_type]
ON tbl_name (index_col_name,...)
index_col_name:
col_name [(length)] [ASC | DESC]
Ejemplo de creación de índices en MySQL
CREATE TABLE lookup (id INT) ENGINE = MEMORY;
CREATE INDEX id_index USING BTREE ON lookup (id);
Cómo crear los índices en Oracle
CREATE [UNIQUE] INDEX index_name
ON table_name (column1, column2, ... column_n)
[ COMPUTE STATISTICS ];
CREATE INDEX supplier_idx
ON supplier (supplier_name);
Seguridad.
Sin unas buenas medidas de seguridad la integración de datos en los sistemas de bases de datos hace
que éstos sean más vulnerables que en los sistemas clásicos de ficheros.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
31
Los SGBD permiten mantener la seguridad mediante el establecimiento de claves para identificar al
personal autorizado a utilizar la base de datos. Las autorizaciones se pueden realizar a nivel de
operaciones, de modo que un usuario puede estar autorizado a consultar ciertos datos pero no a
actualizarlos, por ejemplo.
El problema de la seguridad consiste en lograr que los recursos de un sistema sean, bajo toda
circunstancia, utilizados para los fines previstos. Necesitaremos para ello el uso adecuado de
mecanismos de protección.
Los sistemas operativos proveen algunos mecanismos de protección para poder implementar
políticas de seguridad.
Un aspecto importante de la seguridad es el de evitar la pérdida de información.
Las causas que pueden llevar a estas pérdidas de información pueden ser fenómenos naturales,
guerras, errores de hardware o de software, o errores humanos.
La solución es la misma en todos los casos: mantener la información respaldada, preferentemente en
un lugar lejano.
Las tres principales características de la seguridad que se deben mantener en una base de datos son
la confidencialidad, la integridad y la disponibilidad de la información.
Los datos contenidos en una base de datos pueden ser individuales o de una organización. Sean de
un tipo o de otro, a no ser que su propietario lo autorice, no deben ser desvelados. Si esta revelación
es autorizada por dicho propietario la confidencialidad se mantiene. Es decir, asegurar la
confidencialidad significa prevenir/ detectar/ impedir la revelación impropia de la información.
Desde el punto de vista de la fiabilidad del sistema el concepto de seguridad lo medimos en:
 La protección del sistema frente a ataques externos.
 La protección frente a caídas o fallos en el software o en el equipo.
 La protección frente a manipulación por parte del administrador.
La seguridad de los datos se refiere a la protección de estos contra el acceso por parte de las
personas no autorizadas y contra su indebida destrucción o alteración.
El analista de sistemas que se hace responsable de la seguridad debe estar familiarizado con todas las
particularidades del sistema, porque este puede ser atacado con fines ilícitos desde muchos ángulos.
A veces se presta mucha atención a alguno de los aspectos del problema mientras se descuidan
otros.
Los siguientes cuatro requisitos son esenciales para la seguridad de la base de datos:
1. La base de datos debe ser protegida contra el fuego, el robo y otras formas de destrucción.
2. Los datos deben ser reconstruibles, porque por muchas precauciones que se tomen, siempre
ocurren accidentes.
3. Los datos deben poder ser sometidos a procesos de auditoría. La falta de auditoría en los
sistemas de computación ha permitido la comisión de grandes delitos.
4. El sistema debe diseñarse a prueba de intromisiones. Los programadores, por ingeniosos que
sean, no deben poder pasar por alto los controles.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
32
Ningún sistema puede evitar de manera absoluta las intromisiones malintencionadas pero es posible
hacer que resulte muy difícil eludir los controles.
El sistema debe tener capacidad para verificar que sus acciones han sido autorizadas. Las acciones de
los usuarios deben ser supervisadas, de modo tal que pueda descubrirse cualquier acción indebida o
errónea.
Respaldos y replicación de bases de datos.
La replicación es el proceso mediante el cual se genera una copia exacta de parte del sistema. Esa
parte puede ser desde un archivo hasta una carpeta, una partición, un disco o incluso varios discos.
Los beneficios de realizar replicas presenta múltiples ventajas:
 Rendimiento: Normalmente y dependiendo siempre de las situaciones hay mas lectura que
escritura en una base de datos por lo que tener varios nodos solo procesando la lectura
puede traer un gran beneficio de rendimiento en una base de datos muy consultada.
 Prueba de fallas: Un esclavo estando casi sincrónicamente actualizado puede ser útil en caso
de que el nodo maestro caiga, este puede reemplazarlo y así no detener el servicio.
 Fiabilidad: Muchas veces se puede tener una replicación para tener la seguridad de que los
datos están siendo copiados a otro nodo, en caso de sufrir un desperfecto en el maestro.
 Generación de bloqueos: aunque esta es más precisa, también se puede usar para procesos
que necesiten leer datos, generando bloqueos, al hacerlo sobre un esclavo esto no interviene
en el funcionamiento de todo el sistema, es muy usado para por ejemplo, hacer copias de
seguridad, o extraer grandes cantidades de datos para generar estadísticas.
2.5. Gestión de transacciones en un SGBD
Definición de transacción.
Una transacción en un sistema de gestión de bases de datos (SGBD), es un conjunto de órdenes que
se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que
estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema
debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos
en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se
hubiese realizado.
El lenguaje de consulta de datos SQL, provee los mecanismos para especificar que un conjunto de
acciones deben constituir una transacción.
Por ejemplo,
BEGIN TRAN .
COMMIT TRAN, indica al motor que puede considerar la transacción completada con éxito.
ROLLBACK TRAN, indica que se ha alcanzado un fallo y que debe restablecer la base al punto de
integridad.
En un sistema ideal, las transacciones deberían garantizar todas las propiedades aunque en la
práctica alguna de estas propiedades se simplifica para mejorar el rendimiento.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
33
Componentes de un sistema de transacciones.
Un sistema de procesamiento de transacciones (TPS) es sistema de información que recolecta,
almacena, modifica y recupera toda la información generada por las transacciones producidas en una
organización.
Hay que recordar que una transacción es un evento que genera o modifica los datos que se
encuentran eventualmente almacenados en un sistema de información.
Desde un punto de vista técnico, un TPS monitoriza los programas transaccionales (que son
aplicaciones muy concretas). La base de un programa transaccional está en que gestiona los datos de
forma que estos deben ser siempre consistentes.
Por ejemplo, si se realiza un pago con una tarjeta electrónica, la cantidad de dinero de la cuenta
sobre la que realiza el cargo debe disminuir en la misma cantidad que la cuenta que recibe el pago, de
no ser así, ninguna de las dos cuentas se modificará.
Si durante el transcurso de una transacción ocurriese algún error, el TPS debe poder deshacer las
operaciones realizadas hasta ese instante. Si bien este tipo de integridad es que debe presentar
cualquier operación de procesamiento de transacciones por lotes, es particularmente importante
para el procesamiento de transacciones on-line.
Por ejemplo, un sistema de reserva de billetes de una línea aérea es utilizado simultáneamente por
varios operadores, tras encontrar un asiento vacío, los datos sobre la reserva de dicho asiento deben
ser bloqueados hasta que la reserva se realice, de no ser así, otro operador podría tener la impresión
de que dicho asiento está libre cuando en realidad está siendo reservado en ese mismo instante. Sin
las debidas precauciones, en una transacción podría ocurrir una reserva doble.
Otra función de los monitores de transacciones es la detección y resolución de interbloqueos
(deadlock), y cortar transacciones para recuperar el sistema en caso de fallos masivos.
Tipos de protocolos de control de la concurrencia.
La solución más típica es el protocolo de compromiso de dos fases (C2F) donde existe un coordinador
que normalmente es el proceso que inicio la transacción.
 Fase 1: El coordinador escribe en el log almacenado en memoria estable el registro (preparar T).
Manda un mensaje con ese contenido a los nodos implicados en la transacción. Cada proceso
implicado decide si está listo para hacer el compromiso, escribe en su log la decisión (listo T o no
listo T) y la manda en un mensaje al coordinador.
 Fase 2: Si el coordinador recibe alguna respuesta negativa u obtiene alguna falla de respuesta
decide abortar la transacción. En caso contrario decide realizar el compromiso.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
34
El coordinador escribe en el log la decisión y manda un mensaje a los procesos implicados. Cada
proceso que recibe el mensaje escribe en su log la decisión del coordinador y realiza la acción
correspondiente.
La terminación de una transacción se hace mediante la regla del compromiso global. El coordinador
aborta una transacción si y solo si al menos un proceso implicado decide abortar. El coordinador hace
un compromiso de la transacción si y solo si todos los participantes deciden realizar el compromiso.
Recuperación de transacciones.
La recuperación de transacción es el proceso de borrar los efectos indeseados de transacciones
específicas de la base de datos. La recuperación tradicional está en el nivel de objeto de base de
datos.
Por ejemplo, en el espacio de datos, espacio de mesa o nivel de índice.
Realizando una recuperación tradicional, un objeto de base de datos específico es elegido. Entonces,
una copia de seguridad de aquel objeto es aplicada, seguida volviendo a aplicar entradas de registro
para cambios que ocurrieron después de que la copia de imagen fue tomada. Recuerde que todos los
cambios hechos a una base de datos relacional son capturados en el registro de base de datos. De
este modo, si los detalles de cambio pueden ser leídos del registro, la recuperación puede ser
conseguida invirtiendo el impacto de los cambios registrados.
2.6. Soluciones de SGBD
Distribuidas – Orientadas a objetos.
Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente
relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos e interconectados
por una red de comunicaciones.
Por ejemplo, un servidor corriendo máquinas virtuales.
Las BDD tienen la capacidad de realizar procesamiento autónomo lo que les permite realizar
operaciones locales o distribuidas.
Un sistema distribuido de bases de datos se almacena en varias computadoras. Los principales
factores que distinguen un SBDD de un sistema centralizado son los siguientes:
 Hay múltiples computadores, llamados sitios o nodos.
 Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones
para transmitir datos y órdenes entre los sitios
En una base de datos orientada a objetos, la información se representa mediante objetos como los
presentes en la programación orientada a objetos. Cuando se integra las características de una base
de datos con las de un lenguaje de programación orientado a objetos, el resultado es un sistema
gestor de base de datos orientada a objetos.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
35
Un ODBMS hace que los objetos de la base de datos aparezcan como objetos de un lenguaje de
programación en uno o más lenguajes de programación a los que dé soporte. Un ODBMS extiende
los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperación
de datos, consultas asociativas y otras capacidades.
Las bases de datos orientadas a objetos se diseñan para trabajar bien en conjunción con lenguajes de
programación orientados a objetos como Java, C#, Visual Basic.NET y C++. Los ODBMS usan
exactamente el mismo modelo que estos lenguajes de programación.
Los ODBMS son una buena elección para aquellos sistemas que necesitan un buen rendimiento en la
manipulación de tipos de dato complejos.
Los ODBMS proporcionan los costes de desarrollo más bajos y el mejor rendimiento cuando se usan
objetos gracias a que almacenan objetos en disco y tienen una integración transparente con el
programa escrito en un lenguaje de programación orientado a objetos, al almacenar exactamente el
modelo de objeto usado a nivel aplicativo, lo que reduce los costes de desarrollo y mantenimiento.
Orientadas a datos estructurados (XML).
Estos datos pueden ser interrogados, exportados y serializados. Las bases de datos XML están
generalmente asociadas con las bases de datos documentales.
Existen dos grandes clases de bases de datos XML:
1. XML habilitado donde la base de datos procesa el XML internamente.
2. XML nativo (NXD) donde el modelo interno de estas bases de datos usa documentos XML
como la unidad elemental de almacenamiento, los cuales no han de almacenarse
necesariamente en formato de texto.
Almacenes de datos (data warehouse).
El almacenamiento de los datos no debe usarse con datos de uso actual. Los almacenes de datos
contienen a menudo grandes cantidades de información que se subdividen a veces en unidades
lógicas más pequeñas dependiendo del subsistema de la entidad del que procedan o para el que sea
necesario.
La ventaja principal de este tipo de sistemas se basa en su concepto fundamental, la estructura de la
información. Este concepto significa el almacenamiento de información homogénea y fiable, en una
estructura basada en la consulta y el tratamiento jerarquizado de la misma, y en un entorno
diferenciado de los sistemas operacionales.
El Data Warehouse aporta las siguientes características:
 Integración. Los datos almacenados deben formar parte de una estructura consistente lo que
obliga a eliminar las inconsistencias. La información suele estructurarse también en distintos
niveles de detalle para adecuarse a las distintas necesidades de los usuarios.
 División temática. Los datos se organizan por temas para facilitar su acceso y entendimiento
por parte de los usuarios finales.
Por ejemplo, todos los datos sobre clientes pueden ser consolidados en una única tabla del
Data Warehouse. De esta forma, las peticiones de información sobre clientes serán más
fáciles de responder dado que toda la información reside en el mismo lugar.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
36
 Historial. El tiempo es parte implícita de la información contenida en un Data Warehouse. En
los sistemas operacionales, los datos siempre reflejan el estado de la actividad del negocio en
el momento presente pero la información almacenada en el Data Warehouse sirve, entre
otras cosas, para realizar análisis de tendencias ya que se carga con los distintos valores que
toma una variable en el tiempo para permitir comparaciones.
 No volatilidad. El almacén de información de un Data Warehouse existe para ser leído, y no
modificado.
Ejemplo de esquema de funcionamiento de Data Warehouse
2.7. Criterios para la selección de SGBD comerciales
Existen distintos objetivos que deben cumplir los SGBD:
 Abstracción de la información.
No importa si una base de datos ocupa uno o cientos de archivos, este hecho se hace
transparente al usuario.
 Independencia.
La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico)
de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.
 Consistencia.
En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que
aquella información que aparece repetida se actualice de forma coherente, es decir, que todos
los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos
representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los
menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de
un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de
este tipo de condiciones.
 Seguridad.
La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD
deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de
usuarios, que permiten otorgar diversas categorías de permisos.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
37
 Manejo de transacciones.
Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que
luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el
programa no se hubiera ejecutado.
 Tiempo de respuesta.
Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información
solicitada y en almacenar los cambios realizados.
Recuerda…
TPS se le denomina al sistema de información que recolecta, almacena, modifica y recupera toda la
información generada por las transacciones producidas en una organización.
Una entidad fuerte existe por sí misma sin depender la existencia de alguna otra entidad.
Las supresiones en los árboles se pueden hacer mediante el método de la marca.
La fase de Análisis es la que estudia las necesidades de información de los usuarios finales.
Minimizar el tiempo de respuesta es uno de los objetivos del llamado diseño físico.
En los tipos de archivo ASCII los datos son almacenados a través de un simple texto.
Los SGBD tienen entre sus funciones garantizar la seguridad en los accesos de cada uno de los
usuarios.
Se puede definir un dato como un valor o referente que recibe el ordenador para que el
programador encontrar una solución concreta para un algoritmo.
Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el
almacenamiento, modificación y extracción de la información.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
38
3. LENGUAJES DE GESTIÓN DE BASE DE DATOS. EL ESTÁNDAR SQL
Una de las características principales del estándar la aportación que hace el álgebra y el cálculo
relacional facilitando las consultas y la recuperación de la información en una base de datos, así
como hacer cambios en ella.
3.1. Descripción del estándar SQL
Las restricciones son reglas que el motor de base de datos de SQL aplica de forma automática.
Por ejemplo, puede usar restricciones para garantizar que no se escriben valores duplicados
El lenguaje SQL posibilita los siguientes tipos de restricciones:
 NOT NULL: no se permite que un atributo tome valores nulos.
 UNIQUE: no se permiten valores repetidos en un atributo o agregación de atributos.
Especificación de claves candidatas. Se aceptan múltiples valores nulos.
 PRIMARY KEY: definición de un atributo o agregación de atributos como clave primaria.
Implícitamente NOT NULL.
 FOREIGN KEY: (atributo1, ...) REFERENCES nombre_tabla(atributo1, ...) ON DELETE CASCADE:
Definición de un atributo o agregación de atributos como clave ajena. Si no se especifica lo
contrario se permiten valores nulos, lo cual no suele ser recomendable. Los atributos
referenciados han de constituir clave primaria o clave alternativa. Si los atributos referenciados
son clave primaria en la otra tabla basta con especificar el nombre de la tabla.
NOTA: La cláusula ON DELETE CASCADE es opcional y hace referencia a si se deben propagar los
borrados de tuplas en la tabla referenciada en aquellas tablas que las referencien. Si no se
incluye se rechazan como erróneos los borrados de tuplas que ocasionen violación de la
integridad referencial.
 CHECK (predicado): Cada tupla de la tabla debe verificar el predicado lógico referente a la validez
del valor concreto de un atributo. Pueden incluirse subconsultas que hagan referencia a otras
tablas.
Las restricciones han de evaluarse cuando se insertan o se borran tuplas o bien cuando se modifica el
valor de un atributo en alguna tupla ya que en todo momento ha de garantizarse el mantenimiento
de la integridad referencial.
Puede usarse un mecanismo que permita agrupar varias operaciones de manera que las
verificaciones de las restricciones no tenga que hacerse para cada operación individual sino que se
agrupen en un conjunto de operaciones. Estas comprobaciones sobre si se cumplen o no las
restricciones impuestas pueden ser computacionalmente costosas según el tamaño de la base de
datos y la complejidad de la restricción.
Las restricciones podemos definirlas asociándoles un nombre y usando la siguiente sintaxis,
CONSTRAINT nombre_constraint definición_constraint
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
39
Las restricciones con nombre pueden activarse o desactivarse a voluntad mediante la cláusula
ENABLE CONSTRAINT o DISABLE CONSTRAINT utilizadas dentro de una sentencia ALTER TABLE de la
siguiente manera:
ALTER TABLE nombre_tabla ENABLE CONSTRAINT nombre_constraint;
ALTER TABLE nombre_tabla DISABLE CONSTRAINT nombre_constraint;
Los asertos son predicados lógicos que ha de cumplir la base de datos considerada como un todo (no
cada tupla de una tabla por separado, como es el caso de un constraint) y que pueden involucrar un
número cualquiera de atributos en todas las tuplas de una o varias tablas. Estos asertos permiten
expresar condiciones complejas que se desea que la base de datos satisfaga siempre.
Los asertos no se especifican dentro de una sentencia de creación de tabla sino que pueden crearse y
eliminarse de manera independiente usando las sentencias CREATE ASSERTION y DROP ASSERTION
de la siguiente manera:
CREATE ASSERTION nombre_aserto CHECK (predicado);
DROP ASSERTION nombre_aserto;
AL crear un aserto el SGBD comprueba su validez sobre el estado actual de la base de datos.
Esta comprobación de la validez del predicado puede requerir un relativamente elevado coste
computacional.
La interpretación de los valores nulos que hacen las sentencias SQL puede resultar problemática y
producir resultados un tanto extraños. Dependerá del sistema de gestión de bases de datos que se
esté usando.
Es común que el resultado de cualquier operación aritmética que involucra un valor nulo, sea nulo. A
las comparaciones y operaciones lógicas en las que aparecen valores nulos se les suele otorgar un
valor lógico falso por defecto aunque se podría contraponer que el valor lógico resultante debería ser
desconocido.
Por ejemplo, en una cláusula de ordenación ORDER BY la salida que se corresponde con valores nulos
para el criterio de ordenación se suele incorporar al principio del todo o bien al final, ante la
imposibilidad de ordenar utilizando los valores nulos.
Las funciones de agregación como las de suma, máximo, mínimo y media aritmética simplemente
ignoran los valores nulos en su entrada.
La excepción es la función de cuenta COUNT que sí cuenta los valores nulos. Si se aplica una función
de agregación sobre una colección de datos vacía se devuelve un valor nulo a excepción nuevamente
de la función de cuenta que devuelve un cero.
El término integridad de datos se refiere a la corrección y complementación de los datos en una base
de datos. Cuando los contenidos se modifican con sentencias del tipo INSERT, DELETE o UPDATE, la
integridad de los datos almacenados puede perderse de muchas maneras diferentes.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
40
Por ejemplo, podrían añadirse datos no válidos a la base de datos como un pedido sobre un producto
no existente.
Podrían modificarse datos existentes tomando un valor incorrecto como por ejemplo si se reasigna
un vendedor a una oficina no existente.
Los cambios en la base de datos pueden perderse debido a un error del sistema o a un fallo en el
suministro de energía e incluso los cambios pueden ser aplicados parcialmente, como por ejemplo si
se añade un pedido de un producto sin ajustar la cantidad disponible para vender.
Una de las funciones importantes de un sistema relacional es preservar la integridad de sus datos
almacenados en la mayor medida posible.
Dependiendo de la base de datos, los triggers o disparadores pueden ser de inserción (INSERT),
actualización (UPDATE) o borrado (DELETE). Algunas bases de datos pueden ejecutar triggers al crear,
borrar o editar usuarios, tablas, bases de datos u otros objetos.
Estas herramientas son usadas para mejorar la administración de la base de datos, sin necesidad de
contar con que el usuario ejecute la sentencia de SQL. Además, pueden generar valores de columnas,
previene errores de datos, sincroniza tablas, modifica valores de una vista, etc.
Los disparadores permiten implementar programas basados en paradigma lógico (sistemas expertos,
deducción).
La estructura básica de un disparador es:
 Llamada de activación, es la sentencia que permite lanzar el código a ejecutar.
 Restricción, es la condición necesaria para realizar el código. Puede ser de tipo condicional o
de tipo nulo.
 Acción a ejecutar, es la secuencia de instrucciones a ejecutar una vez que se han cumplido
las condiciones iniciales.
Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar:
1. Row Triggers (o Disparadores de fila).
2. Statement Triggers (o Disparadores de secuencia).
Ejemplo de disparador,
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
41
Gestión de permisos en tablas.
La instrucción GRANT se utiliza para conceder determinados permisos genéricos o bien permisos
sobre objetos a usuarios de la base de datos.
La sintaxis de la misma es la siguiente:
GRANT [privilegios_de_sistema | roles]
TO [usuarios | roles |PUBLIC] {WITH GRANT OPTION }
Para conceder permisos genéricos:
GRANT [ALL {PRIVILEGES} | SELECT | INSERT | UPDATE | DELETE] ON objeto
TO [usuario | rol | PUBLIC] {WITH GRANT OPTION}
Para conceder permisos sobre objetos:
La utilización de la opción de grant WITH GRANT OPTION permite que el usuario al que le han
concedido permisos pueda a su vez concederlos a otros usuarios.
Optimización de consultas.
El lenguaje SQL es no procedimental por lo que las sentencias indican que queremos conseguir y no
como lo tiene que hacer el intérprete correspondiente.
Por lo que no basta con especificar una sentencia SQL correcta, sino que además, hay que indicarle
como tiene que hacerlo si queremos que el tiempo de respuesta sea el mínimo.
Algunas cuestiones para optimizar las consultas pueden aplicarse desde el diseño:
 Normalizar las tablas, al menos hasta la tercera forma normal, para asegurar que no hay
duplicidad de datos y se aprovecha al máximo el almacenamiento en las tablas.
 Los primeros campos de cada tabla deben ser aquellos campos requeridos y dentro de los
requeridos primero se definen los de longitud fija y después los de longitud variable.
 Ajustar al máximo el tamaño de los campos para no desperdiciar espacio.
 Si un campo se va a utilizar con poca frecuencia es mejor crear una nueva tabla que contenga la
clave primaria de la primera y el campo para observaciones.
Gestión y elección de los índices.
No es posible indexar todos los campos de una tabla extensa ya que doblaríamos el tamaño de la
base de datos. Tampoco sería práctico indexar todos los campos en una tabla pequeña ya que las
selecciones pueden efectuarse rápidamente de todos modos.
Un caso en el que los índices pueden resultar muy útiles es cuando realizamos peticiones simultáneas
sobre varias tablas. En este caso, el proceso de selección puede acelerarse sensiblemente si
indexamos los campos que sirven de nexo entre las dos tablas.
Los índices pueden resultar contraproducentes si los introducimos sobre campos triviales a partir de
los cuales no se realiza ningún tipo de petición ya que, además del problema de memoria ya
mencionado, estamos ralentizando otras tareas de la base de datos como son la edición, inserción y
borrado.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
42
3.2. Creación de bases de datos
Creación de tablas. Tipos de datos.
Una base de datos en un sistema relacional compuesto por un conjunto de tablas que se
corresponden a las relaciones del modelo relacional. En la terminología usada en SQL no se alude a
las relaciones, del mismo modo que no se usa el término atributo, pero sí la palabra columna, y no se
habla de tupla, sino de línea.
Antes de poder proceder a la creación de las tablas hay que crear la base de datos lo que significa
definir un espacio de nombres separado para cada conjunto de tablas.
Se pueden gestionar diferentes bases de datos independientes al mismo tiempo sin que se den
conflictos con los nombres que se usan en cada una de ellas. La sintaxis a seguir es,
- CREATE DATABASE nombre_base de datos
Una vez creada la base de datos, se pueden crear las tablas que la componen. La instrucción SQL
propuesta para este fin es:
- CREATE TABLE nombre_tabla (
nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ]
[, nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] ... ]
[ , [ vínculo_de tabla] ... ] )
Por ejemplo,
CREATE TABLE resumenes (
ID INTEGER PRIMARY KEY,
type CHAR(18) NOT NULL
);
La instrucción anterior crea la tabla resúmenes, formada por las dos columna ID de tipo INTEGER, y
type de tipo CHAR(18).
ID es la llave primaria de la relación. En el atributo type hay un vínculo NOT NULL que indica que no
puede ser nulo (no nulidad).
1. Los tipos de datos que pueden usarse en las tablas son los habituales en el almacenamiento de
datos y variables:
 CHARACTER(n).
Una cadena de longitud fija con exactamente n caracteres. CHARACTER se puede abreviar con
CHAR
 CHARACTER VARYING(n).
Una cadena de longitud variable con un máximo de n caracteres. CHARACTER VARYING se puede
abreviar con VARCHAR o CHAR VARYING.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
43
 INTEGER.
Se puede abreviar con INT. La precisión, es decir el tamaño del número entero que se puede
memorizar en una columna de este tipo, depende de la implementación de la DBMS en cuestión.
 SMALLINT.
Un número entero con signo y una precisión que no sea superior a INTEGER.
 FLOAT(p).
El valor máximo de p depende de la implementación de la DBMS. Se puede usar FLOAT sin
indicar la precisión, empleando, por tanto, la precisión por defecto, también ésta dependiente de
la implementación. REAL y DOUBLE PRECISION son sinónimo para un FLOAT con precisión
concreta. También en este caso, las precisiones dependen de la implementación, siempre que la
precisión del primero no sea superior a la del segundo.
 DECIMAL (p,q).
Un número con coma fija de por lo menos p cifras y signo, con q cifras después de la coma. DEC
es la abreviatura de DECIMAL. DECIMAL (p) es una abreviatura de DECIMAL (p,0). El valor
máximo de p depende de la implementación.
 INTERVAL.
Un periodo de tiempo (años, meses, días, horas, minutos, segundos y fracciones de segundo).
 DATE, TIME y TIMESTAMP.
Un instante temporal preciso. DATE permite indicar el año, el mes y el día. Con TIME se pueden
especificar la hora, los minutos y los segundos. TIMESTAMP es la combinación de los dos
anteriores. Los segundos son un número con coma, lo que permite especificar también
fracciones de segundo.
La cláusula por defecto tiene:
La sintaxis es DEFAULT { valor | NULL } donde valor es un valor válido para el tipo con el que la
columna se ha definido.
2. Los vínculos de columna puede ser dos:
 NOT NULL, que indica que la columna no puede tomar el valor NULL.
 PRIMARY KEY, que indica que la columna es la llave primaria de la tabla.
3. Podemos agregar una definición de referencia con la que se indica que la columna es una llave
externa hacia la tabla y los campos indicados en la definición. La sintaxis es la siguiente:
REFERENCES nombre_tabla [ ( columna1 [ , columna2 ... ] ) ]
[ ON DELETE { CASCADE | SET DEFAULT | SET NULL } ]
[ ON UPDATE { CASCADE | SET DEFAULT | SET NULL } ]
Las cláusulas ON DELETE y ON UPDATE indican qué acción hay que ejecutar en el caso en que una
tupla en la tabla referenciada sea eliminada o actualizada. De hecho, en dichos casos en la columna
referenciante (que es la que se está definiendo) podría haber valores inconsistentes.
ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR
44
Las acciones pueden ser:
 CASCADE: eliminar la tupla que contiene la columna referenciante (en el caso de ON DELETE) o
también actualizar la columna referenciante (en el caso de ON UPDATE).
 SET DEFAULT: asignar a la columna referenciante su valor de defecto.
 SET NULL: asignar a la columna referenciante el valor NULL.
Un control de valor, con el que se permite o no asignar un valor a la columna en función del
resultado de una expresión. La sintaxis que se usa es:
CHECK (expresión_condicional) .
Por ejemplo, si estamos definiendo la columna COLUMNA1, con el siguiente control:
CHECK ( COLUMNA1 < 1000 )
En dicha columna se podrán incluir sólo valores inferiores a 1000.
4. PRIMARY KEY.
Con la siguiente sintaxis alternativa, PRIMARY KEY ( columna1 [ , columna2 ... ] ) se pueden formar
claves con más de un atributo.
Definición y creación de índices. Claves primarias y externas.
Los índices nos ayudan a obtener datos de las tablas en forma más rápida.
Por ejemplo, si estamos interesados en leer en un libro de electrónica acerca de cómo diseñar
circuitos, en vez de leer el libro desde el comienzo hasta que encontremos una sección sobre
circuiterías, es mucho más rápido para nosotros ir a la sección índice al final del libro, ubicar qué
páginas contienen la información sobre circuitos, y luego dirigirnos a esas páginas directamente.
Al dirigirnos al índice primero ahorramos tiempo y seguramente es el método más eficiente para
ubicar la información que necesitamos.
El mismo principio se aplica para la obtención de datos desde una tabla de base de datos. Sin un
índice, el sistema de base de datos lee a través de toda la tabla (este proceso se denomina escanear
la tabla) para localizar la información deseada.
Con el índice correcto en su lugar, el sistema de base de datos puede entonces primero dirigirse al
índice para encontrar de dónde obtener los datos, y luego dirigirse a dichas ubicaciones para obtener
los datos necesarios. Esto es mucho más rápido.
Por lo tanto, generalmente se recomienda crear índices en tablas. La sintaxis general para la creación
de un índice es:
CREATE INDEX "NOMBRE_ÍNDICE" ON "NOMBRE_TABLA" (NOMBRE_COLUMNA)
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor

Mais conteúdo relacionado

Mais procurados

Fundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwareFundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwarealberto calatayu
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosJuan Carlos Olivares Rojas
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascadaaics-1986-13-saraguro
 
Diseño de software modelo lineal (presentacion)
Diseño de software   modelo lineal (presentacion)Diseño de software   modelo lineal (presentacion)
Diseño de software modelo lineal (presentacion)Marco Antonio Perez Montero
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)marianela0393
 
Tipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasgrupo niche ortega
 
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010SaraEAlcntaraR
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
DISEÑO DE SALIDA DE SISTEMAS
DISEÑO DE SALIDA DE SISTEMAS DISEÑO DE SALIDA DE SISTEMAS
DISEÑO DE SALIDA DE SISTEMAS passodobles115
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteJosé Antonio Sandoval Acosta
 
sql server
sql serversql server
sql serverPcentro
 
Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon oswaldoyuneri
 

Mais procurados (20)

Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)Fundamentos de ingenieria del software (2)
Fundamentos de ingenieria del software (2)
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Funciones del DBA, SA Y DA
Funciones del DBA, SA Y DAFunciones del DBA, SA Y DA
Funciones del DBA, SA Y DA
 
02 Mitos de la ingeniería de software
02 Mitos de la ingeniería de software02 Mitos de la ingeniería de software
02 Mitos de la ingeniería de software
 
Fundamentos de la ingenieria del software
Fundamentos de la ingenieria del softwareFundamentos de la ingenieria del software
Fundamentos de la ingenieria del software
 
Proceso unificado
Proceso unificadoProceso unificado
Proceso unificado
 
Metodología RUP
Metodología RUPMetodología RUP
Metodología RUP
 
Técnicas para la Obtención de Requerimientos
Técnicas para la Obtención de RequerimientosTécnicas para la Obtención de Requerimientos
Técnicas para la Obtención de Requerimientos
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascada
 
Diseño de software modelo lineal (presentacion)
Diseño de software   modelo lineal (presentacion)Diseño de software   modelo lineal (presentacion)
Diseño de software modelo lineal (presentacion)
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)
 
Ciclo Vida del Software
Ciclo Vida del SoftwareCiclo Vida del Software
Ciclo Vida del Software
 
Tipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivasTipos de usuarios de base de datos diapositivas
Tipos de usuarios de base de datos diapositivas
 
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
Tema N° 7 Atributos de Calidad del Software según Norma ISO 25010
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
DISEÑO DE SALIDA DE SISTEMAS
DISEÑO DE SALIDA DE SISTEMAS DISEÑO DE SALIDA DE SISTEMAS
DISEÑO DE SALIDA DE SISTEMAS
 
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrenteTópicos Avanzados de Programación - Unidad 3 programacion concurrente
Tópicos Avanzados de Programación - Unidad 3 programacion concurrente
 
sql server
sql serversql server
sql server
 
Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon
 

Semelhante a Acceso a datos en aplicaciones web del entorno servidor

Semelhante a Acceso a datos en aplicaciones web del entorno servidor (20)

Modelos de bases de datos
Modelos de bases de datosModelos de bases de datos
Modelos de bases de datos
 
Resumen Tema 4
Resumen Tema 4 Resumen Tema 4
Resumen Tema 4
 
01 introduccion (1)my sql
01 introduccion (1)my sql01 introduccion (1)my sql
01 introduccion (1)my sql
 
Informatica
InformaticaInformatica
Informatica
 
Trabajo base de datos
Trabajo base de datosTrabajo base de datos
Trabajo base de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Unidad A
Unidad AUnidad A
Unidad A
 
Bases datos
Bases datosBases datos
Bases datos
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
U4
U4U4
U4
 
U4
U4U4
U4
 
Definiciones
DefinicionesDefiniciones
Definiciones
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Trabajo de base de datos
Trabajo de base de datosTrabajo de base de datos
Trabajo de base de datos
 
Trabajo sobre base de datos ii
Trabajo sobre base de datos iiTrabajo sobre base de datos ii
Trabajo sobre base de datos ii
 
Base de datos antonio yeguez
Base de datos antonio yeguezBase de datos antonio yeguez
Base de datos antonio yeguez
 
Modelos de BDD y modelos de datos
Modelos de BDD y modelos de datosModelos de BDD y modelos de datos
Modelos de BDD y modelos de datos
 
Diccionario de datos
Diccionario de datosDiccionario de datos
Diccionario de datos
 
Trabajo Base de Datos
Trabajo Base de DatosTrabajo Base de Datos
Trabajo Base de Datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 

Mais de Jomicast

Técnicas para la reparación de equipos electrónicos
Técnicas para la reparación de equipos electrónicosTécnicas para la reparación de equipos electrónicos
Técnicas para la reparación de equipos electrónicosJomicast
 
Montaje de un termostato electrónico
Montaje de un termostato electrónicoMontaje de un termostato electrónico
Montaje de un termostato electrónicoJomicast
 
Proyecto BOTTLER
Proyecto BOTTLERProyecto BOTTLER
Proyecto BOTTLERJomicast
 
Montaje de un grillo electrónico
Montaje de un grillo electrónicoMontaje de un grillo electrónico
Montaje de un grillo electrónicoJomicast
 
Medida de condensadores y bobinas
Medida de condensadores y bobinasMedida de condensadores y bobinas
Medida de condensadores y bobinasJomicast
 
Montaje de un indicador de la tensión de la bateria
Montaje de un indicador de la tensión de la bateriaMontaje de un indicador de la tensión de la bateria
Montaje de un indicador de la tensión de la bateriaJomicast
 
Montaje de una sirena de alarma electronica
Montaje de una sirena de alarma electronicaMontaje de una sirena de alarma electronica
Montaje de una sirena de alarma electronicaJomicast
 
Montaje de un sistema de carga de bateria
Montaje de un sistema de carga de bateriaMontaje de un sistema de carga de bateria
Montaje de un sistema de carga de bateriaJomicast
 
Montaje de un capacimetro digital
Montaje de un capacimetro digitalMontaje de un capacimetro digital
Montaje de un capacimetro digitalJomicast
 
Montaje de un interruptor crepuscular
Montaje de un interruptor crepuscularMontaje de un interruptor crepuscular
Montaje de un interruptor crepuscularJomicast
 
Montaje de un generador de funciones
Montaje de un generador de funcionesMontaje de un generador de funciones
Montaje de un generador de funcionesJomicast
 
Montaje de control de tonos y volumen
Montaje de control de tonos y volumenMontaje de control de tonos y volumen
Montaje de control de tonos y volumenJomicast
 
Montaje de un amplificador para sonorización
Montaje de un amplificador para sonorizaciónMontaje de un amplificador para sonorización
Montaje de un amplificador para sonorizaciónJomicast
 
Montaje de un temporizador de uso general
Montaje de un temporizador de uso generalMontaje de un temporizador de uso general
Montaje de un temporizador de uso generalJomicast
 
Montaje de un interruptor activado por sonido
Montaje de un interruptor activado por sonidoMontaje de un interruptor activado por sonido
Montaje de un interruptor activado por sonidoJomicast
 
Montaje de una fuente de alimentacion de laboratorio
Montaje de una fuente de alimentacion de laboratorioMontaje de una fuente de alimentacion de laboratorio
Montaje de una fuente de alimentacion de laboratorioJomicast
 
Montaje de un imitador de disparo de arma de fuego
Montaje de un imitador de disparo de arma de fuegoMontaje de un imitador de disparo de arma de fuego
Montaje de un imitador de disparo de arma de fuegoJomicast
 
Los circuitos hibridos
Los circuitos hibridosLos circuitos hibridos
Los circuitos hibridosJomicast
 
Montaje de un detector de movimientos
Montaje de un detector de movimientosMontaje de un detector de movimientos
Montaje de un detector de movimientosJomicast
 
El micrófono
El micrófonoEl micrófono
El micrófonoJomicast
 

Mais de Jomicast (20)

Técnicas para la reparación de equipos electrónicos
Técnicas para la reparación de equipos electrónicosTécnicas para la reparación de equipos electrónicos
Técnicas para la reparación de equipos electrónicos
 
Montaje de un termostato electrónico
Montaje de un termostato electrónicoMontaje de un termostato electrónico
Montaje de un termostato electrónico
 
Proyecto BOTTLER
Proyecto BOTTLERProyecto BOTTLER
Proyecto BOTTLER
 
Montaje de un grillo electrónico
Montaje de un grillo electrónicoMontaje de un grillo electrónico
Montaje de un grillo electrónico
 
Medida de condensadores y bobinas
Medida de condensadores y bobinasMedida de condensadores y bobinas
Medida de condensadores y bobinas
 
Montaje de un indicador de la tensión de la bateria
Montaje de un indicador de la tensión de la bateriaMontaje de un indicador de la tensión de la bateria
Montaje de un indicador de la tensión de la bateria
 
Montaje de una sirena de alarma electronica
Montaje de una sirena de alarma electronicaMontaje de una sirena de alarma electronica
Montaje de una sirena de alarma electronica
 
Montaje de un sistema de carga de bateria
Montaje de un sistema de carga de bateriaMontaje de un sistema de carga de bateria
Montaje de un sistema de carga de bateria
 
Montaje de un capacimetro digital
Montaje de un capacimetro digitalMontaje de un capacimetro digital
Montaje de un capacimetro digital
 
Montaje de un interruptor crepuscular
Montaje de un interruptor crepuscularMontaje de un interruptor crepuscular
Montaje de un interruptor crepuscular
 
Montaje de un generador de funciones
Montaje de un generador de funcionesMontaje de un generador de funciones
Montaje de un generador de funciones
 
Montaje de control de tonos y volumen
Montaje de control de tonos y volumenMontaje de control de tonos y volumen
Montaje de control de tonos y volumen
 
Montaje de un amplificador para sonorización
Montaje de un amplificador para sonorizaciónMontaje de un amplificador para sonorización
Montaje de un amplificador para sonorización
 
Montaje de un temporizador de uso general
Montaje de un temporizador de uso generalMontaje de un temporizador de uso general
Montaje de un temporizador de uso general
 
Montaje de un interruptor activado por sonido
Montaje de un interruptor activado por sonidoMontaje de un interruptor activado por sonido
Montaje de un interruptor activado por sonido
 
Montaje de una fuente de alimentacion de laboratorio
Montaje de una fuente de alimentacion de laboratorioMontaje de una fuente de alimentacion de laboratorio
Montaje de una fuente de alimentacion de laboratorio
 
Montaje de un imitador de disparo de arma de fuego
Montaje de un imitador de disparo de arma de fuegoMontaje de un imitador de disparo de arma de fuego
Montaje de un imitador de disparo de arma de fuego
 
Los circuitos hibridos
Los circuitos hibridosLos circuitos hibridos
Los circuitos hibridos
 
Montaje de un detector de movimientos
Montaje de un detector de movimientosMontaje de un detector de movimientos
Montaje de un detector de movimientos
 
El micrófono
El micrófonoEl micrófono
El micrófono
 

Último

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (15)

trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Acceso a datos en aplicaciones web del entorno servidor

  • 1. Acceso a datos en aplicaciones web del entorno servidor Programación web en el entorno servidor 22/11/2017 José Miguel Castillo Castillo
  • 2. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 1 INDICE DE CONTENIDO. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 1. MODELOS DE DATOS 1.1 Concepto de dato. Ciclo de vida de los datos 1.2 Tipos de datos 1.3 Definición de un modelo conceptual 1.4 El modelo relacional 1.5 Construcción del modelo lógico de datos 1.6 El modelo físico de datos 1.7 Transformación de un modelo lógico 1.8 Herramientas para la realización de modelos de datos 2. SISTEMAS DE GESTIÓN DE BASES DE DATOS 2.1 Definición de SGBD 2.2 Componentes de un SGDB 2.3 Terminología de SGDB 2.4 Administración de un SGDB 2.5 Gestión de transacciones en un SGBD 2.6 Soluciones de SGBD 2.7 Criterios para la selección de SGBD comerciales 3. LENGUAJES DE GESTIÓN DE BASE DE DATOS - ESTÁNDAR SQL 3.1 Descripción del estándar SQL 3.2 Creación de bases de datos 3.3 Gestión de registros en tablas 3.4 Consultas 3.5 Conversión, generación y manipulación de datos 3.6 Consultas múltiples. Uniones 3.7 Agrupaciones 3.8 Vistas 3.9 Funciones avanzadas 4. LENGUAJE DE MARCAS DE USO COMÚN EN EL LADO SERVIDOR 4.1 Origen e historia de los lenguajes de marcas - XML 4.2 Características de XML 4.3 Estructura de XML 4.4 Estándares basados en XML 4.5 Análisis XML 4.6 Uso de XML en el intercambio de información
  • 3. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 2 1. MODELOS DE DATOS Los datos aisladamente pueden no contener información humanamente relevante. Sólo cuando un conjunto de datos están agrupados de forma coherente siguiendo un enfoque concreto podremos acceder eficazmente a la información contenida en dichos datos. 1.1. Concepto de dato. Ciclo de vida de los datos Se puede definir un dato como un valor o referente que recibe el ordenador para que el programador pueda desarrollar un entorno o encontrar una solución concreta para un algoritmo. En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo. Cuando se habla de estructuras de datos se hace referencia la parte más pequeña de información con sentido por sí mismo. Un dato por sí mismo no constituye información, es el procesamiento de los datos lo que nos proporciona información. Los sistemas de información tienen un ciclo de vida formado de las siguientes fases:  Planificación. En esta fase tendremos que definir el problema, determinar identificar las restricciones del sistema y analizar si es factible para concluir si es posible llevar a cabo el proyecto.  Análisis. En esta fase se estudian las necesidades de información de los usuarios finales, constituyéndose la base del diseño de un sistema de información. También es en este período cuando se plantean todos los por menores para poder obtenerlos resultados que se esperan o quieren.  Diseño. En esta fase se deben preparar identificar alternativas del sistema, evaluaciones de las alternativas del sistema, selección de la mejor configuración y preparación propuestas de implementación.  Implementación. Trabajaremos directamente a implementación lo que incluirá la adquisición del hardware y del software. Es el momento también de la preparación de la base de datos y de las instalaciones físicas.  Uso y mantenimiento. Esta es la etapa final del ciclo de desarrollo de sistemas. En este período se pone en ejecución todo el trabajo realizado por parte de analistas y usuarios, es decir, la supervisión, evaluación y modificación de un sistema en el momento que deje de ser efectivo para las nuevas tareas que ocurran en un futuro.
  • 4. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 3 1.2. Tipos de datos Básicos. Cada lenguaje de programación trabaja con una variedad de tipos de datos concretos. Por ejemplo, PHP soporta distintos tipos de datos  Integer.  Floating Point number.  String.  Array.  Object. En la mayoría de los lenguajes suelen ser los mismos tipos aunque con pequeñas variaciones: Enteros. Los integers, o enteros, pueden tener distintos valores numéricos que se expresan con diferentes anotaciones. Por ejemplo, $a = 18; # decimal. $a = -18; # decimal negativo. $a = 022; # anotación octal; es igual a 18 decimales. $a = 0x12; # anotación hexadecimal, es igual a 18 decimales. Coma flotante. También conocido como floating point, este tipo de datos son los números con la coma móvil que nos permiten representar cantidades extremadamente grandes y pequeñas de una manera muy eficiente y compacta, y con la que se pueden realizar operaciones aritméticas. El estándar para la representación en coma flotante es el IEEE 754. Cadenas de caracteres (string). La sintaxis básica es $string = "Yo soy una cadena"; Si se utilizan las comillas (""), el contenido de la cadena se expande (o, técnicamente, "interpolado"). Por ejemplo, $num = 10; $string = "El número es $num"; Esto visualizará "El número es 10".
  • 5. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 4 otro ejemplo, Arrays o matrices. Los arrays de valores se pueden crear explícitamente definiendo los elementos, o introduciendo valores en la propia matriz. Por ejemplo: $a = ("abc", "def", "ghi"); Crea el array definiendo explícitamente sus elementos. En este otro ejemplo, se hace de forma diferente, $a[0] = "abc"; $a[1] = "def"; $a[2] = "ghi"; el array se crea con tres elementos. Recordemos que el primer elemento de un array se identifica con el número "0". Si, por ejemplo, la longitud de una array es "5", éste incluye seis elementos. El elemento que tiene el índice "0" es el primero del array. Si, en cambio, para añadir elementos a un array (supongamos que nos referimos al que hemos creado arriba) se utilizan los corchetes vacíos y los datos se ajustan al array. Por ejemplo: $a[] = "lmn"; $a[] = "opq"; En este caso, el array se alarga 2 elementos y resulta ser: $a[0] = "abc"; $a[1] = "def"; $a[2] = "ghi"; $a[3] = "lmn"; $a[4] = "opq"; Este ejemplo es mucho más útil cuando queremos ajustar los elementos al array sin acudir a funciones específicas y sin tener que leer el número de los elementos que están en el array. Todo se ajustará automáticamente y correctamente.
  • 6. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 5 Los array asociativos se basan, en cambio, en parejas nombre-valor (name-value). Por ejemplo, $a = array( "nombre" => "Mario", "apellido" => "Rossi", "email" => "mario@rossi.com", ); Objetos. Por ejemplo, en PHP, class visualiza { function ejecutar_visualiza () { echo "Visualiza un mensaje"; } } $obj=new visualiza; $obj->ejecutar_visualiza(); En primer lugar definimos la clase visualiza, que incluye la función ejecutar_visualiza que quiere decir que visualiza simplemente un mensaje en la pantalla. Con la declaración new inicializamos el objeto $obj e invocamos la función visualizar con el operador -> en $obj. Registros. Una tabla de una base de datos debemos definirla como una estructura formada por filas y columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura. A cada una de estas filas se les denomina registro. Por tanto, un registro se puede definir como un conjunto de campos que contienen los datos que pertenecen a una misma repetición de entidad. Se le asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índice aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda.
  • 7. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 6 Dinámicos. Los tipos de datos dinámicos pueden ser almacenados en estructuras de datos estáticas pero para ello tienen que utilizarse los llamados vectores o las menos empleadas matrices dimensionales. En caso de almacenar las estructuras de datos dinámicas en estructuras estáticas es recomendable comprobar si se conoce el número máximo y la cantidad media de datos que puedan tener. Si ambos valores son parecidos, se puede emplear una variable de vector estática o automática. Si son muy diferentes, o bien se desconocen, es conveniente ajustar el tamaño del vector al número de elementos que haya en un momento determinado en la estructura de datos y, por lo tanto, almacenar el vector en una variable de carácter dinámico. Las estructuras de datos dinámicas se almacenan, por lo común, empleando variables dinámicas. También es posible definir una estructura de datos dinámica como una colección de variables dinámicas cuya relación queda establecida mediante punteros, siendo posible modificar fácilmente tanto el número de datos de la estructura (creando o destruyendo las variables que los contienen) como la propia estructura, cambiando las direcciones contenidas en los apunta-dores de sus elementos. 1.3. Definición de un modelo conceptual Un modelo conceptual es un conjunto de conceptos y de reglas destinados a representar de forma global los aspectos lógicos de los diferentes tipos de elementos existentes en la realidad que está siendo analizada. Se suele hablar de una representación figurada de una experiencia empírica cuyo objetivo es ayudar a comprender la realidad. Según muchos autores, son marcos o estructuras que representan la realidad, pero no son la realidad sino su abstracción. Los modelos de datos se dividen en dos partes bien diferenciadas: 1. Lenguaje de definición de datos (DDL, Data Definition Languaje) que es un lenguaje que se emplea para escribir específicamente como serán los datos a almacenar en la base de datos y las condiciones que debe cumplir para ser aceptados. Permite definir las relaciones entre objetos. 2. Lenguaje de manipulación de datos (DML, Data Manipulation Languaje) que es un lenguaje utilizado para manipular esos datos (leer, añadir nuevos datos, modificar, borrar). Patrones. Los patrones son soluciones a situaciones comunes que se producen a la hora de modelar datos. Existen dos patrones principales que ayudarán a establecer la estructura que tendrán los documentos para lograr relacionar datos que en una base de datos relacional estarían en diferentes tablas:  Embeber. Si tienes experiencia en bases de datos orientadas u objetos, este patrón seguiría el mismo principio para la implementación de un TDA (Tipo de Dato Abstracto).  Referenciar. Este patrón busca imitar el comportamiento de las claves foráneas para relacionar datos que deben estar en colecciones diferentes. Hay que tener en cuenta que en pleno proceso de modelado cuando se realizan muchas actualizaciones sobre datos de colecciones relacionadas hay que intentar en lo posible que aquellos datos que se vayan a modificar se encuentren en el mismo documento.
  • 8. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 7 Modelo genéricos. Al igual que los patrones, los modelos genéricos ofrecen soluciones a problemas comunes. Los patrones ayudan a resolver situaciones concretas pero con los modelos genéricos podemos resolver situaciones que cubrirían la mayoría de los requisitos de un problema. No se parte de un modelo desde cero sino que se parte de una estructura genérica y se modifica para adaptarlo a las circunstancias. Por ejemplo, un blog en Internet. 1.4. El modelo relacional Su objetivo fundamental es trabajar con las relaciones. Siguiendo la teoría de las bases de datos relacionales creadas por Edgar Frank Codd estas relaciones podrían considerarse en forma lógica como un conjunto de datos llamados tuplas. La mayoría de las ocasiones se conceptualiza de una manera más sencilla, pensando en cada relación como si fuese una tabla que está compuesta por registros (cada fila de la tabla sería un registro o tupla), y columnas (también llamadas campos). Descripción. Todos los datos son almacenados en relaciones, y como cada relación es un conjunto de datos, el orden en el que éstos se almacenen no tiene relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esta cuestión aporta la posibilidad de entender y ser utilizado por un usuario no experto. La información puede ser recuperada o almacenada por medio de consultas que ofrecen una amplia flexibilidad y poder para administrar la información. Este modelo considera la base de datos como una colección de relaciones. De manera sencilla, una relación representa una tabla que no es más que un conjunto de filas, cada fila es un conjunto de campos y cada campo representa un valor que interpretado describe el mundo real. Cada fila también se puede denominar tupla o registro y a cada columna también se le puede llamar campo o atributo. Para manipular la información utilizamos un lenguaje relacional, actualmente se cuenta con dos lenguajes formales el álgebra relacional y el cálculo relacional. El álgebra relacional permite describir la forma de realizar una consulta, en cambio, el cálculo relacional sólo indica lo que se desea devolver. Esquema. Un esquema contiene la definición de una estructura (generalmente relaciones o tablas de una base de datos), es decir, determina la identidad de la relación y que tipo de información podrá ser almacenada dentro de ella; en otras palabras, el esquema contiene los metadatos de la relación. Todo esquema constará de:
  • 9. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 8 Nombre de la relación (su identificador). Nombre de los atributos (o campos) de la relación y sus dominios (el dominio de un atributo o campo define los valores permitidos para el mismo, equivalente al tipo de dato) Por ejemplo character, integer, date, string… Instancias. Se puede definir como el contenido de una tabla en un momento dado pero también sería correcto referirse a una instancia cuando se trabaja o se muestran únicamente un subconjunto de la información contenida en una relación o tabla. Entidades y tipos de entidades. Una entidad caracteriza a un tipo de objeto, real o abstracto, del problema a modelizar. Toda entidad tiene existencia propia, es distinguible del resto de las entidades, tiene nombre y posee atributos definidos en un dominio determinado. Una entidad es todo aquello de lo que se desea almacenar información. Por ejemplo, en el diagrama E-R las entidades se representan mediante rectángulos, como en el siguiente caso, Elementos de datos. Atributos. Los atributos definen o identifican las características de entidad (es el contenido propiamente de la entidad). Cada entidad contiene distintos atributos, que dan información sobre esta entidad. Estos atributos pueden ser de distintos tipos (numéricos, texto, fecha...). Los atributos se representan como círculos que descienden de una entidad, y no es necesario representarlos todos, sino los más significativos, como a continuación. Por ejemplo, en una entidad denominada Coches habría que recoger información propia de los coches. Unos posibles atributos serían los siguientes: número de chasis, matrícula, DNI del propietario, marca, modelo y muchos otros que complementen la información de cada coche.
  • 10. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 9 Relaciones. Tipos, subtipos. Cardinalidad. Las relaciones se representan en el diagrama E-R mediante flechas y rombos. Cada entidad interviene en una relación con una determinada cardinalidad que es el número de instancias o elementos de una entidad que pueden asociarse a un elemento de la otra entidad relacionada. Este dato numérico se representa mediante una pareja de datos siguiendo la sintaxis (cardinalidad mínima, cardinalidad máxima), asociada a cada uno de las entidades que intervienen en la relación. Son posibles las siguientes cardinalidades: (0,1), (1,1), (0,n), (1,n), (m,n). También se informa de las cardinalidades máximas con las que intervienen las entidades en la relación. El tipo de relación se define tomando los máximos de las cardinalidades que intervienen en la relación. Hay cuatro tipos posibles: 1. Una a una (1:1). En este tipo de relación, una vez fijado un elemento de una entidad se conoce la otra. Por ejemplo, nación y capital. 2. Una a muchas (1:N). Por ejemplo, cliente y pedidos. 3. Muchas a una (N:1). Simetría respecto al tipo anterior según el punto de visto de una u otra entidad. 4. Muchas a muchas (N:N). Por ejemplo, personas y viviendas. Toda entidad debe ser unívocamente identificada y distinguible mediante un conjunto de atributos (quizás un solo atributo) denominado identificador o clave principal o primaria. Puede haber varios posibles identificadores para una misma entidad, en cuyo caso se ha de escoger uno de ellos como identificador principal siendo el resto identificadores alternativos. Por ejemplo, dni y número de seguridad social de una persona. Hay unas normas de sentido común a seguir cuando se dibuja un diagrama E-R. La primera es emplear preferentemente líneas rectas en las relaciones y evitar en lo posible que estas líneas se crucen. Se suele usar nombres para describir las entidades y verbos para las relaciones. Esto es lógico ya que las entidades se ponen en común cuando se realiza alguna acción. Los verbos empleados no necesariamente tienen que ser siempre infinitivos. Por ejemplo, si se desea almacenar información sobre personas y los coches que eventualmente posean. Una misma persona puede poseer varios coches aunque puede haber personas que no posean ningún coche. Los coches se identifican mediante su número de matrícula y las personas mediante su documento nacional de identidad. Todo coche tiene un solo propietario. Se ha de almacenar la fecha en que una determinada persona adquirió un determinado coche. Una entidad del modelo E-R puede ser fuerte o débil. Una entidad fuerte existe por sí misma sin depender la existencia de alguna otra entidad. Por el contrario la existencia de una instancia de una entidad débil depende de la existencia previa de otra entidad. Si la entidad débil puede ser identificada sin necesidad de identificar previamente la entidad de cuya existencia depende, diremos que la entidad débil lo es por existencia únicamente. Si la entidad débil no puede ser identificada independientemente, sino que previamente es necesario identificar a la entidad de cuya existencia depende, diremos que la entidad débil lo es por identificación.
  • 11. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 10 Por extensión se considera que una relación en la hay entidades débiles también se dice débil por existencia o por identificación según sea el tipo de debilidad de las entidades que intervengan en la relación. Por ejemplo, Se desea almacenar información sobre buques petroleros y las refinerías donde éstos realizan operaciones de descarga de crudo. Un buque puede descargar combustible en cierta cantidad y en una determinada fecha en una de varias refinerías. En una misma refinería pueden descargar varios buques. Los buques se identifican mediante una matrícula naval y las refinerías mediante un código. Se desea almacenar información sobre empresas y sucursales de empresas. Una empresa puede tener varias sucursales repartidas geográficamente. Una sucursal determinada debe pertenecer a una y solo una empresa. Las sucursales se numeran correlativamente para cada empresa. Se desea almacenar información sobre personas y sus viviendas en propiedad. Supondremos que una vivienda tan solo puede pertenecer a una persona y que no toda persona debe ser obligatoriamente propietaria de al menos una vivienda. Una idea para reconocer entidades débiles es pensar qué es lo que sucede cuando se borra una instancia concreta de la entidad fuerte. Por ejemplo, si se desea diseñar una pequeña base de datos para almacenar información relativa a los estudios universitarios de un colectivo de alumnos pertenecientes a una misma facultad. Un alumno puede cursar a la vez varias asignaturas pertenecientes a cursos distintos. Cada curso se compone de una serie de asignaturas que se imparten en aulas. Las asignaturas se agrupan en áreas de conocimiento y los profesores que las imparten se agrupan en departamentos que supondremos no guardan relación con las áreas de conocimiento. No hay asignaturas sin alumnos. Todo profesor debe estar adscrito a un único departamento. Una asignatura puede ser impartida por varios profesores siempre que éstos pertenezcan al mismo departamento. Puede haber profesores que no impartan docencia. Hay que tener en cuenta en el ejemplo anterior que la restricción de que una asignatura no pueda ser enseñada por profesores de departamentos distintos no es expresable en el diagrama E-R. En la realidad deberá ser indicada utilizando el DDL cuando se cree la base de datos. El aspecto básico para elaborar un diagrama E-R es la determinación de entidades para lo cual se extraen de la descripción verbal del sistema los nombres comunes y entre ellos se escogen los que claramente aporten información valiosa. Con el resto de nombres se utiliza el sentido común descartando los inútiles. En caso de duda, es mejor incluir una entidad que posteriormente se revele como innecesaria que perder información relevante al problema.
  • 12. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 11 Un atributo que lógicamente pueda estar en varias entidades se ubicará finalmente en la entidad en la que sea más fijo, es decir, en la que esté más ligado al resto de atributos de esa entidad. Por sentido común pueden añadirse atributos que no aparezcan citados expresamente en la descripción verbal del problema. Muchas veces es posible simplificar el diagrama E-R eliminando entidades innecesarias. Por ejemplo, si una entidad que interviene únicamente en una relación del tipo una a una (1:1) no tiene como atributo más que su código, este atributo puede incluirse en la entidad con la que está relacionada eliminar tanto la relación como la entidad. Claves. Tipos de claves. El modelo entidad - relación exige que cada entidad tenga un identificador, se trata de un atributo o conjunto de atributos que identifican de forma única a cada uno de los ejemplares de la entidad. De tal forma que ningún par de ejemplares de la entidad puedan tener el mismo valor en ese identificador. Un ejemplo de identificador es el atributo "DNI" que identifica de forma única a cada uno de los españoles. Estos identificadores reciben en nombre de Identificador Principal (IP) o Clave Primaria (PK - Primary Key-). Se puede dar el caso de existir algún identificador más en la entidad, a estos identificadores se les denomina Identificadores Candidatos (IC). Los atributos identificadores de una entidad se representan en los diagramas de la siguiente forma. En el diseño de bases de datos relacionales, se llama clave primaria a un campo o a una combinación de campos que identifica de forma única a cada fila de una tabla. Una clave primaria comprende de esta manera una columna o conjunto de columnas. No puede haber dos filas en una tabla que tengan la misma clave primaria. Una clave primaria debe identificar unívocamente a todas las posibles filas de una tabla y no solo a las filas que se encuentran en un momento determinado. Ejemplos de claves primarias son DNI (asociado a una persona) o ISBN (asociado a un libro). Las guías telefónicas y diccionarios deben usar identificadores que permitan referirse unívocamente a cada uno de los elementos. El modelo relacional, según se lo expresa mediante cálculo relacional y álgebra relacional, no distingue entre clave primaria y otros tipos de claves. Las claves primarias fueron agregadas al estándar SQL principalmente para conveniencia del programador. En una arquitectura entidad- relación, la clave primaria permite las relaciones de la tabla que tiene la clave primaria con otras tablas que van a utilizar la información de esta tabla. Tanto claves únicas como claves primarias pueden referenciarse con claves foráneas.
  • 13. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 12 En el contexto de bases de datos relacionales, una clave foránea o clave ajena (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo deben ser la clave primaria u otra clave candidata en la tabla referenciada. Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla referenciada. Así, una fila en la tabla referendo no puede contener valores que no existen en la tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar información. Esto es una parte esencial de la normalización de base de datos. Normalización. Formas normales. El proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Las bases de datos relacionales se normalizan para:  Evitar la redundancia de los datos.  Evitar problemas de actualización de los datos en las tablas.  Proteger la integridad de los datos. En el modelo relacional es habitual denominar tabla a una relación aunque para que una tabla sea considerada como una relación tiene que cumplir con las siguientes condiciones restrictivas:  Cada tabla debe tener su nombre único.  No puede haber dos filas iguales. No se permiten los duplicados.  Todos los datos en una columna deben ser del mismo tipo. Edgar F. Codd definió las tres primeras formas normales (1NF, 2NF, y 3NF) que posteriormente se han resumido dependiendo de que todos los atributos no-clave sean dependientes en "la clave, la clave completa, y nada excepto la clave". Por ejemplo, si se intenta agrupar los datos de una pequeña biblioteca. Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de sólo tener campos atómicos, pues el nombre del lector es un campo que puede (y conviene) descomponerse en apellido paterno, apellido materno y nombres. Tal como se muestra en la siguiente tabla.
  • 14. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 13 La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho de otra manera, todos los atributos no clave deben depender por completo de la clave primaria. Actualmente en nuestra tabla tenemos varias dependencias parciales si consideramos como atributo clave el código del libro. Por ejemplo, el título es completamente identificado por el código del libro, pero el nombre del lector en realidad no tiene dependencia de este código, por tanto estos datos deben ser trasladados a otra tabla. La nueva tabla sólo contendrá datos del lector Hemos creado una tabla para contener los datos del lector y también tuvimos que crear la columna CodLector para identificar unívocamente a cada uno. Sin embargo, esta nueva disposición de la base de datos necesita que exista otra tabla para mantener la información de qué libros están prestados a qué lectores.
  • 15. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 14 Para la Tercera Forma Normal (3NF) la relación debe estar en 2NF y además los atributos no clave deben ser mutuamente independientes y dependientes por completo de la clave primaria. También recordemos que dijimos que esto significa que las columnas en la tabla deben contener solamente información sobre la entidad definida por la clave primaria y, por tanto, las columnas en la tabla deben contener datos acerca de una sola cosa. En nuestro ejemplo en 2NF, la primera tabla conserva información acerca del libro, los autores y editoriales, por lo que debemos crear nuevas tablas para satisfacer los requisitos. Debemos crear otras tablas que relacionen cada libro con sus autores y editoriales. Las cuarta y quinta formas normales (4NF y 5NF) se ocupan específicamente de la representación de las relaciones muchos a muchos y uno muchos entre los atributos. La sexta forma normal (6NF), en pocas palabras, se basa en el principio de que si se tiene más de dos llaves candidatas en una tabla, se tendrán que crear otras tablas con estas.
  • 16. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 15 No es muy utilizada la sexta forma normal porque genera más tablas cuando tenemos pequeñas bases de datos. 1.5. Construcción del modelo lógico de datos Habitualmente un modelo de datos permite describir:  Las estructuras de datos de la base, es decir los tipos de los datos que se manejaran y la forma en que se relacionan entre ellos.  Las restricciones de integridad. Un conjunto de condiciones que deben cumplir los datos para reflejar correctamente la realidad deseada.  Operaciones de manipulación de los datos. Las operaciones de añadir, borrar, modificar y recuperar los datos de una base.  Otro enfoque es pensar que un modelo de datos permite describir los elementos de la realidad que intervienen en un problema dado y la forma en que se relacionan esos elementos entre sí. Especificación de tablas. Una tabla es utilizada para organizar muchos tipos de información. Las tablas se componen de filas y columnas de celdas que se pueden rellenar con textos y gráficos. Las tablas se componen de dos estructuras: 1. Registro. Es cada una de las filas en que se divide la tabla. Cada registro contiene datos de los mismos tipos que los demás registros. Por ejemplo, en una tabla de nombres y direcciones, cada fila contendrá un nombre y una dirección. 2. Campo: es cada una de las columnas que forman la tabla. Contienen datos de tipo diferente a los de otros campos. Por ejemplo, siguiendo el caso anterior, un campo contendrá un tipo de datos único, como una dirección, o un número de teléfono, un nombre, etc. A los campos se les puede asignar, además, propiedades especiales que afectan a los registros insertados. El campo puede ser definido como índice lo cual permite que los datos de ese campo cambien solos automáticamente incrementando en cada nuevo registro. Cada tabla creada debe tener un nombre único en la cada Base de Datos, haciéndola accesible mediante su nombre o su seudónimo (Alias, dependiendo del tipo de base de datos elegida) La estructura de las tablas viene dado por la forma de un archivo plano los cuales en un inicio se componían de un modo similar. Definición de columnas. Una columna es un conjunto de valores de datos de un simple tipo particular, uno por cada fila de la tabla. Las columnas proporcionan la estructura según la cual se componen las filas. El término campo es frecuentemente intercambiable con el de columna, aunque muchos consideran más correcto usar el término campo (o valor de campo) para referirse específicamente al simple elemento que existe en la intersección entre una fila y una columna.
  • 17. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 16 Por ejemplo, una tabla que representa compañías pudo tener las siguientes columnas: ID(identificador entero, único a cada fila) Nombre (texto) Dirección 1 (texto) Dirección 2 (texto) Ciudad (identificador entero, proviene de una tabla separada de ciudades, de la que cualquier información del estado o del país puede ser tomada) Código postal (texto) Industria (identificador entero, Proviene de una tabla separada de industrias) Cada fila proporcionaría un valor de los datos para cada columna y después sería entendida como un sólo simple valor de datos estructurado, en este caso representando a una compañía. Especificación de claves. En cualquier base de datos los registros incluidos en sus diferentes tablas deben estar perfectamente identificados y de esto se encargan las claves o llaves. Trasladando este concepto a la vida real, cada ciudadano tiene un número de DNI, puede haber dos personas con igual nombre e incluso apellidos iguales, pero ambos se diferenciarán por su número de DNI, que es único en "teoría". Cada tabla debe contener al menos un campo que permita identificar unívocamente cada registro. Este campo puede ser real, como el propio DNI de una persona. O puede ser un valor que nos inventemos para conseguir el mismo fin, como un número que asignemos automáticamente a cada registro, asegurándonos (realmente lo hará Base) de que no se repita. Otra opción es utilizar una combinación de campos para identificar los registros de la tabla. Por ejemplo podríamos definir la combinación de Nombre y Apellidos de nuestra tabla para este fin. Sin embargo, existe la probabilidad de que haya alumnos con igual nombre y apellidos, por lo que no sería una clave del todo válida. Conversión a formas normales. Dependencias. En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayoría de las bases de datos. Una tabla está en Primera Forma Normal si:  Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son indivisibles, mínimos.  La tabla contiene una llave primaria única.  La llave primaria no contiene atributos nulos.  No debe existir variación en el número de columnas.  Los Campos no llave deben identificarse por la llave. Dependencia Funcional.  Debe Existir una independencia del orden tanto de las filas como de las columnas, es decir, si los datos cambian de orden no deben cambiar sus significados  Una tabla no puede tener múltiples valores en cada columna. Los datos son atómicos. A cada valor de X le pertenece un valor de Y y viceversa.
  • 18. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 17 Esta forma normal elimina los valores repetidos dentro de una BD. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen dependencias parciales. Todos los atributos que no son clave principal deben depender únicamente de la clave principal. Por ejemplo {DNI, ID_PROYECTO} -> HORAS_TRABAJO (con el DNI de un empleado y el ID de un proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es completamente funcional dado que ni DNI -> HORAS_TRABAJO ni ID_PROYECTO -> HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO} -> NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI -> NOMBRE_EMPLEADO mantiene la dependencia. Formalmente, un esquema de relación está en 3 Forma Normal Elmasri-Navathe, si para toda dependencia funcional, se cumple al menos una de las siguientes condiciones:  X es superllave o clave.  A es atributo primo de R; esto es, si es miembro de alguna clave en R. Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma normal. Formalmente, un esquema de relación R está en FNBC (Forma normal de Boyce-Codd ), si y sólo si, para toda dependencia funcional X -> A válida en R, se cumple que X es superllave o clave. De esta forma, todo esquema R que cumple FNBC, está además en 3FN; sin embargo, no todo esquema R que cumple con 3FN, está en FNBC. Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no funcionales X->->Y, siendo X una súper-clave que, X es o una clave candidata o un conjunto de claves primarias. Una tabla se encuentra en 5FN si:  La tabla está en 4FN  No existen relaciones de dependencias no triviales que no siguen los criterios de las claves. Una tabla que se encuentra en la 4FN se dice que está en la 5FN si, y sólo si, cada relación de dependencia se encuentra definida por las claves candidatas. Para hablar de dependencia funcional debemos hablar de que B es funcionalmente dependiente de A. Por ejemplo si se conoce el valor de DNI tiene una conexión con Apellido o Nombre. Las dependencias funcionales del sistema se escriben utilizando una flecha bajo la siguiente sintaxis, FechaDeNacimiento -> Edad
  • 19. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 18 Armstrong aportó tres axiomas aplicables a las dependencias: 1. Dependencia funcional Reflexiva. 2. Si "y" está incluido en "x" entonces x -> y 3. A partir de cualquier atributo o conjunto de atributos siempre puede deducirse él mismo Si la dirección o el nombre de una persona están incluidos en el DNI, entonces con el DNI podemos determinar la dirección o su nombre. Dependencia funcional Aumentativa. X -> y entonces xz -> yz DNI -> nombre DNI, dirección -> nombre, dirección Si con el DNI se determina el nombre de una persona, entonces con el DNI más la dirección también se determina el nombre y su dirección. Dependencia funcional transitiva. Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente de X y Z de Y, pero X no depende funcionalmente de Y, se dice entonces que Z depende transitivamente de X. Simbólicamente sería: X -> Y -> Z entonces X -> Z Ejemplo gráfico de dependencia funcional transitiva, FechaDeNacimiento -> Edad Edad -> Conducir FechaDeNacimiento -> Edad -> Conducir Tendremos que FechaDeNacimiento determina a Edad y que Edad determina a Conducir, indirectamente podremos condicionar Conducir con FechaDeNacimiento Las propiedades deducidas son:  Unión. x->y y y->z entonces x->yz  Pseudo-transitiva. x->y y wy->z entonces wx->z  Descomposición. x->y y z está incluido en y entonces x -> z
  • 20. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 19 1.6. El modelo físico de datos. Ficheros de datos En la informática el concepto de modelo de datos se centra en el planeamiento del desarrollo de aplicaciones y la decisión de cómo se almacenarán los datos y cómo se accederá a ellos. Si se utilizan las mismas estructuras para el almacenamiento y el acceso distintas aplicaciones podrán compartir información. Por ejemplo un formulario de registro en una página de Internet, donde para nuestro nombre sólo podemos ingresar letras, y para nuestra fecha de nacimiento, números con un orden específico (como ser día, mes y año). Estas restricciones responden a necesidades de la base de datos y deberían ser iguales en dos bases entre las que se quisiera compartir información. Como inconveniente ante la gran ventaja de la eficiencia que presentan el alto costo del desarrollo, la operación y el mantenimiento de los sistemas y las interfaces. Si la calidad de los modelos de datos implementados es baja este hecho puede ser un obstáculo para el crecimiento de una empresa ya que es algo muy visual cuando una compañía que nunca invirtió muchos recursos en su infraestructura digital decide que quiere modernizarse y descubre que cuenta con una base de datos tan ineficiente y mal concebida, que resultaría más sencillo y menos costoso reconstruir todo desde el comienzo. Descripción de los ficheros de datos. Habitualmente se llama fichero a un conjunto de información clasificada y almacenada de diversas formas para su conservación y fácil acceso en cualquier momento. Un fichero puede ser un sistema de archivos físicos contenidos en cajas u otros elementos de almacenamiento que forman parte de un conjunto mayor como una biblioteca o archivo público o privado. Es aplicable que el fichero utilice una taxonomía o sistema de clasificación común para todos sus contenidos que permiten la búsqueda de datos específicos de forma rápida y sencilla. El más común es el orden alfabético por concepto o autor, pero también puede clasificarse la información según áreas temáticas, por orden cronológico u otros criterios dependiendo de la información contenida en el fichero. En informática, un archivo o fichero también es un conjunto de información que se almacena en forma virtual para ser leído y/o accedido por medio de una computadora. Las posibilidades de almacenamiento y clasificación son mucho más variadas en un sistema informático ya que la información no ocupa un espacio físico y es posible conservar millones de datos en un dispositivo muy pequeño. Se puede guardar información de texto, audio o video en un mismo lugar sin inconveniente alguno. El propio sistema organiza taxonómicamente la información de forma automática permitiendo que el usuario la encuentre con sólo introducir palabras claves en un buscador lo que permitirá realizar operaciones rápidas y ágiles cuando la información almacenada es múltiple. Los sistemas informáticos suelen ser réplicas de los ficheros físicos organizando el contenido en carpetas y subcarpetas creadas y administradas por el usuario que son ubicadas en el disco interno y que pueden ser abiertas mediante accesos directos dispuestos en el escritorio virtual del ordenador.
  • 21. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 20 Tipos de ficheros. De acuerdo a los datos que almacenan podemos clasificarlos en:  ASCII. En este tipo de archivo los datos son almacenados a través de un simple texto. Esto permite intercambiar a los datos que contienen así como también para crear archivos que el propio usuario pueda modificar.  Binario. Esta clase de archivos, en cambio, almacena información en un lenguaje al que sólo la propia computadora comprende, por ejemplo colores, sonidos, imágenes u órdenes. Estos archivos son de menor peso que los anteriores. Modos de acceso. De acuerdo al mecanismo que se utiliza para acceder a los archivos se encuentran los siguientes tipos:  Archivos directos. En estos cada registro puede leerse y escribirse directamente.  Archivos secuenciales, en estos archivos los registros se organizan de manera secuencial de manera tal que para leer uno, se deben haber leído los anteriores. Organización de ficheros. Son los modos de disponer los registros del fichero en el soporte. Existen tres modos principales:  Secuencial: Un registro a continuación de otro. Los registros están dispuestos uno a continuación de otro. Existen dos formas de este tipo: simple y encadenado.  Simple. Un registro físico es el bloque fijo que se transfiere del disco a la memoria principal, y por tanto puede contener más de un registro lógico. Este tipo de fichero presenta la posibilidad de realizar consultas rápidas dentro del procesamiento secuencial. También son posibles modificaciones teniendo en cuenta las diferentes posibilidades que pueden verse en la siguiente tabla. Si el soporte es secuencial la modificación obliga a hacer una copia del fichero. Si el soporte es directo es posible hacer modificaciones sencillas, pero la inserción y el borrado requieren una copia del fichero. Las características de este método son: o Proceso lento para consultas puntuales. o Aprovechan mucho el espacio de almacenamiento (sólo se precisa el justo para los datos). o Posibilidad de usar cualquier tipo de soporte. o Problema para procesar un fichero por más de una clave (campo de registro), ya que si un registro está ordenado en función de una clave no puede estarlo por otra.
  • 22. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 21 Las soluciones a este problema son: o bien se tienen dos ficheros iguales o más (tantos como clasificaciones diferentes haya) cada uno ordenado con respecto a una clave, o bien se clasifica el fichero cada vez que se quiera acceder (lo cual es muy lento).  Encadenado. Los registros deben contener un campo extra para almacenar el puntero (que puede dar la dirección exacta del siguiente registro o bien ser una dirección relativa respecto del comienzo del fichero). Se crea para evitar las copias implicadas en el proceso de inserción y borrado; estos procesos sólo conllevan un reajuste de punteros. Los punteros son entre registros físicos, y recordemos que en un registro físico cabe más de un registro lógico. Este tipo de organización se usa mucho con diferentes estructuras: o Listas Simples. Son de acceso o procesamiento secuencial y suelen ser pilas o colas. Son las más sencillas y responden a la descripción general que se ha hecho para los ficheros secuenciales encadenados. o Listas Múltiples. En este tipo de listas cada registro lleva más de un puntero. Permiten tener clasificados los registros por más de una clave, teniendo varios campos de puntero. Suele haber un registro índice que es cabeza de todas las listas, o sea, es un registro de punteros que apuntan al principio de la lista correspondiente a la ordenación que deseemos. Como los registros no se almacenan secuencialmente, y sin embargo si se accede secuencialmente, este acceso es más lento porque la cabeza tiene que ir dando saltos. Uno de los principales problemas de las estructuras encadenadas es que si se hacen muchas supresiones, quedan excesivos huecos, con lo que el fichero se desaprovecha excesivamente. 1.7. Transformación de un modelo lógico en un modelo físico de datos Los objetivos del diseño físico son:  Minimizar el tiempo de respuesta. Tiempo entre la introducción de una transacción T de BD y la obtención de respuesta.  Maximizar la productividad de las transacciones.  Optimizar el aprovechamiento del espacio. Cantidad de espacio ocupado por ficheros de la BD y sus estructuras de acceso.  En general se especifica límites promedio y del peor de los casos de cada parámetro anterior como parte de los requisitos de rendimiento del sistema.
  • 23. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 22 El afinamiento del diseño puede esquematizarse de la siguiente forma, Durante el diseño físico hay que tener en cuenta diversos factores:  Que el rendimiento depende del tamaño y número de registros en los ficheros. Estimación del tamaño de registro y del número de registros para cada fichero.  Estimar crecimiento de cada fichero, es decir responder a cómo y cuánto va a crecer el tamaño del registro, o en número de registros.  El uso que se espera dar a la base de datos. Implicará estimar patrones de actualización y obtención de datos para cada fichero, considerando todas las transacciones. 1.8. Herramientas para la realización de modelos de datos La capacidad de realizar un diseño de modelo visualizándolo de forma gráfica, a través de los Diagramas E-R, o de obtener un diagrama y documentación de una base de datos existente aumenta enormemente la eficiencia de nuestro trabajo reduciendo drásticamente el tiempo necesario con respecto a una realización manual de dichas tareas de diseño, análisis y estudio. Algunas de estas herramientas son las siguientes:  Toad. Permite trabajar con una gama amplísima de bases de datos relacionales desde las más populares a las más especializadas. Aporta una potente herramienta de desarrollo que simplifica el trabajo rutinario.  Oracle Data Modeler. Aplicación que puede ejecutarse de manera independiente o incorporarse como un módulo en otras herramientas como por ejemplo la también gratuita Oracle SQL Developer.
  • 24. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 23  SQL Power Architect. Estamos ante una herramienta de modelado de datos que fue creada por los diseñadores de almacenamiento de datos y tiene muchas características únicas dirigidas específicamente para el arquitecto de almacenamiento de datos. Permite a los usuarios de la herramienta ingeniería inversa de bases de datos existentes, realizar perfiles de datos en bases de datos de origen y generar automáticamente los metadatos de ETL.  SQL Power Architec es una herramienta ideal para grupos de desarrollo donde se pude realizar el modelado de datos y poder así tener documentado el modelo de datos de todas las aplicaciones que se desarrollan. Algunas Características de SQL Power Architect:  Permite acceder a las bases de datos a través de JDBC.  Puedes conectarte a múltiples bases de datos al mismo tiempo.  Compara modelos de datos y estructuras de bases de datos e identifica las discrepancias.  Drag-and-drop de las tablas origen y las columnas en el área de trabajo.  Ingeniería directa/inversa para PostgreSQL, Oracle, MS SQL Server y muchas más.  Todos los proyectos se guardan en formato XML.  OLAP modelos de esquema: cubos, medidas, dimensiones, jerarquías y niveles. SQL Power Architec edición Community es gratuita bajo licencia Open Source GPL v.3.
  • 25. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 24 2. SISTEMAS DE GESTIÓN DE BASES DE DATOS (SGBD) Los sistemas de gestión de bases de datos (SGBD) proporcionan métodos para mantener la integridad de los datos, para administrar el acceso de usuarios a los datos y para recuperar la información si el sistema se corrompe permitiendo presentar la información de la base de datos en variados formatos. La mayoría de los SGBD incluyen un generador de informes y también es habitual que incluyan un módulo gráfico que permita presentar la información con gráficos y tartas. 2.1. Definición de SGBD Hay muchos tipos de SGBD distintos según los datos que manejen y dependiendo de los tamaños de las bases de datos ya que podemos estar hablando desde ordenadores personales y con poca memoria hasta grandes sistemas que funcionan en mainframes con sistemas de almacenamiento especiales. NOTA: Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden acceder a la información usando herramientas específicas de interrogación y de generación de informes. Algunas cuestiones vinculadas directamente con las bases de datos son:  Definir una base de datos consiste en especificar los tipos de datos, estructuras y restricciones para los datos que se almacenarán.  Construir una base de datos es el proceso de almacenar los datos sobre algún medio de almacenamiento.  Manipular una base de datos incluye funciones como consulta, actualización, etc. de bases de datos.  La estructura general de un sistema de bases de datos puede verse en el siguiente esquema,
  • 26. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 25 2.2. Componentes de un SGDB. Estructura Según Korth, los componentes funcionales de un SGBD deben incluir:  Un procesador de consultas que traduzca sentencias en un lenguaje de consultas a instrucciones de bajo nivel que entienda el gestor de la base de datos.  Un gestor de base de datos que proporcione la interface entre los datos de bajo nivel almacenados en la base de datos y los programas de aplicación y las consultas que se hacen en el sistema.  Un gestor de archivos que gestione la asignación de espacio en la memoria del disco y de las estructuras de datos usadas para representar la información almacenada en disco.  Un pre compilador del llamado lenguaje de manipulación de datos DML.  Un compilador del lenguaje de definición de datos DDL que convierta sentencias en un conjunto de tablas metadatos o “datos sobre datos”.  Un gestor del diccionario de datos Ejemplo de diccionario de dato,
  • 27. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 26  Un sistema de control de autorización.  Un procesador de comandos.  Un sistema de control de la integridad. Por ejemplo, cuando una operación cambia los datos de la base de datos, este sistema debe comprobar que la operación a realizar satisface todas las restricciones de integridad necesarias.  Un optimizador de consultas que determine la estrategia óptima para la ejecución de las consultas.  Un gestor de transacciones que realice el procesamiento de las transacciones.  Un planificador responsable de asegurar que las operaciones que se realizan concurrentemente sobre la base de datos tienen lugar sin conflictos.  Un gestor de recuperación que garantice que la base de datos permanece en un estado consistente en caso de que se produzca algún fallo.  Un gestor de buffers que se responsabilice de transferir los datos entre memoria principal y los dispositivos de almacenamiento secundario. Gestión de almacenamiento. Se trata de la interface entre los programas de aplicación, las consultas y los datos de bajo nivel. Su misión es controlar el acceso a la información en la BD e interactúa con el gestor de ficheros para actualizar, recuperar o almacenar los datos de la BD. Está compuesto habitualmente por los siguientes elementos:  El gestor de transacciones que nos asegura que la BD quede en un estado consistente después de un fallo del sistema.  El gestor de memoria intermedia que se encarga de transferir los datos entre la memoria principal y los dispositivos de almacenamiento secundario.  El gestor de archivos que cuando se trabaja con ficheros dispersos es el responsable de llamar a la función de dispersión para generar la dirección de los registros. Gestión de consultas. El procesador de consultas recibe las peticiones de consulta o actualización y encuentra la mejor manera de realizarla mediante un plan de ejecución. Sus principales componentes son:  Un pre compilador del LMD incorporado para el trabajo en conjunto con el compilador del LMD para generar el código adecuado.  Un compilador de LMD.  Un motor de evaluación que ejecute las instrucciones de bajo nivel generadas por el compilador.  Un intérprete del lenguaje de definición de datos. Motor de reglas. En informática, una llamada regla de negocio es una descripción muy concreta que permite controlar y/o tomar una decisión en una empresa o una organización. Estas reglas permiten describir lo que se debe hacer y pueden ser expresadas como reglas simples (del tipo SI <<Condiciones>> ENTONCES <<Acciones>>), como cuadro de decisión o como árbol de decisión.
  • 28. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 27 Las operaciones habituales llevadas a cabo por los motores de reglas son:  edición, creación e interpretación  organización  comprobación, validación y simulación  gestión del ciclo de vida  despliegue  gestión de los derechos. 2.3. Terminología de SGDB Principales términos relacionados con SGBD: 1. Administración de Base de Datos Relacional: El programa que funciona con dos tablas de datos al mismo tiempo, relaciona la información mediante vinculaciones establecidas por una columna o campos comunes. 2. Acceso: La manera en la cual los archivos o conjunto de datos son referenciados por la computadora. 3. Base de Datos: Es una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los Sistemas de Información de una empresa o negocio en particular. 4. Buscadores: O también llamados motores de búsqueda, son herramientas que permiten clasificar la información que existe en la red y hacerla localizable en poco tiempo según las preferencias del usuario. 5. Campo: Los nombres de los campos, no pueden empezar con espacios en blanco y caracteres especiales. No pueden llevar puntos, ni signos de exclamación o corchetes. Si pueden tener espacios en blanco en el medio. 6. Datos estadísticos: estos almacenan información estadística sobre los datos en la base de datos. 7. El DBMS: es un conjunto de programas que se encargan de manejar la creación y todos los accesos a las bases de datos. 8. Eliminación: Es una solicitud de eliminación que se expresa de forma muy parecida a una consulta. Sólo es posible eliminar tuplas completas. 9. Facilidad de Consultas: Este tipo de consultas tienen como misión proporcionar la información solicitada por el usuario de una forma correcta y rápida. 10. Formulario: es el elemento en forma de fecha que permite la gestión de los datos de una forma más cómoda y visiblemente más atractiva. 11. Gestor de Base de Datos: Es un conjunto de programas que permiten crear y mantener una base de datos, asegurando su integridad, confidencialidad y seguridad. 12. Independencia de los datos: Se refiere a la protección contra los programas de aplicaciones que pueden originar modificaciones cuando se altera la organización física y lógica de las bases de datos. 13. JDBC: La Conectividad de Bases de Datos Java es una especificación de la interfaz de aplicación de programa (application program interface, API) para conectar los programas escritos en Java a los datos en bases de datos populares. 14. La manipulación de datos: la manipulación de datos es la recuperación de información almacenada en la base de datos. 15. Lenguaje de consulta: Estos lenguajes son generalmente de más alto nivel que los lenguajes de programación. Los lenguajes de consulta pueden clasificarse como procedimentales y no procedimentales.
  • 29. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 28 16. Manipulación de Base de Datos: Usando la base de Datos -- el usuario puede añadir, borrar y modificar información a la base de datos así como también hacer consultas. 17. Modelo de base de datos orientado a objetos: es una adaptación a los sistemas de bases de datos. Se basa en el concepto de encapsulamiento de datos y código que opera sobre estos en un objeto. 18. Modelos de Red: Este modelo permite la representación de muchos a muchos de una Base de Datos. El modelo de red evita redundancia en la información, a través de la incorporación de un tipo de registro denominado el conector. 19. Nivel lógico: definición de las estructuras de datos que constituyen la base de datos. 20. Reglas de Integridad: Son restricciones que definen los estados de consistencias de las bases de datos. 21. DBMS: Es un conjunto de programas que se encarga de manejar la cremación y todos los acceso a las bases de datos. 22. DDL: Es un lenguaje de definición de datos. 23. Rectángulos: es parte de la estructura de base de datos y son aquellos que representan un conjunto de entidades. 24. Recuperación: Proporcionar como mínimo el mismo nivel de recuperación que los sistemas de bases de datos actuales. De forma que, tanto en caso de fallo de hardware como de fallo de software, el sistema pueda retroceder hasta un estado coherente de los datos. 25. Sistema de Administración de Base de Dato: Es el software que controla la organización, almacenamiento, recuperación, seguridad e integridad de los datos en una base de datos. 26. Sistema gestor de base de datos: Es un conjunto de programas que permiten crear y mantener una base de datos, asegurando su integridad, confidencialidad y seguridad. 27. Software: Es un sistema manejador de bases de datos que permite al usuario acceder con facilidad a los datos almacenados o que ande ser almacenados. 28. Transacciones compartidas: La transacción compartida permite que varias personas intervengan en una sola transacción. 29. Usuario final: Es quien accede a las bases de datos por medio de un lenguaje de consulta o de programas de aplicación. 2.4. Administración de un SGDB El papel del DBA. De forma general podemos decir que está vinculado con los siguientes conceptos:  Recuperabilidad.  Integridad y verificación de la integridad de datos  Seguridad e implementación de controles de acceso a los datos  Disponibilidad.  Desarrollo y soporte a pruebas. El diseño lógico y físico de las bases de datos a pesar de no ser obligaciones de un administrador de bases de datos puede formar parte de su trabajo. Esas funciones por lo general están asignadas a los analistas de bases de datos o a los diseñadores de bases de datos. Los deberes de un administrador de bases de datos dependen de la descripción del puesto, corporación y políticas de tecnologías de información (TI) y puede incluir recuperación de desastres (respaldos y pruebas de respaldos) y análisis de rendimiento entre otras cuestiones.
  • 30. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 29 La disponibilidad significa que los usuarios autorizados tengan acceso a los datos cuando lo necesiten para atender a las necesidades del negocio. De manera incremental los negocios han ido requiriendo que la información esté disponible todo el tiempo (siete días a la semana, 24 horas del día). La industria de TI ha respondido a estas necesidades con redundancia de red y hardware para incrementar las capacidades administrativas en línea. La recuperabilidad significa que, si se da algún error en los datos, el DBA (administrador de base de datos) pueda reponer la base de datos al tiempo y estado en que se encontraba en estado consistente antes de que el daño se causara. Las actividades de recuperación incluyen el hacer respaldos de la base de datos y almacenar esos respaldos de manera que se minimice el riesgo de daño o pérdida de los mismos, tales como hacer diversas copias en medios de almacenamiento removibles y almacenarlos fuera del área en antelación a un desastre anticipado. La recuperabilidad, frecuentemente denominada “recuperación de desastres”, tiene dos formas primarias. La primera son los respaldos y después las pruebas de recuperación. La recuperación de las bases de datos consiste en información y estampas de tiempo junto con bitácoras los cuales se cambian de manera tal que sean consistentes en un momento y fecha en particular. Es posible hacer respaldos de la base de datos que no incluyan las estampas de tiempo y las bitácoras, la diferencia reside en que el DBA debe sacar de línea la base de datos en caso de llevar a cabo una recuperación. La integridad de una base de datos significa que, la base de datos o los programas que generaron su contenido, incorporen métodos que aseguren que el contenido de los datos del sistema no se rompa así como las reglas del negocio. Por ejemplo, un distribuidor puede tener una regla la cual permita que sólo los clientes individuales puedan solicitar órdenes; a su vez cada orden identifique a uno y sólo un proveedor. Continuando con el ejemplo, en el proceso de inserción de una nueva orden a la base de datos, está a su vez tendría que cerciorarse de que el cliente identificado existe en su tabla para que la orden pueda darse. Seguridad significa la capacidad de los usuarios para acceder y cambiar los datos de acuerdo a las políticas del negocio, así como, las decisiones de los encargados. Al igual que otros metadatos, una DBMS relacional maneja la seguridad en forma de tablas. Estas tablas son las “llaves del reino” por lo cual se deben proteger de posibles intrusos. El rendimiento significa que la base de datos no cause tiempos de respuesta poco razonables. En sistemas muy complejos cliente/servidor y de tres capas, la base de datos es sólo uno de los elementos que determinan la experiencia de los usuarios en línea y los programas desatendidos. Algunos roles del personal de TI relacionados con la administración de base de datos:  Programador de aplicaciones.  Administrador de sistema.  Administrador de datos.
  • 31. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 30 Gestión de índices. El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla en una base de datos. El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice. Existen diferentes tipos de índices:  HASH. Un hash es el resultado de dicha función o algoritmo. Una función de hash es una función para resumir o identificar probabilísticamente un gran conjunto de información, dando como resultado un conjunto imagen finito generalmente menor (un subconjunto de los números naturales por ejemplo).  B-TREE. Los árboles-B ó B-árboles son estructuras de datos de árbol que se encuentran comúnmente en las implementaciones de bases de datos y sistemas de archivos. Los árboles B mantienen los datos ordenados y las inserciones y eliminaciones se realizan en tiempo logarítmico amortizado. La idea tras los árboles-B es que los nodos internos deben tener un número variable de nodos hijo dentro de un rango predefinido. Cuando se inserta o se elimina un dato de la estructura, la cantidad de nodos hijo varía dentro de un nodo. La sintaxis en MySQL sería: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) index_col_name: col_name [(length)] [ASC | DESC] Ejemplo de creación de índices en MySQL CREATE TABLE lookup (id INT) ENGINE = MEMORY; CREATE INDEX id_index USING BTREE ON lookup (id); Cómo crear los índices en Oracle CREATE [UNIQUE] INDEX index_name ON table_name (column1, column2, ... column_n) [ COMPUTE STATISTICS ]; CREATE INDEX supplier_idx ON supplier (supplier_name); Seguridad. Sin unas buenas medidas de seguridad la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas clásicos de ficheros.
  • 32. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 31 Los SGBD permiten mantener la seguridad mediante el establecimiento de claves para identificar al personal autorizado a utilizar la base de datos. Las autorizaciones se pueden realizar a nivel de operaciones, de modo que un usuario puede estar autorizado a consultar ciertos datos pero no a actualizarlos, por ejemplo. El problema de la seguridad consiste en lograr que los recursos de un sistema sean, bajo toda circunstancia, utilizados para los fines previstos. Necesitaremos para ello el uso adecuado de mecanismos de protección. Los sistemas operativos proveen algunos mecanismos de protección para poder implementar políticas de seguridad. Un aspecto importante de la seguridad es el de evitar la pérdida de información. Las causas que pueden llevar a estas pérdidas de información pueden ser fenómenos naturales, guerras, errores de hardware o de software, o errores humanos. La solución es la misma en todos los casos: mantener la información respaldada, preferentemente en un lugar lejano. Las tres principales características de la seguridad que se deben mantener en una base de datos son la confidencialidad, la integridad y la disponibilidad de la información. Los datos contenidos en una base de datos pueden ser individuales o de una organización. Sean de un tipo o de otro, a no ser que su propietario lo autorice, no deben ser desvelados. Si esta revelación es autorizada por dicho propietario la confidencialidad se mantiene. Es decir, asegurar la confidencialidad significa prevenir/ detectar/ impedir la revelación impropia de la información. Desde el punto de vista de la fiabilidad del sistema el concepto de seguridad lo medimos en:  La protección del sistema frente a ataques externos.  La protección frente a caídas o fallos en el software o en el equipo.  La protección frente a manipulación por parte del administrador. La seguridad de los datos se refiere a la protección de estos contra el acceso por parte de las personas no autorizadas y contra su indebida destrucción o alteración. El analista de sistemas que se hace responsable de la seguridad debe estar familiarizado con todas las particularidades del sistema, porque este puede ser atacado con fines ilícitos desde muchos ángulos. A veces se presta mucha atención a alguno de los aspectos del problema mientras se descuidan otros. Los siguientes cuatro requisitos son esenciales para la seguridad de la base de datos: 1. La base de datos debe ser protegida contra el fuego, el robo y otras formas de destrucción. 2. Los datos deben ser reconstruibles, porque por muchas precauciones que se tomen, siempre ocurren accidentes. 3. Los datos deben poder ser sometidos a procesos de auditoría. La falta de auditoría en los sistemas de computación ha permitido la comisión de grandes delitos. 4. El sistema debe diseñarse a prueba de intromisiones. Los programadores, por ingeniosos que sean, no deben poder pasar por alto los controles.
  • 33. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 32 Ningún sistema puede evitar de manera absoluta las intromisiones malintencionadas pero es posible hacer que resulte muy difícil eludir los controles. El sistema debe tener capacidad para verificar que sus acciones han sido autorizadas. Las acciones de los usuarios deben ser supervisadas, de modo tal que pueda descubrirse cualquier acción indebida o errónea. Respaldos y replicación de bases de datos. La replicación es el proceso mediante el cual se genera una copia exacta de parte del sistema. Esa parte puede ser desde un archivo hasta una carpeta, una partición, un disco o incluso varios discos. Los beneficios de realizar replicas presenta múltiples ventajas:  Rendimiento: Normalmente y dependiendo siempre de las situaciones hay mas lectura que escritura en una base de datos por lo que tener varios nodos solo procesando la lectura puede traer un gran beneficio de rendimiento en una base de datos muy consultada.  Prueba de fallas: Un esclavo estando casi sincrónicamente actualizado puede ser útil en caso de que el nodo maestro caiga, este puede reemplazarlo y así no detener el servicio.  Fiabilidad: Muchas veces se puede tener una replicación para tener la seguridad de que los datos están siendo copiados a otro nodo, en caso de sufrir un desperfecto en el maestro.  Generación de bloqueos: aunque esta es más precisa, también se puede usar para procesos que necesiten leer datos, generando bloqueos, al hacerlo sobre un esclavo esto no interviene en el funcionamiento de todo el sistema, es muy usado para por ejemplo, hacer copias de seguridad, o extraer grandes cantidades de datos para generar estadísticas. 2.5. Gestión de transacciones en un SGBD Definición de transacción. Una transacción en un sistema de gestión de bases de datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica. Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio. Cuando por alguna causa el sistema debe cancelar la transacción, empieza a deshacer las órdenes ejecutadas hasta dejar la base de datos en su estado inicial (llamado punto de integridad), como si la orden de la transacción nunca se hubiese realizado. El lenguaje de consulta de datos SQL, provee los mecanismos para especificar que un conjunto de acciones deben constituir una transacción. Por ejemplo, BEGIN TRAN . COMMIT TRAN, indica al motor que puede considerar la transacción completada con éxito. ROLLBACK TRAN, indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad. En un sistema ideal, las transacciones deberían garantizar todas las propiedades aunque en la práctica alguna de estas propiedades se simplifica para mejorar el rendimiento.
  • 34. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 33 Componentes de un sistema de transacciones. Un sistema de procesamiento de transacciones (TPS) es sistema de información que recolecta, almacena, modifica y recupera toda la información generada por las transacciones producidas en una organización. Hay que recordar que una transacción es un evento que genera o modifica los datos que se encuentran eventualmente almacenados en un sistema de información. Desde un punto de vista técnico, un TPS monitoriza los programas transaccionales (que son aplicaciones muy concretas). La base de un programa transaccional está en que gestiona los datos de forma que estos deben ser siempre consistentes. Por ejemplo, si se realiza un pago con una tarjeta electrónica, la cantidad de dinero de la cuenta sobre la que realiza el cargo debe disminuir en la misma cantidad que la cuenta que recibe el pago, de no ser así, ninguna de las dos cuentas se modificará. Si durante el transcurso de una transacción ocurriese algún error, el TPS debe poder deshacer las operaciones realizadas hasta ese instante. Si bien este tipo de integridad es que debe presentar cualquier operación de procesamiento de transacciones por lotes, es particularmente importante para el procesamiento de transacciones on-line. Por ejemplo, un sistema de reserva de billetes de una línea aérea es utilizado simultáneamente por varios operadores, tras encontrar un asiento vacío, los datos sobre la reserva de dicho asiento deben ser bloqueados hasta que la reserva se realice, de no ser así, otro operador podría tener la impresión de que dicho asiento está libre cuando en realidad está siendo reservado en ese mismo instante. Sin las debidas precauciones, en una transacción podría ocurrir una reserva doble. Otra función de los monitores de transacciones es la detección y resolución de interbloqueos (deadlock), y cortar transacciones para recuperar el sistema en caso de fallos masivos. Tipos de protocolos de control de la concurrencia. La solución más típica es el protocolo de compromiso de dos fases (C2F) donde existe un coordinador que normalmente es el proceso que inicio la transacción.  Fase 1: El coordinador escribe en el log almacenado en memoria estable el registro (preparar T). Manda un mensaje con ese contenido a los nodos implicados en la transacción. Cada proceso implicado decide si está listo para hacer el compromiso, escribe en su log la decisión (listo T o no listo T) y la manda en un mensaje al coordinador.  Fase 2: Si el coordinador recibe alguna respuesta negativa u obtiene alguna falla de respuesta decide abortar la transacción. En caso contrario decide realizar el compromiso.
  • 35. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 34 El coordinador escribe en el log la decisión y manda un mensaje a los procesos implicados. Cada proceso que recibe el mensaje escribe en su log la decisión del coordinador y realiza la acción correspondiente. La terminación de una transacción se hace mediante la regla del compromiso global. El coordinador aborta una transacción si y solo si al menos un proceso implicado decide abortar. El coordinador hace un compromiso de la transacción si y solo si todos los participantes deciden realizar el compromiso. Recuperación de transacciones. La recuperación de transacción es el proceso de borrar los efectos indeseados de transacciones específicas de la base de datos. La recuperación tradicional está en el nivel de objeto de base de datos. Por ejemplo, en el espacio de datos, espacio de mesa o nivel de índice. Realizando una recuperación tradicional, un objeto de base de datos específico es elegido. Entonces, una copia de seguridad de aquel objeto es aplicada, seguida volviendo a aplicar entradas de registro para cambios que ocurrieron después de que la copia de imagen fue tomada. Recuerde que todos los cambios hechos a una base de datos relacional son capturados en el registro de base de datos. De este modo, si los detalles de cambio pueden ser leídos del registro, la recuperación puede ser conseguida invirtiendo el impacto de los cambios registrados. 2.6. Soluciones de SGBD Distribuidas – Orientadas a objetos. Una base de datos distribuida (BDD) es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas en diferentes espacios lógicos e interconectados por una red de comunicaciones. Por ejemplo, un servidor corriendo máquinas virtuales. Las BDD tienen la capacidad de realizar procesamiento autónomo lo que les permite realizar operaciones locales o distribuidas. Un sistema distribuido de bases de datos se almacena en varias computadoras. Los principales factores que distinguen un SBDD de un sistema centralizado son los siguientes:  Hay múltiples computadores, llamados sitios o nodos.  Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios En una base de datos orientada a objetos, la información se representa mediante objetos como los presentes en la programación orientada a objetos. Cuando se integra las características de una base de datos con las de un lenguaje de programación orientado a objetos, el resultado es un sistema gestor de base de datos orientada a objetos.
  • 36. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 35 Un ODBMS hace que los objetos de la base de datos aparezcan como objetos de un lenguaje de programación en uno o más lenguajes de programación a los que dé soporte. Un ODBMS extiende los lenguajes con datos persistentes de forma transparente, control de concurrencia, recuperación de datos, consultas asociativas y otras capacidades. Las bases de datos orientadas a objetos se diseñan para trabajar bien en conjunción con lenguajes de programación orientados a objetos como Java, C#, Visual Basic.NET y C++. Los ODBMS usan exactamente el mismo modelo que estos lenguajes de programación. Los ODBMS son una buena elección para aquellos sistemas que necesitan un buen rendimiento en la manipulación de tipos de dato complejos. Los ODBMS proporcionan los costes de desarrollo más bajos y el mejor rendimiento cuando se usan objetos gracias a que almacenan objetos en disco y tienen una integración transparente con el programa escrito en un lenguaje de programación orientado a objetos, al almacenar exactamente el modelo de objeto usado a nivel aplicativo, lo que reduce los costes de desarrollo y mantenimiento. Orientadas a datos estructurados (XML). Estos datos pueden ser interrogados, exportados y serializados. Las bases de datos XML están generalmente asociadas con las bases de datos documentales. Existen dos grandes clases de bases de datos XML: 1. XML habilitado donde la base de datos procesa el XML internamente. 2. XML nativo (NXD) donde el modelo interno de estas bases de datos usa documentos XML como la unidad elemental de almacenamiento, los cuales no han de almacenarse necesariamente en formato de texto. Almacenes de datos (data warehouse). El almacenamiento de los datos no debe usarse con datos de uso actual. Los almacenes de datos contienen a menudo grandes cantidades de información que se subdividen a veces en unidades lógicas más pequeñas dependiendo del subsistema de la entidad del que procedan o para el que sea necesario. La ventaja principal de este tipo de sistemas se basa en su concepto fundamental, la estructura de la información. Este concepto significa el almacenamiento de información homogénea y fiable, en una estructura basada en la consulta y el tratamiento jerarquizado de la misma, y en un entorno diferenciado de los sistemas operacionales. El Data Warehouse aporta las siguientes características:  Integración. Los datos almacenados deben formar parte de una estructura consistente lo que obliga a eliminar las inconsistencias. La información suele estructurarse también en distintos niveles de detalle para adecuarse a las distintas necesidades de los usuarios.  División temática. Los datos se organizan por temas para facilitar su acceso y entendimiento por parte de los usuarios finales. Por ejemplo, todos los datos sobre clientes pueden ser consolidados en una única tabla del Data Warehouse. De esta forma, las peticiones de información sobre clientes serán más fáciles de responder dado que toda la información reside en el mismo lugar.
  • 37. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 36  Historial. El tiempo es parte implícita de la información contenida en un Data Warehouse. En los sistemas operacionales, los datos siempre reflejan el estado de la actividad del negocio en el momento presente pero la información almacenada en el Data Warehouse sirve, entre otras cosas, para realizar análisis de tendencias ya que se carga con los distintos valores que toma una variable en el tiempo para permitir comparaciones.  No volatilidad. El almacén de información de un Data Warehouse existe para ser leído, y no modificado. Ejemplo de esquema de funcionamiento de Data Warehouse 2.7. Criterios para la selección de SGBD comerciales Existen distintos objetivos que deben cumplir los SGBD:  Abstracción de la información. No importa si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario.  Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.  Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones.  Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
  • 38. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 37  Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado.  Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados. Recuerda… TPS se le denomina al sistema de información que recolecta, almacena, modifica y recupera toda la información generada por las transacciones producidas en una organización. Una entidad fuerte existe por sí misma sin depender la existencia de alguna otra entidad. Las supresiones en los árboles se pueden hacer mediante el método de la marca. La fase de Análisis es la que estudia las necesidades de información de los usuarios finales. Minimizar el tiempo de respuesta es uno de los objetivos del llamado diseño físico. En los tipos de archivo ASCII los datos son almacenados a través de un simple texto. Los SGBD tienen entre sus funciones garantizar la seguridad en los accesos de cada uno de los usuarios. Se puede definir un dato como un valor o referente que recibe el ordenador para que el programador encontrar una solución concreta para un algoritmo. Un sistema gestor de base de datos (SGBD) es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información.
  • 39. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 38 3. LENGUAJES DE GESTIÓN DE BASE DE DATOS. EL ESTÁNDAR SQL Una de las características principales del estándar la aportación que hace el álgebra y el cálculo relacional facilitando las consultas y la recuperación de la información en una base de datos, así como hacer cambios en ella. 3.1. Descripción del estándar SQL Las restricciones son reglas que el motor de base de datos de SQL aplica de forma automática. Por ejemplo, puede usar restricciones para garantizar que no se escriben valores duplicados El lenguaje SQL posibilita los siguientes tipos de restricciones:  NOT NULL: no se permite que un atributo tome valores nulos.  UNIQUE: no se permiten valores repetidos en un atributo o agregación de atributos. Especificación de claves candidatas. Se aceptan múltiples valores nulos.  PRIMARY KEY: definición de un atributo o agregación de atributos como clave primaria. Implícitamente NOT NULL.  FOREIGN KEY: (atributo1, ...) REFERENCES nombre_tabla(atributo1, ...) ON DELETE CASCADE: Definición de un atributo o agregación de atributos como clave ajena. Si no se especifica lo contrario se permiten valores nulos, lo cual no suele ser recomendable. Los atributos referenciados han de constituir clave primaria o clave alternativa. Si los atributos referenciados son clave primaria en la otra tabla basta con especificar el nombre de la tabla. NOTA: La cláusula ON DELETE CASCADE es opcional y hace referencia a si se deben propagar los borrados de tuplas en la tabla referenciada en aquellas tablas que las referencien. Si no se incluye se rechazan como erróneos los borrados de tuplas que ocasionen violación de la integridad referencial.  CHECK (predicado): Cada tupla de la tabla debe verificar el predicado lógico referente a la validez del valor concreto de un atributo. Pueden incluirse subconsultas que hagan referencia a otras tablas. Las restricciones han de evaluarse cuando se insertan o se borran tuplas o bien cuando se modifica el valor de un atributo en alguna tupla ya que en todo momento ha de garantizarse el mantenimiento de la integridad referencial. Puede usarse un mecanismo que permita agrupar varias operaciones de manera que las verificaciones de las restricciones no tenga que hacerse para cada operación individual sino que se agrupen en un conjunto de operaciones. Estas comprobaciones sobre si se cumplen o no las restricciones impuestas pueden ser computacionalmente costosas según el tamaño de la base de datos y la complejidad de la restricción. Las restricciones podemos definirlas asociándoles un nombre y usando la siguiente sintaxis, CONSTRAINT nombre_constraint definición_constraint
  • 40. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 39 Las restricciones con nombre pueden activarse o desactivarse a voluntad mediante la cláusula ENABLE CONSTRAINT o DISABLE CONSTRAINT utilizadas dentro de una sentencia ALTER TABLE de la siguiente manera: ALTER TABLE nombre_tabla ENABLE CONSTRAINT nombre_constraint; ALTER TABLE nombre_tabla DISABLE CONSTRAINT nombre_constraint; Los asertos son predicados lógicos que ha de cumplir la base de datos considerada como un todo (no cada tupla de una tabla por separado, como es el caso de un constraint) y que pueden involucrar un número cualquiera de atributos en todas las tuplas de una o varias tablas. Estos asertos permiten expresar condiciones complejas que se desea que la base de datos satisfaga siempre. Los asertos no se especifican dentro de una sentencia de creación de tabla sino que pueden crearse y eliminarse de manera independiente usando las sentencias CREATE ASSERTION y DROP ASSERTION de la siguiente manera: CREATE ASSERTION nombre_aserto CHECK (predicado); DROP ASSERTION nombre_aserto; AL crear un aserto el SGBD comprueba su validez sobre el estado actual de la base de datos. Esta comprobación de la validez del predicado puede requerir un relativamente elevado coste computacional. La interpretación de los valores nulos que hacen las sentencias SQL puede resultar problemática y producir resultados un tanto extraños. Dependerá del sistema de gestión de bases de datos que se esté usando. Es común que el resultado de cualquier operación aritmética que involucra un valor nulo, sea nulo. A las comparaciones y operaciones lógicas en las que aparecen valores nulos se les suele otorgar un valor lógico falso por defecto aunque se podría contraponer que el valor lógico resultante debería ser desconocido. Por ejemplo, en una cláusula de ordenación ORDER BY la salida que se corresponde con valores nulos para el criterio de ordenación se suele incorporar al principio del todo o bien al final, ante la imposibilidad de ordenar utilizando los valores nulos. Las funciones de agregación como las de suma, máximo, mínimo y media aritmética simplemente ignoran los valores nulos en su entrada. La excepción es la función de cuenta COUNT que sí cuenta los valores nulos. Si se aplica una función de agregación sobre una colección de datos vacía se devuelve un valor nulo a excepción nuevamente de la función de cuenta que devuelve un cero. El término integridad de datos se refiere a la corrección y complementación de los datos en una base de datos. Cuando los contenidos se modifican con sentencias del tipo INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes.
  • 41. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 40 Por ejemplo, podrían añadirse datos no válidos a la base de datos como un pedido sobre un producto no existente. Podrían modificarse datos existentes tomando un valor incorrecto como por ejemplo si se reasigna un vendedor a una oficina no existente. Los cambios en la base de datos pueden perderse debido a un error del sistema o a un fallo en el suministro de energía e incluso los cambios pueden ser aplicados parcialmente, como por ejemplo si se añade un pedido de un producto sin ajustar la cantidad disponible para vender. Una de las funciones importantes de un sistema relacional es preservar la integridad de sus datos almacenados en la mayor medida posible. Dependiendo de la base de datos, los triggers o disparadores pueden ser de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). Algunas bases de datos pueden ejecutar triggers al crear, borrar o editar usuarios, tablas, bases de datos u otros objetos. Estas herramientas son usadas para mejorar la administración de la base de datos, sin necesidad de contar con que el usuario ejecute la sentencia de SQL. Además, pueden generar valores de columnas, previene errores de datos, sincroniza tablas, modifica valores de una vista, etc. Los disparadores permiten implementar programas basados en paradigma lógico (sistemas expertos, deducción). La estructura básica de un disparador es:  Llamada de activación, es la sentencia que permite lanzar el código a ejecutar.  Restricción, es la condición necesaria para realizar el código. Puede ser de tipo condicional o de tipo nulo.  Acción a ejecutar, es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones iniciales. Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar: 1. Row Triggers (o Disparadores de fila). 2. Statement Triggers (o Disparadores de secuencia). Ejemplo de disparador,
  • 42. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 41 Gestión de permisos en tablas. La instrucción GRANT se utiliza para conceder determinados permisos genéricos o bien permisos sobre objetos a usuarios de la base de datos. La sintaxis de la misma es la siguiente: GRANT [privilegios_de_sistema | roles] TO [usuarios | roles |PUBLIC] {WITH GRANT OPTION } Para conceder permisos genéricos: GRANT [ALL {PRIVILEGES} | SELECT | INSERT | UPDATE | DELETE] ON objeto TO [usuario | rol | PUBLIC] {WITH GRANT OPTION} Para conceder permisos sobre objetos: La utilización de la opción de grant WITH GRANT OPTION permite que el usuario al que le han concedido permisos pueda a su vez concederlos a otros usuarios. Optimización de consultas. El lenguaje SQL es no procedimental por lo que las sentencias indican que queremos conseguir y no como lo tiene que hacer el intérprete correspondiente. Por lo que no basta con especificar una sentencia SQL correcta, sino que además, hay que indicarle como tiene que hacerlo si queremos que el tiempo de respuesta sea el mínimo. Algunas cuestiones para optimizar las consultas pueden aplicarse desde el diseño:  Normalizar las tablas, al menos hasta la tercera forma normal, para asegurar que no hay duplicidad de datos y se aprovecha al máximo el almacenamiento en las tablas.  Los primeros campos de cada tabla deben ser aquellos campos requeridos y dentro de los requeridos primero se definen los de longitud fija y después los de longitud variable.  Ajustar al máximo el tamaño de los campos para no desperdiciar espacio.  Si un campo se va a utilizar con poca frecuencia es mejor crear una nueva tabla que contenga la clave primaria de la primera y el campo para observaciones. Gestión y elección de los índices. No es posible indexar todos los campos de una tabla extensa ya que doblaríamos el tamaño de la base de datos. Tampoco sería práctico indexar todos los campos en una tabla pequeña ya que las selecciones pueden efectuarse rápidamente de todos modos. Un caso en el que los índices pueden resultar muy útiles es cuando realizamos peticiones simultáneas sobre varias tablas. En este caso, el proceso de selección puede acelerarse sensiblemente si indexamos los campos que sirven de nexo entre las dos tablas. Los índices pueden resultar contraproducentes si los introducimos sobre campos triviales a partir de los cuales no se realiza ningún tipo de petición ya que, además del problema de memoria ya mencionado, estamos ralentizando otras tareas de la base de datos como son la edición, inserción y borrado.
  • 43. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 42 3.2. Creación de bases de datos Creación de tablas. Tipos de datos. Una base de datos en un sistema relacional compuesto por un conjunto de tablas que se corresponden a las relaciones del modelo relacional. En la terminología usada en SQL no se alude a las relaciones, del mismo modo que no se usa el término atributo, pero sí la palabra columna, y no se habla de tupla, sino de línea. Antes de poder proceder a la creación de las tablas hay que crear la base de datos lo que significa definir un espacio de nombres separado para cada conjunto de tablas. Se pueden gestionar diferentes bases de datos independientes al mismo tiempo sin que se den conflictos con los nombres que se usan en cada una de ellas. La sintaxis a seguir es, - CREATE DATABASE nombre_base de datos Una vez creada la base de datos, se pueden crear las tablas que la componen. La instrucción SQL propuesta para este fin es: - CREATE TABLE nombre_tabla ( nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] [, nombre_columna tipo_columna [ cláusula_defecto ] [ vínculos_de_columna ] ... ] [ , [ vínculo_de tabla] ... ] ) Por ejemplo, CREATE TABLE resumenes ( ID INTEGER PRIMARY KEY, type CHAR(18) NOT NULL ); La instrucción anterior crea la tabla resúmenes, formada por las dos columna ID de tipo INTEGER, y type de tipo CHAR(18). ID es la llave primaria de la relación. En el atributo type hay un vínculo NOT NULL que indica que no puede ser nulo (no nulidad). 1. Los tipos de datos que pueden usarse en las tablas son los habituales en el almacenamiento de datos y variables:  CHARACTER(n). Una cadena de longitud fija con exactamente n caracteres. CHARACTER se puede abreviar con CHAR  CHARACTER VARYING(n). Una cadena de longitud variable con un máximo de n caracteres. CHARACTER VARYING se puede abreviar con VARCHAR o CHAR VARYING.
  • 44. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 43  INTEGER. Se puede abreviar con INT. La precisión, es decir el tamaño del número entero que se puede memorizar en una columna de este tipo, depende de la implementación de la DBMS en cuestión.  SMALLINT. Un número entero con signo y una precisión que no sea superior a INTEGER.  FLOAT(p). El valor máximo de p depende de la implementación de la DBMS. Se puede usar FLOAT sin indicar la precisión, empleando, por tanto, la precisión por defecto, también ésta dependiente de la implementación. REAL y DOUBLE PRECISION son sinónimo para un FLOAT con precisión concreta. También en este caso, las precisiones dependen de la implementación, siempre que la precisión del primero no sea superior a la del segundo.  DECIMAL (p,q). Un número con coma fija de por lo menos p cifras y signo, con q cifras después de la coma. DEC es la abreviatura de DECIMAL. DECIMAL (p) es una abreviatura de DECIMAL (p,0). El valor máximo de p depende de la implementación.  INTERVAL. Un periodo de tiempo (años, meses, días, horas, minutos, segundos y fracciones de segundo).  DATE, TIME y TIMESTAMP. Un instante temporal preciso. DATE permite indicar el año, el mes y el día. Con TIME se pueden especificar la hora, los minutos y los segundos. TIMESTAMP es la combinación de los dos anteriores. Los segundos son un número con coma, lo que permite especificar también fracciones de segundo. La cláusula por defecto tiene: La sintaxis es DEFAULT { valor | NULL } donde valor es un valor válido para el tipo con el que la columna se ha definido. 2. Los vínculos de columna puede ser dos:  NOT NULL, que indica que la columna no puede tomar el valor NULL.  PRIMARY KEY, que indica que la columna es la llave primaria de la tabla. 3. Podemos agregar una definición de referencia con la que se indica que la columna es una llave externa hacia la tabla y los campos indicados en la definición. La sintaxis es la siguiente: REFERENCES nombre_tabla [ ( columna1 [ , columna2 ... ] ) ] [ ON DELETE { CASCADE | SET DEFAULT | SET NULL } ] [ ON UPDATE { CASCADE | SET DEFAULT | SET NULL } ] Las cláusulas ON DELETE y ON UPDATE indican qué acción hay que ejecutar en el caso en que una tupla en la tabla referenciada sea eliminada o actualizada. De hecho, en dichos casos en la columna referenciante (que es la que se está definiendo) podría haber valores inconsistentes.
  • 45. ACCESO A DATOS EN APLICACIONES WEB DEL ENTORNO SERVIDOR 44 Las acciones pueden ser:  CASCADE: eliminar la tupla que contiene la columna referenciante (en el caso de ON DELETE) o también actualizar la columna referenciante (en el caso de ON UPDATE).  SET DEFAULT: asignar a la columna referenciante su valor de defecto.  SET NULL: asignar a la columna referenciante el valor NULL. Un control de valor, con el que se permite o no asignar un valor a la columna en función del resultado de una expresión. La sintaxis que se usa es: CHECK (expresión_condicional) . Por ejemplo, si estamos definiendo la columna COLUMNA1, con el siguiente control: CHECK ( COLUMNA1 < 1000 ) En dicha columna se podrán incluir sólo valores inferiores a 1000. 4. PRIMARY KEY. Con la siguiente sintaxis alternativa, PRIMARY KEY ( columna1 [ , columna2 ... ] ) se pueden formar claves con más de un atributo. Definición y creación de índices. Claves primarias y externas. Los índices nos ayudan a obtener datos de las tablas en forma más rápida. Por ejemplo, si estamos interesados en leer en un libro de electrónica acerca de cómo diseñar circuitos, en vez de leer el libro desde el comienzo hasta que encontremos una sección sobre circuiterías, es mucho más rápido para nosotros ir a la sección índice al final del libro, ubicar qué páginas contienen la información sobre circuitos, y luego dirigirnos a esas páginas directamente. Al dirigirnos al índice primero ahorramos tiempo y seguramente es el método más eficiente para ubicar la información que necesitamos. El mismo principio se aplica para la obtención de datos desde una tabla de base de datos. Sin un índice, el sistema de base de datos lee a través de toda la tabla (este proceso se denomina escanear la tabla) para localizar la información deseada. Con el índice correcto en su lugar, el sistema de base de datos puede entonces primero dirigirse al índice para encontrar de dónde obtener los datos, y luego dirigirse a dichas ubicaciones para obtener los datos necesarios. Esto es mucho más rápido. Por lo tanto, generalmente se recomienda crear índices en tablas. La sintaxis general para la creación de un índice es: CREATE INDEX "NOMBRE_ÍNDICE" ON "NOMBRE_TABLA" (NOMBRE_COLUMNA)