28
Bases de Datos 2021 (Código de Materia: ECF) Docentes: Mag. Ing. Gustavo E. Juárez Ing. Franco D. Menéndez Ing. Cristian H. Lafuente 1

Bases de Datos 2021 - catedras.facet.unt.edu.ar

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Bases de Datos 2021

(Código de Materia: ECF)

Docentes:

Mag. Ing. Gustavo E. JuárezIng. Franco D. Menéndez Ing. Cristian H. Lafuente 1

Page 2: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Conceptos

TRABAJO PRÁCTICO Nº 1

2

Bases de Datos 2021Código de Materia: ECF

Page 3: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Algunos conceptos

Bases de Datos 2021Código de Materia: ECF

3

• Hash -> Acceso directo

• Archivo dispersado

• Objetivo: rápida recuperación de la información contenida en el archivo

MEMORIA ID DATOS 1 DATOS 2 DATOS 3

1 8 -------- -------- --------

2 5 -------- -------- --------

3 9 -------- -------- --------

4 4 -------- -------- --------

5 90 -------- -------- --------

... -------- -------- --------

55 15 -------- -------- --------

… -------- -------- --------

100 … -------- -------- --------

• Ejemplo: Agregar elemento 15

• Función de dispersión o de hashing

• Supongo que tengo 100 lugares de memoria entonces f me devuelve una dirección de memoria entre 1 y 100.

• f(15) = DIRECCIÓN DE MEMORIA = 55

• Acceso directo => función de hashing y clave primaria

Clave primaria

Page 4: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Algunos conceptos

Bases de Datos 2021Código de Materia: ECF

4

• Mejor función de hashing?

• Problema => COLISIÓN (claves sinónimos)

• f(59) = Dirección de memoria = 55

• Para f, 15 y 59 son sinónimos => colisión

• Se usan algoritmos para el tratamiento de registros en colisión.

• Que puede pasar? => Puedo tener lugar para mas de un registro en esa dirección (1, 2, 3 o 4, etc.)

• Supongamos que tenemos lugar para dos registros:

MEMORIA ID DATOS ID DATOS

... -------- -------- --------

55 15 -------- 59 --------

… -------- -------- --------

100 … -------- -------- --------

Hubo colisión => pero no

DESBORDE, OVERFLOW o

SATURACIÓN

Page 5: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Algunos conceptos

Bases de Datos 2021Código de Materia: ECF

5

• Colisión sin lugar disponible

• Existen algoritmos para tratar la saturación.

• Ejemplo: lineal => sigue con la siguiente dirección de memoria disponible

MEMORIA ID DATOS ID DATOS

... -------- -------- --------

55 15 -------- 59 --------

… … -------- -------- --------

100 … -------- -------- --------

SATURACIÓN/ OVERFLOW

• f(80) = Dirección de memoria = 55

MEMORIA ID DATOS ID DATOS

... -------- -------- --------

55 15 -------- 59 --------

56 80 -------- -------- --------

100 … -------- -------- --------

Como se recupera? => con búsqueda

secuencial

Page 6: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Algunos conceptos

Bases de Datos 2021Código de Materia: ECF

6

• La función de hashing se basa en la matemática

• Hay buenas funciones de hash (es decir no deberían tener muchos sinónimos).

• Ejemplo: Centro cuadrado.

Otra es tomar al mod (%) y mapearlo para tomar un conjunto de direcciones disponibles.

Hashing => f() => acceso directo

Page 7: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

7

Un ejemplo básico es tomar los siguientes parámetros. Se decide crear una función Hash h(k): k mod 4,

cuyos valores tomados del universo son los siguientes: Valores: {273, 339, 420, 142, 371, 7, 295, 100,

376, 267, 69, 337}

H(273)= 1

H(339)= 3

H(420)= 0

H(142)= 2

H(371)= 3

H(7)= 3

H(295)= 3

H(100)= 0

H(376)= 0

H(267)= 3

H(69)= 1

H(337)= 1

Page 8: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N°1

Bases de Datos 2021Código de Materia: ECF

8

Se tiene la siguiente lista de clientes de Service-TEC: Esquivel, Mender, Solano, Alderetes, Laguirre, Pérez,

Andreani, Soria, López, Colombres, Páez. en donde contamos a su vez con un buffer de I/O de 1024 bytes.

Se pide organizar esta lista en un archivo único con una estructura HASH, que posea 4 entradas, cada una con

registro de 330 bytes y un puntero de 15 bytes. La función Hash a utilizar será la siguiente «largo de palabra MOD

4».

Para ello debemos de:

- determinar la cantidad de registros por bucket.

