Imagenes

jueves, 8 de junio de 2017

UNIDAD 1 DISEÑO, MANEJO Y EXPLOTACIÓN DE BASE DE DATOS

1 
1.1 MODELOS DE BASES DE DATOS

Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.
Algunos modelos con frecuencia utilizados en las bases de datos:

Bases de datos jerárquicas

En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.
Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.
Una de las principales limitaciones de este modelo es su incapacidad de representar eficientemente la redundancia de datos.

Base de datos de red:

 Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).
Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Bases de datos transaccionales


















Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacional.

Bases de datos relacionales
























Estés el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámica mente. Tras ser postulados sus fundamentos en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a que ésta es la teoría de las bases de datos relacionales creadas por Codd, la mayoría de las veces se conceptualiza de una manera más fácil de imaginar. Esto es pensando en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían las tuplas, y campos (las columnas de una tabla).
En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.
 El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales.

1.2 CONSIDERACIONES DE DISEÑO





Una Base de Datos sirve para guardar datos en ella y para procesar dichos datos. El resultado de ese proceso se llama INFORMACIÓN.
DATOS —> PROCESO —> INFORMACIÓN









Los usuarios ingresan los DATOS en las tablas, en los stored procederes y en los triggers se PROCESAN esos datos, y el resultado de ese procesamiento es la INFORMACIÓN que se obtiene.
Para que la INFORMACIÓN sirva debe ser exacta, oportuna y confiable. Esto solamente puede conseguirse si los DATOS introducidos son exactos y si el PROCESO al que son sometidos es correcto. Si cualquiera de ellos (datos o proceso) está mal entonces es seguro que la INFORMACIÓN estará mal.
La introducción de los DATOS corre por cuenta y es responsabilidad de los usuarios.
El PROCESAMIENTO y la INFORMACIÓN corren por cuenta y es responsabilidad del diseñador de la Base de Datos.
Si un DATO es incorrecto, fue mal introducido, parte de la culpa puede ser del usuario y la otra parte de la culpa puede ser del diseñador de la Base de Datos.

Para evitar o al menos disminuir grandemente la posibilidad de que un usuario introduzca datos erróneos el Firebird nos provee de varias herramientas: restricción Foreign Key, restricción Ónique Key, restricción Check, dominios, triggers.
Mediante la restricción Foreign Key nos aseguramos que en una columna solamente se puedan guardar valores que existen en otra tabla. Si no existen en la otra tabla, no se grabarán.









Mediante la restricción Unique Key nos aseguramos que en una columna no haya datos repetidos. Ni duplicados, ni triplicados, ni nada de eso. Solamente datos únicos.
Mediante la restricción Check nos aseguramos que en una columna (o serie de columnas) solamente se puedan introducir valores que cumplen con las condiciones impuestas.
Mediante los dominios nos aseguramos que los valores de una columna sean solamente los permitidos.
Mediante los triggers nos aseguramos que antes de insertar o actualizar una fila los valores de sus columnas sean valores permitidos.

Si los DATOS o el PROCESO son incorrectos entonces lo que se obtiene no sirve, en otras palabras se obtiene basura, porque DATOS correctos utilizados por un PROCESO incorrecto da como resultado basura y DATOS incorrectos utilizados por un PROCESO correcto también dan por resultado basura.

Un “dato” es lo que se guarda, una “información” es lo que se obtiene después de “procesar” a los “datos”.

Siempre por el final, o sea por la INFORMACIÓN que los usuarios desean obtener. Esto implica que se debe entrevistar a los usuarios para preguntarles todo lo concerniente a la INFORMACIÓN que necesitan.



  • PRODUCTOS (Identificador, Código, Nombre, Cantidad inicial, Fecha de la cantidad inicial, etc.)
  • CLIENTES (Identificador, Nombre, Dirección, Teléfono,etc.)
  • VENTAS CABECERA (Identificador, Tipo de documento, Número de documento, Fecha de la venta, Identificador del cliente, etc.)
  • VENTAS DETALLES (Identificador, Identificador de la cabecera, Identificador del producto, Cantidad, Precio unitario, etc.)
  • COBRANZAS (Identificador, Fecha de la cobranza, Identificador del cliente, Número de Factura cobrada, Monto cobrado, etc.)
  • PROVEEDORES (Identificador, Nombre, Dirección, Teléfono, etc.)
  • COMPRAS CABECERA (Identificador, Tipo de documento, Número de documento, Fecha de la compra, Identificador del proveedor, etc.)
  • COMPRAS DETALLES (Identificador, Identificador de la cabecera, Identificador del producto, Cantidad, Precio unitario, etc.)
  • PAGOS (Identificador, Fecha del pago, Identificador del proveedor, Número de la factura pagada, Monto pagado, etc.)

