Vous êtes sur la page 1sur 51

Ingeniería en Desarrollo de Software

Diseño de bases de datos


3er Semestre
Alumno: Daniel Pineda de la Riva
Matricula: es162006588
Docente: Mtra. Mónica Flores López
Actividad 2. Los DBMS y el diseño de bases de datos.

Pagina: 1 de 10
1. Investiga en fuentes confiables a tu alcance, las funciones tanto básicas como específicas de cuatro DBMS, los conceptos generales del DBMS, usuarios
del DBMS, estructura.

FUNCIONES CADENA
ORACLE MYSQL POSTGRESQL
DESCRIPCIÓN
NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO

Devuelve el valor de código ASCII del


carácter más a la izquierda de la
SELECT ASCII('V') FROM
ASCII 86 ASCII SELECT ASCII('V'); 86 ASCII SELECT ASCII('x'); 120 cadena str. Devuelve 0 si str es una
DUAL;
cadena vacía. Devuelve NULL si str
es NULL

SELECT CHAR(86); V Interpreta los argumentos como


enteros y devuelve una cadena que
SELECT CHR(86) FROM consiste en los caracteres dados por
CHR V CHAR CHR SELECT CHR(65); A
DUAL; los valores de los códigos ASCII de
SELECT esos enteros. Los valores NULL se
MySQL
CHAR(77,121,83,81,'76'); saltan

