Está en la página 1de 38

UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1

Curso 2019/20
Pág. 1 de 38

UT3- DISEÑO FÍSICO DE


BASE DE DATOS
Asignatura: Base de Datos
DAM 1

CURSO
2019/20

Docente: Norma González


Docente: Norma González
UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 2 de 38

Contenido

Índice de Figuras ..................................................................................................................................... 4

Índice de Tablas ....................................................................................................................................... 4

Introducción............................................................................................................................................. 5

1. Notación para la sintaxis .................................................................................................................... 6

2. Herramientas gráficas proporcionadas por los SGBD ................................................................ 7


2.1 Sistemas Gestores de bases de datos Relacionales (SQL) ............................................................ 8
2.1.1 MySQL........................................................................................................................................... 8
2.1.1.1 GUI MySQL Workbench. ..................................................................................................... 8
2.1.1.2 GUI PhpMyAdmin. .............................................................................................................. 9
2.1.1.3 GUI Sequel Pro.................................................................................................................. 10
2.1.1.4 GUI HeidiSQL. ................................................................................................................... 11
2.1.1.5 GUI DBeaver ..................................................................................................................... 11
2.1.2 MariaDB ...................................................................................................................................... 12
2.1.3 SQLite ......................................................................................................................................... 13
2.1.4 PostgreSQL ................................................................................................................................ 15
2.1.5 Microsoft SQL Server .................................................................................................................. 16
2.1.5.1 GUI SQL Server Management Studio o SSMS .................................................................... 17
2.1.6 Oracle ......................................................................................................................................... 17
2.1.6.1 GUI Oracle Enterprise Manager ........................................................................................ 18
2.2 Sistemas Gestores de bases de datos No Relacionales (NoSQL) ..............................................18
2.2.1 MongoDB .................................................................................................................................... 19
2.2.2 Redis........................................................................................................................................... 20
2.2.2.1 Redis Desxtop Manager .................................................................................................... 21
2.2.3 Cassandra................................................................................................................................... 21

3. Intérpretes de comandos de los SGBD ......................................................................................... 22


3.1 Intérprete de Comandos MySQL ..........................................................................................................22
3.1.1 Cómo listar todos los usuarios en MySQL .................................................................................. 23
3.1.2 Ver usuario actual ....................................................................................................................... 23
3.1.3 ¿Cómo crear un nuevo usuario?................................................................................................. 23
3.1.4 ¿Cómo otorgar permisos de usuario diferentes? ........................................................................ 23
3.1.5 Ver privilegios de un usuario ....................................................................................................... 24
3.1.6 Eliminar usuarios ........................................................................................................................ 24

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 3 de 38

3.2 Intérprete de Comandos Oracle ...........................................................................................................24


3.2.1. Creación de usuarios ................................................................................................................. 25
3.2.2 Autenticación Oracle .................................................................................................................. 25
3.2.3 Asignaciones a los usuarios........................................................................................................ 26
3.2.3.1 asignación de un usuario a un tablespace ........................................................................ 27
3.2.3.2 asignación de un usuario a un tablespace temporal ......................................................... 27
3.2.4 Asignación de un perfil a un usuario ........................................................................................... 28
3.2.5 Borrado de un usuario ................................................................................................................ 28
3.2.6 Otorgando privilegios (granting) .................................................................................................. 28
3.2.7 Quitando privilegios .................................................................................................................... 29
3.3 Lenguajes.......................................................................................................................................................29
3.3.1 INSTRUCCIÓN SQL ................................................................................................................... 31

4. El Lenguaje de Definición de Datos (DDL) ..................................................................................... 31

5. Creación de bases de datos ............................................................................................................. 31

6. Modificación de una base de datos ................................................................................................ 32

7. Borrado de bases de datos .............................................................................................................. 32

8. Creación de tablas ............................................................................................................................ 33


8.1 Implementación de restricciones. .......................................................................................................33
8.2 Claves Foráneas (FK) ................................................................................................................................34
8.3 ¿Cuántas tablas hay en la Base de Datos? .........................................................................................35
8.4 ¿Qué estructura tienen las tablas? .......................................................................................................35

10. Borrado de tablas ............................................................................................................................ 37

11. Renombrado de tablas .................................................................................................................... 37

12. Cuestionario ..................................................................................................................................... 38

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 4 de 38

Índice de Figuras

Figura 1. Etapas en el diseño de Base de Datos. ............................................................................................ 5


Figura 2. Gestores de Bases de Datos más usados en la actualidad. ........................................................ 7
Figura 3. Interfaz gráfica MySQL Workbench. .................................................................................................. 9
Figura 4. Interfaz gráfica de phpMyAdmin. .................................................................................................... 10
Figura 5. Interfaz gráfica Sequel Pro. ............................................................................................................... 10
Figura 6. Interfaz gráfica HeidiSQL .................................................................................................................... 11
Figura 7.Interfaz gráfica DBeaver ..................................................................................................................... 12
Figura 8. Interfaz gráfica MariaDB .................................................................................................................... 13
Figura 9. Interfaz Gráfica SQLite Browser......................................................................................................... 14
Figura 10. Interfaz Gráfica SQLiteSpy ............................................................................................................... 14
Figura 11. Interfaz Gráfica SQLite Manager, .................................................................................................. 15
Figura 12. Interfaz gráfica pgAdminIII .............................................................................................................. 16
Figura 13. Interfaz gráfica SQL Server Management Studio........................................................................ 17
Figura 14. Interfaz gráfica Oracle. .................................................................................................................... 18
Figura 15. Bases de Datos NoSQL ..................................................................................................................... 19
Figura 16. Interfaz gráfica Hackolade para MongoDB. .............................................................................. 20
Figura 17. Interfaz Gráfica Mongo Manager Studio. .................................................................................... 20
Figura 18. Interfaz Gráfica para Redis. ............................................................................................................ 21
Figura 19. Intérprete de Comandos MySQL. .................................................................................................. 22
Figura 20. Intérprete de comando SQL*Plus de Oracle. .............................................................................. 25
Figura 21. Datafiles y Tablespaces oRACLE. ................................................................................................... 26
Figura 22. Esquema básico de funcionamiento de sql ................................................................................ 30
Figura 23. Grupos de comando SQL ................................................................................................................ 30
Figura 24. Cláusulas SQL. .................................................................................................................................... 31

Índice de Tablas

Tabla 1. Notación utilizada en BBDD. ................................................................................................................ 6