- Elegir que técnica de desborde usaremos ( encadenada o rehashing).

- Obtener el resultado de la implementación.

Page 9: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

9

Determinar la cantidad de registros

Información con la que contamos:

- buffer de I/O de 1024 bytes.

- tamaño de registro de 330 bytes

- un puntero de 15 bytes.

- función Hash : «largo de palabra MOD 4».

1024 bytes / 330 bytes = 3 -------------> ( 3 registros por bucket)

1024 bytes - 3 * ( 330 bytes) = 1024 bytes - 990 bytes = 34 bytes

34 bytes restantes ----------> 15 bytes corresponden al puntero.

34 bytes - 15 bytes = 19 bytes libres

Se necesita para controlar que registro esta ocupado: usamos 1 byte más.

Page 10: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

10

Si usamos desborde encadenado

100 ESQUIVELH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

000

000

000

Page 11: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

11

Si usamos desborde encadenado

100 ESQUIVELH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

000

100 MENDER

000

Page 12: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

12

Si usamos desborde encadenado

100 ESQUIVELH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

000

100 MENDER

100 SOLANOS

Page 13: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

13

Si usamos desborde encadenado

100 ESQUIVELH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

100 ALDERETES

100 MENDER

100 SOLANOS

Page 14: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

14

Si usamos desborde encadenado

110 ESQUIVEL LAGUIRREH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

100 ALDERETES

100 MENDER

100 SOLANOS

Page 15: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

15

Si usamos desborde encadenado

110 ESQUIVEL LAGUIRREH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

110 ALDERETES PEREZ

100 MENDER

100 SOLANOS

Page 16: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

16

Si usamos desborde encadenado

111 ESQUIVEL LAGUIRRE ANDREANIH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

110 ALDERETES PEREZ

100 MENDER

100 SOLANOS

Page 17: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

17

Si usamos desborde encadenado

111 ESQUIVEL LAGUIRRE ANDREANIH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

111 ALDERETES PEREZ SORIA

100 MENDER

100 SOLANOS

Page 18: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

18

Si usamos desborde encadenado

111 ESQUIVEL LAGUIRRE ANDREANIH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

111 ALDERETES PEREZ SORIA

100 MENDER

100 SOLANOS

100 LOPEZ

Page 19: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

19

Si usamos desborde encadenado

111 ESQUIVEL LAGUIRRE ANDREANIH(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

111 ALDERETES PEREZ SORIA

100 MENDER

100 SOLANOS

110 LOPEZ COLOMBRES

100 PAEZ

Page 20: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1

Bases de Datos 2021Código de Materia: ECF

20

Si usamos Rehashing

H(Esquivel) = 0 H(Mender) = 2 H(Solanos) = 3 H(Alderetes) = 1 H(Laguirre) = 0 H(Perez) = 1 H(Andreani) = 0 H(Soria) = 1 H(Lopez) = 1 H(Colombres) = 1 H(Paez) = 0

111 ESQUIVEL LAGUIRRE ANDREANI

111 ALDERETES PEREZ SORIA

100 PAEZ

110 LOPEZ COLOMBRES

100 MENDER

100 SOLANOS

0

1

2

3

4

5

6

7

000

000

Page 21: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1 – Problema 1

Bases de Datos 2021Código de Materia: ECF

21

En una tabla hash de tamaño 13, ¿qué índices de posición corresponden a las siguientes dos claves?: 27, 130. Justifique

A. 1, 10B. 13, 0C. 1, 0D. 2, 3

Respuesta: C

Tabla de tamaño 13 => H(k) = K mod 13

H(27) = (27 % 13) = 1

H(130) = (130 % 13) = 0

Page 22: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1 – Problema 2

Bases de Datos 2021Código de Materia: ECF

22

Supongamos que a usted se le da el siguiente conjunto de claves para insertar en una tabla hash que puede

contener exactamente 11 valores: 113, 117, 97, 100, 114, 108, 116, 105, 99. ¿Cuál de las siguientes opciones

demuestra mejor el contenido de la tabla hash después de que se han insertado todas las claves utilizando la

prueba lineal? Justifique

A. 100, __, __, 113, 114, 105, 116, 117, 97, 108, 99

B. 99, 100, __, 113, 114, __, 116, 117, 105, 97, 108

C. 100, 113, 117, 97, 14, 108, 116, 105, 99, __, __

D. 117, 114, 108, 116, 105, 99, __, __, 97, 100, 113

Tabla de tamaño 11 => H(k) = K mod 11

H(113)= 3

H(117)= 7

H(97)= 9

H(100)= 1

H(114)= 4

H(108)= 9

H(116)= 6

H(105)= 6

H(99)= 0

Page 23: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Trabajo práctico N° 1 – Problema 2

Bases de Datos 2021Código de Materia: ECF

23

H(113)= 3

H(117)= 7

H(97)= 9

H(100)= 1

H(114)= 4

H(108)= 9

H(116)= 6

H(105)= 6

H(99)= 0

Respuesta: B

Page 24: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Bases de Datos 2021Código de Materia: ECF

24

Se tiene la siguiente lista de diferentes calles de la ciudad de San Miguel de Tucumán: Canadá, Colombia, Perú, Chile,

Paraguay, Brasil, Haití, Panamá, Santiago, Monteagudo, Muñecas, Maipú, Sarmiento. Se desea organizar a la misma como un

archivo con una estructura Hash con cuatro entradas, con la función hash “largo de la palabra MOD 4”

Se debe determinar la capacidad del bucket, haciendo que el buffer de entrada/salida tiene una capacidad de 1024 bytes y el

registro de cada calle ocupa 330 bytes. El puntero ocupa 15 bytes. Se pide lo siguiente:

a) Determinar el número de registros o slots por bucket

