Está en la página 1de 28

Introducción a Oracle

Unidad I_ Parte II

UAA M.I.T.C. Carlos Sandoval Medina 1


Bases de datos SQL y NoSQL

Hay muchas opciones de bases de datos sobre las cuales se puede hacer
la elección basados en la compatibilidad de productos con los que la
base de datos va a interactuar, el tipo de soporte que desean tener y el
tamaño y el tipo de datos sobre los cuales se va a operar, pero sobre
todos estos criterios, primariamente, estas pueden ser divididas en dos
categorías: SQL (Base de Datos Relacional) y NoSQL (Base de Datos No-
Relacional).

UAA
2
Bases de datos SQL o Relacionales

Las bases de datos SQL son relacionales, es decir, sus datos están


relacionados entre sí y se almacenan como texto de manera estructurada en
tablas que constan de registros (filas) que es la propia información
relacionada entre sí, en base a su contexto, y campos (columnas) que son los
distintos tipos de información que se relacionan.

UAA
3
Bases de datos SQL o Relacionales

Una base de datos relacional usa un Sistema Relacional de


Administración de Base de Datos (RDBMS por sus siglas en inglés).

Este sistema usa un lenguaje especializado llamado SQL (Structured


Query Language) que hace posible su operación y administración
haciendo consultas relacionales sobre los datos que hospedan este
tipo de bases de datos.

UAA 4
Bases de datos SQL o Relacionales

SQL no es el único lenguaje usado por los sistemas RDBMS, han existido
otros lenguajes, pero el lenguaje más dominante y poderoso es SQL, al
punto de que hay muchas variaciones y extensiones que se derivan del
mismo y poseen muchas similitudes entre sí pero tienen sintaxis y
funcionalidades propias como por ejemplo los lenguajes PL/SQL de Oracle,
Transact-SQL de Microsoft, SQL/SPM de la base de datos Open Source
MySQL, PL/pgSQL de la base de datos Open Source PostgreSQL y otros.

UAA 5
Bases de datos NoSQL

En ocasiones se piensa que el concepto NoSQL se refiere a bases de datos que


no tienen relación o no usan en ningún aspecto SQL, pero la verdad es que
NoSQL se refiere más bien a “Not Only SQL” o traducido al español: “No
Solamente SQL”.

El concepto de NoSQL no es una exclusión en si, sino que se refiere a


alternativas sobre SQL, si bien las bases de datos NoSQL no se basan en SQL
como lenguaje principal para sus operaciones existen bases de datos NoSQL
que incluyen la posibilidad de hacer consultas en SQL, simplemente significa
que son bases de datos que no usan RDBMS para llevar a cabo sus consultas y
operaciones de mantenimiento.
UAA 6
Bases de datos NoSQL

Las bases de datos NoSQL (Not Only SQL) aparecen debido a la


necesidad de flexibilidad para almacenar distintos tipos de
información no estructurada como documentos (PDF, Word, Excel…),
emails, SMS, localizaciones geográficas, audio, vídeo, publicaciones
de RRSS

UAA 7
Bases de datos NoSQL

• Su arquitectura de base para el almacenamiento de información no es en


forma de tablas, sino que es basada en estructuras de datos mucho más
flexibles y dinámicas.

• Ofrecen mayor tolerancia en cuanto a particionamiento y sobre todo


mayor velocidad en operaciones, una alta disponibilidad y un
escalamiento ágil.

• Todo esto suena muy positivo pero hay un costo grande sobre todas esta
cualidades: sacrificio en consistencia en datos.

UAA 8
Bases de datos SQL vs Bases de datos NoSQL

Primero, antes de entrar en una comparación cruda entre ambos tipos de


bases de datos debemos proceder a explicar dos estándares que se siguen en
ambos tipos de bases de datos.

• Estándar ACID

• Estándar BASE

UAA 9
Estándar ACID: es un acrónimo de…

Atomicity (Atomicidad): se asegura de que todos los datos en la base datos son


correctamente validados.

Consistency (Consistencia): cuando una transacción de datos es realizada debe ser


válida, y se debe de conservar la consistencia de la base de datos y su integridad
tanto en datos como en su estructura.

Isolation (Aislamiento): cuando se realiza cada transacción, esta es aislada de las


demás transacciones, de esta manera una transacción no puede poner en riesgo la
integridad de otras transacciones.

Durability (Durabilidad): Después de que una transacción es realizada, los cambios


en la base de datos deben de persistir aún en el caso de que hayan fallas de
UAA
sistemas. 10
Estándar BASE: acrónimo de…

• Basically Available (Básicamente Disponible): Garantiza la disponibilidad de los


datos a través de la replicación de datos en otras máquinas organizadas en
clústeres tomando una de las principales ventajas de las bases de datos
NoSQL: Escalamiento Horizontal.

