Вы находитесь на странице: 1из 52

Procesamiento de base de datos: Fundamentos, Deseo e Implementacin

Capter 7

SQL para la construccin 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 cmo 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 cmo se utiliza SQL en un programa de aplicacin. Entender cmo crear y utilizar desencadenadores trigger. Entender cmo 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 pequea galera de arte que ha estado en el negocio durante 30 aos. Vende arte contemporneo europeo y norteamericano. View Ridge tiene un propietario, vendedores de tres y dos trabajadores. View Ridge posee todo el arte que vende; no tiene ningn artculo en forma de envo.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 7-3

Requisitos de la aplicacin
View Ridge requisitos de la aplicacin: Realizar un seguimiento de los clientes y de los artista. Grabar las compras de la Galera Grabar las compras de arte de los clientes. Lista de los artistas y obras que han aparecido en la Galera. Informar qu tan rpido han vendido obras de un artista y en qu margen. Mostrar el inventario actual en una pgina Web.

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

7-4

Diseo 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

Creacin del banco de datos

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

7-7

CREACIN DE LA TABLA
CREATE TABLE instruccin utilizada para la creacin de relaciones. Cada columna se describe con tres partes: column name, data type, y optional constraints. Ejemplo:

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

7-8

Tipos de datos:
SQL Server 2008

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

7-9

Tipos de datos :
Oracle Database 11g

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

7-10

Tipos de datos :
MySQL 5.1 Tipos de datos I

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

7-11

Tipos de datos :
MySQL 5.1 Tipos de datos II

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

7-12

Restricciones Constraints
Las restricciones Constraints se pueden definir dentro de las instrucciones de la creacin de las trablas CREATE TABLE, o se pueden aadir a la tabla despus que la tabla es creada utilizando la instruccin ALTER. 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 - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall

7-13

Creacin de Relaciones

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

7-14

Implementacin de Cardinalidades

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

7-15

Valores por defecto y restricciones de datos Default Values and Data Constraints

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

7-16

SQL para las restrcciones SQL for Constraints

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

7-17

Instruccin de ALTER
ALTER instruccin que permite cambiar la estructura de la tabla, propiedades, o las restricciones despus 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;

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

7-18

Aadir y eliminar columnas


La siguiente declaracin 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 declaracin:


ALTER TABLE CUSTOMER DROP COLUMN MyColumn;

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

7-19

Agregar y eliminar las restricciones


ALTER puede utilizarse para agregar una restriccin de la siguiente forma :
ALTER TABLE CUSTOMER ADD CONSTRAINT MyConstraint CHECK ([Name] NOT IN ('Robert No Pay'));

ALTER se puede utilizar para eliminar una restriccin:


ALTER TABLE CUSTOMER DROP CONSTRAINT MyConstraint;

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

7-20

Eliminacin de Tablas
SQL eliminacin de tabla:
DROP TABLE TRANS;

Si no hay restriccin:
ALTER TABLE CUSTOMER_ARTIST_INT DROP CONSTRAINT Customer_Artist_Int_CustomerFK; ALTER TABLE [TRANSACTION] DROP CONSTRAINT TransactionCustomerFK; DROP TABLE CUSTOMER;

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

7-21

SQL DMLINSERT
Comando de INSERT:
INSERT INTO ARTIST ([Name], Nationality, DateOfBirth, DateDeceased) VALUES ('Tamayo', 'Mexican', 1927, 1998);

Insertar un Bulk INSERT:


INSERT INTO ARTIST ([Name], Nationality, DateOfBirth) SELECT [Name], Nationality, Birthdate FROM IMPORTED_ARTIST;

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

7-22

SQL DMLUPDATE
Comando de UPDATE:
UPDATE SET WHERE CUSTOMER City = 'New York City' CustomerID = 1000;

Bulk UPDATE:
UPDATE SET WHERE CUSTOMER AreaCode = '333' City = 'Denver';

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

7-23

SQL DMLDELETE
Comando de DELETE:
DELETE WHERE FROM CUSTOMER CustomerID = 1000;

Si omite la clusula WHERE, eliminar todas las filas de la tabla.

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

7-24

JOIN ON Syntax
JOIN ON syntax:
SELECT CUSTOMER.Name, ARTIST.Name FROM CUSTOMER JOIN CUSTOMER_ARTIST_INT ON CUSTOMER.CustomerID = CUSTOMER_ARTIST_INT.CustomerID JOIN ARTIST ON CUSTOMER_ARTIST_INT.ArtistID = ARTIST.ArtistID;

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

