Sei sulla pagina 1di 23

Universidad Tecnológica de Santiago

(UTESA)

Área de Arquitectura e Ingeniería Carrera de Informática

Universidad Tecnológica de Santiago ( UTESA ) Área de Arquitectura e Ingeniería Carrera de Informática Adm.

Adm. Base de Datos

Portafolio primer parcial

Presentado a:

Ing. Toribio Rodríguez

Presentado por:

 

Wandy Rodríguez Gutiérrez

2-13-1868

 

Yansell Rivas

1-13-1964

Erison de la Cruz

1-13-0644

Francisco Javier Trino

2-08-2572

Santiago de los Caballeros, República Dominicana Octubre del 2017

BASES DE DATOS

3

¿Q

ES UNA BASE DE DATOS?

3

¿Q

ES UN SISTEMA DE GESTIÓN DE BASE DE DATOS (SGBD)?

3

OBJETIVOS DE UN SGBD

3

COMPONENTES DE UN SGBD

4

ALMACENAMIENTO EN DISCO

4

GESTOR DE ALMACENAMIENTO

4

PROCESADOR DE CONSULTAS

4

USUARIOS

4

ARQUITECTURA DE BASE DE DATOS

4

CICLO DE VIDA DE UNA BASE DE DATOS

5

PERSONAJES ALREDEDOR DE UNA BASE DE DATOS

5

ADMINISTRADOR

5

ANALISTA DE DATOS:

6

IMPORTANCIA DE UNA BASE DE DATOS COMO RECURSO CORPORATIVO

6

PRINCIPALES FUNCIONES DE UN ADMINISTRADOR DE BASES DE DATOS

7

ESTRATEGIAS DE DATOS

10

CALIDAD DE DATOS

10

METADATOS

11

TIPOS DE METADATOS Y SUS FUNCIONES

11

ESTRUCTURA DE LOS METADATOS

12

APRENDIDO DE LA SEMANA 1

 

13

ÍNDICES, ESQUEMAS Y FILEGROUPS

 

14

¿CÓMO TRABAJA UNA BASE DE DATOS? (B-TREES)

14

B-TREES

16

¿Q

ES UN ÍNDICE?

16

TIPOS DE ÍNDICE

17

¿CÓMO CREAR UN ÍNDICE?

17

ESTRUCTURA DE LOS ÍNDICES

18

VENTAJAS DEL USO DE ÍNDICES EN UNA BASE DE DATOS

18

DESVENTAJAS DEL USO DE ÍNDICES EN UNA BASE DE DATOS

18

¿QUÉ ES UN ESQUEMA

DE

BASE DE DATOS?

19

ESTRATEGIAS PARA CREAR UN ESQUEMA DE BASE DE DATOS

19

USAR

SQL SERVER MANAGEMENT STUDIO

19

USAR TRANSACT-SQL

 

20

CONCEPTO DE FILEGROUP

21

IMPORTANCIA

DE UN FILEGROUP

21

APRENDIDO DE LA SEMANA 2

22

Primera Semana: 30/09/2017

Bases de datos

¿Qué es una base de datos?

Es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible y donde diferentes programas y diferentes usuarios deben poder utilizar estos datos

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de

información de forma organizada para que luego podamos encontrar y utilizar fácilmente.

¿Qué es un sistema de gestión de base de datos (SGBD)?

Un sistema de gestión de base de datos o en inglés Database management system (DBMS), es una agrupación de programas que sirven para definir, construir y manipular una base de datos.

Es un programa o herramienta que nos permiten almacenar o realizar la inserción, la actualización y la administración de una base de datos. La mayoría de los gestores utilizan el lenguaje SQL para poder manipular los datos de la misma.

Además estos proporcionan herramientas para añadir, eliminar, actualizar y ver los datos. Los usuarios pueden ver o tener acceso a la información usando diversas herramientas o programas de consultas y también pueden generar informes con los datos de la base de datos.

Objetivos de un SGBD

Definir o Crear una BD, este

especifica los tipos de datos, las

estructuras y las diferentes restricciones para los datos que se almacenaran.

Construir la BD, es el proceso de guardar los datos.

Manipulación de la BD, funciones para consultar, insertar, actualizar y borrar en la base de datos.

Permite

brindar la integridad y la seguridad en los datos.

Permite representar las relaciones entre los datos de la Base de Datos.

Usar restricciones de accesos a los usuarios.

3

Componentes de un SGBD

Almacenamiento en disco

Incluye los datos, el diccionario de datos y los índices.

Gestor de almacenamiento

Se encarga de gestionar el almacenamiento. Aquí se encuentra el gestor de memoria intermedia, el gestor de transacciones, el gestor de archivos y el gestor de autorizaciones e integridad.

Procesador de consultas