Al saber cuáles informes requieren los usuarios ya es fácil determinar cuáles tablas se deberán crear para cumplir con ellos.



1.3  NORMALIZACIONES



Uno de los factores más importantes en la creación de páginas web dinámicas es el
diseño de las Bases de Datos (BD). Si tus tablas no están correctamente diseñadas,
te pueden causar un montón de dolores de cabeza cuando tengas de realizar
complicadísimas llamadas SQL en el código PHP para extraer los datos que  necesitas.

Si conoces como establecer las relaciones entre los datos y la normalización de 
estos, estarás preparado para comenzar a desarrollar tu aplicación en PHP.
Si trabajas con MySQL o con Oracle, debes conocer los métodos de normalización del
diseño de las tablas en tu sistema de BD relacional. Estos métodos pueden ayudarte a
hacer tu código PHP más fácil de comprender, ampliar, y en determinados casos,
incluso hacer tu aplicación más rápida.

Básicamente, las reglas de Normalización están encaminadas a eliminar redundancias e
inconsistencias de dependencia en el diseño de las tablas. Más tarde explicaré lo que
esto significa mientras vemos los cinco pasos progresivos para normalizar, tienes que
tener en cuenta que debes crear una BD funcional y eficiente.

También detallaré los tipos de relaciones que tu estructura de datos puede tener.
Digamos que queremos crear una tabla con la información de usuarios, y los datos a
guardar son el nombre, la empresa, la dirección de la empresa y algún e-mail, o bien
URL si las tienen. En principio comenzarías definiendo la estructura de una tabla como
esta.

Formalización CERO





Diríamos que la anterior tabla esta en nivel de Formalización Cero porque ninguna de
nuestras reglas de normalización ha sido aplicada. Observa los campos url1 y url2 --¿Qué haremos cuando en nuestra aplicación necesitemos una tercera url  ? ¿Quieres? Tener que añadir otro campo/columna a tu tabla y tener que reprogramar toda la entrada de datos de tu código PHP? Obviamente no, tú quieres crear un sistema funcional que pueda crecer y adaptarse fácilmente a los nuevos requisitos.

Primer nivel de Formalización/Normalización. (F/N)

1. Eliminar los grupos repetitivos de las tablas individuales.
2. Crear una tabla separada por cada grupo de datos relacionados.
3. Identificar cada grupo de datos relacionados con una clave primaria.


¿Ves que estamos rompiendo la primera regla cuando repetimos los campos url1 y url2? ¿Y qué pasa con la tercera regla, la clave primaria? La regla tres básicamente significa que tenemos que poner un campo tipo contador auto incrementable para cada registro. De otra forma, ¿Qué pasaría si tuviéramos dos usuarios llamados Joe y queremos diferenciarlos. Una vez que aplicaremos el primer nivel de F/N nos encontraríamos con la siguiente tabla:

  



Ahora diremos que nuestra tabla está en el primer nivel de F/N. Hemos el problema de la limitación del campo url. Pero sin embargo vemos Otros problemas....Cada vez que introducimos un nuevo registró en la tabla Usuarios, tenemos que duplicar el nombre de la empresa y del usuario. No sólo Nuestra BD crecerá muchísimo, sino que será muy fácil que la BD se corrompa si escribimos mal alguno de los datos redundantes. Aplicaremos pues el segundo


Nivel de F/N:
Segundo nivel de F/N

1. Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros.

2. Relacionar estas tablas mediante una clave externa. Hemos separado el campo url en otra tabla, de forma que podemos añadir más en el futuro si tener que duplicar los demás datos. También vamos a usar nuestra clave primaria para relacionar estos campos:




Vale, hemos creado tablas separadas y la clave primaria en la tabla usuarios, userId, está relacionada ahora con la clave externa en la tabla urls, rel UserId. Esto está mejor. ¿Pero qué ocurre cuando queremos añadir otro empleado a la empresa  ABC? ¿O 200 empleados? Ahora tenemos el nombre de la empresa y su dirección duplicándose, otra situación que puede inducirnos a introducir errores en nuestros datos.
Así que tendremos que aplicar el tercer nivel de F/N:

Tercer nivel de F/N. 1.

Eliminar aquellos campos que no dependan de la clave.
Nuestro nombre de empresa y su dirección no tienen nada que ver con el campo userId, así que tienen que tener su propio empresa Id:


Ahora tenemos la clave primaria emprId en la tabla empresas relacionada con la clave externa recEmpresaId en la tabla usuarios, y podemos añadir 200 Usuarios mientras que sólo tenemos que insertar el nombre 'ABC' una vez. Nuestras tablas de usuarios y urls pueden crecer todo lo que quieran sin Duplicación ni corrupción de datos. La mayoría de los desarrolladores dicen que el tercer nivel de F/N es suficiente, que nuestro esquema de datos puede manejar fácilmente los datos obtenidos de una cualquier empresa en su totalidad, y en la mayoría de los casos esto será cierto.

