SlideShare uma empresa Scribd logo
1 de 32
Introducción a Bases de Datos y SQL
Clase 1
http://javacuriosities.blogspot.com/
¿Que es una base de datos?
▪ Una base de datos o banco de datos es un conjunto de datos
pertenecientes a un mismo contexto y almacenados sistemáticamente
para su posterior uso.
▪ Una biblioteca puede considerarse una base de datos compuesta en su
mayoría por documentos y textos impresos en papel e indexados para su
consulta.
▪ Actualmente, y debido al desarrollo tecnológico de campos como
la informática y la electrónica, la mayoría de las bases de datos están en
formato digital (electrónico), y por ende se ha desarrollado y se ofrece un
amplio rango de soluciones al problema del almacenamiento de datos.
Introduccion a Bases de Datos y SQL
Distintos SGBD
▪ Las principales marcas del mercado son ORACLE, MySQL, SQL Server,
PostGreSQL, SQL Lite
Introduccion a Bases de Datos y SQL
Open source: Significa que es posible para cualquiera usar y modificar el
software. Cualquiera puede bajar el software MySQL desde internet y
usarlo sin pagar nada. Si lo desea, puede estudiar el código fuente y
cambiarlo para adaptarlo a sus necesidades. El software MySQL usa la
licencia GPL (GNU General Public License).
MariaDB: Es un fork de MySQL creado por
Michael Widenius (Fundador de MySQL).
¿Que es MySQL?
▪ MySQL es un sistema de gestión de bases de
datos relacional, multihilo y multiusuario.
Introduccion a Bases de Datos y SQL
SGBD (Sistema de gestión de bases de datos)
=
DBMS (Database Management System)
Servicios/Demonios
▪ Un demonio o servicio es un tipo especial de proceso informático no
interactivo, es decir, que se ejecuta en segundo plano en vez de ser
controlado directamente por el usuario. Este tipo de programas se
ejecutan de forma continua (infinita).
Introduccion a Bases de Datos y SQL
¿Que es la arquitectura Cliente/Servidor?
Introduccion a Bases de Datos y SQL
▪ Servidor: Se encarga de
recoger, interpretar y ejecutar
todas las peticiones de los
usuarios de la base de datos.
▪ Cliente: Es la parte con la que
trabajarán directamente los
usuarios.
Conexiones Locales/Remotas
Introduccion a Bases de Datos y SQL
Cliente Modo Texto
Introduccion a Bases de Datos y SQL
Cliente Modo Grafico
Introduccion a Bases de Datos y SQL
Tipos de conectividad entre Cliente/Servidor
▪ ODBC: El objetivo de ODBC es hacer posible el acceder a cualquier dato
desde cualquier aplicación, sin importar qué sistema de gestión de bases
de datos(SGBD) almacene los datos. ODBC logra esto al insertar una
capa intermedia (CLI) denominada nivel de Interfaz de Cliente SQL, entre
la aplicación y el SGBD.
▪ OLE-DB: Es una actualización creada para las aplicaciones en 32-bits.
Fue creada para ser más rápida y eficiente y estable que ODBC. ODBC y
OLE-DB son interfaces de bajo nivel; una aplicación típica o un
desarrollador web no usaría estos APIs directamente.
▪ ADO: Es un conjunto de componentes del software que pueden ser
usados por los programadores para acceder a datos y a servicios de
datos. Es una parte de la biblioteca de clases base que están incluidas en
el Microsoft .NET Framework.
▪ Hay mas conectores.
Introduccion a Bases de Datos y SQL
¿Que es el motor de la base de datos?
Los motores de base de dato sirven para definir, construir y manipular una
base de datos.
▪ Definir una base de datos: Consisten en especificar los tipos de datos,
estructuras y restricciones para los datos que se almacenaran.
▪ Construir una base de datos: Es el proceso de almacenar los datos sobre
algun medio de almacenamiento. Ver: Motores de almacenamiento
▪ Manipular una base de datos: Incluye funciones como consultas,
actualizacion, etc. de bases de datos.
Introduccion a Bases de Datos y SQL
Motores de almacenamiento
▪ InnoDB
o Soporte de transacciones.
o Bloqueo de registros.
o Nos permite tener las características ACID (Atomicity, Consistency, Isolation
and Durability), garantizando la integridad de nuestras tablas.
o Es probable que si nuestra aplicación hace un uso elevado de INSERT y
UPDATE notemos un aumento de rendimiento con respecto a MyISAM.
▪ MyISAM
o Mayor velocidad en general a la hora de recuperar datos.
o Recomendable para aplicaciones en las que dominan las sentencias SELECT
ante los INSERT / UPDATE.
o Ausencia de características de atomicidad ya que no tiene que hacer
comprobaciones de la integridad referencial, ni bloquear las tablas para realizar
las operaciones, esto nos lleva como los anteriores puntos a una mayor
velocidad.
Introduccion a Bases de Datos y SQL
ACID
Introduccion a Bases de Datos y SQL
Atomicidad (Atomicity): La Atomicidad requiere que cada transacción sea "todo o nada": si una
parte de la transacción falla, todas las operaciones de la transacción fallan, y por lo tanto la base
de datos no sufre cambios. Un sistema atómico tiene que garantizar la atomicidad en cualquier
operación y situación, incluyendo fallas de alimentación eléctrica, errores y caidas del sistema.
Consistencia (Consistency): La propiedad de Consistencia se asegura que cualquier transacción
llevará a la base de datos de un estado válido a otro estado válido. Cualquier dato que se
escriba en la base de datos tiene que ser válido de acuerdo a todas las reglas definidas,
incluyendo (pero no limitado a) los constraints, los cascades, los triggers, y cualquier
combinación de estos.
Aislamiento (Isolation): El aislamiento ("Isolation" en inglés) se asegura que la ejecución
concurrente de las transacciones resulte en un estado del sistema que se obtendría si estas
transacciones fueran ejecutadas una atrás de otra. Cada transacción debe ejecutarse en
aislamiento total; por ejemplo, si T1 y T2 se ejecutan concurrentemente, luego cada una debe
mantenerse independiente de la otra.
Durabilidad (Durability): La durabilidad significa que una vez que se confirmó una transacción
(commit), quedará persistida, incluso ante eventos como pérdida de alimentación eléctrica,
errores y caidas del sistema. Por ejemplo, en las bases de datos relacionales, una vez que se
ejecuta un grupo de sentencias SQL, los resultados tienen que almacenarse inmediatamente
(incluso si la base de datos se cae inmediatamente luego).
¿Que es SQL y ANSI SQL?
El SQL es un lenguaje de acceso a bases de datos que explota la
flexibilidad y potencia de los sistemas relacionales y permite así gran
variedad de operaciones.
Introduccion a Bases de Datos y SQL
Comentarios en SQL
Podemos ver que hay tres formas de hacer comentarios, las tres tiene el
mismo objetivos (Documentar el SQL).
Además MySQL soporta comentarios (Ejecutables) del tipo.
/*! 40101 MySQL-specific code */
En general vamos a ver estos comentarios en la generación del script del
backup o en hints.
Introduccion a Bases de Datos y SQL
Comandos vs SQL
Debemos distinguir lo que es un comando de lo que son sentencias SQL.
Introduccion a Bases de Datos y SQL
▪ SQL (Structured Query Language): Es un lenguaje declarativo de acceso a
bases de datos relacionales.
▪ Comando: Son instrucciones que brinda el servidor de bases de datos para
obtener determinada información.
Tipos de sentencias SQL
Introduccion a Bases de Datos y SQL
Modelado de datos
Introduccion a Bases de Datos y SQL
Tipos de datos MySQL
Introduccion a Bases de Datos y SQL
Tipo de Campo Tamaño de Almacenamiento
TINYINT 1 byte
SMALLINT 2 bytes
MEDIUMINT 3 bytes
INT, INTEGER 4 bytes
BIGINT 8 bytes
FLOAT 4 bytes
FLOAT(x)
4 bytes if 0 <= x <= 24, 8 bytes if 25 <= x
<= 53
DOUBLE 8 bytes
DECIMAL(M,D), NUMERIC (M,
D)
BIT(M) Aproximadamente (M+7)/8 bytes
Tipo de Campo Tamaño de Almacenamiento
DATE 3 bytes
DATETIME 8 bytes
TIMESTAMP 4 bytes
TIME 3 bytes
YEAR 1 byte
Tipo de columna Almacenamiento requerido Máxima Longitud
CHAR(M) M bytes, 0 <= M <= 255 255
VARCHAR(M) L+1 bytes, donde L <= M y 0 <= M <= 255 255
BINARY(M) M bytes, 0 <= M <= 255 255
VARBINARY(M) L+1 bytes, donde L <= M y 0 <= M <= 255 255
TINYBLOB, TINYTEXT L+1 byte, donde L < 2^8 255
BLOB, TEXT L+2 bytes, donde L < 2^16 65535
MEDIUMBLOB, MEDIUMTEXT L+3 bytes, donde L < 2^24 16,777,215
LONGBLOB, LONGTEXT L+4 bytes, donde L < 2^32 4,294,967,295
ENUM('value1','value2',...) 1 o 2 bytes, dependiendo del número de valores de la enumeración (65,535 valores máximo) 65,535 Miembros
SET('value1','value2',...) 1, 2, 3, 4, o 8 bytes, dependiendo del número de miembros del conjunto (64 miembros máximo) 64 Miembros
Tipos de datos (Numeros enteros)
Introduccion a Bases de Datos y SQL
Tipos de datos (Cadena de caracteres)
Introduccion a Bases de Datos y SQL
Tipos de datos (Fechas)
Introduccion a Bases de Datos y SQL
▪ Datetime: Almacena fechas en formato YYYY-MM-DD HH:MM:SS
▪ Date: Almacena fechas en formato YYYY-MM-DD
▪ Timestamp: Almacena fechas en formato YYYY-MM-DD HH:MM:SS pero
con conversión entre el Timezone actual y UTC.
▪ Time: Almacena HH:MM:SS
▪ Year: Almacena el año en formato YYYY o YY.
Enum VS Set
Introduccion a Bases de Datos y SQL
Timezone
Introduccion a Bases de Datos y SQL
Atributos para columnas
Introduccion a Bases de Datos y SQL
▪ PK (Primary Key): Indica si la columna forma parte de la clave principal.
Hay claves simples o compuestas (Mas de una columna). En general toda
tabla tiene PK.
▪ NN (Not Null): Indica que esta columna no puede ser NULL. NULL no es
vacio ni 0, seria como indefinido.
▪ UQ (Unique Index): Indica que esta columna no tendrá ningún valor
repetido.
▪ BIN (Is Binary Column): Indica que esta columna se almacenara en modo
“Binario”. Respeta mayúsculas y minúsculas usando el collation binario.
▪ UN (Unsigned Data Type): Indica que esta columna no usara un byte para
el signo, ósea números positivos solamente.
▪ ZF (Zero Fill): El campo se completara con ceros si es numérico.
▪ AI (Auto Incremental): El campo incrementa solo su valor. Cada tabla solo
acepta un auto incremental y si hay tiene que formar parte de la PK.
Dump/Backup DB I
Introduccion a Bases de Datos y SQL
▪ Al hacer un backup en nuestro
caso estamos realizando un
script de exportación.
▪ Cuando se hace un backup o
dump se esta dejando una
copia igual a la base
productiva.
Dump/Backup DB II
Introduccion a Bases de Datos y SQL
Charset/Collation I
Introduccion a Bases de Datos y SQL
▪ Charset: Es el conjunto de caracteres que esa tabla, o columna aceptaran
como validos, el charset se puede configurar a nivel de MySQL/Base de
datos/Tabla/Campos.
▪ Collation: Indica la forma en que el valor debe comparar el campo y
ordenarlo, un ejemplo claro es cuando usamos un collation no binario en el
cual no se respetan las mayúsculas y minúsculas.
Charset/Collation II
Introduccion a Bases de Datos y SQL
Length Char Length
7 5
5 5
5 5
Charset/Collation III
Introduccion a Bases de Datos y SQL
▪ Lo primero que cabe destacar es que el CHARSET ASCII no permite
ingresar otra cosa que no esté en la tabla ASCII predeterminada, así que la
letra "Ñ" y aquellas letras con tilde quedan absolutamente descartadas.
▪ Como vemos, en UTF-8 se guardaron 7 bytes de información (un byte extra
en la letra "Ñ", otro byte extra en la letra "ú") pero el largo de cada cadena
en cada caso es de 5 caracteres.
Charset/Collation IV
Introduccion a Bases de Datos y SQL
▪ Las primeras 3 (CHARSET utf8 COLLATE utf8_general_ci) devolverán un
registro cada uno, mientras que de las últimas 3 (CHARSET utf8 COLLATE
utf8_bin) sólo el último devolverá un resultado positivo.
Esto se debe a que la columna "name01" tiene COLLATION utf8-general-ci,
que, entre otras cosas, considera como sinónimo la letra "N" y "Ñ", y
además es case-insensitive (utf8-general-ci). Esto también se aplica a los
tildes, de forma que si buscamos por ñandu (sin tilde) el resultado
entregado será el mismo que si buscamos por "Ñandú". De igual forma,
"ÑaÑdU" igual entregará un resultado positivo para "Ñandú".
En las últimas 3 sin embargo, si no buscamos exactamente por lo
ingresado en la base de datos no se devolverá ningún registro, así que
cualquier cosa que no sea un match exacto de "Ñandú" simplemente se
descartará.
Charset/Collation V
Introduccion a Bases de Datos y SQL
▪ Una COLLATION utf8_spanish_ci ordenará los registros de una forma
mientras que utf8_spanish2_ci la ordenará de otra, debido a que el español
tradicional considera "ch" como una letra entre la "C" y la "D". Asimismo,
considera el uso de la letra "LL" como una letra entre la "L" y "M".

