Está en la página 1de 52

Procesamiento de base de datos: Fundamentos, Deseño e Implementación

Capíter 7

SQL para la construcción de la base de datos y procesamiento de las aplicaciones
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition © 2010 Pearson Prentice Hall 7-1

Objetivos
• Crear y administrar estructuras de tabla utilizando las instrucciones SQL. • Comprender la integridad referencial y cómo se implementan acciones en las sentencias de SQL. • Crear y utilizar las restricciones SQL. • Comprender varios usos para las vistas SQL. • Utilizar las instrucciones SQL para crear y manipular vistas. • Comprender cómo se utiliza SQL en un programa de aplicación. • Entender cómo crear y utilizar desencadenadores “trigger”. • Entender cómo crear y utilizar procedimientos almacenados.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition © 2010 Pearson Prentice Hall

7-2

Galeria “View Ridge”
• View Ridge Gallery es una pequeña galería de arte que ha estado en el negocio durante 30 años. • Vende arte contemporáneo europeo y norteamericano. • View Ridge tiene un propietario, vendedores de tres y dos trabajadores. • View Ridge posee todo el arte que vende; no tiene ningún artículo en forma de envío.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition © 2010 Pearson Prentice Hall 7-3

Requisitos de la aplicación
• “View Ridge” requisitos de la aplicación: – Realizar un seguimiento de los clientes y de los artista. – Grabar las compras de la Galería – Grabar las compras de arte de los clientes. – Lista de los artistas y obras que han aparecido en la Galería. – Informar qué tan rápido han vendido obras de un artista y en qué margen. – Mostrar el inventario actual en una página Web.

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition © 2010 Pearson Prentice Hall

7-4

Diseño del baco de datos de “View Ridge Gallery”

KROENKE AND AUER - DATABASE PROCESSING, 11th Edition © 2010 Pearson Prentice Hall

7-5

SQL DDL yDML KROENKE AND AUER .DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-6 .

Creación del banco de datos KROENKE AND AUER .DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-7 .

• Cada columna se describe con tres partes: column name.CREACIÓN DE LA TABLA • CREATE TABLE instrucción utilizada para la creación de relaciones. y optional constraints. 11th Edition © 2010 Pearson Prentice Hall 7-8 .DATABASE PROCESSING. data type. • Ejemplo: KROENKE AND AUER .

DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-9 .Tipos de datos: SQL Server 2008 KROENKE AND AUER .

Tipos de datos : Oracle Database 11g KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-10 .DATABASE PROCESSING.

1 Tipos de datos I KROENKE AND AUER .Tipos de datos : MySQL 5.DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-11 .

11th Edition © 2010 Pearson Prentice Hall 7-12 .DATABASE PROCESSING.1 Tipos de datos II KROENKE AND AUER .Tipos de datos : MySQL 5.

o se pueden añadir a la tabla después que la tabla es creada utilizando la instrucción “ALTER”.Restricciones “Constraints” • Las restricciones “Constraints” se pueden definir dentro de las instrucciones de la creación de las trablas “CREATE TABLE”. • Cinco tipos de restricciones: – PRIMARY KEY – UNIQUE • no puede tener valores nulos “null values” • puede tener valores nulos “null values” – NULL/NOT NULL – FOREIGN KEY – CHECK KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-13 .DATABASE PROCESSING.

11th Edition © 2010 Pearson Prentice Hall 7-14 .Creación de Relaciones KROENKE AND AUER .DATABASE PROCESSING.

DATABASE PROCESSING.Implementación de Cardinalidades KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-15 .

Valores por defecto y restricciones de datos “Default Values and Data Constraints” KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-16 .DATABASE PROCESSING.

11th Edition © 2010 Pearson Prentice Hall 7-17 .SQL para las restrcciones “SQL for Constraints” KROENKE AND AUER .DATABASE PROCESSING.

KROENKE AND AUER .DATABASE PROCESSING. propiedades. o las restricciones después de haber creado la tabla. • Ejemplo: ALTER TABLE ASSIGNMENT ADD CONSTRAINT EmployeeFK FOREIGN KEY (EmployeeNumber) REFERENCES EMPLOYEE (EmployeeNumber) ON UPDATE CASCADE ON DELETE NO ACTION.Instrucción de ALTER • ALTER instrucción que permite cambiar la estructura de la tabla. 11th Edition © 2010 Pearson Prentice Hall 7-18 .

11th Edition © 2010 Pearson Prentice Hall 7-19 .DATABASE PROCESSING. KROENKE AND AUER .Añadir y eliminar columnas • La siguiente declaración agregará una columna denominada “MyColumn” a la tabla “CUSTOMER”: ALTER TABLE CUSTOMER ADD MyColumn Char(5) NULL. • Se puede eliminar una columna existente con la declaración: ALTER TABLE CUSTOMER DROP COLUMN MyColumn.

