el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
Investigacion alter, create y integridad referencial
1. Instituto Tecnológico
Superior de Escárcega
Ing. en Sistemas Computacionales
Taller de Base de
Datos
Investigación ALTER, CREATE e
Integridad Referencial
Melitón Guzmán
Guzmán
ISMA-5
080201007
by CriCk3T
2. En SQL, 'Alter' es un comando de la categoría DDL (Data Definition Language) y
como su nombre lo indica sirve para alterar objetos ya creados en una base de
datos, su uso principal es la modificación de tablas. Se asume que ya tienes
creada la base de datos y que sabes cómo usar el monitor (interface de línea de
comandos de MySQL), asi que esta guía es como una referencia rápida (cheat
sheet) para cuando la requieras.
Es el comando alter table el encargado. Con el atributo change modifica un
campo.
Con el atributo rename cambia de nombre una tabla
mysql>alter table personas change nombre nombre varchar(20);
En el ejemplo el nombre pasa a tener tamaño 20.
mysql>alter table personas change nombre identif
-->varchar(20);
El campo nombre pasa a llamarse identif.:
mysql>alter table personas change identif nombre
-->varchar(25) not null default "pepe";
Cambia el campo identif para que ahora sea pepe, tenga 25 caracteres de
anchura, no
admita nulos y establezca como valor por defecto, la cadena "pepe".
Cambio de nombre de la tabla:
mysql>alter table personas rename clientes;
by CriCk3T
3. Notando que lo anterior no es una lista exhaustiva. Hay otras instancias donde
ALTER TABLE se utiliza para cambiar la estructura de la tabla, tales como
cambiar la especificación de la clave primaria o agregar una restricción única para
una columna.
La sintaxis SQL para ALTER TABLE es
ALTER TABLE "nombre_tabla"
[Cambiar la especificación]
Algunos ejemplo de ALTER pero en Transact SQL:
Alter Assembly (Transact-Sql)
Alter Asymmetric Key (Transact-Sql)
Alter Authorization (Transact-Sql)
Alter Broker Priority (Transact-Sql)
Alter Certificate (Transact-Sql)
Alter Credential (Transact-Sql)
Alter Cryptographic Provider (Transact-Sql)
Alter Database (Transact-Sql)
Alter Database Audit Specification (Transact-Sql)
Alter Database Encryption Key (Transact-Sql)
Alter Endpoint (Transact-Sql)
Alter Event Session (Transact-Sql)
Alter Fulltext Catalog (Transact-Sql)
Alter Fulltext Index (Transact-Sql)
Alter Fulltext Stoplist (Transact-Sql)
Alter Function (Transact-Sql)
Alter Index (Transact-Sql)
Alter Login (Transact-Sql)
Alter Master Key (Transact-Sql)
Alter Message Type (Transact-Sql)
Alter Partition Function (Transact-Sql)
Alter Partition Scheme (Transact-Sql)
Alter Procedure (Transact-Sql)
Alter Queue (Transact-Sql)
modificar tablas
by CriCk3T
4. CREATE
Las tablas son la estructura básica donde se almacena la información en la base
de datos. Dado que en la mayoría de los casos, no hay forma de que el proveedor
de base de datos sepa con antelación cuáles son sus necesidades de
almacenamiento de datos, es probable que necesite crear tablas en la base de
datos usted mismo. Muchas herramientas de base de datos le permiten crear
tablas sin ingresar SQL, pero debido a que las tablas son los contenedores de
toda la información, es importante incluir la sintaxis CREATE TABLE en esta guía
de referencia.
Ejemplo:
La sintaxis SQL para CREATE TABLEes
CREATE TABLE "nombre_tabla"
("columna 1" "tipo_de_datos_para_columna_1",
"columna 2" "tipo_de_datos_para_columna_2",
... )
Las vistas pueden considerarse como tablas virtuales. Generalmente hablando,
una tabla tiene un conjunto de definiciones, y almacena datos físicamente. Una
vista también tiene un conjunto de definiciones, que se construye en la parte
superior de la(s) tabla(s) u otra(s) vista(s), y no almacena datos físicamente.
La sintaxis para la creación de una vista es la siguiente:
CREATE VIEW "NOMBRE_VISTA" AS "Instrucción SQL"
La “Instrucción SQL” puede ser cualquiera de las instrucciones SQL que hemos
descripto en esta guía de referencia.
El mismo principio se aplica para la obtención de datos desde una tabla de base
de datos. Sin un índice, el sistema de base de datos lee a través de toda la tabla
by CriCk3T
5. (este proceso se denomina “escaneo de tabla”) para localizar la información
deseada. Con el índice correcto en su lugar, el sistema de base de datos puede
entonces primero dirigirse al índice para encontrar de dónde obtener los datos, y
luego dirigirse a dichas ubicaciones para obtener los datos necesarios. Esto es
mucho más rápido.
Por lo tanto, generalmente se recomienda crear índices en tablas. Un índice puede
cubrir una o más columnas. La sintaxis general para la creación de un índice es:
CREATE INDEX "NOMBRE_ÍNDICE" ON "NOMBRE_TABLA"
(NOMBRE_COLUMNA)
Digamos que tenemos la siguiente tabla:
Tabla Customer
(First_Name char(50),
Last_Name char(50),
Address char(50),
City char(50),
Country char(25),
Birth_Date date)
Si deseamos crear un índice tanto en Apellido ingresaríamos,
CREATE INDEX IDX_CUSTOMER_LAST_NAME
on CUSTOMER (Last_Name)
El sistema previsto por el estándar para crear los espacios separados de nombres
consiste en usar las instrucciones SQL "CREATE SCHEMA". A menudo, dicho
sistema no se usa (o por lo menos no con los fines y el significado previstos por el
estándar), pero cada DBMS prevé un procedimiento propietario para crear una
by CriCk3T
6. base de datos. Normalmente, se amplía el lenguaje SQL introduciendo una
instrucción no prevista en el estándar: "CREATE DATABASE".
La sintaxis empleada por PostgreSQL, pero también por las DBMS más
difundidas, es la siguiente:
CREATE DATABASE nombre_base de datos
by CriCk3T
7. Integridad Referencial
La integridad referencial es una propiedad deseable en las bases de datos.
Gracias a la integridad referencial se garantiza que una entidad (fila o registro)
siempre se relaciona con otras entidades válidas, es decir, que existen en la base
de datos. Implica que en todo momento dichos datos sean correctos, sin
repeticiones innecesarias, datos perdidos y relaciones mal resueltas.
Todas las bases de datos relacionales gozan de esta propiedad gracias a que el
software gestor de base de datos vela por su cumplimiento. En cambio, las bases
de datos jerárquicas requieren que los programadores se aseguren de mantener
tal propiedad en sus programas.
Ejemplo: Cómo funciona
Supongamos una base de datos con las entidades Persona y Factura. Toda
factura corresponde a una persona y solamente una. Implica que en todo
momento dichos datos sean correctos, sin repeticiones innecesarias, datos
perdidos y relaciones mal resueltas.
Supongamos que una persona se identifica por su atributo DNI (Documento
nacional de identidad). También tendrá otros atributos como el nombre y la
dirección. La entidad Factura debe tener un atributo DNI_cliente que identifique a
quién pertenece la factura.
Por sentido común es evidente que todo valor de DNI_cliente debe corresponder
con algún valor existente del atributo DNI de la entidad Persona. Esta es la idea
intuitiva de la integridad referencial.
Existen tres tipos de integridad referencial:
1. Integridad referencial débil: si en una tupla de R todos los valores de los atributos
de K tienen un valor que no es el nulo, entonces debe existir una tupla en S que
tome esos mismos valores en los atributos de J;
2. Integridad referencial parcial: si en una tupla de R algún atributo de K toma el valor
nulo, entonces debe existir una tupla en S que tome en los atributos de J los
mismos valores que los atributos de K con valor no nulo; y
3. Integridad referencial completa: en una tupla de R todos los atributos de K deben
tener el valor nulo o bien todos tienen un valor que no es el nulo y entonces debe
existir una tupla en S que tome en los atributos de J los mismos valores que toman
los de K.
by CriCk3T
8. La integridad referencial se puede comprometer básicamente en tres situaciones:
cuando se está insertando un nuevo registro, cuando se está eliminando un
registro, y cuando se está actualizando un registro.
La integridad referencial significa que la clave externa de una tabla de referencia
siempre debe aludir a una fila válida de la tabla a la que se haga referencia. La
integridad referencial garantiza que la relación entre dos tablas permanezca
sincronizada durante las operaciones de actualización y eliminación.
Por ejemplo, supongamos que la aplicación tiene una tabla Titles y una tabla
Publishers como se muestra en la siguiente tabla.
Tabla Titles Tabla Publishers
isbn_ti (clave) id_edit (clave)
título_ti nombre_edit
añopublic_ti dir_edit
id_edit (clave externa) teléfono_edit
La integridad referencial requiere que estas dos tablas estén sincronizadas. Es
decir, la identificación de cada editorial (id_edit) de la tabla Titles también debe
aparecer en la tabla Publishers.
La aplicación no puede eliminar la fila id_edit de la tabla Publishers porque la fila
id_edit de la tabla Titles se quedaría sin una referencia. Sin embargo, se podría
permitir la eliminación de la fila id_edit de la tabla Publishers y eliminar también
todas las filas de la tabla Titles que tengan la misma identificación id_edit. Con
esta acción se mantendría la integridad referencial en ambas tablas.
by CriCk3T
9. Conclusión
Bueno como conclusión de esta investigación se puede decir que el comando de
SQL ALTER y como su nombre lo indica sirve para alterar objetos designados o
creados en una Base de Datos y su uso principal es para la modificación de las
tablas. Ahora el comando es CREATE que es usado para crear objetos de datos,
incluyendo todo desde las nuevas bases de Base de Datos y tablas para vistas y
procedimientos almacenados. Y como parte ultima dela investigación no
encontramos con la Integridad Referencial, es como una propiedad deseable y
aplicable a todas las Bases de Datos. Y que gracias a esta llamada Integridad
Referencial se dice que se garantiza que en una unidad ya sea una fila o un
registro, siempre estará relacionada con otras entidades validas dentro de la base
de datos. También implica en todo momento que estos dichos datos sean
correctos, sin repeticiones que a la vez no son necesarias, ya que pueden ser
innecesarias, los datos perdidos, unas que otras relaciones mal resueltas por el
usuario, etc.
Ala vez todas estas Bases de Datos gozan de esta prioridad, esto se debe gracias
al software que es el Gestor de Base de Datos que realiza su buen trabajo y su
cumplimiento como sistema. A diferencia de algunas Bases de Datos llamadas
Base de Datos Jerárquicas requiere que los programadores (usuarios) se
aseguren de mantener tal propiedad en sus programas. Y a todo esto nos
preguntaremos ¿Cómo funciona la Integridad Referencial en las Bases de Datos?
Muy bien supongamos que tenemos una Base de Datos con las entidades como
por ejemplo: Alumno y Matricula. Ahora bien toda Matricula corresponde a un
Alumno y solamente una. Esto implica que en todo momento estos dichos “datos”
sean correctos, sin repeticiones innecesarias, datos perdidos o relaciones mal
puestas.
by CriCk3T