Este es el otro grupo de programas que se encarga de las consultas. Aquí se encuentra el intérprete de LDD (lenguaje de definición de datos), el compilador de LMD (lenguaje de manipulación de datos) y el motor de evaluación de consultas.

Usuarios

Son quienes interactúan con los componentes anteriores a través de su interfaz. Los usuarios pueden ser normales, programadores de aplicaciones, usuarios sofisticados, usuarios especializados y administrador de base de datos.

Arquitectura de base de datos

Las bases de datos respetan la arquitectura de tres niveles definida, para cualquier tipo de base de datos, por el grupo ANSI/SPARC. En esta arquitectura la base de datos se divide en los niveles externo, conceptual e interno.

  • 1. Nivel interno: es el

Componentes de un SGBD Almacenamiento en disco Incluye los datos, el diccionario de datos y los

nivel más bajo de abstracción, y define cómo se almacenan los datos en el soporte físico, así como los métodos de acceso.

  • 2. Nivel conceptual: es el nivel medio de abstracción. Se trata de la

representación de los datos realizada por la organización, que recoge las vistas parciales de los requerimientos de los diferentes usuarios y las aplicaciones posibles. Se configura como visión organizativa total, e incluye la definición de datos y las relaciones entre ellos.

  • 3. Nivel externo: es el nivel de mayor abstracción. A este nivel corresponden las

diferentes vistas parciales que tienen de la base de datos los diferentes usuarios. En cierto modo, es la parte del modelo conceptual a la que tienen acceso.

Ciclo de vida de una base de datos

Se ha considerado las siguientes etapas del ciclo de vida de la base de datos:

1.

Planificación de

la base de datos.

2.

Definición del

sistema.- se especifica el ámbito y los límites de la aplicación de bases de datos.

3.

Diseño de la base

de datos.

4.

Selección del

SGBD.

5.

Implementación.

6.

Mantenimiento.

Ciclo de vida de una base de datos Se ha considerado las siguientes etapas del ciclo

Personajes alrededor de una base de datos

Administrador

Profesional encargado de todos los aspectos técnicos, tecnológicos, científicos y legales de una base de datos, además de ser responsable de la calidad de los datos en ella.

Entre sus tareas se encuentran:

Implementar, dar soporte y gestionar bases de datos corporativas.

Crear y configurar bases de datos relacionales.

Ser responsables de la integridad de los datos y la disponibilidad.

Diseñar, desplegar y monitorizar servidores de bases de datos.

Diseñar la distribución de los datos y las soluciones de almacenamiento.

Garantizar la seguridad de las bases de datos, realizar copias de seguridad y llevar a cabo la recuperación de desastres.

Planificar e implementar el aprovisionamiento de los datos y aplicaciones.

Diseñar planes de contingencia.

Diseñar y crear las bases de datos corporativas de soluciones avanzadas.

Analizar y reportar datos corporativos que ayuden a la toma de decisiones en la inteligencia de negocios.

Producir diagramas de entidades relacionales y diagramas de flujos de datos, normalización esquemática, localización lógica y física de bases de datos y parámetros de tablas.

Analista de datos:

Profesional capacitado para reunir, compilar, analizar e interpretar los datos. Su trabajo incluye:

Extraer datos importantes y útiles de cantidades de datos de gran tamaño.

Descubrir la fuente de los datos para verificar su autenticidad.

Hacer uso de gráficos y tablas de soporte para simplificar la presentación de los datos.

Importancia de una base de datos como recurso corporativo

Las bases de datos se consideran una de las mayores aportaciones que ha dado la informática a las empresas.

Si una Base de Datos se gestiona adecuadamente, la organización obtendrá diferentes ventajas. Entre ellas:

Aumentará su eficacia

Habrá trabajos que se realicen con mayor rapidez y agilidad debido a la simplificación de los mismos

Podremos mejorar la seguridad de los datos que almacenamos

Minimización de los tiempos de respuesta.

Mejora en la productividad.

Estas funcionalidades aportarán un valor añadido a la empresa, ya que con una base

de datos formulada correctamente, conseguiremos que la información

y el

conocimiento sean los mayores activos de la compañía, lograremos sacar el máximo rendimiento a las competencias de nuestros colaboradores, así como

averiguar datos de nuestros clientes potenciales. Por último, puesto que la información es poder, cuantos más datos tengamos, mayor será la competitividad de la compañía.

Las bases de datos son fundamentales para establecer estrategias CRM. Una estrategia CRM consiste en recolectar toda la información posible sobre los clientes para gestionar estas relaciones en torno a los datos. De esta manera conseguiremos segmentar aquella información que sea más relevante para cada uno y optimizar algunos aspectos de la comunicación comercial, como ofrecer campañas publicitarias más personalizadas, ofrecer soporte específico, y llevar un registro minucioso de todos los documentos que enviamos y recibimos de esa empresa. También se automatizan las órdenes, cotizaciones y el proceso de ventas.

