GBD Diseño físico de DDBB

Documentos relacionados
BASE DE DATOS - CURSO 02/03 PRÁCTICA 2: SQL: Lenguaje de definición de datos (DDL)

Diseño físico de datos. Oracle

Creación y Gestión de Tablas. Copyright Oracle Corporation, All rights reserved.

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Acceso a bases de datos MySQL con PHP

Modulo I: Introducción Gestores de Bases De Datos

Integridad Referencial. Restricciones (constraints)

Maestría en Bioinformática. Bases de Datos y Sistemas de Información SQL: DDL. Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.

Temario. Índices simples Árboles B Hashing

ANSI SQL El lenguaje SQL...2 Componentes del lenguaje SQL...3 Tablas...7 Índices...11 Vistas...13 Consultar datos. SELECT...15

TUTORIAL SQL. Aprendiendo SQL

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

EL ENTORNO DE TRABAJO SQL ORACLE

Es un lenguaje de consulta estructurado establecido claramente como lenguaje de alto nivel estándar para sistemas de base de datos relacionales.

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ]

Grupo Kybele, Pág. 1

CHAR VARCHAR2 VARCHAR NCHAR NVARCHAR2 LONG

Sistemas de Bases de Datos II ITS / ITSB EMT CETP

CREACIÓN, SUPRESIÓN Y MODIFICACIÓN DE TABLAS.

SQL (Structured Query Language)

Constraints (Restricciones) Copyright Oracle Corporation, All rights reserved.

MANUAL BÁSICO DE MYSQL

Base de Datos LSI y PI Lic. Paola Daniela Budán Lic. Federico Rosenzvaig

TEMA 22: LENGUAJES DE MANIPULACIÓN Y DEFINICIÓN DE DATOS.

LEA ATENTAMENTE LAS PREGUNTAS Y RESUELVA CADA EJERCICIO COMO SE INDIQUE (EN CASO CONTRARIO EL EJERCICIO NO PUNTUARÁ) CADA EJERCICIO VALE UN PUNTO

TEMA 6: LENGUAJE DE DEFINICIÓN DE DATOS (LDD)

Dependiendo de las tareas, podemos clasificar las sentencias SQL en dos tipos:

El Manejador de Bases de Datos Relacionales ORACLE

LENGUAJE SQL. Bárbula, Febrero de Historia y Definición

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

SQL Los fundamentos del lenguaje

RESUMEN DEL LENGUAJE SQL

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

Para ver una copia completa de la licencia, acudir a la dirección

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

Carlos A. Olarte Ligaduras de Integridad y Restricciones sobre la BD

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Unidad II: Lenguaje de definición de datos(ddl) 2.1 Creación del esquema de la base de datos

SQL SQL. Índice. Componentes. Objetivos

A.1. Definiciones de datos en SQL

Oracle Básico PL/SQL

Bases de Datos: Structured Query Language (SQL)

Tema 33. El lenguaje SQL

Introducción a las bases de datos.

DDL (Lenguaje de manipulación de datos) : permiten crear y definir nuevas bases de datos, campos e índices.

TEMA. Sistema de Gestión de Bases de Datos. Sistemas Avanzados de Recuperación de Información (SARI)

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

Está basado en el álgebra y en el cálculo relacional.

APÉNDICE SQL (Structures Query Language)

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

Base de datos relacional

MANUAL BÁSICO DE ORACLE

3. El catálogo 26. Laboratorio de Bases de Datos

Tema 2 Modelos de Base de Datos. Profesor Luis Gmo. Zúñiga Mendoza UMCA

Diseño de bases de datos

Tema 3 Modelo relacional

Escuela : INGENIERIA INFORMATICA Y DE SISTEMAS. Docente : ING. FREDY RIVERA MONTERO

2.5.- El lenguaje estándar SQL

SQL. Orígenes y Evolución

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints

Pequeños apuntes de SQL *

SERVICIO NACIONAL DE APRENDIZAJE SENA

Gestión de la Información Práctica 1

MANUAL BÁSICO DEL LENGUAJE SQL

Crear BD en. Isis Bonet Cruz, PhD

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

TEMA 20: CONCEPTOS BÁSICOS DE SQL

Restricciones (constraints) FOREIGN KEY

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

ADMINISTRACIÓN DE BASE DE DATOS

Manual Práctico de SQL. ORIENTADO A SQL 7.0 Preparado por: Alvaro E. García alvaroegarcia@ubbi.com