Tabla 2. Permisos de usuario. MySQL. .............................................................................................................. 24
Tabla 3. Autenticación de usuarios en Oracle. ............................................................................................. 26
Tabla 4. Clasificación de los lenguajes que proporcionan los SGBD. ....................................................... 30
Tabla 5. Restricciones a nivel de tabla y columna. ...................................................................................... 34
Tabla 6.Tipos de datos en MySQL y Oracle. ................................................................................................... 36

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 5 de 38

Introducción

El diseño de datos es el proceso por el que se determina la organización de la información necesaria


para el sistema.

Se realiza generalmente en tres fases:

 Diseño conceptual
 Diseño lógico
 Diseño físico

Cada fase es un proceso iterativo, se van produciendo refinamientos sucesivos antes de pasar a la
siguiente fase

Figura 1. Etapas en el diseño de Base de Datos.

Metodología de diseño físico de BD

Algunos de los pasos a realizar en el diseño físico son:

1. Traducción del modelo lógico al físico del SGBD.


2. Representación del diseño físico.
3. Diseño de los mecanismos de seguridad.
4. Monitorización y sintonización del sistema operacional.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 6 de 38

1. Notación para la sintaxis

En informática, cuando se quiere utilizar cualquier tipo de lenguaje de programación, se necesita


una sintaxis para definir cómo construir sentencias en ese lenguaje de programación.

Para expresar la sintaxis, se utiliza una notación.

Esta notación está compuesta por componentes léxicos o tokens. Estos tokens pueden ser palabras
clave del lenguaje, definiciones de otros elementos sintácticos más básicos, expresiones, variables,
etc. La notación utilizada en BBDD es la siguiente:

Ejemplo: SELECT, DROP y CREATE son palabras


PALABRAS EN MAYÚSCULAS reservadas, es decir, palabras que no pueden
Estas son las palabras reservadas del lenguaje. utilizarse para nombrar objetos de la BD
porque tienen una misión específica.
PALABRAS EN MINÚSCULA Ejemplo: el token especificación de filtro se
Se utilizan para realizar descripciones de puede desplegar en más definiciones para
sintaxis más en detalle. realizar filtros en las consultas.
CORCHETES Ejemplo: en la definición CREATE
Son elementos sintácticos que indican [TEMPORARY] TABLE, se puede indicar de
opcionalidad. forma opcional el token TEMPORARY para
Es decir, lo que está encerrado entre corchetes crear una tabla temporal, que solo durará en
se puede incorporar a la sentencia o no, memoria mientras el usuario permanezca
dependiendo de lo que el programador quiera conectado.
expresar. Si varios elementos van separados mediante el
token “|”, se puede elegir uno de ellos.
Ejemplo: en la definición de sintaxis para crear
una Base de Datos
LLAVES CREATE {DATABASE|SCHEMA}nombre_BD,
Indican alternativa obligatoria. Se debe elegir hay que escribir uno de los dos tokens entre
entre los elementos separados mediante llaves.
el token “|”. Se puede optar bien por
CREATE DATABASE nombre_BD o por
CREATE SCHEMA nombre_BD.
Ejemplo: para codificar una consulta, se usa la
definición
PUNTOS SUSPENSIVOS SELECT columna [, columna] … FROM
Significan repetición, es decir, el último tabla
elemento sintáctico puede repetirse varias Los puntos suspensivos significan que se puede
veces. repetir el token [, columna] tantas veces
como se desee.
Así, es posible escribir SELECT Nombre,
Dirección, Código FROM Clientes.
Tabla 1. Notación utilizada en BBDD.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 7 de 38

Para la utilización de los lenguajes de base de datos, los SGBD proporcionan herramientas como:

A. Herramientas gráficas: (interfaz gráfica de usuario) que permite enviar comandos de forma
sencilla, sin necesidad de conocer la sintaxis del lenguaje.

B. Interprete de comandos (i.c): Aplicación cliente cuya misión es enviar comandos al SGBD y
muestra en pantalla los resultados que le devuelve el SGBD. La utilidad principal de un SGBD
es su intérprete de comandos.

Muchos administradores sólo conocen las herramientas gráficas de gestión y administración de una
base de datos, puesto que es más cómodo y más intuitivo, y aprender los lenguajes de programación
de la base de datos es una tarea difícil y laboriosa.

Sin embargo, conocer los comandos y las instrucciones que proporciona un SGBD proporciona una
visión extra que posibilita automatizar tareas rutinarias y permite solucionar problemas que no se
pueden solucionar sólo con las herramientas gráficas.

2. Herramientas gráficas proporcionadas por los SGBD

Un Sistema Gestor de Base de Datos (SGBD) o DataBase Managenent System (DBMS) es un sistema
que permite la creación, gestión y administración de bases de datos, así como la elección y manejo
de las estructuras necesarias para el almacenamiento y búsqueda de información del modo más
eficiente posible.

Figura 2. Gestores de Bases de Datos más usados en la actualidad.

En la actualidad, existen multitud de SGBD y pueden ser clasificados según la forma en que
administran los datos en:

1. Relacionales (SQL).
2. No relacionales (NoSQL).

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 8 de 38

2.1 Sistemas Gestores de bases de datos Relacionales (SQL)

Desde que se comenzó a usar el modelo de bases de datos relacionales, en 1970, ha ido sufriendo
una serie de transformaciones hasta convertirse, hoy en día, en el modelo más utilizado para
administrar bases de datos.

Este modelo se basa fundamentalmente en establecer relaciones o vínculos entre los datos,
imaginando una tabla aparte por cada relación existente con sus propios registros y atributos.

Los principales Sistemas gestores de bases de datos relacionales (SGBD SQL) actualmente son:

2.1.1 MySQL

Es el sistema gestor de bases de datos relacional por excelencia.


Es un SGBD multihilo y multiusuario utilizado en la gran parte de
las páginas web actuales. Además, es el más usado en
aplicaciones creadas como software libre.

Se ofrece bajo la GNU GPL aunque también es posible adquirir


una licencia para empresas que quieran incorporarlo en
productos privativos (Desde la compra por parte de Oracle se
está orientando a este ámbito empresarial).

Las principales ventajas de este Sistema Gestor de Bases de datos son:

 Facilidad de uso y gran rendimiento


 Facilidad para instalar y configurar
 Soporte multiplataforma
 Soporte SSL

La principal desventaja es la escalabilidad, es decir, no trabaja de manera eficiente con bases de


datos muy grandes que superan un determinado tamaño.

Sin lugar a dudas, MySQL es el sistema gestor de bases de datos más extendido y utilizado en
cualquier proyecto IT y no sólo en Desarrollo Web. Por este motivo, los desarrolladores tienen a su
disposición diversas herramientas que ofrecen una interfaz gráfica de ventana para facilitar la
administración de las bases de datos MySQL