Mais conteúdo relacionado

Mais procurados

Evaluacion de arquitecturas
Evaluacion de arquitecturasEvaluacion de arquitecturas
Evaluacion de arquitecturasSamis Ambrocio
 
Data-Warehouse-I.pdf
Data-Warehouse-I.pdfData-Warehouse-I.pdf
Data-Warehouse-I.pdfYair Ambrocio
 
Proyecto De Base De Datos
Proyecto De Base De DatosProyecto De Base De Datos
Proyecto De Base De Datosguesta67b7c
 
Mapa mental uml
Mapa mental umlMapa mental uml
Mapa mental umlrigo berto
 
Sistemas de Respaldo de Informacion
Sistemas de Respaldo de InformacionSistemas de Respaldo de Informacion
Sistemas de Respaldo de Informacionmaxalonzohuaman
 
Tipos de sgbd según el modelo utilizado
Tipos de sgbd según el modelo utilizadoTipos de sgbd según el modelo utilizado
Tipos de sgbd según el modelo utilizadoMemo Wars
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacionZonickX
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosJosé Antonio Sandoval Acosta
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de softwareLiliana Pacheco
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacionBrayan Vega Diaz
 
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...eccutpl
 

Mais procurados (20)

Amazon Web Services AWS
Amazon Web Services AWSAmazon Web Services AWS
Amazon Web Services AWS
 