• Soft-State (Estado Maleable): Maleabilidad de la base de datos, capacidad de


cambiar conforme a cambios en la generación y el tipo de datos de manera ágil
y eficiente.

• Eventually Consistent (Entra en un estado de Consistencia eventualmente): La


consistencia no es inmediata, pero puede ser alcanzada transcurrido un tiempo.

UAA 11
Bases de datos SQL vs Bases de datos NoSQL

Las bases de datos SQL siguen fielmente el estándar ACID, es prácticamente


un estándar que se puede hallar y comprobar ampliamente en todas las bases
de datos SQL.

En cambio las bases de datos NoSQL siguen el estándar BASE que es más
flexible y se ajusta perfectamente a cuatro de las principales cualidades que
ofrecen las bases de datos NoSQL: Flexibilidad, mayor velocidad en
transacciones, Alta Disponibilidad y Escalamiento Horizontal.

UAA 12
Bases de datos SQL vs Bases de datos NoSQL

Estructura de datos:
BD SQL: tablas-relacional
BD NoSQL: Semiestructurados o no estructurados
Lenguajes y tecnología:
BD SQL: SQL y sus extensiones (PL\SQL) y DBMS
BD NoSQL: múltiples tecnologías y lenguajes
Esquemas:
BD SQL: fijo y predefinido
BD NoSQL: dinámico
Escalamiento:
BD SQL: escalamiento vertical
BD NoSQL: escalamiento horizontal
UAA 13
¿Cómo funcionan las BD SQL vs NoSQL?

En una base de datos relacional, un registro de libros a menudo se enmascara (o


"normaliza") y se almacena en tablas separadas, y las relaciones se definen mediante
restricciones de claves primarias y externas. En este ejemplo, la tabla Libros tiene las
columnas ISBN, Título del libro y Número de edición, la tabla Autores tiene las
columnas IDAutor y Nombre de autor y, finalmente, la tabla Autor-ISBN tiene las
columnas IDAutor e ISBN. El modelo relacional está diseñado para permitir que la
base de datos aplique la integridad referencial entre tablas en la base de datos,
normalizada para reducir la redundancia y, generalmente, está optimizada para el
almacenamiento.

UAA 14
¿Cómo funcionan las BD SQL vs NoSQL?

Autor_ISBN
IDAutor ISBN

Libros
ISBN Titulo NumEd

Autores
IDAutor Autor

UAA 15
¿Cómo funcionan las BD SQL vs NoSQL?

En una base de datos NoSQL, el registro de un libro generalmente se


almacena como un documento JSON (JavaScript Object Notation). Para cada
libro, el elemento, ISBN, Título del libro, Número de edición, Nombre
autor y IDAutor se almacenan como atributos en un solo documento. En este
modelo, los datos están optimizados para un desarrollo intuitivo y
escalabilidad horizontal.

UAA 16
¿Cómo funcionan las BD SQL vs NoSQL?

UAA 17
Escenarios de uso BD SQL
Las Bases de datos SQL tienen su fortaleza en el estándar ACID, ya que se enfocan en
ofrecer al usuario Integridad y Consistencia de Datos.

• Institución financiera o bancaria en la cual la integridad y consistencia de datos es


vital
• Sistema que lleve el control de calificaciones de alumnos en una institución
educativa
• Sistema de reservación de citas médicas en un hospital,
• Sistema de inventario
• Sistema de base de datos para un software de contabilidad
• Sistema de reservación para hoteles,

Todos estos sistemas de bases de datos requieren exactitud y sus estructuras de datos
son muy predecibles.
UAA 18
Escenarios de uso BD NoSQL

Siendo los principales enfoques de este tipo de bases de datos la


Maleabilidad, Alta Disponibilidad y Velocidad son ideales para manejar gran
cantidad de datos que pueden variar constantemente.

• Una base de datos NoSQL podría ser ideal como herramienta para hacer
estudios de Mercadeo
• Que registren actividades o tendencia de compras de ciertos productos o
servicios
• BD en el que la cantidad de información generada por sus usuarios es
súper masiva y requiere de un enfoque de Big Data 

UAA 19
SQL (Structured Query Language)

IBM desarrolló la versión original de SQL, en un primer momento


denominada Sequel, como parte del proyecto System R, a principios de
1970.

El lenguaje Sequel ha evolucionado desde entonces y su nombre ha pasado


a ser SQL (Structured Query Language, lenguaje estructurado de
consultas).

Hoy en día, numerosos productos son compatibles con el lenguaje SQL y se


ha establecido como el lenguaje estándar para las bases de datos
relacionales.
UAA 20
SQL (Structured Query Language)

