Bases de Datos I
Introducci´
on
Ing. Gerardo Avilés Rosas
Introducci´
on
El mundo est´a lleno de datos:
Pacientes/Doctores. Cuentas bancarias. Deportistas /Deportes. Actores/Pel´ıculas. Recetas de cocina.
Superh´eroes, etc.
¿Qu´e queremos hacer con ellos?
Consultarlos. Actualizarlos.
Ejemplo de una aplicaci´
on
Supongamos que requerimos hacer una aplicaci´on para almacenar/obtener
informaci´on acerca de:
Estudiantes Cursos Profesores
Necesidades
¿Qu´e necesidades se tienen?
1 Almacenar los datos por mucho tiempo.
2 Grandes vol´umenes de datos (cientos de GB).
3 Proteger los datos contra desastres.
4 Proteger los datos contra usos no-autorizados.
5 Consultar/actualizar:
¿Qui´en imparte BD?
¿Est´a Andrea L´opez en el curso de BD?
Permitir acceso simult´aneo a cientos o miles de usuarios.
6
Caracter´ısticas del procesamiento de archivos
Cada usuario define e implementa los archivos necesarios para una
aplicaci´on espec´ıfica con la subsecuente duplicidad de datos.
Los datos se almacenan en diversos archivos independientes. Se deben escribir programas para actualizar los archivos. Inconsistencia en los datos.
Cambios a la estructura de un archivo requieren cambiar todos los programas que acceden a este archivo.
Los datos almacenados se pueden acceder s´olo de la forma definida.
Dificultad de acceso en los datos.
La definici´on de datos es parte de los programas de aplicaci´on.
Intento con archivos
El almacenamiento de datos:
El sistema de archivos limita el tama˜no de ´estos. Cuando el sistema se cae, los datos pueden perderse. La autorizaci´on basada en passwords es insuficiente.
Consulta/actualizaci´on:
Se necesita escribir un nuevo programa para cada nueva consulta. Es necesario implementar pol´ıticas para lograr un buen rendimiento.
La concurrencia proporciona una protecci´on limitada:
Necesitas preocuparte que los usuarios no interfieran entre s´ı. No puedes proporcionar diferentes vistas de los mismos datos: (registros, estudiantes, profesores).
Definiciones b´
asicas
Base de Datos (BD): colecci´on de datos relacionados.
Datos: Hechos que pueden registrase y tienen significado impl´ıcito. Propiedades impl´ıcitas:
Representa aspectos del mundo real.
Colecci´on de datos con alg´un significado inherente.
Sistema administrador de base de datos
Database Management System (SABD): software que facilita el proceso de definir, construir, manipular y compartir datos en una BD para diversas aplicaciones.
Definir involucra especificar los tipos, estructuras y restricciones de los datos almacenados en la BD.
Construir es el proceso de almacenar los datos en alg´un medio de
almacenamiento controlado por el SABD.
Manipular incluye funciones tales como consultas, recuperaci´on y
actualizaci´on de datos.
Compartir es permitir el acceso a m´as de un usuario.
Sistema de base de datos
Usuarios / Programadores Sistema de BD
Programas de aplicación
SABD
Software para proceso de consultas/programas
Software para acceso a datos almacenados Definición de la BD (Meta−Datos) Base de datos almacenada
Construcci´
on de una aplicaci´
on con BD
Modelado de requerimientos (conceptual, gr´afico).
Se decide cu´ales entidades deben ser parte de la aplicaci´on y c´omo relacionarlas.
Dise˜no e implementaci´on del esquema.
Se decide qu´e repositorios se requieren. Se implementan los repositorios en el SABD. Se pueblan tales repositorios.
Escritura de la aplicaci´on usando el SABD (posiblemente desde Java)
Modelo Conceptual
Alumno #Cuenta Nombre Calif. Clave Creditos NombreCurp Nombre Direccion Aula
Carrera Asistir
Impartir
Profesor Semestre
Dise˜
no e implementaci´
on del esquema
Definici´on de los datos:
Se define el esquema con anterioridad al llenado de datos.
Se pueden definir nuevos dep´ositos (rect´angulos) a partir de los
existentes, omitiendo porciones de alguno o combinando varios. Se puede restringir cada columna, por ejemplo:
Teniendo un valor ´unico por cada rengl´on del rect´angulo. Siendo un subconjunto del dominio total.
... Definici´
on de los datos
Alumnos:
NumCuenta Nombre Categor´ıa
123456 Andrea L´opez normal
103438 Blanca Hern´andez pasante
124567 Jorge Luis Reyes graduado
... ... ... Toma: NumCuenta ClaveCurso 123456 CS644 123456 CS678 102438 CS145 .. .. Cursos:
Clave Nombre Cr´editos
CS644 Bases de Datos 10
CS678 Redes de Computadoras 10
CS145 Seminario de Titulaci´on 18
... ... ...
Consultas de la base de datos
SQL = Structured Query Language. Obtener todos los cursos que toma Andrea. SELECT C.nombre
FROM Alumnos A, Cursos C, Toma T
WHERE A.nombre = "Andrea" AND A.numCuenta = T.clave
Enfoque de bases de datos
Un solo dep´osito de datos definido una sola vez y puede accederse por
varios usuarios.
Representaci´on de relaciones complejas entre datos.
El SABD tiene la BD y su descripci´on completa.
Los programas de acceso se escriben con independencia de archivos espec´ıficos.
Control de redundancia. Restricciones de acceso. Restricciones de integridad.
Proporciona respaldo y recuperaci´on.
Reducci´on de tiempo de desarrollo.
Flexibilidad.
Disponibilidad de datos actualizados.
Archivos vs Bases de Datos
Descripción de datos PROGRAMA 3 Descripción de datos PROGRAMA 2 Descripción de datos PROGRAMA 1 ARCHIVO 1 ARCHIVO 2 DATOS REDUNDANTES ARCHIVO 3 PROGRAMA 1 PROGRAMA 2 Descripcion de Datos Manipulacion de Datos BASE DE DATOSEl estudio de bases de datos
Incluye diferentes aspectos:
Modelado y dise˜no de bases de datos.
Programaci´on de bases de datos: consulta y actualizaci´on.
Arquitectura ANSI/SPARC
Esquema de la BD: Descripci´on de la BD.
Estado de la BD: Valores de la BD en un momento dado.
La definici´on ANSI/SPARC tres niveles de la representaci´on de los datos:
nivel f´ısico, nivel conceptual y nivel externo. . . .
. . .
Vista 2
Vista 1 Vista n Nivel externo
Ejemplo
ESTUDIANTE: Nombre, NoCta, Año, Carrera MATERIA: Clavem, Nombre, Créditos CALIF: NoCta, Curso, Calif. PRERREQUISITO: ClaveC, ClavePreR CURSO: ClaveC, ClaveM, Semestre, Año, Prof.
PROMEDIOS: Nombre, NoCta, Prom HISTORIAL: Nombre, NoCta, ClaveC, Año, Semestre, Calif
Prom >= 9
... NombreDato Posición Long(Bytes)
Nombre 1 30 NoCta 31 10
Año 41 2
Carrera 43 1
NombreDato Posición Long(Bytes) ClaveC
ClavePreR
1 5
Independencia
Independencia de datos: Capacidad de modificar una definici´on de
esquema en un nivel sin que esto afecto a las definiciones de esquemas en niveles superiores.
Independencia l´ogica.
Funcionalidad de un SABD
Lenguaje para definici´on de datos DDL.
Lenguaje para manipulaci´on de datos DML.
Lenguaje para consulta de datos QL.
Administraci´on de almacenamiento.
Adminsitraci´on de consultas.
Administraci´on de transacciones.
Control de concurrencia. Recuperaci´on.
Arquitectura de un SABD
Autorizacion y Integridad Esquema de la BD Procesador de Consultas Administrador de Almacenamiento Transacciones Administrador de Programador sofisticados Usuarios Usuarios Admistrador de DML Compilador de QL Intérprete del DDL Memoria de Archivos Administrador Administrador Interfaces de aplicaciones Programas Consulta Motor de Evaluación de Consultas Código Objeto de aplicacion Comunes Aplicaciones Usuarios SABD CompiladorAplicaciones
Tradicionales Sistemas de n´ominas. Sistemas de inventarios. Sistemas estudiantiles. Sistemas de reservaciones. Sistemas bancarios. etc.Nuevas aplicaciones
Aplicaciones de dise˜no auxiliado por computadora. Sistemas multimedia.
Sistemas de informaci´on geogr´afica (GIS).
Aplicaciones de sistemas de informaci´on para oficinas. Miner´ıa de Datos
Almacenes de datos (dwh). Aplicaciones de hipertexto. etc.
Caracter´ısticas de las nuevas aplicaciones
Tienen necesidades y caracter´ısticas que no pueden modelarse con el modelo tradicional.
Otros tipos de datos (im´agenes, sonido, texto, etc.).
Datos con estructura m´as compleja.
Grandes vol´umenes de datos y con interacciones m´as complejas.
Conservaci´on de distintas versiones de un mismo dise˜no.
Modelos de datos
Modelo de datos: es un conjunto de conceptos que pueden usarse para describir la estructura de una BD.
Estructura: Tipos de datos, sus relaciones, restricciones que deber´ıan permitir a los datos.
Modelo relacional: Los datos se perciben como tablas y s´olo hay tablas. Es
un sistema cerrado en el sentido que el resultado de las operaciones son siempre tablas.
Modelo de objetos: Los datos se modelan como objetos en los cuales
adem´as del estado se tiene modelado su comportamiento.
Modelo de datos semiestructurados: Los datos no tienen una estructura r´ıgida y mucho menos predefinida.
Ejemplo de un MR
La mayor´ıa de los productos desarrollados desde finales de los 70’s se basan en el modelo relacional. Un SABDR = SABD + modelo relacional.
Clientes:
Nombre Cliente CURP Ciudad Cliente No Cuenta
Gonz´alez 19283746 Guanajuato C-101
G´omez 19283756 Veracruz C-215
L´opez 67789901 Morelia C-102
Garza 96396396 Monterrey C-305
Gonz´alez 19283746 Guanajuato C-201
Santos 32112312 Morelia C-217
Rup´erez 24466880 Le´on C-222
G´omez 19283756 Veracruz C-201 Cuentas: No Cuenta Saldo C-101 100,000 C-215 140,000 C-102 80,000
Modelo de Objetos
Los datos se modelan como objetos en los cuales adem´as del estado se
tiene modelado su comportamiento. SABDO = SABD + MO.
Proyecto Documento objetivos: STRING documento* plan_trabajo* sub_proyecto balance: NUMERO nombre_proy: STRING participantes(): * acrónimo: STRING nombre: STRING clasificacion: STRING Reporte Técnico tema: STRING fecha_final: DATE fecha_inical: DATE cambios_a autor* tipo_publicación: STRING lugar_publicacion: STRING fecha: DATE Artículo Grupo Invetigador Tarea fecha_inicio: DATE fecha_fin: DATE descripcion: TEXT participantes lider precedentes nombre: STRING miembro * lider nombre:STRING especializacion: STRING sueldo: NUMERO salario_promedio: NUMERO salario_mensual(): NUMERO
Los atributos con * son multivaluados. Los m´etodos y atributos de la clase
Modelo de datos semiestructurados
Dato semiestructurado es sin´onimo de irregular y autodescriptivo.
o1 o12 o24 o29 o96 o43 o43 o43 "Serge" "Abiteboul" Ullman Jennifer Widom "..." "..." Hector Garcia−Molina "Querying SSD" 1998 "..." "..." nombre autor autor libro Bib referencias editorial referencias apellido año URL apellido Jeffrey nombre artículo artículo apellido nombre título autor autor nombre apellido título autor "Addison Wesley" referencias autor título
Bases de Datos y Web
Enfoques:
Poner interfaces a una BD relacional para que pueda accesarse desde Internet.
Considerarla como BD y emplear t´ecnicas de bases de datos para la
b´usqueda de los mismos.
Interfaces para acceder a bases de datos desde Internet V´ıa formularios se construye la consulta.
Generaci´on din´amica del contenido de documentos.
El resultado puede personalizarse de acuerdo a datos del usuario, almacenados en una base de datos.
¿Es la Web una base de datos?
Problemas con los datos en s´ı:
Alto porcentaje de datos vol´atiles. Datos redundantes y sin estructura. Calidad de datos.
Datos heterog´eneos.
Relacionados con el usuario y su interacci´on con los sistemas de
recuperaci´on.
¿C´omo especificar una consulta?
¿Es la Web una base de datos?
¿En qu´e difiere la Web de cualquier base de datos cl´asica?
R. En todo:
Una base de datos:
Sistema coherentemente dise˜nado. Estructura r´ıgida.
Entorno controlado para las consultas, actualizacioens, transacciones, concurrencia, integridad y recuperaci´on.
Las consultas tienen acceso a todos los datos
La Web escapa de tal control.
Evoluciona libremente.
Los datos cambian en forma y ubicaci´on.