2.1.1.1 GUI MySQL Workbench.

Debemos comenzar por MySQL Workbench, una aplicación creada por los propios desarrolladores
de MySQL. Se trata de una herramienta visual muy completa que, además, es multiplataforma y se
puede instalar en sistemas Windows, Linux y Mac. Nos ayudará en cualquier etapa del desarrollo o
la administración de la base de datos, desde el diseño del modelo de datos, el acceso a la
información y la generación de diagramas, etc.

Dispone también un editor de consultas y un módulo dedicado a la optimización de rendimiento,


entre otros. Si necesitamos una herramienta profesional y tenemos la capacidad de instalar
software de interfaz gráfica en la máquina, MySQL Workbench será, sin duda, la primera opción que
debemos tener en cuenta.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 9 de 38

Figura 3. Interfaz gráfica MySQL Workbench.

La única desventaja es que puede resultar una herramienta un poco compleja, por lo que quizás
usuarios con menos experiencia prefieran otras alternativas.

2.1.1.2 GUI PhpMyAdmin.

En segundo lugar, nos encontramos este conocido y altamente extendido gestor de MySQL con
interfaz web. Es difícil encontrar un desarrollador de PHP que no conozca, use o la haya usado en
algún momento o proyecto. Ofrece todas las herramientas de administración de MySQL de una
forma sencilla, como la generación de tablas, su manipulación, acceso a los datos, usuarios de
MySQL, creación y restauración de copias de seguridad, etc. Al tratarse de una interfaz web, es
posible instalarla en cualquier servidor con soporte a PHP y disponer así de una herramienta de
gestión de base de datos remota o local.

Este software dispone de opciones para realizar prácticamente cualquier opción que se pueda crear
vía SQL:

 Gestionar las BBDD de un servidor.


 Crear, borrar y modificar tablas.
 Lanzar comandos SQL.
 Exportar e importar información.
 Recopilar estadísticas.
 Hacer copias de seguridad.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 10 de 38

Figura 4. Interfaz gráfica de phpMyAdmin.

2.1.1.3 GUI Sequel Pro.

Es el sistema de gestión de una base de datos MySQL preferido por la mayoría de los desarrolladores
que usan Mac OS X. Aunque no es tan completo y avanzado como MySQL Workbench, contiene
todas las funcionalidades esenciales para el uso del día a día: la consulta de la información, edición
y creación de tablas, realización de backups, etc. Sequel Pro resulta muy cómodo de usar, rápido y
no requiere prácticamente aprendizaje, ya que las opciones están muy a la vista y resulta muy
intuitivo. Su principal desventaja es que sólo está disponible para Mac.

Figura 5. Interfaz gráfica Sequel Pro.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 11 de 38

2.1.1.4 GUI HeidiSQL.

El desarrollador o administrador de MySQL que trabaja sobre Windows y que no quiere complicarse
con un sistema gestor complejo como MySQL Workbench tiene en HeidiSQL quizás su mejor
alternativa. Es un programa maduro, con una nutrida cantidad de funcionalidades, que permite
comenzar a administrar MySQL o a acceder a las bases de datos prácticamente sin apenas necesitar
formación. Tiene la ventaja de permitir la administración de otros sistemas gestores de base de
datos como PostgreSQL o SQL Server, aunque sólo está disponible para Windows.

Figura 6. Interfaz gráfica HeidiSQL

2.1.1.5 GUI DBeaver

La herramienta universal para bases de datos. Es muy potente, no solo por estar disponible para la
instalación en cualquier sistema operativo, sino también por la cantidad de sistemas gestores de
bases de datos que soporta: MySQL, MariaDB, PostgreSQL, SQLite, Oracle, SQL Server, Sybase, MS
Access.

Está disponible para Windows, Mac OS X y Linux y resulta muy rápido de usar en cualquier sistema.

Dispone de gran cantidad de funcionalidades útiles y resultará especialmente atractivo para los
usuarios de Linux, ya que sería la principal alternativa a MySQL Workbench disponible en este
sistema.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 12 de 38

Figura 7.Interfaz gráfica DBeaver

2.1.2 MariaDB

Este SGBD es una derivación de MySQL que cuenta con la


mayoría de características de este e incluye varias extensiones.

Nace a partir de la adquisición de MySQL por parte de Oracle


para seguir la filosofía Open Source y tiene la ventaja de que es
totalmente compatible con MySQL.

Entre las principales características de este Sistema Gestor de


Bases de datos se encuentran:

 Aumento de motores de almacenamiento


 Gran escalabilidad
 Seguridad y rapidez en transacciones
 Extensiones y nuevas características relacionadas con su aplicación para Bases de datos
NoSQL.

No tiene desventajas muy aparentes salvo algunas pequeñas incompatibilidades en la migración de


MariaDB y MySQL o pequeños atrasos en la liberación de versiones estables.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 13 de 38

Figura 8. Interfaz gráfica MariaDB

2.1.3 SQLite

Más que un Sistema Gestor de bases de datos como tal, SQLite es


una biblioteca escrita en C que implementa un SGBD y que
permite transacciones sin necesidad de un servidor ni
configuraciones.

Es una biblioteca utilizada en multitud de aplicaciones actuales ya


que es open source y las consultas son muy eficientes.

Las principales características de SQLite son:

 El tamaño, al tratarse de una biblioteca, es mucho menor que cualquier SGBD.


 Reúne los cuatro criterios ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad)
logrando gran estabilidad.
 Gran portabilidad y rendimiento.

La gran desventaja de SQLite es la escalabilidad ya que no soporta bases de datos que sean muy
grandes.

Existen varias Interfaces Gráficas que permiten manipular las bases SQLite:

 SQLite Browser (Windows/Linux/MacOSX - opensource)


 SQLiteSpy (Windows - freeware)
 SQLite Manager (extensión para Firefox - opensource)

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 14 de 38

Figura 9. Interfaz Gráfica SQLite Browser

Figura 10. Interfaz Gráfica SQLiteSpy

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 15 de 38

Figura 11. Interfaz Gráfica SQLite Manager,

2.1.4 PostgreSQL

Este sistema gestor de base de datos relacional está orientado


a objetos y es libre, publicado bajo la licencia BSD.

