大型数据库技术项目
舰队管理系统分析与设计
舰队管理系统
1
导弹巡洋舰 中国:无 美国:
护卫舰: 中国:
2. 舰艇信息管理 3. 兵官信息管理 4. 武器信息管理 同时在该四个系统中要分别进行插入,查询,修改等修改。 2.1
(2) 一个舰队只能有一个舰队名称,一个舰队名称只能属于一个舰队; (3) 一艘舰艇属于一支舰队; (4) 一艘舰艇只能有一个舰艇编 ,一个舰艇编 只能属于一艘舰艇; (5) 一艘舰艇可以安装多种武器; (6) 一种武器可安装于多艘舰艇上; (7) 一种武器只能有一个武器名称,一个武器名称只能属于一种武器; (8) 一艘舰艇有多个官兵; (9) 一个官兵只属于一艘舰艇; (10) 一个官兵只有一个证 ,一个证 只属于一个官兵。 通过与用户的沟通,获得系统的数据存储需求如下: 舰队方面 舰队:舰队名称、基地地点、舰艇数量 舰艇:舰艇编 、舰艇名称、舰队名称、士兵数量、武器数量、舰艇功能 舰艇方面 舰艇:舰艇编 、舰艇名称、武器名称、士兵数量、武器数量、舰艇功能 武器:武器型 、武器名称、武器生产时间、武器功能、武器名称、武器价格 官兵:官兵证 、舰艇编 、官兵姓名、工资、家乡地、年龄、性别 3.1
数据项:舰艇数量 含义说明:舰艇的数量 别名:舰艇数 类型:数值型 长度:小数位数
数据项:舰艇名称 含义说明:每艘舰艇的名称 别名:舰艇名 类型:字符型 长度:
数据项:武器生产时间 含义说明:每种武器的出厂日期 别名:武器出产日 类型:日期型 数据项:官兵证 含义说明:唯一标识每位官兵 别名:官兵 类型:字符型 3.2.2数据结构: 数据结构:舰队 含义说明:舰队管理系统的主体数据结构,定义一个舰队有关信息 组成:舰队名称、基地地点、舰艇数量 数据结构:舰艇 含义说明:舰队管理系统的主体数据结构,定义一个舰艇的有关信息 组成:舰艇编 、舰艇名称、舰队名称、士兵数量、武器数量、舰艇功能 数据结构:武器 含义说明:舰队管理系统的主体数据结构,定义一种武器的有关信息 组成:武器型 、武器名称、武器生产时间、武器功能、武器名称、武器价格 数据结构:官兵 含义说明:舰队管理系统的主体数据结构,定义一个官兵的有关信息 组成:官兵证 、舰艇编 、官兵姓名、工资、家乡地、年龄、性别 3.2.3数据流: 数据流:安装 说明:舰艇上安装武器 数据流去向:舰艇 组成:武器名称,舰艇编 ,安装时间 平均流量:…… 高峰期流量:…… 数据流:拥有 说明:舰队拥有舰艇的数量 数据流去向:舰队 组成:舰艇数量 平均流量:…… 高峰期流量:…… 数据流:属于 说明:舰艇上的官兵 数据流去向:舰艇 平均流量:…… 高峰期流量:…… 3.2.4数据存储: 数据存储:武器信息表 说明:记录武器的基本信息 流入数据流:…… 流出数据流:舰艇 组成:武器型 、武器名称、武器生产时间、武器功能、武器名称、武器价格 数据量:…… 存取方式:随机存取 数据存储:舰艇信息表 说明:记录舰艇的基本信息 流入数据流:…… 流出数据流:舰队 组成:舰艇编 、舰艇名称、舰队名称、士兵数量、武器数量、舰艇功能 数据量:…… 存取方式:随机存储 数据存储:官兵信息表 说明:记录官兵的基本信息 流入数据流:…… 流出数据流:舰艇 组成:官兵证 、舰艇编 、官兵姓名、工资、家乡地、年龄、性别 数据量:…… 存取方式:随机存取 数据存储:舰队信息表 说明:记录舰队基本信息 流入数据:舰艇 流出数据:…… 组成:舰队名称、基地地点、舰艇数量 数据量:…… 存取方式:随机存储 3.2.5处理过程: 处理过过程:武器对舰艇的安装 说明:为每艘舰艇安装武器 输入:舰艇编 、武器名称 输出:武器安装 处理:一种武器可安装于多艘舰艇上,一种武器只能有一个武器名称,一个武器名称只能属于一种武器。 处理过程:舰艇对官兵的分配 说明:为每艘舰艇分配官兵 输入:官兵证 、姓名、舰艇编 输出:舰艇名 处理:一艘舰艇有多个官兵,一个官兵只能属于一艘舰艇。 处理过程:舰队对舰艇的分配 说明:为每支舰队分配舰艇 输入:舰艇编 、舰队名称 输出:舰队名称 处理:一支舰队有多艘舰艇,一艘舰艇只能属于一支舰队 4CDM: 4.2舰队实体 4.3
4.6
(2) 使用所选的 2) 4) 6) 8) 10) ( 5.4数据库模式的定义 舰队基本信息表 列名 数据类型 可否为空 说明 FLEET_NAME CHAR(30) NOT NULL 舰队名 WARSHIP_COUNT NUMBER(38) 舰艇数量 BASE CHAR(40) NOY NULL 基地 舰艇基本信息表 列名 数据类型 可否为空 说明 WARSHIP_NUM CHAR(30) NOT NULL 舰艇编 FLEET_NAME CHAR(30) 舰队名 WARSHIP_NAME CHAR(30) NOT NULL 舰艇名 SOLDIERS_COUNT NUMBER(38) 士兵数量 WEAPON_COUNT NUMBER(38) 武器数量 WARSHIP_FUNCTION CHAR(50) NOT NULL 舰艇功能 士兵基本信息表 列名 数据类型 可否为空 说明 SOLDIER_NUM CHAR(30) NOT NULL 士兵名 WARSHIP_NUM CHAR(30) 舰艇编 SOLDIERS_NAME CHAR(20) NOT NULL 士兵名 SOLDIERS_SEX CHAR(2) 士兵性别 SOLDIERS_AGE NUMBER(38) 士兵年龄 SOLDIERS_HOME CHAR(50) 家乡地 SOLDIERS_SAL NUMBER(38) 工资 武器基本信息表 列名 数据类型 可否为空 说明 WEAPON_NUM CHAR(30) NOT NULL 武器编 WEAPON_NAME CHAR(50) NOT NULL 武器名 WEAPON_DATE DATE 生存日期 WEAPON_FUNCTION CHAR(50) NOT NULL 武器功能 WEAPON_PRICE NUMBER(38) 价格 安装信息表 列名 数据类型 可否为空 说明 WAESHIP_NUM CHAR(30) NOT NULL 舰艇编 WEAPON_NUM CHAR(30) NOT NULL 武器编 INSTALL_DATE DATE NOT NULL 安装日期 六、数据库物理设计 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。 6.1数据库物理设计的步骤 (1) 确定数据库的物理结构,在关系数据库中的主要指存储方法和存储结构。 (2) 对物理就够进行评价,评价的重点是时间效率。 如果评价的结果满足原设计的要求,则可进入物理实施阶段,否则需重新设计或修改物理结构,有时甚至应返回逻辑设计阶段,修改数据模型。 关系数据库物理设计的内容:为关系模型选择存取方法(建立存取路径);设计关系,索引等数据库文件的物理存储结构。 6.2索引已创建。 查找当舰艇名为两栖攻击舰时的舰艇编 和舰艇功能,就可以很快速的得到以下信息: (2)
6.3确定数据库的存储结构 主要是指确定数据的存放位置和存储结构,包括关系,索引,聚簇,日志,备份等的存储安排和存储结构:确定系统的配置等。确定数据的存放位置和存储结构要综合考虑存取时间,空间,维护代价三方面,这三方面常常是相互矛盾的,如消除一切冗余数据虽能够节约存储时间和减少维护代价,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中的方案。 (1) 确定数据的存放位置:根据应用情况将数据的异变部分与稳定部分、经常存取部分与存取频率较低部分分开存放,以提高系统性能。例如,数据库数据备份、日志文件备等由于只在故障恢复时才使用,而且数据量很大,可以考虑存放在磁带上:如果计算机有多个磁盘,可以考虑将表和索引部分分别存放在不同的磁盘上,查询时由于两个磁盘在工作,因而可以保证物理读写速度比较快:可以将较大的表分别放在两个磁盘上,以加快存取速度,在多用户环境下特别有效:可以将日志文件与数据库对象(表和索引)放在不同的磁盘上以改进系统性能。 (2) 确定系统配置
2. 应用程序的编制与调试 7.2
(2) 数据库的安全性、完整性控制 (3) 数据库的监督、分析和改进 (4) 数据库的重组织和重构造 7.4创建表空间: SQL> create tablespace wqh_tablespace 2 datafile ‘f:wqh_tablespace01.dbf’ size 100m 3 extent management local 4 segment space management auto; 表空间已创建。 为了防止在使用过程中表空间不足,则可以为它添加新的数据文件以增大表空间
已连接。 SQL> grant create view to wqh; 授权成功。 SQL> grant create synonym to wqh; 授权成功。 7.7创建用户配置文件: 创建一个名为
2 sessions_per_user 5 connect_time 60 3 idle_time 30 private_sga 100k 4 cpu_per_call 100; 配置文件已创建 修改用户为用户指定概要文件: SQL> alter user wqh profile res_profile; 用户已更改。 7.8从
( Fleet_name char(30) not null, Warship_count integer null, base char(40) not null, constraint PK_FLEET primary key (Fleet_name) ); 舰艇表: create table Warship_ship ( Warship_num char(30) not null, Fleet_name char(30) null, Warship_name char(30) not null, Soldiers_count numeric null, Weapon_count numeric null, Warship_function char(50) not null, constraint PK_WARSHIP_SHIP primary key (Warship_num) ); 为舰艇表添加Fleet_name外键 alter table Warship_ship add constraint FK_WARSHIP__HAVE_FLEET foreign key (Fleet_name) references Fleet (Fleet_name); 士兵表: create table Soldiers ( Soldier_num char(30) not null, Warship_num char(30) null, Soldiers_name char(20) not null, Soldiers_sex char(2) null, Soldiers_age integer null, Soldiers_home char(50) null, Soldiers_sal numeric null, constraint PK_SOLDIERS primary key (Soldier_num) ); 为士兵表添加Warship_num外键 alter table Soldiers add constraint FK_SOLDIERS_BELONG_WARSHIP_ foreign key (Warship_num) references Warship_ship (Warship_num); 武器表: create table Weapon ( Weapon_num char(30) not null, Weapon_name char(50) not null, Weapon_date date null, Weapon_function char(50) not null, Weapon_price numeric null, constraint PK_WEAPON primary key (Weapon_num) ); 安装表: create table Install ( Warship_num char(30) not null, Weapon_num char(30) not null, Install_date date not null, constraint PK_INSTALL primary key (Warship_num, Weapon_num) ); 为安装表添加Weapon_num外键 alter table Install add constraint FK_INSTALL_IW_WEAPON foreign key (Weapon_num) references Weapon (Weapon_num); 为安装表添加Warship_num外键 alter table Install add constraint FK_INSTALL_WI_WARSHIP_ foreign key (Warship_num) references Warship_ship (Warship_num); 7.9在oracle数据库的wqh用户进行建表 如下: 创建舰队表 创建舰艇表: 为舰艇表添加
创建武器表: 创建安装表: 为安装表添加
7.10视图的创建 1. 创建一个视图,规定该视图中有士兵表中的士兵编 ,舰艇编 ,官兵姓名 2. 创建一个包含舰艇编 ,舰队名称,士兵数量,武器数量的视图。 3.
From warship_ship,fleet Where warship_ship.fleet_name=fleet.fleet_name; 查询结果如下: 4.创建一个视图,里面有信息:员工编 ,员工名 声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!