Gestión:
Proceso que desarrolla actividades productivas con el fin de generar rendimientos de los factores que en él intervienen. Diligencia que conduce al logro de un negocio o satisfacción de un deseo.
Base:
Fundamento o apoyo principal en que descansa alguna cosa.
Dato:
Datos son los hechos que describen sucesos y entidades."Datos" es una palabra en plural que se refiere a más de un hecho. A un hecho simple se le denomina "data-ítem" o elemento de dato.Los datos son comunicados por varios tipos de símbolos tales como las letras del alfabeto, números, movimientos de labios,puntos y rayas, señales con la mano, dibujos, etc. Estos símbolos se pueden ordenar y reordenar de forma utilizable y se les denomina información.Los datos son símbolos que describen condiciones, hechos, situaciones o valores. Los datos se caracterizan por no contener ninguna información. Un dato puede significar un número, una letra, un signo ortográfico o cualquier símbolo que represente una cantidad, una medida, una palabra o una descripción.La importancia de los datos está en su capacidad de asociarse dentro de un contexto para convertirse en información. Por si mismos los datos no tienen capacidad de comunicar un significado y por tanto no pueden afectar el comportamiento de quien los recibe. Para ser útiles, los datos deben convertirse en información para ofrecer un significado, conocimiento, ideas o conclusiones.
viernes, 5 de febrero de 2010
Gestion de Base de Datos
El propósito general de los sistemas de gestión de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirán en información relevante, para un buen manejo de datos.
En el entorno informático, la gestión de bases de datos ha evolucionado desde ser una aplicación más disponible para los computadores, a ocupar un lugar fundamental en los sistemas de información. En la actualidad, un sistema de información será más valioso cuanto de mayor calidad sea la base de datos que lo soporta, la cual resulta a su vez un componente fundamental del mismo, de tal forma que puede llegarse a afirmar que es imposible la existencia de un sistema de información sin una base de datos, que cumple la función de "memoria", en todas sus acepciones posibles, del sistema
En el entorno informático, la gestión de bases de datos ha evolucionado desde ser una aplicación más disponible para los computadores, a ocupar un lugar fundamental en los sistemas de información. En la actualidad, un sistema de información será más valioso cuanto de mayor calidad sea la base de datos que lo soporta, la cual resulta a su vez un componente fundamental del mismo, de tal forma que puede llegarse a afirmar que es imposible la existencia de un sistema de información sin una base de datos, que cumple la función de "memoria", en todas sus acepciones posibles, del sistema
Base de Datos
Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico.
Las bases de datos tradicionales se organizan por campos, registros y archivos. Un campo es una pieza única de información; un registro es un sistema completo de campos; y un archivo es una colección de registros. Por ejemplo, una guía de teléfono es análoga a un archivo. Contiene una lista de registros, cada uno de los cuales consiste en tres campos: nombre, dirección, y número de teléfono.
A veces se utiliza DB, de database en inglés, para referirse a las bases de datos.
En este anexo se va a presentar la sintaxis precisa del conjunto de instrucciones del lenguaje SQL estudiadas. La notación que se va a seguir para presentar esta sintaxis es una versión extendida de BNF1. En BNF, cada elemento sintáctico se define mediante un conjunto de reglas de producción. Estas reglas definen un elemento en términos de una fórmula formada de caracteres, tiras de caracteres y elementos sintácticos que pueden ser usados para formar una instancia de dicho elemento. A continuación se incluyen los símbolos y reglas de la versión de BNF que se ha usado:
• tira de caracteres en cursiva: define un nombre de un identificador.
• tira de caracteres normal en minúsculas: define el nombre de un elemento sintáctico que no es un símbolo terminal y que se define en otra regla de producción.
• TIRA DE CARACTERES EN MAYÚSCULAS: es un símbolo terminal de la gramática y define una palabra reservada del lenguaje SQL.
• ::= El operador de producción. Se usa en una regla de producción para separar el elemento definido y la forma que lo define. El elemento que se define aparece a la izquierda del operador y la fórmula que lo define a la derecha.
• [ ] Los corchetes cuadrados sirven para indicar elementos opcionales dentro de una fórmula.
• {} Las llaves se usan para agrupar elementos en una fórmula. La porción de fórmula incluida entre llaves debe ser explícitamente especificada.
• La barra vertical es el operador de alternativa que permite indicar que la porción de fórmula que sigue a la barra es una alternativa a la porción de la fórmula que le precede. Si la barra aparece en la fórmula sin estar incluida en unos corchetes o llaves indica una alternativa completa para los elementos definidos en la fórmula. Si aparece en una porción de la fórmula que está entre corchetes o llaves indica alternativas para el contenido del par de corchetes o
llaves más internos.
• Si xyz es un elemento sintáctico, lista_xyz es una lista de elementos del tipo xyz separados por algún tipo de separador (espacio en blanco, salto de línea, etc.).
• Si xyz es un elemento sintáctico, comalista_xyz es una lista de elementos del tipo xyz separados por comas.
Definición de datos
1 definición_esquema ::=
CREATE SCHEMA [esquema] [AUTHORIZATION usuario]
[lista_elemento_esquema]
2 elemento_esquema ::=
definición_dominio
definición_tabla
definición_vista
definición_restricción
definición_privilegio
3 definición_dominio ::=
CREATE DOMAIN dominio [AS] tipo_dato
[definición_valor_por_defecto]
[lista_definición_restricción_dominio]
4 definición_valor_por_defecto ::= DEFAULT {literal
función_sistema
NULL }
5 definición_restricción_dominio ::=
[CONSTRAINT restricción] CHECK (expresión_condicional) [cuando_comprobar]
6 cuando_comprobar ::=
[[NOT] DEFERRABLE] [INITIALLY {IMMEDIATE
DEFERRED}]
7 definición_tabla ::=
CREATE TABLE tabla_base
comalista_definición_columna [comalista_definición_restricción_tabla]
8 definición_columna ::=
columna { tipo_dato
dominio } [definición_valor_por_defecto]
[lista_definición_restricción_columna]
9 definición_restricción_columna ::=
[CONSTRAINT restricción ]
{NOT NULL
PRIMARY KEY
UNIQUE
REFERENCES tabla [(comalista_columna)]
[MATCH {FULL
PARTIAL } ]
[ON DELETE acción_referencia]
[ON UPDATE acción_referencia]
CHECK (expresión_condicional) }
[cuando_comprobar]
10 acción_referencia ::=
NO ACTION
CASCADE
SET DEFAULT
SET NULL
11 definición_restricción_tabla ::=
[CONSTRAINT restricción ]
{PRIMARY KEY
UNIQUE (comalista_columna)
FOREIGN KEY (comalista_columna) REFERENCES tabla [(comalista_columna)]
[MATCH {FULL
PARTIAL } ]
[ON DELETE acción_referencia]
[ON UPDATE acción_referencia]
CHECK (expresión_condicional) }
[cuando_comprobar]
12 definición_vista ::=
CREATE VIEW vista [(comalista_columna)]
AS expresión_tabla [WITH CHECK OPTION]
13 definición_restricción ::=
CREATE ASSERTION restricción
CHECK (expresión_condicional) [cuando_comprobar]
14 definición_privilegio ::=
GRANT {comalista_privilegio
ALL PRIVILEGES }
ON objeto TO {comalista_usuarios
PUBLIC}
[WITH GRANT OPTION]
15 privilegio ::= SELECT
INSERT [(comalista_columna)]
UPDATE [(comalista_columna)]
DELETE
16 objeto ::= DOMAIN dominio
[TABLE] tabla
17 alteración_dominio ::=
ALTER DOMAIN dominio
{SET DEFAULT {literal
función_sistema
NULL }
DROP DEFAULT
ADD definición_restricción_dominio
DROP CONSTRAINT restricción }
18 alteración_tabla ::=
ALTER TABLE tabla_base
{ADD [COLUMN] definición_columna
ALTER [COLUMN] columna
{SET DEFAULT {literal
función_sistema
NULL }
DROP DEFAULT}
DROP [COLUMN] columna {RESTRICT
CASCADE} }
19 eliminación_esquema ::= DROP SCHEMA esquema {RESTRICT
CASCADE}
20 eliminación_dominio ::= DROP DOMAIN dominio {RESTRICT
CASCADE}
21 eliminación_tabla_base ::= DROP TABLE tabla_base {RESTRICT
CASCADE}
22 eliminación_vista ::= DROP VIEW vista {RESTRICT
CASCADE}
23 eliminación_restricción_general ::= DROP ASSERTION restricción
24 eliminación_autorización ::=
REVOKE [GRANT OPTION FOR]
{ALL
SELECT
INSERT[(comalista_columna)]
DELETE
UPDATE [(comalista_columna)]}
ON objeto TO {comalista_usuarios
PUBLIC}
{RESTRICT
CASCADE}
Ejemplo
CREATE TABLE PROFESOR
( Cod_profe Char(5) PRIMARY KEY,
Nombre Char(15) NOT NULL,
DNI Int NOT NULL,
Dirección Char(25) NOT NULL,
Materia Char(10),
Tipo Char NOT NULL,
Cód_profe_e Char(5),
Cód_area Char(5), NOT NULL,
Catedrático Bit,
FOREIGN KEY (Cód_profe_e) REFERENCES PROFESOR ON UPDATE CASCADE,
FOREIGN KEY (Cód_area) REFERENCES AREA ON UPDATE CASCADE,
CHECK( ( (Cód_prof_e = NULL) And (Catedrático =1)) Or ((Cód_prof_e = NOT NULL) And (Catedrático =0))
CHECK (Cód_profe <> Cód_profe_e)
);
• tira de caracteres en cursiva: define un nombre de un identificador.
• tira de caracteres normal en minúsculas: define el nombre de un elemento sintáctico que no es un símbolo terminal y que se define en otra regla de producción.
• TIRA DE CARACTERES EN MAYÚSCULAS: es un símbolo terminal de la gramática y define una palabra reservada del lenguaje SQL.
• ::= El operador de producción. Se usa en una regla de producción para separar el elemento definido y la forma que lo define. El elemento que se define aparece a la izquierda del operador y la fórmula que lo define a la derecha.
• [ ] Los corchetes cuadrados sirven para indicar elementos opcionales dentro de una fórmula.
• {} Las llaves se usan para agrupar elementos en una fórmula. La porción de fórmula incluida entre llaves debe ser explícitamente especificada.
• La barra vertical es el operador de alternativa que permite indicar que la porción de fórmula que sigue a la barra es una alternativa a la porción de la fórmula que le precede. Si la barra aparece en la fórmula sin estar incluida en unos corchetes o llaves indica una alternativa completa para los elementos definidos en la fórmula. Si aparece en una porción de la fórmula que está entre corchetes o llaves indica alternativas para el contenido del par de corchetes o
llaves más internos.
• Si xyz es un elemento sintáctico, lista_xyz es una lista de elementos del tipo xyz separados por algún tipo de separador (espacio en blanco, salto de línea, etc.).
• Si xyz es un elemento sintáctico, comalista_xyz es una lista de elementos del tipo xyz separados por comas.
Definición de datos
1 definición_esquema ::=
CREATE SCHEMA [esquema] [AUTHORIZATION usuario]
[lista_elemento_esquema]
2 elemento_esquema ::=
definición_dominio
definición_tabla
definición_vista
definición_restricción
definición_privilegio
3 definición_dominio ::=
CREATE DOMAIN dominio [AS] tipo_dato
[definición_valor_por_defecto]
[lista_definición_restricción_dominio]
4 definición_valor_por_defecto ::= DEFAULT {literal
función_sistema
NULL }
5 definición_restricción_dominio ::=
[CONSTRAINT restricción] CHECK (expresión_condicional) [cuando_comprobar]
6 cuando_comprobar ::=
[[NOT] DEFERRABLE] [INITIALLY {IMMEDIATE
DEFERRED}]
7 definición_tabla ::=
CREATE TABLE tabla_base
comalista_definición_columna [comalista_definición_restricción_tabla]
8 definición_columna ::=
columna { tipo_dato
dominio } [definición_valor_por_defecto]
[lista_definición_restricción_columna]
9 definición_restricción_columna ::=
[CONSTRAINT restricción ]
{NOT NULL
PRIMARY KEY
UNIQUE
REFERENCES tabla [(comalista_columna)]
[MATCH {FULL
PARTIAL } ]
[ON DELETE acción_referencia]
[ON UPDATE acción_referencia]
CHECK (expresión_condicional) }
[cuando_comprobar]
10 acción_referencia ::=
NO ACTION
CASCADE
SET DEFAULT
SET NULL
11 definición_restricción_tabla ::=
[CONSTRAINT restricción ]
{PRIMARY KEY
UNIQUE (comalista_columna)
FOREIGN KEY (comalista_columna) REFERENCES tabla [(comalista_columna)]
[MATCH {FULL
PARTIAL } ]
[ON DELETE acción_referencia]
[ON UPDATE acción_referencia]
CHECK (expresión_condicional) }
[cuando_comprobar]
12 definición_vista ::=
CREATE VIEW vista [(comalista_columna)]
AS expresión_tabla [WITH CHECK OPTION]
13 definición_restricción ::=
CREATE ASSERTION restricción
CHECK (expresión_condicional) [cuando_comprobar]
14 definición_privilegio ::=
GRANT {comalista_privilegio
ALL PRIVILEGES }
ON objeto TO {comalista_usuarios
PUBLIC}
[WITH GRANT OPTION]
15 privilegio ::= SELECT
INSERT [(comalista_columna)]
UPDATE [(comalista_columna)]
DELETE
16 objeto ::= DOMAIN dominio
[TABLE] tabla
17 alteración_dominio ::=
ALTER DOMAIN dominio
{SET DEFAULT {literal
función_sistema
NULL }
DROP DEFAULT
ADD definición_restricción_dominio
DROP CONSTRAINT restricción }
18 alteración_tabla ::=
ALTER TABLE tabla_base
{ADD [COLUMN] definición_columna
ALTER [COLUMN] columna
{SET DEFAULT {literal
función_sistema
NULL }
DROP DEFAULT}
DROP [COLUMN] columna {RESTRICT
CASCADE} }
19 eliminación_esquema ::= DROP SCHEMA esquema {RESTRICT
CASCADE}
20 eliminación_dominio ::= DROP DOMAIN dominio {RESTRICT
CASCADE}
21 eliminación_tabla_base ::= DROP TABLE tabla_base {RESTRICT
CASCADE}
22 eliminación_vista ::= DROP VIEW vista {RESTRICT
CASCADE}
23 eliminación_restricción_general ::= DROP ASSERTION restricción
24 eliminación_autorización ::=
REVOKE [GRANT OPTION FOR]
{ALL
SELECT
INSERT[(comalista_columna)]
DELETE
UPDATE [(comalista_columna)]}
ON objeto TO {comalista_usuarios
PUBLIC}
{RESTRICT
CASCADE}
Ejemplo
CREATE TABLE PROFESOR
( Cod_profe Char(5) PRIMARY KEY,
Nombre Char(15) NOT NULL,
DNI Int NOT NULL,
Dirección Char(25) NOT NULL,
Materia Char(10),
Tipo Char NOT NULL,
Cód_profe_e Char(5),
Cód_area Char(5), NOT NULL,
Catedrático Bit,
FOREIGN KEY (Cód_profe_e) REFERENCES PROFESOR ON UPDATE CASCADE,
FOREIGN KEY (Cód_area) REFERENCES AREA ON UPDATE CASCADE,
CHECK( ( (Cód_prof_e = NULL) And (Catedrático =1)) Or ((Cód_prof_e = NOT NULL) And (Catedrático =0))
CHECK (Cód_profe <> Cód_profe_e)
);
Lenguajes de Tecnologia Relacional
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: una tabla bidimensional con filas y columnas. Aunque este sencillo modelo de datos permitía la creación de un lenguaje de consulta elegante con el que hacer preguntas, llevaba consigo un 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 provoca dos problemas: a) puede resultar muy complicado escribir las consultas debido a la necesidad de hacer uniones ("join") de muchas tablas (que a menudo tienen uniones externas complejas), y b) la carga general de proceso necesaria cuando las bases de datos relacionales tienen que manejar datos complejos puede ser enorme.
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: una tabla bidimensional con filas y columnas. Aunque este sencillo modelo de datos permitía la creación de un lenguaje de consulta elegante con el que hacer preguntas, llevaba consigo un 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 provoca dos problemas: a) puede resultar muy complicado escribir las consultas debido a la necesidad de hacer uniones ("join") de muchas tablas (que a menudo tienen uniones externas complejas), y b) la carga general de proceso necesaria cuando las bases de datos relacionales tienen que manejar datos complejos puede ser enorme.
Que es DML?
Lenguaje de Manipulación de Datos
Un Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) 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 consulta o manipulación de los datos, organizados por el modelo de datos adecuado.
El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.
Clasificación del lenguaje de manipulación de datos Son DML : Select Insert Delete Update
Se clasifican en dos grandes grupos:
lenguajes de consulta procedimentales
Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.
lenguajes de consulta no procedimentales
En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento especifico para obtener esa información.
Un Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) 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 consulta o manipulación de los datos, organizados por el modelo de datos adecuado.
El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.
Clasificación del lenguaje de manipulación de datos Son DML : Select Insert Delete Update
Se clasifican en dos grandes grupos:
lenguajes de consulta procedimentales
Lenguajes procedimentales. En este tipo de lenguaje el usuario da instrucciones al sistema para que realice una serie de procedimientos u operaciones en la base de datos para calcular un resultado final.
lenguajes de consulta no procedimentales
En los lenguajes no procedimentales el usuario describe la información deseada sin un procedimiento especifico para obtener esa información.
Que es DLL?
Biblioteca de enlace dinámico
Una biblioteca de enlace dinámico o más comúnmente DLL (sigla en inglés de dinamic-link library) es el término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo. Esta denominación es exclusiva a los sistemas operativos Windows siendo ".dll" la extensión con la que se identifican estos ficheros, aunque el concepto existe en prácticamente todos los sistemas operativos modernos.
Ventajas: Las DLL son o se pueden ver como la evolución de las bibliotecas estáticas (en diversos sistemas) y de forma análoga contienen funcionalidad o recursos que utilizan otras aplicaciones. Sin embargo, su uso proporciona algunas ventajas:
Reducen el tamaño de los archivos ejecutables: Gran parte del código puede estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una mejor modularización.
Pueden estar compartidas entre varias aplicaciones: Si el código es suficientemente genérico, puede resultar de utilidad para múltiples aplicaciones (por ejemplo, la MFC es una biblioteca dinámica con clases genéricas que recubren la API gráfica de Windows y que usan gran parte de las aplicaciones).
Facilitan la gestión y aprovechamiento de la memoria del sistema: La carga dinámica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento del sistema cuando se carguen estas bibliotecas. Además, al estar compartidas, basta con mantener una copia en memoria para todos los programas que la utilicen.
Brindan mayor flexibilidad frente a cambios: Es posible mejorar el rendimiento o solucionar pequeños errores distribuyendo únicamente una nueva versión de la biblioteca dinámica. Nuevamente, está corrección o mejora será aprovechada por todas las aplicaciones que compartan la biblioteca.
Una biblioteca de enlace dinámico o más comúnmente DLL (sigla en inglés de dinamic-link library) es el término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo. Esta denominación es exclusiva a los sistemas operativos Windows siendo ".dll" la extensión con la que se identifican estos ficheros, aunque el concepto existe en prácticamente todos los sistemas operativos modernos.
Ventajas: Las DLL son o se pueden ver como la evolución de las bibliotecas estáticas (en diversos sistemas) y de forma análoga contienen funcionalidad o recursos que utilizan otras aplicaciones. Sin embargo, su uso proporciona algunas ventajas:
Reducen el tamaño de los archivos ejecutables: Gran parte del código puede estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una mejor modularización.
Pueden estar compartidas entre varias aplicaciones: Si el código es suficientemente genérico, puede resultar de utilidad para múltiples aplicaciones (por ejemplo, la MFC es una biblioteca dinámica con clases genéricas que recubren la API gráfica de Windows y que usan gran parte de las aplicaciones).
Facilitan la gestión y aprovechamiento de la memoria del sistema: La carga dinámica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento del sistema cuando se carguen estas bibliotecas. Además, al estar compartidas, basta con mantener una copia en memoria para todos los programas que la utilicen.
Brindan mayor flexibilidad frente a cambios: Es posible mejorar el rendimiento o solucionar pequeños errores distribuyendo únicamente una nueva versión de la biblioteca dinámica. Nuevamente, está corrección o mejora será aprovechada por todas las aplicaciones que compartan la biblioteca.
Suscribirse a:
Entradas (Atom)