Principales funciones de un administrador de bases de datos

La responsabilidad general del DBA es facilitar el desarrollo y el uso de la Base de Datos dentro de las guías de acción definidas por la administración de los datos.

El DBA es responsable primordialmente de:

Administrar la estructura de la Base de Datos

Administrar la actividad de los datos

Administrar el Sistema Manejador de Base de Datos

Establecer el Diccionario de Datos

Asegurar la confiabilidad de la Base de Datos

Confirmar la seguridad de la Base de Datos.

Administración de la estructura de la Base de Datos: Incluye participar en el diseño inicial de la BD y su puesta en práctica, así como controlar, y administrar sus requerimientos, ayudando a evaluar alternativas, incluyendo los DBMS a utilizar y ayudando en el diseño general de la BD. Luego de diseñar, es puesta en práctica utilizando productos del DBMS, procediéndose entonces a la creación de los datos (captura inicial). El DBA participa en el desarrollo de procedimientos y controles para asegurar la calidad y la alta integridad de la BD.

Implicaciones por la modificación de los esquemas: una vez que un sistema entra en operación las solicitudes de modificaciones son inevitables, aquí se deben incluir procedimientos y políticas, mediante las cuales los usuarios puedan registrar sus necesidades de modificaciones, así podrán ser analizadas y se podrán discutir el impacto de las mismas.

Documentación: la responsabilidad final y una de las más importantes en la administración de la estructura de una BD es la documentación, ósea aquí se debe saber que modificaciones han sido efectuadas, como se efectuaron y cuando fueron establecidas. Para identificar un cambio es muy importante mantener dichos registros de todos los formatos de pruebas y de las ejecuciones que se hacen.

Administración de la actividad de datos: aunque el DBA protege los datos, no los procesas, ya que este no es usuario del sistema, por lo tanto este debe proporcionar estándares, guías de acción, procedimientos de control y la documentación necesaria, para garantizar que los usuarios trabajan en forma cooperativa y complementaria al procesar datos en la BD. Debe procurarse siempre que los estándares que serán aplicados beneficien también a los usuarios, privilegiando siempre la optimización en la operación del DBMS y el apego de las políticas de la empresa.

Entre las alternativas más utilizadas por el DBA para tratar de resolver o minimizar este problema se encuentran las siguientes:

  • a) Restringir el acceso a los procedimientos para ciertos usuarios.

  • b) Restringir al acceso a los datos para ciertos usuarios procedimientos y/o datos.

  • c) Evitar la coincidencia de horarios para usuarios que comparten.

Las técnicas de recuperación son otra función esencial del DBA al administrar la actividad de datos, el DBA es el responsable de la publicación y mantenimiento de la documentación en relación con la actividad de los datos, incluyendo los estándares de la BD, los derechos de recuperación y de acceso a la BD, los estándares para la recuperación de caídas y el cumplimiento de las políticas establecidas

Definir el esquema conceptual: es tarea del administrador de datos decidir con exactitud cuál es la información que debe mantenerse en la base de datos, es decir, identificar las entidades que interesan a la empresa y la información que debe registrarse acerca de esas entidades. Este proceso por lo general se denomina diseño lógico a veces conceptual- de bases de datos.

Definir el esquema interno: el DBA debe decidir también como se representará la información en la base de datos almacenada. A este proceso suele llamársele diseño físico de la base de datos.

Vincularse con los usuarios: el DBA debe encargarse de la comunicación con los usuarios, garantizar la disponibilidad de los datos que requieren y

escribir - o ayudar a los usuarios a escribir- los esquemas externos necesarios, empleando el DDL externo aplicable.

Definir las verificaciones de seguridad e integridad: las verificaciones de seguridad y de integridad pueden considerarse parte del esquema conceptual. El DDL conceptual incluirá los medios para especificar dichas verificaciones.

Definir procedimientos de respaldo y recuperación: cuando una empresa se decide a utilizar un sistema de base de datos, se vuelve dependiente en grado sumo del funcionamiento correcto de ese sistema. En caso de que sufra daño cualquier porción de la base de datos por causa de un error humano, digamos, o una falla en el equipo o en el sistema que lo apoya resulta esencial poder reparar los datos implicados con un mínimo de retraso y afectando lo menos posible el resto del sistema. En teoría, por ejemplo, la disponibilidad de los datos no dañados no debería verse afectada. El DBA debe definir y poner en práctica un plan de recuperación adecuada que incluya, por ejemplo una descarga o "vaciado" periódico de la base de datos en un medio de almacenamiento de respaldo, y procedimientos para cargar otra vez la base de datos a partir de vaciado más reciente cuando sea necesario.

