Sunteți pe pagina 1din 8

UNIVERSIDAD ALEJANDRO DE HUMBOLDT

FACULTAD DE INGENIERÍA

CICLO REGULAR DE INGENIERÍA

CARRERA: INGENIERÍA EN INFORMÁTICA

CURSO: ESTRUCTURA DE BASE DE DATOS

TRABAJO DE ESTRUCTURA DE BASE DE DATOS

Autores:

Marcos Pineda

Caracas, Octubre 2018.


SQL (Structured Query Language)

Se trata de un lenguaje estándar y muy interactivo, de acceso a base de datos de tipo


relacional. Permite a los usuarios especificar diversos tipos de operaciones en ellas, todo esto se
logra mediante la lógica, el álgebra y cálculos relacionales. Esto se traduce en una facilidad al
momento de recuperar la información de una base de datos.

Las consultas se forman con una sintaxis similar a un lenguaje de comandos permitiendo
seleccionar, insertar, actualizar y saber la ubicación de los datos; tomando en cuenta otras
diversas funciones. SQL, el lenguaje relacional casi universalmente aplicado, es diferente de
otros lenguajes computacionales como C, COBOL y Java, los cuales son de procedimiento. Un
lenguaje de procedimiento define cómo las operaciones de una aplicación deben realizarse y el
orden en el cual se realizan. Un lenguaje de no procedimiento, por otro lado, se refiere a los
resultados de una operación; el entorno fundamental del software determina cómo se procesan
las operaciones. Esto no quiere decir que SQL respalda a la funcionalidad de no procedimiento.

EVOLUCIÓN DE SQL

A principios de la década de 1970, después que se publicó el artículo de E. F. Codd, IBM


comenzó a desarrollar un lenguaje y un sistema de base de datos que podría usarse para la
aplicación de ese modelo. Cuando se definió por primera vez, el lenguaje fue denominado
Lenguaje de consulta estructurado (en inglés, SEQUEL, Structured English Query Language).
Cuando se descubrió que SEQUEL era propiedad de una marca comercial de Hawker-Siddeley
Aircraft Company en el Reino Unido, el nombre se cambió a SQL. Cuando se pasó la voz de que
IBM estaba desarrollando un sistema de base de datos relacional basado en SQL, otras
compañías comenzaron a desarrollar sus propios productos basados en SQL.

De hecho, Relational Software, Inc., ahora Oracle Corporation, lanzó el sistema de base
de datos antes de que IBM lanzara el suyo al mercado. Conforme más proveedores lanzaron sus
productos, SQL comenzó a surgir como el lenguaje estándar de base de datos relacional.
TIPOS DE INSTRUCCIONES DE SQL

Por mucho que se considere un sublenguaje determinado por su naturaleza de no


procesamiento, sigue siendo un lenguaje completo, que le permite crear y mantener objetos de
una base de datos, asegurar esos objetos y manipular la información dentro de los objetos.
Comúnmente se usa un método para poder categorizar las instrucciones SQL, éste se basa en
dividirlas de acuerdo con las funciones que realizan. Estos son:

- Lenguaje de definición de datos (DDL): Las instrucciones DDL se usan para crear,
modificar o borrar objetos en una base de datos como tablas, vistas, esquemas,
dominios, activadores, y almacenar procedimientos. Las palabras clave en SQL más
frecuentemente asociadas con las instrucciones DDL son CREATE, ALTER y DROP. Por
ejemplo, se usa la instrucción CREATE TABLE para crear una tabla, la instrucción ALTER
TABLE para modificar las características de una tabla, y la instrucción DROP TABLE para
borrar la definición de la tabla de la base de datos.
- Lenguaje de control de datos (DCL): Las instrucciones DCL permiten controlar quién o
qué (un usuario en una base de datos puede ser una persona o un programa de
aplicación) tiene acceso a objetos específicos en la base de datos. Con DCL, puede
otorgar o restringir el acceso usando las instrucciones GRANT o REVOKE, los dos
comandos principales en DCL. Las instrucciones DCL también permiten controlar el tipo
de acceso que cada usuario tiene a los objetos de una base de datos. Por ejemplo, puede
determinar cuáles usuarios pueden ver un conjunto de datos específico y cuáles
usuarios pueden manipular esos datos.
- Lenguaje de manipulación de datos (DML): Las instrucciones DML se usan para
recuperar, agregar, modificar o borrar datos almacenados en los objetos de una base de
datos. Las palabras clave asociadas con las instrucciones DML son SELECT, INSERT,
UPDATE y DELETE, las cuales representan los tipos de instrucciones que probablemente
son más usadas. Por ejemplo, puede usar la instrucción SELECT para recuperar datos de
una tabla y la instrucción INSERT para agregar datos a una tabla.

Hay varias formas de clasificar las instrucciones además de la manera en que se clasifican
en la lista anterior. Por ejemplo, se pueden clasificar de acuerdo a cómo se ejecutan o si pueden
o no ser incrustadas en un lenguaje de programación estándar. El estándar SQL proporciona diez
categorías amplias basadas en funciones. Sin embargo, se usa el método anterior ya que se
utiliza comúnmente en la documentación relacionada con SQL, y porque es una manera simple
de proporcionar una buena visión general de la funciones inherentes a SQL.

