1
00:00:03,450 --> 00:00:10,130
Hola bienvenidos a este sexto capítulo del curso completo de base de datos.

2
00:00:10,170 --> 00:00:14,260
En esta oportunidad vamos a hablar de dos índices.

3
00:00:14,490 --> 00:00:20,910
Cuando pensamos en la palabra índice se nos viene a la mente los índices de los libros que no son más

4
00:00:20,910 --> 00:00:25,680
que un listado de temas apuntados a un número de páginas determinado.

5
00:00:25,710 --> 00:00:32,910
Esto fue pensado y creado para que los lectores que deseen solo abordar rápidamente el tema no tengan

6
00:00:32,910 --> 00:00:35,830
que leerse todo el libro completo para encontrarlo.

7
00:00:36,180 --> 00:00:42,990
Entonces si tengo en mis manos un libro completo sobre programación Java pero quiero ver solamente el

8
00:00:42,990 --> 00:00:50,520
tema que habla de tipos de datos en Java voy a ir al índice y en pocos segundos encontrar el tema que

9
00:00:50,520 --> 00:00:59,890
necesito o okey está en la página 197 y ahí me dirigiré en una base de datos.

10
00:01:00,000 --> 00:01:07,510
Los índices funcionan de manera muy similar y nos permiten determinar en qué campo serán índices.

11
00:01:07,530 --> 00:01:10,560
También solemos llamarlos clave.

12
00:01:10,560 --> 00:01:18,210
Por ejemplo la clave principal de la tabla clientes debe ser si o si el aided de cliente.

13
00:01:18,210 --> 00:01:26,880
Como vemos en este ejemplo al definirlo como índice cuando le pidamos a la base de datos que nos ubique

14
00:01:27,030 --> 00:01:34,860
el cliente número 2 qué creen que hará el motor de base de datos recorrer toda la tabla adquirientes

15
00:01:34,950 --> 00:01:42,720
hasta encontrarlo o ir a la ubicación del disco rígido donde se encuentra el registro correspondiente

16
00:01:43,020 --> 00:01:45,120
al cliente número dos.

17
00:01:45,120 --> 00:01:52,560
Lo bueno es que podemos tener tantos índices por cada tabla como decíamos aunque luego veamos en la

18
00:01:52,560 --> 00:01:58,500
sección de normalización de bases de datos aspectos importantes a tener en cuenta a la hora de determinar

19
00:01:58,500 --> 00:01:59,540
un índice.

20
00:01:59,580 --> 00:02:08,560
Hay principalmente tres tipos de índices importantes el prisma primarily o clave principal el lluny

21
00:02:09,570 --> 00:02:17,700
o clave única sin repetición y el quiz solamente que es la clave una clave cualquiera que pueda estar

22
00:02:17,700 --> 00:02:18,690
duplicada.

23
00:02:18,690 --> 00:02:24,080
Vamos a ver cómo funcionan estos tres amigos de la optimización.

24
00:02:24,090 --> 00:02:30,970
El primer aquí en la clave principal de cada tabla es una muy buena práctica que cada tabla tenga su

25
00:02:30,970 --> 00:02:32,210
prima Ariki.

26
00:02:32,220 --> 00:02:39,690
Por cuestiones de performance y tiene la restricción de que no puede duplicarse es decir por ejemplo

27
00:02:39,990 --> 00:02:49,530
en el ejemplo que vimos no podemos tener dos registros con el vídeo bajo EIIL igual a 2 se supone que

28
00:02:49,560 --> 00:02:57,060
la clave irrepetible con la que identificaremos inequívocamente a nuestro cliente.

29
00:02:57,060 --> 00:03:07,040
Esto mismo aplica a proveedores artículos cualquier entidad que tengamos usuarios cualquier entidad

30
00:03:07,050 --> 00:03:13,980
que tengamos grabada en la base de datos la prima de equipos tienen la posibilidad de auto generarse

31
00:03:14,250 --> 00:03:22,230
con una propiedad llamada auto incremento Cuando indicamos a nuestra tabla que nuestra prima ariki usará

