Está en la página 1de 13

Universidad Nacional Autónoma de México

Facultad de Ingeniería
Ingeniería en Computación
Laboratorio de Bases de Datos
Práctica 5
Fecha de elaboración de la práctica: 25 de marzo de 2023
Fecha de entrega: 28 de marzo de 2023

Introducción:
En la elaboración de esta práctica nos seguiremos centrando en el lenguaje de
definición de datos, crearemos tablas, borraremos tablas, las modificaremos
dándoles llaves primarias, llaves foráneas, modificando sus tamaños, agregando
más a tributos a una tabla ya creada, creando atributos no nulos, entre otras
funciones. Para entender mejor el tema se puede definir al lenguajes de definición
de datos como un lenguaje proporcionado por el sistema de gestión de base de
datos el cual permite a los usuarios de la misma llevar a cabo las tareas de
definición de las estructuras que almacenarán los datos así como de los
procedimientos o funciones que permitan consultarlos, aquí la importancia de una
base de datos. Una base de datos es una herramienta para recopilar y organizar
datos pertenecientes a un mismo contexto y almacenados sistemáticamente para
su posterior uso. En las bases de datos, se puede almacenar información sobre
personas, productos, pedidos, o cualquier otra cosa.
Las principales funcionalidades de SQL como lenguaje de definición (DDL) son la
creación, modificación y borrado de las tablas que componen la base de datos, así
como de los índices, vistas, sinónimos, permisos, etc. que pudieran definirse sobre
las mismas.
Desarrollo:
1. Para dar inicio a la práctica abriremos el sql plus en nuestra computadora:

2. iniciamos sesión en el oracle 19c:

1
3. Dentro del oracle database vamos a empezar a hacer nuestras tablas, en este
caso vamos a crear la tabla nombrada “CARRO”, con sus respectivos
atributos, como se muestra a continuación:

4. Ahora utilizaremos el ALTER TABLE sobre la tabla CARROS, esta función nos
va a funcionar para colocar restricciones también podemos llamar a estas
restricciones como PRIMARY KEY. Una llave primaria o PRIMARY KEY es una
columna o un grupo de columnas que identifica de forma exclusiva cada fila
de una tabla. El comando ALTER TABLE nos va a funcionar para cambiar la
estructura de una tabla existente. Si una consulta activa está utilizando la
tabla, el comando ALTER espera hasta que se complete la consulta. Otras
acciones que podemos hacer con el ALTER TABLE son cambiar o descartar
un valor predeterminado de columna. Los valores predeterminados que se
establecen sólo se aplican a comandos INSERT, no a filas que ya están en la
tabla, también puede cambiar el nombre de una columna o una tabla sin
cambiar el tipo de datos o el tamaño dentro de la columna o tabla. Puede
omitir la columna de la palabra clave, añadir o descartar una restricción de
tabla o de columna. No se puede cambiar una restricción. En lugar de eso
debe descartar la restricción y crear una nueva y modificar la longitud de una
columna varchar. En nuestro caso le agregaremos la llave a el atributo
NUM_SERIE, así como se muestra en la siguiente captura:

2
5. Después de asignar la llave primaria a la tabla vamos a modificar el atributo
modelo, el cual ahora va a ser un atributo tipo UNIQUE , la restricción
UNIQUE en SQL se utiliza para garantizar que no se inserten valores
duplicados en una columna específica o combinación de columnas que
participen en la restricción UNIQUE y no formen parte de la CLAVE
PRIMARIA. La forma en que se utiliza esta restricción se muestra en la
siguiente captura:

En nuestro ejemplo utilizamos el atributo modelo como una atributo tipo


