Db admin fund full
-
Upload
jorge-ivan-pincay-ponce -
Category
Documents
-
view
452 -
download
2
description
Transcript of Db admin fund full
![Page 1: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/1.jpg)
¿Cómo se almacenan los
datos en las tablas?
![Page 2: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/2.jpg)
Perspectiva general de la lección
1.1 Comprender cómo se almacenan los datos en las tablas.En esta lección repasarán:CampoColumnaFilaRegistroTablaVariable
![Page 3: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/3.jpg)
CampoSe refiere a la ubicación en un registro en el cual se almacena un tipo específico de
datos.Por ejemplo, el REGISTRO-EMPLEADO puede contener campos para almacenar elApellido, Nombre, Dirección, Ciudad, Estado, CP, Fecha-Contratación, Salario-
Actual,Puesto, Departamento, etc. Los campos individuales se caracterizan por su
longitudmáxima y el tipo de datos (por ejemplo, alfabético, numérico o financiero) que
puedencontener. La facilidad para crear estas especificaciones se encuentra contenidageneralmente en el lenguaje de definición de datos (DDL- Data Definition
Language). Enun sistema administrador de bases de datos relacionales (RDMS – Relational
DatabaseManagment System) a los campos se les conoce como columnas.
Un campo es un punto en una tablaUn campo=dato=algún valor
![Page 4: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/4.jpg)
ColumnaUn RDMS (sistema administrador de bases de datos relacionales ) se
refiere al nombre deun atributo. A la colección de los valores de una columna que forman la
descripción deuna entidad en particular se le llama tupla o fila. Una columna equivale a
un campo de unregistro en un sistema de archivos no relacionales.Una columna es un grupo de elementos que se encuentran enlistados
hacia arriba y abajo,es decir, de forma vertical.
![Page 5: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/5.jpg)
FilaSe refiere a una serie de elementos organizados de forma horizontal
dentro de un tipo deestructura, por ejemplo, una serie continua de celdas colocadas de
izquierda a derecha enuna hoja de cálculo; una línea horizontal de píxeles en una pantalla de
video o unconjunto de valores alineados horizontalmente en una tabla.Una fila es un grupo de elementos que se encuentran enlistados de un
extremo a otro (deizquierda a derecha, es decir, horizontalmente).
![Page 6: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/6.jpg)
Registro
Se refiere a una estructura de datos que es un conjunto de campos (elementos), cada uno
con su propio nombre y tipo.Un registro es un grupo de campos en una fila.
![Page 7: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/7.jpg)
Tabla
En un RDMS, se refiere a una estructura de datos caracterizada por filas y columnas que contiene datos en las celdas dadas en las intersecciones de las filas y las columnas. La tabla es la estructura subyacente de una relación.
Una tabla es un conjunto de filas y columnas.
![Page 8: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/8.jpg)
Variable
El nombre de una variable es la etiqueta que se le asigna a una columna.Nota: Esta es tal vez una definición ligeramente diferente de la que ha
aprendido en una clase de programación. En programación, una variable se define como una ubicación de almacenamiento con un nombre capaz de contener datos que se pueden modificar durante la ejecución de un programa.
![Page 9: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/9.jpg)
Reporte de calificaciones – Proyecto estudiantil
Nombre-
Docente
ID-Alumn
o
Nombre-
Alumno
Calificación
Número-
Sección
Pérez
López campo campo
Martínez
campo
R e g i s t r o
![Page 10: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/10.jpg)
Tarea
Cree una tabla/base de datos que contenga todos los registros de su reporte de
calificaciones.
![Page 11: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/11.jpg)
Conceptos de bases de datos
relacionales
![Page 12: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/12.jpg)
Perspectiva general de la lección
1.2 Comprender conceptos de bases de datos relacionales.En esta lección aprenderán:Modelo relacionalLos tres fundamentos de una base de datos modernaRelación uno a unoRelación varios a variosRelación padre/hijoClaves
![Page 13: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/13.jpg)
Modelo relacionalModelo de datos en el cual éstos se encuentran organizados en relaciones
(tablas). Este es el modelo implementado en la mayoría de los sistemas administradores de bases de datos modernos.
![Page 14: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/14.jpg)
Los tres fundamentos de una base de datos moderna
Registros – Datos.Atributos/campos – Características.Relaciones/claves – Cómo se enlazan las bases de datos.
![Page 15: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/15.jpg)
Relación uno a unoAsociación entre dos tablas en la cual el valor de la clave principal de cada
registro en la tabla primaria corresponde al valor en el campo o campos coincidentes de uno y sólo un registro en la tabla relacionada.
![Page 16: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/16.jpg)
Relación varios a variosAsociación compleja entre dos conjuntos de parámetros en la cual muchos
de los del primer conjunto se pueden relacionar con muchos otros del segundo. Es común utilizar una relación varios a varios para describir una asociación entre dos tablas en la cual un registro de cualquiera de las tablas se puede relacionar con muchos registros de la otra tabla.
![Page 17: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/17.jpg)
En una relación varios a varios, las relaciones pueden ser complejas.Las tablas en una relación varios a varios tienen varios datos únicos en
común.
Por ejemplo, un alumno puede tomar una o muchas clases, las clases pueden tener uno o muchos alumnos y los profesores pueden impartir una o muchas clases.
En estos ejemplos, el vínculo podría incluir:Alumno a claseClase a profesorProfesor a alumno
![Page 18: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/18.jpg)
Relación padre/hijoConcerniente o referente a una relación entre los nodos de un árbol
(estructura de datos), en la cual el padre se encuentra un paso más cercano a la raíz (es decir, en un nivel superior) que el hijo.
![Page 19: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/19.jpg)
Claves
Una clave principal define una o más columnas que identifican de forma única cada fila de la tabla.
De igual manera que con una clave principal, una restricción única (Unique) define que los valores dentro de una columna deben ser únicos. Sin embargo, a diferencia de la clave primaria, es posible tener más de una restricción única en una tabla.
Las relaciones (o vínculos) entre las tablas se almacenan como restricciones de claves foráneas/externas.
![Page 20: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/20.jpg)
TareaLos alumnos reunirán datos utilizando la información de sus clases del día
con el fin de crear una tabla con una relación varios a varios.
![Page 21: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/21.jpg)
Lenguaje de manipulación de datos (DML – Data
Manipulation Language)
![Page 22: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/22.jpg)
Perspectiva general de la lección
1.3 Comprender el lenguaje de manipulación de datos (DML).En esta lección repasarán:La relación entre SQL, DML y DDLDMLSELECTUPDATEDELETE
![Page 23: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/23.jpg)
La relación entre SQL, DML y DDL
SQL es un lenguaje diseñado para utilizarse sólo con bases de datos.Lenguaje de consulta estructurado (SQL – Structured Query Language). Es
un sublenguaje de base de datos utilizado para realizar consultas, actualizaciones y administrar bases de datos relacionales. Es el estándar para los productos de bases de datos, el acrónimo utilizado es SQL.
DML-DDL: son las dos herramientas de lenguaje principales de SQL.Lenguaje de manipulación de datos (DML). En un sistema de gestión de
bases de datos (DBMS) es un lenguaje utilizado para insertar datos, actualizarlos y realizar consultas en una base de datos. El lenguaje DML es capaz de realizar cálculos matemáticos y estadísticos que facilitan la creación de reportes, el acrónimo utilizado es DML.
El lenguaje DML se utiliza para manipular los datos de una base de datos.
![Page 24: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/24.jpg)
DML-DDL (continuación)Lenguaje de definición de datos (DDL). Lenguaje que define todos los
atributos y propiedades de una base de datos, especialmente la presentación de los registros, la definición de campos, claves, ubicaciones de archivos y estrategias de almacenamiento, el acrónimo utilizado es DDL.
El lenguaje DDL se utiliza para crear la estructura para la base de datos, el esquema de la base de datos o ambos. Se cubrirá este tema a mayor detalle en la lección 1.4.
![Page 25: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/25.jpg)
DMLEl lenguaje DML se utiliza para recuperar y modificar la información de una
base de datos. Estos comandos se utilizan por todos los usuarios de la base de datos durante un día normal.
A continuación se presenta un repaso básico de algunos de los comandos más comunes del lenguaje DML.
![Page 26: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/26.jpg)
SELECT
El comando SELECT es el más utilizado en DML. Permite a los usuarios recuperar información específica de la base de datos.
SELECT *FROM Beca_infoWHERE beca_cantidad >
36000Con este código, hemos seleccionado todos los alumnos
becados con más de $36,000 en la tabla Beca_info.
![Page 27: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/27.jpg)
INSERT
El comando INSERT se utiliza para agregar registros a una tabla existente.
INSERT INTO Beca_info VALUES (‘Juan’, ‘Pérez’,12345,2200)
A través de este código hemos creado a Juan Pérez, se le ha asignado un ID de alumno así como una beca con el valor de $2200.
Hay cuatro valores especificados para este registro los cuales corresponden a los atributos/campos en la tabla en el orden en el cual se definieron: nombre, apellido, id_alumno y beca_cantidad.
![Page 28: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/28.jpg)
UPDATE
El comando UPDATE se puede utilizar para modificar información contenida en una tabla, ya sea datos individuales o grupos de datos.
UPDATE Beca_infoSET beca_cantidad = beca_cantidad + 4000WHERE id_alumno = 12345
El comando UPDATE llama a la tabla Beca_info y le suma $4,000 al valor de la beca del alumno 12345.
![Page 29: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/29.jpg)
DELETE
El comando DELETE se utiliza para eliminar registros de una tabla existente.
DELETE FROM Beca_infoWHERE id_alumno = 12345
Puesto que estamos borrando todos los campos de este registro en particular de la tabla, no necesitamos especificar los nombres de los campos como lo hicimos cuando insertamos el registro. Con este procedimiento se elimina el registro con el id_alumno=12345.
![Page 30: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/30.jpg)
Lenguaje de definición de datos (DDL - Data
Definition Language)
![Page 31: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/31.jpg)
Perspectiva general de la lección
1.4 Comprender el lenguaje de definición de datos (DDL).En esta lección repasarán:
Relación entre DDL y DMLDDLEsquemaCREATEALTERDROP
![Page 32: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/32.jpg)
Relación entre DDL y DMLDML
Lenguaje de manipulación de datos (DML). Un sistema de gestión de bases de datos (DBMS) es un lenguaje utilizado para insertar datos, actualizarlos y realizar consultas en una base de datos. El lenguaje DML es capaz de realizar cálculos matemáticos y estadísticos que facilitan la creación de reportes. El acrónimo utilizado es DML.
El lenguaje DML se utiliza para manipular los datos de una base de datos. Puede encontrar más información referente a este tema en la lección 1.3.
![Page 33: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/33.jpg)
Relación entre DDL y DML (continuación)
DDLLenguaje de definición de datos (DDL). Lenguaje que define todos los
atributos y propiedades de una base de datos, especialmente la presentación de los registros, la definición de campos, claves, ubicaciones de archivo y estrategias de almacenamiento. El acrónimo utilizado es DDL.
El lenguaje DDL se utiliza para crear la estructura para la base de datos, el esquema de la base de datos o ambos. El lenguaje DDL trabaja al nivel de la tabla de la base de datos.
![Page 34: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/34.jpg)
Esquema
El esquema describe la estructura de la base de datos a un DBMS en el lenguaje proporcionado por el DBMS. Un esquema define aspectos de la base de datos como sus atributos (campos) así como los dominios y parámetros de los mismos. Los esquemas se definen generalmente utilizando comandos de un lenguaje DDL que sea compatible con el sistema de base de datos.
![Page 35: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/35.jpg)
CREATE
Hay dos modalidades de la sentencia CREATE.La siguiente sentencia crea una base de datos llamada Alumnos.
CREATE DATABASE AlumnosLa siguiente sentencia crea una tabla con cuatro
atributos/campos en la base de datos actual. Todos los campos deben tener datos cuando se rellenen debido al atributo not null.CREATE TABLE beca_info(nombre char(20) not null,apellido char(20) not null,id_alumno int not null,beca_cantidad int not null)
![Page 36: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/36.jpg)
ALTER
• ALTER cambia la estructura de la tabla, en este ejemplo cambiamos la estructura de la tabla Beca_info. Añadimos un campo numérico como referencia a un programa federal. El campo puede estar vacío o puede contener un valor null.
ALTER TABLE Beca_infoADD Federal int null
También es posible modificar atributos. En el siguiente ejemplo modificamos la estructura de la tabla Beca_info, campo apellido a un tipo de dato VARCHAR (tamaño).
ALTER TABLE Beca_info ALTER apellido VARCHAR(35)
![Page 37: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/37.jpg)
DROP
La sentencia DROP TABLE elimina la tabla y todos sus datos.En el siguiente código se elimina la tabla Beca_info y todo el contenido de
la tabla.
DROP TABLE Beca_info
![Page 38: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/38.jpg)
DML
El lenguaje DML se utiliza para recuperar y modificar la información de una base de datos. Estos comandos se utilizan por todos los usuarios de la base de datos durante un día normal.
A continuación se presenta un repaso básico de algunos de los comandos más comunes del lenguaje DML:• SELECTEl comando SELECT es el más utilizado en DML. Permite a los usuarios recuperar información específica de
la base de datos.
SELECT *FROM Beca_infoWHERE beca_cantidad > 36000
Con este código, hemos seleccionado todos los alumnos becados con más de $36,000 en la tabla Beca_info.
![Page 39: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/39.jpg)
INSERTEl comando INSERT se utiliza para agregar registros a una
tabla existente.INSERT INTO Beca_infoVALUES (‘Juan’, ‘Pérez’,12345,2200)
Hay cuatro valores especificados para este registro los cuales corresponden a los atributos/campos en la tabla en el orden en el cual se definieron: nombre, apellido, id_alumno y beca_cantidad.
A través de este código hemos creado a Juan Pérez, se le ha asignado un ID de alumno así como una beca con el valor de $2200.
![Page 40: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/40.jpg)
UPDATE
El comando UPDATE se puede utilizar para modificar información contenida en una tabla, ya sea datos individuales o grupos de datos.
UPDATE Beca_infoSET beca_cantidad = beca_cantidad + 4000WHERE id_alumno = 12345
El comando UPDATE llama a la tabla Beca_info y le suma $4,000 al valor de la beca del alumno 12345.
![Page 41: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/41.jpg)
DELETE
El comando DELETE se utiliza para eliminar registros de una tabla existente.
DELETE FROM Beca_infoWHERE id_alumno = 12345
Puesto que estamos borrando todos los campos de este registro en particular de la tabla, no necesitamos especificar los nombres de los campos como lo hicimos cuando insertamos el registro. Con este procedimiento se elimina el registro con el id_alumno=12345.
![Page 42: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/42.jpg)
Selección de tipos de datos
![Page 43: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/43.jpg)
Perspectiva general de la lección
2.1 Selección de tipos de datos.Comprender lo que son los tipos de datos, el por qué de su importancia y
cómo es que afectan los requerimientos de almacenamiento. (Esta lección se enfoca en tipos de datos de Microsoft Access, MySQL y Microsoft SQL Server).
En esta lección repasarán:Tipos de datos.La importancia de los tipos de datos.Cómo es que los tipos de datos afectan los requerimientos de
almacenamiento.
![Page 44: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/44.jpg)
Tipo de dato (definición de un conjunto de datos)
• En programación, se refiere al conjunto de datos que especifican el rango posible de valores del mismo, las operaciones que se pueden llevar a cabo con los valores y la forma en la cual se almacenan los valores en memoria.
La definición de un tipo de dato permite a la computadora manipular los datos de manera apropiada. Los tipos de datos son generalmente utilizados en lenguajes de alto nivel y normalmente incluyen tipos como el real, entero, punto flotante, carácter, booleano y apuntador. La manera en la cual un lenguaje de base de datos manipula los tipos de datos es una de sus características primordiales.
“Tipo de dato” se refiere a la forma en la cual se introducirá el dato, por ejemplo, cuando se necesita el valor “9”, ¿se refiere a la palabra “nueve” o al número “9”?
![Page 45: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/45.jpg)
Ejemplos de tipos de datos:Tipo entero es cualquier número sin decimales.
37, un número positivo.-50, un número negativo.
Punto flotante es cualquier número real.314,600,000 ; o 3146E5 es una notación en punto flotante.0.0000451; o 451E-7 es una notación en punto flotante.
![Page 46: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/46.jpg)
Ejemplos de tipos de datos (continuación)
Tipo carácter es cualquier número o letra que no desempeñará funciones matemáticas.Dirección: Calle Hidalgo 5123.Número telefónico: 123-456-7890.
El tipo booleano es únicamente, Verdadero o Falso1 o 0.Verdadero o Falso.
![Page 47: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/47.jpg)
¿Por qué son importantes los tipos de datos?
Las bases de datos se encuentran integradas por tablas, las tablas están formadas por campos que se definen por sus tipos de datos.
El uso de un tipo de dato incorrecto puede causar una degradación en el desempeño de la base de datos y puede llevar a una corrupción de los datos.
El uso de un tipo de dato incorrecto puede causar que la base de datos utilice una cantidad mucho mayor de almacenamiento que el necesario.
![Page 48: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/48.jpg)
¿Cómo es que los tipos de datos afectan los requerimientos de almacenamiento?
Cada tipo de datos cuenta con una cantidad de memoria o almacenamiento específico. El almacenamiento para la mayoría de los tipos de datos es fijo aunque no se utilice el máximo del espacio.
Elija el tipo de dato que corresponda a la función necesaria y al tamaño requerido.A continuación se presentan 3 tipos de datos numéricos enteros diferentes:
Byte: Contiene números de 0 a 255 en 1 byte de almacenamiento.Integer: Contiene números enteros entre – 32,768 y 32,7672 en 2 bytes de almacenamiento.
Long: Contiene números enteros entre – 2,147,483,648 y 2,147,483,647 en 4 bytes de almacenamiento.
Si la base de datos no va a contener números enteros mayores a 255 pero utiliza sólo el tipo de dato long, la base de datos ocupará 4 veces más espacio de almacenamiento del necesario.
![Page 49: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/49.jpg)
Tipos de datos y almacenamiento (continuación)
A continuación se presentan tres ejemplos de tipos de datos carácter:Char (tamaño): Contiene una cadena de longitud fija. El tamaño fijo se
especifica entre paréntesis. Contiene un máximo de 8,000 caracteres.Varchar (tamaño): Contiene una cadena de longitud variable. El tamaño
máximo se especifica entre paréntesis. Contiene un máximo de 8,000 caracteres.
Texto: Contiene una cadena de caracteres de longitud variable. El tamaño máximo es de 2 GB de datos de texto.
![Page 50: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/50.jpg)
Cuestionario1. ¿Cuál tipo de dato se debe utilizar para contener el
nombre de un alumno y por qué?2. ¿Cuál tipo de dato se debe utilizar para contener el ID de
un alumno y por qué?3. ¿Cuál tipo de dato se debe utilizar para contener la
calificación de un alumno y por qué?
![Page 51: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/51.jpg)
¿Qué son las tablas y cómo se crean?
![Page 52: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/52.jpg)
Perspectiva general de la lección
En esta lección aprenderá:¿Qué es la sintaxis ANSI SQL?¿Qué es una tabla?¿Por qué se utilizan las tablas?¿Cómo se crean las tablas?
![Page 53: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/53.jpg)
¿Qué es ANSI?Instituto Nacional Estadounidense de Estándares (ANSI)
Organización formada en 1918 por un pequeño grupo de sociedades de ingeniería y agencias gubernamentales.
Originalmente llamada Comité Estadounidense de Estándares para la Ingeniería (AESC).
![Page 54: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/54.jpg)
¿Qué es la sintaxis ANSI SQL?El lenguaje de consulta estructurado (SQL) se diseñó para
administrar bases de datos relacionales.Consulte el repaso de la lección 1.2 para más información sobre SQL.
La sintaxis de SQL es un conjunto de reglas que gobiernan la estructura y contenido de las sentencias.
Cuando no se siguen las reglas ocurre un error de sintaxis.
![Page 55: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/55.jpg)
¿Qué es una tabla?• Tabla: una estructura de datos que generalmente consiste en una lista de
entradas, cada entrada se identifica con una clave única y contiene un conjunto de valores relacionados.Generalmente se implementa una tabla como un vector de registros, una
lista vinculada o (en un lenguaje más primitivo) varios vectores de diferentes tipos de datos todos utilizando un esquema de indexación en común.
A continuación se muestra un registro en una tabla con los tipos de datos etiquetados:
El ID del alumno es la clave única o índice.El nombre, la dirección y la ciudad componen el resto del registro.
ID alumno Apellido Nombre Dirección Ciudad
Char (9)123456789
Vchar(20)Pérez
Vchar(20)Guillermo
Vchar(40)Calle Hidalgo
3456
Vchar(20)Toluca
![Page 56: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/56.jpg)
¿Qué es una tabla? (Continuación)
En bases de datos relacionales, se refiere a una estructura de datos caracterizada por filas y columnas que contiene datos en las celdas dadas en las intersecciones de las filas y las columnas. La tabla es la estructura subyacente de una relación.
En esta tabla, “Guillermo” es una intersección de una fila y una columna. La celda se llama Nombre, y el tipo de dato es Vchar con un tamaño de 20. Estas celdas son las que conforman la tabla.
ID alumno Apellido Nombre Dirección Ciudad
Char (9)123456789
Vchar(20)Pérez
Vchar(20)Guillermo
Vchar(40)Calle Hidalgo
3456
Vchar(20)Toluca
![Page 57: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/57.jpg)
¿Por qué se utilizan las tablas?Las tablas organizan datos lo que facilita encontrar la información.Las tablas forman la base de las relaciones de datos.Las tablas almacenan datos que se pueden relacionar con otros a
través de una clave única o índice.La siguiente tabla forma una lista de datos en un orden específico.El administrador elige como formar la tabla o su esquema
(Consulte la lección 1.4).La clave o índice de esta tabla es ID alumno.
ID alumno Apellido Nombre Dirección Ciudad
Char (9)123456789
Vchar(20)Pérez
Vchar(20)Guillermo
Vchar(40)Calle Hidalgo
3456
Vchar(20)Toluca
![Page 58: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/58.jpg)
¿Cómo se crean las tablas?Sintaxis
CREATE TABLE nombre_tabla(nombre_columna1 tipo_dato,nombre_columna2 tipo_dato,nombre_columna3 tipo_dato,...)
El siguiente código crea una tabla llamada alumno_info con cinco campos/columnas:
CREATE TABLE alumno_info(id_alumno char(9) not null,nombre char(20) not null,apellido char(20) not null,dirección char(40) not null,ciudad char(20) not null)
![Page 59: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/59.jpg)
EvaluaciónCree una tabla que almacene las calificaciones finales de los
alumnos de la clase.Incluya el nombre de la tabla y un mínimo de cuatro campos.Actividad por puntos extra: Inserte otros dos campos que le agreguen
valor y utilidad a la tabla.Justifique la utilidad de los dos campos adicionales.
![Page 60: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/60.jpg)
Creación de vistas utilizando T-SQL
![Page 61: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/61.jpg)
Perspectiva general de la lección
En esta lección aprenderán:¿Qué es T-SQL?¿Cómo se diferencia T-SQL de otros diseñadores de bases de datos con
interfaz gráfica?¿Qué es una vista?¿Cuáles son las ventajas de las vistas?¿Cómo se crea una vista?
![Page 62: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/62.jpg)
¿Qué es T-SQL?
Transact SQL (T-SQL) es una extensión del lenguaje de programación de base de datos SQL.
T-SQL es un dialecto sofisticado de SQL que cuenta con herramientas adicionales a las definidas en el estándar ANSI SQL-92.
![Page 63: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/63.jpg)
¿Cómo se diferencia T-SQL de otros diseñadores de bases de datos con
interfaz gráfica?
T-SQL utiliza una interfaz de línea de comandos para funcionar con la base de datos en lugar de una interfaz gráfica.
Es un lenguaje de programación por procedimientos.Los diseñadores de bases de datos con interfaz gráfica (como
Microsoft Access) son orientados a objetos y utilizan una interfaz basada en arrastrar y soltar elementos en lugar de una interfaz de línea de comandos. Los diseñadores de bases de datos con interfaz gráfica se estudiarán con mayor detalle en la lección 2.3b.
![Page 64: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/64.jpg)
¿Qué es una vista?En sistemas de gestión de bases de datos relacionales (RDMS) se crea una
tabla lógica a través de las especificaciones de una o más operaciones relacionales en una o más tablas.
Una vista es una tabla virtual que muestra los datos de una o varias tablas seleccionadas.
Por ejemplo:
Un usuario de una base de datos podría ver sólo tablas virtuales. Sólo el administrador de la base de datos puede ver las tablas reales.
ID alumno Apellido Nombre Dirección Ciudad
Char (9)123456789
Vchar(20)Pérez
Vchar(20)Guillermo
Vchar(40)Calle Hidalgo
3456
Vchar(20)Toluca
![Page 65: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/65.jpg)
¿Cuáles son las ventajas de las vistas?
Una vista se puede concebir como una consulta almacenada.Los datos accesibles a través de la vista no se almacenan en
la base de datos como un objeto definido.Lo que se almacena en la base de datos es una sentencia
SELECT. El resultado del conjunto de sentencias SELECT forman la tabla virtual.
La tabla virtual se accede al referenciar el nombre de la vista en sentencias T-SQL como se indica a continuación:
SELECT * from <Nombre de la vista>Where <condición = x>
![Page 66: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/66.jpg)
¿Cómo se pueden utilizar las vistas?Una vista se puede utilizar para:
Hacer que el usuario utilice filas específicas en la tabla. Por ejemplo: puede permitirle a un empleado que sólo vea las filas que registren su trabajo en la tabla de seguimiento laboral.
Hacer que el usuario utilice columnas específicas. Por ejemplo: puede permitirle a los empleados que no estén en nómina que vean las columnas de nombre, oficina, teléfono de oficina y departamentos, pero no las columnas con información salarial o personal.
Restringir información en lugar de proporcionar detalles. Por ejemplo, puede mostrar a suma de una columna o el valor máximo o mínimo de una columna.
![Page 67: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/67.jpg)
¿Cómo se crea una vista?CREATE VIEW <nombre de la vista> ASSELECT <nombre(s)_columna)>FROM <nombre_tabla>
Ejemplo:
CREATE VIEW graduados ASSELECT id_alumno, nombre_alumnoFROM alumnos_inscritos
El código anterior crea una tabla virtual llamada graduados que contiene los datos de identificación del alumno y su nombre. Los datos se obtienen de la tabla alumnos_inscritos.
![Page 68: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/68.jpg)
Creación de una vista con condiciones
Para crear una vista, utilice el siguiente código:
CREATE VIEW <nombre de la vista> ASSELECT <nombre(s)_columna)>FROM <nombre_tabla>WHERE condición
Por ejemplo: este código crea una tabla virtual que contiene sólo mujeres.
CREATE VIEW graduados ASSELECT id_alumno, nombre_alumnoFROM alumnos_inscritosWHERE Sexo = “F”
![Page 69: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/69.jpg)
EvaluaciónEscriba un código para crear cada una de las siguientes vistas utilizando sólo una
condición por vista.
Cree una vista de la tabla llamada alumnos_escuela_medica que seleccione todos los alumnos varones.
Cree una vista de la tabla llamada habilidades_empleados que seleccione todos los empleados que cuenten con entrenamiento de primeros auxilios.
Cree una vista de la tabla llamada alumnos_inscritos que seleccione todos los alumnos con puntuaciones superiores a 62.
![Page 70: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/70.jpg)
Creación de vistas utilizando diseñadores de bases de
datos con interfaz gráfica
![Page 71: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/71.jpg)
Perspectiva general de la lecciónEn esta lección aprenderán:
¿Qué es un diseñador de bases de datos con interfaz gráfica?¿Cómo se diferencia T-SQL de los diseñadores de base de datos con
interfaz gráfica?¿Qué es una Vista?¿Qué es una Consulta?¿Cómo se crea una Vista?¿Cómo se crean las consultas en Vista Diseño?
![Page 72: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/72.jpg)
¿Qué es un diseñador de bases de datos con interfaz gráfica?
Un diseñador de bases de datos con interfaz gráfica es en gran parte un método orientado a objetos de la administración de base de datos que utiliza funciones para arrastrar y soltar elementos, menús desplegables o ambos.
Un diseñador de bases de datos con interfaz gráfica como Jet SQL se utiliza en Microsoft Access para extraer, manipular y estructurar datos que residen en un sistema de gestión de bases de datos relacionales (RDBMS).
Jet SQL esta principalmente basado en el estándar ANSI SQL-92 pero con extensiones adicionales.
![Page 73: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/73.jpg)
¿Cómo se diferencia T-SQL de los diseñadores de base de datos con
interfaz gráfica?
T-SQL es un lenguaje de programación por procedimientos que utiliza una interfaz de línea de comandos para ayudar al usuario a utilizar la base de datos.
Los diseñadores de base de datos con interfaz gráfica como Microsoft Access, son orientados a objetos y se basan en arrastrar y soltar funciones en lugar de utilizar líneas de comandos.
![Page 74: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/74.jpg)
¿Qué es una Vista?Una vista es una tabla virtual que muestra los datos de una o
varias tablas seleccionadas.En sistemas de gestión de bases de datos relacionales (RDMS)
se crea una tabla lógica a través de las especificaciones de una o más operaciones relacionales en una o más tablas.
![Page 75: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/75.jpg)
¿Qué es una Consulta?Consulta (1). Conjunto específico de instrucciones para extraer
datos particulares.Consulta (2). Para extraer datos de una base de datos y
presentarlos para su uso.Una consulta es una pregunta a una tabla o tablas de una base de datos.
La sintaxis de la pregunta depende del lenguaje de la base de datos. En esta lección nos enfocaremos en consultas realizadas en diseñadores de base de datos con interfaz gráfica.
![Page 76: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/76.jpg)
¿Cómo se crea una Vista?Una Vista es una consulta SELECT que selecciona datos de
una tabla, permitiéndole ver los datos en un orden dado.En Access puede utilizar consultas para seleccionar datos de
una tabla o tablas o de otras consultas. Los datos se limitan dependiendo de la definición de la consulta.Las consultas son comandos SQL como se indica a continuación:
SELECTUPDATEDELETE
Las consultas pueden incluir cláusulas como:WHEREFROMORDER BY
![Page 77: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/77.jpg)
¿Cómo se crean las consultas en Vista Diseño?
Haga doble clic en Crear una tabla en Vista Diseño.
![Page 78: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/78.jpg)
Seleccione una o más en el cuadro de diálogo Mostrar tabla.
![Page 79: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/79.jpg)
Una vez seleccionada la tabla, puede seleccionar campos de las listas de campos.
![Page 80: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/80.jpg)
Puede especificar las condiciones en el área de criterio de la cuadrícula de diseño.
![Page 81: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/81.jpg)
Cuando crea una consulta en Vista Diseño, Access crea las sentencias SQL necesarias tras bambalinas.
La vista SQL muestra las sentencias SQL generadas, las cuales también son editables.
![Page 82: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/82.jpg)
Ejecute la consulta y el resultado aparecerá como se muestra a continuación:
![Page 83: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/83.jpg)
Repaso de la lección - Preguntas de discusión
1. ¿Cuál es la relación entre tablas, consultas y vistas?
2. ¿Cómo se diferencia T-SQL de los diseñadores de base de datos con interfaz gráfica?
![Page 84: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/84.jpg)
Creación de procedimientos
almacenados y funciones
![Page 85: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/85.jpg)
Perspectiva general de la lección
En esta lección aprenderán sobre:Funciones
Funciones de agregadoFunciones escalaresFunciones definidas por el usuario
Procedimientos de almacenamiento.Beneficios de los procedimientos de almacenamiento.
![Page 86: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/86.jpg)
¿Qué es una función?Es la acción llevada a cabo por un programa o rutina.Una función es una rutina que regresa un valor.Rutina: cualquier sección de código que se puede invocar
(ejecutar) dentro de un programa. Una rutina generalmente tiene un nombre (identificador) asociado al mismo y se ejecuta al hacerse referencia a ese nombre. Términos relacionados: función, procedimiento y subrutina.
Las funciones y rutinas pueden ser sinónimos y son comandos que regresan un valor.
![Page 87: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/87.jpg)
Funciones de agregadoRegresan un solo valor calculado de los valores de una
columna.Ejemplo:
AVG() – Regresa un valor promedioSELECT AVG (nombre_columna) FROM nombre_tabla
COUNT() – Regresa el número de filasSELECT COUNT (nombre_columna) FROM nombre_tabla
FIRST() – Regresa el primer valorSELECT FIRST (nombre_columna) FROM nombre_tabla
![Page 88: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/88.jpg)
Funciones de agregado (continuación)
LAST() – Regresa el último valorSELECT LAST (nombre_columna) FROM
nombre_tabla
MAX() – Regresa el valor mayorSELECT MAX (nombre_columna) FROM nombre_tabla
MIN() – Regresa el valor menorSELECT MIN (nombre_columna) FROM nombre_tabla
SUM() – Regresa la sumaSELECT SUM (nombre_columna) FROM nombre_tabla
![Page 89: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/89.jpg)
Funciones escalaresLas funciones escalares regresan un solo valor basado en el
valor ingresado.Ejemplos:
UCASE() – Convierte el texto de un campo en mayúsculasSELECT UCASE (nombre_columna) FROM nombre_tabla
LCASE() – Convierte el texto de un campo en minúsculasSELECT LCASE (nombre_columna) FROM nombre_tabla
MID() – Selecciona los caracteres de un campo de textoSELECT MID (nombre_columna) FROM nombre_tabla
![Page 90: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/90.jpg)
Funciones escalares (continuación)LEN() – Regresa la longitud de un campo de texto
SELECT LEN (nombre_columna) FROM nombre_tabla
ROUND() – Redondea un campo numérico al número de decimales especificadosSELECT ROUND (nombre_columna, decimales) FROM nombre_tabla
![Page 91: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/91.jpg)
Funciones definidas por el usuario
Las funciones definidas por el usuario son rutinas en SQL que pueden aceptar parámetros y regresan ya sea un valor o una tabla.
Ventaja – se pueden utilizar en sentencias Select, Where o Case.También se pueden utilizar para crear uniones.
No se pueden utilizar para modificar la información de la tabla base.
![Page 92: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/92.jpg)
Funciones definidas por el usuario (continuación)
Para crear una función:
CREATE FUNCTION [Nombre función] ([variables de entrada])RETURNS varchar(10)ASBEGIN DECLARE [variable de salida] varchar(10)RETURN [variable de salida]END
![Page 93: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/93.jpg)
Funciones definidas por el usuario (continuación)
Para llamar a una función:SELECT [Nombre función] ([variables de entrada])
Para eliminar una función:DROP FUNCTION [Nombre de función]
![Page 94: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/94.jpg)
Procedimientos de almacenamiento
Grupo pre-compilado de sentencias SQL escritas por usuarios y guardadas en una base de datos.
Sentencia(s) SQL generadas por el usuario que se guardan en la base de datos.
Para crear un procedimiento de almacenamiento:
CREATE PROCEDURE [sp_Nombre procedimiento]ASSELECT * FROM [Tabla]
sp= procedimiento de almacenamiento (estándar en la asignación de nombres)
![Page 95: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/95.jpg)
Procedimientos de almacenamiento (continuación)
Para crear un procedimiento de almacenamiento para varios campus
CREATE PROCEDURE sp_clase@campusubicacion varchar(30)ASSELECT NombreClase, SeccionClaseFROM SemestreActualWHERE campus = @campusubicacion
![Page 96: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/96.jpg)
Procedimientos de almacenamiento (continuación)
Para llamar a un procedimiento de almacenamientoEXEC [nombe procedimiento] ([variables entrada])EXECUTE sp_clase ‘Central‘
Este procedimiento de almacenamiento regresará una lista de dos elementos o una vista (NombreClase, SeccionClase) de todas las clases en el campus Central.
![Page 97: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/97.jpg)
Beneficios de los procedimientos de almacenamiento
Velocidad: Los procedimientos de almacenamiento son pre-compilados.
Reutilización de código: Los procedimientos de almacenamientos frecuentemente involucran código complejo que sólo se debe escribir una vez.
Seguridad: Se pueden otorgar permisos para los procedimientos de almacenamiento a la vez que se restringen para las tablas subyacentes.
Menor tráfico entre el cliente y el servidor: La consulta se almacena en el servidor y sólo se llama al procedimiento por lo que el tráfico en el servidor disminuye.
![Page 98: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/98.jpg)
Repaso de la lecciónEvaluación para discusión
¿Cuál es la diferencia básica entre una función y un procedimiento de almacenamiento?
¿Cuál sería la llamada del procedimiento de almacenamiento para una lista de las clases en el campus Oriente? (diapositiva 13)
¿Qué se le puede agregar a nuestro procedimiento de almacenamiento sp_clase para hacerlo más útil? (diapositiva 13)
![Page 99: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/99.jpg)
Selección de datos
![Page 100: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/100.jpg)
Perspectiva general de la lección
En esta lección aprenderán:
SELECTDISTINCTWHEREORDER BYLos operadores lógicos básicos AND y ORTablas de verdad
![Page 101: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/101.jpg)
SELECTLa sentencia SELECT se utiliza para seleccionar datos de una base de datos.Puede recuperar datos de una o más tablas, tablas temporales o vistas.La selección se almacena en una tabla resultante conocida como conjunto de
resultados.SELECT es el comando más utilizado del lenguaje de manipulación de datos
(DML).Recuerde ese ejemplo utilizando en la lección 1.3:
SELECT nombre_columna(s)FROM nombre_tablaWHERE condicional
Ejemplo:SELECT *FROM Beca_infoWHERE beca_cantidad > 36000
Arroja los alumnos de la tabla Beca_info que obtuvieron una beca mayor a 36,000.
![Page 102: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/102.jpg)
SELECT DISTINCTAlguno de los campos en una tabla pueden contener valores
duplicados.DISTINCT se puede utilizar para arrojar sólo valores únicos.Aparece la primera ocurrencia de los datos DISTINCT en la
búsqueda.DISTINCT regresa sólo valores (únicos) distintivos.
SELECT DISTINCT nombre_columnas(s) FROM nombre_tabla
Ejemplo de SELECT DISTINCT:SELECT DISTINCT ProfesorFROM Tabla_Calificaciones
![Page 103: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/103.jpg)
SELECT DISTINCT (continuación)Tabla CalificacionesProfesor Hora Materia Calificación
CuotaPérez 1 Historia A
0Martínez 2 Matemáticas B 0Pérez 3 Física C 0Resultados de:
SELECT DISTINCT ProfesorFROM Tabla_CalificacionesProfesor
Pérez
Martínez
![Page 104: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/104.jpg)
WHERELa cláusula WHERE se utiliza para extraer sólo aquellos registros que
cumplancon un criterio específico.
WHERE: especifica cuáles son las filas a recuperar.SELECT nombre_columna(s)FROM nombre_tablaWHERE nombre_columna= variable
Ejemplo:
SELECT *FROM Beca_infoWHERE beca_cantidad > 36000
Selecciona a los alumnos que les fue otorgado más de $36,000 de la tabla Beca_info.
![Page 105: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/105.jpg)
ORDER BYOrdena el conjunto de resultados por una columna específica o los
registrosen orden ascendente (ASC) el cual es el valor predeterminado o en
ordendescendente (DESC).
ORDER BY: especifica un orden en el cual presentar las filas.SELECT nombre_columna(s) FROM nombre_tabla ORDER BY nombre_columna(s) ASC|DESC
Ejemplo:SELECT * FROM tabla_calificaciones ORDER BY profesor ASC
![Page 106: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/106.jpg)
ORDER BY (continuación)Resultados de:
SELECT *FROM tabla_calificacionesORDER BY profesor ASC
Resultados:
Profesor Hora Materia CalificaciónCuota
López 3 Física C 0Martínez 2 MatemáticasB 0Pérez 1 Historia A
0
![Page 107: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/107.jpg)
Operadores lógicos: AND y OROperadores booleanos
Están diseñados para funcionar con valores booleanos de cierto ofalso.
Los operadores booleanos más comunes en programación sonAND (conjunción lógica), OR (inclusión lógica), XOR (ORexclusivo) y NOT (negación lógica).
Se utilizan frecuentemente como calificadores en búsquedas en labase de datos.
Por ejemplo:profesor = “Pérez” AND materia = “Historia”
![Page 108: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/108.jpg)
Tablas de verdadUna tabla de verdad está formada por dos columnas con unos y dos o con V y
F (Verdadero y Falso).AND lógico OR lógico
AND= Todos los elementos deben ser verdaderos para obtener un resultado verdadero.OR= Sólo uno de los elementos debe ser verdadero para obtener un resultado verdadero.El orden de los elementos no influye en el resultado de la tabla de verdad.
Elemento 1
Elemento 2
Resultado
T T T
T F F
F F F
Elemento 1
Elemento 2
Resultado
T T T
T F T
F F F
![Page 109: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/109.jpg)
Operador ANDMuestra un registro si las dos condiciones son verdaderas.
SELECT nombre_columna FROM nombre_tablaWHERE nombre_columna1= variable_1 AND nombre_columna2= variable_2
Ejemplo:
SELECT * FROM tabla_CalificacionesWHERE profesor = “Pérez” AND Calificación= “A”
Este código arroja un registro de la tabla calificaciones:
Pérez 1 Historia A 0
![Page 110: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/110.jpg)
Operador ORMuestra un registro si una de las condiciones es verdadera.
SELECT nombre_columna FROM nombre_tablaWHERE nombre_columna1= variable_1 OR nombre_columna2= variable_2
Ejemplo:SELECT * FROM tabla_CalificacionesWHERE profesor = “Pérez” OR Calificación= “C”
Esta lógica arroja los siguientes registros de la tabla calificaciones:
Pérez 1 Historia A 0López 3 Física C 0
![Page 111: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/111.jpg)
Repaso de la lección1. ¿Cuál es la diferencia entre AND y OR?2. Escriba un ejemplo de SELECT que ordene las
calificaciones de los alumnos en la tabla_calificaciones de forma ascendente.
3. Escriba un ejemplo de SELECT con una condición WHERE basada en los datos que pueden residir en una tabla Becas_info.
![Page 112: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/112.jpg)
Selección de consultas complejas
![Page 113: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/113.jpg)
Perspectiva general de la lección
3.1 Selección de datos. Este objetivo puede incluir pero no se limita a:
consultas para extraer datos de una tabla; extracción de datos utilizando
asociaciones; combinación de conjuntos de resultados utilizando UNION e
INTERSECT.
En esta lección repasarán:
SubconsultasUnionesAsociacionesIntersecciones
![Page 114: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/114.jpg)
SubconsultasEn lenguaje de consulta estructurado (SQL), una consulta puede anidarse en otra. Existen tres tipos básicos de subconsultas.Tipo 1
Predicado: constructores lógicos extendidos en la cláusula(s) WHERE (y
HAVING) utilizando los operadores AND, OR, LIKE, BETWEEN, AS yTOP (LIMIT). Ejemplo:
SELECT nombre_columna(s)
FROM nombre_tabla
WHERE nombre_columna LIKE patron
SELECT materia
FROM info_clase
WHERE profesor LIKE “Sm”
![Page 115: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/115.jpg)
Subconsultas (continuación)Tipo 2
Escalar : consultas autónomas que regresan un solo valor.
Las subconsultas escalares se pueden utilizar en expresiones
CASE, cláusulas WHERE, ORDER BY y SELECT. Ejemplo:SELECT nombre_columna(s)FROM nombre_tablaWHERE variable_1 = (SELECT nombre_columna
FROM nombre_tablaWHERE nombre_columna= variable_2)
![Page 116: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/116.jpg)
Subconsultas (continuación)Tipo 3
Tabla: consultas anidadas en la cláusula FROM.
SELECT nombre_tabla_1FROM nombre_tabla_1,
(SELECT nombre_columna_2FROM nombre_tabla_2WHERE nombre_columna_3 = variable_1)
WHERE nombre_tabla_1 . nombre_columna_1 =nombre_tabla_2. nombre_columna_2
Nota de sintaxis: Todas las subconsultas deben estar dentro de paréntesis.
![Page 117: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/117.jpg)
UNIONLa cláusula UNION combina los resultados de dos consultas SQL en una sola tabla detodas las filas coincidentes. Las dos consultas deben tener el mismo número de
columnasy tipos de datos compatibles para poder unirse. Los registros duplicados se remueven
deforma automática a menos que se utilice UNION ALL.
Ejemplo:
SELECT nombre_columna(s) FROM nombre_tabla1UNIONSELECT nombre_columna(s) FROM nombre_tabla2No permite duplicados.
SELECT nombre_columna(s) FROM nombre_tabla1UNION ALLSELECT nombre_columna(s) FROM nombre_tabla2Permite duplicados.
![Page 118: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/118.jpg)
JOINLa palabra clave INNER JOIN arroja las filas en las cuales hay al menos unacoincidencia en ambas tablas. JOIN arroja las filas en las cuales el valor ennombre_columna en la nombre_tabla1 coincide con el valor ennombre_columna en nombre_tabla2. Estas nuevas filas tendrán columnas delas dos tablas nombre_tabla1 y nombre_tabla2, con excepción decolumna_nombre.
Ejemplo:
SELECT nombre_columna(s)FROM nombre_tabla1INNER JOIN nombre_tabla2ON nombre_tabla1.nombre_columna=nombre_tabla2.nombre_columna
Nota: INNER JOIN es igual que JOIN
![Page 119: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/119.jpg)
LEFT JOINLa palabra clave LEFT JOIN arroja todas las filas de la tabla izquierda (nombre_tabla1), aun si no haycoincidencias en la tabla derecha (nombre_tabla2).
SELECT nombre_columna(s)FROM nombre_tabla1LEFT JOIN nombre_tabla2ON nombre_tabla1. nombre_columna=nombre_tabla2. nombre_columna
RIGHT JOINLa palabra clave RIGHT JOIN arroja todas las filas de latabla derecha (nombre_tabla2), aun si no haycoincidencias en la tabla izquierda (nombre_tabla1).
SELECT nombre_columna(s)FROM nombre_tabla1RIGHT JOIN nombre_tabla2ON nombre_tabla1. nombre_columna=nombre_tabla2. nombre_columna
• Nota: En algunas bases de datos, la sentencia RIGHT JOIN se conoce como RIGHT OUTER JOIN.
![Page 120: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/120.jpg)
FULL JOINLa palabra clave FULL JOIN arroja las filas cuando hay una
coincidencia en una delas tablas. FULL JOIN arroja un valor aun si sólo una de las tablas
tiene un valor, adiferencia de INNER JOIN, donde debe haber una coincidencia en las
dos tablas.
SELECT nombre_columna(s)FROM nombre_tabla1FULL JOIN nombre_tabla2ON nombre_tabla1. nombre_columna=nombre_tabla2.nombre_columna
![Page 121: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/121.jpg)
Tipos de asociaciones • JOIN: La palabra clave INNER JOIN arroja las filas en las cuales
hay al menos una coincidencia en ambas tablas. INNER JOIN es igual que JOIN.
• LEFT JOIN: La palabra clave LEFT JOIN arroja todas las filas de la tabla izquierda (nombre_tabla1), aun si no hay coincidencias en la tabla derecha (nombre_tabla2).
• RIGHT JOIN: La palabra clave RIGHT JOIN arroja todas las filas de la tabla derecha (nombre_tabla2), aun si no hay coincidencias en la tabla izquierda (nombre_tabla1).
• FULL JOIN: La palabra clave FULL JOIN arroja las filas cuando hay una coincidencia en una de las tablas.
![Page 122: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/122.jpg)
INTERSECTINTERSECT combina dos o más sentencias SELECT. INTERSECT esbásicamente lo mismo que un operador booleano AND.El operador INTERSECT de SQL toma los resultados de dos consultas y arrojasólo las filas que aparecen en los dos conjuntos de resultados. Se eliminan lasfilas duplicadas del resultado final a menos que se utilice INTERSECT ALL.
SELECT * FROM clase_infoWHERE calificacion BETWEEN “A” AND “C”INTERSECTSELECT * FROM clase_infoWHERE calificacion BETWEEN “B” AND “D”
La consulta INTERSECT anterior arroja todas las filas de la tabla clase_infodonde calificacion está entre B y C.
![Page 123: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/123.jpg)
Repaso de la lección1. ¿Qué es una subconsulta?2. ¿Qué es JOIN?3. ¿Cuál es el comando que se utiliza para conservar los
duplicados en los comandos UNION e INTERSECT?
![Page 124: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/124.jpg)
Insertar datos
![Page 125: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/125.jpg)
Perspectiva general de la lección
3.2 Insertar datosEn esta lección repasarán:
INSERT INTOINSERT INTO con SELECT
![Page 126: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/126.jpg)
INSERT INTOEsta sentencia se utiliza para insertar una nueva fila en una
tabla.Es posible escribir la sentencia INSERT INTO de dos formas:
La primera forma no especifica el nombre de la columna(s) en la cual
se insertarán los datos, únicamente se indican los valores.
La segunda forma especifica tanto el nombre de la columna(s) como
los valores que se vayan a insertar.
![Page 127: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/127.jpg)
INSERT INTO (continuación)La primera forma:
La primera forma no especifica el nombre de la columna(s) en la
cual se insertarán los datos, únicamente se indican los valores.
INSERT INTO nombre_tablaVALUES (valor1, valor 2, valor 3,...)
La cantidad de columnas y valores debe ser el mismo. Si una columna noexiste, se utiliza el valor predeterminado de la columna para crearla.
El valor utilizado por la sentencia INSERT debe satisfacer todas lasrestricciones aplicables. Si ocurre un error de sintaxis o se viola algunarestricción, la nueva fila no se agregará a la tabla y se generará un error.
![Page 128: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/128.jpg)
INSERT INTO (continuación)La segunda forma:
Especifica tanto el nombre de la columna(s) como los valores quese vayan a insertar.
INSERT INTO nombre_tabla (columna1, columna2, columna3,...)VALUES (valor1, valor2, valor3,...)
Los constructores de valor de fila se utilizan para insertar varias filas a la vez en una solasentencia de SQL.
INSERT INTO nombre_tabla(columna1,columna2)VALUES (valor1a,valor1b), (valor2a, valor2b)
Ejemplo de resultados
columna1 columna2valor1a valor2avalor1b valor2b
![Page 129: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/129.jpg)
INSERT INTO con SELECTCopiar filas de otras tablasUna sentencia INSERT también se puede utilizar para recuperar datos deotra tabla, modificarlos si es necesario e insertarlos directamente en la tablaoriginal.
Se utiliza una subselección en lugar de la cláusula VALUES.La subselección puede contener asociaciones, llamadas a función e inclusivepuede realizar consultas a la misma tabla en la cual se inserten los datos.
La selección se evalúa antes de que se realice la inserción de datos.INSERT INTO nombre_tabla1 (columna1, columna2)SELECT columna3, columna4FROM nombre_tabla2
Note que ésta es la forma simple. La sentencia puede contener cláusulas WHERE,GROUP BY y HAVING así como asociaciones de tabla y alias
![Page 130: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/130.jpg)
INSERT INTO con SELECT (Continuación)INSERT INTO Clase_Registro (id, Alumno)SELECT id, Nombre FROM Id_Alumno
Cuando se utiliza una sintaxis de registros múltiples, la sentencia INSERT
INTO precede a la sentencia SELECT y agrega uno o varios registros a la
tabla. A ésto se le conoce como una consulta agregada ya que copia registros
de una o más tablas a otra. Las tablas que contienen los registros a ser
agregados no resultan afectadas por la operación.
![Page 131: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/131.jpg)
INSERT INTO con SELECT (Continuación)INSERT INTO Clase_Info (Nombre, Id Alumno)SELECT Nombre, Id Alumno FROM Id AlumnoWHERE Registrado = ‘si’
Este ejemplo demuestra cómo se agregan registros a una tabla a partir de
una subconsulta. Todos los registros de Id_Alumno en donde el registro sea
igual a “si” se agregarán a Clase_Info.
![Page 132: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/132.jpg)
INSERT INTO con SELECT (Continuación)INSERT INTO clase_registro (Nombre)SELECT id_alumno.nombre FROM id_alumnoINNER JOIN clase info ON id_alumno.ID# =Clase_info.ID#WHERE clase_info.subject= ‘Matemáticas’ De la misma forma que con la sentencia SELECT normal, la cláusulaFROM puede incluir más de una tabla vinculada por una operación
JOIN.Este ejemplo agrega a la tabla Clase Registro los nombres de todos
losAlumnos de Matemáticas.
![Page 133: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/133.jpg)
Preguntas de discusión¿Cuál es el propósito de INSERT INTO?¿Qué sucede si una columna no se especifica al utilizar el
comando básicoINSERT?¿Cuál comando se utiliza para una subconsulta con INSERT?
![Page 134: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/134.jpg)
Actualización de datos
![Page 135: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/135.jpg)
Perspectiva general de la lección
En esta lección aprenderán:
UPDATE CASE
![Page 136: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/136.jpg)
UPDATELa sentencia UPDATE se utiliza para actualizar los registros
existentes enuna tabla:
UPDATE nombre_tablaSET columna1=valor, columna2=valor2,...WHERE alguna_columna=algún_valor
Note la cláusula WHERE en la sintaxis del UPDATE. Esta cláusula
especifica cuál registro o registros deben actualizarse.
Si omite la cláusula WHERE, se actualizarán todos los registros.
![Page 137: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/137.jpg)
UPDATE SimpleTodas las filas se pueden afectar si se elimina una cláusula WHERE de unasentencia UPDATE.
Si todas las escuelas en una tabla Universidades mudan su campus principala Puebla, Pue., este ejemplo muestra como se actualizaría la tablaUniversidades.
UPDATE Universidades SET ciudad= ' Puebla', estado=‘Pue‘El siguiente ejemplo cambia las cuotas de Universidades a NULL.
UPDATE Universidades SET Cuotas= NULL
Se pueden computar valores en una actualización. El siguiente ejemplo duplica las
cuotas en la tabla Universidades:
UPDATE Universidades SET Cuotas= Cuotas* 2
![Page 138: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/138.jpg)
Sentencia UPDATE con clausula WHERE
La cláusula WHERE especifica las filas que se van a actualizar.El siguiente ejemplo muestra como actualizar la tabla
Universidades deToluca, México con el cambio de un código postal.
UPDATE UniversidadesSET CP= ‘86689-1234’WHERE estado= ‘MX’ AND ciudad= ‘Toluca’
![Page 139: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/139.jpg)
Sentencia UPDATE con datos de otra tabla
El siguiente ejemplo modifica la columna ytd_registro en la tabla Universidadespara reflejar las inscripciones más recientes en una tabla Registro:
UPDATE Universidades SET ytd_registro =Universidades.ytd_ registro + Registro.qtyFROM Universidades, RegistroWHERE Universidades.id_materia = Registro.id_materiaAND Registro.fecha =(SELECT AX(Registro.fecha)FROM Registro)
En este ejemplo se asume que solo un total de “registros” se asigna para una
materia en una fecha dada. Si más de un total se registra en el mismo día,sólo se registrará uno. Esto se debe a que una sentencia UPDATE nuncaactualiza la misma fila dos veces.
![Page 140: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/140.jpg)
CASESe puede utilizar CASE en el lenguaje de consulta estructurado (SQL)
endonde se pueda utilizar una expresión. Se trata de una sentencia
condicionalque cuenta con una lógica if/then/else para SELECT, WHERE, HAVING,IN, DELETE, UPDATE, etc.
Crea una funcionalidad when-then-else (cuando se cumpla cierta condición,
entonces realiza lo siguiente)CASEWHEN condición THEN resultado_1ELSE resultado_2END
![Page 141: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/141.jpg)
La cláusula CASE: Dos formasCASEWHEN condición THEN resultado_1ELSE resultado_2ENDCASE la expresiónWHEN la condición THEN resultado_1ELSE resultado_2END
La cláusula WHEN se puede repetir cualquier cantidad de veces.La cláusula ELSE se puede omitir.El valor de la expresión CASE es el valor de la primera cláusula WHENque sea verdadera. Si ninguna es verdadera , el resultado será el ELSE.
Si no hay una cláusula ELSE, entonces el resultado será NULL.Todas las expresiones deben tener tipos de datos compatibles.
![Page 142: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/142.jpg)
UPDATE utilizando CASEUPDATE clase_infoSET cuota= CASEWHEN (cuota < 5 AND calificacion> “D”) THEN cuota * 1.25WHEN (cuota < 5 AND calificacion < “B”) THEN cuota * 1.15ELSE cuota = 7 END
Esta expresión CASE combina varias cláusulas WHEN yutiliza un valor lógico booleano (AND) para establecer lacuota actual.
Este ejemplo también muestra que una función de cálculo(*) se puede colocar dentro de la estructura UPDATE CASE.
![Page 143: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/143.jpg)
Repaso de la lección1. ¿Cuál es el propósito de la sentencia UPDATE?2. Describa la sentencia CASE.3. Proporcione un ejemplo de la sentencia CASE que se
ajuste a la descripción que acaba de dar.
![Page 144: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/144.jpg)
Eliminar datos
![Page 145: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/145.jpg)
Perspectiva general de la lección
3.4 Eliminar datos
En esta lección repasarán:
DELETE FROMTRANSACTIONSROLLBACKCOMMIT
![Page 146: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/146.jpg)
DELETE FROMLa sentencia DELETE se utiliza para eliminar filas de una tabla:
DELETE FROM nombre_tablaWHERE nombre_columna=variable
Nota: La cláusula WHERE en la sentencia DELETE especifica cual registro o registros se van a eliminar. Sin la cláusula WHERE, todos los registros se borrarían.
![Page 147: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/147.jpg)
DELETE FROM (Continuación)Es posible eliminar todas las filas en una tabla sin borrar toda
la tabla. Estosignifica que la estructura de la tabla, atributos e índices
permanecenintactos:
DELETE FROM nombre_tablao
DELETE * FROM nombre_tabla
Sea cuidadoso cuando elimine registros. Esta sentencia no se puede
deshacer.
![Page 148: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/148.jpg)
TransaccionesLas transacciones agrupan un conjunto de una o más sentencias en una solaunidad.
Si cualquiera de las tareas falla, toda la transacción falla, lo cual evita que sedañe la base de datos.
Considere las transacciones como si compilara un conjunto de líneas deprogramación.
Una transacción comienza con la ejecución de una sentencia SQL (UPDATE/INSERT/DELETE).
Todas las sentencias subsecuentes hasta una sentencia COMMIT o ROLLBACK se hacen partede la transacción. La ejecución de una sentencia COMMIT o ROLLBACK completan latransacción actual.
COMMIT: si todas las sentencias son correctas en una sola transacción, todos los cambios se registran en la
base de datos.
ROLLBACK: el proceso de revertir cambios.
![Page 149: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/149.jpg)
Transacciones (Continuación)La transacción mas simple en Microsoft SQL Server es una sentencia demodificación de datos sencilla:
UPDATE autores SET au_nombre = ‘Juan'WHERE au_id = '172-32-1176‘
Es una transacción automática.El servidor SQL primero registra lo que va a hacer y luego realiza lasentencia UPDATE actual.
Finalmente, registra que se ha completado la sentencia UPDATE.
Si el servidor falla después de que la transacción se haya registrado en la bitácora
(log), SQL server utiliza el registro de la transacción para reiniciarla alrecuperarse.
![Page 150: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/150.jpg)
Transacciones (continuación)Para ser de utilidad, las transacciones necesitan tener dos o más sentencias
enellas.
A este tipo de transacciones se les llama explícitas:BEGIN TRANUPDATE autores SET au_nombre = ‘Juan'WHERE au_id = '172-32-1176'UPDATE autores SET au_nombre = ‘Luis'WHERE au_id = '213-46-8915'COMMIT TRAN
Nota: las sentencias BEGIN TRAN y COMMIT TRAN comienzan y completan una transacción. Todo lo que se encuentre dentro de estas transacciones se consideran como una unidad lógica de trabajo. Si cualquiera sentencia en la transacción falla, no cambiará nada en la base de datos.
![Page 151: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/151.jpg)
Transacciones (continuación)Una transacción se puede cancelar si no hace lo que se esperaba:
BEGIN TRANUPDATE autores SET au_nombre = ‘Juan' WHERE au_id
= '172-32-1176'UPDATE autores SET au_nombre = 'JuanA' WHERE ciudad
= ‘Monterrey'IF @@ROWCOUNT = 10 COMMIT TRANELSE
ROLLBACK TRAN
Nota: Si @@ROWCOUNT (una función SQL) es igual a 10, entonces la transacción se lleva a cabo, de lo contrario se cancela. La sentencia ROLLBACK TRAN “deshace” todo el trabajo desde la sentencia BEGIN TRAN. Ninguno de las sentencias UPDATE se llevan a cabo.
![Page 152: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/152.jpg)
Transacciones (continuación)La mayoría de las transacciones de usuarios ocurren en procedimientosalmacenados.
Create Proc TranTest2 ASBEGIN TRANINSERT INTO [autores]([au_id], [au_anombre],[au_nombre, [tel], [contrato]) VALUES ('123-32-1176', 'Gates', 'Bill', '800-BUY-MSFT', 1)IF @@ERROR <> 0 BEGIN ROLLBACK TRAN return 10 ENDUPDATE autores SET au_nombre = 'Johnzzz' WHEREau_id = '172-32-1176‘IF @@ERROR <> 0 BEGIN ROLLBACK TRAN return 11 ENDCOMMIT TRANGO
![Page 153: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/153.jpg)
Transacciones (continuación)Ejemplo con un chequeo de error:
BEGIN TRANINSERT INTO [autores]([autores_id],[autores_anombre],[autores _nombre], [tel],[contrato])VALUES ('123-32-1176', 'Gates', 'Bill', ‘1-800-BUY-MSFT', 1)IF @@ERROR <> 0 BEGIN ROLLBACK TRAN return 10 ENDUPDATE autores SET au_nombre = 'Johnzzz' WHERE au_id = '172-32-1176‘IF @@ERROR <> 0 BEGIN ROLLBACK TRAN return 11 ENDCOMMIT TRAN
Cada sentencia se revisa en busca de fallas. Si una sentencia falla, revierte lasacciones realizadas hasta ese punto y utiliza la sentencia RETURN pasa salir
delprocedimiento almacenado.
![Page 154: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/154.jpg)
Repaso de la lección1. ¿Cuál es el propósito del comando DELETE?2. ¿Cuál es la relación entre TRANSACTIONS, ROLLBACK y
COMMIT?3. ¿Por qué es importante revisar que no haya errores
después de cada sentencia?
![Page 155: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/155.jpg)
Desarrollo de páginas web
![Page 156: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/156.jpg)
Perspectiva general de la lección
Los alumnos comprenderán el desarrollo de página Web.
En esta lección aprenderán:
HTMLCSSJavaScript
![Page 157: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/157.jpg)
Preguntas abiertas1. ¿Qué es HTML y cómo se utiliza? 2. ¿Qué es CSS y de qué forma mejora a HTML?3. ¿Qué es JavaScript y cómo mejora a HTML?
![Page 158: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/158.jpg)
Activador
¿Qué significan las siglas HTML?¿Qué significan las siglas CSS?¿Cómo se relacionan JavaScript y Java?
![Page 159: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/159.jpg)
TerminologíaHoja de estilo en cascada (CSS): Especificación del Lenguaje deMarcado de Hipertexto (HTML), desarrollada por el Consorcio WorldWide Web (W3C) que permite a los autores de los documentosHTML y sus usuarios anexar hojas de estilo a los documentosHTML.
HTML: Son las siglas de Lenguaje de Marcado de Hipertexto; este lenguaje se usa en los documentos de la World Wide Web. Se utiliza un lenguaje denotación basado en etiquetas para dar formato a documentos queposteriormente se pueden interpretar y traducir con un navegador deInternet.
JavaScript: Es un lenguaje de secuencia de comandos desarrollado por NetscapeCommunications y Sun Microsystems el cual está indirectamente relacionado
conJava. JavaScript no es un verdadero lenguaje orientado a objetos y se encuentralimitado en comparación con Java debido a que no se encuentra compilado.
![Page 160: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/160.jpg)
¿Qué es HTML?
El lenguaje que los servidores Web y los navegadores utilizanpara definir los elementos de una página Web.
HTML usa etiquetas para marcar elementos en un documentocomo texto o gráficas e indica de que forma los navegadoresWeb deben mostrar tales elementos al usuario y cómoresponder a las acciones del usuario como la activación de unvínculo al presionar una tecla o hacer clic en el mouse.
Ejemplos de etiquetas:<html><body>
![Page 161: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/161.jpg)
¿Qué es HTML? (continuación)Se usa principalmente para dar formato a los datos de una
página.No contiene ningún soporte avanzado para realizar
operaciones complejas,sólo sirve para diseñar los contenidos de una página Web para
que seanlegibles.
Cuando el navegador recibe un documento HTML, convierte la descripción
HTML para presentarla en pantalla.
![Page 162: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/162.jpg)
¿Qué es HTML? (continuación)
Es un lenguaje basado en texto que se puede ver y modificar en un editor de
texto estándar como el Bloc de Notas.
Consiste en el texto en la página Web junto con las “etiquetas de marcas”
que le indican al navegador cómo mostrar el texto.
Especifica elementos como la letra que se debe usar en determinadas
secciones del texto, dónde colocar las imágines incrustadas y también los
hipervínculos que permiten enlazarse a otras páginas Web.
![Page 163: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/163.jpg)
Ejemplo de código HTMLEl código HTML consiste en una serie de etiquetas entre paréntesisangulares como por ejemplo la etiqueta <html>.
Al final del documento se encuentra otra etiqueta </html> . Ladiagonal indica el final de la etiqueta correspondiente a <html>
quese encuentra al inicio del documento. Lo que está entre las dosetiquetas se le conoce como elemento <html>.
<html><body>Contenido aquí</body></html>
Se muestraContenido
aquí
![Page 164: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/164.jpg)
¿Qué es una Hoja de estilo en cascada?
Es un lenguaje/código que separa completamente el texto mostrado en la
página Web (creada en código HTML) y la información que describe como
se debe mostrar tal texto.
Incluye información tipográfica sobre cómo debe lucir la página como el
tamaño de fuente del texto en la página.
Dirige la manera en la cual se combinarán las hojas de estilo para un
documento HTML y el estilo del usuario.
![Page 165: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/165.jpg)
¿Por qué usar CSS?Mejora la accesibilidad del contenido al permitir que
el mismocontenido se pueda mostrar de diferentes formas
dependiendodel método de interpretación: en la pantalla, por
voz outilizando dispositivos Braille.
Permite más flexibilidad y control sobre la manera en la cual se
presenta el contenido.
Proporciona una forma más eficiente para que diferentes
páginas compartan el mismo formato.
![Page 166: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/166.jpg)
Ejemplo de código CSSLa primera sección de código de la siguiente hoja de estilo define
que todoel contenido dentro del elemento body utilizará la fuente Verdana
con untamaño 9 y que estará alineado a la derecha.
body{
font-family: Verdana;font-size: 9pt;text-align: right;
}div{
font-family: Georgia;}
![Page 167: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/167.jpg)
Cliente vs ServidorSe ingresa un Localizador Uniforme de Recursos (URL) o se hace clic en unenlace y el navegador solicita al servidor esa página en particular. (1)
El servidor encuentra la página, la abre y ejecuta la secuencia de comandos. (2)
Después de que se procesan todas las secuencias de comando del servidor, los resultados
se envían al navegador. (3)
El resultado es una página creada en código HTML y CSS y opcionalmente en código decomandos por parte del cliente. Si en la página hay código de del lado del cliente (porejemplo JavaScript), el buscador lo procesará y lo mostrará al usuario. (4)
![Page 168: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/168.jpg)
Secuencia de comandos del Servidor
ASP.NET, ASP o PHP.Se usa para crear páginas Web por solicitud.
Toda los datos de las páginas serán actuales ya que se crea momentos antes
de enviarse al navegador.
Ejemplos: tiendas en línea, sitios de subasta, foros en línea y comunicados.
![Page 169: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/169.jpg)
Secuencia de comandos del Cliente
Se usa para crear páginas interactivas después de que se envían al navegador.
Una aplicación común es verificar los datos que el usuario ingresa en unformulario de la página.
Si el usuario olvida ingresar su nombre completo o escribe mal su dirección
de correo electrónico, la secuencia de comandos del cliente dará aviso alusuario.
Más respuesta y rapidez para el usuario, a diferencia de la secuencia decomandos del servidor que depende del servidor y de la velocidad delInternet entre la computadora del usuario y el servidor.
![Page 170: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/170.jpg)
¿Qué es JavaScript?Es un lenguaje de secuencia de comandos del cliente utilizado
en millonesde páginas Web.
Agrega interactividad al navegador y a las páginas Web.
Complementa los tan populares lenguajes de programación y plataformas
del servidor como ASP.NET.
![Page 171: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/171.jpg)
¿Por qué usar JavaScript?Permite el contenido dinámico (mientras que HTML es
estático).
Agrega funcionalidad, interactividad y efectos dinámicos.
Por ejemplo, con JavaScript puede mostrar la fecha actual de la página Web
sin tener que editar y cargar el código para el servidor todas las noches.
![Page 172: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/172.jpg)
Ejemplo: Código de JavaScript<html><head>
<title>Mi página </title><script type="text/javascript" language="javascript"><!–function say(text){
alert(text);}say(“¡La página está cargando!");//--></script>
</head><body>
</body></html>
![Page 173: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/173.jpg)
Repaso de la lecciónDescriba los siguientes términos y cómo se utilizan:
HTMLCSSJavaScript
![Page 174: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/174.jpg)
Claves principales, foráneas y
compuestas
![Page 175: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/175.jpg)
Perspectiva general de la lección
En esta lección aprenderán:
Cómo seleccionar las claves apropiadas.¿Qué es una clave principal?¿Qué es una clave foránea / externa?Consideraciones para mantener la integridad
de datos.
![Page 176: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/176.jpg)
Selección de claves apropiadasLas claves deben ser únicas.
No relativamente sino totalmente única para cada registro en una base de datos.
Si su nombre fuera Pedro, tal vez su nombre sea único en su casa pero no en toda
la ciudad.
Las claves sólo necesitan tener valores para la base de datos.ID_alumno tiene la propiedad de ser único entre los 500,000 alumnos actualesen el sistema escolar de Monterrey.La creación de una clave sólo para un alumno la hace única y valiosa sólo en labase de datos. Si la clave resultara comprometida, ya no tendría valor fuera de
labase de datos.Por otro lado, si su número de seguridad social se hiciera de conocimientopúblico, puede causarle problemas debido al valor que tiene fuera de la base
dedatos.
![Page 177: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/177.jpg)
Selección de claves apropiadas (continuación)Para ser de mayor utilidad, las claves deben ser de tipo y
estilo consistentes.
Una clave debe estar formada por sólo un tipo de dato.
Este es la razón por la cual la mayoría de las claves son del mismo
tipo de dato y estilo.
Cuando las claves son consistentes, la base de datos se mantiene
en orden y es más fácil recuperar registros.
![Page 178: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/178.jpg)
Claves principalesReglas generales:
La clave principal identifica de manera única cada registro en una tabla de una basede datos.Las claves principales deben contener valores únicos.Una columna de claves principales no pueden contener valores NULL.Cada tabla debe tener una clave principal y cada tabla puede contener sólo una
claveprincipal.
Definición funcional:Una clave principal define de manera única una relación dentro de una base de
datos.Un atributo de una buena clave principal es que no se debe repetir.En ocasiones intentamos utilizar el nombre de una persona como la clave principal.En el salón de clases, un profesor llama a un alumno por su nombre, lo cual tal vezno defina de forma única al alumno. En la clase puede haber dos María Pérez, porejemplo.Las bases de datos solucionan este problema con la creación de claves principales únicas como el “ID_Alumno” de un tipo específico de datos para la integridad de losdatos. Nunca habrá dos alumnos con el mismo ID.
![Page 179: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/179.jpg)
Claves principales (continuación)Ejemplo de una clave principal en una tabla normalizada.
La tabla Profesor_clases contiene un ID_Profesor e ID_Clase:
ID_Profesor ID_Clase78v22 12456778v22 Lit200
En la tabla anterior, tenemos una clave principal única para la tabla
Profesor_clases. Cada maestro cuenta con un ID único (clave principal ennegritas) que lo relaciona a muchos ID de clase.
En Primera Forma Normal (1NF), se crean tablas para cada grupo de datosrelacionados y se identifica cada fila con una columna única.
En este caso, la clave principal es ID_Profesor.
Nota: Puede consultar materiales adicionales sobre 1NF en la lección 4.1.
![Page 180: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/180.jpg)
Claves principales (continuación)Ejemplo de sintaxis
SQL CREATE PRIMARY KEYCREATE TABLE Alumnos_NombreEscuela( ID_AlumnoD int NOT NULL PRIMARY KEY,Apellido varchar(255) NOT NULL,Nombre varchar(255),Direccion varchar(255),Ciudad varchar(255) )
En este ejemplo (no está escrito en alguna versión en particular de SQL), se crea una claveprincipal en ID_Alumno.
Tiene un tipo de dato entero y se define como NOT NULL.
Cuando se ingresan datos en el campo, este debe tener un valor.NOT NULL es una restricción adicional sobre lo que puede colocarse en el campo.
Integer es la primer restricción sobre lo que puede contener el campo de la clave principalID_Alumno.
![Page 181: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/181.jpg)
Claves foráneasReglas generales
Una clave foránea / externa en una tabla apunta a la clave principal de
otra tabla.Una columna de una clave foránea no debe contener valores NULL.Un valor NULL en una clave foránea significa que no tiene relacionescon otras tablas.
Definición funcionalUna clave foránea es una referencia a la clave principal de otra
tabla.Las claves foráneas no necesitan tener valores únicos.Las claves foráneas se utilizan como elementos de búsqueda en otratabla.
![Page 182: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/182.jpg)
Claves foráneas (continuación)Ejemplo de una clave foráneaTabla Profesor_clases con ID_Profesor e ID_Clase:
Hay una clave principal única para la tabla Profesor_clases.Cada profesor tendrá un ID único ligado a muchos ID de clases. ID_Clase es la claveforánea.La tabla anterior muestra que un profesor puede tener diferentes clases y varias
seccionesde la misma clase.Para encontrar los detalles de las clases, utilizaríamos la clave foránea para encontrar ladescripción de la clase en la tabla clase_descripcion.La tabla anterior es una tabla virtual o una vista de una consulta realizada a ID_Profesor“78v22”.
Nota: Consulte la lección 2.3 y 3.1 para más información sobre este tema.
ID_Profesor
ID_Clase 1
ID_Clase 2
ID_Clase 3
78v22 124567 Lit200 224567
![Page 183: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/183.jpg)
Claves foráneas (continuación)Ejemplo de sintaxis para crear una clave foránea y una clave principal al mismo
tiempo.
CREATE TABLE Alumnos_NombreEscuela( ID_Alumno int NOT NULL PRIMARY KEY,Apellido varchar(255) NOT NULL,Nombre varchar(255),Direccion varchar(255),CP int(5) NOT NULL FOREIGN KEY)
En este ejemplo (no está escrito en alguna versión en particular de SQL), se crea una clave
foránea en CP.Tiene un tipo de dato entero y no puede estar vacío (NULL).Cuando se ingresan datos en este campo, este debe tener un valor. La clave foránea
es laclave de búsqueda para encontrar la información de la ciudad y estado para este
alumno.
![Page 184: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/184.jpg)
Integridad de datosLa integridad de datos se refuerza con una serie de
restricciones o reglas.Hay tres tipos de restricciones de integridad que son parte del
modelo debase de datos relacionales.1. Integridad de entidad: Se enfoca en una clave principal.
La regla es que cada tabla debe tener una clave principal y que la
columna o columnas elegidas para ser la clave principal deben ser únicas
y no contener valores NULL.
![Page 185: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/185.jpg)
Integridad de datos (continuación)
2. Integridad referencial: Se enfoca en la clave foránea.
La regla es que cualquier clave foránea puede estar sólo en uno de dos
estados:
Primer estado: el valor de una clave foránea se refiere al valor de una
clave principal de una tabla en una base de datos.
Segundo estado: el valor de una clave foránea puede ser NULL.Ya sea que no existe una relación entre los objetos de una base
dedatos o que la relación esté sin definir.
![Page 186: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/186.jpg)
Integridad de datos (continuación)
3. Integridad de dominio: Especifica que todos los valores disponibles en una base de datos relacional se deben declarar.
Un dominio es un conjunto de valores del mismo tipo (tipo de dato).Los dominios, por lo tanto, son un grupo de valores de los cuales se
extraenvalores.
Un dominio describe el conjunto de valores posibles de un atributo dado.
Ejemplo:
El valor carácter “Juan” no está en el dominio entero.EL valor entero “42” cumple con la restricción de dominio.
![Page 187: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/187.jpg)
Repaso de la lección1. ¿Por qué son importantes las claves únicas?2. ¿Cuál es la relación entre las claves y los tipos de datos?3. ¿Cuáles son las diferencias entre una clave foránea y una
clave principal?4. ¿Por qué una clave foránea puede tener un valor NULL y
una clave principal no?5. Liste y describa las tres reglas de integridad de datos.
![Page 188: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/188.jpg)
Índices
![Page 189: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/189.jpg)
Perspectiva general de la lección
En esta lección aprenderán:
¿Qué es un índice?¿Por qué utilizamos índices?Estructuras de datos comunes para índices.Índices no agrupados.Índices agrupados.
![Page 190: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/190.jpg)
¿Qué es un índice?Un índice es una lista de objetos.
Ejemplo: en un libro, el índice contiene una lista de los temas incluidos.
Utilizamos índices para poder ir directamente al tema que deseamos ver
en un libro o en una base de datos.Un índice es una estructura de datos.
Un listado de palabras clave y datos asociados que apuntan a la
ubicación de información más extensa como archivos y registros en un
disco o claves de registro en una base de datos.
![Page 191: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/191.jpg)
¿Por qué utilizamos índices?La vida sin un índice
Los datos son difíciles de localizar ya que se encuentran almacenados en el orden en el quefueron ingresados.No existe un método eficiente o sencillo para recuperar registros.La búsqueda se realiza a ciegas y al azar. Un ejemplo de búsqueda a ciegas: Suponga quequiere intentar cocinar una receta con ingredientes de los cuales jamás había escuchado.Todo lo que sabe es que es un cierto tipo de comida. Si tuviera un índice de ingredientes,sería más rápido encontrar cada uno de los elementos a utilizar y si tuviera también datossobre tiendas que vendan ingredientes especializados, la tarea sería aún más rápida.
La vida con un índiceSe mejora significativamente la velocidad de recuperación de datos.La escritura de registros puede ser más lenta. Además, los índices ocupan másalmacenamiento, así como un libro necesita de más páginas.La Internet no sería posible sin índices. Si tuviéramos que buscar en Internet en el ordenen el cual se ha ido agregando información, nunca encontraríamos nada en la gigantescabase de datos de la World Wide Web.
![Page 192: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/192.jpg)
Estructuras de datos comunes para índices
Hay cuatro estructuras de datos para los índices: bitmap, denso, no denso, invertido.Índice bitmapUn índice bitmap almacena los datos en un vector de bits.La forma más común es un árbol-B.Los arboles-B pueden ser estructuras de datos altamente
eficientes.Índice densoUn índice denso funciona con pares de claves y
apuntadores para cadaregistro.Cada clave tiene un apuntador directamente ligado a un
registro.
![Page 193: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/193.jpg)
Estructuras de datos comunes para índices (continuación)Índice no denso
Un índice no denso funciona con pares de claves y apuntadores para cada bloque (una
secuencia de bytes o bits)Cada clave tiene un apuntador ligado a un bloque de datos.Menos costoso en recursos y menos efectivo (más generalizado) que los
índices densos.
Índice invertidoUn índice invertido voltea el valor de una clave, por ejemplo, 12345 se
convierte en 54321.Este método resulta útil cuando las claves se establecen en una secuencia
en donde losnuevos valores de las claves cambian en cantidades uniformes.
![Page 194: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/194.jpg)
Árbol-B
Estructura para el almacenamiento de índices de bases de datos.La B significa Balance.Cada nodo en un árbol-B contiene una lista ordenada de valores clave yvínculos que corresponden a rangos de valores clave entre los valores de lalista.Para encontrar un registro de datos específico dado su valor clave, elprograma lee el primer nodo o raíz del disco y compara la clave a buscar conlas claves en el nodo para seleccionar un subrango de valores clave a buscar.Se repite el proceso con el nodo indicado por el vínculo correspondiente. Enel nivel más bajo, los vínculos indican los registros de datos.El sistema de base de datos puede de este modo bajar por los niveles de laestructura del árbol para encontrar la entrada de índice que contiene laubicación de los registros o filas deseadas.
![Page 195: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/195.jpg)
Árbol-B (continuación)
Este árbol corta el tiempo de búsqueda significativamente.Los datos se organizan con un método balanceado.Cada lado del árbol tiene la mitad de las claves.Si busca el valor 59, viajaría hacia abajo por el lado derecho hasta llegar a73 y después iría a la izquierda para llegar al 59.
A los elementos que están situados en el nivel más bajo del árbol se lesconoce como Nodos hoja .
En este nivel se encuentra el apuntador a la ubicación de los registros o filasdeseadas.
Nodos hoja
![Page 196: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/196.jpg)
Índices no agrupadosSimilares al índice de un libro.Tiene una palabra clave y un apuntador hacia la ubicación
almacenada de lainformación.Ejemplo: Si quisiéramos información sobre el tema “clave principal”
paraestas lecciones, veríamos lo siguiente:
Los índices no agrupados pueden utilizar una estructura de árbol-B.Los nodos hoja se componen de páginas de índice o apuntadores.Los índices no agrupados son menos eficientes en búsquedas que los índices
agrupados.
Palabra clave Ubicación de la información
Clave principal Lección 4.2, diapositiva 4-6, 10
![Page 197: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/197.jpg)
Índices no agrupados (continuación)
SintaxisCREATE INDEX index_nombreON nombre_tabla(nombre_columna)EjemploCREATE INDEX NombresIndexON empleados(Apellido, Nombre)
La sentencia anterior crea un índice en la tabla empleados por Apellido y los
duplicados de apellidos se ordenan luego por Nombre.
![Page 198: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/198.jpg)
Índices agrupadosSi su libreta de direcciones se encuentra ordenada por sobrenombres, esto essimilar a los índices agrupados.Los índices agrupados son índices que se encuentran en un orden especialpara acelerar la recuperación de datos.Estos índices se pueden almacenar en memoria.Los índices agrupados pueden utilizar una estructura de datos de árbol-B.En el árbol-B agrupado, los registros de datos de la tabla subyacente seordenan en base a sus claves agrupadas.Los nodos hoja (nivel más bajo) se componen de páginas de datos oregistros.En este nivel, el acceso a los datos será directo.Esta es la diferencia funcional más notoria entre los índices agrupados y noagrupados. Los índices no agrupados tienen un valor apuntador en los nodoshoja en lugar de en el valor en sí.
![Page 199: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/199.jpg)
Índices agrupados (continuación)Sintaxis
CREATE [ UNIQUE ] CLUSTERED INDEX index_nombreON nombre_tabla(columna_nombre)[ ] = Opcional: Un índice único es aquel en el cual no hay dos filas quetengan el mismo valor de índice.
Ejemplo:
CREATE CLUSTERED INDEX NombreIndexON empleados(Apellido, Nombre)
La sentencia anterior tiene CLUSTERED antes de INDEX, por lo que se crea uníndice agrupado.
Si se omitiera la palabra CLUSTERED entonces se crearía un índice no agrupado.
![Page 200: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/200.jpg)
Repaso de la lección1. ¿Qué es un índice?2. ¿Por qué utilizamos índices?3. Mencione las cuatro estructuras comunes de los índices.4. ¿Qué es un árbol-B?5. ¿Cuál es la diferencia entre un índice agrupado y uno no
agrupado?6. ¿Cuáles factores influyen en la selección de un método de
índice?7. Mencione varios índices que utilizaría y pronostique la
estructura utilizada.
![Page 201: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/201.jpg)
Conceptos de seguridad de datos
![Page 202: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/202.jpg)
Perspectiva general de la lección
La seguridad es una de las mayores preocupaciones para los administradores
de las bases de datos. Hay hackers y ataques externos, pero la seguridaddebe incluir problemas con acceso local. Si no se toman medidas deseguridad, los datos pueden resultar dañados o robados.
En esta lección aprenderán:
Planes de seguridadSeguridad físicaControl de accesoAtaques comunesCuentas de usuarioRoles
![Page 203: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/203.jpg)
Planes de seguridadUn plan de seguridad debe identificar que usuarios pueden
ejecutar cualesacciones en la base de datos. El plan involucra métodos
internos y externos.Seguridad físicaUna ubicación con documentación sobre quien tiene acceso.Respaldos y continuidad operacionalEjecute respaldos con regularidad o almacene offsiteEvalúe la capacidad de recuperación de forma periódica
![Page 204: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/204.jpg)
Planes de seguridad (continuación)
Seguridad interna
El control de acceso asegura y restringe quien puede conectarse y lo que puede hacerse en
la base de datos.Los usuarios deben estar limitados a sólo los datos que necesiten.Todos los usuarios deben tener contraseñas seguras.Utilice la cuenta de administrador sólo cuando sea absolutamente
necesario.Desactive o elimine las cuentas antiguas o sin uso que pertenezcan a
personas que ya nonecesiten el acceso a la base de datos.
![Page 205: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/205.jpg)
Tipos de ataquesBruto: Craqueo forzado de contraseñas de usuario débiles opredeterminadas.Escalada de privilegios: se le otorgan más privilegios de
acceso del necesarioa un usuario.Aprovechamiento de servicios de la base de datos sin utilizar e
innecesarios.Enfocarse en vulnerabilidades de la base de datos (agujeros
de seguridad)Respaldos hurtados (sin encriptar)InferenciaInyección SQL
![Page 206: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/206.jpg)
Ataque de inferenciaTécnica de minería de datos en la cual, al analizarlos, el
usuario obtieneconocimientos ilegítimos sobre un tema o base de datos.La inferencia ocurre cuando los usuarios son capaces de reunir
informaciónen un nivel de seguridad que debería estar disponible
únicamente en unnivel de seguridad superior.Los protocolos, como la criptografía, pueden evitar que los
usuariosinterfieran con los datos.Se utiliza un diseño de base de datos y control de acceso
cuidadoso.
![Page 207: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/207.jpg)
Inyección SQLPermite a un usuario ejecutar código de lenguaje de consulta estructurado(SQL) de forma arbitraria para acceder a la base de datos.Ocurre cuando información ingresada por el usuario no se filtracorrectamente o se ejecuta de forma inesperada.Por ejemplo, en la pantalla de inicio de sesión donde se ingresa un nombrede usuario y una contraseña, un hacker utiliza una sentencia SQL o un comandode base de datos (en lugar de los datos para iniciar sesión) que va directo a labase de datos.
Para protegerse contra ataques de inyección SQL:Revise parámetros.Cuando se solicite un número de cliente, revise que la información ingresadasea del tipo de dato correcto, longitud, etc. Antes de ejecutar la consulta.Limite los permisos de la cuenta que ejecute consultas SQL.Utilice procedimientos almacenados (o técnicas similares) para evitar que los
usuariosinteractúen directamente con código SQL.
![Page 208: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/208.jpg)
Cuentas de usuarioLos administradores de bases de datos protegen su información de accesossin autorización y de intentos internos para exceder los permisos de accesoal bloquear el acceso a la base de datos con nombres de usuario ycontraseñas.
Esta característica se desarrolla en SQL.
Todas las bases de datos en servidor utilizan cuentas de usuario similares a lasutilizadas en los sistemas operativos de computadoras (ejemplo, Windows Vistao Windows 7).
Cree cuentas de usuario individuales para cada persona que tendrá acceso a la base de datos.Utilice contraseñas seguras con ocho o más caracteres y combine letras, números y símbolos.Cuando tenga una cantidad pequeña de usuarios, cree cuentas de usuario y asígneles permisosdirectamente.
![Page 209: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/209.jpg)
Cuentas de usuario (continuación)La sentencia SQL GRANT concede permisos hacia la base de datos a usuarios yroles. Ejemplo:
GRANT permisosON tablaTO usuario/rolWITH GRANT OPTION
GRANT: permisos de tabla (SELECT, INSERT, UPDATE, DELETE) o permisosde base de datos (CREATE TABLE, ALTER DATABASE, GRANT)
Se puede otorgar permisos a más de una persona con una sola sentenciaGRANT.
ON: es la tabla afectada por los permisos de nivelTO: es el usuario o rol a quien se le otorgan permisosWITH GRANT OPTION: el usuario (roles no) se les permite otorgar los mismos permisosa otros usuarios.
![Page 210: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/210.jpg)
Roles de base de datosCuando se tiene una cantidad grande de usuarios , la tarea de
mantener lascuentas y los permisos apropiados puede ser abrumadora.Se puede asignar una cuenta de grupo o individual a un rol o roles.Los permisos se asignan al rol en lugar de hacerlo al usuario
individual.Se puede crear un rol SuperUser y luego agregar las cuentas de
usuarios delos profesores a este rol.
Luego se puede asignar un permiso específico a todos los usuarios presentes (y futuros) al
simplemente asignar el permiso al rol, como por ejemplo el derecho de utilizar unaimpresora específica.
CREATE ROLE SuperUser AUTHORIZATION Administrator
![Page 211: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/211.jpg)
Uso de roles en sentencia GRANTPrimero, cree cuentas de usuario para cada operador y luego agréguelos a unnuevo rol llamado DataEntry.
Un grupo de profesores agregarán calificaciones a los registros de los alumnos.
Los profesores necesitan tener acceso a la tabla Clase info para modificar oagregar nuevos registros a la tabla.
No serán capaces de eliminar registros de la base de datos.
Al utilizar un rol (DataEntry) para este grupo de profesores se les permiterealizar la tarea de agregar calificaciones.
GRANT SELECT, INSERT, UPDATEON Clase InfoTO DataEntry
![Page 212: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/212.jpg)
Repaso de la lección1. ¿Qué es un plan de seguridad?2. ¿Cuáles tipos de seguridad se deben considerar?3. ¿Cuáles tipos de ataque pueden suceder?4. ¿Qué son los ataques de inferencia?5. ¿Qué es una inyección SQL?6. Distinga entre cuentas de usuario y roles de base de
datos.
![Page 213: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/213.jpg)
Respaldos de bases de datos y
restauración
![Page 214: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/214.jpg)
Perspectiva general de la lección
En esta lección aprenderán:
Los fundamentos sobre respaldos y restauración de la
base de datos.Tipos de respaldos:
Respaldo completoRespaldo incrementalRespaldo diferencial
Servicios de replicación.
![Page 215: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/215.jpg)
Fundamentos sobre respaldos y restauración de bases de datos
Respaldar es el proceso de guardar todos los elementos necesarios para que
pueda recrear la base de datos en un periodo relativamente corto de tiempo
en caso de ser necesario.
Tipos de respaldos:Respaldo completo: se copian o respaldan todos los archivos.Respaldo incremental: se copian o respaldan sólo los archivos que hayan
cambiadodesde el último respaldo.Respaldo diferencial: se copian sólo los archivos que hayan cambiado desde elúltimo respaldo completo.
El software y los medios físicos son siempre cuestiones que se deben considerar al realizar respaldos.El software de respaldo debe ser capaz de funcionar con registros bloqueados.Los medios de respaldo deben ser capaces de contener todo el respaldo.
![Page 216: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/216.jpg)
Restauración de una base de datos
Restaurar es el proceso de recuperar todo los elementos necesarios para
hacer que la base de datos vuelva a tener su forma normal.El proceso de restauración debe ser básico y conciso.La restauración debe ser una función del sistema de respaldo.La mayor parte de la planeación debe orientarse al tema de
los respaldospara que cuando necesite restaurar, el proceso ya se haya
planeado.
![Page 217: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/217.jpg)
Respaldos completosHay dos tipos de respaldos completos para un sistema de base de
datos:El primer tipo copia todos los elementos de la base de datos, incluyendo los
elementosabiertos como archivos que estén abiertos en el momento del respaldo.El segundo tipo copia todos los elementos de la base de datos y todos los
elementos en elservidor. Copia los archivos del servidor relacionados con la base de datos
además de labase de datos en sí, como la seguridad de usuario Network Address Translation
(NAT).
Ventajas de respaldos completosCuenta con copias completas de todo los archivos en una sola ubicación por lo
que elproceso de restauración es relativamente sencillo.
Desventajas de respaldos completosConsume mucho tiempo.Puede ser muy costoso.El sistema puede quedarse fuera de servicio durante el proceso del respaldo.
![Page 218: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/218.jpg)
Respaldos incrementalesUn respaldo incremental respalda sólo los archivos que tengan
cambios desde el último respaldo.Sólo los cambios se escriben en el medio del respaldo.Si no hay cambios, no se realiza el respaldo.Los respaldos incrementales se deben realizar todos los días desde el último
respaldocompleto.
Ventajas de los respaldos incrementales.Este tipo de respaldo es el más rápido de los tres tipos.El costo de un respaldo incremental es menor que el de uno completo.El proceso de restauración puede ser más rápido si solo ha perdido algunos
archivos.
Desventajas de los respaldos incrementales.El proceso de restauración puede ser mucho más pesado que con un respaldo
completo.Frecuentemente se necesita un respaldo completo además del o los respaldosincrementales para restaurar la base de datos.
![Page 219: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/219.jpg)
Respaldos diferencialesUn respaldo diferencial sólo respaldará aquellos archivos que hayan
cambiado desde el último respaldo completo.La diferencia entre un respaldo diferencial y uno incremental es que un respaldoincremental se basa en el estatus del respaldo completo no en el cambio de los
datos.Los respaldos se deben realizar todos los días desde el último respaldo completo.
Ventajas de los respaldos diferenciales.Este respaldo es un proceso más rápido que un respaldo completo.El costo de un respaldo diferencial es menor al de un respaldo completo.El proceso de restauración puede ser más rápido si sólo ha perdido algunos
archivos.Cuenta con el mejor balance entre tiempo de restauración y costo.
Desventajas de los respaldos diferenciales.La restauración de las funciones básicas es relativamente rápida y la restauración
completase lleva a cabo en un periodo de tiempo razonable.Puede necesitar un respaldo completo además de los respaldos incrementales
pararestaurar la base de datos.
![Page 220: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/220.jpg)
Problemas con los métodos de respaldo clásicosTodos los respaldos requieren de recursos de la base de datos y del
servidorque reducirán la habilidad de la base de datos y/o el servidor en el
cual seencuentra localizada.Se necesita de un respaldo offsite en caso de que haya daño físico a laubicación en la cual se encuentre alojada la base de datos. Si el
edificio esdestruido, necesitará que la base de datos siga funcionando.Retrasos de tiempo relacionados con los respaldos debido a que el
medio delrespaldo que necesite para la restauración se haya movido.Puede necesitarse mucho espacio para almacenar los respaldos onsite
yoffsite.
![Page 221: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/221.jpg)
Servicios de replicación
Servicio de replicación con espejo en tiempo real:Los servicios de replicación se utilizan para replicar y sincronizar una base
de datos condos o más servidores.La replicación es una reproducción total o incremental de la base de datos.Es posible inclusive replicar el ambiente del servidor en el cual esta
localizada la base dedatos.Esto se puede logra de forma local o a través de redes extensas mientras
la base de datoseste siendo utilizada.
![Page 222: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/222.jpg)
Servicios de replicación (continuación)
Ventajas de lo servicios de replicación:El respaldo se puede configurar a un método de auto escritura.Todos los archivos activos se escriben en los dos servidores o grupo de servidores.
La base de datos nunca estará no-disponible.Uno de los servidores puede estar desactivado pero la base de datos seguirá disponible.
El proceso de restauración puede realizarse en un servidor mientras losotros pueden seguir funcionando.
Desventajas de los servicios de replicación:El costo es muy alto en comparación con los métodos de respaldo en un
soloservidor.
El costo de hardware de tener varios servidores físicos.El costo de la red por tener el equipo de red físico, servidores adicionales el ancho de
bandapara los servidores para comunicarse entre sí.Aún es necesario realizar un respaldo físico como protección contra una corrupción extensadel sistema.Posibles problemas con virus en la red o cluster.
![Page 223: Db admin fund full](https://reader036.fdocumento.com/reader036/viewer/2022081414/54c2be684a7959396f8b4574/html5/thumbnails/223.jpg)
Repaso de la lección1. Describa una versión a pequeña escala de los servicios de
replicación.2. ¿Cuáles son los tres tipos principales de respaldos?3. ¿Cuál es el método de respaldo más rápido?4. ¿Cuál es el método de restauración más rápido?