Está en la página 1de 27

Área: NEGOCIOS

2 Curso: BASE DE DATOS


Módulo: Sentencias y Características de Base de Datos
Área: NEGOCIOS M2
Curso: BASE DE DATOS

Sentencias y Características de Base de Datos


Índice

Introducción ......................................................................................................................................................... 1
1. Lenguaje de definición de datos ....................................................................................................................... 2
1.1. Creación (Create).................................................................................................................................................... 2
1.2. Modificación (Alter)................................................................................................................................................ 6
1.3. Eliminación (Drop) .................................................................................................................................................. 8
2. Lenguaje de manipulación de datos ................................................................................................................. 9
2.1. INSERT .................................................................................................................................................................... 9
2.2. SELECT .................................................................................................................................................................. 10
2.3. DELETE .................................................................................................................................................................. 12
2.4. UDATE .................................................................................................................................................................. 14
2.5. UNION .................................................................................................................................................................. 15
2.6. INTERSECT ............................................................................................................................................................ 16
2.7. Funciones de agregación ...................................................................................................................................... 16
2.8. EXPRESIONES ........................................................................................................................................................ 17
2.9. CONSULTAS ANIDADAS ........................................................................................................................................ 17
3. Abstracción de datos y rendimiento .............................................................................................................. 18
3.1. Vista de datos ....................................................................................................................................................... 18
3.2. Índices de tablas ................................................................................................................................................... 19
4. Transacciones y concurrencia ......................................................................................................................... 20
5. Concepto ACID ................................................................................................................................................ 21
Cierre .................................................................................................................................................................. 23
Bibliografía .......................................................................................................................................................... 24
Área: NEGOCIOS M2
Curso: BASE DE DATOS

Sentencias y Características de Base de Datos


Mapa de Contenido

Sentencias y caracteristicas SQL

Lenguaje de Lenguaje de Abstracción de


Transacciones y
definición de manipulación de datos y Concepto ACID
concurrencia
datos datos rendimiento

Creacion Insert Vista de datos

Modificación Select Indices de tablas

Eliminación Delete

Update

Union

Intersect

Funciones de
agregación

Expresione

Consultas
anidadas
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 1

Sentencias y Características de Base de Datos


RESULTADO DE Aplica las sentencias de definición y manipulación de datos, comprendiendo
APRENDIZAJE su impacto en la construcción y rendimiento, al interior de la empresa u
DEL MÓDULO organización.

Introducción
Este módulo se caracteriza en comprender y entender el uso de
sentencias SQL DDL y DML, para la definición y manipulación de
datos. El estudiante utilizara DDL para crear bases de datos y
todos sus objetos, tales como tablas e índices, requeridos para
contener la información de la base de datos, así también, DML en
la construcción de consultas manipulación de información
perteneciente a la base de datos.

Si piensa a futuro dedicarse como DBA, las labores de este no siempre comprende en la administración de los
servidores, también se encarga en estandarizar los nombres de las tablas y objetos pertenecientes al modelo
de la empresa, es aquí donde el uso de DDL toma una importancia fundamental para crear los objetos de forma
rápida y estándar, deberá validar que la creación y nombres estén de acuerdo con las políticas establecidas por
la empresa. Ahora si su camino es en el desarrollo de sistemas, continuamente se verá enfrentado a encontrar
soluciones utilizando DML en la manipulación de la información contenida en el motor de datos, la mayor tarea
se concentrará en el desarrollo de consultas y formas eficientes de modificación de la información contenida,
proponiendo mejoras al modelo de datos para realizar las tareas necesarias, con la finalidad de mejorar los
tiempos de respuestas. Una última labor que puede el estudiante desarrollarse, corresponde a explotar los
datos, también conocida como minería de información, la cual consiste en obtener de forma eficiente la
información de la base de datos, y mostrarla en formato requerido para generar gestión sobre lo solicitado.

Como vera usted, el ámbito de desarrollo profesional abarca en al menos 3 áreas de trabajo relacionada a la
creación y manutención de sistemas de información y con la administración de sistemas de bases de datos.