UNIQUE, esta restricción se utiliza para garantizar que no se inserten valores
duplicados en una columna específica o combinación de columnas que
participen en la restricción UNIQUE y no formen parte de la CLAVE
PRIMARIA. Por otro lado, el CONSTRAINT nos sirve para aumentar la
precisión y la confiabilidad de los datos almacenados en la base de datos. Las
constraints o restricciones aseguran que no haya violación en términos de
transacción de los datos.
6. En esta parte de la práctica seguiremos modificando sus atributos, en este
caso será a TRANSMISIÓN el cual le se le asignará una restricción tipo
"check" que admita solamente determinados valores. La restricción CHECK
en SQL se usa para limitar el rango de valores que se puede colocar en una
columna, por ejemplo, si define una restricción CHECK en una sola columna,
solo se permiten ciertos valores para esta columna. De esta manera se
pueden evitar errores al no introducir valores erróneos. Por sentido común
en este campo (TRANSMISION) le pediremos sólo admitir dos valores, que
serán “MAN” Y “AUT”, haciendo referencia si es que son de transmisión
manual o automática. El ejemplo en la siguiente captura:

7. De la misma forma que la anterior vamos a establecer la misma restricción a


YEAR, el cual solo se permitirá ingresar carros a la lista de los años 1990 a
2023, se utilizará la función BETWEEN AND que determina si el valor de una
expresión está dentro de un intervalo de valores especificado ,en nuestro
ejemplo son los años permitidos a los carros (1990 a 2023), quedará más
claro en la siguiente capturar:

3
Podemos ver que la restricción fue ingresada correctamente y con los
intervalos de los años 1990 a 2023, esto quiere decir que si intentamos
ingresar un carro que tiene un año por ejemplo de 1987 nos mandara un
error ya que no puedes ingresar carros menores a 1990,esto quedará más
claro a lo largo de la práctica.
8. Ya que hemos colocado las restricciones a los atributos de nuestra tabla,
procederemos a insertar datos, para esto utilizaremos la sentencia INSERT,
INSERT es una sentencia SQL que añade datos a una tabla. La sentencia
INSERT tiene el formato siguiente: INSERT INTO nombtabla VALUES (
valor1, valor2 , ...), en esta sintaxis, nombtabla es el nombre de la tabla o
vista en la que se desea insertar datos y valor1, valor2 (etc.), son los valores
que va a insertar. Como en el ejemplo de nuestra práctica, se ingresaron los
siguientes datos:

En nuestra tabla de ejemplo le dimos como datos en cada campo un valor en:
NUM_SERIE —>'A1'
MODELO —>'JASI'
TRANSMISION —>'MAN'
YEAR —>2002
En este caso la fila fue creada correctamente ya que cumplio con las
restricciones antes declaradas, y como vemos el auto tiene un número de
serie único quiere decir que ese número de serie no lo puede tener otro carro,
el modelo es de tipo ‘JACI’ por poner un modelo de ejemplo, vemos que el
carro es de transmisión manual y además es del año 2002, como 2002 esta
entre los intervalos 1990 y 2023, entonces cumple con los requisitos y la fila
pudo ser creada correctamente.
9. Ingresamos más datos a nuestra tabla, así como se muestra en la captura:

En esta parte al intentar ingresar un carro, lo hice de forma incorrecta para


que quede claro, que si ingresamos otro carro con la misma llave primaria el
sql nos dirá que el carro no puede ser ingresado ya que existe otro con la
misma llave, ya que como sabemos la llave primaria es única y no se puede
repetir, la forma correcta de ingresar los datos es la siguiente:

4
Hasta este punto ya tenemos 5 carros dentro de nuestra tabla CARROS.
10. Pueden existir varias formas de cometer errores al ingresar los datos a la
tabla, ahora veremos cuales son los errores más comunes que podemos
cometer:

De este tipo de errores se habló en el punto 7, como vemos todo en el carro


está correcto menos el YEAR (año) el cual no cumple con nuestras
especificaciones de estar dentro del intervalo de 1990 a 2023.

