Base de datos
Base de datos
                     Desarrollo del tema Nº 02
                   Tipos de datos – Tabla de datos – Restricciones
Logros:
   - Identifica correctamente los tipos de datos que se utiliza en SQL Server 2014, para
       especificar a las columnas de la tabla.
   - Crea, modifica y elimina las tablas de la base de datos.
   - Aplica la restricción Primary Key y la integridad referencial Foreign Key a las tablas.
CASO DESARROLLADO: MINIMARKET
Implementaremos un script de SQL Server que permita crear la base de datos BD_MINIMARKET.
Para ello se cuenta con el siguiente diagrama:
Usando TRANSACT/SQL, realice lo siguiente:
   1.   Cree la base de datos BD_MINIMARKET de manera estándar.
   2.   Valide la existencia de la base de datos.
   3.   Active la base de datos BD_MINIMARKET.
   4.   Cree las tablas mostradas.
   5.   Agregue las llaves Primarias (ADD PRIMARY KEY)
   6.   Agregue las llaves Foráneas, Relaciones (ADD FOREIGN KEY – REFERENCES)
Elaborado por: Equipo de Docentes                                                          Pág. 1
                                                                     Base de datos
Solución:
  USE MASTER
  GO
  --DEFINIENDO EL FORMATO DE LA FECHA DÍA, MES AÑO
  SET DATEFORMAT DMY
  GO
  --VERIFICANDO LA EXISTENCIA DE LA BASE
  IF DB_ID('BD_MINIMARKET') IS NOT NULL
  BEGIN
  DROP DATABASE BD_MINIMARKET
  END
  GO
  --CREANDO LA BASE DE DATOS
  CREATE DATABASE BD_MINIMARKET
  GO
  --ACTIVANDO LA BASE DE DATOS
  USE BD_MINIMARKET
  GO
  --CREANDO LAS TABLAS
  --TABLA DISTRITO
  CREATE TABLE DISTRITO (
  CODIGO_DIST        CHAR    (3) NOT NULL      PRIMARY KEY,
  NOMBRE_DIST        VARCHAR (50)
  )
  GO
  --TABLA CATEGORIA
  CREATE TABLE CATEGORIA (
  CODIGO_CAT         CHAR    (3) NOT NULL      PRIMARY KEY,
  NOMBRE_CAT         VARCHAR (40)
  )
  GO
  --TABLA PRODUCTO
  CREATE TABLE PRODUCTO (
  CODIGO_PRO         CHAR    (6) NOT NULL     PRIMARY KEY,
  DESCRI_PRO         VARCHAR (50) NOT NULL,
  PRE_VEN_PRO        MONEY         NOT NULL,
  ST_ACT_PRO         INT                NOT NULL,
  ST_MIN_PRO         INT                NOT NULL,
  FEC_VEN_PRO        DATE          NOT NULL,
  CODIGO_CAT         CHAR    (3) NOT NULL     REFERENCES CATEGORIA
  )
  GO
Elaborado por: Equipo de Docentes                                           Pág. 2
                                                                              Base de datos
  --TABLA CLIENTE
  CREATE TABLE CLIENTE (
  CODIGO_CLI         CHAR           (6)     NOT NULL PRIMARY KEY,
  NOMBRE_CLI         VARCHAR        (30)   NOT NULL,
  APATER_CLI         VARCHAR        (30)   NOT NULL,
  AMATER_CLI         VARCHAR        (30)   NOT NULL,
  DIRECC_CLI         VARCHAR        (50)   NULL,
  TELEFO_CLI         VARCHAR        (12)   NULL,
  CODIGO_DIS         CHAR            (3)    NOT NULL REFERENCES DISTRITO,
  CORREO_CLI         VARCHAR        (30)   NULL
  )
  GO
  --TABLA CARGO
  CREATE TABLE CARGO (
  CODIGO_CAR         INT                    NOT NULL   PRIMARY KEY,
  DESCRI_CAR         VARCHAR (30)          NOT NULL
  )
  GO
  --TABLA EMPLEADO
  CREATE TABLE EMPLEADO (
  CODIGO_EMP         INT                    NOT NULL PRIMARY KEY,
  APELLI_EMP         VARCHAR        (30)   NOT NULL,
  NOMBRE_EMP         VARCHAR        (30)   NOT NULL,
  FECNAC_EMP         DATE                   NOT NULL,
  DIRECC_EMP         VARCHAR        (60)   NOT NULL,
  FECCON_EMP         DATE                   NOT NULL,
  CORREO_EMP         VARCHAR        (35)   NULL,
  TELEFO_EMP         VARCHAR        (15)   NULL,
  CODIGO_CAR         INT                              REFERENCES CARGO,
  CODIGO_EMP_SUP     INT                              REFERENCES EMPLEADO,
  CODIGO_DIS         CHAR           (3)               REFERENCES DISTRITO
  )
  GO
  --TABLA BOLETA
  CREATE TABLE BOLETA (
  NRO_BOLETA         CHAR (6)        NOT NULL          PRIMARY KEY,
  FECHA_VENTA        DATE            NOT NULL,
  CODIGO_CLI         CHAR (6)        NOT NULL          REFERENCES CLIENTE,
  CODIGO_EMP         INT             NOT NULL          REFERENCES EMPLEADO,
  ESTADO_BOL         CHAR (2)
  )
  GO
  --TABLA DETALLEBOLETA
  CREATE TABLE DETALLEBOLETA (
  NRO_BOLETA         CHAR (6)       NOT NULL           REFERENCES BOLETA,
  CODIGO_PRO         CHAR (6)       NOT NULL           REFERENCES PRODUCTO,
  CANTID_DET         INT            NOT NULL,
  PRECIO_DET         MONEY
  PRIMARY KEY (NRO_BOLETA, CODIGO_PRO)
  )
  GO
Elaborado por: Equipo de Docentes                                                    Pág. 3
                                                                           Base de datos
Diagrama Entidad Relación del caso: MINIMARKET
Nota: El siguiente caso debe desarrollar el docente con los estudiantes.
CASO PROPUESTO 01: NEGOCIOS
Implementaremos un script de SQL Server que permita crear la base de datos BD_NEGOCIOS.
Para ello se cuenta con el siguiente diagrama:
Elaborado por: Equipo de Docentes                                                 Pág. 4
                                                                                     Base de datos
Usando TRANSACT/SQL, realice lo siguiente:
  1. Cree la base de datos BD_NEGOCIOS de manera estándar
  2. Active la base de datos BD_NEGOCIOS
  3. Valide la existencia de la base de datos.
  4. Cree las tablas mostradas
  5. Agregue las llaves Primarias (ADD PRIMARY KEY)
  6. Agregue las llaves Foráneas, Relaciones (ADD FOREIGN KEY – REFERENCES)
  7. Agregue el campo email a la tabla cliente de tipo varchar y de longitud 35.
  8. Agregue el campo sexo a la tabla cliente de tipo char y de longitud 1.
  9. Elimine los campos valor de compra y fecha de compra de la tabla producto.
  10. Asigne de manera correcta los tipos de datos a cada uno de los campos de la tabla.
  11. Asigne de manera correcta los valores nulos y no nulos según corresponda.
  12. Visualice el diagrama implementado en SQL Server.
Nota: La clave primaria y foránea debe asignar después de crear las tablas (Utilice ALTER)
                                       Aprender sin reflexionar es malgastar la energía.
                                                           Confucio
Elaborado por: Equipo de Docentes                                                            Pág. 5