UNIDAD 2 Estructura e integridad de bases de datos.
2.1 Creación de bases de datos.
2.2 Definición del esquema de integridad.
2.1 Creación de bases de datos
2.1 Creación de bases de datos
Existen dos lenguajes para el manejo de base 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.
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.
Hay que crear la base de datos, lo que a menudo significa definir un espacio de nombres separado para cada conjunto de tablas.
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.
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;
2.2 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);
Definicion 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.
2.2 Definición del esquema de integridad.
Integridad: Consiste en conservar la seguridad en un sistema que se permite a múltiples usuarios el acceso al sistema y compartir la base de datos. Tiene como función proteger la base de datos contra operaciones que introduzcan inconsistencias en los datos. Se habla de integridad en el sentido de corrección, validez o precisión de los datos. Un control de integridad o restricciones es aquel que nos permite definir con precisión el rango de valores validos para un elemento y/o las operaciones que serán consideraciones validas en la relación de tale elementos.
El objetivo primordial de un control de integridad es la reducción de la inconsistencia en la BD.
Las restricciones de integridad normalmente se aplican en tres niveles:
Reglas de Integridad:
Integridad de referencial. Se aplica a las claves ajenas: si en una relación hay alguna clave ajena, sus valores deben coincidir con valores de la clave primaria a la que hace referencia, o bien, deben ser completamente nulo. Se enmarca en términos de estados de la base de datos indica lo que es un estado ilegal pero no dice como puede evitarse. Existen 2 opciones rechazar la operación o bien aceptar la operación y realizar operaciones adicionales compensatorias que conduzcan a un estado legal.
Por lo tanto, para cada clave ajena de la base de datos habrá que contestar a tres preguntas:
Reglas de los nulos: ¿tiene sentido que la clave ajena acepte nulos?
Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la clave ajena?
Reglas de modificación: ¿Qué ocurre si se intenta modificar el valor de la clave primaria de la tupla referenciada por la clave ajena?
Reglas de Integridad de Dominio. Un dominio de valores posibles puede estar asociado con cada atributo. Los límites de dominio son la forma mas elemental de restricciones de integridad. Son fáciles de probar por el sistema siempre que se introduce un nuevo dato en la base de datos.
Tipos de dominios: Es posible que varios atributos tengan el mismo dominio. Podemos ver que una definición adecuada de restricciones de dominio no solo nos permite probar consultas para asegurar que la comparación que se hace tiene sentido. El principio que hay detrás de los dominios de atributo es similar al que hay detrás de la asignación de tipos a variables en los lenguajes de programación. Los lenguajes de programación fuertemente tipiados permiten que el compilador el programa con mayor detalle.
Integridad de relaciones. Esta regla se aplica a las claves primarias de las relaciones base: ningún atributo que forme parte de una llave primaria puede aceptar valores nulos. Por definición, una clave primaria es irreducible que se utiliza para identificar de modo único las tuplas. Irreducible significa que ningún subconjunto de la clave primaria sirve para identificar las tuplas de modo único. Si se permite que parte de la clave primaria sea nula, se está diciendo que no todos sus atributos son necesarios para distinguir las tuplas, con lo que se contradice la irreducibilidad. Esta regla solo se aplica a las relaciones base y a las claves primarias, no a las claves alternativas.
Nulos: Ningún atributo que forme parte de una llave primaria puede aceptar valores nulos. Un valor nulo es un valor que esta fuera de la definición de cualquier dominio el cual permite dejar el valor del atributo "latente"; en otras palabras, un valor nulo no representa el valor cero, ni una cadena vacía, éstos son valores que tienen significado; implica ausencia de información por que se desconoce el valor del atributo o simplemente no tiene sentido.
Reglas de negocio: Los usuarios o los administradores de la base de datos pueden imponer ciertas restricciones específicas sobre los datos, a esto se le conoce como reglas de negocio.
El objetivo primordial de un control de integridad es la reducción de la inconsistencia en la BD.
Las restricciones de integridad normalmente se aplican en tres niveles:
- Un Atributo Simple: Se define un dominio del atributo que es totalmente independiente del resto del entorno de la Base de Datos. Es un atributo que tiene un solo componente, que no se puede dividir en partes mas pequeñas que tengan un significado propio(valor único). Se identifica por la letra inicial en mayúscula.
- Un Atributo Dependiente de Otro: Se definen subconjuntos de dominios posibles para un atributo X según el valor que previamente a sido asignado al atributo W. También es conocido como atributos de grupo y se representa por medio de corchetes.
- Relaciones entre Tuplas de una o varias Tablas: Se especifican valores posibles para registros completos según los valores acumulados registros previos o por valores existentes en registros de otras tablas. También es conocido como objeto simétrico y se representa con un rectángulo sombreado y todo con mayúscula.
Reglas de Integridad:
Integridad de referencial. Se aplica a las claves ajenas: si en una relación hay alguna clave ajena, sus valores deben coincidir con valores de la clave primaria a la que hace referencia, o bien, deben ser completamente nulo. Se enmarca en términos de estados de la base de datos indica lo que es un estado ilegal pero no dice como puede evitarse. Existen 2 opciones rechazar la operación o bien aceptar la operación y realizar operaciones adicionales compensatorias que conduzcan a un estado legal.
Por lo tanto, para cada clave ajena de la base de datos habrá que contestar a tres preguntas:
Reglas de los nulos: ¿tiene sentido que la clave ajena acepte nulos?
Regla de borrado: ¿Qué ocurre si se intenta borrar la tupla referenciada por la clave ajena?
- Restringir: no se permite borrar la tupla referenciada.
- Propagar: se borra la tupla referenciada y se propaga el borrado a las tuplas la referencia mediante la clave ajena.
- Anular: se borra la tupla referenciada y las tuplas que la reverenciaba ponen a nulo la clave ajena (solo si acepta nulos).
Reglas de modificación: ¿Qué ocurre si se intenta modificar el valor de la clave primaria de la tupla referenciada por la clave ajena?
- Restringir: no se permite modificar el valor de la clave primaria de la tupla referenciada.
- Propagar: se modifica el valor de la clave primaria de la tupla referenciaba y se propaga la modificación a las tuplas que la referencia mediante clave ajena.
- Anular: se modifica la tupla referenciada y las tuplas que la referenciaban ponen a nulo la clave ajena (solo si acepta nulos).
Reglas de Integridad de Dominio. Un dominio de valores posibles puede estar asociado con cada atributo. Los límites de dominio son la forma mas elemental de restricciones de integridad. Son fáciles de probar por el sistema siempre que se introduce un nuevo dato en la base de datos.
Tipos de dominios: Es posible que varios atributos tengan el mismo dominio. Podemos ver que una definición adecuada de restricciones de dominio no solo nos permite probar consultas para asegurar que la comparación que se hace tiene sentido. El principio que hay detrás de los dominios de atributo es similar al que hay detrás de la asignación de tipos a variables en los lenguajes de programación. Los lenguajes de programación fuertemente tipiados permiten que el compilador el programa con mayor detalle.
Integridad de relaciones. Esta regla se aplica a las claves primarias de las relaciones base: ningún atributo que forme parte de una llave primaria puede aceptar valores nulos. Por definición, una clave primaria es irreducible que se utiliza para identificar de modo único las tuplas. Irreducible significa que ningún subconjunto de la clave primaria sirve para identificar las tuplas de modo único. Si se permite que parte de la clave primaria sea nula, se está diciendo que no todos sus atributos son necesarios para distinguir las tuplas, con lo que se contradice la irreducibilidad. Esta regla solo se aplica a las relaciones base y a las claves primarias, no a las claves alternativas.
Nulos: Ningún atributo que forme parte de una llave primaria puede aceptar valores nulos. Un valor nulo es un valor que esta fuera de la definición de cualquier dominio el cual permite dejar el valor del atributo "latente"; en otras palabras, un valor nulo no representa el valor cero, ni una cadena vacía, éstos son valores que tienen significado; implica ausencia de información por que se desconoce el valor del atributo o simplemente no tiene sentido.
Reglas de negocio: Los usuarios o los administradores de la base de datos pueden imponer ciertas restricciones específicas sobre los datos, a esto se le conoce como reglas de negocio.
No hay comentarios.:
Publicar un comentario