SELECT CONCAT('My', 'S',


CONCAT MySQL
'QL')
SELECT CONCAT('PEPE ',
CONCAT PEPE PEREZ SELECT First
'PEREZ') FROM DUAL;
CONCAT_WS(",","First name,Second Devuelve la cadena resultante de
CONCAT_WS
name","Second name","Last name,Last concatenar los argumentos
Name"); Name

SELECT ('ORACLE' || '9IAS')


|| ORACLE 9IAS || SELECT 'Post' || 'greSQL'; PostgreSQL
FROM DUAL;

LENGTH, LENGTH,
SELECT LENGTH('PEPE CHAR_LENGTH Y CHAR_LENGTH Y SELECT
LENGTH 10 SELECT LENGTH('text'); 4 4 Numero de caracteres de una cadena
PEREZ') FROM DUAL; CHARACTER_LEN CHARACTER_LEN CHAR_LENGTH('jose');
GTH GTH

LOWER SELECT LOWER('MYSQL'); mysql


SELECT LOWER('PEPE Devuelve la cadena str con todos los
LOWER pepe perez LOWER SELECT LOWER('TOM'); tom
PEREZ') FROM DUAL; caracteres cambiados a minúsculas
LCASE SELECT LCASE('MYSQL'); mysql

SELECT REPLACE('Txxxxas'
SELECT REPLACE('mysql',
REPLACE Mysql PLACING 'hom' FROM 2 FOR
'm', 'M'); Devuelve la cadena char cambiando
SELECT REPLACE('PEPE 4);
REPLACE Y cada aparición de 'buscar' por
REPLACE PEREZ','PE','PA') FROM PAPA PAREZ Thomas
OVERLAY SELECT 'cambiar'. Por defecto la cadena de
DUAL;
SELECT INSERT('Quadratic', OVERLAY('TXXXXas' reemplazo es nula
INSERT QuWhattic
3, 4, 'What'); PLACING 'hom' FROM 2 FOR
4);

SELECT INSTR('foobarbar',
INSTR 4
'bar');
SELECT POSITION('om' IN
POSITION 3
'Thomas');
SELECT
FIND_IN_SET 2
FIND_IN_SET('b','a,b,c,d'); Devuelve la posición de la primera
SELECT INSTR('pepe
INSTR 6 aparición de la subcadena substr
perez','per') FROM DUAL;
SELECT POSITION('CD', dentro de la cadena str
POSITION 3
'ABCDE');
STRPOS SELECT STRPOS('high', 'ig'); 2
SELECT LOCATE('bar',
LOCATE 4
'foobarbar');

Pagina: 2 de 10
SELECT SELECT
SELECT SUBSTR('PEPE SUBSTRING Y Devuelve una subcadena de char de
SUBSTR PER SUBSTRING('MySQL con con Clase SUBSTRING SUBSTRING('Thomas' FROM hom
PEREZ', 6, 3) FROM DUAL; MID n caracteres a partir de la posicion m
Clase',7); 2 FOR 3);

FUNCIONES CADENA
ORACLE MYSQL POSTGRESQL
DESCRIPCIÓN
NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO

SELECT TRIM(' PEPE Esta función permite quitar los


PEPE PEREZ SELECT TRIM(' bar '); bar SELECT TRIM(' Tom '); Tom blancos por delante o por detras (o
PEREZ ') FROM DUAL;
ambos a la vez) de una cadena. Con
TRIM TRIM TRIM LEADING, quitamos por delante. Con
SELECT TRIM(BOTH 'X' TRAILING quitamos por detras. Con
SELECT TRIM(BOTH 'x' SELECT TRIM(BOTH 'x' BOTH o no poniendo nada, quitamos
FROM 'XXXPEPE PEPE PEREZ bar Tom
FROM 'xxxbarxxx'); FROM 'xTomxx'); de ambos lados.
PEREZXXX') FROM DUAL;

UPPER SELECT UPPER('Hej') HEJ


SELECT UPPER('Pepe
UPPER PEPE PEREZ UPPER SELECT UPPER('tom'); TOM Devuelve la cadena en mayusculas
Perez') FROM DUAL;
UCASE SELECT LCASE('Hej') HEJ

SELECT Rellena la cadena por la izquierda


LPAD LPAD('6940004',9,'0') FROM 006940004 LPAD SELECT LPAD('hi',4,'??'); ??hi LPAD SELECT LPAD('hi',4,'??'); ??hi hasta la longitud n con el caracter
DUAL; definido, por defecto es blanco

SELECT Rellena la cadena por la derecha


RPAD RPAD('6940004',9,'0') FROM 694000400 RPAD SELECT RPAD('hi',4,'??'); hi?? RPAD SELECT RPAD('hi',4,'??'); hi?? hasta la longitud n con el caracter
DUAL; definido, por defecto es blanco

Devuelve una cadena que consiste en


la cadena str repetida count veces. Si
SELECT REPEAT('MySQL', MySQLMySQL
REPEAT REPEAT SELECT REPEAT('Pg', 4); PgPgPgPg count <= 0, devuelve una cadena
3); MySQL
vacía. Devuelve NULL si str o count
son NULL:

Devuelve la cadena str con el orden


REVERSE SELECT REVERSE('abc'); cba
de los caracteres invertido

SELECT CONCAT('hola', Devuelve una cadena que consiste en


SPACE hola Baby
SPACE(6), 'Baby'); N caracteres espacio

Devuelve la cadena con cada palabra


SELECT INITCAP('pepe SELECT INITCAP('hi
INITCAP Pepe Perez INITCAP Hi Thomas empezando con mayuscula y el resto
perez') FROM DUAL; THOMAS');
en minusculas

SELECT TRANSLATE ('EL EL TEGGO SELECT


Permite reemplazar caracteres en
TRANSLATE PERRO DE SAN ROQUE...', DE SAN TRANSLATE TRANSLATE('12345', '14', a23x5
una cadena
'RP', 'GT') FROM DUAL; GOQUE… 'ax');

Pagina: 3 de 10
FUNCIONES DE FECHA
ORACLE MYSQL POSTGRESQL
DESCRIPCIÓN
NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO

SELECT SYSDATE FROM CURDATE


SYSDATE 25/08/09 SELECT CURDATE(); 2009-08-25 CURRENT_DATE SELECT CURRENT_DATE; 2009-08-25 Devuelve la fecha actual del servidor
DUAL; CURRENTDATE

SELECT
CURTIME 11:08:44.781-
SYSDATE TO_CHAR(SYSDATE, 11:08:44 SELECT CURTIME(); 11:08:44 CURRENT_TIME SELECT CURRENT_TIME; Devuelve la hora actual del servidor
CURRENTTME 04:30
'HH24:MM:SS') FROM DUAL;

SELECT DATE_ADD('1998- SELECT DATE '2001-09-28' +


1998-02-02 2001-10-05
01-02', INTERVAL 31 DAY); INTEGER '7';
DATE_ADD
SELECT DATE_ADD('1997-
1998-01-01 SELECT DATE '2001-09-28' + 2001-09-28
12-31 23:59:59', INTERVAL 1
00:00:00 INTERVAL '1 HOUR'; 01:00:00
SECOND);

SELECT ADDDATE('1998-01- SELECT DATE '2001-09-28' + 2001-09-28


1998-02-02
02', INTERVAL 31 DAY); TIME '03:00'; 03:00:00
SELECT
ADDDATE Permite agregar intervalos de Años,
ADD_MONTHS(TO_DATE('31
ADD_MONTHS 29/02/2008 + Meses, Dias, Horas, Segundos y
/10/2007','DD/MM/YYYY'), 4) SELECT ADDDATE('1998-01- SELECT INTERVAL '1 DAY' +
FROM DUAL; 1998-02-02 1 day 01:00:00 Minutos
02', 31); INTERVAL '1 HOUR';

SELECT ADDTIME("1997-12- 1998-01-02 SELECT TIMESTAMP '2001-


2001-09-29
31 23:59:59.999999", "1 01:01:01.0000 09-28 01:00' + INTERVAL '23
00:00:00
1:1:1.000002"); 01 HOURS';
ADDTIME
SELECT
03:00:01.9999 SELECT TIME '01:00' +
ADDTIME("01:00:00.999999", 04:00:00
97 INTERVAL '3 HOURS';
"02:00:00.999998");

SELECT DATEDIFF('1997-12- SELECT - INTERVAL '23


1 -23:00:00
31 23:59:59','1997-12-30'); HOURS';
DATEDIFF
SELECT DATEDIFF('1997-12- SELECT DATE '2001-10-01' -
-30 3
31 23:59:59','1997-12-30'); DATE '2001-09-28';

SELECT
MONTHS_BETWEEN(TO_DA SELECT DATE_SUB('1998-
1997-12-30 SELECT DATE '2001-10-01' -
MONTHS_BETWE 01-01 00:00:00', INTERVAL '1 2001-09-24 Permite restar intervalos de fechas y
TE('31/10/2007','DD/MM/YYY 4,97 22:58:59 - INTEGER '7';
EN 1:1:1' DAY_SECOND); horas
Y'),TO_DATE('01/06/2007','D DATE_SUB
D/MM/YYYY')) FROM DUAL;
SELECT DATE_SUB('1998- SELECT DATE '2001-09-28' - 2001-09-27
1997-12-02
01-02', INTERVAL 31 DAY); INTERVAL '1 HOUR'; 23:00:00

SELECT TIMESTAMP '2001-


SELECT '1998-01-01' - 1997-12-31 2001-09-28
- 09-28 23:00' - INTERVAL '23
INTERVAL 1 SECOND; 23:59:59 00:00:00
HOURS';

SELECT DAYNAME('1998-02- Devuelve el nombre del día de la


DAYNAME Thursday
05'); semana para una fecha

SELECT Devuelve el nombre del mes para la


MONTHNAME February
MONTHNAME('1998-02-05'); fecha date

Pagina: 4 de 10
FUNCIONES MATEMATICAS
ORACLE MYSQL POSTGRESQL
DESCRIPCIÓN
NOMBRE EJEMPLO DEVUELVE RESULTADO EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO

SELECT ABS(-89) FROM


ABS 89 ABS SELECT ABS(-32); 32 ABS SELECT ABS(-17.4); 17.4 Valor absoluto de un numero
DUAL;

SELECT CEIL(45.1242)
CEIL 46 CEILING Y CEIL SELECT CEILING(1.23); 2 CEILING Y CEIL SELECT CEIL(1.23); 2 Redondea n hasta el valor superior
FROM DUAL;

SELECT FLOOR(45.9542)
FLOOR 45 FLOOR SELECT FLOOR(1.95); 1 FLOOR SELECT FLOOR(1.95); 1 Redondea n al valor inferior
FROM DUAL;

SELECT
SELECT Devuelve el mayor de una lista de
GREATEST GREATEST(1,3,6,89,56,3) 89 GREATEST 89
GREATEST(1,3,6,89,56,3); expresiones
FROM DUAL;

SELECT
SELECT Devuelve el menor de una lista de
LEAST LEAST(1,3,6,89,56,3) FROM 1 LEAST 1
LEAST(1,3,6,89,56,3); expresiones
DUAL;

SELECT MOD(13,5) FROM SELECT MOD(234, 10); Devuelve el resto de dividir M entre N.
MOD 3 MOD Y % 4 MOD SELECT MOD(9,4); 1
DUAL; SELECT 234 % 10; Devuelve M si N es 0.

SELECT ROUND(45.1242, 2)
45.12 SELECT ROUND(-1.58); -2 SELECT ROUND(42.5); 43 Devuelve el argumento X,
FROM DUAL;
redondeado al entero más cercano.
ROUND ROUND ROUND
Con dos argumentos redondea a un
SELECT ROUND(-45.8242) número con D decimales
-46 SELECT ROUND(1.298, 2); 1.30 SELECT ROUND(42.4382, 2); 42.44
FROM DUAL;

0.4076504236 0.0826392685 Devuelve un valor aleatorio entre 0.0


RAND SELECT RAND(); RANDOM SELECT RANDOM();
1585 994509 y 1.0

Devuelve el número X, truncado a D


SELECT TRUNC(45.1242, 2) SELECT decimales. Si D es 0, el resultado no
TRUNC 45.12 TRUNCATE 1.2 TRUNC SELECT TRUNC(42.4382, 2); 42.43
FROM DUAL; TRUNCATE(1.223,1); trendrá punto decimal o parte
fracionaria

Pagina: 5 de 10
FUNCIONES DE CONVERSION Y FORMATOS
ORACLE MYSQL POSTGRESQL
DESCRIPCIÓN
NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO
SELECT
SELECT TO_CHAR(sysdate) SELECT
### 12,332.1235 TO_CHAR(CURRENT_TIMES 11:05:04
FROM DUAL; FORMAT(12332.123456, 4);
TAMP, 'HH12:MI:SS');

SELECT TO_CHAR(sysdate, SELECT SELECT TO_CHAR(125.45,


15/06/2001 12,332.1000 125
'dd/mm/yyyy') FROM DUAL; FORMAT(12332.1,4); '999');
FORMAT
SELECT
SELECT TO_CHAR(sysdate, SELECT
JUN 12,332 TO_CHAR(125.8::real, 125,8
'Mon') FROM DUAL; FORMAT(12332.2,0);
'999D9')

SELECT TO_CHAR(sysdate, SELECT SELECT TO_CHAR(-125.8,


JUNIO 12,332.12 125,80-
'Month') FROM DUAL; FORMAT(12332.123456, 2); '999D99S');

SELECT SELECT
SELECT TO_CHAR(123.456,
00123 DATE_FORMAT('1997-10-04 22:23:00 TO_CHAR(current_timestamp, 03:37:05
'09999') FROM DUAL;
22:23:00', '%H:%i:%s'); TO_CHAR, 'HH12:MI:SS');
TO_CHAR,
TO_DATE, Funciones que permiten dar formatos
TO_DATE Y SELECT
SELECT TO_CHAR(123.456, Saturday TO_NUMBER Y SELECT TO_DATE('05 Dec a los campos Numericos y Date
TO_NUMBER 00123.5 DATE_FORMAT('1997-10-04 2000-12-05
'09999.9') FROM DUAL; October 1997 TO_TIMESTAMP 2000', 'DD Mon YYYY');
22:23:00', '%W %M %Y');

SELECT
SELECT TO_CHAR(123456, SELECT
DATE_FORMAT('1997-10-04 4th 97 Sat 04
'FM999,999,999') FROM 123,46 TO_NUMBER('12,454.8-', -12454.8
22:23:00', '%D %y %a %d %m 10 Oct 277
DUAL; DATE_FORMAT '99G999D9S');
%b %j');

SELECT
SELECT 22 22 10 SELECT
DATE_FORMAT('1997-10-04 2000-12-05
TO_DATE('31/10/2007','DD/M 31/10/2007 10:23:00 PM TO_TIMESTAMP('05 Dec 200
22:23:00', '%H %k %I %r %T 00:00:00-04
M/YYYY') FROM DUAL; 22:23:00 00 6 0', 'DD Mon YYYY')
%S %w');

SELECT SELECT 2010-09-13


SELECT TO_NUMBER('123')
123 DATE_FORMAT('1999-01-01', 1998 52 TO_TIMESTAMP(1284352323 00:02:03-
FROM DUAL;
'%X %V'); ); 04:30

SELECT CASE X WHEN 1 Dependen del


CASE THEN "uno" WHEN 2 THEN Valor de la
"varios" ELSE "muchos" END; Variable (X)
SELECT CASE WHEN
ESTADO <= 0 THEN 'bien'
WHEN ESTADO >= 1 AND
ESTADO <= 5 THEN SELECT IF(1>2,2,3); 3
'regular'ELSE 'mal' END
FROM T_PEDIDOS; SELECT IF(1<2,'yes','no'); yes
Dependen del SELECT A, CASE WHEN A =
IF Dependen del
Valor de la 1 THEN 'one' WHEN A = 2 Evalua diferentes expresiones para
CASE Y DECODE SELECT CASE Valor de la
Variable THEN 'two' ELSE 'other' END dar un valor de salida
IF(STRCMP('test','test1'),'no','y no Variable (A)
(ESTADO) FROM test;
es');

SELECT IFNULL(1,0); 1

SELECT DECODE(ESTADO, SELECT IFNULL(NULL,10); 10


0, 'bien', 1, 'regular', 'mal') IFNULL
FROM T_PEDIDOS; SELECT IFNULL(1/0,10); 10

Pagina: 6 de 10
SELECT IFNULL(1/0,'yes'); yes

Pagina: 7 de 10
OTRAS FUNCIONES
ORACLE MYSQL POSTGRESQL
DESCRIPCIÓN
NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO

SELECT INSTANCE_NAME Nombre Base CURRENT_DATA SELECT Devuelve el nombre de la base de


IPASME DATABASE SELECT DATABASE(); posgres
FROM SYS.V_$INSTANCE; de Datos BASE CURRENT_DATABASE(); datos actual
CONSULTA DE
VISTA SELECT SID FROM Devuelve el ID (ID del hilo) de una
V$SESSION WHERE 25 CONNECTION_ID SELECT CONNECTION_ID(); 40 conexión. Cada conexión tiene su
USERNAME = 'XXX'; propio y único ID

SELECT USER(); davida@localh


USER, USER , Devuelve el nombre de usuario y el
USER SELECT USER FROM DUAL; BASJMENDEZ SESSION_USER Y SESSION_USER Y SELECT CURRENT_USER; posgres del host para el que está autentificada
SYSTEM_USER SELECT CURRENT_USER la conexión actual
SUBSTRING_INDEX(USER(), davida
"@",1);

Devuelve una cadena que indica la


CONSULTA DE SELECT VERSION FROM PostgreSql
9.2.0.1.0 VERSION SELECT VERSION(); 5.0.16-nt VERSION SELECT VERSION(); versión del servidor de la Base de
VISTA SYS.V_$INSTANCE; 8.4.0
Datos

INET_CLIENT_AD SELECT
127.0.0.1 Devuelve la Dirección IP del Cliente
DR INET_CLIENT_ADDR();

INET_CLIENT_PO SELECT
3128 Devuelve el Puerto del Cliente
RT INET_CLIENT_PORT();

CONSULTA DE SELECT HOST_NAME FROM ipasmeprod.lo INET_SERVER_A SELECT


172.16.0.120 Devuelve la Dirección IP del Servidor
VISTA SYS.V_$INSTANCE; caldomain DDR INET_SERVER_ADDR();

INET_SERVER_P SELECT
5432 Devuelve el Puerto del Servidor
ORT INET_SERVER_PORT();

SELECT MACHINE FROM


V$SESSION WHERE IPASME.INT\
USERNAME = BAS02
'BASJMENDEZ';
Devuelve el Nombre de la Maquina
SELECT TERMINAL FROM
CONSULTA DE V$SESSION WHERE
BAS02
VISTA USERNAME =
'BASJMENDEZ';
SELECT PROGRAM FROM
Devuelve el Nombre del programa
V$SESSION WHERE
sqlplusw.exe que se esta ejecutando en la Base de
USERNAME =
Datos
'BASJMENDEZ';

2
4
GENERATE_SERI SELECT * FROM Permite Generar series como lo hace
6
ES GENERATE_SERIES(2,10,2); excel
8
10

Pagina: 8 de 10
FUNCIONES DE GRUPO
ORACLE MYSQL POSTGRESQL
DESCRIPCIÓN
NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO NOMBRE EJEMPLO RESULTADO
SELECT STUDENT_NAME, SELECT "COLUMNA",
SELECT AVG(Columna) AVG(TEST_SCORE) FROM AVG("COLUMNAX") FROM Determina la media del valor de una
AVG 134.5678 AVG 8.54 AVG 8.54
FROM Tabla; STUDENT GROUP BY "ESQUEMA"."TABLA" columna
STUDENT_NAME; GROUP BY "COLUMNA";

SELECT COUNT(*) FROM SELECT COUNT(*) FROM SELECT COUNT(*) FROM


10 15 20
TABLA; TABLA; "ESQUEMA"."TABLA"; Cuenta el numero de valores en un
COUNT COUNT COUNT columna o el numero de filas en una
SELECT COUNT(DISTINCT tabla
SELECT COUNT(DISTINCT SELECT COUNT(DISTINCT
24 24 "COLUMNA") FROM 24
COLUMNA) FROM TABLA; COLUMNA) FROM TABLA;
"ESQUEMA"."TABLA";
SELECT MIN(COLUMNA) SELECT MIN(COLUMNA) SELECT MIN("IdEmpleado") Determina el mayor valor de una
MIN 10 MIN 11 MIN 1
FROM TABLA; FROM TABLA; FROM "public"."Empleados"; columna
SELECT MAX(COLUMNA) SELECT MAX(COLUMNA) SELECT MAX("IdEmpleado") Determina el mayor valor de una
MAX 15 MAX 32 MAX 4
FROM TABLA; FROM TABLA; FROM "public"."Empleados"; columna

SELECT SUM(COLUMNA) SELECT SUM(COLUMNA) SELECT SUM("IdEmpleado") Devuelve la suma del campo de la
SUM 150 SUM 120 SUM 1255
FROM TABLA; FROM TABLA; FROM "public"."Empleados"; Tabla indicado

SELECT IdPropietario,
GROUP_CONCAT(Forma) Devuelve una cadena con la
10 | A, D, D,
GROUP_CONCAT FROM pagopropietario concatenación de los valores de un
E, D, C
WHERE IdPropietario = 10 grupo
GROUP BY IdPropietario;

Pagina: 9 de 10
INFORMIX

Funciones.

La sintaxis que utiliza es muy similar a la de SQL de Oracle 8, pero presenta algunas pequeñas variaciones, además de funciones que no están presentes
en SQL. Como ejemplo, Informix no útil za left o right en los Joins, solo outer. Otra de las diferencias que se encuentra es la orden return, que en el caso de
SQL solo acepta un valor y debe ser de tipo INT, en SQL Se utiliza genera lmente para el retorno de errores, mientras que en Informix se puedeutilizar para
devolver datos de tipo: char, int etc.

AVG -> Calcula la media aritmética


EXTEND-> Obtiene un intervalo mediante datos de tipo date_time.
VARIANCE->Calcula la varianza (cuadrado de la desviación típica).
CURRENT-> Fecha y hora actual.
TO_CHAR-> Convierte fechas y números a cadenas de caracteres.
TO_DATE-> Convierte una cadena a un dato de tipo DATE
LOWER-> Devuelve la cadena del argumento con todas las letras en minúsculas
INITCAP-> Convierte a mayúsculas la letra inicial de la cadena
REPLACE-> Reemplaza subcadenas
SUBSTR-> Extrae una subcadena de una cadena
LPAD/RPAD-> Ajusta a la izquierda/derecha una cadena
NVL-> Comprueba si el campo es NULL y reemplaza su valor por default

Pagina: 10 de 10
Los sistemas manejadores de base de datos (SGBD), en inglés: DataBase Management System (DBMS), son un tipo de software muy específico, dedicado
a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. El propósito general de los sistemas manejadores 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 una
organización.
Es la porción más importante del software de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas,
cada una de las cuales es responsable de alguna tarea específica.
Funciones Principales:
· Establecer y mantener las trayectorias de acceso a la base de datos de tal forma que los datos puedan ser accesados rápidamente.
· Manejar los datos de acuerdo a las peticiones de los usuarios.
· Registrar el uso de las bases de datos.
· Interacción con el manejador de archivos. Esto a través de las sentencias en DML al comando del sistema de archivos. Así el Manejador de base de
datos es el responsable del verdadero almacenamiento de los datos. Respaldo y recuperación.

Características:
• Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico 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 abstracción.
• Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que
realizar cambios en las aplicaciones que se sirven de ella.
• Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr
una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias.
• Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, será necesario vigilar que aquella información que aparece repetida
se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea.
• Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se
encuentra segura frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la
información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de
permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
• Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante
fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.
• Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de
restaurar a partir de estas copias los datos que se hayan podido perder.
• Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una
base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así
pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.

Pagina: 11 de 10
USUARIOS DE UN DBMS

Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de base de datos desde que este se diseña, elabora,
termina y se usa. Los usuarios que acceden una base de datos pueden clasificarse como:

Programadores de aplicaciones.
Los profesionales en computación que interactúan con el sistema por medio de llamadas en DML (Lenguaje de Manipulación de datos), las cuales están
incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, Pascal, C, etc.)

Usuarios sofisticados.
Los usuarios sofisticados interactúan con el sistema sin escribir programas. En cambio escriben sus preguntas en un lenguaje de consultas de base de
datos.

Usuarios especializados.
Algunos usuarios sofisticados escriben aplicaciones de base de datos especializadas que no encajan en el marco tradición al de procesamiento de datos.

Usuarios ingenuos.
Los usuarios no sofisticados interactúan con el sistema invocando a uno de los programas de aplicación permanentes que se han escrito anteriormente en
el sistema de base de datos, podemos mencionar al usuario ingenuo como el usuario final que utiliza el sistema de base de datos sin saber nada del diseño
interno del mismo por ejemplo: un cajero.

Pagina: 12 de 10
Pagina: 13 de 10
2. Identifica sus características en cuanto a los siguientes aspectos:
a) Funciones.
b) Seguridad de los datos.
c) Requerimientos.
d) Ventajas.
e) Desventajas.
f) Costos.

ORACLE

Funciones de Oracle:
 Manejo de cadenas
 Conversión
 Funciones numéricas
 Fechas
 Avanzadas

Seguridad de Oracle:
El servidor de Oracle provee control de accesos discrecional, es decir, acceso restringido a la información basado en rpivilegios.
Oracle gestiona la seguridad de la base de datos usando:
 Usuarios y esquemas de la base de datos.
 Privilegios.
 Roles.
 Ajustes de rendimiento y cuotas.
 Límites sobre los recursos.
 Auditoria.

Cada usuario tiene un dominio de seguridad, que determina cosas como:


 Acciones (privilegios y roles) disponibles para el usuario.
 Cuotas sobre tablespaces.
 Límites en los recursos del sistema.

Pagina: 14 de 10
Requerimientos de Oracle:

Mínimos de Hardware:
 Memoria RAM 1Gb.
 Memoria Virtual 2 Gb.
 Espacio en disco 4.55 Gb.
 Adaptación de Video 256 colores.
 Procesador 550Mhz.
Mínimos de software:
 Arquitectura de procesador Intel (x86), AMD64, o Intel EM64T.
 Sistema operativo Windows 2000 Service Pack 1 o superior, Windows Server 2003 o superior, Windows XP professional.

Ventajas de Oracle:
 Es el motor de la base de datos relacional más usado a nivel mundial.
 Puede ejecutarse en todas las plataformas, desde una pc hasta un supercomputador.
 Soporta todas las funciones que se esperan de un servidor “Serio” un lenguaje de diseño de bases de datos muy completo (PL/SQL) que permite
implementar diseños “activos” con triggers y procedimientos almacenados, con una integridad referencial declarativa bastante potente.
 Permite el uso de particiones para la mejora de la eficiencia, de replicación e incluso ciertas versiones admiten la administración de bases de datos
distribuidas.
 El software del servidor puede ejecutarse en multitud de sistemas operativos.
 Es la base de datos con más orientación hacia internet.

Desventajas de Oracle:

 El mayor inconveniente de Oracle es quizás su precio. Incluso las licencias de personal Oracle son exclusivamente caras.
 La necesidad de ajustes, un error frecuente consiste en pensar que basta con instalar el Oracle en un servidor y enchufar directamente las
aplicaciones clientes, un Oracle mal instalado puede ser desesperadamente lento.
 Es elevado el costo de la información.

Pagina: 15 de 10
Costos de Oracle:

MySQL

Funciones de MySql:
 Manejo de cadenas
 Conversión
 Funciones numéricas
 Fechas
 Avanzadas
 De grupo

Pagina: 16 de 10
Seguridad de MySql:
 autenticación de usuarios y gestión de privilegios
 autenticación de usuarios
 validación de permisos
 directorio de datos y archivos log
 privilegios administrativos
 privilegios en bases de datos y tablas
 en cualquier sistema es necesaria la seguridad y esta necesidad se acentúa cuando el sistema es multiusuario será necesario como mínimo
establecer la autenticación y administración de usuarios, la administración de privilegios y funciones, la administración de contraseñas de
usuario y el establecimiento de límites de recursos de la base de datos.

Requerimientos de MySql:

 512 Mb de memoria RAM.


 1024 Mb máquina virtual.
 1 GB de espacio de disco duro.
 Sistema operativo: Windows, Linux y Unix.
 Arquitectura del sistema 32/64 bit.
 Protocolo de red TCP/IP.

Ventajas de MySql:
 El Software es Open Source.
 Velocidad al realizar las operaciones.
 Bajo costo en requerimientos para la elaboración de BD.
 Baja probabilidad de corromper datos.
 Usa la licencia GPL.

Pagina: 17 de 10
Desventajas de MySql:

 No tiene integridad referencial.


 Lento con grandes bases de datos.
 Un gran porcentaje de utilidades no están documentadas.
 Dificultad de manejo.

Costos de MySql:
 Gratuito

POSTGRESQL

Funciones de POSTGRESQL:
 Manejo de cadenas
 Conversión
 Funciones numéricas
 Fechas
 Avanzadas
 De grupo

Seguridad de POSTGRESQL:
 Gestion de ficheros.
 Acceso a los clientes.
 Privilegios.

Pagina: 18 de 10
Requerimientos de POSTGRESQL

 256 Mb de memoria RAM.


 Espacio en disco 250 Mb.
 Sistema operativo Linux, UNIX, Windows.

Ventajas de POSTGRESQL:
 Integridad en BD: restricciones en el dominio.
 Integridad referencial.
 Afirmaciones.
 Disparadores.
 Conexión a DBMS.
 Transacciones y respaldos.

Desventajas de POSTGRESQL:

 Es fácil de vulnerar sin protección adecuada.


 El motor MyISAM es instalado por defecto y carece de capacidades de integridad relacional.
 Realizar revisiones puede llegar a ser una labor manual y tediosa.
 Reducida la cantidad de tipos de datos.

Costos de POSTGRESQL:
 Gratuito

Pagina: 19 de 10
INFORMIX

Funciones de INFORMIX:
 Manejo de cadenas
 Funciones numéricas
 Fechas

Seguridad de INFORMIX:
 Protección en los datos.
 Auditoria.
 Seguridad de directorios.
 Cifrados de datos de red.
 Control de acceso discrecional.
 Control de Acceso basados en etiquetas.

Requerimientos de INFORMIX:

 750 MB de espacio de disco.


 Con un mínimo de 256 MB de RAM en UNIX y Linux, y de 512 MB de RAM en Mac OS X.

Ventajas de INFORMIX:
 Hace la conversión de tipos automáticamente.
 Reduce los costos de la administración.
 Si no se colocan algunos valores, añade nulo automáticamente.
 Optimiza capacidades de inteligencia del negocio competitivas.
 Soporta requisitos de procedimiento de transacción online, complejos y rigurosos.

Pagina: 20 de 10
Desventajas de INFORMIX:

 No es recomendable utilizarlo con aplicaciones que exigen un gran rendimiento desde el punto de vista de la rapidez, ya que si bien noes lento, no
posee la velocidad de sus competidores.
 No tiene soporte para BLOBs (Objetos grandes binarios) imágenes, audio, video.
 No tiene soporte para el tipo de datos VARCHAR (son datos con una longitud fija de máximo 2000 caracteres.

Costos de INFORMIX:
 Licencia con costo.

3. Realiza una tabla comparativa que contenga los aspectos del punto anterior.

Pagina: 21 de 10
Pagina: 22 de 10
4. Selecciona e instala uno de los DBMS que investigaste en el paso anterior.

5. Documenta el proceso de instalación y verifica que funcione en tu equipo creando una base de datos de prueba y una tabla.

Pagina: 23 de 10
Pagina: 24 de 10
Pagina: 25 de 10
Pagina: 26 de 10
Pagina: 27 de 10
Pagina: 28 de 10
Pagina: 29 de 10
Pagina: 30 de 10
Pagina: 31 de 10
Pagina: 32 de 10
Pagina: 33 de 10
Pagina: 34 de 10
Pagina: 35 de 10
Pagina: 36 de 10
Pagina: 37 de 10
Pagina: 38 de 10
Pagina: 39 de 10
Pagina: 40 de 10
Pagina: 41 de 10
Pagina: 42 de 10
Pagina: 43 de 10
Pagina: 44 de 10
Pagina: 45 de 10
Pagina: 46 de 10
Pagina: 47 de 10
Pagina: 48 de 10
Pagina: 49 de 10
6. Identifica en el DBMS instalado los elementos de los modelos de base de datos que se pueden implementar mediante el DBMS que seleccionaste.

En el DBMS instalado los elementos conceptuales del modelo con los cuales se construyen bases de datos relacionales son los siguientes: los datos se
organizan en ficheros, que se denominan tablas. Las tablas se consideran estructuras bidimensionales homogéneas (matrices) compuestas por filas y
columnas. Cada tabla está formada por un número fijo de columnas y por un número variable de filas. Las filas se denominan tuplas, cada tupla es un
registro, y cada registro representa a una entidad del mundo real; las columnas, por su parte, son los campos del registro, que representan a los diversos
atributos de la entidad. En resumen, puede hacerse la siguiente identificación de términos: registro es equivalente a fila, a tupla y a entidad. Columna
equivale a campo y a atributo de entidad. Tabla es sinónimo de fichero.

Desde el punto de vista informático, se hablará de registros; pero el diseñador del sistema, en cambio, pensará en entidades del mundo real, etc. Las
columnas no pueden tener valores repetidos ni valores compuestos, ni pueden existir tampoco dos filas repetidas.

Pagina: 50 de 10
Referencias

Antolín Muñoz Chaparro. (2011). Oracle 11g Curso práctico de formación. Madrid: RC Libros.
https://adanielf.files.wordpress.com/2007/12/manejo-de-funciones-en-bases-de-datos.pdf
https://iessanvicente.com/colaboraciones/Informix.pdf
Costos de Oracle [en línea], [consulta 24 de julio de 2017], sitio web https://es.slideshare.net/joseantonioespino/base-de-dato-oracle
Oracle [en línea], [consulta 24 de julio de 2017], sitio web https://www.oracle.com/index.html
Ángel Cobo. (2005). PHP Y MySQL. España: Díaz de Santos.
Mariuxi Paola Zea Ordoñez. (2017). Administración de bases de datos con PostgreSQL. Alicante: Área de Innovación y Desarrollo.
IBM [en línea], [consulta 24 de julio de 2017], sitio web https://www.ibm.com/
MySQL [en línea], [consulta 25 de julio de 2017, sitio web https://dev.mysql.com/downloads/

Pagina: 51 de 10

Vous aimerez peut-être aussi