Supervisar el desempeño y responder a cambios en los requerimientos:

es responsabilidad del DBA organizar el sistema de modo que se obtenga el desempeño que sea "mejor para la empresa", y realizar los ajustes apropiados cuando cambien los requerimientos.

Definición del esquema: el esquema original de la base de datos se crea escribiendo un conjunto de definiciones que son traducidas por el compilador de DDL a un conjunto de tablas que son almacenadas permanentemente en el DICCIONARIO DE DATOS.

Definición de la estructura de almacenamiento y del método de acceso:

estructuras de almacenamiento y métodos de acceso adecuados se crean escribiendo un conjunto de definiciones que son traducidas por el compilador del lenguaje de almacenamiento y definición de datos.

Modificación del esquema y de la organización física: las modificaciones, tanto al esquema de la base de datos como a la descripción de la organización física de almacenamiento, aunque relativamente poco comunes, se logran escribiendo un conjunto de definiciones que son usadas bien por el compilador del DDL o bien por el compilador del lenguaje de almacenamiento y definición de datos para generar modificaciones a las tablas internas apropiadas del sistema (por ejemplo, el diccionario de datos).

Concesión de autorización para el acceso a los datos: la concesión de diferentes tipos de autorización permite al administrador de la base de datos regular qué partes de la base de datos van a poder ser accedidas por varios usuarios.

Especificación de las restricciones de integridad: las restricciones de integridad se mantienen en una estructura especial del sistema que consulta el gestor de la base de datos cada vez que tiene lugar una actualización en el sistema.

Administración del DBMS

A demás de administrar la actividad de datos y la estructura de la BD, el DBA debe administrar el DBMS mismo. Deberá compilar y analizar estadísticas relativas al rendimiento del sistema e identificar áreas potenciales del problema, también vigilar periódica y continuamente las actividades de los usuarios en la BD y el deberá analizar las estadísticas de tiempo de ejecución sobre la actividad de la BD y su rendimiento.

Estrategias de datos

Calidad de datos

Calidad de datos es la cualidad de un conjunto de información recogida en una base de datos, un sistema de información o un data warehouse que reúne entre sus atributos la exactitud, completitud, integridad, actualización, coherencia, relevancia, accesibilidad y confiabilidad necesarias para resultar útiles al procesamiento, análisis y cualquier otro fin que un usuario quiera darles.

La calidad de los datos es más que una percepción. No existen estandarizaciones, ni una talla única en lo que se refiere a data quality. Mantener la exactitud y la integridad de todos los tipos de datos en toda la organización es trabajar por su aptitud para cumplir con su propósito en un contexto dado, implica garantizar que cada dato reúne todos los atributos necesarios:

Exactitud

Integridad

Actualización

Relevancia

Coherencia

Confiabilidad

Presentación apropiada

Accesibilidad

El aseguramiento de la calidad de los datos es el proceso de verificación de la fiabilidad y efectividad de los datos, que debe realizarse periódicamente, y que incluye acciones como:

Actualización

Normalización

De-duplicación

Toda organización debe buscar el obtener una visión única de la verdad, independientemente de que para alcanzar su conocimiento necesite apoyarse en datos de distintos tipos, que éstos se almacenen en múltiples sistemas dispares o provengan de fuentes heterogéneas.

Metadatos

Los metadatos son datos altamente estructurados que describen información, describen el contenido, la calidad, la condición y otras características de los datos. Es "Información sobre información" o "datos sobre los datos". Algunos ejemplos de información que se puede describir usando metadatos son: impresa, audiovisual, geoespacial, etc.

El término metadatos describe varios atributos de los objetos de información y les otorga significado, contexto y organización. La teoría y la práctica descriptiva de los metadatos es un área familiar para muchos, dado que sus raíces están arraigadas en la catalogación de publicaciones impresas. En el mundo digital, han aparecido categorías de metadatos adicionales para sustentar la navegación y la gestión de archivos.

Tipos de metadatos y sus funciones

Con fines prácticos, los tipos y funciones de los metadatos pueden clasificarse en tres amplias categorías: descriptivos, estructurales y administrativos. Estas categorías no siempre tienen límites bien definidos y con frecuencia presentan un significativo nivel de superposición. Por ejemplo, los metadatos administrativos pueden incluir una amplia gama de información que podría ser considerada como metadatos descriptivos y estructurales.

• Organizar y mantener el caudal del conjunto de datos de una organización.

• Proporcionar información para catálogos de datos y centros de distribución de metadatos.

• Proveer información necesaria para interpretar y procesar datos transferidos

por otra organización.

• Proporcionar una descripción de una entidad de información junto con otra

información necesaria para su manejo y preservación

