You are on page 1of 8

LENGUAJE SQL.

Juan Paulo Figueroa Maldonado

FUNDAMENTOS DE BASES DE DATOS

INSTITUTO IACC

05 de Febrero, 2018
Instrucciones.
OBJETIVO DEL CONTROL: Utilizar el Lenguaje de Definición de Datos (DDL) y de
Manipulación de Datos (DML)
RECURSOS NECESARIOS: Contenidos de la semana 4.
INSTRUCCIONES:
Revise los siguientes casos de estudio y responda a los requerimientos planteados:

1. Imagínese que usted ha sido contratado para diseñar la base de datos de un sistema que se
encargará de registrar las citas médicas de una clínica que recién empezará a ofrecer sus
servicios. Es por ello que debe crear una tabla para médicos, una para pacientes y una para la
cita_médica. Usted será el encargado de decidir los atributos que almacenará en cada tabla.
Es por ello que deberá elaborar:

A. Sentencia de creación de tablas para cada una de las tablas, donde deberá entregar tres (3)
en total.

B. Sentencia de inserción de datos en cada tabla, mínimo 3 registros en cada tabla. Deberá
entregar como mínimo nueve (9) sentencias (3 por cada tabla).

C. Consulta en SQL que retorne por cada tabla los registros que esta tiene. Deberá entregar
tres (3) consultas en SQL.
Incluir en cada una de las sentencias y consultas una breve explicación de lo realizado.

2. Usted ha sido seleccionado por el profesor de la asignatura de Fundamentos de Bases de Datos


para explicar brevemente los Lenguajes de Manipulación (DML) y de Definición de Datos
(DDL), un compañero le expone que para él son lo mismo, sin embargo, usted no está de acuerdo
con ello. Ante eso, ¿qué diferencias puede indicarle a su compañero entre los DDL y DML?
Fundamente con algún ejemplo lo antes mencionado.
3. Usted ha sido contratado por una empresa desarrolladora de software para trabajar
directamente con la base de datos de un sistema para el control de acceso de personal. Al
entrevistarse con el cliente, este le indica que está muy preocupado porque le han dicho que al
tener un sistema sólo podrá contar con los reportes que se soliciten en un principio, ya que las
consultas sobre la base de datos son limitadas. ¿Es real esto?, ¿qué podría indicarle al cliente
para calmarlo? Fundamente su respuesta.

Desarrollo
1. Las tablas y sus atributos son los siguientes:

A. Las sentencias de creación de tablas son:

CREATE TABLE medico (RUT_MEDICO VARCHAR(10), NOMBRES VARCHAR(20),

APELLIDOS VARCHAR(30), FECHA_NACIMIENTO DATE, ESPECIALIDAD

VARCHAR(20), DIRECCION VARCHAR(50), TELEFONO VARCHAR(12));

CREATE TABLE paciente (RUT_PACIENTE VARCHAR(10), NOMBRES VARCHAR(20),

APELLIDOS VARCHAR(30), FECHA_NACIMIENTO DATE, DIRECCION

VARCHAR(50), TELEFONO VARCHAR(12), SEXO VARCHAR(2));


CREATE TABLE cita_medica (RUT_MEDICO VARCHAR(10), RUT_PACIENTE

VARCHAR(10), ID_CITA VARCHAR(10), FECHA_CITA DATE, HORA_CITA DATE,

NUM_BOX_CONSULTA VARCHAR (3));

Con estas 3 sentencias, se crean las tablas MEDICO, PACIENTE y CITA_MEDICA, con los

atributos indicados en la imagen de las tablas. Se indica también el tipo de datos correspondiente a

cada atributo, que en mi caso corresponden a Varchar (cadena de caracteres) y date (fechas y horas).

B. Los registros que se ingresarán son los siguientes:

MEDICO
Rut_medico Nombres Apellidos Fecha_Nacimiento Especialidad Dirección Teléfono
8841567-9 Pedro Andres Gutierrez Mandiola 18-01-1969 Traumatólogo Pedro Perez 2147, Providencia 992345677
13456789-0 Constanza Andrea Mendez Aguirre 28-06-1975 Pediatra Manuel Montt 2123, Ñuñoa 223456789
21436798-0 Jairo Joaho Shang Soto 29-04-1982 Medico General El Fauno 13467, Cerro Navia 227519574

PACIENTE
Rut_paciente Nombres Apellidos Fecha_Nacimiento Dirección Teléfono Sexo
13278944-7 Roberto Andres Gallardo Riquelme 15-06-1980 El Fundo 3045, Pudahuel 992347651 M
11234567-9 Viviana Marcela Carvajal Andrade 27-08-1974 Grajales 2045, depto. 901, Santiago 229876543 F
23167098-5 Sergio Fernandez Urrejola 17-08-2011 Blest gana 9012, La Cisterna - M

CITA_MEDICA
Rut_medico Rut_paciente ID_cita Fecha_cita Hora_cita Num_box_consulta
8841567-9 13278944-7 12345 07-02-2018 18:30 4
13456789-0 23167098-5 13546 07-02-2018 11:15 34
21436798-0 11234567-9 13999 07-02-2018 18:30 13

Las sentencias de inserción de datos en cada tabla son:

REGISTROS EN TABLA MEDICO.