Aunque nos referimos al lenguaje SQL como un «lenguaje de consulta»,


puede hacer mucho más que realizar consultas a la base de datos. Puede:

• Definición de datos: permite definir la estructura y organización de los


datos almacenados y de las relaciones entre ellos.

• Recuperación de datos: permite a un usuario o a un programa de


aplicación recuperar los datos almacenados de la base de datos y
utilizarlos.

• Manipulación de datos: permite actualizar añadiendo nuevos datos,


suprimiendo datos antiguos y modificando datos previamente
almacenados.
UAA 21
SQL (Structured Query Language)

• Control de acceso: puede restringir accesos no autorizados.

• Compartición de datos: coordinar la compartición de datos por parte de


usuarios concurrentes, asegurando que no interfieren unos con otros.

• Integridad de los datos: SQL define restricciones de integridad en la base


de datos, protegiéndola contra corrupciones debidas a actualizaciones
inconsistentes o a fallos del sistema.

Básicamente, la comunicación con la base de datos se hace a través del


lenguaje SQL.
UAA 22
SQL (Structured Query Language)

No es realmente un lenguaje informático completo como C. SQL no dispone de la


sentencia IF para examinar condiciones, ni de la sentencia GOTO para bifurcaciones, ni
de las sentencias DO o FOR para iteraciones.

SQL es un sublenguaje de base de datos, consistente en unas treinta sentencias


especializadas para tareas de gestión de bases de datos. Estas sentencias SQL se
incorporan a otro lenguaje (SQL embebido), para extender ese lenguaje y permitirle
utilizar el acceso a la base de datos.

Actualmente existe un lenguaje extensión de SQL denominado PLSQL(Oracle), que


incorpora a SQL los condicionales, las bifurcaciones, las iteraciones y otros elementos
de los lenguajes de programación estructurados.

UAA 23
SQL (Structured Query Language)

SQL juega muchos papeles diferentes:


• SQL es un lenguaje de consultas interactivas: los usuarios escriben
órdenes en un programa SQL interactivo para recuperar datos y
mostrarlos en la pantalla.

• SQL es un lenguaje de programación de base de datos: los programadores


insertan órdenes SQL en sus programas de aplicación para acceder a los
datos de la base.

• SQL es un lenguaje de administración de base de datos: el administrador


de la base de datos utiliza SQL para definir la estructura de la base de
datos y para controlar el acceso a los datos almacenados.
UAA 24
SQL (Structured Query Language)

• SQL es un lenguaje cliente/servidor: los programas de computador


personal utilizan SQL para comunicarse sobre una red de área local con
servidores de base de datos que almacenan los datos compartidos.

• SQL es un lenguaje de base de datos distribuidas: los sistemas de gestión


de base de datos distribuidos utilizan SQL para ayudar a distribuir datos a
través de muchos sistemas informáticos conectados.

• SQL es un lenguaje de pasarela de base de datos: en una red informática


con una mezcla de diferentes productos DBMS, SQL se utiliza a menudo
en una pasarela (gateway) que permite que nuestro producto de DBMS se
comunique con otro producto.
UAA 25
Características de SQL

• Independencia de los vendedores


• Portabilidad a través de los sistemas informáticos
• Estándares SQL
• Fundamento relacional
• Claridad y sencillez de sintaxis
• Consultas interactivas ah-doc
• Acceso a la BD mediante programas
• Vistas múltiples de datos

UAA 26
Sublenguajes o categorías SQL

• DDL (Data Definition Language o Lenguaje de Definición de Datos).


Utilizadas para crear, alterar, o borrar objetos de base de datos, tales como
esquemas, tablas, columnas, vistas y secuencias. Como ejemplos
característicos CREATE, ALTER Y DROP.
• DML (Data Modification Language o Lenguaje de Modificación de Datos).
Utilizadas en la interrogación y manipulación de datos en esquemas ya
existentes. Como ejemplos característicos SELECT, INSERT, UPDATE y
DELETE.
• DCL (Data Control Language o Lenguaje de Control de Datos). Utilizadas en
el control de acceso a datos en la base de datos. Como ejemplos
característicos tenemos los comandos GRANT y REVOKE.

UAA 27
Diccionario de datos

Es un conjunto de tablas y vistas que dan información sobre el contenido de


una base de datos:

• Las estructuras de almacenamiento;


• Los usuarios y permisos;
• Los objetos (tablas, vistas, índices, procedimientos, funciones, etc.).

El diccionario de datos pertenece a SYS y se almacena en el


tablespace SYSTEM. Se crea durante la creación de la base de datos y Oracle
lo actualiza automáticamente, cuando se ejecutan sentencias SQL DDL (Data
Definition Language) (CREATE, ALTER, DROP).
UAA 28

También podría gustarte