Anda di halaman 1dari 5

Unidad 2

Lenguaje de Definicin de Datos (DDL)

2.1 Creacin de una Base de Datos

2.1 Creacin de base de datos. 2.2 Creacin de tablas.


2.2.1 Integridad. 2.2.2 Integridad referencial declarativa.

Las instrucciones que conoceremos forman parte del Ncleo de SQL estndar (en realidad son instrucciones DDL pero es una error histrico decir que pertenecen a SQL). Puede verificar que cumplan con el ncleo en la siguiente liga: http://developer.mimer.se/validator/parser200x/index.tml La sintxis que en estos apuntes se indique en cursiva es vlida para, al menos, MySQL.

2.3 Creacin de ndices

Taller Bases de Datos ISC

Ing. Felipe Alans Gonzlez -ITD-

Taller Bases de Datos ISC

Ing. Felipe Alans Gonzlez -ITD-

2.1 Creacin de una Base de Datos

2.1 Creacin de una Base de Datos

Instale MySQL 5.0 o superior y las GUI Tools (puede descargarlas de www.mysql.com o de ac.itdurango.edu.mx/~falanis. Si lo instala en un equipo compartido, no establezca contrasea para el administrador (root), unicamente asegrese de que en el futuro haga respaldos de las bases de datos que estime conveniente para que no pierda su trabajo.
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD3

Para crear las tablas de su esquema utilice indistintamente la interfase Lnea de Comandos o las GUI Tools. Al momento de crear el esquema puede usar cualquiera de ellos pero es muy importante que aprenda a utilizar ambos. Puede usar las instrucciones de las diapositivas siguientes desde ambas interfases, pero adicionalmente, las GUI Tools, cuentan con una interfase mas amigable.
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD4

2.1 Creacin de una Base de Datos

2.1 Creacin de una Base de Datos


Itd es el nombre, supuesto, que tendr la Base de Datos que vamos a crear, los DBMSs (o servidores de Bases de Datos) generalmente pueden administrar mas de una Base de Datos (aunque create database no es un estndar).

create database Itd


Es muy importante que en esta etapa, la Unidad II de este curso, no aada tuplas a las tablas que aqu crear, recuerde que estamos en la etapa de planeacin de la Base de Datos.

use Itd
Hace que la Base de Datos Itd sea el esquema por omisin (es decir, todas las instrucciones que escribamos a partir de aqu, se referirn a la Base de Datos Itd.
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD6

Taller Bases de Datos ISC

Ing. Felipe Alans Gonzlez -ITD-

2.2 Creacin de Tablas

2.2 Creacin de Tablas

Integridad
El establecimiento de llaves unique (tambin llamadas candidatas) para cada tabla, consigue lo que se conoce como Integridad de Entidad (contribuye a impedir duplicidad por errores de los usuarios, por ejemplo, evitar que una persona quede registrada dos o mas veces en una misma tabla de la Base de Datos). Mientras mas llaves unique posea una tabla, mayor certeza de integridad se lograr.
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD7

create table Proveedores (IdProveedor int auto_increment primary key, Rfc char(13) unique, RazonSocial char(50) unique, Calle char(15), Orientacion char(10), NumeroExt numeric(8), NumeroInt char(6), Colonia char(15), Ciudad char(30), Estado char(25), CodigoPostal char(5), DiasCredito numeric(3))
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD8

2.2 Creacin de Tablas 2.2 Creacin de Tablas

El Ncleo del SQL estndar, considera una restriccin de verificacin (check constraint) para simular dominios y contribuir igualmente a la Integridad de Entidad. create table Proveedores ( IdProveedor .., ....... Orientacion char(10), check (Orientacion in ('Norte','Sur','Oriente','Poniente')) )
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD9

Si ya existe la tabla y se desea aadir una restriccin de dominio, escriba la siguiente instruccin: alter table Alumnos add constraint ValidOrientacion check

(Orientacion in ('Norte', 'Sur', 'Oriente', 'Poniente'))

Taller Bases de Datos ISC

Ing. Felipe Alans Gonzlez -ITD-

10

2.2 Creacin de Tablas

2.2 Creacin de Tablas


Integridad Referencial

MySQL 5 aunque soporta la restriccin check, no la ejecuta, es decir, no realiza la verificacin como se espera al momento de aadir o modificar tuplas. Para resolver este problema, estableceremos Integridad Referencial hacia una tabla que contenga los valores vlidos para ese atributo.

La definicin de una llave primaria para cada tabla, es indispensable para establecer la integridad referencial. Como sabemos la integridad referencial es importantsima para evitar que haya informacin incompleta en la Base de Datos.

Taller Bases de Datos ISC

Ing. Felipe Alans Gonzlez -ITD-

11

Taller Bases de Datos ISC

Ing. Felipe Alans Gonzlez -ITD-

12

2.2 Creacin de Tablas


Tabla Alumnos
IdAlumno 1 2 3 Control 48040001 76040155 76040161

Integridad Referencial
Nombre Rico Mc Pato Minnie Mouse Mickey Mouse FechaNac 15/11/1900 02/06/1928 01/04/1928 Sexo Masculino Femenino Masculino

2.2 Creacin de Tablas


Integridad Referencial

En la tabla PagosAlumnos IdAlumno, es Llave Fornea

Tabla PagosAlumnos

create table PagosAlumnos( IdPagosAlum IdAlumno Concepto Fecha Importe IdPagoAlumno int 1 1 Inscripcin 02/08/1948 1.25 auto_increment 2 1 Inscripcin 10/08/1949 1.25 primary key, 3 1 Constancia 05/12/1949 0.10 IdAlumno int 4 1 Inscripcin 11/08/1950 1.25 references Alumnos 5 2 Inscripcin 15/08/1976 50.00 on delete restrict 6 2 Inscripcin 05/08/1977 100.00 on update restrict, 7 3 Inscripcin 15/08/1976 50.00 concepto char(15), 8 3 Inscripcin 15/08/1976 50.00 fecha date, 9 3 Inscripcin 03/08/1977 100.00 importe numeric(10,2), 10 3 Constancia 22/10/1977 2.00 check .. ...... Todas las tablas deben tener llaves unique cul ser, al menos una, llave unique de la tabla PagosAlumnos?

La sintxis estndar indicada en las diapositivas anteriores es soportada por MySQL 5.0 pero no implementada. En las diapositivas siguientes se muestra como hacerlo con MySQL 5:

Taller Bases de Datos ISC

Ing. Felipe Alans Gonzlez -ITD-

14

2.2 Creacin de Tablas


Integridad Referencial (como reemplazo para Check)
Tabla Alumnos
IdAlumno 1 2 3 Control 48040001 76040155 76040161 Nombre Rico Mc Pato Minnie Mouse Mickey Mouse FechaNac 15/11/1900 02/06/1928 01/04/1928 Sexo Masculino Femenino Masculino

2.2 Creacin de Tablas Integridad Referencial


Tabla Alumnos
IdAlumno 1 2 3 Control 48040001 76040155 76040161 Nombre Rico Mc Pato Minnie Mouse Mickey Mouse FechaNac 15/11/1900 02/06/1928 01/04/1928 Sexo Masculino Femenino Masculino

Tabla DominioSexo Sexo Femenino Masculino

Tabla PagosAlumnos
IdPagosAlum IdAlumno 1 1 2 1 3 1 4 1 5 2 6 2 7 3 8 3 9 3 10 3 Concepto Inscripcin Inscripcin Constancia Inscripcin Inscripcin Inscripcin Inscripcin Inscripcin Inscripcin Constancia Fecha 02/08/1948 10/08/1949 05/12/1949 11/08/1950 15/08/1976 05/08/1977 15/08/1976 15/08/1976 03/08/1977 22/10/1977 Importe 1.25 1.25 0.10 1.25 50.00 100.00 50.00 50.00 100.00 2.00

create table Alumnos( IdAlumno int auto_increment primary key, sexo char(10), , , foreign key (sexo) references DominioSexo(sexo) on delete restrict on update cascade, . )
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD15

Compare con el caso de la pgina anterior, las diferencias en on delete yon

update

create table PagosAlumnos( IdPagoAlumno int auto_increment primary key, IdAlumno int, Concepto char(15), fecha date, , foreign key (IdAlumno) references Alumnos(IdAlulmno) on delete restrict on update restrict, .
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD16

2.3 Creacin de Indices


Cuando establecemos llaves primarias y unique, se crean tablas de ndices para poder hacer las verificaciones correspondientes, sin embargo, adicionalmente se pueden crear otras tablas de ndices para que ciertas consultas tomen menos tiempo de ejecucin.

create table PagosAlumnos (IdPagoAlumno int(10) auto_increment primary key, IdAlumno int, Concepto char(15), Fecha date, importe numeric(10,2), foreign key (IdAlumno) references Alumnos(IdAlulmno), on delete restrict on update restrict, index (Concepto), index(Fecha) )
Taller Bases de Datos ISC Ing. Felipe Alans Gonzlez -ITD17

Anda mungkin juga menyukai