Tema 5. Lenguaje de Definición de Datos

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

GBD Diseño físico de DDBB

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos

Tipos de datos en SQL. SQL. DDL (Data Definition Language) CREATE DOMAIN CREATE TABLE CREATE TABLE. CREATE TABLE con restricciones de atributo

Manejo de Tablas y Llaves Foráneas

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

PL/SQL avanzado: Secuencias, triggers, cursores y subprogramas

6.1. Introducción. Guía 5. SQL.

Introducción a SQL (DDL)

(LDD) VARCHAR2 (n) : alfanumérico (hasta 240) NUMBER (n,p) : números con signo y punto decimal

Objetos de Bases de Datos

Diseño de bases de datos

Unidad6. Diseño físico de datos

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Claves, Constraints y References. Ing. Gustavo Delgado

Integridad Referencial. Restricciones (constraints)

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

Diseño de Bases de Datos y Seguridad en la Información &8562

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

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

Práctica 3: El lenguaje SQL (2ª parte). (6ª sesión).

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

Grupo Kybele, Pág. 1

Tema 4. Manipulación de datos con SQL

RESUMEN DEL LENGUAJE SQL

Sistemas de Bases de Datos II ITS / ITSB EMT CETP 2010

SQL: Lenguaje de definición de datos (DDL) (*) DBMS: DATA BASE MANAGEMENT SYSTEM. SGBD: SISTEMAS GESTOR DE BASE DE DATOS

Diseño de bases de datos Práctica-1 Definición de datos

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez

Ejercicios SQL - Definición de Datos - Solución

T07 Opciones de integridad referencial

Desarrollo Web en Entorno Servidor

Lenguaje SQL (2ª Parte) Definición de datos

Diseño físico de datos. Oracle

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

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 3: El lenguaje SQL. 2ª Parte: Definición de datos 10 DE ABRIL DE 2000

SQL Oracle 12c. Este curso le permitira saber y conocer:

Diseño Lógico Específico. Diseño Lógico Tema 13

SQL - DDL y consultas de actualización. José Muñoz Jimeno Febrero 2015

El lenguaje SQL III: Creación de bases de datos y seguridad. Introducción

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

Asignatura: Administración de Bases de Datos

FUNDAMENTOS ORACLE 12C

Modulo I: Introducción Gestores de Bases De Datos

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

- 1 - Mg. Abril Saire Peralta

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

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

D. D. L. Sistemas de Bases de Datos II EMT CETP 2016 Leonardo Carámbula

Modelo Relacional Larry Ellison:

Tema 1. Introducción a MySQL. José Muñoz Jimeno Octubre 2015

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA

Ambos conjuntos son completamente distintos: propósito, acciones,... L M D. datos

INDICE CARTAS DESCRIPTIVAS S3

Oracle Fundamentos. Programa de Estudio.

Oracle Fundamentos. Programa de Estudio.

El SQL es un lenguaje estándar de programación para el acceso a bases de datos.

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

Consultas con combinaciones

Restricciones de dominio: Conjunto de valores y de operaciones permitidas sobre ellos.

Guía práctica SQL. (c) Francisco Charte Ojeda

2. Distinguir entre los comandos SQL*Plus y las sentencias SQL. 3. Consultar la estructura de una tabla, por ejemplo emp.

Creación de Vistas. Copyright Oracle Corporation, All rights reserved.

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

Unidad III. Bases de Datos

Vistas en InformiX Sistemas de Bases de Datos II EMT CETP A/S Leonardo Carámbula

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

Triggers. BASES DE DATOS Mercedes García Merayo

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1

Objetivos: Descripción del curso. Curso: Dirigido a: INTRODUCCIÓN A SQL - ORACLE UNIVERSIDAD NACIONAL DE INGENIERÍA

T06 Definición y manipulación de datos

ÍNDICE INTRODUCCIÓN...17

Una tabla está en 5ta. Forma normal (5FN) o Forma Normal de Proyección-unión si está en 4FN y las únicas dependencias que existen son las

SQL: Lenguaje de Interrogación Estructurado

