viernes, 13 de marzo de 2015

Historia de las bases de datos

Diseñar una base de datos con multiples tablas.:



Es comprensible que queramos poner a funcionar ya nuestra base de datos. Pasar directamente a introducir datos y sacarle provecho a nuestro flamante Access. Pero como hemos visto anteriormente el diseño de la base de datos previamente a su creación es un paso imprescindible y fundamental, en un buen diseño esta la diferencia entre una base de datos ágil y funcional o por el contrario encontrarnos con problemas a cada clic de ratón que nos hará desesperante la mas mínima búsqueda de datos.
Por eso vamos a diseñar lo mas didácticamente posible un ejemplo para nuestra base de datos.
Supongamos que trabajamos en una empresa. Cualquier empresa. Toda empresa tiene una actividad principal que es vender algo, que en este caso a ese algo lo llamaremos producto. Vamos a partir desde aquí.
Los datos que necesitamos para cada venta son:
Qué hemos vendido (Nombre de producto), Cuanto hemos vendido (Cantidad), A quien se lo hemos vendido (cliente) y Numero de cuenta para cobrárselo (NCcliente).

Pero según trabajemos con estos datos necesitaremos otros datos del cliente, como son el nombre de la empresa para la que trabaja (Empresa), Sus apellidos (Apellidos), Puesto que desempeña (Puesto), Teléfono de contacto (Teléfono), Los datos para enviar los pedidos (DirecciónPoblaciónCP)









Pero claro, podríamos pedirle algo mas a nuestra base de datos, también seria conveniente que cada venta tuviese en cuenta las existencias del almacén y que llegado el caso se notificase la necesidad de hacer un nuevo pedido al proveedor.
Es evidente que si añadimos mas campos a nuestra tabla pronto se convertiría en un dolor de cabeza mas que en una ayuda. Para ello debemos unificar los campos por criterios como ya sabemos.
Empezaremos con la tabla de los datos referidos exclusivamente al cliente.





Ahora veremos los datos referidos exclusivamente al producto





Quizás sea necesario explicar aquí la necesidad de algunos campos. "CodigoProducto" es el campo clave necesario para distinguir unos productos de otros y relacionarlos con otras tablas.
Tal vez no sea tan evidente la necesidad de un campo para el proveedor, veámoslo mas detenidamente. En realidad el producto no tiene solo su nombre, digamos que también tiene apellidos, esta relacionado con la empresa que lo distribuye, no basta decir que necesitamos producto "DentifricoMasBlanco", necesitamos pedírselo a quien pueda proporcionárnoslos. Y para esto necesitamos los datos del Proveedor.
Pero la primera norma es agrupar campos por afinidad y aunque es evidente que los campos del producto dependen de la tabla del proveedor, también es fácil ver que la tabla del proveedor no depende de los productos. Es decir que un solo proveedor tiene muchos productos pero que además podemos utilizar los datos de la tabla proveedores para otras funciones distintas, por ejemplo para tener contactos con los comerciales, o para desarrollar nuevas líneas de negocio.
Así pues la solución es crear un campo que relacione una con otra tabla para aprovechar todas las ventajas de las bases de datos relacionales, y el vinculo entre las dos tablas es el campo "IDProveedor"
Vamos a complicar aun más las cosas,




En esta tabla de pedidos vemos que hay tres campos de Códigos, el primero "CodigoPedido" es el propio a la tabla "Pedidos", la función de los siguientes es relacionar esta tabla con las otras.
Gracias al "CodigoCliente" no es necesario introducir en esta tabla los datos del cliente que realiza el pedido, basta con teclear su numero de código, y Access se encargara de escribir por nosotros todos los campos que le pidamos, como son el nombre de la empresa, la dirección, el numero de Cuenta, etc...
Con el campo "CodigoProducto" pasa exactamente igual, en vez de teclear en cada pedido una y otra vez todos los datos de todos los artículos, como su nombre, o su precio o descripción del producto. Access se encarga de relacionar las dos tablas gracias a este campo.


        Base de datos relacionales

