Bloque3-Tema4-SQL Flashcards
ISO del estandar SQL?
ISO 9075
En que version de SQL aparecio la compatibilidad con JSON?
2016
Que es SQL/PSM?
Es un estándar ISO que define principalmente una extensión de SQL con un lenguaje de procedimiento para su uso en procedimientos almacenados.
Es un lenguaje de programacion que se ejecuta dentro de la base de datos.
Como se conoce al lenguaje 4GL declarativo + la extension procedural?
SQL/PSM
Productos SQL?
-Oracle
-Microsoft SQL Server
-MySQL / MariaDB
-Informix
-IBM DB2
-PostgreSQL
-MaxDB
-SQLite* (RDBMS no Cliente/servidor) (Usado en Android)
De que se encarga el principio ACID?
ACID es el conjunto de propiedades que garantizan que las transacciones de una Base de Datos se procesan de manera fiable
Atomicidad, Consistencia, Aislamiento, Durabilidad.
Que es un RDBMS?
Un sistema de administración de bases de datos relacionales (RDBMS) es un programa que se usa para crear, actualizar y administrar bases de datos relacionales
Que sublenguajes SQL conoces?
-DDL (Data Definicion Lenguage)
-DML (Data Manipulacion Lenguage)
-DCL (Data Control Lenguage)
De que se encarga DDL?
Creacion/Borrado/eliminacion de objetos (Tablas,…)
De que se encarga DML?
Consulta, borrado, modificacion, insercion de datos.
De que se encarga DCL?
Control sobre permisos, transacciones.
Que es una transaccion?
Conjunto de sentencias SQL que se hacen todas o ninguna.
Que sentencias SQL pertenecen DDL? (Afecta a estructuras/objetos)
-CREATE
-DROP
-ALTER (Modificar, por ejemplo añadir nueva columna a una tabla)
-Truncate* (No se puede usar en transaccion)
Que sentencia SQL pertenecen a DML (Afecta a datos)
-SELECT (joins, agrupaciones, subconsultas)
-UPDATE (Cambia datos)
-INSERT (Inserta datos, una nueva fila)
-DELETE (Borra datos de una tabla, pero no la tabla)
-MERGE
-*Truncate
Que sentencias SQL pertenecen a DCL?
-GRANT (Dar permisos)
-REVOKE (Quitar permisos)
-COMMIT / ROLLBACK (Confirmar o deshacer cambios en una tx)
-SAVEPOINT (PAra no deshacer todo) /RELEASE SAVEPOINT (Para quitarlo)
-SET TRANSACTION / START TRANSACTION (Configuración e inicio de TX)
-CALL procedure (Para llamar a un procedimiento almacenado)
Que sentencia pertenecen a TCL (lenguaje de Control Transaccional)
-COMMIT
-SAVEPOINT
-RELEASE SAVEPOINT
-SET TRANSACTION
-START TRANSACTION
Que tipos de DROP se pueden hacer?
TABLE/INDEX/VIEW/PROCEDURE/SEQUENCE/FUNCTION/TYPE/TRIGGER/DOMAIN/SCHEMA/ROLE
Para que sirven los Index de SQL?
Para agilizar busquedas.
Cual es la manera de agregar un select en SQL?
Con una vista (View)
Que 4 Constraints existen en SQL?
-CHECK (Condicion)
-PRIMARY KEY
-UNIQUE
-FOREIGN KEY
-UNIQUE admite un NULL?
Si, pero solo 1. No admite duplicados.
Que hace Truncate?
Vacia una tabla entera. En realidad la borra entera y la crea de nuevo. Solo lo hace en algunos gestores. En la definicion de TAI NO MODIFICA LA ESTRUCTURA,
Que es Type en SQL?
Tipo de datos
Que es Domain en SQL?
Dominio de valores
Qu es Schema en SQL?
Manera de agrupar tablas.
Que es Role en SQL¿
Objeto para dar altas y permisos a un grupo de usuario.
Ejemplo de CREATE TABLE en SQL.
para que sirve Contraint?
se usa en las instrucciones ALTER TABLE y CREATE TABLE para crear o eliminar restricciones
Ejemplo de ALTER TABLE en SQL.
Ejemplo de GRANT en SQL.
Ejemplo de REVOKE en SQL.
Revoke “privilegio” on “Object name” from “grantee”
Cuando son las transacciones locales y cuando distribuidas?
Locales cuando utilizas un solo gestor de base de datos.
Distribuidas cuando usas varios, para esto necesitas el monitor transaccional.
Que es two phase commit?
Es un protocolo de consenso distribuido que permite a todos los nodos de un sistema distribuido ponerse de acuerdo para consolidar a una transacción
Que es la lectura sucia?
Ocurre cuando se le permite a una transsacion la lectura de una fila que ha sido modificada por otra transacciones concurrente pero todavia no ha hecho commit.
Que es Lectura no repetible?
se produce cuando una transacción lee la misma fila dos veces, pero obtiene datos diferentes cada vez. Porque otra transaccion se ha colado en medio y ha hecho COMMIT.
Que es lectura fantasma?
Ocurre cuando, en el curso de una transacción, el número de filas devuelto en dos lecturas consecutivas, es distinto. Ocurre porque no se realizan bloqueos de rango(por ejemplo edad entre 10 y 30) al realizar una select.
En el nivel de aislamiento read uncommited(Pueden leer lo que aun no ha hecho commit), que problemas de lectura se pueden dar?
Lectura sucia, Lectura no repetible y lectura fantasma.
En el nivel de aislamiento read commited(Solo pueden leer si se ha hecho commit), que problemas de lectura se pueden dar.
Lectura no repetible y lectura fantasma.
En el nivel de aislamiento repeteable read (Se bloquean las tablas/registros/etc) que problemas de lectura se pueden dar?
Lectura fantasma.
En el nivel de aislamiento serializable (En fila) Que problemas de lectura se pueden dar?
Ninguno.
Tabla aislamientos y bloqueos.
Ejemplos INSERT INTO en SQL.
Ejemplo UPDATE en SQL.
Ejemplo DELETE en SQL.
DELETE FROM “tabla” WHERE “Condiciones”
Ejemplo SELECT en SQL.
Ejemplo de subconsulta.
Que es el EXPLAIN PLAN o Execution plan
Plan de ejecucion que va a seguir el gestor de BBDD al ejecutar un select, update, insert o delete.
Que tipos de Joins conoces?
-CROSS JOIN (Todas por todas)
-INNER JOIN (Todas las filas coincidentes segun la condicion)
-LEFT [OUTER] JOIN (El resultado son todas las filas de la tabla “de la izquierda” y sino hay filas coincidentes se rellenan a null)
-RIGHT [OUTER] JOIN (El resultado son todas las filas de la tabla “de la derecha” y sino hay filas coincidentes se rellenan a null)
-FULL [OUTER] JOIN (Como left y Right juntos, mandan ambas tablas)
Ejemplillo: Si una consulta left join en la que la tabla de la izquierda tiene 150 filas, el resultado de la consulta van a ser 150 filas.
Ejemplo de union SQL.
En una mezcla SQL, que pasa si un registro existe en las dos tablas?
Se actualiza en TARGET
En una mezcla SQl, que pasa si un registro unicamente existe en SOURCE.
Se inserta en TARGET.
Ejemplo de MERGE INTO en SQL.
Que hace TRUNCATE TABLE?
Borra todas las filas de una tabla, pero la estructura de la tabla y sus columnas, constrains and indexes persisten. Y hace un commit automaticamente, por lo que no puedes hacer rollback.
En Mysql por ejemplo borra y crea la tabla, por lo que necesita permiso de DROP
Que es un disparador / Trigger en SQL?
Representa logica de base de datos que se ejecuta cuando se detectan eventos (Filas borradas /añadidas/…) sobre determinados objetos.
Que pseudotablas usan los disparadores / triggers?
restricciones de los disparadores / triggers?
-No aceptan parametros
-No pueden usar START TRANSACTION / COMMIT /ROLLBACK
Tipos de disparadores / triggers?
-De fila
-De sentencia.
Sintaxis de los disparadores / triggers
Ejemplo de un Trigger en SQL.
Que son los procedures?
Logica de negocio que se ejecuta (CALL) en el ambito del SGBBDD
Acepta parametros (entrada, salida, entrada/salida) pero a diferencia de las funciones, estos no retornan valor.
Ejemplo de procedure en SQL.
Para que sirve un cursor?
para poder recorrer dinamicamente los resultados de una select.
Sintaxis de un cursor?
FETCH cursor_name INTO variable_list;
Nota: Todas las bases de datos de SQL Server tienen un registro de transacciones que registra todas las transacciones y las modificaciones que cada transacción realiza en la base de datos
Que devuelve un FULL OUTER JOIN?
Las filas que hacen match, las filas que no de la tabla de la izquierda, y las filas que no de la tabla de la derecha. Mirar la imagen si tienes dudas.
Ejemplo de SQL INNER JOIN
SELECT “level_list” FROM TableA A INNER JOIN Table B B ON A.key = B.key
Implementaciones de SQL/PSM
Open source:
-HSQLDB
-MySQL/MARIADB
-OpenLink Virtuooso
-PogreSQL PL/pgSQL
Propietarios:
-Oracle PL/SQL
Sybase Transact-SQL
Invantive Procedural SQL.
Que es CRUD?
En informática, CRUD es el acrónimo de “Crear, Leer, Actualizar y Borrar”, que se usa para referirse a las funciones básicas en bases de datos o la capa de persistencia en un software.