Base de Datos

24
BASE DE DATOS UNIDAD 1 Introducción a los sistemas de administración de base de datos Usuarios: Hay cuatro tipos de usuarios de un sistema de base de datos: Usuarios Normales: Son usuarios no sofisticados que interactúan con la base de datos mediante un programa de aplicación. Estos usuarios pueden rellenar formulario para de esa forma cargar datos en la BD o leer informes generados de la base de datos. Programadores de aplicaciones: crean programas de aplicación. Utilizan herramientas de desarrollo rápido para desarrollar aplicaciones que faciliten la presentación de formularios y el muestreo de datos en pantalla. Su labor gira en torno a las consultas y a la actualización. Usuarios Sofisticados: Interactúan con el sistema sin la necesidad de un programa de aplicación. Ellos generan sus propias consultas mediante un lenguaje de consultas de BD. Usuarios Especializados: Son usuarios sofisticados que escriben aplicaciones de bases de datos especializadas, no adaptadas al procesamiento de daos tradicional. Además de estos usuarios, se encuentra el administrador de bases de datos: Administrador de bases de datos: es la persona encargada de llevar el control centralizado del sistema de base de datos, y cumple las siguientes funciones: o Creación del esquema original de la base de datos. o Definición de la estructura y el método de acceso. o Modificación del esquema y de la organización física. o Concesión de la autorización para el acceso a los datos. o Llevar el mantenimiento rutinario de la base de datos. Copia de seguridad periódica de la base de datos. Asegurarse de que haya suficiente espacio en disco. Supervisión de los trabajos realizados sobre la base de datos y del rendimientos Sistema de Gestión de Base de datos: Base de Datos: es un conjunto de datos interrelacionados. Sistema de información basado en el manejo de archivos (Características): La información se almacena en archivos del sistema operativo son escritas en función a las necesidades actuales, si estas en un futuro estas necesidades se actualizan, será necesario realizar otros programas de aplicación al sistema. Los registros permanentes son almacenados en varios archivos y se escriben distintos programas de aplicación para acceder a ellos. La información puede estar duplicada en varios archivos. 1

description

resumen completo de base de datos, desde definición de tipos de indices, a conversión de DER a MR y normalizacion

Transcript of Base de Datos

Page 1: Base de Datos

BASE DE DATOS UNIDAD 1

Introducción a los sistemas de administración de base de datos

Usuarios: Hay cuatro tipos de usuarios de un sistema de base de datos:

• Usuarios Normales: Son usuarios no sofisticados que interactúan con la base de datos mediante un programa de aplicación. Estos usuarios pueden rellenar formulario para de esa forma cargar datos en la BD o leer informes generados de la base de datos.

• Programadores de aplicaciones: crean programas de aplicación. Utilizan herramientas de desarrollo rápido para desarrollar aplicaciones que faciliten la presentación de formularios y el muestreo de datos en pantalla. Su labor gira en torno a las consultas y a la actualización.

• Usuarios Sofisticados: Interactúan con el sistema sin la necesidad de un programa de aplicación. Ellos generan sus propias consultas mediante un lenguaje de consultas de BD.

• Usuarios Especializados: Son usuarios sofisticados que escriben aplicaciones de bases de datos especializadas, no adaptadas al procesamiento de daos tradicional.

Además de estos usuarios, se encuentra el administrador de bases de datos: • Administrador de bases de datos: es la persona encargada de llevar el control

centralizado del sistema de base de datos, y cumple las siguientes funciones: o Creación del esquema original de la base de datos. o Definición de la estructura y el método de acceso. o Modificación del esquema y de la organización física. o Concesión de la autorización para el acceso a los datos. o Llevar el mantenimiento rutinario de la base de datos.

Copia de seguridad periódica de la base de datos. Asegurarse de que haya suficiente espacio en disco. Supervisión de los trabajos realizados sobre la base de datos y del

rendimientos

Sistema de Gestión de Base de datos: Base de Datos: es un conjunto de datos interrelacionados. Sistema de información basado en el manejo de archivos (Características):

• La información se almacena en archivos del sistema operativo • son escritas en función a las necesidades actuales, si estas en un futuro estas

necesidades se actualizan, será necesario realizar otros programas de aplicación al sistema.

• Los registros permanentes son almacenados en varios archivos y se escriben distintos programas de aplicación para acceder a ellos.

• La información puede estar duplicada en varios archivos.

1

Page 2: Base de Datos

BASE DE DATOS UNIDAD 1

• Todos los usuarios tienen acceso al archivo. • La supervisión es difícil de proporcionar.

Sistema de gestión de base de datos: es una colección de datos interrelacionados junto a una colección de programas para acceder a esos datos. Posee las siguientes características:

• Naturaleza auto-descriptiva de un sistema de base de datos: el sistema de base de datos no solo contiene la propia base de datos, sino que también contiene la definición de la estructura de la base de datos y sus restricciones.

• Aislamiento entre programas, datos y abstracción de datos: las estructuras de archivos de datos se almacenan en el catalogo de la DBMS, independientemente de los programas de aplicación.

• Soporte de varias vistas de los datos: Normalmente una base de datos tiene varios tipos de usuarios, de los cuales cada uno tiene una perspectiva diferente de la base de datos.