Formato para prácticas de laboratorio

Lenguaje para descripción de datos

Sistema Gestor de Bases de Datos Relacionales (SGBDR), que maneja distintos tipos de datos:

Seguridad de la Información Permisos. Sistemas de Bases de Datos II - ITS EMT - CETP

Una empresa almacena la información de sus empleados en dos tablas llamadas "empleados" y "secciones". Eliminamos las tablas, si existen:

PRÁCTICA I. INTRODUCCIÓN A Oracle8

GESTORES GESTORES DE BASES DE DATOS

Oracle Express y Toad for Oracle

Structured Query Language. Práctica

MANUAL BÁSICO DEL LENGUAJE SQL

PARTE I LENGUAJE SQL. GESTION DE DATOS

BASES DE DATOS. TEMA 7. SQL. EL LENGUAJE DE CONSULTA.

1. SQL.(Structure Query Language).

SQL: LENGUAJE DE CONSULTA ESTRUCTURADO...7

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos

Administradores de Bases de Datos Studio.NET 2005 Y SQL Server Barrios

Conceptos de Bases de Datos Relacionales Triggers

- Bases de Datos - - Diseño Físico - Luis D. García

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

Iniciando con Oracle. Índice de contenido. Ingresando a Oracle. Cambiando Su Contraseña. Ingresando un Comando SQL en SQL*Plus

Bases de Datos 2. Teórico

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

Haga clic para PostgreS cambiar el estilo

MySQL y Sesiones en PHP. Área de Ingeniería Telemática

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

M. C. Gustavo Alfonso Gutiérrez Carreón

Características del lenguaje SQL

Transcripción:

GBD Diseño físico de DDBB Mª Carmen Gabarrón

Manual SQL de Oracle 10g http://download.oracle.com/docs/cd/b19306_01/server.102/b14200/index.htm

SQL SQL es el lenguaje de consulta universal para bases de datos. SQL ANSI 92 es el estándar SQL. Existen otras variantes que lo extienden como: T-SQL (Transact-SQL) y PL/SQL (Procedure Language / SQL) SQL proporciona tres conjuntos básicos de sentencias: D.M.L (lenguaje de manipulación de datos). D.D.L (Lenguaje de definición de datos). D.C.L (Lenguaje de Control de Datos).

Objetos de una base de datos. Las bases de datos están compuestas básicamente por objetos: Tablas, Vistas, Funciones, Índices, Procedimientos almacenados y Trigger Base de datos Sinónimos Triggers Tablas Vistas Índices Procedimientos almacenados Funciones

Lenguaje de Definición de Datos DDL Este lenguaje se utiliza para la definición de objetos de la base de datos. Comandos: CREATE para crear objetos ALTER para modificar la estructura de objetos DROP para eliminar objetos TRUNCATE para eliminar todos los registros de una tabla. COMMENT para agregar comentarios de un objeto al diccionario de datos RENAME para cambiar el nombre de un objeto

Lenguaje de Manipulación de Datos DML Como su nombre indica provee comandos para la manipulación de los datos, es decir, podemos seleccionar, insertar, eliminar y actualizar datos. Comandos: SELECT para consultar datos. INSERT Insertar datos. UPDATE actualizar datos. DELETE eliminar algunos o varios registros.

Lenguaje de Control de Datos DCL Este lenguaje provee comandos para manipular la seguridad de la base de datos, respecto al control de accesos y privilegios entre los usuarios. Comandos: GRANT Para otorgar privilegios a un usuario sobre un objeto. REVOKE Para quitar privilegios dados a un usuario sobre un objeto.

Tipos de datos Tipos de Datos: SQL posee varios tipos de datos para almacenar información, los tipos de datos pueden ser: Numéricos (con o sin decimales). Alfanuméricos. Fecha y Hora Lógico Además, la mayoría de gestores de BD actuales soportan el tipo: BLOB (Binary Large Object), para almacenar archivos

Tipos de datos Dependiendo de cada gestor de bases de datos, en general, se pueden tener los siguientes: Númericos Alfanúmericos Fecha Lógico BLOB Integer Char (n) Date Bit Image Numeric (n,m) Varchar (n) DateTime Text Decimal (n) Varchar2 (n) Float Number