Sus principales características son:

 Control de Concurrencias multiversión (MVCC)


 Flexibilidad en cuanto a lenguajes de programación
 Multiplataforma
 Dispone de una herramienta (pgAdmin,
https://www.pgadmin.org/) muy fácil e intuitiva para la
administración de las bases de datos.
 Robustez, Eficiencia y Estabilidad.

La principal desventaja es la lentitud para la administración de bases de datos pequeñas ya que está
optimizado para gestionar grandes volúmenes de datos.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 16 de 38

Figura 12. Interfaz gráfica pgAdminIII

2.1.5 Microsoft SQL Server

Es un sistema gestor de bases de datos relacionales basado en


el lenguaje Transact-SQL, capaz de poner a disposición de
muchos usuarios grandes cantidades de datos de manera
simultánea.

Es un sistema propietario de Microsoft. Sus


principales características son:

 Soporte exclusivo por parte de Microsoft.


 Escalabilidad, estabilidad y seguridad.
 Posibilidad de cancelar consultas.
 Potente entorno gráfico de administración que permite utilizar comandos DDL y DML.
 Aunque es nativo para Windows puede utilizarse desde hace ya un tiempo en otras
plataformas como Linux o Docker.

Su principal desventaja es el precio. Cuenta con un plan gratuito (Express) pero lo normal es la
elección de alguno de los planes de pago disponibles (Standard, Developer, Enterprise o SQL Azure,
la versión de SQL Server en la nube).

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 17 de 38

2.1.5.1 GUI SQL Server Management Studio o SSMS

SQL Server Management Studio o SSMS, es una herramienta que se puede instalar en cualquier
equipo sin necesidad que en dicho equipo se haya instalado una instancia de SQL Server y desde ahí
conectarse a diversos servidores de Base de Datos.

Figura 13. Interfaz gráfica SQL Server Management Studio.

2.1.6 Oracle

Tradicionalmente Oracle ha sido el SGBD por excelencia para


el mundo empresarial, considerado siempre como el
más completo y robusto, destacando por:

 Soporte de transacciones.
 Estabilidad.
 Escalabilidad.
 Multiplataforma.

La principal desventaja, al igual que SQL Server, es el coste del software ya que, aunque cuenta con
una versión gratuita (Express Edition o XE), sus principales opciones son de pago.

Las opciones de pago disponibles son:

1. Standard Edition (SE)


2. Standard Edition One (SE1)
3. Standard Edition 2 (SE2)
4. Personal Edition (PE)
5. Lite Edition (LE)

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 18 de 38

6. Entreprise Edition (EE)

2.1.6.1 GUI Oracle Enterprise Manager

Esta herramienta está incorporada directamente en el software de Oracle y es configurada por el


asistente de creación de la Base de Datos.

Es capaz de manipular todas las funciones básicas de una Base de Datos (creación de tablas,
usuarios, exportación e importación de información, etc.).

Figura 14. Interfaz gráfica Oracle.

2.2 Sistemas Gestores de bases de datos No Relacionales (NoSQL)

Una base de datos no relacional (NoSQL) es aquella base de datos que:

 No requiere de estructuras de datos fijas como tablas


 No garantiza completamente las características ACID
 Escala muy bien horizontalmente.

Se utilizan en entornos distribuidos que han de estar siempre disponibles y operativos y que
gestionan un importante volumen de datos.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 19 de 38

Figura 15. Bases de Datos NoSQL

Para la administración de este tipo de bases de datos, actualmente los principales sistemas gestores
de bases de datos (SGBD NoSQL) son:

2.2.1 MongoDB

Estamos ante el Sistema Gestor de Bases de Datos


no relacionales (SGBD NoSQL) más popular y
utilizado actualmente.

MongoDB es un SBGD NoSQL orientado a


ficheros que almacena la información
en estructuras BSON con un esquema dinámico
que permite su facilidad de integración.

Empresas como Google, Facebook, eBay, Cisco o Adobe utilizan MongoDB como Sistema Gestor de
Bases de datos.

Las principales características de MongoDB son:

 Indexación y replicación
 Balanceo de carga
 Almacenamiento en ficheros
 Consultas ad hoc
 Escalabilidad horizontal
 Open Source

Como desventaja principal, MongoDB no es un SGBD adecuado para realizar transacciones


complejas.

Algunas Interfaces gráficas de bases de datos Mongodb o bases de datos NoSQL en general son:

 Robomongo.
 Studio 3t Not Free, but with No-comercial license.
 NoSQLBooster (before called MongoBooster).
 Nucleon database Master.
 Mongo Manager (NoSQL Manager).
 Mongo Management Studio.
 MongoJs Query Analizer.
 Mongo Client, NoSQL Client.
 Cluster Control.
 Hackolade.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 20 de 38

Figura 16. Interfaz gráfica Hackolade para MongoDB.

Figura 17. Interfaz Gráfica Mongo Manager Studio.

2.2.2 Redis

Redis está basado en el almacenamiento clave-valor. Podríamos verlo


como un vector enorme que almacena todo tipo de datos, desde
cadenas, hashses, listas, etc.

El principal uso de este SGBD es para el almacenamiento en memoria


caché y la administración de sesiones.

Las características principales son:

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 21 de 38

 Atomicidad y persistencia
 Gran velocidad
 Simplicidad
 Multiplataforma

2.2.2.1 Redis Desxtop Manager

La interfaz gráfica Redis Desktop Manager es una aplicación de administración de bases de datos
Redis de código abierto para Windows, Linux y MacOS.

Figura 18. Interfaz Gráfica para Redis.

2.2.3 Cassandra

Al igual que Redis, Cassandra también utiliza almacenamiento


clave-valor. Es un SGBD NoSQL distribuido y masivamente
escalable.

Facebook, Twitter, Instagram, Spotify o Netflix utilizan


Cassandra.

Dispone de un lenguaje propio para las consultas denominado CQL (Cassandra Query Languaje).

Las principales características de este SGBD NoSQL son:

 Multiplataforma
 Propio lenguaje de consultas (CQL)
 Escalado lineal y horizontal
 Es un SGBD distribuido
 Utiliza una arquitectura peer-to-peer.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 22 de 38

3. Intérpretes de comandos de los SGBD

El intérprete de comandos permite la comunicación entre el sistema y el usuario. Aunque


actualmente las interfaces gráficas de usuario (GUI) facilitan el trabajo cotidiano, todavía existen
funciones, como la automatización de tareas, que se resuelven mejor desde la línea de comandos
(CLI Command Line Interface).

Las ventajas evidentes de la línea de comandos frente a la interfaz gráfica son:

 Mayor capacidad de expresión semántica


 Menor consumo de recursos (muy importante si se actúa sobre sistemas remotos mediante
una conexión lenta)
 Posibilidad de programar guiones o scripts.
 Programas y sintaxis enfocada a conseguir una mayor productividad

Entre los inconvenientes:

 El usuario precisa de un aprendizaje previo.


 Funcionamiento menos intuitivo.

3.1 Intérprete de Comandos MySQL

mysql envía comandos SQL al servidor para que sean ejecutados. También hay un conjunto de
comandos que mysql interpreta por sí mismo.

Figura 19. Intérprete de Comandos MySQL.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 23 de 38

Para obtener una lista de estos comandos, se escribe help o \h en el prompt mysql>

3.1.1 Cómo listar todos los usuarios en MySQL

La tabla USER almacena toda la información referente a los usuarios junto con sus privilegios
globales.

mysql> SELECT USER FROM mysql.user;

Las filas repetidas existen porque determinados usuarios pueden acceder desde más de un
host diferente. Es importante saber que MySQL filtra el acceso a un servidor de bases de
datos de acuerdo a la dirección IP origen del cliente. Por ello es útil mostrar también la
columna "host":

mysql> SELECT USER,HOST FROM mysql.user;

Los caracteres porcentuales (%) son un comodín (wildcard), en el sentido que indican que un
usuario puede conectarse al motor (originar la conexión) desde cualquier host (cliente).

3.1.2 Ver usuario actual

mysql> select current_user();

3.1.3 ¿Cómo crear un nuevo usuario?

CREATE USER 'nombre_usuario'@'localhost' IDENTIFIED BY


'tu_contrasena';

Lamentablemente, a este punto el nuevo usuario no tiene permisos para hacer algo con las
bases de datos. Por consecuencia si el usuario intenta identificarse (con la contraseña
establecida), no será capaz de acceder a la consola de MySQL.

Por ello, lo primero que debemos hacer es proporcionarle el acceso requerido al usuario con
la información que requiere.

GRANT ALL PRIVILEGES ON *.* TO 'nombre_usuario'@'localhost';

Los asteriscos en este comando hacen referencia a la base de datos y la tabla


(respectivamente) a la cual el nuevo usuario tendrá acceso; específicamente este comando
permite al usuario leer, editar, ejecutar y realizar todas las tareas en todas las bases de datos
y tablas.

Una vez que has finalizado con los permisos, hay que asegurarse siempre de refrescar todos
los privilegios.

FLUSH PRIVILEGES;

3.1.4 ¿Cómo otorgar permisos de usuario diferentes?

A continuación se listan los posibles permisos que se pueden asignar a los usuarios:

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 24 de 38

Permite a un usuario de MySQL acceder a todas las bases de datos


ALL PRIVILEGES:
asignadas en el sistema.
CREATE: Permite crear nuevas tablas o bases de datos.
DROP: Permite eliminar tablas o bases de datos.
DELETE: Permite eliminar registros de tablas.
INSERT: Permite insertar registros en tablas.
SELECT: Permite leer registros en las tablas.
UPDATE: Permite actualizar registros seleccionados en tablas.
GRANT OPTION: Permite remover privilegios de usuarios.
Tabla 2. Permisos de usuario. MySQL.

Para proporcionar un permiso a usuario específico, se puede utilizar ésta estructura:

GRANT [permiso] ON [nombre de bases de datos].[nombre de tabla] TO


‘[nombre de usuario]’@'localhost’;

Para dar acceso a cualquier base de datos o tabla, asegúrate de insertar un asterisco (*) en
lugar del nombre de la base de datos o tabla.

Cada vez que se actualiza o se cambian permisos, hay de refrescar los privilegios mediante:

FLUSH PRIVILEGES;

Ejemplo:

mysql> GRANT SELECT, INSERT ON test.* TO 'adolfo'@'localhost'


IDENTIFIED BY 'pass_adolfo';

3.1.5 Ver privilegios de un usuario

mysql> show grants for nombre_usuario@cliente

3.1.6 Eliminar usuarios

Así como puedes borrar bases de datos con DROP, también puedes usar el comando DROP
para borrar usuarios:

DROP USER ‘usuario_prueba’@‘localhost’;

3.2 Intérprete de Comandos Oracle

La herramienta que nos proporciona ORACLE para interactuar con la base de datos se llama
SQL*Plus. Básicamente, es un intérprete SQL con algunas opciones de edición y formateo de
resultados.

Antes de ver la manera de conectarse a SQL*Plus, conviene tener claros algunos conceptos:

Usuario/Clave: Para poder acceder a una base de datos gestionada por ORACLE debemos ser un
usuario autorizado de la misma y conocer la palabra clave, password, asociada al usuario.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 25 de 38

Figura 20. Intérprete de comando SQL*Plus de Oracle.

3.2.1. Creación de usuarios

Una de las más básicas tareas de un administrador de base de datos es identificar los usuarios. Cada
usuario que conecta en la base de datos debe de tener una cuenta.

Para crear un usuario utilizamos la sentencia CREATE USER. Cuando creas una cuenta como mínimo
tienes que asignar un único nombre (username) y una contraseña para poder autenticarse.

Para cambiar alguno de los atributos que se le ha añadido al usuario creado se utiliza la sentencia
ALTER USER.

3.2.2 Autenticación Oracle

Cuando uno se conecta con una instancia de una base de datos la cuenta de usuario debe de estar
autenticada. ORACLE provee tres métodos de autenticación para nuestra cuenta de usuario.

1. AUTENTICACIÓN MEDIANTE PASSWORD.


2. AUTENTICACIÓN EXTERNA.
3. AUTENTICACIÓN GLOBAL.

AUTENTICACIÓN MEDIANTE PASSWORD: Cuando un usuario conecta con una base de datos
verifica que este usuario y la contraseña introducida almacenada en la base de datos, sea
correcta. Las contraseñas se guardan encriptadas en la base de datos (en el data dictionary).

SQL > CREATE USER nombre_usuario IDENTIFIED BY contraseña;

AUTENTICACIÓN EXTERNA: Cuando un usuario conecta con la base de datos se verifica que el
nombre de usuario es el mismo que el nombre de usuario del sistema operativo para permitir la
validación.

No se almacenan las cuentas en la base de datos de ninguna forma. Estas cuentas están siempre
referidas con OPS$ .A partir de la versión 10g puedes configurar OS_AUTHENT_PREFIX en el
spfile.

SQL > CREATE USER ops$david IDENTIFIED BY tititus;

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 26 de 38

Mediante IDENTIFIED EXTERNALLY decimos a la base de datos que nuestra cuenta es externa
y tiene que ser validada con el sistema operativo.

AUTENTICACIÓN GLOBAL: Cuando un usuario se conecta con la base de datos se verifica


globalmente cuando la información pasa por una opción avanzada de seguridad ( ADVANCED
SECURITY OPTION ) para la autenticación tal como Kerberos, RADIUS ….

Para las cuentas globales no se almacena tampoco nada en la base de datos.

SQL > CREATE USER david IDENTIFIED GLOBALLY AS ‘CN=alumnos,OU=campus


.......’

Mediante IDENTIFIED GLOBALLY decimos a la base de datos que nuestra cuenta se autentica
globalmente, mediante otra opción de seguridad avanzada.

Tabla 3. Autenticación de usuarios en Oracle.

3.2.3 Asignaciones a los usuarios

Oracle almacena datos lógicamente en TABLESPACE y físicamente en datafiles asociados con el


TABLESPACE correspondiente.

Figura 21. Datafiles y Tablespaces oRACLE.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 27 de 38

Un tablespace es un almacén lógico de los ficheros de la base de datos. Cada tablespace posee uno
o varios ficheros (datafiles) donde almacena toda la información; estos ficheros deben tener una
estructura lógica.

Cuando se crea una base de datos, hay que crear al menos un tablespace, que por defecto es
SYSTEM. Igualmente, cuando se crea un tablespace, se debe indicar al menos un datafile que
formará parte de este datafile (posteriormente se pueden añadir más datafiles al tablespace).

El datafile es un fichero físico al que tendremos que asignar un directorio, un nombre y un tamaño
inicial que posteriormente se podrá ampliar según las necesidades (y de las limitaciones) de la
instalación. Este tablespace es el que contendrá la información de los usuarios SYS y SYSTEM que
son los usuarios que tienen la información necesaria para que funcione la base de datos.

Por tanto, el tablespace SYSTEM es una pieza clave para el buen funcionamiento de nuestra base de
datos, por lo que es una buena práctica crear el menos otro tablespace donde almacenar el resto
de usuarios que vayamos creando en nuestra base de datos. Podría ahorrarnos:

 Un bloqueo completo de la base de datos si ocurre algo grave al tablespace SYSTEM.


 Llenar el tablespace SYSTEM pudiendo provocar la parálisis de toda la base de datos.

3.2.3.1 asignación de un usuario a un tablespace

Mediante esta sentencia asignamos un usuario a un tablespace, este será su tablespace por defecto
cuando creamos un usuario.

SQL>CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users;

Mediante esta sentencia, en caso de tener creado ya el usuario le asignamos un tablespace.

SQL>ALTER USER david DEFAULT TABLESPACE users;

La base de datos toma un tablespace por defecto, en caso de querer cambiar este tablespace
utilizamos la siguiente sentencia

SQL>ALTER DATABASE DEFAULT TABLESPACE users;

3.2.3.2 asignación de un usuario a un tablespace temporal

Un tablespace temporal se utiliza para almacenar “segmentos” temporales que son creados durante
operaciones como ORDER BY,SELECT DISTINCT, MERGE JOIN o CREATE INDEX. A veces a
los usuarios se les asocia un tablespace temporal para realizar este tipo de operaciones, cuando
estas operaciones finalizan este segmento temporal que se ha creado exclusivamente para la
operación desaparece.

SQL>CREATE USER david IDENTIFIED BY tititus DEFAULT TABLESPACE users


TEMPORARY TABLESPACE temp;

Mediante TEMPORARY TABLESPACE asignamos como tablespace temporal temp al usuario david.
En caso de que el usuario esté creado si queremos asignarle un tablespace temporal utilizamos
ALTER USER

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 28 de 38

SQL>ALTER USER david TEMPORARY TABLESPACE Temp;

3.2.4 Asignación de un perfil a un usuario

Al igual que podemos asignar un tablespace a un usuario, también podemos asignarle un perfil
(profile). El principal perfil (profile) por defecto se denomina default.

Un perfil de usuario es una forma de limitar los recursos que puede utilizar un usuario. Antes de
asignar un perfil a un usuario es necesario que este perfil exista en la base de datos.

Un perfil se asigna en la creación de un usuario CREATE USER o modificandolo ALTER USER.

Si el usuario no está lo podemos crear de la siguiente forma:

SQL>CREATE USER david IDENTIFIED BY tititus


DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
PROFILE resource_profile;

En caso de que el usuario ya esté creado al igual que en los anteriores casos utilizamos la sentencia
ALTER USER.

SQL>ALTER USER david PROFILE resource_profile;

3.2.5 Borrado de un usuario

Para borrar un usuario utilizamos la sentencia DROP USER, podemos opcionalmente incluir la opción
CASCADE, se utiliza para borrar recursivamente los objetos del usuario que se pretende borrar.

SQL > DROP USER david CASCADE

3.2.6 Otorgando privilegios (granting)

A un usuario podemos otorgarle una serie de privilegios. Un privilegio permite a un usuario acceder
a ciertos objetos o realizar ciertas acciones:

 Privilegios sobre Objetos (Object privileges) a permisos sobre vistas, tablas, secuencias,
procedimientos, paquetes.
 Privilegios del Sistema (System privileges) a permisos sobre “niveles de la base de datos”
como pueden ser conexión a la base de datos, creación de usuarios, limitar cuentas.
 Privilegios sobre Roles (Role privileges) a muchos permisos son otorgados mediante roles
agrupando un conjunto de privilegios.

Para otorgar privilegios utilizamos la sentencia GRANT, para quitar un privilegio o permiso a un
usuario utilizamos la sentencia REVOKE

EJEMPLOS:
Privilegio sobre una tabla:
SQL>GRANT ALL ON tabla_alumnos TO david

GRANT ALL = permisos SELECT, INSERT, UPDATE, DELETE

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 29 de 38

Si queremos asignar sólo uno de estos permisos utilizamos la misma sentencia, pero con el permiso
que queramos otorgar.

SQL>GRANT SELECT ON tabla_alumnos TO david


SQL>GRANT SELECT,INSERT ON tabla_alumnos TO david

Privilegio sobre una vista:

Para el caso de las vistas podemos a un usuario otorgar permisos SELECT, INSERT, UPDATE,
DELETE, DEBUG, REFERENCES.

Siendo vista_alumnos una vista de nuestra base de datos y david un usuario de esta:

Otorgamos al usuario david todos los permisos sobre la vista vista_alumnos.

SQL>GRANT ALL ON vista_alumnos TO david

Otorgamos al usuario david algunos permisos sobre la vista_alumnos

SQL>GRANT SELECT ON vista_alumnos TO david


SQL>GRANT SELECT,INSERT ON vista_alumnos TO david

3.2.7 Quitando privilegios

Si queremos quitar un privilegio a uno de estos objetos haremos lo mismo que con GRANT pero
utilizando la sentencia REVOKE.

SQL>REVOKE ALL ON tabla_usuarios FROM david

3.3 Lenguajes

Los SGBD proporcionan lenguajes para poder acceder a los datos y realizar algunas tareas de
gestión.

Structure query lenguaje (SQL): lenguaje estructurado de consultas. Lenguaje de acceso a datos
Inventado por IBM.

No solo se ejecutan consultas, Además permite:

 Crear bases de datos desde 0


 Crear campos nuevos, eliminarlos
 Modificar las propiedades de los campos.
 Establecer qué tipo de relación existe entre dos tablas de una base de datos.

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 30 de 38

Figura 22. Esquema básico de funcionamiento de sql

Clasificación de los lenguajes:

Para crear la base de datos y modificar sus estructura


LENGUAJE DE DEFINICIÓN DE
(especificar el esquema físico de la base de datos, vistas de los
DATOS (DDL)
usuarios, estructuras de almacenamiento…)
LENGUAJE DE MANIPULACIÓN Para consultar y actualizar los datos. Capacita a los usuarios a
DE DATOS (DML) acceder o manipular los datos.
LENGUAJE DE CONTROL DE Para realizar operaciones sobre el control y seguridad de los
DATOS (DCL) datos. Permite al administrador controlar el acceso a los datos.
TRANSACTION CONTROL
Gestión de los cambios en los datos.
LANGUAJE (TCL)
Tabla 4. Clasificación de los lenguajes que proporcionan los SGBD.

Figura 23. Grupos de comando SQL

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 31 de 38

SQL además de poseer estos comandos posee Cláusulas.

Figura 24. Cláusulas SQL.

3.3.1 INSTRUCCIÓN SQL

Permite obtener o modificar la información de una Base de Datos, está formada por:

COMANDO + CLAÚSULA + OPERADORES + FUNCIONES


No es necesario que una instrucción SQL lleve obligatoriamente los 4 componentes todo depende
de la complejidad de la instrucción SQL o de lo que quieras afinar a la hora de obtener información.
Como mínimo la instrucción SQL debe de llevar:

COMANDO + CLAÚSULA

4. El Lenguaje de Definición de Datos (DDL)

DDL es utilizado para crear estructuras dentro de la base de datos, permitiendo por ejemplo:
 CREATE, crear objetos en la base de datos como tablas, vistas, usuarios, perfiles.
 ALTER, modificar los objetos creados.
 DROP, borrar los objetos creados.
 TRUNCATE, borrar todos los registros de una tabla.

5. Creación de bases de datos

Pasos para la creación de una Base de Datos en MySQL:

1. Abrir la línea de comando de MySQl.

2. Crea el archivo de la base de datos. Para hacerlo, escribe el comando de creación de bases de
datos:

CREATE DATABASE nombre_de_la_base_de_datos;

3. Seleccionar la Base de datos a usar: USE nombre_de_la_base_de_datos;

Sintaxis:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] nombre_db

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 32 de 38

