ESQUEMA: BASES DE DATOS RELACIONALES 1. INTRODUCCION A LAS BASES DE DATOS SISTEMA DE INFORMACIÓN: ES UN CONJUNTO DE ELEMENTOS ORDENADAMENTE RELACIONADOS ENTRE SÍ DE ACUERDO A CIERTAS REGLAS, QUE APORTAN A LA ORGANIZACIÓN A LA QUE SIRVEN LA INFORMACION NECESARIA PARA EL CUMPLIMIENTO DE SUS FINES. FUNCIONES BASICAS: RECOGIDA, PROCESAMIENTO Y ALMACENAMIENTO DE DATOS, ASÍ COMO LA ELABORACIÓN Y PRESENTACIÓN DE LOS MISMOS. SISTEMA DE INFORMACION MECANIZADO: ES AQUÉL QUE ESTÁ SOPORTADO POR UN COMPUTADOR. BASE DE DATOS (BD): ES UNA COLECCIÓN ESTRUCTURADA DE DATOS DE FORMA QUE REFLEJEAN FIELMENTE LOS OBJETOS, LAS RELACIONES Y LAS RESTRICCIONES EXISTENTES EN LA PARCELA DEL MUNDO REAL DE LA CUAL LA BASE DE DATOS ES UNA REPRESENTACIÓN. SISTEMA DE GESTIÓN DE BASES DE DATOS (SGBD): ES UNA HERRAMIENTA SOFTWARE QUE PERMITE LA CREACIÓN Y MANIPULACIÓN DE BASES DE DATOS. ESTA BASADO EN UN MODELO DE DATOS (CONJUNTO DE CONCEPTOS Y REGLAS QUE PERMITEN ESTRUCTURAR LOS DATOS RESULTANTES DE LA OBSERVACIÓN DE LA REALIDAD DE FORMA QUE QUEDEN REPRESENTADAS LA PROPIEDADES, TANTO ESTÁTICAS COMO DINÁMICAS, DE ELLA). CARACTERISTICAS DE LAS TÉCNICAS DE BASES DE DATOS: • INTEGRACIÓN DE TODA LA INFORMACIÓN DE LA ORGANIZACIÓN. • PERSISTENCIA DE LOS DATOS: DISPONIBLES EN TODO MOMENTO. (MEMORIA SECUNDARIA) • ACCESIBILIDAD SIMULTÁNEA PARA DISTINTOS USUARIOS. • DESCRIPCION UNIFICADA DE LOS DATOS E INDEPENDIENTE DE LAS APLICACIONES. • INDEPENDENCIA DE LAS APLICACIONES RESPECTO A LA REPRESENTACIÓN FISICA DE LOS DATOS. • DEFINICIÓN DE VISTAS PARCIALES DE LOS DATOS PARA DISTINTOS USUARIOS. (SOLO CONTIENEN AQUELLOS DATOS QUE LES INTERESA). • MECANISMOS PARA ASEGURAR LA INTEGRIDAD Y LA SEGURIDAD DE LOS DATOS. ARQUITECTURA DE NIVELES DEL SGBD: UTILIZADA PARA LA PROTECCIÓN DE LA INDEPENDENCIA DE DATOS DE LAS POSIBLES ABSTRACCIONES DE DATOS. TRES NIVELES DE ABSTRACCIÓN: • NIVEL LÓGICO: DEFINICIÓN DE LAS ESTRUCTURAS DE DATOS QUE CONSTITUYEN LA BASE DE DATOS. • NIVEL FÍSICO. SE ELIGE UNA IMPLEMENTACIÓN PARA CADA UNA DE LAS ESTRUCTURAS DEFINIDAS EN EL ESQUEMA LÓGICO. • NIVEL EXTERNO: SE DEFINEN VISTAS PARCIALES DE LA BASE DE DATOS PARA DISTINTOS GRUPOS DE USUARIOS. EL SGBD DEBE ASEGURAR QUE LOS CAMBIOS REALIZADOS EN CUALQUIERA DE LOS NIVELES NO AFECTE A LOS NIVELES SUPERIORES. 1 2. EL MODELO RELACIONAL: EL MODELO RELACIONAL DE DATOS (PERSPECTIVA ALGEBRAICA): CONJUNTO DE ESTRUCTURAS DE DATOS QUE DEFINEN SUS OPERADORES DE ACTUALIZACIÓN Y CONSULTA. • ESTRUCTURA DE DATOS: • TUPLA: CONJUNTO DE NOMBRES DE ATRIBUTOS RELACIONADOS A PARES CON LOS DOMINIOS DE DICHOS ATRIBUTOS. OPERADORES: ASIGNAR,CONSULTAR. (ASIGNAR(T,DIRECCION,COLON 4); CONSULTAR(T,NOMBRE)=PEPA GÓMEZ ). • RELACIÓN: ES UN CONJUNTO DE TUPLAS DEL MISMO ESQUEMA. SE MIDE EL GRADO DE UNA RELACIÓN POR EL NÚMERO DE ATRIBUTOS DE SU ESQUEMA (COLUMNAS) Y CARDINALIDAD DE UNA RELACION AL NÚMERO DE TUPLAS QUE LA FORMAN (FILAS). OPERADORES: INSERCION, BORRADO, SELECCIÓN, PROYECCIÓN, UNIÓN, DIFERENCIA, PRODUCTO CARTESIANO. • ÁLGEBRA RELACIONAL: CONJUNTO DE OPERADORES QUE ACTÚAN SOBRE RELACIONES. OPERADORES CONJUNTISTAS (UNIÓN, INTERSECCIÓN, DIFERENCIA Y PRODUCTO CARTESIANO), OPERADORES PROPIAMENTE RELACIONALES (SELECCIÓN, PROYECCIÓN, DIVISIÓN Y CONCATENACIÓN) Y OPERADOR RENOMBRAR. EL MODELO RELACIONAL DE DATOS (PERPECTIVA LÓGICA): JUSTIFICADO POR EL HECHO QUE EL LENGUAJE ACEPTADO COMO ESTÁNDAR ACTUAL PARA LOS SISTEMAS RELACIONALES, EL LENGUAJE SQL, ES UN LENGUAJE LÓGICO. LA LÓGICA DE 1ER ORDEN ES UN SISTEMA FORMAL QUE PERMITE RAZONAR SOBRE UN UNIVERSO DE DISCURSO O DOMINIO, PARA SU FORMALIZACIÓN HAY QUE SEGUIR TRES PASOS: • SE DEBE DEFINIR UN LENGUAJE DE 1ER ORDEN (L) PARA PODER REFERIRSE A LOS INDIVIDUOS Y A LAS PROPIEDADES DEL UNIVERSO DE DISCURSO. • EL CONOCIMIENTO QUE SE TIENE SOBRE LOS PREDICADOS SE DENOMINA INTERPRETACIÓN (I) DEL LENGUAJE DE 1ER ORDEN EN EL DOMINIO D. • LA EVALUACIÓN DE F EN I SE REALIZA SIGUIENDO UNAS REGLAS FIJAS QUE INDICAN CÓMO EVALUAR (INTERPRETAR) CADA ELEMENTO DE LA FÓRMULA EN I. EJEMPLO: L: I: Constantes={Luis,Maria,Juan,AD1,BDA} D={Luis,Maria,Juan,AD1,BDA} Predicados={Alumno(.),Asignatura(.), Alumno={Juan,Luis,Maria} Matricula(.,.)} Asignatura={AD1,BDA} Variables={x,y} Matricula={(Luis,AD1),(Juan,BDA)} Conectivas={!,¬,","} Cuantificadores={","} ¿Qué alumnos están matriculados en `BDA'? F:Alumno(x) " Matricula(x,'BDA') 2 RESTRICCIONES DE INTEGRIDAD: NO PERMITEN LA EXISTENCIA DE RELACIONES QUE NO REPRESENTAN UN ESTADO POSIBLE DEL MUNDO REAL QUE ESTÁN REPRESENTANDO. • RESTRICCIÓN DE UNICIDAD: NO DEBE HABER EN LA RELACIÓN DOS TUPLAS QUE TENGAN EL MISMO VALOR EN TODOS LOS ATRIBUTOS DEL CONJUNTO K (2 VALORES IGUALES EN LA MISMA COLUMNA). • RESTRICCIÓN DE VALOR NO NULO: NO DEBE HABER EN LA RELACIÓN UNA TUPLA QUE TENGA VALOR NULO EN ALGÚN ATRIBUTO DE K (NO DEBE HABER NINGUNA CASILLA DE LA COLUMNA VACIA). • CLAVE PRIMARIA: CONJUNTO DE ATRIBUTOS DE SU ESQUEMA QUE SÓN ELEGIDOS PARA SERVIR DE IDENTIFICADOR UNÍVOCO DE SUS TUPLAS. REQUISITOS: MINIMAL (NECESSARIO), NO VALORES NULOS, UNICO PARA CADA TUPLA. • CLAVE AJENA: EXPRESAN RELACIONES ENTRE LOS OBJETOS REPRESENTADOS, INCLUYENDO EN EL ESQUEMA DE UNA RELACIÓN ATRIBUTOS DE OTRA (UTILIZADA PARA RELACIONAR TABLAS). 3. EL LENGUAJE SQL. EL LENGUAJE SQL: CONTIENE INSTRUCCIONES CORRESPONDIENTES A TODOS LOS ASPECTOS DE DEFINICIÓN, MANIPULACIÓN Y CONTROL DE UNA BASE DE DATOS RELACIONAL. DEFINICIÓN−CREATE SQUEME: PERMITE DAR NOMBRE A UN ESQUEMA RELACIONAL Y DECLARAR EL USUARIO QUE ES EL CREADOR Y PORPIETARIO DE DICHO ESQUEMA (ESTE TIENE TODOS LOS PRIVILEGIOS). CREATE SQUEME [esquema] [AUTHORIZATION usuario] [lista_elemento_esquema] LA INSTRUCCIÓN QUE ELIMINA COMPLETAMENTE LA DEFINICIÓN DE UN ESQUEMA RELACIONAL Y SU SINTAXIS ES: DROP SCHEMA esquema {RESTRICT | CASCADE} RESTRICT (LA OPERACIÓN FALLA A MENOS QUE EL ESQUEMA ESTE VACÍO, SI ESTA VACIO ELIMINA LA DEF.). CASCADE (ELIMINA CADA UNO DE LOS OBJETOS INCLUIDOS EN EL ESQUEMA). DEFINICIÓN−CREATE DOMAIN: DEFINE UN NUEVO DOMINIO DE DATOS EN EL ESQUEMA RELACIONAL. CREATE DOMAIN dominio [AS] tipo_dato [DEFAULT {literal | función_sistema | NULL}] [definición_restricción_dominio] tipo_dato (CHAR[N], VARCHAR[N], INTEGER, FLOAT, DATE). DEFAULT (POR DEFECTO: USER Y CURRENT_USER (usuario), SESSION_USER (identificador sesion), SYSTEM_USER (id. del S.O.), CURRENT_DATE (fecha actual), CURRENT_TIME (hora actual), CURRENT_TIMESTAMP (fecha y hora actual)). definición_restricción_dominio ([CONSTANT restricción] CHECK (expresión_condicional) [comprovación_restricción]). 3 comprovación_restricción ([NOT] DEFERRABLE (al finalizar la transacción activa) o [NOT] (despues de cada actualización)). PARA MODIFICAR LA DEFINICION DE UN DOMINIO DEL ESQUEMA SE UTILIZA LA SINTAXIS SIGUIENTE: ALTER DOMAIN dominio {SET DEFAULT {literal | función_sistema | NULL} | DROP DEFAULT | ADD definición_restricción_dominio | DROP CONSTANT restricción } PARA ELIMINAR UN DOMINIO DEL ESQUEMA RELACIONAL SE UTILIZA LA OPERACIÓN: DROP DOMAIN dominio [RESTRICT | CASCADE] RESTRICT ( ELIMINA EL DOMINIO CUANDO NO SE HAGA REFERENCIA A EL EN NINGUNA DEFINICION DE TABLA, VISTA O DE RESTRICCIÓN DE INTEGRIDAD). CASCADE ( CUALQUIER DEFINICIÓN EN LA QUE SE HAGA REFERENCIA A ÉL ES ELIMINADA TAMBIÉN). DEFINICIÓN−CREATE TABLE: DEFINE LA TABLA, SU ESQUEMA Y LAS RESTRICCIONES ASOCIADAS. CREATE TABLE tabla comalista_definición_columna [comalista_definición_restricción_tabla] comalista_definición_columna ( columna {tipo_dato | dominio} [DEFAULT {literal | función_sistema | NULL}] [lista_definición_restricción_columna] ). lista_definición_restricción_columna ( NOT NULL (no valor nulo), clave primaria, clave ajena, de unicidad). comalista_definición_restricción_tabla ( [CONSTRAINT restricción] {PRIMARY KEY (comalista_columna) | UNIQUE (comalista_columna) | FOREIGN KEY (comalista_columna) REFERENCES tabla*[(comalista_columna*)] [MATCH {FULL | PARTIAL}] [ON UPDATE [CASCADE | SET NULL | SET DEFAULT | ON ACTION]] [ON DELETE [CASCADE | SET NULL | SET DEFAULT | NO ACTION]] | CHECK expresión_condicional} [comprovación_restricción] ). FOREIGN KEY ( CLAVE AJENA). CHECK (RESTRICCIONES GENERALES SOBRE LA TABLA. LA RESTRICCIÓN DE CHECK NO SE SATISFACE SI LA SIGUIENTE FÓRMULA ES CIERTA: EXISTS (SELECT * FROM tabla WHERE NOT (expresión_condicional) ). MATCH ( MATCH FULL: SI EN LAS COLUMNAS DE LA CLAVE AJENA EXISTE VALOR TAMBIEN EN LA REFERNCIADA(O TODO O NADA). MATCH PARTIAL: SI EN ALGUNA COLUMNA DE LA CLAVE AJENA EXISTE VALOR EN LA REFERENCIADA EL VALOR ES IDENTICO. SIN MATCH: LOS DATOS DE LA CLAVE AJENA EXISTEN EN LA REFERENCIADA.). LA OPERACIÓN PARA MODIFICAR LA DEFINICIÓN DE UNA TABLA TIENE LA SIGUIENTE SINTAXIS: 4 ALTER TABLE tabla_base {ADD [COLUMN] definición_columna | ALTER [COLUMN] columna {SET DEFAULT {literal | función_sistema | NULL} | DROP DEFAULT} | DROP [COLUMN] columna {RESTRICT | CASCADE} } LA INSTRUCCIÓN QUE ELIMINA UNA TABLA DEL ESQUEMA RELACIONAL TIENE LA SIGUIENTE SINTAXIS: DROP TABLA tabla_base {RESTRICT | CASCADE} DEFINICIÓN−CREATE VIEW: PERMITE DAR LA DEFINICIÓN DE UNA VISTA O RELACIÓN DERIVADA EN EL ESQUEMA RELACIONAL. CREATE VIEW vista [(comalista_columna)] AS expresión_tabla [WITH CHECK OPTION] WITH CHECK OPTION (permite que el sistema rechace una operación de inserción de una vista si la fila que es insertada no cumple las condiciones de la expresión de tabla de la definición de la vista). LA INSTRUCCIÓN PARA ELIMINAR LA VISTA ES: DROP VIEW vista {RESTRICT | CASCADE} DEFINICIÓN−CREATE ASSERTION: PARA RESTRICCIONES GENERALES QUE AFECTAN A MÁS DE UNA TABLA. CREATE ASSERTION restricción CHECK (expresión_condicional) [comprobación_restricción] LA BASE DE DATOS SATISFACE LA RESTRICCIÓN SI LA CONDICIÓN SE EVALÚA A CIERTO. PARA ELIMINARLA: DROP ASSERTION restricción DEFINICIÓN−GRANT: CLAUSULA PARA OTORGAR PRIVILEGIOS SOBRE UN OBJETO (TABLA O VISTA). GRANT { ALL | SELECT | INSERT[(comalista_columna)] | DELETE | UPDATE[(comalista_columna)]} ON objeto TO {comalista_usuarios | PUBLIC } [WITH GRANT OPTION] Objeto (NOMBRE DE UNA TABLA O VISTA DEL ESQUEMA) ALL (CONCEDE TODOS LOS PRIVILEGIOS) LOS USUARIOS SE DECLARAN POR MEDIO DE SU IDENTIFICADOR. EN CASO DE INCLUIR PUBLIC EL PRIVILEGIO ES PARA TODOS LOS USUARIOS. WITH GRANT OPTION (CONCEDE PERMISO PARA CEDER A TERCEROS LOS PRIVILEGIOS OBTENIDOS). LA INSTRUCCIÓN QUE PERMITE QUITAR UN PRIVILEGIO OTORGADO A UN USUARIO O GRUPO SE DEFINE: REVOKE [GRANT OPTION FOR] { ALL | SELECT | INSERT[(comalista_columna)] | DELETE | UPDATE[(comalista_columna)] } ON objeto TO {comalista_usuarios | PUBLIC } { RESTRICT | CASCADE } 5 CONSULTAS: instrucción SELECT: LA SINTAXIS BÁSICA DE LA INSTRUCCIÓN SELECT ES LA SIGUIENTE: SELECT [ALL | DISTINCT] comalista_item_seleccionado FROM comalista_referencia_tabla [WHERE espresión_condicional] [GROUP BY comalista_referencia_columna] [HAVING expresión_condicional] comalista_item_seleccionado (ESPECIFICA LA INFORMACIÓN QUE SE DESEA OBTENER DE LA BASE DE DATOS). FROM comalista_referencia_tabla (INDICA DE QUE TABLAS SE DEBE OBTENER LA INFORMACIÓN BUSCADA). WHERE expresión_condicional (SUBCONJUNTO DEL QUE SE DESEA OBTENER CIERTOS DATOS INCLUIDAS EN FROM). GROUP BY comalista_referencia_columna (PERMITE HACER CONSULTAS AGRUPADAS PARA EXTRAER INFORMACIÓN GLOBAL SOBRE LOS GRUPOS FORMADOS, COMO SON SUMATORIOS, MEDIAS, MÁXIMOS, MÍNIMOS, ETC). HAVING expresión_condicional (PERMITE EXPRESAR CONDICIONES EN LAS CONSULTAS AGRUPADAS QUE SON CONCERNIENTES A LOS GRUPOS FORMADOS) ALL | DISTINCT ( SI SE DESEA O NO QUE LA RESPUESTA CONTENGA FILAS IDÉNTICAS). espresión_condicional: LA CONDICIÓN ESTA FORMADA POR UN CONJUNTO DE PREDICADOS COMBINADOS CON LA CONECTIVAS LÓGICAS AND, OR Y NOT. LOS PREDICADOS UTILIZADOS EN ESTE TIPO DE CONSULTAS SON: • PREDICADOS DE COMPARACIÓN: PUEDE SER UNO DE LOS SIGUIENTES ( =, <>, >, <, >= Y <= ). • PREDICADO LIKE: COMPARA DE FORMA FLEXIBLE COLUMNAS DE TIPO CHAR[N] O VARCHAR[N] SEGÚN UN PATRON. Espresión_tira_caracteres [NOT] LIKE patrón [ESCAPE escape] patrón (_: carácter individual. %: tira de caracteres. Ejemplo: nombres que empiezan por A (nombre LIKE A%)). ESCAPE (PARA INHIBIR EL CARÁCTER ESPECIAL DE _ Y %.Ejemplo: %10\% ESCAPE \) • PREDICADO BETWEEN: DEFINE RANGOS. EJ: BETWEEN 1900 AND 2010. • PREDICADO IN: expresión_escalar IN (comalista_expresión_escalar). Comprueba si esta la expresión en el conjunto. • PREDICADO IS NULL:Permite determinar si una columna tiene el valor nulo. Referencia_columna IS [NOT] NULL. CONSULTAS DE VALORES AGREGADOS: VALORES QUE SE CALCULAN A PARTIR DE UN CONJUNTO DE DATOS. SUM: CALCULA EL SUMATORIO DE UN CONJUNTO O COLECCIÓN DE VALORES NUMÉRICOS, ENTEROS O REALES. 6 AVG: CALCULA EL VALOR MEDIO DE UN CONJUNTO O COLECCIÓN DE VALORES NUMÉRICOS. MIN, MAX:CALCULA EL MÍNIMO Y MÁXIMO, RESPECTIVAMENTE, DE UN CONJUNTO DE VALORES ESCALARES. COUNT: CALCULA EL CARDINAL DE UN CONJUNTO DE VALORES O DE UN CONJUNTO DE FILAS. COUNT(*) | {AVG | MAX | MIN | SUM | COUNT } ([ALL | DISTINCT] expresión_escalar) DISTINCT: LOS VALORES REDUNDANTES SEAN ELIMINADOS ANTES QUE SE REALICE EL CALCULO. ALL: LOS DATOS REDUNDANTES TAMBIEN APARECEN EN EL CALCULO. TODAS LA FILAS APARECEN. CONSULTAS COMPLEJAS: SUBCONSULTAS: APARECEN DESPUES DE LA CLAUSULA WHERE O HAVING: • PREDICADOS DE COMPARACIÓN: LAS SUBCONSULTAS PUEDEN SER ARGUMENTOS SIEMPRE Y CUANDO DEVUELVAN UNA ÚNICA FILA. • IN:COMPRUEBA QUE UN VALOR PERTENECE A UNA COLECCIÓN MEDIANTE UNA SUBCONSULTA. • MATCH: COMPRUEBA SI UN VALOR ES IDÉNTICO A ALGÚN VALOR DE UNA COLECCIÒN. • PREDICADOS DE COMPARACIÓN CUANTIFICADOS (ANY Y ALL); PERMITIR COMPARAR UN VALOR CON UN CONJUNTO DE VALORES. • EXISTX: EQUIVALENTE AL CUANTIFICADOR EXISTENCIAL, COMPRUEBA SI UNA SUBCONSULTA DEVUELVE UNA ÚNICA FILA. • UNIQUE: COMPRUEBA SI UNA SUBCONSULTA DEVUELVE UNA ÚNICA FILA. • GROUP BY: AGRUPA UN CONJUNTO DE FILAS CON EL MISMO VALOR PARA EL CONJUTO DE COLUMNAS POR LAS QUE SE AGRUPA (LAS INCLUIDAS EN LA CLAUSULA GROUP BY ...). COMBINACIONES CONJUNTISTAS DE TABLAS: SE REALIZAN CON LAS INSTRUCCIONES UNION, EXCEPT (DIFERENCIA) Y INTERSECT (INTERSECCIÓN) PARA COMBINAR TABLAS CON ESQUEMAS COMPATIBLES. • INTERSECT: término_tabla INTERSECT [ALL] [CORRESPONDING [BY (comalista_columna)]] tabla_primaria • UNION: expresión_tabla UNION [ALL] [CORRESPONDING [BY (comalista_columna)]] término_tabla • EXCEPT: expresión_tabla EXCEPT [ALL] [CORRESPONDING [BY (comalista_columna)]] término_tabla CONCATENACION DE TABLAS: EN SQL PUEDEN EXISTIR COLUMNAS DE VALOR NULO USADAS EN LA CONCATENACION. • PRODUCTO CARTESIANO (CROSS JOIN): referencia_tabla CROSS JOIN referencia_tabla • CONCATENACION INTERNA: COMBINA DOS TABLAS BASANDOSE EN UN CONJUNTO DE COLUMNAS COMUNES O EN UNA CIERTA RELACION. referencia_tabla [NATURAL] JOIN 7 [INNER] referencia_tabla [ON expresión_condicional | USING (comalista_columna)] • t1 JOIN t2 ON expresión_condicional: CONCATENACION BASADA EN LA CONDICION expresión_condicional. • t1 JOIN t2 USING (comalista_columna): LAS COLUMNAS NO APARECEN DUPLICADAS. • t1 NATURAL JOIN t2: CONCATENACION DE COLUMNAS COMUNES A AMBAS TABLAS. • CONCATENACION EXTERNA: PERMITE COMBINAR TABLAS SIN PERDIDA DE INFORMACION. referencia_tabla [NATURAL] {LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER]} referencia_tabla [ON expresión_condicional | USING (comalista_columna)] • CONCATENACION UNION: COMBINA DOS TABLAS DE FORMA INCONDICIONAL DANDO VALORES NULOS A LAS COLUMNAS QUE NO APARECEN EN ALGUNA DE LAS DOS TABLAS. referencia_tabla UNION JOIN referencia_tabla INTRODUCCION DE INFORMACION: INSTRUCCIÓN INSERT: ESTA INSTRUCCIÓN PERMITE INTRODUCIR NUEVA INFORMACIÓN EN UNA BASE DE DATOS RELACIONAL. SINTAXIS: INSERT INTO tabla [ (comalista_columna) ] { DEFAULT VALUES | VALUES (comalista_átomos) | expresión_tabla } comalista_columna: SI NO SE INCLUYE SE DEBERAN REALIZAR INSERCIONES DE FILAS COMPLETAS DE LA TABLA. DEFAULT VALUES: SE INSERTARAN LOS VALORES POR DEFECTO O EL VALOR NULO. VALUES(comalista_átomos): DEBE EXISTIR CORRESPONDENCIA ENTRE LOS ATOMOS Y LAS COLUMNAS. expresión_tabla: SE INSERTARAN LAS FILAS DEVUELTAS EN LA EJECUCION EN CONCORDANCIA CON LA LISTA DE COLUMNAS O CON LA DEFINICION DE LAS COLUMNAS EN LA TABLA. EJEMPLO: INSERT INTO Proveedor(dni, nombre, dir) VALUES (12345678,'Juan Pérez','Cuenca 25') MODIFICACIÓN DE LA INFORMACIÓN: INSTRUCCIÓN UPDATE: SE UTILIZA PARA MODIFICAR LOS VALORES DE LAS COLUMNAS DE UNA TABLA. SINTAXIS: UPDATE tabla SET comalista_asignaciones [WHERE expresión_condicional] comalista_asignaciones: UNA ASIGANCION ES DE LA FORMA: columna={DEFAULT | NULL | expresión_escalar} ELIMINACIÓN DE INFORMACIÓN: INSTRUCCIÓN DELETE: PERMITE ELIMINAR UNA O 8 VARIAS FILAS. DELETE FROM tabla [WHERE expresión_condicional] MANIPULACION DE VISTAS: DEPENDIENDO DE LA DEFINICION DE VISTA, ALGUNAS OPERACIONES SE PODRAN EFECTUAR SOBRE ELLA Y OTRAS NO. SIEMPRE LAS OPERACIONES SE REALIZARAN EN BASE A LA DEFINICION DE LA VISTA ACTUAL. 5. SISTEMAS DE GESTIÓN DE BASES DE DATOS LOS OBJETIVOS DE LA TECNOLOGÍA DE BASES DE DATOS SON: INDEPENDENCIA, INTEGRIDAD Y SEGURIDAD. SISTEMA DE GESTION DE BASES DE DATOS: HERRAMIENTA SOFTWARE QUE PERMITE LA CREACION Y MANIPULACION DE BASES DE DATOS DEFINIDAS DE ACUERDO A LAS REGLAS DEL MODELO SUBYACENTE AL SISTEMA. SGBD se basa ! MODELO DE DATOS se compone ! ESTRUCTURA DE DATOS Y OPERADORES ASOCIADOS. OBJETIVOS DE LAS TÉCNICAS DE BD DESCRIPCION UNIFICADA DE LOS DATOS E INDEPENDIENTE DE LAS APLICACIONES INDEPENDENCIA DE LAS APLICACIONES RESPECTO A LA REPRESENTACION FISICA DE LOS DATOS FUNCIONES DEL SGBD COMPONENTES DEL SGBD DEFINICION DE LA BASE DE DATOS A VARIOS NIVELES: ESQUEMAS − ESQUEMA LOGICO (DEFINICION DE LAS ESTRUCTURAS DE LA BASE DE DATOS) − ESQUEMA INTERNO (IMPLEMENTACIÓN DE LAS ESTRUCTURAS DEL LENGUAJE PARA LA ESQUEMA LÓGICO) DEFINICION DE ESQUEMAS − ESQUEMAS EXTERNOS Y LOS TRADUCTORES DEFINICION DE (DEFINICIÓN DE ASOCIADOS VISTAS PARCIALES ESTRUCTURAS DE LOS DATOS PARA DERIVADAS) DISTINTOS USUARIOS ESTABLECER LAS CORRESPONDENCIAS ENTRE LOS ESQUEMAS GESTIÓN DE LA MANIPULACION: LENGUAJES DE INFORMACION CONSULTA Y MANIPULACION Y ACTUALIZACION TRADUCTORES ASOCIADOS GESTION Y ADMINISTRACION DE HERRAMIENTAS PARA: LA BASE DE DATOS REESTAUARCION, SIMULACION 9 ESTADISTICAS,IMPRESIÓN. CONTROL DE: − LA INTEGRIDAD SEMÁNTICA INTEGRIDAD Y SEGURIDAD DE LOS DATOS − LOS ACCESOS CONCURRENTES HERRAMIENTAS PARA: − CONTROL DE LA INTEGRIDAD − RECONSTRUCCION FRENTE A FALLOS − LA RECONSTRUCCIÓN DE LA BASE DE DATOS − CONTROL DE LA EN CASO DE FALLO SEGURIDAD − LA SEGURIDAD INDEPENDENCIA DE DATOS: PROPIEDAD QUE ASEGURA QUE LOS PROGRAMAS DE APLICACIÓN ESCRITOS POR LOS USUARIOS SEAN INDEPENDIENTES DE LOS CAMBIOS REALIZADOS EN DATOS QUE NO USAN O EN LOS DETALLES DE REPRESENTACIÓN FÍSICA (IMPLEMENTACIÓN) DE LOS DATOS A LOS QUE ACCEDEN. LA BASE DE DATOS SE DEFINE EN TRES NIVELES DE ABSTRACCIÓN DISTINTOS: − ESQUEMA CONCEPTUAL: DESCRIPCION DEL SISTEMA DE INFORMACIÓN CON INDEPENDENCIA DEL SGBD CONCRETO QUE SE VAYA A UTILIZAR. − ESQUEMA LOGICO: DEFINICIÓN DE LA BASE DE DATOS EXPRESADA EN TÉRMINOS DEL MODELO DE DATOS EN QUE SE BASE EL SGBD QUE SE VAYA A UTILIZAR,SIN ENTRAR EN DETALLES DE SU REPRESENTACIÓN FÍSICA. − ESQUEMA INTERNO: DESCRIPCIÓN DEL ESQUEMA CONCEPTUAL EN TÉRMINOS DE SU REPRESENTACIÓN FÍSICA (ORGANIZACIÓN EN EL DISCO). − ESQUEMAS EXTERNOS: DISTINTAS VISTAS PARCIALES QUE DEL SISTEMA DE INFORMACIÓN TIENEN LOS DIFERENTES USUARIOS. ESTRUCTURAS DEFINIDAS A PARTIR DE LAS ESTRUCTURAS DEL ESQUEMA LOGICO. INTEGRIDAD: CALIDAD DE LA INFORMACION ALMACENADA. EL SGBD DEBE ASEGURAR QUE LOS DATOS SE ALMACENAN CORRECTAMENTE, DE ACUERDO A LAS EXTRUCTURAS DEFINIDAS, Y QUE CUMPLAN LAS RESTRICCIONES ESPECIFICADAS EN EL ESQUEMA DE LA BASE DE DATOS, Y ADEMAS DEBE ASEGURAR QUE LAS ACTUALIZACIONES DE LOS USUARIOS SOBRE LA BASE DE DATOS SE EJECUTAN CORRECTAMENTE Y QUE SE MANTIENEN PERMANENTEMENTE.(COMPROBAR LAS RESTRICCIONES DE INTEGRIDAD, CONTROLAR LA CORRECTA EJECUCION DE LAS ACTUALIZACIONES Y RECUPERAR LA BASE DE DATOS EN CASO DE PERDIDA). CONCEPTO DE TRANSACCIÓN: ES UNA SECUENCIA DE OPERACIONES DE ACCESO A LA BASE DE DATOS QUE CONSTITUYE UNA UNIDAD LÓGICA DE EJECUCION. SON RELEVANTES LAS OPERACIONES DE LECTURA O DE ACTUALIZACIÓN DE DATOS. EXISTEN TRES TIPOS DE OPERACIONES DE ACTUALIZACIÓN: INSERCION, BORRADO Y MODIFICACIÓN. OPERACIONES DE TRANSACCION DEL SGBD: SON EXCLUSIVAMENTE LECTURA Y ESCRITURA. 10 leer (x): 1. BUSCAR LA DIRECCION DEL BLOQUE DE DISCO QUE CONTIENE EL DATO x. 2. COPIAR EL BLOQUE EN UN buffer DE MEMORIA PRINCIPAL (SI NO ESTA YA EN ALGUN buffer del sistema). 3. COPIAR EL DATO x DEL buffer A LA VARIABLE x DEL PROGRAMA DE ACCESO. Escribir (x): 1. BUSCAR LA DIRECCION DEL BLOQUE DE DISCO QUE CONTIENE (O DEBE CONTENER) EL DATO x. 2. COPIAR EL BLOQUE EN UN buffer DE MEMORIA PRINCIPAL (SI NO ESTA YA EN ALGUN buffer del sistema). 3. COPIAR EL DATO x DE LA VARIABLE DEL PROGRAMA DE ACCESO A LA POSICIÓN ADECUADA DENTRO DEL buffer. 4. COPIAR EL BLOQUE ACTUALIZADO DEL buffer AL DISCO (INMEDIATAMENTE O EN ALGÚN INSTANTE DE TIEMPO POSTERIOR). ESTE PASO ES EL UNICO QUE ACTUALIZA LA BASE DE DATOS. EL SGBD DEBE PODER DETECTAR EL COMIENZO Y EL FINAL DE LA TRANSACCION ASÍ COMO LA CONFIRMACIÓN O ANULACION DE LA MISMA DESPUES DE HABER FINALIZADO. principio:COMIENZO DE LA EJECUCIÓN DE LA TRANSACCIÓN. fin:TODAS LAS OPERACIONES DE LA TRANSACCION SE HAN EJECUTADO. NO SIGNIFICA QUE SUS CAMBIOS VAYAN A SER GRABADOS DEFINITIVAMENTE SOBRE LA BASE DE DATOS. confirmación: INDICA QUE LA TRANSACCION HA FINALIZADO CON ÉXITO. SUS CAMBIOS SON GRABADOS. anulación: TRANSACCION NO FINALIZADA O NO HA CUMPLIDO ALGUNAS COMPROBACIONES POSTERIORES, POR TANTO EL SGBD DEBE ASEGURAR QUE NINGUNO DE SUS CAMBIOS ES GRABADO SOBRE LA BASE DE DATOS. LAS PROPIEDADES QUE DEBE POSEER UNA TRANSACCIÓN SON: − ATOMICIDAD: O SE EJECUTAN TODAS SUS OPERACIONES O NO SE EJECUTA NINGUNA. − CONSISTENCIA: LA TRANSACCIÓN DEBE CONDUCIR A LA BASE DE DATOS DE UN ESTADO CONSITENTE A OTRO ESTADO CONSISTENTE. UN ESTADO CONSISTENTE ES AQUEL EN EL QUE SE CUMPLEN TODAS LAS RESTRICCIONES ESPECIFICADAS EN EL ESQUEMA DE LA BASE DE DATOS. 11 − AISLAMIENTO: UNA TRANSACCION NO DEBE HACER VISIBLES SUS ACTUALIZACIONES A OTRAS TRANSACCIONES HASTA QUE ES CONFIRMADA. − PERSISTENCIA: CUANDO UNA TRANSACCION ES CONFIRMADA, SUS CAMBIOS DEBEN SER GRABADOS SOBRE LA BASE DE DATOS Y NO DEBEN PERDERSE DEBIDO A FALLOS DE OTRAS TRANSACCIONES O DEL SISTEMA. INTEGRIDAD SEMÁNTICA: RESTRICCION DE INTEGRIDAD ES UNA PROPIEDAD DEL MUNDO REAL DEL CUAL LA BASE DE DATOS ES UNA REPRESENTACION.ESTA REPRESENTACION DEBE SER CONSISTENTE CON LA REALIDAD, LA BASE DE DATOS DEBE SATISFACER LAS RESTRICCIONES EN CUALQUIER INSTANTE DE SU HISTORIA. − RESTRICCIONES ESTATICAS: EXPRESAN PROPIEDADES QUE DEBEN SATISFACERSE EN CADA ESTADO DE LA BASE DE DATOS. La edad de una persona debe de ser un valor entero positivo. − RESTRICCIONES DE TRANSICION: EXPRESAN PROPIEDADES QUE SE DEBEN CUMPLIR EN CADA PAR DE ESTADOS CONSECUTIVOS. La edad de una persona no debe decrecer. CONTROL DE ACCESOS CONCURRENTES: EVITANDO QUE LOS RESULTADOS DE LA EJECUCION DE UN PROGRAMA SEAN INCORRECTOS, INCOHERENTES O SE PIERDAN DEBIDO A LA EJECUCION SIMULTANEA DE OTRO PROGRAMA QUE ACCEDE A LOS MISMOS DATOS. ENTRE LAS TECNICAS PARA EVITARLO TENEMOS LA RESERVA DE OCURRENCIAS DE DATOS QUE LIMITA LA SIMULTANEIDAD DE LOS ACCESOS CONCURRENTES. RECONSTRUCCION DE LA BASE DE DATOS: LAS PROPIEDADES DE ATOMICIDAD Y PERSISTENCIA DE UNA TRANSACCION OBLIGAN AL SGBD A ASEGURAR QUE LOS CAMBIOS PRODUCIDOS POR CUALQUIER TRANSACCION SOBRE LA BASE DE DATOS SE GRABEN O SE DESECHEN SI YA HAN SIDO GRABADOS. LA CAUSA POR LA QUE UNA TRANSACCION CONFIRMADA NO ES GRABADA ES DEBIDO AL DESAJUSTE TEMPORAL ENTRE LA CONFIRMACION I LA GRABACION AL DISCO, Y LA RAZON DE QUE SE PIERDAN SI YA HAN SIDO GRABADOS ES LA OCURRENCIA DE FALLOS QUE PROVOQUEN LA PERDIDA DE DATOS EN MEMORIA SECUNDARIA. 12