• Proporcionar los puntos de acceso a esa descripción • Codificar esa descripción

Estructura de los metadatos

Los metadatos están estructurados por un mínimo de elementos tales como: título, autor, fecha de creación, etc. Típicamente, los elementos que conforman un metadato están definidos por algún estándar, donde los usuarios que deseen compartir metadatos están de acuerdo con un significado preciso de cada elemento.

Información sobre la identificación de los datos

Aquí se incluye la información básica sobre el conjunto de datos. Los elementos a documentar son:

  • Título: Nombre del conjunto de datos o del mapa/imagen.

  • Área geográfica: Cobertura espacial de la base de datos.

  • Descripción de los datos: Resumen que indica el propósito o uso para el cual fue elaborado el set de datos.

  • Temporalidad de los datos: Fecha en que fue elaborado el set de datos.

  • Normas para obtener y utilizar los datos: Indicar como se puede obtener una copia de la base de datos y cuáles son las condiciones que regulan su uso.

  • Contacto: Dirección física y electrónica de la persona que puede proveer acceso a los datos, incluyendo horas de oficina.

  • Fecha y nombre de la persona que elaboró los metadatos. Indicar la fecha y la persona responsable por elaborar la descripción del set de datos.

Aprendido de la semana 1

Wandy:

En esta semana recordé conceptos básicos de una base de datos, su importancia, y la forma en que estas trabajan internamente. Además pudimos definir y diferenciar de forma más exacta los diferentes personajes que interactúan con una base de datos, y sobre todo las verdaderas funciones de un administrador de base de datos. También algunas estrategias relacionadas a las bases de datos.

Yansell:

En esta semana el tema mencionado ya lo había visto lo nuevo que pude ver fue la parte de los modeladores de base de datos, uno nuevo que se menciono es el ERwin Data Modeler que te brinda lo que es modelado de datos, modelado de procesos de negocios, una arquitectura empresarial, dato de gobernancia y colaboración. También mencionamos lo que fue el EMS SQL Management que es una solución completa para administración y desarrollo de bases de datos.

Erickson:

En la primera parte pude entender de manera más clara cuál es el proceso o ciclo de vida de una base de datos, es decir cómo va siendo durante su crecimiento. Además de cuales estrategias de datos se utilizan para el buen uso y buen manejo de los datos como son calidad de datos, metadatos, entre otras estrategias utilizadas como buenas prácticas para el buen crecimiento, almacenamiento y fácil manipulación de los datos.

Javier:

He refrescado mis conocimientos teóricos sobre las partes de una base de datos: cardinalidad, claves, SGBD, etc.

Segunda Semana: 07/10/2017

Índices, esquemas y filegroups

¿Cómo trabaja una base de datos? (B-trees)

Para trabajar en una base de datos debemos tener presente lo siguiente

ENTIDAD. Se puede definir una entidad como cualquier objeto (real o abstracto) que exista en la realidad y acerca del cual queremos almacenar información en la base de datos.

INTERRELACIÓN. Entendemos por interrelación una asociación, vinculación o correspondencia entre entidades. Denominaremos tipo de interrelación a la estructura genérica que describe un conjunto de relaciones.

DOMINO Y valor Las distintas propiedades o características de un tipo de entidad o de interrelación toman valores para cada ejemplar de estas. El conjunto de posibles valores que puede tomar una cierta característica se denomina dominio. Se denomina dominio como un conjunto de valores homogéneos con un nombre.

ATRIBUTO. Cada una de las propiedades o características que tiene un tipo de entidad o un tipo de interrelación se denomina atributo, los atributos toman valores de una o varios dominios, por tanto vale decir que el atributo le da una determinada interpretación al dominio.

RESTRICCIONES: Son reglas que deben mantener los datos almacenados en la base de datos

Correspondencia de cardinalidades.

Dado un conjunto de relaciones en el que participan dos o más conjuntos de entidades, la correspondencia de cardinalidad indica el número de entidades con las que puede estar relacionada una entidad dada.

Dado un conjunto de relaciones binarias y los conjuntos de entidades A y B, la correspondencia de cardinalidades puede ser:

  • Uno a uno: Una entidad de A se relaciona únicamente con una entidad en B y viceversa.

  • Uno a varios: Una entidad en A se relaciona con cero o muchas entidades en B. Pero una entidad en B se relaciona con una única entidad en A.

14

  • Varios a uno: Una entidad en A se relaciona exclusivamente con una entidad en B. Pero una entidad en B se puede relacionar con 0 o muchas entidades en A.

  • Varios a varios: Una entidad en A se puede relacionar con 0 o muchas entidades en B y viceversa.

Claves

