UNA BASE DE DATOS es un conjunto de datos organizados para un uso

determinado. La recopilación de datos comparte características comunes, es decir
que los datos tienen la misma estructura
El SISTEMA GESTOR DE BASE DE DATOS
 Es aquel programa que actúa como un intermediario entre los usuarios y los
datos.
Es el encargado del manejo interno de los archivos de la base de datos, de la
integridad, seguridad, estabilidad y correcto funcionamiento de la misma
 La normalización es una técnica para diseñar la estructura lógica de los
datos de un sistema de información en el modelo relacional, desarrollada
por E. F. Codd en 1972
Ventajas
 Evita anomalías en inserciones, modificaciones y borrados.
 • Mejora la independencia de datos.
 • No establece restricciones artificiales en la estructura de los datos.
NORMALIZACION
 DEFINICIÓN DE LA PRIMERA FORMA NORMAL (1NF)
“Una relación está en 1NF sii todos los dominios simples subyacentes
contienen sólo valores atómicos”
 DEFINICIÓN DE LA SEGUNDA FORMA NORMAL (2NF)
“Una relación está en 2NF sii está en 1NF y todos los atributos no clave (o
que no formen parte de la clave) dependen por completo de la clave
primaria”.
 DEFINICIÓN DE LA TERCERA FORMA NORMAL (3NF)