Evaluacion de arquitecturas
Evaluacion de arquitecturasEvaluacion de arquitecturas
Evaluacion de arquitecturas
 
Data-Warehouse-I.pdf
Data-Warehouse-I.pdfData-Warehouse-I.pdf
Data-Warehouse-I.pdf
 
Diagrama de paquete
Diagrama de paqueteDiagrama de paquete
Diagrama de paquete
 
Proyecto De Base De Datos
Proyecto De Base De DatosProyecto De Base De Datos
Proyecto De Base De Datos
 
Arrays
ArraysArrays
Arrays
 
Mapa mental uml
Mapa mental umlMapa mental uml
Mapa mental uml
 
Sistemas de Respaldo de Informacion
Sistemas de Respaldo de InformacionSistemas de Respaldo de Informacion
Sistemas de Respaldo de Informacion
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Tipos de-datos-power-designer
Tipos de-datos-power-designerTipos de-datos-power-designer
Tipos de-datos-power-designer
 
Tipos de sgbd según el modelo utilizado
Tipos de sgbd según el modelo utilizadoTipos de sgbd según el modelo utilizado
Tipos de sgbd según el modelo utilizado
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Diagramas de implementacion
Diagramas de implementacionDiagramas de implementacion
Diagramas de implementacion
 
Programación III (Java) - 08 threads
Programación III (Java) - 08 threadsProgramación III (Java) - 08 threads
Programación III (Java) - 08 threads
 
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datosTópicos Avanzados de Programación - Unidad 4 Acceso a datos
Tópicos Avanzados de Programación - Unidad 4 Acceso a datos
 
