Base de datos relacional

Anuncio
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
Descargar