Tipos de datos más usados en Oracle (1) Tipo de dato Varchar2 (n) Char (n) Number (p, s) Date Long Clob Descripción Caracteres de longitud variable Caracteres de longitud fija Dato numérico de longitud variable con una precisión y escala máximas de 38 Fecha y hora Caracteres de longitud variable de hasta 2 gigabytes Caracteres de hasta 4 gigabytes

Tipos de datos más usados en Oracle (2) Tipo de dato Descripción Clob Caracteres de hasta 4 gigabytes Raw Datos binarios de longitud variable con un tamaño máximo de 2.000 bytes Long Raw Datos binarios de longitud variable con un tamaño máximo de 2 gigabytes. Blob Dato binario de hasta 4 gigabytes Bfile archivo Dato binario almacenado en un fichero externo, hasta 4 gigabytes ROWID de una fila Sistema numérico de base 64 que representa la dirección única de su tabla

Nomenclatura. La mayoría de la sintaxis de SQL se basa en el estándar, Extended Backus Naur Form. Símbolo Significado < > Encierran parámetros de una orden que el usuario debe sustituir al escribir dicha orden por los valores que queramos dar a los parámetros. [ ] Indica que su contenido es opcional. { } Indica que su contenido puede repetirse una o más veces. Separador de expresiones. Se debe poner al menos uno de la lista.

Creación de tablas en Oracle. CREATE TABLE <nombre_tabla> ( <nombre_campo> <tipo_datos> {,<nombre_campo> <tipo_datos>} ) ; CREATE TABLE tbempresa ( nit varchar(150), nombre varchar(255), ubicacion varchar(255) ) ;

Creación de tablas con SQL en Oracle. CREATE TABLE <nombre_tabla> Obligatorio ( <nombre_campo> <tipo_datos (tamaño)> [null not null] [default <valor_por_defecto>] {,<nombre_campo> <tipo_datos(tamaño)> Opcional Puede repetirse [null not null] [default <valor_por_defecto>]} [, constraint <nombre> primary key (<nombre_campo>)] {, constraint <nombre> foreign key (<nombre_campo> {,<nombre_campo>}) references <tabla_referenciada> ( <nombre_campo> {,<nombre_campo>} ) } ) ;

Restricciones a tablas en Oracle. DEFAULT <Valor> Valor por defecto: Se asigna al atributo si no se especifica otro valor. NOT NULL Atributo que no admite valores NULL. PRIMARY KEY Clave o llave primaria (no admite NULL). UNIQUE Llave alternativa. CHECK (<Condición>) Comprueba que se cumple esa condición (si el atributo es no nulo).

Restricciones a tablas en Oracle. Llave externa (foránea o ajena): Debe indicarse la tabla referenciada. FOREIGN KEY (<Clave Externa>) REFERENCES Tabla>(<Atributos>) [ON DELETE {CASCADE SET NULL SET DEFAULT}] [ON UPDATE {CASCADE SET NULL SET DEFAULT}] No incluido en Oracle Si se borra la llave referenciada, se borran las tuplas que la referencian Si se actualiza la llave referenciada, se actualizan las tuplas que la referencian Si se borra/actualiza la llave referenciada, se ponen a NULL los valores que la referencian (clave Externa o ajena). Si se borra/actualiza la llave referenciada, se ponen los valores que la referencian a su valor por defecto. Oracle 10 no permite esta opción On update no incluido en Oracle

Restricciones a tablas en Oracle. La clave externa (foránea o ajena): Debe indicar la tabla referenciada. FOREIGN KEY (<Clave Externa>) REFERENCES Tabla>(<Atributos>) [ON DELETE {CASCADE SET NULL} ]

Creación de tablas. Ejemplo 1. CREATE TABLE tbautos ( matricula char(8) not null, marca varchar(255), modelo varchar(255), color varchar(255) not null, numero_kilometros numeric(14,2) default 0, constraint PK_Coches primary key (matricula) ) ;

Creación de tablas. Ejemplo 2. CREATE TABLE tbproveedor ( id numeric (10) not null, nombre varchar2 (50) not null, correo varchar2 (50), CONSTRAINT pk_tbproveedor PRIMARY KEY (id, nombre) );

Creación de tablas. Ejemplo 2.2 CREATE TABLE tbproducto ( id numeric (10) not null, tbproveedor_id numeric (10) not null, tbproveedor_nombre varchar2 (50) not null, nombre varchar2 (50) not null, cantidad numeric (10) not null, CONSTRAINT pk_tbproducto PRIMARY KEY (id, tbproveedor_id, tbproveedor_nombre), CONSTRAINT fk_tbproducto_tbproveedor FOREIGN KEY (tbproveedor_id, tbproveedor_nombre) REFERENCES tbproveedor(id, nombre) );

