TALLER DE BASE DE DATOS
UNIDAD 0:
APORTACION AL PERFIL
- La capacidad de diseñar y desarrollar bases de datos conforme a los requerimientos definidos, las normas organizacionales de manejo y seguridad de la información, utilizando tecnologías emergentes con el fin de integrar soluciones computacionales.
- Las bases para asignaturas directamente vinculadas con el desarrollo de software y acceso a base de datos.
INTENCION DIDACTICA
- Se organiza el temario de la materia en 7 unidades
- En la unidad 1 se abarca los conceptos, características, requerimientos y elementos de instalación y configuración típica del gestor de base de datos .
- La unidad 2 se introduce al alumno en la creación, modificación y eliminación de esquemas de bases de datos reales a través del lenguaje definición de datos, involucrando. elementos de integridad declarativa.
- En la unidad 3 se lleva al alumno al manejo de datos a través del lenguaje y manipulación de datos, incluyendo la inserción, modificación, eliminación y recuperación de datos relacionados.
- En la unidad 4, se entra el concepto de seguridad en las base de datos a través de la creación de usuarios y sus niveles de privilegios así como la creación de vistas para restricciones a usuarios
- En la unidad 5 se lleva al alumno a la operación multiusuario de la base de datos, el acceso concurrente y el control de transiciones.
- En la unidad 6 se introduce al alumno al SQL, procedural a través del manejo de procedimientos almacenados y disparadores.
- En la unida 7 se maneja la conectividad de la base de datos con distintas tecnologías de conexión, integrando bases de datos con lenguajes de programación.
COMPETENCIAS A DESARROLLAR
COMPETENCI ESPECIFICA: Crea y manipula base de datos , identificando las características principales de los gestores de base de datos y sus requerimientos
para su instalación y configuración , además de considerar elementos de integridad y seguridad para el tratamiento de la información.
COMPETENCIAS INSTRUMENTALES:
- Capacidad cognitiva, para comprender y manipular ideas y pensamientos.
- capacidades metodológicas, para manipular el ambiente, ser capaz de organizar el tiempo y planificar las estrategias para el aprendizaje, tomar decisiones y/o resolver problemas.
- Destrezas tecnológicas relacionadas con destrezas computacionales así como búsqueda y manejo de información.
• Capacidad de análisis y síntesis.
• comunicación ora y escrita.
• Habilidad para buscar y analizar
proveniente de fuentes diversas
• solución de problemas
• toma de decisiones.
COMPETENCIAS SISTEMATICAS:
• Capacidad para aplicar los conocimientos en la práctica.• Habilidades de investigación.• Capacidad de aprender.• Capacidad de adaptación a nuevas situaciones.• Capacidad de generar nuevas ideas (creatividad, liderazgo, capacidad de trabajo autónomo).• Capacidad para diseñar y gestionar proyectos.• Iniciativa y espíritu emprendedor.• Compromiso con la calidad.• Consecución de objetivos.• Capacidad para colaborar en proyectos sostenibles.
OBJETIVOS DEL CURSODesarrollar habilidades en el estudiante mediante la aplicación de técnicas apropiadas para el proceso de enseñanza-aprendizaje, en relación con el contenido del curso, para la creación y manipulación de bases de datos utilizando diferentes Sistemas de Gestión de Bases de Datos y considerando elementos de integridad y seguridad para el tratamiento de la información.COMPETENCIAS PREVIAS• Comprender los conceptos básicos de las bases de datos.• Definir el objeto de un problema a resolver con el modelado de bases de datos.• Construir modelos de bases de datos.• Aplicar técnicas UML para el modelado de bases de datos a través de una herramienta.• Aplicar operaciones SQL básicas.• Construir estructuras de bases de datos a partir de un modelo Entidad-Relación.• Implementar restricciones de integridad.• Diseñar esquemas de bases de datos relacionales bajo estándares.• Crear esquemas de base de datos en un DBMS.• Manipular bases de datos utilizando SQL.• Comprender y aplicar los conceptos de normalización.
UNIDAS 1: INSTALACION Y CONFIGURACION DEL SISTEMA GESTOR DE BASE DE DATOS EN DISTINTAS PLATAFORMAS.
¿QUE ES UN SGBD?
Los SGBD es la aplicación que interactúa con los usuarios de los programas y las bases de datos.
Objetivos del SGBDDefinir la base de datos mediante el Lenguaje de Definición de Datos (DDL), el cual permite especificar la estructura, tipo de datos y las restricciones sobre los datos, almacenandolo todo en la base de datos.Separar la descripción y manipulación de los datos, permitiendo un mayor entendimiento de los objetos, además de flexibilidad de consulta y actualización de los datos (Datos Metadatos).Permitir la inserción, eliminación, actualización, consulta de los datos mediante el Lenguaje de Manipulación de Datos (DML), lo que permite resolver el problema que presentan los sistemas de archivos, donde hay que trabajar con un conjunto fijo de consultas o la necesidad de tener muchos programas de aplicaciones. Existen dos tipos de programas de manejo de datos, los cuales se diferencian por la forma en que acceden a los datos.
El lenguaje no procedural más utilizado es SQL (Structure Query Languaje) que se ha convertido en un estándar y el lenguaje por defecto de los SGBD relacionales.Proporcionar acceso controlado a la base de datos.
• Integridad: Mantiene la integridad y consistencia de la base de datos.
• Control de recuperación: Restablece la base de datos después de producirse un fallo de software o hardware.• Diccionario de datos: Contiene la descripción de los datos de la base de datos y es accesible por el usuario.
• Permiten que los usuarios vean los datos en el formato deseado.Eliminar la redundancia de datos, establecer una mínima duplicidad en los datos y minimizar el espacio en disco utilizado.
Arquitectura de SGBDServidor de BD’s: Es el software (SGBD), que tiene la capacidad de administrar distintas bases de datos.Diccionario de datos: Es un archivo que contiene metadatos, es decir, «datos acerca de los datos». Este archivo se consulta antes de leer o modificar los datos reales en el sistema de base de datos. En otras palabras contiene la información de las diferentes bases de datos que contenga el SGBD y las definición de las tablas.Usuarios: Existen 3 tipos de usuarios.
ventajas de las BD’s:
- Se evita la inconsistencia de la información.
- Se evita la redundancia de la información.
- Mantiene la integridad de los datos.
- Los datos pueden ser compartidos por varias aplicaciones o usuarios.
- Se mantienen niveles de seguridad en los datos.
Desventajas de las BD’s:
- Al perder o dañarse la base de datos se hace irrecuperable las tablas, informes, consultas, etc, que en ellas existe.
- Al tener una base de datos con demasiada información su acceso es lento ya que varios usuarios, pueden estar haciendo uso de esta.
UNIDAD 2: LENGUAJE DE DEFINICION DE DATOS (DDL)
Definiendo tablas
Una tabla, es un objeto de la base de datos que almacena datos en renglones y columnas.
Antes de crear una tabla, se debe diseñar su estructura:
- Determinar el nombre de la tabla y sus columnas.
- La elección de tipo de dato para cada columna.
- Determinación de restricciones para cada columna.
Nombrando las tablas y columnas
No usar más de 30 caracteres de longitud.
- El primer carácter debe ser un alfabético.
- Únicamente debe contener caracteres alfabéticos, numéricos o uno de los siguientes símbolos, $, #.
- No duplicar el nombre.
- No utilizar palabras reservadas del SGBD.
- utilice nombres descriptivos para las tablas y columnas.
- Utilice el mismo nombre de columna para el mismo dato en diferentes tablas.
Tipos de datosUn tipo de dato es un atributo asignado a una columna que especifica el tipo de dato que se pude almacenar en la columna.A la hora de elegir un tipo de dato se debe considerar que este:
- Tenga la precisión desea de los valores.
- Pueda almacenar todos los posibles valores.
- Tenga un almacenamiento eficiente.
- Permita el crecimiento futuro.
- Requiera el menor espacio de almacenamiento.
Restricciones para columnasLas restricciones de columnas son utilizadas para:
- Hacer cumplir las reglas de negocio.
- Implementar la integridad en la información a nivel de tabla.
- Seguridad referencial integral.
Los tipos de restricciones comunes entre los SGBD son:
- Null, Not Null.
- Default.
- Primary Key.
- Foreign Key.
- Check.
Una restricción puede ser creada al momento o después de la creación de una tabla.Null, Not NullUn valor Null, representa un valor desconocido:
- Para valores numéricos, Null no es igual que cero.
- Para valores de carácter, Null no es igual a espacio en blanco.
Dos valores Null, no son considerados como iguales entre uno y otro.
UNIDAD 3: LENGUAJE DE MANIPULACION DE DATOS (DDL)
Lenguaje de Manipulación de Datos (DML)
- Insert Inserta registros a la tabla.
- Update-Actualiza datos de una tabla.
- Delete – Borra registros de una tabla,
Lenguaje de Manipulación de Datos (DML), es una parte fundamental de SQLCuando se desea agregar, actualizar o borrar datos en la base de datos, se ejecuta una sentencia DML
Métodos para insertar valores nulos:Se debe asegurar que la columna permita valores nulos.
- El servidor aplica automáticamente todos los tipos de datos, los rangos de datos y restricciones de integridad de datos.
- Cualquier columna que no aparece explicitamente obtiene un valor nulo en el nuevo registro.
Los errores más comunes que pueden ocurrir durante la captura del usuario:
- Falta valor obligatorio de una columna NOT NULL
- Valor duplicado, restricción de unicidad.
- Restricción de clave foránea.
- Restricción CHECK.
- Tipo de datos no coincide.
- El valor es demasiado grande para la columna
Escribiendo Consultas
- Las instrucciones de SQL no son sensibles.
- Las instrucciones de SQL pueden ser de una o mas líneas.
- Las palabras reservadas no pueden abreviarse.
- Las cláusulas se ponen generalmente en líneas separadas.
- Los tabuladores son utilizados para una mejor claridad.
- Las palabras reservadas normalmente se introducen en mayúsculas,
- palabras, como nombres de tablas y columnas, se introducen en minúsculas.
- Normalmente las sentencias SQL terminan con un punto y coma (;)
justificación de columnas
JUSTIFICACION POR DEFAULT
- a la izquierda. Tipos de datos fecha y carácter.
- A la derecha: Tipos de daros numéricos
¿Qué es un JOIN?
La condición debe ser una igualdad que relacione la columna de una tabla con la columna de otra tabla.
Producto cartesianoUn producto cartesiano se forma cuando:
- Una condición de combinación se omite.
- Una condición de combinación no es válido
- Todas las filas de la primera tabla se unen a todas las filas de la segunda tabla.
Para evitar que un producto cartesiano, siempre incluyen una condición de unión válida en una cláusula WHERE.
UNION
Normas a seguir:
- El número de columnas y tipo de datos deben ser idénticos en todas las sentencias SELECT usadas en las consultas.
- Los nombres de las columnas no necesitan ser idénticas.
- La UNION opera sobre todas las columnas inicialmente seleccionadas.
- Los valores NULOS no son ignorados durante la verificación de duplicados.
- El operador IN tiene una mayor precedencia que el operador UNION
unidad 4:SEGURIDAD
TIPOS DE USUARIOS
En un ambiente multi-usuario, se debe establecer un sistema de seguridad para el control de acceso a la base de datos por parte de los usuario.Los SGBD, permiten:
- Controlar el acceso a la base de datos.
- Especificar el acceso y uso de los diferentes objetos contenidos en la base de datos. Otorgar y revocar privilegios sobre los objetos de la base de datos.
- La seguridad de base de datos se pueden clasificar en dos categorias:
■ La seguridad del sistema: Incluye el acceso y el uso de la base de datos a nivel del sistema, tales como nombre de usuario y contraseña, espacio en disco asignado a los usuarios y las operaciones del sistema permitido por el usuario.■La seguridad de base de datos: Cubre el acceso y el uso de los objetos de base de datos y las acciones que los usuarios pueden tener sobre los objetos.
- Administrador de Base de Datos (DBA por sus siglas en ingles).
- Programador de aplicaciones
- Casuales.
- Ingenuos.
Usuarios de la Base de DatosAdministrador de la Base de Datos: Es la persona que toma decisiones estratégicas y políticas con respecto a la información de la empresa, además de diseñar los aspectos técnicos necesarios para poner en practica estas decisiones, además de:
- Definir de esquema: La creación de esquema original de la BD. Esto se logra, escribiendo una serie de definiciones que el compilador DDL traduce a un conjunto de tablas que se almacenan permanentemente en el diccionario de datos.
- Concesión de autorización para el acceso a los datos: Conceder diferentes tipos de autorización para acceso a los datos a los distintos usuarios de la BD. Esto permite regular al DBA cuales son las partes de la BD a as que van atener acceso diversos usuarios.
Programadores de aplicaciones: Son los profesionales en computación que interactúan con el sistema mediante llamadas en DML, las cuales están incrustadas en un programa escrito en un leguaje huésped creación de esquema original de la BD.Usuarios casuales: Son usuarios complejos que interactúan con el sistema sin escribir programas. En cambio, escriben sus consultas en lenguaje de consulta de base de datos. Cada una de tales consultas se maneja a través de un procesador de consultas cuya función es tomar una proposición en DML y descomponerla en instrucciones que pueda entender el manejador de base de datos.Usuarios ingenuos: Son usuarios poco complejos que interactúan con el sistema llamando alguno de los programas de aplicaciones permanentes escritos previamente.
Una vista, se deriva de los datos de una o más tablas o vistas.Una vista proporciona las siguientes ventajas:
- Restringe el acceso de base de datos simplifica las consultas.
- Proporciona independencia de los datos. Permite múltiples puntos de vista de los mismos datos.
- Se puede quitar sin necesidad de retirar los datos subyacentes.
unidad 5: TRANSACCIONES
COCEPTOS BASICOSLas transacciones fueron desarrolladas originalmente para auxiliar en el mantenimiento de los datos de las aplicaciones y que dependían de la consistencia de la información almacenada en un SGBD.
- Operaciones de compartición de datos.
- Aseguramiento de la seriabilidad de las transacciones con otras.
- Atomicidad en su comportamiento.
- Recuperación de fallas provocadas en red y nodos.
Una transacción es una o más instrucciones de datos que realizan una tarea especifica y que puede ser terminada o abortada Una Transacción es una unidad lógica de trabajo con la que se puede
- Definir las reglas del negocio.
- Incluir la mínima modificación de datos.
- Transformar la base de datos de un estado consistente a otro.
Una transacción tiene dos posibles resultados:• Commit. Realiza una o todas las modificaciones de manera permanente, en caso de que se concluya exitosamente.
confiable, además de que los cambios realizados a la BD por medio de transacciones son transparentes para el usuario, permitiendo así el acceso concurrentes a los datos. El conjunto de operaciones que conforman una transacción debe marcarse como una sola para que todas las operaciones tengan éxito o todas fracasen.Propiedades de las transacciones
- Atomicidad: Una transacción es un proceso de todo o nada, es decir todas las operaciones de una transacción debe realizarse adecuadamente en la base de datos, o no se realiza ninguna de ellas.
- Consistencia: Una transacción cambia una base de datos de un estado consistente a otro estado consistente.
- Aislamiento: Los cambios originados por una transacción no son visibles para otros usuarios hasta que se complete o deshaga la transacción.
- Durabilidad: Una vez terminada una transacción no se puede deshacer.
Grados de consistencia
- Activa (Active): Estado inicial; la transacción permanece en este estado durante su ejecución.
- Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima instancia (operación que afecta la base de datos) de la transacción.
- Fallida (Failed) Tras descubrir que no se puede continuar la ejecución normal.
Niveles de aislamiento
¿Por qué et aislamiento en una base de datos?
- En ambientes multiusuario, las transacciones acceden a los mismos datos simultáneamente y con el aislamiento se reduce el riesgo de inconsistencia en las base de datos.
- Los datos que no son aislados pueden ser incorrectos.
Los problemas que presenta este nivel de aislamiento son los siguientes:
- Lecturas sucias: Lee datos que no han llegado a validarse.
- Lecturas no repetibles: Dos sentencias SELECT iguales y consecutivas podrían devolver datos diferentes.
- Datos fantasma: En dos sentencias SELECT iguales y consecutivas podrían aparecer y desaparecer filas.
Lecturas confirmadas (read commited). Permite que una transacción recupere 6 actualice un registro que ha sido actualizada por otra transacción pero que aún no ha sido confirmada por esa misma transacción. Puesto que no ha sido confirmada, sigue existiendo la posibilidad de que nunca lo sea y de que en su lugar se deshaga mediante un ROLLBACK; en cuyo caso la transacción habrá visto datos que ya no existen.Los problemas que tiene este nivel de aislamiento son:
- Lecturas no repetibles: Dos sentencias SELECT iguales y consecutivas podrían devolver datos diferentes
- Datos fantasma: En dos sentencias SELECT iguales y consecutivas podrían aparecer y desaparecer filas.
Lecturas repetidas (repeteable read). Este problema se da cuando una de las transacciones que se ejecutan de manera concurrente obtiene información inconsistente de la base de datos.El problema que presenta es:
• Datos fantasma: En dos sentencias SELECT iguales y consecutivas podrían aparecer filas.En este nivel de aislamiento las lecturas solo se ven bloqueadas por las escrituras, pero las escrituras se ven bloqueadas por lecturas durante el tiempo que dura la transacción que lee de tal forma que es más frecuente encontrar problemas de bloqueos.Commit y rollbackToda transacción así como tiene un inicio debe tener un fin, ahora bien una transacción puede concluir o no de manera exitosa, por lo que hay nos formas de dar por concluida una transacción.
• Commit: Es la instrucción utilizada para indicar la terminación de una transacción almacenando todas las modificaciones u operaciones indicadas en la transacción.
• Rollback: Es la instrucción utilizada para deshacer las operaciones dela transacción en caso de que exista un error, es decir si alguna de las operaciones de una transacción falla hay que deshacer la transacción en su totalidad para volver al estado inicial en el que estaba la base de datos antes de empezar.
- Desencadenado: Requiere inicializar una transacción de multi- instruciones con una clausula de inicio (begin tran, start tran…, de finida por el mismo SGDB) y terminar con commit o rollback.
- Encadenado: El servidor ejecuta de manera impliciata la clausula de inicio (begin tran, start tran, de finida por el mismo SGDB) y es utilizado para instrucciones del DML e instrucciones tipo cursor (open, fetch), y por igual que en modo desencadenado se requiere terminar con commit ó rollback.
bloqueo: es un mecanismo de SSGDB, que aísla los datos.
existe tres niveles de granularidad de bloqueos.
- nivel tabla.
- nivel pagina.
- nivel registro.
existen dos tipos de bloqueos.
- bloqueos exclusivos o escritura(x)
- bloqueos compartidos o lectura(s)
Unidad 6:SQL procedual
Procedimientos almacenados
Algunas situaciones en que los procedimientos almacenados pueden ser particularmente útiles:
- Cuando múltiples aplicaciones cliente se escriben en distintos lenguajes o funcionan en distintas plataformas, pero necesitan realizar la misma operación en la base de datos.
- Cuando la seguridad es muy importante. Los bancos, por ejemplo, usan procedimientos almacenados para todas las operaciones comunes. Esto proporciona un entorno seguro y consistente, y los procedimientos pueden asegurar que cada operación se loguea apropiadamente. En tal entorno, las aplicaciones y los usuarios no obtendrían ningún acceso directo a las tablas de la base de datos, sólo pueden ejecutar algunos procedimientos almacenados.
- Los procedimientos almacenados pueden mejorar el rendimiento ya que se necesita enviar menos información entre el servidor y el cliente. El intercambio que hay es que aumenta la carga del servidor de la base de datos ya que la mayoría del trabajo se realiza en la parte del servidor y no en el cliente. Considere esta si muchas máquinas cliente (como servidores Web) se sirven a sólo uno o pocos servidores de bases de datos.
- Los procedimientos almacenados le permiten tener bibliotecas o funciones en el servidor de base de datos. Esta caracteristica es compartida por los lenguajes de programación modernos que permiten este diseño interno, por ejemplo, usando clases. Usando estas características del lenguaje de programación cliente es beneficioso para el programador incluso fuera del entorno de la base de datos.
Cuando se ejecutan las instrucciones de un procedimiento almacenado, ocurren las siguientes acciones:
- Comprueba la caché de procedimientos para ver si existe un plan de ejecución en la actualidad para el procedimiento en ejecución. Si la hay, se utiliza, sino lo registra y lo ejecuta.
- Los planes de consulta reside en una sección de memoria conocida como memoria caché de procedimientos.
- El plan de consulta es un conjunto ordenado de pasos necesarios para llevar a cabo el proceso por lotes e incluye información tal como que el índices va a usar.
Beneficios de rendimiento, Un procedimiento almacenado es ejecutado más rápidamente que una script o batch independiente, por las siguientes razones:
- El procedimiento almacenado ya ha sido analizado.
- La referencias a objetos en el procedimiento almacenado ya han sido realizada.
- Si existe un plan de consulta para el procedimiento no es necesario crear un plan de consultas.
BORRANDO PROCEDIMIENTOS ALMACENADOS
Usos comunes de los disparadores
- Modificaciones en cascada de tablas relacionadas.
- Deshacer los cambios que violan la integridad de datos.
- Hacer cumplir las restricciones que son demasiado complejos para las reglas o restricciones.
- El mantenimiento de datos duplicados.
- Mantenimiento de columnas derivadas de datos.
- Registro de información personalizada.
Unidad 7: conectividad de bases de datos
ODBC
EI ODBC hace posible la conexión de un sistema de gestión de base de datos (DBMS) y una aplicación.
Tanto la aplicación como el DBMS deben ser compatibles con ODBC.
Antes de usar un ODBC, este debe ser configurado.
Una vez elegido el controlador adecuado para el origen de los datos ODBC. pude usar el origen predeterminado o agregar un nuevo origen de datos.Para agregar un origen de datos ODBC
- Ingrese al Panel de control.
- Elija el icono Herramientas administrativas.
- Ingrese a Origenes de datos ODBC.
- En el cuadro de dialogo seleccione la pestaña DSN de usuario.
- Seleccione el botón Agregar.
- Seleccione el controlador que desee de la lista de controladores ODBC instalados y de clic en el botón Aceptor.
- En el cuadro de diálogo Configuración de ODBC, establezca los valores conforme sea necesario.
ADO.NET
Proporciona acceso a datos relacionales, XML y de aplicaciones.
Proporciona acceso a datos relacionales, XML y de aplicaciones.
Satisface diversas necesidades de desarrollo, como la creación de clientes de base de datos de aplicaciones para usuario y objetos empresariales de nivel medio que utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet.
El objeto principal de ADO es el Recordset, que tiene como ventajas su potencia y sencillez. Con este objeto se pueden utilizar cursores de clientes y cursores de servidor. Por otro lado, aunque puede trabajar desconectado de la fuente de datos, no está pesado para trabajar de ese modo, porque se desarrollarian aplicaciones deficientes.ADO, fue desarrollado para trabajar en aplicaciones tipo cliente-servidor, mientras Recordset este conectado a una fuente de datos.JDBC
Para utilizar una base de datos particular, se debe ejecutar el programa junto con la biblioteca de conexión apropiada al modelo de la base de datos a utilizar y se acceder a ella estableciendo una conexión, para ello se debe proveer el localizador a la base de datos y los parámetros de conexión especificos. A partir de allí puede realizar con cualquier tipo de tareas con la base de datos a las que tenga permiso: consulta, actualización, creación, modificación y borrado de tablas, ejecución de procedimientos almacenados la base de datos, etc.
CONECTIVIDAD DESDE UN LENGUAJE HUÉSPED
- SQL en DB2.
- JavaScript en PHP.
- SQL en Foxpro.
La mayoría de lenguajes en la actualidad tienen como lenguaje huésped a SQL
CONECTIVIDAD EN DISPOSITIVOS MOVILES
La plataforma móvil es modelo de distribución en los cuales están compartidos en servidores fijos, estaciones base y unidades móviles.
- El usuario de un dispositivo móvil se vincula al servidor de base de datos corporativo y trabaja directamente con la información.
- El usuario debe cargar copia de los datos para asi trabajar en la forma local.
Algunos ejemplos de equipos móviles son: Teléfono inteligente
- Videoconsola
- Camara digital
- Palms 05 IPhone
- ODBC
- ADO.NET
- JDBC
La mayoría de lenguajes en la actualidad tiene como lenguaje huésped a SQL.
La conexión de quipos móviles a bases de datos se puede realizar de dos maneras:
- Vinculando el equipo móvil al servidor de bases de datos corporativo y trabaja discretamente con la informacion.
- cargar una copia de los datos al equipo móvil para así trabajar en la forma local.