Sie sind auf Seite 1von 17

Independencia lgica y fsica de los datos.

(ABRAMHAM, KORTH y SUDARSHAN) La capacidad para modificar una definicin de esquema en un nivel sin que afecte a una definicin de esquema en el siguiente nivel ms alto se llama Independencia de datos. Hay dos niveles de independencia de datos: Independencia Fsica de datos: Es la capacidad para modificar el esquema fsico sin provocar que los programas de aplicacin tengan que rescribirse. Las modificaciones en el nivel fsico son ocasionalmente necesarias para mejorar el funcionamiento. Independencia Lgica de datos: Es la capacidad para modificar el esquema lgico sin causar que los programas de aplicacin tengan que rescribirse. Las modificaciones en el nivel lgico son necesarias siempre que la estructura lgica de la base de datos se altere.

La independencia de datos lgica es ms fcil de proporcionar que la independencia de datos fsica, ya que los programas de aplicacin son fuertemente dependientes de la estructura lgica de los datos a los que ellos acceden.

(ELMASRI/NAVATHE) Podemos definir dos tipos de independencia con respecto a los datos: Independencia lgica con respecto a los datos: es la capacidad de modificar el esquema conceptual sin tener que alterar los esquemas externos no los programas de aplicacin. Podemos modificar el esquema conceptual para ampliar la base de datos o para reducir la base de datos. Independencia fsica con respecto a los datos: es la capacidad de modificar el esquema interno por la necesidad de reorganizar ciertos archivos fsicos a fin de mejorar el rendimiento de las operaciones de obtencin o actualizacin. Si la base de datos an contiene los mismos datos, no deber ser necesario modificar el esquema conceptual. (Tutorial del tecnolgico de la paz ) Se refiere a la proteccin contra los programas de aplicacin que puedan originar modificaciones cuando se altera la organizacin fsica o lgica de la base de datos. Existen 2 niveles de independencia de datos. Independencia fsica de datos: Es la capacidad de modificar el esquema fsico sin provocar que se vuelvan a escribir los programas de aplicacin. Independencia lgica de datos: Capacidad de modificar el esquema conceptual sin provocar que se vuelvan a escribir los programas de aplicacin.

La capacidad para modificar una definicin de esquema en un nivel sin que afecte a una definicin de esquema en el siguiente nivel ms alto se llama Independencia de datos. Existen 2 niveles de independencia de datos:

Independencia fsica de datos: Es la capacidad de modificar el esquema fsico sin provocar que se vuelvan a escribir los programas de aplicacin. Las modificaciones en el nivel fsico son ocasionalmente necesarias para mejorar el funcionamiento. Independencia lgica de datos: Capacidad de modificar el esquema conceptual sin provocar que se vuelvan a escribir los programas de aplicacin. Las modificaciones en el nivel lgico son necesarias siempre que la estructura lgica de la base de datos se altere.

Lenguajes de bases de Datos


Los Lenguajes de consulta (lenguaje de consulta) hijo Especificaciones FORMALES prrafo Consultas representar. Aun CUANDO hijo Llamados de "consulta" en Realidad pueden HACER Mucho Ms Que Consultas.

Lenguaje de Consulta Estructurado (SQL)


Creado Por IBM alrededor de Los Aos 70 Combinacin de lgebra Relacional y Clculo Relacional En 1986 ANSI e ISO he estandarizan en SQL-86 Otras Versiones: SQL-92, SQL-99

Lenguaje de manipulacin de datos (DML)


