Documente Academic
Documente Profesional
Documente Cultură
Ejercicio 1:
Cree las tablas basadas en los diagramas de instancia de tablas siguient
es. Elija los tipos de datos apropiados
y asegúrese de agregar las restricciones de integridad.
Ejercicio 1.a Nombre de la tabla: MEMBER
Diagrama de Instancia de la Tabla MEMBER
----------------------------------------
NOMBRE_COLUMNA: MEMBER_ID LAST_NAME FIRST_NA
ME ADDRESS CITY PHONE JOIN_DATE
TIPO_DE_CLAVE: PK
NULL/UNIQUE: NN, U NN
NN
VALOR_PREDEFINIDO:
FECHA DEL SISTEMA
TIPO_DE_DATO: NUMBER VARCHAR2 VARCHAR2
VARCHAR2 VARCHAR2 VARCHAR2 DATE
TAMAÑO: 10 25 25
100 30 15
SQL> CREATE TABLE MEMBER (
MEMBER_ID NUMBER( 10 ),
LAST_NAME VARCHAR2( 25 ) NOT NULL
,
FIRST_NAME VARCHAR2( 25 ) NOT NULL
,
ADDRESS VARCHAR2( 100 ),
CITY VARCHAR2( 30 ),
PHONE VARCHAR2( 15 ),
JOIN_DATE DATE DEFAULT SYSDATE NOT NULL
,
CONSTRAINT MEMBER_MEMBER_ID_PK PRIMARY
KEY( MEMBER_ID ) );
SQL> save p15_1_a.sql
Nota: Al definir la Restricción de Clave Primaria sobre la columna
MEMBER_ID, no hace falta volver a definir la otra
restricción de clave única.
Ejercicio 1.b: Nombre de la tabla: TITLE
Diagrama de Instancia de la Tabla TITLE
----------------------------------------
NOMBRE_COLUMNA: TITLE_ID TITLE DESCRIPT
ION RATING CATEGORY RELEASE_DATE
TIPO_DE_CLAVE: PK
NULL/UNIQUE: NN, U NN NN
CHECK:
G, PG, R, DRAMA,
NC17, NR COMEDY,
ACTION,
CHILD,
SCIFI,
DOCUMENTARY
TIPO_DE_DATO: NUMBER VARCHAR2 VARCHAR2
VARCHAR2 VARCHAR2 DATE
TAMAÑO: 10 60 400
4 20
SQL> CREATE TABLE TITLE (
TITLE_ID NUMBER( 10 ) NOT NULL
,
TITLE VARCHAR2( 60 ) NOT NULL
,
DESCRIPTION VARCHAR2( 400 ) NOT NULL
,
RATING VARCHAR2( 4 ),
CATEGORY VARCHAR2( 20 ),
RELEASE_DATE DATE,
CONSTRAINT TITLE_TITLE_ID_PK PRIMARY
KEY( TITLE_ID ),
CONSTRAINT TITLE_RATING_CK CHECK( R
ATING IN ('G', 'PG', 'R', 'NC17', 'NR' ) ),
CONSTRAINT TITLE_CATEGORY_CK CHECK( C
ATEGORY IN ('DRAMA', 'COMEDY', 'ACTION', 'CHILD', 'SCIFI', 'DOCUMENTARY') ) );
SQL> save p15_1_b.sql
Ejerci
cio 1.c:
Nombre de la tabla: TITLE_COPY
Diagrama de Instancia de la Tabla TITLE_COPY
--------------------------------------------
NOMBRE_COLUMNA: COPY_ID TITLE_ID
STATUS
TIPO_DE_CLAVE: PK PK, FK
NULL/UNIQUE: NN, U NN, U
NN
CHECK:
AVAILABLE,
DESTROYED,
RENTED,
RESERVED
FK_TABLA_REFERENCIADA: TITLE
FK_COLUMNA_REFERENCIADA: TITLE_ID
TIPO_DE_DATO: NUMBER NUMBER
VARCHAR2
TAMAÑO: 10 10
15
SQL>CREATE TABLE TITLE_COPY
(
COPY_ID NUMBER( 10 ) NOT NULL,
TITLE_ID NUMBER( 10 ) NOT NULL
CONSTRAINT TITLE_COPY_TITLE_ID_FK REFERENCES TITLE( TITLE_ID ),
STATUS VARCHAR2( 15 ) NOT NULL,
CONSTRAINT TITLE_COPY_COPY_ID_TITLE_ID_PK
PRIMARY KEY ( COPY_ID, TITLE_ID ),
CONSTRAINT TITLE_COPY_STATUS_CK
CHECK( STATUS IN ('AVAILABLE', 'DESTROYED', 'RENTED', 'RESERVED') )
);
SQL> save p15_1_c.sql
Ejercicio 1.d:
Nombre de la tabla: RENTAL
Diagrama de Instancia de la Tabla RENTAL
--------------------------------------------
NOMBRE_COLUMNA: BOOK_DATE MEMBER_I
D COPY_ID ACT_RET_DATE EXP_RET_DATE TITLE_ID
TIPO_DE_CLAVE: PK PK, FK1
PK, FK2 PK, FK2
VALOR_PREDEFINIDO: Fecha de Sistema
Fecha de Sistema + 2 días
FK_TABLA_REFERENCIADA: MEMBER
TITLE_COPY TITLE_COPY
FK_COLUMNA_REFERENCIADA: MEMBER_I
D COPY_ID TITLE_ID
TIPO_DE_DATO: DATE NUMBER
NUMBER DATE DATE NUMBER
TAMAÑO: 10
10 10
SQL> CREATE TABLE RENTAL
(
BOOK_DATE DATE DEFAULT SYSDATE,
MEMBER_ID NUMBER( 10 ),
COPY_ID NUMBER( 10 ),
ACT_RET_DATE DATE,
EXP_RET_DATE DATE DEFAULT (SYSDATE
+ 2),
TITLE_ID NUMBER( 10 ),
CONSTRAINT RENTAL_BD_MI_CI_TI_PK
PRIMARY KEY( BOOK_DATE, MEMBER_ID, COPY_ID, TITLE_ID ),
CONSTRAINT RENTAL_MEMBER_ID_FK_1
FOREIGN KEY( MEMBER_ID ) REFERENCES MEMBER ( MEMBER_ID ),
CONSTRAINT RENTAL_COPY_ID_TITLE_ID_FK_2
FOREIGN KEY( COPY_ID, TITLE_ID ) REFERENCES TITLE_COPY( COPY_ID, TITLE_ID )
);