• Compartición de datos y procesamiento de transacciones multiusuario: Permitir que varios usuarios accedan a la base de datos al mismo tiempo.

Sistemas de información basados en el manejo de archivos.

Sistemas de gestión de base de datos

La definición de datos forma parte de los programas de aplicación.

Contiene la base de datos en si misma, la definición de la estructura de esta y sus restricciones.

La estructura de archivos de datos esta incrustada en las aplicaciones.

La estructura de archivos de datos se almacena en el catalogo de la DBMS, independientemente de los programas de aplicación.

Solo un usuario puede acceder a la vez. Permiten el acceso de varios usuarios al mismo tiempo.

No distingue tipos de usuarios. Distingue tipos de usuarios. Gestor de almacenamiento: Es un modulo de programa que proporciona la interfaz entre los datos de bajo nivel y los programas de aplicación y consultas emitidos por el sistema. Está compuesto por:

• Gestión de autorización e integridad: que controla que se cumplan las restricciones de integridad y la autorización para que los usuarios accedan a los datos.

• Gestor de Transacciones: asegura que la base de datos permanezca en un estado consistente.

• Gestor de archivos: Gestiona la reserva del espacio de almacenamiento y las estructuras de datos utilizadas.

• Gestor de memoria intermedia: Trae los datos desde la memoria intermedia y decide cual almacenar en el caché.

2

Page 3: Base de Datos

BASE DE DATOS UNIDAD 1

Procesador de Consultas: Analiza que todo lo buscado es correcto y lo exhibe si es así. Está compuesta por los siguientes componentes:

• Interprete del Lenguaje de Definición de Datos: Interpreta las instrucciones LDD y registra definiciones en el diccionario de datos.

• Compilador del Lenguaje de Manipulación de Datos: Que traduce las instrucciones LMD al lenguaje de consultas.

• Motor de Evaluación de Consultas: que ejecuta las instrucciones de bajo nivel generadas por el compilador LMD.

Ventajas de utilizar un SGBD: • Control de la redundancia de datos. • Restricción de accesos no autorizados. • Almacenamiento persistente para los objetos del programa. • Proporcionan la capacidad de ejecutar eficazmente actualizaciones y consultas. • Ofrece la posibilidad de recuperarse ante fallas y/o errores, mediante las copias de

seguridad. • Suministra varias interfaces de usuarios. • Representación de relaciones complejas entre los datos. • Implementa restricciones de integridad • Algunas bases de datos proveen la posibilidad de definir reglas de deducción, para

inferir información nueva a partir de los datos guardados en las bases de datos. • Potencial para implementar estándares. • Tiempo de desarrollo de aplicación reducido • Flexibilidad • Disponibilidad de información actualizada. • Economías de escala.(reduce el derroche de utilización de los empleados.)

3

Page 4: Base de Datos

BASE DE DATOS UNIDAD 1

Cuando no usar un SGBD: • Cuando las aplicaciones de base de datos sean sencillas y no sea predecible que

cambien. • Cuando se tengan requisitos estrictos y en tiempo real, en el que el sobrecoste de

una SGBD suponga un problema. • Cuando no exista el acceso multiusuario a los datos.

4

Page 5: Base de Datos

BASE DE DATOS UNIDAD 1

Arquitectura De La Base De Datos (visión de datos) La arquitectura provee una versión abstracta de datos, es decir esconde detalles del almacenamiento de datos (almacenamiento físico). Posee tres niveles:

• Nivel Físico: Describe como se almacenan los datos. Se describen las estructuras de datos complejas de bajo nivel.

• Nivel Lógico: Describe los datos que se almacenan, las relaciones entre ellas, describe estructuras y significados de los datos que se están almacenando.

• Nivel externo ( de vistas): describe aquello que cada tipo de usuario necesita ver de la BD.

Independencia de datos: Es la capacidad de modificar la definición de un esquema en un nivel, sin que afecte a la definición del esquema en el siguiente nivel más alto. Hay dos niveles de independencia de datos:

• Independencia Física: Indica que se puede modificar el esquema físico de datos, sin que afecte al esquema lógico de datos. permite modificar la forma de almacenamiento físico sin que sea necesario reescribir la base de datos o las aplicaciones que la utilizan.

• Independencia Lógica: Es la capacidad de modificar el esquema lógico de la base de datos, sin tener que modificar las vistas ni las aplicaciones que la utilizan.

Esquema de la base de datos: Diseño completo de la base de datos. Está compuesto por un conjunto de estructuras de datos, vínculos entre estas, tipos de datos y los significados de los datos. Los sistemas de gestión de base de datos utilizan varios esquemas distintos, divididos a través de los niveles de arquitectura de la Base de datos, Así a nivel físico existe un esquema físico o interno, a nivel lógico existe un esquema lógico o conceptual y a nivel vista un esquema externo.

5

Page 6: Base de Datos

BASE DE DATOS UNIDAD 1

Estado de la Base de Datos (o ejemplar): Está constituido por la colección de información almacenada en un momento dado, es la parte más dinámica de una base de datos, la que cambia constantemente. (Se agregan, modifican o eliminan datos.).

Modelos de datos: Es una colección de herramientas conceptuales para describir los datos, sus relaciones, la semántica de los datos y las ligaduras de consistencia. En pocas palabras, son herramientas que sirven para definir el esquema de una base de datos.