En este módulo el estudiante utilizara SQL como herramienta principal en realizar las laboras mencionadas
anteriormente, obteniendo una herramienta valiosa a en su profesión.
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 2

Sentencias y Características de Base de Datos


Hoy en día los SABD utilizan SQL para que los usuarios, sistemas y DBA que utilizan bases de datos, accedan a
la información y manipulación de estas. En este módulo los estudiantes conocerán y aplicarán los comandos
utilizados, para administrar e interactuar con la información contenida en la base de datos. Todos los ejemplos
que se muestran en este documento utilizan SQL Server 2016, para realizar la compilación de las sentencias
que se presentan.

1. Lenguaje de definición de datos


Comúnmente conocido como DDL (Data Definition Language),1 comprende los comandos para realizar la
administración de objetos, permitiendo a los DBA’s la creación, modificación y eliminación de objetos:

1.1. Creación (Create) 2:


Esta sentencia es la encargada de crear una base de datos y los objetos pertenecientes a la base de datos, los
objetos a que nos referimos son:

a. Base de datos
b. Tablas

La estructura de la sintaxis es:


CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
[ PRIMARY ] <filespec> [ ,...n ]
[ , <filegroup> [ ,...n ] ]
[ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]

El campo principal es el nombre de la base de datos (database_name), el atributo CONTAINMENT define el


modelo de contención. Usualmente se utiliza NONE, después se definen las rutas de los archivos de data y log,
estos pueden ser más de uno, depende de cómo se organizará la información en los contenedores, es útil para
dejar en un archivo de datos la información de las tablas y en otro los índices.

1
Fuente: https://es.wikipedia.org/wiki/Lenguaje_de_definici%C3%B3n_de_datos
2
Fuente: https://docs.microsoft.com/en-us/sql/t-sql/statements/create-database-sql-server-transact-sql?view=sql-
server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 3

Sentencias y Características de Base de Datos


Visualizaremos algunos ejemplos utilizando el modelo de la figura 1.

Empleado
Sucursal 1
Posee / Pertenece 0
1 M PK NumEmpleado Int
PK NumSucursal Int 1
01
Participan NombreEmple String
NombreSucursal String 1

FechaContratacion Date
Direccion String

FechaNacimiento Date
ProyEmpleado Pr
Direccion String Es jefe/ Tiene como jefe
0
NimProyecto Int
M Estado Boolean
NumEmpleado Int
Sueldo Int
FechaInicio Date
NumSucursal Int
FechaTermino Date 0
Jefe Int
M
0 M

Proyecto Ajuste

PK NumProyecto Int PK SueldoInicial Int

NombreProyecto String PK SueldoFinal Int

0 1 Ajuste Decimal
Participan
Bono Int

Figura 1: Modelo Directorio

Base de datos “Directorio”

CREATE DATABASE [Directorio]


CONTAINMENT = NONE
ON PRIMARY
( NAME = N'Directorio', FILENAME = N'F:\DATA\Directorio_Dat' , SIZE = 8192KB ,
FILEGROWTH = 65536KB )
LOG ON
( NAME = N'Directorio_log', FILENAME = N'G:\LOG\Directorio_Log' , SIZE = 8192KB
, FILEGROWTH = 65536KB
)
GO
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 4

Sentencias y Características de Base de Datos


Crea una la base de datos “Directorio”, tomando todos los valores por defecto, y se configura las rutas de los
archivos que contienen datos y log. Al ejecutar el comando, la suite nos arroja la ejecución exitosa, ver figura
2.

Figura 2: Ejecución script de creación de base de datos

IMPORTANTE

Considere siempre dejar los archivos de datos y log en unidades distintas al disco donde este alojado el
sistema operativo, con la finalidad que no compitan por los recursos de disco, así tendrá un mejor
performance de la base de datos.

Como ya se ha creado la base de datos, ahora continuamos con la creación de las tablas, que tiene la siguiente
sintaxis:

CREATE TABLE
[ database_name . [ schema_name ] . | schema_name . ] table_name
( { <column_definition> } [ ,...n ] )
[;]
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 5

