Camara de Vigilancia


martes, 11 de octubre de 2011

Integridad Referencial Declarativa

Equipo 4.

Integridad.



Garantizar que los datos sean los que se supone que son.

Se refiere a las medidas de salvaguardar, que se incluyen en un sistema de información para evitar la pérdida accidental de los datos.

Asegurar que la información no es alterada sin autorización.

En informática, la integridad de datos puede referirse a:

ØIntegridad de datos en general:
 Hace referencia a que todas las características de los datos (reglas, definiciones, fechas, etc) deben ser correctos para que los datos estén completos.


ØIntegridad de datos en bases de datos: 
Integridad de datos se refiere al estado de corrección y completitud de los datos ingresados en una base de datos.


Los SGBD relacional deben encargarse de mantener la integridad de los datos almacenados en una base de datos con respecto a las reglas predefinidas o restricciones. La integridad también puede verificarse inmediatamente antes del momento de introducir los datos a la base de datos (por ejemplo, en un formulario empleando validación de datos).

Tipos de Restricciones.

¢Estáticas: limitan los estados permitidos de la Base de Datos.
-las más importantes son las que afectan a las claves primarias.
“Ninguna de las partes que componen una clave primaria puede ser NULL
-Las modificaciones de claves primarias deben estar muy bien controladas.
¢Dinámicasrestringen las posibles transiciones de estados de la base datos.
















2.- Lenguaje de Definición de Datos (DDL).

Equipo 3.

2.1 creación de base de datos.
2.2. creación de tablas.

žUna base de datos en un sistema relacional está compuesta por un conjunto de tablas, que 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.

2.1 creación de  base de datos

A nivel teórico, existen dos lenguajes para el manejo de bases de datos:

DDL (Data Definition Language) Lenguaje de definición de datos. Es el lenguaje que se usa para crear bases de datos y tablas, y para modificar sus estructuras, así como los permisos y privilegios.
Este lenguaje trabaja sobre unas tablas especiales llamadas diccionario de datos.
DML (Data Manipilation Language) lenguaje de manipulación de datos. Es el que se usa para modificar y obtener datos desde las bases de datos.


Prácticamente, la creación de la base de datos consiste en la creación de las tablas
que la componen. En realidad, antes de poder proceder a la creación de las tablas,
normalmente hay que crear la base de datos, lo que a menudo significa definir un
espacio de nombres separado para cada conjunto de tablas.

Crear una base de datos
žCada conjunto de relaciones que componen un modelo completo forma una base de datos. Desde el punto de vista de SQL, una base de datos es sólo un conjunto de relaciones (o tablas), y para organizarlas o distinguirlas se accede a ellas mediante su nombre. A nivel de sistema operativo, cada base de datos se guarda en un directorio diferente.

žDebido a esto, crear una base de datos es una tarea muy simple. Claro que, en el momento de crearla, la base de datos estará vacía, es decir, no contendrá ninguna tabla.


žPara empezar, crearemos una base de datos para nosotros solos, y la llamaremos "prueba". Para crear una base de datos se usa una sentencia CREATE DATABASE:
žmysql> CREATE DATABASE prueba;
 Query OK, 1 row affected (0.03 sec)
mysql>
Podemos averiguar cuántas bases de datos existen en nuestro sistema usando la sentencia SHOW DATABASES:
žmysql> SHOW DATABASES;





Creación de tablas
El mandato para la creación de tablas o esquemas relacionales es CREATE TABLE. Básicamente se debe definir los atributos que componen la tabla, la clave primaria, las posibles claves ajenas y las restricciones a imponer sobre los valores de los atributos. Cada definición se separa de la siguiente con una coma. La sintaxis general es la siguiente:


žCREATE TABLE nombre_tabla(
ždefinición de atributo 1,
ž.....................
ždefinición de atributo a,
ždefinición de clave primaria,
ždefinición de clave foránea 1,
ž.....................
ždefinición de clave foránea f,
ždefinición de restricción 1,
ždefinición de restricción r);


žEl orden de realización de las definiciones es muy flexible, aunque es evidente que antes de definir un atributo como formando parte de una clave primaria o ajena, o bien definir una restricción sobre sus posibles valores, es necesario haber definido ese atributo con anterioridad.

žUna tabla recién creada no tiene contenido y por lo tanto su cardinalidad es cero. Aunque esté vacía ocupa algún espacio en el espacio de tablas en el que se crea.

žLas definiciones de las tablas que componen una base de datos se almacenan en un lugar especial denominado "diccionario de datos" donde son accedidas por el SGBD cuando es necesario.

Definición de atributos

žEl tipo de datos del atributo especifica sus posibles valores válidos. Los tipos de datos más habituales son NUMBER (número entero), DATE (fecha), CHAR (cadena de caracteres de longitud fija) y VARCHAR2 (cadena de caracteres de longitud máxima fija y longitud real variable).


