Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
3. Una base de datos o banco de datos (en inglés: database) es un conjunto de datos
pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En
este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por
documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido
al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las
bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones
al problema de almacenar datos.
Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También
son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información
experimental. [‘3’]
GESTORES O MOTORES DE BASES DE DATOS
>MySQL: es un sistema de administración relacional de bases de datos. Una base de datos
relacional archiva datos en tablas separadas en vez de colocar todos los datos en un gran
archivo. Esto permite velocidad y flexibilidad. Las tablas están conectadas por relaciones
definidas que hacen posible combinar datos de diferentes tablas sobre pedido.
MySQL es software de fuente abierta. Fuente abierta significa que es posible para cualquier
persona usarlo y modificarlo. Cualquier persona puede bajar el código fuente de MySQL y
usarlo sin pagar. Cualquier interesado puede estudiar el código fuente y ajustarlo a sus
necesidades. MySQL usa el GPL (GNU General Public License) para definir qué puede hacer y
que no puede hacer con el software en diferentes situaciones. Si usted no se ajusta al GPL o
requiere introducir código MySQL en aplicaciones comerciales, usted puede comprar una
versión comercial licenciada. [‘4’]
>ORACLE: es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo
en inglés de Relational Data Base Management System), desarrollado por Oracle Corporation.
Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando
su:
• Soporte de transacciones.
• Estabilidad.
• Escalabilidad.
• Soporte multiplataforma[‘5’]
>SQL SERVER: es un sistema de gestión de bases de datos relacionales (SGBD) basado en el
lenguaje Transact-SQL, y específicamente en Sybase IQ, capaz de poner a disposición de
muchos usuarios grandes cantidades de datos de manera simultánea, así como de tener unas
ventajas que más abajo se describen.
Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores
de bases de datos como son Oracle, Sybase ASE, PostgreSQL, Interbase, Firebird o MySQL.
[‘6’]
>ACCESS: es un programa Sistema de gestión de base de datos relacional creado y modificado
por Microsoft para uso personal de pequeñas organizaciones. Es un componente de la suite
Microsoft Office aunque no se incluye en el paquete "básico". Una posibilidad adicional es la de
crear ficheros con bases de datos que pueden ser consultados por otros programas. Dentro de un
sistema de información entraría dentro de la categoría de Gestion y no en la de Ofimática como
algunos creen.
Microsoft Access permite crear formularios para insertar y modificar datos fácilmente. También
tiene un entorno gráfico para ver las relaciones entra las diferentes tablas de la base de datos.
Tiene un sistema de seguridad de cifrado bastante primitivo y puede ser la respuesta a proyectos
de programación de pequeños y medianos tamaños. [‘7’]
>ADABAS: es una base de datos de listas invertidas, de alto rendimiento creada por la empresa
alemana Software AG, en el año 1969. Actualmente se sigue comercializando bajo la versión
Adabas 2006, incorporando gateways para SOA y SQL. Adabas es considerado por algunos
como uno de los primeros productos de base de datos disponibles comercialmente. Inicialmente
lanzado en sistemas de mainframes de IBM, Adabas está ahora disponible en un gama de
sistemas incluyendo: servidores OpenVMS, Unix (Linux y Linux en series Z) y de Windows.
Adabas ha mantenido su posición como una de las bases de datos OLTP más rápidas, ofreciendo
funcionamiento en todo momento, soporte Simplex Paralelo, capacidad de replicación en todo
momento, acceso SQL y XML y otras capacidades vanguardistas. [‘8’]
TIPO DE BASES DE DATOS
Bases de datos jerárquicas: Estas son bases de datos que, como su nombre lo indican,
almacenan su información en una estructura jerárquica. En este modelo los datos se organizan
en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede
tener varios hijos. El nodo que no tiene padres se le conoce como raíz, y a los nodos que no
tienen hijos se les conoce como hojas.
Una de las principales limitaciones de este modelo, es su incapacidad de representar
eficientemente la redundancia de datos. Así, el modelo jerárquico puede representar dos tipos de
relaciones entre los datos: relaciones de uno a uno y relaciones de uno a muchos. [‘9’]
Bases de datos relacional: Desde los años 80 es el modelo más utilizado, ya que permite
una mayor eficacia, flexibilidad y confianza en el tratamiento de los datos. La mayor parte de
las bases de datos y sistemas de información actuales se basan en el modelo relacional ya que
ofrece numerosas ventajas sobre los 2 modelos anteriores, como es el rápido aprendizaje por
parte de usuarios que no tienen conocimientos profundos sobre sistemas de bases de dados. En
el modelo relacional se representa el mundo real mediante tablas relacionadas entre sí por
columnas comunes. Las bases de datos que pertenecen a esta categoría se basan en el modelo
relaciones, cuya estructura principal es la relación, es decir una tabla bidimensional compuesta
por líneas y columnas. Cada línea, que en terminología relacional se llama tupla, representa una
entidad que nosotros queremos memorizar en la base de datos. Las características de cada
entidad están definidas por las columnas de las relaciones, que se llaman atributos. Entidades
con características comunes, es decir descritas por el mismo conjunto de atributos, formarán
parte de la misma relación. [‘10’]
Bases de datos en red: Podemos considerar al modelo de bases de datos en red como de una
potencia intermedia entre el jerárquico y el relacional. Su estructura es parecida a la jerárquica
aunque bastante más compleja, con lo que se consiguen evitar, al menos en parte, los problemas
de aquél. Los conceptos fundamentales que debe conocer el administrador para definir el
esquema de
una base de datos jerárquica, son los siguientes:
- Registro: Viene a ser como cada una de las fichas almacenadas en un fichero convencional.
- Campos o elementos de datos. Son cada uno de los apartados de que se compone una ficha.
- Conjunto: Es el concepto que permite relacionar entre sí tipos de registro distintos. [‘11’]
Bases de datos referenciales: aquellas bases de datos que ofrecen registros que a su
vez son representaciones de documentos primarios, y entre las que cabe distinguir:
Bibliográficas: aquellas cuyo contenido son registros de tipo bibliográfico.
Directorios: aquellas cuyo contenido está referido a la descripción de otros recursos de
información, como por ejemplo un directorio de bases de datos.
Bases de datos fuente: son las que ofrecen el documento completo, no una
representación del mismo, y entre las que cabe distinguir:
Numéricas: contienen información de tipo numérico.
Textuales: contienen el texto completo de un documento.
Mixtas: combinan ambos tipos de información. [‘12’]
SQL
Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que
puede variar de un sistema a otro, pero con cambios que no suponen ninguna
complicación para alguien que conozca un SQL concreto, como el que vamos a ver aquí
correspondiente al Access2000.
Como su nombre indica, el SQL nos permite realizar consultas a la base de datos. Pero el
nombre se queda corto ya que SQL además realiza funciones de definición, control y gestión
de la base de datos. [‘13’]
2. El Lenguaje de consulta estructurado (SQL) es un lenguaje declarativo de acceso a bases
de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas.
Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo lanzar
consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de
datos, así como también hacer cambios sobre la misma. Es un lenguaje de cuarta generación
(4GL).
El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los
sistemas relacionales permitiendo gran variedad de operaciones sobre los mismos.
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento", que gracias a su fuerte base
teórica y su orientación al manejo de conjuntos de registros, y no a registros individuales,
permite una alta productividad en codificación y la orientación a objetos. De esta forma una sola
sentencia puede equivaler a uno o más programas que utilizas en un lenguaje de bajo nivel
orientado a registro. [‘14’]
Lenguaje de Manipulación de Datos (DML)
1. 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. [‘15’]
2. 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. [‘16’]
SELECT: El comando SELECT es el más utilizado en los comandos SQL, permite a los
usuarios de la base de datos retirar información específica que ellos desean de una base de datos
operacional.
La selección sobre una tabla consiste en elegir un subconjunto de filas que cumplan (o no)
algunas condiciones determinadas. La sintaxis de una sentencia de este tipo es la siguiente:
[‘17’]
FROM nombre-tabla
[WHERE condición]
[GROUP BY columna1, columna2....]
[HAVING condición-selección-grupos]
[ORDER BY columna1 [DESC], columna2 [DESC]...]
SUM (columna)
AVG. Entrega la media de los valores de una columna.
AVG (columna)
MIN. Entrega el valor mínimo de una columna.
MIN (columna)
MAX. Entrega el valor máximo de una columna.
MAX (columna)
INSERT: El comando INSERT en SQL es utilizado para agregar nuevos registros a una tabla
existente.
Añade filas a una tabla.
Para guardar los datos insertados hay que ejecutar COMMIT;
Para cancelar la insercción podemos hacer ROLLBACK;
Un formato posible es:
El orden en el que se asignen los valores en la cláusula VALUES tiene que coincidir con el
orden en que se definieron las columnas en la creación del objeto tabla, dado que los valores se
asignan por posicionamiento relativo. Las cantidades de columnas y valores deben ser las
mismas. Si una columna no se especifica, le será asignado el valor por omisión. Los valores
especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones
aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega
la fila y se devuelve un error. [‘18’]
DELETE: Utilizado para eliminar datos de una tabla. El comando DELETE con la clausula
WHERE puede ser utilizado para eliminar su registro de la tabla de personal.
Borra una o más filas de una tabla, dependiendo de la condición WHERE.
Para guardar cambios hay que ejecutar COMMIT;
Para cancelar el borrado podemos hacer ROLLBACK;
La sintaxis es la siguiente:
[WHERE condición]
CUIDADO! Si no se pone condición de selección, borra todas las filas de la tabla. [‘19’]
UPDATE: El comando UPDATE puede ser utilizado para modificar información contenida
dentro de una tabla.
Actualiza valores de una o más columnas para un subconjunto de filas de una tabla.
Para guardar cambios hay que ejecutar COMMIT;
Para cancelar la modificación podemos hacer ROLLBACK;
UPDATE nombre-tabla
Actualiza los campos correspondientes junto con los valores que se le asignen, en el
subconjunto de filas que cumplan la condición de selección.
Si no se pone condición de selección, la actualización se da en todas las filas de la tabla.
Si se desea actualizar a nulos, se asignará el valor NULL. [‘20’]
COMMIT: Guarda los cambios de la transacción en curso.
Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual
(LOCK TABLE). [‘21’]
COMMIT [WORK] [COMMENT 'comment_ text']
COMMIT [WORK] [FORCE 'force_text' [, int] ]
1. El DDL (Data Definition Language) lenguaje de definición de datos es la parte del SQL
que más varía de un sistema a otro ya que esa área tiene que ver con cómo se organizan
internamente los datos y eso, cada sistema lo hace de una manera u otra.
Así como el DML de Microsoft Jet incluye todas las sentencias DML que nos podemos
encontrar en otros SQL (o casi todas), el DDL de Microsoft Jet en cambio contiene menos
instrucciones que otros sistemas. [‘22’]
CREATE: Es utilizado para crear una nueva base de datos, tabla, índice o un query
guardado. Los tipos de objetos que pueden ser creados son: tablas, índices, usuarios y base
de datos.
CREATE TABLE 'TABLA_NOMBRE' (
'CAMPO_1' INT,
'CAMPO_2' STRING
)
Create Table. : La sentencia CREATE TABLE sirve para crear la estructura de una tabla
no para rellenarla con datos, nos permite definir las columnas que tiene y ciertas
restricciones que deben cumplir esas columnas. [‘23’]
La estructura de la sentencia de creación de tablas es: [‘24’]
CREATE [GLOBAL TEMPORARY] TABLE [esquema.]tabla
table_constraint
table_ref_constraint
Create Index: Los índices se usan para mejorar el rendimiento de las operaciones sobre una
tabla.
En general mejoran el rendimiento las SELECT y empeoran (mínimamente) el rendimiento de
los INSERT y los DELETE.
Una vez creados no es necesario nada más, oracle los usa cuando es posible.
En oracle existen tres tipos de índices:
1) Table Index: [‘25’]
ON [esquema.]table_name [tbl_alias]
ON [esquema.]table_name [tbl_alias]
(col_expression [ASC | DESC])
INCREMENT BY n
START WITH n
Create Synonym: Crea un sinonimo para algún objeto de la base de datos. [‘28’]
Create View: Esta sentencia sirve para crear una vista de una tabla o tablas.
Una vista es una tabla lógica basada en los datos de otra tabla.
Ejemplo:
CREATE VIEW V_PEDIDOS (NUMPEDIDO, FECPEDIDO, NUNCLIENTE, NOMCLIENTE)
FROM
Al ser lógica no necesita espacio de almacenamiento para los datos. Ademas es instantánea, una
vez modificados los datos de las tablas origen, los tenemos disponibles en la vista. [‘29’]
Opciones:
TABLESPACE tablespace_name
STORAGE storage_clause
También nos permite crear nuevas restricciones o borrar algunas existentes. La sintaxis
puede parecer algo complicada pero sabiendo el significado de las palabras reservadas la
sentencia se aclara bastante; ADD (añade), ALTER (modifica), DROP (elimina), COLUMN
(columna), CONSTRAINT (restricción). [‘34’]
ALTER TABLE [esquema.]Tabla {ADD|MODIFY|DROP}...
DROP: Se utiliza para destruir un objeto existente. Tal es el caso de una base de datos, una
tabla, índices o una vista. Se puede combinar con la sentencia ALTER.
ALTER TABLE ''TABLA_NOMBRE''
(
DROP COLUMN ''CAMPO_NOMBRE1'' [‘35’]
)
Drop Table: La sentencia DROP TABLE sirve para eliminar una tabla. No se puede
eliminar una tabla si está abierta, tampoco la podemos eliminar si el borrado infringe las
reglas de integridad referencial (si interviene como tabla padre en una relación y tiene
registros relacionados).
Drop Index: La sentencia DROP INDEX sirve para eliminar un índice de una tabla. Se
elimina el índice pero no las columnas que lo forman. [‘36’]
TRUNCATE: Este comando trunca todo el contenido de una tabla. La ventaja sobre el
comando DELETE, es que si se quiere borrar todo el contenido de la tabla, es mucho
más rápido, especialmente si la tabla es muy grande, la desventaja es que TRUNCATE
solo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se
permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML
(Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el
comando truncate borra la tabla y la vuelve a crear y no ejecuta ninguna transacción.
TRUNCATE TABLE ''TABLA_NOMBRE1'' [‘37’]
COMMENT: Pone un comentario en el diccionario de datos. [‘38’]
Sintaxis para tablas y vistas:
COMMENT ON TABLE [esquema.]tabla IS 'comentario';
CONSTRAINTS: Para cambiar las restricciones y la clave primaria de una tabla debemos usar
ALTER TABLE. [‘39’]
Crear una clave primaria (primary key):
RENAME: Cambia el nombre a una tabla, vista, secuencia o sinonimo privado. [‘41’]
CREATE TABLE tmp AS SELECT MyColOld MyColNew, col2, col3 FROM MY_TABLE;
DROP TABLE MY_TABLE;
RENAME tmp TO MY_TABLE;
STORAGE CLAUSE: Configuración del almacenamiento de tablas (CREATE TABLE), índices (CREATE
INDEX), etc... En oracle.
STORAGE opciones
Opciones:
INITIAL int K | M
NEXT int K | M
MINEXTENTS int
MAXEXTENTS int
MAXEXTENTS UNLIMITED
PCTINCREASE int
FREELISTS int
FREELIST GROUPS int
OPTIMAL
OPTIMAL int K | M
OPTIMAL NULL
BUFFER POOL {KEEP|RECYCLE|DEFAULT}
storage (
Initial 65536
Next 1048576
Minextents 1
Maxextents 2147483645
Pctincrease 0
Freelists 1
Freelistgroups 1
Optimal 7k
Buffer_pool default
INFOGRAFIA
*http://www.hipertexto.info/documentos/b_datos.htm [‘1’]
*http://atenea.udistrital.edu.co/profesores/jdimate/basedatos1/tema1_1.htm [‘2’]
*http://es.wikipedia.org/wiki/Base_de_datos [‘3’]
*http://es.wikipedia.org/wiki/MySQL [‘4’]
*http://es.wikipedia.org/wiki/Oracle [‘5’]
*http://es.wikipedia.org/wiki/Microsoft_SQL_Server [‘6’]
*http://es.wikipedia.org/wiki/Access [‘7’]
*http://es.wikipedia.org/wiki/Adabas [‘8’]
*http://mx.geocities.com/vic_omar/bd.htm [‘9’]
*http://www.hipertexto.info/documentos/b_datos.htm [‘10’]
*http://www.lcc.uma.es/~galvez/ftp/bdst/Tema2.pdf [‘11’]
*http://www.hipertexto.info/documentos/b_datos.htm [‘12’]
* http://www.aulaclic.es/sql/t_1_1.htm [‘13’]
*http://es.wikipedia.org/wiki/Celda_activa [‘14’]
*http://es.wikipedia.org/wiki/DML [‘15’]
*http://www.ayc.unavarra.es/joxean/FBD/documentos/0809SQLDML_1.pdf [‘16’]
*http://ora.u440.com/dml/select.html [‘17’]
*http://ora.u440.com/dml/insert.html [‘18’]
*http://ora.u440.com/dml/delete.html [‘19’]
*http://ora.u440.com/dml/update.html [‘20’]
*http://ora.u440.com/dml/commit.html [‘21’]
*http://www.aulaclic.es/sql/t_8_1.htm [‘22’]
*http://www.aulaclic.es/sql/t_8_1.htm [‘23’]
*http://ora.u440.com/ddl/create%20table.html [‘24’]
*http://ora.u440.com/ddl/create%20index.html [‘25’]
*http://ora.u440.com/ddl/create%20database.html [‘26’]
*http://ora.u440.com/ddl/create%20sequence.html [‘27’]
*http://ora.u440.com/ddl/create%20synonym.html [‘28’]
*http://ora.u440.com/ddl/create%20view.html [‘29’]
*http://ora.u440.com/ddl/create%20rollback.html [‘30’]
*http://ora.u440.com/ddl/create%20global%20temporary%20table.html [‘31’]
*http://ora.u440.com/ddl/create%20tablespace.html [‘32’]
*http://es.wikipedia.org/wiki/Celda_activa [‘33’]
*http://www.aulaclic.es/sql/t_8_3.htm [‘34’]
*http://es.wikipedia.org/wiki/Celda_activa [‘35’
*http://www.aulaclic.es/sql/t_8_4.htm [‘36’]
*http://es.wikipedia.org/wiki/Celda_activa [‘37’]
*http://ora.u440.com/ddl/comment.html [‘38’]
*http://ora.u440.com/ddl/constraints.html [‘39’]
*http://ora.u440.com/ddl/datatypes.html [‘40’]
* http://ora.u440.com/ddl/rename.html [‘41’]
*http://guatemaladrummer.blogspot.com/2008/05/dml-y-ddl-bsico.html