Sistema de ventas monografia
Sistema de ventas   monografiaSistema de ventas   monografia
Sistema de ventas monografia
 
Arquitectura de software
Arquitectura de softwareArquitectura de software
Arquitectura de software
 
Taller modelo entidad relacion
Taller modelo entidad relacionTaller modelo entidad relacion
Taller modelo entidad relacion
 
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
Identificación y seguimiento de artefactos en el proceso de desarrollo de sof...
 
UML
UMLUML
UML
 

Semelhante a Introducción a Bases de Datos y SQL

Semelhante a Introducción a Bases de Datos y SQL (20)

sesion 01_sql basico.pdf
sesion 01_sql basico.pdfsesion 01_sql basico.pdf
sesion 01_sql basico.pdf
 
BASE DE DATOS, TIPOS Y CARACTERÍSTICAS
BASE DE DATOS, TIPOS Y CARACTERÍSTICASBASE DE DATOS, TIPOS Y CARACTERÍSTICAS
BASE DE DATOS, TIPOS Y CARACTERÍSTICAS
 
Tipos de base de datos
Tipos de base de datosTipos de base de datos
Tipos de base de datos
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Las bases de datos
Las bases de datosLas bases de datos
Las bases de datos
 
Cordova angelica basededatos
Cordova angelica basededatosCordova angelica basededatos
Cordova angelica basededatos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Oracle vs. sql server terminado
Oracle vs. sql server   terminadoOracle vs. sql server   terminado
Oracle vs. sql server terminado
 
