Lenguaje SQL de Bases de Datos Objeto-Relacionales, BDOR, y XML

IMPLEMENTACION DE BASE DE DATOS

DONAYRE CHACALTANA, Robert HUAMANI HUAMANCHA, Kety Gricelda ROJAS PURAY, Carlos Eugenio

VII-S1 ING. DE SISTEMAS UNIVERSIDAD NACIONAL SAN LUIS GONZAGA DE ICA

INDICE
1. Introducción a los Lenguajes de la Tecnología Relacional. 2. SQL. Lenguaje de Definición de Datos, DDL. 3. Sintaxis BNF en la creación de una tabla.
5.1 Pre-compilación y ejecución de un módulo SQL embebido en un lenguaje

anfitrión (host).
5.2 SQL. Lenguaje de Manipulación de Datos, DML

5.3 Insertando registros. 5.4 Recuperación de registros 5.5 Filas duplicadas. 5.6 Ordenando los resultados. 5.7 Renombras columnas. 5.8 Columnas calculadas. 5.9 Consultas con condiciones. 5.10 Contraste de comparación. 5.11 Contrastes de rango. 5.12 Contraste de correspondencia con patrón. 5.13 Contrastes de valor nulo. 5.14 Contrastes compuestos. 5.15 Combinación de consultas. 4. Condiciones para utilizar el operador UNION: 5. SQL. Lenguaje de Definición de Vistas.. 6. Estándares SQL:2005 y SQL:2008 r2 7. ESTANDARES SQL Server 2008 R2 Standard Edition 8. SOCKETS 9. SQL: 2008 Norma Internacional ISO 10. SQL:2003. Modelos de Datos Objeto-Relacional y SQL/XML. 11. Tecnología actual de Bases de Datos. 12. Tecnologías y especificaciones recientes de SQL/XML

Lenguaje SQL de Bases de Datos Objeto-Relacionales, BDOR, y XML
1. LENGUAJE DE Tecnología relacional En los primeros días de la informática, el proceso de la información se realizaba en enormes

sistemas mainframe y el acceso a los datos estaba, en gran medida, limitado a los profesionales de la TI. Las bases de datos tendían a ser de cosecha propia, y recuperar los datos de forma efectiva requería un profundo conocimiento de la base de datos. Si un usuario quería un informe especial, generalmente tenía que solicitarlo a un departamento central, siempre saturado de trabajo, y que normalmente no estaba disponible a tiempo para influir sobre las decisiones.

Aunque la tecnología relacional se desarrolló originalmente en la década de 1970 en mainframes, continuó en gran parte como proyecto de investigación hasta sus primeras apariciones en la década de 1980 en miniordenadores. Con la llegada de los PCs, el mundo pasó a una era de la

informática más "centrada en el usuario” con generadores de informes más agradables para el

usuario basados en SQL (el lenguaje de consulta introducido por la tecnología relacional). Los usuarios ya podían producir sus propios informes y consultas ad-hoc de la base de datos, y el uso de la tecnología relacional se disparó. El lenguaje SQL permite utilizar un lenguaje uniforme para hacer preguntas sobre una amplia variedad de datos. SQL funciona estructurando los datos de una forma muy sencilla y estándar: creación de un lenguaje de consulta elegante con el que hacer preguntas, llevaba consigo un una tabla bidimensional con filas y columnas. Aunque este sencillo modelo de datos permitía la pesado lastre. La complejidad inherente a las relaciones entre datos del mundo real no se adapta de forma natural al simple formato de filas y columnas, así que los datos a menudo se fragmentan en muchas tablas que deben unirse ("join") para llevar a cabo incluso tareas muy sencillas. Esto necesidad de hacer uniones ("join") de muchas tablas (que a menudo tienen uniones externas tienen que manejar datos complejos puede ser enorme.

provoca dos problemas: a) puede resultar muy complicado escribir las consultas debido a la complejas), y b) la carga general de proceso necesaria cuando las bases de datos relacionales

SQL se ha convertido en el estándar para la interacción con las bases de datos y para las

herramientas de generación de informes. Sin embargo, es importante señalar que aunque SQL ellas. Caché soporta SQL estándar como lenguaje de consulta y actualización utilizando una tecnología de base de datos multidimensional mucho más sólida y se ha ampliado para incluir posibilidades de objetos.

surgió a partir de las bases de datos relacionales, no tiene porque estar restringido por