Pero echemos un vistazo a nuestro campo urls - ¿Ves duplicación de datos ? Esto es perfectamente aceptable si la entrada de datos de este campo es solicitada al usuario en nuestra aplicación para que teclee libremente su url, y por lo tanto es sólo una coincidencia que Joe y Jill teclearon la misma url. ¿Pero qué pasa si en lugar de entrada libre de texto usáramos un menú desplegable con 20 o incluso más urls predefinidas? Entonces tendríamos que llevar nuestro diseño de BD al siguiente nivel de F/N, el cuarto, muchos desarrolladores lo pasan por alto porque depende mucho de un tipo muy específico de relación, la relación 'varios-con-varios', la cual aún no hemos encontrado en nuestra aplicación.

Relaciones entre los Datos

Antes de definir el cuarto nivel de F/N, veremos tres tipos de relaciones entre los datos: uno-a-uno, uno-con-varios y varios-con-varios. Mira la tabla usuarios en el Primer Nivel de F/N del ejemplo de arriba. Por un momento imaginamos, que ponemos el campo url en una tabla separada, y cada vez que introducimos un registro en la tabla usuarios también introducimos una sola fila en la tabla urls. Entonces tendríamos una relación uno-a-uno: cada fila en la tabla usuarios tendría exactamente una fila correspondiente en la tabla urls. Para los propósitos de nuestra aplicación no sería útil la normalización.

Ahora mira las tablas en el ejemplo del Segundo Nivel de F/N. Nuestras tablas permiten a un sólo usuario tener asociadas varias urls. Esta es una relación uno con-varios, el tipo de relación más común, y hasta que se nos presentó el dilema del Tercer Nivel de F/N. la única clase de relación que necesitamos.

La relación varios-con-varios, sin embargo, es ligeramente más compleja. Observa en nuestro ejemplo del Tercer Nivel de F/N que tenemos a un usuario relacionado con varias urls. Como dijimos, vamos a cambiar la estructura para permitir que varios usuarios estén relacionados con varias urls y así tendremos una relación varios-con-varios. Veamos como quedarían nuestras tablas antes de seguir con este planteamiento:



Para disminuir la duplicación de los datos (este proceso nos llevará al Cuarto Nivel de F/N), hemos creado una tabla que sólo tiene claves externas y primarias url_relations. Hemos sido capaces de remover las entradas duplicadas en la tabla urls creando la tabla url_relations. Ahora podemos expresar fielmente la relación que ambos Joe and Jill tienen entre cada uno de ellos, y entre ambos, las urls. Así que veamos exactamente que es lo que el Cuarto Nivel de F/N. supone:

Cuarto Nivel de F/N.
1.    En las relaciones varios-con-varios, entidades independientes no pueden ser almacenadas en la misma tabla.
Ya que sólo se aplica a las relaciones varios-con-varios, la mayoría de los desarrolladores pueden ignorar esta regla de forma correcta. Pero es muy útil en ciertas situaciones, tal como está. Hemos optimizado nuestra tabla urls eliminado duplicados y hemos puesto las relaciones en su propia tabla.

Quinto Nivel de F/N.
Existe otro nivel de normalización que se aplica a veces, pero es de hecho algo esotérico y en la mayoría de los casos no es necesario para obtener la mejor funcionalidad de nuestra estructura de datos o aplicación. Su principio sugiere:
1. La tabla original debe ser reconstruida desde las tablas resultantes en las cuales ha sido troceada.
Los beneficios de aplicar esta regla aseguran que no has creado ninguna columna extraña en tus tablas y que la estructura de las tablas que has creado sea del tamaño justo que tiene que ser. Es una buena práctica aplicar este regla, pero a no ser que estés tratando con una extensa estructura de datos probablemente no la necesitarás.


1.4 INTEGRIDAD REFERENCIAL



Al crear las relaciones entre tablas podemos elegir que se cumpla la integridad referencial entre dos tablas. Por ejemplo, entre la tabla de ventas de una librería y la tabla que recoge la información sobre los libros. Si en la relación entre ambas tablas exigimos integridad referencial siendo el campo de nexo el isbn, tendremos que dar de alta un libro con su isbn y demás datos antes de que se pueda usar ese isbn en la tabla de ventas. Esto tiene la ventaja de que nunca nos equivocaremos al decir que hemos vendido un libro con el isbn equivocado, ya que para que podamos vender un libro este tiene que estar previamente dado de alta en el inventario de libros .

Cuando exigimos integridad referencial entre dos tablas, al establecer sus relaciones, estamos exigiendo a Access que no nos permita introducir datos en un campo de la tabla secundario que no estuviera dado de alta en la tabla primaria siempre que este sea el campo que la relaciona.

