
实验4(推荐文档).docx
11页实验四 数据库设计实验项目名称:数据库设计实验项目性质:综合型所属课程名称: 《数据库原理》实验计划学时: 4一、实验目的学习数据库原理及应用目的就是能创建和管理一个真实的数据库,通过规划设计一个小型数据库系统让学生掌握数据库规划设计的基本技术,熟悉数据库的设计的基本方法和步骤,明白数据库设计各阶段的任务,加深对数据库系统概念和特点的理解二、实验内容和要求根据你熟悉的实际情况, 选一个小型的数据库应用项目, 销售管理系统, 进行系统分析和数据库设计要求:1 、规划设计一个小型系统的数据库,按照给定要求,对各设计阶段进行描述,要求给出数据库设计的 E-R 图,并将 E-R 图转换成相应的模型,编制 SQL 命令脚本2 、要求:数据库结构严谨、基本表及属性合理、各种约束条件正确3 、涉及的内容或知识点:数据库设计的需求分析、数据模型、关系规范化理论4 、采用的方法和手段:设计数据模型、进行关系规范化处理和用软件实现数据库的构建三、实验主要仪器设备和材料1.计算机及操作系统:PC 机, Windows xp;2.数据库管理系统:SQL server 2005 ;四、实验设计a) 系统需求分析:通过信息建模的方式销售管理系统的实体有:客户 属性有客户号,客户名称,客户,客户地址供应商 属性有供应商号,供应商名称,供应商,供应商地址,供应商品类型商品 属性有商品号,商品名称,商品数量,商品类型,商品单价订单 属性有订单号,订购客户,订购商品,订购数量,订购总价商品类型 属性有商品类型号, 商品类型名信誉等级 属性有客户号,信誉度实体间的联系如下:1. 一个客户可以下多个订单, 一个订单对应一个客户, 所以,客户与订单之间是 1 对多的关系。
2. 一个客户对应一个信誉等级,所以,客户与信誉等级之间是 1 对 1 的关系3. 一个供应商可以提供多个商品, 一个商品对应一个供应商, 所以,供应商与商品之间的关系式 1 对多的关系4.一个商品类型包括多个商品,一个商品包含在一个商品类型里边,所以, 商品类型与商品之间的关系式 1 对多的关系5.一个订单可以订购多个商品,一个商品可以被多个订单订购,所以, 订单和商品之间的关系式多对多的关系6. 一个供应商对应多个商品类型,一个商品类型对应多个供应商,所以, 供应商和商品类型之间为多对多的关系b) 下面给出销售管理系统的E-R图:M订购 订单MNM 落订供应 商品1M1客户供应商供应1对应M11供应商品类型信誉等级Nc) 所需数据库表创建 customer 表(客户表)字段名代码类型约束客户号CnoChar(8)主键客户名称CnameChar(8)非空客户CphoneChar(11)客户地址CaddressChar(40)创建 supplier 表(供应商表)字段名代码类型约束供应商号SnoChar(7)主键供应商名称SnameChar(8)非空供应商SphoneChar(11)供应商地址SaddressChar(40)供应商品类型 Gtype创建 goods 表(商品信息表)字段名 代码商品号 Gno商品名称 Gname商品数量 Gamount商品类型 Gtype商品供应商 Sno商品单价 Gprice创建 orader 表里(订单表)字段名 代码订单号 Ono订购商品 Gno订购客户 Cno订购数量 Oamount订购总价 Oprice创建 creditgrade 表(信誉等级表)字段名代码类型客户号CnoChar(8)信誉度CreditChar(4)Char(6) 外键类型 约束Char(10) 主键Char(20) 非空Char(10)Char(6) 外键Char(7) 外键Char(10)类型 约束Char(8) 主键Char(10) 外键,非空Char(8) 外键,非空Char(8) 非空Char(10)约束主键,与 customer 表中 Cno 外键关联,级联删除创建 goodstype 表(商品类型表)字段名代码类型约束商品类型号GtypeChar(6)主键商品类型名GtypenameChar(20)非空d) 创建数据库和表。
1、创建数据库代码:CREATE DATABASE SALES ;2、创建表创建 customer 表:USE SALESGOCREATE TABLE customer(Cno char(8) PRIMARY KEY ,Cname char(8) UNIQUE ,Cphone char(11),Caddress char(40));创建 supplier 表:USE SALESGOCREATE TABLE supplier(Sno char(7) PRIMARY KEY ,Sname char(8) UNIQUE ,Sphone char(11),Saddress char(40),Gtype char(6),FOREIGN KEY (Gtype) REFERENCES goodstype (Gtype));创建 goods 表 :USE SALESGOCREATE TABLE goods(Gno char(10) PRIMARY KEY ,Gname char(20) UNIQUE ,Gamount char(10),Gtype char(6),Sno char(7),FOREIGN KEY (Gtype) REFERENCES goodstype (Gtype),FOREIGN KEY (Sno) REFERENCES supplier (Sno));查询视图 SQL 语句及执行结果截图查询视图 SQL 语句及执行结果截图查询视图 SQL 语句及执行结果截图查询视图 SQL 语句及执行结果截图创建 orader 表里 :USE SALESGOCREATE TABLE orader(Ono char(8) PRIMARY KEY ,Gno char(10) UNIQUE ,Cno char(8) UNIQUE ,Oamount char(6) UNIQUE ,FOREIGN KEY (Gno) REFERENCES goods(Gno),FOREIGN KEY (Cno) REFERENCEScustomer (Cno));查询视图 SQL 语句及执行结果截图创建 creditgrade 表:USE SALESGOCREATE TABLE creditgrade(Cno char(8) PRIMARY KEY ,Credit char(4),FOREIGN KEY (Cno) REFERENCEScustomer (Cno)ON DELETE CASCADEON UPDATE CASCADE);查询视图 SQL 语句及执行结果截图创建 goodstype 表:USE SALESGOCREATE TABLE goodstype(Gtype char(6) PRIMARY KEY ,Gtypename char(20) UNIQUE);3、数据库关系模式图:4、插入 5 组数据进各个表里边插入 customer 表:USE SALESGOINSERT INTO customerSELECT '20101101','小张 ','39343301','广州市 'UNION ALLSELECT '20101102','小李 ','39342211','广州市 'UNION ALLSELECT '20101103','小新 ','39341105','东莞市 'UNION ALLSELECT '20101104','小红 ','39343310','深圳市 'UNION ALLSELECT '20101105','小曾 ','39345566','广州市 '查询视图 SQL 语句及执行结果截图插入 supplier 表:USE SALESGOINSERT INTO supplierSELECT '1111001','欧莱雅 ','66921234','北京市 ','00000'UNION ALLSELECT '1111002','红苹果 ','33942321','广州市 ','00004'UNION ALLSELECT '1111003','联想 ','42574321','东莞市 ','00002'UNION ALLSELECT '1111004','以纯 ','22008800','福州市 ','00003'UNION 。












