数据库设计大作业.pdf
数据库作业数据库作业教材购销系统教材购销系统1.需求分析。2.数据库设计。2.1 概念结构设计22 逻辑结构设计。2.3 物理结构设计。3.数据库实施。4.数据库运行。11 1需求分析需求分析教材购销管理系统:教材购销管理系统是帮助管理人员、教材销售和库存的管理软件。该教材购销管理系统软件目前已有比较完善的管理与使用功能,该项目的用户是学校,开发本系统是为了教材购销管理系统更完善,为了教材购销对商品库存和销售的管理更方便,为了减轻工作人员的工作负担,以现代化的创新思维模式去工作。系统的功能要求:销售子系统(1)审查有效性学生将购书单交给教材科秘书,秘书通过查阅各班学生用书表、售书登记表检查是否允许该生买书。(2)开发票如果允许学生买书,教材科会计将按购书单查阅教材存量表,如果有书且数量够,则开交款发票,否则,将购书单中无法购买的书的信息写入缺书登记表,以备以后补售教材。(3)登记并开领书单教材科出纳员根据发票上的总金额收取现金,并进行售书登记,同时开领书单,学生将领书单交给保管员,领书。(4)补售教材采购部门进书后,教材科秘书根据进书通知和缺书登记表给没买到教材的学生发补售通知单。采购子系统(1)教材入库采购员采购教材后,将进书单交给秘书,秘书修改教材库存和待购量。(2)统计秘书每月按书号和出版社统计缺书,形成待购教材表和缺书单,供采购员采购时使用。2教材保管员学生写购书单领书单,发票购买够交购书单查阅数量不够是教材科秘书检查是否允许购买教材出纳员否采购员2 2 系统设计系统设计2.12.1 概念结构设计概念结构设计E-R 图是分为两部分实体和属性,每个实体可以有多个属性,这些属性用来表示实体的性质。不同实体之间可以用关系进行连接,表明各个实体之间的内在联系。实体和实体之间的关系有一对一的关系(1:1),一对多的关系(1:N)和多对多的关系(N:M)。各个实体分 E-R 图如下图所示3实体:教材,学生,购书单,教材库书名书名出版社出版社书号书号单价单价购书单购书单图 1-1 教材 E-R 图姓名姓名性别性别学号学号班级班级学生学生专业专业年龄年龄图 1-2 学生 E-R 图书号书号购书人购书人购书单号购书单号购买数量购买数量购书单购书单图 1-3 购书单 E-R 图书号书号图书管理员图书管理员库号库号库存量库存量教材库教材库图 1-4 教材库 E-R 图4出版社名出版社名地址地址出版社号出版社号电话电话出版社出版社图 1-2 出版社 E-R 图总体 E-R 图及各个实体之间的关系如下图所示学生学生交纳交纳书费书费1教材库教材库书库填写填写n1对应对应购书单购书单nmn购书单细节购书单细节买教材买教材教材教材图 2-1教材购销管理 ER 图52.22.2 逻辑结构设计逻辑结构设计E-R 图向关系模型的转换关系模型的逻辑结构是一组关系模式的集合。E-R 图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R 图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下。1.实体类型的转换:一个实体型转换成一个关系模式。实体的属性就是关系的属性,实体的码就是关系的码。2联系类型的转换,根据不同的情况做不同的处理。一个 1:1 的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。一个:N 的联系可以转换为一个独立的关系模式,也可以与 N 端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为 N 端实体的码。一个 M:N 联系转换为一个关系模式。与该联系相连的各实体的码为各实体码的组合。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。具有相同码的关系模式可合并。3.根据销售信息管理系统的 E-R 图转换为关系模型如下。将每一个实体转换成一个关系(关系就是给出关系名,属性就是实体属性,并标明该关系的主键用下划线来表示)关系模式:学生(学号,姓名,性别,年龄,所在系,班级),主码为学号,符合三范式。购书单(购书单号,书号,购买数量,购书人学号),主码为购书单号,符合三范式。6教材库(图书管理员,库号,书号,库存量)主键为图书管理员,库号符,合三范式。教材(书号,书名,单价,出版社)主码为书号,符合三范式。2.32.3 物理结构设计物理结构设计表 3-1 学生表 Student类型长度取值范围是否非空char 10char 30char 10男、女char 101828char 10char 10NNNNNN字段名称SnoSnameSsexSgeSdeptSclass字段名称BBnoBnoBBamountSno中文名称学号姓名性别年龄专业班级主关键字YNNNNN备注外码中文名称购书单号书号购买数量购书人学号表 3-2购书单表 BuyBook类型长度取值范围是否非空主关键字char 1000009999char 1000009999int 10char 10NNNNYNNN备注外码外码字段名称中文名称表 3-3 教材库表 StackRoom类型长度取值范围是否非空主关键字char 1000009999char 1000009999char 1000009999int 10NNNNYNNN备注外码SRmanager图书管理员SRnoBnoSRamount字段名称Bno中文名称书号库号书号库存量表 3-4教材表 Book类型长度取值范围是否非空主关键字char 1000009999N备注外码7BnameBpricePno字段名称PnoPnamePphonePadd书名单价出版社号char 30char 10NNNNNNchar 1000009999中文名称出版社号出版社名电话地址表 3-5出版社表 Publish类型长取值范围是否非空主关键字度char 1000009999NYchar 30char 30char 30NNNNNN备注外码3 3 系统实施系统实施3.13.1 数据库实现数据库实现创建数据库:create database 教材购销创建基本表:(1)学生表:学号,姓名,性别,年龄,所在系,班级create table Student(Sno char(10)primary keynot null,Sname char(30)not null,Ssex char(10)not null,Sage char(10)not null,Sdept char(10)not null,Sclass char(10)not null,foreign key Sno references BuyBook(Sno)(2)购书单表:购书单号,书号,购买数量,购书人学号create table BuyBook8(BBno char(10)primary keynot null,Bno char(10)not null,BBamount int(10)not null,Sno char(10)not null,foreign key Sno references Student(Sno),foreign key Bno references Book(Bno)(3)教材库表:图书管理员,库号,书号,库存量create table StackRoom(SRmanager char(10)not null,SRno char(10)not null,Bno char(10)not null,SRamount int(10)not null,primary key(SRno,SRmanager),foreign key Bno references Book(Bno)(4)教材表:书号,书名,单价,出版社create table Book(Bno char(10)primary keynot null,Bname char(30)not null,Bprice char(10)not null,Pno char(10)not null,foreign key Pno references Public(Pno)(5)出版社表:create table Public(Pno char(10)primary keynot null,Pname char(30)not null,Pphone char(30)not null,Padd char(30)not null,9)3.23.2 数据载入数据载入图 4-1 学生表数据图 4-2 购书单表数据图 4-3 教材库表数据图 4-4 教材表数据10图 4-5 出版社表数据运行运行(1)各班学生用书表:班级、书号、书名、购买数量select distinct Sclass,Book.Bno,Bname,BBamountfrom Student,BuyBook,Bookwhere BuyBook.Sno=Student.Sno andBuyBook.Bno=Book.Bno图 5-1 各班学生用书表(2)售书登记表:学号、姓名、书号、购买数量select Student.Sno,Sname,Bno,BBamountfrom Student,BuyBookwhere BuyBook.Sno=Student.Sno图 5-2 售书登记表(3)缺书登记表:学号、姓名、书号、缺书数量select Student.Sno,Student.Sname,BuyBook.Bno,BBamount-SRamount amountfrom Student,BuyBook,StackRoom,Book4 411where BuyBook.Sno=Student.Sno andBuyBook.Bno=StackRoom.Bno andBook.Bno=BuyBook.Bno andBuyBook.BBamountStackRoom.SRamount图 5-2 缺书登记表教材存量表:书号、单价、库存量selectBook.Bno,Bprice,SRamountfrom Book,StackRoom,BuyBookwhere Book.Bno=StackRoom.Bno andBook.Bno=BuyBook.Bno图 5-4 教材存量表待购教材表:书号、缺书数量select BuyBook.Bno,BBamount-SRamount amountfrom BuyBook,StackRoomwhere BuyBook.Bno=StackRoom.Bno andBuyBook.BBamount StackRoom.SRamount图 5-5 待购教材表(4)(5)12