b) Ingresar los datos en la estructura con las siguientes técnicas de desborde:

i) encadenada;

ii) rehashing, usando la misma función hash.

c) Efectuar las siguientes operaciones (únicamente para el caso con técnica de desborde encadenada):

i) Eliminar el registro con clave Panamá

ii) Añadir el registro con clave Venezuela.

iii) Modificar la clave Perú por Nicaragua.

d) Graficar la estructura resultante.

Trabajo práctico N° 1 – Problema 3

Page 25: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Bases de Datos 2021Código de Materia: ECF

25

Trabajo práctico N° 1 – Problema 3

H(Canadá)=2

H(Colombia)=0

H(Perú)= 0

H(Chile)= 1

H(Paraguay)=0

H(Brasil)= 2

H(Haití)= 1

H(Panamá)= 2

H(Santiago)= 0

H(Monteagudo)=2

H(Muñecas)= 3

H(Maipú)= 1

H(Sarmiento)=1

Encadenada

111 COLOMBIA PERU PARAGUAY

111 CHILE HAITI MAIPU

111 CANADA BRASIL PANAMA

100 MUÑECAS

100 SANTIAGO

100 MONTEAGU

DO

100 SARMIENTO

Page 26: Bases de Datos 2021 - catedras.facet.unt.edu.ar

Bases de Datos 2021Código de Materia: ECF

26

Trabajo práctico N° 1 – Problema 3

Rehashing

000

000

000

000

0

1

2

3

4

5

6

7

000

000

000

000

H(Canadá)=2

H(Colombia)=0

H(Perú)= 0

H(Chile)= 1

H(Paraguay)=0

H(Brasil)= 2

H(Haití)= 1

H(Panamá)= 2

H(Santiago)= 0

H(Monteagudo)=2

H(Muñecas)= 3

H(Maipú)= 1

H(Sarmiento)=1

Page 27: Bases de Datos 2021 - catedras.facet.unt.edu.ar

BIBLIOGRAFIA

Tecnología y Diseño de Bases de Datos / Mario Piattini , Esperanza Calero, Belen Vela / Edit Alfaomega / 2010 Ed.

Fundamentos de bases de datos / Abraham Silberschatz, Henry F. Korth /y/ S. Sudarshan.—(Tra. Fernándo Sáenz Pérez, Antonio García Cordero /y/ Jesús Correas Fernández.-- Rev. Tca. Luis Grau Fernández). McGraw Hill. Madrid /c.2008/5a. Edic.

Fundamentos de sistemas de bases de datos / Ramez Elmasri /y/ Shamkant B. Navathe.—(Tra. Verónica Canivell Castillo, Beatriz Galán Espiga /y/ Gloria Zaballa Pérez.--Rev. Tca. Alfredo Goñi Sarriguren , Arturo Jaime Elizondo /y/ Tomás A. Pérez Fernández) Pearson Educación. Madrid /c.2002/3a. ed.

27

Bases de Datos 2021Código de Materia: ECF

Page 28: Bases de Datos 2021 - catedras.facet.unt.edu.ar

http://catedras.facet.unt.edu.ar/bd/

https://classroom.google.com/ Código de Clase: scigkc4

https://meet.google.com/iqc-hmvt-zbu

https://www.facebook.com/liafacet/

TEORIA

PRACTICA https://meet.google.com/yqm-fwgk-fwt

28

Bases de Datos 2021Código de Materia: ECF