2. SQL.LENGUAJE DE DEFINICION DE DATOS (DDL) sintaxis en BNF (DDL) Un lenguaje de definición de datos (Data Definition Language, DDL por sus siglas en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de definición de las estructuras que almacenarán los datos así como de los procedimientos o funciones que permitan consultarlos.

A diferencia de muchos lenguajes de descripción de datos, SQL utiliza una colección de verbos imperativo cuyo efecto es modificar el esquema de la base de datos, añadiendo, cambiando o eliminando las definiciones de tablas y otros objetos. Estas declaraciones se pueden mezclar libremente con otras sentencias SQL, por lo que el DDL no es realmente una lengua independiente. La declaración más común es CREATE TABLE. El lenguaje de programación SQL, el más difundido entre los gestores de bases de datos, admite las siguientes sentencias de definición: CREATE, DROP y ALTER, cada una de las cuales se puede aplicar a las tablas, vistas, procedimientos almacenados y triggers de la base de datos. Las principales funcionalidades de SQL como lenguaje de definición (DDL) son la creación, modificación y borrado de las tablas que componen la base de datos, así como de los índices, vistas, sinónimos, permisos, etc. que pudieran definirse sobre las mismas. Este documento introduce los comandos para el trabajo básico con tablas.

3. Sintaxis BNF en la creación de una tabla. CREATE [ {GLOBAL | LOCAL} TEMPORARY] TABLE <nombre de tabla> ( <definición de columna> | <definición de restricción de tabla>[, <definición de columna> | <definición de restricción de tabla>]…);

<definición de columna> ::= <nombre columna>{<tipo de dato>|<nombre dominio>} [<cláusula de defecto>] [<restricción de columna>…] <tipo de dato>::= CHAR[ACTER] | SMALLINT | INTEGER | DECIMAL | NUMERIC | REAL | FLOAT | DOUBLE PRECISION | CHARACTER VARYING | DATE | TIME | BIT | TIMESTAMP | INTERVAL | BIT VARYING <cláusula de defecto>::= DEFAULT {<literal>|<función de valor tiempo/fecha> | USER | SYSTEM | NULL } <restricción de columna>::= NOT NULL | <especificación de unicidad> |

<especificación de referencia> | <restricción de verificación> <especificación de unicidad>::= UNIQUE | PRIMARY KEY (<nombre columna> [, <nombre columna>…] ) NOTA: UNIQUE se emplea para especificar las claves alternativas FOREIGN KEY (<nombre columna> [, <nombre columna>…] ) REFERENCES <nombre tabla> [ (<nombre columna> [, <nombre columna>…] ) ] [ { ON UPDATE | ON DELETE } CASCADE | SET NULL | SET DEFAULT ] <especificación de referencia>::= <restricción de verificación>::= CHECK (<condición de búsqueda>) NOTA: se utiliza para expresar una condición que deben cumplir un conjunto de atributos de la tabla <definición de restricción de tabla>::= [<nombre de definición de restricción>] <especificación de unicidad> | <especificación de referencia> | <restricción de verificación>

4. PRE-COMPILACION Y EJECUCION DE UN MODULO SQL EMBEBIDO EN UN LENGUAJE ANFITRION (HOST)

5. Lenguaje de manipulación de datos (DML). Como ya hemos comentado el lenguaje de manipulación de datos que permite gestionar la información de las bases de datos. Las sentencias principales de este lenguaje son:
   

SELECT INSERT UPDATE DELETE

En esta unidad comenzaremos explicando la sentencia INSERT que nos permite añadir registros a nuestras tablas, de modo que luego podamos realizar nuestros ejemplos de la sentencia SELECT con los registros que vamos a añadir. 5.1 Insertando registros. La sentencia INSERT se utiliza para añadir nuevos registros a las tablas. Su sintaxis es la siguiente: INSERT INTO nombre_tabla (columna1, columna2,..., columnaN) VALUES (valor1, valor2, ..., valorN) En la sintaxis vemos que introducimos el nombre de la tabla en la que vamos a añadir las siguientes valores para las columnas que especificamos entre paréntesis. La lista de valores que vamos a introducir se colocan entre paréntesis después de la sentencia VALUES. El orden debe corresponder con el de las columnas. En caso de introducir un valor no válido en alguna de las columnas se produce un error y el registro no se añade. Vamos a añadir dos vehículos a nuestra tabla Vehículos:

En la segunda sentencia no hemos introducido las columnas en las que vamos a incluir los datos, ya que si vamos a añadir valores para todas las columnas de un registro, no es necesario indicar las columnas. Observa que los valores de cadena se introducen con comilla simple y no dobles. Debes recordar que si una columna es autoincremental no debemos especificar el valor aquí tampoco. Si todo ha ido correctamente, SQL Server nos indica el número de columnas que se han visto afectadas:

Vamos a añadir los registros para nuestro ejemplo: Oficinas y Empleados:

Reservas:

5.2 Recuperación de registros. La sentencia SELECT permite obtener la información almacenada en nuestras tablas. Su sintaxis general es la siguiente: SELECT <columnas> FROM tablas Después de la sentencia SELECT se introducen el nombre de las columnas a las que queremos acceder, en caso de estar consultando varias tablas se introduce primero el nombre de la tabla a la que pertenece la columna y se separa con un punto del nombre de la columna: nombre_tabla.nombre_columna Si vamos a acceder a todas las columnas de la tabla se utiliza el operador *. Seguido de la cláusula FROM se introducen el nombre de las tablas a las que vamos a acceder separándolas con una coma.

Si por ejemplo queremos recoger todos los registros de nuestra tabla empleados:

Y si nos interesa únicamente los nombres y apellidos de nuestros empleados:

5.3 Filas duplicadas. Una consulta que incluye una clave primaria, los resultados obtenidos serán único, pero si tenemos el caso de que una consulta no incluye una clave primara puede darse el caso de obtener filas repetidas.

Si por ejemplo listamos el campo codOficina de la tabla empleados obtenemos:

Si añadimos la cláusula DISTINCT, evitamos la duplicación de resultados:

5.4 Ordenando los resultados. Tenemos la posibilidad de ordenar los resultados que obtenemos mediante la cláusula ORDER BY. Además podemos indicar si deseamos que se ordene de modo ascendente (ASC) o descendente (DESC). Por defecto se ordena en modo ascendente.

Si deseamos ordenar por más de un campo, podemos separas las expresiones de ordenación por comas. En el siguiente ejemplo mostramos el salario y el nombre del empleado, ordenados en orden descendente por salario y en caso de coincidir por orden ascendente del nombre. Observa la posición de las filas 6 y 7 como han quedado ordenadas al coincidir el salario:

5.5 Renombras columnas. Mediante la cláusula AS, podemos utilizar en la salida de columnas de resultado, nombre distintos a los reales dados en las tablas. Lo que hacemos es dar un alías para distinguir una determinada columna con un nombre modificado. SELECT nombre_columna AS 'Nuevo_nombre' FROM tabla En el siguiente ejemplo renombramos la columna nombre con Empleado, observa como en la zona de resultados se modifica:

5.6 Columnas calculadas. Con SQL podemos utilizar columnas que son el resultado de una serie de operaciones. En el siguiente ejemplo, duplicamos el salario de los empleados y le damos el nombre de Salario2:

También podemos realizar operaciones entre columnas. En este ejemplo unimos el nombre del empleado y su apellido mediante un guión:

5.7 Consultas con condiciones. La cláusula WHERE permite introducir una serie de condiciones sobre los valores de los campos de los registros, para recoger sólo aquellos registros que cumplan esa condición. Estas condiciones suelen denominarse contrastes de comparación. Tenemos los siguientes contrastes de comparación: Contraste de Descripción: de Comparan el valor de una expresión con el valor de otra. límites. Comprueba si el valor se encuentra entre unos de Comprueba si el valor de una expresión

comparación: Contraste comparación Contrastes de rango Contrastes grupo.

pertenencia Contrastes patrón. nulo.

a

un pertenece a un determinado grupo.

correspondencia

de dado.

de Comprueba si los datos cumplen con un patrón

Contrastes de valor Comprueba si alguna de las columnas contiene el valor nulo.

Contraste de comparación. Con estas condiciones SQL compara los valores dados entre dos expresiones para cada registro. Los operadores de comparación que tenemos a nuestra disposición son: Operador: = < > <= >= <> La sintaxis es la siguiente: SELECT <columnas> FROM <tablas> WHERE expresion1 operador expresion2 En el siguiente ejemplo se muestran todos los empleados que superen un salario mayor o igual que 1200: Descripción: Compara si los valores son iguales. Compara si una expresión es menor que otra. Compara si una expresión es mayor que otra. Compara si una expresión es menor o igual que otra. Compara si una expresión es mayor o igual que otra. Compara si las dos expresiones son distintas.

5.8 Contrastes de rango. El contraste de rango comprueba si un valor se encuentra entre dos valores determinados. Para realizar esta comparación contamos con la cláusula Between...AND Como ejemplo vamos a mostrar aquellos empleados nacidos entre el 1 de enero de 1960 y el 31 de diciembre de 1969:

5.9 Contraste de pertenencia a un grupo. Este tipo de condición comprueba si el valor de una determinada expresión aparece en una lista de valores determinada. Para esta tarea utilizaremos la cláusula IN En el siguiente ejemplo mostramos aquellos empleados que tengan un salario que coincida con la siguiente lista de valores: {1000, 1200}

5.10

Contraste de correspondencia con patrón.

Este tipo de consultas devuelve los registros para el que el valor de una columna de texto se corresponde con una expresión dada. La cláusula LIKE, permite este tipo de comparaciones, y utiliza el operador % como comodín. El símbolo % se sustituye por cualquier conjunto de caracteres. En el siguiente ejemplo mostramos aquellos trabajadores que comiencen por la letra R:

Ahora modificamos la consulta para mostrar aquellos empleados donde su apellido aparezca la letra R, sin importar donde:

Otro comodín que utiliza la cláusula LIKE es el guión bajo '_' que representa la posición de un carácter. El símbolo % permite cualquier número de caracteres, y toma como coincidencia la ausencia de caracteres, en cambio el símbolo '_' permite sólo un único carácter coincidente. En el siguiente ejemplo se obtienen los registros de la tabla Empleados cuyo campo Apellidos contenga una cadena donde la segunda letra sea una 'a':

5.11

Contrastes de valor nulo.

La cláusula IS NULL devuelve aquellos registros que tienen una columna determinada con valor nulo, para la operación opuesta tenemos la cláusula IS NOT NULL. En el siguiente ejemplo se muestra aquellos empleados que no tienen un valor nulo en campo codOficina, es decir aquellos empleados que tienen asignada una oficina (en este caso todos).

5.12

Contrastes compuestos.

Es muy frecuente el uso de consultas que requieren más de una condición de búsqueda. Los operadores AND, OR y NOT, pueden combinarse para unir condiciones que utilicen las reglas de la lógicas para obtener un único resultado. En el siguiente ejemplo se muestran aquellos empleados que tengan un salario superior a 1200 y hayan nacido antes de la fecha '01/01/1970':

5.13

Combinación de consultas.

Mediante la cláusula UNION podemos unir los resultados de dos o más tablas en una única tabla. En el siguiente ejemplo mostramos en una única tabla los salarios de los empleados y los kilómetros realizados en las reservas de vehículos:

Puedes ver que toma como nombre de columna el de la primera consulta, en este caso salario. Por defecto este tipo de consultas elimina los valores duplicados, para evitar esto podemos añadir el operador ALL a la cláusula UNION como ves en el siguiente ejemplo:

5.14

Condiciones para utilizar el operador UNION:

Las consultas que se utilicen con el con UNION deben tener el mismo número de expresiones.

Las columnas devueltas como resultado de las consultas utilizadas con el operador UNION deben ser del mismo tipo de datos, o tener la posibilidad de convertir los tipos de datos de modo implícito o explícito.

Las columnas del conjunto de resultados de una consulta debe coincidir con el orden de otra, ya que el operador UNION compara por orden.

Los nombres de columna de la tabla que obtenemos de UNION se toman de la primera consulta individual.

6. vistas en SQL
Muchas bases de datos relacionales que se utilizan en aplicaciones del mundo real tienen esquemas complejos y formados por muchas tablas. En ocasiones, es conveniente que algunos grupos o perfiles de usuarios tengan una vista parcial de ese esquema, o que tengan una visión de Precisamente para estos casos, el lenguaje SQL permite definir vistas. la misma con una estructura diferente a la del esquema que realmente está almacenado.

Una vista es esencialmente una consulta almacenada que devuelve un conjunto de resultados y a esquema, aunque realmente no lo es. 6.1 Sintaxis La sintaxis general para crear una vista es la siguiente: CREATE VIEW view_name [(column_list)] AS sentencia_select

la que se le pone un nombre. Una vista es una “tabla virtual”, aparece como una tabla más del

La idea es muy simple, solamente le damos nombre (view_name) a una consulta. Opcionalmente, etiquetas en column_list. Un ejemplo Tomemos como ejemplo una aplicación muy simple de gestión de pedidos en un supermercado virtual. El esquema relacional sería el siguiente.

los atributos de la relación resultante de la sentencia_select pueden renombrarse mediante

en ese esquema, la información aparece descompuesta en tablas. Sin embargo, para un usuario en un departamento de marketing, podría ser que le fuese más útil tener la información de las ventas de los productos acumuladas, simplemente. CREATE VIEW resumenproductos AS select p.id, p.nombre, sum(cantidad) AS total from producto as p, lineas_pedido as l where (l.producto = p.id) group by l.producto order by total desc Después de definir la vista, podremos utilizar resumenproductos como si fuese una tabla más. Por ejemplo la sentencia:

select * from resumenproductos Nos devolverá el resultado de la consulta que define la vista. Como segundo ejemplo, puede que una persona en Contabilidad solamente necesite el resumen una subconsulta correlacionada:

económico de los pedidos. En ese caso, podremos definir una vista como la siguiente utilizando

CREATE VIEW resumenpedidos (usuario, nombre, pedido, fecha, total) ASSELECT LINEAS_PEDIDO c.usuario as x WHERE (x.cliente = p.cliente)

c.usuario, c.nombre, p.numpedido, p.fecha, (SELECT SUM(precio*cantidad) FROM (x.pedido=p.numpedido))FROM CLIENTES as C, PEDIDOS as PWHERE p.cliente = and

El resultado sería como el siguiente: usuario nombre agarcia jlopez jlopez Juan Lopez Juan Lopez pedido fecha 1 2 total

Ana Garcia 1

2008-11-05 40 2008-02-10 65 2008-02-11 null

Nótese que cuando un pedido no tiene líneas asociadas, aparecerá un nulo en la subconsulta. La consulta puede hacerse también mediante agrupamiento con la siguiente consulta:

SELECT c.usuario, c.nombre, p.numpedido, p.fecha, sum(cantidad*precio) FROM clientes as c, pedidos as p, lineas_pedido as l WHERE (c.usuario = p.cliente) and (p.cliente = l.cliente) and (p.numpedido=l.pedido) GROUP BY p.cliente, p.numpedido En este caso se evita la aparición de nulos, ya que la cláusula GROUP BY no creará un subgrupo en el caso de que no haya líneas de pedido.

Lógicamente, los beneficios de las vistas se obtienen al combinar su definición con el sistema de

permisos del gestor de base de datos. Siguiendo el ejemplo, daríamos permiso a los usuarios en sobre resumenpedidos. 6.2 La representación de las vistas

Marketing sobre la vista resumenproductos, y permisos a los usuarios de Contabilidad

Dado que las vistas aparecen como tablas, pueden aparecer en otras consultas. Es importante tener esto en cuenta cuando se están diseñando consultas, dado que puede afectar al rendimiento. Para representan internamente las vistas. ello, algunos gestores de bases de datos tienen sintaxis extendidas para controlar cómo se

Por ejemplo, MySQL tiene una cláusula ALGORITHM que puede acompañarse de tres valores: MERGE,TEMPTABLE o UNDEFINED, con el siguiente significado:

Con MERGE, el texto de las sentencias que hagan referencia a una vista se fusiona con el texto de la definición de la vista, de modo que las partes de la definición de la vista reemplazan a las partes correspondientes de la sentencia. Con TEMPTABLE, los resultados de la vista se recuperan en una tabla temporal, que se usa después para ejecutar la consulta.

El uso de TEMPTABLE consume un espacio temporal adicional, pero puede tener un mejor rendimiento ya que después de hacer la copia de los datos en la tabla temporal, se usa ésta y se libera la tabla o tablas originales.

7. Tipos de Datos
Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios sinónimos válidos reconocidos por dichos tipos de datos Tipos de datos primarios:

Tipo de Datos BINARY

Longitud 1 byte

Descripción Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. Valores Si/No ó True/False Un valor entero entre 0 y 255. Un número incrementado automáticamente (de tipo Long) Un entero escalable entre 922.337.203.685.477,5808 y

BIT BYTE COUNTER CURRENCY

1 byte 1 byte 4 bytes 8 bytes

922.337.203.685.477,5807.

DATETIME SINGLE

8 bytes 4 bytes

Un valor de fecha u hora entre los años 100 y 9999. Un valor en punto flotante de precisión simple con un rango de 3.402823*1038 a -1.401298*10-45 para valores negativos, 1.401298*10-45 a 3.402823*1038 para valores positivos, y 0.

DOUBLE

8 bytes

Un valor en punto flotante de doble precisión con un rango de 1.79769313486232*10308 a -4.94065645841247*10-324

para

valores

negativos,

4.94065645841247*10-324

a

1.79769313486232*10308 para valores positivos, y 0. SHORT LONG LONGTEXT 2 bytes 4 bytes Un entero corto entre -32,768 y 32,767. Un entero largo entre -2,147,483,648 y 2,147,483,647.

1 byte por De cero a un máximo de 1.2 gigabytes. carácter Según

LONGBINARY

necesite

se De cero 1 gigabyte. Utilizado para objetos OLE.

TEXT

1 byte por De cero a 255 caracteres. caracter siguiente tabla

La

recoge

los

sinonimos

de

los

tipos

de

datos

definidos:

Tipo de Dato BINARY

Sinónimos VARBINARY BOOLEAN

BIT

LOGICAL YESNO

LOGICAL1

BYTE COUNTER CURRENCY

INTEGER1 AUTOINCREMENT MONEY DATE TIME TIMESTAMP

DATETIME

SINGLE

FLOAT4 REAL FLOAT

IEEESINGLE

FLOAT8 DOUBLE

IEEEDOUBLE NUMBER NUMERIC

SHORT

INTEGER2

SMALLINT INT

LONG

INTEGER INTEGER4 GENERAL OLEOBJECT LONGCHAR MEMO NOTE ALPHANUMERIC CHAR

LONGBINARY

LONGTEXT

TEXT

CHARACTER STRING VARCHAR

VARIANT (No Admitido) VALUE

8. ESTANDARES SQL Server 2008 R2 Standard Edition Al llevar a cabo la administración de una base de datos, tus clientes podrán notar varios ocasiona pérdida de tiempo y recursos.

beneficios, ya que con esto tendrán más estabilidad, eficacia y menos información duplicada, que

SQL 2008 R2 permite la administración de una base de datos, donde encontrarán una plataforma moldeable a las necesidades de tus clientes, ya sea una pequeña, mediana o gran empresa. Al genere su negocio con recursos mínimos de IT. contar con este servicio, tus clientes podrán administrar de manera eficaz toda la información que

SQL 2008 R2 cuenta con las siguientes versiones para satisfacer mejor las necesidades de tus clientes:
     

Developer Web

Express downloader Workgroup Standard Enterprise

Y las ediciones Premium incluyen:
 

Parallel Data Warehousing Datacenter

HP ofrece la concesión de licencias OEM para las ediciones Standard y Workgroup, al adquirir un nuevo servidor.

La versión Standard cuenta con las siguientes características:
  

Procesamiento de actividades complejas, con soporte básico en StreamInsight y ahorro de tiempo

Compresión de datos, para reducir en un 60% de la cantidad de información almacenada Administración de ejemplares para aplicaciones y Multi-servidores

La versión Workgrop cuenta con:
 

Administración de datos de manera segura

Y la plataforma de reportes, para llevar a cabo una sincronización remota de alta seguridad y la administración de aplicaciones Branch

9. SOCKETS
La edición Standard tiene la capacidad de utilizar hasta 5 sockets y 64GB de memoria RAM, mientras que la edición Workgroup soporta 2 sockets y 4GB de memoria RAM. Ambos pueden manejar 524 PetaBits de Información y ambos soportan hardware de 32 o 64 bits.

Todas las ediciones de Microsoft SQL 2008 R2 se encuentran disponibles en HP a través de licencias por volumen. Las licencias OEM, se pueden adquirir ya sea por parte de HP o cualquiera cabo por socket o por servidor con las CALs. SQL: 2003 SQL: 2003 es la quinta revisión del lenguaje de consulta de base de datos SQL. La última revisión del estándar es SQL: 2008. de nuestros socios, en la compra de un Servidor ProLiant de HP. El licenciamiento se puede llevar a

El estándar SQL: 2003 hace pequeñas modificaciones sobre la versión anterior, SQL: 1999(también conocido como SQL3), y oficialmente introduce algunas características nuevas como:
      

Las características relacionadas con XML Funciones de ventana Generador de la secuencia, lo que permite secuencias estandarizadas identidad de columnas (identity-columns) La nueva sentencia MERGE TABLE LIKE"

Dos nuevos tipos de columna: valores auto-generados (auto-generated values) y la

Ampliaciones de la sentencia CREATE TABLE, para permitir "CREATE TABLE AS" y "CREATE Eliminación de los tipos de datos "BIT" y "BIT VARYING"

Documentación disponible El estándar SQL no es de libre acceso. SQL: 2003 se pueden adquirir a partir de ISO o ANSI. A fines del proyecto está disponible como un archivo zip de Whitemarsh Information Systems Corporation. El archivo ZIP contiene una serie de archivos PDF que definen las partes de la especificación SQL: 2003.
         

ISO/IEC 9075(1-4,9-11,13,14):2003 CD

ISO/IEC 9075-1:2003 – Framework (SQL/Framework) ISO/IEC 9075-2:2003– Foundation (SQL/Foundation) ISO/IEC 9075-3:2003 – Call-Level Interface (SQL/CLI)

ISO/IEC 9075-4:2003 – Persistent Stored Modules (SQL/PSM)

ISO/IEC 9075-9:2003 – Management of External Data (SQL/MED) ISO/IEC 9075-10:2003 – Object Language Bindings (SQL/OLB) ISO/IEC 9075-11:2003 – Information and Definition Schemas (SQL/Schemata) (SQL/JRT)

ISO/IEC 9075-13:2003 – SQL Routines and Types Using the Java Programming Language ISO/IEC 9075-14:2003 – XML-Related Specifications (SQL/XML)

10. SQL: 2008 Norma Internacional ISO El 17 de julio de 2008, la oficina de ISO en Ginebra comunicó la aprobación oficial de la ISO SQL:

2008 estándar, que sustituye a la actual ISO / ANSI SQL: 2003 estándar. El nuevo estándar está disponible para la compra de la ISO directamente (ya sea en PDF o en CD-ROM) en forma parcial por la parte .... aunque no es barato. Usted puede comprar el PDF en línea de 9075:2008 Parte 2 (la Fundación), fácilmente la mayor de las nueve partes de la norma, ya que sólo 442,00 francos dólares, aunque las empresas miembros de ANSI obtener un descuento considerable (sólo US $ 360,80 para la Parte 2).

suizos. La velocidad a la ANSI tienda en línea es aproximadamente la misma en EE.UU. 451,00

Aquí está un breve resumen de las nuevas adiciones a SQL: 2008 Parte 2 (la Fundación), que abarca la funcionalidad básica de SQL fuera de las extensiones del lenguaje PSM (procedimientos almacenados). Estos se encuentran en "identificación de la característica" para:
  

B035: no extendidas nombres descriptor.

F122 y F123: extendió los mensajes de diagnóstico.

F200: instrucción TRUNCATE TABLE. Ya son compatibles con SQL Anywhere.

F263: separados por comas cláusulas WHEN de una expresión CASE. Esta característica permite múltiples cuando los operandos que se especifica con un siguiente cláusula THEN sola.

F313: una mayor instrucción MERGE. En SQL: 2008, MERGE ha sido ampliado para una condición de búsqueda, que ofrece una mayor flexibilidad en la codificación de los complejos MERGE para manejar conflictos de actualización. Todos los SQL: 2008 extensiones de MERGE ya compatibles con la versión Panorama de SQL Anywhere.

soportar múltiples cláusulas coincidentes y coincidente no, cada uno acompañado por

        

F382: ALTER columna Tipo de datos "el tipo de datos" de forma explícita restablece el tipo de datos de cualquier columna de la tabla. F394: Características opcionales forma normal: prueba explícita de Unicode formas normales de los valores de cadena Unicode. F403: unir tablas con particiones.

F762: Nombre del catálogo actual como una variable del sistema.

F763: el nombre de CURRENT SCHEMA como una variable del sistema. regular.

F841: LIKE_REGEX predicado: concordancia de patrones utilizando una expresión XQuery F842: OCCURRENCES_REGEX función: una función de patrón de XQuery juego que cuenta los sucesos. F843: POSITION_REGEX función: una función de emparejamiento patrón de XQuery que devuelve la posición de la cadena para el partido. F844: SUBSTRING_REGEX función: una función de subcadena utilizando patrones de XQuery. SQL Anywhere 11 es compatible con una función similar, REGEXP_SUBSTR, que utiliza Perl compatible con las expresiones regulares.

   

F845: TRANSLATE_REGEX función: la sustitución de subcadena basada en la coincidencia de expresiones regulares XQuery. F846: Octeto de apoyo en las expresiones regulares. F847: no constantes expresiones regulares. F850 F855 a través de: SQL: 2008 soporta ahora las cláusulas ORDER BY en expresiones de consulta de alto nivel, subconsultas y puntos de vista, con el propósito de utilizar soportado por SQL Anywhere. FETCH FIRST (ver F856-9 abajo) cláusulas dentro de cada uno. Esta funcionalidad ya está

F856 F859 a través de: FETCH primera cláusula de subconsultas, vistas y las expresiones de consulta. El SQL: 2008 sintaxis para restringir las filas de un conjunto de resultados es Anywhere soporta actualmente. FETCH FIRST, en lugar de arriba seleccione Microsoft SQL Server N equivalente que SQL

 

S098: funciones de agregación sobre los tipos de matriz.

S301: cláusula UNNEST mejorada de las tablas de cobro derivados (con tipos de filas).

       

T021: tipos de datos binary y varbinary, y los literales de cadena binaria T022: Soporte avanzado para BINARY y tipos de datos VARBINARY. T023: literales compuesto binario. T024: Los espacios en los literales binario. en SQL Anywhere 10.0.1.

T213: en lugar de los factores desencadenantes. EN VEZ de disparadores se introdujeron T285: Mejora de nombres derivados de la columna. constantes literales.

T043 y T044: T y P multiplicador multiplicador, respectivamente, para especificar T101: la determinación de una mayor aceptación de valores NULL }}