Creación de tablas. Ejemplo 2.3 Ejemplo ON DELETE SET NULL, ON DELETE CASCADE: CREATE TABLE dept_20 (employee_id NUMBER(4) PRIMARY KEY, last_name VARCHAR2(10), job_id VARCHAR2(9), manager_id NUMBER(4) CONSTRAINT fk_mgr REFERENCES employees ON DELETE SET NULL, hire_date DATE, salary NUMBER(7,2), ommission_pct NUMBER(7,2), department_id NUMBER(2) CONSTRAINT fk_deptno REFERENCES departments (department_id) ON DELETE CASCADE ); Si consultamos "user_constraints", en la columna "delete_rule" mostrará "cascade". select * from user_constraints

Borrado de tablas. DROP TABLE <nombre_tabla>; DROP TABLE tbproducto ;

Aclaraciones. Después de crear las tablas anteriores, cuál seria el orden de eliminación? DROP TABLE <nombre_tabla>;

Aclaraciones. Cuál es la diferencia entre char, varchar, varchar2? Char (n): Se usa para almacenar cadenas de longitud fija. Si la longitud de la cadena es menor que n, el espacio restante NO es liberado. Varchar2 (n): Se usa para almacenar cadenas de longitud variable. Si la longitud de la cadena es menor que n, el espacio restante es liberado. Varchar (n): funciona igual que varchar2; sin embargo, no es recomendado usarlo, dado que Oracle lo tiene reservado para usos futuros

Modificación de tablas con SQL en Oracle. ALTER TABLE <table_name> add [CONSTRAINT <constraint_name> FOREIGN KEY (<column1>, column2,... column_n) REFERENCES parent_table (column1, column2,... column_n)]; Permite: Añadir campos a la estructura inicial de una tabla. Añadir restricciones y referencias. Nota: para ver los atributos de una tabla, se usa el comando DESCRIBE <nombre_tabla>;

Modificación de tablas. Ejemplo 1. Veamos los campos de la tabla tbproducto antes de modificarla. DESCRIBE tbproducto; Se agregan dos campos: ALTER TABLE tbproducto ADD calidad number(10) default 4; ALTER TABLE tbproducto ADD calidad2 number(10) default 5; Veamos los campos de la tabla tbproducto después de modificarla. DESCRIBE tbproducto;

Modificación de tablas. Ejemplo 2. Veamos los campos de la tabla tbproducto antes de modificarla. DESCRIBE tbproducto; Se elimina un campo: ALTER TABLE tbproducto DROP COLUMN calidad2; Veamos los campos de la tabla tbproducto después de modificarla. DESC tbproducto;

Modificación de tablas. Ejemplo 3. Ahora se desea que el campo CALIDAD forme parte de la clave primaria de la tabla Producto. Consultar las columnas que pertenecen a la clave primaria de la tabla TBPRODUCTO. SELECT COLUMN_NAME FROM user_cons_columns ucc JOIN user_constraints uc ON ucc.constraint_name=uc.constraint_name WHERE ucc.table_name = 'TBPRODUCTO' AND uc.constraint_name = 'PK_TBPRODUCTO' ; Las tablas en rojo son del sistema.

Modificación de tablas. Ejemplo 3. Modificar la clave primaria de TBPRODUCTO. ALTER TABLE tbproducto DROP CONSTRAINT PK_TBPRODUCTO; ALTER TABLE tbproducto ADD CONSTRAINT pk_tbproducto PRIMARY KEY (id, tbproveedor_id, tbproveedor_nombre, calidad); Se comprueba si efectivamente se hizo el cambio. SELECT COLUMN_NAME FROM user_cons_columns ucc JOIN user_constraints uc ON ucc.constraint_name=uc.constraint_name WHERE ucc.table_name = 'TBPRODUCTO' AND uc.constraint_name = 'PK_TBPRODUCTO' ;

Modificación de tablas. Ejemplo 4. En la siguiente dirección pueden encontrarse más ejemplos sobre el uso de ALTER. http://www.techonthenet.com/sql/tables/alter_table.php Por ejemplo, cambiar el nombre de un campo: ALTER TABLE <table_name> RENAME COLUMN <old_name> to <new_name>;

select * from user_tables