Grupos de modelos de datos: • Modelos lógicos basados en objetos: son modelos que se usan para describir

datos a nivel lógicos y de vista. o Modelo entidad relación: está basada en la percepción del mundo real,

que consta de un conjunto de objetos (entidades o cosas) y vínculos entre ellos. Describe objetos mediante atributos y define conjuntos de entidades y conjuntos de vínculos.

o Modelo orientado a objetos: define clases de objetos usando atributos y métodos. Atributos: datos Métodos: actividades que lleva a cabo el objeto.

Cada objeto tiene una entidad propia y es reconocible con respecto a los demás modelos de implementación.

• Modelos lógicos basados en registros: se usan para describir datos a nivel lógico y de vista, especifican estructuras lógicas completas para la base de datos, proporcionando descripciones de alto nivel. Se definen en base a registros con número fijo de campos.

o Modelo Relacional: almacena los datos como un conjunto de relaciones entre ellos. En este modelo los datos se almacenan en tablas, donde cada fila de la tabla es una relación de datos que representa a un objeto o a una relación entre objetos. Se dice que una tabla es una RELACIÓN. Las filas de las tablas corresponden a un registro y las columnas a un atributo.

o Modelo de red: Los datos se representan en colecciones de registros y las relaciones entre registros se establecen mediante enlaces (punteros). El conjunto de registros de base de datos lo constituye como un grafo que se organiza como una colección de grafos.

o Modelo Jerárquico: es similar al modelo de redes en cuanto a la representación de datos, registros y enlaces. Pero resulta que los registros se presentan como condición de arboles en lugar de grafos.

6

Page 7: Base de Datos

BASE DE DATOS UNIDAD 1

Diferencia entre modelo relacional y los modelos Red/Jerárquico • En el modelo relacional los vínculos entre registros no se representan a través de

punteros, sino que a través de copias de valores almacenados.

Modelos Físicos: Se usan para describir datos al nivel más bajo de la arquitectura de base de datos. A diferencia de los modelos lógicos, los modelos físicos son muy pocos. Simplemente describen como se van a almacenar, como se accede a ellos y que representan esos datos.

7

Page 8: Base de Datos

BASE DE DATOS UNIDAD 2

Archivos e índices

Archivos:

Registros: Es una estructura de datos (consta de una colección de valores o elementos de datos seleccionados) donde cada valor, está formado por uno o más bytes y corresponde a un campo del registro. El formato de registro está compuesto por el “nombre de campo” + “tipos de datos”. Pueden ser de longitud fija o variable. Se asignan a bloques en el disco.

Clúster: Pista perteneciente a un sector definido. Es la mínima unidad direccionadle del disco. También denominado bloque de disco.

• Factor de bloqueo: indica la cantidad de registro que caben en un bloque de disco. o Archivos extendidos: cuando se completa el bloque de disco y sobra una

parte del archivo; y dicha parte es almacenada en otro bloque de disco. o Archivos no extendidos: La porción de sobra no se almacena.

Cabeceras de ficheros: Son descriptores que contienen información relativa al archivo, útil para programas o para el gestor de almacenamiento. Contienen información sobre las direcciones de los bloques que ocupa el archivo en el disco, el formato de registros, longitudes de campos, orden de los campos, si el archivo es extendido o no, etc.

Organizaciones primarias: Determina la forma en que los registros se colocan físicamente en la unidad de almacenamiento y por lo tanto como se va a acceder a ellos. Existen 3 organizaciones primarias básicas:

• Archivos de montículos (Registros no ordenados): es el tipo más simple de archivos, los registros se colocan a medida que se los va creando.

o Inserción: es muy eficiente; se lee el último bloque, se agrega registros nuevos al bloque y se sobrescribe todo el bloque, si es necesario se actualiza la información referente al último bloque ocupado por el archivo, en la cabecera.

o Búsqueda: el único tipo de búsqueda que es posible aplicar, es la búsqueda secuencial o lineal.

o Borrado: teóricamente se debe buscar el registro y eliminarlo de su bloque; en la práctica, esto se hace mediante un borrado lógico (poner una marca de borrado en el registro). Requiere reorganizaciones periódicas para liberar el espacio de los registros marcados como borrados.

8

Page 9: Base de Datos

BASE DE DATOS UNIDAD 2

• Archivos ordenados: se ordenan de acuerdo a un campo de ordenación; si además es la clave del archivo, se dice que es la clave de ordenación. Típicamente son archivos secuenciales.

o Inserción: para insertar ordenadamente es necesario generar un espacio entre los registros donde debe ir el nuevo registro, se requiere una búsqueda previa, lo que significa leer y sobrescribir muchos bloques. En la práctica hay 2 opciones; una es ir dejando espacios libres en cada bloque para los nuevos registros (genera mucho desperdicio). La otra opción es usar un archivo adicional llamado fichero de desbordamiento o transacciones, en el cual los nuevos registros se almacenan y periódicamente se reestructura el conjunto (complica la búsqueda).

o Búsqueda: se puede aplicar búsqueda binaria, siempre y cuando la clave de búsqueda corresponda al campo de ordenación del archivo.

o Borrado: se realiza por medio del borrado lógico, al igual que el caso anterior.