11. SQL:2003. Modelos de Datos Objeto-Relacional y SQL/XML. Tecnología actual de Bases de Datos.
Usar XML en SQL Server La compatibilidad con XML está integrada en todos los componentes de SQL Server e incluye lo siguiente:
   

Compatibilidad con el tipo de datos XML. columnas y variables de tipo XML.

La capacidad de especificar una consulta XQuery con datos XML almacenados en Mejoras en OPENROWSET que permiten la carga masiva de datos XML.

Mejoras en la cláusula FOR XML y la función OPENXML presentadas en SQL Server 2000. Descripción

Tema

Representación de tipo de Se describen las columnas de tipo XML en la base de datos AdventureWorks temas se especifican en estas columnas.

datos XML en la base de datos AdventureWorks. Las consultas con tipos de datos XML de varios Se describe el tipo de datos XML, el concepto de XML con tipo y sin tipo, y varios métodos de tipo de datos XML.

Tipo de datos XML Índices en columnas de tipo de datos XML

Se describen los índices XML principal y secundario de tipo XML. Se describe el concepto de la colección de esquemas XML, el DDL crear columnas y variables XML con tipo.

Administrar

esquemas XML en el servidor

colecciones

de

para crear, modificar o quitar la colección y su utilización para

Usar FOR XML y OPENXML Se describe la cláusula FOR XML que se utiliza con la instrucción