Este es otro error en el cual el nombre del modelo sobrepasa el tamaño del
dato especificado en la tabla. Ya que este campo puede contener un valor de
tipo VARCHAR con un tamaño de 5 y a la hora de ingresar el carro tiene un
valor de 7 entonces no es posible agregarlo a la tabla, ya que no cumple con
nuestros requisitos.
11. Haremos un pequeño paréntesis para explicar la función de las llaves
foráneas junto con un ejemplo visto en el laboratorio. Como hemos visto
hasta ahora las llaves foráneas pueden ser una columna o un conjunto de
columnas en una tabla cuyos valores corresponden a los valores de la clave
primaria de otra tabla y para poder añadir una fila con un valor de clave
foránea específico, debe existir una fila en la tabla relacionada con el mismo
valor de clave primaria.
Ejemplo:

5
En este ejemplo estamos utilizando los datos de ID_EST dentro de nuestra
tabla RFC, este es el uso correcta aplicación de las funciones de las llaves
foráneas, ya que antes de que las podamos utilizar esta debe de contener
información adicional el cual nos ayuda a tener un buen control de datos
junto con su contenido.
12. En este paso vamos a utilizar la instrucción "DROP TABLE CARROS;", la cual
funciona para eliminar una tabla, procedimiento o vista existente de una
base de datos o eliminar un índice existente de una tabla. Así como se
muestra el la captura:

13. Creamos la misma tabla pero la modificaremos un poco, así como se


muestra a continuación:

14. Creamos una nueva tabla a la cual llamaremos tipo:

6
15. A la tabla ya creada le asignamos un CONSTRAINT de tipo PRIMARY KEY a
ID_TIPO:

16. Ahora asignaremos la llave foránea a nuestra tabla CARRO, esta instrucción
se escribe de la siguiente manera:

17. Vamos a probar nuestra tabla intentando ingresar un carro:

Aquí nos aparece este error, ya que aun no tenemos datos en ID_TIPO, ya
que necesitamos tener antes los modelos ya definidos para clasificarlos en
nuestra tabla.

18. Lo que haremos ahora es ingresar los datos a la tabla tipo para poder
clasificarlos después en nuestra tabla principal CARROS:

Contaremos con 4 tipos de carros los cuales pueden ser camionetas, carros,
deportivos o clásicos.
19. Ahora consultamos que los datos fueron ingresados correctamente, con
ayuda de la función select *from

7
20. Ahora ya podemos ingresar nuestros datos a la tabla CARROS ya que
contamos con el tipo de carro:

21. ¿Qué pasaría si le ingresamos un número de tipo que no fuera parte de


nuestra tabla TIPO?

No se encontró la clave de tipo “5” ya que no es parte de nuestra tabla TIPO


por lo que no puede ser ingresado este carro a nuestra tabla.
22. Supervisamos nuestras tablas con la función select *from
Para la tabla CARROS por lo menos debemos de tener un carro ingresado:

Para la tabla tipo debemos tener los 4 modelos de carros que usamos para
clasificar en nuestra tabla:

23. Borraremos la tabla TIPO o al menos intentaremos borrala, veremos que


sucede, para esto utilizaremos a DROP TABLE:

8
Como observamos esta tabla no se pudo borrar ya que cuenta con una llave
foránea como llave primaria, entonces si queremos borrar esta tabla
debemos de borrar la tabla principal (aquella que contiene la llave primaria).
24. Existe una forma de borrar las tablas en Cascada siempre y cuando exista
relación entre ellas, para eso utilizaremos la siguiente función:

Y de esta manera hemos borrado las tablas en forma de cascada.


25. Volveremos a crear nuestra tabla CARROS.

26. En esta parte de la práctica visualizamos los tipos de datos con los que
cuenta nuestra tabla, para ver los tipos de datos usaremos la función DESC:

27. Modificaremos a el atributo KILOMETRAJE, para que en vez de contar con un


tamaño de 4 ahora sea de 5, esto lo haremos de la siguiente manera:

Verificamos que se modificó correctamente, volvemos a usar DESC:

9
Corroboramos que se modificó correctamente el tamaño de KILOMETRAJE.
28. Ahora ingresamos un atributo nuevo a nuestra tabla, este dato se llamará
PRECIO será de tipo NUMBER con un tamaño de 15:

