3. ¿Qué es un Base de datos?
Biblioteca:
Secciones
Estantes
Libros>Título, Autor, Género, Año, etc.
Base de datos:
Tablas
Campos > Título, Autor, Género, Año, etc.
Registros
4. ¿Qué es un Base de datos?
Es una colección de información
organizada(relacionada o no
relacionada) de tal forma que un
programa pueda seleccionar
rápidamente un conjunto de
datos deseados.
6. ¿Qué es un valor NULL?
Un valor NULL representa la ausencia de un valor en una columna de una tabla. Esto indica que no se ha
asignado ningún valor en esa columna determinada.
Los valores NULL son diferentes de los valores en blanco o los valores numéricos como el 0 (cero), ya que
estos últimos son valores válidos que se pueden asignar a una columna. Por ejemplo, si una columna de
la tabla de Impuestos, algunos de esos valores pueden contener 0 (cero), mientras que otros pueden no
tener ningún valor de impuesto asignado aún, en cuyo caso la columna tendría el valor NULL.
7. ¿Qué es una Primary key?
Definiciones y reglas generales:
La clave primaria(primary key), identifica de manera
unívoca(única) a cada registro de una tabla.
El valor que contiene la columna definida como
primary key(PK), debe ser único.
El valor debe ser NOT NULL.
Una tabla puede tener más de un campo definido
como PK.
Sea simple o compuesta, cada tabla sólo podrá tener
una clave primaria(PK)
8. ¿Qué es una Foreign key?
Definiciones y reglas generales:
La clave foránea(foreign key) debe ser del mismo
tipo de dato que su campo relacionado.
El valor del campo definido como foreign key(FK)
puede ser NULL.
Una tabla puede tener más de un campo FK.
9. ¿Qué es LA PROPIEDAD IDENTITY?
La propiedad Identity se puede establecer a uno o más
campos de una tabla determinada. Un campo con
propiedad Identity activada, hará que su valor se
incremente automáticamente a medida que se inserten
registros en la tabla.
Es por ello que, para que un campo pueda ser Identity, su tipo
de dato debe ser numérico.
Por lo general establecemos Identity a un campo que es
Primary Key. Con esto logramos que su valor no se
duplique, generando registros unívocos (únicos)
10. ¿A qué llamamos normalización de Base de datos?
La normalización de Base de Datos, es el proceso de
organizar los datos en una base de datos que incluye la
creación de tablas y el establecimiento de relaciones entre
ellas.
Este proceso es utilizado para ayudar a eliminar los datos
redundantes.
Cinco formas de normalización (FN: Forma normal)
1FN: Eliminar grupos repetitivos
2FN: Eliminar datos redundantes
3FN: Eliminar columnas no depende de clave
4FN: Aislar Relaciones Múltiples Independientes
5FN: Aislar relaciones semánticamente relacionadas
múltiples
11. Primera Forma Normal (1FN)
La primera forma normal significa que los datos
están en un formato de entidad, lo que significa
que se han cumplido las siguientes condiciones:
Eliminar grupos repetidos en tablas
individuales
Crear una tabla independiente para cada
conjunto de datos relacionados
Identificar cada conjunto de relacionados con
la clave principal
No utilice varios campos en una sola tabla para
almacenar datos similares
12. Segunda Forma Normal (2FN)
La segunda forma normal asegura que cada
atributo describe la entidad
Crear tablas separadas para el conjunto de valores
y los registros múltiples, estas tablas se deben
relacionar con una clave externa.
Los registros no deben depender de otra cosa que
la clave principal de la tabla, incluida la clave
compuesta si es necesario
13. Tercera forma normal (3FN)
La tercera forma normal comprueba las
dependencias transitivas, eliminando campos
que no dependen de la clave principal.
Los valores que no dependen de la clave principal
no pertenecen a la tabla
Los campos que no pertenecen a la clave principal
coloquelos en una tabla aparte y relacionen
ambas tablas por medio de una clave externa.
14. Tipos de datos
Un tipo de datos es un atributo
que especifica el tipo de
información que el objeto
puede contener: Datos de
enteros, caracteres, moneda,
fecha y hora, cadenas binarias,
etc.
16. ¿Qué son los archivos MDF y LDF?
Archivo MDF (Master Data File): El archivo MDF es el principal
archivo de datos de una base de datos en SQL Server. Contiene
las tablas, índices, procedimientos almacenados y otros
objetos de la base de datos.
Archivo LDF (Log Data File): El archivo LDF es el archivo de
registro de transacciones de una base de datos en SQL Server.
Registra todas las transacciones y cambios realizados en la
base de datos, lo que permite la recuperación y la restauración
de la misma en caso de fallos o pérdida de datos.
23. Creaciones de tablas Historia/paciente/Pais
Ejercicio:
Deberás crear la tabla País, que guardará los países
de origen de los pacientes.
Deberá contar solo con 2 campos, idPais y Pais,
cuyos tipos de dato deben ser CHAR(3) y
VARCHAR(30) respectivamente.
La Primary Key deberá ser el campo idPais.
Nota: La codificación internacional de países tiene
3 caracteres (ARG, ESP, PER, COL, MEX)
Aprovecha esa codificación para crear la Primary
Key de la tabla.
24. Creaciones de tablas Turno/paciente
EJERCICIO: Crear la tabla TurnoEstado
Deberás crear la tabla TurnoEstado, que guardará
los estados posibles de un turno y que luego
haremos la relación o restricción con la tabla
Turno.
Deberá contar solo con 2 campos, idEstado y
Descripción, cuyos tipos de dato deben ser
SMALLINT y VARCHAR(50) respectivamente.
La Primary Key deberá ser el campo idEstado.
EJERCICIO: Crear la Tabla Especialidad
• Deberás crear la tabla Especialidad, que guardará las
especialidades de los Médicos.
• Deberá contar solo con 2 campos, idEspecialidad y Especialidad,
cuyos tipos de dato deben ser INT y VARCHAR(30)
respectivamente.
• La Primary Key deberá ser el campo idEspecialidad y además
deberá tener la propiedad IDENTITY activada.
25. • EJERCICIO: Crear la Tabla
MedicoEspecialidad
• Deberás crear la tabla MedicoEspecialidad, que
guardará las relaciones entre especialidades de
los Médicos.
• Deberá contar con 3 campos, idMedico,
idEspecialidad y Descripcion, cuyos tipos de
dato deben ser INT , INT y VARCHAR(50)
respectivamente.
• La Primary Key deberá ser Compuesta por los
campos idMedico e idEspecialidad.
CREACIONES DE TABLAS PAGO/PACIENTE
• EJERCICIO: Crear la Tabla Medico
• Deberás crear la tabla Medico, que
guardará los especialistas.
• Deberá contar solo con 3 campos,
idMedico, Nombre y Apellido, cuyos tipos
de dato deben ser INT y VARCHAR(50) y
VARCHAR(50) respectivamente.
• La Primary Key deberá ser el campo
idMedico y además deberá tener la
propiedad IDENTITY activada.
28. Definiendo tipo de datos de usuario
EJERCICIO: Asignar el tipo de dato Paciente
Deberás asignar el tipo de dato Paciente (INT) creado anteriormente, en todas las tablas que contengan el
campo idPaciente
EJERCICIO: Crear y Asignar el tipo de dato Historia
Deberás crear asignar el tipo de dato Historia INT utilizando el método explicado en la clase, en todas las
tablas que contengan el campo idHistoria
EJERCICIO: Asignar el tipo de dato Medico
Deberás asignar el tipo de dato Medico INT creado anteriormente, en todas las tablas que contengan el
campo idMedico
EJERCICIO: Crear y Asignar el tipo de dato Observacion
Deberás crear y asignar el tipo de dato Observacion VARCHAR(1000) utilizando el método explicado en la
clase, en las tablas que contengan el campo Observacion
EJERCICIO: Agregar el campo DNI en la tabla Paciente
Deberás agregar el campo DNI en la tabla Paciente, desde la vista de diseño.
Deberá estar en segundo lugar, debajo del campo idPaciente y su Tipo de Dato deberá ser VARCHAR(20)
29. Relaciones y Restricciones
• Diagrama entidad relación DER.
• Definición de foreing key
• Como eliminar un foreing key
• Tipos de relaciones
• Ejercicios prácticos
30. Concepto de relaciones entre tablas
Las relaciones entre tablas no son obligatorias. Una base de datos puede no tener tablas relacionadas. No
obstante, una BD sin relaciones, corre el riesgo de perder la integridad de los datos en las tablas, ya que
no tiene definidas las Reglas de Integridad Referencial.
¿Qué son éstas Reglas?
Son propiamente las relaciones entre tablas, en las que un campo Primary Key (PK) se relaciona un
campo de otra tabla (del mismo tipo de dato), al cuál llamamos Foreign Key (FK)
¿De que me sirve crear esta relación?
Esta relación NO permitirá colocar un valor en el campo definido como FK, que no esté definido en la
tabla definida con el campo PK.
31. Diseñar modelo entidad relación DER
1. Relacionando un paciente con su país de origen.
2. Relación uno a muchos.
3. Eliminación de una Foreing Key.
4. Editar un diagrama y agregar nuevas tablas.
32. Diseñar modelo entidad relación DER
EJERCICIO: Relacionar un Turno con su Estado
Deberás realizar la Restricción Turno y TurnoEstado
entre dichas tablas con el método explicado
anteriormente.
Los campos que debes relacionar son estado con
idEstado de sus respectivas tablas.
Para ello deberás abrir el diagrama DER creado y
agregar al mismo ambas tablas Turno y
TurnoEstado para verificar que la Restricción se
haya establecido correctamente.
Para finalizar, guarda los cambios en el diagrama.
• EJERCICIO: Relacionar un Pago con su Concepto
• Deberás realizar la Restricción Pago y
Concepto entre dichas tablas con el método
explicado anteriormente.
• También deberás abrir el diagrama DER
creado y agregar al mismo ambas tablas Pago
y Concepto para verificar que la Restricción se
haya establecido correctamente.
• Para finalizar, guarda los cambios en el
diagrama.
33. Diseñar modelo entidad relación DER
1. Relacionando un pago con turno y paciente.
2. Relacionando un turno con un médico y su paciente.
3. Relacionando un médico con su especialidad.
4. Relación de muchos a muchos
34. Diseñar modelo entidad relación DER
EJERCICIO: Relacionando una Historia Clínica con su
Paciente y Médico
Deberás realizar una Restricción entre una
Historia con su Paciente y su Médico con el
método que prefieras.
1. Agregar al diagrama las tablas necesarias.
2. Generar las restricciones.
3. Guardar el diagrama.
EJERCICIO: Eliminar una Foreign Key
Siguiendo el método explicado en las clases
anteriores, deberás eliminar la restricción entre la
tabla Paciente y PacienteInfo.
Recuerda que la tabla PacienteInfo fué creada para
citar un ejemplo de restricción y si no la tienes en
tu base de datos, puedes omitir este ejercicio.
35. MANIPULACIÓN DE REGISTROS DML CON INSERT Y SELECT
Insertando y seleccionando Países.
• Comprobando la restricción FK paciente país
• Comando SELECT FROM
• Comando INSERT e INSERT multiple
• Comando INSERT y PK
36. EJERCICIOS
EJERCICIO: Insertar registros en la
tabla Pais
Deberás insertar países en la tabla
Pais, aplicando el método
explicado anteriormente con los
siguientes valores:
ARG Argentina
BRA Brasil
COL Colombia
ESP España
MEX México
PER Perú
EJERCICIO: Insertar nuevos Pacientes
Deberás insertar 2 nuevos Pacientes, aplicando el método explicado
en la clase anterior, con los siguientes valores:
Claudio Lopez con DNI 27854236, fecha de nacimiento
18/02/2019, domicilio Piedras 2056, país Argentina, email
clopez@gmail.com
Carlos Ramirez con DNI 30251236, fecha de nacimiento
05/07/1982, domicilio Cerro negro 452, país Colombia, email
cramirez@gmail.com
El resto de los campos deberás insertarlos con valores NULL.
Recuerda que el campo idPaciente se autocompleta por ser
IDENTITY. No es necesario especificar un valor, solamente
comprueba que al insertar un registro, el mismo se
autoincrementa.
Nota: Los valores del campo idPaciente pueden variar respecto a los
generados en el curso, debido a su propiedad autoincremental
IDENTITY y no afectan a los resultados de los ejercicios.
37. EJERCICIOS
EJERCICIO: Insertar un nuevo Médico
Deberás insertar un nuevo Médico,
aplicando el método explicado en la
clase anterior, con los siguientes
valores:
Nombre y Apellido: Rafael Castelo
Nota: Los valores del campo idMedico
pueden variar respecto a los
generados en el curso, debido a su
propiedad autoincremental IDENTITY
y no afectan a los resultados de los
ejercicios.
• EJERCICIO: Insertar registros en la tabla TurnoEstado
• Deberás insertar registros en la tabla TurnoEstado, para
ello debes utilizar valores posibles que comprendan desde
0 a 6 para el campo idEstado y cuyas descripciones
deberán ser las siguientes y este mismo orden:
• Pendiente
• Realizado
• Cancelado
• Rechazado
• Postergado
• Anulado
• Derivado
38. EJERCICIOS
EJERCICIO: Comprueba la PK de la tabla
TurnoEstado
Deberás comprobar la Primary Key de la
tabla TurnoEstado.
Para ello inserta un registro con un valor
de idEstado que ya exista, al igual que
lo hicimos en la clase anterior.
EJERCICIO: Insertar nuevos Turnos
• Deberás insertar 1 nuevo Turno, mediante el comando
INSERT con los siguientes valores:
• En tabla TURNO
• Fecha de turno 15/03/2023 con estado 0 y observación
"Paciente en ayunas"
• En tabla TURNOPACIENTE
• idTurno (el último idturno insertado en la tabla Turno)
• idPaciente (cualquier idPaciente existente en la tabla
Paciente)
• idMedico (cualquier idMedico existente en la tabla Medico)
• Refuerza el ejercicio insertando tantos turnos como desees.
• Nota: Los valores del campo idPaciente pueden variar
respecto a los generados en el curso, debido a su propiedad
autoincremental IDENTITY y no afectan a los resultados de los
ejercicios.
39. EJERCICIOS
EJERCICIO: Comprobar la Restricción FK Turno, TurnoPaciente y TurnoEstado
• Deberás comprobar si la Restricción entre las tablas Turno, TurnoPaciente y
TurnoEstado, funcionan correctamente.
• Para ello tienes que:
• Insertar un registro en la tabla Turno con el método que prefieras y deberás
colocarle un valor de Estado inexistente, por ej 8
• Insertar un registro en la tabla TurnoPaciente con el método que prefieras y
deberás colocarle valores inexistentes en cualquiera de los campos idTurno,
idPaciente e idMedico
• Estas pruebas deberán retornar error de Restricción Foreign Key.
40. • EJERCICIO: Insertar registros en las tablas Pago, PagoPaciente y Concepto
• Deberás insertar:
• 2 registros en la tabla Concepto
• 3 registros en la tabla Pago
• 3 registros en la tabla PagoPaciente
• Utilizando cualquiera de los dos métodos de Inserción (SSMS o comando) con los siguientes valores:
• En Tabla Concepto:
• Registro 1:
• Descripción > Laboratorio
• Registro 2:
• Descripción > Radiografía
• En tabla Pago:
• Registro 1:
• Concepto > Deberás colocar cualquiera de los idConcepto autogenerado en la tabla Concepto
• Fecha > 2019-02-15
• Monto > 4500
• Estado > 0
• Obs > Pago pendiente
EJERCICIOS
41. EJERCICIOS
Registro 2:
Concepto > Deberás colocar cualquiera de los idConcepto autogenerado en la tabla Concepto
Fecha > 2019-05-20
Monto > 6800
Estado > 0
Obs > Pago pendiente
Registro 3:
Concepto > Deberás colocar cualquiera de los idConcepto autogenerado en la tabla Concepto
Fecha > 2019-09-27
Monto > 5600
Estado > 0
Obs > Pago pendiente
En Tabla PagoPaciente
Registro 1:
idPago > Deberás colocar cualquiera de los idPago autogenerado en la tabla Pago
idPaciente > Deberás colocar cualquiera de los idPaciente autogenerado en la tabla Paciente
IdTurno > Deberás colocar el idTurno autogenerado en la tabla Turno
Registro 2: IDEM Registro 1
Registro 3: IDEM Registro 1
Nota: Los valores de los campos idPago e idConcepto, pueden variar respecto a los generados en el curso, debido a su
propiedad autoincremental IDENTITY y no afectan a los resultados de los ejercicios
44. Ejercicios
EJERCICIO: Insertar un nuevo Turno (Relacionado con
la siguiente clase)
Deberás insertar un nuevo Turno, utilizando
cualquiera de los dos métodos de Inserción
(SSMS o comando) con los siguientes valores:
En Tabla Turno:
Fecha de turno: 2019-01-22 10:00
Estado: 0
Observación: Turno pendiente de
aprobación
En Tabla TurnoPaciente
idTurno: Deberás colocar el idTurno
autogenerado en la tabla Turno
idPaciente: Deberás colocar cualquiera de
los idPaciente existente en la tabla
Paciente
idMedico: Deberás colocar cualquier
idMedico existente en la tabla Medico
• EJERCICIO: Eliminar Turno
• Para preservar la integridad referencial de los
registros, deberás eliminar de la tabla Turno, el
registro correspondiente al Turno eliminado en
la tabla TurnoPaciente de la clase anterior.
45. FUNCIONES DE AGREGADO
• Función MAX y MIN.
• Función SUM.
• Función AVG.
• Función COUNT.
• Función HAVING.
47. STORED PROCEDURES, VARIABLES Y SUBCONSULTAS
• Que es un SP
• Que es una variable
• Ejemplo de variables
• Programas subconsultas
48. ESTRUCTURAS DE CONTROL
• Condicional IF ELSE y estructura BEGIN END
• Función EXISTS
• Función WHILE
• Condicional CASE
• Instrucciones RETURN y BREAK
• Estructura TRY CATCH
49. Operadores Aritméticos y de Comparación
• Operadores aritméticos de
• Suma
• Resta
• División
• Multiplicación
• Operadores
• mayor o igual
• menor o igual
• distinto