Facilitador : Roberto Burgos M.
Correo: rbm3025@gmail.com
miércoles, 8 de mayo de 2019
Base de datos
•"Una Base de Datos (BD) es una colección o depósito de datos integrados,
almacenados en soporte secundario (no volátil) y con redundancia controlada.
Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones,
deben mantenerse independientes de ellos y su definición (estructura de la BD),
única y almacenada junto con los datos, se ha de apoyar en un modelo de datos,
el cual ha de permitir captar las interrelaciones y restricciones existentes en el
mundo real. Los procedimientos de actualización y recuperación, comunes y bien
determinados, facilitarán la seguridad del conjunto de los datos", De Miguel et.
al. (1999).
•La BD es un conjunto de datos relativos a una determinada parcela del mundo
real (por ejemplo, una biblioteca, una empresa petroquímica, una universidad,
etc.,) que se almacenan en un soporte informático no volátil (es decir,
dispositivos de memoria secundaria como discos, cintas, etc. que hacen que los
datos no desaparezcan "cuando no se están usando"). Además, no debe existir
redundancia, es decir, no deben existir duplicidades perjudiciales ni innecesarias
(a ser posible un determinado tipo de dato, por ejemplo, los datos de un cliente
de una empresa, sólo deben aparecer en un sitio en la BD).
2
•Una base de datos es una colección de información organizada de forma que un
programa de ordenador pueda seleccionar rápidamente los fragmentos de datos
que necesite. Una base de datos es un sistema de archivos electrónico.
Tipos De Bases De Datos
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al
contexto que se esté manejando, o la utilidad de la misma.
Según la variabilidad de los datos almacenados:
Bases De Datos Estáticas
Estas son bases de datos de solo lectura, utilizadas primordialmente para
almacenar datos históricos que posteriormente se pueden utilizar para estudiar el
comportamiento de un conjunto de datos a través del tiempo, realizar
proyecciones y tomar decisiones.
Bases De Datos Dinámicas
Estas son bases de datos donde la información almacenada se modifica con el
tiempo, permitiendo operaciones como actualización, borrado y adición de datos,
además de las operaciones fundamentales de consulta. Un ejemplo de esto
puede ser la base de datos utilizada en un sistema de información de un
supermercado, una farmacia, un videoclub o una empresa.
3
Según modelo de administración de datos
Bases de datos jerárquicas
Éstas son bases de datos que, como su nombre indica, 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 es
llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.
Base de datos de red
Éste es un modelo ligeramente distinto del jerárquico; su diferencia
fundamental es la modificación del concepto de nodo: se permite que un mismo
nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).
Base de datos relacional
Es una base de datos que cumple con el modelo relacional, el cual es el
modelo más utilizado en la actualidad para implementar bases de datos ya
planificadas. Permiten establecer interconexiones (relaciones) entre los datos
(que están guardados en tablas), y a través de dichas conexiones relacionar los
datos de ambas tablas, de ahí proviene su nombre: "Modelo Relacional". Tras
ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios
IBM en San José (California), no tardó en consolidarse como un nuevo
paradigma en los modelos de base de datos.
4
Otros modelos:
Bases De Datos Transaccionales, Bases De Datos Multidimensionales , Bases
De Datos Orientadas a Objetos, Bases De Datos Documentales, Bases De
Datos Deductivas, etc.
Sistemas de Gestión de Bases de Datos (SGBD)
Es un conjunto coordinado de programas, procedimientos, lenguajes,
herramientas, etc., que suministra, tanto a los usuarios no informáticos como a
los analistas, programadores o administradores de una BD, los medios
necesarios para describir y manipular los datos integrados en la BD,
manteniendo su integridad, confidencialidad y disponibilidad
Gestores de base de datos
Ejemplos de gestores de base de datos libres:
Firebird, BDB, MySQL, PostgreSQL, Sqlite, Sydes (linux), SQLIFE,
ApacheDerby, DBD2 express-C DB2, etc.
5
Ejemplos de gestores de base de datos propietarios
dBase, FileMaker, Fox Pro, IBM DB2 Universal Database (DB2 UDB), IBM
Informix, MAGIC, Microsoft SQL Server, Open Access, Oracle, Paradox,
Pervasive SQL, Progress (DBMS), Sybase ASE, Sybase ASA, Sybase IQ,
WindowBase, Microsoft Access, etc.
Datos
Es el elemento primario de la información conformado por símbolos (letras,
números, dibujos, señas, gestos) que reunidos pueden cobrar significación. Solo
o aislado el dato no posee relevancia, pero utilizado en las premisas de un
razonamiento puede llevarnos a una conclusión.
Campo
Es un espacio de almacenamiento para un dato en particular.
Es la mínima unidad de la información a la que se puede acceder; un campo o
un conjunto de ellos forman un registro.
6
Registro
Es un conjunto de campos que contienen los datos que pertenecen a una
misma repetición de entidad. Se le asigna automáticamente un número
consecutivo (número de registro) que en ocasiones es usado como índice
aunque lo normal y práctico es asignarle a cada registro un campo clave para su
búsqueda.
(también llamado fila o tupla) representa un objeto único
de datos implícitamente estructurados en una tabla. En términos simples, una
tabla de una base de datos puede imaginarse formada
de filas y columnas o campos. Cada fila de una tabla representa un conjunto de
datos relacionados, y todas las filas de la misma tabla tienen la misma
estructura.
Microsoft SQL Server
Es un sistema de manejo de bases de datos del modelo relacional, desarrollado
por la empresa Microsoft. El lenguaje de desarrollo utilizado (por línea de
comandos o mediante la interfaz gráfica de managment studio) es Transact-SQL
(TSQL), una implementación del estándar ANSI del lenguaje SQL, utilizado para
manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas
(DDL).
7
Los competidores principales de SQL Server, en el mercado de las bases de
datos relacionales, son productos como Oracle, MySQL, PostgreSQL etc.; SQL
Server solo está disponible para sistemas operativos Windows de Microsoft.
Puede ser configurado para utilizar varias instancias en el mismo servidor físico,
la primera instalación lleva generalmente el nombre del servidor, y las siguientes
- nombres específicos
MySQL
Es un sistema de gestión de bases de datos relacional, multihilo y multiusuario
con más de seis millones de instalaciones. []MySQL AB — desde enero de 2008
es una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation
desde abril de 2009 — desarrolla MySQL como software libre en un esquema
de licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL ("GNU No es Unix" General Public
License) para cualquier uso compatible con esta licencia, pero para aquellas
empresas que quieran incorporarlo en productos privativos deben comprar a la
empresa una licencia específica que les permita este uso. Está desarrollado en
su mayor parte en ANSI C.
8
Al contrario de proyectos como Apache, donde el software es desarrollado por
una comunidad pública y los derechos de autor del código están en poder del
autor individual, MySQL es patrocinado por una empresa privada, que posee el
copyright de la mayor parte del código. Esto es lo que posibilita el esquema de
licenciamiento anteriormente mencionado. Además de la venta de licencias
privativas, la compañía ofrece soporte y servicios. Para sus operaciones
contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL
AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.
MySQL es usado por muchos sitios web grandes y populares, como Wikipedia,
[]Google (aunque no para búsquedas), Facebook, Twitter, Flickr, y YouTube.
MySQL funciona sobre múltiples plataformas, incluyendo: AIX, BSD, FreeBSD,
HP-UX, Kurisu OS, GNU/Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp,
QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, eBD,
Windows (95, 98, NT, 2000, XP, Vista, 7, 8 y Server (2000, 2003, 2008 y 2012)),
OpenVMS
9
Oracle
Es un sistema de gestión de base de datos objeto-relacional (u ORDBMS por el
acrónimo en inglés de Object-Relational Data Base Management System),
desarrollado por Oracle Corporation. Se considera a Oracle Database como uno
de los sistemas de bases de datos más completos, destacando:
Soporte de transacciones.
Estabilidad.
Escalabilidad.
Soporte multiplataforma.
Su dominio en el mercado de servidores empresariales ha sido casi total hasta
hace poco; recientemente sufre la competencia del SQL Server de Microsoft y
de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySQL o
Firebird. Las últimas versiones de Oracle han sido certificadas para poder
trabajar bajo GNU/Linux.
10
Diferentes versiones Microsoft SQL Server
Año Nombre de la versión
1989 SQL Server 1.0
1991 SQL Server 1.1
1992 SQL Server 4.2
1993 SQL Server 4.21
1995 SQL Server 6.0
1996 SQL Server 6.5
1998 SQL Server 7.0
1999 SQL Server 7.0 OLAP Tools
2000 SQL Server 2000
2003 SQL Server 2000 64-bit Edition
2005 SQL Server 2005
2008 SQL Server 2008
2010 SQL Azure DB
2010 SQL Server 2008 R2
2012 SQL Server 2012
2014 SQL Server 2014
2015 SQL Server 2016 (Preview)
11
Diferentes versiones MySQL
• 95 (23 de mayo): MySQL fue lanzado internamente.
• 1998 (8 de enero): lanzan la primera versión de MySQL para Windows 95 y
NT.
• 2000 (agosto): lanzan la versión 3.23 beta.
• 2001 (enero): lanzan la versión 3.23.
• 2002 (agosto): lanzan la versión 4.0 beta.
• 2003 (marzo): lanzan la versión 4.0.
• 2004 (junio): lanzan la versión 4.1 beta.
• 2004 (octubre): lanzan la versión 4.1.
• 2004 (marzo): lanzan la versión beta 5.0
• 2005 (octubre): lanzan la versión 5.0.
El esquema de denominaciones de MySQL emplea nombres consistentes en
tres números y un sufijo; por ejemplo, mysql-5.0.9-beta. Los números dentro
del nombre se interpretan así:
El primer número (5) es la versión principal y describe el formato de fichero.
Todas las entregas de la versión 5 comparten el mismo formato para sus
ficheros.
El segundo número (0) es el nivel de entrega. En conjunto, la versión principal y
el nivel de entrega constituyen el número de la serie.
El tercer número (9) es el número de versión dentro de la serie. Se incrementa
para cada nueva entrega.
12
Las denominaciones también incluyen un sufijo para indicar el grado de
estabilidad o de mejora. Los posibles sufijos son:
alpha indica que la entrega contiene características nuevas que no han sido
plenamente probadas.
beta significa que la entrega está destinada a poseer sus características
completas y que se probó todo el código nuevo.
rc es una entrega candidata; o sea, una beta que ha estado funcionando un
intervalo de tiempo y parece hacerlo bien.
Si no hay un sufijo, significa que la versión se ha estado utilizando por un tiempo
en diferentes sitios sin que se informaran errores críticos reproducibles, más allá
de los específicos de una plataforma.
Mas sobre MySQL en: http://www.solocodigoweb.com/blog/2014/03/04/una-
breve-cronologia-de-mysql/
13
Diferentes versiones de oracle database
Año Acontecimiento
1977 Larry Ellison fundo Software Development Laboratories que
después cambia a Relational Software Inc.(Creadores de Oracle)
1978 Oracle V1 corría en un PDP-11 bajo RSX de 128 KB máximo de
memoria
1980 Oracle V2, la primera base de datos relacional en usar SQL.
Corría en un DEC PDP-11. Este también corría sobre una
VAX/VMS.
1982 Oracle V3 liberado. Se consolida como el primer DBMS en correr
en Mainframes, minicomputadoras y PC’s, agregando el manejo
de transacciones a través de las instrucciones COMMIT y
ROLLBACK. Oracle V3 Server fue escrito en C.
1983 Relational Software Inc. cambia su nombre a Oracle Corporation
1984 Oracle V4 es liberado, este introducía lectura consistente, fue
portado a muchas plataformas, y fue el primero en hablar de
interoperabilidad entre Servidor y un PC.
1986 Oracle V5 liberado. Introducía un verdadero ambiente
cliente/servidor, soportaba el VAX-clúster y las consultas o querys
distribuidos. 14
Diferentes versiones de oracle database
1987 Herramientas CASE y 4GL.
1988 Es liberado Oracle V6.
1989 Oracle V6 introducía un sistema de acceso a clústeres simétricos
usando el Oracle Parallel Server.
1991 El poder llego a los 1000 TPS en un sistema paralelo de computo. La
primera base de datos en correr en un sistema paralelo masivo.
1992 Se libera el Oracle 7 para UNIX
1993 Se muestra ORACLE Cooperative Development Environment (CDE) y
se introduce Oracle Industries y el Oracle Media Server.
1994 Se libera la primera versión del Oracle 7 para PC.
1995 Oracle Corp. reporta ventas de casi 3 billones de dólares.
1997 Oracle 8 liberado (Soporte para mas usuarios, mas datos, mas
disponibilidad y algunas características orientadas a objetos
relacionales).
1998 Oracle anuncia soporte e instalación en sistemas operativos Linux en
plataformas intel IBM PC.
1999 Oracle 8i o bien Oracle 8.1.5 con integración Java (JVM en la base de
datos).
15
Diferentes versiones de oracle database
2000 Oracle 9i Application Server disponible, herramientas Oracle
integradas casi terminado.
2001 Oracle 9i liberado.
2004 Información acerca de la liberación del tan esperado Oracle 10g, la G
viene de Grid.
2005 Cuenta ya con 10 años Oracle FAQ. Se pone a disposición Oracle
10g (10.2.0)
2007 Lanzamiento de Oracle 11g
2010 Oracle Database Enterprise Edition (EE).
Oracle Database Standard Edition (SE).
Oracle Database Standard Edition One (SE1).
Oracle Database Express Edition (XE), version gratuita
Oracle Database Personal Edition (PE).
Oracle Database Lite Edition (LE).
2013 Oracle 12c, la primera base de datos diseñada para Cloud
Computing.
16
Requisitos para instalar Microsoft SQL Server, MySQL y Oracle
•https://technet.microsoft.com/es-
es/library/ms143506(v=SQL.105).aspx
•https://dragonsql.wordpress.com/18/
•http://www.prograweb.com.mx/admonBD/020103Requerimi
entos.php
17
Tipos de datos SQL Server
Tipos de datos numéricos.
SQL Server dispone de varios tipos de datos numéricos. Cuanto mayor sea
el número que puedan almacenar mayor será en consecuencia el espacio
utilizado para almacenarlo. Como regla general se recomienda usar el tipo de
dato mínimo posible. Todos los dato numéricos admiten el valor NULL.
Bit. Una columna o variable de tipo bit puede almacenar el rango de valores
de 1 a 0.
Tinyint. Una columna o variable de tipo tinyint puede almacenar el rango de
valores de 0 a 255.
SmallInt. Una columna o variable de tipo smallint puede almacenar el rango de
valores -32768 a 32767.
Int. Una columna o variable de tipo int puede almacenar el rango de valores -231
a 231-1.
BigInt. Una columna o variable de tipo bigint puede almacenar el rango de
valores -263 a 263-1.
Decimal(p, s). Una columna de tipo decimal puede almacenar datos numéricos
decimales sin redondear. Donde p es la precisión (número total del dígitos) y s
la escala (número de valores decimales)
Float. Una columna de datos float puede almacenar el rango de valores -1,79x-
10308 a 1,79x-10308, , si la definimos con el valor máximo de precisión. La
precisión puede variar entre 1 y 53. 18
Real. Sinónimo de float(24). Puede almacenar el rango de valores -3,4x-1038
a 3,4x-1038,
Money. Almacena valores numéricos monetarios de -263 a 263-1, con una
precisión de hasta diez milésimas de la unidad monetaria.
SmallMoney. Almacena valores numéricos monetarios de -214.748,3647 a
214.748,3647, con una precisión de hasta diez milésimas de la unidad
monetaria.
Tipos de datos de caracter.
Char(n). Almacena n caracteres en formato ASCII, un byte por cada letra.
Cuando almacenamos datos en el tipo char, siempre se utilizan los n caracteres
indicados, incluso si la entrada de datos es inferior. Por ejemplo, si en un
char(5), guardamos el valor 'A', se almacena 'A ', ocupando los cinco bytes.
Varchar(n).Almacena n caracteres en formato ASCII, un byte por cada letra.
Cuando almacenamos datos en el tipo varchar, únicamente se utilizan los
caracteres necesarios, Por ejemplo, si en un varchar(255), guardamos el valor
'A', se almacena 'A', ocupando solo un byte bytes.
Varchar(max). Igual que varchar, pero al declararse como max puede
almacenar 231-1 bytes.
Nchar(n). Almacena n caracteres en formato UNICODE, dos bytes por cada
letra. Es recomendable utilizar este tipo de datos cuando los valores que
vayamos a almacenar puedan pertenecer a diferentes idiomas.
19
Nvarchar(n). Almacena n caracteres en formato UNICODE, dos bytes por cada
letra. Es recomendable utilizar este tipo de datos cuando los valores que
vayamos a almacenar puedan pertenecer a diferentes idiomas.
Nvarchar(max). Igual que varchar, pero al declararse como max puede
almacenar 231-1 bytes.
Tipos de datos de fecha.
Datetime. Almacena fechas con una precisión de milisegundo. Debe usarse
para fechas muy específicas.
SmallDatetime. Almacena fechas con una precisión de minuto, por lo que
ocupa la mitad de espacio de que el tipo datetime, para tablas que puedan
llegar a tener muchos datos es un factor a tener muy en cuenta.
TimeStamp. Se utiliza para marcar un registro con la fecha de inserción -
actualización. El tipo timestamp se actualiza automáticamente cada vez que
insertamos o modificamos los datos.
Tipos de datos binarios.
Binary. Se utiliza para almacenar datos binarios de longitud fija, con una
longitud máxima de 8000 bytes.
Varbinary. Se utiliza para almacenar datos binarios de longitud variable, con
una longitud máxima de 8000 bytes..Es muy similar a binary, salvo que
varbinary utiliza menos espacio en disco.
20
Varbinary(max). Igual que varbinary, pero puede almacenar 231-1 bytes
Tipo de datos XML.
XML. Una de las grandes mejoras que incorpora SQL Server es el soporte
nativo para XML. Como podemos deducir, este tipo de datos se utiliza para
almacenar XML.
Otros tipos de datos.
UniqueIdentifier. Se utiliza para identificadores únicos. Para generar
identificadores únicos debemos utilizar la función NEWID().
Sql_Variant. Permite almacenar valores de diferentes tipos de datos. No puede
almacena varchar(max), xml, timestamp y tipos de datos definidos por el
usuario.
Tipos de datos personalizados.
Transact SQL permite la creación de tipos de datos personalizados, a través
de la instrucción CREATE TYPE. No es recomendable el uso de tipos de datos
personalizados.
21
Tipos de datos MySQL
Los tipos de datos que puede haber en un campo, se pueden agrupar
en tres grandes grupos:
Tipos numéricos
Tipos de Fecha
Tipos de Cadena
Tipos numéricos:
Existen tipos de datos numéricos, que se pueden dividir en dos
grandes grupos, los que están en coma flotante (con decimales) y los que no.
TinyInt: es un número entero con o sin signo. Con signo el rango de valores
válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255
Bit ó Bool: un número entero que puede ser 0 ó 1.
SmallInt: número entero con o sin signo. Con signo el rango de valores va
desde -32768 a 32767. Sin signo, el rango de valores es de 0 a 65535.
MediumInt: número entero con o sin signo. Con signo el rango de valores va
desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a16777215.
22
Integer, Int: número entero con o sin signo. Con signo el rango de valores va
desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a
429.4967.295
BigInt: número entero con o sin signo. Con signo el rango de valores va desde -
9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va
desde 0 a 18.446.744.073.709.551.615.
Float: número pequeño en coma flotante de precisión simple. Los valores
válidos van desde -3.402823466E+38 a -1.175494351E-38, 0 y desde
1.175494351E-38 a 3.402823466E+38.
xReal, Double: número en coma flotante de precisión doble. Los valores
permitidos van desde -1.7976931348623157E+308 a -2.2250738585072014E-
308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308
Decimal, Dec, Numeric: Número en coma flotante desempaquetado. El número
se almacena como una cadena
23
Tipos fecha
A la hora de almacenar fechas, hay que tener en cuenta que mysql no
comprueba de una manera estricta si una fecha es válida o no. Simplemente
comprueba que el mes está comprendido entre 0 y 12 y que el día está
comprendido entre 0 y 31.
Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de
enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es
de año-mes-día
DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de
enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del
9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento
es de año-mes-día horas: minutos: segundos
TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de
1970 al año 2037. El formato de almacenamiento depende del tamaño del
campo
Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y
59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento
es de 'HH:MM:SS'
24
Year: almacena un año. El rango de valores permitidos va desde el año 1901 al
año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si
queremos almacenar el año con dos o cuatro dígitos.
Tipos de cadena
Char(n): almacena una cadena de longitud fija. La cadena podrá contener
desde 0 a 255 caracteres.
VarChar(n): almacena una cadena de longitud variable. La cadena podrá
contener desde 0 a 255 caracteres.
Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo
Test y los tipo BLOB (Binary large Object)
La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de
realizar ordenamientos y comparaciones. Mientras que el tipo test se ordena sin
tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena
teniéndolas en cuenta.
25
Los tipos BLOB se utilizan para almacenar datos binarios como pueden ser
ficheros.
TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres.
Blob y Text: un texto con un máximo de 65535 caracteres.
MediumBlob y MediumText: un texto con un máximo de 16.777.215
caracteres.
LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295.
Hay que tener en cuenta que debido a los protocolos de comunicación los
paquetes pueden tener un máximo de 16 Mb.
Enum: campo que puede tener un único valor de una lista que se especifica. El
tipo Enum acepta hasta 65535 valores distintos.
Set: un campo que puede contener ninguno, uno ó varios valores de una lista.
La lista puede tener un máximo de 64 valores.
26
Diferencia de almacenamiento entre los tipos Char y VarChar
Valor CHAR(4) Almacenamiento VARCHAR(4) Almacenamiento
'' '' 4 bytes " 1 byte
'ab' 'ab ' 4 bytes 'ab' 3 bytes
'abcd' 'abcd' 4 bytes 'abcd' 5 bytes
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes
27
Tipos de datos Oracle
Los tipos de datos soportados por Oracle se agrupan en los siguientes
conjuntos.
Alfanuméricos Numéricos Fecha Binarios Otros
CHAR NUMBER DATE RAW ROWID
VARCHAR2 FLOAT LONGRAW
VARCHAR BLOB
NCHAR CLOB
NVARCHAR2 NLOB
LONG (Obs.) BFILE
Los valores alfanuméricos van encerrados entre comilla simple: 'Alfanumérico',
Los valores numéricos son número simples: 123, Las fechas van encerradas
entre comillas simples: '11/11/2011', Los valores binarios no pueden ser
representados (son fotos, vídeos)
28
CHAR(b): Almacena cadenas de caracteres de longitud fija, desde 1 a 2.000
bytes de ocupación. El número de caracteres que se pueden almacenar se rige
según la siguiente fórmula.
nº caracteres = bytes / character set
Para ASCII, el conjunto de caracteres ocupa un byte, por lo que coincide el
número de caracteres máximos con la ocupación del tipo de dato. Si se
introduce un valor de 10 caracteres en un campo de CHAR(100), se tendrá que
rellenar con 90 posiciones restantes.
Así la siguiente expresión es cierta: 'Hola Andrea' = 'Hola Andrea '
Si se intenta introducir un valor demasiado grande para el campo, se intentará
eliminar los espacios finales, y si cabe sin espacios, se introduce. Si aún así no
cabe, se retorna un error.
VARCHAR2(b): Almacena cadenas de caracteres de longitud variable. Si se
define una columna de longitud 100 bytes, y se introduce en ella un valor de 10
bytes, la columna ocupará 10 y no 100 como hacía con el tipo de dato CHAR.
29
VARCHAR(b): En Oracle es equivalente a VARCHAR2, en algunas versiones
permite distintos criterios de comparación.
NCHAR(b): Almacena un valor alfanumérico de longitud fija con posibilidad de
cambio de juego de caracteres. Puede almacenar tanto caracteres ASCII,
EBCDIC, UNICODE.
NVARCHAR2 (b): Almacena un valor alfanumérico de longitud variable con
posibilidad de cambio de juego de caracteres. Puede almacenar tanto
caracteres ASCII, EBCDIC, UNICODE.
NUMBER(p, s): Almacena valores numéricos en punto flotante que pueden ir
desde 1.0 x 10-130 hasta 9.9…(38 nueves)… 9 x 10125 . El almacenamiento
interno de los valores numéricos en notación científica:
Mantisa x 10 exponente
30
La mantisa puede contener cualquier número, entero o decimal, positivo o
negativo. El exponente podrá contener cualquier número entero, positivo o
negativo. El parámetro p indica la precisión (número de dígitos contando los
decimales) que contendrá el número como máximo. Oracle garantiza los datos
con precisiones de 1 a 38. El parámetro s indica la escala, esto es, el máximo
de dígitos decimales. Hay que tener en cuenta que una columna definida
NUMBER(10,5), podrá contener como máximo cualquier número siempre y
cuando el número de dígitos enteros más el número de dígitos decimales no
supere 10 (y no 15). La escala puede ir de -84 a 127. Para definir número
enteros, se puede omitir el parámetro s o bien poner un 0 en su lugar. Se puede
especificar una escala negativa, esto lo que hace es redondear el número
indicado a las posiciones indicadas en la escala. Por ejemplo un número
definido como NUMBER(5,-2), redondeará siempre a centenas. Así si
intentamos introducir el valor 1355, en realidad se almacenará 1400.
31
FLOAT(b): Almacena un número en punto decimal sin restricción de dígitos
decimales. El parámetro b indica la precisión binaria máxima que puede
moverse en el rango 1 a 126. Si se omite el defecto será 126. Una columna
FLOAT(126) es equivalente a una columna NUMBER(38), aunque la diferencia
está en que la columna NUMBER no podrá contener decimales y la columna
FLOAT si, y con cualquier escala.
DATE: Almacena un valor de fecha y hora. Para un tipo de dato DATE, Oracle
almacena internamente los siguientes datos:
•Siglo
•Año
•Mes
•Día
•Hora
•Minuto
•Segundo
El formato por defecto de las fechas es 'DD-MON-YYYY' esto significa: Dos
dígitos para el día, las tres primeras siglas del mes (depende del idioma
instalado), cuatro dígitos para el año. Por ejemplo:
'11-NOV-2015' '12-ABR-1999'
32
Este formato puede ser alterado en cualquier momento. Internamente una fecha
se almacena como el número de días desde cierto punto de inicio (por ejemplo
el año 0). Esto permite que las fechas puedan ser tratadas en operaciones
aritméticas normales:
'11-NOV-2015' + 10 = '21-NOV-2015'
'12-ABR-1999' - 1 = '11-ABR-1999'
'24-ABR-2014' - '1-ABR-2014' = 23
Binarios: Permiten almacenar información en formato “crudo”, valores binarios
tal y como se almacenan en el disco duro o como residen en memoria. Estas
columnas se pueden utilizar tanto para almacenar grandes cantidades de datos
(hasta 4Gb.), como para almacenar directamente cualquier tipo de fichero
(ejecutables, sonidos, vídeos, fotos, documentos Word, DLLs) o para transportar
datos de una base de datos a otra, ya que el formato binario es el único formato
común entre cualquier sistema informático.
LONG (Obsoleto): Almacena caracteres de longitud variable hasta 2 Gb. Este
tipo de dato se soporta para compatibilidad con versiones anteriores. En Oracle
y siguientes versiones se debe usar los tipos de datos CLOB y NLOB para
almacenar grandes cantidades de datos alfanuméricos.
33
ROWID: Representa una dirección de la base de datos, ocupada por una única
fila. El ROWID de una fila es un identificador único para una fila dentro de una
base de datos. No hay dos filas con el mismo ROWID. Este tipo de dato sirve
para guardar punteros a filas concretas.
Operadores aritméticos en SQL Server, MySQL y Oracle
operador Significado
+ Suma
- Resta
* Multiplicación
/ División
% (Módulo) Devuelve el resto entero de una división. Por
ejemplo, 12 % 5 = 2 porque el resto de 12
dividido entre 5 es 2.
34
Operadores relacionales en Oracle
Operador Significado
< el operando de la izquierda es menor que el de la
derecha
<= el operando de la izquierda es menor o igual que el de la
derecha
> el operando de la izquierda es mayor que el de la
derecha
>= el operando de la izquierda es mayor o igual que el de la
derecha
== el operando de la izquierda es igual que el de la derecha
!= el operando de la izquierda es distinto que el de la
derecha
35
Operadores relacionales en SQL Server
Operador Significado
< el operando de la izquierda es menor que el de la derecha
<= el operando de la izquierda es menor o igual que el de la derecha
> el operando de la izquierda es mayor que el de la derecha
<> el operando de la izquierda es distinto que el de la derecha
>= el operando de la izquierda es mayor o igual que el de la derecha
= el operando de la izquierda es igual que el de la derecha
!= El operador de la izquierda no es igual que el de la derecha
!< el operando de la izquierda no es menor que el de la derecha
!> el operando de la izquierda no es mayor que el de la derecha
36
Operadores lógicos en Oracle
Operador Descripción
&& AND lógico: verdadero (true) si ambos operandos
son verdaderos (true)
|| OR lógico: verdadero (true) si uno o los dos
operandos son verdaderos (true)
^^ XOR lógico: verdadero (true) si exactamente un
operando es verdadero (true)
37
Clausulas: son las condiciones que modifican nuestras consultas y son
utilizadas para definir los datos que desea seleccionar o manipular.
Clausulas Descripción
FROM Enuncia la procedencia de los datos, indicando la TABLA ,
la VISTA ó la SUBCONSULTA que se utilizará
WHERE Se emplea para especificar el filtro o condición que se desea
utilizar y se debe cumplir
GROUP Sirve para agrupar los registros de resultado y poder realizar
funciones de agregado luego
ORDER Otorga el orden a los resultados
HAVING Se utiliza para dar la condición a cumplir por cada grupo si fue
utilizado el GROUP
38
Comandos o sentencias
Son las diferentes instrucciones o mandatos que se le pueden dar al
gestor de base de datos para que este ejecute una acción determinada
Las instrucciones SQL se denominan TRANSACT-SQL y se clasifican
según su propósito en tres grupos: DDL (Lenguaje de Descripción de Datos),
DCL (Lenguaje de Control de Datos) y DML (Lenguaje de Manipulación de
Datos)
TRANSACT-SQL
Es un lenguaje muy potente que nos permite definir casi cualquier
tarea que queramos efectuar sobre la base de datos.
DDL (Data Description Language -- Lenguaje de Descripción de Datos)
Es la parte dedicada a la definición de datos, consta de sentencias
para definir la estructura de la base de datos, permite crear la base de datos,
crear, modificar o eliminar la estructura de las tablas, crear índices, definir reglas
de validación de datos, relaciones entre las tablas, etc. Permite definir gran
parte del nivel interno de la base de datos. Por este motivo estas sentencias
serán utilizadas normalmente por el administrador de la base de datos.
39
DCL (Data Control Language -- Lenguaje de Control de Datos)
Se compone de instrucciones que permiten ejercer un control sobre los
datos tales como la asignación de privilegios de acceso a los datos, la gestión
de transacciones. Las instrucciones que gestionan las autorizaciones serán
utilizadas normalmente por el administrador, mientras que las otras, referentes a
proceso de transacciones serán utilizadas también por los programadores.
DML (Data Manipulation Language -- Lenguaje de Manipulación de Datos)
Se compone de las instrucciones para el manejo de los datos, para
insertar nuevos datos, modificar datos existentes, para eliminar datos y la mas
utilizada, para recuperar datos de la base de datos. Es el lenguaje que utilizan
los programadores y los usuarios de la base de datos.
40
SENTENCIAS DESCRIPCION
DML
Manipulación de datos
SELECT
INSERT
DELETE
UPDATE
Recupera datos de la base de datos.
Añade nuevas filas de datos a la base de
datos.
Suprime filas de datos de la base de datos.
Modifica datos existentes en la base de
datos.
DDL
Definición de datos
CREATE TABLE
DROP TABLE
ALTER TABLE
CREATE VIEW
DROP VIEW
CREATE INDEX
DROP INDEX
CREATE SYNOYM
DROP SYNONYM
Añade una nueva tabla a la base de datos.
Suprime una tabla de la base de datos.
Modifica la estructura de una tabla
existente.
Añade una nueva vista a la base de datos.
Suprime una vista de la base de datos.
Construye un índice para una columna.
Suprime el índice para una columna.
Define un alias para un nombre de tabla.
Suprime un alias para un nombre de tabla.
41
SENTENCIAS DESCRIPCION
DCL
Control de acceso
GRANT
REVOKE
Control de transacciones
COMMIT
ROLLBACK
Concede privilegios de acceso a
usuarios.
Suprime privilegios de acceso a
usuarios
Finaliza la transacción actual.
Aborta la transacción actual.
PLSQL
SQL Programático
DECLARE
OPEN
FETCH
CLOSE
Define un cursor para una consulta.
Abre un cursor para recuperar
resultados de consulta.
Recupera una fila de resultados de
consulta.
Cierra un cursor.
42
Paginas de consultas
1.http://basededatos.over-blog.net/article-tipos-de-bases-de-datos-
68319538.html
2.https://ylez.wordpress.com/2010/02/01/sistemas-de-gestores-de-base-de-
datos-libres-y-no-libres/
3.http://deconceptos.com/general/dato
4.https://es.wikipedia.org
5.http://sqlserverbuilds.blogspot.com/
6.http://sistemaspyt.blogspot.com/
7.http://es.slideshare.net/belesle/oracle-14218428
8.http://www.techonthenet.com/oracle/datatypes.php
9.http://www.tuinformaticafacil.com/oracle-11g/tipos-de-datos-en-oracle-11g
10.http://docs.oracle.com/cd/E19253-01/819-6957/chp-typeopexpr-8/index.html
11.http://www.lenguajesql.com.ar/lenguajesql/default.asp?id=11
43
Fin
44