[especificación_create [, especificación_create] ...]


especificación_create:
[DEFAULT] CHARACTER SET juego_caracteres
| [DEFAULT] COLLATE nombre_colación

Para desplegar el listado de bases de datos que hay en el servidor MySQL:

mysql> SHOW DATABASES;

6. Modificación de una base de datos

La instrucción ALTER DATABASE se usa para modificar, mantener o recuperar una base de datos
existente.
Ejemplo MySQL (cambia la colación de una base de datos):
Mysql>ALTER DATABASE Startrek COLLATE latin1_spanish_ci;

Ejemplo Oracle
SQL> ALTER DATABASE DATAFILE ‘/datos/jardineria/system01.dbf' SIZE 1G;
SQL> ALTER DATABASE open read only;
SQL> ALTER DATABASE flashback off;

7. Borrado de bases de datos

Ejemplo MySQL:

Mysql> DROP DATABASE Proveedores;

Ejemplo Oracle

Para poder ejecutar un “drop database” debemos tener en cuenta lo siguiente:


 La base de datos debe estar cerrada y montada
 La base de datos debe estar montada en modo ‘exclusivo’
 La base de datos debe estar montada en forma ‘restricted’

Para eso, realizamos lo siguiente:

1. Bajamos la base de datos:


SQL> shutdown immediate; o shutdown abort;
2. Montamos la base en modo ‘exclusivo’ y ‘restricted’:
SQL> startup mount exclusive restrict;
3. Por último procedemos a eliminar la base:
SQL> drop database;

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 33 de 38