En el ejemplo de la base de datos de la librería, la tabla de libros es la tabla principal y el campo que une ambas tablas es el isbn. La tabla ventas es la tabla secundaria, y ambas se relacionan por una relación uno a varios. Al exigir integridad referencial no podremos vender un libro que previamente no estuviera dado de alta con su isbn correspondiente.
Es aconsejable marcar las tres casillas:

1.    Exigir integridad referencial
2.    Actualizar en cascada los campos relacionados
3.    Eliminar en cascada los registros relacionados

Actualizar en cascada los campos relacionados hace que al cambiar el valor del campo de la tabla principal automáticamente cambien esos mismos valores en la tabla secundaria.

Ejemplo. Supongamos que tenemos una tabla con el Catálogo de libros relacionada con una tabla de Editoriales. Si una editorial cambia de nombre y la actualizamos en la tabla principal de Editoriales automáticamente cambiará en la tabla secundaria del Catálogo para todos los registros.

Eliminar en cascada los registros relacionados hace que al borrar un registro de la tabla principal automáticamente se borren todos los registros de la tabla secundaria que donde aparece ese datos.

Ejemplo. Supongamos que tenemos una tabla con el Catálogo de libros relacionada con una tabla de Editoriales. La tabla de Editoriales sería la tabla principal y la del Catálogo la secundaria. Si una editorial desaparece y eliminamos su registro en la tabla de Editoriales, automáticamente desaparecerán de nuestro Catálogo todos los libros que ofertaba esa editorial.

Si no marcamos ninguna de estas dos opciones no nos dejará cambiar el nombre de la editorial ni borrar ninguna editorial que ya este utilizada en la tabla secundaria del Catálogo.

1.5  RESTRICCIONES

Una restricción es una condición que obliga el cumplimiento de ciertas condiciones en la base de datos. Algunas no son determinadas por los usuarios, sino que son inherentemente definidas por el simple hecho de que la base de datos sea relacional. Algunas otras restricciones las puede definir el usuario, por ejemplo, usar un campo con valores enteros entre 1 y 10.
Las restricciones proveen un método de implementar reglas en la base de datos. Las restricciones restringen los datos que pueden ser almacenados en las tablas. Usualmente se definen usando expresiones que dan como resultado un valor booleano, indicando si los datos satisfacen la restricción o no.
Las restricciones no son parte formal del modelo relacional, pero son incluidas porque juegan el rol de organizar mejor los datos. Las restricciones son muy discutidas junto con los conceptos relacionales.


Dominios
Un dominio describe un conjunto de posibles valores para cierto atributo. Como un dominio restringe los valores del atributo, puede ser considerado como una restricción. Matemáticamente, atribuir un dominio a un atributo significa "todos los valores de este atributo deben de ser elementos del conjunto especificado".
Distintos tipos de dominios son: enteros, cadenas de texto, fecha,no procedurales etc.

Clave única
Cada tabla puede tener uno o más campos cuyos valores identifican de forma única cada registro de dicha tabla, es decir, no pueden existir dos o más registros diferentes cuyos valores en dichos campos sean idénticos. Este conjunto de campos se llama clave única.
Pueden existir varias claves únicas en una determinada tabla, y a cada una de éstas suele llamársele candidata a clave primaria.

Clave primaria
Una clave primaria es una clave única elegida entre todas las candidatas que define unívocamente a todos los demás atributos de la tabla, para especificar los datos que serán relacionados con las demás tablas. La forma de hacer esto es por medio de claves foráneas.
Sólo puede existir una clave primaria por tabla y ningún campo de dicha clave puede contener valores NULL.

Clave foránea
Una clave foránea es una referencia a una clave en otra tabla. Las claves foráneas no necesitan ser claves únicas en la tabla donde están y sí a donde están referenciadas.
Por ejemplo, el código de departamento puede ser una clave foránea en la tabla de empleados, obviamente se permite que haya varios empleados en un mismo departamento, pero existirá sólo un departamento.


1.6 SEGURIDAD DE BASE DE DATOS


Terminología


Seguridad: es el proceso de controlar el acceso a los recursos; se basa en las credenciales y los permisos del usuario de Windows.
Permisos: son reglas asociadas a un recurso local o a un recurso compartido en una red, por ejemplo un archivo, un directorio o una impresora. Los permisos se pueden conceder a grupos, a grupos globales e incluso a usuarios individuales de Windows. Cuando se conceden permisos de Windows, se especifica el nivel de acceso para grupos y usuarios.