• Archivos Dispersos (organización directa): o Utilizan Hashing: consiste en utilizar un dato del registro a almacenar,

como generador de una dirección de memoria (por medio de la función hash).

o Esta función genera la dirección física donde el registro se debe almacenar o buscar.se dice que la búsqueda es directa, porque al aplicar la función hash se obtiene la ubicación física en el disco.

o Si al almacenar un nuevo registro, la ubicación física obtenida, está ocupada por otro registro, se dice que tenemos una colisión. Las colisiones requieren un tratamiento especifico (típicamente se lo denomina tratamiento de colisiones). Normalmente consiste en un archivo secuencial en una ubicación específica. En la práctica no es directamente aplicable, porque requeriría de una unidad de almacenamiento para ese archivo únicamente.

o Direccionamiento externo: el espacio de direccionamiento para el archivo se divide en “cubetas”; cada una con capacidad para varios registros. Se crea una tabla de direcciones de cubetas (índice), cuyas entradas poseen número y dirección física de las cubetas. La función hash establece una correspondencia entre la clave y una cubeta a través del número de cubeta. Las colisiones están dadas cuando se llenan las cubetas. Para el tratamiento de colisiones se crea una cubeta de colisiones.

o La principal desventaja del método es la imposibilidad de conocer el espacio necesario al momento de crear el archivo, por lo que se puede generar mucho desperdicio si el archivo es pequeño o requiere periódicas reestructuraciones si el archivo resulta muy grande.

o La principal ventaja es que se usa la misma función para la búsqueda y almacenamiento.

o El direccionamiento externo permite el recorrido del archivo (recorriendo sus cubetas); el conceptos de archivos dispersos no lo permite.

9

Page 10: Base de Datos

BASE DE DATOS UNIDAD 2

Índices (archivos indexados): Es una estructura de datos auxiliar de acceso; es decir ayuda en eficiencia a las búsquedas. El índice por sí solo no es un archivo de datos. Típicamente se indexan los archivos secuenciales.

Características Generales: • Son archivos ordenados por un campo cuyos valores se obtienen de un archivo

secuencial. • Los registros del archivo índice constan de al menos un campo de datos ordenado;

que se obtiene del archivo de datos (clave de ordenación) más un puntero a bloques de discos donde se encuentra el registro del archivo que contiene la clave.

• Los índices poseen registros de longitud fija. • Pueden ser densos (un registro índice por cada registro en el archivo) o no densos

(o dispersos). • Pueden ser de un nivel o de múltiples niveles.

Índices primarios: Para poder crear un índice primario es necesario que el archivo de datos este ordenado por el campo clave de identificación de registros. Cada índice apunta a la cabera del bloque donde está almacenado el registro. Pueden ser densos o dispersos.

• Denso: tiene una entrada en el índice por cada valor de clave de búsqueda del fichero de datos (Correspondencia = 1 registro de archivo a 1 registro del índice.).

• Disperso: Tiene una entrada en el índice por cada bloque ocupado por el archivo de datos. Se toma el primer valor de clave de búsqueda de cada bloque (denominado ancla de bloque); con la dirección del bloque, asumiendo que los datos están en un intervalo entre la clave de búsqueda del bloque y la clave de búsqueda del bloque siguiente.

• Los índices primarios suelen ser dispersos; no densos. Las operaciones de inserción y borrado en el registro del archivo de datos pasan a ser sumamente costosas.

Índices de agrupación: Se crean sobre archivos ordenados por un campo que tiene valores repetidos, comúnmente llamado campo de agrupación. El índice se crea sobre este campo (de agregación); generalmente es disperso; existe un registro en el índice por cada valor distinto del campo de agrupación. Puede tener punteros a bloques repetidos; si en el mismo bloque hay distintas claves de agrupación, también puede suceder que algunos bloques no estén representados en el índice; esto se da cuando algunas claves ocupan varios bloques. Para cada clave distinta; se señala el bloque donde comienza a repetirse la clave.

10

Page 11: Base de Datos

BASE DE DATOS UNIDAD 2

Índices Secundarios: Consta de un campo correspondiente a cualquier campo del archivo de datos que no sean de ordenación (campo de indexación) y un puntero al bloque de disco que contiene el registro de datos correspondiente a la clave del campo de indexación. Siempre son densos porque se crean sobre un campo no ordenado. Pueden ser varios índices sobre el mismo archivo.

Caso especial de índice secundario: Cuando se cuenta con un archivo no ordenado por su campo clave de identificación. Crear un índice sobre este campo implica un índice denso equivalente a un índice primario denso; en ese caso se dice que es una clave secundaria.

Índices multinivel: Consiste en considerar al archivo índice como un archivo ordenado, para indexar (índice secundario=archivo indexado desordenado).Luego se crea un índice primario al nivel del índice (índice no denso)(usa ancla de bloque); pasa a ser el segundo nivel del índice; estos pasos se repiten hasta tener un índice que ocupe un solo bloque. Se pueden crear niveles hasta que el último nivel quepa en un bloque. Para encontrar un registro en particular en el archivo de datos, usando un índice multinivel, se necesita un acceso por cada nivel del índice y un acceso en el archivo de datos. Es igual a un Árbol b*.

11

Page 12: Base de Datos