PERMISOS DE SQL SERVER

Todos los elementos protegibles de SQL Server tienen permisos asociados que se pueden
conceder a una entidad de seguridad. Los permisos de Motor de base de datos se administran
en el nivel de servidor asignados a los inicios de sesión y roles de servidor, y en el nivel de base
de datos asignados a usuarios de base de datos y roles base de datos. El modelo para SQL
Database tiene el mismo sistema para los permisos de base de datos, pero los permisos de nivel
de servidor no están disponibles.

El número total de permisos para SQL Server 2017 (14.x) y SQL Database es 237. La mayoría de
los permisos se aplica a todas las plataformas, pero otros no. Por ejemplo, no se puede conceder
permisos de nivel de servidor en SQL Database, y algunos permisos solo tienen sentido en SQL
Database. SQL Server 2016 (13.x) expuso 230 permisos. SQL Server 2014 (12.x) expuso 219
permisos. SQL Server 2012 (11.x) expuso 214 permisos.

A continuación se describen las convenciones generales que se siguen en la nomenclatura de


permisos:

- CONTROL: Confiere al receptor del permiso capacidades relacionadas con la propiedad.


El receptor del permiso dispone de hecho de todos los permisos definidos para el
elemento protegible. Una entidad de seguridad a la que se le haya concedido el permiso
CONTROL también puede conceder permisos para el elemento protegible. Como el
modelo de seguridad de SQL Server es jerárquico, el permiso CONTROL de un
determinado ámbito incluye implícitamente el mismo permiso CONTROL para todos los
elementos protegibles que abarca dicho ámbito. Por ejemplo, el permiso CONTROL en
una base de datos implica todos los permisos de la base de datos, todos los permisos en
todos los ensamblados y todos los esquemas de la misma, así como todos los permisos
en los objetos de todos los esquemas que incluye la base de datos.
- ALTER: Confiere la posibilidad de cambiar las propiedades, excepto la propiedad, de un
elemento protegible determinado. Cuando se concede para un ámbito, ALTER también
confiere la posibilidad de modificar, crear o quitar cualquier elemento protegible que
esté contenido en ese ámbito. Por ejemplo, el permiso ALTER en un esquema incluye la
posibilidad de crear, modificar y quitar objetos del esquema.
- ALTER ANY <Server Securable>: donde Server Securable puede ser cualquier elemento
protegible del servidor. Confiere la posibilidad de crear, modificar o quitar instancias
individuales del Protegible del servidor. Por ejemplo, ALTER ANY LOGIN confiere la
posibilidad de crear, modificar o quitar cualquier inicio de sesión en la instancia.
- ALTER ANY <Database Securable>: donde Database Securable puede ser cualquier
elemento protegible en el nivel de base de datos. Confiere la posibilidad de crear
(CREATE), modificar (ALTER) o quitar (DROP) instancias individuales del Protegible de la
base de datos. Por ejemplo, ALTER ANY SCHEMA confiere la posibilidad de crear,
modificar o quitar cualquier esquema en la base de datos.
- TAKE OWNERSHIP: Permite al receptor del permiso tomar propiedad del elemento
protegible para el que se concede este permiso.
- IMPERSONATE <Login>: Permite al receptor suplantar el inicio de sesión.
- IMPERSONATE <User>: Permite al receptor suplantar al usuario.
- CREATE <Server Securable>: Confiere al receptor la posibilidad de crear el Protegible del
servidor.
- CREATE <Database Securable>: Confiere al receptor la posibilidad de crear el Protegible
de la base de datos.
- CREATE <Schema-contained Securable>: Confiere la posibilidad de crear el elemento
protegible contenido en el esquema. No obstante, para crear el elemento protegible en
un esquema concreto se requiere el permiso ALTER en el esquema.
- VIEW DEFINITION: Permite al receptor obtener acceso a los metadatos.
- REFERENCES: El permiso REFERENCES es necesario en una tabla para crear una
restricción FOREIGN KEY que hace referencia a esa tabla. El permiso de REFERENCES es
necesario en un objeto para crear FUNCTION o VIEW con la cláusula WITH
SCHEMABINDING que hace referencia a ese objeto.

Comprobar los permisos puede ser complejo. El algoritmo de comprobación de permiso