INSERT INTO medico values ('8841567-9','Pedro Andres','Gutierrez Mandiola','1969-01-

18','Traumatólogo','Pedro Perez 2147, Providencia','992345677');

INSERT INTO medico values ('13456789-0','Constanza Andrea','Mendez Aguirre','1975-06-

28','Pediatra','Manuel Montt 2123, Ñuñoa','223456789');

INSERT INTO medico values ('21436798-0','Jairo Joaho','Shang Soto','1982-04-29','Medico

General','El Fauno 13467, Cerro Navia','227519574');


REGISTROS EN TABLA PACIENTE.

INSERT INTO paciente values ('13278944-7','Roberto Andres','Gallardo Riquelme','1980-06-

15','El Fundo 3045, Pudahuel','992347651','M');

INSERT INTO paciente values ('11234567-9','Viviana Marcela','Carvajal Andrade','1974-08-

27','Grajales 2045, depto. 901, Santiago','229876543','F');

INSERT INTO paciente values ('23167098-5','Sergio ','Fernandez Urrejola','2011-11-

17','Blest gana 9012, La Cisterna','','M');

REGISTROS EN TABLA CITA_MEDICA.

INSERT INTO cita_medica values (TABLA CITA_MEDICA '8841567-9','13278944-

7','12345','2018-02-07', '18:30','4');

INSERT INTO cita_medica values ('13456789-0','23167098-5','13546', '2018-02-10',

'11:15','34');

INSERT INTO cita_medica values ('21436798-0','11234567-9','13999', '2018-02-07',

'18:30','13');

Con estas 9 sentencias, se ingresan los datos de los registros indicados en el cuadro, especificando

en qué tabla se ingresarán y sin especificar los campos, sólo ingresándolos en el orden en el que

están estructurados en la tabla.

C. Las consulta en SQL que retornarán los registros solicitados son:

CONSULTA DE REGISTROS EN TABLA MEDICO.

SELECT * FROM medico;

CONSULTA DE REGISTROS EN TABLA PACIENTE.

SELECT * FROM paciente;


CONSULTA DE REGISTROS EN TABLA CITA_MEDICA.

SELECT * FROM cita_medica;

Cada una de estas consultas, me traerá todos los registros de cada tabla. Utilicé la forma

abreviada (con *), sin especificar en la sentencia todas las columnas de la tabla.

Si quisiera una consulta más específica, por ejemplo el nombre del médico que tiene la

especialidad de Pediatra, la consulta sería:

SELECT nombres, apellidos

FROM medico

WHERE especialidad = 'pediatra'

2. Las definiciones de los tipos de comandos que se utilizan para manejar bases de datos,

son las siguientes:

DDL o Lenguaje de definición de Datos, que corresponden a comandos utilizados para crear,

cambiar o destruir las estructuras lógicas, que constituyen el modelo lógico de las BD. Es decir,

permiten modificar la estructura de las tablas, así como de otros objetos de éstas. Ejemplos de

estos comandos, son: CREATE, DROP, ALTER, TRUNCATE, etc.

DML o Lenguaje de Manipulación de Datos, que corresponde a comandos con los que es

posible gestionar la manipulación de los datos (Introducir, modificar y consultar datos) al

interior de la BD. Ejemplos de estos comandos, son: INSERT, DELETE, SELECT, UPDATE,

etc.

Las diferencias entre ambos tipos de lenguajes, son básicamente en que los primeros (DDL) son

comandos para manipular las estructuras de datos, y los segundos (DML), son para manipular los

datos contenidos en las estructuras de datos.


Para evidenciar las diferencias entre uno y otro tipo de comandos, un ejemplo:

Una gran empresa del Retail, adquiere una compañía de vestuario, con una gran cantidad de

sucursales. Es necesario incorporar esta nueva empresa a los sistemas informáticos del Retail, y

en este caso, es posible hacerlo fácilmente incorporando ciertas tablas que hacen referencia a las

categorías de productos que se venderán (VESTUARIO_HOMBRE, VESTUARIO_MUJER,

VESTUARIO_INFANTIL_NIÑO, VESTUARIO_INFANTIL_NIÑA), acción que se realizará

mediante comandos del lenguaje DDL, por ejemplo creando la tabla VESTUARIO_HOMBRE,

con el comando CREATE TABLE.

Sin embargo, para ingresar los datos de los productos que se venderán de cada categoría, o de las

nuevas direcciones de las sucursales que se incorporarán a tablas que ya estaban creadas, se

realizará mediante comandos del lenguaje DML, por ejemplo, se ingresarán los registros de los

nombres y direcciones de las sucursales nuevas a la tabla “antigua” SUCURSALES, utilizando la

instrucción INSERT INTO.

3. Respecto de las aprehensiones del cliente, se le debe señalar que lo que él indica no es

correcto, que las bases de datos son capaces de almacenar una gran cantidad de información,

actual e histórica, dependiendo sólo de la capacidad física de los servidores y discos duros en las

que se encuentren alojadas, y que se puede acceder a esta información sin problemas, con los

comandos adecuados (DML) que sean capaces de acceder a la información solicitada, utilizando

diferentes criterios de consulta y búsqueda.

Para tranquilizarlo, se le puede indicar que se realizará un análisis de la cantidad de datos que

tiene actualmente (espacio en disco de la BD), y una proyección de la utilización de espacio a 5

años (con un incremento de un 20% anual), para adquirir la capacidad de HW (discos duros)

necesarios para soportarlo.


Bibliografía
 Fundamentos de Bases de datos, IACC, 2017, Semana 4.

 Video Tutorial 4 SQL. DDL y DML. Sentencias SELECT FROM WHERE y ORDER BY

con Mysql Workbench.

http://www.edu4java.com/es/sql/sql4.html

 Diferencias entre DDL/DML/DCL, Todo PostgreSQL, 07-11-2017.

https://todopostgresql.com/diferencias-entre-ddl-dml-dcl/

You might also like