32
00:03:22,230 --> 00:03:29,880
un auto incremento significa que su valor se irá Hatay incrementando conforme creemos nuevos registros.

33
00:03:29,880 --> 00:03:36,330
En estos casos no tendremos que pagar ningún valor a ese campo cuando queremos nuevos registros.

34
00:03:36,330 --> 00:03:41,320
Por ejemplo supongamos que tengamos una aplicación que da de alta a clientes.

35
00:03:41,670 --> 00:03:48,150
Acaso nosotros tendremos que llevar la cuenta de cuál es el próximo número de cliente libre.

36
00:03:48,150 --> 00:03:55,070
No nada de eso el motor asignará a la prima ariki el próximo valor automáticamente.

37
00:03:55,410 --> 00:04:00,330
Entonces podemos crear el cliente Juán y el motor le pondrá el número 1.

38
00:04:00,360 --> 00:04:05,130
Luego creamos el Kylián Depedro y el Motorola le asignará el número dos.

39
00:04:05,130 --> 00:04:07,870
Esta funcionalidad no viene por defecto.

40
00:04:08,010 --> 00:04:15,320
Uno tiene que tirar la casilla que dice auto incremento en la prima ariki para que tenga este comportamiento.

41
00:04:15,420 --> 00:04:21,690
Vamos a ver ahora las lluny y comparte al igual que las primarily el hecho de que no pueden haber valores

42
00:04:21,690 --> 00:04:26,050
duplicados en el campo o el conjunto de datos señalados.

43
00:04:26,070 --> 00:04:31,300
Cabe destacar que una clave no necesariamente debe estar formada por un solo campo.

44
00:04:31,310 --> 00:04:39,030
Quizás queremos crear una clave única uniendo para ello los campos de por ejemplo número de factura

45
00:04:39,030 --> 00:04:45,170
más código de producto y evitar que un mismo producto se duplique en una factura.

46
00:04:45,390 --> 00:04:53,590
A diferencia de las primarily la y no tienen la propiedad auto incrementa habilitã luego tenemos Laski

47
00:04:53,810 --> 00:05:02,840
Lasky son claves simples que admiten valores duplicados por ejemplo en una tabla para el campo AUR y

48
00:05:02,980 --> 00:05:09,760
bajo pero hoy día si quisiéramos listar todos los productos el proveedor 52 el motor solo debe consultar

49
00:05:09,760 --> 00:05:13,890
el índice y ver en qué registro poner el foco.

50
00:05:13,890 --> 00:05:22,420
Si en este ejemplo AUR de un bajo pero eurito no fuera una clave el motor no tendría otro remedio que

51
00:05:22,420 --> 00:05:29,320
leer los miles y miles de registros de todos los productos que comercializamos para separar los que

52
00:05:29,320 --> 00:05:36,200
correspondan al proveedor número 52 ocasionando un problema de performance considerable.

53
00:05:36,220 --> 00:05:42,910
Entonces vemos que los índices fueron creados para lograr buenas performance accediendo a datos más

54
00:05:42,910 --> 00:05:44,350
representativos.

55
00:05:44,350 --> 00:05:51,000
Mi consejo es que si en total la elcampo que son referencias a otros maestros no convierta el índice

56
00:05:51,100 --> 00:05:58,510
sí o sí vamos a ver un ejemplo durante una venta tenemos que alimentar dos tablas la tabla de cabecera

57
00:05:58,600 --> 00:06:01,980
de facturas y la tabla de pase de facturas.

58
00:06:01,990 --> 00:06:08,920
Este modelo no vamos a ver bien cuando veamos sobre las tres formas normales de optimización de base

59
00:06:08,920 --> 00:06:16,930
de datos en la tabla de cabecera seguramente tengamos alguno de estos datos que vemos ahora en pantalla.

60
00:06:16,930 --> 00:06:27,370
El factor m y un bajo Aydin el FACC medio a un bajo fechan el FACC medio un prefijo y el medio Europac

