Repaso_Mod_E/R_Mod_Relacional_Normalización_SQL Flashcards
En qué consiste el estándar SQL/PSM?
Añade funcionalidades procedurales (alias=procedimientos almacenados)
NOTA: En Oracle tienen PL/SQL y en SQL Server T-SQL (transact-sql
NOTA: Procedimiento almacenado = Pequeña rutina (SQL + sentencias clasicas de programacion, es decir, bucles, if,…)
SQL/Persistent Stored Modules
Funcionamiento de una INNER JOIN
a) Interseccion de dos tablas (los registros resultantes tendran una coincidencia de valores en funcion de una condicion)
Ej. select … from tabla1 [inner] join tabla2 on tabla1.campo1 = tabla2.campo2
Tipo de producto SQLite
Un libreria que soporta operaciones de SQL/ACID a nivel “local”
NOTA: Es la tecnologia que usa Android para el almacenamiento
¿En qué consiste una transacción?
Conjunto de sentencias SQL que se tienen que ejecutar de forma atomica (o todo o nada)
NOTA: Sentencias de control relacionadas con transacciones (TCL) serian
* Commit
* Rollback
* Savepoint (Release savepoint para quitarlo)
* Set transaction (para configurar entre otras cosas el nivel de aislamiento)
* Start transaction (para determinar el inicio de la transaccion)
Siglas ACID
A = Atomicidad
C = Consistencia
I = Isolation (aislamiento)
D = Durabilidad
Sentencias del DML
(leng manipulación de datos)
- SELECT … FROM …. WHERE … GROUP BY … HAVING … ORDER BY
- UPDATE nombre_tabla SET …
- INSERT INTO nombre_tabla (…) VALUES (…)
- DELETE FROM nombre_tabla WHERE …
() TRUNCATE TABLE … () MERGE INTO … tambien pero no son las tipicas
¿Para qué sirve una restricción UNIQUE?
Se define sobre una columna para que NO admita valores DUPLICADOS (si admite el valor NULL!!)
NOTA: Por eso una clave candidata deberia de tener UNIQUE + NOT NULL
NOTA: La diferencia con DISTINCT es que UNIQUE aparece para una Columna en el DDL
y DISTINCT en la SELECT (matiz: DISTINCT elimina filas de resultado duplicadas)
Sintaxis de REVOKE
REVOKE permiso ON objeto FROM usuario/grupo/role
Uso de un TRIGGER
Es una rutina de negocio que se EJECUTA cuando se DETECTA un cierto “evento”
NOTA: Este evento puede ser INSERT,UPDATE o DELETE
NOTA: Podemos EJECUTAR la rutina (cuerpo del TRIGGER) antes o despues del “evento”
NOTA: Podemos EJECUTAR la rutina por cada fila afectada o a nivel de toda la sentencia que ha provocado el disparo
OJO: Entender bien el INSTEAD OF (solo tiene efecto el cuerpo del TRIGGER)
Cuando se puede usar la cláusula HAVING
Cuando hagamos grupos con GROUP BY (filtros de grupos)
Uso de la función AVG
Es una funcion de agregado para el calculo de la media aritmetica
NOTA: Se puede usar sin grupos (ej. select AVG(precio) from Producto)
concepto de GRADO de una relacion del MOD RELACIONAL
Nº de ATRIBUTOS de una relación
NOTA: una forma de referirte al conjunto de los atributos es la intensión
Concepto de CARDINALIDAD en una relacion del MOD RELACIONAL
Nº de TUPLAS de una relacion
NOTA: una forma de referirte al conjuto de tuplas es extension
Como se transforma una relacion 1:N en el MOD RELACIONAL
1.- No se crea una relacion nueva
2.- Tenemos que “pasar” la PK del lado del 1 a un atributo nuevo (FK) en lado del N (alias=propagación de clave)
Concepto de SUPERCLAVE
DEF: conjunto de atributos que identifican univocamente a cada tupla
Persona(dni,nss,nombre,direccion) –> clave primaria=dni
{dni} seria una superclave ??? –> SI
{dni,nombre} seria una superclave??? –> SI
{nss} seria una superclave ??? –> SI
{nss,direccion} seria una superclave ??? –> SI
{dni,nombre,nss,direccion} seria una superclave ??? –> SI
{nombre} –> seria una superclave ??? –> NO
…
NOTA: Aquellas superclaves que NO SEAN REDUCIBLES….las llamaremos CLAVES CANDIDATAS
En nuestro ejemplo
{dni} –> pk
{nss}
NOTA: Claves candidatas = Clave PRIMARIA + Claves alternativas
En nuestro ejemplo
{dni} –> pk
{nss} –> clave alternativa