INSERT INTO nombre_tabla (nombre_columna, ..., column_name) valores (valor, ..., valor); insertar en los msicos (musician_id, apellido, 'nombre, apodo) valores (2, 'Lydon', 'Juan', 'Johnny Rotten'); insertar en los msicos valores (2, 'Lydon', 'Juan', 'Johnny Rotten');

[INSERT LOW_PRIORITY | RETRASADO] [Ignorar] [EN] tbl_name [(col_name ,...)] VALUES (expresin (| DEFAULT ),...),(...),... [ON DUPLICATE KEY UPDATE col_name = expresin, ... ] o [INSERT LOW_PRIORITY | RETRASADO] [Ignorar] [EN] tbl_name [(col_name ,...)] SELECT ... o [INSERT LOW_PRIORITY | RETRASADO] [Ignorar] [EN] tbl_name JUEGO col_name = (expresin | DEFAULT), ... [ON DUPLICATE KEY UPDATE col_name = expresin, ... ]

ACTUALIZACIN
actualizacin nombre_tabla set column_name = valor, ...,

column_name = valor donde column_name = valor; discos de actualizacin establecido el ao = 1994 donde album_id = 4; discos de actualizacin establecido la "msica antigua" category = donde el ao <1980;

UPDATE [LOW_PRIORITY] [Ignorar] tbl_name JUEGO col_name1 = expr1 [, col_name2 = expr2 ...] [DONDE where_definition] [ORDER BY ...] [Row_count lmite]

o:
UPDATE [LOW_PRIORITY] [Ignorar] tbl_name [, tbl_name ...] JUEGO col_name1 = expr1 [, col_name2 = expr2 ...] [DONDE where_definition]

DELETE
eliminar de table_name donde column_name = valor eliminar de los lbumes donde albums_id = 4;

DELETE [LOW_PRIORITY] [RPIDO] [Ignorar] FROM table_name [DONDE where_definition] [ORDER BY ...] [Row_count lmite]

o:
DELETE [LOW_PRIORITY] [RPIDO] [Ignorar] table_name [.*] [, table_name [.*] ...] FROM tabla de referencias [DONDE where_definition]

o:
DELETE [LOW_PRIORITY] [RPIDO] [Ignorar] FROM table_name [.*] [, table_name [.*] ...] Usando la tabla de referencias

[DONDE where_definition]

SELECCIONAR
seleccione column_name, ..., column_name de table_name donde column_name = valor; seleccionar el ttulo de los lbumes donde category = "industrial";

SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY] [DISTINCT | DISTINCTROW | ALL] select_expression, ... [EN {OUTFILE | DUMPFILE} 'nombre_archivo' export_options] [DE table_references [DONDE where_definition] [GROUP BY {unsigned_integer | col_name | frmula} [ASC | DESC], ... [CON ROLLUP]] [La where_definition] [ORDER BY {unsigned_integer | col_name | frmula} [ASC | DESC] ,...] [LMITE [offset], row_count | row_count OFFSET offset] [PROCEDIMIENTO procedure_name (argument_list)] [FOR UPDATE | LOCK IN SHARE MODE]] table_name [[AS] alias] [[USE INDEX (key_list)] | [IGNORE INDEX (key_list)] | [ndice de Fuerza (key_list)]]

UNETE
seleccione bands.band_name de bandas, discos , donde albums.category = "alternativa" y bands.band_id = albums.band_id;

SELECCIONAR t1.name, t2.salary DE empleado como T1, informacin como T2 -> DONDE t1.name = t2.name; SELECCIONAR tabla1 .* FROM tabla1 -> LEFT JOIN tabla2 ON = table1.id table2.id -> DONDE table2.id IS NULL;

table_reference, table_reference table_reference [INTERIOR | CROSS] UNETE table_reference [condicin_junta] table_reference table_reference STRAIGHT_JOIN table_reference LEFT [OUTER] UNETE table_reference [condicin_junta] table_reference NATURAL [LEFT [OUTER]] UNETE table_reference {Table_reference DO LEFT OUTER JOIN table_reference EN conditional_expr} DERECHO table_reference [OUTER] UNETE table_reference [condicin_junta] table_reference NATURAL [RIGHT [OUTER]] UNETE table_reference

UNIN
(Seleccione un FROM table_name WHERE a = 10 y B = 1 ORDER BY un lmite de 10) UNION (SELECT FROM table_name un WHERE a = 11 y b = 2 ORDER BY un lmite de 10) ORDER BY a;

SELECT ... UNION [ALL | DISTINCT] SELECT ... [UNION [ALL |] DISTINCT SELECT ...]

SUBCONSULTAS
seleccionar el ttulo de los lbumes, donde band_id en (seleccione bands.band_id de bandas, band_musician donde band_musician.musician_id = 2 y bands.band_id band_musician.band_id =);

NDICE
CREAR part_of_name NDICE DE cliente (nombre (10)); CREAR two_attributes NDICE DE cliente (nombre (10), el equilibrio);

CREATE [UNIQUE | Texto completo] NDICE index_name [index_type] ON nombre_tabla (index_col_name ,...) index_col_name: col_name [(length)] [ASC | DESC]