61
00:06:28,120 --> 00:06:30,980
terminando con M CLI Heydi.

62
00:06:31,400 --> 00:06:32,770
Qué son estos campos.

63
00:06:32,770 --> 00:06:39,050
El primero obviamente se habrán dado cuenta en nuestra Primary y auto incremental el segundo es la fecha

64
00:06:39,050 --> 00:06:40,280
de la factura.

65
00:06:40,420 --> 00:06:47,200
El otro es el prefijo de la facultad son cuatro o cinco dígitos dependiendo del país que representan

66
00:06:47,200 --> 00:06:49,530
al punto de venta de la factura.

67
00:06:49,600 --> 00:06:56,380
El siguiente es el número Fateh y son los ocho dígitos del número de factura y el último es el Heydi

68
00:06:56,380 --> 00:06:57,460
de cliente.

69
00:06:57,530 --> 00:06:59,970
Aquí no voy a grabar el nombre del cliente.

70
00:06:59,980 --> 00:07:07,180
Sería una práctica horrible muy poco profesional grabar en una cabecera de factura el nombre del cliente

71
00:07:07,570 --> 00:07:10,660
y ocupar todo el espacio que ocupa un nombre.

72
00:07:10,660 --> 00:07:16,930
Cuando puedo obtener el aided que es un número que me va a llevar a la tabla maestra de clientes y hoy

73
00:07:16,930 --> 00:07:21,070
en día tener todos los datos que necesite el nombre el mail la dirección.

74
00:07:21,130 --> 00:07:26,830
Eso tiene que ver con las buenas prácticas y con las optimizaciones de tablas a lo largo de mi carrera

75
00:07:26,860 --> 00:07:33,370
he visto todo tipo de animalada en este sentido propio de gente sin experiencia.

76
00:07:33,610 --> 00:07:39,400
Y es bueno aprender las optimizaciones que necesitan las tablas en la tabla detalle de facturas que

77
00:07:39,400 --> 00:07:47,500
vemos a continuación tenemos aquí puse solamente tres campos porque este es un ejemplo el paquete de

78
00:07:47,560 --> 00:07:52,270
detalle de detalle la M anterior era de maestro natilla.

79
00:07:52,270 --> 00:07:59,950
Cuando veo partid si no tiene una M una de ello no sé si me está hablando del detalle o de la tabla

80
00:07:59,950 --> 00:08:08,640
maestra M es un barco Faydit desde Leydi de la tabla de facturas maestra y de bajo Aydin.

81
00:08:08,700 --> 00:08:13,530
Este Leydis de la tabla de dietas que prima ariki como imaginamos.

82
00:08:13,630 --> 00:08:17,550
Luego tenemos una idea que me lleva CIMI tabla maestra.

83
00:08:17,700 --> 00:08:24,670
Esto es fundamental por aquella modelarse de una factura a cada uno de los ítems a cada uno de los productos

84
00:08:24,670 --> 00:08:25,210
que vendí.

85
00:08:25,840 --> 00:08:30,440
Entonces imitable al detalle tengo que tener una idea que me apunte a mirar la maestra.

86
00:08:30,640 --> 00:08:36,350
Este producto que se vendió en la tabla de ventas facturas a qué factura corresponde.

87
00:08:36,400 --> 00:08:44,050
Aquí no voy a repetir en la tabla de detalles no voy a repetir la fecha el número de clientes el número

88
00:08:44,050 --> 00:08:52,930
de factura no puedo repetir los datos no puedo duplicar información es una práctica totalmente condenable

89
00:08:53,020 --> 00:08:55,700
y propia de amateurs de bases de datos.

90
00:08:55,720 --> 00:08:57,300
Repetir información.

91
00:08:57,310 --> 00:09:03,220
Todo esto lo vamos a ver más en detalle en el curso de optimización de bases de datos que viene después.

92
00:09:03,580 --> 00:09:12,790
Y por último en el ejemplo tenemos el Farber y un bajo artículo es el Heydi de mi tabla de productos.

