SQL (Structured Query Language o Lenguaje de Consultas Estructuradas) es un lenguaje de programación estandarizado utilizado para adminitrar bases de datos relacionales y realizar operaciones con los datos que contienen.
CREATE Crea una nueva base de datos:
xxxxxxxxxx
CREATE DATABASE <nombre_bd>;
Crea una tabla en una base de datos:
xxxxxxxxxx
CREATE TABLE <nombre_tabla> (
<columna_1> TIPO CONSTANTE,
<columna_2> TIPO CONSTANTE,
<columna_3> TIPO CONSTANTE
);
Por ejemplo:
xxxxxxxxxx
CREATE DATABASE Universidad;
CREATE TABLE Campus (
id INTEGER PRIMARY KEY,
nombre VARCHAR(45) NOT NULL,
direccion VARCHAR(45) NOT NULL
);
CREATE TABLE Alumno (
rut INTEGER PRIMARY KEY,
nombre VARCHAR(45) NOT NULL,
id_campus INTEGER FOREIGN KEY REFERENCES Campus(id)
);
ALTER Modifica la estructura de una base de datos o la estrsuctura de una tabla en una base de datos:
xxxxxxxxxx
ALTER DATABASE Universidad RENAME TO University;
ALTER TABLE Campus
ADD nombre_director VARCHAR(45) NOT NULL;
ALTER TABLE Alumno RENAME
COLUMN nombre TO
nombre_apellido;
ALTER TABLE Alumno
ALTER COLUMN edad INTEGER;
ALTER TABLE Alumno
DROP nombre_apellido;
TRUNCATE Y DROP Vacía una tabla sin borrar la estructura:
xxxxxxxxxx
TRUNCATE TABLE <nombre_tabla>;
Elimina la tabla
xxxxxxxxxx
DROP TABLE <nombre_tabla>;
INSERT: Inserta filas en una tabla:
xxxxxxxxxx
INSERT INTO
<tabla> (<columna_1>, <columna_2>,...)
VALUES
(<valor_1a>, <valor_2a>,...),
(<valor_1b>, <valor_2b,...>);
UPDATE Actualiza los datos de una o más filas (que cumpla con la condición) en una tabla:
xxxxxxxxxx
UPDATE
<tabla>
SET
<columna_1> = <nuevo_1>,
<columna_2> = <nuevo_2>, ...
WHERE
<condición>;
DELETE Elimina una o más filas (que cumplan con la condición) en una tabla:
xxxxxxxxxx
DELETE FROM
<tabla>
WHERE
<condición>;
SELECT Retorna una o más filas (que cumplan con la condición) en una tabla:
xxxxxxxxxx
SELECT
<columna_1>, <columna_2>, ..., <columna_n>
FROM
<tabla>
WHERE
<condición>;
La operación JOIN
junta columnas de 2 o más tablas horizontalmente, emparejando las filas según algún atributo a comparar.
Una transacción es un grupo de comandos que cambian la data almacenada en una base de datos, y se asegura que todos los comandos se completen y finalicen con éxitom esto se conoce como COMMIT
y en caso de eistir alguna falla, que no se ejecute ninguno de ellos.
Si alguno de los comandos falla, todos los demás comandos fallarán y por ende ningún dato será modificado en la base de datos, esto se conoce como ROLLBACK.
xxxxxxxxxx
BEGIN TRY
BEGIN TRANSACTION
...
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
AUTO INCREMENT Auto-incrementa un número entero en una columna de una tabla: El tipo de datos puede ser SMALLINT, INT, o BIGINT.
xxxxxxxxxx
<nombre_campo> <tipo_dato> INDENTITY(inicio, incremento)
-- Ejemplo
CREATE TABLE Campus (
id INTEGER PRIMARY KEY IDENTITY(1,1),
nombre VARCHAR(45) NOT NULL,
dirección VARCHAR(45) NOT NULL
);
INSERT INTO
Campus (nombre, direccion)
VALUES
('Shrek Campus'. 'El Reino de Muy Muy Lejano');
CHECK CONSTRAINT Verifica si se cumple una condición en una columna de una tabla:
xxxxxxxxxx
...
<nombre_columna> TIPO_DATO ... CHECK CONDICIÓN,
...
-- Ejemplo
CREATE TABLE Productos (
codigo VARCHAR(45) PRIMARY KEY,
nombre VARCHAR(45) NOT NULL,
categoria VARCHAR(45) CHECK
(categoria IN ('Libreria', 'Comida', 'Limpieza')),
precio INTEGER NOT NULL CHECK
(precio >= 0),
fecha_registro DATETIME CHECK
(fecha_registro >= '27-09-2021 16:08:10'),
ultima_modificacion DATETIME CHECK
(ultima_modificacion >= fecha_registro)
);
FUNCIÓN | DESCRIPCIÓN | EJEMPLO |
---|---|---|
DATENAME | Devuelve un texto con el nombre del datepart seleccionado en la fecha indicada. | DATENAME(month, '01/01/2011') |
DATEPART | Devuelve un número entero con el datepart seleccionado en la fecha indicada. | DATEPART(month, '01/01/2011') |
DAY, MONTH, YEAR | Devuelve un número entero con la parte correspondiente de la fecha indicada. | DAY('01/01/2011') MONTH('01/01/2011') YEAR('01/01/2011') |
GETDATE | devuelve la fecha y hora actuales. | GETDATE() |
DATEADD | devuelve una fecha resultado de sumar un valor datepart a la fecha indicada. Por ejemplo, sumar 3 meses a una fecha. | DATEADD(month, 3, '01/01/2011') |
DATEDIFF | Devuelve una datpart resultado de la diferencia entre dos fechas. Por ejemplo, diferencia de dos fechas en meses. | DATEDIFF(month, '01/03/2011', '01/01/2011') |
DAFAULT Establece un valor por defecto para los atributos en las tablas:
xxxxxxxxxx
...
<nombre_columna> TIPO_DATO ... DEFAULT,
...
-- EJEMPLO
CREATE TABLE Alumnos (
id INTEGER PRIMARY KEY IDENTITY(1,1),
nombre VARCHAR(45) NOT NULL,
estado BOOLEAN DEFAULT TRUE,
fecha_registro DATETIME,
matricula VARCHAR(45) DEFAULT 'pendiente'
promedio INTEGER DEFAULT 0
);
En una organización existen recursos, como el dato. Este se considera un recurso ya que tiene un costo y un valor asociado, aporta información valiosa al desempeño y a la toma de decisiones y su obtención, almacenamiento y control involucran gastos (inversión).
Dato: Hecho relacionado con personas, objetos, lugares eventos u otras entidades del mundo real. Pueden ser cualitativos o cuantitativos, internos o externos, históricos o predictivos.
Información: Datos organizacos o preparados adecuada para la toma de decisiones.
Base de datos: Conjunto de archivos de datos relacionados donde se almacenan datos y luego se transforman en información.
Los datos se pueden guardar en archivos planos o bases de datos. Un archivo plano almacena datos que comparten una misma estructura y/o comportamiento similar.
Rut | Nombre | Género | Región |
---|---|---|---|
18.345.678-9 | Juan Pérez | M | 5 |
18.223.344-5 | María Gonzalez | F | 12 |
19.876.543-2 | José Olivares | M | 3 |
13.579.246-8 | Rodrigo Martínez | M | 5 |
Una base de datos es un conjunto de archivos relacionados entre sí.
Desde una perspectiva organizacional, una BD se puede definir como un conjunto de datos operacionales relevantes para la toma de decisiones y que van a permitir satisfacre diversos requerimientos de información.
El enfoque de archivos es un enfoque "del pasado" usado para el procesamiento de datos también conocido como Enfoque por Agregación. Antiguamente las organizaciones desarrollaban sus sistemas de información en forma aislada, sin existir una fuerte comunicación entre sus unidades.
Cada nueva aplicación era diseñada con su propio conjunto de archivos de datos. Programas de aplicación pueden acceder a uno o más archivos de datos, por lo cual deben contener cada uno de ellos las definiciones de los archivos que utilizan y las correspondientes instrucciones que permiten manejarlos. Cada programa es dueño de sus archivos de datos y la lógica del programa es dependiente de los formatos y descripciones de esos datos.
Desventajas
Redundancia no controladas
Dependencia de los datos de los programas de aplicación.
Pobre estandarización
Inconsistencia de los datos
Problemas con el cliente
Baja productividad del desarrollador.
Enfoque de Base de datos
Los datos son vistos como un recuso que debe ser compartido entre diferentes usuarios.
Cada dato puede contar con una visión propia de la BD, de acuerdo a sus requerimientos de información.
Los datos son almacenados de tal manera que son independientes del programa que los usa.
Se tiene un control centralizado de las operaciones de procección, ingreso, moodificación, eliminación y recuperación de datosm a través del DBSM.
No están directamente asociados con los programas de aplicaciones, cada archivo existe en forma independiente de los programas de aplicación.
Característica | Problema que resuelve |
---|---|
A. Visión centralizada, compartida y única de datos. | |
B. Minimización de la redundancia. | 1. Redundancia no controlada. |
C. Independencia de los datos de los programas de aplicación. | 2. Dependiencia de los datos de los programas de aplicación. |
D. Estandarización | 3. Pobre estandarización |
E. Integración y seguridad de datos, generan una mayor consistencia de ellos. | 4. Inconsistencia de los datos. |
F. Facilidades para el diseño y desarrollo de aplicaciones, mejoran la relación con el cliente y la productividad del desarrollador. | 5. Problemas con el cliente. 6. Baja productividad del desarrollador. |
Bas de datos: Conjunto de datos operacionales, almacenados en el computador y accesados por distintas aplicaciones.
Diccionario de datos: Base de datos que guarda una descripción de los datos, como su tipo, largo, propietario, tamaño de los registros, etc. También conocido como base de datos lógica, schema, catálogo.
DBMS (Data Base Manager System): Sistema administrador de base de datos, software que permite crear y mantener una o más base de datos en forma centralizada o distribuida. Sus funciones principales son la definición de datos, manipulación de datos y control de datos.
Programas de aplicación: Programas computacionales escritos por los desarrolladores principalmente para:
Poblar inicialmente la BD (inportancia de la migración de datos desde distintas fuentes).
Mantener en el tiempo la BD.
Generar información a loos usuarios a través de reportes, informes, gráficos, dashboards, tc.
Interfaz de usuario: Forma en que el DBMS permite la intereacción con la base de datos. Pueden ser líneas de comandos, lenguajes, menús, pantallas, sistemas Web, sistemas de reconocimiento de la voz, etc.
Herramienta CASE (Computer Aided Software Engineering): software que ayuda al desarrollador de plaicaciones en todas las etapas del ciclo de vida de un software. En el caso de las BD ayudan a general el modelo de daots, incluso algunas generancódigo SQL.
Usuarios: Personas con requerimientos de información que realizan operaciones de manteción y búsqueda a la base de datos, como así también especialistas en el área que se preocupan de su administración.
Sistema de Información: Conjunto de aplicaciones, datos, recursos materiales y personas que interactúan para procesar datos y convertirlos en información relevante para una organización.
Los DI y BD deben satisfacer los requerimientos de información en todos los niveles de una organización.
Nivel Estratégico | Nivel Táctico | Nivel Operacional | |
---|---|---|---|
Decisión que apoya | Planificación a largo plazo | Control gerencial | Control operacional |
Tipo de decisión | No estructurada | Semi-estructurada | Estructurada |
Modelo más usado | Predictivo | Descriptivo | Normativo |
Fuente | Medio ambiente | Registros internos | operación interna |
Exactitud | Razonable | Buena | Exacta |
Amplitud | Resumida | Detallada | Muy detallada |
Frecuencia | A solicitud | Periódica | Tiempo real |
Rango de tiempo | Años | Años | Meses |
Uso | Predicción | Control | Acción diaria |
OLTP (On-Line Transaction Processing): SI Operacional o TPS (Transaction Processing Systems). SI Administrativo o MIS (Management Information Systems).
Permiten automatizar los procesos de nivel operacional de una organización en los cuales se producen las transacciones del negocio.
OLAP (On-Line Analytic Processing): Sistemas de Apoyo a la toma de Decisiones o DDS (Decision Support Systems).
Permiten apoyar el nivel estratégico de una organización, donde se toman decisiones a largo plazo y rodeadas de alto grado de incertidumbre, que definen el futuro del negocio.
Según estructura de datos
Jerárquica (árbol)
Reticular (grafo o red)
Relacional (relation o tabla bidimensional)
BD relacional es un conjunto de tablas (relation) asociadas (relationship) entre sí.
Una tabla se caracteriza porque:
Cada columna tiene un valor simple
Todas las filas (registros) son del mismo tipo
Las columnas (campos) no tienen un orden particular
Las filas tienen un campo identificador (o un conjunto de campos) que forman la clave primaria
Las filas no tienen un orden particular
Orientada al objeto (clases de objetos)
La estructura base es un objeto, formado de atributos y métodos. Va muy de la mano de la programación orientada a objetos. Al no estar restringido al uso de tablas como el relacional, provee mayor flexibilidad para almacenar distintos tipos de datos y más complejos.
Multidimensional (cubo, hipercubo, conjunto de arreglos)
Son usadas principalmente dentro del ámbito de la Inteligencia de Negocios para implementar Data Warehouse.
Según nivel organizacional que apoyan
BD Operacional (Transaccional - OLTP)
Apoya a los niveles operacionales
Grado menor también al nivel táctico
Registran las transacciones del día a día
Son el soporte de los sistemas del tipo OLTP
Actualmente suelen ser BD relacionales
BD de Gestión (data Warehouse, Data mart, - OLAP)
Apoya a los niveles táctico y estratégico
Permiten entregar información y conocimiento a los tomadores de decisiones de las organizaciones
Son el soporte de los sistemas de tipo OLAP
Suelen ser BD relacionales o multidimensionales.
Las aplicaciones sobre estas BDs trabajan con un enfoque descriptivo
Bd Estratégica (Data Warehouse - OLAP, Data Mining)
Apoya al nivel estratégico
Permiten entregar conocimiento a los tomadores de decisiones de las organizaciones
Son el soporte de los sistemas de tipo OLAP y de los algoritmos de Data Minig
Suelen ser BD relacionales, multidimensionales o archivos planos
Las aplicaciones sobre estas BD trabajan con un enfoque edscriptivo y predictivo
Según tipo de dato almacenado
Estructurado y preciso (relacional)
Agregado (multidimensional)
Semiestructurado (espaciales, XML, textuales)
No estructurado (web)
Según ubicación de la copia principal de los datos
Basada en memoria principal (in-memory database) (1 nivel)
Basada en el disco (2 niveles)
Basada en almacenamiento terciario (3 niveles)
Según número de procesadores que participan en el procesamiento de consulta
Serial (secuencial)
Paralela
Según número de sitios que participan en el almacenamiento de datos
Centralizada
Distribuida
Otras: Web, SMBD (sistemas Múltiples BD o BD federadas)
Objetivo: Identificar las necesidades de información de los usuarios (requisitos, requerimientos o vistas)
Pasos:
Identificación de las áreas de la aplicación y grupos de usuarios. Elección de actores
Análisis y estudio de la documentación eistente en el sistema actual, incluye aplicaciones, manuales de políticas, reportes, diagramas organizacionales, etc.
Estudio del actual ambiente operativo y uso de la información
Respuestas de cuestionarios obtenidas desde los potenciales usuarios, permiten identificar prioridades.
Formalización de requisitos.
Objetivo: Construir un esquema conceptual que represente los datos necesarios para el sistema de información, que sea independiente del motos de datos a utilizar.
El modelo conceptual sirve como:
Medio de comunicación entre usuarios y especialistas; por ende debe ser expresivo, simple, mínimo, formal y diagramático.
Mecanismo para validad entendimiento alcanzado del problema, por parte del especialista.
Descripción estable del contenido
Objetivo: Seleccionar aquel tipo de software (DBMS) que mejor se adecúe a las necesidades del sistema a construir.
Criterios a considerar:
Costos: adquisición de software y hardware, migración, operación y manteción, etc.
Requisitos del sistema: funcionales y no funcionales.
Estructuración de los datos.
Objetivo: generar un esquema basado en el modelo de datos soportado por el software escogido.
Pasos:
Transformación independiente del sistema a un modelo relacional, oriendato al objteo u otro.
Conversión de los esquemas a un software de bases de datos específico.
Objetivo: Escoger las estructuras de almacenamiento y métodos de acceso además de la ubicación de los archivos de bases de datos, para obtener un buen rendimiento de las distintas aplicaciones que interactúan con la base de datos.
Cirterios a considerar:
Tiempo de respuesta
Rendimiento del sistema
Utilización del espacio en disco
Herramientas:
Estructuras de almacenamiento
Índices
Objetivo: Codificación de sentencias para la definición y la manipulación de la base de datos, para crear los archivos, su poblamiento, mantención y consultas.
xxxxxxxxxx
CREATE TABLE Alumno
(
RUT char(9) primary key,
Nombre carchar(35) not null,
Direccion varchar(50),
Carrera varchar(3)
);
SELECT RUT, Nombre FROM Alumno;
SELECT * FROM Alumno WHERE Carrera = 'INF'
Para describir qué es un dato, deben considerarse tres niuveles de abstracción o estados en que se puede encontrar el dato:
Realidad constituida por entidades de tipo personas, objetos, lugares y eventos.
Comprende el mundo real, con sus componentas y el medio ambiente en el cual opera.
Entidad: persona, objeto, lugar y evento sobre el cual la organización decide collecionar y almacenar datos.
Tipo (clase) de Entidades: conjunto de entidades que poseen características similares.
Atributo: propiedad de una entidad que desea registrar.
Clave Primaria: atributo que distingue una entidad de la otra dentro de una clase.
Diccionario de Datos donde se almacenan los metadatos o definiciones sobre los datos.
Es información acerca de los ítems de datos de una organización, que se almacena y mantiene en el diccionario o repositorio de datos de la misma.
Ítem de dato: unidad de datos más pequeña en una base de datos.
Por cada ítem de datos, el diccionario de datos guarda:
Nombre, largo, tipo formato.
Breve descripción narrativa
Rango(s), Dominio, unicidad, nulidad.
Posibles sinónimos
Fuente
Registro: conjunto de ítems de datos y/o datos agregados, y corresponde a la definición de una clase de entidades.
De un registro de datos, el diccionario de datos guarda:
Nombre, descripción, tamaño
sus ítems de datos
sus datos agregados.
Base de Datos donde se almacenan los valores
Corresponde al nivel donde físicamente se guardan los datos
Existe un registro o entidad del mundo real.
Se almacenan ocurrencias de datos incluidas sus relaciones o asociaciones.
Conjunto de archivos asociados lógicamente entre sí
Una relación es una asociación entre tipos de entidades de una realidad.
Pueden ser de los siguientes tipos:
Una
Muchas
Conficional
En ambos sentidos (la más comunes)
Recursivas
Múltiples asociacionesnes entre entidades
Usaremos notación Bachman y E-R (Entidad - Relacionamiento) para ejemplificar las relaciones o asociaciones.
Un modelo es una representación o abstracción de la realidad.
Un modelo de datos es una representación de entidades del mundo real y sus asociaciones, es decir, es una abstracción de la realidad a partir de sus datos. En un modelo de datos se tiene una descripción de todos los datos relacionados con las distintas actividades que en una organización se necesita.
El propósito de un modeo de datos es doble:
Representar una realidad a través de sus datos.
Hacer que los datos sean comprensibles a través de una notación estándar.
Sepuede identificar distintos tipos de modelo de datos según su nivel de abstracción: conceptual, lógico, físico. Cada modelo de datos tiene sus restricciones en cuanto a su capacidad de representar una realidad, dependiendo de los tipos de seánticas que puede abarcar.
Se refiere al significado que tienen los datos en si mismos y entre sí. Se representa generalmente por símbolos definidos como convención o norma. Se verá la simbología o notación de:
Charles Bachman
Peter Chen (E-R y E-R-E)
Grady Booch, Ivar Jacobson y Jim Rumbaugh (UML)
Se identifican los siguientes tipos de semántica:
Cardinalidad
Grado
Dependencia existencial
Tiempo
Unicidad
Herencia
Categorización
Agregación
La más comunes:
Diagrama de Bachmann (ya vistos)
Diagramas Entidad - Relacionamiento básico (E-R) y extendido (E-R-E)
Diagrama de Clases de UML (Uniified Modeling Language)