7. Vistas, Procedimientos y Triggers
VISTAS
Una vista es una consulta, que refleja el contenido de una o más tablas, desde la que se puede acceder a los datos como si fuera una tabla.
Dos son las principales razones por las que podemos crear vistas.
• Seguridad, nos pueden interesar que los usuarios tengan acceso a una parte de la información que hay en una tabla, pero no a toda la tabla.
• Comodidad, como hemos dicho el modelo relacional no es el más comodo para visualizar los datos, lo que nos puede llevar a tener que escribir complejas sentencias SQL, tener una vista nos simplifica esta tarea.
Las vistas no tienen una copia física de los datos, son consultas a los datos que hay en las tablas, por lo que si actualizamos los datos de una vista, estamos actualizando realmente la tabla, y si actualizamos la tabla estos cambios serán visibles desde la vista.
Nota: No siempre podremos actualizar los datos de una vista, dependerá de la complejidad de la misma (dependerá de si el conjunto de resultados tiene acceso a la clave principal de la tabla o no), y del gestor de base de datos. No todos los gestores de bases de datos permiten actualizar vistas, ORACLE, por ejemplo, no lo permite, mientras que SQL Server sí.
7.1 Creación de vistas.
Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida.
CREATE VIEW <nombre_vista>
AS
(<sentencia_select>);
Ejemplo: Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del cliente en lugar de su código.
CREATE VIEW vAlquileres
AS
(
SELECT nombre, apellidos,
matricula
FROM tAlquileres, tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
)
Si queremos, modificar la definición de nuestra vista podemos utilizar la sentencia ALTER VIEW, de forma muy parecida a como lo haciamos con las tablas. En este caso queremos añadir los campos fx_alquiler y fx_devolucion a la vista.
ALTER VIEW vAlquileres
AS
(
SELECT nombre, apellidos,
matricula, fx_alquiler, fx_devolucion
FROM tAlquileres, tClientes
WHERE ( tAlquileres.codigo_cliente = tClientes.codigo )
)
Por último podemos eliminar la vista a través de la sentencia DROP VIEW. Para eliminar la vista que hemos creado anteriormente se uitlizaría:
DROP VIEW vAlquileres;
Una vista se consulta como si fuera una tabla. Ejemplo:
USE NORTHWIND GO
--CREACION DE VISTA PROVEEDORES Y SUS PEDIDOS
CREATE VIEW VIEW_SUPPLIER_PRODUCS
AS
SELECT S.SUPPLIERID,S.COMPANYNAME,S.CONTACTNAME
,P.PRODUCTID,P.PRODUCTNAME, P.UNITPRICE FROM SUPPLIERS AS S INNER JOIN PRODUCTS AS P ON
S.SUPPLIERID=P.SUPPLIERID GO
--CREACION DE UNA VISTA CON INSTRUCCION GROUP
CREATE VIEW VIEW_SUBTOTALES(CODIGO_ORDEN,SUB_TOTAL)
AS
SELECT OD.ORDERID,SUM(CONVERT(MONEY,(OD.UNITPRICE* QUANTITY*(1-DISCOUNT)/100))*100)
FROM [ORDER DETAILS] OD GROUP BY OD.ORDERID
GO
--LLAMAR A LA CONSULTA ANTERIOR SELECT * FROM VIEW_SUBTOTALES
--VER VISTAS
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='VIEW'
--BORRAR UNA VISTA
DROP VIEW VIEW_SUBTOTALES
--ALTERAR UNA VISTA
ALTER VIEW VIEW_SUPPLIER_PRODUCS AS
7.2 PROCEDIMIENTOS
Que son procedimientos Almacenados: Es un conjunto de código puro del lenguaje que utilizamos dentro de las bases de datos como por ejemplo: create table, insert into, Select from. Que se almacena físicamente en la base de datos y de la misma forma se exportan cuando creamos una copia de seguridad de nuestra base de datos.
Como funcionan: Los procedimientos almacenados se basan en una estructura definida por SQL SERVER.
Iniciamos con:
• CREATE PROCEDURE nombre_del_procedimiento @variables tipo(longitud) }
• AS
• BEGIN
• Todo el codigo puro de base de datos
• END
Como probamos: Esto es lo más fácil de realizar solo necesitamos lo siguiente: Escribimos EXEC nombre_del_procedimiento ' variables',12,' variables'
Nota: Cabe destacar que no necesariamente se deben definir variables en el caso de un Select * From solo pondremos EXEC y nombre del procedimiento
Vamos a realizar un ejemplo
• Creemos una base de datos con el nombre que decidamos
• Creemos la siguiente tabla.
Ahora definimos el procedimiento almacenado para insertar un nuevo registro(Recordemos que todo lo que está dentro del Begin puede ser cualquier sentencia de código puro de SQL SERVER: Insert into, Delete From, Update set, etc) .
• Ejecutamos el cogido y ahora probamos con los siguientes datos:
Codigo: 001 ; Nombre: Patricia ; Apellido: Colimba ; Edad: 21; Universidad: UTN
• Ejecutamos el procedimiento almacenado con los datos anteriores tomando en consideración que: los campos tipo int se envían sin comilla el resto dentro de comilla.
• Para ejecutar el procedimiento almacenado escribimos EXEC + el nombre del procedimiento + las variables si fuera el caso y clic en ejecutar
• Ahora revisamos en nuestra tabla y tenemos lo siguiente:
• Como podemos ver funciona sin ningún problema
Nota: Todas las sentencias de SQL SERVER se pueden enviar dentro de un procedimiento almacenado, inclusive inner joins, busquedas &like entre otras.
7.3 TRIGGERS
Un trigger( o desencadenador) es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos.
La estructura de un trigger es:
Create Trigger pr_usuarios_Trigger1
On dbo.pr_usuarios
For /* Insert, Update, Delete */ As
Los triggers pueden incluir cualquier número y clase de instrucción de Transact- SQL.
Desde el Trigger podremos obtener los datos de la fila que se ha modificado o añadido utilizando inserted o deleted:
Select * from deleted
Limitaciones de los triggers.
- Solo se pueden aplicar a una tabla específica, es decir, un trigger no sirve para dos o más tablas
- El trigger se crea en la base de datos que de trabajo pero desde un trigger puedes hacer referencia a otras bases de datos.
- Un Trigger devuelve resultados al programa que lo desencadena de la misma forma que un Stored Procedure aunque no es lo mas idoneo, para impedir que una instrucción de asignación devuelva un resultado se puede utilizar la sentencia SET NOCOUNT al principio del Trigger.
- Las siguientes instrucciones no se pueden utilizar en los triggers :
ALTER DATABASE CREATE DATABASE DISK INIT DISK RESIZE
DROP DATABASE LOAD DATABASE
LOAD LOG RECONFIGURE
RESTORE DATABASE RESTORE LOG
SQL Server proporciona los siguientes tipos de triggers:
Trigger DML, se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista.
Trigger DDL, se ejecutan en respuesta a una variedad de eventos de lenguaje de definición de datos (DDL). Estos eventos corresponden principalmente a instrucciones CREATE, ALTER y DROP de Transact-SQL, y a determinados procedimientos almacenados del sistema que ejecutan operaciones de tipo DDL. Trigger DML, se ejecutan cuando un usuario intenta modificar datos mediante un evento de lenguaje de manipulación de datos (DML). Los eventos DML son instrucciones INSERT, UPDATE o DELETE de una tabla o vista.
Ejemplo 1:
Como ejemplo crearemos un Trigger que avise al webmaster con un mail cuando un usuario se da de alta en nuestro web, para crear el trigger solo se han de seguir los pasos arriba indicados, como muestran las imágenes y el código es el siguiente, haciendo Copy & Paste funciona.
El funcionamiento del trigger es muy sencillo, declaramos dos variables, una para el mensaje que se enviará en el mail y otra para obtener el ID del registro recién insertado y luego este ID lo concatenamos al mensaje para enviárselo al webmaster.
Alter Trigger Trigger_Aviso_al_Webmaster
On dbo.pr_usuarios
For Insert
As
– Declaramos las variables del mensaje y del ID del nuevo usuario
Declare @Mensaje varchar(200)
Declare @ID numeric
– Obtenemos el id del usuario recien insertado
Select @ID = (Select IDUsuario From Inserted )
Select @Mensaje = „Nuevo Usuarios en el web : „ + Convert(varchar(10), @ID)
Exec master.dbo.xp_sendmail
@recipients = „webmaster@dominio.com‟,
@subject = „Nuevo usuario‟,
@message = @Mensaje
EJEMPLO 2:
Para indicar los triggers en esta base hacemos lo siguiente:
Podemos hacer dentro de nuestra base o creamos una Nueva Consulta, donde llamamos a nuestra base:
use Biblioteca
y comenzamos realizando nuestros triggers asi:
--Trigger que inserta una fila historico cuando se borra un prestamo
/*4. Siempre que se borra una fila de la tabla PRESTAMO, se inserta en HISTORICO la fila con los datos correspondientes al prestamo que se borra*/ create trigger tr_delete_prestamo2
on PRESTAMO
after delete as declare
@a char(3),
@b smallint,
@c datetime,
@d smallint,
@e int,
@f datetime select
@a=DELETED.isbn,
@b=DELETED.copiaNro,
@c=DELETED.fechaPrestamo,
@d=DELETED.tituloNro,
@e=DELETED.usuarioNro,
@f=DELETED.fechaDebeDevolver from DELETED
insert into HISTORICO values(@a,@b,@c,@d,@e,@f,null,null,null)
Para ver el resultado tenemos que insertar a la tabla histórico lo siguiente:
insert into HISTORICO values(@a,@b,@c,@d,@e,@f,null,null,null) Luego llamamos a la tabla histórico y prestamo
select * from historico select * from prestamo
Ejecutamos el triggers.
SQL SERVER 2008
Vistas de página en total
viernes, 3 de febrero de 2012
INTRODUCCION A SQL SERVER 2008
Microsoft SQL Server 2008 Express es un sistema de administración de datos eficaz y confiable que ofrece un variado conjunto de características, protección de datos y rendimiento para clientes de aplicaciones incrustadas, aplicaciones web ligeras y almacenes de datos locales. SQL Server 2008 Express, que está diseñado para una implementación sencilla y una creación de prototipos rápida, está disponible de forma gratuita y su redistribución con aplicaciones también es gratuita. Está diseñado para integrarse a la perfección con otras inversiones de infraestructura de servidor. Para obtener más información acerca de SQL Server Express, incluidas otras versiones y componentes para descargar ya disponibles, vea Microsoft SQL Server Express.
3.1 Requisitos del sistema
3.3.1 Sistemas operativos compatibles: Windows Server 2003 Service Pack 2; Windows Server 2008; Windows Vista; Windows XP Service Pack 2 ; Windows 7
3.3.2 Sistemas de 32 bits y 64 bits o Equipo con procesador Intel o compatible a 1 GHz o superior (se recomienda 2 GHz o superior. Sólo se admite un único procesador.) o 256 MB de RAM como mínimo (se recomienda 1 GB o más).
3.3.3 Sistemas de 64 bits o Procesador a 1,4 GHz o superior (se recomienda 2 GHz o superior. Sólo se admite un único procesador.) o 256 MB de RAM como mínimo (se recomienda 1GB o más). # SQL Server 2008 Express está disponible para sistemas x86 y x64. SQL Server 2008 Express no es compatible con sistemas IA64.
3.2. Instrucciones
Paso 1: descargar e instalar Microsoft .Net Framework 3.5 SP1. Paso 2: descargar e instalar Windows Installer 4.5.
Paso 3: descargue SQL Server 2008 Express haciendo clic en el vínculo apropiado más adelante en esta página. Para iniciar la instalación inmediatamente, haga clic en Ejecutar. Para instalar SQL Server Express más adelante, haga clic en Guardar.
INICIAR LA INSTALACION DE SQL SERVER 2008
Link de Descarga para AQL Server 2008 Express www.microsoft.com/downloads/details.aspx?FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff&DisplayLang=es
4.1 Ejecutar el asistente de Instalación, el cual va a instalar Microsoft .NET Framework antes de SQL:
4.2 Leer y Aceptar el Contrato de Licencia, presionar Instalar
4.3 El Asistente de Instalación procederá con la Instalación de Microsoft .NET Framework 3.5 SP1:
4.4 El asistente mostrará éxito en la instalación, presione Salir
4.5 Luego de esta instalación aparece una ventana de actualización de Windows;
presionamos Aceptar y nos pedirá reiniciar el equipo:
4.6 Al reiniciarse el equipo aparece una ventana para completar los complementos:
4.7 Ejecutar el setup de instalación de SQL Server:
4.8 Aparecerá la ventana de Instalación:
4.9 Presionar la ficha instalación y luego la opción “Nueva instalación independiente de SQL Server…”
4.10 Aparecerá una ventana que identifica problemas que pudieran surgir durante la instalación. El instalador ejecutará primeramente una revisión para identificar problemas que podrían ocurrir durante la instalación o limitaciones que podrían ocasionar que no podamos instalar SQL Server 2008.
4.11 Especificar la edición de SQL Server 2008 y presionar Siguiente. Debemos seleccionar la edición que deseamos instalar o ingresar el product key del SQL Server 2008. (En este caso voy a instalar la edición Enterprise de prueba)
4.12 Leer y Aceptar los términos de licencia; presionar Siguiente:
4.13 Haga clic en instalar para instalar archivos auxiliares del programa de instalación:
4.14 Aparece una pantalla que nos indica si hay algún problema para la instalación, dar clic en Siguiente
4.15 Seleccionar las características de SQL que desee instalar:
4.16 Especificar el nombre y el ID de la instancia de SQL. En este caso no tenemos ninguna instancia de SQL Server y vamos a instalar en el Default instance:
4.17 Revise el resumen de espacio en disco para las características de SQL Server que ha seleccionado:
4.18 Especificar las opciones de configuración: Usar la misma cuenta para todos los servicios de SQL. Configurar las cuentas con la que se iniciará cada servicio de SQL Server 2008
Se debe especificar el nombre de usuario “Administrador” de la cuenta de inicio
de sesión en Windows Server 2008 así como su contraseña.
4.19 En la configuración del motor de base de datos; determinar el modo de autenticación como modo mixto y poner una contraseña para el usuario “sa” de SQL Server. En este paso deberán seleccionar el modo de autenticación de SQL Server y agregar las cuentas que serán administradores de la instancia.
4.20 Habilitar FILESTREAM para el Acceso TRANSACT-SQL:
4.21 Especificar los usuarios que tendrán permisos administrativos para Analisis Services. Hacer clic en agregar usuario actual:
4.22 Instalar la configuración predeterminada de modo nativo. En la configuración de Reporting Services seleccionar el tipo por defecto
4.23 El programa de instalación ejecuta reglas para determinar si se bloqueará el proceso de instalación
4.24 Listo para Instalar, presione Instalar:
4.25 Progreso de la Instalación:
4.26 Operación Completada:
Iniciar SQL Server:
Ahora el programa está instalado y listo para utilizarlo
Microsoft SQL Server 2008 Express es un sistema de administración de datos eficaz y confiable que ofrece un variado conjunto de características, protección de datos y rendimiento para clientes de aplicaciones incrustadas, aplicaciones web ligeras y almacenes de datos locales. SQL Server 2008 Express, que está diseñado para una implementación sencilla y una creación de prototipos rápida, está disponible de forma gratuita y su redistribución con aplicaciones también es gratuita. Está diseñado para integrarse a la perfección con otras inversiones de infraestructura de servidor. Para obtener más información acerca de SQL Server Express, incluidas otras versiones y componentes para descargar ya disponibles, vea Microsoft SQL Server Express.
3.1 Requisitos del sistema
3.3.1 Sistemas operativos compatibles: Windows Server 2003 Service Pack 2; Windows Server 2008; Windows Vista; Windows XP Service Pack 2 ; Windows 7
3.3.2 Sistemas de 32 bits y 64 bits o Equipo con procesador Intel o compatible a 1 GHz o superior (se recomienda 2 GHz o superior. Sólo se admite un único procesador.) o 256 MB de RAM como mínimo (se recomienda 1 GB o más).
3.3.3 Sistemas de 64 bits o Procesador a 1,4 GHz o superior (se recomienda 2 GHz o superior. Sólo se admite un único procesador.) o 256 MB de RAM como mínimo (se recomienda 1GB o más). # SQL Server 2008 Express está disponible para sistemas x86 y x64. SQL Server 2008 Express no es compatible con sistemas IA64.
3.2. Instrucciones
Paso 1: descargar e instalar Microsoft .Net Framework 3.5 SP1. Paso 2: descargar e instalar Windows Installer 4.5.
Paso 3: descargue SQL Server 2008 Express haciendo clic en el vínculo apropiado más adelante en esta página. Para iniciar la instalación inmediatamente, haga clic en Ejecutar. Para instalar SQL Server Express más adelante, haga clic en Guardar.
INICIAR LA INSTALACION DE SQL SERVER 2008
Link de Descarga para AQL Server 2008 Express www.microsoft.com/downloads/details.aspx?FamilyID=58ce885d-508b-45c8-9fd3-118edd8e6fff&DisplayLang=es
4.1 Ejecutar el asistente de Instalación, el cual va a instalar Microsoft .NET Framework antes de SQL:
4.2 Leer y Aceptar el Contrato de Licencia, presionar Instalar
4.3 El Asistente de Instalación procederá con la Instalación de Microsoft .NET Framework 3.5 SP1:
4.4 El asistente mostrará éxito en la instalación, presione Salir
4.5 Luego de esta instalación aparece una ventana de actualización de Windows;
presionamos Aceptar y nos pedirá reiniciar el equipo:
4.6 Al reiniciarse el equipo aparece una ventana para completar los complementos:
4.7 Ejecutar el setup de instalación de SQL Server:
4.8 Aparecerá la ventana de Instalación:
4.9 Presionar la ficha instalación y luego la opción “Nueva instalación independiente de SQL Server…”
4.10 Aparecerá una ventana que identifica problemas que pudieran surgir durante la instalación. El instalador ejecutará primeramente una revisión para identificar problemas que podrían ocurrir durante la instalación o limitaciones que podrían ocasionar que no podamos instalar SQL Server 2008.
4.11 Especificar la edición de SQL Server 2008 y presionar Siguiente. Debemos seleccionar la edición que deseamos instalar o ingresar el product key del SQL Server 2008. (En este caso voy a instalar la edición Enterprise de prueba)
4.12 Leer y Aceptar los términos de licencia; presionar Siguiente:
4.13 Haga clic en instalar para instalar archivos auxiliares del programa de instalación:
4.14 Aparece una pantalla que nos indica si hay algún problema para la instalación, dar clic en Siguiente
4.15 Seleccionar las características de SQL que desee instalar:
4.16 Especificar el nombre y el ID de la instancia de SQL. En este caso no tenemos ninguna instancia de SQL Server y vamos a instalar en el Default instance:
4.17 Revise el resumen de espacio en disco para las características de SQL Server que ha seleccionado:
4.18 Especificar las opciones de configuración: Usar la misma cuenta para todos los servicios de SQL. Configurar las cuentas con la que se iniciará cada servicio de SQL Server 2008
Se debe especificar el nombre de usuario “Administrador” de la cuenta de inicio
de sesión en Windows Server 2008 así como su contraseña.
4.19 En la configuración del motor de base de datos; determinar el modo de autenticación como modo mixto y poner una contraseña para el usuario “sa” de SQL Server. En este paso deberán seleccionar el modo de autenticación de SQL Server y agregar las cuentas que serán administradores de la instancia.
4.20 Habilitar FILESTREAM para el Acceso TRANSACT-SQL:
4.21 Especificar los usuarios que tendrán permisos administrativos para Analisis Services. Hacer clic en agregar usuario actual:
4.22 Instalar la configuración predeterminada de modo nativo. En la configuración de Reporting Services seleccionar el tipo por defecto
4.23 El programa de instalación ejecuta reglas para determinar si se bloqueará el proceso de instalación
4.24 Listo para Instalar, presione Instalar:
4.25 Progreso de la Instalación:
4.26 Operación Completada:
Iniciar SQL Server:
Ahora el programa está instalado y listo para utilizarlo
6. Creación de BD e Ingreso de Datos y Consultas
6.1 DDL y DML
Lenguaje de definición de datos (DDL: Data Definition Language): Es un sencillo lenguaje artificial para definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Posee dos subconjuntos de instrucciones:
6.1.1 Lenguaje de definición del almacenamiento de los datos (DSDL: Data Storage Definition Language): permite especificar características físicas de la base de datos (volúmenes y archivos donde van a ser almacenados los datos, etc).
6.1.2 Lenguaje de control de datos (DCL: Data Control Language): encargado del control y seguridad de los datos (privilegios y modos de acceso, etc).
Lenguaje de manipulación de datos (DML: Data Manipulation Language): Lenguaje artificial de cierta complejidad que permite el manejo y procesamiento del contenido de la base de datos. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Las aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programación (C, Cobol,...) insertando en el código fuente sentencias del DML. Al utilizar un DML se deben especificar los datos que serán afectados por las sentencias del lenguaje. Un DML puede tener o no procedimientos, según sea necesario especificar además cómo deben obtenerse esos datos. Los DML con
procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML sin procedimientos son conocidos también como declarativos.
Comandos del DDL y del DML
Comandos DLL
Comando Descripción
CREATE Utilizado para crear nuevas tablas, stored procedures e índices
DROP Empleado para eliminar tablas, stored procedures e índices
ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos
Comandos DML
Comando Descripción
SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
DELETE Utilizado para modificar los valores de los campos y registros especificados.
UPDATE Utilizado para eliminar registros de una tabla de una base de datos.
6.2 COMO CARGAR DATOS DESDE CONSOLA A NUESTRA BASE DE DATOS EN SQL SERVER 2008
BDACADEMICO
Primero debemos tener listo nuestro script de la base de datos .sql. Luego Clic en Inicio/cmd/Ejecutar
Cuando se abre una ventana del símbolo del sistema, sólo hay una línea similar a: C:\> _
Esto significa que la carpeta C:\ es la carpeta actual y, si se especifica un nombre de archivo, Windows buscará ese archivo en esa carpeta.
Escribimos sqlcmd para conectarse a la instancia predeterminada de SQL Server en el equipo local, y el contenido de la ventana del símbolo del sistema será:
C:\>sqlcmd
1> _
Esto significa que se ha conectado a una instancia de SQL Server y sqlcmd está listo para aceptar instrucciones Transact-SQL y comandos de sqlcmd. El carácter de subrayado intermitente después de 1> es el símbolo del sistema sqlcmd, que marca la ubicación donde se mostrarán las instrucciones y comandos que se escriban.
Para conectarnos con nuestra base de datos en este caso con BDACADEMICO
ponemos lo siguiente:
1>sqlcmd –i c:\sc\script.sql –o c:\sc\MyOutput.txt
Una vez conectada podemos realizar cualquier consulta.
Un ejemplo de consulta con nuestra base de datos BDACADEMICO
Realizar una consulta que nos permita mostrar el nombre del estudiante con sus materias y sus notas en su respectivo periodo.
6.1 DDL y DML
Lenguaje de definición de datos (DDL: Data Definition Language): Es un sencillo lenguaje artificial para definir y describir los objetos de la base de datos, su estructura, relaciones y restricciones. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Posee dos subconjuntos de instrucciones:
6.1.1 Lenguaje de definición del almacenamiento de los datos (DSDL: Data Storage Definition Language): permite especificar características físicas de la base de datos (volúmenes y archivos donde van a ser almacenados los datos, etc).
6.1.2 Lenguaje de control de datos (DCL: Data Control Language): encargado del control y seguridad de los datos (privilegios y modos de acceso, etc).
Lenguaje de manipulación de datos (DML: Data Manipulation Language): Lenguaje artificial de cierta complejidad que permite el manejo y procesamiento del contenido de la base de datos. En la práctica puede consistir en un subconjunto de instrucciones de otro lenguaje informático. Las aplicaciones que trabajan sobre la base de datos se programan en un lenguaje de programación (C, Cobol,...) insertando en el código fuente sentencias del DML. Al utilizar un DML se deben especificar los datos que serán afectados por las sentencias del lenguaje. Un DML puede tener o no procedimientos, según sea necesario especificar además cómo deben obtenerse esos datos. Los DML con
procedimientos tienen sentencias de control de flujo como bucles o condicionales. Los DML sin procedimientos son conocidos también como declarativos.
Comandos del DDL y del DML
Comandos DLL
Comando Descripción
CREATE Utilizado para crear nuevas tablas, stored procedures e índices
DROP Empleado para eliminar tablas, stored procedures e índices
ALTER Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos
Comandos DML
Comando Descripción
SELECT Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.
INSERT Utilizado para cargar lotes de datos en la base de datos en una única operación.
DELETE Utilizado para modificar los valores de los campos y registros especificados.
UPDATE Utilizado para eliminar registros de una tabla de una base de datos.
6.2 COMO CARGAR DATOS DESDE CONSOLA A NUESTRA BASE DE DATOS EN SQL SERVER 2008
BDACADEMICO
Primero debemos tener listo nuestro script de la base de datos .sql. Luego Clic en Inicio/cmd/Ejecutar
Cuando se abre una ventana del símbolo del sistema, sólo hay una línea similar a: C:\> _
Esto significa que la carpeta C:\ es la carpeta actual y, si se especifica un nombre de archivo, Windows buscará ese archivo en esa carpeta.
Escribimos sqlcmd para conectarse a la instancia predeterminada de SQL Server en el equipo local, y el contenido de la ventana del símbolo del sistema será:
C:\>sqlcmd
1> _
Esto significa que se ha conectado a una instancia de SQL Server y sqlcmd está listo para aceptar instrucciones Transact-SQL y comandos de sqlcmd. El carácter de subrayado intermitente después de 1> es el símbolo del sistema sqlcmd, que marca la ubicación donde se mostrarán las instrucciones y comandos que se escriban.
Para conectarnos con nuestra base de datos en este caso con BDACADEMICO
ponemos lo siguiente:
1>sqlcmd –i c:\sc\script.sql –o c:\sc\MyOutput.txt
Una vez conectada podemos realizar cualquier consulta.
Un ejemplo de consulta con nuestra base de datos BDACADEMICO
Realizar una consulta que nos permita mostrar el nombre del estudiante con sus materias y sus notas en su respectivo periodo.
5. PASOS PARA CONFIGURAR SQL SERVER 2008 PARA ADMITIR CONEXIONES REMOTAS
Las nuevas políticas de Seguridad de Microsoft incorporan restricciones a la hora de comenzar a usar SQL Server 2008. Los Servicios que antes estaban habilitados por defecto, ahora no lo están, y es función del Administrador ir habilitándolos según las necesidades de uso del mismo.
Una de las cuestiones más importantes es la de Admitir Conexiones Remotas en nuestro Servidor. A fin de habilitarlas y asegurarnos que se pueden conectar desde otros ordenadores debemos seguir unos sencillos pasos:
5.1 Abriremos SQL Server Management Studio, nos situamos encima de la instancia de nuestro Servidor y pulsamos botón derecho, Propiedades, seleccionamos Conexiones, nos mostrara la siguiente pantalla:
Ahora marcamos el checkbox: “Permitir conexiones remotas con este servidor” y pulsamos aceptar.
5.2 Vamos al Menú de Inicio > Programas > Microsoft SQL Server 2008 > Herramientas de Configuración > Administrador de Configuración de SQL Server, aparece la siguiente ventana:
Seleccionamos la Configuración de red de SQL Server y luego Protocolos de MSSQLSERVER. Como podemos observar, por defecto solo tiene habilitado el protocolo de Memoria compartida, el resto están deshabilitados. Básicamente es el tipo de protocolo que se usa, cuando nos conectamos a SQL Server desde el mismo Servidor.
Lo que debemos hacer es habilitar los protocolos: “Canalizaciones con nombre” y “TCP/IP”. Para lo cual, pulsamos con el botón derecho del ratón encima de los mismos y pulsamos Habilitar. En las dos ocasiones nos mostrara un mensaje informándonos, que para que la nueva configuración surta efecto abra que reiniciar el Servicio de SQL Server.
Ahora nos quedará así:
5.3 Vamos al Menú de Inicio > Ejecutar y escribimos services.msc y le damos aceptar. De esta forma nos abrirá la Consola de Administración de Servicios. Nos desplazamos hasta el Servicio con nombre “SQL Server (MSSQLSERVER)”, nos situamos encima y pulsamos el botón derecho del ratón, seleccionando; reiniciar. Con esto aplicaremos los cambios efectuados en el paso anterior.
5.4 SI estamos utilizando SQL Server con nombre de instancia y sin emplear un número concreto de puerto TCP/IP, debemos habilitar el servicio SQL Server Browser, que se encuentra en la misma ventana de Servicios con el nombre de “SQL Server Browser”. Nos situamos encima y con el botón derecho del ratón pulsamos en Propiedades, o bien podemos hacer doble click, es lo mismo.
En el Tipo de Inicio, seleccionamos Automático y pulsamos Iniciar para que el
Servicio arranque. Aceptar para cerrar la pantalla.
Este Servicio comporta ciertos riesgos de seguridad que deben ser considerados, pues existen otras alternativas a utilizar como configurar el Cliente de SQL Servidor con el Alias del Servidor, o utilizar la conexión incorporando el puerto de TCP/IP a usar, por defecto en SQL Server es el 1433.
5.4 Y por último, en caso de tener habilitado el Firewall de Windows, cosa que deberíamos tener por Seguridad, deberemos configurarlo para que los Servicios de SQL Server y SQL Browser puedan comunicarse con el exterior. Vamos a Menú de Inicio , hacemos clic en Ejecutar , escribimos firewall.cpl y pulsamos
Aceptar. Nos muestra esta ventana:
Pulsamos en “Permitir un programa a través del Firewall de Windows” nos muestra:
Pulsamos en Agregar programa nos muestra la ventana:
Pulsamos en Examinar e introducimos la carpeta donde se encuentra el Servicio de SQL Server: “C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn” en la misma seleccionamos el programa: “sqlservr.exe” y pulsamos Aceptar. Repetimos la operación para añadir el SQL Server Browser que se encuentra en la carpeta: “C:\Program Files\Microsoft SQL Server\90\Shared”. Seleccionamos el programa: “sqlbrowser.exe” y pulsamos Aceptar. Veremos que ambas excepciones nos aparecen en la pantalla de Configuración del Firewall.
Y con esto ya tenemos configurado nuestro Servidor SQL 2008 para permitir
Conexiones desde cualquier ordenador de nuestra red.
Las nuevas políticas de Seguridad de Microsoft incorporan restricciones a la hora de comenzar a usar SQL Server 2008. Los Servicios que antes estaban habilitados por defecto, ahora no lo están, y es función del Administrador ir habilitándolos según las necesidades de uso del mismo.
Una de las cuestiones más importantes es la de Admitir Conexiones Remotas en nuestro Servidor. A fin de habilitarlas y asegurarnos que se pueden conectar desde otros ordenadores debemos seguir unos sencillos pasos:
5.1 Abriremos SQL Server Management Studio, nos situamos encima de la instancia de nuestro Servidor y pulsamos botón derecho, Propiedades, seleccionamos Conexiones, nos mostrara la siguiente pantalla:
Ahora marcamos el checkbox: “Permitir conexiones remotas con este servidor” y pulsamos aceptar.
5.2 Vamos al Menú de Inicio > Programas > Microsoft SQL Server 2008 > Herramientas de Configuración > Administrador de Configuración de SQL Server, aparece la siguiente ventana:
Seleccionamos la Configuración de red de SQL Server y luego Protocolos de MSSQLSERVER. Como podemos observar, por defecto solo tiene habilitado el protocolo de Memoria compartida, el resto están deshabilitados. Básicamente es el tipo de protocolo que se usa, cuando nos conectamos a SQL Server desde el mismo Servidor.
Lo que debemos hacer es habilitar los protocolos: “Canalizaciones con nombre” y “TCP/IP”. Para lo cual, pulsamos con el botón derecho del ratón encima de los mismos y pulsamos Habilitar. En las dos ocasiones nos mostrara un mensaje informándonos, que para que la nueva configuración surta efecto abra que reiniciar el Servicio de SQL Server.
Ahora nos quedará así:
5.3 Vamos al Menú de Inicio > Ejecutar y escribimos services.msc y le damos aceptar. De esta forma nos abrirá la Consola de Administración de Servicios. Nos desplazamos hasta el Servicio con nombre “SQL Server (MSSQLSERVER)”, nos situamos encima y pulsamos el botón derecho del ratón, seleccionando; reiniciar. Con esto aplicaremos los cambios efectuados en el paso anterior.
5.4 SI estamos utilizando SQL Server con nombre de instancia y sin emplear un número concreto de puerto TCP/IP, debemos habilitar el servicio SQL Server Browser, que se encuentra en la misma ventana de Servicios con el nombre de “SQL Server Browser”. Nos situamos encima y con el botón derecho del ratón pulsamos en Propiedades, o bien podemos hacer doble click, es lo mismo.
En el Tipo de Inicio, seleccionamos Automático y pulsamos Iniciar para que el
Servicio arranque. Aceptar para cerrar la pantalla.
Este Servicio comporta ciertos riesgos de seguridad que deben ser considerados, pues existen otras alternativas a utilizar como configurar el Cliente de SQL Servidor con el Alias del Servidor, o utilizar la conexión incorporando el puerto de TCP/IP a usar, por defecto en SQL Server es el 1433.
5.4 Y por último, en caso de tener habilitado el Firewall de Windows, cosa que deberíamos tener por Seguridad, deberemos configurarlo para que los Servicios de SQL Server y SQL Browser puedan comunicarse con el exterior. Vamos a Menú de Inicio , hacemos clic en Ejecutar , escribimos firewall.cpl y pulsamos
Aceptar. Nos muestra esta ventana:
Pulsamos en “Permitir un programa a través del Firewall de Windows” nos muestra:
Pulsamos en Agregar programa nos muestra la ventana:
Pulsamos en Examinar e introducimos la carpeta donde se encuentra el Servicio de SQL Server: “C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn” en la misma seleccionamos el programa: “sqlservr.exe” y pulsamos Aceptar. Repetimos la operación para añadir el SQL Server Browser que se encuentra en la carpeta: “C:\Program Files\Microsoft SQL Server\90\Shared”. Seleccionamos el programa: “sqlbrowser.exe” y pulsamos Aceptar. Veremos que ambas excepciones nos aparecen en la pantalla de Configuración del Firewall.
Y con esto ya tenemos configurado nuestro Servidor SQL 2008 para permitir
Conexiones desde cualquier ordenador de nuestra red.
lunes, 5 de diciembre de 2011
ADMINISTRADOR DE USUARIOS
ADMINISTRADOR DE USUARIOS
Abrimos Microsoft SQL Server Management Studio y nos conectamos como administrador
Nos aparece con nuestra base de datos (DBACADEMICO) con la que vamos a trabajar y nos aparece de la siguiente manera
Nos vamos a Seguridad > click derecho en Inicios de Sesión > Nuevo inicio de Sesión
Donde ingresamos el nombre de nuestro usuario, hacemos clic en Autenticación de SQL Server e ingresamos la contraseña con la que queremos entrar a nuestro usuario que estamos creando y escogemos la base de datos (DBACADEMICO)
Nos dirigimos a Asignación de usuario donde escogemos nuestra base de datos (DBACADEMICO) y Aceptar
Antes de Autenticarnos con SQL Server, hacemos click derecho en PATY-PC/SQLEXPRESS…. >PROPIEDADES > SEGURIDAD , donde tiene que estar Modo de Autenticación de Windows y SQL Server, este nos da permiso de autenticarnos con SQL Server y Aceptar
Nos desconectamos y nos volvemos a conectar como Usuario, donde ingresamos el nombre del usuario que creamos y su contraseña
Una vez que estamos como usuario, nos vamos a la base de datos (DBACADEMICO) pero no podemos ver las tablas porque no hemos dado permiso de leer y escribir, sino solo modificar
Vamos a dar a continuación los permisos respectivos
Nos desconectamos y nos conectamos como Administrador y hacemos lo siguiente:Seguridad > Inicios de Sesión > doble click en Practica > Asignación de Usuarios > Escogemos nuestra base de datos y en la parte de abajo seleccionamos db_datareader y db_datawriter (permiten leer y escribir los datos de nuestra base de datos) y Aceptar
Probamos si ya podemos leer los datos
Podemos observar que ya podemos mirar sus tablas
Realizamos una consulta para ver si podemos ver los datos.
Vamos a denegar el permiso de select a la tabla estudiantes
Nos desconectamos y nos conectamos como Administrador en donde y hacemos lo siguiente:
Base de Datos > DBACADEMICO > Seguridad > Usuarios y doble click en Practica > Elementos que pueden protegerse > Buscar > Todos los objetos de los tipos > Aceptar
Escogemos el objeto > Tablas y Aceptar
Nos muestra lo siguiente:
Donde vamos a denegar el select estudiante
También podemos denegar por columnas, en este caso vamos a denegar la columna id_estudiante de estudiantes:
Permisos de Columna y denegamos al id_estudiante > Aceptar > Aceptar
Nos desconectamos y nos volvemos a conecta como Usuario (Practica)
Probamos en una consulta e ingresamos select * from estudiantes donde tiene que aparecernos todos los datos de esa tabla, Pero al nosotros haber denegado nos aparece el error que nos muestra en la imagen
Pero si seleccionamos una columna que no está denegada como es nombres, si nos va a coger porque esta no está denegada, o cualquier columna que no hayamos denegado
Por Ultimo vamos a quitar todos los permisos de una tabla completa
Nos desconectamosy nos volvemos a conectar como Administrador
Base de datos > Seguridad > Usuarios > doble click en practica > Elementos que puedan protegerse > Buscar > Todos los objetos de los tipos > Aceptar > Tablas > Aceptar
Escogemos la tabla docentes y en la parte de abajo escogemos toda esa columna y denegamos > Aceptar
Nos desconectamos y nos volvemos a conectar como Usuario (Practica) nos dirigimos a base de datos > DBACADEMICO > Tablas. Como podemos observar que la tabla docentes ya no nos aparece debido a que denegamos el permiso para poder ver esta tabla
VIDEO
Suscribirse a:
Entradas (Atom)