93
00:09:12,790 --> 00:09:19,030
Nuevamente en la tabla de detalle de facturas no voy a poner la descripción del producto con el código

94
00:09:19,300 --> 00:09:21,090
con la descripción en color.

95
00:09:21,090 --> 00:09:23,810
La medida no voy a duplicar información.

96
00:09:24,400 --> 00:09:31,180
Si yo quiero saber qué producto es en base al Euribor que fue grabado aquí me voy a la tabla de productos

97
00:09:31,540 --> 00:09:33,460
y traigo toda la información.

98
00:09:33,460 --> 00:09:45,420
Esto que están viendo ustedes en pantalla es básicamente un ejemplo de cómo usar Eirís y cómo optimizar

99
00:09:45,420 --> 00:09:53,440
bases de datos por un breve ejemplo después lo vamos a ver en el próximo capítulo ya empezamos a verlo

100
00:09:53,440 --> 00:10:01,670
muy en profundidad y como estamos viendo el tema índices es importante entender que aparte de la la

101
00:10:01,670 --> 00:10:12,710
fecha del campo Cabecera también conviene asignarle propiedades de índice de clave porque es muy común

102
00:10:12,980 --> 00:10:17,770
buscar las facturas que van de tal fecha tal fecha en un rango de fecha.

103
00:10:17,920 --> 00:10:28,070
El prefijo no sería importante el número de factura habría que estudiarlo y si el Heydi de cliente va

104
00:10:28,070 --> 00:10:35,960
a tener que ser claro yo quiero todas las facturas del cliente número 2 y me va a ir explosivamente

105
00:10:36,200 --> 00:10:37,310
a esos requisitos.

106
00:10:37,670 --> 00:10:40,460
Imaginemos el campo cliente no es clave.

107
00:10:40,470 --> 00:10:45,560
Quiero todas las facturas del cliente 2 del año pasado al motor.

108
00:10:45,560 --> 00:10:52,970
No le va a quedar otra que recorrer cada una de las facturas del año pasado sean del cliente 2 o no

109
00:10:52,970 --> 00:10:53,910
del cliente 2.

110
00:10:53,930 --> 00:11:00,290
Eso va a ocasionar muchos segundos de demora a veces hasta minutos.

111
00:11:00,290 --> 00:11:06,980
Para eso se crearon los índices para bajar consultas que nos tomaría minutos sin obtener una respuesta

112
00:11:07,220 --> 00:11:09,270
en solo milisegundos.

113
00:11:09,320 --> 00:11:17,330
Estas consultas van a demorar milisegundos aún si la tabla tuviera millones de registros así que es

114
00:11:17,330 --> 00:11:18,770
muy importante el tema.

115
00:11:18,770 --> 00:11:25,820
Ahora nos vamos a enfocar a partir de esta clase en lo que es optimización de tablas.

116
00:11:25,820 --> 00:11:29,930
Vamos como habrán visto estamos yendo de menor a mayor.

117
00:11:29,990 --> 00:11:37,640
Cada vez se va a poner más interesante y vamos a abandonar de a poco el sector de novatos y vamos a

118
00:11:37,640 --> 00:11:45,500
empezar en el sector intermedio vamos a aprender buenas prácticas y después tenemos todo el lenguaje

119
00:11:45,980 --> 00:11:51,170
SQL el lenguaje de base de datos que lo vamos a aprender completo.

120
00:11:51,170 --> 00:11:59,990
Quizás alguien dirá no pero no enseñó tal función o tal función agregada o tal combinación.

121
00:12:00,140 --> 00:12:08,840
Bueno voy a enseñar completo el lenguaje de lo que se usa en el 99 por ciento de los casos así que bueno

122
00:12:09,110 --> 00:12:17,810
los invito ahora a realizar un breve examen en pantalla muy breve muy fácil para que ustedes vean si

123
00:12:17,810 --> 00:12:22,910
han afianzado algunos conocimientos y podamos continuar con el resto del curso.

124
00:12:22,940 --> 00:12:28,930
Los invito al examen y nos vemos en el curso de optimización de base de datos.