incluye la superposición de la pertenencia a grupos y el encadenamiento de propiedad, tanto el
permiso explícito como el implícito, y puede ser afectado por los permisos en las clases
protegibles y que contienen la entidad protegible. El proceso general del algoritmo es reunir
todos los permisos pertinentes. Si no se encuentra ningún bloqueo DENY, el algoritmo busca un
permiso GRANT que proporcione el acceso suficiente. El algoritmo contiene tres elementos
esenciales, el contexto de seguridad, el espacio del permisoy el permiso necesario.
- Contexto de seguridad: Es el grupo de entidades de seguridad que aportan los permisos
para la comprobación de acceso. Son los permisos que están relacionados con el inicio
de sesión actual o el usuario, a menos que el contexto de seguridad se cambiara a otro
inicio de sesión o usuario utilizando la instrucción EXECUTE AS.
- Espacio de Permiso: Es la entidad protegible y todas las clases protegibles que contiene
la entidad protegible. Por ejemplo, una tabla (una entidad protegible) está contenida en
la clase de esquema protegible y en la clase de base de datos protegible. El acceso puede
verse afectado por permisos de nivel de tabla, esquema, base de datos y servidor. Para
obtener más información, vea Jerarquía de permisos (motor de base de datos).
- Permiso necesario: El tipo de permiso que se necesita. Por ejemplo, INSERT, UPDATE,
DELETE, SELECT, EXECUTE, ALTER, CONTROL, etc. El acceso puede requerir varios
permisos, como en los ejemplos siguientes: un procedimiento almacenado puede
requerir el permiso EXECUTE sobre el procedimiento almacenado y el permiso INSERT
sobre varias tablas a las que hace referencia el procedimiento almacenado. Y, Una vista
de administración dinámica puede requerir los permisos VIEW SERVER STATE y SELECT
sobre la vista.

LOGGING

En los últimos años, las innovaciones tecnológicas han tenido un fuerte impacto en
cualquier ámbito, tanto personal como profesional. A día de hoy, muchas compañías
basan gran parte de su actividad empresarial en la tecnología y, en consecuencia, cada
vez más estas soluciones se están convirtiendo en herramientas fundamentales para
tomar decisiones y detectar problemas de negocio.
Las empresas se apoyan en sistemas que generan una gran cantidad de datos en forma
de trazas textuales, llamadas técnicamente “Logs”. Esta información no es visible para
el usuario pero suele estar relacionada con su actividad informática (por ejemplo,
historial de navegación, programas abiertos, etc.) o con los propios sistemas de
información (es decir, estado actual de programas, seguridad, accesos, conectividad de
redes, etc.). Los Logs, que nos explican el comportamiento de nuestros sistemas o
programas, suelen escribirse en ficheros. Aunque más adelante pueden ser examinados,
estos archivos por sí solos no nos permitirán detectar si se ha producido un error.
APLICACIONES TÍPICAS DE LOS ARCHIVOS LOG

Por defecto, los sistemas operativos crean múltiples logs en los que se registran y
clasifican diferentes tipos de procesos. Los sistemas Windows realizan protocolos sobre eventos
de aplicaciones (programas), eventos del sistema, eventos relacionados con la seguridad,
eventos de configuración y eventos reenviados. Consultar la información contenida en un log
puede ayudar a un administrador a solucionar problemas. Por ejemplo, los archivos de registro
de Windows muestran cuándo un usuario se desconectó del sistema. Además de los sistemas
operativos, los siguientes programas y sistemas también recogen, a su vez, diferentes datos:

- Programas de fondo como, por ejemplo, los servidores de correo electrónico, de bases
de datos o proxy generan archivos de registro que almacenan principalmente mensajes
de error, notificaciones de eventos y notas. Estos sirven principalmente para asegurar
los datos y poder reestablecerlos.
- Software instalado como Office, juegos, programas de mensajería instantánea,
cortafuegos o antivirus se vale de los archivos log para almacenar datos muy diversos
(p. ej., configuraciones o mensajes de chat). Aquí la prioridad se sitúa en recolectar fallos
de los programas para facilitar la solución rápida de problemas.
- Servidores (especialmente los servidores web) también protocolan una gran cantidad
de actividades relevantes de la red, proporcionando información útil acerca de los
usuarios y su comportamiento en la red. De esta forma, aquellos administradores
experimentados que cuenten con los permisos suficientes, sabrán si un usuario inició
una aplicación o solicitó un archivo, cuánto tiempo estuvo realizando una determinada
actividad y desde qué sistema operativo lo hizo. El análisis de los archivos log de un
servidor web es uno de los métodos más antiguos de control web y el mejor ejemplo de
las posibilidades de un log.

EXPLOTACIÓN DE LOGS A PARTIR DE ARQUITECTURAS BIG DATA

La ingente cantidad de datos que producen las distintas aplicaciones hace que el término
Big Data también sea aplicable a los Logs. Cada vez más, se tiende a distribuir el trabajo en
máquinas más pequeñas pero en mayor número. En consecuencia, es necesario utilizar
herramientas que permitan el almacenamiento y procesamiento distribuido de la información.
Estamos hablando de arquitecturas Big Data formadas por múltiples sistemas que conforman
un clúster de máquinas.

COMMIT

Una sentencia COMMIT en SQL finaliza una transacción de base de datos dentro de un
sistema gestor de base de datos relacional (RDBMS) y hace visibles todos los cambios a otros
usuarios. El formato general es emitir una sentencia BEGIN WORK o BEGIN TRANSACTION (o la
que sea para el lenguaje SQL en cuestión), una o más sentencias SQL, y entonces la sentencia
COMMIT.

Un ejemplo se muestra en la siguiente imagen.

PROGRAMAS SGBD

S-ar putea să vă placă și