Seguridad del sistema operativo o del sistema de archivos: comprueba los permisos cada vez que un usuario de Windows interactúa con el recurso compartido, con el fin de determinar si dicho usuario tiene los permisos necesarios. Por ejemplo, si ese usuario intenta guardar un archivo en una carpeta, éste debe tener permisos de escritura en dicha carpeta.
Recursos compartidos: pone a disposición de otros usuarios los recursos de Windows, como carpetas e impresoras. Los permisos de recurso compartido restringen la disponibilidad de un recurso de este tipo en la red sólo a determinados usuarios de Windows. El administrador de una carpeta compartida concede permisos a los usuarios de Windows para permitir el acceso remoto a la carpeta y a las subcarpetas. Compartir los recursos de Windows es distinto a compartir archivos y proyectos en VSS.

Derechos: en VSS, especifican los usuarios de esta aplicación que tienen acceso a un proyecto de VSS concreto. Existen cuatro niveles de derechos de acceso de usuario en VSS: leer; desproteger/proteger; agregar/cambiar nombre/eliminar y destruir. Se puede especificar un nivel predeterminado para nuevos usuarios de la base de datos.

Asignaciones: en VSS, especifican los proyectos de esta aplicación a los que tiene acceso un usuario determinado.

Carpeta de la base de datos de VSS: es la carpeta de Windows que contiene el archivo Srcsafe.ini de la base de datos, así como otras carpetas de VSS, por ejemplo Data y Users.

Proteger la base de datos y administrar los usuarios

 

El programa del Administrador de VSS proporciona herramientas para administrar los usuarios de esta aplicación mediante la especificación de derechos de acceso para usuarios o proyectos de VSS individuales en la base de datos de VSS. Sin embargo, si desea proteger realmente la base de datos, debe utilizar la seguridad integrada de Windows con el fin de restringir el acceso a las carpetas de VSS, mediante el establecimiento de permisos de recurso compartido y de seguridad para estas carpetas. Como se muestra en el siguiente diagrama, la protección de la base de datos de VSS compartida es igual a la protección de la carpeta de red compartida en la que se encuentra. Siga los procedimientos de bloqueo de la base de datos para reforzar la seguridad de Windows, estableciendo o cambiando los permisos de recurso compartido de la carpeta de la base de datos siempre que cree una base de datos o agregue o elimine usuarios de VSS. De lo contrario, cualquier usuario malintencionado de la red podrá evitar fácilmente la pared transparente de derechos y asignaciones del usuario de VSS. No confíe en VSS para proteger sus datos: hasta los usuarios de VSS con derechos de sólo lectura pueden eliminar una base de datos de esta aplicación de una carpeta de red compartida a la que tengan acceso.

Los derechos y asignaciones del usuario de VSS que se establecen en el programa del Administrador de VSS son independientes de los permisos de recurso compartido de Windows para la carpeta de la base de datos de VSS. VSS utiliza el nombre de usuario y la contraseña establecidos para esta aplicación a fin de administrar los usuarios y el acceso a VSS. El nombre de usuario de VSS se utilizar para administrar los derechos y asignaciones del usuario en el programa del Administrador de VSS; dicho nombre identifica al usuario en el inicio de sesión, en la información del historial y en los informes de archivos. Los usuarios pueden iniciar una sesión en VSS utilizando el nombre de usuario y la contraseña. VSS crea un archivo de inicialización (Ss.ini) y mantiene un seguimiento del mismo para cada usuario de VSS; éste contiene valores para personalizar el entorno de VSS de dicho usuario. Para proteger este archivo de inicialización, siga las instrucciones de Bloquear la base de datos.
Para obtener más información acerca de la seguridad de Windows, el control de acceso y los permisos, vea la Ayuda de Windows.

Instrucciones para proteger la base de datos

Si desea proteger la base de datos, debe utilizar la seguridad integrada de Windows para restringir el acceso a las carpetas de VSS, de forma que sólo los usuarios autorizados de Windows puedan obtener acceso a la base de datos o ejecutar el programa del Administrador de VSS. La seguridad de la base de datos de VSS está determinada por la seguridad de la carpeta que contiene dicha base de datos. Si desea implementar la seguridad aquí descrita en la base de datos de VSS, esta última debe estar instalada en un sistema de archivos de NT (NTFS), ya que en NTFS se pueden conceder permisos para archivos y carpetas individuales. El sistema de archivos de tabla de asignación de archivos (FAT) aplica los mismos permisos a todo un recurso compartido.

Restringir permisos de recurso compartido

Cuando se crea una base de datos compartida, se recomienda encarecidamente el uso del Explorador de Windows con el fin de restringir los permisos de recurso compartido de las carpetas de VSS. Debe eliminar el grupo Todos, que se agrega automáticamente al compartir la carpeta de la base de datos de VSS. Se pueden crear dos grupos de usuarios de Windows, administradores de VSS y usuarios de VSS, y conceder a cada grupo los permisos adecuados para la carpeta de la base de datos de VSS y para el resto de carpetas de esta aplicación. A cada usuario de VSS también se le deben conceder permisos de lectura y escritura en la carpeta Users/nombre usuario que se corresponda con el nombre de usuario de éste en VSS. Para obtener instrucciones, vea Bloquear la base de datos.

