SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
RESUMEN DE BASE DE DATOS.
MÓDULO 1. DATOS.
Unidad 1. Almacenamiento y archivos
Tema 1. Tipos de almacenamiento
Las bases de datos, independientemente del modelo de datos que se haya
usado para su diseño, se almacenan físicamente como archivos de registros;
normalmente, se almacenan en discos rígidos.
● Almacenamiento primario: Incluye la memoria principal y la memoria
caché. Son medios de almacenamiento muy rápidos, aunque con
capacidad limitada.
● Almacenamiento secundario: Incluye discos magnéticos, discos ópticos,
cintas, etc. Son medios de almacenamiento de grandes capacidades,
aunque con un acceso mucho más lento.
Subniveles:
● Memoria caché: Es la capa más cara de la jerarquía, y se trata de una
memoria RAM estática que usa la CPU para aumentar la velocidad de
ejecución de las máquinas. Es volátil.
● Memoria DRAM (RAM dinámica) o memoria principal: La usa la CPU
para mantener los programas y los datos. Es más lenta que la RAM
estática, aunque más barata. Es volátil.
● Memoria flash: Memoria no volátil que se sitúa en el último subnivel
dentro del nivel primario.
Nivel de almacenamiento secundario:
● Discos de estado sólido (SSD).
● Discos rígidos: Son los que más se usan en este nivel por su relación
velocidad/precio.
● Discos que se basan en tecnología óptica con lectura/escritura láser:
Compact disks (CD), digital versatile disks (DVD), blu-ray disks.
● Las cintas: Se encuentran en el nivel más barato.
La memoria principal, siempre que tenga capacidad suficiente, se puede usar
para albergar datos (o parte de ellos), manteniendo siempre una copia de
respaldo en memoria secundaria para evitar los problemas que podrían
ocasionar la volatilidad de la primera.
Tema 2: Archivos, tipos de archivos y operaciones básicas.
Estructura de un archivo y tipos:
Archivo: Es una secuencia de registros. Estos registros pueden ser de longitud
fija o variable. Cada registro es una colección de campos que se asocian de
manera independiente con un puntero.
Organización de un archivo:
Según el tipo de registro:
● Extendida: Los espacios libres en cada bloque se ocupan o se
aprovechan. Se usa cuando el registro es mayor que el bloque.
● No extendido: Los espacios libres no se utilizan.
1
RESUMEN DE BASE DE DATOS.
Según el ordenamiento de los registros:
● Archivos desordenados: En este tipo de archivos, no existe un
ordenamiento; los registros se insertan al final del archivo en la medida
que se ingresan.
● Archivos ordenados o secuenciales: Se ordenan físicamente con algún
campo clave.
Operaciones básicas.
- Insertar: Permite poblar la base de datos. Las inserciones pueden ser
individuales o masivas, según se ingresan uno o muchos registros al
archivo. La inserción masiva puede suceder cuando se importan,
masivamente,mediante la importación de un archivo externo como un
libro de Excel.
- Extraer: Una funcionalidad de este tipo de operaciones es extraer o leer
todos los artículos de un determinado rubro, por ejemplo listar todos
los artículos del rubro electrónico.
- Actualizar: Se busca un determinado dato o universo de datos, con el
fin de realizar una modificación sobre un campo o varios campos.
- Eliminar: Es la operación inversa a la inserción de datos cuenta con la
dinámica de poder procesar de forma masiva o de manera individual.
Debemos estar muy seguros al momento de hacer la eliminación.
Tema 3. Archivos secuenciales y ordenados.
Los archivos secuenciales se caracterizan por tener un orden físico según los
valores de uno de sus campos: el campo de ordenación.
Estos archivos poseen ciertas ventajas:
● La lectura de registros en el orden físico almacenado es
extraordinariamente eficiente.
● Los accesos a registros son en orden consecutivo y no se requiere
cambiar de bloque, por lo que se optimiza el acceso físico.
● Las condiciones de búsqueda que afectan a valores de un campo de
ordenación son muy eficientes cuando emplea una estrategia de
búsqueda binaria.
Tema 4. Archivos hash. Función hash. Resolución de conflictos.
Los archivos de direccionamiento calculado, también conocidos como
dispersos o hashing, proporcionan un acceso muy rápido a los registros.
La función de este tipo organización se basa en establecer una función
hash que, una vez aplicada sobre el valor del campo de direccionamiento
de un registro, producirá la dirección del bloque de disco en el que se
almacena el registro. Se obtiene el bloque, se copia a memoria principal, y
se realiza la búsqueda del registro dentro del bloque.
2
RESUMEN DE BASE DE DATOS.
● Tabla hash: Una tabla hash es una estructura de datos, que se conoce,
además, como tabla fragmentada. Esta estructura se basa en una
operación en la que se asocian claves con valores. Esto permite lograr
accesos muy rápidos al momento de buscar la información.
★ ¿Cuál es el problema más común en las funciones hash+?
La aglomeración de valores. Esto se da cuando las claves más
usadas caen todas muy cerca, y es probable que disminuya el
rendimiento en una tabla de manera significativa.
★ Resolución de colisiones: Esto sucede cuando dos números de la
función hash apuntan al mismo índice. No es posible almacenar dos
registros en el mismo lugar. Las más conocidas son las siguientes:
(encadenamiento, direccionamiento abierto)
- Encadenamiento: Se da cuando una casilla del array hace
referencia a una lista de registros que colisionan en esa
casilla. Las principales ventajas del encadenamiento sobre el
direccionamiento directo son las siguientes:
- El borrado es simple.
- El crecimiento de la tabla se puede posponer durante más
tiempo, aun cuando todas las casillas están ocupadas.
- Direccionamiento abierto: En las tablas hash de
direccionamiento abierto, podemos almacenar los registros en el
array, directamente. Las colisiones se resolverán por medio de un
sondeo del array, hasta encontrar el registro, o hasta Ilegar a
una casilla vacía.
Sondeos más usados:
➔ Sondeo lineal: El intervalo entre cada intento es constante. Favorece el
rendimiento del caché, pero es más sensible a la aglomeración.
➔ Sondeo cuadrático: El intervalo entre los intentos aumenta linealmente.
Se sitúa en medio en cuanto a rendimiento en caché y aglomeración.
➔ Doble «hasheo»: El intervalo entre intentos es constante para cada
registro, pero es calculado por otra función hash. Disminuye el
rendimiento en el caché, pero elimina el problema de aglomeración.
Hash: aplicaciones: Existen múltiples aplicaciones que se relacionan con las
tablas hash. Una de ellas es la del uso de la firma digital.
Unidad 2. Índices y árboles
3
RESUMEN DE BASE DE DATOS.
Tema 1. Archivos de índices
Estas estructuras pueden no ser suficientes para las necesidades de una
base de datos. En muchos casos, es necesario hacer uso de unas estructuras
de acceso auxiliares llamadas Índices. Los Índices se emplean para aumentar
la performance de acceso a registros, bajo ciertas condiciones de búsqueda.
El uso de Índices permite Ilevar a cabo las siguientes acciones:
- Realizar búsquedas eficientes en archivos de datos organizados en
montículo.
- Acceder, de forma eficiente, mediante condiciones de búsqueda que
afectan a cualquier campo en un archivo ordenado.
La clasificación de los diferentes Índices que existen:
- Densos. Una entrada por cada valor de la clave de indexación.
- No densos o escasos: solo entradas para algunos valores de la clave
de indexación.
- Tipos de Índices ordenados de un nivel.
- Primario o principal;
- Agrupado;
- Secundario.
- Índices multinivel;
- Índices multinivel dinámicos que utilizan árboles B y B +.
Tema 2. Índices primarios y secundarios
Índice primario: Son no densos, es decir, no se cargan todas las claves,
ocupan menos espacio que el archivo de datos y poseen registros de
longitud fija.
Índice secundario: Se usan cuando un archivo ya posee un índice. Es lento
para la búsqueda y crece proporcionalmente. Si el índice es por campo no
clave, los valores del campo de indexación se repiten. Ante esto, se puede
generar Io siguiente:
- un índice denso con un registro por cada valor, incluso repetido;
- un índice con registro de longitud variable con un campo repetitivo
de punteros a bloque;
- un índice no denso, es decir, cada registro almacena puntero a
bloque de punteros, y estos apuntan a registros (usado).
4
RESUMEN DE BASE DE DATOS.
Tema 3. Índices agrupados y multinivel
Índice agrupado:
- Precondición: archivo de datos ordenado (físico) por campo no clave.
- Es un índice no denso.
- Tiene más registros del archivo índice en cada bloque.
- Permite una búsqueda binaria en el archivo índice y lectura del
bloque.
- inserción y borrado son un problema. Se sugiere reservar un bloque
o contiguos por cada valor distinto del campo de indexación.
Índice multinivel:
- Se aplica después de generar el índice principal, agrupado o
secundario.
- Genera el segundo nivel principal, y toma el primer nivel como fichero
ordenado con valor distinto en clave.
- El segundo nivel posee una entrada por bloque.
- Genera el tercer nivel, si el segundo nivel ocupa más de un bloque.
Tema 4. Arboles AVL, B y B+
¿Sabes Io que es un árbol?
Arboles AVL: No son perfectamente equilibrados, pero son lo suficiente
como para ofrecer un comportamiento bastante bueno al ser usados.(fue
creado por los matemáticos rusos Adelson-Velskii y Landis, y es un tipo
especial de árbol binario.)
Arboles B y B+
Los Índices multinivel dinámicos, que utilizan árboles B y B +, son casos
especiales de estructuras dinámicas de datos. Permiten implementar
índices multinivel, con la posibilidad de que un índice se expanda o
contraiga. Cada nodo contiene los siguientes elementos:
1. Un puntero por cada nodo hijo que tiene;
2. Valor del campo de indexación.
Árboles B: Los algoritmos de los árboles B son complejos; cada valor del
campo de búsqueda aparece con su puntero, por única vez. Los árboles B +
son una variación de los árboles B.
5
RESUMEN DE BASE DE DATOS.
MÓDULO 2. BASE DE DATOS Y MODELO RELACIONAL.
Unidad 1. Sistemas de bases de datos
Tema 1. Modelo de datos y sistemas de base de datos
Están integrados por una serie de conceptos para describir los datos, sus
relaciones y restricciones, útiles para representar. Su propósito es facilitar la
descripción de los datos y sus relaciones, permitir la representación de los
datos y hacerlos comprensibles.
Un modelo de datos debe tener: Un conjunto de elementos atómicos y de
relaciones entre estos elementos, denominado espacio de datos, un conjunto
debe crear y destruir elementos y modificarlos.
Sistema de gestión de base de datos(SGBD): Es una capa de software que
necesitamos si deseamos crear, manipular y recuperar datos. Como
herramienta, sirve para realizar tareas generales, como estructurar,
almacenar y controlar los datos, provee interfaces de acceso a esta.
Rol del DBA:
Las tareas del administrador de la base de datos son las siguientes:
definir estructuras. Esto es la creación de la base de datos: tablas y sus
relaciones.
● Definir estructuras físicas, qué archivos se van a crear para cada
esquema.
● Especificar perfiles y seguridad: usuarios, roles y permisos a la base de
datos.
● Implementar integridad: relaciones entre tablas.
Sistema gerencial de una base de datos (SGI/MIS):
Es el resultado de la interacción colaborativa de varias partes, como, por ej,
personas, tecnologías y procedimientos. Habitualmente, para analizar la
información, se alimentan de otros sistemas. Sus funciones principales son
planificación, dirección, control y organización, son necesarias para un buen
desempeño de la organización.
Los SGI tienen como función ayudar a proporcionar info que cumpla con las
siguientes características:
● Calidad: Debe ser fidedigna y no debe contener errores.
● Oportuna: Debe estar disponible, en el momento preciso en el que se la
necesita.
● Cantidad: Se debe orientar al usuario, y debe mostrar mayor nivel de
detalle a un operario y menor detalle a un gerente, para que cada nivel
pueda tomar decisiones oportunas.
● Relevante: La info que se brinde se debe relacionar con sus tareas y
responsabilidades.
Componentes de un DBMS.
Componente. Definición. Componente. Definición.
Compilador DDL Procesa las definiciones
de los esquemas y
almacena los esquemas
en el catálogo.
Compilador de
consultas
Analiza las consultas,
los nombres de
elementos y objetos.
6
RESUMEN DE BASE DE DATOS.
Optimizador de
consultas
Configura, reordena,
elimina redundancias.
Precompilador DML Extrae los comandos
DML y los envía al
compilador DML.
Compilador DML Compila y genera código objeto que le pasa al
procesador de DB runtime.
Seguridad de una base de datos
● Aspectos legales y éticos.
● Política para dejar información(créditos).
● Nivel de seguridad de datos.
● Disponibilidad.
Medidas de control
● Control de acceso: sirve para restringir el acceso
● Control de flujo: sirve para evitar que cierta información llegue a
usuarios no autorizados.
● Cifrado de datos: se realiza con algoritmos de cifrado, con clave, para
disfrazar un mensaje.
Seguridad y DBA
● Creación de cuentas para usuarios o grupo de acceso a DBMS.
● Concesión de derechos o privilegios y grantoption.
● Retiro de privilegios revoke.
Respaldo y recuperación: Es vital contar con una copia de los datos
originales, para poder recuperarlos en caso de que ocurra una pérdida
parcial o total de la información.
Las copias de seguridad pueden almacenarse en diferentes dispositivos:
Tipos de respaldo
● Depósito del sistema de archivos: Es un tipo de copia de seguridad
rápida. Exige que la base de datos no se esté usando en el momento de
la copia, no es factible en los sistemas que poseen una alta
disponibilidad para el usuario.
● Control de cambios: Consiste en copiar los archivos que solo han sido
modificados. Varios sistemas de archivos cuentan con un bit de archivo
para cada archivo, nos permite identificar si el archivo fue modificado o
no, luego de la copia anterior. Si ha sido modificado, se resguarda, en
caso contrario, no.
● Incremental a nivel de bloque: Una vez que se hace la copia base o
primera copia, una forma de hacer una copia de seguridad de los
archivos es copiar los bloques físicos que han sufrido cambios,es más
complejo.
● Incremental o diferencial binaria: Es similar a la anterior, pero toma las
diferencias binarias entre el backup anterior y el actual. La ventaja de
este tipo de backup es que, al trabajar a nivel de byte, ahorra espacio y
no depende del sistema operativo.
● Versionado del sistema de archivos: Se basa en los cambios del archivo,
y crea estos cambios accesibles al usuario. Este tipo de copia de
seguridad está integrada al ambiente informático.
7
RESUMEN DE BASE DE DATOS.
Copia de seguridad de datos en uso:
Si al momento de ejecutarse el backup la base de datos está siendo usada,
corremos el riesgo de que existan archivos abiertos y de que se esté
trabajando sobre esos archivos. Si esto sucede, posiblemente, el contenido
del disco no refleja exactamente lo que el usuario ve.
Tema 2. Modelo jerárquico, de red y relacional
Generación de estructuras relacionales
Modelo de red: Los datos son representados como colección de registros, de
estructura arbitraria. Como desventaja, poseen una estructura compleja para
problemas simples.
● Get: copia un registro señalado por el puntero actual al buffer.
● Store: crea un registro con valores de datos ubicados en la memoria.
● Modify: implica encontrarlo, subirlo a la memoria y modificarlo.
● Erase: elimina registro, con previa búsqueda.
● Connect: conecta un registro con un conjunto de registros.
● Disconnect: desconecta un registro de un conjunto de registros.
● Reconnect: mueve un registro de un conjunto a otro.
Modelo jerárquico: Es una aplicación particular del modelo de red. Los datos
se representan como colección de registros, pero con estructura
padre/hijo.
Las órdenes implican acciones físicas:
● get/where: Localiza y copia registro a memoria.
● insert: se localiza a su registro padre y luego inserta.
● replace: modifica uno o más campos de un registro.
● delete: elimina el registro actual de la base de datos.
Modelo relacional:
● Normalización: Intuitivamente, las relaciones se asocian con tablas
nombradas cuyas columnas representan atributos que también tienen
asociado un nombre. Las filas de las tablas se denominan tuplas.
El modelo relacional se define integrado a partir de tres elementos:
● conjunto de relaciones que varía en el tiempo;
● reglas de inserción-actualización-eliminación;
● un álgebra relacional.
Para diseñar un modelo de datos relacional, se utilizan una serie de normas o
reglas denominadas formas normales, establecen el fundamento teórico de la
normalización.
Características o propiedades de las relaciones:
● Las tuplas no están ordenadas.
● Los atributos no están ordenados.
● Deben ser atómicos.
● No hay tuplas repetidas.
Tema 3. Modelado y diseño de una BD relacional
Modelo relacional: Las bases de datos recopilan datos, que se pueden
manipular con facilidad, y se pueden mostrar o presentar de diversas
maneras. El proceso incluye su estructura, contenido y las aplicaciones que
se han de desarrollar.
8
RESUMEN DE BASE DE DATOS.
Captura de requerimientos: Es una descripción de alto nivel de la estructura
de la base de datos, independientemente del DBMS que se vaya a utilizar
para manipularla. El objetivo es describir el contenido de los datos de la base
de datos, y no las estructuras de almacenamiento.
Generación de estructuras relacionales
Clave primaria:
● Las tareas que se deben realizar en el diseño conceptual son las
siguientes:
a) identificar las entidades;
b) identificar las relaciones;
c) identificar los atributos.
Tema 4. Reglas de Codd y dependencia funcional
Reglas de Codd
● Regla 1: Información.
● Regla 2: Acceso garantizado.
● Regla 3: Tratamiento sistemático de los valores nulos.
● Regla 4: Descripción de la base de datos.
● Regla 5: La regla del sub lenguaje integral.
● Regla 6: La regla de la actualización de vistas.
● Regla 7: insertar y actualizar.
● Regla 8: independencia física.
● Regla 9: La regla de independencia lógica.
● Regla 10: La regla de la independencia de la integridad.
● Regla 11: La regla de la distribución.
● Regla 12: Regla de la no subversión.
Dependencia funcional:
● Dependencia funcional (DF) y dependencia funcional completa (DFC).
● Dependencia multivaluada (DMV).
● Dependencia de reunión.
Dependencia funcional completa: se representa como z => x. Si z es un
atributo simple y z → x, entonces la dependencia funcional es, con seguridad,
completa.
Dependencia multivaluada: En una relación T, con los atributos a, b y c, existe
una dependencia multivaluada de b con respecto a si los posibles valores de
b para un par de valores de a y c dependen únicamente del valor de a.
Características:
● Cada atributo de la relación, haya una evidente repetición de valores
que nos haga pensar en redundancia de datos.
● La relación debe tener, por lo menos, tres atributos.
● Debe observarse que dos de los atributos sean independientes entre sí
funcionalmente.
● El tercer atributo establece una dependencia funcional con los otros
dos.
9
RESUMEN DE BASE DE DATOS.
Dependencia de reunión: Una relación R satisface la dependencia de reunión
(DR)*(A, B, Z) si y sólo si R se puede construir con la reunión de sus
proyecciones A, B, Z, siendo A, B, Z subconjuntos de atributos de R.
Características
● La cantidad de atributos de la entidad es tres o superior a tres.
● Todos los atributos de la relación componen la clave primaria.
● No debe haber dependencia funcional entre ninguno de sus atributos y
tampoco dependencias multivaluadas no triviales.
Unidad 2. Formas normales
Normalización: Cuando se trabaja sobre la normalización de un modelo para
resolver un problema, se está realizando un análisis de su lógica funcional.
Esta acción de entender un problema permite identificar datos con
características y propiedades que dan origen y establecen los atributos.
Terminología
● Entidad.
● Atributo.
● Instancia.
● Dominio.
Entidad: Se denomina entidad al contenedor de una colección de atributos.
Atributo: Se denomina atributo a cada componente de una entidad que
califica y establece una propiedad dentro de ella. En una entidad, los
atributos tienen un nombre único y no poseen un orden específico.
Instancia: Es una colección de valores que pertenecen al mismo grupo o una
ocurrencia de valores. Las instancias son conjuntos ordenados de valores
singulares.
Dominio: En el diseño lógico, es la caracterización conceptual del atributo, la
definición de lo que queremos que represente ese atributo al que le estamos
asignando el dominio.
Formas normales: La dependencia funcional brinda la base conceptual para
las siguientes formas normales:
● Primera forma normal [1FN o1NF].
● Segunda forma normal [2FN o2NF].
● Tercera forma normal [3FN o3NF].
La dependencia multivaluada solo actúa en la siguiente:
● Cuarta forma normal [4FN o 4NF].
Cuarta formal normal
La dependencia de reunión solo actúa en la siguiente:
● Quinta forma normal [5FN o 5NF].
Tema 1. Primera forma normal
Una relación está en primera forma normal si y sólo si todos los dominios
simples subyacentes de los atributos poseen valores atómicos y
monovalentes.
● Dominios simples de los atributos: Se refiere a que todos los atributos
que componen una entidad tienen un único dominio y que, por ello,
este es simple. Los atributos se encuentran reducidos conceptualmente
10
RESUMEN DE BASE DE DATOS.
a la mínima definición de dominio y, por este motivo, su expresión no
resiste mayor división.
● Atributos monovalentes: Hace referencia a que la información se
representa una única vez dentro del modelo. Entonces, se deben
arbitrar proyecciones (descomposiciones) de entidades suficientes para
que la información sea reflejada una sola vez.
● Explicación desde la práctica: Observa la siguiente planilla de datos,
que consta de un resumen de ventas de una librería que procesa todos
sus datos desde una planilla de cálculos del tipo Excel.
Tema 2. Segunda forma normal
Una relación está en segunda forma normal si y sólo si primero está en
primera forma normal y, además, todos los atributos no claves dependen por
completo de la clave primaria. Es muy importante tener en claro que no se
puede alcanzar la 2FN, si alguna relación del modelo no está en 1FN.
Tema 3. Tercera forma normal y forma de Boyce-Codd
Una relación está en tercera forma normal si y sólo si está en 2FN, y si ningún
subconjunto de atributos no primarios tiene dependencia entre sí y
como segunda medida dependen transitivamente de la clave primaria.
Atributos no primarios: es atributo no clave, que no forma parte de ninguna
combinación de claves candidatas posibles.
Dependencia transitiva ocurre cuando dos atributos no primarios que, por lo
tanto, no forman parte de ningún tipo de clave tienen una dependencia
funcional entre sí más fuerte que la que se produce con la PK de la relación.
Forma normal de Boyce-Codd
Determinante: Uno o más atributos son determinantes cuando, de manera
funcional, determinan a otros atributos. En la dependencia funcional
(A, B)-->C, (A, B) son los determinantes.
Definición formal: Cuando un determinante es una llave candidata, una
relación R está en FNBC. Se considera en esta forma si y sólo si cada
determinante o atributo es una llave candidata.
Tema 4. Cuarta forma normal
La 4NF se usa mucho en el diseño de base de datos, y garantiza que las
dependencias multivaluadas independientes estén efectivamente correctas.
La 4NF es el nivel siguiente de normalización después de la forma normal de
Boyce-Codd.
Características
● Una tabla se encuentra en 4NF si y sólo si está en tercera forma normal
y no presenta dependencias multivaluadas no triviales.
MÓDULO 3: SQL.
Unidad 1. Creación de estructura (DDL)
11
RESUMEN DE BASE DE DATOS.
Tema 1. introducción. Tipos de datos SQL
SQL: Es el lenguaje estándar para trabajar con bases de datos relacionales
y es soportado prácticamente por todos los productos en el mercado. Fue
desarrollado en IBM Research a principios de los años setenta.
Tipos de datos en SQL:
● DBMS: Provee distintos tipos de datos con los cuales podemos trabajar, sin
embargo, es necesario especificar cuál nos conviene más y para eso
debemos de saber sus características en búsqueda, capacidad, uso de los
recursos, etc. Introduce tipos de valores de campos que no se encuentran
precisamente presentes en otras.
Tipos de datos genéricos en SQL
Alfanuméricos Cifras y letras. Presentan una longitud limitada (varchar,
varchar2, text). Son
similares, pero pueden variar.
Numéricos Hay varios tipos: enteros (sin decimales) y reales (con decimales)
Ej:
short, int, bigint, decimal.
Booleanos Poseen dos formas: Verdadero y falso (Sí o No). Boolean.
Fechas Almacenan fechas facilitando posteriormente su explotación.
Incorporan funciones para manipular
fechas, comparar y obtener un valor
particular (dfa, mes, año).
Memos Campos alfanuméricos de longitud ilimitada. Presentan el
inconveniente
de no poder ser indexados (veremos
más adelante Io que esto quiere decir).
Autoincrementales Campos numéricos enteros que incrementan en una unidad
(o más) su
valor para cada registro incorporado.
identificador, resultan exclusivos de un
registro.
Tabla 2: Tipos de datos en Postgre SQL.
Tipos de datos del estándar SQL3 en Postgre SQL
Tipos en Postgres
Bool
Correspondientes en SQL3 Descripción
Boolean Valor lógico o booleano (true false).
1
Módulo 3 SQL
12
RESUMEN DE BASE DE DATOS.
Char Character(n) Cadena de caracteres de tamaño fijo.
Date Date Fecha (sin hora).
Float 4/8 Float(86#86) Número de punto flotante con precisión
86#86.
Float 8 Real, double precision. Número de puntos flotantes de
doble precisión.
Int 2 Smallint. Entero de dos bytes con signo.
Int 4 Int, integer Entero de cuatro bytes con signo.
Int 4 Decimal(87#87) Número exacto con 88#88
Int 4 Numeric(87#87) Número exacto con 89#89
Money Decimal(9,2) Cantidad monetaria.
Time Time Hora en horas, minutos, segundos y centésimas.
Time stamp Interval Intervalo de tiempo.
Timestamp
Varchar(n)
Timestamp with time zone. Fecha y hora con
zonificación.
Character varying(n). Cadena de caracteres de tamaño
variable.
Tema 2. Creación y relaciones entre tablas
Tablas: Los datos son almacenados en las tablas por medio de filas y
columnas. La definición de las tablas se realiza con un nombre que
la identifica unívocamente y un conjunto de columnas.
● Columna: Representa un tipo de datos en una tabla, ej, el nombre de un
artículo en la tabla “artículos”. Cada columna cuenta con un nombre,
un tipo de dato (char, date o number) y un tamaño (cantidad de
caracteres, si es un tipo texto, un ancho, si es un tipo fecha) o una
escala y
precisión (para tipos numéricos).
● Fila: Es una composición de los valores de las columnas de una tabla, ej,
la info acerca de un artículo (nombre, precio) en la tabla “articulos”.
● Campo: La intersección de una fila con una columna es el campo. Es la
unidad más atómica de una tabla, no puede ser descompuesto en
valores más pequeños. El campo puede o no contener datos
Esquema o base de datos: Para crear nuestras tablas primero tendremos
que hacer un esquema de base de datos y teniendo en cuenta el motor
utilizado cada esquema puede tener varias bases de datos.
13
RESUMEN DE BASE DE DATOS.
Esquemas y/o base de datos.
Restricciones de columna: En cada una de las columnas de la tabla, una
vez que les hemos dado un nombre y hemos definido el dominio, podemos
imponer ciertas restricciones que siempre se tendrán que cumplir. ● Not
null: La columna no puede tener valores nulos.
● Unique: La columna no puede tener valores repetidos. Es una clave
alternativa.
● Primary key: La columna no puede tener valores repetidos ni nulos. Es
la clave primaria.
● References(<nombre tabIa> [(<nombre columnar)]): La columna es la
clave foránea de la columna de la tabla especificada.
● Constraint [<nombre restricción»] Check (<condiciones>): La columna
tiene que cumplir las condiciones especificadas.
Tema 3. Claves primarias, secundarias y foráneas.
Clave primaria: Está compuesta por una o más columnas que permiten
identificar de manera unívoca a cada fila de una tabla, por ej, el código
de barras de un artículo. La clave primaria es única por tabla y siempre
debe contener un valor.
Clave foránea: Está compuesta por una o más columnas que hacen
referencia a una clave primaria de otra tabla o de la misma, por eso la
relación entre las tablas que las contienen se conoce como padre/hijo. Las
claves foráneas tienen el fin de ayudar al cumplimiento de las reglas de
diseño de la base de datos relacional.
Tema 4. Índices y vistas
● Son mecanismos que facilitan el acceso a los datos.
● Vistas: No existen realmente como un conjunto de valores almacenados
en la BD, son tablas ficticias denominadas derivadas (no
materializadas).
● Índices: Son objetos independientes, ya sea desde el punto de vista
lógico como del punto de vista físico. Ellos se pueden crear o
eliminar sin que afecten a la información almacenada en una tabla.
Clave primaria: la mayoría de los productos de DBMS siempre establecen
un índice para la clave primaria de una tabla porque anticipan que el
acceso a la tabla será más frecuente a través de la clave primaria.
Clave forânea: un índice de columnas de clave foránea a menudo
puede mejorar el rendimiento de las combinaciones.
Restricción de unicidad: La mayoría de los productos DBMS también
establece automáticamente un índice para cualquier columna (o
combinación de columnas) definida con una restricción de unicidad.
Tipos de Índices
● Una columna indexada: crea un índice único para la tabla offices.
14
RESUMEN DE BASE DE DATOS.
CREATE UNIQUE INDEX OFC_MGR_IDX ON OFFICES (MGR);
● Dos columnas indexadas: crea un índice para la tabla orders.
CREATE INDEX ORD_PROD_IDX ON ORDERS (MFR,
PRODUCT);
Unidad 2. Consultas y manipulación de datos (DML). Para
manipular los datos de cualquier base de datos se cuenta con dos
operaciones básicas: las de recuperación y las de inserción o actualización
de datos.
Estructura de una consulta:
Select (lista de columnas)
From Tablas
Where Condiciones - Filas Group By (lista de columnas} Having Condiciones
- Grupo Order By {lista de columnas}
Tema 1. Inserción de registros.
Para agregar registros en una tabla con el SQL es preciso utilizar la
sentencia insert into que tiene el siguiente formato.
INSERT INTO nombre_tabIa
[(nombre_coIumna [,. ])
Tabla clientes (código, nombre, dirección, ciudad) y queremos insertar
un registro simplemente basta con escribir:
Selección y proyección.
Para hacer consultas sobre una tabla con el SQL es preciso utilizar
la sentencia select from que tiene el siguiente formato:
SELECT nombre_coIumna_a_ seccionar [,nombre_coIumna_a_
seccionar...] FROM tabIa_a_consuItar
● La selección es el proceso por el cual elegimos qué registros tomamos
de una tabla en particular.
● El where, es opcional ya que si no se escribe indica que queremos todos
las tuplas o registros de una tabla.
● La proyección es la que nos permite elegir qué campos o atributos
mostrar de una determinada tabla, se hace a través del select. ● Por
último, pero no menos importante, aparece el from. A través de esta
palabra indicamos sobre qué tabla estamos realizando la consulta.
Si tenemos una tabla clientes (código, nombre, dirección, ciudad) y queremos
listar todos los clientes mostrando todas las columnas simplemente basta
con escribir:
Select * From clientes;
Vemos que con * indicamos todas las columnas. Ahora si quisiéramos ver
solo el código del cliente y el nombre, sería así:
Select codigo, nombre From clientes;
Por último, si quisiéramos solo ver aquellos códigos de clientes de la
ciudad de Buenos Aires, se verá:
Select código From clientes Where ciudad = “Buenos Aires”.
15
RESUMEN DE BASE DE DATOS.
Tema 2. Modificación de registros.
Veamos cómo podemos insertar y modificar los registros de una base
de datos:
➔ Eliminación o borrado de Registros: Para eliminar o borrar registros en
una tabla con el SQL es preciso utilizar la sentencia delete from que
tiene el siguiente formato:
DELETE FROM nombre_tabla WHERE restricciones o
condiciones; ➔ Si quiero borrar todos los registros de una
tabla escribirla: DELETE FROM CLIENTES;
➔ Para borrar todos los registros de una tabla se puede utilizar la
sentencia Trúncate, que es más rápida que un delete:
TRUNCATE TABLE CLIENTES;
➔ Si le agrego CASCADE borra los registros que hacen referencia a la
tabla via foreign key
TRUNCATE TABLE CLIENTES CASCADE
Actualización de Registros: Para actualizar registros de una tabla con el
SQL es preciso utilizar la sentencia update que tiene el siguiente formato:
UPDATE nombre_tabIa
SET ( coIumn_name = ( expression | DEFAULT T I
( coIumn_name [, ...] ) = [ ROW ] ( { expression I DEFAULT } [,
( coIumn_name [, ...] ) = ( sub-SELECT )
WHERE restricciones o condiciones;
Tema 3. Consultas agrupadas y ordenadas.
Funciones de agregación: SQL ofrece las siguientes funciones de
agregación para efectuar diferentes operaciones con los datos de una BD:
La función de agregación count que normalmente se aplica a todas las
columnas de la tabla o tablas seleccionadas: count * contaría las filas de la
tabla o tablas que cumplan las condiciones.
Consultas con agrupación de filas de una tabla
Las cláusulas que añadimos a la sentencia select from permiten organizar
las filas por grupos:
● La cláusula group by nos sirve para agrupar filas según las
columnas que indique esta cláusula.
● La cláusula having especifica condiciones de búsqueda para grupos
16
RESUMEN DE BASE DE DATOS.
de filas; Consulta con agrupación de filas: se quiere saber el sueldo
medio que ganan los empleados de cada departamento.
Los factores de agrupación de la cláusula group by tienen que ser,
como mínimo, las columnas que figuran en select, exceptuando las
columnas afectadas por las funciones de agregación.
Consultas ordenadas
Si se quiere que, al hacer una consulta, los datos aparezcan en un orden
determinado, hay que utilizar la cláusula order by en la sentencia select.
Tema 4. Operaciones de conjuntos
Son operaciones derivadas de la matemática de conjuntos. Existen
múltiples operaciones de conjunto.
La intersección: Para hacer la intersección entre dos o más sentencias
select from, se puede utilizar la cláusula intersect
La diferencia; Para encontrar la diferencia entre dos o más sentencias select
from podemos utilizar la cláusula except
Tema 5. Uniones entre tablas (joins).
Combinación: consigue crear una sola tabla a partir de las tablas
especificadas en la cláusula from. Hace coincidir los valores de las
columnas relacionadas de estas tablas.
Combinación natural(natural join): Consiste básicamente en hacer un
equicombinación entre columnas del mismo nombre y eliminar las columnas
repetidas.
Combinación interna y externa(inner join): Se queda con las filas que tienen
valores idénticos en las columnas de las tablas que compara.
Combinaciones con más de dos tablas: Combinar tres tablas o más solo hay
que añadir todas las tablas en el from y los vínculos necesarios en el where.
MÓDULO 4: SQL AVANZADO.
Unidad 1. SQL avanzado.
Tema 1. Procedimiento almacenado y función.
Funciones: Son programas SQL almacenados que devuelven un solo valor
para cada fila de datos.
Procedimientos almacenados: Se amplía en varias capacidades normalmente
asociadas con lenguajes de programación. Las secuencias de sentencias SQL
se agrupan para formar programas o procedimientos SQL.
Se proporcionan las siguientes capacidades:
● Ejecución condicional: Una estructura IF
... THEN ... ELSE permite un uso
de un procedimiento SQL para probar una condición y llevar a cabo
diferentes operaciones dependiendo del resultado.
17
RESUMEN DE BASE DE DATOS.
● Bucle: Un ciclo WHILE o FOR o una estructura similar permiten realizar
una secuencia de operaciones SQL repetidamente hasta que se cumpla
alguna condición de terminación.
● Estructura de bloques: Una secuencia de sentencias SQL puede
agruparse en un solo bloque y utilizarse en otras construcciones de
flujo de control como si el bloque de instrucciones fuera una sola
sentencia.
● Variables nombradas: Un procedimiento SQL puede almacenar un valor
que ha calculado, recuperado de la base de datos o derivado de
alguna otra forma en una variable de programa, y recuperar
posteriormente el valor almacenado para su uso en cálculos
subsiguientes.
● Procedimientos con nombre: Una secuencia de sentencias SQL puede
agruparse, asignar un nombre y asignar parámetros formales de
entrada y salida, como una subrutina o una función en un lenguaje de
programación convencional.
Ejemplos:
● Obtener el número de cliente, nombre, límite de crédito y cantidad de
ventas objetivo para el cliente, así como el vendedor y la oficina
asignados.
● Agregar una fila a la tabla de cliente que contiene los datos del cliente.
● Actualizar la fila del vendedor asignado, aumentando el objetivo de
cuota en la cantidad especificada.
● Actualizar la fila de la oficina, aumentando la meta de ventas en la
cantidad especificada.
Creación de un procedimiento almacenado
Nombre del procedimiento: La instrucción CREATE PROCEDURE le asigna un
nombre al procedimiento recién definido, que se utiliza luego para invocarlo.
Parámetros:
● Acepta cero o más parámetros como argumentos.
● Se debe especificar el nombre de los parámetros y sus tipos de datos,
soportados por el DBMS.
Pueden ser los siguientes:
● Entrada [IN].
● Salida [OUT].
● Entrada-salida [IN-OUT].
Variables: Se declaran al principio del cuerpo del procedimiento, justo
después del encabezado del procedimiento y antes de la lista de sentencias
SQL. El valor actual de la variable se utiliza en la ejecución de la sentencia.
Llamando a un procedimiento almacenado: Una vez definido por la
instrucción CREATE PROCEDURE, el procedimiento se puede utilizar. El
18
RESUMEN DE BASE DE DATOS.
procedimiento almacenado también se puede invocar a través de una interfaz
interactiva de SQL.
Funciones: Las funciones se utilizan comúnmente como expresiones de
columna en sentencias SELECT y, por lo tanto, se invocan una vez por fila en
el conjunto de resultados. Esto permite que la función realice cálculos,
conversión de datos y otros procesos para producir el valor devuelto para la
columna.
Tema 2. SQL dinámico.
Ejecución dinámica de instrucciones (EXECUTE IMMEDIATE): La forma más
simple de SQL dinámico es proporcionada por la instrucción EXECUTE
IMMEDIATE. Esta sentencia pasa el texto de una instrucción SQL dinámica al
DBMS y le pide al DBMS que ejecute la instrucción dinámica de inmediato.
EXECUTE IMMEDIATE cadena de texto
● El programa construye una sentencia SQL como una cadena de texto
en una de sus áreas de datos y la almacena en la memoria como una
variable con nombre.
● El programa pasa la instrucción SQL al DBMS con la instrucción
EXECUTE IMMEDIATE.
● El DBMS ejecuta la sentencia y establece los valores SQLCODE /
SQLSTATE para indicar el estado de finalización, exactamente como si
la sentencia hubiera sido codificada mediante SQL estático.
Tema 3. Disparadores (triggers).
Cursores: Una necesidad común para la repetición de sentencias dentro de
un procedimiento almacenado surge cuando el procedimiento ejecuta una
consulta y necesita procesar los resultados de la consulta, fila por fila.
(DECLARE CURSOR, OPEN CURSOR, FETCH y CLOSE CURSOR).
Disparadores: Se pueden utilizar para provocar actualizaciones automáticas
de la información dentro de una base de datos.
Tema 4. Manejo de errores.
Tipos de errores:
● Errores en tiempo de compilación: Las comillas mal colocadas, las
palabras clave de SQL mal escritas y los errores similares en sentencias
de SQL embebido son detectados por el precompilador de SQL e
informados al programador.
● Errores en tiempo de ejecución: El intento de insertar un valor de datos
no válido o la falta de permisos para actualizar una tabla solo se puede
detectar en tiempo de ejecución.
Tratamiento de errores con SQLCODE:
19
RESUMEN DE BASE DE DATOS.
● Un SQLCODE de cero indica la finalización satisfactoria de la
sentencia, sin errores ni advertencias.
● Un valor SQLCODE negativo indica un error grave que impidió que la
instrucción se ejecutará correctamente.
● Un valor SQLCODE positivo indica una condición de advertencia.
Unidad 2. Bases NoSQL.
Tema 1. Tipos de bases NoSQL
● Bases de datos clave–valor: Son el modelo de base de datos NoSQL más
popular, además de ser el más sencillo en cuanto a funcionalidad. En
este tipo de sistema, cada elemento está identificado por una llave
única, lo que permite la recuperación de la información de forma muy
rápida.
● Bases de datos documentales.
● Base de datos no relacionales: Se almacena la información como un
documento, generalmente utilizando para ello una estructura simple
como JSON o XML y donde se utiliza una clave única para cada
registro. Permite, además de realizar búsquedas por clave–valor, realizar
consultas más avanzadas sobre el contenido del documento.
● Bases de datos en grafo: Se representa como nodos de un grafo y sus
relaciones con las aristas del mismo, de manera que se puede hacer
uso de la teoría de grafos para recorrerla. Ofrece una navegación más
eficiente entre relaciones que en un modelo relacional.
● Bases de datos orientadas a objetos: Se representa mediante objetos,
de la misma forma que son representados en los lenguajes de
programación orientada a objetos (POO), como ocurre en JAVA, C# o
Visual Basic .NET.
Tema 2. Creación y consultas en BD No SQL.
En MongoDB no existe ningún comando estilo create database o algo
parecido. Lo que hace Mongodb es crear una colección (base de datos) en el
momento que se le inserta un objeto o documento (registro de una tabla, por
llamarlo de alguna forma) a dicha colección.
Crear una base de datos en MongoDB
Ej: use peliculas;
Tema 3. Comparativa SQL vs. NoSQL
Ventajas: NoSQL
● Su escalabilidad y su carácter descentralizado. Soportan estructuras
distribuidas.
● Suelen ser bases de datos mucho más abiertas y flexibles. Permiten
adaptarse a necesidades de proyectos mucho más fácilmente que los
modelos de entidad relación.
● Se pueden hacer cambios de los esquemas sin tener que parar bases
de datos.
● Se pueden ejecutar en máquinas con pocos recursos.
20
RESUMEN DE BASE DE DATOS.
● Permiten una optimización de consultas en base de datos para grandes
cantidades de datos.
Desventajas:
● No todas las bases de datos NoSQL contemplan la atomicidad de las
instrucciones y la integridad de los datos.
● Las nuevas bases de datos utilizan sus propias características en el
lenguaje de consulta y no son 100 % compatibles con el SQL de las
bases de datos relacionales.
● Falta de estandarización. Hay muchas bases de datos NoSQL y aún no
hay un estándar como sí lo hay en las bases de datos relacionales. Se
presume un futuro incierto en estas bases de datos.
● Soporte multiplataforma.
● Suelen tener herramientas de administración no muy usables o se
accede por consola.
Ventajas: SQL.
● Está más adaptado su uso y los perfiles que las conocen son
mayoritarios y más baratos.
● Estas herramientas tienen un mayor soporte y mejores suites de
productos y add-ons para gestionar.
● Hay atomicidad en las operaciones en la base de datos. Esto quiere
decir que en estas bases de datos o se hace la operación entera o no
se hace, utilizando la famosa técnica del rollback.
● Los datos deben cumplir requisitos de integridad tanto en tipo de dato
como en compatibilidad.
Desventajas:
● La atomicidad de las operaciones juega un papel crucial en el
rendimiento de las bases de datos.
● Tiene una escalabilidad, que aunque probada en muchos entornos
productivos, suele, por norma, ser inferior a las bases de datos NoSQL.
NoSQL vs SQL; cuándo utilizar qué tipo de base de datos.
● Cuando los datos deben ser consistentes sin dar posibilidad al error de
utilizar una base de datos relacional, SQL.
● Cuando nuestro presupuesto no se puede permitir grandes máquinas y
debe destinarse a máquinas de menor rendimiento, NoSQL.
● Cuando las estructuras de datos que manejamos son variables, NoSQL.
● Cuando hay que analizar grandes cantidades de datos en modo
lectura, NoSQL.
● Cuando hay que capturar y procesar eventos, NoSQL.
● Cuando se trata de tiendas online con motores de inteligencia
complejos, NoSQL.
21

Más contenido relacionado

Similar a DB Resumen Almacenamiento Índices

Isam (método de acceso secuencial indexado)
Isam (método de acceso secuencial indexado)Isam (método de acceso secuencial indexado)
Isam (método de acceso secuencial indexado)David Rodríguez Gómez
 
Archivos secuenciales indexados
Archivos secuenciales indexadosArchivos secuenciales indexados
Archivos secuenciales indexadosJose Marroquin
 
Quasi - Ficheros, Organizacion, Procesamiento, Acceso
Quasi - Ficheros, Organizacion, Procesamiento, AccesoQuasi - Ficheros, Organizacion, Procesamiento, Acceso
Quasi - Ficheros, Organizacion, Procesamiento, Accesodegarden
 
Se refiere a las diferentes maneras en las que puede ser organizada la inform...
Se refiere a las diferentes maneras en las que puede ser organizada la inform...Se refiere a las diferentes maneras en las que puede ser organizada la inform...
Se refiere a las diferentes maneras en las que puede ser organizada la inform...Cristian Izquierdo
 
Sistemas de Gestión de Archivos
Sistemas de Gestión de ArchivosSistemas de Gestión de Archivos
Sistemas de Gestión de ArchivosVero Mateus
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivosJulian Parra
 
Asignación indexada Contigua.pptx.mnx.
Asignación  indexada  Contigua.pptx.mnx.Asignación  indexada  Contigua.pptx.mnx.
Asignación indexada Contigua.pptx.mnx.EdgarGmez53
 
La organizacic3b3n-lc3b3gica-y-fc3adsica-de-los-sistemas-de-archivo-y-sus-mec...
La organizacic3b3n-lc3b3gica-y-fc3adsica-de-los-sistemas-de-archivo-y-sus-mec...La organizacic3b3n-lc3b3gica-y-fc3adsica-de-los-sistemas-de-archivo-y-sus-mec...
La organizacic3b3n-lc3b3gica-y-fc3adsica-de-los-sistemas-de-archivo-y-sus-mec...Oscar LS
 
Estructura de archivos secuencial indexado
Estructura de archivos secuencial indexadoEstructura de archivos secuencial indexado
Estructura de archivos secuencial indexadodexter120
 
La organización lógica y física de los sistemas de archivo y sus mecanismos ...
La organización lógica y física  de los sistemas de archivo y sus mecanismos ...La organización lógica y física  de los sistemas de archivo y sus mecanismos ...
La organización lógica y física de los sistemas de archivo y sus mecanismos ...mani villa
 
Estructura de archivos secuencial indexado
Estructura de archivos secuencial indexadoEstructura de archivos secuencial indexado
Estructura de archivos secuencial indexadodexter120
 
Base de datos
Base de datosBase de datos
Base de datoskion251
 
Presentacion de base de datos
Presentacion de base de datosPresentacion de base de datos
Presentacion de base de datosdetorres05
 
Archivos Secuenciales Indexados
Archivos Secuenciales IndexadosArchivos Secuenciales Indexados
Archivos Secuenciales Indexadosjennifergu17
 
Manejo de archivo en la informacion
Manejo de archivo en la informacionManejo de archivo en la informacion
Manejo de archivo en la informacioncc11203942
 

Similar a DB Resumen Almacenamiento Índices (20)

Isam (método de acceso secuencial indexado)
Isam (método de acceso secuencial indexado)Isam (método de acceso secuencial indexado)
Isam (método de acceso secuencial indexado)
 
Archivos secuenciales indexados
Archivos secuenciales indexadosArchivos secuenciales indexados
Archivos secuenciales indexados
 
Quasi - Ficheros, Organizacion, Procesamiento, Acceso
Quasi - Ficheros, Organizacion, Procesamiento, AccesoQuasi - Ficheros, Organizacion, Procesamiento, Acceso
Quasi - Ficheros, Organizacion, Procesamiento, Acceso
 
Se refiere a las diferentes maneras en las que puede ser organizada la inform...
Se refiere a las diferentes maneras en las que puede ser organizada la inform...Se refiere a las diferentes maneras en las que puede ser organizada la inform...
Se refiere a las diferentes maneras en las que puede ser organizada la inform...
 
Sistemas de Gestión de Archivos
Sistemas de Gestión de ArchivosSistemas de Gestión de Archivos
Sistemas de Gestión de Archivos
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
Asignación indexada Contigua.pptx.mnx.
Asignación  indexada  Contigua.pptx.mnx.Asignación  indexada  Contigua.pptx.mnx.
Asignación indexada Contigua.pptx.mnx.
 
Expociion njuand
Expociion njuandExpociion njuand
Expociion njuand
 
Archivos secuenciales indexados drasly
Archivos secuenciales indexados   draslyArchivos secuenciales indexados   drasly
Archivos secuenciales indexados drasly
 
La organizacic3b3n-lc3b3gica-y-fc3adsica-de-los-sistemas-de-archivo-y-sus-mec...
La organizacic3b3n-lc3b3gica-y-fc3adsica-de-los-sistemas-de-archivo-y-sus-mec...La organizacic3b3n-lc3b3gica-y-fc3adsica-de-los-sistemas-de-archivo-y-sus-mec...
La organizacic3b3n-lc3b3gica-y-fc3adsica-de-los-sistemas-de-archivo-y-sus-mec...
 
Estructura de archivos secuencial indexado
Estructura de archivos secuencial indexadoEstructura de archivos secuencial indexado
Estructura de archivos secuencial indexado
 
La organización lógica y física de los sistemas de archivo y sus mecanismos ...
La organización lógica y física  de los sistemas de archivo y sus mecanismos ...La organización lógica y física  de los sistemas de archivo y sus mecanismos ...
La organización lógica y física de los sistemas de archivo y sus mecanismos ...
 
Presentación1
Presentación1Presentación1
Presentación1
 
Estructura de archivos secuencial indexado
Estructura de archivos secuencial indexadoEstructura de archivos secuencial indexado
Estructura de archivos secuencial indexado
 
Organizacion de archivos
Organizacion de archivosOrganizacion de archivos
Organizacion de archivos
 
Datos
DatosDatos
Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Presentacion de base de datos
Presentacion de base de datosPresentacion de base de datos
Presentacion de base de datos
 
Archivos Secuenciales Indexados
Archivos Secuenciales IndexadosArchivos Secuenciales Indexados
Archivos Secuenciales Indexados
 
Manejo de archivo en la informacion
Manejo de archivo en la informacionManejo de archivo en la informacion
Manejo de archivo en la informacion
 

DB Resumen Almacenamiento Índices

  • 1. RESUMEN DE BASE DE DATOS. MÓDULO 1. DATOS. Unidad 1. Almacenamiento y archivos Tema 1. Tipos de almacenamiento Las bases de datos, independientemente del modelo de datos que se haya usado para su diseño, se almacenan físicamente como archivos de registros; normalmente, se almacenan en discos rígidos. ● Almacenamiento primario: Incluye la memoria principal y la memoria caché. Son medios de almacenamiento muy rápidos, aunque con capacidad limitada. ● Almacenamiento secundario: Incluye discos magnéticos, discos ópticos, cintas, etc. Son medios de almacenamiento de grandes capacidades, aunque con un acceso mucho más lento. Subniveles: ● Memoria caché: Es la capa más cara de la jerarquía, y se trata de una memoria RAM estática que usa la CPU para aumentar la velocidad de ejecución de las máquinas. Es volátil. ● Memoria DRAM (RAM dinámica) o memoria principal: La usa la CPU para mantener los programas y los datos. Es más lenta que la RAM estática, aunque más barata. Es volátil. ● Memoria flash: Memoria no volátil que se sitúa en el último subnivel dentro del nivel primario. Nivel de almacenamiento secundario: ● Discos de estado sólido (SSD). ● Discos rígidos: Son los que más se usan en este nivel por su relación velocidad/precio. ● Discos que se basan en tecnología óptica con lectura/escritura láser: Compact disks (CD), digital versatile disks (DVD), blu-ray disks. ● Las cintas: Se encuentran en el nivel más barato. La memoria principal, siempre que tenga capacidad suficiente, se puede usar para albergar datos (o parte de ellos), manteniendo siempre una copia de respaldo en memoria secundaria para evitar los problemas que podrían ocasionar la volatilidad de la primera. Tema 2: Archivos, tipos de archivos y operaciones básicas. Estructura de un archivo y tipos: Archivo: Es una secuencia de registros. Estos registros pueden ser de longitud fija o variable. Cada registro es una colección de campos que se asocian de manera independiente con un puntero. Organización de un archivo: Según el tipo de registro: ● Extendida: Los espacios libres en cada bloque se ocupan o se aprovechan. Se usa cuando el registro es mayor que el bloque. ● No extendido: Los espacios libres no se utilizan. 1
  • 2. RESUMEN DE BASE DE DATOS. Según el ordenamiento de los registros: ● Archivos desordenados: En este tipo de archivos, no existe un ordenamiento; los registros se insertan al final del archivo en la medida que se ingresan. ● Archivos ordenados o secuenciales: Se ordenan físicamente con algún campo clave. Operaciones básicas. - Insertar: Permite poblar la base de datos. Las inserciones pueden ser individuales o masivas, según se ingresan uno o muchos registros al archivo. La inserción masiva puede suceder cuando se importan, masivamente,mediante la importación de un archivo externo como un libro de Excel. - Extraer: Una funcionalidad de este tipo de operaciones es extraer o leer todos los artículos de un determinado rubro, por ejemplo listar todos los artículos del rubro electrónico. - Actualizar: Se busca un determinado dato o universo de datos, con el fin de realizar una modificación sobre un campo o varios campos. - Eliminar: Es la operación inversa a la inserción de datos cuenta con la dinámica de poder procesar de forma masiva o de manera individual. Debemos estar muy seguros al momento de hacer la eliminación. Tema 3. Archivos secuenciales y ordenados. Los archivos secuenciales se caracterizan por tener un orden físico según los valores de uno de sus campos: el campo de ordenación. Estos archivos poseen ciertas ventajas: ● La lectura de registros en el orden físico almacenado es extraordinariamente eficiente. ● Los accesos a registros son en orden consecutivo y no se requiere cambiar de bloque, por lo que se optimiza el acceso físico. ● Las condiciones de búsqueda que afectan a valores de un campo de ordenación son muy eficientes cuando emplea una estrategia de búsqueda binaria. Tema 4. Archivos hash. Función hash. Resolución de conflictos. Los archivos de direccionamiento calculado, también conocidos como dispersos o hashing, proporcionan un acceso muy rápido a los registros. La función de este tipo organización se basa en establecer una función hash que, una vez aplicada sobre el valor del campo de direccionamiento de un registro, producirá la dirección del bloque de disco en el que se almacena el registro. Se obtiene el bloque, se copia a memoria principal, y se realiza la búsqueda del registro dentro del bloque. 2
  • 3. RESUMEN DE BASE DE DATOS. ● Tabla hash: Una tabla hash es una estructura de datos, que se conoce, además, como tabla fragmentada. Esta estructura se basa en una operación en la que se asocian claves con valores. Esto permite lograr accesos muy rápidos al momento de buscar la información. ★ ¿Cuál es el problema más común en las funciones hash+? La aglomeración de valores. Esto se da cuando las claves más usadas caen todas muy cerca, y es probable que disminuya el rendimiento en una tabla de manera significativa. ★ Resolución de colisiones: Esto sucede cuando dos números de la función hash apuntan al mismo índice. No es posible almacenar dos registros en el mismo lugar. Las más conocidas son las siguientes: (encadenamiento, direccionamiento abierto) - Encadenamiento: Se da cuando una casilla del array hace referencia a una lista de registros que colisionan en esa casilla. Las principales ventajas del encadenamiento sobre el direccionamiento directo son las siguientes: - El borrado es simple. - El crecimiento de la tabla se puede posponer durante más tiempo, aun cuando todas las casillas están ocupadas. - Direccionamiento abierto: En las tablas hash de direccionamiento abierto, podemos almacenar los registros en el array, directamente. Las colisiones se resolverán por medio de un sondeo del array, hasta encontrar el registro, o hasta Ilegar a una casilla vacía. Sondeos más usados: ➔ Sondeo lineal: El intervalo entre cada intento es constante. Favorece el rendimiento del caché, pero es más sensible a la aglomeración. ➔ Sondeo cuadrático: El intervalo entre los intentos aumenta linealmente. Se sitúa en medio en cuanto a rendimiento en caché y aglomeración. ➔ Doble «hasheo»: El intervalo entre intentos es constante para cada registro, pero es calculado por otra función hash. Disminuye el rendimiento en el caché, pero elimina el problema de aglomeración. Hash: aplicaciones: Existen múltiples aplicaciones que se relacionan con las tablas hash. Una de ellas es la del uso de la firma digital. Unidad 2. Índices y árboles 3
  • 4. RESUMEN DE BASE DE DATOS. Tema 1. Archivos de índices Estas estructuras pueden no ser suficientes para las necesidades de una base de datos. En muchos casos, es necesario hacer uso de unas estructuras de acceso auxiliares llamadas Índices. Los Índices se emplean para aumentar la performance de acceso a registros, bajo ciertas condiciones de búsqueda. El uso de Índices permite Ilevar a cabo las siguientes acciones: - Realizar búsquedas eficientes en archivos de datos organizados en montículo. - Acceder, de forma eficiente, mediante condiciones de búsqueda que afectan a cualquier campo en un archivo ordenado. La clasificación de los diferentes Índices que existen: - Densos. Una entrada por cada valor de la clave de indexación. - No densos o escasos: solo entradas para algunos valores de la clave de indexación. - Tipos de Índices ordenados de un nivel. - Primario o principal; - Agrupado; - Secundario. - Índices multinivel; - Índices multinivel dinámicos que utilizan árboles B y B +. Tema 2. Índices primarios y secundarios Índice primario: Son no densos, es decir, no se cargan todas las claves, ocupan menos espacio que el archivo de datos y poseen registros de longitud fija. Índice secundario: Se usan cuando un archivo ya posee un índice. Es lento para la búsqueda y crece proporcionalmente. Si el índice es por campo no clave, los valores del campo de indexación se repiten. Ante esto, se puede generar Io siguiente: - un índice denso con un registro por cada valor, incluso repetido; - un índice con registro de longitud variable con un campo repetitivo de punteros a bloque; - un índice no denso, es decir, cada registro almacena puntero a bloque de punteros, y estos apuntan a registros (usado). 4
  • 5. RESUMEN DE BASE DE DATOS. Tema 3. Índices agrupados y multinivel Índice agrupado: - Precondición: archivo de datos ordenado (físico) por campo no clave. - Es un índice no denso. - Tiene más registros del archivo índice en cada bloque. - Permite una búsqueda binaria en el archivo índice y lectura del bloque. - inserción y borrado son un problema. Se sugiere reservar un bloque o contiguos por cada valor distinto del campo de indexación. Índice multinivel: - Se aplica después de generar el índice principal, agrupado o secundario. - Genera el segundo nivel principal, y toma el primer nivel como fichero ordenado con valor distinto en clave. - El segundo nivel posee una entrada por bloque. - Genera el tercer nivel, si el segundo nivel ocupa más de un bloque. Tema 4. Arboles AVL, B y B+ ¿Sabes Io que es un árbol? Arboles AVL: No son perfectamente equilibrados, pero son lo suficiente como para ofrecer un comportamiento bastante bueno al ser usados.(fue creado por los matemáticos rusos Adelson-Velskii y Landis, y es un tipo especial de árbol binario.) Arboles B y B+ Los Índices multinivel dinámicos, que utilizan árboles B y B +, son casos especiales de estructuras dinámicas de datos. Permiten implementar índices multinivel, con la posibilidad de que un índice se expanda o contraiga. Cada nodo contiene los siguientes elementos: 1. Un puntero por cada nodo hijo que tiene; 2. Valor del campo de indexación. Árboles B: Los algoritmos de los árboles B son complejos; cada valor del campo de búsqueda aparece con su puntero, por única vez. Los árboles B + son una variación de los árboles B. 5
  • 6. RESUMEN DE BASE DE DATOS. MÓDULO 2. BASE DE DATOS Y MODELO RELACIONAL. Unidad 1. Sistemas de bases de datos Tema 1. Modelo de datos y sistemas de base de datos Están integrados por una serie de conceptos para describir los datos, sus relaciones y restricciones, útiles para representar. Su propósito es facilitar la descripción de los datos y sus relaciones, permitir la representación de los datos y hacerlos comprensibles. Un modelo de datos debe tener: Un conjunto de elementos atómicos y de relaciones entre estos elementos, denominado espacio de datos, un conjunto debe crear y destruir elementos y modificarlos. Sistema de gestión de base de datos(SGBD): Es una capa de software que necesitamos si deseamos crear, manipular y recuperar datos. Como herramienta, sirve para realizar tareas generales, como estructurar, almacenar y controlar los datos, provee interfaces de acceso a esta. Rol del DBA: Las tareas del administrador de la base de datos son las siguientes: definir estructuras. Esto es la creación de la base de datos: tablas y sus relaciones. ● Definir estructuras físicas, qué archivos se van a crear para cada esquema. ● Especificar perfiles y seguridad: usuarios, roles y permisos a la base de datos. ● Implementar integridad: relaciones entre tablas. Sistema gerencial de una base de datos (SGI/MIS): Es el resultado de la interacción colaborativa de varias partes, como, por ej, personas, tecnologías y procedimientos. Habitualmente, para analizar la información, se alimentan de otros sistemas. Sus funciones principales son planificación, dirección, control y organización, son necesarias para un buen desempeño de la organización. Los SGI tienen como función ayudar a proporcionar info que cumpla con las siguientes características: ● Calidad: Debe ser fidedigna y no debe contener errores. ● Oportuna: Debe estar disponible, en el momento preciso en el que se la necesita. ● Cantidad: Se debe orientar al usuario, y debe mostrar mayor nivel de detalle a un operario y menor detalle a un gerente, para que cada nivel pueda tomar decisiones oportunas. ● Relevante: La info que se brinde se debe relacionar con sus tareas y responsabilidades. Componentes de un DBMS. Componente. Definición. Componente. Definición. Compilador DDL Procesa las definiciones de los esquemas y almacena los esquemas en el catálogo. Compilador de consultas Analiza las consultas, los nombres de elementos y objetos. 6
  • 7. RESUMEN DE BASE DE DATOS. Optimizador de consultas Configura, reordena, elimina redundancias. Precompilador DML Extrae los comandos DML y los envía al compilador DML. Compilador DML Compila y genera código objeto que le pasa al procesador de DB runtime. Seguridad de una base de datos ● Aspectos legales y éticos. ● Política para dejar información(créditos). ● Nivel de seguridad de datos. ● Disponibilidad. Medidas de control ● Control de acceso: sirve para restringir el acceso ● Control de flujo: sirve para evitar que cierta información llegue a usuarios no autorizados. ● Cifrado de datos: se realiza con algoritmos de cifrado, con clave, para disfrazar un mensaje. Seguridad y DBA ● Creación de cuentas para usuarios o grupo de acceso a DBMS. ● Concesión de derechos o privilegios y grantoption. ● Retiro de privilegios revoke. Respaldo y recuperación: Es vital contar con una copia de los datos originales, para poder recuperarlos en caso de que ocurra una pérdida parcial o total de la información. Las copias de seguridad pueden almacenarse en diferentes dispositivos: Tipos de respaldo ● Depósito del sistema de archivos: Es un tipo de copia de seguridad rápida. Exige que la base de datos no se esté usando en el momento de la copia, no es factible en los sistemas que poseen una alta disponibilidad para el usuario. ● Control de cambios: Consiste en copiar los archivos que solo han sido modificados. Varios sistemas de archivos cuentan con un bit de archivo para cada archivo, nos permite identificar si el archivo fue modificado o no, luego de la copia anterior. Si ha sido modificado, se resguarda, en caso contrario, no. ● Incremental a nivel de bloque: Una vez que se hace la copia base o primera copia, una forma de hacer una copia de seguridad de los archivos es copiar los bloques físicos que han sufrido cambios,es más complejo. ● Incremental o diferencial binaria: Es similar a la anterior, pero toma las diferencias binarias entre el backup anterior y el actual. La ventaja de este tipo de backup es que, al trabajar a nivel de byte, ahorra espacio y no depende del sistema operativo. ● Versionado del sistema de archivos: Se basa en los cambios del archivo, y crea estos cambios accesibles al usuario. Este tipo de copia de seguridad está integrada al ambiente informático. 7
  • 8. RESUMEN DE BASE DE DATOS. Copia de seguridad de datos en uso: Si al momento de ejecutarse el backup la base de datos está siendo usada, corremos el riesgo de que existan archivos abiertos y de que se esté trabajando sobre esos archivos. Si esto sucede, posiblemente, el contenido del disco no refleja exactamente lo que el usuario ve. Tema 2. Modelo jerárquico, de red y relacional Generación de estructuras relacionales Modelo de red: Los datos son representados como colección de registros, de estructura arbitraria. Como desventaja, poseen una estructura compleja para problemas simples. ● Get: copia un registro señalado por el puntero actual al buffer. ● Store: crea un registro con valores de datos ubicados en la memoria. ● Modify: implica encontrarlo, subirlo a la memoria y modificarlo. ● Erase: elimina registro, con previa búsqueda. ● Connect: conecta un registro con un conjunto de registros. ● Disconnect: desconecta un registro de un conjunto de registros. ● Reconnect: mueve un registro de un conjunto a otro. Modelo jerárquico: Es una aplicación particular del modelo de red. Los datos se representan como colección de registros, pero con estructura padre/hijo. Las órdenes implican acciones físicas: ● get/where: Localiza y copia registro a memoria. ● insert: se localiza a su registro padre y luego inserta. ● replace: modifica uno o más campos de un registro. ● delete: elimina el registro actual de la base de datos. Modelo relacional: ● Normalización: Intuitivamente, las relaciones se asocian con tablas nombradas cuyas columnas representan atributos que también tienen asociado un nombre. Las filas de las tablas se denominan tuplas. El modelo relacional se define integrado a partir de tres elementos: ● conjunto de relaciones que varía en el tiempo; ● reglas de inserción-actualización-eliminación; ● un álgebra relacional. Para diseñar un modelo de datos relacional, se utilizan una serie de normas o reglas denominadas formas normales, establecen el fundamento teórico de la normalización. Características o propiedades de las relaciones: ● Las tuplas no están ordenadas. ● Los atributos no están ordenados. ● Deben ser atómicos. ● No hay tuplas repetidas. Tema 3. Modelado y diseño de una BD relacional Modelo relacional: Las bases de datos recopilan datos, que se pueden manipular con facilidad, y se pueden mostrar o presentar de diversas maneras. El proceso incluye su estructura, contenido y las aplicaciones que se han de desarrollar. 8
  • 9. RESUMEN DE BASE DE DATOS. Captura de requerimientos: Es una descripción de alto nivel de la estructura de la base de datos, independientemente del DBMS que se vaya a utilizar para manipularla. El objetivo es describir el contenido de los datos de la base de datos, y no las estructuras de almacenamiento. Generación de estructuras relacionales Clave primaria: ● Las tareas que se deben realizar en el diseño conceptual son las siguientes: a) identificar las entidades; b) identificar las relaciones; c) identificar los atributos. Tema 4. Reglas de Codd y dependencia funcional Reglas de Codd ● Regla 1: Información. ● Regla 2: Acceso garantizado. ● Regla 3: Tratamiento sistemático de los valores nulos. ● Regla 4: Descripción de la base de datos. ● Regla 5: La regla del sub lenguaje integral. ● Regla 6: La regla de la actualización de vistas. ● Regla 7: insertar y actualizar. ● Regla 8: independencia física. ● Regla 9: La regla de independencia lógica. ● Regla 10: La regla de la independencia de la integridad. ● Regla 11: La regla de la distribución. ● Regla 12: Regla de la no subversión. Dependencia funcional: ● Dependencia funcional (DF) y dependencia funcional completa (DFC). ● Dependencia multivaluada (DMV). ● Dependencia de reunión. Dependencia funcional completa: se representa como z => x. Si z es un atributo simple y z → x, entonces la dependencia funcional es, con seguridad, completa. Dependencia multivaluada: En una relación T, con los atributos a, b y c, existe una dependencia multivaluada de b con respecto a si los posibles valores de b para un par de valores de a y c dependen únicamente del valor de a. Características: ● Cada atributo de la relación, haya una evidente repetición de valores que nos haga pensar en redundancia de datos. ● La relación debe tener, por lo menos, tres atributos. ● Debe observarse que dos de los atributos sean independientes entre sí funcionalmente. ● El tercer atributo establece una dependencia funcional con los otros dos. 9
  • 10. RESUMEN DE BASE DE DATOS. Dependencia de reunión: Una relación R satisface la dependencia de reunión (DR)*(A, B, Z) si y sólo si R se puede construir con la reunión de sus proyecciones A, B, Z, siendo A, B, Z subconjuntos de atributos de R. Características ● La cantidad de atributos de la entidad es tres o superior a tres. ● Todos los atributos de la relación componen la clave primaria. ● No debe haber dependencia funcional entre ninguno de sus atributos y tampoco dependencias multivaluadas no triviales. Unidad 2. Formas normales Normalización: Cuando se trabaja sobre la normalización de un modelo para resolver un problema, se está realizando un análisis de su lógica funcional. Esta acción de entender un problema permite identificar datos con características y propiedades que dan origen y establecen los atributos. Terminología ● Entidad. ● Atributo. ● Instancia. ● Dominio. Entidad: Se denomina entidad al contenedor de una colección de atributos. Atributo: Se denomina atributo a cada componente de una entidad que califica y establece una propiedad dentro de ella. En una entidad, los atributos tienen un nombre único y no poseen un orden específico. Instancia: Es una colección de valores que pertenecen al mismo grupo o una ocurrencia de valores. Las instancias son conjuntos ordenados de valores singulares. Dominio: En el diseño lógico, es la caracterización conceptual del atributo, la definición de lo que queremos que represente ese atributo al que le estamos asignando el dominio. Formas normales: La dependencia funcional brinda la base conceptual para las siguientes formas normales: ● Primera forma normal [1FN o1NF]. ● Segunda forma normal [2FN o2NF]. ● Tercera forma normal [3FN o3NF]. La dependencia multivaluada solo actúa en la siguiente: ● Cuarta forma normal [4FN o 4NF]. Cuarta formal normal La dependencia de reunión solo actúa en la siguiente: ● Quinta forma normal [5FN o 5NF]. Tema 1. Primera forma normal Una relación está en primera forma normal si y sólo si todos los dominios simples subyacentes de los atributos poseen valores atómicos y monovalentes. ● Dominios simples de los atributos: Se refiere a que todos los atributos que componen una entidad tienen un único dominio y que, por ello, este es simple. Los atributos se encuentran reducidos conceptualmente 10
  • 11. RESUMEN DE BASE DE DATOS. a la mínima definición de dominio y, por este motivo, su expresión no resiste mayor división. ● Atributos monovalentes: Hace referencia a que la información se representa una única vez dentro del modelo. Entonces, se deben arbitrar proyecciones (descomposiciones) de entidades suficientes para que la información sea reflejada una sola vez. ● Explicación desde la práctica: Observa la siguiente planilla de datos, que consta de un resumen de ventas de una librería que procesa todos sus datos desde una planilla de cálculos del tipo Excel. Tema 2. Segunda forma normal Una relación está en segunda forma normal si y sólo si primero está en primera forma normal y, además, todos los atributos no claves dependen por completo de la clave primaria. Es muy importante tener en claro que no se puede alcanzar la 2FN, si alguna relación del modelo no está en 1FN. Tema 3. Tercera forma normal y forma de Boyce-Codd Una relación está en tercera forma normal si y sólo si está en 2FN, y si ningún subconjunto de atributos no primarios tiene dependencia entre sí y como segunda medida dependen transitivamente de la clave primaria. Atributos no primarios: es atributo no clave, que no forma parte de ninguna combinación de claves candidatas posibles. Dependencia transitiva ocurre cuando dos atributos no primarios que, por lo tanto, no forman parte de ningún tipo de clave tienen una dependencia funcional entre sí más fuerte que la que se produce con la PK de la relación. Forma normal de Boyce-Codd Determinante: Uno o más atributos son determinantes cuando, de manera funcional, determinan a otros atributos. En la dependencia funcional (A, B)-->C, (A, B) son los determinantes. Definición formal: Cuando un determinante es una llave candidata, una relación R está en FNBC. Se considera en esta forma si y sólo si cada determinante o atributo es una llave candidata. Tema 4. Cuarta forma normal La 4NF se usa mucho en el diseño de base de datos, y garantiza que las dependencias multivaluadas independientes estén efectivamente correctas. La 4NF es el nivel siguiente de normalización después de la forma normal de Boyce-Codd. Características ● Una tabla se encuentra en 4NF si y sólo si está en tercera forma normal y no presenta dependencias multivaluadas no triviales. MÓDULO 3: SQL. Unidad 1. Creación de estructura (DDL) 11
  • 12. RESUMEN DE BASE DE DATOS. Tema 1. introducción. Tipos de datos SQL SQL: Es el lenguaje estándar para trabajar con bases de datos relacionales y es soportado prácticamente por todos los productos en el mercado. Fue desarrollado en IBM Research a principios de los años setenta. Tipos de datos en SQL: ● DBMS: Provee distintos tipos de datos con los cuales podemos trabajar, sin embargo, es necesario especificar cuál nos conviene más y para eso debemos de saber sus características en búsqueda, capacidad, uso de los recursos, etc. Introduce tipos de valores de campos que no se encuentran precisamente presentes en otras. Tipos de datos genéricos en SQL Alfanuméricos Cifras y letras. Presentan una longitud limitada (varchar, varchar2, text). Son similares, pero pueden variar. Numéricos Hay varios tipos: enteros (sin decimales) y reales (con decimales) Ej: short, int, bigint, decimal. Booleanos Poseen dos formas: Verdadero y falso (Sí o No). Boolean. Fechas Almacenan fechas facilitando posteriormente su explotación. Incorporan funciones para manipular fechas, comparar y obtener un valor particular (dfa, mes, año). Memos Campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados (veremos más adelante Io que esto quiere decir). Autoincrementales Campos numéricos enteros que incrementan en una unidad (o más) su valor para cada registro incorporado. identificador, resultan exclusivos de un registro. Tabla 2: Tipos de datos en Postgre SQL. Tipos de datos del estándar SQL3 en Postgre SQL Tipos en Postgres Bool Correspondientes en SQL3 Descripción Boolean Valor lógico o booleano (true false). 1 Módulo 3 SQL 12
  • 13. RESUMEN DE BASE DE DATOS. Char Character(n) Cadena de caracteres de tamaño fijo. Date Date Fecha (sin hora). Float 4/8 Float(86#86) Número de punto flotante con precisión 86#86. Float 8 Real, double precision. Número de puntos flotantes de doble precisión. Int 2 Smallint. Entero de dos bytes con signo. Int 4 Int, integer Entero de cuatro bytes con signo. Int 4 Decimal(87#87) Número exacto con 88#88 Int 4 Numeric(87#87) Número exacto con 89#89 Money Decimal(9,2) Cantidad monetaria. Time Time Hora en horas, minutos, segundos y centésimas. Time stamp Interval Intervalo de tiempo. Timestamp Varchar(n) Timestamp with time zone. Fecha y hora con zonificación. Character varying(n). Cadena de caracteres de tamaño variable. Tema 2. Creación y relaciones entre tablas Tablas: Los datos son almacenados en las tablas por medio de filas y columnas. La definición de las tablas se realiza con un nombre que la identifica unívocamente y un conjunto de columnas. ● Columna: Representa un tipo de datos en una tabla, ej, el nombre de un artículo en la tabla “artículos”. Cada columna cuenta con un nombre, un tipo de dato (char, date o number) y un tamaño (cantidad de caracteres, si es un tipo texto, un ancho, si es un tipo fecha) o una escala y precisión (para tipos numéricos). ● Fila: Es una composición de los valores de las columnas de una tabla, ej, la info acerca de un artículo (nombre, precio) en la tabla “articulos”. ● Campo: La intersección de una fila con una columna es el campo. Es la unidad más atómica de una tabla, no puede ser descompuesto en valores más pequeños. El campo puede o no contener datos Esquema o base de datos: Para crear nuestras tablas primero tendremos que hacer un esquema de base de datos y teniendo en cuenta el motor utilizado cada esquema puede tener varias bases de datos. 13
  • 14. RESUMEN DE BASE DE DATOS. Esquemas y/o base de datos. Restricciones de columna: En cada una de las columnas de la tabla, una vez que les hemos dado un nombre y hemos definido el dominio, podemos imponer ciertas restricciones que siempre se tendrán que cumplir. ● Not null: La columna no puede tener valores nulos. ● Unique: La columna no puede tener valores repetidos. Es una clave alternativa. ● Primary key: La columna no puede tener valores repetidos ni nulos. Es la clave primaria. ● References(<nombre tabIa> [(<nombre columnar)]): La columna es la clave foránea de la columna de la tabla especificada. ● Constraint [<nombre restricción»] Check (<condiciones>): La columna tiene que cumplir las condiciones especificadas. Tema 3. Claves primarias, secundarias y foráneas. Clave primaria: Está compuesta por una o más columnas que permiten identificar de manera unívoca a cada fila de una tabla, por ej, el código de barras de un artículo. La clave primaria es única por tabla y siempre debe contener un valor. Clave foránea: Está compuesta por una o más columnas que hacen referencia a una clave primaria de otra tabla o de la misma, por eso la relación entre las tablas que las contienen se conoce como padre/hijo. Las claves foráneas tienen el fin de ayudar al cumplimiento de las reglas de diseño de la base de datos relacional. Tema 4. Índices y vistas ● Son mecanismos que facilitan el acceso a los datos. ● Vistas: No existen realmente como un conjunto de valores almacenados en la BD, son tablas ficticias denominadas derivadas (no materializadas). ● Índices: Son objetos independientes, ya sea desde el punto de vista lógico como del punto de vista físico. Ellos se pueden crear o eliminar sin que afecten a la información almacenada en una tabla. Clave primaria: la mayoría de los productos de DBMS siempre establecen un índice para la clave primaria de una tabla porque anticipan que el acceso a la tabla será más frecuente a través de la clave primaria. Clave forânea: un índice de columnas de clave foránea a menudo puede mejorar el rendimiento de las combinaciones. Restricción de unicidad: La mayoría de los productos DBMS también establece automáticamente un índice para cualquier columna (o combinación de columnas) definida con una restricción de unicidad. Tipos de Índices ● Una columna indexada: crea un índice único para la tabla offices. 14
  • 15. RESUMEN DE BASE DE DATOS. CREATE UNIQUE INDEX OFC_MGR_IDX ON OFFICES (MGR); ● Dos columnas indexadas: crea un índice para la tabla orders. CREATE INDEX ORD_PROD_IDX ON ORDERS (MFR, PRODUCT); Unidad 2. Consultas y manipulación de datos (DML). Para manipular los datos de cualquier base de datos se cuenta con dos operaciones básicas: las de recuperación y las de inserción o actualización de datos. Estructura de una consulta: Select (lista de columnas) From Tablas Where Condiciones - Filas Group By (lista de columnas} Having Condiciones - Grupo Order By {lista de columnas} Tema 1. Inserción de registros. Para agregar registros en una tabla con el SQL es preciso utilizar la sentencia insert into que tiene el siguiente formato. INSERT INTO nombre_tabIa [(nombre_coIumna [,. ]) Tabla clientes (código, nombre, dirección, ciudad) y queremos insertar un registro simplemente basta con escribir: Selección y proyección. Para hacer consultas sobre una tabla con el SQL es preciso utilizar la sentencia select from que tiene el siguiente formato: SELECT nombre_coIumna_a_ seccionar [,nombre_coIumna_a_ seccionar...] FROM tabIa_a_consuItar ● La selección es el proceso por el cual elegimos qué registros tomamos de una tabla en particular. ● El where, es opcional ya que si no se escribe indica que queremos todos las tuplas o registros de una tabla. ● La proyección es la que nos permite elegir qué campos o atributos mostrar de una determinada tabla, se hace a través del select. ● Por último, pero no menos importante, aparece el from. A través de esta palabra indicamos sobre qué tabla estamos realizando la consulta. Si tenemos una tabla clientes (código, nombre, dirección, ciudad) y queremos listar todos los clientes mostrando todas las columnas simplemente basta con escribir: Select * From clientes; Vemos que con * indicamos todas las columnas. Ahora si quisiéramos ver solo el código del cliente y el nombre, sería así: Select codigo, nombre From clientes; Por último, si quisiéramos solo ver aquellos códigos de clientes de la ciudad de Buenos Aires, se verá: Select código From clientes Where ciudad = “Buenos Aires”. 15
  • 16. RESUMEN DE BASE DE DATOS. Tema 2. Modificación de registros. Veamos cómo podemos insertar y modificar los registros de una base de datos: ➔ Eliminación o borrado de Registros: Para eliminar o borrar registros en una tabla con el SQL es preciso utilizar la sentencia delete from que tiene el siguiente formato: DELETE FROM nombre_tabla WHERE restricciones o condiciones; ➔ Si quiero borrar todos los registros de una tabla escribirla: DELETE FROM CLIENTES; ➔ Para borrar todos los registros de una tabla se puede utilizar la sentencia Trúncate, que es más rápida que un delete: TRUNCATE TABLE CLIENTES; ➔ Si le agrego CASCADE borra los registros que hacen referencia a la tabla via foreign key TRUNCATE TABLE CLIENTES CASCADE Actualización de Registros: Para actualizar registros de una tabla con el SQL es preciso utilizar la sentencia update que tiene el siguiente formato: UPDATE nombre_tabIa SET ( coIumn_name = ( expression | DEFAULT T I ( coIumn_name [, ...] ) = [ ROW ] ( { expression I DEFAULT } [, ( coIumn_name [, ...] ) = ( sub-SELECT ) WHERE restricciones o condiciones; Tema 3. Consultas agrupadas y ordenadas. Funciones de agregación: SQL ofrece las siguientes funciones de agregación para efectuar diferentes operaciones con los datos de una BD: La función de agregación count que normalmente se aplica a todas las columnas de la tabla o tablas seleccionadas: count * contaría las filas de la tabla o tablas que cumplan las condiciones. Consultas con agrupación de filas de una tabla Las cláusulas que añadimos a la sentencia select from permiten organizar las filas por grupos: ● La cláusula group by nos sirve para agrupar filas según las columnas que indique esta cláusula. ● La cláusula having especifica condiciones de búsqueda para grupos 16
  • 17. RESUMEN DE BASE DE DATOS. de filas; Consulta con agrupación de filas: se quiere saber el sueldo medio que ganan los empleados de cada departamento. Los factores de agrupación de la cláusula group by tienen que ser, como mínimo, las columnas que figuran en select, exceptuando las columnas afectadas por las funciones de agregación. Consultas ordenadas Si se quiere que, al hacer una consulta, los datos aparezcan en un orden determinado, hay que utilizar la cláusula order by en la sentencia select. Tema 4. Operaciones de conjuntos Son operaciones derivadas de la matemática de conjuntos. Existen múltiples operaciones de conjunto. La intersección: Para hacer la intersección entre dos o más sentencias select from, se puede utilizar la cláusula intersect La diferencia; Para encontrar la diferencia entre dos o más sentencias select from podemos utilizar la cláusula except Tema 5. Uniones entre tablas (joins). Combinación: consigue crear una sola tabla a partir de las tablas especificadas en la cláusula from. Hace coincidir los valores de las columnas relacionadas de estas tablas. Combinación natural(natural join): Consiste básicamente en hacer un equicombinación entre columnas del mismo nombre y eliminar las columnas repetidas. Combinación interna y externa(inner join): Se queda con las filas que tienen valores idénticos en las columnas de las tablas que compara. Combinaciones con más de dos tablas: Combinar tres tablas o más solo hay que añadir todas las tablas en el from y los vínculos necesarios en el where. MÓDULO 4: SQL AVANZADO. Unidad 1. SQL avanzado. Tema 1. Procedimiento almacenado y función. Funciones: Son programas SQL almacenados que devuelven un solo valor para cada fila de datos. Procedimientos almacenados: Se amplía en varias capacidades normalmente asociadas con lenguajes de programación. Las secuencias de sentencias SQL se agrupan para formar programas o procedimientos SQL. Se proporcionan las siguientes capacidades: ● Ejecución condicional: Una estructura IF ... THEN ... ELSE permite un uso de un procedimiento SQL para probar una condición y llevar a cabo diferentes operaciones dependiendo del resultado. 17
  • 18. RESUMEN DE BASE DE DATOS. ● Bucle: Un ciclo WHILE o FOR o una estructura similar permiten realizar una secuencia de operaciones SQL repetidamente hasta que se cumpla alguna condición de terminación. ● Estructura de bloques: Una secuencia de sentencias SQL puede agruparse en un solo bloque y utilizarse en otras construcciones de flujo de control como si el bloque de instrucciones fuera una sola sentencia. ● Variables nombradas: Un procedimiento SQL puede almacenar un valor que ha calculado, recuperado de la base de datos o derivado de alguna otra forma en una variable de programa, y recuperar posteriormente el valor almacenado para su uso en cálculos subsiguientes. ● Procedimientos con nombre: Una secuencia de sentencias SQL puede agruparse, asignar un nombre y asignar parámetros formales de entrada y salida, como una subrutina o una función en un lenguaje de programación convencional. Ejemplos: ● Obtener el número de cliente, nombre, límite de crédito y cantidad de ventas objetivo para el cliente, así como el vendedor y la oficina asignados. ● Agregar una fila a la tabla de cliente que contiene los datos del cliente. ● Actualizar la fila del vendedor asignado, aumentando el objetivo de cuota en la cantidad especificada. ● Actualizar la fila de la oficina, aumentando la meta de ventas en la cantidad especificada. Creación de un procedimiento almacenado Nombre del procedimiento: La instrucción CREATE PROCEDURE le asigna un nombre al procedimiento recién definido, que se utiliza luego para invocarlo. Parámetros: ● Acepta cero o más parámetros como argumentos. ● Se debe especificar el nombre de los parámetros y sus tipos de datos, soportados por el DBMS. Pueden ser los siguientes: ● Entrada [IN]. ● Salida [OUT]. ● Entrada-salida [IN-OUT]. Variables: Se declaran al principio del cuerpo del procedimiento, justo después del encabezado del procedimiento y antes de la lista de sentencias SQL. El valor actual de la variable se utiliza en la ejecución de la sentencia. Llamando a un procedimiento almacenado: Una vez definido por la instrucción CREATE PROCEDURE, el procedimiento se puede utilizar. El 18
  • 19. RESUMEN DE BASE DE DATOS. procedimiento almacenado también se puede invocar a través de una interfaz interactiva de SQL. Funciones: Las funciones se utilizan comúnmente como expresiones de columna en sentencias SELECT y, por lo tanto, se invocan una vez por fila en el conjunto de resultados. Esto permite que la función realice cálculos, conversión de datos y otros procesos para producir el valor devuelto para la columna. Tema 2. SQL dinámico. Ejecución dinámica de instrucciones (EXECUTE IMMEDIATE): La forma más simple de SQL dinámico es proporcionada por la instrucción EXECUTE IMMEDIATE. Esta sentencia pasa el texto de una instrucción SQL dinámica al DBMS y le pide al DBMS que ejecute la instrucción dinámica de inmediato. EXECUTE IMMEDIATE cadena de texto ● El programa construye una sentencia SQL como una cadena de texto en una de sus áreas de datos y la almacena en la memoria como una variable con nombre. ● El programa pasa la instrucción SQL al DBMS con la instrucción EXECUTE IMMEDIATE. ● El DBMS ejecuta la sentencia y establece los valores SQLCODE / SQLSTATE para indicar el estado de finalización, exactamente como si la sentencia hubiera sido codificada mediante SQL estático. Tema 3. Disparadores (triggers). Cursores: Una necesidad común para la repetición de sentencias dentro de un procedimiento almacenado surge cuando el procedimiento ejecuta una consulta y necesita procesar los resultados de la consulta, fila por fila. (DECLARE CURSOR, OPEN CURSOR, FETCH y CLOSE CURSOR). Disparadores: Se pueden utilizar para provocar actualizaciones automáticas de la información dentro de una base de datos. Tema 4. Manejo de errores. Tipos de errores: ● Errores en tiempo de compilación: Las comillas mal colocadas, las palabras clave de SQL mal escritas y los errores similares en sentencias de SQL embebido son detectados por el precompilador de SQL e informados al programador. ● Errores en tiempo de ejecución: El intento de insertar un valor de datos no válido o la falta de permisos para actualizar una tabla solo se puede detectar en tiempo de ejecución. Tratamiento de errores con SQLCODE: 19
  • 20. RESUMEN DE BASE DE DATOS. ● Un SQLCODE de cero indica la finalización satisfactoria de la sentencia, sin errores ni advertencias. ● Un valor SQLCODE negativo indica un error grave que impidió que la instrucción se ejecutará correctamente. ● Un valor SQLCODE positivo indica una condición de advertencia. Unidad 2. Bases NoSQL. Tema 1. Tipos de bases NoSQL ● Bases de datos clave–valor: Son el modelo de base de datos NoSQL más popular, además de ser el más sencillo en cuanto a funcionalidad. En este tipo de sistema, cada elemento está identificado por una llave única, lo que permite la recuperación de la información de forma muy rápida. ● Bases de datos documentales. ● Base de datos no relacionales: Se almacena la información como un documento, generalmente utilizando para ello una estructura simple como JSON o XML y donde se utiliza una clave única para cada registro. Permite, además de realizar búsquedas por clave–valor, realizar consultas más avanzadas sobre el contenido del documento. ● Bases de datos en grafo: Se representa como nodos de un grafo y sus relaciones con las aristas del mismo, de manera que se puede hacer uso de la teoría de grafos para recorrerla. Ofrece una navegación más eficiente entre relaciones que en un modelo relacional. ● Bases de datos orientadas a objetos: Se representa mediante objetos, de la misma forma que son representados en los lenguajes de programación orientada a objetos (POO), como ocurre en JAVA, C# o Visual Basic .NET. Tema 2. Creación y consultas en BD No SQL. En MongoDB no existe ningún comando estilo create database o algo parecido. Lo que hace Mongodb es crear una colección (base de datos) en el momento que se le inserta un objeto o documento (registro de una tabla, por llamarlo de alguna forma) a dicha colección. Crear una base de datos en MongoDB Ej: use peliculas; Tema 3. Comparativa SQL vs. NoSQL Ventajas: NoSQL ● Su escalabilidad y su carácter descentralizado. Soportan estructuras distribuidas. ● Suelen ser bases de datos mucho más abiertas y flexibles. Permiten adaptarse a necesidades de proyectos mucho más fácilmente que los modelos de entidad relación. ● Se pueden hacer cambios de los esquemas sin tener que parar bases de datos. ● Se pueden ejecutar en máquinas con pocos recursos. 20
  • 21. RESUMEN DE BASE DE DATOS. ● Permiten una optimización de consultas en base de datos para grandes cantidades de datos. Desventajas: ● No todas las bases de datos NoSQL contemplan la atomicidad de las instrucciones y la integridad de los datos. ● Las nuevas bases de datos utilizan sus propias características en el lenguaje de consulta y no son 100 % compatibles con el SQL de las bases de datos relacionales. ● Falta de estandarización. Hay muchas bases de datos NoSQL y aún no hay un estándar como sí lo hay en las bases de datos relacionales. Se presume un futuro incierto en estas bases de datos. ● Soporte multiplataforma. ● Suelen tener herramientas de administración no muy usables o se accede por consola. Ventajas: SQL. ● Está más adaptado su uso y los perfiles que las conocen son mayoritarios y más baratos. ● Estas herramientas tienen un mayor soporte y mejores suites de productos y add-ons para gestionar. ● Hay atomicidad en las operaciones en la base de datos. Esto quiere decir que en estas bases de datos o se hace la operación entera o no se hace, utilizando la famosa técnica del rollback. ● Los datos deben cumplir requisitos de integridad tanto en tipo de dato como en compatibilidad. Desventajas: ● La atomicidad de las operaciones juega un papel crucial en el rendimiento de las bases de datos. ● Tiene una escalabilidad, que aunque probada en muchos entornos productivos, suele, por norma, ser inferior a las bases de datos NoSQL. NoSQL vs SQL; cuándo utilizar qué tipo de base de datos. ● Cuando los datos deben ser consistentes sin dar posibilidad al error de utilizar una base de datos relacional, SQL. ● Cuando nuestro presupuesto no se puede permitir grandes máquinas y debe destinarse a máquinas de menor rendimiento, NoSQL. ● Cuando las estructuras de datos que manejamos son variables, NoSQL. ● Cuando hay que analizar grandes cantidades de datos en modo lectura, NoSQL. ● Cuando hay que capturar y procesar eventos, NoSQL. ● Cuando se trata de tiendas online con motores de inteligencia complejos, NoSQL. 21