Está en la página 1de 10

AIGestión de Base de Datos

Módulo Gestión de Base de Datos


Nombre y Apellidos Jaime Moya Rodríguez

Actividad 1

Jaime Moya Rodríguez

Profesora: Sonia García Manzano

Índice
1. Respecto a la búsqueda binaria:
(a) Investiga en qué consiste, explícalo como si tuvieses que decírselo a un robot
(algoritmo en pseudocódigo).
(b) ¿Cuál es el coste de la búsqueda en función del número de bloques? ¿Y en función
del número de registros?
(c) Suponiendo que tenemos esta lista de números enteros ordenada, (2 5 6 9 23)
indica el número de accesos a la lista que deberían realizarse para buscar el 9,
utilizando una búsqueda secuencial y una búsqueda binaria.

2. Tenemos un archivo de datos con los datos de 1.000 alumnos, el registro es de


tamaño fijo 50 bytes y el tamaño del bloque es de 1024 bytes.
(a) ¿Cuál será el tamaño total del archivo?
(b) ¿Cuántos bloques serán necesarios aproximadamente?
(c) ¿Cuál será el coste de una búsqueda binaria para encontrar un registro de datos?

3. Tenemos un fichero de datos con 2 000 registros de jugadores de futbol con un


tamaño fijo de 80 bytes por registro y un disco de tamaño de bloque de 1 024
bytes. Queremos crear un índice formado por la clave primaria que tiene un
tamaño fijo de 5 bytes y el puntero de 4 bytes.
(a) Calcula el tamaño de cada uno de los ficheros
(b) Calcula los bloques de cada uno de los ficheros
(c) Calcula, basándonos en el tamaño del bloque el número de accesos a disco
necesarios con o sin índice.

3. Describe el paradigma de la Programación Orientada a Objetos. Investiga qué


es UML, busca un ejemplo sencillo y explica con tus palabras qué representa.

4. Describe qué es el MODELO ANSI/X3/SPARC

5. Explica qué son las propiedades ACID en Bases de Datos

6. Elige tres SGBD que te gustaría conocer y las razones


ACTIVIDAD 1
1a) Investiga en qué consiste, explícalo como si tuvieses que decírselo a un robot
(algoritmo en pseudocódigo).

La búsqueda binaria o también conocida por el nombre de búsqueda de intervalo


medio y/o búsqueda logarítmica es un algoritmo (conjunto ordenado de operaciones
sistemáticas que permite realizar un cálculo y hallar la solución de un tipo de
problemas en específico. En informática suele estar asociado a un seudocódigo) de
búsqueda que se encarga de hallar la posición de un valor en un array (lista) ordenado.

Explicado como seudocódigo seria: Partimos la lista de números dada por la mitad
sucesivamente comprobando cada número dependiendo si es mayor o menor al dato
que queremos buscar hasta que damos con él, o en su defecto, el dato no exista
dentro de la lista.

1b) ¿Cuál es el coste de la búsqueda en función del número de bloques? ¿Y en


función del número de registros?

Respecto al coste de la búsqueda en función del número de bloques: El coste de


búsqueda respecto a los bloques puede suponer grandes costes en cuyo caso de que la
lista no este bien optimizada, es decir, que no haya bloques vacíos o bloques que no
estén ordenados ya que en este ultimo caso podría a llegar a dar errores en la
búsqueda final.

Respecto al número de registros: (par/impar) Es dependiente de si la lista que hemos


obtenido es par o impar. Ya que en el caso de que sea impar la primera división de
búsqueda cortara a la lista por la mitad exacta haciendo la búsqueda mas sencilla y
menos costosa, mientras que se el numero de registros es par la lista no se cortara
exactamente por la mitad, dificultando este proceso.

1c) Suponiendo que tenemos esta lista de números enteros ordenada, (2 5 6 9 23)
indica el número de accesos a la lista que deberían realizarse para buscar el 9,
utilizando una búsqueda secuencial y una búsqueda binaria.

Búsqueda secuencial: 4 accesos necesarios para realizar la búsqueda de nuestro


número 9.

