Está en la página 1de 8

El Lenguaje de Definicin de Datos (Data Definition Language DDL) , sirve para modificar la estructura de los objetos en una base

e de datos. Estas sentencias bsicamente son: CREATE, ALTER, DROP y TRUNCATE. A continuacin iniciaremos con la creacin de una base de datos.

La base de datos que disearemos se me entreg en la universidad en un curso con SQLServer, ahora me da gusto poder realizar lo mismo pero en PostGreSQL.
--1) CREACIN DE BASE DE DATOS (DATABASE): CREATE DATABASE DBAdmision TEMPLATE template0; --2) CREACIN DE ESQUEMAS (SCHEMAS) : CREATE SCHEMA Persona; CREATE SCHEMA Admision; --3) CREACIN DE SECUENCIAS (SEQUENCE): CREATE SEQUENCE Persona.seq_idcontacto START 1; --empieza desde 1 CREATE SEQUENCE Admision.seq_idmodalidad START 1; --empieza desde 1 --4) CREACIN DE TABLAS (TABLES): create table Persona.Contacto ( IDContacto int default nextval('Persona.seq_idcontacto'), Nombres varchar(30) not null, Paterno varchar(30) not null, Materno varchar(30) not null, Genero char(1) default('0') not null, DNI varchar(10) null, FechaNac date null, FechaCreacion date not null default now()

) ;; create table Persona.Postulante ( IDPostulante char(10) not null , IDContacto int not null, IDCarrera char(3) not null, IDPerAcad char(6) not null, IDModalidad int not null, Puntaje int not null default(0), AsistioExamen char(1) not null default('0'), Ingreso char(1) not null default('0') ) ;; Create Table Admision.PerAcad ( IDPerAcad char(6) not null , Periodo char(4), Ano char(1) ) ;; create table Admision.Carrera ( IDCarrera char(3) not null,

Nombre varchar(150) not null ) ;; create table Admision.Modalidad ( IDModalidad int default nextval('Admision.seq_idmodalidad'), Modalidad varchar(100) not null ) ;; --5) CREACIN DE RESTRICCIONES (CHECK): ALTER TABLE Persona.Contacto ADD CONSTRAINT ck_Genero CHECK (Genero in ('0','1')) ;; ALTER TABLE Persona.Postulante ADD CONSTRAINT ck_asistioexamen CHECK (asistioexamen in ('0','1')) ;; ALTER TABLE Persona.Postulante ADD CONSTRAINT ck_ingreso CHECK (ingreso in ('0','1')) ;; ALTER TABLE Persona.Postulante add CONSTRAINT ck_puntaje

CHECK ( (asistioexamen = '1' and puntaje >=0) or (asistioexamen = '0' and puntaje =0) ) ;; --6) CREACIN DE RESTRICCIONES (UNIQUE): ALTER TABLE Admision.Carrera ADD CONSTRAINT uq_nombrecarrera UNIQUE(Nombre) ;; ALTER TABLE Persona.Contacto ADD CONSTRAINT uq_ContactoDNI UNIQUE(DNI) ;; ALTER TABLE Admision.Modalidad ADD CONSTRAINT uq_Modalidad UNIQUE(Modalidad) ;; --7) CREACIN DE CLAVES PRIMARIAS (PRIMARY KEYS): ALTER TABLE Admision.PerAcad ADD CONSTRAINT pk_IDPerAcad PRIMARY KEY(IDPerAcad) ;;

ALTER TABLE Admision.Carrera ADD CONSTRAINT pk_IDCarrera PRIMARY KEY(IDCarrera) ;; ALTER TABLE Persona.Contacto ADD CONSTRAINT pk_IDContacto PRIMARY KEY(IDContacto) ;; ALTER TABLE Persona.Postulante ADD CONSTRAINT pk_IDPostulante PRIMARY KEY(IDPostulante) ;; ALTER TABLE Admision.Modalidad ADD CONSTRAINT pk_IDModalidad PRIMARY KEY(IDModalidad) ;; --8) CREACIN DE CLAVES FORNEAS (FOREIGN KEYS): ALTER TABLE Persona.Postulante ADD CONSTRAINT fk_IDCarrera FOREIGN KEY(idcarrera) references Admision.Carrera(IDCarrera) ;; ALTER TABLE Persona.Postulante ADD CONSTRAINT fk_IDPerAcad

