Logo Studenta

Resumen 2do parcial base de datos

¡Este material tiene más páginas!

Vista previa del material en texto

2do parcial Gestion de datos
Modelado de datos: (concepto) Modelar consiste en definir un mundo abstracto y teórico, tal que las conclusiones que
se puedan extraer de él, coincidan con las manifestaciones aparentes del mundo real
Abstracción de la información: Capacidad de esconder los detalles y concentrarse sobre las propiedades generales,
comunes de un conjunto de objetos. En el modelado de datos, se usa la abstracción para obtener categorías de datos.
Adicionalmente, se puede usar la abstracción para combinar categorías en otras categorías más generales
La teoría del modelo relacional fue desarrollada por Edgar Frank Codd a partir de una serie de papers y libros los cuales
se detallan a continuación:
• “A relational model for large shared data banks” – ACM - 1970
• “Further normalization of the data base relational model” – RUSTIN - 1972
• “Extending the database relational model to capture more meaning” – ACM - 1979
• “The 1981 ACM turing award lecture: a relational database: a practical foundation for
productivity” – ACM – 1982
Libros:
• “The relational model for database management. Version 2” – Addison Weasley – 1990
Paper “A relational model for large shared data banks” (E.F.Codd)
Conceptos Desarrollados
1. Modelo Relacional y Formas Normales
1.1. INTRODUCCION
1.2. DEPENDENCIAS DE LOS DATOS EN LOS
SISTEMAS ACTUALES
1.3. VISTA RELACIONAL DEL LOS DATOS
1.4. FORMAS NORMALES
2. Redundancia and Consistencia
2.1. OPERATIONES CON RELATIONES
2.2. REDUNDANCIA
2.3. CONSISTENCIA
2.4. SUMARIO
Modelo Relacional:
Según una definición de Ullman, “una relación puede definirse como un subconjunto del producto cartesiano de un
conjunto de dominios. Si llamamos atributo a cada uso particular de un dominio para una relación específica, resulta
que un atributo Ai está restringido a tomar valores sobre un dominio Vi”.
Entonces:
R ⊆ V1 x V2 x ... x Vm donde el producto cartesiano V1 x V2 x ... x Vm contiene todas las tuplas de la forma:
(v1 x v2 x ... x vm) , vi ∈ Vi , 1 ≤ i ≤m y diremos que la relación R tiene grado m.
Si el número de tuplas involucradas en la relación es n, entonces R tiene cardinalidad n.
Observaciones: (GRADO (número de Atributos) o a la CARDINALIDAD (número de Tuplas))
A manera de definición más informal, Elmasrhi y Navathe, manifiestan que “el modelo relacional representa la base de
datos como una colección de relaciones, en donde cada relación semeja una tabla o hasta cierto punto un archivo…
en donde cada fila de la tabla representa un colección de datos relacionados entre sí, los cuales pueden ser
interpretados como hechos que describen una entidad o un vínculo entre entidades del mundo real”.
Así entonces se puede decir que una Relación: “es una Tabla bidimensional en donde cada renglón o tupla, tiene datos
que pertenecen a alguna cosa o a una parte de esta, y donde cada columna o atributo de esta tabla describe la tupla”.
Para que una tabla sea una relación debe cumplir con ciertas restricciones:
● Las celdas deben ser de un valor único. No se puede tener ni repetir grupos ni tener series en calidad de
valores.
• Todas las entradas en una misma columna deben ser del mismo tipo.
• Cada columna tiene un nombre único y el orden en las columnas en la tabla no es importante.
• Dos renglones en la tabla no pueden ser idénticos y el orden de los renglones no tiene importancia
Grado de una relación
Definición: “El grado de una Relación R es el número de atributos que la misma contiene”.
Llave en MR: Una llave es un grupo de uno o más atributos que identifican unívocamente a una tupla
Recordemos que las llaves pueden estar compuestas por uno o más atributos los cuales operen en conjunto
Las bases de datos relacionales se basan en el modelo relacional y usan un conjunto de tablas para representar los
datos y las relaciones.
Bases de Datos Relacionales – Objetivos y consideraciones preliminares
• El objetivo del diseño de las bases de datos relacionales es la generación de un conjunto de esquemas relacionales que
nos permita almacenar la información sin redundancias innecesarias, pero que también nos permita recuperar
fácilmente esa misma información.
• Un enfoque es el diseño de esquemas que se hallen en una forma normal adecuada
Especificaciones
El modelo relacional de bases de datos se rige por algunas normas sencillas:
• Todos los datos se representan en forma de tablas (también llamadas “relaciones”, ver nota anterior). Incluso los
resultados de consultar otras tablas. La tabla es además la unidad de almacenamiento principal.
• Las tablas están compuestas por filas (o registros) y columnas (o campos) que almacenan cada uno de los registros (la
información sobre una entidad concreta, considerados una unidad).
• Las filas y las columnas, en principio, carecen de orden a la hora de ser almacenadas.
Aunque en la implementación del diseño físico de cada SGBD esto no suele ser así. Por ejemplo, en SQL Server si
añadimos una clave de tipo "Clustered" a una tabla haremos que los datos se ordenen físicamente por el campo
correspondiente.
• El orden de las columnas lo determina cada consulta (que se realizan usando SQL).
• Cada tabla debe poseer una clave primaria, esto es, un identificador único de cada registro compuesto por una o más
columnas.
• Para establecer una relación entre dos tablas es necesario incluir, en forma de columna, en una de ellas la clave
primaria de la otra. A esta columna se le llama clave externa. Ambos conceptos de clave son extremadamente
importantes en el diseño de bases de datos.
Algebra Relacional. Definición: “El álgebra relacional es un conjunto de operaciones que describen paso a paso como
calcular una respuesta sobre las relaciones componiendo un lenguaje formal basado en operadores y que utiliza para
ello relaciones”.
Tanto los operandos como los resultados son relaciones, por lo que la salida de una operación puede ser la entrada de
otra operación. Esto permite anidar expresiones del álgebra, del mismo modo que se pueden anidar las expresiones
aritméticas.
Especificaciones El álgebra relacional es un algebra en la cual:
• Sus operandos son relaciones (instancias) o variables que representan relaciones.
• Sus operadores están diseñados para hacer las tareas más comunes que se necesitan para manipular relaciones en una
base de datos.
El resultado es que el álgebra relacional se puede utilizar como un lenguaje de consulta.
En la práctica el álgebra relacional debe ser extendida para abarcar la mayor parte de las tareas reales que se hacen con
los datos.
Operadores del Algebra Relacional
EL álgebra relacional es similar al algebra que hasta hoy han aprendido, solo que en esta los valores utilizados
representan datos, y no solo números.
Es un algebra cerrada, ya que el resultado de una o más operaciones relacionales es siempre una relación.
Las tuplas de una relación se pueden considerar elementos de un conjunto y por lo tanto, las operaciones que se pueden
realizar en conjuntos también se pueden realizar en relaciones.
Tipificación
El Algebra Relacional está compuesta por dos tipos de operaciones, cuya característica distintiva es el número de
relaciones que necesita. Así vemos que se tipifican en:
1. UNARIAS
2. BINARIAS
Comenzaremos estudiando las Operaciones Unarias, las cuales son aquellas que necesitan de solo una relación para
realizar la operación. En cuanto a las Binarias veremos que existen restricciones referidas al GRADO (Atributos) o a la
CARDINALIDAD (Tuplas).
Características: Así entonces se puede decir que una Relación: “es una Tabla bidimensional en donde cada renglón o
tupla, tiene datos que pertenecen a alguna cosa o a una parte de esta, y donde cada columna o atributo de esta tabla
describen a la ocurrencia”.
Algebra Relacional - Operadores UNARIOS
Operador SELECCIÓN Definición: “El operador Selección simbolizado mediante σ, extrae tuplas a partir de una relación
que satisfagan una restricción dada”.
Cuando este operador es implementado en SQL. Se encuentra asociado alas palabras reservadas FROM y WHERE, las
cuales brindan la condición que se debe cumplir.
Operador PROYECCION Definición: “El operador Proyección simbolizado mediante π, extrae atributos (columnas)
específicos de una relación”.
El resultado será una nueva relación con las columnas (atributos) seleccionados, escogiendo los atributos las columnas
de la relación que cumplan con la condición establecida como parámetro.
Operador UNION Definición:
“La UNION de dos relaciones está formada por la adición de tuplas de una relación con los de una segunda relación que
produce una tercera”.
El orden en el que aparecen las tuplas en la tercera relación no es importante, pero se deben eliminar los que estén
duplicados.
Representación: La UNION se denota por A + B
Para que esta relación tenga sentido, las relaciones deben ser compatibles en la UNION, esto es:
1. Cada relación debe tener el mismo número de atributos.
2. Los atributos en las columnas correspondientes deben provenir del mismo dominio (GRADO).
Operador DIFERENCIA Definición: “La diferencia de dos relaciones, simbolizada como -, es una tercera relación que
contiene tuplas que están presentes en la primera relación, pero no en la segunda”.
Restricciones: Las relaciones deben ser compatibles en la UNION.
Operador INTERSECCION Definición: “La INTERSECCION de dos relaciones, simbolizada mediante ∩ , es una tercera
relación que contiene las tuplas que aparecen tanto en la primera como en la segunda relación”.
Las relaciones deben ser compatibles en la UNION.
Operador PRODUCTO Definición: “El producto de dos relaciones, también conocido como el producto cartesiano, es la
concatenación de cada tupla de una relación con cada tupla de la segunda relación”.
El producto de la relación A (con m tuplas) y la relación B (con n tuplas), dará como resultado una tabla de m veces n
tuplas. Así es que A x B es igual a A veces B.
Grado(A) + Grado (B) y Cardinalidad(A)* Cardinalidad(B)
Operador JOIN⋈
El operador de Enlace o JOIN es el operador más usado para combinar tablas. La combinación de tablas es importante
debido a que la mayoría de las bases de datos tienen la información distribuida en muchas tablas.
El operador Enlace o JOIN difiere del operador Producto porque requiere de una condición de coincidencia sobre las
tuplas de dos tablas. La mayoría de las tablas se combinan de esa forma.
El operador Enlace o JOIN construye una nueva tabla al combinar las tuplas de dos tablas que coinciden con una
condición de enlace. Comúnmente la condición de enlace especifica que dos tuplas tengan un valor idéntico en una o
más columnas.
El operador JOIN es una combinación del PRODUCTO, SELECCIÓN y PROYECCION (Posible).
La Asociación de dos relaciones A y B, opera de la siguiente manera:
1. Debo realizar el PRODUCTO de A x B. Normalización de la relación resultante.
2. SELECCIÓN en función del criterio. Normalización de la relación resultante.
3. Elimina atributos de acuerdo a criterios específicos, mediante la operación de PROYECCION (Posible).
Normalización
La teoría del modelo relacional y el proceso de normalización de las Bases de Datos, fue desarrollado por Edgar Frank
Codd en sus papers:
• “A relational model for large shared data banks” – ACM – 1970.
• “Further normalization of the data base relational model” – RUSTIN – 1972.
En estos papers investiga, identifica las causas y define las primeras tres “formas normales”.
Comentario: Una relación es una forma normal específica si satisface el conjunto de requisitos o restricciones para dicha
forma.
Con el fin de corregir algunas redundancias y anomalías, EF Codd (1972) propuso tres formas normales, 1FN, 2FN y 3FN,
logrado pérdida menores a causa del proceso de descomposición, (preservación de la dependencia) de la relación
inicial universal en relaciones más pequeñas, sobre la base de las dependencias funcionales (FDS). Poco después,
Heath y Boyce y Codd (1974) identificaron algunas insuficiencias de la definición de 3FN, por lo que redefinieron la 3FN
y se le cambió el nombre Forma Normal de BoyceCodd - FNBC. Ronald Fagin (1977) fue el primero en describir la
cuarta forma normal, 4NF, basado en las dependencias multivaluadas - MVDS (Zaniolo, Fagin, Delobel), así como la
quinta forma normal, 5NF (Fagin, 1979) o forma normal de proyección-enlace (PJ / NF), la cual se basa en unir
dependencias (JDS).
Normalización - Objetivos
• Desarrollar una “buena” descripción de los datos, sus relaciones y sus restricciones.
• Identificar un conjunto “adecuado” de relaciones.
• Mejorar el Diseño Lógico.
Normalización - Propósitos
• Producir un conjunto estable de relaciones que sea un modelo fiel de las operaciones de la empresa. ABSTRACCION
• Lograr un diseño flexible que permita extender el modelo cuando se necesite representar nuevos atributos, conjuntos
de entidades y relaciones. ESCALABILIDAD
• Diseñar la base de datos fortaleciendo ciertos tipos de restricciones de integridad. COMPLETITUD
• Reducir la redundancia en las bases de datos, para ahorrar espacio y en pos de evitar inconsistencias en los datos.
ANOMALIA
Anomalías Definición: “Una anomalía es un estado inconsistente, incompleto o contradictorio de la base de
datos“(Ricardo).
Una tabla que cumple con una mínima definición de relación puede no tener una estructura eficaz u apropiada.
Si hubiera anomalías presentes en la relación, esta sería incapaz de representar cierta información, pudiendo perder
información a partir de procesar actualizaciones, corriendo el riesgo de que los datos se vuelvan inconsistentes.
Tipificación de las Anomalías
1. Anomalías de Inserción: ocurre cuando no se puede ingresar una ocurrencia hasta que se tenga un hecho adicional
acerca de otra entidad.
2. Anomalías de Modificación: ocurre cuando se modifica un valor, y no se verifican los valores ingresados, los que
finalmente son consolidados en la base de datos. Una Solución a este problema posible es dividir la relación en dos
relaciones.
3. Anomalías de Eliminación: ocurre cuando se elimina una tupla o un valor especifico, y este hecho afecta a otras
entidades.
Formas Normales
Las relaciones se pueden clasificar por tipo de anomalías de modificación a las cuales son vulnerables.
En la Década de 1970 los teóricos relacionales investigaron acerca de estos tipos.
Cuando alguno encontraba una anomalía, la clasificaba y pensaba en una manera de prevenirla, las cuales con el tiempo
y luego de estudiar numerosas ocurrencias, recibieron el nombre de Formas Normales.
Tanto para el Análisis Conceptual como para el desarrollo del Modelo Lógico, es necesario considerar ciertas
especificaciones que faciliten el trabajo con las Tablas.
En este sentido, Sommerville (1988) dijo "un buen diseño, es la clave de una eficiente ingeniería del software. Un
software bien diseñado es fácil de aplicar y mantener, además de ser comprensible y fiable. Sistemas mal diseñados,
aunque puedan funcionar, serán costosos de mantener”.
Codd mediante la publicación de trabajos como “A relational model for a large shared data banks”, y “Further
normalization of the data base relational model”, definió las 1FN, 2FN y 3FN (Primera, Segunda y Tercera Forma
Normal). Más tarde, otros autores continuaron investigando los patrones de anomalías que ocurrían en las Bases de
Datos y especificaron las siguientes formas normales:
1ra Formal Normal Restricciones
Para que una tabla sea una relación debe cumplir con ciertas restricciones:
1. Las celdas deben ser de un valor único. No se puede tener ni repetir grupos ni tener series en calidad de valores.
2. Todas las entradas en una misma columna deben ser del mismo tipo.
3. Cada columna tiene un nombre único y el orden en las columnas en la tabla no es importante.
4. Dos renglones en la tabla no pueden ser idénticos y el orden de los renglones no tiene importancia.
Formas Normales – Dependencias Funcionales Definición: “Si R es un esquema de relación, y A y B son conjuntos de
atributos no vacíos en R, se dice que B es funcionalmentedependiente en A si y sólo si cada valor de A en R tiene
asociado exactamente un valor de B en R”
Esto se escribe como A→ B que se lee como “A determina funcionalmente a B”.
Una dependencia funcional es en realidad una relación muchos a uno del conjunto de atributos A al conjunto de
atributos B
Definición 1FN: “Una relación está en la primera forma normal (1FN) si y sólo si cada atributo tiene valor sencillo para
cada tupla”.
Esto significa que cada atributo en cada fila, o cada “celda” de la tabla, contienen sólo un valor. Una forma alternativa de
describir la primera forma normal es decir que los dominios de los atributos de la relación son atómicos.
Esto significa que en el dominio no se permiten conjuntos, listas, campos repetidos o grupos.
2da Forma Normal. Dependencia Funcional. Definición: “En una relación R, el atributo A de R es completamente
dependiente funcional sobre un atributo o conjunto de atributos X de R si A es funcionalmente dependiente sobre X
pero no funcionalmente dependiente sobre cualquier subconjunto propio de X".
Definición 2FN: “Una relación está en segunda forma normal (2FN) si y sólo si está en primera forma normal y todos los
atributos no clave son completamente dependen completamente de la clave”.
Claro está, si una relación es 1FN y la clave consiste en un solo atributo, la relación es automáticamente 2FN. Tiene que
preocuparse por 2FN sólo cuando la clave sea compuesta.
Una relación 1FN que no es 2FN se puede transformar en un conjunto equivalente de relaciones 2FN.
La transformación se efectúa al realizar proyecciones sobre la relación original en tal forma que es posible regresar al
original al tomar la combinación de las proyecciones.
Dependencia funcional completa y Segunda Forma Normal (SFN o 2FN)
Es importante notar que, cuando se usa esta notación menos formal, los atributos a la derecha de la flecha se pueden
“descomponer” y citar como DF separadas, pero los atributos en el lado izquierdo deben permanecer unidos, pues es
su combinación la que es determinante.
3ra Forma Normal. Definición Dependencia Transitiva: “Si A, B y C son atributos de la relación R, tales que A→ B y B→
C, entonces C es transitivamente dependiente de A”.
Para la Tercera Forma Normal se quiere eliminar ciertas dependencias transitivas. Las dependencias transitivas causan
anomalías de inserción, borrado y actualización.
Debido a estos problemas, es deseable remover las dependencias transitivas y crear un conjunto de relaciones que
satisfagan la siguiente definición.
Definición 3FN: “Una relación está en tercera forma normal (3FN) si, siempre que exista una dependencia funcional no
trivial X→ A, entonces o X es una superclave o A es un miembro de alguna clave candidata”.
Las características de la tercera forma normal implican que cada atributo no clave debe depender de la clave, toda la
clave y nada más que la clave.
Al comprobar la tercera forma normal, se busca si algún atributo no clave candidata (o grupo de atributos) es
funcionalmente dependiente de otro atributo no clave (o grupo).
Si existe tal dependencia funcional, se remueve de la relación el atributo funcionalmente dependiente, y se le coloca en
una nueva relación con su determinante. El determinante puede permanecer en la relación original.
Introducción SQL como lenguaje de consulta
IBM desarrollo la versión original de SQL (Structured Query Language o Lenguaje de Consulta Estructurado), a la cual se
conocía como Sequel, la cual era una parte del Proyecto del Sistema R.
Desde entonces el SQL evoluciono, hasta nuestros días en que lo encontramos como lenguaje estándar de consulta a
bases de datos. Existieron varias versiones que fueron estandarizadas por ANSI (86, 89, 92, 99 y 2003), lo cual permitió
unificar criterios en cuanto al lenguaje de consulta a bases de datos, y facilito su utilización por parte de las empresas
que desarrollan productos de estas características.
SQL como lenguaje de consulta. El Lenguaje SQL consta de varios componentes:
Lenguaje de Definición de Datos (DDL): Proporciona comandos para la definición de esquemas de relación, borrado de
relaciones y modificaciones a los esquemas de relación.
Lenguaje Interactivo de Manipulación de datos (DML): Incluye un lenguaje de consultas basado tanto en el álgebra
relacional, como en el cálculo relacional de tuplas. También contiene comandos para insertar, borrar y modificar
tuplas.
Integridad: EL DDL incluye comandos para especificar las restricciones de integridad que deben cumplir los datos
almacenados en la base de datos. Las actualizaciones que violan las restricciones de integridad se rechazan.
Control de Transacciones: Incluye comandos para especificar el comienzo y el final de las transacciones.
Autorización: Incluye comandos para especificar los derechos de acceso a las relaciones y a las vistas.
El lenguaje de Definición de Datos (DDL)
Permite:
- Especifica un conjunto de relaciones.
- Proporcionar información relativa a un conjunto de relaciones.
Permite Conocer:
- El esquema de cada relación.
- El dominio de valores asociados a cada atributo.
- Las restricciones de integridad.
- El conjunto de índices que se deben mantener para cada relación.
- La información de seguridad y de autorización de cada relación.
- A estructura de almacenamiento físico de cada relación en el disco.
Tipos Básicos de Dominios
La norma SQL soporta gran variedad de tipos de dominios predefinidos, entre ellos:
Char(n): cadena de caracteres de longitud fija, con una longitud n especificada por el usuario.
Varchar (n): cadena de caracteres de longitud variable con una longitud máxima de n especificada por el usuario.
Int: Entero
Smallint: Entero pequeño
Numeric (p,d): Numero de coma flotante, cuya precisión la especifica el usuario. El numero esta formado por p dígitos
(mas el signo) y de esos p dígitos, d pertenecen a la parte decimal.
Real, double precision: Números de coma flotante y números de coma flotante de doble precisión.
Float(n): numero de coma flotante
Comandos
El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones de agregado.
Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos.
Clausulas
Las cláusulas son condiciones de modificación utilizadas para definir los datos que desea seleccionar o manipular.
Operadores Lógicos
Operadores de Comparación
Consulta de datos.
El proceso más importante que podemos llevar a cabo en una base de datos es la consulta de los datos. Es además la
operación que efectuaremos con mayor frecuencia.
Los comandos más importantes en DDL son:
- CREATE TABLE
- CREATE INDEX
- ALTER TABLE
- ALTER INDEX
- DROP TABLE
- DROP INDEX
SQL – DDL
CREATE TABLE
La forma de dicho comando es: CREATE TABLE nombre_tabla (nombre_columna tipo_columna, [restricciones –
NULL/NOT NULL, DEFAULT, UNIQUE, CHECKJ],……, [restricciones tabla – PRIMARY KEY, FOREIGN KEY, UNIQUE,
CHECK….])
CREATE INDEX
Si queremos crear un índice con respecto al LAST_NAME quedaría la sintaxis de la siguiente manera:
CREATE INDEX idxlastname ON Customer (Last_Name);
ALTER TABLE
Una vez creada una tabla, los usuarios pueden encontrarla más útil si contiene un ítem de datos adicional, no tiene una
columna particular o tiene diferentes restricciones. Aquí, la naturaleza dinámica de una estructura de base de datos
relacional hace posible cambiar las tablas bases existentes. Por ejemplo, para agregar una nueva columna a la derecha
de la tabla se usa el comando de la siguiente forma:
ALTER TABLE nombre_tabla ADD nombre_columna tipo_columna;
DROP TABLE
Las tablas se pueden eliminar en cualquier momento mediante el comando: DROP TABLE nombre_tabla;
Cuando se ejecuta este comando se remueven la tabla en sí y todos los registros contenidos en ella. Además, todos los
índices y todas las vistas que dependen de ella se deben de eliminar. También se puede eliminar cualquier índice con la
siguiente secuencia: DROP INDEX nombre_indice;
Tipos de Datos. Lostipos de datos disponibles concluyen varios tipos numéricos, cadenas de caracteres de longitud fija y
de longitud variable, cadenas de bits y tipos definidos por el usuario. Los tipos de datos disponibles varían de DBMS a
DBMS.
SQL – DML
Manipulación de la Base de Datos (DML) El lenguaje de consulta de SQL es declarativo, también llamado no procedural,
lo que significa que permite especificar cuáles datos se recuperan sin dar los procedimientos para recuperarlos. Se
puede usar como un lenguaje interactivo para consultas, incrustado en un lenguaje de programación huésped, o como
un lenguaje completo en si para cálculos con el uso de SQL/PSM (Persistent Stored Modules= Módulos de
almacenamiento persistentes).
Los comandos DML son:
• SELECT
• UPDATE
• INSERT
• DELETE
Sentencia INSERT
Una sentencia INSERT de SQL agrega uno o más registros a una ( y solo una) tabla en una base de datos relacional.
Forma Básica: INSERT INTO nombre_tabla (“nombre_columna1”,”[nombre_columna2…..]”) VALUES (“valor1”,
“[valor2...]”);
Sentencia UPDATE
Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla.
Forma Básica: UPDATE nombre_tabla SET “nombre_columna1”=“nuevo_valor,
[“nombre_columna2”=“nuevo_valor2,….”] WHERE condición;
Sentencia DELETE
La sentencia DROP de SQL elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función,
procedimiento o cualquier otro objeto que el motor de la base de datos soporte.
Forma Básica: DROP TABLE nombre_tabla;
La sentencia DELETE borra uno o más registros existentes en una tabla.
Forma Básica: DELETE FROM nombre_tabla WHERE nombre_columna1=valor1;
Sentencia SELECT
La sentencia SELECT nos permite consultar los datos almacenados en una tabla de la base de datos.
El formato de la sentencia SELECT es:
SELECT [ALL | DISTINCT ] nombre_columna [,nombre_columna…]
FROM nombre_tabla|nombre_vista [nombre_tabla|nombre_vista…]
[WHERE condicion [AND|OR condicion]]
[GROUP BY nombre_columna [nombre_columna…]]
[HAVING condicion [AND|OR condicion]]
[ORDER BY nombre_columna|índice_columna [ASC | DESC],…[[nombre_columna|índice_columna[ASC | DESC ]]]]
SELECT: Palabra clave que indica que la sentencia de SQL que queremos ejecutar es de selección.
ALL: Indica que queremos seleccionar todos los valores. Es el valor por defecto y no suele especificarse casi nunca.
DISTINCT: Indica que queremos seleccionar sólo los valores distintos.
FROM: Indica la tabla (o tablas) desde la que queremos recuperar los datos. En el caso de que exista más de una tabla se
denomina a la consulta "consulta combinada" o “JOIN". En las consultas combinadas es necesario aplicar una condición
de combinación a través de una cláusula WHERE.
WHERE: Especifica una condición que debe cumplirse para que los datos sean devueltos por la consulta. Admiten los
operadores lógicos AND y OR.
GROUP BY: Especifica la agrupación que se da a los datos. Se usa siempre en combinación con funciones agregadas.
HAVING: Especifica una condición que debe cumplirse para los datos. Especifica una condición que debe cumplirse para
que los datos sean devueltos por la consulta. Su funcionamiento es similar al de WHERE pero aplicado al conjunto de
resultados devueltos por la consulta. Debe aplicarse siempre junto a GROUP BY y la condición debe estar referida a los
campos contenidos en ella.
ORDER BY: Presenta el resultado ordenado por las columnas indicadas. El orden puede expresarse con ASC (orden
ascendente) y DESC (orden descendente). El valor predeterminado es ASC.
La forma más sencilla es la que hemos usado hasta ahora, consiste en pedir todas las columnas y no especificar
condiciones. mysql>mysql> SELECT * FROM nombre_columna;
Pero podemos usar una lista de columnas, y de ese modo sólo se mostrarán esas columnas. La expresiones_select no se
limitan a nombres de columnas de tablas, pueden ser otras expresiones, incluso aunque no correspondan a ninguna
tabla
También podemos aplicar funciones sobre columnas de tablas, y usar esas columnas en expresiones para generar nuevas
columnas
También es posible asignar un alias a cualquiera de las expresiones select. Esto se puede hacer usando la palabra AS,
aunque esta palabra es opcional
SQL – Operador Asignación
En MySQL podemos crear variables y usarlas posteriormente en expresiones.
Para crear una variable hay dos posibilidades. La primera consiste en pulsar la sentencia SET de este modo:
mysql> SET @hoy = CURRENT_DATE();
Query OK, 0 rows affected (0.02 sec) mysql> SELECT @hoy;
La otra alternativa permite definir variables de usuario dentro de una sentencia SELECT: mysql> SELECT @x:=10;
SQL – Comparación
MySQL Sigue las siguientes reglas a la hora de comparar valores:
• Si uno o los dos valores a comparar son NULL, el resultado es NULL, excepto con el operador <=>, de comparación con
NULL segura.
• Si los dos valores de la comparación son cadenas, se comparan como cadenas.
• Si ambos valores son enteros, se comparan como enteros.
• Los valores hexadecimales se tratan como cadenas binarias, si no se comparan con un número.
• Si uno de los valores es del tipo TIMESTAMP o DATETIME y el otro es una constante, la constante se convierte a
timestamp antes de que se lleve a cabo la comparación. Hay que tener en cuenta que esto no se hace para los
argumentos de una expresión IN(). Para estar seguro, es mejor usar siempre cadenas completas datetime/date/time
strings cuando se hacen comparaciones.
• En el resto de los casos, los valores se comparan como números en coma flotante.
El operador = compara dos expresiones, y da como resultado 1 si son iguales, o 0 si son diferentes.
mysql> SELECT * FROM gente WHERE fecha="2001-12-02";
Operador de igualdad con NULL seguro
El operador <=> funciona igual que el operador =, salvo que si en la comparación una o ambas de las expresiones es nula
el resultado no es NULL. Si se comparan dos expresiones nulas, el resultado es verdadero:
mysql> SELECT NULL <=> 1, NULL <=> NULL;
Operador de desigualdad
MySQL dispone de dos operadores equivalente para comprobar desigualdades, <> y !=. Si las expresiones comparadas
son diferentes, el resultado es verdadero, y si son iguales, el resultado es falso:
mysql> SELECT 100 <> 32, 43 != 43;
Disponemos de los cuatro operadores corrientes.
Operador de desigualdad
Entre los operadores de MySQL, hay uno para comprobar si una expresión está comprendida en un determinado rango
de valores. La sintaxis es:
<expresión> BETWEEN mínimo AND máximo
<expresión> NOT BETWEEN mínimo AND máximo
mysql> SELECT 23 BETWEEN 1 AND 100;
SQL – JOIN
Las composiciones internas usan estas sintaxis: referencia_tabla, referencia_tabla
referencia_tabla [INNER | CROSS] JOIN referencia_tabla [condición]
La condición puede ser: ON expresión_condicional | USING (lista_columnas)
La coma y JOIN son equivalentes, y las palabras INNER y CROSS son opcionales.
La condición en la cláusula ON puede ser cualquier expresión válida para una cláusula WHERE, de hecho, en la mayoría
de los casos, son equivalentes.
La cláusula USING nos permite usar una lista de atributos que deben ser iguales en las dos tablas a componer
También es posible realizar la operación de álgebra relacional unión entre varias tablas o proyecciones de tablas. Para
hacerlo se usa la sentencia UNION que permite combinar varias sentencias SELECT para crear una única tabla de salida.
Las condiciones para que se pueda crear una unión son las mismas que vimos al estudiar el álgebra relacional: las
relaciones a unir deben tener el mismo número de atributos, y además deben ser de dominios compatibles.

Continuar navegando