Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ESCUELA DE INFORMÁTICA
ASIGNATURA:
TECNICAS DE PROGRAMACION I
SECCIÓN: 01
DOCENTE:
LICDA. SANDRA MARITZA CANTARERO DE MARTÍNEZ
INSTRUTOR:
DIEGO ELIU VALDEZ LARIN
INTEGRANTES:
Técnicas de programación
Sábado 16 de noviembre del 2019
INDICE
INTRODUCCION............................................................................................................................1
OBJETIVOS.....................................................................................................................................2
General:..........................................................................................................................................2
Específicos:.....................................................................................................................................2
MARCO TEORICO........................................................................................................................3
Que es una base de datos..............................................................................................................3
Gestión de base de datos (SGBD) existentes..................................................................................3
Características de cada gestor........................................................................................................4
MySQL..............................................................................................................................4
Oracle................................................................................................................................5
PostgreSQL.......................................................................................................................6
Microsoft SQL Server......................................................................................................7
MariaDB............................................................................................................................8
SQLite...............................................................................................................................9
MongoDB........................................................................................................................10
Elementos de una base de datos..................................................................................................14
Tipos de relaciones entre tablas...................................................................................................14
Lenguaje utilizado........................................................................................................................16
Sentencia CREATE:.......................................................................................................16
Sentencia DROP:............................................................................................................17
Sentencia ALTER:.........................................................................................................17
Select:..............................................................................................................................18
Insert:..............................................................................................................................18
Delete:..............................................................................................................................18
Update:............................................................................................................................19
Requisitos de hardware para la instalación del software de base de datos.................................20
Procedimientos almacenados......................................................................................................25
BIBLIOGRAFÍA............................................................................................................................27
INTRODUCCION
Los sistemas de información actuales se basan en sistemas de base de datos (SGBD)
que se han convertido en elementos imprescindibles de la vida cotidiana de la sociedad
moderna, por lo cual el presente trabajo nos conlleva a profundizar este tema y a realizar
una base de datos real para poder comprender los conceptos investigados y la manera en
cómo se aplican esos conceptos para hacer una base de datos funcional para el mundo
laboral.
Es muy cotidiano encontrarnos con actividades básicas que requieren algún tipo de
interacción con una base de datos, por lo tanto, debemos definir y explicar a fondo el
concepto de esta para dejar claro que los avances tecnológicos han permitido que existan
diferentes gestores de base de datos que ayuden a interactuar mejor con estas distintas
actividades que realizamos.
OBJETIVOS
General:
Definir el concepto de base datos y cada uno de sus gestores existentes para conocer sus
procesos y funcionamiento al momento de implementarlos.
Específicos:
El término de bases de datos fue escuchado por primera vez en 1963, en un simposio
celebrado en California, USA. Una base de datos se puede definir como un conjunto de
información relacionada que se encuentra agrupada ó estructurada.
Estos programas permiten almacenar, modificar y extraer información de una base de datos,
y que se puede interactuar a través de un lenguaje de programación.
Algunos ejemplos de SGBD son Oracle, DB2, PostgreSQL, MySQL, MS SQL Server, etc.
Un SGBD permiten definir los datos a distintos niveles de abstracción y manipular dichos
datos, garantizando la seguridad e integridad de los mismos.
Actualmente existen gestores de base que cumplen un modelo para acceder a la base
de datos de forma más simple, a través de los lenguajes de consulta que permite generar
informes, analizar, garantizar la seguridad y la integridad de los datos.
Este sistema gestor de base de datos es el más popular del mundo, su uso en las
aplicaciones web, tales como en WordPres, Joomla y entre otros, Por ser distribuido bajo la
licencia GPL existen diferentes apis o interfaces de programación de aplicaciones para
diversos lenguajes de programación para acceder a la base de datos de MySQL.
MySQL
Es un software de sistema gestión de base de datos relacional que se puede ejecutar en los
sistemas operativos GNU/Linux, Windows y Mac, se ejecuta de forma multi-thread y
multiusuario y es distribuido por Oracle bajo la licencia GPL y comercial. Escrito en C y en
C++. [ CITATION Ora10 \l 17418 ]
Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede
consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son
1000 bytes (500 antes de MySQL 4.1.2). Un índice puede usar prefijos de una columna
para los tipos de columna CHAR, VARCHAR, BLOB, o TEXT.
Todos los datos se guardan en el conjunto de caracteres elegido. Todas las comparaciones
para columnas normales de cadenas de caracteres son case-insensitive.
Oracle
Este sistema es de tipo modelo objeto relacional, por el cual es uno de los gestores
de bases de datos más completo como: soporte de transacciones, estabilidad, escalabilidad y
puede correr en los sistemas operativos GNU/LINUX, Windows, Mac y entre otros.
Comprar la licencia de este sistema de gestor de base datos es muy caro que asciende varios
miles de dólares según a la versión y licencia, sin embargo, existe una versión express solo
para fines auto educativos estrictamente.[ CITATION Ora10 \l 17418 ]
Oracle es la base de datos número uno del mercado ya que posee la capacidad de
soportar todos los datos relacionales estándares, así como también datos oriundos
como XLM, XQuery y WebDAV, JDBC, SQLJ, ODBC.Net, OLE.Net, ODP.Net
La base de datos está pre configurada lista para ser usada en producción, completa
con espacio automatizado, administración de almacenamiento y de memoria, Back-
up y recuperación automatizada y administrador de estadísticas automatizado.
Los procedimientos almacenados pueden ser escritos en java PL SQL o
utilizando .Net CLR Support en Oracle Database 10g Release Dos.
La base de datos está pre configurada lista para ser usada en producción, completa
con espacio automatizado, administración de almacenamiento y de memoria, Back-
up y recuperación automatizada y administrador de estadísticas automatizado.
La base de datos de Oracle 10G Standar Edition es compatible con medianas
industrias. Esto incluye Real Aplication Clúster, para crear protección en contra de
fallos de hardware. Es muy sencillo de instalar y configurar, y viene con su propio
software de clustering.
PostgreSQL
Es un sistema gestor de base de datos relacional de código abierto de muchos otros
proyectos, multiplataforma, orientado a objetos bajo la licencia PostgreSQL que es similar
a la BSD de la MIT. Para usar el gestor de base datos existen interfaces de programación
para muchos lenguajes de programación como, por ejemplo: C/C++, Java PL/Java web,
PL/Perl y demás.
Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI
IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.
El código fuente está disponible para todos sin costo. Si su equipo necesita extender
o personalizar PostgreSQL de alguna manera, pueden hacerlo con un mínimo
esfuerzo, sin costos adicionales. Esto es complementado por la comunidad de
profesionales y entusiastas de PostgreSQL alrededor del mundo que también
extienden PostgreSQL todos los días.
Es una base de datos 100% ACID.
Copias de seguridad en caliente (Online/hot backups)
Es Multiplataforma ya que PostgreSQL está disponible en casi cualquier Unix (34
plataformas en la última versión estable), y una versión nativa de Windows está
actualmente en estado beta de pruebas.
Múltiples métodos de autentificación
Soporta distintos tipos de datos: además del soporte para los tipos base, también
soporta datos de tipo fecha, monetarios, elementos gráficos, datos sobre redes
(MAC, IP ...), cadenas de bits, etc. También permite la creación de tipos propios.
Microsoft SQL Server un software propietario de gestión de base de datos creado por la
compañía Microsoft disponible, lamentablemente solo se puede usar en el sistema operativo
Windows, aunque recientemente anunciaron que SQL Server 2016 estaría disponible para
GNU/Linux para este fin de año.
Entre sus características más importantes tenemos:
MariaDB
Para usar este gestor de base datos existen apis para los diferentes lenguajes de
programación e incluso los mismos apis que se usan para MySQL son compatibles.
SQLite
Es un sistema completo de bases de datos que soporta múltiples tablas, índices,
triggers y vistas. No necesita un proceso separado funcionando como servidor ya que lee y
escribe directamente sobre archivos que se encuentran en el disco duro. El formato de la
base de datos es multiplataforma e indistintamente se puede utilizar el mismo archivo en
sistemas de 32 y 64 bits.
MongoDB
Es una base de datos no relacional, es decir, no utiliza SQL. El nombre viene del
término inglés “humongous” (colosal) y puede ser definida como una base de datos
documental sin esquema, escalable y de alto rendimiento. Algunos especialistas la han
catalogado como la “MySQL de las bases de datos NoSQL”, al ver que es una base de
datos rapidísima, sencilla en la funcionalidad ofrecida y que, como hizo MySQL hace años,
se está ganando la atención de mucha gente.
MongoDB es un sistema de base de datos NoSQL multiplataforma, orientado a
documentos desarrollado bajo la filosofía de software libre, los datos son guardados en la
base datos en estructuras de datos similar a JSON de JavaScript e incluso tiene la capacidad
de realizar consultas utilizando JavaScript por el cual también existen apis para distintos
lenguajes de programación para realizar consultas e informes.
La mayoría de los gestores base datos no empaquetan un programa que nos permita
administrar nuestra base de datos, para la cual existe un programa llamado Navicat
Premium, es un programa de pago que permite gestionar las bases de datos de forma mucho
más cómoda e intuitiva que se puede usar para los 6 primeros sistemas gestores base de
datos populares que se menciona en este artículo, para MongoDB se puedes optar a usar el
uMongo.
Para almacenar los documentos, utiliza una serialización binaria de JSON, llamada
BSON, que es una lista ordenada de elementos simples. El núcleo de la base de datos es
capaz de interpretar su contenido, de modo que lo que a simple vista parece un contenido
binario, realmente es un documento que contiene varios elementos. Estos datos están
limitados a un tamaño máximo de 4 MB; para tamaños superiores se requiere del uso de
GridFS.
Auto-Sharding
Mapeo y reducción
GridFS
Soporte comercial
En resumen, MongoDB ha sido diseñada para que sea rápida (por ejemplo,
sustituye los joins por documentos embebidos), flexible (sin rígidos esquemas de datos),
escalable (utiliza escalabilidad horizontal dejando atrás la vertical), para reducir al mínimo
las labores de administración (replication, disaster recovery, automatic failover, sharding,
load balancing, etc), para que a los programadores les resulte fácil de aprender y dotada
de potentes herramientas de análisis de datos (aggregation framework). Grandes
compañías como Telefónica, Bosch, Coca Cola, CISCO, Leroy Merlin, ebay, IBM, Forbes
y muchas otras, ya utilizan MongoDB, ciudades como Chicago ya utilizan un sistema
compuesto por MongoDB y Hadoop para analizar y tomar rápidas decisiones con el
propósito de conseguir mejorar la calidad de vida de sus ciudadanos.
Por otra parte, también se debe explicar un poco sobre las características en general
de los gestores de base de datos, esto con el objetivo de poder entender mejor el concepto
de este y sus funciones.
El SGBD deberá velar por la integridad de los datos, para ello incluye varias reglas
de integridad que se comprobarán de forma automática sin necesidad de la intervención
externa de los usuarios o de los programas de aplicación. [ CITATION Ecu10 \l 17418 ]
Elementos de una base de datos
Existen tres tipos de Relaciones, que son: uno a uno, una a varios y varios a varios.
En la Base de Datos las relaciones del tipo varios a varios no pueden ser expresadas, por lo
que deben ser re modelizadas.
Relaciones uno a uno: En una relación uno a uno, cada registro de la Tabla
MATERIA sólo puede tener un registro coincidente en la Tabla PROFESOR y
viceversa.
En este ejemplo se está representando que cada materia solamente puede ser dada por un
profesor.
Relaciones uno a varios: En este modelo se representa que más de un PROFESOR
puede dictar la misma MATERIA.
Sentencia CREATE:
Sirve para crear una nueva base de datos, tabla, índice, o procedimiento almacenado. Una
sentencia CREATE en SQL crea un objeto dentro de un sistema de gestión de bases de
datos relacionales (RDBMS). Los tipos de objetos que se pueden crear dependen del
RDBMS que esté siendo utilizado, pero la mayoría soportan la creación de tablas, índices,
usuarios, sinónimos y bases de datos. Algunos sistemas (como PostgreSQL ) permiten
CREATE, y otros comandos DDL, en el interior de una transacción y por lo tanto puede ser
revertido. Otras que se incluyen dentro del DDL, pero que su existencia depende de la
implementación del estándar SQL que lleve a cabo el gestor de base de datos son GRANT
y REVOKE, los cuales sirven para otorgar permisos o quitarlos, ya sea a usuarios
específicos o a un rol creado dentro de la base de datos.
Un comando CREATE muy común es el CREATE TABLE. El uso típico es:
CREATE TABLE[nombre de la tabla] ( [definiciones de columna] ) [parámetros de la
tabla]
Sentencia DROP: Sirve para borrar en forma sencilla distintos objetos dentro del
[SGBD] como por ejemplo base de datos, tablas, índices. Su sentencia es:
DROP objeto_a_eliminar;
Para eliminar una tabla de una base de datos tenemos la sentencia DROP TABLE. Con ella
quitamos una o varias definiciones de tabla y todos los datos, índices, desencadenadores,
restricciones y especificaciones de permisos que tengan esas tablas. Las vistas o
procedimientos almacenados que hagan referencia a la tabla quitada se deben quitar
explícitamente con DROP VIEW o DROP PROCEDURE. Su sintaxis es:
Para agregar una columna a una tabla, se debe usar la siguiente sintaxis:
ADD column_name tipo datos Para eliminar una columna en una tabla, se debe seguir
la siguiente sintaxis (algunas bases de datos no permiten borrar columnas)
Ejemplo:
Por otra parte, también tenemos hablar acerca del Lenguaje de Manipulación de Datos
donde se sustituye la palabra columna por el nombre del campo a consultar y la palabra
tabla por el nombre de la tabla que contiene el campo mencionado.
insert into usuario (nombre, apellidos, edad, carrera) values ("Martín", "Bastida
Godínez", "23", "Ingeniería en TI");
Tomando como ejemplo si se tuviera una tabla llamada 'usuario' con los campos de tipo
cadena de caracteres (nombre, apellidos, edad, carrera), donde se inserta los valores que se
encuentran en después de la palabra values, los valores se insertan en el orden
correspondiente a como se hizo la llamada de los campos, los valores van separados por
comas, las comillas dobles indican que se está insertando datos de tipo cadena de
caracteres.
Delete: Para eliminar los registros de una tabla usamos el comando "delete":
La ejecución del comando indicado en la línea anterior borra TODOS los registros de la
tabla. Si queremos eliminar uno o varios registros debemos indicar cuál o cuáles, para ello
utilizamos el comando "delete" junto con la clausula "where" con la cual establecemos la
condición que deben cumplir los registros a borrar. Por ejemplo, queremos eliminar aquel
registro cuyo nombre de usuario es 'Martín':
Si solicitamos el borrado de un registro que no existe, es decir, ningún registro cumple con
la condición especificada, no se borrarán registros, pues no encontró registros con ese dato.
Update: Para modificar uno o varios datos de uno o varios registros utilizamos
"update" (actualizar). Por ejemplo, en nuestra tabla "usuarios", queremos cambiar
los valores de todas las claves, por "Sevilla":
Utilizamos "update" junto al nombre de la tabla y "set" junto con el campo a modificar y su
nuevo valor. El cambio afectará a todos los registros.
También podemos describir DCL (por sus siglas en inglés: Data Control Language) es un
lenguaje proporcionado por el Sistema de Gestión de Base de Datos que incluye una serie
de comandos SQL que permiten al administrador controlar el acceso a los datos contenidos
en la Base de Datos.
GRANT: Permite dar permisos a uno o varios usuarios o roles para realizar tareas
determinadas.
REVOKE: Permite eliminar permisos que previamente se han concedido con GRANT.
Las tareas sobre las que se pueden conceder o denegar permisos son las siguientes:
CONNECT
SELECT
INSERT
UPDATE
DELETE
USAGE
En Oracle, la ejecución de un comando DCL implica un COMMIT de forma implícita. Sin
embargo, en PostgreSQL, la ejecución de un comando DCL forma parte de una transacción,
por lo que puede ser deshecha mediante el comando ROLLBACK. [ CITATION www12 \l
17418 ]
El espacio de disco necesario para el producto depende del tipo de instalación que se
elija y del tipo de sistema de archivos de que se disponga. Del mismo modo los requisitos
de memoria se ven afectados por el tamaño y la complejidad del sistema de bases de datos.
Componente Requisito
Componente Requisito
Mínimo:
Se recomienda:
Memoria
Ediciones Express: 1 GB
Mínimo:
Analysis Services y
345 MB
archivos de datos
Reporting Services
y Administrador de 304 MB
informes
Componentes de cliente,
excepto los componentes
de los Libros en pantalla
1823 MB
de SQL Server y
las herramientas de
Integration Services.
Procedimientos almacenados
Los procedimientos almacenados son grupos formados por instrucciones SQL y el lenguaje
de control de flujo. Cuando se ejecuta un procedimiento, se prepara un plan de
ejecución para que la subsiguiente ejecución sea muy rápida. Los procedimientos
almacenados pueden:
Incluir parámetros
Llamar a otros procedimientos
Devolver un valor de estado a un procedimiento de llamada o lote para indicar el
éxito o el fracaso del mismo y la razón de dicho fallo
Devolver valores de parámetros a un procedimiento de llamada o lote.
Los procedimientos almacenados requieren la tabla proc en la base de datos mysql.
Esta tabla se crea durante la isntalación de MySQL 5.0. Si está actualizando a
MySQL 5.0 desde una versión anterior, asegúrese de actualizar sus tablas de
permisos para asegurar que la tabla proc existe. Consulte Sección 2.10.2,
“Aumentar la versión de las tablas de privilegios”.
Desde MySQL 5.0.3, el sistema de permisos se ha modificado para tener en cuenta
los procedimientos almacenados como sigue:
El permiso CREATE ROUTINE se necesita para crear procedimientos
almacenados.
El permiso ALTER ROUTINE se necesita para alterar o borrar procedimientos
almacenados. Este permiso se da automáticamente al creador de una rutina.
El permiso EXECUTE se requiere para ejecutar procedimientos almacenados. Sin
embargo, este permiso se da automáticamente al creador de la rutina. También, la
característica SQL SECURITY por defecto para una rutina es DEFINER, lo que
permite a los usuarios que tienen acceso a la base de datos ejecutar la rutina
asociada.
BIBLIOGRAFÍA