En una computadora existen diferentes formas de almacenar información. Esto da lugar a distintos modelos de organización de la base de datos: jerárquico, red, relacional y orientada a objeto.
Los sistemas relacionales son importantes porque ofrecen muchos tipos de procesos de datos, como: simplicidad y generalidad, facilidad de uso para el usuario final, períodos cortos de aprendizaje y las consultas de información se especifican de forma sencilla.
Las tablas son un medio de representar la información de una forma más compacta y es posible acceder a la información contenida en dos o más tablas. Más adelante explicaremos que son las tablas.
Las bases de datos relacionales están constituidas por una o más tablas que contienen la información ordenada de una forma organizada. Cumplen las siguientes leyes básicas:
  • Generalmente, contendrán muchas tablas.
  • Una tabla sólo contiene un número fijo de campos.
  • El nombre de los campos de una tabla es distinto.
  • Cada registro de la tabla es único.
  • El orden de los registros y de los campos no está determinados.
  • Para cada campo existe un conjunto de valores posible.

Diseño de las bases de datos relacionales
El primer paso para crear una base de datos, es planificar el tipo de información que se quiere almacenar en la misma, teniendo en cuenta dos aspectos: la información disponible y la información que necesitamos.
La planificación de la estructura de la base de datos, en particular de las tablas, es vital para la gestión efectiva de la misma. El diseño de la estructura de una tabla consiste en una descripción de cada uno de los campos que componen el registro y los valores o datos que contendrá cada uno de esos campos.
Los campos son los distintos tipos de datos que componen la tabla, por ejemplo: nombre, apellido, domicilio. La definición de un campo requiere: el nombre del campo, el tipo de campo, el ancho del campo, etc.
Los registros constituyen la información que va contenida en los campos de la tabla, por ejemplo: el nombre del paciente, el apellido del paciente y la dirección de este. Generalmente los diferente tispos de campos que su pueden almacenar son los siguientes: Texto (caracteres), Numérico (números), Fecha / Hora, Lógico (informaciones lógicas si/no, verdadero/falso, etc., imágenes.
En resumen, el principal aspecto a tener en cuenta durante el diseño de una tabla es determinar claramente los campos necesarios, definirlos en forma adecuada con un nombre especificando su tipo y su longitud

Partes de una base de datos 


En las secciones siguientes, se describen breve mente los componentes de una base de datos de Access típica. Para obtener más información acerca de cada componente, siga los vínculos de la sección Vea también de este artículo.

Tablas

Una tabla de una base de datos es similar en apariencia a una hoja de cálculo, en cuanto a que los datos se almacenan en filas y columnas. Como consecuencia, normalmente es bastante fácil importar una hoja de cálculo en una tabla de una base de datos. La principal diferencia entre almacenar los datos en una hoja de cálculo y hacerlo en una base de datos es la forma de organizarse los datos.
Para lograr la máxima flexibilidad para una base de datos, la información tiene que estar organizada en tablas, para que no haya redundancias. Por ejemplo, si se almacena información sobre empleados, cada empleado se insertará una sola vez en una tabla que se configurará para contener únicamente datos de los empleados. Los datos sobre productos se almacenarán en su propia tabla, y los datos sobre sucursales también tendrán su tabla aparte. Este proceso se conoce como normalización.
Cada fila de una tabla se denomina registro. En los registros es donde se almacena cada información individual. Cada registro consta de campos (al menos uno). Los campos corresponden a las columnas de la tabla. Por ejemplo, puede trabajar con una tabla denominada "Empleados", en la que cada registro (fila) contiene información sobre un empleado distinto y cada campo (columna) contiene un tipo de información diferente, como el nombre, los apellidos, la dirección, o similares. Los campos se deben configurar con un determinado tipo de datos, ya sea texto, fecha, hora, numérico, o cualquier otro tipo.
Otra forma de describir registros y campos es imaginando un catálogo de fichas tradicional de una biblioteca. Cada ficha del armario corresponde a un registro de la base de datos. Cada información contenida en una ficha (autor, título, etc.) corresponde a un campo de la base de datos.

Formularios

Los formularios se conocen a veces como "pantallas de entrada de datos". Son las interfaces que se utilizan para trabajar con los datos y, a menudo, contienen botones de comando que ejecutan diversos comandos. Se puede crear una base de datos sin usar formularios, editando los datos de las hojas de las tablas. No obstante, casi todos los usuarios de bases de datos prefieren usar formularios para ver, escribir y editar datos en las tablas.
Los formularios proporcionan un formato fácil de utilizar para trabajar con los datos. Además, se les puede agregar elementos funcionales, como botones de comando. Puede programar los botones para determinar qué datos aparecen en el formulario, abrir otros formularios o informes, o realizar otras tareas diversas. Por ejemplo, podría crear un formulario denominado "Formulario de cliente" para trabajar con datos de clientes. El formulario de cliente podría tener un botón para abrir un formulario de pedido en el que se pudiese escribir un pedido nuevo del cliente.
Los formularios también permiten controlar la manera en que otros usuarios interactúan con los datos de la base de datos. Por ejemplo, puede crear un formulario que muestre únicamente ciertos campos y que permita la ejecución de determinadas operaciones solamente. Así, se favorece la protección de los datos y se facilita la entrada correcta de datos.

Informes

Los informes sirven para resumir y presentar los datos de las tablas. Normalmente, un informe responde a una pregunta específica, como "¿Cuánto dinero se ha facturado por cliente este año?" o "¿En qué ciudades están nuestros clientes?" Cada informe se puede diseñar para presentar la información de la mejor manera posible.
Un informe se puede ejecutar en cualquier momento y siempre reflejará los datos actualizados de la base de datos. Los informes suelen tener un formato que permita imprimirlos, pero también se pueden consultar en la pantalla, exportar a otro programa o enviar por correo electrónico.

Consultas

Las consultas son las que verdaderamente hacen el trabajo en una base de datos. Pueden realizar numerosas funciones diferentes. Su función más común es recuperar datos específicos de las tablas. Los datos que desea ver suelen estar distribuidos por varias tablas y, gracias a las consultas, puede verlos en una sola hoja de datos. Además, puesto que normalmente no desea ver todos los registros a la vez, las consultas le permiten agregar criterios para "filtrar" los datos hasta obtener solo los registros que desee. Las consultas a menudo sirven de origen de registros para formularios e informes.
Algunas consultas son "actualizables", lo que significa que es posible editar los datos de las tablas base mediante la hoja de datos de la consulta. Si trabaja con una consulta actualizable, recuerde que los cambios se producen también en las tablas, no solo en la hoja de datos de la consulta.
Hay dos tipos básicos de consultas: las de selección y las de acción. Una consulta de selección simplemente recupera los datos y hace que estén disponibles para su uso. Los resultados de la consulta pueden verse en la pantalla, imprimirse o copiarse al portapapeles. O se pueden utilizar como origen de registros para un formulario o un informe.
Una consulta de acción, como su nombre indica, realiza una tarea con los datos. Las consultas de acción pueden servir para crear tablas nuevas, agregar datos a tablas existentes, actualizar datos o eliminar datos.

Macros

Las macros en Access se pueden considerar como un lenguaje de programación simplificado, que se puede utilizar para aumentar la funcionalidad de la base de datos. Por ejemplo, puede adjuntar una macro a un botón de comando en un formulario, de modo que la macro se ejecute cuando se haga clic en el botón. Las macros contienen acciones que realizan tareas, como abrir un informe, ejecutar una consulta o cerrar la base de datos. Casi todas las operaciones de bases de datos que normalmente se realizan manualmente se pueden automatizar mediante macros, ahorrando así mucho tiempo.

Módulos

Los módulos, como las macros, son objetos que sirven para aumentar la funcionalidad de la base de datos. Mientras que las macros en Access se crean seleccionando acciones de una lista, los módulos se escriben en el lenguaje de programación de Visual Basic para Aplicaciones (VBA). Un módulo es una colección de declaraciones, instrucciones y procedimientos que se almacenan conjuntamente como una unidad. Un módulo puede ser de clase o estándar. Los módulos de clase se adjuntan a formularios o informes, y normalmente contienen procedimientos específicos del formulario o el informe al que se adjuntan. Los módulos estándar contienen procedimientos generales que no están asociados a ningún otro objeto. Los módulos estándar se enumeran en Módulos en el panel de exploración, pero los módulos de clase no.


tipos de datos

tipos de datos para una base de datos



La información es uno de los activos más importantes de las entidades, y de moso especial en algunos sectores de actividad.
Es indudable que cada dia las entidades dependen de mayor medida de la información y de la tecnologia, y que los sistemas de información están más soportadas por la tecnologia,frente a la realidad de hace pocas décadas.
Por otra parte, hace unos años la protección era más facil,con arquitecturas centralizadas y terminales no inteligentes , pero hoy en día los entornos son realmente complejos, con diverdidad de plataformas y proliferación de redes, no sólo internas sino también externas, incluso con enlaces internacionales.
Entre las plataformas físicas (hardware) pueden estar: ordenadores grandes y medios ordenadores departamentales y personales, solos o formando parte de red, e incluso ordenadores portátiles. Esta diversidad acerca la información a los usuarios, si bien hace mucho más dificil proteger los datos, especialmente porque los equipos tienen filosofias y sistemas operativos diferentes, incluso a veces siendo del mismo fabricante.
Al hablar de seguridad hemos preferido centrarnos en la información misma, aunque a menudo se hable de seguridad informatica, de seguridad de los sistemas de información o de seguridad de las tecnologias de la información.
En cualquier caso hay tres aspectos principales, como distintas vertientes de la seguridad.
La confidencialidad: se cumple cuando solo las personas autorizadas (en su sentido amplio podriamos referirnos también a sistemas)pueden conocer los datos o la información correspondiante.
Podemos preguntarnos ¿qué ocurriria si un soporte magnetico con los datos de nuestros empleados o clientes fuera cedido a terceros? ¿Cuál podria ser su uso final?¿habra una cadena de cesiones o ventas incontroladas de esos datos, que podría incluir datos como domicilios o perfil economico, o incluso datos médicos?¡y si alguien se hiciera con un disquete con lo que perciben los directivos de nuestra entidad?.
La integridad: consiste en que sólo las personas autorizadas puuedan variar (modificar o borrar) los datos. Además deben quedar pistas para control posterior y para auditoria.
Pensemos que alguien variara datos de forma que perdiéramos la información de determinadas deudas a cobrar (o que sin perderla tuvieramos que recurrir a la información en papel), o que modificara la última parte de los domicilios de algunos clientes.
Algunas de estas acciones se podrían tardar en detectar, y tal vez las diferentes copias de seguridad hechas a lo largo del tiempo estarian viciadas (corruptas decimos a veces), lo que haria deficil la reconstrucción.
La disponibilidad: se cumple si las personas autorizadas pueden acceder a tiempo a la información.
El disponer de la información después del momento necesario puede equivaler a al no disponibilidad. Otro tema es disponer de la información a tiempo pero que esta no sea correcta, e incluso que no se sepa, lo que puede originar la toma de decisiones erróneas.
Otro caso grave es la no disponibilidad absoluta. Por haberse producido algún desastre. En este caso a medida que pasa el tiempo el impacto será mayor, hasta llegar a suponer la no continuidad de la entidad, como ha pasado en muchos de los casos producidos (más de un 80% según estadísticas), ya que las incidencias son frecuentes, y tenemos cercano el caso de los daños en el área de Acapulco.
En relación con ello deben existir soluciones alternativas, basadas en medios propios o contratados, copias actualizadas de la información crítica y de programas en un lugar diferente, y un verdadero plan de continuidad que permitía restablecer las operaciones en un tiempo inferior o igual al prefijo.
Para ello los usuarios habrán determinado previamente la criticidad de las aplicaciones y el impacto en sus áreas por parte de un comité, se habrán determinado las prioridades.
En la preparación y actualización del plan debemos pensar en situaciones posibles y en el impacto que tendrían en nuestra entidad (en su caso en las de nuestros clientes), especialmente si no disponemos de la información necesaria almacenada en lugares alternativos.
La seguridad tiene varios estratos:
El marco jurídico adecuado.
Medidas técnico-administrativas, como la existencia de políticas y procedimientos, o la creación de funciones, como administración de la seguridad o auditoria de sistemas de información interna.
Ambas funciones han de ser independientes y nunca una misma persona podrá realizar las dos ni existir dependencia jerárquica de una función respecto a otra.
En cuanto a la administración de seguridad pueden existir, además, coordinadores en las diferentes áreas funcionales y geográficas de cada entidad, especialmente si la dispersión a la complejidad organizativa o el volumen de la entidad así lo demandan
En el caso de multinacionales o grupos de empresas nacionales no esta de más que exista coordinación a niveles superiores.
En todo caso, debe existir una definición de funciones y separación de tareas; no tiene sentido que una misma persona autorice una transacción, la introduzca, y revise después los resultados (un diario de operaciones, por ejemplo), porque podría planificar un fraude o encubrir cualquier anomalía, por ello deben intervenir funciones personales diferentes y existir controles suficientes.
La seguridad física, como la ubicación de los centros de procesos, las protecciones físicas, el control físico de accesos, los vigilantes, las medidas contra el fuego y el agua, y otras similares.
La llamada seguridad lógica, como el control de accesos a la información exigiendo la identificación y autenticación del usuario, o el cifrado de soportes magnéticos intercambiados transmitidos por línea. (Puede haber cifrado de la información por dispositivos físicos o a trabes de programas, y en casos más críticos como la red SWFT existen los dos niveles).
La autenticación suele ser mediante contraseña, si bien seria más lógico, aunque los castores resultan aun altos para la mayoría de sistemas, que pudieran con características biométricas del usuario, para impedir la suplantación. Entre estas pueden estar la realización de la firma con reconocimiento automático por ordenador, el análisis del fondo de ojo, la huella u otras.



medidas de bases de datos

MEDIDAS DE SEGURIDAD PARA SUS BASES DE DATOS

La información es uno de los activos más importantes de las entidades, y de moso especial en algunos sectores de actividad.
Es indudable que cada día las entidades dependen de mayor medida de la información y de la tecnología, y que los sistemas de información están más soportadas por la tecnología,frente a la realidad de hace pocas décadas.
Por otra parte, hace unos años la protección era más fácil,con arquitecturas centralizadas y terminales no inteligentes , pero hoy en día los entornos son realmente complejos, con diversidad de plataformas y proliferación de redes, no sólo internas sino también externas, incluso con enlaces internacionales.
Entre las plataformas físicas (hardware) pueden estar: ordenadores grandes y medios ordenadores departamentales y personales, solos o formando parte de red, e incluso ordenadores portátiles. Esta diversidad acerca la información a los usuarios, si bien hace mucho más difícil proteger los datos, especialmente porque los equipos tienen filosofías y sistemas operativos diferentes, incluso a veces siendo del mismo fabricante.
Al hablar de seguridad hemos preferido centrarnos en la información misma, aunque a menudo se hable de seguridad informática, de seguridad de los sistemas de información o de seguridad de las tecnologías de la información.
En cualquier caso hay tres aspectos principales, como distintas vertientes de la seguridad.
La confidencialidad: se cumple cuando solo las personas autorizadas (en su sentido amplio podríamos referirnos también a sistemas)pueden conocer los datos o la información correspondiente.
Podemos preguntarnos ¿qué ocurriría si un soporte magnético con los datos de nuestros empleados o clientes fuera cedido a terceros? ¿Cuál podría ser su uso final?¿habrá una cadena de cesiones o ventas incontroladas de esos datos, que podría incluir datos como domicilios o perfil económico, o incluso datos médicos?¡y si alguien se hiciera con un disquete con lo que perciben los directivos de nuestra entidad?.
La integridad: consiste en que sólo las personas autorizadas puedan variar (modificar o borrar) los datos. Además deben quedar pistas para control posterior y para auditoria.
Pensemos que alguien variara datos de forma que perdiéramos la información de determinadas deudas a cobrar (o que sin perderla tuviéramos que recurrir a la información en papel), o que modificara la última parte de los domicilios de algunos clientes.
Algunas de estas acciones se podrían tardar en detectar, y tal vez las diferentes copias de seguridad hechas a lo largo del tiempo estarían viciadas (corruptas decimos a veces), lo que haría deficil la reconstrucción.
La disponibilidad: se cumple si las personas autorizadas pueden acceder a tiempo a la información.
El disponer de la información después del momento necesario puede equivaler a al no disponibilidad. Otro tema es disponer de la información a tiempo pero que esta no sea correcta, e incluso que no se sepa, lo que puede originar la toma de decisiones erróneas.
Otro caso grave es la no disponibilidad absoluta. Por haberse producido algún desastre. En este caso a medida que pasa el tiempo el impacto será mayor, hasta llegar a suponer la no continuidad de la entidad, como ha pasado en muchos de los casos producidos (más de un 80% según estadísticas), ya que las incidencias son frecuentes, y tenemos cercano el caso de los daños en el área de Acapulco.
En relación con ello deben existir soluciones alternativas, basadas en medios propios o contratados, copias actualizadas de la información crítica y de programas en un lugar diferente, y un verdadero plan de continuidad que permitía restablecer las operaciones en un tiempo inferior o igual al prefijo.
Para ello los usuarios habrán determinado previamente la criticidad de las aplicaciones y el impacto en sus áreas por parte de un comité, se habrán determinado las prioridades.
En la preparación y actualización del plan debemos pensar en situaciones posibles y en el impacto que tendrían en nuestra entidad (en su caso en las de nuestros clientes), especialmente si no disponemos de la información necesaria almacenada en lugares alternativos.
La seguridad tiene varios estratos:
El marco jurídico adecuado.
Medidas técnico-administrativas, como la existencia de políticas y procedimientos, o la creación de funciones, como administración de la seguridad o auditoria de sistemas de información interna.
Ambas funciones han de ser independientes y nunca una misma persona podrá realizar las dos ni existir dependencia jerárquica de una función respecto a otra.
En cuanto a la administración de seguridad pueden existir, además, coordinadores en las diferentes áreas funcionales y geográficas de cada entidad, especialmente si la dispersión a la complejidad organizativa o el volumen de la entidad así lo demandan
En el caso de multinacionales o grupos de empresas nacionales no esta de más que exista coordinación a niveles superiores.
En todo caso, debe existir una definición de funciones y separación de tareas; no tiene sentido que una misma persona autorice una transacción, la introduzca, y revise después los resultados (un diario de operaciones, por ejemplo), porque podría planificar un fraude o encubrir cualquier anomalía, por ello deben intervenir funciones personales diferentes y existir controles suficientes.
La seguridad física, como la ubicación de los centros de procesos, las protecciones físicas, el control físico de accesos, los vigilantes, las medidas contra el fuego y el agua, y otras similares.
La llamada seguridad lógica, como el control de accesos a la información exigiendo la identificación y autenticación del usuario, o el cifrado de soportes magnéticos intercambiados transmitidos por línea. (Puede haber cifrado de la información por dispositivos físicos o a trabes de programas, y en casos más críticos como la red SWFT existen los dos niveles).
La autenticación suele ser mediante contraseña, si bien seria más lógico, aunque los castores resultan aun altos para la mayoría de sistemas, que pudieran con características biométricas del usuario, para impedir la suplantación. Entre estas pueden estar la realización de la firma con reconocimiento automático por ordenador, el análisis del fondo de ojo, la huella u otras.

La manera más sencilla de adecuar las bases de datos a la nueva Ley Orgánica de Protección de Datos Personales es separar la información según el nivel de protección que requiere. Al menos, en este punto estuvieron de acuerdo los participantes en la mesa redonda “Las medidas de seguridad establecidas en el R.D. 994/1999 de 11 de junio” celebrada en el “XIV Encuentro sobre Informática y Derecho” de la Universidad Pontificia de Comillas. 
Jesús Rubí y Mar Martínez, Adjunto al Director y Subdirectora del Registro General de Protección de Datos de la A.P.D. respectivamente y Rosa Mª García y Carmen Martínez, Directora y Directora del Registro y de la Inspección de la Agencia de Protección de Datos de la C.A.M. hablaron en este foro de los distintos niveles de medidas a aplicar según el tipo de ficheros. Mar Martínez recomendó concienciar al departamento informático para aplicar soluciones que permitan diferenciar el tipo de datos y aplicarles los niveles de protección correspondientes. Tanto los representantes de la A.P.D. como los de la Agencia de Protección de Datos de la C.A.M. se mostraron abiertos a resolver las dudas de las empresas e invitaron a los profesionales del sector a participar en sus sesiones de formación sobre protección de datos.