Si no se especifica ninguna restricción sobre el atributo, entonces puede tomar cualquier valor compatible con su tipo de datos, y el valor nulo (null). Las posibles restricciones son:


PRIMARY KEY : El atributo es clave primaria. Por tanto no acepta valores repetidos ni nulos.
UNIQUE: El atributo no acepta valores repetidos, pero sí nulos.
NOT NULL: El atributo no acepta valores nulos, pero sí únicos.
CHECK:  Restricción arbitraria.


žEs frecuente combinar las restricciones UNIQUE y NOT NULL, por lo cual el atributo no aceptaría valores repetidos ni nulos, siendo considerado una clave alternativa o secundaria del modelo relacional.

žLas restricciones arbitrarias se especifican mediante CHECK seguida de una condición lógica entre paréntesis. En la condición pueden emplearse operadores lógicos relacionales (menor, mayor, etc.), operadores lógicos booleanos (AND, OR, NOT) y otros, como el de pertenencia a una lista de valores. La condición debe ser simple en el sentido de que no debe involucrar a los valores de otros atributos, sino que únicamente debe contemplarse el atributo en cuestión.

žEl SGBD debe comprobar automáticamente que se verifican las restricciones definidas cuando se insertan nuevas filas en la tabla, se borran filas o se modifica el valor de un atributo en una fila. Esta comprobación requiere un tiempo, por lo que el rendimiento de las operaciones anteriores puede verse negativamente afectado si se definiera un gran número de restricciones. En la sección sobre restricciones del documento SQL IV (Aspectos adicionales) se trata con mayor detenimiento la definición de restricciones.



Definición de la clave primaria

Si la clave primaria se compone de un solo atributo (situación muy habitual) entonces puede añadirse PRIMARY KEY al final de la definición del atributo primo. Para definir una clave primaria en general se acompaña además de una lista de los atributos primos, separados por comas.


Definición de claves ajenas.
Una clave ajena, externa o foránea se define similarmente a la clave primaria, indicando FOREIGN KEY seguida de la lista de atributos, separados por comas, que componen la clave ajena, seguida a continuación de la palabra REFERENCES tras la cual se indica el nombre de la table referenciada (la tabla de la cual los atributos anteriores son clave primaria).
Lógicamente para que la definición sea correcta los atributos que la componen deben estar ya definidos y la tabla referenciada debe existir con anterioridad. Por tanto la existencia de claves ajenas restringe el orden de creación de las tablas que componen la base de datos, pues si una tabla B incluye una clave ajena de la tabla A, ésta debe crearse primero.




Ejemplo:

CREATE TABLE provincia(
codprov NUMBER(2) PRIMARY KEY,
nomprov CHAR(20) UNIQUE NOT NULL
);
 CREATE TABLE alumno(
num NUMBER(4),
nombre CHAR(10) NOT NULL,
apellidos CHAR(20) NOT NULL,
edad NUMBER(2) CHECK (edad>16),
codprov NUMBER(2),
nota NUMBER(4,2) CHECK (nota >=0 AND nota <= 10),
PRIMARY KEY (num),
FOREIGN KEY (codprov) REFERENCES provincia
);




Borrado de tablas

El mandato para el borrado o eliminación de tablas es DROP TABLE.
DROP TABLE nombre_tabla;
Esta orden elimina la definición de la tabla en cuestión, que no existirá en lo sucesivo. La situación es muy diferente a la de una tabla en la cual se borran todas sus filas, utilizando para ello un mandado del lenguaje de manipulación de datos. En este caso la tabla se queda vacía pero sigue existiendo.



Modificación de la estructura de las tablas.
El mandato para modificar la definición de una tabla o esquema relacional es ALTER TABLE. Lo más habitual es añadir atributos o columnas nuevos (ADD).
ALTER TABLE alumno ADD (tipo NUMBER(1) CHECK (tipo IN (0,1,2)));

viernes, 23 de septiembre de 2011

1.2.- CARACTERISTICAS DEL DBMS

Equipo 2



Una de las principales características de las bases de datos, es que los datos pueden ser compartidos entre muchos usuarios simultáneamente, proveyendo, de esta manera, máxima eficiencia.


¿QUÉ ES UN SISTEMA MANEJADOR DE BASE DE DATOS(DBMS)?
Un sistema de gestión de bases de datos (SGBD; en inglés, Database Management System: DBMS) es un conjunto de programas que permite a los usuarios crear y mantener una base de datos.
Si bien, no es imprescindible contar con un SGBD para implementar una base de datos, este software de uso general facilita el proceso de definir, construir y manipular bases de datos para diversas aplicaciones.

Entorno simplificado de un SGBD.





En el esquema se observa que los usuarios interactúan con una aplicación (por ej. un  sistema integrado de gestión  o un paquete contable) que utiliza un SGBD para procesar las consultas, el cual accede a los metadatos y a la base de datos correspondiente.  



CARACTERISTICAS DE los dbms.


•CONTROL DE REDUNDACIA