SHOW INDEX FROM tbl_name GOTA index_name NDICE DE tbl_name

EXPLICAR explicar table_name; explicar seleccione ...;


(Carlos) [prueba]> crear el ndice INAME en auser (apellido, 'nombre); Query OK, 1 row affected (0.15 segundos) Registros: 1 Duplicados: 0 Warnings: 0 (Carlos) [prueba]> ndice de mostrar auser; | Tabla | Non_unique | Key_name | SEQ_IN_INDEX | Column_name | Clasificacin | Cardinalidad | Sub_part | nic | Null | index_type | Comentar | | Auser | 0 | PRINCIPAL | 1 | id | A | 1 | NULL | NULL | | BTREE | | | Auser | 1 | iname | 1 | apellido | A | 1 | NULL | NULL | S | BTREE | | | Auser | 1 | iname | 2 | FIRST_NAME | A | 1 | NULL | NULL | S | BTREE | | 3 rows in set (0.00 sec) (Carlos) [prueba]> explicar select * from auser donde apellido = 'Aguilar; | Identificacin | select_type | tabla | Tipo | possible_keys | clave | key_len | ref | lneas | | extra | 1 | SIMPLE | auser | ref | iname | iname | 256 | const | 1 | Uso de donde, utilizando el ndice | 1 row in set (0.08 segundos)

5.2.2 Data Definition Language (DDL)

CREAR
crear la tabla table_name ( column_name column_modifiers column_type, ..., column_name column_modifiers column_type); crear msicos mesa ( musician_id INT, apellido CHAR (40), 'nombre CHAR (40), apodo CHAR (40));

CREATE TABLE [temporal] [SI NO EXISTE] tbl_name [(create_definition ,...)] [Table_options] [select_statement]

o:
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(] COMO old_tbl_name [)]; create_definition: col_name tipo [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [[PRIMARY] CLAVE] [COMENTARIO 'cadena'] [reference_definition] | [CONSTRAINT [smbolo]] PRIMARY KEY [index_type] (index_col_name ,...) | CLAVE [index_name] [index_type] (index_col_name ,...) | ndice [index_name] [index_type] (index_col_name ,...) | [CONSTRAINT [smbolo]] UNIQUE [INDICE] [index_name] [index_type] (index_col_name ,...) | Texto completo [INDICE] [index_name] (index_col_name ,...) | [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name ,...) [Reference_definition] | CHECK (expr) Tipo: TINYINT [(length)] [UNSIGNED] [ZEROFILL] | SMALLINT [(length)] [UNSIGNED] [ZEROFILL] | MEDIUMINT [(length)] [UNSIGNED] [ZEROFILL] | INT [(length)] [UNSIGNED] [ZEROFILL] | INTEGER [(length)] [UNSIGNED] [ZEROFILL] | BIGINT [(length)] [UNSIGNED] [ZEROFILL] | REAL [(longitud, decimales)] [UNSIGNED]

[ZEROFILL] | DOBLE [(longitud, decimales)] [UNSIGNED] [ZEROFILL] | Float [(longitud, decimales)] [UNSIGNED] [ZEROFILL] | DECIMAL (longitud, decimales) [UNSIGNED] [ZEROFILL] | Numrico (longitud, decimales) [UNSIGNED] [ZEROFILL] | CHAR (longitud) [BINARY | ASCII | UNICODE] | VARCHAR (longitud) [BINARY] | FECHA | EL TIEMPO | TIMESTAMP | DATETIME | TINYBLOB | BLOB | MEDIUMBLOB | LONGBLOB | TINYTEXT | TEXTO | MEDIUMTEXT | LONGTEXT | ENUM (valor1, valor2, valor3 ,...) | SET (valor1, valor2, valor3 ,...) index_col_name: col_name [(length)] [ASC | DESC] reference_definition: REFERENCIAS tbl_name [(index_col_name ,...)] [Partido completo | coincidencia parcial] [ON reference_option BORRAR] [ACTUALIZACIN EN reference_option] reference_option: RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT table_options: table_option [table_option] ... table_option: {MOTOR | TIPO} = {BDB | HEAP | ISAM | InnoDB | MERGE | MRG_MyISAM | MYISAM} | AUTO_INCREMENT = # | = AVG_ROW_LENGTH # | CHECKSUM = {0 | 1} | Comentario = 'cadena' | MAX_ROWS = # | MIN_ROWS = # | PACK_KEYS = {0 | 1 | DEFAULT} | PASSWORD = 'cadena' | DELAY_KEY_WRITE = {0 | 1} | ROW_FORMAT = {DEFAULT | DINMICO | FIJA | COMPRIMIDO} | RAID_TYPE = {1 | rayas | RAID 0} RAID_CHUNKS = # = # RAID_CHUNKSIZE | UNION = (table_name, [table_name ...]) | INSERT_METHOD = {NO | primeras | ltimas}

"Ruta absoluta al directorio" DATA DIRECTORY = | "Ruta absoluta al directorio 'INDEX DIRECTORY = | | DEFAULT CHARACTER SET character_set_name [COLLATE] select_statement: [Ignorar | REPLACE] [AS] SELECT ... (Algunos sentencia de seleccin legal)

RESTRICCIONES DE EXTRANJEROS
[CONSTRAINT smbolo] FOREIGN KEY [id] (index_col_name, ...) REFERENCIAS tbl_name (index_col_name, ...) [ON DELETE CASCADE {| SET NULL | NO ACTION | RESTRINGIR}] [ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRINGIR}]

CREAR la tabla padre (id INT NOT NULL, PRIMARY KEY (id)) TYPE = INNODB ; CREAR MESA nio (id INT, INT parent_id, INDICE par_ind (parent_id), FOREIGN KEY (parent_id) de los padres Referencias (id) ON DELETE CASCADE) ENGINE = INNODB ;

CREAR tabla de productos (INT NOT NULL categora, id INT no NULL, precio decimal, PRIMARY KEY (categora, id)) ENGINE = INNODB; CREATE TABLE customer (id INT no NULL, PRIMARY KEY (id)) ENGINE = INNODB; CREATE TABLE product_order (no INT NOT NULL AUTO_INCREMENT, product_category INT NOT NULL, INT product_id NOT NULL, INT customer_id NOT NULL, PRIMARY KEY (no), NDICE (product_category, Product), FOREIGN KEY (product_category, Product) Referencias del producto (categora, id) ON UPDATE CASCADE ON DELETE RESTRICT, NDICE (id_cliente), FOREIGN KEY (id_cliente) Referencias de clientes (id)) ENGINE = INNODB;

GOTA

DROP TABLE [temporal] [SI EXISTE] tbl_name [, tbl_name ,...] [RESTRICT | CASCADE]

ALTER
ALTER TABLE t1 MODIFICAR b BIGINT NOT NULL;

ALTER [Ignorar] MESA tbl_name alter_specification [, alter_specification] ... alter_specification: ADD [COLUMN] create_definition [PRIMERA | DESPUS column_name] | ADD [COLUMN] (create_definition, create_definition ,...) | Aadir un ndice [index_name] [index_type] (index_col_name ,...) | ADD [CONSTRAINT [smbolo]] PRIMARY KEY [index_type] (index_col_name ,...) | ADD [CONSTRAINT [smbolo]] UNIQUE [index_name] [index_type] (index_col_name ,...) | Agregar FULLTEXT [index_name] (index_col_name ,...) | ADD [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name ,...) [Reference_definition] | ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} | CAMBIO [COLUMNA] create_definition old_col_name [Primero | Despus de column_name] | MODIFY [COLUMNA] create_definition [PRIMERA | DESPUS column_name] | GOTA [COLUMNA] col_name | GOTA PRIMARY KEY | GOTA index_name NDICE | DISABLE KEYS | ENABLE KEYS | RENAME [A] new_tbl_name | ORDER BY col | Character_set_name CHARACTER SET [COLLATE] | Table_options

