SQL Schema

The following is a conversion from Relational to Oracle SQL syntax. Note the attribute-based checks in episodes and series, and the use of REFERENCES for the tables representing the relations. Also, note that the maximum length of VARCHAR2's in Oracle is 4000.

CREATE TABLE episodes (
        title varchar(255),
        airdate DATE,
        quality int CHECK(quality >= 0 AND quality <= 10),
        description VARCHAR2(4000),
        multimediaURL varchar(512),
        season int,
        seriesTitle varchar(255) REFERENCES series(title),
        seriesCreator varchar(255) REFERENCES series(creator),
        PRIMARY KEY(seriesTitle, seriesCreator, title)
);
 

CREATE TABLE studios (
        name varchar(255),
        address varchar(512),
        website varchar(512),
        PRIMARY KEY (name)
);

CREATE TABLE series (
        title varchar(255),
        creator varchar(255),
        website varchar(512),
        startdate DATE,
        enddate DATE,
        CHECK (startdate <= enddate),
        PRIMARY KEY (title, creator)
);

CREATE TABLE actors (
        name varchar(255),
        website varchar(512),
        PRIMARY KEY (name)
);

CREATE TABLE characters (
        name varchar(255),
        titleOrRole varchar(255),
        seriesTitle varchar(255) REFERENCES series(title),
        seriesCreator varchar(255) REFERENCES series(creator),
        PRIMARY KEY (seriesTitle, seriesCreator, name)
);
 

CREATE TABLE featuring (
        characterName varchar(255) REFERENCES characters(name),
        episodeTitle varchar(255) REFERENCES episodes(title),
        seriesTitle varchar(255) REFERENCES series(title),
        seriesCreator varchar(255) REFERENCES series(creator),
        PRIMARY KEY (characterName, episodeTitle, seriesTitle, seriesCreator)
);

CREATE TABLE produces (
        studioName varchar(255) REFERENCES studios(name),
        seriesTitle varchar(255) REFERENCES series(title),
        seriesCreator varchar(255) REFERENCES series(creator),
        PRIMARY KEY (studioName, seriesTitle, seriesCreator)
);

CREATE TABLE starring (
        actorName varchar(255) REFERENCES actors(name),
        seriesTitle varchar(255) REFERENCES series(title),
        seriesCreator varchar(255) REFERENCES series(creator),
        PRIMARY KEY (actorName, seriesTitle, seriesCreator)
);

CREATE TABLE plays (
        actorName varchar(255) REFERENCES actors(name),
        characterName varchar(255) REFERENCES characters(name),
        seriesTitle varchar(255) REFERENCES series(title),
        seriesCreator varchar(255) REFERENCES series(creator),
        PRIMARY KEY (actorName, characterName, seriesTitle, seriesCreator)
);