Búsqueda binaria: 2 accesos, el primero partiendo la lista por la mitad (6) y viendo que
el numero 9>6. Luego el segundo acceso apunta al 9 o al 23 y dependiendo de cual
coja de los dos casos sabremos que 9 es el numero al que ha apuntado o que el 23>9 y
por tanto el 9 estará justo detrás del 23, respectivamente.

ACTIVIDAD 2

2a) ¿Cuál es el tamaño total del archivo?

1000 alumnos x 50 bytes = 50000 bytes.

2b) ¿Cuántos bloques serán necesarios aproximadamente?

50000 bytes / 1024 bytes(bloque) = 49 bloques aproximadamente.

2c) ¿Cuál será el coste de una búsqueda binaria para encontrar un registro de datos?

La búsqueda binaria es computada en el peor de los casos en un tiempo logarítmico,


realizando O( log n )  comparaciones, donde n es el número de elementos del arreglo y
log es el logaritmo.

ACTIVIDAD 3

Tenemos un fichero de datos con 2 000 registros de jugadores de futbol con un


tamaño fijo de 80 bytes por registro y un disco de tamaño de bloque de 1 024
bytes. Queremos crear un índice formado por la clave primaria que tiene un
tamaño fijo de 5 bytes y el puntero de 4 bytes.
(a) Calcula el tamaño de cada uno de los ficheros

Fichero del índice = 157 bloques x (5 bytes + 4 bytes puntero) = 1413 bytes.

Fichero de registro de datos = 2000 registros x 80 bytes = 160000 bytes

(b) Calcula los bloques de cada uno de los ficheros

Fichero de índice = 1413 bytes /1024 bytes por bloque = 2 bloques


Fichero de registro de datos = 160000 bytes /1024 bytes por bloque = 157 bloques

(c) Calcula, basándonos en el tamaño del bloque el número de accesos a disco


necesarios con o sin índice.

Con índice log(2) en base 2 + 1 = 2 accesos

Sin índice log(157) en base 2 = 8 accesos

ACTIVIDAD 4

Describe el paradigma de la Programación Orientada a Objetos. Investiga qué es


UML, busca un ejemplo sencillo y explica con tus palabras qué representa.

La programación orientada a objetos (OOP) es un paradigma de programación basado


en el concepto de "objetos", que pueden contener datos y código: datos en forma de
campos (a menudo conocidos como atributos o propiedades) y código, en forma de
procedimientos. (a menudo conocidos como métodos).

Una característica de los objetos es que los propios procedimientos de un objeto


pueden acceder y, a menudo, modificar los campos de datos de sí mismos (los objetos
tienen una noción de esto o de sí mismos). En OOP, los programas de computadora se
diseñan haciéndolos a partir de objetos que interactúan entre sí. Los lenguajes de
programación orientados a objetos son diversos, pero los más populares se basan en
clases, lo que significa que los objetos son instancias de clases, que también
determinan sus tipos.

Muchos de los lenguajes de programación más utilizados (como C ++, Java, Python,
etc.) son de paradigma múltiple y admiten la programación orientada a objetos en
mayor o menor grado, normalmente en combinación con la programación
procedimental imperativa.

UML

El Lenguaje de modelado unificado (UML) es un lenguaje de modelado de desarrollo de


propósito general en el campo de la ingeniería de software que está destinado a
proporcionar una forma estándar de visualizar el diseño de un sistema.

La creación de UML fue motivada originalmente por el deseo de estandarizar los


distintos sistemas de notación y enfoques para el diseño de software. Fue desarrollado
por Grady Booch, Ivar Jacobson y James Rumbaugh en Rational Software en 1994–
1995, con un mayor desarrollo dirigido por ellos hasta 1996.
EJEMPLO

Los diagramas de clases describen la estructura estática de un sistema. Las cosas que
existen y que nos rodean se agrupan naturalmente en categorías. Una clase es una
categoría o grupo de cosas que tienen atributos (propiedades) y acciones similares. Un
ejemplo puede ser la clase “Aviones” que tiene atributos como el “modelo de avión”,
“la cantidad de motores”, “la velocidad de crucero” y “la capacidad de carga útil”.
Entre las acciones de las cosas de esta clase se encuentran: “acelerar”, “elevarse”,
“girar”, “descender”, “desacelerar”.