BASE DE DATOS UNIDAD 3

Modelo Entidad – Relación

Modelo entidad – vinculo: No tiene su modelo de implementación. Es un modelo basado en objetos. Entidad=objeto= cosa. El modelo entidad relación define la entidad mediante sus atributos.

ENTIDAD:

Atributos o Propiedades: Equivalentes al campo de una estructura en C. Es la característica de la entidad a representar. Puede haber atributos entre vínculos. Pueden ser:

• Simples. • Compuestos (por atributos simples o otros atributos compuestos) • Mono valuados (único valor en el atributo) • Multivaluados (pueden contar con más de un valor en un atributo). • Almacenados (Cargados por el usuario) • Derivados (derivan su valor de otro atributo). Pueden existir valores nulos (indican que el dato no existe o se desconoce).

Tipos de entidad: Están constituidas por un conjunto de entidades que tienen los mismos atributos.

• Clave: compuestas por un conjunto no vacio de atributos cuyos valores son obligatorios y no repetibles, que identifican a una entidad de otra.

• Existencia de entidades fuertes y débiles: una entidad débil es siempre dependiente de una fuerte.

o Entidad fuerte: posible de identificar un conjunto de atributos claves. o Entidad Débil: no es posible identificar una clave por sí sola, pero si

utilizando una clave de otra entidad de la cual depende.

VINCULOS • Relación: asociación entre diferentes entidades. Vínculos = relación. • Tipos de vínculos: un conjunto de relaciones constituyen un tipo de vínculo

cuando esas relaciones vinculan entidades del mismo tipo; es decir constituyen conjuntos de relaciones del mismo tipo. Pueden tener atributos.

• Grado del tipo de vínculo: cantidad de tipos de entidades que intervienen en el vínculo.

• Rol: indica la función que desempeña una entidad respecto de la otra en el vínculo. Es útil para darle nombre al tipo de vínculo.

• Restricciones de vínculos:

12

Page 13: Base de Datos

BASE DE DATOS UNIDAD 3

o Cardinalidad: indica cuantas entidades de un tipo de entidad se vinculan con cuantos tipos de entidades de otro tipo. Pueden ser 1:1 ; 1:N ; N:1 ; N:N

o De Participación: Total: todas las entidades tienen que participar en un vínculo. Parcial: No todas las entidades participan del vínculo.

o Dependencia de existencia: a causa de tener una entidad de un cierto tipo; es necesario tener una entidad de otro tipo. Siempre genera participación total.

Diagrama Entidad – Relación: Diagrama útil para desarrollar el esquema de una base de datos.

Diagrama E-R Extendido: Se permite aplicar subtipos a los tipos de entidades.

• Especialización: Se tiene un conjunto y dentro de este se designan subconjuntos. Es el proceso de designación de subgrupos, dentro de un conjunto de entidades.se da cuando un subconjunto de las entidades se diferencian de las demás entidades por la existencia de al menos un atributo distinto. (se parte de lo general a lo particular).(top down).

• Generalización: se plantean primero los subtipos y después los tipos. Es el proceso inverso a la especialización.(button up)

Ligaduras de diseño: • Por definición:

o Definidas por condición: si el propio escenario clasifica una entidad en varios tipos de entidades.

o Definidas por el usuario: si el diseñado de la Base de Datos decide por alguna conveniencia hacer una clasificación.

• Por Correspondencia: o Disjuntos: cuando los tipos solamente pueden pertenecer a un subtipo (no

pueden pertenecer a más de un subtipo). o Solapados: Si a la vez pueden estar en más de un subtipo.

• Por completitud: o Total: Si todas las entidades del nivel superior están clasificadas en algún

subtipo. o Parcial: Si algunas entidades están clasificadas en algún subtipo (existen

algunas que no encajan en ningún subtipo).

Herencia: Solamente se heredan atributos. Los conjuntos de entidades del nivel más bajo heredan todos los atributos de los conjuntos de entidades de niveles más altos. También se hereda la participación de uno respecto del otro conjunto.

13

Page 14: Base de Datos

BASE DE DATOS UNIDAD 3

Agregación: En algunos casos se cumple que por producto de un vínculo se produce otro vínculo. (Similar a una condición). El modelo entidad relación no plantea la posibilidad de hacer relaciones entre vínculos. Los vínculos siempre son entre dos o más entidades. Sin embargo en ocasiones a causa de un vínculo entre dos entidades surge en algunos casos, que como resultado del vínculo, este se debe vincular a otra entidad. La agregación es una abstracción a través de la cual, las relaciones entre entidades se tratan como una entidad de nivel superior que puede vincularse con otras entidades.

14

Page 15: Base de Datos

BASE DE DATOS UNIDAD 4

Modelo Relacional:

Relación: Es un subconjunto del producto cartesiano entre los elementos de dos o más conjuntos que responden a un enunciado. En el modelo relacional, se representa a la base de datos como un conjunto de RELACIONES que se almacenan en tablas.

Terminología formal: Relación: Tabla Fila de tabla: Tupla y representa a un elemento de la relación. Cabecera de la columna: Atributos. Valores de atributos: Dominio Dominio: es un conjunto de valores atómicos que son validos para un atributo. Dos o más atributos pueden compartir el mismo dominio. Está definido por un tipo de datos, un rango de valores, un formato. Tabla: medio de almacenamiento de la relación.