• ALTER se puede utilizar para eliminar una restricción: ALTER TABLE CUSTOMER DROP CONSTRAINT MyConstraint. KROENKE AND AUER .DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-20 .Agregar y eliminar las restricciones • “ALTER” puede utilizarse para agregar una restricción de la siguiente forma : ALTER TABLE CUSTOMER ADD CONSTRAINT MyConstraint CHECK ([Name] NOT IN ('Robert No Pay')).

DROP TABLE CUSTOMER. 11th Edition © 2010 Pearson Prentice Hall 7-21 . KROENKE AND AUER .DATABASE PROCESSING. ALTER TABLE [TRANSACTION] DROP CONSTRAINT TransactionCustomerFK.Eliminación de Tablas • SQL eliminación de tabla: DROP TABLE TRANS. • Si no hay restricción: ALTER TABLE CUSTOMER_ARTIST_INT DROP CONSTRAINT Customer_Artist_Int_CustomerFK.

KROENKE AND AUER . Nationality. Nationality. 1927.SQL DML—INSERT • Comando de “INSERT”: INSERT INTO ARTIST ([Name]. DateOfBirth. Birthdate FROM IMPORTED_ARTIST.DATABASE PROCESSING. DateOfBirth) SELECT [Name]. 11th Edition © 2010 Pearson Prentice Hall 7-22 . • Insertar un “Bulk” INSERT: INSERT INTO ARTIST ([Name]. DateDeceased) VALUES ('Tamayo'. Nationality. 'Mexican'. 1998).

SQL DML—UPDATE • Comando de “UPDATE”: UPDATE SET WHERE CUSTOMER City = 'New York City' CustomerID = 1000. • “Bulk UPDATE”: UPDATE SET WHERE CUSTOMER AreaCode = '333' City = 'Denver'. 11th Edition © 2010 Pearson Prentice Hall 7-23 .DATABASE PROCESSING. KROENKE AND AUER .

eliminará todas las filas de la tabla. KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-24 .SQL DML—DELETE • Comando de “DELETE”: DELETE WHERE FROM CUSTOMER CustomerID = 1000.DATABASE PROCESSING. • Si omite la cláusula WHERE.

CustomerID JOIN ARTIST ON CUSTOMER_ARTIST_INT. 11th Edition © 2010 Pearson Prentice Hall 7-25 .ArtistID = ARTIST.CustomerID = CUSTOMER_ARTIST_INT.JOIN ON Syntax • “JOIN ON syntax”: SELECT CUSTOMER.Name FROM CUSTOMER JOIN CUSTOMER_ARTIST_INT ON CUSTOMER. ARTIST.Name. KROENKE AND AUER .ArtistID.DATABASE PROCESSING.

ArtistID = A. A. 11th Edition © 2010 Pearson Prentice Hall 7-26 .ArtistID.Name CUSTOMER AS C JOIN CUSTOMER_ARTIST_INT AS CI C.Utilización “Aliases” • Utilización de “aliases”: SELECT FROM C. ON KROENKE AND AUER .DATABASE PROCESSING.CustomerID = CI.Name.CustomerID JOIN ARTIST AS A ON CI.

DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-27 .VRG Data—CUSTOMER I KROENKE AND AUER .

DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-28 .VRG Data—CUSTOMER II KROENKE AND AUER .

DATABASE PROCESSING.VRG Data—ARTIST KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-29 .

DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-30 .VRG Data CUSTOMER_ARTIST_INT KROENKE AND AUER .

11th Edition © 2010 Pearson Prentice Hall 7-31 .VRG Data—WORK I KROENKE AND AUER .DATABASE PROCESSING.

DATABASE PROCESSING.VRG Data—WORK II KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-32 .

VRG Data—TRANS I KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-33 .DATABASE PROCESSING.

DATABASE PROCESSING.VRG Data—TRANS II KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-34 .

C.CustomerID = CI.Outer Joins • Left Outer Join: SELECT FROM ON C.LastName AS ArtistName CUSTOMER C LEFT JOIN CUSTOMER_ARTIST_INT CI C.ArtistID = A. 11th Edition © 2010 Pearson Prentice Hall 7-35 .FirstName. KROENKE AND AUER .ArtistID.CustomerID LEFT JOIN ARTIST A ON CI. A.DATABASE PROCESSING.LastName.

Resultados de “Outer Join” KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-36 .DATABASE PROCESSING.