Principales bases de datos existentes
Principales bases de datos existentesPrincipales bases de datos existentes
Principales bases de datos existentes
 
Oracle vs. sql server terminado
Oracle vs. sql server   terminadoOracle vs. sql server   terminado
Oracle vs. sql server terminado
 
BASE DE DATOS
BASE DE DATOSBASE DE DATOS
BASE DE DATOS
 
Introduction to SQL SERVER
Introduction to  SQL SERVERIntroduction to  SQL SERVER
Introduction to SQL SERVER
 
Base de datos3
Base de datos3Base de datos3
Base de datos3
 
Base de datos
Base de datosBase de datos
Base de datos
 
Base de datos ventajas y desventajas
Base de datos ventajas y desventajasBase de datos ventajas y desventajas
Base de datos ventajas y desventajas
 
Principales bases de datos
Principales bases de datosPrincipales bases de datos
Principales bases de datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Comparación entre microsoft sql server express edition 2012 y oracle
Comparación entre microsoft sql server express edition 2012 y oracleComparación entre microsoft sql server express edition 2012 y oracle
Comparación entre microsoft sql server express edition 2012 y oracle
 

Mais de Luis Miguel De Bello (20)

Java Web Services - REST
Java Web Services - RESTJava Web Services - REST
Java Web Services - REST
 
Java Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas AdicionalesJava Web Services - SOAP Temas Adicionales
Java Web Services - SOAP Temas Adicionales
 
Java Web Services - SOAP Binding
Java Web Services - SOAP BindingJava Web Services - SOAP Binding
Java Web Services - SOAP Binding
 
Java Web Services - Introduccion
Java Web Services - IntroduccionJava Web Services - Introduccion
Java Web Services - Introduccion
 
Java Web - JSF
Java Web - JSFJava Web - JSF
Java Web - JSF
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Java Web - JSP
Java Web - JSPJava Web - JSP
Java Web - JSP
 
Java Web - Servlet
Java Web - ServletJava Web - Servlet
Java Web - Servlet
 
Base de datos - Clase 2
Base de datos - Clase 2Base de datos - Clase 2
Base de datos - Clase 2
 
Base de datos - Clase 3
Base de datos - Clase 3Base de datos - Clase 3
Base de datos - Clase 3
 
Base de datos - Clase 4
Base de datos - Clase 4Base de datos - Clase 4
Base de datos - Clase 4
 
Java Web - Session
Java Web - SessionJava Web - Session
Java Web - Session
 
Java Web - Introduccion
Java Web - IntroduccionJava Web - Introduccion
Java Web - Introduccion
 
Sockets TCP
Sockets TCPSockets TCP
Sockets TCP
 
Sockets UDP
Sockets UDPSockets UDP
Sockets UDP
 
Thread 02
Thread 02Thread 02
Thread 02
 
Thread 01
Thread 01Thread 01
Thread 01
 
Log4J
Log4JLog4J
Log4J
 
Administración de memoria en java
Administración de memoria en javaAdministración de memoria en java
Administración de memoria en java
 
Best Practices
Best PracticesBest Practices
Best Practices
 