para publicar y procesar datos SELECT para construir XML a partir de datos relacionales y XML OPENXML, y los que se pueden utilizar para consultar y dividir XML en un conjunto de filas.

Para obtener información acerca de la compatibilidad de XQuery en Microsoft .NET Framework, vea el tema sobre compatibilidad de XML y elaboración de consultas XML en SQL Server que encontrará en la documentación de .NET Framework.

El SQL/XML, o especificaciones relacionadas XML, es una extensión al estándar SQL es definido por el ISOIEC 9075-14:2003.

datos XML son introducidos, así como varias rutinas, funciones y mapeos de tipos de datos XML a SQL para proporcionar soporte para la manipulación y almacenamiento de XML en una base de datos SQL.

¿Qué es SQL/XML?

QL/XML es un estándar ANSI, ISO que incorpora XML dentro del lenguaje SQL de bases de datos objeto-relacionales. SQL:2003 es el estándar para acceder y manejar datos de bases de datos objeto relacionales.

Las empresas y los usuarios necesitan integrar sus datos XML en sus bases de datos objetorelacionales, aprovechando las ventajosas facilidades de SQL. SQL/XML permite almacenar sus documentos XML en sus bases de datos objetorelacionales, para consultar dichos documentos mediante “Xpath” y “Xquery” y para “publicar” sus datos SQL en un formato de documentos XML FUNCIONES
        