Sentencias y Características de Base de Datos


Iniciaremos con la tabla empleado, basándonos en el modelo de la figura 1. El siguiente script crea la tabla
“Empleado”:

CREATE TABLE [Empleado] (


[Rut] [int] NOT NULL,
[Nombre] [varchar](200) NOT NULL,
[FechaContratacion] [date] NOT NULL,
[FechaNacimiento] [date] NOT NULL,
[Direccion] [varchar](100) NOT NULL,
[Jefe] [int] NULL,
[Estado] [bit] NULL,
[Sueldo] [int] NOT NULL,
[CodSucursal] [int] NOT NULL,
PRIMARY KEY CLUSTERED
(
[Rut] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY =
OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Después de ejecutar la sentencia se muestra el resultado correcto, ilustrado en la imagen 3.

Figura 3: Creación de tabla


Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 6

Sentencias y Características de Base de Datos


Al momento de definir una tabla se deben incluir sus tipos de datos, incluyendo los campos que tendrán valor
nulo, y su campo llave declarándolo con el atributo PRIMARY.

1.2. Modificación (Alter)3:

Esta instrucción se encarga de realizar modificaciones a los objetos creados y a la base de datos, esta
instrucción es mayormente utilizada para alterar las tablas, vistas y procedimientos almacenados, su estructura
es:

ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name


{
ALTER COLUMN column_name
{
[ type_schema_name. ] type_name
[(
{
precision [ , scale ]
| max
| xml_schema_collection
}
)]
[ COLLATE collation_name ]
[ NULL | NOT NULL ] [ SPARSE ]
| { ADD | DROP }
{ ROWGUIDCOL | PERSISTED | NOT FOR REPLICATION | SPARSE | HIDDEN }
| { ADD | DROP } MASKED [ WITH ( FUNCTION = ' mask_function ') ]
}
}

Aplicaremos un ejemplo modificando el tipo de dato para que acepte valores nulos, en el campo [Estado]

ALTER TABLE Empleado


ALTER COLUMN Estado int NOT NULL

3
Referencia: https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-table-transact-sql?view=sql-server-2017
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 7

Sentencias y Características de Base de Datos


Después de ejecutar la sentencia, visualizamos el cambo en la tabla empleado, como se muestra en la figura 4.

Figura 4: Ejecución Alter Table

Luego generamos la llave foránea relacionada jefe

ALTER TABLE [dbo].[Empleado] WITH CHECK ADD CONSTRAINT


[FK_Empleado_Empleado]
FOREIGN KEY([Jefe]) REFERENCES [dbo].[Empleado] ([Rut])
ALTER TABLE [dbo].[Empleado] CHECK CONSTRAINT [FK_Empleado_Empleado]

Con las instrucciones anteriores se crea el índice y asocia a la tabla empleados, de esta forma se mantiene la
integridad referencial. En SQL Server podemos visualizar los cambios generando un diagrama del modelo de
datos, como se muestra en la figura 5.

Figura 5: diagrama tabla empleado


Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 8

Sentencias y Características de Base de Datos


1.3. Eliminación (Drop)4:

Finalmente, en el DDL, la sentencia encargada de eliminar los objetos de una base de datos es DROP, se
recomienda realizar respaldos cada vez que se requiera hacer su uso en algún objeto. Su sintaxis es:

DROP TABLE [ database_name . [ schema_name ] . | schema_name . ]


table_name [ ,...n ]
[;]

Para eliminar una tabla utilizamos: DROP TABLE Empleado

Al ejecutar las sentencias anteriores y refrescar la información en la base de datos, no se visualiza la tabla
empleados, como evidencia esta la figura 6.

Figura 6: Eliminación de tabla Empleado

4
Referencia: https://docs.microsoft.com/en-us/sql/t-sql/statements/drop-table-transact-sql?view=sql-server-2017
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 9

Sentencias y Características de Base de Datos


2. Lenguaje de manipulación de datos
Comúnmente llamado DML, de las siglas en ingles Data Manipulation Lenguaje5, es utilizado en la
manipulación de la información, para ejemplificar continuaremos utilizando el modelo de la figura 1, a
continuación, revisamos los siguientes comandos:

2.1. INSERT6:

Utilizado para ingresar información en una tabla existente en la base de datos, se basa en la siguiente sintaxis:

INSERT
{
[ TOP ( expression ) [ PERCENT ] ]
[ INTO ]
{ <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
{
[ ( column_list ) ]
[ <OUTPUT Clause> ]
{ VALUES ( { DEFAULT | NULL | expression } [ ,...n ] ) [ ,...n ]
| derived_table
| execute_statement
| <dml_table_source>
| DEFAULT VALUES
}
}
}
[;]

Como ejemplo realizamos la inserción de la primera tupla:

INSERT INTO [dbo].[Empleado]


([Rut] ,[Nombre] ,[FechaContratacion] ,[FechaNacimiento] ,[Direccion]
,[Jefe] ,[Estado] ,[Sueldo] ,[CodSucursal])
VALUES
(12 ,'Nombre de pruebas' ,'2015-01-25' ,'1985-05-25' ,'Direccion de pruebas' ,NULL
,1 ,850000 ,1)

5
https://es.wikipedia.org/wiki/Lenguaje_de_manipulaci%C3%B3n_de_datos
6
https://docs.microsoft.com/en-us/sql/t-sql/statements/insert-transact-sql?view=sql-server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 10

Sentencias y Características de Base de Datos


Con el resultado graficado en la figura 7:

Figura 7: Resultado instrucción INSERT

IMPORTANTE

Las principales consideraciones son:


• El orden de los campos a insertar se determina después de nombrar la tabla
• Todos los campos del tipo texto y fechas, deben in con cremillas simples.
• Para insertar un valor nulo, el campo debe tener indicado NULL

2.2. SELECT7:

Utilizado para realizar consultas a una o más tablas de la base de datos. Contiene la siguiente sintaxis:

SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] [Alias.] Select_Item


[[AS] Column_Name] [, [Alias.] Select_Item [[AS] Column_Name] ...]
FROM [FORCE][DatabaseName!]Table [[AS] Local_Alias]
[[INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN
DatabaseName!] Table [[AS] Local_Alias] [ON JoinCondition …]
[[INTO Destination] | [TO FILE FileName [ADDITIVE] | TO PRINTER
[PROMPT] | TO SCREEN]] [PREFERENCE PreferenceName]
[NOCONSOLE] [PLAIN] [NOWAIT]
[WHERE JoinCondition [AND JoinCondition ...]
[AND | OR FilterCondition [AND | OR FilterCondition ...]]]
[GROUP BY GroupColumn [, GroupColumn ...]]
[HAVING FilterCondition]
[UNION [ALL] SELECTCommand]
[ORDER BY Order_Item [ASC | DESC] [, Order_Item [ASC | DESC] ...]]

7
Referencia: https://docs.microsoft.com/es-es/sql/t-sql/queries/select-transact-sql?view=sql-server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 11

Sentencias y Características de Base de Datos


Corresponde a la consulta más utilizada en el mundo laboral para la extracción de datos, su complejidad varia
de las condiciones del rescate de la información. En el siguiente ejemplo obtenemos el rut y nombre de los
empleados que fueron contratados después del año 2000:

SELECT Rut, Nombre


FROM dbo.Empleado
WHERE (YEAR(FechaContratacion) > 2010);

Con el resultado en la figura 8:

Figura 8: Consulta SELECT simple


Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 12

Sentencias y Características de Base de Datos


2.3. DELETE8:

Esta instrucción elimina las tuplas de una tabla, posee la siguiente sintaxis:

DELETE
[ TOP ( expression ) [ PERCENT ] ]
[ FROM ]
{ { table_alias
| <object>
| rowset_function_limited
[ WITH ( table_hint_limited [ ...n ] ) ] }
| @table_variable
}
[ <OUTPUT Clause> ]
[ FROM table_source [ ,...n ] ]
[ WHERE { <search_condition>
| { [ CURRENT OF
{ { [ GLOBAL ] cursor_name }
| cursor_variable_name
}
]
}
}
]
[ OPTION ( <Query Hint> [ ,...n ] ) ]
[; ]

En el siguiente ejemplo se elimina el registro con el rut es igual a 12:

DELETE [Empleado] WHERE rut =12

8
Referencia: https://docs.microsoft.com/en-us/sql/t-sql/statements/delete-transact-sql?view=sql-server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 13

Sentencias y Características de Base de Datos


Con el resultado visualizado en la imagen 9:

Figura 9: Eliminación de datos

IMPORTANTE

Consideraciones principales:
• Una vez eliminado, no se pueden recuperar los datos.
• Normalmente se tiene un campo “estado” el que indica si un registro esta activo o no.
• Se pueden incluir más tablas en la instrucción, pero solo de la primera tabla se eliminarán los
registros.
• Las cláusulas WHERE de la sentencia SELECT se aplican para eliminar un subconjunto de datos.
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 14

Sentencias y Características de Base de Datos


2.4. UDATE9:

Es la instrucción encargada para realizar actualizaciones de registros en una tabla, posee la siguiente sintaxis:

UPDATE
[ TOP ( expression ) [ PERCENT ] ]
{ { table_alias | <object> | rowset_function_limited
[ WITH ( <Table_Hint_Limited> [ ...n ] ) ]
}
| @table_variable
}
SET
{ column_name = { expression | DEFAULT | NULL }
| { udt_column_name.{ { property_name = expression
| field_name = expression }
| method_name ( argument [ ,...n ] )
}
}
| column_name { .WRITE ( expression , @Offset , @Length ) }
| @variable = expression
| @variable = column = expression
| column_name { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable { += | -= | *= | /= | %= | &= | ^= | |= } expression
| @variable = column { += | -= | *= | /= | %= | &= | ^= | |= } expression
} [ ,...n ]

[ <OUTPUT Clause> ]
[ FROM{ <table_source> } [ ,...n ] ]
[ WHERE { <search_condition>
| { [ CURRENT OF
{ { [ GLOBAL ] cursor_name }
| cursor_variable_name
}
]
}
}
]
[ OPTION ( <query_hint> [ ,...n ] ) ]
[;]

9
Referencia: https://docs.microsoft.com/es-es/sql/t-sql/queries/update-transact-sql?view=sql-server-2016
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 15

Sentencias y Características de Base de Datos


En el siguiente ejemplo se actualiza la dirección del empleado con rut 12, y aumentamos su sueldo en un 10%:

UPDATE [Empleado]
SET direccion ='Nueva Direccion', Sueldo = sueldo *1.1
WHERE rut =12

El resultado de la ejecución se grafica en la figura 10:

Figura 10: Actualización de datos.

El usuario puede actualizar más de un campo en una instrucción, realizando las condiciones adecuadas en la
sentencia WHERE.

2.5. UNION:

Este comando es utilizado para unir dos sentencias SELECT, debe tener en consideración que los campos del
SELECT deben ser del mismo tipo en todas las consultas, en el siguiente ejemplo obtenemos el empleado con
rut 12 y unimos los empleados cuyo estado posee el valor 1:

SELECT rut,nombre FROM Empleado


WHERE rut = 12
UNION
SELECT rut,nombre FROM Empleado
WHERE estado = 0

Si el estado asociado al rut 12 tiene el valor 1, esta tupla no se repite en la salida. También la sentencia UNION
es asociada a un OR lógico entre dos consultas.
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 16

Sentencias y Características de Base de Datos


2.6. INTERSECT:

Este comando actúa de similar forma que la sentencia UNION, pero con la diferencia que opera como un AND
lógico10, de esta forma al unir dos consultas, en el siguiente ejemplo obtenemos las fechas de contratación
coincidentes con las fechas de nacimientos de los empleados:

SELECT fechacontratacion FROM Empleado


INTERSECT
SELECT fechanacimiento FROM Empleado

2.7. Funciones de agregación11:

Estas son utilizadas para evaluar cálculos matemáticos y/o estadísticos con los datos contenidos en una o más
tablas, estas funciones son:

a. AVG: Entrega el valor promedio de un conjunto de datos, omitiendo los valores NULL.
b. MIN: Entrega el valor mínimo de un conjunto de datos
c. CHECKSUM_AGG: Devuelve la suma de comprobación de los valores de un grupo
d. SUM: Entrega la suma de los valores contenidos en una columna, solo se aplica a
números.
e. COUNT: Entrega el número de elementos contenido en una agrupación o conjunto.
f. STDEV: Entrega la desviación estadística de un conjunto de datos numéricos.
g. COUNT_BIG: Entrega la cantidad de elementos de igual forma que COUNT, pero con un
tipo de entero mayor (bigint).
h. STDEVP: Entrega la desviación estándar de un conjunto de datos.
i. GROUPING: Indica si una expresión de columna especificada en una lista GROUP BY es
agregada o no.
j. VAR: Entrega la varianza de un conjunto de datos numéricos.
k. GROUPING_ID: Es una función que calcula el nivel de agrupación
l. VARP: Devuelve la varianza estadística de un conjunto de datos numéricos.
m. MAX: Entrega el valor máximo de un conjunto de datos.

10
Fuente: https://ebookcentral.proquest.com/lib/ippsp/reader.action?ppg=91&docID=4499125&tm=1526948522688
p. 83
11
Referencia: https://msdn.microsoft.com/es-es/library/ms173454(v=sql.120).aspx
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 17

Sentencias y Características de Base de Datos


En el siguiente ejemplo obtenemos por cada sucursal el sueldo promedio de los empleados:

SELECT CodSucursal,AVG(sueldo)
FROM Empleado
GROUP BY CodSucursal

El resultado de este SQL es la siguiente figura 11

Figura 11: Ejemplo función AVG

2.8. EXPRESIONES:

Corresponden en la asignación de encabezado o nombre y al orden que se desee obtener en la salida de datos.

SELECT CodSucursal , AVG(sueldo) as PROMEDIO, 1+1 as EJEMPLO


FROM Empleado
GROUP BY CodSucursal
ORDER BY CodSucursal

2.9. CONSULTAS ANIDADAS:

Este tipo de consultas, son utilizadas para resolver problemas complejos, donde un segmento de la
información, o información condicional, se encuentra en la misma tabla o en un conjunto de datos, el siguiente
ejemplo muestra las personas cuyo sueldo sea mayor que el sueldo promedio del departamento 2:

SELECT Rut, Nombre, Sueldo


FROM Empleado
WHERE Sueldo > (SELECT AVG(sueldo) FROM Empleado WHERE CodSucursal =12)
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 18

Sentencias y Características de Base de Datos


Con el resultado en la figura 12

Figura 12: consulta anidada

3. Abstracción de datos y rendimiento


El concepto de abstracción y rendimiento está más asociado a labores que cumple un DBA durante la vida útil
de la base de datos. La abstracción está asociada al encapsular información y mostrarla a través de vistas,
mientras que el rendimiento en la creación de índices a las tablas, para mejorar los tiempos de respuestas.

3.1. Vista de datos:

Una vista corresponde a la abstracción de datos mediante una consulta SELECT, con la finalidad de encapsular
los datos de la tabla, y presentar a quien la utiliza un segmento de las tablas, posee la siguiente sintaxis:

CREATE [ OR ALTER ] VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]


[ WITH <view_attribute> [ ,...n ] ]
AS select_statement
[ WITH CHECK OPTION ]
[;]

En este ejemplo se crea una vista que entregue rut y nombre de los empleados contratados a contar de 2010:

CREATE VIEW [dbo].[Empleados2010] AS


SELECT Rut, Nombre
FROM dbo.Empleado
WHERE (YEAR(FechaContratacion) > 2010);

Como fue mencionado en el módulo 1, la ventaja de crear vistas es el encapsular la información a los usuarios.
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 19

Sentencias y Características de Base de Datos


Para visualizar el efecto de la creación de la vista, se ilustra en la figura 13.

Figura 13: Crear vista

3.2. Índices de tablas:

Los índices están asociados a mejorar el resultado de las consultas y actualizaciones en una base de datos,
estos son creados por la sentencia CREATE y asociados a una tabla, en este ejemplo se crea un índice
“BusNom”:

CREATE INDEX [BusNom] ON [Empleado] (Nombre);

Al crear este índice se obtienen mejoras en las consultas realizadas por el campo [Nombre].
El resultado de la ejecución se visualiza en la figura 14.

Figura 14: Creación de índice.


Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 20

Sentencias y Características de Base de Datos


4. Transacciones y concurrencia
El concepto de transacción corresponde a las acciones que se realizan a la base de datos, asociadas
principalmente a un conjunto de sentencias del tipo UPDATE, INSERT y DELETE, validando que se completen
en su totalidad, de aquí nace el concepto de atomicidad de las transacciones, donde el SABD se encarga que el
conjunto de transacciones se ejecute de forma correcta. Las instrucciones para crear bloques de transacciones
son:

BEGIN TRANS o BEGIN TRANSACTION

[Conjunto de acciones a realizar]


COMMIT TRAN o COMMIT TRANSACTION

Para deshacer una transacción se utiliza el comando


ROLLBACK

La concurrencia se relaciona con la cantidad de transacciones que se ejecutan en un SABD, donde toda base
de datos debe soportar que al menos dos usuarios accedan a una base de datos, utilizando consultas y/o
sentencias de actualización o eliminación de datos. El SABD debe controlar que dos o más usuarios intenten
acceder y modificar los datos, utilizando el concepto de transacciones.

VIDEO COMPLEMENTARIO

Puede encontrar un ejemplo en el siguiente video:


https://www.youtube.com/watch?v=jZ4XYPatNcQ
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 21

Sentencias y Características de Base de Datos


5. Concepto ACID 12

Los bloqueos y concurrencia son las tareas que encarecen el performance de la base de datos, pero primero
debemos tener claro el concepto de transacción, que se interpreta al completar un conjunto de operaciones
de forma atómica, esto quiere decir no dejar incompleta las operaciones que afectan a los datos, su
característica principal en SQL Server 2016, es la utilización de la palabra reservada TRANSACTION.

Para continuar una transacción debe ser:

IMPORTANTE

a. Atómica: pese a tener muchas operaciones asociadas, para el motor de base de datos es solo una
operación.
b. Consistente: que todas las acciones están acordadas y siguen un patrón o algoritmo.
c. Aislada: para el usuario solo existe la operación a realizar, y no debe tener conocimiento si otro
usuario está utilizando los datos.
d. Durable: permanece en el tiempo

Todos estos acuerdos de transacciones ocurren con las palabras reservadas:

IMPORTANTE

a. BEGIN TRANSATION: la cual indica el inicio de una operación transaccional, puede acarrear más
de una operación, sea esta, INSERT, UPDATE y/o DELETE.
b. COMMIT TRANSACTION: que indica almacenar los cambios efectuados en la base de datos.
c. ROLLBACK TRANSACTION: deshace todas las modificaciones realizadas, dejando los datos en un
estado inicial, esto se aplica cuando ocurre un error durante la transacción.

MATERIAL COMPLEMENTARIO

Puede indagar más información en https://msdn.microsoft.com/es-es/library/ms174377(v=sql.110).aspx

Usted puede profundizar más de las cualidades de las transacciones en el siguiente link
https://msdn.microsoft.com/es-es/library/ms190925(v=sql.110).aspx

12
https://es.wikipedia.org/wiki/ACID
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 22

Sentencias y Características de Base de Datos


Usted puede pensar que el uso masivo de transacciones es beneficioso, pero tiene un lado amargo, es que
genera concurrencia y además es candidato para generar deadlock.

Concurrencia de base de datos es cuando varias operaciones se están ejecutando a la vez, el resultado final
sigue siendo el esperado. Depende normalmente en un conjunto de reglas y restricciones que coordinan el
comportamiento de las transacciones, asegurándose de que las diferentes operaciones operan muy bien.

Junto con los conceptos de concurrencia aparecen los bloqueos, explicado en palabras simples es “dos o más
procesos necesitan utilizar un mismo recurso”, como usted administrará y revisará constantemente los
distintos motores de bases de datos, se encontrara muchas veces con este tipo de operaciones, si su duración
es menos a un segundo, es la normalidad de base de datos transacciones, con alto nivel de operaciones, pero
si los tiempos de respuesta aumentan y generan deadlock, dos o más procesos necesitan recursos que entre
ellos lo tienen reservados, produciendo un tiempo de respuesta infinito en el SABD. La solución más útil es
detectar este tipo de bloqueo con el comando SP_WHO, y “matar” al proceso que está requiriendo de recursos
con el comando SP_KILL.

MATERIAL COMPLEMENTARIO

Puede encontrar más información en los siguientes links:

https://technet.microsoft.com/es-es/library/ms174313(v=sql.110).aspx
https://technet.microsoft.com/es-cl/library/ff929106(v=sql.110).aspx
Área: NEGOCIOS M2
Curso: BASE DE DATOS Pág. 23

Sentencias y Características de Base de Datos


Cierre
En este módulo el estudiante adquirirá el conocimiento de utilizar SQL para interactuar con los SABD, logrando
crear bases de datos y objetos. También tendrá el conocimiento para realizar consultas simples y elaboradas,
que comúnmente requieren los usuarios y sistemas que acceden a las bases de datos.
Contará con los conocimientos para crear, manipular y explotar bases de datos, con estos contenidos podrá
proyectarse en distintas labores, aportando en su desarrollo personal. Además, si continúa investigando y
mejorando sus conocimientos de SQL, aportará en el desarrollo y/o gestión que necesite el lugar donde se
desempeñe, para realizar un mejor análisis de datos y proponer mejoras a los modelos que estén
implementados en la empresa.

APORTE A TU FORMACIÓN

Como fue mencionado en la introducción de este módulo, el estudiante puede proyectar su futuro laboral
orientándose en labores como DBA, desarrollo o explotación de datos, podrá tener la certeza que existirá
la necesidad de realizar labores anteriormente mencionadas, producto de la mejora continua de los
sistemas. En la actualidad un gran número de consultas y análisis de datos se resuelven por medio de
consultas SQL, las cuales son utilizadas en análisis de tendencias, proyecciones de datos, informes de
gestión para gerencias o toma de decisiones, etc.
Si analiza lo descrito, el conocer SQL y generar sentencias de forma eficientes, es una labor muy utilizada
en la mayoría de los trabajos, si gusta se puede enfocar en empresas de cobranzas, bancos, empresas
públicas y por, sobre todo, empresas que desarrollan software.
El conocer y utilizar este lenguaje orientado a las bases de datos, aporta en tu vida profesional, dando
fundamentos para rebatir y proponer mejoras a los sistemas existentes en una empresa. Si su caso es
trabajar como DBA, la mayoría de sus labores las generan mediante las instrucciones DDL para la creación
de los objetos de una base de datos, el mayor expositor de esta forma es Oracle, mientras que SQL Server
y otros motores, utilizan interfaces gráficas en la administración, pero esto no quiere decir que solo se
administra por una interfaz, también poseen la administración y gestión utilizando las sentencias de SQL.

Podemos resumir, en todo ambiente laboral que utiliza una base de datos, la forma estándar de
administrar y explotar la información contenida en ella es utilizando las sentencias SQL, independiente el
sistema operativo o el motor de base de datos, las variaciones entre un SQL Server y un Oracle, por
ejemplo, son las mínimas, al momento de realizar manipulación de información, y este punto es el que
más se debe destacar y enfocar el estudiante, para su proyección laboral.
Área: NEGOCIOS M2
Curso: BASE DE DATOS

Sentencias y Características de Base de Datos


Bibliografía

Obligatoria
Marqués, M. (2009). Bases de datos. Pp. 41 a 93.

Complementaria
Silberschatz, A., Korth, H. F., & Sudarshan, S. (2006). Fundamentos de bases de datos (5a. ed.). Pp. 101 a 132.

También podría gustarte