8. Creación de tablas

CREATE [TEMPORARY] TABLE [esquema.]nombre_tabla


[(definición_create,...)]
[opciones_tabla]

definición_create:
definición_columna
| [CONSTRAINT [símbolo]] PRIMARY KEY (nombre_columna,...)
| [CONSTRAINT [símbolo]] FOREIGN KEY (nombre_columna,...)
[definición_referencia]

definición_columna:
nombre_columna tipo_datos [NOT NULL | NULL] [DEFAULT valor]
[UNIQUE [KEY] | [PRIMARY] KEY]
[definición_referencia]

definición_referencia:
REFERENCES nombre_tabla [(nombre_columna,...)]
[ON DELETE {CASCADE | SET NULL | NO ACTION} ]
[ON UPDATE {CASCADE | SET NULL | NO ACTION} ]

Una vez creada la/s tabla/s se utiliza en comando DESCRIBE para asegurarse de haber incluido
todos los campos.

Mysql>DESCRIBE nombre_de_la_tabla;

Ejemplo:

Mysql>CREATE TABLE clientes(dni varchar(9) PRIMARY KEY, nombre


varchar(50), direccion varchar(60));

8.1 Implementación de restricciones.

Mysql>CREATE TABLE mascotas(


codigo integer PRIMARY KEY,
nombre varchar(50),
raza varchar(50),
cliente varchar(9) REFERENCES clientes(dni)
);