ACTIVIDAD 5

Describe qué es el MODELO ANSI/X3/SPARC

La Arquitectura ANSI-SPARC, donde ANSI-SPARC significa Instituto Nacional


Estadounidense de Estándares, Comité de Requisitos y Planificación de Estándares, es
un estándar de diseño abstracto para un Sistema de Gestión de Base de Datos (DBMS),
propuesto por primera vez en 1975.

Sin embargo, el modelo ANSI-SPARC nunca se convirtió en un estándar formal. Ningún


sistema de DBMS convencional se basa completamente en él (tienden a no exhibir una
independencia física total o a evitar el acceso directo del usuario al nivel conceptual),
pero la idea de la independencia lógica de los datos se adopta ampliamente.

Los objetivos de la arquitectura de tres niveles es separar la vista del usuario.

Permite vistas de usuario personalizadas independientes: cada usuario debe poder


acceder a los mismos datos, pero tener una vista personalizada diferente de ellos.

Estos deben ser independientes: los cambios en una vista no deben afectar a otras.

Oculta los detalles del almacenamiento físico a los usuarios: los usuarios no deberían
tener que lidiar con los detalles del almacenamiento físico de la base de datos.

El administrador de la base de datos debería poder cambiar las estructuras de


almacenamiento de la base de datos sin afectar las vistas de los usuarios.

La estructura interna de la base de datos no debería verse afectada por cambios en los
aspectos físicos del almacenamiento: por ejemplo, un cambio a un nuevo disco.
Los tres niveles son:

Nivel externo (vistas de usuario): la vista de un usuario de la base de datos describe


una parte de la base de datos que es relevante para un usuario en particular. Excluye
datos irrelevantes, así como datos a los que el usuario no está autorizado a acceder.

Nivel conceptual: el nivel conceptual es una forma de describir qué datos se


almacenan dentro de toda la base de datos y cómo los datos están interrelacionados.
El nivel conceptual no especifica cómo se almacenan físicamente los datos.
Algunos datos importantes sobre este nivel son:

DBA trabaja en este nivel.

Describe la estructura de todos los usuarios.

Solo DBA puede definir este nivel.

Vista global de la base de datos.

Independiente de hardware y software.

Nivel interno: el nivel interno implica cómo la base de datos está representada
físicamente en el sistema informático. Describe cómo se almacenan realmente los
datos en la base de datos y en el hardware de la computadora.

La Arquitectura de Tres Niveles tiene como objetivo permitir a los usuarios acceder a
los mismos datos pero con una vista personalizada de los mismos. El distanciamiento
del nivel interno del nivel externo significa que los usuarios no necesitan saber cómo
se almacenan físicamente los datos en la base de datos. Esta separación de niveles
también permite al administrador de la base de datos (DBA) cambiar las estructuras de
almacenamiento de la base de datos sin afectar las vistas de los usuarios.

ACTIVIDAD 6

Explica qué son las propiedades ACID en Bases de Datos

Introducción

En ciencias de la computación, ACID (atomicidad, consistencia, aislamiento,


durabilidad) es un conjunto de propiedades de transacciones de bases de datos
destinadas a garantizar la validez de los datos a pesar de errores, fallas de energía y
otros contratiempos.
En el contexto de las bases de datos, una secuencia de operaciones de la base de datos
que satisface las propiedades de ACID (que se puede percibir como una sola operación
lógica sobre los datos) se denomina transacción. Por ejemplo, una transferencia de
fondos de una cuenta bancaria a otra, incluso implicando múltiples cambios, como
debitar una cuenta y acreditar otra, es una sola transacción.

En 1983, [1] Andreas Reuter y Theo Härder acuñaron el acrónimo ACID, basándose en
trabajos anteriores de Jim Gray [2], quien nombró atomicidad, consistencia y
durabilidad, pero no aislamiento, al caracterizar el concepto de transacción. Estas
cuatro propiedades son las principales garantías del paradigma de transacciones, que
ha influido en muchos aspectos del desarrollo de los sistemas de bases de datos.