Una relación R está en 3NF sii está en 2NF y todos los atributos no clave
dependen de manera no transitiva de la clave primaria.
Ejemplo: L(v#, estatus,ciudad)

MODELO ENTIDAD-RELACIÓN
 ENTIDADES:
Una Entidad es un conjunto de elementos que existen y
se distinguen de otros elementos gracias a que tienen características
propias (Atributos) que los describen. Por ejemplo, Factura, empleados.
 ATRIBUTOS:
Los Atributos son las características por las cuales
puedo describir una Entidad y que a su vez no tienen características

Comandos DDL Los DLL que permiten crear y definir nuevas bases de datos. placa. Precisión: la información es precisa porque solo se tienen que modificar los datos en un solo lugar.propias (Atributos) representativas. SQL (Structure query Language) Lenguaje de consulta estructurado. INSERT. 163 Create table cliente (nombre_cliente char(20). . modelo. eliminar y encontrar información. SELECT . Los comandos SQL pueden utilizarse para trabajar interactivamente con una base de datos o pueden incluirse en un lenguaje de programación para servir de interfaz a una base de datos. UPDATE. color. cambiar. filtrar y extraer datos de la base de datos. Los informes se pueden personalizar de tal manera que muestre únicamente lo que se desea ver. Se facilita la gestión Al disponer de demasiados archivos Los datos se pueden utilizar para transacciones y análisis Los datos se pueden compartir con otros usuarios Se controla y asegura el acceso a los datos Ahorro de tiempo: ya que es muy sencillo agregar. ALTER Los DML que permiten generar consultas para ordenar. Por ejemplo. CARDINALIDAD La Cardinalidad es simplemente la forma en que se relacionan las Entidades Uno a Uno (1 : 1 ) Uno a varias (1 : N) Varias a Varias (N : N) Es importante que cada entidad tenga al menos un atributo que sea único e irrepetible dentro del conjunto. Atributos como marca. DELETE Creación de tablas Pag. etc. utilizado en una base de datos relacional. CREATE. DROP . campos e índices. chasis.

número-préstamo = préstamo. Error lógico. En un sistema distribuido. El tipo de fallo más fácil de tratar es el que no conduce a una pérdida de información en el sistema. • Rollback work provoca que la transacción actual aborte. el control de recuperación y el control de concurrencia. una sola transacción puede implicar la ejecución de código en varios sitios Algunos problemas clásicos de concurrencia son: Operación perdida Salidas inconsistentes Introducción de inconsistencias en la base de datos lectura no reproducible SISTEMA DE RECUPERACIÓN En un sistema pueden producirse varios tipos de fallos. create view cliente-préstamo as (select nombre-sucursal. préstamo where prestatario. El manejo de transacciones tiene dos aspectos principales. La capacidad de las vistas para ocultar datos sirve para simplificar el uso del sistema y para mejorar la seguridad. primary key (nombre_cliente)) Commit work compromete la transacción actual y comienza una nueva. En este capítulo consideraremos sólo los siguientes tipos de fallos: Fallo en la transacción. ciudad_cliente char(30). nombre-cliente from prestatario. Autorizacions y Vistas Una vista puede ocultar los datos que un usuario no necesita ver.número-préstamo) . Los fallos más difíciles de tratar son aquellos que provocan una pérdida de información. cada uno de los cuales requiere un tratamiento diferente.calle_cliente char(30). Error del sistema. Caída del sistema. Concurrencia Este concepto tiene que ver con la definición de un agente.

Un usuario sólo puede tener un perfil Recurso Uso susceptible de ser restringido. DISPARADORES Un disparador es una orden que el sistema ejecuta de manera automática como efecto secundario de la modificación de la base de datos.Procedimientos almacenados Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL. Como otro ejemplo del uso de disparadores. Para diseñar un mecanismo disparador hay que cumplir dos requisitos: . asignable a un usuario o un rol Rol Conjunto de privilegios. asignable a un perfil Roles Predefinidos por Oracle (select * from dba_roles. y asignable a usuarios. cuando el nivel de inventario de un producto cae por debajo del nivel mínimo. asignables a un usuario o un rol Usuario Colección de objetos y privilegios identificado con un nombre y password Perfil Conjunto de restricciones relativas al uso de recursos. que pueden ser llamado usando el nombre que se le haya asignado. se debería solicitar un pedido automáticamente. supóngase un almacén que desee mantener un inventario mínimo de cada producto.) CONNECT RESOURCE DBA ALMACENAMIENTO DISTRIBUIDO DE DATOS . Privilegios Conceptos de gestión de privilegios y recursos Concepto Significado Privilegio Permiso para realizar una acción. Especificar las condiciones en las que se va a ejecutar el disparador y Especificar las acciones que se van a realizar cuando se ejecute el Disparador Necesidad de los disparadores Los disparadores son mecanismos útiles para alertar a los usuarios o para realizar de manera automática ciertas tareas cuando se cumplen determinadas condiciones.

Una Base de Datos Distribuida. de forma que el tiempo de comunicación sea mas corto. Los tipos básicos de fallos son • Fallo de un sitio • Pérdida de mensajes • Fallo de un enlace de comunicaciones • División de la red La pérdida o deterioro de los mensajes siempre constituye una posibilidad en los sistemas distribuidos. errores de software. Se pueden agregar computadoras adicionales a la red conforme aumentan el número de usuarios y su carga de procesamiento. errores de hardware y fallos de discos). El sistema utiliza protocolos de control de las transmisiones. A menudo es más fácil . como TCP/IP. pero se encuentra físicamente en varios nodos de la red. · Un sistema de base de datos distribuida se compone de un conjunto de nodos. Una Base de Datos Distribuida entonces es una colección de datos que pertenecen lógicamente a un sólo sistema. No obstante. es una base de datos construida sobre una red computacional y no por el contrario en una máquina. Se puede encontrar información sobre esos protocolos en los libros de texto estándar sobre redes Ventajas de un BDD Existen ciertas ventajas del procesamiento de bases de datos distribuidas. Modos de fallo del sistema en una BDD Los sistemas distribuidos pueden sufrir los mismos tipos de fallos que los sistemas centralizados (por ejemplo. La información que constituye la base de datos esta almacenada en diferentes sitios en la red y las aplicaciones que se ejecutan y accesan a los datos en distintos sitios. Puede dar como resultado un mejor rendimiento que el que se obtiene por un procesamiento centralizado. Los sitios han convenido en trabajar juntos (si es necesario) con el fin de que un usuario de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario. conectados entre sí mediante algún tipo de red de comunicaciones. en el cual se contemplan las siguientes características: Cada sitio es un sistema de base de datos en sí mismo. para tratar esos errores. hay más tipos de fallos con los que hay que tratar en los entornos distribuidos. Los datos pueden colocarse cerca del punto de su utilización.

– ALL: todos los objetos accesibles por el usuario actual. vistas. secuencias. Si una consulta comprende datos de varias localidades. .y más barato agregar una nueva computadora más pequeña que actualizar una computadora única y centralizada. Las vistas se crean al lanzar el script catalog. el espacio ocupado por cada objeto. tal promesa no está garantizada. procedimientos. all y user. y son las que realmente contienen la información del DD. El procesamiento de base de datos distribuida puede resultar menos confiable que el procesamiento centralizado. roles. privilegios. DICCIONARIO DE DATOS (DD) El DD está compuesto por un conjunto de tablas y vistas asociadas donde se almacena toda la información sobre los objetos que componen la BD. – DBA: todos los objetos de la BD. El DD contiene información sobre: la definición de todos los objetos de la BD (tablas. VISTAS DEL DICCIONARIO DE DATOS El DD se modifica cada vez que lanzamos una sentencia DDL. sinónimos. etc). funciones. El procesamiento de bases de datos distribuido es difícil de controlar. • Las vistas estáticas que forman parte del DD son de tres tipos: dba. – Las tablas base se crean automáticamente cuando creamos la BD con el comando CREATE DATABASE. paquetes. El DD incluye dos tipos de objetos: tablas base y vistas.sql. condiciones de integridad. índices. usuarios. puede ser posible dividir la consulta en varias subconsultas que se ejecuten en paralelo en distintas localidades Desventajas de un BDD El rendimiento puede ser peor para el procesamiento distribuido que para el procesamiento centralizado. A pesar de que tiene la promesa de un mejor rendimiento y de una mayor confiabilidad. Cada una de ellas tendrá un prefijo asociado que la ubica en uno de dichos tipos. y permiten acceder a la información de las tablas del DD (que está codificada). – USER: todos los objetos propiedad del usuario actual. Agilización del procesamiento de consultas. así como la estructura lógica y física de la misma. así como auditoria del sistema. triggers.

TUNNIGS(AFINAMIENTO Consejos para afinar el SQL: Usar Alias : El uso de alias en las tablas y la inclusion de los prefijos en todos los nombres de columnas cuando más de una tabla es consultada reducirá el tiempo de análisis de sintaxis y previene errores. es el propietario del DD y habitualmente se usa para arrancar y parar la base de datos. dba_extents. Emp E WHERE E. así como para modificar los componentes de la misma (como instalar nuevas opciones). dba_ind_columns. dba_views. dba_tab_columns. USUARIOS ADMINISTRADORES DE LA BD Cuando creamos una BDO se crean automáticamente los usuarios SYS y SYSTEM. Considerando el siguiente ejemplo: SELECT E. dba_tables. Espacio ocupado: dba_data_files. tax_no. y en DICT_COLUMNS tenemos el detalle de las columnas de cada una de ellas. ambos con el rol DBA.Comp_Code Es mejor utilizar los Alias como se muestra a continuación: . dba_constraints. cuya clave inicial es change_on_install. c. • El SYS. dba_data_files.comp_code. name. Estructura de la BD: dba_tablespaces. Para conectar como SYS: CONNECT SYS AS SYSDBA CONNECT / AS SYSDBA TUNNIGS(AFINAMIENTO DE SQL) Que es Tunnig? Objetivos del tunear las aplicaciones a nivel de BD Consideraciones: Aplicaciones DBLINKS…. • Ejemplos de vistas del DD: Objetos de la BD: dba_objects.• La vista DICTIONARY contiene una lista de todas las vistas del DD.emp_no. comp_name FROM company C. dba_indexes. dba_segments.comp_code = C.

comp_code = C. Al proceso servidor se lo conoce con el término back-end.  Porqué se afina un Sistema ? – Beneficios económicos para la Empresa . middleware es la interfaz que provee la conectividad entre aplicaciones clientes y aplicaciones servidoras. se puede definir la computación cliente/servidor como una arquitectura distribuida que permite a los usuarios finales obtener acceso a la información en forma transparente aun en entornos multiplataforma. Desde el punto de vista funcional.tax_no. solicitan requerimientos a uno o más servidores centrales. Emp E WHERE E.name. E. en el cual múltiples clientes. y entre aplicaciones y bases de datos. distribuidos geográficamente. E. Servidor Es el proceso encargado de atender a múltiples clientes que hacen peticiones de algún recurso administrado por él. se lo conoce con el término front-end. C. Componentes del modelo Cliente/Servidor Cliente El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos al servidor.comp_code Definición del modelo cliente/servidor La tecnología cliente/servidor es el procesamiento cooperativo de la información por medio de un conjunto de procesadores. Middleware En su definición más simple.Comp_name FROM Company C.Comp_Code. C.emp_no.SELECT E.

– Beneficios Humanos  Quién afina ? – El diseñador – Los desarrolladores – El administrador de la base de datos Los administradores de harware y software  Cuando se afina ? El tiempo mas efectivo que se tiene para afinar es durante la fase de diseño.ORA para evitar contension de redo logs y otros objetos – Sistemas : Algunos problemas ocurren como resultado de: • Otros sistemas que afecten a Oracle • Un sistema operativo no afinado • La configuración o tamaño de la máquina que es inadecuada para soportar Oracle  Problemas con Recursos del Sistema Para obtener un mejor performance usted debe conocer cuatro componentes del ambiente de máquina que interactúan y afectan el performance del sistema. obteniendo los maximos beneficios al menor costo  Problemas con el diseño y desarrollo  Diseño: Los problemas en el diseño son causados por diseñadores que no consideran los puntos siguientes:  Performance consierado cuando se selecciona una arquitectura  Performance considerado cuando se crea el modelo de datos  Programas diseñados adecuados para una base de datos relacional Programas diseñados adecuados para la configuracion de hardware usada. éstos componentes son : – Memoria – Entrada/Salida en discos y controladores – CPU – Redes . – Programas: Los principales problemas son : • Inapropiado uso de índices • Uso incorrecto del optimizador • Uso incorrecto de la opción procedural – Problemas con el diseño y desarrollo – Base de Datos: Estos problemas son principalmente causados por DBA’S que no consideran los siguientes puntos: • Uso efectivo de los recursos de la máquina • Uso efectivo de la memoria • Setear los parámetros de INIT.

es raro que una tabla no requiera un constraint de llave primaria. – Constraint de llave foranea: chequea que la tabla dependiente (hija) tenga una tupla en la tabla referenciada (padre). Los triggers a nivel de tupla han sido . si no. –  Constraints: La integridad de los datos toma fuerza a travez del uso de constraints. Si es así defina un índice (usualmente) Pero si el volumen esperado de la tabla es menor de 250 registros y las columnas no son usadas dentro de los estatutos de un join de SQL. asegurese de proveer los detalles del tamaño al indice en las especificaciones del diseño. – Constraint de llave Unica: en éste tipo de constraints tambien se chequea la unicidad. no defina índice. sin embargo estos tienen un costo en performance. estos son usados a menudo para registros de auditoría. índices extra podrían ayudarlo a evitar largas busquedas en la tabla • Tome en cuenta que el exceso en el uso de índices puede bajar el performance en las sentencias Insert. • Es la llave foránea usada para chequear la integridad referencial ? • Es la llave foránea usualmente parte de una clausula Where ? Si es así defina un índice.  Triggers: esta es otra buena opción para el diseño de de aplicaciones. pero permite que las columnas de la llave sean nulas. Al agregar dicho constraint a una tabla se crea un indice. Un caso típico es el caso en el cual una columna FLAG tiene sólo dos valores valido: ON u OFF. tambien se crea un indice. Delete y Update.  Constraints: – Constraint de llave Primaria: una llave primaria refuerza la unicidad. no lo defina. • Si la tabla tiene miles de entradas. – Constraints de Chequeo: son utilizados en una columna de la tabla para especificar una condicion que debe ser cierta.Afinando Indices : hagase las siguientes preguntas : – Debo indexar la llave primaria de una tabla ? – Debo indexar la llave foránea de una tabla ? – Necesito otros indices ? Como puedo reforzar el uso de índices – Debo indexar la llave primaria de una tabla ? • Es única la llave primara ? Los índices refuerzan la unicidad.

Consejos para afinar el SQL: – Usar Alias : El uso de alias en las tablas y la inclusion de los prefijos en todos los nombres de columnas cuando más de una tabla es consultada reducirá el tiempo de análisis de sintaxis y previene errores. Nota: Los Constraints han sido optimizados para realizar chequeos de integridad de datos. el optimizador considera varias areas como por ejemplo: – Las tablas de la base de datos que su sentencia necesitará accesar .  Triggers: Tome nota de las siguientes restricciones: – No se puede especificar un trigger en las tablas del diccionario de Datos de Oracle.conocidos como la causa de severas degradaciones de performance cuando son utilizados inapropiadamente. ROLLBACK ó SAVEPOINT. No use un trigger para realizar el trabajo que puede hacer un constraint. – Un trigger no puede contener sentencias COMMIT. – Un trigger no puede ejecutar sentencias DDL. Para deducir el path de busqueda optimo. aun cuando cada uno esta produciendo un codigo eficaz. tal como CREATE TABLE. – A menudo cuando no se aplican normas en la codificación significa que solo la persona que escribió el código lo puede entender. Considerando el siguiente ejemplo: – Utilizar bind variables : Se aprovecha mejor el shared area si se utilizan bind variables. tenga cuidado de triggers que realizan actualizaciones en otras tablas que tambien contienen triggers. – Antes de iniciar a codificar una aplicación es importante definir un estandar de programación. preferencias y tendencias. El plan de ejecución es la secuencia física de pasos que el RDBMS debe tomar para realizar una operación que usted ha especificado. es importante que mantenga sus triggers simples. – Los triggers toman efecto en filas que son modificadas en la tabla despues de que el trigger ha sido incorporado. su futuro mantenimiento puede darle un verdadero dolor de cabeza. – Un trigger no puede leer o modificar filas en una tabla que tiene una llave foranea apuntando a la tabla dueña del trigger. – Consejos para afinar el SQL: – Cuando varios programadores están desarrollando una aplicación cada uno tiene su propio estilo.

. podemos tunear manualmente las sentencias SQL. SELECT /*+ hint */ . el optimizador basado en la regla siempre va a preferir utilizar la llave única. DELETE /*+ hint */ .. • RULE : Fuerza el uso del optimizador basado en la regla. Algunos Hints imporantes : • ALL_ROWS : Optimiza para el mejor rendimiento de acceso a los registros • FIRST_ROWS : Siempre escogera usar un indice sogre un full scan • CHOOSE : Fuerza el uso del optimizador basado en costos.. pasando sobre las decisiones del optimizador actual... las columnas que pertenécen al índice deben estár solos (sin funciones u operaciones que lo anulen) en un lado de la comparación en la clausula WHERE. • Cuando los Hints son ignorados ? • Hints mal escritos • Inconsistencia • Con tablas • Con indices • Identificación valida de la tabla . <> • NOT IN • NOT EXISTS Optimizador basado en Costos Cuando utilizamos el optimizador basado en costos.Alguna condicion que deben satisfacer los datos (la clausula WHERE) – La localizacion física de la tabla (SQL distribuido) Optimizadores que existen: – Optimizador basado en reglas – Optimizador basado en costos – Optimizador basado en reglas – Competencia de índices • Preferencia por índices únicos Por la presedencia en las reglas... Incluyendo sus propios hints dentro de la sentencia SQL fuerza a esta sentencia a seguir el path de acceso que usted desea en lugar del calculado por el optimizador actual.. UPDATE /*+ hint */ .... • FULL : Fuerza al uso de un fulll scan en la tablas. Operaciones que anulan un índice: • !=.. • Suprimiendo el uso de índices Para que una sentencia SQL útilice el índice.

Priorizar tareas Se Una vez completa la información sobre las causas y efectos el paso siguiente es asignar la importancia de cada factor. Elaborar diagrama de pareto 4. Recolectar información mediante mediciones 3. Com obase se han identificado de manera general un grupo de causas que hacen reflejar un bajo rendimiento en un sistema. Presentación de Resultados 2. Para esta tarea se deberán seguir los siguientes pasos : 1.• Localización invalida del hint La Metodología de afinamiento de un sistema se basará en los siguientes cuatro pasos: 1. Identificación de problemas 2. de manera que se marcarán esos factores que parecen tener un efecto particularmente significativo sobre la característica y se les asignará la prioridad correspondiente . Análisis 3. sin embargo se podrá conocer con mayor detalle otra lista de causas al analizar el sistema con mayor profundidad. Es necesario identificar los problemas y cuantificarlos para tener una referencia inicial sobre el estado actual del sistema. Todos los factores no se relacionan necesariamente en forma estrecha con la característica. como resultado se debera saber cual es el estado actual del sistema. Identificación de causas y efectos Se buscan todas las causas posibles que puedan afectar a las características de rendimiento del sistema. para esto se usan los denominados diagramas de pareto en los cuales se ve de manera gráfica cuales son los problemas que son mas frecuentes o puntos críticos en el sistema y que pueden ser la cusa del bajo desempeño. Identificar posibles problemas • Fragmentación • Mala utilización del espacio ocupado • Uso inadecuado de memoria • Aplicaciones (SQL) críticas • Accesos sin indices • Uso inadecuade de la integridad referencial (loks o full-Scans) 2. Acciones Correctivas 4. Resumen.

Conclusiones y Recomendaciones Se elaborará un documento donde se resumen los factores críticos del sistema recomendándose las técnicas posibles a usarse que incrementen el rendimiento del sistema y el tiempo y recursos que tomará cada mejora. acompañadas de su respectiva documentación donde se explicarán las técnicas utilizadas para su corrección. Elaborar Cronograma Se detallarán todas las actividades en orden de mas alta prioridad a la mas baja. Acciones correctivas Se ejecutarán todas las actividades detalladas en el cronograma. Además se recabará toda la información del desempeño de cada factor identificado con anterioridad (Punto 1) como problema Presentación de Resultados Basándose en los datos y el diagrama inicial se elaborará un nuevo diagrama de pareto para su comparación donde se observarán el impacto de las mejoras implementadas . especificando la fecha de inicio y finalización de cada una.