Es un subconjunto del conjunto de atributos comunes en una colección de entidades, que permite identificar unívocamente cada una de las entidades pertenecientes a dicha colección. Asimismo, permiten distinguir entre sí las relaciones de un conjunto de relaciones.

Dentro De Los Conjuntos De Entidades Existen Los Siguientes Tipos De Claves:

  • Superclave: Es un subconjunto de atributos que permite distinguir unívocamente cada una de las entidades de un conjunto de entidades. Si otro atributo unido al anterior subconjunto, el resultado seguirá siendo una superclave.

  • Clave candidata: Dada una superclave, si ésta deja de serlo removiendo únicamente uno de los atributos que la componen, entonces ésta es una clave candidata.

  • Clave primaria: Es una clave candidata, elegida por el diseñador de la base de datos, para identificar unívocamente las entidades en un conjunto de entidades.

La estructura básica de SQL consiste en tres clausulas, select, from y where, de las cuales se define brevemente:

  • SELECT: corresponde a la operación proyección del algebra relacional, y se usa para mostrar los atributos deseados de una consulta.

  • FROM: corresponde a la operación producto cartesiano del algebra relacional Lista las relaciones que deben ser analizadas en la evaluación

  • WHERE: corresponde al predicado selección del algebra relacional, es un predicado que engloba a los atributos de las relaciones que aparecen en la cláusula from.

SENTENCIAS PARA LA MANIPULACIÓN DE DATOS

  • INSERT: Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional.

  • UPDATE: Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.

  • DELETE: Una sentencia DELETE de SQL borra cero o más registros existentes en una tabla.

B-TREES

B-árbol es un árbol de búsqueda que puede estar vacío o aquel cuyos nodos pueden tener varios hijos, existiendo una relación de orden entre ellos.

n árbol-B de orden M (el máximo número de hijos que puede tener cada nodo) es un árbol que satisface las siguientes propiedades:

  • 1. Cada nodo tiene como máximo M hijos.

  • 2. Cada nodo (excepto raíz) tiene como mínimo (M)/2 claves.

  • 3. La raíz tiene al menos 2 hijos si no es un nodo hoja. (según M)

  • 4. Todos los nodos hoja aparecen al mismo nivel.

  • 5. Un nodo no hoja con k hijos contiene k-1 elementos almacenados.

  • 6. Los hijos que cuelgan de la raíz (r1, ···, rm) tienen que cumplir ciertas condiciones:

    • 1. El primero tiene valor menor que r1.

    • 2. El segundo tiene valor mayor que r1 y menor que r2, etc.

    • 3. El último hijo tiene valor mayor que rm.

La estructura es un árbol de búsqueda equilibrado porque la profundidad del árbol es idéntica en cada posición; la distancia entre el nodo raíz y los nodos hojas es idéntica en todas las partes del árbol.

Una vez creado el índice, la base de datos lo mantiene automáticamente. Se aplican cada insert, delete y update al índice y se conserva el árbol equilibrado, lo que genera una sobrecarga de mantenimiento para las operaciones de escritura.

¿Qué es un índice?

El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, por medio de identificador único de cada fila de una tabla, permitiendo un rápido acceso a los registros de una tabla en una base de datos.

El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver un registro que se encuentre en la posición marcada por el índice.

Los índices pueden ser creados usando una o más columnas, proporcionando la base tanto para búsquedas rápidas al azar como de un ordenado acceso a registros eficiente.

Los índices son construidos sobre árboles B, B+, B* o sobre una mezcla de ellos, funciones de cálculo u otros métodos.

Permiten mejorar el rendimiento de las consultas en los querys que realicemos a una tabla. Estos están asociados a una tabla o una vista lo que acelera la recuperación de las filas de la misma.

Estos índices están almacenados en una estructura de árbol lo que permite en SQL Server lo encuentra más rápido las filas que posean el índice o los valores de cada clave.

Una vez que se crean los índices se deben mantener para maximizar la performance de las consultas, para ello existen varias herramientas que asisten en la tarea de administrar y mantener los índices. Esta administración comprende la tarea de crearlos, nombrarlos y eliminarlos.

Tipos de índice

Agrupados: Ordenan y almacenan las filas de datos de la tabla en conjunto con los valores claves del mismo. Solo puede existir un “cluster” uno en cada tabla o índice, ya que las filas solo pueden estar ordenadas de una sola manera. Cuando una tabla posee un índice de este tipo se llama tabla agrupada. El tamaño de un índice agrupado es aproximadamente el 5% de la tabla.

No agrupados: Estos tienen su estructura separada de las filas de datos. Cada entrada de algún valor de la clave está apuntando a una fila la cual posee la llave. Los datos almacenados están fueras de lugar o en lugares diferentes.

