Clase VII - Area para alumnos registrados
Download
Report
Transcript Clase VII - Area para alumnos registrados
Clase VII
DelioAlanis
Agenda
Bases de Datos Relacionales
SQL Server 2005
Instalación
Computer Manager
SQL Server Management Studio
Object Explorer
Project Management
Query Editor
Assisted Editors
SQLiMail
Sentencias Transact-SQL
Agenda
Bases de Datos Relacionales
SQL Server 2005
Instalación
Computer Manager
SQL Server Management Studio
Object Explorer
Project Management
Query Editor
Assisted Editors
SQLiMail
Sentencias Transact-SQL
Base de Datos Relacionales
Se organizan por Tablas
Bases de Datos Relacionales
Contiene Filas y Columnas
Una columna representa un “campo” en la tabla
Los valores de una columna tienen un “tipo de dato”
definido
Las tablas pueden contener Claves Primarias
(Primary Key) y/o Claves Foraneas
Utilizando Claves entre tablas obtenemos una
integridad referencial entre ellas
Utilización de Indices mejora el rendimiento en la
búsqueda
Ejemplo a continuación…
Bases de Datos Relacionales
Base de Datos Relacionales
Base de Datos Relacionales
Tipos de Relaciones
Integridad Referencial
Bases de Datos Relacionales
Uno a uno
Uno a varios
Varios a varios
Es un sistema de reglas
Mantiene la consistencia de los datos entre tablas
relacionadas
Actualizar y/o eliminar registros en cascada
Indices
Estructura de datos que permite recuperar filas rápidamente
Proporciona ordenación
Se define sobre una columna o varias o conjunto de
columnas
Agenda
Bases de Datos Relacionales
SQL Server 2005
Instalación
Computer Manager
SQL Server Management Studio
Object Explorer
Project Management
Query Editor
Assisted Editors
SQLiMail
Sentencias Transact-SQL
SQLServer 2005
SQLServer 2005
Instalación
Fácil de usar: Instalación basada en Windows Installer
Inspector de configuración del sistema para verificar la
máquina destino
Utilidades Command-line
para ejecución desatendida
e instalación remota
Permite instalar o
desinstalar componentes
SQL Server 2005 desde
Add/Remove.
Logging de error mejorado y
reporte de fallas
SQLServer 2005
Computer Manager
SQLServer 2005
Computer Manager combina la funcionalidad de las siguientes
herramientas SQL Server en la versión anterior:
Server Network Utility
Client Network Utility
Server Manager
Los siguientes servicios son administrados por el “Computer Manager” :
SQL Server
SQL Server Agent
SQL Server Analysis Services
Report Server
Microsoft Search
Distributed Transaction Coordinator (DTC)
Full Text Search
El computer manager usa el WMI para cambiar los seteos del server y es
parte del Microsoft Management Console (MMC)
SQLServer 2005
SQLServer 2005
Computer Manager
SQLServer 2005
SQL Server Management Studio
Provee un entorno centralizado integrado para la
gestión de múltiples servers, tareas y servicios
Las características incluyen:
SQLServer 2005
Explorador de Objetos
Editores Asistidos
Ventana de resumen
Extensiones para Editor de Consultas de SQLCMD
Explorador de Templates
Manejo de errores mejorado
Administración de Proyectos
Dialog Boxes no modales
Scripting y Schedulling mejorado
SQLServer 2005
SQLServer 2005
SQL Server Management Studio
SQLServer 2005
Object Explorer (Explorador de Objetos)
Muestra los componentes SQL en una jerarquía de árbol grafica
Permite al usuario expandir múltiples nodos del árbol
simultáneamente.
Permite al
usuario filtrar un
nodo basado en
uno o múltiples
criterios de filtro.
Provee una
interface de
usuario amigable
para la
administración
SQLServer 2005
SQLServer 2005
Project Management
(Administrador de Proyectos)
SQLServer 2005
Las funcionalidades disponibles para administrar un proyecto
son:
Organiza scripts relacionados dentro de un único proyecto
Mantiene el control de versiones sobre scripts (Si VSS esta
disponible)
Conexión almacenada y opciones resultantes con cada script
SQLServer 2005
Query Editor (Editor de consultas)
Permite la ejecución de scripts T-SQL y sentencias contra SQL Server y SQL
Server Mobile Edition,
Permite ejecución de expresiones:
multidimensionales (MDX)
data mining (DMX)
XMLA
Escritura de scripts en
modo desconectado
Ayuda dinámica
Display mejorado para
resultados XML.
SQLServer 2005
Resultados en forma
XML cuando usa la
columna XML
Funciones XML para
Transact-SQL
Legibilidad mejorada
por el uso de colorcoding
SQLServer 2005
Assisted Editors & Templates
(Editores Asistidos)
Editores asistidos para creación de objetos SQL Server con
propiedades de texto como stored procedures, triggers y
funciones
Ejemplo de cómo acceder a Editores asistidos:
SQLServer 2005
Abrir SQL Server Management Studio
Explorar Object Browser. Seleccionar SQL Instance → Databases→
<database> →Programmability→ Stored Procedures
Click derecho sobre Stored Procedures → New Stored Procedure
Esto abrirá el editor asistido con información de cabecera para crear
el stored procedure
SQLServer 2005
SQLServer 2005
Assisted Editors & Templates
SQLServer 2005
SQLiMail
Usa SMTP para enviar mail. No necesita Outlook o MAPI
extendida
Corre out-of-process desde SQL Server para confiabilidad
Provee background y entrega asíncrona para escalabilidad
Failover múltiple de cuentas SMTP y perfiles permitidos
Cluster y compatibilidad con 64-bit
Servicio esta off por default
Fuerza la seguridad para perfiles de usuario
SQLServer 2005
El tamaño y tipo de adjuntos pueden ser configurados
Logs activity para SQL Server y monitores de rendimiento
SQLServer 2005
SQL-CLR
SQLServer 2005
Beneficios del CLR
Beneficios para la Programación
Assemblies
La Nueva Arquitectura de
SQL Server 2005
Confiabilidad
Seguridad
Configuración del CLR en SQL Server 2005
Creación y distribución
Functions
Tipos de datos definidos por el usuario
Triggers
Performance Tuning
SQLServer 2005
Beneficios del CLR
SQLServer 2005
Modelo de programación mejorado
User Defined Types y Aggregates
Seguridad mejorada
Compatibilidad Cross-Language
Performance y Escalabilidad
SQLServer 2005
Beneficios para la Programación
SQLServer 2005
Modelo de programación mejorado
Soporte en Visual Studio 2005
Fácil construcción y distribución de soluciones utilizando el
entorno de Visual Studio
Mejor debugging
SQLServer 2005
Assemblies
SQLServer 2005
Assemblies archivos ejecutables que actúan como punto de
entrada para una aplicación
Contienen el código que el CLR ejecuta
Estos no son creados si no poseen un manifest asociado
(información de la metadata)
Contienen toda la información requerida acerca de tipos y
recursos que la aplicación necesita para ejecutarse
Dependencia entre assemblies
SQLServer 2005
La Nueva Arquitectura de SQL Server 2005
La Hosting layer provee coordinación para:
SQLServer 2005
Carga de los Assembly
Manejo de Memoria
Modelo de Seguridad
Confiabilidad
Threads & Fibers
Deteccion de Deadlock
Contexto de Ejecución
SQL OS
Manejador de Conexiones
Manejo de Memoria
Manejo de Thread
Servicios de Sincronización
SQL Engine
CLR
Hosting
Layer
SQL OS
Windows
SQLServer 2005
Confiabilidad
SQLServer 2005
AppDomain
AppDomain, el dominio de la aplicación, es un dominio aislado para
la ejecución.
Todos los assemblies de un usuario en particular residen en un
AppDomain
Assemblies de un usuario no pueden ser referenciados por ningun
otro usuario
AppDomain aísla completamente todos los recursos que el código
.NET desde los recursos de SQL Server
SQLServer 2005
Seguridad
La seguridad en el CLR es definida por Code Access Security
(CAS)
En CAS, los permisos son seteados en tres niveles:
SQLServer 2005
Políticas de Maquina: Son las políticas para todo el código
manejado por la maquina que ejecuta el SQL Server
Políticas de Usuario: Son las políticas para el código manejado que
sea hosteado por un proceso. En SQL Server, esta política es
especifica para la cuenta de Windows que levanta los servicios para
SQL Server
Políticas de Host : Son las políticas seteadas por el Host del CLR,
concretamente para el código manejado ejecutándose en ese
servidor
SQLServer 2005
Configuración del CLR en SQL Server 2005
SQLServer 2005
La configuración del CLR se encuentra en las opciones de
advanced server configuration
Para deshabilitar la ejecución del CLR :
sp_configure ‘show_advanced_options’, 1
GO
RECONFIGURE
GO
sp_configure ‘clr enabled’, 0
GO
RECONFIGURE
GO
SQLServer 2005
Creación y distribución
Build
SQLServer 2005
.NET database objects
written in C#,VB.NET….
SQL SERVER
Assembly
SQL Data Definition:
create assembly …
create function …
create procedure …
create trigger …
create type …
SQLServer 2005
Manejando Assemblies
Cargar un Assembly
Para cargar una dll llamada ‘sqlclr.dll’ en un assembly con permisos
‘SAFE’ :
SQLServer 2005
CREATE ASSEMBLY SQLCLR
FROM ‘C: \YukonApps\sqlclr.dll’
With PERMISSION_SET = SAFE
SQLServer 2005
SQLServer 2005
Detalles del Assembly:
Sys.assemblies
Assembly
Create
Meta Data de los Assemblies
Codigo fuente:
Sys.assembly_files
Otra informacion en la metadata
•SYS.OBJECTS
•SYS.ASSEMBLY_MODULES
•SYS.ASSEMBLY_TYPES
Referencias:
Sys.assembly_references
SQLServer 2005
Creando Stored Procedures CLR
SQLServer 2005
CREATE ASSEMBLY Module15_assembly
FROM ‘\\MachineName\Module15\bin\Debug\Module15_library.dll’
GO
CREATE PROCEDURE NewProc
@name varchar(255)
AS
EXTERNAL NAME
Module15_assembly.Class1.getSSNbasedOnName
SQLServer 2005
Functions
Tipos:
SQLServer 2005
Scalar
Table Valued
Ejemplo de creacion de una UDF
CREATE ASSEMBLY ValidateString
FROM '\\MachineName\Module15\bin\Debug\validateString.dll';
GO
CREATE FUNCTION ValidateAreaCode ()
RETURNS int
AS EXTERNAL NAME
ValidateString.StringcheckClass.validateString;
GO
SQLServer 2005
Tipos de datos definidos por el usuario
Para extender los tipos de datos escalares
Soporte a indexado, queries distribuidos, integridad referencial,
replicación y operaciones bcp sobre columnas definidas por
UDTs
Para distribuir un UDT, se deben seguir los siguientes pasos en
este orden:
SQLServer 2005
Definir el UDT como una clase de lenguaje .NET
Distribuir el assembly que referencie el objeto CLR creado
Crear el tipo que referencie al assembly registrado
CREATE ASSEMBLY GISmeasures
FROM '\\MachineName\Module15\bin\Debug\GIS.dll' ;
GO
CREATE TYPE area
EXTERNAL NAME GISmeasures.GISclass.latitudeLongitude ;
GO
SQLServer 2005
Triggers
Standard: Fuerzan reglas de negocios e integridad referencial de
datos
SQLServer 2005
Insert, Delete, Update
DDL Triggers: Permiten al usuario prevenir cambios al schema
de la base de datos o disparar algun otro cambio en el schema
changes en respuesta a alguna otra modificacion de la base de
datos
Create, Alter, Drop
SQLServer 2005
Performance - CLR Vs T-SQL
Performance
SQLServer 2005
Puede reemplazar cursores T-SQL del lado del servidor
Grandes mejoras en la performance
Para llevar adelante grandes accesos a datos o implementar un
spool de datos en estadios intermedios
Nota: Si no se usan las UDAgg, se debe considerar la escritura
de stored procedures usando código manejado para un mejor
aprovechamiento en la performance sobre T-SQL
SQLServer 2005
Performance Tuning
Utilizar la herramienta Profiler para monitorear los planes de
ejecución y el funcionamiento de SQL con los objetos .NET
Observar los siguientes contadores
SQLServer 2005
Contadores de SQL Server
Contadores de .NET CLR
Relacionar los contadores de performance con los datos del
profiler
Agenda
Bases de Datos Relacionales
SQL Server 2005
Instalación
Computer Manager
SQL Server Management Studio
Object Explorer
Project Management
Query Editor
Assisted Editors
SQLiMail
Sentencias Transact-SQL
Sentencias Transact-SQL
Transact-SQL
El Lenguaje de programación Transact-SQL
Tipos de intrucciones de Transact-SQL
Elementos de sintaxis del Transact-SQL
Transact-SQL
Sentencias Transact-SQL
Implementa el estándar ISO de nivel básico de la
especificación ANSI-SQL99
Se pueden ejecutar desde cualquier producto que
cumpla los requisitos básicos
Incluye una funcionalidad ampliada
Sentencias Transact-SQL
Transact-SQL
Tipos de intrucciones
Instrucciones del Lenguaje de definincion de datos (DDL)
Instrucciones del Lenguaje de Control de Datos (DCL)
Instrucciones del Lenguaje de tratamientos de datos (DML)
Sentencias Transact-SQL
Tipos de intrucciones
Instruciones del Lenguaje de definicion de datos
Definen los objetos de la base de datos
Transact-SQL
CREATE nombreobjeto
ALTER nombreobjeto
DROP nombreobjeto
Deben tener los permisos adecuados
Sentencias Transact-SQL
Tipos de intrucciones
Instruciones del Lenguaje de control de datos
Establecer o cambiar los permisos
Transact-SQL
GRANT
DENY
REVOKE
Deben tener los permisos adecuados
Sentencias Transact-SQL
Tipos de intrucciones
Instrucciónes del Lenguaje de Tratamiento de datos
Las instrucciones DML se utilizan para cambiar datos
o recuperar información
Transact-SQL
SELECT
INSERT
UPDATE
DELETE
Deben tener los permisos adecuados
Sentencias Transact-SQL
Elementos de la sintaxis de Transact-SQL
Directivas de proceso por lotes
GO
EXEC
Transact-SQL
Envia lotes de instrucciones de TSQL a las herramientas y
utilidades
No se trata, realmente, de una instrucción de TSQL
Ejecuta una funcion definida por el usuario, un
prodecimiento de sistema, un prodecimiento definido por el
usuario o un prodecimiento almacenado extendido
Controla la ejecución de una cadena de caracteres dentro de
un lote de TSQL
Sentencias Transact-SQL
Elementos de la sintaxis de Transact-SQL
Transact-SQL
Comentarios
Comentarios en línea
Comentarios en Bloque
Sentencias Transact-SQL
DataTypes
Números Enteros
Bigint
Int
Transact-SQL
Números enteros entre 2E15 (-32.768) y 2E-15 (32.767)
Tinyint
Números enteros entre -2E31 (-2,147,483,648 ) y 2E31(2,147,483,647 )
Smallint
Números enteros entre -2E63 (-9.223.372.036.845.775.808) y 2E63 (9.223.372.036.845.775.807)
Números enteros entre 0 y 255
Bit
Bit
Enteros entre 0 y 1
Sentencias Transact-SQL
DataTypes
Decimal y númericos
Decimal
Numeric
Función equivalente a decimal
Money & SmallMoney
Money
Transact-SQL
Dátos númericos con precisión fija de -10E38 a 10E-38
Valores monetarios entre -2E63 y 2E63-1 con precisión de hasta
10 dígitos.
SmallMoney
Valores monetarios entre -214.748,3648 y +214.748,3647
Sentencias Transact-SQL
DataTypes
Números aproximádos
Float
Real
Dátos numéricos de punto flotante entre -3.40E+38 y 3.40E+38
Datetime & Smalldatetime
Datetime
Transact-SQL
Dátos numéricos de punto flotante entre -1.79E+308 y
1.79E+308
Fechas entre 1 de Enero del 1753 y 31 de diciembre de 9999 con
una precisión de 3 milésimas de segúndo
Smalldatetime
Fechas entre 1 de Enero de 1900 y 6 de Junio de 2079, con una
precisión de 1 minúto
Sentencias Transact-SQL
DataTypes
Caracteres
Char
Varchar
Transact-SQL
Carácter de longitud fija (unicode) con un máximo de 4000 caracteres
Nvarchar
Caracteres de longitud variable (no unicode) con un máximo de
2.147.483.647 caracteres
Nchar
Caracteres de longitud variable (no unicode) con un máximo de 8000
caracteres
Text
Carácter de longitud fija (no unicode) con un máximo de 8000
caracteres
Caracteres de longitud variable (unicode) con un máximo de 8000
caracteres
Ntext
Caracteres de longitud variable (unicode) con un máximo de
1,073,741,823 caracteres
Sentencias Transact-SQL
DataTypes
Binary
Binary
Varbinary
Datos binarios de longitud variable con un máximo de 8000
bytes
Image
Transact-SQL
Datos binarios de longitud fija con un máximo de 8000 bytes
Datos binarios de lóngitud variable con un máximo de
2.147.483.647 bytes
Sentencias Transact-SQL
Operadores
Transact-SQL
Operadores Aritméticos
Operadores de Asignación
Operadores Bitwise
Operadores de Comparación
Operadores Lógicos
Operadores de Concatenación
Operadores Unarios
Sentencias Transact-SQL
Operadores Aritméticos
Realizan operaciones matemáticas entre dos
expresiones
Operadores aritméticos
Transact-SQL
+ (suma)
- (resta)
* (Muliplicación)
/ (División)
% (Módulo) , devuelve el resto Devuelve el resto entero de
una división. Por ejemplo, 12 % 5 = 2 porque el resto de 12
dividido entre 5 es 2.
Sentencias Transact-SQL
Operadores de Asignación
Transact-SQL
Operadores de Asignación
Sentencias Transact-SQL
Operadores bit a bit
Operadores bit a bit
& (operador bit a bit AND)
Realiza una operación lógica AND a nivel de bit entre dos
valores enteros.
| (operador bit a bit OR)
Realiza una operación OR lógica a nivel de bit entre dos
valores enteros dados que se convirtieron a expresiones
binarias dentro de instrucciones de Transact-SQL.
Transact-SQL
^ (operador bit a bit OR exclusivo)
Realiza una operación OR exclusivo a nivel de bit entre dos
valores enteros dados que se convierten a expresiones
binarias dentro de instrucciones de Transact-SQL.
Sentencias Transact-SQL
Operadores de comparación
Transact-SQL
Operadores de comparación
= (igual al)
> (mayor que)
< (menor que)
>= (mayor que o igual que)
<= (menor que o igual que)
<> (no es igual a)
!= (no es igual a)
!< (no es menor que)
!> (no es mayor que)
Sentencias Transact-SQL
Operadores lógicos
Transact-SQL
Comprueban la veracidad de alguna condición
Operadores Lógicos
ALL
AND
ANY
BETWEEN
EXISTS
IN
LIKE
NOT
OR
SOME
Sentencias Transact-SQL
Operadores de concatenación de cadenas
Permite concatenar cadenas de textos
Operadores de concatenación
Transact-SQL
Signo + (mas)
Sentencias Transact-SQL
Operadores unarios
Los operadores unarios realizan una operación sobre
una única expresión de cualquiera de los tipos de
datos de la categoría del tipo de datos numérico.
+ (positivo)
Es un operador unario que devuelve el valor positivo de una
expresión numérica (un operador unario).
- (negativo)
Es un operador unario que devuelve el valor negativo de una
expresión numérica (un operador unario).
Transact-SQL
~ (operador bit a bit NOT)
Realiza una operación NOT lógica a nivel de bit en un valor entero
dado que se convierte a una expresión binaria dentro de
instrucciones de Transact-SQL.
Sentencias Transact-SQL
Crear Tablas
La sintaxis para crear tablas es:
Transact-SQL
CREATE TABLE "table_name"
("column 1" "data_type_for_column_1",
"column 2“ "data_type_for_column_2",... )
Sentencias Transact-SQL
Sentencia de INSERT
La sintaxis para insertar registros es:
Transact-SQL
Insert into <tablename>
(<fieldname>, <fieldname>, <fieldname>)
Values
(@fieldname, @fieldname, @fieldname);
Sentencias Transact-SQL
INSERT FROM
Transact-SQL
Ésta técnica es usada para copiar datos desde una tabla a la
tabla indicada
La sintaxis para insertar copiando registros de otra tabla es
insert new_studentdetails
select id_number, passwd from studentdetails
Sentencias Transact-SQL
SELECT
Transact-SQL
Ej:
La sentencia SELECT es usada para seleccionar registros desde
una tabla de la base de datos
SELECT <Col_1>, <Col_2>,…
FROM <Table_name>
Sentencias Transact-SQL
SELECT INTO
La sentencia SELECT INTO es usado para copiar los registros
seleccionados de una tabla e insertarla en una tabla diferente al
mismo tiempo
La sintaxis es la siguiente:
SELECT Column1, Column2, Column3,
INTO Table2 FROM Table1
Transact-SQL
SELECT *
INTO Customers_copy FROM Customers
Sentencias Transact-SQL
DISTINCT
Transact-SQL
La clausula DISTINCT es usada para devolver sólo los valores
en la expresión especificada
Sentencias Transact-SQL
WHERE
La clausula WHERE es utilizada para seleccionar datos
condicionalmente en base a criterios especificados
SELECT * FROM Customers
WHERE LastName <> 'Smith‘
Transact-SQL
SELECT * FROM Customers
WHERE DOB > '1/1/1970‘
SELECT * FROM Customers
WHERE DOB >= '1/1/1970‘
Sentencias Transact-SQL
Transact-SQL
WHERE - EJEMPLO
Sentencias Transact-SQL
Transact-SQL
WHERE con LIKE
Sentencias Transact-SQL
Funciones de Agregado
Funciones de Agregado:
Transact-SQL
AVG
COUNT
MIN
MAX
SUM
STDEV
Sentencias Transact-SQL
Transact-SQL
Funciones de Agregado - Ejemplo
Sentencias Transact-SQL
Funciones Matemáticas
Funciones Matemáticas
Transact-SQL
ABS
RAND
SIN
COS
TAN
COT
SQRT
SQUARE
POWER
CEILING
FLOOR
EXP
Sentencias Transact-SQL
Funciones de Texto
Transact-SQL
Funciones de Texto
LEFT
RIGHT
LTRIM
RTRIM
REPLACE
SUBSTRING
STUFF
REVERSE
CHAR
LEN
LOWER
UPPER
Sentencias Transact-SQL
Funciones de Fecha
Funciones de Fecha
Transact-SQL
DATEADD
DATEDIFF
GETDATE
DAY
MONTH
YEAR…
Sentencias Transact-SQL
ORDER BY
Transact-SQL
La clausula ORDER BY es usado para ordernar los registros de
una sentencia SELECT previamente indicada
La sintaxis es la siguiente:
[ ORDER BY { order_by_expression [ ASC | DESC ] } [ ,...n] ]
Sentencias Transact-SQL
UPDATE
La sentencia UPDATE es utilizada para modificar los valores de
los registros especirficando algún criterio.
La sintaxis es la siguiente:
UPDATE tablename SET (campo1 = valor1, campo2 = valor2,…) WHERE
Campo4 = Criterio1
Transact-SQL
Sentencias Transact-SQL
DELETE
Ésta sentencia elimina los registros que especifiquemos dentro
de la clausula WHERE
La sintaxis es la siguiente:
DELETE FROM tablename Campo4 = Criterio1
Transact-SQL
Sentencias Transact-SQL
STORE PROCEDURE
Transact-SQL
Un procedimiento almacenado es un grupo de instrucciones
compiladas en un único plan de ejecución
Parámetros de salida, que pueden devolver datos (por ejemplo, un
valor entero o de carácter) o una variable de cursor (los cursores
son conjuntos de resultados que pueden devolver filas de una en
una).
Códigos de retorno, que siempre son un valor entero.
Un conjunto de resultados por cada instrucción SELECT contenida
en el procedimiento almacenado o en cualquier otro procedimiento
almacenado invocado por el procedimiento almacenado original.
Un cursor global al que se puede hacer referencia desde fuera del
procedimiento almacenado.
Sentencias Transact-SQL
Transact-SQL
STORE PROCEDURE – Crear un SP
Sentencias Transact-SQL
Transact-SQL
STORE PROCEDURE – Consumir
Demo
•Crear un Base de Datos con tablas, campos y registros