内容发布更新时间 : 2024/12/23 10:49:24星期一 下面是文章的全部内容请认真阅读。
实验项目名称:数据库设计实验 实验学时: 4 同组学生姓名: 孟陈、陈晓雪、季佰军 实验地点: 1318 实验日期: 6.16 实验成绩: 批改教师: 批改时间:
一、实验目的和要求
掌握数据库设计基本方法及数据库设计工具。
二、实验内容及过程
掌握数据库设计基本步骤,包括数据库概念结构设计、逻辑结构设计,物理结构设计,
数据库魔石SQL语句生成。能够使用数据库设计工具进行数据库设计。
三、实验结果与分析
设计一个采购、销售和客户管理应用数据库。其中,一个供应商可以供应多种零件,一种零件也可以有多个供应商。一个客户订单可以订购多种供应商供应的零件。客户和供应商都分属不同的国家,而国家按世界五大洲八大洋划分地区。请利用PowerDesigner或者ERwin等数据库设计工具设计该数据库。
(1)数据库概念结构设计
① 零件Part:零件编号partkey、零件名称name、零件制造商mfgr、品牌brand、类型type、大小Size、零售价格retailprice、包装container、备注comment。主码:零件编号partkey。 create table part (
partkey int primary key, name char(20), mfgr char(100), brand char(20), type char(10), Sizee int, retailprice int,
comment varchar(150), container char(20)); ② 供应商Supplier:供应商编号suppkey、客户名称name、地址address、国籍nation、电话phone、备注comment等。主码:供应商编号suppkey。 create table supplier (
suppkey int primary key, name char(20), address varchar(50), nationkey int,
foreign key(nationkey) references nation(nationkey), phone char(20), comment varchar(200) );
③ 客户Customer:客户编号custkey、客户名称name、地址address、电话phone、国籍nation、备注comment。主码:客户编号custkey。
create table customer ( orderkey int primary key,
status char(20) check ( status in ( \ totalprice int, orderdate DATE, comment varchar(200), orderpriority int check ( orderpriority> 0 and orderpriority <3 ), shippriority int check ( shippriority> 0 and shippriority <3 ), clerk int );
④ 订单Order:订单编号orderkey、订单状态status、订单总价totalprice、订单日期order-date、订单优先级orderpriority、记账员clerk、运送优先级视频priority、备注comment。主码:订单编号orderkey。
⑤ 订单项Lineitem:订单项编号linenumber、所订零件号partkey、所订零件供应商号suppkey、零件数量quantity、零件总价extendedprice、折扣discount、税率tax、退货标记returnflag等。主码:订单项编号linenumber。
create table lineitem( linenumber int primary key, partkey int, foreign key(partkey) references part(partkey), suppkey int, foreign key(suppkey) references supplier(suppkey), quantity int, extendedprice long, discount long, tax float, returnflag char(1) check ( returnflag in ('N' or 'Y')) );
⑥ 国家Nation:国家编号nationkey、国家名称name、所属地区region、备注comment。主码:国家编号nationkey。
create table nation( nationkey int primary key, name char(15), regionkey int, foreign key(regionkey) references region(regionkey), comments varchar(200) );
⑦ 地区Region:地区编号regionkey、地区名称name、备注comment。主码:地区编号regionkey。
create table region ( regionkey int primary key, name char(20), comments varchar(200) );
根据实际语义,分析实体之间的联系,确定实体之间一对一,一对多和多对多联系。
实体-联系图(E-R图)如下:
OrderPartmPurchase1Customer11mBelong to1NationmBelong tompPartSuppn1IncludeLineitem1mBelong to1RegionSupplierm
(2)数据库逻辑结构设计
按照数据库设计原理中概念结构转化成逻辑结构的规则,每个实体转换成一个关系,多
对多的联系也转换成一个关系。因此,根据上述E-R图设计数据库逻辑结构(参见实
验1.1数据库定义中的图2TPC-H数据库模式图)。 (3)数据库物理结构设计
数据库物理结构首先根据逻辑结构自动转换生成,然后根据应用需求设计数据库的索引
结构、存储结构。
(4)数据库模式SQL语句参见实验1.1数据库定义。
四、实验总结
通过本次实验我基本掌握了数据库设计的基本步骤,包括数据库概念结构设计、逻辑结构设计、物理结构设计和数据库模式sql语句生成。并且学会了使用数据库设计的工具。