29. Verificamos que este nuevo dato se ingreso correctamente en nuestra tabla
CARROS:

Corroboramos que nuestro dato se ingresó correctamente a la tabla.


30. Volveremos a un atributo nulo a obligatorio, de esta manera especificamos
que este atributo forzosamente deberá llevar un dato:

Verificamos que sea no nulo nuestro atributo:

10
Resultados:
Realizar el constraint de default sobre las tablas con las que estamos trabajando:

Para realizar esto utilice el constraint y le agregue una llave primaria en


NUM_SERIE, ahora verificaremos que se haya agregado correctamente nuestra
restricción.

Como podemos ver NUM_SERIE es un campo obligatorio el cual debe llevar el carro
que deseemos ingresar a nuestra tabla.
Cómo habilitamos o deshabilitamos un CONSTRAINT
Si al crear una tabla no se consideró un CONSTRAINT como llave primaria, puede
agregarlo de la siguiente forma, siempre y cuando no esté declarado ya como llave
primaria.
ALTER TABLE obra ADD CONSTRAINT pkObra PRIMARY KEY (claveObra);
Para eliminar el CONSTRAINT realizamos:
ALTER TABLE <nombre de la tabla>
DROP CONSTRAINT pk<nombre de la tabla> CASCADE
Para demostrar esta función voy a eliminar la PRIMARY KEY que acabo de crear:

Y verificamos que nuestra restricción haya sido eliminada.

11
Efectivamente el constraint fue eliminado.
Creamos una tabla fotografía con los siguientes atributos:

Las restricciones para salario son que mínimo se pueden ingresar 5 mil pesos y
máximo 1 millón , el código para ingresar dicha restricción es la siguiente:

Para el campo oficio tendremos que ingresar 3 tipos de oficio los cuales son
Doctor, enfermera e intendente. El código para ingresar dicha restricción es el
siguiente:

Por último el curp lo haremos un atributo unique:

Nuestra tabla con sus atributos se muestra de la siguiente forma:

12
Conclusión:
La elaboración de esta práctica me gusto bastante ya que se me hace interesante y
me gusta como es que se gestiona la información utilizando las tablas, las bases de
datos me agradan ya que no solo es ingresar datos a una tabla nada mas, si no es
saber dónde colocar dicho dato, que tipo de dato se debe ingresar, el tamaño de
dato que creamos correspondiente o en el caso el tipo de dato que mejor nos
funcione, algo que sí se llegó a complicar en esta práctica es entender mejor las
llaves foráneas ya que debemos tener cuidado a la hora de utilizarlas y borrarlas, ya
que no se puede borrar tan fácilmente una tabla que esta concatenada con otra que
además tiene sus llave o llaves primarias dentro de ella, así como también
terminar de entender la función del CONSTRAINT, en la práctica lo utilizamos
mucho pero tambien me genero bastantes errores a la hora de intentar
implementarlo, supongo que con la práctica iré entendiendo cada vez más estas
restricciones, quedó satisfecho con lo que aprendí en esta práctica ya que pude
realizar los ejercicios adicionales y además jugar un poco manipulando las tablas y
sus datos.

Referencias:
[1]Bases de datos. (2019, 20 marzo). SISTEMAS INFORMATICOS. Recuperado 25 de
marzo de 2023, de
https://www.cartagena99.com/recursos/alumnos/apuntes/03b-Lenguaje%20SQL
-DDL.pdf
[2]S. (2015, 14 mayo). Utilización del ALTER TABLE en SQL. Salinasjavi’s Blog.
Recuperado 25 de marzo de 2023, de
https://salinasjavi.wordpress.com/2015/05/14/utilizacion-del-alter-table-en-sql/
[3]SQL ALTER. (2011). SQL. Recuperado 25 de marzo de 2023, de
http://sql.11sql.com/sql-alter.htm

13

También podría gustarte