-XMLELEMENT -XMLROOT

-XMLATTRIBUTES -XMLFOREST

-XMLCONCAT

-XMLNAMESPACES -XMLCOMMENT -XMLPI

-XMLDOCUMENT

-XMLAGG

12. Tecnologías y especificaciones recientes de SQL/XML

“SQL with XML extensions (SQL/XML)Retrieve data as part of SQL database queries (2007)” datos.

Tecnología de IBM:

SQL/XML consiste en una colección de módulos XML-related para el lenguaje SQL de bases de

“SQL/XML (SQLX) : Generating XML using SQL in Oracle”

Tecnología de Oracle:

SQL/XML es una parte emergente de SQL. Describe las formas del uso de SQL en conjunción con XML, definido por el grupo SQLX. Desde la versión 2 de Oracle 9i, se soportan diversas XSU de Oracle (XML-SQL-Utility)

características SQL/XML, que están sometidas a cambios conforme evolucionan los estándares.

“Novedades de SQLXML 4.0 SP1”

Tecnología de Microsoft:

Microsoft SQLXML 4.0 SP1 incluye varias actualizaciones y mejoras a partir de SQL Server 2008 para admitir los nuevos tipos de datos de SQL Server 2008. La versión más reciente de SQLXML (SQLXML 4.0 SP1) ya no está incluida en SQL Server.

13. Funciones de publicación XML

Otras funciones
XMLCOMMENT („comment content‟ [RETURNING {CONTENT | SEQUENCE }]) Permite a la aplicación generar comentarios XML.

XMLPI (NAME tartet {, string-expression ][RETURNING { CONTENT | SEQUENCE}]) Permite a la aplicación crear instrucciones de procesamiento XML XMLCAST (value-expresion AS type)

Permite a la aplicación convertir un valor (cualquier tipo XML o algún otro tipo) a uno de los tipos XML definidos en el segundo estándar.

XMLQUERY evalúa una expresión Xquery y devuelve el resultado a la aplicación SQL. Al contrario que XMLCOMMENT y XMLPI, el valor devuelto por

XMLQUERY puede ser una referencia al resultado o una copia del valor