Temario Itroducció y fudametos Itroducció a SQL Modelo Etidad / Relació Modelo relacioal Diseño relacioal: formas ormales Cosultas Cálculo relacioal Álgebra relacioal Implemetació de bases de datos Estructura física: campos y registros Idexació Ídices simples Árboles B Hashig 1
Bases de datos perspectiva temporal 1960 s Primeras ocioes de bases de datos 1970 Propuesta del modelo relacioal (E. F. Codd, CACM) 1974 Primer SGBD e el MIT (RDMS) SQL e IBM (D. D. Chamberli & R. F. Boyce) 1976 Modelo Etidad / Relació 1979 Oracle 1980 dbase II 1983 IBM DB2 1984 FoxPro Mediados 80 s Despliegue de la tecología BD 1987 SAP Sybase 1989 MS SQL Server 1992 MS Access 1994 MySQL 1995 PostgreSQL Mediados 90 s BDs orietadas a objetos 2000 s BDs XML, BD distribuidas, Big Data 2
U primer ejemplo Aplicació de música olie co red social Tipos de datos: usuarios, cacioes, discos, autores Estructuras: Los usuarios tiee ick, ombre, email Las cacioes tiee título, géero, duració, fecha Los artistas tiee ombre, acioalidad Relacioes: Las cacioes tiee autores, los discos tiee cacioes, los usuarios tiee amigos, discos favoritos, escucha cacioes Fucioalidades: Buscar ua cació, escucharla, ver sus datos Ver / añadir amigos 3
Diseño de las estructuras de datos Archivos? Setecias SQL? Tablas? Diagramas? 4
Datos e archivos ---------- /* Usuarios */ lola Dolores lola@gmail.com pepe José jose@gmail.com chema José María chema@gmail.com charo Rosario rosario@gmail.com ---------- /* Relacioes sociales */ pepe lola charo pepe chema charo ---------- /* Artistas */ The Beatles UK The Rollig Stoes UK ---------- /* Cacioes */ Norwegia wood Pop 125 1965-03-12 The Beatles Here, there ad everywhere Pop 145 1966-08-05 The Beatles Jumpig jack flash Pop 225 1968-04-20 The Rollig Stoes ---------- /* Escuchas */ charo 2011-09-09 16:57:54 /* cació...? */ pepe 2011-09-12 21:15:30 /* cació...? */...??? 5
Tablas e u SGBD 6
Tablas 7
Esquemas de tablas 8
Setecias SQL CREATE TABLE Usuario ( ick varchar(30) PRIMARY KEY, ombre text NOT NULL, email text NOT NULL UNIQUE ); CREATE TABLE Cotacto ( usuario1 varchar(30) NOT NULL REFERENCES Usuario (ick), usuario2 varchar(30) NOT NULL REFERENCES Usuario (ick), PRIMARY KEY (usuario1,usuario2) ); CREATE TABLE Artista ( id it PRIMARY KEY, ombre text NOT NULL, acioalidad text ); CREATE TABLE Cacio ( id it PRIMARY KEY, titulo text NOT NULL, geero text, duracio it, fecha date, autor it NOT NULL REFERENCES Artista (id) );... CREATE TABLE Escucha ( usuario varchar(30) REFERENCES Usuario (ick), cacio it REFERENCES Cacio (id), istate timestamp, PRIMARY KEY (usuario,cacio,istate) ); 9
Setecias SQL... INSERT INTO Usuario VALUES ('lola', 'Dolores', 'lola@gmail.com'); INSERT INTO Usuario VALUES ('pepe', 'José', 'jose@gmail.com'); INSERT INTO Usuario VALUES ('chema', 'José María', 'chema@gmail.com'); INSERT INTO Usuario VALUES ('charo', 'Rosario', 'rosario@gmail.com'); INSERT INTO Cotacto VALUES ('pepe', 'lola'); INSERT INTO Cotacto VALUES ('charo', 'pepe'); INSERT INTO Cotacto VALUES ('chema', 'charo'); INSERT INTO Artista VALUES (1, 'The Beatles', 'UK'); INSERT INTO Artista VALUES (2, 'The Rollig Stoes', 'UK'); INSERT INTO Cacio VALUES (1, 'Norwegia wood', 'Pop', '125', '1965-03-12', 1); INSERT INTO Cacio VALUES (2, 'Here, there ad everywhere', 'Pop', '145', '1966-08-05', 1); INSERT INTO Cacio VALUES (3, 'Jumpig jack flash', 'Pop', '225', '1968-04-20', 2); INSERT INTO Escucha VALUES ('charo', 2, '2011-09-09 16:57:54'); INSERT INTO Escucha VALUES ('pepe', 3, '2011-09-12 21:15:30'); 10
Diagramas Etidad / Relació ick Cotacto Usuario ombre email ombre acioalidad Artista istate 1 autor Escucha Cació título fecha géero Autor Álbum Cotiee duració título fecha 11
Coceptos geerales Base de datos = cojuto de tablas, esquemas, restriccioes Tabla = registros y campos Formas de ver ua tabla Vista gráfica tabular (SGBD o dibujos ) SQL (código) Notació modelo relacioal (álgebra de cojutos) Modelo Etidad / Relació (diagramas) SQL = leguaje de creació, actualizació y cosulta de bases de datos SGBD = software de gestió y acceso a bases de datos (~miles persoas/año) Procesador de SQL Motor de operacioes (cosultas) Optimizador de cosultas Motor de almaceamieto físico Herramietas de admiistració: creació y diseño de tablas, usuarios Modelo lógico vs. físico (desacoplamieto) 12
Usuario fial Iterfaz de usuario Arquitectura Software aplicació ad hoc Programador aplicació Lógica de la aplicació Acceso y gestió de datos Archivos de datos Memoria extera 13
Usuario fial Iterfaz de usuario Programador aplicació Lógica de la aplicació Setecias SQL Arquitectura Software aplicació BD Etoro / herramietas de admiistració Admiistrador Navicat SQLYog etc. ODBC, JDBC, PHP API BD Almaceamieto Cosultas Actualizació SGBD Bases de datos 14
Roles e el uso de ua base de datos Usuarios fiales Iteractúa co aplicacioes que accede a la BD Usuarios avazados Iteractúa co la BD e SQL Programadores de aplicació Iteractúa co la BD escribiedo programas Diseñadores Defie el diseño de la BD Admiistradores Matiee el diseño de la BD Gestioa usuarios y permisos de acceso Gestioa ecesidades de actualizació Desarrolladores de herramietas SGBD Implemeta la capa iferior de acceso físico a los datos Desarrolla el software y herramietas que da servicio a todo lo aterior 15