Acceso a Datos avanzado

Slides:



Advertisements
Presentaciones similares
Procedimientos almacenados en C#
Advertisements

FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Conexión a Bases de Datos
Acceso a Bases de Datos con Java
Conceptos fundamentales de ADO.NET
Madrid, junio de 2009 Seguridad en bases de datos: SQL Server 2005 y Oracle 10g.
SQL Sigla del nombre “Structured Query Language”.
integridad referencial
CRISTINA TIGLLA NOVENO F
VISTAS (VIEWS) DEFINICIÓN Y OBJETIVO DE LAS VISTAS.
Estadísticas en SQL Server Rocío Contreras Águila, Primer Semestre 2010.
Procedimientos de Almacenado
Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
BASE DE DATOS OBJETO RELACIONAL
Desarrollo de una Aplicación Web sobre tecnología Microsoft .NET
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo Introducción a PL/SQL Conceptos básicos.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
BASE DE DATOS MICROSOFT ACCESS
SQL Server Integration Services SSIS
¿QUÉ SON LAS BASES DE DATOS?
Data set Data table Base de datos con servidor de base de datos String conexión Objeto conexión.
Daniel A. Seara Director Regional MSDN NDSoft
Introducción ADO .Net.
Tema 3 J2EE Java Database Connectivity Temas Selectos de Cómputo Grupo 912.
SQL SERVER APLICADO (SSA010) Ariel Alexis Fierro Sáez DuocUC.
Clase 9 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
Acceso a datos con ADO.NET
SQL Lenguaje de consulta estructurado
Web Services Daniel Seara. Fundamentos Intercambio de información Procesamiento Sin intervención del usuario Acelerando tiempos de respuesta Normalización.
SQL SERVER Reporting Services
Subconsultas Avanzadas
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Componentes sintácticos
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
CONCEPTOS BASICOS SQL SERVER SEBASTIAN MARTINEZ GARCIA.
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
REALIZADO POR: MERINO MERINO JORGE MORI CORREA JHONATAM VIDARTE DELGADO JAVIER.
Bases de datos:MYSQL. ¿Qué es una base de datos? Colección de datos persistentes, relacionados y estructurados. Persistentes: se almacenan en archivos.
INSTRUCCIONES Elaboración de la Presentación:
Introducción a Bases de Datos en Microsoft Access Programación de Computadoras 2 Sección: P.
LENGUAJE SQL.
Structured Query Language (Lenguaje Estructurado de Consultas)
Universidad de Chile - Tupper 2007, Santiago - Fono/Fax: (56 2) cec.uchile.cl Módulo ECI - 11: Fundamentos de Redes de Computadores.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
PROCEDIMIENTOS ALMACENADOS Es una consulta almacenada en la base de datos en un servidor. Los P.A. Mejoran el Rendimiento Disminuyen el tráfico. Los P.A.
Lenguaje Estructurado de Consulta
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
SQL Sigla del nombre “Structured Query Language”.
Sistema informático de apoyo a la evaluación de la enseñanza IN.CO.
INSTRUCCIONES Elaboración de la Presentación:
 SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia de los lenguajes de programación.
Prof. Daniel Obando Fuentes
Materia: Desarrollo e implementación web Carrera: Ing. Informática Docente: M.I. Rosario de Alba Domínguez Rodríguez ALUMNA: Marissa Michelle Juárez Kim.
SQL Lenguaje Estructurado de Consulta MATERIA: diseñar sistemas de información ALUMNO: sarmiento flores Liliana Guadalupe GRUPO: 4° “A” TURNO: matutino.
BASE DE DATOS EDY GOMEZ C. Lic. En Informatica y Medios Audiovisuales
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
Qué es SQL? Sentencias básicas
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
UNIVERSIDAD LATINA IV. CONSULTAS AVANZADAS CON BASES DE DATOS. E.I. L.E. Prof. Ramón Castro Liceaga.
ACCESO A DATOS EN ASP.NET Controles de origen de datos Controles enlazados a datos.
VISUAL STUDIO. Paradigmas de Programación Funcionalidad Win16 Win32 COM MFC Componentes Servicios APIs Windows 3.0.
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
Transcripción de la presentación:

Acceso a Datos avanzado Daniel Seara

La cadena de conexión La mejor seguridad, es la seguridad integrada Disminuye la posibilidad de acceso no autorizado Facilita el manejo de permisos de acceso No requiere mayor mantenimiento del lado de la base Un nuevo usuario sólo debe agregarse al dominio y al grupo adecuado en un solo punto administrativo

La cadena de Conexión (2) Cuando no podemos acceder a la seguridad del dominio, entonces usamos seguridad de SQL Server Proveedores externos de sitios Requiere mayor cuidado en la configuración de la cadena de conexión Encriptación Almacenamiento en ubicaciones no comunes

Espacios de nombres System.Data System.Data.Common System.Data.SqlClient System.Data.OleDb … Microsoft.SqlServer.Server

System.Data Fundamento de la infraestructura de acceso a datos Contiene clases de definición base de los objetos de datos DataColumn DataType DataRow DataTable DataSet …

System.Data.Common Clases base que determinan la funcionalidad de otras clases en los espacios de nombres específicos DbDataAdapter DbCommand DbConnection DbDataReader …