Administrar usuarios

Al agregar o eliminar usuarios de VSS, no sólo debe utilizar la lista de usuarios del programa del Administrador de VSS para administrarlos; también deberá agregar o eliminar sus permisos de recurso compartido de Windows. Para obtener instrucciones, vea Bloquear la base de datos.
Consideraciones adicionales

Instalar la base de datos en una ubicación segura

Durante la instalación de VSS, se crea una base de datos de forma predeterminada en la carpeta Data de VSS, ubicada bajo Archivos de programa. Esta base de datos está concebida solamente para uso personal y no se debe compartir. Utilice la base de datos de la ubicación predeterminada sólo si así lo requieren otros programas.
Cualquier usuario de Windows que tenga permisos de tipo Control total para las carpetas de VSS puede reemplazar los archivos ejecutables de la carpeta Win32: siga los procedimientos que se indican en Bloquear la base de datos para conceder permisos de tipo Control total sólo a los usuarios del grupo del Administrador de VSS. Asimismo, todos los usuarios de la base de datos de VSS necesitan permisos para la carpeta de dicha base de datos; si esta carpeta se encuentra bajo la carpeta Archivos de programa, contiene archivos ejecutables y recursos relacionados.
No cree una base de datos compartida en sus carpetas del sistema ni en las carpetas Documents and Settings.

Ocultar el recurso compartido de VSS

Puede ocultar el recurso compartido de red de forma que resulte muy difícil para los usuarios de Windows remotos determinar si un servidor tiene un recurso compartido y si VSS está instalado. El recurso compartido de red no aparece cuando un usuario de Windows realiza búsquedas en el servidor. Si desea ocultar el recurso compartido de red, agregue $ al final del nombre de la carpeta; por ejemplo, en lugar de \\server\vssdb1 utilice \\server\vssdb1$. Deberá indicar a sus usuarios de VSS la ubicación exacta de la base de datos, de forma que éstos puedan agregarla a la lista Bases de datos disponibles del cuadro de diálogo Abrir base de datos de SourceSafe.

Carpetas centrales

Al crear una carpeta central para un proyecto de VSS, dicha carpeta no hereda los permisos de usuario de Windows de las carpetas de VSS. Conceda permisos de lectura y escritura en la carpeta central a todos los usuarios de VSS, y conceda permisos de sólo lectura a los usuarios de Windows que requieran acceso de sólo lectura a dicha carpeta. Para obtener más información, vea Crear carpetas centrales.
Se recomienda que cree una carpeta central en un recurso compartido distinto de la base de datos de VSS, de forma que los usuarios de Windows con acceso de sólo lectura a la carpeta central no tengan ningún permiso de acceso al recurso compartido que contiene la base de datos. También se recomienda que cree una carpeta central para un proyecto de VSS específico, y no para el proyecto raíz $, de forma que los usuarios de Windows que tengan acceso a la carpeta central sólo puedan obtener acceso a ese proyecto de VSS exclusivamente, no a la base de datos completa.
Nota   Al eliminar un archivo o un proyecto de un proyecto de VSS, dicho archivo o proyecto no se eliminará en la carpeta central.
Archivo de diario

Si crea un archivo de diario, se recomienda que proteja dicho archivo ubicándolo en la misma carpeta que el archivo Srcsafe.ini y concediendo permisos de lectura y escritura de Windows para el archivo de diario a los usuarios de VSS. Para obtener más información, vea Crear archivo de diario.
Permisos necesarios para instalar y ejecutar VSS
Para poder instalar VSS en el equipo debe ser Administrador de Windows; sin embargo, no se requieren permisos de administrador para ejecutar el programa del Administrador de VSS o el Explorador de VSS y la línea de comandos.

Nombres de usuario Admin y Guest

Al crear una base de datos de VSS se crean dos nombres de usuario de forma predeterminada: Admin y Guest. Las contraseñas para el usuario Admin y el usuario Guest están en blanco. Se recomienda que el usuario establezca una contraseña para el usuario Admin utilizando el comando Cambiar contraseña del programa del Administrador de VSS. Puede eliminar el usuario Guest o bien establecer una contraseña para éste utilizando el comando Cambiar contraseña del programa del Administrador de VSS. Para obtener información detallada, vea Cambiar la contraseña de un usuario.

Contraseñas

