• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
POOABD (POO Aplicada a B Datos) - RDBMS parte 2
 

POOABD (POO Aplicada a B Datos) - RDBMS parte 2

on

  • 292 views

Ahora, que ya hemos encarado el mundo de los Sistemas de Bases de Datos Relacionales desde un sustento teórico práctico, lo que haremos es seguir los pasos necesarios para crear un Sistema de Bases ...

Ahora, que ya hemos encarado el mundo de los Sistemas de Bases de Datos Relacionales desde un sustento teórico práctico, lo que haremos es seguir los pasos necesarios para crear un Sistema de Bases de Datos relacional físico. Para ello utilizaremos dos DBMS que actualmente son muy utilizados: MySQL y SQL Server Express.
En esta parte se abordan los siguientes temas:
1. SQL (Lenguaje de Consultas Estructurado). Concepto y Sintaxis. Tipos de Lenguaje SQL: DML y DDL.
2. SQL – DML: Sentencia SELECT: básica, con proyección, con restricción y mixta; distintos casos sobre una tabla o más tablas. Utilización de cláusulas para ordenamiento y agrupamiento. Sentencia INSERT, Sentencia UPDATE y Sentencia DELETE.
3. SQL – DDL: Sentencias CREATE, ALTER, RENAME y DROP aplicadas a Tablas y Vistas.

Statistics

Views