System.Data.SqlClient Específica para acceder a bases de datos SQL Server© Optimizada en su comunicación con dicha base Implementa formas específicas de los mismos objetos existentes en Common por herencia SqlDataAdapter SqlCommand SqlConnection …

System.Data.OleDb Utiliza los proveedores OleDb para acceder a cualquier base de datos compatible, heredando de Common OleDbDataAdapter OleDbCommand OleDbConnection

Microsoft.SqlServer.Server Permite acceder a funcionalidad de SQL Server© que no es común a otras bases de datos Incluye la funcionalidad de implementación de CLR dentro de SQL Server 2005 SqlContext El contexto en el cual se está ejecutando un assembly dentro de un servidor SQL Server SqlPipe Objeto utilizado para hacer que un CLR PA retorne un conjunto de datos

Obteniendo datos (CLR) Command DataReader Connection GetByte(n) GetString(n) GetInt32(n) … DataAdapter DataReader Connection Command DataSet

Obteniendo datos (CLR) (2) Connection Command DataReader GetByte(n) GetString(n) GetInt32(n) … DataAdapter Connection Command DataReader DataSet TableAdapter Connection Command DataReader DataTable

Obteniendo Datos (SQL) SELECT * FROM Oradores SELECT Id, EsInternacional, EsRegional, EsGenerico, EsINETA FROM Oradores

Obteniendo Datos (SQL) Sentencias SQL Excepto que sean muy similares con alguna anterior, requieren un análisis completo cada vez que se ejecutan Si sólo varía el valor de los argumentos utilizados, SQL Server es capaz de mantener en caché las sentencias Procedimientos Almacenados Sólo consumen el tiempo de la obtención de datos Permiten implementar mejores mecanismos de autorización de acceso

Actualizando datos (CLR) Connection Command ExecuteNonQuery DataAdapter TableAdapter Connection CommandA CommandE CommandI Update

Actualizando datos (SQL) Actualizar Insertar Eliminar UPDATE Oradores SET Nombre = 'Nombre', Apellido = 'Apellido', EsInternacional = 1 where Id=3 INSERT INTO Oradores (Nombre, Apellido, EsInternacional) VALUES (N'Nombre', N'Apellido', 1) where Id=3 DELETE FROM Oradores WHERE (Id = 3)

Actualizando datos (SQL) (2) Procedimientos Almacenados Más rápidos Más seguros CREATE/ALTER Procedure [Oradores_Update] @Id int = null, @Nombre nvarchar(100) = null, @Apellido nvarchar(100) = null, @EsInternacional bit = null, @EsRegional bit = null, @Descripcion varchar(8000) = null, @UrlFoto nvarchar(100) = null, @EsGenerico bit = null, @EsINETA bit = null, @Passport nvarchar(200) = null, @EsAcademico bit = nulll AS Update [Oradores] SET [Id]=@Id, [Nombre]=@Nombre, [Apellido]=@Apellido, [EsInternacional]=@EsInternacional, [EsRegional]=@EsRegional, [Descripcion]=@Descripcion, [UrlFoto]=@UrlFoto, [EsGenerico]=@EsGenerico, [EsINETA]=@EsINETA, [Passport]=@Passport, [EsAcademico]=@EsAcademico where Id=@Id

Utilizando procedimientos almacenados Ejecutar cualquier sentencia SQL significa Control de sintaxis Control de validez de los objetos implicados Compilación Cálculo del plan de ejecución (Query Plan) Ejecución y obtención de resultados Ejecutar cualquier procedimiento almacenado significa (el resto se realiza al guardar el PA en la base de datos)

Utilizando procedimientos almacenados (2) Los PA no son el mejor lugar para implementar lógica de negocios … pero manipular grandes volúmenes suele ser mejor dentro de la misma base Cursores y tablas transitorias Armas de doble filo Consumen mucho proceso por implicar a la base tempdb No se optimizan adecuadamente en su ejecución, ya que se debe recalcular el Query Plan sobre ellas según se agregan datos

Asegurando la base de datos NUNCA usar sa Cuidar los datos Permitir acceso a las tablas significa provocar un punto de desastre Si se necesita autorizar el acceso directo a las tablas, considerar utilizar Vistas En la medida de lo posible, denegar el acceso a las tablas, y permitir la ejecución de procedimientos almacenados

Asegurando la base de datos (2)

Asegurando la base de datos (3)

Asegurando la base de datos (4)

Buenas Prácticas Las consultas deben ser específicas en cuanto a las columnas que deben devolver Select * from tabla  Un error común: denominar los procedimientos almacenados comenzando con sp_ Sp_ significa “system procedure” no “Store procedure”

Capa de acceso a datos Encapsular la funcionalidad en un componente común Reusable No vinculado a una base o aplicación en particular Definir en el mismo las funcionalidades esenciales parametrizadas Esto conlleva consumir más recursos de conexión a la base Implementar caché de acciones

Capa de acceso a datos (2)

Otras Referencias Arquitectura Data Access Application Block http://www.microsoft.com/spanish/msdn/arquitectura/default.asp Data Access Application Block http://msdn.microsoft.com/practices/guidetype/appblocks/default.aspx?pull=/library/en-us/dnpag2/html/daab.asp Community Enterpirse Library http://www.gotdotnet.com/codegallery/codegallery.aspx?id=295a464a-6072-4e25-94e2-91be63527327