Esquema de una relación: R • Notación: nombre_de_la_relacion(lista de atributos)

El esquema de una relación se compone del nombre de la relación “R” y una lista de atributos (a1, a2, a3). Cada atributo es el nombre del papel o rol desempeñado por algún dominio “D” en el esquema de la relación “R”. Se dice que “D” es el dominio del atributo ai y se denota como DOM(ai). El esquema de la relación sirve para describir una relación “R” donde “R” es el nombre de la relación. Se llama grado de la relación a la cantidad de atributos en su esquema.

Estado de una relación: r(R) Es un conjunto de n tuplas, donde cada elemento T es un conjunto de valores. Cada Tupla es una lista ordenada de n valores.(a su vez es lo único ordenado en el modelo relacional.

Características de las relaciones (r): • No es importante el orden en que se almacenan las tuplas • Si es importante el orden de los valores dentro de la Tupla, porque debe respetar

el orden de los atributos definidos en el esquema. • Los valores en las tuplas son atómicos. Es decir no hay atributos Multivaluados ni

compuestos. Esto se define como primera forma normal. Pueden ser nulos.

15

Page 16: Base de Datos

BASE DE DATOS UNIDAD 4

• No se almacenan tuplas repetidas; esto asegura que existe al menos una clave para cada relación.

Restricciones de las claves: • Superclaves: existe al menos una superclave (la Tupla completa) no siempre es

aplicable porque esos atributos pueden admitir valores nulos. Pueden ser varias: cualquier combinación de atributos que cumpla con los criterios de unicidad y existencia es capaz de constituir una superclave. Cualquier superclave combinada con un atributo que cumple con el criterio de existencia, genera una nueva superclave.

• Claves Candidatas: aquellas Superclaves que no tienen atributos redundantes. Llamamos atributo redundante de una superclave, cuando se tienen atributos que por sí solas pueden cubrir a la superclave. Responde al criterio de minimalidad.

• Clave Primaria: de entre las candidatas, se elije las que más le convenga al diseñador de la BD.

• Claves alternativas: Todas las claves no elegidas como primarias.

Esquema de una base de datos relacional: La base de datos puede contener muchas relaciones (tablas) y a su vez estas pueden estar relacionadas entre ellas. El esquema es un conjunto de esquemas de relaciones, más un conjunto de relaciones de integridad.

Estado de la base de datos relacionales: El estado de la base de datos de S (del esquema s) es un conjunto de relaciones donde BD={ r1(R1); r2(R2);…..;rn(Rn)} donde ri(Ri) es el estado de la relación Ri talque ri(Ri) satisfacen las restricciones de integridad, especificaciones en el esquema de Ri.

Restricciones de integridad: • Integridad de entidades: ningún valor de clave primaria debe ser nulo. • Integridad referencial: Sirve para mantener la consistencia entre tuplas de dos

RELACIONES distintas. Una Tupla en una relación que haga referencia a otra Tupla de otra relación, deberá referirse siempre a una Tupla existente en la segunda relación.

o Clave externa (FORANEA): un conjunto de atributos (FK = foreign key) en el esquema de relación R1 es una clave externa si cumple con dos requisitos. los atributos de FK tienen los mismos dominios de la clave primaria

de otro esquema de relación R2. Un valor de FK en T1 del estado actual r1(R1) ocurre como valor de

PK en alguna Tupla T2 del estado actual de r2(R2) o bien es nulo. NULL en el FK indica que la Tupla no se relaciona con alguna otra

Tupla de otra tabla.

16

Page 17: Base de Datos

BASE DE DATOS UNIDAD 4

Transformación del DER al MR: 1) Por cada tipo de entidad fuerte en el DER se debe crear una tabla que contenga

todos los atributos simples del DER. La clave primaria de esta relación estará formada por la clave primaria de la entidad en el DER.

2) Por cada tipo de entidad débil del DER vinculada a un tipo de entidad propietaria E1; Se debe crear una tabla en la que se incluyan todos los atributos simples de la entidad débil más la clave primaria de la entidad propietaria(foreign key). La clave primaria de esta estará conformada por la foreign key más el atributo discriminante de la entidad débil.

3) Por cada tipo de vinculo binario 1 a 1 se debe crear una tabla por cada tipo de entidad vinculada, se debe elegir una de ellas y colocar la clave primaria de la otra tabla, mas el atributo del vinculo (si es que posee).

4) Por cada tipo de vínculo binario 1 a n, se debe crear una tabla por cada entidad relacionada, y en la entidad que posee Cardinalidad n, se agregan la foreign key de la entidad con Cardinalidad 1 más el atributo del vínculo.

5) Por cada tipo de vínculo binario n a n, se debe crear una tabla para cada entidad relacionada y una entidad para el vínculo en el que irán las claves primarias de las dos entidades (como clave primaria) más el atributo T del vínculo.

6) Por cada tipo de vínculo n-ario se crean las tablas correspondientes a las entidades relacionadas, y una tabla que representa al vínculo, en la que se incluyen las claves primarias de cada una de las entidades más el atributo T del vínculo. La clave primaria de la tabla vinculo dependerá de la Cardinalidad del vinculo, si la Cardinalidad es siempre 1, es suficiente con utilizar una de las PK como PK de la tabla vinculo. Si una de las entidades posee Cardinalidad n se deberá escoger esa como PK mas el PK original. Si hay dos o más entidades con Cardinalidad n, se recomienda que todas las FK sean PK; en ocasiones es necesario extender la PK con algún atributo del vinculo.