Base de datos

  • 1.
    Facilitador : RobertoBurgos M. Correo: rbm3025@gmail.com miércoles, 8 de mayo de 2019
  • 2.
    Base de datos •"UnaBase de Datos (BD) es una colección o depósito de datos integrados, almacenados en soporte secundario (no volátil) y con redundancia controlada. Los datos, que han de ser compartidos por diferentes usuarios y aplicaciones, deben mantenerse independientes de ellos y su definición (estructura de la BD), única y almacenada junto con los datos, se ha de apoyar en un modelo de datos, el cual ha de permitir captar las interrelaciones y restricciones existentes en el mundo real. Los procedimientos de actualización y recuperación, comunes y bien determinados, facilitarán la seguridad del conjunto de los datos", De Miguel et. al. (1999). •La BD es un conjunto de datos relativos a una determinada parcela del mundo real (por ejemplo, una biblioteca, una empresa petroquímica, una universidad, etc.,) que se almacenan en un soporte informático no volátil (es decir, dispositivos de memoria secundaria como discos, cintas, etc. que hacen que los datos no desaparezcan "cuando no se están usando"). Además, no debe existir redundancia, es decir, no deben existir duplicidades perjudiciales ni innecesarias (a ser posible un determinado tipo de dato, por ejemplo, los datos de un cliente de una empresa, sólo deben aparecer en un sitio en la BD). 2
  • 3.
    •Una base dedatos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico. Tipos De Bases De Datos Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté manejando, o la utilidad de la misma. Según la variabilidad de los datos almacenados: Bases De Datos Estáticas Estas son bases de datos de solo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones. Bases De Datos Dinámicas Estas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización, borrado y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de un supermercado, una farmacia, un videoclub o una empresa. 3
  • 4.
    Según modelo deadministración de datos Bases de datos jerárquicas Éstas son bases de datos que, como su nombre indica, 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 es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Base de datos de red Éste es un modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico). Base de datos relacional Es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para implementar bases de datos ya planificadas. Permiten establecer interconexiones (relaciones) entre los datos (que están guardados en tablas), y a través de dichas conexiones relacionar los datos de ambas tablas, de ahí proviene su nombre: "Modelo Relacional". Tras ser postuladas sus bases en 1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en consolidarse como un nuevo paradigma en los modelos de base de datos. 4
  • 5.
    Otros modelos: Bases DeDatos Transaccionales, Bases De Datos Multidimensionales , Bases De Datos Orientadas a Objetos, Bases De Datos Documentales, Bases De Datos Deductivas, etc. Sistemas de Gestión de Bases de Datos (SGBD) Es un conjunto coordinado de programas, procedimientos, lenguajes, herramientas, etc., que suministra, tanto a los usuarios no informáticos como a los analistas, programadores o administradores de una BD, los medios necesarios para describir y manipular los datos integrados en la BD, manteniendo su integridad, confidencialidad y disponibilidad Gestores de base de datos Ejemplos de gestores de base de datos libres: Firebird, BDB, MySQL, PostgreSQL, Sqlite, Sydes (linux), SQLIFE, ApacheDerby, DBD2 express-C DB2, etc. 5
  • 6.
    Ejemplos de gestoresde base de datos propietarios dBase, FileMaker, Fox Pro, IBM DB2 Universal Database (DB2 UDB), IBM Informix, MAGIC, Microsoft SQL Server, Open Access, Oracle, Paradox, Pervasive SQL, Progress (DBMS), Sybase ASE, Sybase ASA, Sybase IQ, WindowBase, Microsoft Access, etc. Datos Es el elemento primario de la información conformado por símbolos (letras, números, dibujos, señas, gestos) que reunidos pueden cobrar significación. Solo o aislado el dato no posee relevancia, pero utilizado en las premisas de un razonamiento puede llevarnos a una conclusión. Campo Es un espacio de almacenamiento para un dato en particular. Es la mínima unidad de la información a la que se puede acceder; un campo o un conjunto de ellos forman un registro. 6
  • 7.
    Registro Es un conjuntode campos que contienen los datos que pertenecen a una misma repetición de entidad. Se le asigna automáticamente un número consecutivo (número de registro) que en ocasiones es usado como índice aunque lo normal y práctico es asignarle a cada registro un campo clave para su búsqueda. (también llamado fila o tupla) representa un objeto único de datos implícitamente estructurados en una tabla. En términos simples, una tabla de una base de datos puede imaginarse formada de filas y columnas o campos. Cada fila de una tabla representa un conjunto de datos relacionados, y todas las filas de la misma tabla tienen la misma estructura. Microsoft SQL Server Es un sistema de manejo de bases de datos del modelo relacional, desarrollado por la empresa Microsoft. El lenguaje de desarrollo utilizado (por línea de comandos o mediante la interfaz gráfica de managment studio) es Transact-SQL (TSQL), una implementación del estándar ANSI del lenguaje SQL, utilizado para manipular y recuperar datos (DML), crear tablas y definir relaciones entre ellas (DDL). 7
  • 8.
    Los competidores principalesde SQL Server, en el mercado de las bases de datos relacionales, son productos como Oracle, MySQL, PostgreSQL etc.; SQL Server solo está disponible para sistemas operativos Windows de Microsoft. Puede ser configurado para utilizar varias instancias en el mismo servidor físico, la primera instalación lleva generalmente el nombre del servidor, y las siguientes - nombres específicos MySQL Es un sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. []MySQL AB — desde enero de 2008 es una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009 — desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado se ofrece bajo la GNU GPL ("GNU No es Unix" General Public License) para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C. 8
  • 9.
    Al contrario deproyectos como Apache, donde el software es desarrollado por una comunidad pública y los derechos de autor del código están en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius. MySQL es usado por muchos sitios web grandes y populares, como Wikipedia, []Google (aunque no para búsquedas), Facebook, Twitter, Flickr, y YouTube. MySQL funciona sobre múltiples plataformas, incluyendo: AIX, BSD, FreeBSD, HP-UX, Kurisu OS, GNU/Linux, Mac OS X, NetBSD, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Solaris, SunOS, SCO OpenServer, SCO UnixWare, Tru64, eBD, Windows (95, 98, NT, 2000, XP, Vista, 7, 8 y Server (2000, 2003, 2008 y 2012)), OpenVMS 9
  • 10.
    Oracle Es un sistemade gestión de base de datos objeto-relacional (u ORDBMS por el acrónimo en inglés de Object-Relational Data Base Management System), desarrollado por Oracle Corporation. Se considera a Oracle Database como uno de los sistemas de bases de datos más completos, destacando: Soporte de transacciones. Estabilidad. Escalabilidad. Soporte multiplataforma. Su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco; recientemente sufre la competencia del SQL Server de Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQL, MySQL o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux. 10
  • 11.
    Diferentes versiones MicrosoftSQL Server Año Nombre de la versión 1989 SQL Server 1.0 1991 SQL Server 1.1 1992 SQL Server 4.2 1993 SQL Server 4.21 1995 SQL Server 6.0 1996 SQL Server 6.5 1998 SQL Server 7.0 1999 SQL Server 7.0 OLAP Tools 2000 SQL Server 2000 2003 SQL Server 2000 64-bit Edition 2005 SQL Server 2005 2008 SQL Server 2008 2010 SQL Azure DB 2010 SQL Server 2008 R2 2012 SQL Server 2012 2014 SQL Server 2014 2015 SQL Server 2016 (Preview) 11
  • 12.
    Diferentes versiones MySQL •95 (23 de mayo): MySQL fue lanzado internamente. • 1998 (8 de enero): lanzan la primera versión de MySQL para Windows 95 y NT. • 2000 (agosto): lanzan la versión 3.23 beta. • 2001 (enero): lanzan la versión 3.23. • 2002 (agosto): lanzan la versión 4.0 beta. • 2003 (marzo): lanzan la versión 4.0. • 2004 (junio): lanzan la versión 4.1 beta. • 2004 (octubre): lanzan la versión 4.1. • 2004 (marzo): lanzan la versión beta 5.0 • 2005 (octubre): lanzan la versión 5.0. El esquema de denominaciones de MySQL emplea nombres consistentes en tres números y un sufijo; por ejemplo, mysql-5.0.9-beta. Los números dentro del nombre se interpretan así: El primer número (5) es la versión principal y describe el formato de fichero. Todas las entregas de la versión 5 comparten el mismo formato para sus ficheros. El segundo número (0) es el nivel de entrega. En conjunto, la versión principal y el nivel de entrega constituyen el número de la serie. El tercer número (9) es el número de versión dentro de la serie. Se incrementa para cada nueva entrega. 12
  • 13.
    Las denominaciones tambiénincluyen un sufijo para indicar el grado de estabilidad o de mejora. Los posibles sufijos son: alpha indica que la entrega contiene características nuevas que no han sido plenamente probadas. beta significa que la entrega está destinada a poseer sus características completas y que se probó todo el código nuevo. rc es una entrega candidata; o sea, una beta que ha estado funcionando un intervalo de tiempo y parece hacerlo bien. Si no hay un sufijo, significa que la versión se ha estado utilizando por un tiempo en diferentes sitios sin que se informaran errores críticos reproducibles, más allá de los específicos de una plataforma. Mas sobre MySQL en: http://www.solocodigoweb.com/blog/2014/03/04/una- breve-cronologia-de-mysql/ 13
  • 14.
    Diferentes versiones deoracle database Año Acontecimiento 1977 Larry Ellison fundo Software Development Laboratories que después cambia a Relational Software Inc.(Creadores de Oracle) 1978 Oracle V1 corría en un PDP-11 bajo RSX de 128 KB máximo de memoria 1980 Oracle V2, la primera base de datos relacional en usar SQL. Corría en un DEC PDP-11. Este también corría sobre una VAX/VMS. 1982 Oracle V3 liberado. Se consolida como el primer DBMS en correr en Mainframes, minicomputadoras y PC’s, agregando el manejo de transacciones a través de las instrucciones COMMIT y ROLLBACK. Oracle V3 Server fue escrito en C. 1983 Relational Software Inc. cambia su nombre a Oracle Corporation 1984 Oracle V4 es liberado, este introducía lectura consistente, fue portado a muchas plataformas, y fue el primero en hablar de interoperabilidad entre Servidor y un PC. 1986 Oracle V5 liberado. Introducía un verdadero ambiente cliente/servidor, soportaba el VAX-clúster y las consultas o querys distribuidos. 14
  • 15.
    Diferentes versiones deoracle database 1987 Herramientas CASE y 4GL. 1988 Es liberado Oracle V6. 1989 Oracle V6 introducía un sistema de acceso a clústeres simétricos usando el Oracle Parallel Server. 1991 El poder llego a los 1000 TPS en un sistema paralelo de computo. La primera base de datos en correr en un sistema paralelo masivo. 1992 Se libera el Oracle 7 para UNIX 1993 Se muestra ORACLE Cooperative Development Environment (CDE) y se introduce Oracle Industries y el Oracle Media Server. 1994 Se libera la primera versión del Oracle 7 para PC. 1995 Oracle Corp. reporta ventas de casi 3 billones de dólares. 1997 Oracle 8 liberado (Soporte para mas usuarios, mas datos, mas disponibilidad y algunas características orientadas a objetos relacionales). 1998 Oracle anuncia soporte e instalación en sistemas operativos Linux en plataformas intel IBM PC. 1999 Oracle 8i o bien Oracle 8.1.5 con integración Java (JVM en la base de datos). 15
  • 16.
    Diferentes versiones deoracle database 2000 Oracle 9i Application Server disponible, herramientas Oracle integradas casi terminado. 2001 Oracle 9i liberado. 2004 Información acerca de la liberación del tan esperado Oracle 10g, la G viene de Grid. 2005 Cuenta ya con 10 años Oracle FAQ. Se pone a disposición Oracle 10g (10.2.0) 2007 Lanzamiento de Oracle 11g 2010 Oracle Database Enterprise Edition (EE). Oracle Database Standard Edition (SE). Oracle Database Standard Edition One (SE1). Oracle Database Express Edition (XE), version gratuita Oracle Database Personal Edition (PE). Oracle Database Lite Edition (LE). 2013 Oracle 12c, la primera base de datos diseñada para Cloud Computing. 16
  • 17.
    Requisitos para instalarMicrosoft SQL Server, MySQL y Oracle •https://technet.microsoft.com/es- es/library/ms143506(v=SQL.105).aspx •https://dragonsql.wordpress.com/18/ •http://www.prograweb.com.mx/admonBD/020103Requerimi entos.php 17
  • 18.
    Tipos de datosSQL Server Tipos de datos numéricos. SQL Server dispone de varios tipos de datos numéricos. Cuanto mayor sea el número que puedan almacenar mayor será en consecuencia el espacio utilizado para almacenarlo. Como regla general se recomienda usar el tipo de dato mínimo posible. Todos los dato numéricos admiten el valor NULL. Bit. Una columna o variable de tipo bit puede almacenar el rango de valores de 1 a 0. Tinyint. Una columna o variable de tipo tinyint puede almacenar el rango de valores de 0 a 255. SmallInt. Una columna o variable de tipo smallint puede almacenar el rango de valores -32768 a 32767. Int. Una columna o variable de tipo int puede almacenar el rango de valores -231 a 231-1. BigInt. Una columna o variable de tipo bigint puede almacenar el rango de valores -263 a 263-1. Decimal(p, s). Una columna de tipo decimal puede almacenar datos numéricos decimales sin redondear. Donde p es la precisión (número total del dígitos) y s la escala (número de valores decimales) Float. Una columna de datos float puede almacenar el rango de valores -1,79x- 10308 a 1,79x-10308, , si la definimos con el valor máximo de precisión. La precisión puede variar entre 1 y 53. 18
  • 19.
    Real. Sinónimo defloat(24). Puede almacenar el rango de valores -3,4x-1038 a 3,4x-1038, Money. Almacena valores numéricos monetarios de -263 a 263-1, con una precisión de hasta diez milésimas de la unidad monetaria. SmallMoney. Almacena valores numéricos monetarios de -214.748,3647 a 214.748,3647, con una precisión de hasta diez milésimas de la unidad monetaria. Tipos de datos de caracter. Char(n). Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo char, siempre se utilizan los n caracteres indicados, incluso si la entrada de datos es inferior. Por ejemplo, si en un char(5), guardamos el valor 'A', se almacena 'A ', ocupando los cinco bytes. Varchar(n).Almacena n caracteres en formato ASCII, un byte por cada letra. Cuando almacenamos datos en el tipo varchar, únicamente se utilizan los caracteres necesarios, Por ejemplo, si en un varchar(255), guardamos el valor 'A', se almacena 'A', ocupando solo un byte bytes. Varchar(max). Igual que varchar, pero al declararse como max puede almacenar 231-1 bytes. Nchar(n). Almacena n caracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferentes idiomas. 19
  • 20.
    Nvarchar(n). Almacena ncaracteres en formato UNICODE, dos bytes por cada letra. Es recomendable utilizar este tipo de datos cuando los valores que vayamos a almacenar puedan pertenecer a diferentes idiomas. Nvarchar(max). Igual que varchar, pero al declararse como max puede almacenar 231-1 bytes. Tipos de datos de fecha. Datetime. Almacena fechas con una precisión de milisegundo. Debe usarse para fechas muy específicas. SmallDatetime. Almacena fechas con una precisión de minuto, por lo que ocupa la mitad de espacio de que el tipo datetime, para tablas que puedan llegar a tener muchos datos es un factor a tener muy en cuenta. TimeStamp. Se utiliza para marcar un registro con la fecha de inserción - actualización. El tipo timestamp se actualiza automáticamente cada vez que insertamos o modificamos los datos. Tipos de datos binarios. Binary. Se utiliza para almacenar datos binarios de longitud fija, con una longitud máxima de 8000 bytes. Varbinary. Se utiliza para almacenar datos binarios de longitud variable, con una longitud máxima de 8000 bytes..Es muy similar a binary, salvo que varbinary utiliza menos espacio en disco. 20
  • 21.
    Varbinary(max). Igual quevarbinary, pero puede almacenar 231-1 bytes Tipo de datos XML. XML. Una de las grandes mejoras que incorpora SQL Server es el soporte nativo para XML. Como podemos deducir, este tipo de datos se utiliza para almacenar XML. Otros tipos de datos. UniqueIdentifier. Se utiliza para identificadores únicos. Para generar identificadores únicos debemos utilizar la función NEWID(). Sql_Variant. Permite almacenar valores de diferentes tipos de datos. No puede almacena varchar(max), xml, timestamp y tipos de datos definidos por el usuario. Tipos de datos personalizados. Transact SQL permite la creación de tipos de datos personalizados, a través de la instrucción CREATE TYPE. No es recomendable el uso de tipos de datos personalizados. 21
  • 22.
    Tipos de datosMySQL Los tipos de datos que puede haber en un campo, se pueden agrupar en tres grandes grupos: Tipos numéricos Tipos de Fecha Tipos de Cadena Tipos numéricos: Existen tipos de datos numéricos, que se pueden dividir en dos grandes grupos, los que están en coma flotante (con decimales) y los que no. TinyInt: es un número entero con o sin signo. Con signo el rango de valores válidos va desde -128 a 127. Sin signo, el rango de valores es de 0 a 255 Bit ó Bool: un número entero que puede ser 0 ó 1. SmallInt: número entero con o sin signo. Con signo el rango de valores va desde -32768 a 32767. Sin signo, el rango de valores es de 0 a 65535. MediumInt: número entero con o sin signo. Con signo el rango de valores va desde -8.388.608 a 8.388.607. Sin signo el rango va desde 0 a16777215. 22
  • 23.
    Integer, Int: númeroentero con o sin signo. Con signo el rango de valores va desde -2147483648 a 2147483647. Sin signo el rango va desde 0 a 429.4967.295 BigInt: número entero con o sin signo. Con signo el rango de valores va desde - 9.223.372.036.854.775.808 a 9.223.372.036.854.775.807. Sin signo el rango va desde 0 a 18.446.744.073.709.551.615. Float: número pequeño en coma flotante de precisión simple. Los valores válidos van desde -3.402823466E+38 a -1.175494351E-38, 0 y desde 1.175494351E-38 a 3.402823466E+38. xReal, Double: número en coma flotante de precisión doble. Los valores permitidos van desde -1.7976931348623157E+308 a -2.2250738585072014E- 308, 0 y desde 2.2250738585072014E-308 a 1.7976931348623157E+308 Decimal, Dec, Numeric: Número en coma flotante desempaquetado. El número se almacena como una cadena 23
  • 24.
    Tipos fecha A lahora de almacenar fechas, hay que tener en cuenta que mysql no comprueba de una manera estricta si una fecha es válida o no. Simplemente comprueba que el mes está comprendido entre 0 y 12 y que el día está comprendido entre 0 y 31. Date: tipo fecha, almacena una fecha. El rango de valores va desde el 1 de enero del 1001 al 31 de diciembre de 9999. El formato de almacenamiento es de año-mes-día DateTime: Combinación de fecha y hora. El rango de valores va desde el 1 de enero del 1001 a las 0 horas, 0 minutos y 0 segundos al 31 de diciembre del 9999 a las 23 horas, 59 minutos y 59 segundos. El formato de almacenamiento es de año-mes-día horas: minutos: segundos TimeStamp: Combinación de fecha y hora. El rango va desde el 1 de enero de 1970 al año 2037. El formato de almacenamiento depende del tamaño del campo Time: almacena una hora. El rango de horas va desde -838 horas, 59 minutos y 59 segundos a 838, 59 minutos y 59 segundos. El formato de almacenamiento es de 'HH:MM:SS' 24
  • 25.
    Year: almacena unaño. El rango de valores permitidos va desde el año 1901 al año 2155. El campo puede tener tamaño dos o tamaño 4 dependiendo de si queremos almacenar el año con dos o cuatro dígitos. Tipos de cadena Char(n): almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteres. VarChar(n): almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteres. Dentro de los tipos de cadena se pueden distinguir otros dos subtipos, los tipo Test y los tipo BLOB (Binary large Object) La diferencia entre un tipo y otro es el tratamiento que reciben a la hora de realizar ordenamientos y comparaciones. Mientras que el tipo test se ordena sin tener en cuenta las Mayúsculas y las minúsculas, el tipo BLOB se ordena teniéndolas en cuenta. 25
  • 26.
    Los tipos BLOBse utilizan para almacenar datos binarios como pueden ser ficheros. TinyText y TinyBlob: Columna con una longitud máxima de 255 caracteres. Blob y Text: un texto con un máximo de 65535 caracteres. MediumBlob y MediumText: un texto con un máximo de 16.777.215 caracteres. LongBlob y LongText: un texto con un máximo de caracteres 4.294.967.295. Hay que tener en cuenta que debido a los protocolos de comunicación los paquetes pueden tener un máximo de 16 Mb. Enum: campo que puede tener un único valor de una lista que se especifica. El tipo Enum acepta hasta 65535 valores distintos. Set: un campo que puede contener ninguno, uno ó varios valores de una lista. La lista puede tener un máximo de 64 valores. 26
  • 27.
    Diferencia de almacenamientoentre los tipos Char y VarChar Valor CHAR(4) Almacenamiento VARCHAR(4) Almacenamiento '' '' 4 bytes " 1 byte 'ab' 'ab ' 4 bytes 'ab' 3 bytes 'abcd' 'abcd' 4 bytes 'abcd' 5 bytes 'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes 27
  • 28.
    Tipos de datosOracle Los tipos de datos soportados por Oracle se agrupan en los siguientes conjuntos. Alfanuméricos Numéricos Fecha Binarios Otros CHAR NUMBER DATE RAW ROWID VARCHAR2 FLOAT LONGRAW VARCHAR BLOB NCHAR CLOB NVARCHAR2 NLOB LONG (Obs.) BFILE Los valores alfanuméricos van encerrados entre comilla simple: 'Alfanumérico', Los valores numéricos son número simples: 123, Las fechas van encerradas entre comillas simples: '11/11/2011', Los valores binarios no pueden ser representados (son fotos, vídeos) 28
  • 29.
    CHAR(b): Almacena cadenasde caracteres de longitud fija, desde 1 a 2.000 bytes de ocupación. El número de caracteres que se pueden almacenar se rige según la siguiente fórmula. nº caracteres = bytes / character set Para ASCII, el conjunto de caracteres ocupa un byte, por lo que coincide el número de caracteres máximos con la ocupación del tipo de dato. Si se introduce un valor de 10 caracteres en un campo de CHAR(100), se tendrá que rellenar con 90 posiciones restantes. Así la siguiente expresión es cierta: 'Hola Andrea' = 'Hola Andrea ' Si se intenta introducir un valor demasiado grande para el campo, se intentará eliminar los espacios finales, y si cabe sin espacios, se introduce. Si aún así no cabe, se retorna un error. VARCHAR2(b): Almacena cadenas de caracteres de longitud variable. Si se define una columna de longitud 100 bytes, y se introduce en ella un valor de 10 bytes, la columna ocupará 10 y no 100 como hacía con el tipo de dato CHAR. 29
  • 30.
    VARCHAR(b): En Oraclees equivalente a VARCHAR2, en algunas versiones permite distintos criterios de comparación. NCHAR(b): Almacena un valor alfanumérico de longitud fija con posibilidad de cambio de juego de caracteres. Puede almacenar tanto caracteres ASCII, EBCDIC, UNICODE. NVARCHAR2 (b): Almacena un valor alfanumérico de longitud variable con posibilidad de cambio de juego de caracteres. Puede almacenar tanto caracteres ASCII, EBCDIC, UNICODE. NUMBER(p, s): Almacena valores numéricos en punto flotante que pueden ir desde 1.0 x 10-130 hasta 9.9…(38 nueves)… 9 x 10125 . El almacenamiento interno de los valores numéricos en notación científica: Mantisa x 10 exponente 30
  • 31.
    La mantisa puedecontener cualquier número, entero o decimal, positivo o negativo. El exponente podrá contener cualquier número entero, positivo o negativo. El parámetro p indica la precisión (número de dígitos contando los decimales) que contendrá el número como máximo. Oracle garantiza los datos con precisiones de 1 a 38. El parámetro s indica la escala, esto es, el máximo de dígitos decimales. Hay que tener en cuenta que una columna definida NUMBER(10,5), podrá contener como máximo cualquier número siempre y cuando el número de dígitos enteros más el número de dígitos decimales no supere 10 (y no 15). La escala puede ir de -84 a 127. Para definir número enteros, se puede omitir el parámetro s o bien poner un 0 en su lugar. Se puede especificar una escala negativa, esto lo que hace es redondear el número indicado a las posiciones indicadas en la escala. Por ejemplo un número definido como NUMBER(5,-2), redondeará siempre a centenas. Así si intentamos introducir el valor 1355, en realidad se almacenará 1400. 31
  • 32.
    FLOAT(b): Almacena unnúmero en punto decimal sin restricción de dígitos decimales. El parámetro b indica la precisión binaria máxima que puede moverse en el rango 1 a 126. Si se omite el defecto será 126. Una columna FLOAT(126) es equivalente a una columna NUMBER(38), aunque la diferencia está en que la columna NUMBER no podrá contener decimales y la columna FLOAT si, y con cualquier escala. DATE: Almacena un valor de fecha y hora. Para un tipo de dato DATE, Oracle almacena internamente los siguientes datos: •Siglo •Año •Mes •Día •Hora •Minuto •Segundo El formato por defecto de las fechas es 'DD-MON-YYYY' esto significa: Dos dígitos para el día, las tres primeras siglas del mes (depende del idioma instalado), cuatro dígitos para el año. Por ejemplo: '11-NOV-2015' '12-ABR-1999' 32
  • 33.
    Este formato puedeser alterado en cualquier momento. Internamente una fecha se almacena como el número de días desde cierto punto de inicio (por ejemplo el año 0). Esto permite que las fechas puedan ser tratadas en operaciones aritméticas normales: '11-NOV-2015' + 10 = '21-NOV-2015' '12-ABR-1999' - 1 = '11-ABR-1999' '24-ABR-2014' - '1-ABR-2014' = 23 Binarios: Permiten almacenar información en formato “crudo”, valores binarios tal y como se almacenan en el disco duro o como residen en memoria. Estas columnas se pueden utilizar tanto para almacenar grandes cantidades de datos (hasta 4Gb.), como para almacenar directamente cualquier tipo de fichero (ejecutables, sonidos, vídeos, fotos, documentos Word, DLLs) o para transportar datos de una base de datos a otra, ya que el formato binario es el único formato común entre cualquier sistema informático. LONG (Obsoleto): Almacena caracteres de longitud variable hasta 2 Gb. Este tipo de dato se soporta para compatibilidad con versiones anteriores. En Oracle y siguientes versiones se debe usar los tipos de datos CLOB y NLOB para almacenar grandes cantidades de datos alfanuméricos. 33
  • 34.
    ROWID: Representa unadirección de la base de datos, ocupada por una única fila. El ROWID de una fila es un identificador único para una fila dentro de una base de datos. No hay dos filas con el mismo ROWID. Este tipo de dato sirve para guardar punteros a filas concretas. Operadores aritméticos en SQL Server, MySQL y Oracle operador Significado + Suma - Resta * Multiplicación / División % (Módulo) Devuelve el resto entero de una división. Por ejemplo, 12 % 5 = 2 porque el resto de 12 dividido entre 5 es 2. 34
  • 35.
    Operadores relacionales enOracle Operador Significado < el operando de la izquierda es menor que el de la derecha <= el operando de la izquierda es menor o igual que el de la derecha > el operando de la izquierda es mayor que el de la derecha >= el operando de la izquierda es mayor o igual que el de la derecha == el operando de la izquierda es igual que el de la derecha != el operando de la izquierda es distinto que el de la derecha 35
  • 36.
    Operadores relacionales enSQL Server Operador Significado < el operando de la izquierda es menor que el de la derecha <= el operando de la izquierda es menor o igual que el de la derecha > el operando de la izquierda es mayor que el de la derecha <> el operando de la izquierda es distinto que el de la derecha >= el operando de la izquierda es mayor o igual que el de la derecha = el operando de la izquierda es igual que el de la derecha != El operador de la izquierda no es igual que el de la derecha !< el operando de la izquierda no es menor que el de la derecha !> el operando de la izquierda no es mayor que el de la derecha 36
  • 37.
    Operadores lógicos enOracle Operador Descripción && AND lógico: verdadero (true) si ambos operandos son verdaderos (true) || OR lógico: verdadero (true) si uno o los dos operandos son verdaderos (true) ^^ XOR lógico: verdadero (true) si exactamente un operando es verdadero (true) 37
  • 38.
    Clausulas: son lascondiciones que modifican nuestras consultas y son utilizadas para definir los datos que desea seleccionar o manipular. Clausulas Descripción FROM Enuncia la procedencia de los datos, indicando la TABLA , la VISTA ó la SUBCONSULTA que se utilizará WHERE Se emplea para especificar el filtro o condición que se desea utilizar y se debe cumplir GROUP Sirve para agrupar los registros de resultado y poder realizar funciones de agregado luego ORDER Otorga el orden a los resultados HAVING Se utiliza para dar la condición a cumplir por cada grupo si fue utilizado el GROUP 38
  • 39.
    Comandos o sentencias Sonlas diferentes instrucciones o mandatos que se le pueden dar al gestor de base de datos para que este ejecute una acción determinada Las instrucciones SQL se denominan TRANSACT-SQL y se clasifican según su propósito en tres grupos: DDL (Lenguaje de Descripción de Datos), DCL (Lenguaje de Control de Datos) y DML (Lenguaje de Manipulación de Datos) TRANSACT-SQL Es un lenguaje muy potente que nos permite definir casi cualquier tarea que queramos efectuar sobre la base de datos. DDL (Data Description Language -- Lenguaje de Descripción de Datos) Es la parte dedicada a la definición de datos, consta de sentencias para definir la estructura de la base de datos, permite crear la base de datos, crear, modificar o eliminar la estructura de las tablas, crear índices, definir reglas de validación de datos, relaciones entre las tablas, etc. Permite definir gran parte del nivel interno de la base de datos. Por este motivo estas sentencias serán utilizadas normalmente por el administrador de la base de datos. 39
  • 40.
    DCL (Data ControlLanguage -- Lenguaje de Control de Datos) Se compone de instrucciones que permiten ejercer un control sobre los datos tales como la asignación de privilegios de acceso a los datos, la gestión de transacciones. Las instrucciones que gestionan las autorizaciones serán utilizadas normalmente por el administrador, mientras que las otras, referentes a proceso de transacciones serán utilizadas también por los programadores. DML (Data Manipulation Language -- Lenguaje de Manipulación de Datos) Se compone de las instrucciones para el manejo de los datos, para insertar nuevos datos, modificar datos existentes, para eliminar datos y la mas utilizada, para recuperar datos de la base de datos. Es el lenguaje que utilizan los programadores y los usuarios de la base de datos. 40
  • 41.
    SENTENCIAS DESCRIPCION DML Manipulación dedatos SELECT INSERT DELETE UPDATE Recupera datos de la base de datos. Añade nuevas filas de datos a la base de datos. Suprime filas de datos de la base de datos. Modifica datos existentes en la base de datos. DDL Definición de datos CREATE TABLE DROP TABLE ALTER TABLE CREATE VIEW DROP VIEW CREATE INDEX DROP INDEX CREATE SYNOYM DROP SYNONYM Añade una nueva tabla a la base de datos. Suprime una tabla de la base de datos. Modifica la estructura de una tabla existente. Añade una nueva vista a la base de datos. Suprime una vista de la base de datos. Construye un índice para una columna. Suprime el índice para una columna. Define un alias para un nombre de tabla. Suprime un alias para un nombre de tabla. 41
  • 42.
    SENTENCIAS DESCRIPCION DCL Control deacceso GRANT REVOKE Control de transacciones COMMIT ROLLBACK Concede privilegios de acceso a usuarios. Suprime privilegios de acceso a usuarios Finaliza la transacción actual. Aborta la transacción actual. PLSQL SQL Programático DECLARE OPEN FETCH CLOSE Define un cursor para una consulta. Abre un cursor para recuperar resultados de consulta. Recupera una fila de resultados de consulta. Cierra un cursor. 42
  • 43.
  • 44.