BASE DE DATOS
CREATE DATABASE [IF NOT EXISTS] nombre_bd [Create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER conjunto_de_caracteres JUEGO | [DEFAULT] COLLATE GOTA db_name BASE DE DATOS

BECAS
GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...] ON {tbl_name | * | *.* | db_name .*} A nombre_usuario [IDENTIFICADOS POR CONTRASEA [] 'password'] [, User_name [IDENTIFICADOS POR CONTRASEA [] 'password'] ...] [REQUIEREN NINGUNA | [{SSL | X509}] [CIPHER cifrado [Y]] [EMISOR emisor [y]] [Asunto ASUNTO]] [CON [GRANT OPTION | MAX_QUERIES_PER_HOUR # | MAX_UPDATES_PER_HOUR # | MAX_CONNECTIONS_PER_HOUR #]] REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...] ON {tbl_name | * | *.* | db_name .*} De USER_NAME [, user_name ...] Revocar todos los privilegios, GRANT opcin nombre_usuario [, user_name ...]

Ejemplos en PostgreSQL:
Conceder el privilegio de introducir todos los usuarios en las pelculas de la tabla: CONCESIN DE INSERTAR pelculas al pblico; Conceder todos los privilegios del usuario manuel el tipo de vista: GRANT todos los privilegios en las clases A Manuel;

Ejemplos en Mysql
Para revocar el permiso GRANT OPTION de un usuario, utilice un valor de priv_type GRANT OPTION:

mysql> REVOKE GRANT OPTION ON ... DE ...; priv_type


TODOS

Conjuntos de todos los privilegios simple,

[PRIVILEGIOS] ALTER CREAR CREATE TEMPORARY TABLES DELETE GOTA

excepto GRANT OPTION Permite el uso de ALTER TABLE Permite el uso de CREATE TABLE

Permite el uso de CREATE TEMPORARY TABLE

Permite el uso de DELETE Permite el uso de DROP TABLE Permite al usuario ejecutar procedimientos almacenados (MySQL 5.0) Permite el uso de SELECT ... INTO OUTFILE y LOAD DATA INFILE Permite el uso de CREATE INDEX y DROP
INDEX

EXECUTE

ARCHIVO

NDICE

INSERTAR

Permite el uso de INSERTAR Permite el uso de LOCK TABLES en tablas para las que tienen la SELECCIONE privilegio Permite el uso de SHOW FULL PROCESSLIST Y an no ejecutadas Permite el uso de RAS Da derecho al usuario para preguntar dnde est el esclavo o servidores maestros son Necesarios para los esclavos de replicacin (para leer eventos del log binario desde el maestro) Permite el uso de SELECT de
SHOW DATABASES muestra todas las bases de

LOCK TABLES

PROCESO Referencias RELOAD REPLICACIN DEL CLIENTE

Un esclavo de replicacin

SELECCIONAR

SHOW DATABASES

datos

PARO

Permite el uso de mysqladmin shutdown Permite el uso de CHANGE MASTER , KILL hilo , REGISTROS DE PURGA MAESTRO , y FIJAR GLOBALdeclaraciones, la depuracin mysqladmin mando, le permite conectar (una vez) incluso simax_connections se alcanza Permite el uso de ACTUALIZACIN Sinnimo de `` no''privilegios Permite que los privilegios se otorgen

Super

ACTUALIZACIN USO GRANT OPTION

MySQL tiene cuatro niveles de privilegio:


Nivel mundial Privilegios globales se aplican a todas las bases de datos en un servidor determinado. Estos permisos se almacenan en el mysql.user mesa. GRANT ALL ON *.* y REVOKE ALL ON *.* ser otorgar y revocar privilegios de slo global. Base de datos de nivel Los privilegios de base de datos se aplican a todas las tablas de una base de datos dada. Estos permisos se almacenan en el mysql.db y mysql.host tablas. GRANT ALL ON db .* y REVOKE ALL ON db .* a otorgar y revocar privilegios nica base de datos. Tabla de niveles de Privilegios de tabla se aplican a todas las columnas de una tabla dada. Estos permisos se almacenan en elmysql.tables_priv mesa. GRANT ALL ON db.table y REVOKE ALL ON db.table ser otorgar y revocar privilegios de tabla de slo. A nivel de columna Privilegios de columna se aplican a las columnas en una tabla dada. Estos permisos se almacenan en elmysql.columns_priv mesa. Cuando se usa REVOKE ,

debe especificar las mismas columnas que fueron concedidas.

PUNTOS DE VISTA
CREATE [OR REPLACE] Nombre de la vista [(column_name [...])] como la consulta

CREATE VIEW comedias AS SELECT * FROM pelculas en clase = 'Comedia';

Sistema de gestin de bases de datos


Los sistemas de gestin de bases de datos (en ingls database management system, abreviado DBMS) son un tipo de software muy especfico, dedicado a servir de interfaz entre labase de datos, el usuario y las aplicaciones que la utilizan.

Propsito
El propsito general de los sistemas de gestin de bases de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de datos que posteriormente se convertirn en informacin relevante para una organizacin.

Objetivos
Existen distintos objetivos que deben cumplir los SGBD:

Abstraccin de la informacin. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento fsico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. As, se definen varios niveles de abstraccin.

Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (fsico o lgico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.

Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, ser necesario vigilar que aquella informacin que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se

actualicen de forma simultnea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debera aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programacin de este tipo de condiciones.

Seguridad. La informacin almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta informacin se encuentra segura de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categoras de permisos.

Manejo de transacciones. Una transaccin es un programa que se ejecuta como una sola operacin. Esto quiere decir que luego de una ejecucin en la que se produce una falla es el mismo que se obtendra si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho ms simple que si no se dispusiera de ellos.

Tiempo de respuesta. Lgicamente, es deseable minimizar el tiempo que el SGBD demora en proporcionar la informacin solicitada y en almacenar los cambios realizados.

Ventajas

Proveen facilidades para la manipulacin de grandes volmenes de datos (ver objetivos). Entre stas:

Simplifican la programacin de equipos de consistencia. Manejando las polticas de respaldo adecuadas, garantizan que los cambios de la base sern siempre consistentes sin importar si hay errores correctamente, etc.

Organizan los datos con un impacto mnimo en el cdigo de los programas. Disminuyen drsticamente los tiempos de desarrollo y aumentan la calidad del sistema desarrollado si son bien explotados por los desarrolladores.

Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperacin de los datos.

Inconvenientes
1. Tpicamente, es necesario disponer de una o ms personas que administren la base de datos, de la misma forma en que suele ser necesario en instalaciones de cierto porte disponer de una o ms personas que administren los sistemas operativos. Esto puede llegar a incrementar los costos de operacin en una empresa. Sin embargo hay que balancear este aspecto con la calidad y confiabilidad del sistema que se obtiene.

2. Si se tienen muy pocos datos que son usados por un nico usuario por vez y no hay que realizar consultas complejas sobre los datos, entonces es posible que sea mejor usar una hoja de clculo. 3. Complejidad: los software muy complejos y las personas que vayan a usarlo deben tener conocimiento de las funcionalidades del mismo para poder aprovecharlo al mximo. 4. Tamao: la complejidad y la gran cantidad de funciones que tienen hacen que sea un software de gran tamao, que requiere de gran cantidad de memoria para poder correr. 5. Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo general son relativamente altos, por lo que estos equipos pueden llegar a costar gran cantidad de dinero.

Productos SGBD disponibles en el mercado


SGBD libres

PostgreSQL (http://www.postgresql.org Postgresql) Licencia BSD Firebird basada en la versin 6 de InterBase, Initial Developer's PUBLIC LICENSE Version 1.0. SQLite (http://www.sqlite.org SQLite) Licencia Dominio Pblico DB2 Express-C (http://www.ibm.com/software/data/db2/express/) Apache Derby (http://db.apache.org/derby/) MariaDB (http://mariadb.org/) MySQL (http://dev.mysql.com/)

SGBD no libres

MySQL: Licencia Dual, depende del uso. No se sabe hasta cundo permanecer as, ya que ha sido comprada por Oracle. Sin embargo, existen 2 versiones: una gratuita que sera equivalente a la edicin "express" SQL server de Microsoft Windows, y otra ms completa de pago.

Advantage Database dBase FileMaker Fox Pro gsBase IBM DB2: Universal Database (DB2 UDB) IBM Informix Interbase de CodeGear, filial de Borland

MAGIC Microsoft Access Microsoft SQL Server NexusDB Open Access Oracle Paradox PervasiveSQL Progress (DBMS) Sybase ASE Sybase ASA Sybase IQ WindowBase IBM IMS Base de Datos Jerrquica

SGBD no libres y gratuitos


Microsoft SQL Server Compact Edition Basica Sybase ASE Express Edition para Linux (edicin gratuita para Linux) Oracle Express Edition 10 (solo corre en un servidor, capacidad limitada)

Das könnte Ihnen auch gefallen