Taller de Bases de Datos MTI Juan Antonio Nungaray Ornelas Taller de Bases de Datos UNIDAD 2. Estructura e Integridad de Bases de Datos
2.1 Creación de una base de datos Tanto para crear una base de datos así como crear su esquema se puede utilizar indistintamente ya sea la interface de línea de comandos o las la interface gráfica (GUI Tools). Es importante conocer las dos formas por lo que a continuación se muestran estas opciones. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (línea de comandos) create database escuela use escuela escuela es el nombre, que tendrá la Base de Datos que vamos a crear, los DBMS’s (o servidores de Bases de Datos) generalmente pueden administrar mas de una Base de Datos (aunque create database no es un estándar). Hace que la Base de Datos escuela sea el esquema por omisión (es decir, todas las instrucciones que escribamos a partir de aquí, se referirán a la Base de Datos escuela MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (línea de comandos) Creación de tablas CREATE TABLE inscrip ( num_control_alu_insc CHAR(8), periodo_insc CHAR(5), clave_carr_insc CHAR(4), clave_mat_insc CHAR(7), clave_gpo_insc CHAR(3), calif_u1_insc SMALLINT, calif_u2_insc SMALLINT, calif_u3_insc SMALLINT, calif_u4_insc SMALLINT, calif_u5_insc SMALLINT, res_fin_insc SMALLINT, ); MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en SQL Server MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script Dentro del administrador del servidor de base de datos damos clic sobre el botón de nueva consulta para poder crear la base de datos mediante la línea de comandos MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script SQL Server interpretan GO como una señal de que deben enviar el lote actual de instrucciones Transact-SQL a una instancia de SQL Server MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 1. Una vez dentro del servidor de base de datos del lado izquierdo seleccionamos Base de datos y le damos clic derecho y seleccionamos nueva base de datos. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 2. Después se deberá de ingresar el nombre de nuestra base de datos, se llamara Escuela y dar clic en Aceptar. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 3. Para crear una tabla dentro de nuestra base de datos, tenemos que dar clic en el símbolo (+) que se encuentra al lado izquierdo del símbolo de cilindro donde esta el nombre de la base de datos, luego damos clic derecho en el apartado llamado Tablas y seleccionamos Nueva tabla. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 4. Ahora ya podemos introducir los nombres de los campos, el tipo de dato que utilizaran y también si es que van a manejar o no valores nulos. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 5. Ahora que ya introducimos los campos y sus valores, tenemos que guardar la tabla, en este caso se llamara Alumnos. Para esto solo tenemos que cerrar la pestaña y nos preguntara si deseamos guardar la tabla, damos clic en Si y le asignamos el nombre. MTI JUAN ANTONIO NUNGARAY ORNELAS
Creación de tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Creación de tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Creación de Tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Creación de tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en MySQL MTI JUAN ANTONIO NUNGARAY ORNELAS
Iniciar Workbench MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script 1. Al entrar a Workbench se muestra una ventana donde podremos introducir las sentencias SQL para crear la base de datos y la tabla MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script Al terminar actualizamos nuestros esquemas para que nos aparezca la tabla y base de datos creados MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 2. Una vez dentro de Workbench damos clic sobre el icono de crear un nuevo esquema. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 3. Después se deberá de ingresar el nombre de nuestra base de datos, se llamara Escuela y dar clic en Aplicar. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 4. Para crear una tabla dentro de nuestra base de datos, tenemos que dar clic derecho y seleccionar la opción “Create Table”. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 5. Ahora ya podemos introducir los nombres de los campos y su definición. para poder visualizar todos los datos en forma de lista, deberemos de dar clic sobre el icono de cambio de vista para facilitar la captura. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) Una vez agregados todos los campos deberemos de dar clic sobre el botón Apply para que se genere el script para crear la tabla MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) MTI JUAN ANTONIO NUNGARAY ORNELAS
Creación de tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Creación de tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Creación de Tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Creación de tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en Microsoft Access MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script Una vez iniciado Microsoft Access damos clic sobre Base de datos en blanco para crear una nueva base de datos MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script Para crear tablas desde el modo de comandos primeramente debemos de crear la consulta desde la pestaña Crear y seleccionar la opción de Diseño de consulta MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script Una vez creada la consulta se deberá cambiar la vista en modo vista SQL MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script Introducimos la consulta y por último presionamos el ícono de Ejecutar MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script Introducimos la consulta y por último presionamos el ícono de Ejecutar MTI JUAN ANTONIO NUNGARAY ORNELAS
Ejecutar consultas o script MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 1. Una vez dentro de Microsoft Access deberemos de seleccionar la opción Tabla del menú Crear. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 2. Una vez creada se deberá de poner la tabla en vista de diseño para editar los campos. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 3. Se creará cada uno de los campos de la tabla con sus características. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.1 Creación de una base de datos (interfaz gráfica) 4. Ahora que ya introducimos los campos y sus valores, tenemos que guardar la tabla, en este caso se llamara Alumnos. Para esto solo tenemos que cerrar la pestaña y nos preguntara si deseamos guardar la tabla, damos clic en Si y le asignamos el nombre. MTI JUAN ANTONIO NUNGARAY ORNELAS
2.2 Definición del esquema de integridad La integridad Proporciona un medio de asegurar que los cambios que se hacen en la base de datos por usuarios autorizados no resultan en una pérdida de consistencia de los datos. MTI JUAN ANTONIO NUNGARAY ORNELAS
Tipos de integridad de datos Integridad de dominio (columnas) Integridad de entidad (filas) Integridad referencial (entre tablas) MTI JUAN ANTONIO NUNGARAY ORNELAS
2.2 Definición del esquema de integridad El SMBD nos proporciona herramientas para poder exigir la Integridad Referencial en la definición de la estructura de los datos, tales como: PRIMARY KEY FOREIGN KEY UNIQUE CHECK DEFAULT MTI JUAN ANTONIO NUNGARAY ORNELAS
Determinación del tipo de restricción que se va a utilizar Tipo de integridad Tipo de restricción Dominio DEFAULT CHECK REFERENTIAL Entidad PRIMARY KEY UNIQUE Referencial FOREIGN KEY CHECK MTI JUAN ANTONIO NUNGARAY ORNELAS
2.2 Definición del esquema de integridad Integridad de datos declarativa Los criterios se definen en la definición del objeto o datos Asegurada automáticamente por el SMBD Implementada mediante restricciones, valores predeterminados y reglas MTI JUAN ANTONIO NUNGARAY ORNELAS
2.2 Definición del esquema de integridad Integridad de datos procedimental Los criterios se definen en una secuencia de comandos Asegurada mediante secuencia de comandos Implementada mediante desencadenadores y procedimientos almacenados MTI JUAN ANTONIO NUNGARAY ORNELAS
2.2 Definición del esquema de integridad Integridad de datos declarativa Los criterios se definen en la definición del objeto o datos Implementada mediante restricciones, valores predeterminados y reglas Integridad de datos procedimental Los criterios se definen en una secuencia de comandos Implementada mediante desencadenadores y procedimientos almacenados MTI JUAN ANTONIO NUNGARAY ORNELAS
2.2 Definición del esquema de integridad El SMBD nos proporciona herramientas para poder exigir la integridad en la definición de la estructura de los datos, tales como: PRIMARY KEY FOREIGN KEY UNIQUE CHECK DEFAULT MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Una tabla suele tener una columna o una combinación de columnas cuyos valores identifican de forma única cada fila de la tabla. Estas columnas se denominan claves principales de la tabla y exigen la integridad de entidad de la tabla. Puede crear una clave principal mediante la definición de una restricción PRIMARY KEY cuando cree o modifique una tabla. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Una tabla sólo puede tener una restricción PRIMARY KEY y ninguna columna a la que se aplique una restricción PRIMARY KEY puede aceptar valores NULL. Debido a que las restricciones PRIMARY KEY garantizan datos únicos, con frecuencia se definen en una columna de identidad. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Cuando especifica una restricción PRIMARY KEY en una tabla, el motor de la base de datos exige la unicidad de los datos mediante la creación de un índice único para las columnas de clave principal. Este índice también permite un acceso rápido a los datos cuando se utiliza la clave principal en las consultas. Aparte de los índices que podamos crear de acuerdo al análisis que realicemos de nuestras consultas posteriores. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Si se define una restricción PRIMARY KEY para más de una columna, puede haber valores duplicados dentro de la misma columna, pero cada combinación de valores de todas las columnas de la definición de la restricción PRIMARY KEY debe ser única. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Ejemplo: alter table carreras add constraint pk_carreras primary key(clave_carr); MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Si se define una restricción PRIMARY KEY para más de una columna, puede haber valores duplicados dentro de la misma columna, pero cada combinación de valores de todas las columnas de la definición de la restricción PRIMARY KEY debe ser única. MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en SQL Server MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY alter table carreras add constraint pk_carreras primary key(clave_carr); alter table alumnos add constraint pk_alumnos primary key(num_control_alu); MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY alter table materias add constraint pk_materias primary key(clave_mat, clave_carr_mat ); primary key(exp_per ); MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Para asignar una llave primaria a una tabla se deberá de visualizar en vista diseño MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Después se deberá de seleccionar el o los campos que formaran la llave primeria y dar clic sobre el icono de llave primaria MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en MySQL MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Para asignar una llave primaria a una tabla se deberá de visualizar en vista diseño, para ello se deberá de dar clic derecho y seleccionar Alter Table MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción PRIMARY KEY Después se deberá de seleccionar el o los campos que formaran la llave primeria y dar clic sobre la propiedad PK MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Una clave foránea(FK) es una columna o combinación de columnas que se utiliza para establecer y exigir un vínculo entre los datos de dos tablas. Puede crear una clave externa mediante la definición de una restricción FOREIGN KEY cuando cree o modifique una tabla o al asignar la relación en el diagrama. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY En una referencia de clave externa, se crea un vínculo entre dos tablas cuando las columnas de una de ellas hacen referencia a las columnas de la otra que contienen el valor de clave principal. Esta columna se convierte en una clave externa para la segunda tabla MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY No es necesario que una restricción FOREIGN KEY esté vinculada únicamente a una restricción PRIMARY KEY de otra tabla; también puede definirse para que haga referencia a las columnas de una restricción UNIQUE de otra tabla. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Una restricción FOREIGN KEY puede contener valores NULL, pero si alguna columna de una restricción FOREIGN KEY compuesta contiene valores NULL, se omitirá la comprobación de los valores que componen la restricción FOREIGN KEY. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Una restricción FOREIGN KEY puede hacer referencia a columnas de tablas de la misma base de datos o a columnas de una misma tabla. Se denominan tablas con referencia a sí mismas. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Aunque el fin principal de una restricción FOREIGN KEY es controlar los datos que pueden almacenarse en la tabla de la clave externa; también controla los cambios realizados en los datos de la tabla de la clave principal. Si forzamos la actualización en ambas tablas evitamos que al eliminar la clave principal de una aparezca como foránea si ya no existe. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Se recomienda crear un índice en la clave foránea por: Los cambios en las restricciones PRIMARY KEY se comprueban con restricciones FOREIGN KEY en las tablas relacionadas. Estas columnas se usan en criterios de combinación en JOINS entre tablas. MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en SQL Server MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY ALTER TABLE alumnos ADD CONSTRAINT fk_alu_carr foreign key (clave_carr_alu) REFERENCES carreras(clave_carr); ALTER TABLE grupos ADD CONSTRAINT fk_gpo_mat foreign key (clave_carr_gpo, clave_mat_gpo) REFERENCES materias (clave_carr_mat,clave_mat); MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY ALTER TABLE grupos ADD CONSTRAINT fk_gpo_pers foreign key (clave_exp_gpo) REFERENCES personal (exp_per); ALTER TABLE inscrip ADD CONSTRAINT fk_insc_gpo foreign key (periodo_insc, clave_carr_insc,clave_mat_insc,clave_gpo_insc) REFERENCES grupos (periodo,clave_carr_gpo, clave_mat_gpo, clave_gpo); MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY ALTER TABLE inscrip ADD CONSTRAINT fk_insc_alu foreign key (num_control_alu_insc) REFERENCES alumnos (num_control_alu); MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Al entrar al diagrama de base de datos, se deberá de arrastrar el campo llave primario de una tabla al campo llave foránea de la tabla correspondiente. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Se define la relación entre llaves primarias y llaves foráneas entre tablas MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Por último se deberá de definir si se desea la actualización y eliminación en cascada de llaves foráneas MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en MySQL MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Para asignar llaves foráneas lo primero deberemos de visualizar la tabla en forma de diseño, para eso deberemos de dar clic derecho sobre la tabla y seleccionar la opción Alter Table MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Iremos al apartado Foreign Key y relacionamos la llave primaria con las llaves foráneas. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción FOREIGN KEY Por último se deberá de definir si se desea la actualización y eliminación en cascada de llaves foráneas MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción UNIQUE En una tabla se pueden definir varias restricciones UNIQUE, pero sólo una restricción PRIMARY KEY. Para modificar una restricción UNIQUE, deberá eliminar la restricción UNIQUE existente y, a continuación, volver a crearla con la nueva definición. MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en SQL Server MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción UNIQUE alter table NOMBRETABLA add constraint NOMBRERESTRICCION unique (CAMPO); Ejemplo: alter table alumnos add constraint UQ_alumnos_num_control_alu unique (num_control_alu); MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción UNIQUE En SQL Server esta restricción se aplica de forma automática a los campos llave. Para los campos numéricos lo podremos definir mediante las propiedades del campo. MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en MySQL MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción UNIQUE Deberemos de visualizar la tabla en forma de diseño y marcar los campos con la restricción UNIQUE. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK Las restricciones CHECK exigen la integridad del dominio mediante la limitación de los valores que puede aceptar una columna. Este constraint actúa cuando el usuario emplea una instrucción INSERT o UPDATE. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK Son similares a las restricciones FOREIGN KEY porque controlan los valores que se insertan en una columna. La diferencia está en que las restricciones FOREIGN KEY obtienen la lista de valores válidos de otra tabla, mientras que las restricciones CHECK determinan los valores válidos a partir de una expresión lógica que no se basa en datos de otra columna. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK ALTER TABLE <Nombre de la tabla> ADD CONSTRAINT <Nombre del Constraint> CHECK <Regla a validar> MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK Implementar un check constraint que verifique que las tumbas tengan un cupo máximo en el caso de Panteones ALTER TABLE TipoTumbas ADD CONSTRAINT CK_TT_V1 CHECK (cupos < 20) GO MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK Implementar un check constraint que verifique que las tumbas tengan un cupo máximo en el caso de Panteones ALTER TABLE TipoTumbas ADD CONSTRAINT CK_TT_V1 CHECK (cupos < 20) MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en SQL Server MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK alter table alumnos add constraint CK_alumnos_semestre_rango check (semestre>0 and semestre<=10); MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK En el Explorador de objetos, expanda la tabla a la que desea agregar una restricción CHECK, haga clic con el botón secundario en Restricciones y haga clic en Nueva restricción. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK En el cuadro de diálogo Comprobar restricciones, haga clic en el campo Expresión y, a continuación, haga clic en los puntos suspensivos (…). MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción CHECK En el cuadro de diálogo Expresión de restricción CHECK, escriba expresiones SQL para la restricción CHECK. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción Default Estos constraints trabajan al momento de utilizar la función INSERT y asignan un valor automáticamente a la columna que no se le asignó. Cada columna de un registro debe contener un valor, aunque sea un valor NULL. MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción Default ALTER TABLE <Nombre de la tabla> ADD CONSTRAINT <Nombre del constraint> DEFAULT <Valor En forma predeterminada> FOR <columna> MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en SQL Server MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción Default alter table alumnos add constraint df_alumnos_estado default ‘Aguascalientes' for edo_dom_alu; MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción Default Para aplicar la restricción Default utilizando la interfaz gráfica debemos posicionarnos en el campo correspondiente y asignar un valor por default utilizando las propiedades de columna MTI JUAN ANTONIO NUNGARAY ORNELAS
Implementación en MySQL MTI JUAN ANTONIO NUNGARAY ORNELAS
Restricción Default Para aplicar la restricción Default utilizando la interfaz gráfica debemos posicionarnos en el campo correspondiente y asignar un valor por default utilizando las propiedades de columna. MTI JUAN ANTONIO NUNGARAY ORNELAS