7-25

Utilizacin Aliases
Utilizacin de aliases:
SELECT FROM C.Name, A.Name CUSTOMER AS C JOIN CUSTOMER_ARTIST_INT AS CI C.CustomerID = CI.CustomerID JOIN ARTIST AS A ON CI.ArtistID = A.ArtistID;

ON

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

7-26

VRG DataCUSTOMER I

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

7-27

VRG DataCUSTOMER II

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

7-28

VRG DataARTIST

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

7-29

VRG Data
CUSTOMER_ARTIST_INT

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

7-30

VRG DataWORK I

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

7-31

VRG DataWORK II

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

7-32

VRG DataTRANS I

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

7-33

VRG DataTRANS II

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

7-34

Outer Joins
Left Outer Join:
SELECT
FROM

ON

C.LastName, C.FirstName, A.LastName AS ArtistName CUSTOMER C LEFT JOIN CUSTOMER_ARTIST_INT CI C.CustomerID = CI.CustomerID LEFT JOIN ARTIST A ON CI.ArtistID = A.ArtistID;

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

7-35

Resultados de Outer Join

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

7-36

Vistas de SQL
SQL view es una tabla virtual que est hecha de otras tablas o vistas. No tiene ningn dato propio, pero obtiene los datos de las tablas de otras vistas. SELECT las declaraciones se utilizan para definir los puntos de vista :
Una definicin de vista no puede incluir una clusula ORDER BY.

SQL las vistas son un subconjunto de los puntos de vista externos :


Se pueden utilizar slo para las vistas exteriores que implican un multivalued path mediante el esquema.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 7-37

SQL Views

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

7-38

CREATE VIEW Command


Creacin del comando de view CREATE VIEW:
CREATE VIEW CustomerNameView AS SELECT LastName AS CustomerLastName, FirstName AS CustomerFirstName, FROM CUSTOMER;

Resultados:
SELECT FROM ORDER BY * CustomerNameView CustomerLastName, CustomerFirstName;
7-39

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

Vistas que pueden ser actualizadas

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

7-40

Incrustar en el cdigo de programa de SQL Embedding SQL in Program Code


SQL puede ser incrustado en desencadenadores, procedimientos almacenados y cdigo de programa. Problema: asignacin de columnas de la tabla SQL con variables de programa. Solucin: programacin orientada a objetos, PL/SQL. Problema: paradigm mismatch between SQL and application programming language:
SQL statements return sets of rows; an application works on one row at a time.

Solucin: proceso de SQL resultado es un pseudofiles.


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

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. Tres tipos de trigger: BEFORE, INSTEAD OF, and AFTER:
Cada tipo puede ser declaradas para Insert, Update y elimine. Lo que resulta en un total de nueve tipos de desencadenador.

Oracle acepta todos los tipos de nueve desencadenador. SQL Server acepta sies de los tipos de trigger
(only for INSTEAD OF and AFTER triggers).
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 7-42

Triggers II

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

7-43

Firing Triggers
Cuando un desencadenador se activa, el DBMS proporciona:
Valores antiguos y nuevos para la actualizacin Nuevos valores para las inserciones Antiguos valores para eliminaciones

La forma en que se suministran los valores depende del producto DBMS. Las aplicaciones de Trigger incluyen:
Proporcionar valores predeterminados. Hacer cumplir las restricciones de datos. Actualizacin de puntos de vista.
Realizacin de acciones de integridad referencial, referential integrity
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 7-44

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

7-45

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

7-46

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

7-47

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, se puede escribir en PL/SQL o Java. En SQL Server, se puede escribir en TRANSACT-SQL.

Los procedimientos almacenados pueden recibir parmetros de entrada y pueden devolver resultados. Pueden llamar a procedimientos almacenados desde:
Programas escritos en lenguajes estndar , e.g., Java, C#. Lenguajes Scripting, e.g., JavaScript, VBScript. SQL command prompt, e.g., SQL Plus, Query Analyzer.
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 7-48

Ventajas de procedimiento almacenado


Una mayor seguridad, como procedimientos almacenados, se guardan en el servidor de la base de datos. Disminucin del trfico de red. SQL puede ser optimizado por el compilador del DBMS. El compartir cdigos resulta en:
Menos trabajo Procesamiento estandarizado Especilizacin entre los desarrolladores
KROENKE AND AUER - DATABASE PROCESSING, 11th Edition 2010 Pearson Prentice Hall 7-49

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

7-50

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

7-51

Triggers vs. Stored Procedures

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

7-52

Вам также может понравиться