Un Índice agrupado como no agrupado pueden ser únicos en la tabla en la que estén. La diferencia de esto es que los agrupados están ordenados. Los índices se crean al momento de definir el PRIMARY KEY y UNIQUE de una tabla. Si no se especifica un tipo de índice, por defecto será no agrupado. Hay campos que no se pueden indexar como los text e image.

¿Cómo crear un índice?

CREATE TIPO_INDICE INDEX NOMBRE_INDICE ON TABLA (CAMPO); TIPO_INDICE: agrupado (clustered) y no agrupado (nonclustered). EJEMPLO INDICE AGRUPADO:

CREATE UNIQUE CLUSTERED INDEX I_TABLA_ID ON TABLA (ID)

EJEMPLO INDICE COMPUESTO:

CREATE INDEX I_TABLA_ID_DESCRIPCION ON TABLA (ID, DESCRIPCION)

Estructura de los índices

En SQL Server, los índices se organizan como árboles b. Las páginas de un árbol b de índice se llaman nodos del índice.

El nodo superior del árbol b se llama nodo raíz.

El nivel inferior de los nodos del índice se denomina nodos hoja.

Los niveles del índice entre el nodo raíz y los nodos hoja se conocen en conjunto como niveles intermedios.

Ventajas del uso de índices en una base de datos

  • Una de las mayores ventajas es que cuando en la base de datos se encuentra un índice evitamos un “escaneo completo de la tabla” lo que hace que cuando tenemos grandes cantidades de datos en nuestras tablas, la mejora puede ser muy importante.

  • Muy relacionado con el anterior… al evitar “escaneos completos de las tablas”, evitamos los siguientes problemas: Sobrecarga de CPU, sobrecarga de disco y concurrencia.

  • Con los índices evitamos que la base de datos tenga que hacer lecturas secuenciales.

  • Los índices nos permiten una mayor rapidez en la ejecución de las consultas tipo SELECT lo que sea WHERE …

  • Y por último será una ventaja para aquellos campos que no tengan datos duplicados, sin embargo, si es un campo con valores que se repiten continuamente (Ej. Masculino/Femenino) no es aconsejable.

Desventajas del uso de índices en una base de datos

A pesar de sus grandes ventajas no debemos abusar de ellos puesto que en determinadas situaciones no supondrá una mejora:

Los índices son una desventaja en aquellas tablas las que se utiliza

frecuentemente operaciones de escritura (Insert, Delete, Update), esto es porque los índices se actualizan cada vez que se modifica una columna. Los índices también suponen una desventaja en tablas demasiado pequeñas puesto que no necesitaremos ganar tiempo

en las consultas.

Tampoco son muy aconsejables cuando pretendemos que la tabla sobre la

que se aplica devuelva una gran cantidad de datos en cada consulta. Por último hay que tener en cuenta que ocupan espacio y en determinadas ocasiones incluso más espacio que los propios datos.

¿Qué es un esquema de base de datos?

El término "esquema de base de datos" puede referirse a una representación visual de una base de datos, a un conjunto de reglas que rige una base de datos, o bien, a todo el conjunto de objetos que pertenecen a un usuario en particular.

Un esquema de base de datos escribe la estructura de una base de datos, en un lenguaje formal soportado por un sistema de gestión de base de datos (DBMS). En una base de datos relacional, el esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla.

El esquema es generalmente almacenado en un diccionario de datos. Aunque generalmente el esquema es definido en un lenguaje de base de datos, el término se usa a menudo para referirse a una representación gráfica de la estructura de base de datos.

Estrategias para crear un esquema de base de datos

Usar SQL Server Management Studio

Para crear un esquema

  • 1. En el Explorador de objetos, expanda la carpeta Bases de datos .

  • 2. Expanda la base de datos en la que se va a crear el esquema de la misma.

  • 3. Haga clic con el botón derecho en la carpeta Seguridad , seleccione Nuevoy seleccione Esquema.

  • 4. En el cuadro de diálogo Esquema - Nuevo , en la página General , escriba un nombre para el nuevo esquema en el cuadro Nombre de esquema .

  • 5. En el cuadro Propietario del esquema , escriba el nombre del usuario o rol de base de datos que va a poseer el esquema. Como alternativa, haga clic en Buscar para abrir el cuadro de diálogo Buscar roles y usuarios .

  • 6. Haga clic en Aceptar.

Opciones adicionales

El cuadro de diálogo Esquema - Nuevo también proporciona opciones de dos páginas adicionales: Permisos y Propiedades extendidas.

La página Permisos muestra todos los elementos protegibles posibles y los permisos en esos elementos protegibles que se pueden conceder al inicio de sesión.

La página Propiedades extendidas permite agregar propiedades personalizadas a los usuarios de base de datos.

Usar Transact-SQL

