0 evaluări0% au considerat acest document util (0 voturi)
48 vizualizări28 pagini
El documento presenta conceptos básicos sobre bases de datos relacionales. Explica que una base de datos es una colección organizada de datos que puede ser compartida por usuarios y aplicaciones. Se describen los diferentes niveles de abstracción, los tipos de datos que se pueden almacenar, y cómo el modelo relacional representa la información mediante tablas y relaciones entre ellas usando claves primarias y foráneas. También se explican brevemente los índices, restricciones de diseño y el lenguaje SQL para manipular y consultar datos.
El documento presenta conceptos básicos sobre bases de datos relacionales. Explica que una base de datos es una colección organizada de datos que puede ser compartida por usuarios y aplicaciones. Se describen los diferentes niveles de abstracción, los tipos de datos que se pueden almacenar, y cómo el modelo relacional representa la información mediante tablas y relaciones entre ellas usando claves primarias y foráneas. También se explican brevemente los índices, restricciones de diseño y el lenguaje SQL para manipular y consultar datos.
El documento presenta conceptos básicos sobre bases de datos relacionales. Explica que una base de datos es una colección organizada de datos que puede ser compartida por usuarios y aplicaciones. Se describen los diferentes niveles de abstracción, los tipos de datos que se pueden almacenar, y cómo el modelo relacional representa la información mediante tablas y relaciones entre ellas usando claves primarias y foráneas. También se explican brevemente los índices, restricciones de diseño y el lenguaje SQL para manipular y consultar datos.
Departamento de Matemtica Aplicada y Ciencias de la Computacin Universidad de Cantabria Bases de Datos Relacionales. Conceptos y consideraciones para su uso. Bases de Datos Relacionales. Conceptos y consideraciones para su uso. Marta Zorrilla Universidad de Cantabria Bases de Datos. Finalidad Bases de Datos. Finalidad Bases de Datos. Finalidad Base de Datos Base de Datos: coleccin organizada de datos, relativa a un problema concreto, que puede ser compartida por un conjunto de usuarios/aplicaciones. CONTROLAR INFORMACIN ALMACENAR CONSULTAR ACTUALIZAR DATOS RELACIONES RESTRICCIONES DATOS RELACIONES RESTRICCIONES Sistema Gestor de Bases de Datos Sistema Gestor de Bases de Datos: programa o conjunto de programas que sirve para mantener bases de datos y responder consultas sobre ellas. Marta Zorrilla Universidad de Cantabria Niveles de abstraccin Niveles de abstraccin Niveles de abstraccin Programa 1 Programa 1 Programa 2 Programa 2 Programa n Programa n Sistema Gestor de Bases de Datos (SGBD) Nivel Lgico Nivel Interno Vista A La finalidad de trabajar con tcnicas de BD es disfrutar de una visin abstracta de los datos que facilite el desarrollo y uso de aplicaciones. Marta Zorrilla Universidad de Cantabria Bases de Datos. Justificacin Bases de Datos. Bases de Datos. Justificacin Justificacin
Optimizacin en la gestin de la informacin.
Flexibilidad de adaptacin a cada problema. Control de la integridad de los datos. Garanta sobre la consistencia de la informacin. Facilidad de acceso concurrente. Independencia fsica y lgica de los datos. Seguridad ante accesos restringidos. Proteccin ante fallos del sistema. Marta Zorrilla Universidad de Cantabria Modelo Relacional I Modelo Relacional I Modelo Relacional I NOMBRE PROFESION LOCALIDAD Pedro Luis Mara Ana profesor estudiante estudiante estudiante Santander Santander Las Palmas Madrid Personal NOMBRE LOCALIDAD Luis Mara Ana Santander Las Palmas Madrid SELECT NOMBRE, LOCALIDAD FROM Personal WHERE PROFESION = estudiante Los datos se conciben agrupados en forma de tablas Cada fila establece una relacin entre un conjunto de valores Operadores generan nuevas tablas Marta Zorrilla Universidad de Cantabria Modelo Relacional II Modelo Relacional II Modelo Relacional II ENTIDAD NOMBRE POBLACION DIRECCION 0893 Santander 0059 Popular 3428 Bilbao Vizcaya 5632 Banesto BANCOS OFICINAS 0893 001 Madrid Castellana, 73 3428 022 Las Palmas Triana, 21 0893 022 Gldar R. Moreno, 3 5632 213 Oviedo Ura, 43 0893 300 Barcelona Diagonal, 435 Toda tabla tiene una columna o conjunto de columnas que permiten identificar cada una de sus filas; stas componen la llamada clave principal de la tabla. Los valores de la clave principal no se pueden repetir. Unas tablas se refieren a otras mediante vnculos de tipo jerrquico. Este vnculo de referencia entre dos tablas se establece mediante columnas de idnticos tipos de datos en las dos tablas. La referencia de una fila de una tabla a otra de la otra tabla se produce cuando ambas tienen el mismo valor. ENTIDAD CODIGO_OFICINA Marta Zorrilla Universidad de Cantabria Tipos de datos Tipos de datos Tipos de datos Tipos de datos Tipos de datos Cadena de caracteres (character string). Numrico (numeric). Fecha y hora (datetime). Objeto grande (largeobject). Otros. Cada carcter requiere un bytepara su almacenamiento. Enteros: Cortos (ocupan 2 bytes). Largos (ocupan 4 bytes). Decimales: definidos por su precisin y escala. Notacin cientfica: Simple precisin (ocupan 4 bytes). Doble precisin (ocupan 8 bytes). Diferentes opciones segn nivel de precisin. Binarylargeobject. Character largeobject. Marta Zorrilla Universidad de Cantabria ndices ndices ndices Cod_art Descripcin WRD ACC Access-97 Word-97 EXC ACC Acces-2002 Excel-2000 ... ... ARTCULOS Versin 97 97 2000 2002 ... Unidades 50 4 ... LNEAS_DE_PEDIDO Num_ped 742 742 742 ... Cod_art ACC EXC WRD ACC ... Versin 2002 2000 97 2002 ... Num_lin 1 2 3 1 ... 30 849 30 Cod_art WRD ACC EXC ACC ... Versin 97 97 2000 2002 ... ndice de unicidad Cod_art WRD ACC EXC ACC ... Versin 97 2002 2000 2002 ... ndice con repeticiones Cod_art Descripcin WRD ACC Access-97 Word-97 EXC ACC Acces-2002 Excel-2000 ... ... Num_ped Fecha_ped 742 849 10-8-2002 5-7-2002 860 11-8-2002 ... ... PEDIDOS ARTCULOS Unidades 50 4 ... LNEAS_DE_PEDIDO Versin 97 97 2000 2002 ... Num_ped 742 742 742 ... Cod_art ACC EXC WRD ACC ... Versin 2002 2000 97 2002 ... Num_lin 1 2 3 1 ... 30 849 30 Marta Zorrilla Universidad de Cantabria El problema del diseo I El problema del diseo I El problema del diseo I PROPIETARIOS: DNI LOCALES: CODIGO NOMBRE UBICACION DIRECCION SUPERFICIE PROPIETARIOS: DNI LOCALES: CODIGO NOMBRE UBICACION DIRECCION SUPERFICIE Ejemplo aclaratorio Repeticin de informacin Posibilidad de contradicciones en los datos Problemas en inserciones Prdida de informacin al borrar Repeticin de informacin Posibilidad de contradicciones en los datos Problemas en inserciones Prdida de informacin al borrar Problemas del diseo Primera alternativa DNI NOMBRE DIRECCION CODIGO UBICACION SUPERFICIE Locales_propietarios Marta Zorrilla Universidad de Cantabria El problema del diseo II El problema del diseo II El problema del diseo II Prdida de dependencias funcionales Prdida de dependencias funcionales Problemas del diseo Segunda alternativa DNI NOMBRE DIRECCION Propietarios CODIGO UBICACION SUPERFICIE Locales Marta Zorrilla Universidad de Cantabria El problema del diseo III El problema del diseo III El problema del diseo III Slo un propietario para cada local Slo un propietario para cada local Problemas del diseo Tercera alternativa DNI NOMBRE DIRECCION Propietarios CODIGO UBICACION SUPERFICIE DNI Locales Marta Zorrilla Universidad de Cantabria El problema del diseo IV El problema del diseo IV El problema del diseo IV La referencia entre tablas siempre es una relacin de 1 a n o de n a 1 Si se desea que un propietario pueda tener varios locales y, al mismo tiempo, que un local pueda se de varios propietarios, la relacin es simtrica, es de n a n y no puede ser resuelta con slo dos tablas. Para conseguirlo, es necesario introducir una tabla auxiliar que tenga relaciones de de n a 1 con las de propietarios y locales. Un propietario puede tener varios locales (n) mientras que un local slo puede ser de un propietario (1). Tercera alternativa DNI NOMBRE DIRECCION Propietarios CODIGO UBICACION SUPERFICIE DNI Locales Cuarta alternativa DNI NOMBRE DIRECCION CODIGO UBICACION SUPERFICIE CODIGO DNI Propietarios Propiedad Locales Marta Zorrilla Universidad de Cantabria El lenguaje SQL I El lenguaje SQL I El lenguaje SQL I SQL (StructuredQueryLanguage) SQL (StructuredQueryLanguage) Lenguaje declarativo de acceso a los datos. Estndar para las bases de datos relacionales. Incluye la capacidad de actuar tanto sobre la estructura de la base de datos como sobre sus propios datos. Desarrollado en el San J os ResearchCenter (IBM) Fue utilizado por primera vez en 1970. En 1986: ANSI (AmericanNational StandardsInstitute) e ISO (International StandardsOrganization) publicaron las normas SQL/ANSI y SQL-86. sta tuvo dos actualizaciones: SQL-89 y SQL-92 En la actualidad, se trabaja con el SQL:1999 (parte del SQL3) y se est elaborando el SQL4 Marta Zorrilla Universidad de Cantabria El lenguaje SQL II El lenguaje SQL II El lenguaje SQL II CREATE DATABASE GESTION; CREATE TABLE PROPIETARIOS (DNI CHAR(10) NOT NULL CONSTRAINT pk_prop PRIMARY KEY, NOMBRE CHAR(25) NOT NULL, DIRECCION CHAR(30)); CREATE TABLE LOCALES (CODIGO CHAR(5) NOT NULL CONSTRAINT pk_loc PRIMARY KEY, DNI CHAR(10) NOT NULL, UBICACION CHAR(4) NOT NULL, SUPERFICIE DEC(8,2) NOT NULL, CONSTRAINT fk_loc FOREIGN KEY ( DNI ) REFERENCES PROPIETARIOS ( DNI )); CREATE DATABASE GESTION; CREATE TABLE PROPIETARIOS (DNI CHAR(10) NOT NULL CONSTRAINT pk_prop PRIMARY KEY, NOMBRE CHAR(25) NOT NULL, DIRECCION CHAR(30)); CREATE TABLE LOCALES (CODIGO CHAR(5) NOT NULL CONSTRAINT pk_loc PRIMARY KEY, DNI CHAR(10) NOT NULL, UBICACION CHAR(4) NOT NULL, SUPERFICIE DEC(8,2) NOT NULL, CONSTRAINT fk_loc FOREIGN KEY ( DNI ) REFERENCES PROPIETARIOS ( DNI )); Definicin de datos. Ejemplo: DNI NOMBRE DIRECCION PROPIETARIOS CODIGO UBICACION SUPERFICIE DNI LOCALES Marta Zorrilla Universidad de Cantabria El lenguaje SQL III El lenguaje SQL III El lenguaje SQL III INSERT INTO PROPIETARIOS (DNI, NOMBRE, DIRECCION) VALUES (13234567R, Sanz, Luis, Gran Va 26) INSERT INTO PROPIETARIOS (DNI, NOMBRE, DIRECCION) VALUES (13234567R, Sanz, Luis, Gran Va 26) PROPIETARIOS DNI NOMBRE DIRECCION LOCALES CODIGO DNI UBICACION SUPERFICIE Insertar una nueva fila en la tabla PROPIETARIOS SELECT CODIGO, UBICACION, NOMBRE, DIRECCION FROM LOCALES, PROPIETARIOS WHERE LOCALES.DNI = PROPIETARIOS.DNI AND SUPERFICIE > 200 SELECT CODIGO, UBICACION, NOMBRE, DIRECCION FROM LOCALES, PROPIETARIOS WHERE LOCALES.DNI = PROPIETARIOS.DNI AND SUPERFICIE > 200 Encontrar los locales con superficie mayor que 200 y su propietario CODIGO UBICACION NOMBRE DIRECCION L-31 Alta 236 Sanz, Luis Gran Va 26 L-234 Bailn 46 Laso, Ana Isabel II 38 L-9 Cuesta 2 Sanz , Luis Gran Va 26 L-302 Becedo 10 Fe, Pedro Resultado UPDATE PROPIETARIOS SET DIRECCION =Alta 87 WHERE DNI = 20333444F UPDATE PROPIETARIOS SET DIRECCION =Alta 87 WHERE DNI = 20333444F Modificar la direccin del propietario cuyo D.N.I. es 20333444F DELETE FROM LOCALES WHERE CODIGO = L-234 DELETE FROM LOCALES WHERE CODIGO = L-234 Borrar el local de cdigo L-234 Manipulacin de datos. Ejemplos: Marta Zorrilla Universidad de Cantabria Otras restricciones I Otras restricciones I Otras restricciones I CREATE TABLE J UGADORES (DNI CHAR(10) NOT NULL, NOMBRE CHAR(25) NOT NULL, DIRECCION CHAR(30) NOT NULL, TELEFONO CHAR(15), SEXO CHAR(1) CHECK ( SEXO in ( M , F ) NOT NULL, FE_ALTA DATE DEFAULT today NOT NULL, ESTATURA DEC(3,2) CONSTRAINT Valor_estatura CHECK (ESTATURA >1,75) PRIMARY KEY ( DNI )); CREATE TABLE J UGADORES (DNI CHAR(10) NOT NULL, NOMBRE CHAR(25) NOT NULL, DIRECCION CHAR(30) NOT NULL, TELEFONO CHAR(15), SEXO CHAR(1) CHECK ( SEXO in ( M , F ) NOT NULL, FE_ALTA DATE DEFAULT today NOT NULL, ESTATURA DEC(3,2) CONSTRAINT Valor_estatura CHECK (ESTATURA >1,75) PRIMARY KEY ( DNI )); Otras restricciones: Otras restricciones Otras restricciones: - Valores requeridos - Dominio de valores - Valor por defecto CREATE DOMAIN Estatura DEC(3,2) CONSTRAINT Valor_estatura CHECK (Estatura >1,75) Mediante la instruccin CREATE DOMAIN se pueden definir un tipo de dato de usuario a partir de un tipo de dato estndar (no la incluyen todos los gestores) Marta Zorrilla Universidad de Cantabria Otras restricciones II Otras restricciones II Otras restricciones II Ejemplo: para cada fila de la tabla LOCALES, los valores de DNI_propietario y DNI_arrendatario no pueden ser iguales. Codigo DNI_propietario DNI_arrendatario Ubicacion Superficie DNI Nombre Direccion PERSONAS LOCALES X Reglas de negocio ALTER TABLE LOCALES WITH NOCHECK ADD CONSTRAINT CK_locales CHECK (DNI_propietario <> DNI_arrendatario) Los triggers son procesos predefinidos que entran en accin en respuesta a eventos especficos de manipulacin de datos. Codigo DNI_propietario DNI_arrendatario Ubicacion Superficie L-31 L-234 L-9 L-302 Alta 236 Bailn 46 Cuesta 2 Becedo 10 220 350 280 255 50501502 40401402 30301302 40401402 60601602 50501502 70701702 60601602 LOCALES UPDATE LOCALES SET DNI_propietario ='60601602' WHERE DNI_propietario ='40401402' Marta Zorrilla Universidad de Cantabria CREATE TRIGGER CTRL_locales ON LOCALES FOR INSERT, UPDATE AS DECLARE @numint SELECT @num=count(*) FROM inserted I WHERE I.dni_propietario=I.dni_arrendatario IF (@num>0) BEGIN RAISERROR ('El DNI del propietario no puede coincidir con el DNI del Arrendatario.', 16, 1) goto on_error END GoTo fin on_error: ROLLBACK TRANSACTION fin: CREATE TRIGGER CTRL_locales ON LOCALES FOR INSERT, UPDATE AS DECLARE @numint SELECT @num=count(*) FROM inserted I WHERE I.dni_propietario=I.dni_arrendatario IF (@num>0) BEGIN RAISERROR ('El DNI del propietario no puede coincidir con el DNI del Arrendatario.', 16, 1) goto on_error END GoTo fin on_error: ROLLBACK TRANSACTION fin: Codigo DNI_propietario DNI_arrendatario Ubicacion Superficie L-234 L-302 Bailn 46 Becedo 10 350 255 60601602 60601602 50501502 60601602 inserted UPDATE LOCALES SET DNI_propietario ='60601602' WHERE DNI_propietario ='40401402' UPDATE LOCALES SET DNI_propietario ='60601602' WHERE DNI_propietario ='40401402' Ejemplo de trigger SQL SERVER Ejemplo de Ejemplo de trigger trigger SQL SERVER SQL SERVER Marta Zorrilla Universidad de Cantabria Transacciones I Transacciones I Transacciones I BEGIN WORK INSERT INTO BANCOS( ENTIDAD, NOMBRE ) VALUES ( 3322 , BSCH ) UPDATE OFICINAS SET ENTIDAD= 3322 WHERE ENTIDAD= 0893 DELETE FROM BANCOS WHERE ENTIDAD= 0893 Si no ha habido ningn error COMMIT WORK Y si ha habido algn error ROLLBACK WORK Transaccin: conjunto de operaciones de manipulacin de datos que deben ser consideradas como una unidad. ENTIDAD NOMBRE ENTIDAD CODIGO_OFICINA POBLACION DIRECCION 0893 Santander 0059 Popular 3428 Bilbao Vizcaya 5632 Banesto BANCOS OFICINAS 0893 001 Madrid Castellana, 73 3428 022 Las Palmas Triana, 21 0893 022 Gldar R. Moreno, 3 5632 213 Oviedo Ura, 43 0893 300 Barcelona Diagonal, 435 Ejemplo: Eliminar el Banco Santander de la base de datos y asignar todas sus oficinas a una nueva entidad bancaria, el BSCH, cuyo cdigo de entidad es el 3322 Propiedades: ATOMICIDAD: todo o nada CONSISTENCIA: coherencia de los datos AISLAMIENTO: serializacin de transacciones DURABILIDAD: los cambios son permanentes Gestor de transacciones Gestor de concurrencia Marta Zorrilla Universidad de Cantabria Transacciones II Transacciones II Transacciones II Inicio de transaccin K = 1 Bloqueo de los datos afectados por la instruccin K Apunte de la instruccin en el dispositivo LOG Se puede ejecutar la instruccin K? K = n? K = K+1 Desbloqueo de datos Ejecucin de las instrucciones del dispositivo LOG Desbloqueo de datos Fin de transaccin ( con error ) Fin de transaccin ( sin error ) SI NO SI NO Marta Zorrilla Universidad de Cantabria Aplicaciones de usuario Aplicaciones de usuario Aplicaciones de usuario En el caso de Programacin Centralizada las aplicaciones de usuario residen en un solo sistema, en donde se ejecutan. El usuario accede mediante terminales remotas o mediante PCs que emulan el funcionamiento de estas terminales. El acceso a la la base de datos puede realizarse mediante: Instrucciones SQL. Utilidades de manipulacin de datos, sin escribir instruccionesSQL. Aplicaciones desarrolladas expresamente para cada caso. Mdulos de procesamiento Pantallas y ventanas stas presentan tres aspectos complementarios pero bien diferenciados: La interfaz de comunicacin con el usuario. La lgica de funcionamiento. Gestin de datos de acuerdo al esquema relacional. Mdulos de procesamiento desarrollados mediante: Lenguajes de 3 generacin (C, Cobol, etc.), con instrucciones SQL embebidas. Lenguajes de 4 generacin, 4GL (ms declarativos y orientados a datos). Marta Zorrilla Universidad de Cantabria Presentacin Presentacin (campos de pantalla) (campos de pantalla) Flujo de los datos Flujo de los datos Flujo de los datos persona.dni persona.nombre persona.direccion persona.telefono persona.dni persona.nombre persona.direccion persona.telefono variable.dni variable.nombre variable.direccion variable.telefono variable.dni variable.nombre variable.direccion variable.telefono persona.dni persona.nombre persona.direccion persona.telefono persona.dni persona.nombre persona.direccion persona.telefono 1 2 3 4 Procesamiento Procesamiento (variables) (variables) Base de Datos Base de Datos (columnas) (columnas) 1.- Lectura de campos de la pantalla 2.- Instruccin SQL (INSERT, UPDATE, DELETE, SELECT, ...) 3.- Resultado de la instruccin SQL 4.- Volcado a campos de la pantalla Marta Zorrilla Universidad de Cantabria Modelos Cliente/Servidor Modelos Cliente/Servidor Modelos Cliente/Servidor Descargar de trabajo al ordenador central. Aprovechar las capacidades de los PCs. Programacin Cliente/Servidor Gestin de datos Gestin de datos Cliente Cliente Servidor Servidor Centralizado Centralizado Presentacin Presentacin remota remota Proceso Proceso distribuido distribuido Acceso a datos Acceso a datos remotos remotos Bases de Datos Bases de Datos distribuidas distribuidas Gestin de datos Gestin de datos Gestin de datos Gestin de datos Gestin de datos Gestin de datos Gestin de datos Gestin de datos Gestin de datos Gestin de datos Procesamiento Procesamiento Procesamiento Procesamiento Procesamiento Procesamiento Procesamiento Procesamiento Presentacin Presentacin Presentacin Presentacin Presentacin Presentacin distribuida distribuida Gestin de datos Gestin de datos Procesamiento Procesamiento Procesamiento Procesamiento Presentacin Presentacin Presentacin Presentacin Procesamiento Procesamiento Presentacin Presentacin Presentacin Presentacin Presentacin Presentacin Marta Zorrilla Universidad de Cantabria Aplicaciones Middleware Protocolo de comunicaciones Hardware Datos y procesos Middleware Hardware CLIENTE SERVIDOR Protocolo de comunicaciones C/S en dos niveles C/S en dos niveles C/S en dos niveles La aplicacin del cliente ha de comunicarse con el software de gestin de datos del servidor. Necesidad de otros componentes de software que proporcionen la capacidad de interaccin en entornos que pueden ser heterogneos, el Middleware. Middleware: Todo software distribuido necesario para la interaccin entre clientes y servidores. Puede ser propietario del gestor de bases de datos que se utilice o estndar. ODBC (Open Database Connectivity) interfaz escrita en C JDBC para acceder a fuente de datos desde el lenguaje de programacin Java. DAO: Modelo de objetos para hacer uso de esta tecnologa. OLEDB acceso a cualquier fuente de datos (base de datos, hojas de clculo,...) ADO Modelo de objetos para hacer uso de esta tecnologa. Marta Zorrilla Universidad de Cantabria Presentacin Middleware Protocolo de comunicaciones Hardware Procesamiento Middleware Hardware CLIENTE SERVIDOR DE TRANSACCIONES Protocolo de comunicaciones C/S en tres niveles C/S en tres niveles C/S en tres niveles Gestin de datos Middleware Hardware SERVIDOR DE DATOS Protocolo de comunicaciones Marta Zorrilla Universidad de Cantabria Arquitectura de un sistema de bases de datos en la Web Arquitectura de un sistema de bases de datos en la Web Arquitectura de un sistema de bases de datos en la Web Tcnicas para el acceso a bases de datos en la Web: Programacin CGI La interfaz CGI permite ejecutar programas en el servidor web Se denomina CGI (interfaz de pasarela comn) al conjunto de normas que rigen la interaccin entre los servidores HTTP y un conjunto de programas especiales que se ejecutan en el servidor, destinados a procesar la informacin que envan los clientes Web y generar documentos (generalmente HTML) de forma dinmica, a partir de esa informacin y de otra almacenada del servidor. Scripts de servidor Son scripts que se ejecutan en el servidor web y, por tanto, pueden interactuar con cualquier aplicacin instalada en el mismo, y en particular con los gestores de bases de datos. Por ejemplo: ASP (Active Server Pages) de Microsoft, basadas en VBScript o J Script. J SP (J ava Server Pages) de Sun, basadas en J ava. ColdFusion de Allaire. PHP de Open Source, organismo dedicado a la difusin de programas de dominio pblico. Cada uno de ellos requiere su propio servidor de aplicaciones para el procesamiento de los scripts. Marta Zorrilla Universidad de Cantabria Procedimientos almacenados: MySQL Procedimientos almacenados: Procedimientos almacenados: MySQL MySQL delimiter // CREATE PROCEDURE upd_precio (IN ipc DECIMAL(3,1)) BEGIN UPDATE articulos SET precio= precio + (precio * ipc/100) WHERE precio is not null; END; // delimiter ; delimiter // CREATE PROCEDURE upd_precio (IN ipc DECIMAL(3,1)) BEGIN UPDATE articulos SET precio= precio + (precio * ipc/100) WHERE precio is not null; END; // delimiter ; Ejemplo: actualizar los precios de los artculos con el IPC CALL upd_precio (10.0); Marta Zorrilla Universidad de Cantabria Funciones almacenadas: MySQL Funciones almacenadas: Funciones almacenadas: MySQL MySQL delimiter // CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50) RETURN CONCAT('Hello, ',s,'!'); // delimiter ; delimiter // CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50) RETURN CONCAT('Hello, ',s,'!'); // delimiter ; Ejemplo: Saluda al usuario que se le indique SELECT hello('Marta'); Pueden ser llamadas dentro de una instruccin SQL