Si los usuarios de VSS tienen que escribir un nombre de usuario y una contraseña para iniciar una sesión de VSS, indíqueles que no utilicen la misma contraseña para el sistema operativo y para VSS. Si utilizan la misma y un pirata informático descubre la contraseña de VSS, éste podrá utilizar la identidad del usuario para obtener acceso al sistema operativo y a todos los programas.
Variables de entorno SSUSER y SSPWD
Puede establecer las variables de entorno SSUSER y SSPWD en el equipo para su nombre de usuario y contraseña de VSS y así evitar que aparezca el cuadro de inicio de sesión siempre que escriba un comando de VSS en la línea de comandos o inicie el Explorador de VSS.
Si establece dichas variables de entorno, cualquier usuario que utilice el equipo podrá leer estas variables y ejecutar VSS utilizando su nombre de usuario y contraseña.
Usar el nombre de red para iniciar la sesión del usuario automáticamente
Visual SourceSafe proporciona una opción Usar el nombre de red para iniciar la sesión del usuario automáticamente que se puede utilizar para permitir la integración de Visual SourceSafe con Microsoft Visual InterDev, Visual Studio .Net y FrontPage. Para obtener información acerca de las consideraciones de seguridad al utilizar esta opción, vea el artículo Q283618 de Microsoft Knowledge Base.
Usar los derechos de proyecto de VSS
Si desea especificar derechos de acceso para usuarios o proyectos de VSS individuales, utilice los comandos Derechos por proyecto y Asignaciones de derechos para usuario del menú Herramientas del programa del Administrador de VSS. Para activar los comandos de menú, seleccione Activar comandos de derechos y asignaciones en la ficha Derechos de proyecto del cuadro de diálogo Opciones de SourceSafe.

Auditar la actividad del usuario
Con el programa del Administrador de VSS puede crear un archivo de diario: un archivo de texto que registra cualquier acción realizada por un usuario de VSS, que genera una entrada del historial para un archivo o proyecto en la base de datos de VSS. Para obtener información detallada, vea General (Opciones de la ficha, menú Herramientas) o Journal_File (Variable de inicialización). Los administradores de Windows pueden auditar muchos eventos relacionados con la seguridad, por ejemplo, el acceso a archivos y carpetas determinados. La supervisión de este tipo de eventos puede ayudar a un Administrador de VSS a detectar intentos de comprometer los datos de una base de datos de VSS. Para obtener información acerca de la auditoría de eventos de seguridad y de acceso a objetos como archivos o carpetas, vea la Ayuda de Windows.


1.7  REPORTES DE BASE DE DATOS


● Los datos en una base de datos no son usualmente consultados a través de las tablas. Para ello se crean consultas y reportes.
● Las consultas son vínculos de datos en distintas tablas generados una vez.
● Reportes son aquellas consultas que se guardan como una plantilla para ser procesadas frecuentemente. Los reportes además usualmente incluyen procesamiento de los datos.





 1.8  GESTORES DE BASE DE DATOS




Un gestor de base de datos (DataBase Managenent System) es un sistema que permite la creación, gestión y administración de bases de datos, así como la elección y manejo de las estructuras necesarias para el almacenamiento y búsqueda de la información del modo más eficiente posible.



 1.8.1 BAJO LICENCIA


 Microsoft SQL Server

 

Es un sistema de gestión de bases de datos relacionales basado en el lenguaje Transact-SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea.
Es un sistema propietario de Microsoft. Sus principales características son:
§  Soporte de transacciones.
§  Escalabilidad, estabilidad y seguridad.
§  Soporta procedimientos almacenados.
§  Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
§  Permite trabajar en modo cliente-servidor donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información.
§  Además permite administrar información de otros servidores de datos
Su principal desventaja es el precio, aunque cuenta con una versión EXPRESS que permite usarlo en entornos pequeños. (Aprox. unos 4GB de información y varios millones de registros por tabla)

Oracle

 

Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), fabricado por Oracle Corporation.
Tradicionamente Oracle ha sido el SGBS por excelencia, considerado siempre como el más completo y robusto, destacando por:
§  Soporte de transacciones.
§  Estabilidad.
§  Escalabilidad.
§  Es multiplataforma.
Tambien siempre ha sido considerado de los más caros, por lo que no se ha estadarizado su uso como otras aplicaciones.
Al igual que SQL Server, Oracle cuenta con una versión EXPRESS gratis para pequeñas instalaciones o usuarios personales.

Bajo licencia Microsoft Access

Es un sistema de gestión de bases de datos Relacional creado por Microsoft (DBMS) para uso personal de pequeñas organizaciones.
Se ha ofrecido siempre como un componente de la suite Microsoft Office aunque no se incluye en el paquete “básico”.
Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados por otros programas.
Entre las principales funcionalidades reseñables podemos indicar que:
§  Permite crear tablas de datos indexadas.
§  Modificar tablas de datos.
§  Relaciones entre tablas (creación de bases de datos relacionales).
§  Creación de consultas y vistas.
§  Consultas referencias cruzadas.
§  Consultas de acción (INSERT, DELETE, UPDATE).
§  Formularios.
§  Informes.
§  Entorno de programación a través de VBA
§  Llamadas a la API de windows.



 1.8.2 LIBRE