FUNDAMENTOS DE BASES DE DATOS TEMA 5

MATERIAL SOBRE SENTENCIAS SQL

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

1.4 Creación del esquema de una Base de Datos

CERTIFICADO DE PROFESIONALIDAD IFCD0112

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

SQL Básico. José Muñoz Jimeno Febrero 2015

A. Introducción. B. Los DATABASES TRIGGERS. PL/SQL en objetos de la base de datos. Oracle 11g - SQL, PL/SQL, SQL*Plus 271

Bases de Datos 1. Teórico: Structured Query Language

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL.

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

Implementación de la integridad de datos

Manejo de Tablas y Llaves Sencillas

Modelo Relacional. El modelo relacional...1 El modelo entidad relación (que vimos ayer) es un modelo conceptual que sirve

Fundamentos de Bases de Datos Facultad de Ciencias UNAM

Tablas -SQL Curso Bases de Datos. Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS

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

Base de datos Oracle: Arquitectura Oracle. Arquitectura. Marzo Luis Vinuesa Martínez

Unidad. Lenguaje SQL. (Structured Query Language)

SQL. Structured Query Language

TEMA 4: EL MODELO RELACIONAL. ESTÁTICA

Transcripción:

Tema 5 Lenguaje de Definición de Datos

Índice Tema 5 1. Creación de tablas. Restricciones 2. Consultas de creación de tablas. 3. Modificación de la estructura de una tabla. 4. Borrado de tablas. 5. Creación y uso de vistas. 6. Creación y uso de índices. 7. Uso de sinónimos.

Introducción Usaremos el lenguaje de definición de datos, también llamado DDL. Manejaremos ordenes, CREATE, ALTER Y DROP, tablas, vistas, sinónimos.. Manejaremos las restricciones, algo muy importante y útil

Creación básica de tablas Tendremos en cuenta los siguientes aspectos: Elección del NOMBRE DE TABLA, debe identificar su contenido, máximo 30 caracteres y único. No será palabra reservada Oracle. Comenzará por letra. Ej: ALUMNOS Elección de los NOMBRES DE COLUMNA, han de ser autodescriptivos. Ejs: DNI, NOMBRE. Elección de los TIPOS DE DATOS y TAMAÑOS de las columnas. Solo se usan tipos numéricos si van a realizarse operaciones aritméticas con la columna. Definición de las RESTRICCIONES necesarias: claves primarias y ajenas, columnas obligatorias, valores por defecto, rangos de valores, etc.

Sintaxis de creación básica de tablas CREATE TABLE nombre_tabla (colum_1 tipo_dato( ), colum_2 tipo_dato( ), ) ; Ejemplo: CREATE TABLE alumnos_07 (num_matri NUMBER(6), nombre VARCHAR2(15), fecha_nac DATE, direccion VARCHAR2(50) );

Vistas del diccionario de datos asociadas a las tablas USER_TABLES, información sobre tablas propiedad del usuario CAT es un sinónimo de USER_TABLES. ALL_TABLES, información sobre las tablas que son propiedad del usuario o el usuario tiene permisos sobre ellas. DBA_TABLES, información sobre todas las tablas existentes. Solo se puede consultar con privilegios de administración. La forma de consultar el diccionario de datos incluye con frecuencia el uso de filtros en el WHERE para mostrar solo la información de interés. Es importante entender el significado de las columnas de las vistas del diccionario de datos.

Restricciones. Integridad de Datos. INTEGRIDAD, los datos antes de almacenarse en BD han de ajustarse a ciertas restricciones. Las restricciones hacen que el usuario o las aplicaciones tengan menos trabajo a la hora de manipular los datos y sea Oracle el encargado de las tareas de mantenimiento de la integridad de la BD.

Restricción de clave primaria Columna o conjunto de columnas que identifican unívocamente cada fila de una tabla. Única, no nula y obligatoria. Solo se define una por tabla. Automáticamente se crea un índice que facilita el acceso a la tabla.