FOREIGN KEY(IDPerAcad) references Admision.PerAcad(IDPerAcad) ;; ALTER TABLE Persona.Postulante ADD CONSTRAINT fk_IDModalidad FOREIGN KEY(IDModalidad) references Admision.Modalidad(IDModalidad) ;; ALTER TABLE Persona.Postulante ADD CONSTRAINT fk_IDContacto FOREIGN KEY(IDContacto) references Persona.Contacto(IDContacto) ;; Descargar Script: PostgreSQL Sentencias DDL.sql CONCLUSIONES: 1) CREACIN DE BASE DE DATOS (DATABASE): Con la lnea CREATE DATABASE DBAdmision TEMPLATE template0; , se crea una tabla a partir de una plantilla que trae postgres llamada template0, el cual nos crea la base de datos totalmente vaca. Tambin existe la plantilla de nombre template1 y tambin est limpia. 2) CREACIN DE ESQUEMAS (SCHEMAS) : Los esquemas son importantes para agrupar objetos segn especificaciones, y al mantener organizado la base de datos permite un mejor desempeo al momento de la administracin. Si no se le asigna un esquema al objeto, postgres lo asignar implicitamente al esquema public. Para definir que un objeto pertenezca a un esquema se pone el nombre del esquema seguido por un ponto <.> y el nombre del objeto, que puede ser una tabla, una secuencia, etc

3) CREACIN DE SECUENCIAS (SEQUENCE): Podemos obviar el paso 3, si definimos el tipo de datos de sequencia SERIAL, en los campos establecidos en la creacin de tablas en el paso 4, deberar las lineas en cuestin de la siguiente forma: IDContacto int default nextval(Persona.seq_idcontacto), cambiar por: IDContacto SERIAL, tambin IDModalidad int default nextval(Admision.seq_idmodalidad), cambiar por: IDModalidad SERIAL, Con estos cambios, no ser necesario realizar el paso 3, pero en realidad postgres si realiza implicitamente la creacin de sequencias. 4) CREACIN DE TABLAS (TABLES): Con FechaCreacion date not null default now(), asignaremos la fecha actual por defecto al campo FechaCreacion por medio de la funcin now(). 5) CREACIN DE RESTRICCIONES (CHECK): Los valores dentro de CHECK , por ejemplo CHECK (Genero in (0,1)), son los nicos que sern permitidos insertar en el campo establecido, en este caso se le asigna esa restriccin al campo Genero. 6) CREACIN DE RESTRICCIONES (UNIQUE): Las restricciones UNIQUE, por ejemplo UNIQUE(Modalidad) , aseguran que en los datos en la misma columna, en este caso en el campo Modalidad, no sean repetidas, ya que no puede haber registradas 2 modalidades con el mismo nombre. Otro ejemplo se da en las tablas usuario, donde no permiten asignar el mismo login o nick a a ms de una persona. 7) CREACIN DE CLAVES PRIMARIAS (PRIMARY KEYS):

Las claves primarias, aparte de prevenir la duplicidad de datos, y servir como nexo para relacionarse con otras tablas, tiene otro fin tambin importante, que es agilizar el proceso de busqueda, no por el hecho de ser primary key, sino que al momento de la creacin de una clave primaria se crea implcitamente un indice (index), del cual hablar detalladamente en otro post. 8) CREACIN DE CLAVES FORNEAS (FOREIGN KEYS): Las claves forneas son campos que servirn de nexo para la relacin entre 2 tablas, la clave primaria de otra tabla se relacionar con la clave fornea de sta. TOPIC: CREATE, TABLE, SCHEMA, SEQUENCE, ALTER, CHECK, ADD CONSTRAINT, UNIQUE, PRIMARY KEY, FOREIGN KEY, TEMPLATE

También podría gustarte