{"id":35,"date":"2011-08-30T22:18:53","date_gmt":"2011-08-31T03:18:53","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/israelmarcillo\/?p=35"},"modified":"2011-08-30T22:20:23","modified_gmt":"2011-08-31T03:20:23","slug":"sql-compact-edition","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/2011\/08\/30\/sql-compact-edition\/","title":{"rendered":"SQL Compact Edition"},"content":{"rendered":"<p><a href=\"http:\/\/blog.espol.edu.ec\/israelmarcillo\/files\/2011\/08\/head_sql_compact.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.espol.edu.ec\/israelmarcillo\/files\/2011\/08\/head_sql_compact-300x56.jpg\" alt=\"\" title=\"head_sql_compact\" width=\"300\" height=\"56\" class=\"alignnone size-medium wp-image-37\" srcset=\"https:\/\/blog.espol.edu.ec\/israelmarcillo\/files\/2011\/08\/head_sql_compact-300x56.jpg 300w, https:\/\/blog.espol.edu.ec\/israelmarcillo\/files\/2011\/08\/head_sql_compact.jpg 818w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><br \/>\nSQL Compact Edition 4 ofrece a los desarrolladores web que est\u00e1n construyendo distintos proyectos, la posibilidad de aprovechar el almacenamiento de base de datos mediante un motor de base de datos incorporado y gratuito.<br \/>\nSQL Server Compact Edition (SQL Server CE) es el motor de base de datos para PocketPC, su creaci\u00f3n y funcionamiento est\u00e1 basado en el proveedor de datos de .NET Compact Framework el cual fue desarrollado con tecnolog\u00eda .NET de Microsoft.<\/p>\n<p>Un proveedor de datos de .NET Compact Framework para SQL Server CE describe una colecci\u00f3n de clases utilizada para tener acceso a una base de datos de SQL Server CE, los dispositivos basados en Windows CE o Windows Mobile obtienen mediante la invocaci\u00f3n de este gestor un entorno administrado de base de datos similar a los grandes repositorios, tales como Informix u Oracle. Con SqlServerCe, se pueden crear bases de datos de SQL Server CE en un dispositivo m\u00f3vil y establecer conexiones con las bases de datos de SQL Server que se encuentran en el dispositivo o en un servidor remoto.<br \/>\n<a href=\"http:\/\/blog.espol.edu.ec\/israelmarcillo\/files\/2011\/08\/mobile_devices_x_560.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.espol.edu.ec\/israelmarcillo\/files\/2011\/08\/mobile_devices_x_560-300x167.jpg\" alt=\"\" title=\"mobile_devices_x_560\" width=\"300\" height=\"167\" class=\"alignnone size-medium wp-image-36\" srcset=\"https:\/\/blog.espol.edu.ec\/israelmarcillo\/files\/2011\/08\/mobile_devices_x_560-300x167.jpg 300w, https:\/\/blog.espol.edu.ec\/israelmarcillo\/files\/2011\/08\/mobile_devices_x_560.jpg 560w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p><strong>Caracter\u00edsticas Principales<\/strong><br \/>\n\u2022\tSQLCe acepta sintaxis Transact-SQL, lo que lo vuelve facilmente escalable a sus hermanos mayores (SQL Express Edition, Standard Edition, etc). A\u00fan as\u00ed a la hora de portar c\u00f3digo desde\/hacia otro SQL Server es necesario tener en cuenta algunos puntos, por ejemplo: los tipos de datos en SQLCe, son un subconjunto de los disponibles para SQL Express Edition.<br \/>\n\u2022\tNo pueden utilizarse Stored Procedures, esta limitaci\u00f3n es clave a la hora de pensar en escalabilidad. Puede ser el punto que nos lleve a inclinarnos por SQL Express Edition. M\u00e1s adelante, en una comparaci\u00f3n entre SQLCe y SQL EE voy a resumir algunas razones por las que podr\u00eda prescindirse de Stored Procedures.<br \/>\n\u2022\tUna base de datos SQLCe se almacena en un \u00fanico archivo, lo que facilita la transferencia de bases de datos individuales.<br \/>\n\u2022\tSQLCe es un conjunto de librer\u00edas de alrededor de 2Mb, que pueden ser distribu\u00eddas con nuestra aplicaci\u00f3n sin necesidad de registrar componentes, ni servicios, por lo tanto, no se necesitan privilegios de administrador durante la instalaci\u00f3n, y los recursos de memoria y espacio en disco son m\u00ednimos.<br \/>\n\u2022\tDado el tipo de dispositivos en los que SQLCe pretende funcionar (desde notebooks, pc's de escritorio a pocket pcs y smartphones), cuenta con caracter\u00edsticas de seguridad, y protecci\u00f3n contra errores (robo, perdida de energ\u00eda) que son exclusivos para estas plataformas.<\/p>\n<p>Herramientas para la sincronizaci\u00f3n de datos con SQL Server 2005<br \/>\nSQL Compact Edition y SQL Express Edition se presentan como las dos opciones, ambas gratuitas, a la hora de implementar bases de datos locales en PC's de escritorio (Windows XP\/Vista o Tablet PC), en cambio la opci\u00f3n es clara para dispostitivos m\u00f3viles (SQLCe), y para bases de datos centrales, multiusuario (SQL Express).<br \/>\nStored Procedures<br \/>\nPara los que est\u00e9n acostumbrados a trabajar con bases de datos centrales, de gran escala, con m\u00faltiples usuarios accediendo concurrentemente con diversos privilegios, resulta inmediato basar la capa de datos en Stored Procedures, las hist\u00f3ricas razones de esto son 3, voy a resumir porque estas razones podr\u00edan no tener tanto peso en un escenario muy distinto, como es una base de datos embebida, local y monousuario (escenario al que apunta SQL Ce).<br \/>\n\u2022\tRendimiento: Los stored procedures permiten ejecutar c\u00f3digo de acceso a datos, optimizado para este uso. Sin embargo teniendo un solo usuario, sobre una base de datos local, implica que las consultas no llegar\u00e1n con mayor concurrencia que los clicks de un usuario, por lo tanto (en lo que a performance se refiere) resulta aceptable codificar esta l\u00f3gica procedural en la capa de datos de la aplicaci\u00f3n.<br \/>\n\u2022\tAbstracci\u00f3n: Acceder a los datos \u00fanicamente con stored procedures, es una forma de construir una capa de abstracci\u00f3n sobre \u00e9stos, sin embargo tanto el motor de SQLCe como las bases de datos pueden ser distribu\u00eddas y versionadas junto con la aplicaci\u00f3n, y el beneficio de mantener esa abstracci\u00f3n ya no resulta tan evidente.<br \/>\n\u2022\tSeguridad: Una vez m\u00e1s, los stored procedures permiten restringir el acceso a los datos, permitiendo \u00fanicamente ciertas operaciones sobre \u00e9stos, sin embargo la base de datos es distribu\u00edda con la aplicaci\u00f3n y el usuario es \u00fanico, en este escenario tienen m\u00e1s sentido otras medidas de seguridad, como encriptar la base de datos, e incluir en \u00e9sta \u00fanicamente el subconjunto de datos que el usuario local necesita.<br \/>\n\u2022\tDicho esto, por supuesto hay que evaluar la escalibilidad de nuestra aplicaci\u00f3n, para evitar a toda costa verse en un futuro en la situaci\u00f3n de traducir procedimientos C#\/Vb.NET, a Transact-SQL.<br \/>\n\u2022\tRecursos, SQL Ce requiere de solo 2Mb en disco y un uso de memoria y procesador muy inferiores a SQL Express Edition, que al instalarse ocupa alrededor de 200Mb en disco, y al ser un servicio, se encuentra constantemente esperando ser invocado por una aplicaci\u00f3n cliente (a pesar de estar preparado para \"adormecerse\" en per\u00edodos de inactividad)<br \/>\n\u2022\tInstalaci\u00f3n, SQL Ce, puede distribuirse con nuestra aplicaci\u00f3n, de manera que no requiera privilegios de administrador para instalarse y poder controlar su versionado. Alternativamente puede (como SQL Express) instalarse mediante un MSI, y recibir actualizaciones de Windows Update.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SQL Compact Edition 4 ofrece a los desarrolladores web que est\u00e1n construyendo distintos proyectos, la posibilidad de aprovechar el almacenamiento de base de datos mediante un motor de base de datos incorporado y gratuito. SQL Server Compact Edition (SQL Server CE) es el motor de base de datos para PocketPC, su creaci\u00f3n y funcionamiento est\u00e1 [&hellip;]<\/p>\n","protected":false},"author":2449,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-35","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/users\/2449"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/comments?post=35"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":40,"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/posts\/35\/revisions\/40"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/media?parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/categories?post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/israelmarcillo\/wp-json\/wp\/v2\/tags?post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}