MySQL

Es un sistema de gestión de base de datos relacional, multihilo y multiusuario seguramente el más usado en aplicaciones creadas como software libre.
Por un lado se ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso.
Ventajas:
§  Velocidad al realizar las operaciones
§  Bajo costo en requerimientos para la elaboración de bases de datos
§  Facilidad de configuración e instalación.

Libre DB2


Este SGBD es propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos. Utiliza XML como motor, además el modelo que utiliza es el jerárquico en lugar del modelo relacional que utilizan otros gestores de bases de datos. Es el único de los gestores que hemos comentado que nos relacional.
Sus características más importantes son:
§  Permite el manejo de objetos grandes (hasta 2 GB)
§  La definición de datos y funciones por parte del usuario, el chequeo de integridad referencial,
§  SQL recursivo, soporte multimedia: texto, imágenes, video, audio; queries paralelos, commit de dos fases, backup/recuperación on−line y offline.
§  Permite agilizar el tiempo de respuestas de esta consulta
§  Recuperación utilizando accesos de sólo índices.
§  Predicados correlacionados.
§  Tablas de resumen
§  Tablas replicadas
§  Uniones hash

Su principal desventaja es el precio, está dirigido solo a grandes empresas con necesidades de almacenamiento y  procesamiento muy altas.
Al igual que SQL Server y Oracle dispone de una versión EXPRESS gratis pero no de libre distribución.
Existen muchos más gestores de bases de datos en el mercado, pero estos como he comentado son los más usados.
Todos son relacionales (a excepción del BD2)  y comparten por tanto lenguaje de consulta (con algunas variantes propias) que es SQL. Es importante por tanto para cualquiera que desee trabajar con bases de datos comenzar por el estudio de este lenguaje común y luego estudiar las peculiaridades de la base de datos en cuestion.
Entre los citados seguro que encontramos el que más se adapta a nuestras necesidades de acuerdo a inversión a realizar, volumen de información a almacenar, tipo de consultas a realizar, etc.

12 comentarios:

  1. Al revisar la unidad 1 pude percatarme de que no se estableció un mismo formato para el texto

    ResponderEliminar
  2. Más imágenes hubieran complementado mejor esta unidad.

    ResponderEliminar
  3. Muy bien chicos es buen trabajo sólo que le falto detalles..Pero gracias por el esfuerzo

    ResponderEliminar
  4. Buen día en esta unidad uno aprendí a realizar las relaciones en excel donde donde teníamos que ver que campos coincidían para poder realizarla,también el uso de los softwares empresariales de Aspel, así como las presentaciones que hicimos en emazi, prezi y powtoon.

    ResponderEliminar
  5. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  6. Hola buen día jóvenes!!!, la información esta bien, así como el tamaño y tipo de fuente.solo algunos párrafos necesitan revisar el formato y justificar, revisen la alineación de las imágenes en esta unidad y por favor poner el mismo color de fuente para los títulos y subtitulos Gracias por colaborar

    ResponderEliminar
  7. Hola buen día.
    Las bases de datos juegan un papel muy importante en la mayoría de las áreas donde se utiliza un computador, por eso debemos tener en claro la función de esta poderosa aplicación. El aprendizaje que me llevo de esta unidad es la realización de relaciones de Entidad-Relación en el programa de Access, al igual que a identificar los pasos de la normalizacion de base de datos.

    ResponderEliminar
  8. Buen día!!
    En este unidad aprendí que los modelos de base de datos mas que nada nos sirve para guardar información y eso nos ayuda demasiado y ay diferentes modelos Bases de datos red, jerárquicas, transaccionales y relacionales también aprendimos sobre la normalizacion en access.

    ResponderEliminar
  9. Buenos dias a todos!

    En esta primera unidad aprendi a identificar los diferentes modelos de base de datos, asi como los pasos a seguir para la normalizacion al crear páginas web

    ResponderEliminar
  10. Hola buenas noches esta unidad fue la que investigue con mi compañera diana espero y sea de su agrado.
    En esta unidad aprendí que existen diferentes modelos de bases de datos que nos ayudan a guardar información importante para nuestro uso en cualquier momento que nosotros lo necesitemos.

    ResponderEliminar
  11. Hola jóvenes buen día, agradezco que hayan colaborado y mejorado esta entrada U1; muy bien

    ResponderEliminar
  12. Es una experiencia para mi adquirí los conocimientos necesarios acerca de los difieres tipos de modelo base de datos en conocer su función el manejo y la practicas de las actividades llevada a cabo.

    ResponderEliminar