7) Por cada atributo Multivaluado se debe crear una nueva tabla en la que se incluye el atributo Multivaluado más una FK correspondiente a la PK de la entidad de la que procede. Si el atributo Multivaluado pertenece a un vínculo, se debe crear una nueva tabla incluyendo como FK a los PK del vínculo.

8) Generalización y Especialización. a. Se debe crear una tabla para la superentidad y una tabla por cada una de

las subentidades; en cada subentidad se agrega como FKPK la PK de la superentidad. (sirve para todos los casos)

b. Se crea una tabla para cada subentidad; en la que se incluyen los atributos simple de la subentidad mas los atributos de la superentidad (tomando como PK a la PK de la superentidad).(No recomendable para ligadura de diseño solapadas).(ERROR: puede haber inconsistencia por redundancia, cuando la ligadura de diseño es solapada. Para una misma entidad se tienen valores de atributos repetidos en más de una tabla.)

c. Se crea una sola tabla en la que se incluyen los atributos de la superentidad, los atributos de cada subentidad y un atributo discriminador

17

Page 18: Base de Datos

BASE DE DATOS UNIDAD 4

de cada subentidad que indica a que subentidad pertenece. Genera muchos valores nulos. (solo valido para ligadura de diseños disjuntas).

d. Se crea una sola tabla en la que se incluyen todos los atributos de la superentidad, los atributos de cada subentidad y atributos discriminadores de subentidad (uno por cada subentidad) que indican a cual subentidad pertenecen.(valido para ligadura de diseño de conjuntos disjuntos o solapados).

9) AGREGACION: primero se debe aplicar la regla de pasos de conversión a la superentidad. Luego si el vinculo es 1 a 1 , 1 a n; se utiliza la primary key como FK. Si la entidad es n a n; se crea una tabla para el vínculo, en la que se agregan todos los atributos del vínculo de la superentidad y la clave de la entidad externa (todas estas como PK Y FK del vínculo externo).

Normalización: Es la transformación de almacenes de datos complejos (En el modelo relacional con tablas) en estructuras de datos más pequeñas y simples. Se descomponen las tablas en tablas más simples, de acuerdo a ciertas normas; el objetivo de la normalización es la eliminación de la redundancia de información.

Resumen Parcial 2 de base de datos

FORMAS NORMALES

primera forma normal La primera forma normal crea una nueva tabla con el grupo de atributos que se repiten por casa tupla así como también los atributos compuesto. Se dice que un esquema de una relación R esta en primera forma normal si todos los dominios de sus atributos son atómicos. Es decir, si sus atributos pueden contener un solo valor.

segunda forma normal Se dice que un esquema de una relación R esta en segunda forma normal si y solo si esta en primera forma normal, y teniendo una clave compuesta por varios atributos, todos los atributos no clave dependan totalmente de ellas y no parcialmente. Es decir, que dependan de los dos o más atributos clave y no solo de algunos de los atributos clave.

Tercera forma normal Se dice que un esquema de una relación R esta en tercera forma normal, si esta en segunda forma normal, y todos los atributos no clave dependen únicamente de la clave y no de otro atributo no clave.

18

Page 19: Base de Datos

BASE DE DATOS UNIDAD 4

forma normal de boyce- codd Un esquema de una relación R está en la forma normal de boyce – codd si y solo si esta en tercera forma normal y los únicos determinantes son las claves candidatas. Es decir se debe armar una tabla para cada una de las claves candidatas e incluir aquellas que no son candidatas en cada una de ellas.

SQL (Lenguaje de consultas estructurado)

DDL: lenguaje de definicion de datos

crear base de datos

• CREATE DATABASE “nombredelabd”; • CREATE SCHEMA “nombredelabd”;(en postgres)

crear tabla

• CREATE TABLE “nombredelatabla( Atributo1 tipodedato, Atributo2 tipodedato);

Restricciones de la creacion de tablas

• Primary key CREATE TABLE tab1( Atributo1 tipodedatos primary key, Atributo2 tipodedatos Atributo3 tipodedatos Primary key(atributo2,atributo3));

• Unique (indica que el dominio del atributo debe ser atomico)

CRATE TABLE tab1( Atributo1 tipodedatos UNIQUE);

• CHECK(expresión lógica) (limita el dominio del atributo) CREATE TABLE tab1( Atrbiuto1 tipodedato, CHECK(atributo1>0));

• FOREIGN KEY (define clave foránea) CREATE TABLE tab1( Atributo1 tipodedato, FOREIGN KEY atributo1 REFERENCES tab2(at2pk));

