Buenas noches amigos en esta oportunidad les voy
a compartir un Query en donde vamos a crear una base Biblioteca con seis tablas,
sus respectivas relaciones, constraints e índices, el ejemplo está realizado en
SQLServer.
Obviamente para “copiar” este ejemplo debes
tener una idea de que es una Base de Datos; este ejemplo fue tomado, (Solo le modifique para que se ejecute en Sql Server) de la guía didáctica
de Base de Datos avanzada de la Universidad Técnica Particular de Loja.
/******Inicio
creación de la Base******/
USE master ;
GO
CREATE DATABASE Biblioteca
ON
( NAME = Biblioteca_dat,
--FILENAME =
'C:\Program Files\Microsoft SQL
Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\saledat.mdf'
FILENAME = 'C:\Program Files (x86)\Microsoft
SQL Server\MSSQL.1\MSSQL\Data\Biblioteca_dat.mdf',
SIZE = 10,
MAXSIZE =
50,
FILEGROWTH =
5 )
LOG ON
( NAME = Biblioteca_log,
FILENAME = 'C:\Program Files
(x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\Biblioteca_log.ldf',
SIZE = 5MB,
MAXSIZE =
25MB,
FILEGROWTH =
5MB ) ;
GO
/******Fin
creacion de la Base******/
/******Inicio
creación Tablas ******/
USE Biblioteca
GO
/* INICIO TABLA TIPO_USUARIO*/
CREATE TABLE TIPO_USUARIO
(
idTipoUsuario numeric(4),
descTipoUsuario nvarchar(20) NOT NULL,
CONSTRAINT
PK_TIPOUSUARIO PRIMARY KEY
(idTipoUsuario)--Definimos la clave primaria
);
/* FIN TABLA TIPO_USUARIO*/
/* INICIO TABLA USUARIO*/
CREATE TABLE USUARIO
(
idUsuario varchar (8) NOT NULL,
idTipoUsuario numeric(4) NOT NULL,
apelUsario varchar (35)NOT NULL,
nomUsuario varchar (35)NOT NULL,
direccion varchar (50) NULL, --Por defecto los
campos aceptan valores nulos por lo que no haria falta --poner null
habilitado bit NOT NULL,
fechaExpCarnet datetime NOT NULL,
fechaEmiCarnet datetime NOT NULL,
CONSTRAINT
PK_USUARIO_idUsuario PRIMARY KEY (idUsuario),
CONSTRAINT
FK_USUARIO_idTipoUsuario FOREIGN KEY (idTipoUsuario) REFERENCES TIPO_USUARIO (idTipoUsuario)
);
/* FIN TABLA USUARIO*/
/* INICIO
MAT_BIBLIO*/
CREATE TABLE MAT_BIBLIO
(
idMatBiblio varchar (20)NOT NULL,
tituloMatBiblo varchar (150) NOT NULL,
editorial varchar (50),
pais varchar (20),
anio datetime,
numPag numeric,
existencia numeric NOT NULL,
CONSTRAINT
PK_MAT_BIBLIO_idMatBiblio PRIMARY KEY (idMatBiblio)
);
/* FIN TABLA MAT_BIBLIO*/
/* INICIO TABLA PRESTAMO*/
REATE TABLE PRESTAMO
(
codOper varchar (7) PRIMARY KEY,--Esta es otra forma de
definir la clave primaria
idMatBiblio varchar(20) NOT NULL,
idUsuario varchar(8) NOT NULL,
fechaPres datetime NOT NULL,
fechaDev datetime NOT NULL,
numDias numeric NOT NULL,
CONSTRAINT
FK_PRESTAMO_idMatBiblio1 FOREIGN KEY (idMatBiblio) REFERENCES
MAT_BIBLIO(idMatBiblio),
CONSTRAINT
FK_PRESTAMO_idMatBiblio2 FOREIGN KEY (idUsuario) REFERENCES USUARIO(idUsuario)
);
/* FIN TABLA PRESTAMO*/
/* INICIO TABLA AUTOR*/
CREATE TABLE AUTOR
(
idAutor varchar (4) NOT NULL,
nomAutor varchar (50) NOT NULL,
CONSTRAINT
PK_AUTOR_idAutor PRIMARY KEY(idAutor)
);
/* FIN TABLA AUTOR*/
/* INICIO TABLA MB_AUTOR*/
CREATE TABLE MB_AUTOR
(
idMatBiblio varchar (20) NOT NULL,
idAutor varchar (4) NOT NULL,
CONSTRAINT
PK_MB_AUTOR_idMatBiblio_idAutor PRIMARY KEY (idMatBiblio,idAutor),
CONSTRAINT
FK_MB_AUTOR_idMatBiblio FOREIGN KEY (idMatBiblio) REFERENCES
MAT_BIBLIO (idMatBiblio),
CONSTRAINT
FK_MB_AUTOR_idAutor FOREIGN KEY (idAutor) REFERENCES AUTOR (idAutor)
);
/* FIN TABLA MB_AUTOR*/
/******Fin
creación Tablas ******/
Si el script se ejecuta correctamente les debe
quedar esto: una Base de Datos llamada Biblioteca con seis tablas.
Si necesitas ayuda con respecto a este tema no
dudes en escribirme al Twitter.
Saludos:
Fernando
No hay comentarios:
Publicar un comentario