Para crear una base de datos primero necesitamos un motor de bases de datos, existen varios motores,
de bases de datos pero en este blog y las entradas que se trabajaran sera basado en SQL server y su software de apoyo Management Studio, por lo cual les dejo un link donde podran descargar y ver la instalacion de SQL server
Aqui podran ver la instalacion:
https://www.youtube.com/watch?v=udpvZv_C7js&list=PL6hPvfzEEMDaU4aiS389oXamdN8sip856&index=2
Aca esta el que les servira para descargar el motor y sus herramientas:
https://www.microsoft.com/es-mx/download/details.aspx?id=29062
Luego de haber instalado el motor de la base de datos, abrimos el Management Studio, y buscamos en la barra de herramientas donde dice Nueva Consulta o New Query damos clic y nos abrira una ventana de area de trabajo.
CREATE
Es una palabra reservada la cual nos servira para crear objetos y tambien las bases de datos que vayan a trabajar con su motor, como es palabra reservado se les debera poner en color azul al digitarla, la sintaxis para crear una base de datos es la siguiente:
Create Database NombreBD
Donde Create y Database son palabras reservadas, hay que tomar en cuenta que el nombre que le asignen a la base de datos de ser relacionado a lo que se trabajara con ella, por ejemplo: si se busca trabajar con un sistema de Clinicas Medicas o con un sistema de cobro de alguna empresa, estas bases serian llamadas: ClinicaMe o Facturacion para tener una guia de que es lo que contiene la base.
Al crear la base de datos esta se creara en una base que se llama "master" que es la que trae por defecto el motor, cuando se quieran crear las Entidades(Tablas) dentro de nuestra base recien creada, tendremos que utilizar la siguiente sintaxis:
Use NombreBD
Donde Use tambien es una palabra reservada del lenguaje, y NombreBD es el nombre que se le asigna la base de datos, luego a partir de aqui todo lo que se cree, Tablas, Registros, llaves, Usuarios, Indices, y los roles.
Script Facturacion
Aqui les dejo el script de la base de datos Facturacion, es importante recuerden todo lo anterior para que comprendan lo que en el script se hace, cualquier consulta pueden dejar comentario y yo respondere con gusto:
create database Facturacion
Use
Facturacion
create table tblArticulo
(
ArticuloID varchar
(20) not null,
DescripcionArticulo varchar (254),
costo float,
lote float,
ArticuloCuenta varchar
(75),
TipoServicio varchar
(1),
TipoKit varchar (1),
constraint
PK_tblArticulo primary key
(ArticuloID)
);
create table tblExistenciaBodega
(
Existencia_Minima float,
Existencia_Maxima float,
Punto_Reorden float,
ExistenciaActual float
not null,
constraint
PK_ExistenciaBodega primary key (ExistenciaActual)
);
create table tblBodega
(
BodegaID int
not null,
DescripcionBodega varchar(255),
constraint
PK_tblBodega primary key
(BodegaID)
);
create table Proveedor
(
ProveedorID int
not null,
NombreProveedor varchar (255),
DireccionProveedor
varchar (255),
Contacto varchar (255),
OfreceCredito
varchar (1),
constraint
PK_Proveedor primary key
(ProveedorID)
);
create table tblTransInventario
(
Auditoria_trans float
not null,
CantidadTrans int,
SignoTrans
int,
NoDocumentoTrans
varchar (25),
TipoTranss
varchar (1),
CostoTrans
float,
UsuarioCtrlTrans varchar(25),
FechaCtrlTrans Date,
constraint
PK_tblTransInventario primary key (Auditoria_Trans)
);
create table tblCliente
(
Cliente varchar (20) not null,
NombreCliente
varchar (120) not null,
NombreContacto
varchar (80),
Cargo varchar (30),
Direccion varchar (255),
Telefono1 varchar(15),
Telefono2 varchar (15),
Saldo float,
LimiteDeCredito
float,
Usr_Creador
varchar (25),
FCreacion datetime,
Usr_Modificacion varchar
(25),
FModificacion datetime,
constraint
PK_tblCliente primary key
(Cliente,NombreCliente)
);
create table tblFactura
(
FechaCtrlTrans date,
NoDocumento varchar
(10) not null,
AsientoDocumento varchar
(25),
Descuento float,
FacturaOriginal varchar
(10),
TipoOriginal varchar (1),
TotalImpuesto float,
TotalFactura float,
Anulada varchar (1) not null,
DireccionFactura varchar
(255),
Cobrada varchar (1) not null,
Impresa varchar (1),
TotalIVA float,
TotalCIVA float,
TotalDescuento float,
constraint
PK_tblFactura primary key
(NoDocumento,Anulada,Cobrada)
);
create table tblTipoDocumento
(
TipoDocumentoID varchar(1) not null,
DescripcionTipoDocumento varchar (150),
SignoTrans int,
constraint
PK_tblTipoDocumento primary key(TipoDocumentoID)
);
create table tblFacturaLinea
(
Linea int
not null,
CostoTotal float,
FechaFactura date,
PrecioUnitario float,
STotalImpuesto float,
CantidadTrans int,
Multiplicador int,
DescripcionLineaFactura varchar(255),
NoLote float,
STotalCIVA float,
STDescuento float,
constraint
PK_tblFacturaLinea primary key (Linea)
);
create table tblSucursales
(
SucursalID float
not null,
DescripcionSucursal varchar (255),
DireccionEntrega varchar
(255),
ContactoSucursal varchar(255),
constraint
PK_tblSucursales primary key (SucursalID)
);
create table tblArticulo_Precio
(
Precio float
not null,
Margen float,
constraint
PK_Articulo_Precio primary key (Precio)
);
create table tblNivelPrecio
(
NivelPrecioID int
not null,
DescripcionPrecio varchar (255),
FechaInicioPrecio Date,
FechaFinPrecio Date,
SinVencimiento varchar(1),
constraint
PK_tblNivelPrecio primary key (NivelPrecioID)
);
create table tblArticulo_ExistenciaBodega
(
ArticuloID varchar(20) not null,
ExistenciaActual float
not null,
constraint
PK_tblArticulo_ExistenciaBodega primary key(ArticuloID,ExistenciaActual)
);
create index tblArticulo_ExistenciaBodega_FK on tblArticulo_ExistenciaBodega
(ExistenciaActual
asc);
create index tblArticulo_ExistenciaBodega_FK2 on tblArticulo_ExistenciaBodega
(ArticuloID
asc);
create table Proveedor_tblArticulo
(
ArticuloID varchar
(20) not null,
ProveedorID int
not null,
Constraint
PK_Proveedor_Articulo primary key (ArticuloID,ProveedorID)
);
create index Proveedor_tblArticulo_FK on Proveedor_tblArticulo
(ProveedorID
asc);
create index Proveedor_tblArticulo_FK2 on tblArticulo_ExistenciaBodega
(ArticuloID
asc);
create table tblArticulo_tblTransInventario
(
ArticuloID varchar(20) not null,
Auditoria_trans float
not null,
constraint
PK_tblArticulo_Trans primary key (ArticuloID,Auditoria_trans)
);
create index tblArticulo_tblTransInventario_FK on tblArticulo_tblTransInventario
(Auditoria_trans
asc);
create index tblArticulo_tblTransInventario_FK2 on tblArticulo_tblTransInventario
(ArticuloID
asc);
create table tblArticulo_tblArticulo_Precio
(
ArticuloID varchar
(20) not null,
Precio float
not null,
constraint
PK_tblArticulo_Articulo_Precio primary key (ArticuloID,Precio)
);
create index tblArticulo_tblArticulo_Precio_FK on tblArticulo_tblArticulo_Precio
(Precio
asc);
create index tblArticulo_tblArticulo_Precio_FK2 on tblArticulo_tblArticulo_Precio
(ArticuloID
asc);
create table tblArticulo_tblFacturaLinea
(
ArticuloID varchar
(20) not null,
Linea int
not null,
constraint
PK_tblArticulo_tblFacturaLinea primary key (ArticuloID,Linea)
);
create index tblArticulo_tblFacturaLinea_FK on tblArticulo_tblFacturaLinea
(Linea
asc);
create index tblArticulo_tblFacturaLinea_FK2 on tblArticulo_tblFacturaLinea
(ArticuloID
asc);
create table tblBodega_ExistenciaBodega
(
BodegaID int
not null,
ExistenciaActual float
not null,
constraint
PK_tblBodega_ExistenciaBodega primary key (BodegaID,ExistenciaActual)
);
create index tblBodega_ExistenciaBodega_FK on tblBodega_ExistenciaBodega
(ExistenciaActual
asc);
create index tblBodega_ExistenciaBodega_FK2 on tblBodega_ExistenciaBodega
(BodegaID
asc);
create table tblBodega_tblTransinventario
(
BodegaID int
not null,
Auditoria_trans float
not null,
constraint
PK_tblBodega_tblTransInventario primary key (BodegaID,Auditoria_trans)
);
create index tblBodega_tblTransInventario_FK on tblBodega_tblTransInventario
(Auditoria_trans
asc);
create index tblBodega_tblTransInventario_FK2 on tblBodega_tblTransInventario
(BodegaID
asc);
create table tblCliente_tblSucursales
(
Cliente varchar (20) not null,
NombreCliente varchar
(120) not null,
SucursalID float
not null,
constraint
PK_tblCliente_tblSucursales primary key (Cliente,NombreCliente,SucursalID)
);
create index tblCliente_tblSucursal_FK on tblCliente_tblSucursales
(SucursalID
asc);
create index tblCliente_tblSucursales_FK2 on tblCliente_tblSucursales
(NombreCliente
asc);
create index tblCliente_tblSucursales_FK3 on tblCliente_tblSucursales
(Cliente
asc);
create table tblCliente_tblFactura
(
Cliente varchar (20) not null,
NombreCliente varchar
(120) not null,
NoDocumento varchar
(10) not null,
Anulada varchar (1) not null,
Cobrada varchar(1) not null,
constraint
PK_tblCliente_tblFactura primary key (Cliente,NombreCliente,NoDocumento,Anulada,Cobrada)
);
create index tblCliente_tblFactura_FK on tblCliente_tblFactura
(NoDocumento
asc);
create index tblCliente_tblFactura_FK2 on tblCliente_tblFactura
(Anulada
asc);
create index tblCliente_tblFactura_FK3 on tblCliente_tblFactura
(Cobrada
asc);
create index tblCliente_tblFactura_FK4 on tblCliente_tblFactura
(NombreCliente
asc);
create index tblCliente_tblFactura_FK5 on tblCliente_tblFactura
(Cliente
asc);
create table tblFactura_tblTipoDocumento
(
NoDocumento varchar
(10) not null,
Anulada varchar (1) not null,
Cobrada varchar(1) not null,
TipoDocumentoID varchar
(1) not null,
constraint
PK_tblFactura_tblTipoDocumento primary key (NoDocumento,Anulada,Cobrada,TipoDocumentoID)
);
create index tblFactura_tblTipoDocumento_FK on tblFactura_tblTipoDocumento
(Anulada
asc);
create index tblFactura_tblTipoDocumento_FK2 on tblFactura_tblTipoDocumento
(Cobrada
asc);
create index tblFactura_tblTipoDocumento_FK3 on tblFactura_tblTipoDocumento
(NoDocumento
asc);
create index tblFactura_tblTipoDocumento_FK4 on tblFactura_tblTipoDocumento
(TipoDocumentoID);
create table tblFactura_tblFacturaLinea
(
NoDocumento varchar
(10) not null,
Anulada varchar (1) not null,
Cobrada varchar(1) not null,
Linea int
not null,
constraint
PK_tblFactura_tblFacturaFacturaLinea primary key (NoDocumento,Anulada,Cobrada,Linea)
);
create index tblFactura_tblFacturaLinea_FK on tblFactura_tblFacturaLinea
(NoDocumento
asc);
create index tblFactura_tblFacturaLinea_FK2 on tblFactura_tblFacturaLinea
(Anulada
asc);
create index tblFactura_tblFacturaLinea_FK3 on tblFactura_tblFacturaLinea
(Cobrada
asc);
create index tblFactura_tblFacturaLinea_FK4 on tblFactura_tblFacturaLinea
(Linea
asc);
create table tblNivelPrecio_tblFactura
(
NivelPrecioID int
not null,
NoDocumento varchar
(10) not null,
Anulada varchar (1) not null,
Cobrada varchar(1) not null,
constraint
PK_tblNivelPrecio_tblFactura primary key (NivelPrecioID,NoDocumento,Anulada,Cobrada)
);
create index tblNivelPrecio_tblFactura_FK on tblNivelPrecio_tblFactura
(NoDocumento
asc);
create index tblNivelPrecio_tblFactura_FK2 on tblNivelPrecio_tblFactura
(Anulada
asc);
create index tblNivelPrecio_tblFactura_FK3 on tblNivelPrecio_tblFactura
(Cobrada
asc);
create index tblNivelPrecio_tblFactura_FK4 on tblNivelPrecio_tblFactura
(NivelPrecioID
asc);
create table tblNivelPrecio_tblArticulo_Precio
(
NivelPrecioID int
not null,
Precio float
not null,
constraint
PK_tblNivelPrecio_tblArticulo_Precio primary key (NivelPrecioID,Precio)
);
create index tblNivelPrecio_tblArticulo_Precio_FK on tblNivelPrecio_tblArticulo_Precio
(Precio
asc);
create index tblNivelPrecio_tblArticulo_Precio_FK2 on tblNivelPrecio_tblArticulo_Precio
(NivelPrecioID
asc);
alter table tblArticulo_ExistenciaBodega
add constraint FK_ExistenciaBodega_ArticuloID_ArticuloID foreign key (ArticuloID)
references
tblArticulo (ArticuloID);
alter table tblArticulo_ExistenciaBodega
add constraint FK_tblArticulo_ArticuloID_ExistenciaActual
foreign key (ExistenciaActual)
references
ExistenciaBodega (ExistenciaActual);
alter table Proveedor_tblArticulo
add constraint FK_Proveedor_ArticuloID_ArticuloID foreign key (ArticuloID)
references
tblArticulo (ArticuloID);
alter table Proveedor_tblArticulo
add constraint FK_tblArticulo_ArticuloID_ProveedorID foreign key (ProveedorID)
references
Proveedor (ProveedorID);
alter table tblArticulo_tblTransInventario
add constraint
FK_tblTransInventario_ArticuloID_ARTICULOID foreign
key (ArticuloID)
references
tblArticulo (ArticuloID);
alter table tblArticulo_tblTransInventario
add constraint FK_tblArticulo_ArticuloID_Auditoria_trans foreign key (Auditoria_trans)
references
tblTransInventario (Auditoria_trans);
alter table tblArticulo_tblArticulo_Precio
add constraint
FK_tblArticulo_Precio_ArticuloID_ARTICULOID foreign
key (ArticuloID)
references
tblArticulo (ArticuloID);
alter table tblArticulo_tblArticulo_Precio
add constraint FK_tblArticulo_ArticuloID_Precio foreign key (Precio)
references
tblArticulo_Precio (Precio);
alter table tblArticulo_tblFacturaLinea
add constraint FK_tblFacturaLinea_ArticuloID_ARTICULOID foreign key (ArticuloID)
references
tblArticulo (ArticuloID);
alter table tblArticulo_tblFacturaLinea
add constraint FK_tblArticulo_ArticuloID_Linea foreign key (Linea)
references
tblFacturaLinea (Linea);
alter table tblBodega_ExistenciaBodega
add constraint FK_tblExistenciaBodega_BodegaID_BodegaID foreign key (BodegaID)
references
tblBodega (BodegaID);
alter table tblBodega_ExistenciaBodega
add constraint FK_tblBodega_BodegaID_ExistenciaActual foreign key (ExistenciaActual)
references
ExistenciaBodega (ExistenciaActual);
alter table tblBodega_tblTransInventario
add constraint FK_tblTransInventario_BodegaID_BodegaID foreign key (BodegaID)
references
tblBodega (BodegaID);
alter table tblBodega_tblTransInventario
add constraint FK_tblBodega_BodegaID_Auditoria_trans foreign key (Auditoria_Trans)
references
tblTransInventario (Auditoria_trans);
alter table tblCliente_tblFactura
add constraint FK_tblFactura_Cliente_Cliente foreign key (Cliente,NombreCliente)
references
tblCliente (Cliente,NombreCliente);
alter table tblCliente_tblFactura
add constraint FK_tblCliente_Cliente_NoDocumento foreign key (NoDocumento,Anulada,Cobrada)
references
tblFactura (NoDocmento,Anulada,Cobrada);
alter table tblCliente_tblSucursales
add constraint FK_tblSucursales_Cliente_Cliente foreign key (Cliente,NombreCliente)
references
tblCliente (Cliente,NombreCliente);
alter table tblCliente_tblSucursales
add constraint FK_tblCliente_Cliente_SucursalID foreign key (SucursalID)
references
tblSucursales (SucursalID);
alter table tblFactura_tblFacturaLinea
add constraint FK_tblFacturaLinea_NoDocumento_NoDocumento
foreign key (NoDocumento,Anulada,Cobrada)
references
tblFactura (NoDocumento,Anulada,Cobrada);
alter table tblFactura_tblFacturaLinea
add constraint FK_tblFactura_NoDocumento_Linea foreign key (Linea)
references
tblFacturaLinea (Linea);
alter table tblFactura_tblTipoDocumento
add constraint
FK_tblTipoDocumento_NoDocumento_NoDocumento foreign
key (NoDocumento,Anulada,Cobrada)
references
tblFactura (NoDocumento,Anulada,Cobrada);
alter table tblFactura_tblTipoDocumento
add constraint FK_tblFactura_NoDocumento_TipoDocumentoID foreign key (TipoDocumentoID)
references
tblTipoDocumento (TipoDocumentoID);
alter table tblNivelPrecio_tblFactura
add constraint FK_tblFactura_NivelPrecioID_NivelPrecioID foreign key (NivelPrecioID)
references
tblNivelPrecio (NivelPrecioID);
alter table tblNivelPrecio_tblFactura
add constraint
FK_tblNivelPrecio_NivelPrecioID_NoDocumento foreign
key (NoDocumento,Anulada,Cobrada)
references
tblFactura (NoDocumento,Anulada,Cobrada);
alter table tblNivelPrecio_tblArticulo_Precio
add constraint
FK_tblArticulo_Precio_NivelPrecioID_NivelPrecioID foreign
key(NivelPrecioID)
references
tblNivelPrecio (NivelPrecioID);
alter table tblNivelPrecio_tblArticulo_Precio
add constraint FK_tblNivelPrecio_NivelPrecioID_Precio foreign key(Precio)
references
tblArticulo_Precio (Precio);
create login utec
with password='Guia';
use
Facturacion
create user utec for login utec
with default_schema=dbo;
Grant select on object :: tblFactura to utec;
Grant select on object ::
tblFacturaLinea to utec;
create login utec2
with password= 'guia2';
use
Facturacion
create user utec2 for login utec2
with default_schema = dbo;
Grant select on object :: TBLARTICULO
to utec2;
Grant select on object ::
TBLARTICULO_PRECIO to utec2;
Grant select on object :: TBLBODEGA to utec2;
Grant select on object :: TBLCLIENTE to utec2;
Grant select on object ::
tblExistencia_Bodega to utec2;
Grant select on object :: TBLFACTURA to utec2;
Grant select on object ::
TBLFACTURALINEA to utec2;
Grant select on object ::
TBLNIVELPRECIO to utec2;
Grant select on object ::
TBLPROVEEDOR to utec2;
Grant select on object ::
TBLPROVEEDOR_ARTICULO to utec2;
Grant select on object ::
TBLSUCURSALES to utec2;
Grant select on object ::
TBLTIPODOCUMENTO to utec2;
Grant select on object ::
TBLTRANSINVENTARIO to utec2;
Grant select on object ::
Devoluciones to utec2;
Grant select on object :: Factura to utec2;
Grant select on object ::
VentasTotales to utec2;
Suscribirse a:
Entradas (Atom)