• NOT NULL (indica que el atributo no puede estar vacío, o al menos con un null como valor

19

Page 20: Base de Datos

BASE DE DATOS UNIDAD 4

CRATE TABLE tab1( Atributo1 tipodedatos NOT NULL);

contraints Son restricciones que se definen sobre el esquema de una tabla.

actualizacion del esquema de una tabla

• Agregar columna a la tabla ALTER TABLE tab1 ADD nomcolumna tipodedatos;

• Eliminar columna de la tabla ALTER TABLE tab1 DROP nomcolumna;

• Agregar Foreign key ALTER TABLE tab1 ADD FOREIGN KEY “atributo” REFERENCES tab2(at2pk);

Borrar tabla

• DROP TABLE tab1;

BORRAR BASE DE DATOS

• DROP DATABASE “nombredelabasededatos”;

DML: Lenguaje de modificacion de datos

Insertar tuplas

• INSERT INTO tab1 (nombre de los atributos a cargar) VALUES (valores de los atributos a cargar, deben coincidir con la ubicación de los nombres de los atributos a cargar);

Actualizar valor de tuplas (por columna)

• UPDATE tab1 SET nomcolumna=valor (opcionalmente se puede utilizar un WHERE(condición));

Borrar valores de una tabla

• DELETE FROM tab1 (opcionalmente se puede utilizar un WHERE(condición));

20

Page 21: Base de Datos

BASE DE DATOS UNIDAD 4

CONSULTAS

Estructura basica de una consulta SELECT (Atributos a mostrar; * para mostrar todos los atributos) FROM Tabla/s a consultar WHERE condición(opcional) GROUP BY atributo (opcional)(solo se debe mostrar el atributo por el cual se agrupo o una función agregada) HAVING condicion (opcional del group by)(condición a ejecutarse después del agrupado) ORDER BY atributo (ordenar a partir del atributo)(DESC para ordenar de forma descendente);

JUNTAS

• Natural join: junta las tuplas de dos tablas distintas que estén inter relacionadas. Requiere que existan dos atributos con el mismo nombre. Las tuplas que no tienen una relación con otra tupla se eliminan de la consulta.

SELECT * FROM ta NATURAL JOIN tb;

• Inner join: junta las tuplas de dos tablas que estén inter relacionadas, pero a diferencia del natural join, en este tipo de juntas no es necesario que existan dos atributos con nombres iguales. Las tuplas que no están relacionadas con una tupla de la otra tabla se eliminan de la consulta.

SELECT * FROM ta INNER JOIN tb ON ta.at1 = tb. At1;

• JUNTAS EXTERNAS (extern join): o Left join: todos los atributos de la izquierda y los atributos de la derecha,

los atributos de las Tuplas de la derecha que no participan de la junta quedan con valor null.

SELECT * FROM ta LEFT JOIN tb ON ta.a1=tb.a1;

o Right Join: todos los atributos de la derecha y los atributos de la izquierda, los atributos de las tuplas de la izquierda que no participen de la consulta quedan en null.

SELECT * FROM ta RIGHT JOIN tb ON ta.a1=tb.a1;

21

Page 22: Base de Datos

BASE DE DATOS UNIDAD 4

o Total join: todos los atributos de la izquierda y todos los atributos de la derecha, los atributos de las tuplas que no participen de la consulta quedan en null

SELECT * FROM ta TOTAL JOIN tb ON ta.a=tb.a;

OPERADORES DEL WHERE

IS

• WHERE at IS NULL • WHERE at IS NOT NULL

IN

• WHERE at IN (conjuntodevalores); • WHERE at IN (subconsulta)(para subconsultas que puedan llegar a traer más de un

resultado.)

LIKE

• WHERE at LIKE ‘pepe%’; (%= cantidad variable de letras; ___ = cantidad fija de letras (1 guion por letra) después de la palabra).

BETWEEN

• WHERE at BETWEEN val1 and val2;

EXIST

• WHERE EXIST (subconsulta) (si existe en la subconsulta, devuelve un valor logico);

FUNCIONES AGREGADAS

• Sum(atributo) • Avg(atributo)(promedio) • Max(atributo)(máximo valor del artibuto) • Min(atributo)(minimo valor del atributo) • Count(atributo)(cuenta los atributos)

22

Page 23: Base de Datos

BASE DE DATOS UNIDAD 4

eliminar valores repetidos de la consulta SELECT DISTINCT at FROM TA;

UNION Une todos los valores de dos columnas, una debajo de la otra. SELECT * FROM ta UNION SELECT * FROM tb;

INTERSECT Todos los resultados de una consulta que estén incluidos en otra consulta. SELECT * FROM Ta INTERSECT SELECT * FROM tb;

EXCEPT Todos los resultados de una consulta que no estén en los resultados de otra subconsulta. SELECT * FROM ta EXCEPT SELECT * FROM tb;

UNION ALL Une todos los resultados de dos consultas, aunque estén repetidos. SELECT * FROM ta UNION ALL SELECT * FROM tb;

23

Page 24: Base de Datos

BASE DE DATOS UNIDAD 4

USUARIOS

CREAR usuario

• CREATE USER nombreusuario PASSWORD ‘contraseña’;

OTORGAR PERMISOS SOBRE TABLAS

• GRANT insert, select, update, delete|all ON tabla TO usuario;

otorgar permisos sobre base de datos

• GRANT créate, connect ON DATABASE ‘basededatos’ TO usuario;

VISTAS Una vista es una consulta a la cual un usuario puede acceder; solo tendrá permitido acceder a lo que determina la vista.

CREAR VISTA

• CREATE VIEW nombrevista AS (consulta select);

24