Para crear un esquema

  • 1. En el Explorador de objetos, conéctese a una instancia del Motor de base de datos.

  • 2. En la barra de Estándar, haga clic en Nueva consulta.

  • 3. En el siguiente ejemplo se crea un esquema denominado Chains y luego se crea una tabla denominada Sizes.

SQLCopiar CREATE SCHEMA Chains; GO CREATE TABLE Chains.Sizes (ChainID int, width dec(10,2));

  • 4. Se pueden realizar opciones adicionales en una sola instrucción. En el ejemplo siguiente se crea el esquema Sprockets, que es propiedad de Annik y contiene la tabla NineProngs. La instrucción concede el permiso SELECT a Mandar y deniega el permiso SELECT a Prasanna.

SQLCopiar CREATE SCHEMA Sprockets AUTHORIZATION Annik CREATE TABLE NineProngs (source int, cost int, partnumber int) GRANT SELECT ON SCHEMA::Sprockets TO Mandar DENY SELECT ON SCHEMA::Sprockets TO Prasanna; GO

  • 5. Ejecute la siguiente instrucción para ver los esquemas de esta base de datos:

SQLCopiar SELECT * FROM sys.schemas;

Concepto de filegroup

Los filegroup o grupos de archivos son una manera de separar lógicamente los ficheros físicos de nuestra base de datos.

En las bases de datos Oracle se les conoce como tablespaces.

Importancia de un filegroup

Los filegroups son útiles para distribuir tablas con alto volumen de información en diferentes discos para separar los índices de los datos. Definen conjuntos de archivos para obtener paralelismo en distintas unidades almacenamiento. Aceleran la velocidad de la base de datos. Evitan estancamiento o cuellos de botella en los accesos a las bases de datos.

Aprendido de la semana 2

Wandy:

En esta semana aprendí el funcionamiento de un B-Tree, sus diferencias en relación a los árboles binarios, que parecían ser lo mismo, hasta ahora. Repasamos algunos conceptos relacionados a los índices de bases de datos, además de aprender algunas sentencias y palabras claves que no había puesto en práctica, junto a unas estrategias, ventajas y desventajas sobre el uso de estos. Por otro lado, conocí nuevas funciones para los esquemas y filegroups que me ayudaron a comprender la verdadera importancia de estos elementos en una base de datos, su organización, seguridad y administración.

Yansell:

En esta semana tratamos temas muy interesantes de los cuales había muchos que no conocía, en los mismos cabe mencionar los siguientes:

Índices: son los que nos permiten mejorar el rendimiento de las consultas a una tabla de la base de datos, ya que estos tienen un almacenamiento en la base de datos en forma de árbol esto acelera el proceso más rápido de la búsqueda. También vimos que estos de dividían en índices agrupados y no agrupados.

Esquemas: que son estructuras que nos permiten separar los espacios de trabajos, ósea

que estos son contenedores que pueden tener tablas, procedimientos, funciones, vistas, etc., el objetivo de los mismos es poder tener varios esquemas sobre una base de datos donde los

mismos pueden estar asignados a un usuario y por cada esquema puede operar una empresa diferente, entre muchas cosas más.

Filegroups: son una manera de separar lógicamente los ficheros físicos de nuestra base

de datos, esto buscando un mayor rendimiento a la hora de procesar o obtener información del servidor, estos son útiles para distribuir tablas con altos volúmenes de información en diferentes discos para separar los índices de los datos y acelerar la velocidad de la base de datos.

Erickson:

Dentro de los nuevos temas tratados en las clases anteriores pude aprender sobre algunos temas y conceptos que mencionare a continuación, así también como sus utilidades, como se pueden implementar, entre otras cosas.

B-tree: Es una parte de la estructura de datos utilizada en base de datos para manejar los datos y el acceso a estos. Se puede llamar a esto una lista doblemente enlazada que permite de esta manera que la búsqueda de un dato sea más rápida.

Esquema: es considerado como un conjunto de objetos que pertenecen a un usuario en particular, es decir es como tomar una parte de una base de datos e aislarla para asignarla exclusivamente a uno a varios usuarios, sin la necesidad de ligarla a una base de datos general. Además cuales son las mejores prácticas de donde se le podría dar un buen uso a esta potencial

Javier:

Sobre el uso de índices aprendí que estos ofrecen muchas ventajas en la velocidad de las búsquedas pero que también ofrecen desventajas cuando se abusa de uso de estos como en los casos en que las tablas indexadas son utilizadas frecuentemente para operaciones de escritura o tablas demasiadas pequeñas al igual que tablas con gran cantidad de datos.

Aprendí sobre schemas y sobre filegroup estos son de gran ayuda para aumentar la velocidad de los datos ya que evitará con esto que un disco contenga toda la carga en relación a las consultas y actualizaciones de la base de datos.