Introducción a Bases de Datos y SQL

  • 1. Introducción a Bases de Datos y SQL Clase 1 http://javacuriosities.blogspot.com/
  • 2. ¿Que es una base de datos? ▪ Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. ▪ Una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. ▪ Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), y por ende se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos. Introduccion a Bases de Datos y SQL
  • 3. Distintos SGBD ▪ Las principales marcas del mercado son ORACLE, MySQL, SQL Server, PostGreSQL, SQL Lite Introduccion a Bases de Datos y SQL Open source: Significa que es posible para cualquiera usar y modificar el software. Cualquiera puede bajar el software MySQL desde internet y usarlo sin pagar nada. Si lo desea, puede estudiar el código fuente y cambiarlo para adaptarlo a sus necesidades. El software MySQL usa la licencia GPL (GNU General Public License). MariaDB: Es un fork de MySQL creado por Michael Widenius (Fundador de MySQL).
  • 4. ¿Que es MySQL? ▪ MySQL es un sistema de gestión de bases de datos relacional, multihilo y multiusuario. Introduccion a Bases de Datos y SQL SGBD (Sistema de gestión de bases de datos) = DBMS (Database Management System)
  • 5. Servicios/Demonios ▪ Un demonio o servicio es un tipo especial de proceso informático no interactivo, es decir, que se ejecuta en segundo plano en vez de ser controlado directamente por el usuario. Este tipo de programas se ejecutan de forma continua (infinita). Introduccion a Bases de Datos y SQL
  • 6. ¿Que es la arquitectura Cliente/Servidor? Introduccion a Bases de Datos y SQL ▪ Servidor: Se encarga de recoger, interpretar y ejecutar todas las peticiones de los usuarios de la base de datos. ▪ Cliente: Es la parte con la que trabajarán directamente los usuarios.
  • 8. Cliente Modo Texto Introduccion a Bases de Datos y SQL
  • 9. Cliente Modo Grafico Introduccion a Bases de Datos y SQL
  • 10. Tipos de conectividad entre Cliente/Servidor ▪ ODBC: El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos(SGBD) almacene los datos. ODBC logra esto al insertar una capa intermedia (CLI) denominada nivel de Interfaz de Cliente SQL, entre la aplicación y el SGBD. ▪ OLE-DB: Es una actualización creada para las aplicaciones en 32-bits. Fue creada para ser más rápida y eficiente y estable que ODBC. ODBC y OLE-DB son interfaces de bajo nivel; una aplicación típica o un desarrollador web no usaría estos APIs directamente. ▪ ADO: Es un conjunto de componentes del software que pueden ser usados por los programadores para acceder a datos y a servicios de datos. Es una parte de la biblioteca de clases base que están incluidas en el Microsoft .NET Framework. ▪ Hay mas conectores. Introduccion a Bases de Datos y SQL
  • 11. ¿Que es el motor de la base de datos? Los motores de base de dato sirven para definir, construir y manipular una base de datos. ▪ Definir una base de datos: Consisten en especificar los tipos de datos, estructuras y restricciones para los datos que se almacenaran. ▪ Construir una base de datos: Es el proceso de almacenar los datos sobre algun medio de almacenamiento. Ver: Motores de almacenamiento ▪ Manipular una base de datos: Incluye funciones como consultas, actualizacion, etc. de bases de datos. Introduccion a Bases de Datos y SQL
  • 12. Motores de almacenamiento ▪ InnoDB o Soporte de transacciones. o Bloqueo de registros. o Nos permite tener las características ACID (Atomicity, Consistency, Isolation and Durability), garantizando la integridad de nuestras tablas. o Es probable que si nuestra aplicación hace un uso elevado de INSERT y UPDATE notemos un aumento de rendimiento con respecto a MyISAM. ▪ MyISAM o Mayor velocidad en general a la hora de recuperar datos. o Recomendable para aplicaciones en las que dominan las sentencias SELECT ante los INSERT / UPDATE. o Ausencia de características de atomicidad ya que no tiene que hacer comprobaciones de la integridad referencial, ni bloquear las tablas para realizar las operaciones, esto nos lleva como los anteriores puntos a una mayor velocidad. Introduccion a Bases de Datos y SQL
  • 13. ACID Introduccion a Bases de Datos y SQL Atomicidad (Atomicity): La Atomicidad requiere que cada transacción sea "todo o nada": si una parte de la transacción falla, todas las operaciones de la transacción fallan, y por lo tanto la base de datos no sufre cambios. Un sistema atómico tiene que garantizar la atomicidad en cualquier operación y situación, incluyendo fallas de alimentación eléctrica, errores y caidas del sistema. Consistencia (Consistency): La propiedad de Consistencia se asegura que cualquier transacción llevará a la base de datos de un estado válido a otro estado válido. Cualquier dato que se escriba en la base de datos tiene que ser válido de acuerdo a todas las reglas definidas, incluyendo (pero no limitado a) los constraints, los cascades, los triggers, y cualquier combinación de estos. Aislamiento (Isolation): El aislamiento ("Isolation" en inglés) se asegura que la ejecución concurrente de las transacciones resulte en un estado del sistema que se obtendría si estas transacciones fueran ejecutadas una atrás de otra. Cada transacción debe ejecutarse en aislamiento total; por ejemplo, si T1 y T2 se ejecutan concurrentemente, luego cada una debe mantenerse independiente de la otra. Durabilidad (Durability): La durabilidad significa que una vez que se confirmó una transacción (commit), quedará persistida, incluso ante eventos como pérdida de alimentación eléctrica, errores y caidas del sistema. Por ejemplo, en las bases de datos relacionales, una vez que se ejecuta un grupo de sentencias SQL, los resultados tienen que almacenarse inmediatamente (incluso si la base de datos se cae inmediatamente luego).
  • 14. ¿Que es SQL y ANSI SQL? El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones. Introduccion a Bases de Datos y SQL
  • 15. Comentarios en SQL Podemos ver que hay tres formas de hacer comentarios, las tres tiene el mismo objetivos (Documentar el SQL). Además MySQL soporta comentarios (Ejecutables) del tipo. /*! 40101 MySQL-specific code */ En general vamos a ver estos comentarios en la generación del script del backup o en hints. Introduccion a Bases de Datos y SQL
  • 16. Comandos vs SQL Debemos distinguir lo que es un comando de lo que son sentencias SQL. Introduccion a Bases de Datos y SQL ▪ SQL (Structured Query Language): Es un lenguaje declarativo de acceso a bases de datos relacionales. ▪ Comando: Son instrucciones que brinda el servidor de bases de datos para obtener determinada información.
  • 17. Tipos de sentencias SQL Introduccion a Bases de Datos y SQL
  • 18. Modelado de datos Introduccion a Bases de Datos y SQL
  • 19. Tipos de datos MySQL Introduccion a Bases de Datos y SQL Tipo de Campo Tamaño de Almacenamiento TINYINT 1 byte SMALLINT 2 bytes MEDIUMINT 3 bytes INT, INTEGER 4 bytes BIGINT 8 bytes FLOAT 4 bytes FLOAT(x) 4 bytes if 0 <= x <= 24, 8 bytes if 25 <= x <= 53 DOUBLE 8 bytes DECIMAL(M,D), NUMERIC (M, D) BIT(M) Aproximadamente (M+7)/8 bytes Tipo de Campo Tamaño de Almacenamiento DATE 3 bytes DATETIME 8 bytes TIMESTAMP 4 bytes TIME 3 bytes YEAR 1 byte Tipo de columna Almacenamiento requerido Máxima Longitud CHAR(M) M bytes, 0 <= M <= 255 255 VARCHAR(M) L+1 bytes, donde L <= M y 0 <= M <= 255 255 BINARY(M) M bytes, 0 <= M <= 255 255 VARBINARY(M) L+1 bytes, donde L <= M y 0 <= M <= 255 255 TINYBLOB, TINYTEXT L+1 byte, donde L < 2^8 255 BLOB, TEXT L+2 bytes, donde L < 2^16 65535 MEDIUMBLOB, MEDIUMTEXT L+3 bytes, donde L < 2^24 16,777,215 LONGBLOB, LONGTEXT L+4 bytes, donde L < 2^32 4,294,967,295 ENUM('value1','value2',...) 1 o 2 bytes, dependiendo del número de valores de la enumeración (65,535 valores máximo) 65,535 Miembros SET('value1','value2',...) 1, 2, 3, 4, o 8 bytes, dependiendo del número de miembros del conjunto (64 miembros máximo) 64 Miembros
  • 20. Tipos de datos (Numeros enteros) Introduccion a Bases de Datos y SQL
  • 21. Tipos de datos (Cadena de caracteres) Introduccion a Bases de Datos y SQL
  • 22. Tipos de datos (Fechas) Introduccion a Bases de Datos y SQL ▪ Datetime: Almacena fechas en formato YYYY-MM-DD HH:MM:SS ▪ Date: Almacena fechas en formato YYYY-MM-DD ▪ Timestamp: Almacena fechas en formato YYYY-MM-DD HH:MM:SS pero con conversión entre el Timezone actual y UTC. ▪ Time: Almacena HH:MM:SS ▪ Year: Almacena el año en formato YYYY o YY.
  • 23. Enum VS Set Introduccion a Bases de Datos y SQL
  • 25. Atributos para columnas Introduccion a Bases de Datos y SQL ▪ PK (Primary Key): Indica si la columna forma parte de la clave principal. Hay claves simples o compuestas (Mas de una columna). En general toda tabla tiene PK. ▪ NN (Not Null): Indica que esta columna no puede ser NULL. NULL no es vacio ni 0, seria como indefinido. ▪ UQ (Unique Index): Indica que esta columna no tendrá ningún valor repetido. ▪ BIN (Is Binary Column): Indica que esta columna se almacenara en modo “Binario”. Respeta mayúsculas y minúsculas usando el collation binario. ▪ UN (Unsigned Data Type): Indica que esta columna no usara un byte para el signo, ósea números positivos solamente. ▪ ZF (Zero Fill): El campo se completara con ceros si es numérico. ▪ AI (Auto Incremental): El campo incrementa solo su valor. Cada tabla solo acepta un auto incremental y si hay tiene que formar parte de la PK.
  • 26. Dump/Backup DB I Introduccion a Bases de Datos y SQL ▪ Al hacer un backup en nuestro caso estamos realizando un script de exportación. ▪ Cuando se hace un backup o dump se esta dejando una copia igual a la base productiva.
  • 27. Dump/Backup DB II Introduccion a Bases de Datos y SQL
  • 28. Charset/Collation I Introduccion a Bases de Datos y SQL ▪ Charset: Es el conjunto de caracteres que esa tabla, o columna aceptaran como validos, el charset se puede configurar a nivel de MySQL/Base de datos/Tabla/Campos. ▪ Collation: Indica la forma en que el valor debe comparar el campo y ordenarlo, un ejemplo claro es cuando usamos un collation no binario en el cual no se respetan las mayúsculas y minúsculas.
  • 29. Charset/Collation II Introduccion a Bases de Datos y SQL Length Char Length 7 5 5 5 5 5
  • 30. Charset/Collation III Introduccion a Bases de Datos y SQL ▪ Lo primero que cabe destacar es que el CHARSET ASCII no permite ingresar otra cosa que no esté en la tabla ASCII predeterminada, así que la letra "Ñ" y aquellas letras con tilde quedan absolutamente descartadas. ▪ Como vemos, en UTF-8 se guardaron 7 bytes de información (un byte extra en la letra "Ñ", otro byte extra en la letra "ú") pero el largo de cada cadena en cada caso es de 5 caracteres.
  • 31. Charset/Collation IV Introduccion a Bases de Datos y SQL ▪ Las primeras 3 (CHARSET utf8 COLLATE utf8_general_ci) devolverán un registro cada uno, mientras que de las últimas 3 (CHARSET utf8 COLLATE utf8_bin) sólo el último devolverá un resultado positivo. Esto se debe a que la columna "name01" tiene COLLATION utf8-general-ci, que, entre otras cosas, considera como sinónimo la letra "N" y "Ñ", y además es case-insensitive (utf8-general-ci). Esto también se aplica a los tildes, de forma que si buscamos por ñandu (sin tilde) el resultado entregado será el mismo que si buscamos por "Ñandú". De igual forma, "ÑaÑdU" igual entregará un resultado positivo para "Ñandú". En las últimas 3 sin embargo, si no buscamos exactamente por lo ingresado en la base de datos no se devolverá ningún registro, así que cualquier cosa que no sea un match exacto de "Ñandú" simplemente se descartará.
  • 32. Charset/Collation V Introduccion a Bases de Datos y SQL ▪ Una COLLATION utf8_spanish_ci ordenará los registros de una forma mientras que utf8_spanish2_ci la ordenará de otra, debido a que el español tradicional considera "ch" como una letra entre la "C" y la "D". Asimismo, considera el uso de la letra "LL" como una letra entre la "L" y "M".