pero obtiene los datos de las tablas de otras vistas. • No tiene ningún dato propio. KROENKE AND AUER . • “SELECT” las declaraciones se utilizan para definir los puntos de vista : – Una definición de vista no puede incluir una cláusula ORDER BY.DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-37 . • SQL las vistas son un subconjunto de los puntos de vista externos : – Se pueden utilizar sólo para las vistas exteriores que implican un “multivalued path” mediante el esquema.Vistas de SQL • SQL view es una tabla virtual que está hecha de otras tablas o vistas.

DATABASE PROCESSING.SQL Views KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-38 .

CustomerFirstName. FirstName AS CustomerFirstName. 7-39 KROENKE AND AUER .CREATE VIEW Command • Creación del comando de view “CREATE VIEW”: CREATE VIEW CustomerNameView AS SELECT LastName AS CustomerLastName. FROM CUSTOMER.DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall . • Resultados: SELECT FROM ORDER BY * CustomerNameView CustomerLastName.

Vistas que pueden ser actualizadas KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-40 .DATABASE PROCESSING.

PL/SQL. an application works on one row at a time”. • Problema: asignación de columnas de la tabla SQL con variables de programa.Incrustar en el código de programa de SQL “Embedding SQL in Program Code” • SQL puede ser incrustado en desencadenadores. • Solución: programación orientada a objetos. 11th Edition © 2010 Pearson Prentice Hall 7-41 . KROENKE AND AUER . • Problema: “paradigm mismatch between SQL and application programming language”: – SQL “statements return sets of rows. • Solución: proceso de SQL resultado es un “pseudofiles”.DATABASE PROCESSING. procedimientos almacenados y código de programa.

• Tres tipos de “trigger: BEFORE. Update y elimine. • “Oracle” acepta todos los tipos de nueve desencadenador.DATABASE PROCESSING. • SQL Server acepta sies de los tipos de “trigger” – (only for INSTEAD OF and AFTER triggers).Triggers I • Un “trigger” es un programa almacenado que es ejecutado por el DBMS cada vez que se produce un evento especificado en una tabla especificada o una vista. INSTEAD OF. and AFTER: – Cada tipo puede ser declaradas para Insert. 11th Edition © 2010 Pearson Prentice Hall 7-42 . – Lo que resulta en un total de nueve tipos de desencadenador. KROENKE AND AUER .

DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-43 .Triggers II KROENKE AND AUER .

• Las aplicaciones de “Trigger” incluyen: – Proporcionar valores predeterminados. “referential integrity “ KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-44 .DATABASE PROCESSING. – Hacer cumplir las restricciones de datos. – Actualización de puntos de vista. • Realización de acciones de integridad referencial. el DBMS proporciona: – Valores antiguos y nuevos para la actualización – Nuevos valores para las inserciones – Antiguos valores para eliminaciones • La forma en que se suministran los valores depende del producto DBMS.“Firing Triggers” • Cuando un desencadenador se activa.

11th Edition © 2010 Pearson Prentice Hall 7-45 .KROENKE AND AUER .DATABASE PROCESSING.

DATABASE PROCESSING. 11th Edition © 2010 Pearson Prentice Hall 7-46 .KROENKE AND AUER .

11th Edition © 2010 Pearson Prentice Hall 7-47 .DATABASE PROCESSING.KROENKE AND AUER .

Query Analyzer. • Los procedimientos almacenados pueden recibir parámetros de entrada y pueden devolver resultados. JavaScript. KROENKE AND AUER .g. se puede escribir en PL/SQL o Java. e. SQL Plus.Procedimiento de almacenamiento • Un procedimiento de almacenamiento es “stored procedure” es un programa que se almacena en la base de datos y se compila cuando se utiliza: – En Oracle. • Pueden llamar a procedimientos almacenados desde: – Programas escritos en lenguajes estándar . VBScript. – SQL command prompt..g. se puede escribir en TRANSACT-SQL.. Java. 11th Edition © 2010 Pearson Prentice Hall 7-48 ..g. – Lenguajes “Scripting”. e. – En SQL Server. e.DATABASE PROCESSING. C#.

• Disminución del tráfico de red.Ventajas de procedimiento almacenado • Una mayor seguridad. • SQL puede ser optimizado por el compilador del DBMS.DATABASE PROCESSING. se guardan en el servidor de la base de datos. como procedimientos almacenados. • El compartir códigos resulta en: – Menos trabajo – Procesamiento estandarizado – Especilización entre los desarrolladores KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-49 .

11th Edition © 2010 Pearson Prentice Hall 7-50 .DATABASE PROCESSING.KROENKE AND AUER .

DATABASE PROCESSING.KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-51 .

DATABASE PROCESSING. Stored Procedures” KROENKE AND AUER . 11th Edition © 2010 Pearson Prentice Hall 7-52 .“Triggers vs.