Mysql>CREATE TABLE mascotas(


codigo integer PRIMARY KEY,
nombre varchar(50),
raza varchar(50),
cliente varchar(9) REFERENCES clientes(dni)
ON DELETE CASCADE ON UPDATE SET NULL
);

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 34 de 38

Existen dos formas de implementar restricciones:

A NIVEL DE TABLA
A NIVEL DE COLUMNA
(es posible definir claves compuestas)
CREATE TABLE vehiculo( CREATE TABLE vehiculo(
matricula varchar(7) PRIMARY matricula VARCHAR(7),
KEY, marca VARCHAR(20),
marca VARCHAR(20), modelo VARCHAR(20),
modelo VARCHAR(20), precio NUMERIC(7,2)
precio NUMERIC(7,2) PRIMARY KEY (matricula)
); );

#Clave primaria = dni + n_ss


CREATE TABLE empleado(
dni VARCHAR(9),
n_ss VARCHAR(15),
nombre VARCHAR(40),
PRIMARY KEY (dni,n_ss)
#compuesta
);
Tabla 5. Restricciones a nivel de tabla y columna.

8.2 Claves Foráneas (FK)

Mysql>CREATE TABLE mascotas (


codigo INTEGER PRIMARY KEY,
nombre VARCHAR(50),
raza VARCHAR(50),
cliente VARCHAR(9),
FOREIGN KEY (cliente) REFERENCES clientes(dni)
);