Restricción de clave primaria. Formatos. A nivel de columna: CREATE TABLE nombre_tabla ( ); nombrecolum_1 TIPO_DATO() [CONSTRAINT nombre_constraint] PRIMARY KEY, o bien a nivel de tabla: CREATE TABLE nombre_tabla ( colum_1 TIPO_DATO(),., [CONSTRAINT nombre_constraint] PRIMARY KEY(colum1[, ]), );

Restricción de clave ajena Formada por: Una o varias columnas asociadas a una clave primaria de otra o de la misma tabla. Se pueden definir tantas claves foráneas como sean necesarias. El valor debe ser igual a un valor de la clave referenciada: regla de integridad referencial.

Restricción de clave ajena. Formatos. A nivel de columna: La clave ajena se define en la descripción de la columna usando la palabra clave REFERENCES CREATE TABLE nombre_tabla ( column1 tipo_dato() [CONSTRAINT nombre_restriccion] REFERENCES nombre_tabla [(columna)] [ON DELETE CASCADE]. ) ;

Restricción de clave ajena. Formatos. A nivel de tabla: La clave ajena se define al final de todas las columnas usando las cláusulas FOREIGN KEY y REFERENCES. ON DELETE CASCADE, se usa para borrar las filas asociadas con claves primarias, cuando borramos las filas primarias. CREATE TABLE nombre_tabla ( column1 tipo_dato(),. [CONSTRAINT nombre_restriccion] FOREIGN KEY(columna [, columna..]) REFERENCES nombre_tabla [(columna [, columna..])] [ON DELETE CASCADE]. );

Restricción de obligatoriedad Asociada a una columna, significa que no puede tener valores nulos. CREATE TABLE nombre_tabla ( column1 tipo_dato() [CONSTRAINT nombre_restriccion] NOT NULL,. );

Restricción de valor por defecto Sirve para asignar valores por defecto a una columna, cuando no se especifica valor en la cláusula INSERT. Se pueden incluir constantes, funciones SQL y las variables UID y SYSDATE. Es el único tipo de restricción que no lleva nombre puesto que no puede ser violada. Formato: CREATE TABLE nombre_tabla ( column1 tipo_dato() DEFAULT valor_por defecto,. );

Restricción de verificación de condiciones Sirve para comprobar el cumplimiento de ciertas condiciones en los valores que puede tomar una columna. No se pueden incluir subconsultas, ni UID, SYSDATE y USER. Formato a nivel de columna: CREATE TABLE nombre_tabla ( column1 tipo_dato() [CONSTRAINT nombre_restriccion] CHECK (condicion),.. );

Restricción de verificación de condiciones Formato a nivel de tabla: CREATE TABLE nombre_tabla ( column1 tipo_dato(),. [CONSTRAINT nombre_restriccion] CHECK (condicion),.. ) ;

Restricción de unicidad Evita valores repetidos en una columna. Puede contener una o varias columnas, se crea automáticamente un índice por esa columna, admite valores NULL si no se especifica lo contrario. Formato a nivel de columna: CREATE TABLE nombre_tabla ( column1 tipo_dato() [CONSTRAINT nombre_restriccion] UNIQUE,.. );

Restricción de unicidad Formato a nivel de tabla: CREATE TABLE nombre_tabla ( column1 tipo_dato(),. [CONSTRAINT nombre_restriccion] UNIQUE (columna [,columna ]),.. );

Create Table. Restricciones a nivel de columna. CREATE TABLE nombre_tabla ( colum_1 TIPO_DATO( ) [CONSTRAINT nombre_constraint] [NOT NULL] [UNIQUE] [PRIMARY KEY] [DEFAULT valor] [REFERENCES nombre_tabla [(colum_1 [,colum_n])] [ON DELETE CASCADE]] [CHECK condicion]),. ); CREATE TABLE emple_7 (nombre VARCHAR2(25) PRIMARY KEY, edad NUMBER CHECK (edad BETWEEN 18 AND 35), cod_provincia NUMBER(2) REFERENCES PROVINCIAS ON DELETE CASCADE );

