当今社会,人们的日常生活越来越丰富,小型音像租赁店逐渐成长起来,业务量也在不断扩大,传统低效的人工管理已经不合时宜。可以通过 建立一个 易于访问并便于更新的 音像租赁数据库管理系统,实现 随时掌握影碟租赁的情况, 管理顾客, 快速有效地 查询顾客
当今社会,人们的日常生活越来越丰富,小型音像租赁店逐渐成长起来,业务量也在不断扩大,传统低效的人工管理已经不合时宜。可以通过建立一个易于访问并便于更新的音像租赁数据库管理系统,实现随时掌握影碟租赁的情况,管理顾客,快速有效地查询顾客租赁记录和电影出租记录等功能。
1 系统需求分析
1.1本系统的业务和任务
音像租赁店承接影碟的租借和归还业务,它的任务是为所有的会员提供优质服务,方便快捷地完成影碟租赁业务。
1.2信息需求
音像租赁店需要掌握其所拥有的所有的电影的信息,包括编号、名字、类型、国家、导演、演员等,可以存储为DVD或者VHS格式,因此每个电影都有其对应的DVD或VHS编号。每部电影会有多个拷贝,并且每部电影至少有一个DVD或者VHS版本。每一个DVD或者VHS都是某一个单独特定的电影的拷贝,即一部电影不会需要多张DVD或者VHS。
还需要跟踪每部电影中的明星演员。顾客希望知道每一个演员的信息,包括演员的艺名、真实的名字和生日等。
音像租赁店需要掌握每一位成为会员的顾客的详细信息,包括他们的名和姓,电话号码和当前住址等。
最重要的是,音像租赁店要跟踪每一个会员的租赁情况,包括该会员当前租赁了什么电影,租借日期和归还日期等。在任何时间,顾客可以租赁多个DVD和磁带。通过了解租赁历史,音像租赁店还能够分析其租赁模式,如可以确定每一个会员租借了多少个DVD/tapes, 以及每个会员推迟归还的次数,也能知道每个特定的DVD或者tape被使用的次数,从而确定它什么时候报废,也能分析音像租赁店会员的整体的电影喜好。
1.3本系统的业务规则
音像租赁店店主或管理员可为任何会员提供服务,会员是指加入video club的顾客。店主或管理员能够根据需要输入、保存和查询每张影碟及每位会员的相关信息。
采用Oracle SQL developer data modeler设计,进而生成代码。
由于不能插入图片等内容,先只发布生成的代码。
第一次发布内容,高手见笑了
-- Generated by Oracle SQL Developer Data Modeler 3.0.0.653 -- at: 2012-09-06 12:18:46 CST -- site: Oracle Database 10g -- type: Oracle Database 10g CREATE TABLE actor ( actor_id INTEGER NOT NULL , actor_name VARCHAR2 (20 CHAR) NOT NULL , actor_first_name VARCHAR2 (20 CHAR) NOT NULL , actor_last_name VARCHAR2 (20 CHAR) NOT NULL , actor_birthday DATE ) ; ALTER TABLE actor ADD CONSTRAINT actor_PK PRIMARY KEY ( actor_id ) ; CREATE TABLE actorlist ( actorlist_datetime DATE NOT NULL , actor_actor_id INTEGER NOT NULL , cinema_cinema_is INTEGER NOT NULL ) ; CREATE TABLE cinema ( cinema_is INTEGER NOT NULL , cinema_name VARCHAR2 (10 CHAR) NOT NULL , cinema_type VARCHAR2 (10 CHAR) NOT NULL , cinema_country VARCHAR2 (20 CHAR) NOT NULL , type_type_id INTEGER NOT NULL ) ; ALTER TABLE cinema ADD CONSTRAINT cinema_PK PRIMARY KEY ( cinema_is ) ; CREATE TABLE customer ( customer_id INTEGER NOT NULL , customer_first_name VARCHAR2 (20 CHAR) NOT NULL , customer_last_name VARCHAR2 (20 CHAR) NOT NULL , customer_phone_number VARCHAR2 (20 CHAR) NOT NULL , customer_address VARCHAR2 (40 CHAR) NOT NULL ) ; ALTER TABLE customer ADD CONSTRAINT customer_PK PRIMARY KEY ( customer_id ) ; CREATE TABLE rental ( rental_datetime DATE NOT NULL , return_datetime DATE , customer_customer_id INTEGER NOT NULL , video_video_id INTEGER NOT NULL ) ; ALTER TABLE rental ADD CONSTRAINT rental_PK PRIMARY KEY ( rental_datetime ) ; CREATE TABLE type ( type_id INTEGER NOT NULL , type_description VARCHAR2 (40 CHAR) ) ; ALTER TABLE type ADD CONSTRAINT type_PK PRIMARY KEY ( type_id ) ; CREATE TABLE video ( video_id INTEGER NOT NULL , video_format VARCHAR2 (10 CHAR) NOT NULL , video_deadline DATE NOT NULL , cinema_cinema_is INTEGER NOT NULL ) ; ALTER TABLE video ADD CONSTRAINT video_PK PRIMARY KEY ( video_id ) ; ALTER TABLE actorlist ADD CONSTRAINT actorlist_actor_FK FOREIGN KEY ( actor_actor_id ) REFERENCES actor ( actor_id ) ; ALTER TABLE actorlist ADD CONSTRAINT actorlist_cinema_FK FOREIGN KEY ( cinema_cinema_is ) REFERENCES cinema ( cinema_is ) ; ALTER TABLE cinema ADD CONSTRAINT cinema_type_FK FOREIGN KEY ( type_type_id ) REFERENCES type ( type_id ) ; ALTER TABLE rental ADD CONSTRAINT rental_customer_FK FOREIGN KEY ( customer_customer_id ) REFERENCES customer ( customer_id ) ; ALTER TABLE rental ADD CONSTRAINT rental_video_FK FOREIGN KEY ( video_video_id ) REFERENCES video ( video_id ) ; ALTER TABLE video ADD CONSTRAINT video_cinema_FK FOREIGN KEY ( cinema_cinema_is ) REFERENCES cinema ( cinema_is ) ; -- Oracle SQL Developer Data Modeler Summary Report: -- -- CREATE TABLE 7 -- CREATE INDEX 0 -- ALTER TABLE 12 -- CREATE VIEW 0 -- CREATE PACKAGE 0 -- CREATE PACKAGE BODY 0 -- CREATE PROCEDURE 0 -- CREATE FUNCTION 0 -- CREATE TRIGGER 0 -- CREATE STRUCTURED TYPE 0 -- CREATE COLLECTION TYPE 0 -- CREATE CLUSTER 0 -- CREATE CONTEXT 0 -- CREATE DATABASE 0 -- CREATE DIMENSION 0 -- CREATE DIRECTORY 0 -- CREATE DISK GROUP 0 -- CREATE ROLE 0 -- CREATE ROLLBACK SEGMENT 0 -- CREATE SEQUENCE 0 -- CREATE MATERIALIZED VIEW 0 -- CREATE SYNONYM 0 -- CREATE TABLESPACE 0 -- CREATE USER 0 -- -- DROP TABLESPACE 0 -- DROP DATABASE 0 -- -- ERRORS 0 -- WARNINGS 0