•RESTRICCION DE LOS ACCESOS NO AUTORIZADOS


•CUMPLIMIENTO DE LAS RESTRICCIONES DE INTEGRIDAD

•RESPALDO Y RECUPERACION



Control de redundancia.

En la creación tradicional de programas de archivos, cada grupo de usuarios mantiene sus propios archivos para manejar sus aplicaciones de procesamiento de datos. Supongamos la situación para una base de datos de un supermercado. Los grupos involucrados serían, entre otros, el de finanzas y el de reposición. Con el enfoque tradicional, cada sector mantendría archivos independientes para los proveedores, cada uno con un objetivo distinto. Buena parte de los datos se almacenarían dos veces.
 


Generalmente, esta redundancia de datos provoca varios problemas: 
•Es necesario realizar la misma actualización -introducir un nuevo proveedor- varias veces: una vez en cada archivo que contenga datos de proveedores. Esto implica duplicar el trabajo 
•Se desperdiciara espacio de almacenamiento al guardar los mismos datos en varios lugares 
•Es posible que los archivos que representan los mismos datos se tornen inconsistentes


RESTRICCIÓN DE LOS ACCESOS NO AUTORIZADOS.


Cuando muchos usuarios comparten una misma base de datos, es probable que no todos tengan la autorización para tener acceso a toda la información que contiene. El SGBD debe contar con un subsistema de seguridad y autorización que permita al DBA crear cuentas y especificar restricciones para ellas.



Cumplimiento de las restricciones de integridad.

La mayor parte de las aplicaciones de base de datos tienen ciertas restricciones de integridad que deben cumplir los datos. El SGBD debe ofrecer recursos para definir tales restricciones y hacer que se cumplan. Por ejemplo, en la tabla de abajo, podemos especificar que el valor del elemento Ciclo dentro de cada registro de la tabla ESTUDIANTE debe ser un entero entre 1 y 5.
ESTUDIANTE  


RESPALDO Y RECUPERACIÓN

Todo SGBD debe contar con recursos para recuperarse de fallos de hardware o de software. Para ello está el subsistema de respaldo y recuperación del SGBD. Por ejemplo, si el sistema falla mientras se está ejecutando un complejo programa de actualización, el subsistema de recuperación se encargará de asegurarse de que la base de datos se restaure al estado en el que estaba antes de que comenzara la ejecución del programa.

Tipos de dbms.


Existen cinco modelos de DBMS, que se distinguen según cómo representan los datos almacenados:


• El modelo jerárquico: los datos se organizan jerárquicamente mediante un árbol invertido. Este modelo utiliza punteros para navegar por los datos almacenados. Fue el primer modelo DBMS.


• El modelo de red: al igual que el modelo jerárquico, este modelo utiliza punteros hacia los datos almacenados. Sin embargo, no necesariamente utiliza una estructura de árbol invertido.


• El modelo relacional (RDBMS, Relational database management system [Sistema de administración de bases de datos relacionales]): los datos se almacenan en tablas de dos dimensiones (filas y columnas). Los datos se manipulan según la teoría relacional de matemáticas.


• El modelo deductivo: los datos se representan como una tabla, pero se manipulan mediante cálculos de predicados.


•El modelo de orientación a objetos (ODBMS, object-oriented database management system [sistema de administración de bases de datos orientadas a objetos]): los datos se almacenan como objetos, que son estructuras denominadas clases que muestran los datos que contienen. Los campos son instancias de estas clases.






Diferentes dbms.

DBMS libres
         •• PostgreSQL
•• MySQL7.7.


DBMS comerciales
         •• Oracle
•• DB2, Informix (IBM)
•• dBase (dBI)
•• Paradox (Borland)
•• SQL-Server (MS)
•• Access (MS)
•• FoxPro (MS)


Mysql

MySQL3
Interioridades y portabilidad
•Escrito en C y en C++
•Probado con un amplio rango de compiladores diferentes
•Funciona en diferentes plataformas. Consulte
•Usa GNU Automake, Autoconf, y Libtool para portabilidad.
•APIs disponibles para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, y Tcl. Consulte
•Uso completo de multi-threaded mediante threads del kernel. Pueden usarse fácilmente multiple CPUs si están disponibles.







•Proporciona sistemas de almacenamiento transaccionales y no transaccionales.
•Usa tablas en disco B-tree (MyISAM) muy rápidas con compresión de índice.
•Relativamente sencillo de añadir otro sistema de almacenamiento. Esto es útil si desea añadir una interfaz SQL para una base de datos propia.
•Un sistema de reserva de memoria muy rápido basado en threads.
•Joins muy rápidos usando un multi-join de un paso optimizado.
•Tablas hash en memoria, que son usadas como tablas temporales.
•Las funciones SQL están implementadas usando una librería altamente optimizada y deben ser tan rápidas como sea posible. Normalmente no hay reserva de memoria tras toda la inicialización para consultas.
•El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind, una herramienta GPL (http://developer.kde.org/~sewardj/).