Ejemplo de creación de tabla en MySql:

CREATE TABLE if not exists Pedido(


codigo int auto_increment primary key,
fecha datetime,
estado enum('Pendiente','Entregado','Rechazado')
)
comment = 'tabla de pedidos a proveedores ‘
autoincrement = 10000
max_rows=1000000
checksum=1
engine=innodb;

Ejemplo de creación de tabla en Oracle:

CREATE TABLE Pedido(


codigo INTEGER PRIMARY KEY,
fecha DATE,

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 35 de 38

estado VARCHAR(10),
CONSTRAINT C_ESTADO
CHECK (estado IN
'Pendiente','Entregado','Rechazado')
)
TABLESPACE ADMINISTRACION
STORAGE (initial 100k next 100k minextents 1
maxextents unlimited pctincrease 0);

8.3 ¿Cuántas tablas hay en la Base de Datos?

Con el comando SHOW nos permite saber cuántas tablas hay en la base de datos.

MySQL

mysql> show tables;


+----------------------+
| Tables_in_jardineria |
+----------------------+
| Clientes |
| DetallePedidos |
| ... |
| Productos |
+----------------------+

Oracle

SQL> SELECT table_name FROM USER_TABLES;

TABLE_NAME
------------------------------
PARTIDOS
ESTADISTICAS
JUGADORES
EQUIPOS

8.4 ¿Qué estructura tienen las tablas?

DESCRIBE [esquema.]nombre_tabla

SQL> describe nba.equipos;


Nombre Nulo Tipo
----------------------------------------- -------- ------------
NOMBRE NOT NULL VARCHAR2(20)
CIUDAD VARCHAR2(20)
CONFERENCIA VARCHAR2(4)
DIVISION VARCHAR2(9)
8.3 Tipos de datos

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 36 de 38

Tabla 6.Tipos de datos en MySQL y Oracle.

opciones_tabla: opción_tabla [opción_tabla] ...


ENGINE = nombre_motor
| AUTO_INCREMENT = valor
| [DEFAULT] CHARACTER SET
juego_caracteres
[COLLATE colación]
| CHECKSUM = {0 | 1}
| COMMENT = 'string'
| MAX_ROWS = valor
| MIN_ROWS = valor
9. Modificación de tablas
ALTER TABLE nombre_tabla
especificación_alter [, especificación_alter] ...

especificación_alter:
ADD definición_columna [FIRST | AFTER nombre_columna ]
| ADD (definición_columna,...)
| ADD [CONSTRAINT [símbolo]]
PRIMARY KEY (nombre_columna,...)
| ADD [CONSTRAINT [símbolo]]
UNIQUE (nombre_columna,...)
| ADD [CONSTRAINT [símbolo]]
FOREIGN KEY (nombre_columna,...)
[definición_referencia]

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 37 de 38

| CHANGE [COLUMN] anterior_nombre_columna definición_columna


[FIRST|AFTER nombre_columna]
| RENAME COLUMN anterior_nombre_columna TO nuevo_nombre_columna
| MODIFY definición_columna [FIRST | AFTER nombre_columna]
| DROP COLUMN nombre_columna
| DROP PRIMARY KEY
| DROP FOREIGN KEY fk_símbolo
| opciones_tabla

MySQL

ALTER TABLE Mascotas ADD Especie VARCHAR(10) AFTER Raza;

Oracle

ALTER TABLE Clientes DROP PRIMARY KEY;


ALTER TABLE Clientes DROP CodigoCliente;
ALTER TABLE Clientes ADD COLUMN Nif VARCHAR(10) PRIMARY KEY FIRST ;

10. Borrado de tablas

FORMATO EJEMPLO
MySQL MySQL
DROP [TEMPORARY] DROP TABLE Mascotas;
TABLE tbl_name [,tbl_name]… DROP TABLE Clientes, Empleados;
Oracle Oracle
DROP [TEMPORARY] DROP TABLE Partidos;
TABLE tbl_name DROP TABLE Jugadores CASCADE
[CASCADE CONSTRAINTS] CONSTRAINT;

11. Renombrado de tablas

Sintaxis MySQL

RENAME TABLE nombre_tabla TO nuevo_nombre_tabla


[, nombre_tabla TO nuevo_nombre_tabla] ...
RENAME TABLE Mascotas TO Animales;

Sintaxis Oracle

RENAME nombre_tabla TO nuevo_nombre_tabla


RENAME Jugadores TO Baloncestistas;

Docente: Norma González


UT3- DISEÑO FÍSICO DE BASE DE DATOS DAM1
Curso 2019/20
Pág. 38 de 38

12. Cuestionario

1. ¿Qué es el SSL y cómo funciona?


2. ¿Qué es SSL en web?
3. ¿Cuál es la diferencia entre SSL y TLS?
4. ¿Qué es la arquitectura Peer-to-Peer (P2P)?
5. Completa la siguiente tabla:
TIPO SGBD Interfaz gráfica que puede utilizar
Relacional Microsoft SQL Server SQL Server Management Studio

6. Qué es una Base de Datos Clave/Valor.


7. ¿Qué es una base de datos de entorno distribuido?, ¿Cómo funciona?
8. ¿Qué es Navicat?
9. ¿Qué es una base de datos relacional está orientado a objetos?
10. ¿Qué es licencia BSD?
11. ¿Qué es Azure SQL Database?
12. ¿Qué es una tabla hash?
13. Escribe los tipos de datos que se utilizan en Oracle Express.
14. Escribe los tipos de datos que se utilizan en MySQL.

Docente: Norma González

También podría gustarte