Total Views
292
Views on SlideShare
292
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    POOABD (POO Aplicada a B Datos) - RDBMS parte 2 POOABD (POO Aplicada a B Datos) - RDBMS parte 2 Document Transcript

    • PROGRAMACIÓN ORIENTADA A OBJETOS PROGRAMACIÓN ORIENTADA A OBJETOS APLICADA A BASES DE DATOS APLICADA A BASES DE DATOS Por LAURA NOUSSAN LETTRY SISTEMAS DE BASES DE DATOS RELACIONALES Parte 2 Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercialNoDerivs 3.0 Unported
    • POO APLICADA A BASES DE DATOS ÍNDICE SISTEMAS DE BASES DE DATOS RELACIONALES – PARTE 2 Introducción 1. SQL (Lenguaje de Consultas Estructurado). Concepto y Sintaxis. Tipos de 1 Lenguaje SQL: DML y DDL. 2. SQL – DML: Sentencia SELECT: básica, con proyección, con restricción y mixta; distintos casos sobre una tabla o más tablas. Utilización de cláusulas para ordenamiento y agrupamiento. Sentencia INSERT, Sentencia UPDATE y Sentencia DELETE. 3. SQL – DDL: Sentencias CREATE, ALTER, RENAME y DROP aplicadas a Tablas y Vistas. 2 11 FUENTES Bibliográficas Consultadas 1. Ayuda en línea MySQL Community Edition 2. Ayuda en línea SQL Server y Libros en Pantalla BIBLIOGRAFÍA para el Alumno 1. NOUSSAN LETTRY, Laura y otros, Secuencia Didáctica de Comandos SQL Ejemplos y Resultados (Cátedra de Gestión de Datos, 3º Año, Ingeniería en Sistemas de Información UTN – FRM) 2. NOUSSAN LETTRY, Laura, Conexiones JDBC con MySQL y SQL Server (Mendoza, 2013) (*) 3. BrowserSQL versión 3.1 y su Tutorial 4. MySQL Community Edition y WorkBench 5. SQL Server Express Edition ACTIVIDADES Unidad 1 Parte 2 Tareas Lectura, trabajos, prácticas propuestas en el Website de la Materia. (*): En el Website de la materia: http://www.lnoussanl.com.ar/java&bd http://www.lnoussanl.com.ar/javabd/
    • POO APLICADA A BASES DE DATOS SISTEMAS DE BASES DE DATOS RELACIONALES – PARTE 2 INTRODUCCIÓN Ahora, que ya hemos encarado el mundo de los Sistemas de Bases de Datos Relacionales desde un sustento teórico práctico, lo que haremos es seguir los pasos necesarios para crear un Sistema de Bases de Datos relacional físico. Para ello utilizaremos dos DBMS que actualmente son muy utilizados: MySQL y SQL Server Express Aprenderán también que en el mundo real no siempre se siguen los estándares y que además el software, como casi todo en la vida, ambos tienen sus ventajas y desventajas; lo que es cierto también para otros RDBMS como son Oracle o DB2. Una diferencia básica puede correr sobre Sistemas Operativos distribución gratuita, utilizado en la Web. entre ambos es que MySQL es multiplataforma; es decir Sistemas Operativos basados en Windows como en basados en Linux, motivo por el cual, y por ser de bajo determinadas circunstancias, es el RDBMS más La versión SQL Server corre sobre Sistemas Operativos Windows y la versión Express por cuanto es de distribución gratuita. Para poder utilizar SQL en forma independiente del DBMS, de modo tal que nos sirva para fines didácticos, hemos utilizado un software que hemos desarrollado: BrowserSQL versión 3.1. Dicho software permite conectarse a Access, MySQL y SQL Server y está disponible para su descarga en forma gratuita juntamente con su tutorial desde nuestro sitio web: http://www.lauranoussanlettry.com.ar
    • POO APLICADA A BASES DE DATOS y SISTEMAS DE BASES DE DATOS RELACIONALES SQL. Concepto Le ttr 1- SQL (Lenguaje de Consultas Estructurado) SQL es un lenguaje de alto nivel creado para el tratamiento de datos almacenados en bases de datos relacionales. Es un lenguaje de tipo declarativo; es decir, no es procedural o imperativo, y permite trabajar con datos a nivel de conjunto, a diferencia de los lenguajes imperativos que trabajan en torno al registro individual y que requieren de lógica procedural para el tratamiento de los datos. Está basado en álgebra relacional y cálculo relacional orientado a tuplas. Sus instrucciones básicas se pueden dividir en dos grupos: an 1. DDL (Data Definition Language): conjunto de instrucciones que permiten definir tablas, índices, etc. 2. DML (Data Manipulation Language): se utilizan para actualizar información en la base de datos (insertar, eliminar o modificar filas en tablas) y para extraer información de la misma mediante consultas. ss Además de estos grupos existen otros, cuyas instrucciones permiten realizar otras operaciones aplicadas al DBMS y/o a sus bases de datos, siendo uno de los más importantes la creación de usuarios, sus roles y niveles de seguridad; que por su complejidad y extensión, exceden el desarrollo de la materia. ou Sintaxis SQL aN Toda la definición de la sintaxis y uso de SQL está incluida en estándares que van actualizándose periódicamente. Actualmente el último estándar publicado por la ISO es de 2013 (http://www.iso.org/iso/home/search.htm?qt=SQL&sort=rel&type=simple&published=on) puesto que debido a los avances tecnológicos se sigue trabajando en el lenguaje, inclusive en los OODBMS, por lo tanto no todos los papers y estándares se refieren a RDBMS. Muchos de los RDBMSs del mercado satisfacen gran parte de estándares anteriores (SQL/92, SQL/99) y otros este último estándar. Pero además, varios de los RDBMSs líderes en el mercado tales como DB2 de IBM, ORACLE, SQL Server de Microsoft y otros, tienen funcionalidades que van más allá de los estándares y, en base a estas funcionalidades, muchas veces se elaboran nuevos estándares. ur Para encarar el estudio de la sintaxis SQL se utilizará el material disponible en la bibliografía y que puede descargarse desde el sitio web: Secuencia Didáctica La Tipos de Lenguajes SQL: DML y DDL Como ya vimos, SQL se divide en dos grandes grupos de sentencias: SQL-DDL y SQL-DML, pero no son las únicas, existen otras, que no veremos aquí. Ahora ¿qué sentencias están incluidas en SQL-DDL y cuáles en SQL-DML? of. LENGUAJE SQL Pr SQL-DDL SQL-DML SENTENCIAS OBJETOS CREATE ALTER RENAME DROP SELECT (en cualquiera de sus formas) Tablas, vistas e índices INSERT UPDATE DELETE Tablas, vistas e índices Tablas y vistas Sistemas de Bases de Datos Relacionales – parte 2 pág. 1/18
    • POO APLICADA A BASES DE DATOS 2. SQL – DML: Sentencias SELECT, INSERT, UPDATE y DELETE y Por una cuestión diáctica empezaremos con las sentencias básicas que se utilizan manipular los datos de las tablas de una base de datos. Le ttr Las sentencias que utilizaremos y que mostramos en los diferentes ejemplos suponen la previa creación de los objetos, lo que se verá recién en el desarrollo de SQL-DDL. Los ejemplos se han llevado a cabo utilizando el BrowserSQL, por lo que recomendamos leer el Tutorial. Como guía, las conexiones con un controlador o driver JDBC puro se debe indicar: 1) el DBMS 2) el usuario 3) su contraseña an La cadena de conexión para el DBMS es en forma genérica así: jdbc:nombre_dbms://servidor:puerto MySQL: jdbc:mysqlL://localhost:3306/nombre_base_datos SQL Server: jdbc:sqlserver://localhost:1433;databaseName=nombre_base_datos Sentencia SELECT sobre una tabla: ou Sentencia básica ss Los puertos consignados son los que se instalan y configuran por omisión. En el caso de SQL Server la configuración del puerto y de la capa de red TCP/IP es más complicado. Recomiendo leer la bibliografía recomendada sobre configuración del DBMS. Sintaxis: SELECT * FROM tabla aN El resultado de esta sentencia es el total de los registros de la tabla Pr of. La ur Ejemplo: mostrar todos los registros o tuplas de la tabla Localidades Sistemas de Bases de Datos Relacionales – parte 2 pág. 2/18
    • La misma consulta utilizando SQL Server ou Sentencia SELECT con proyección ss an Le ttr y POO APLICADA A BASES DE DATOS Sintaxis: SELECT col1,col4,col6 FROM tabla aN El resultado de aplicar esta sentencia es que obtenemos todas las filas pero se muestran sólo las columnas indicadas. Pr of. La ur Ejemplo: mostrar el DNI, apellido y nombre de los alumnos Sistemas de Bases de Datos Relacionales – parte 2 pág. 3/18
    • POO APLICADA A BASES DE DATOS Sentencia SELECT con restricción y Sintaxis: SELECT * FROM tabla WHERE condición aN Sentencia SELECT mixta ou ss an Ejemplo: mostrar los alumnos cuya idlocalidad es igual o mayor a 2 Le ttr El resultado de aplicar la sentencia es que se devuelven sólo las filas o tuplas que coinciden con la condición. Sintaxis: SELECT col1,col4,col6 FROM tabla WHERE condición El resultado de esta sentencia es que se devuelven las tuplas que coinciden con la expresión de la condición y sólo se muestran los datos de las columnas o atributos indicados. Pr of. La ur Ejemplo: mostrar el dni, apellido, nombre de los alumnos cuyo idlocalidad es igual a 1 Sistemas de Bases de Datos Relacionales – parte 2 pág. 4/18
    • POO APLICADA A BASES DE DATOS Sentencia SELECT sobre más de una tabla Le ttr Sintaxis: SELECT tabla1.col2, tabla2.col1, tabla3.col2 FROM tabla1, tabla2, tabla3 WHERE tabla1.id_clave = tabla2.id_clave AND tabla2.id_clave = tabla3.id_clave y En este caso utilizaremos la Unión de tipo join, es decir aplicaremos las nociones teóricas vistas sobre claves primarias y foráneas. ou ss an Ejemplo: mostrar el dni, apellido, nombre, dirección y nombre de la localidad de los alumnos aN En este ejemplo la unión es de dos tablas. Así mismo hemos utilizado alias de tablas, lo cual hace mucho más fácil la escritura y también la consulta más rápida. Ejemplo: mostrar los alumnos inscriptos en las materias, indicando el nombre de la materia, el dni, Pr of. La ur el apellido y el nombre de los alumnos Notar que para que se pueda llevar a cabo la consulta es necesario unir tres tablas. Ahora, por ahí sería mejor ordenar los resultados por nombre de materia, cosa que se puede llevar a cabo con la siguiente senencia Sistemas de Bases de Datos Relacionales – parte 2 pág. 5/18
    • POO APLICADA A BASES DE DATOS … ORDER BY col1,col2 [ ASC | DESC] siendo predeterminada la Le ttr La sintaxis de esta cláusula es ordenación ascendente. y Cláusula ORDER BY Ejemplo: el mismo ejemplo anterior ordenando en forma ascendente la consulta en función del aN ou ss an nombre de la materia Pr of. La ur Si también quisiéramos ordenar por apellido: Sistemas de Bases de Datos Relacionales – parte 2 pág. 6/18
    • POO APLICADA A BASES DE DATOS Cláusula LIKE y Esta cláusula permite realizar una restricción donde la condición implica la comparación entre cadenas. Básicamente la sintaxis utiliza el carácter comodín %. Caso 1: conocer los alumnos cuyo nombre empieza con la letra M SELECT * FROM alumnos WHERE nombre LIKE ‘M%’ Le ttr Hay tres casos básicos. Tomaremos como ejemplo la tabla alumnos y el atributo nombre o el atributo apellido. aN ou ss an Las comillas indican que es una cadena y el símbolo % después de la letra M indica al DBMS que no interesa el resto de la cadena. Caso 2: conocer los alumnos cuyo apellido termina en EZ, la consulta será: Pr of. La ur SELECT * FROM alumnos WHERE apellido LIKE ‘%EZ’ Sistemas de Bases de Datos Relacionales – parte 2 pág. 7/18
    • POO APLICADA A BASES DE DATOS y Caso 3: si se quiere saber qué alumnos tienen en el apellido la CH ss an Le ttr SELECT * FROM alumnos WHERE apellido LIKE ‘%CH%’ ou Como podemos ver no hay ningún alumno que concuerde con la consulta Sentencia INSERT: aN Esta sentencia sirve para agregar registros a una tabla. La sintaxis es: Sintaxis: INSERT INTO nombreTabla (atributo1,atributo2, …, atributon) VALUES(valor_atributo1, valor_atributo2, …, valor_atributon) ur Como material complementario se distribuyen los archivos de script. Dichos archivos han seguido la secuencia lógica de inserción; esto quiere decir, que para insertar datos en las tablas tenemos que tener en cuenta el diseño lógico, en particular el MER: hay que empezar por las tablas primarias y recién después por las tablas derivadas o dependientes. La En base a nuestro modelo de datos la secuencia sería así: Tabla Localidades, Tabla Alumnos, Tabla Materias y finalmente la Tabla Notas; que es la que hemos seguido en los archivos de Scripts. También se podría haber partido de esta manera: Tabla Materias, Tabla Localidades, Tabla Alumnos y finalmente la Tabla Notas, pero nos ha parecido más didáctica la primera alternativa. Aprovecharemos la oportunidad para agregar un alumno que pueda cumplir con la condición de la consulta anterior. of. El alumno a ingresar tendrá estos datos: dni: 45200104, apellido: SANCHEZ, nombre: JUAN IGNACIO, la fecha de nacimiento: 28/12/1995, la direccion: San Luis 355, idlocalidad=1, email: jisanchez@hotmail.com y telefono: 4235444 Pr La sentencia por lo tanto es: INSERT INTO ALUMNOS(DNI, APELLIDO, NOMBRE, FECHA_NAC, EMAIL, TELEFONO, DIRECCION, IDLOCALIDAD) VALUES(45200104,'SANCHEZ','JUAN IGNACIO','1995/12/28','San Luis 355','jisanchez@hotmail.com','4235444') Sistemas de Bases de Datos Relacionales – parte 2 pág. 8/18
    • an Le ttr y POO APLICADA A BASES DE DATOS La ur aN ou ss Hemos insertado el alumno en la base de datos que tenemos en MySQL. Si se hace una consulta sobre la tabla tendremos el alumno en cuestión agregado: Notar que en la cadena de conexión, en lugar de utilizar el nombre del servidor hemos escrito localhost; o sea es lo mismo en este DBMS, por cómo está configurado. Pr of. Ahora si aplicamos el tercer caso de la sentencia con LIKE, nos debería devolver un solo registro, el que acabamos de ingresar. Sistemas de Bases de Datos Relacionales – parte 2 pág. 9/18
    • Sentencia UPDATE: ss an Le ttr y POO APLICADA A BASES DE DATOS Esta sentencia nos permite modificar uno o más registros que ya existen en la tabla. ou La sintaxis para modificar un registro en particular es: Sintaxis: aN UPDATE nombreTabla SET atributo1=nuevo_valor_atributo1, atributo3=nuevo_valor_atributo3, atributon = nuevo_valor_atributon WHERE atributo_que_esPK=valor Para modificar más de un registro implica que no nos interesa la clave primaria sino que se cumpla una condición particular con uno o más atributos. Esto lo veremos con ejemplos, ya que así es mucho más claro. Pr of. La ur Vamos a modificar un dni, que a su vez es clave primaria puesto que está mal ingresado. En teste caso también hay que tener en cuenta que si el alumno está inscripto en las materias, habrá que modificar también la tabla Notas, ya que en esta tabla dni es una clave foránea. Sistemas de Bases de Datos Relacionales – parte 2 pág. 10/18
    • POO APLICADA A BASES DE DATOS DELETE: Le ttr y La sentencia básica para eliminar un registro tiene la siguiente sintaxis: Sintaxis: DELETE FROM nombreTabla WHERE atributo_que_esPK=valor Hay que tener mucho cuidado!! Porque si nos olvidamos de establecer qué registro queremos borrar, y hacemos algo así: DELETE FROM nombreTabla ¡¡¡OJO!! Porque eliminaríamos todos los registros de la tabla. an Hay una situación particular donde no se pueden borrar los registros de la tabla. Sería el caso de la tabla Notas, que es dependiente de la Tabla Alumnos. Esto se debe al diseño lógico y físico de la base de datos, y a las normas de integridad referencial que hemos utilizado por omisión. Es así que, mientras existan alumnos, no se podrán borrar sus notas. 3. SQL – DDL: Sentencias CREATE, ALTER, DROP y RENAME ou ss Las sentencias que vamos a ver son: CREATE, ALTER, DROP y RENAME El ejemplo está basado en el diseño lógico y físico para la BD Escuela. Los mismos se han llevado a cabo utilizando el BrowserSQL así como los dos DBMS: MySQL y SQL Server, ya que ambos DBMS cuentan con un entorno visual ágil y fácil además de utilizar. En el website hay dos videos que muestran cómo ejecutar las sentencias de declaración de datos, tanto para el caso de MySQL como de SQL Server Sentencia CREATE aN Esta sentencia nos permite crear la misma base de datos, crear tablas, vistas, etc. En los ejemplos veremos la creación de la Base de Datos Escuela. CREACIÓN DE LA BASE DE DATOS CREATE nombreBD ur CREACIÓN DE TABLAS La sentencia tiene esta sintaxis: of. La CREATE nombreTabla ( atributo1 [NOT NULL][DEFAULT], atributo2 [NOT NULL][DEFAULT], … atributoN [NOT NULL][DEFAULT], CONSTRAINT nombrePK PRIMARY KEY(atributoPK), [CONSTRAINT nombreFK FOREIGN KEY(atributoFK) REFERENCES nombreTablaR (atributoPK_tablaR)]) Pr El presente ejemplo tiene por finalidad crear una tabla para usuarios. El diseño lógico me indica que la tabla usuarios debe tener dos atributos por lo menos: nom_usuario: que sería de tipo alfanumérico, con un máximo de 8 caracteres, y sería la clave primaria clave: que representaría la clave o contraseña del usuario y supondremos que el dominio es alfanumérico. Aquí lo importante es que la clave siempre tiene que tener 8 caracteres, además de ser un campo obligatorio. El diseño físico: Nom_usuario: tipo de datos: VARCHAR(8), es la clave primaria que se nombra PK_USUARIO Sistemas de Bases de Datos Relacionales – parte 2 pág. 11/18
    • POO APLICADA A BASES DE DATOS y Clave: tipo de datos: VARCHAR(8), NOT NULL y hay que establecer una restricción (CONSTRAINT) de tipo CHECK para que el usuario siempre ingrese una clave que tenga 8 caracteres y no menos o más. La ur aN ou ss an Veremos que ejecutamos la sentencia CREATE en los dos DBMS Le ttr La sentencia SQ CREATE TABLE USUARIOS(nom_usuario VARCHAR(8), clave VARCHAR(8) NOT NULL, CONSTRAINT PK_USUARIO PRIMARY KEY(nom_usuario), CONSTRAINT CHK_clave CHECK(len(clave)=8)) of. Como no da error, el CONSTRAINT CHEK funciona. Por lo que haremos dos inserciones, una correcta y otra no. Esto significa, que si funciona la restricción, sólo se debería insertar el primer INSERT y no el segundo. Pr Sin embargo se puede apreciar que nada es perfecto en el mundo real. En el caso de SQL Server se parsea la restricción CHECK y realmente está previsto por el DBMS ya que no permite realizar la segunda inserción. En cambio en MySQL pues se parsea la sentencia pero la misma es ignorada por el DBMS. Hay dos alternativas, por lo general, para solucionar este tipo de situaciones, donde lo que queremos es que el usuario no ingrese cualquier valor: en algunos casos se puede utilizar la sentencia DEFAULT (para aquellos atributos que tal vez el usuario pueda dejar en blanco y que no sean super relevantes de modo que el DBMS no largue una excepción y se pueda insertar o modificar un registro), en el caso Sistemas de Bases de Datos Relacionales – parte 2 pág. 12/18
    • POO APLICADA A BASES DE DATOS ur aN ou ss an Le ttr y planteado, en MySQL, a nivel de base de datos es usar un TRIGGER; la otra alternativa es manejar este tipo de situaciones mediante la programación de la aplicación Java. Pr of. La Podemos ver que se insertó nomás, a pesar del CHECK Sistemas de Bases de Datos Relacionales – parte 2 pág. 13/18
    • an Le ttr y POO APLICADA A BASES DE DATOS ur aN ou ss Podemos ver que la segunda sentencia no se insertó, tampoco nos avisó nada el DBMS. Si vamos al SQL Managment Studio veremos que está agregada la restricción como parte de la estructura de la tabla: La Podemos apreciar dos cosas: aparece el CHECK como restricción dentro de la estructura de la tabla y además podeos comprobar que la tabla sólo tiene un registro. Sentencia ALTER of. Sirve para modificar la estructura de un objeto, por ejemplo, una tabla. Entre los diferentes DBMS suele haber bastante diferencia en la sintaxis de esta sentencia. En el video de Creación de la Base de datos con MySQL se puede apreciar un ejemplo. Pr La sentencia es bastante complicada, pero fácil de implementar cuando de lo que se trata es de crear por ejemplo un atributo nuevo o una nueva clave. No así cuando se trata de modificar la estructura de un atributo. Vamos a modificar la tabla USUARIOS de modo que también tenga otro atributo más, es decir, el correo electrónico A este atributo lo nombraremos correo, de tipo alfanumérico con una longitud máxima de 30 caracteres y no nulo. Sistemas de Bases de Datos Relacionales – parte 2 pág. 14/18
    • POO APLICADA A BASES DE DATOS Pr of. La ur aN ou ss an Le ttr y Como podemos ver MySQL nos permite agregar la columna aunque ya tengo datos insertados en la tabla. SQL Server, no lo permite y en su lugar nos devuelve un mensaje bastante largo. Primero eliminamos todos los registros y luego aplicamos la sentencia ALTER TABLE Sistemas de Bases de Datos Relacionales – parte 2 pág. 15/18
    • POO APLICADA A BASES DE DATOS y Como se puede ver, para poder agregar la nueva columna tendríamos que eliminar todos los registros. Como esta no es una tabla que tenga derivaciones, pues es lo mejor. Es importante notar sí, que la sintaxis de la sentencia es diferente para los DBMS utilizados como ejemplo. Le ttr Sentencia RENAME Permite renombrar un objeto En el caso que quisiéramos renombrar la tabla USUARIOS, la sentencia RENAME funciona en MySQL pero no en SQL Server También funciona en otros DBMS como Oracle o DB2 La sintaxis es ur Sentencia DROP aN ou ss an Sintaxis para renombrar una tabla: RENAME TABLE nombreTAblaViejo TO nombreTAblaNuevo La Esta sentencia permite eliminar un objeto, por ejemplo, una tabla, vista, etc. Sintaxis para eliminar una tabla: DROP TABLE nombreTabla Esta sentencia se utiliza de la misma forma tanto en MySQL como en SQL Server. of. Si queremos eliminar la tabla USUARIOS, que es una tabla que no tiene relaciones, pues la sentencia que deberíamos utilizar es: DROP TABLE USUARIOS. Sin embargo, como en el caso de las inserciones, si tenemos que tener en cuenta la estructura lógica de la base de datos. Así como no podemos insertar en la tabla Notas si no tenemos datos en las tablas primarias, Alumnos y Materias; tampoco podemos eliminar la tabla Materias porque se usa en Notas; es decir, si quisiéramos eliminar todas las tablas de la base de datos pues deberíamos empezar por eliminar las tablas derivadas; es decir aquellas que utilizan referencian a otras tablas. Pr En las siguientes imágenes se muestra esta secuencia lógica, después de haber eliminado la tabla usuarios, eliminamos todas las otras: Sistemas de Bases de Datos Relacionales – parte 2 pág. 16/18
    • ss an Le ttr y POO APLICADA A BASES DE DATOS Hemos eliminado todas las tablas de la base de datos que tenemos en MySQL. Es importante notar que la secuencia de eliminación se corresponde en definitiva con el MER. Pr of. La ur aN ou Ahora vamos a hacer lo mismo en SQL Server, para lo cual, a propósito empezamos mal: queremos eliminar en primer lugar la tabla MATERIAS, nos da un error que es totalmente lógico puesto que funciona la integridad referencial: Sistemas de Bases de Datos Relacionales – parte 2 pág. 17/18
    • ss an Le ttr y POO APLICADA A BASES DE DATOS Pr of. La ur aN ou Finalmente seguimos la secuencia lógica, y el DBMS puede eliminar las tablas. Sistemas de Bases de Datos Relacionales – parte 2 pág. 18/18