Según Gray y Reuter, IBM Information Management System admitía transacciones


ACID desde 1973 (aunque el acrónimo se creó más tarde).

Las características de estas cuatro propiedades definidas por Reuter y Härder son las
siguientes:

Atomicidad
Artículo principal: Atomicidad (sistemas de bases de datos)
Las transacciones a menudo se componen de varios extractos. La atomicidad garantiza
que cada transacción se trata como una única "unidad", que tiene éxito por completo
o falla por completo: si alguna de las declaraciones que constituyen una transacción no
se completa, toda la transacción falla y la base de datos no se modifica. Un sistema
atómico debe garantizar la atomicidad en todas y cada una de las situaciones, incluidas
las fallas de energía, los errores y las caídas. Una garantía de atomicidad evita que las
actualizaciones de la base de datos se produzcan solo parcialmente, lo que puede
causar mayores problemas que rechazar la serie completa. Como consecuencia, otro
cliente de base de datos no puede observar que la transacción está en curso. En un
momento dado, todavía no ha ocurrido, y en el siguiente ya ha ocurrido en su totalidad
(o no pasó nada si la transacción se canceló en curso).

Un ejemplo de una transacción atómica es una transferencia monetaria de la cuenta


bancaria A a la cuenta B. Consiste en dos operaciones, retirar el dinero de la cuenta A y
guardarlo en la cuenta B. Realizar estas operaciones en una transacción atómica
asegura que la base de datos permanece en un estado consistente, es decir, el dinero
no se pierde ni se crea si alguna de esas dos operaciones falla.

Consistencia
La coherencia garantiza que una transacción solo puede llevar la base de datos de un
estado válido a otro, manteniendo invariantes de la base de datos: cualquier dato
escrito en la base de datos debe ser válido de acuerdo con todas las reglas definidas,
incluidas las restricciones, cascadas, desencadenantes y cualquier combinación de los
mismos. Esto evita la corrupción de la base de datos por una transacción ilegal, pero
no garantiza que una transacción sea correcta. La integridad referencial garantiza la
relación clave primaria - clave externa.

Aislamiento
Las transacciones a menudo se ejecutan al mismo tiempo (por ejemplo, múltiples
transacciones leyendo y escribiendo en una tabla al mismo tiempo). El aislamiento
asegura que la ejecución concurrente de transacciones deje la base de datos en el
mismo estado que se habría obtenido si las transacciones se hubieran ejecutado
secuencialmente. El aislamiento es el objetivo principal del control de concurrencia;
Dependiendo del método utilizado, los efectos de una transacción incompleta podrían
ni siquiera ser visibles para otras transacciones.

Durabilidad
La durabilidad garantiza que una vez que se ha comprometido una transacción, seguirá
comprometida incluso en el caso de una falla del sistema (por ejemplo, corte de
energía o falla). Esto generalmente significa que las transacciones completadas (o sus
efectos) se registran en una memoria no volátil.

ACTIVIDAD 7

Elige tres SGBD que te gustaría conocer y las razones

MySQL, Microsoft Access, Oracle Database.

Estos son los 3 SGBD que mas me han interesado y con los que ya he trabajado de
manera superficial en la carrera. Son los que más me gustaría ampliar mis
conocimientos en bases de datos durante estos dos años de estudios ya que son 3 de
los mas importantes y mas usados en el día a día actual.

Los sistemas de gestión de bases de datos como MySQL y los dos citados
anteriormente son los elementos centrales de Internet y del mundo interconectado.
Estos permiten procesar grandes cantidades de datos de manera electrónica,
archivarlos con coherencia y guardarlos permanentemente. Para ello, los datos
complejos se descomponen en cantidades manejables y, en función de las
necesidades, se relacionan entre sí. 

Access es un gestor de datos que utiliza los conceptos de bases de datos relacionales y
pueden manejarse por medio de consultas e informes, mientras que Oracle Database
es un sistema de gestión de base de datos de tipo objeto-relacional, desarrollado por
Oracle Corporation.

Otra de las razones es que me centre muchísimo en MySQL, dejando un poco de lado
la base de datos de Microsoft y de Oracle.

También podría gustarte