Create Table. Restricciones a nivel de tabla. CREATE TABLE nombre_tabla ( colum_1 TIPO_DATO( ),., colum_n TIPO_DATO( ), [CONSTRAINT nombre_constraint] {[UNIQUE] [PRIMARY KEY] (COLUM1, )}, [CONSTRAINT nombre_constraint] [FOREIGN KEY (COLUM, ]) REFERENCES nombre_tabla [(colum ] [ON DELETE CASCADE]], [CONSTRAINT nombre_constraint] [CHECK (condicion)],.. );

Create Table. Restricciones a nivel de tabla. Ejemplo: CREATE TABLE emple_07 (nombre VARCHAR2(25), edad NUMBER, cod_prov NUMBER(2), CONSTRAINT pk_emple_07 PRIMARY KEY(nombre), CONSTRAINT ck_edad_emple_07 CHECK(edad BETWEEN 18 AND 35), CONSTRAINT fk_emple_07 FOREIGN KEY(cod_prov) REFERENCES provincias ON DELETE CASCADE );

Create Table. Restricciones a nivel de tabla. Ejemplo: CREATE TABLE emple_07 (nombre VARCHAR2(25), edad NUMBER, cod_prov NUMBER(2), PRIMARY KEY(nombre), CHECK(edad BETWEEN 18 AND 35), FOREIGN KEY(cod_prov) REFERENCES provincias ON DELETE CASCADE ); Si no se pone nombre a las restricciones, ORACLE les asigna un nombre de forma automática. Esta práctica es totalmente desaconsejable.

Las restricciones en el Diccionario de Datos Las vistas del diccionario de datos de Oracle con información sobre restricciones definidas en tablas son las siguientes: USER_CONSTRAINTS (tablas de usuario) ALL_CONSTRAINTS (tablas a las que puede acceder el usuario) DBA_CONSTRAINTS (todas las restricciones sobre todas las tablas) Tipo de restricción: C CHECK R FOREIGN KEY P PRIMARY KEY U UNIQUE

Las restricciones en el Diccionario de Datos Para obtener una información más detallada sobre restricciones en las columnas: USER_CONS_COLUMNS (restricciones en columnas de tablas de usuario) ALL_CONS_COLUMNS (restricciones en columnas de tablas a las que puede acceder el usuario) DBA_CONS_COLUMNS ( todas las restricciones de las columnas)

Consultas de creación de tablas Se puede crear una tabla a partir de una consulta, esta tendrá la misma definición que la tabla procedente de la consulta y contendrá los mismos datos obtenidos en SELECT. Las restricciones no se crean, excepto las de valor por defecto. Formato: CREATE TABLE nombre_tabla([columna_1[, columna_n]) AS SELECT..;

Consultas de creación de tablas Ejemplos: CREATE TABLE ejemplo_as AS SELECT * FROM ejemplo; CREATE TABLE ejemplo_as(colum1,..column) AS SELECT * FROM ejemplo;

Consultas de creación de tablas Ejemplo: Crear tabla emple_depart con el nombre de cada empleado y el nombre del departamento al que pertenecen. Listar restricciones. CREATE TABLE emple_depart AS SELECT ename, dname FROM emp e, dept d WHERE e.deptno = d.deptno;

Supresión de tablas. DROP Formato: DROP TABLE [usuario.]nombre_tabla [CASCADE CONSTRAINTS]; Cada usuario puede borrar sus propias tablas. El DBA u otro usuario con privilegios de DROP ANY TABLE, podrán borrar cualquier tabla. Se borran también los índices y privilegios asociados a ellas. Las vistas y sinónimos dejan de funcionar, con lo que habría que borrarlos. CASCADE CONSTRAINTS, elimina las restricciones de integridad referencial que remitan a la clave primaria de la tabla borrada.

Supresión de tablas. TRUNCATE Elimina filas de una tabla, liberando el espacio asociado. No desaparece la definición de la tabla. Orden DDL, no genera ROLLBACK. No activa disparadores DELETE. No se puede truncar una tabla cuya clave primaria sea referenciada por una ajena, antes tendremos que desactivar las restricciones Formato: TRUNCATE TABLE [usuario.]nombre_tabla [{REUSE DROP} STORAGE];

Modificación de tablas. ALTER ALTER TABLE, nos permitirá: Añadir, modificar o eliminar columnas de una tabla. Añadir o eliminar restricciones. Activar o desactivar restricciones

Modificación de tablas. ALTER Formato: ALTER TABLE nombre_tabla {ADD (columna) [MODIFY (colum [.])] [DROP COLUMN (colum..)] [ADD CONSTRAINT restricción] [DROP CONSTRAINT restricción] [DISABLE CONSTRAINT restricción] [ENABLE CONSTRAINT restriccion] };

Añadir, modificar o eliminar columnas ADD, añadir columnas a tabla, tendremos en cuenta: Si la columna no tiene restricción NOT NULL, se puede añadir en cualquier momento. Si tiene restricción NOT NULL: 1- Se añade la columna sin restricción. 2- Se da valor a la columna en todas las filas. 3- Se añade la restricción NOT NULL

Añadir, modificar o eliminar columnas MODIFY, modifica una o más columnas existentes en una tabla. Tendremos en cuenta: 1- Se puede aumentar longitud de columna en cualquier momento. 2- Si disminuimos la longitud esta no puede ser de menor tamaño que el valor máximo almacenado. 3- Se puede aumentar o disminuir el valor de los decimales en columna NUMBER. 4- Si columna es NULL en toda la tabla, se puede modificar la longitud y el tipo de dato. 5- MODIFY NOT NULL, cuando no haya ningun valor NULO en la columna que se modifica.

Añadir, modificar o eliminar columnas DROP COLUMN, para borrar columna de tabla. Tendremos en cuenta: 1-No se pueden borrar todas las columnas de una tabla. 2-No se pueden borrar claves primarias, referenciadas por claves ajenas.

Adición y Borrado de Restricciones Se pueden añadir y borrar las restricciones: PRIMARY KEY NOT NULL FOREIGN KEY UNIQUE CHECK ALTER TABLE nombre_tabla ADD CONSTRAINT nombre_constraint; ALTER TABLE nombre_tabla DROP CONSTRAINT nombre_constraint;

Activar y Desactivar Restricciones ALTER TABLE nombre_tabla DISABLE CONSTRAINT nombre_restriccion; ALTER TABLE nombre_tabla ENABLE CONSTRAINT nombre_restriccion; Las restricciones por defecto se activan al crearlas, aunque se pueden desactivar en el momento de crearlas. ALTER TABLE emp ADD CONSTRAINT UNI_ename UNIQUE (ename) DISABLE;

Creación y uso de vistas Una vista es una tabla lógica que permite acceder a los datos de 1 o varias tablas. Es una sentencia SQL. Se usan para acceder a los datos de una consulta compleja. Si se borra la tabla se borra la vista relacionada con la misma. CREATE OR REPLACE VIEW nombre_vista [(colum [,)] AS consulta [WITH {CHECK OPTION READ ONLY} CONSTRAINT nombre-restriccion];

Creación y uso de vistas WITH CHECK OPTION, SQL comprueba que cada INSERT o UPDATE sobre la vista satisfaga los criterios sobre definición de la vista. WITH READ ONLY, solo se puede hacer SELECT de la vista. CONSTRAINT nombre_restriccion, especifica el nombre de la restriccion con WITH CHECK OPTION o WITH READ ONLY.

Creación y uso de vistas Crea una vista con los apellidos, oficios y salario de los empleados del dpto 30. CREATE OR REPLACE VIEW v_depto_30 AS SELECT ename, job, sal FROM emp WHERE deptno = 30;

Creación y uso de vistas. Diccionario de Datos. USER_VIEWS, vistas del usuario ALL_VIEWS, todas las vistas. Nombre de las vistas y sus textos: SELECT VIEW_NAME, TEXT FROM USER_VIEWS;

Vistas complejas Se definen mediante consultas sobre más de una tabla, agrupando filas, usando GROUP BY o DISTINCT. Solo se podrán consultar. Ejercicio: Crear una vista con los códigos de los empleados, apellidos, nº dpto y nombre del departamento al que pertenecen

Borrado de vistas DROP VIEW nombre_vista;