数据库设计的案例分析一、教学管理1.基本需求某学校设计学生教学管理系统。学生实体包括学号、姓名、性别、生日、民族、籍贯、简历、登记照,每名学生选择一个主修专业,专业包括专业编号和名称,一个专业属于一个学院,一个学院可以有若干个专业。学院信息要存储学院号、学院名、院长。教学管理还要管理课程表和学生成绩。课程表包括课程号、课程名、学分,每门课程由一个学院开设。学生选修的每门课程获得一个成绩。设计该教学管理的ER模型,然后转化为关系模型。若上面的管理系统还要管理教师教学安排,教师包括编号、姓名、年龄、职称,一个教师只能属于一个学院,一名教师可以上若干门课程,一门课程可以有多名老师来上,每个教师所上的每门课都有一个课堂号和课时数。试修改上题的ER模型,将教师教学信息管理增加进去。2.参考设计:图一教学管理ER图由ER模型转换的关系模型是:学生(学号,姓名,性别,生日,民族,籍贯,专业号,简历,登记照)专业(专业号,专业,专业类别,学院号)学院(学院号,学院,院长)课程(课程号,课程名,学分,学院号)成绩(学号,课程号,成绩)(题目分析:本题中有学生、专业、学院、课程四个实体。一个学生只有一个主修专业,学生与专业有多对一的联系;一个专业只由一个学院开设,一门课程只由一个学院开设,学院与专业、学院与课程都是一对多的联系;学生与课程有多对多的联系。在转换为关系模型时,一对多的联系都在相应的多方实体的关系中增加一个外键。)增加教师,ER图如下。图二有教师实体的教学管理ER图3.物理设计基于sqlserver的数据库结构设计如下。指定数据库文件的名称,并为设计好的关系模型设计表结构。数据库文件保存在“E:\教学管理\”文件夹中,数据库文件名:教学管理.MDB。表包括:学院、专业、学生、课程、成绩单。对应表结构如表1-2至表1-6所示。表1-1学院字段名类型宽度小数主键/索引参照表约束Null值学院号文本型2↑(主)学院文本型16院长文本型8√表1-2专业字段名类型宽度小数主键/索引参照表约束Null值专业号文本型4↑(主)专业文本型16专业类别文本型8↑学院号文本型2学院表1-3学生字段名类型宽度小数主键/索引参照表约束Null值学号文本型8↑(主)姓名文本型8性别文本型2男or女生日日期型民族文本型6↑籍贯文本型20专业号文本型6专业√简历备注型√登记照OLE对象√表1-4课程字段名类型宽度小数主键/索引参照表约束Null值课程号文本型8↑(主)课程名文本型24学分字节型学院号字符型2学院表1-5成绩单字段名类型宽度小数主键/索引参照表约束Null值学号文本型8↑学生课程号文本型6↑课程成绩单精度41=0and=100√思考题:1.当我们进行物理设计时,如果将全校的学生放置在一个关系(表)中,势必带来存储空间大、处理效率低的问题。怎么解决?2.如果管理研究生,带来的设计影响是什么?如何解决?3.在管理教师信息时,如果将教师分类:教师、研究生导师。研究生导师存储“研究方向、学生人数”等信息,怎样设计。附:教学管理数据库参考数据如表1-1~表1-5所示。表1-1学生表学号姓名性别生日民族籍贯专业号简历登记照06053113唐李生男04/19/1987汉湖北省麻城050107042219黄耀男01/02/1989汉黑龙江省牡丹江市040306041138华美女11/09/1987汉河北省保定市040307045120刘权利男10/20/1989回湖北省武汉市040308055117王燕女08/02/1990回河南省安阳市050108045142郝明星女11/27/1989满辽宁省大连市040308053101高猛男02/03/1990汉湖北生黄石市050108053124多桑男10/26/1988藏西藏050108053160郭政强男06/10/1989土家湖南省吉首050108053116陆敏女03/18/1990汉广东省东莞050108053131林惠萍女12/04/1989壮广西省柳州市050107093305郑家谋男03/24/1988汉上海市090407093342罗家艳女05/16/1988满北京市090407093325史玉磊男09/11/1988汉湖北省孝感市090407093317凌晨女06/28/1988汉浙江省温州090408041136徐栋梁男12/20/1989回陕西咸阳040308041127巴朗男09/25/1989蒙古内蒙古0403表1-2学院表学院号学院院长01外国语学院叶秋宜02人文学院李容03金融学院王汉生04法学院乔亚05工商管理学院张绪06会计学院张一非09信息学院杨新表1-2专业表专业号专业专业类别学院号0201新闻学人文020301金融学经济学030302投资学经济学030403国际法法学040501工商管理管理学050503市场营销管理学050602会计学管理学060902信息管理管理学090904计算机科学工学09表1-4课程表课程号课程名学分学院号09064049高等数学6.00909065050数据结构4.00902091010大学语文3.00109006050线性代数3.00901054010大学英语4.00102000032美术设计2.00209023040运筹学5.00909061050数据库及应用3.00905020030管理学原理3.00505020051市场营销学3.00504010002法学概论3.00404020021合同法实务2.004表1-5成绩单学号课程号成绩060531130105401085060531130209101080060531130906404975060531130502003090060531130906105082070422190209101085070422190105401078070422190906105072080551170105401092080551170906404985080551170906105088070933050906404992070933050105401086070933050502003070070933050906505090060411380209101074060411380401000283080531310105401077080531310906105066070933170906404978070933170105401087070933250105401076070933250906505081070933250906404982070933250401000275080411360105401088080411360906105085二、图书销售建立某中小型书店图书销售管理信息系统的数据库。1.基本需求分析1)组织结构对组织结构的分析有助于分析业务范围与业务流程。书店的组织结构如图三所示。图三书店组织结构简图其中,书库是保存图书的地方;购书/服务部负责采购计划、读者服务、图书预订等业务;售书部负责图书的销售。财务部负责资金管理;人事部负责员工管理与业务考核。2)业务分析对于信息处理系统来说,划分系统边界很重要,即哪些功能由计算机来完成,哪些工作在计算机外完成。这些要通过业务分析确定。同时,业务流程中涉及的相关数据也通过业务分析得到归类和明确。在业务分析的基础上,确定数据流图和数据字典。本系统主要包含以下业务内容。①进书业务。事先采购员根据订书单采购图书。然后将图书入库,同时登记相应的图书入库数据。本项业务涉及的数据单据和表格有:进书单(包括进书单编号、日期、金额、经手人等)和进书单细目(一个进书单可能有若干种图书。进书单的细目数据包括每种图书的信息、定价、进价或折扣,数量),以及书库账本(图书信息、库存数量、价格等)。②售书业务。售书员根据读者所购图书填写售书单(如图四所示)。同时,修改库存信息。本项业务涉及和产生的数据表格有:售书单(包括售书单编号、售书日期、金额、员工)、售书细目(一个售书单可能有若干种图书。售书细目包括该次售书的书籍编号、售出数量、折扣、售出价格等),以及书库账本。图四售书单样式③图书查询服务业务。根据读者要求,提供本书店特定的图书及库存信息。本项业务涉及的主要数据是书库账本。④综合管理业务。包括进书信息、销售信息、库存信息的查询、汇总和报表输出。本项业务涉及所有的进书数据、销售数据和库存数据等。3)处理的数据上面的分析将本系统的业务归纳为4项。在业务分析的基础上,应该画出系统的数据流图。整个系统的分层数据流图将揭示一个系统内全部的数据项、数据结构、数据存储以及对数据的加工处理功能。在此基础上就可以建立系统的数据字典。本书不讨论数据流图和完整的数据字典规范等内容,仅对最后建立数据库所需要的数据进行分析说明。在上述4项业务中涉及到的业务数据包括:进书数据、库存数据、销售数据。在这些数据中又涉及到图书数据、员工数据等,而图书数据与出版社有关,员工与部门有关。因此,将所有数据进行归类分析,书店销售管理信息系统要处理的数据应该包括:企业部门信息(组成:部门编号、部门名、办公电话);员工信息(组成:工号、姓名、性别、生日、职务、所属部门、薪金);出版社信息(组成:出版社编号、出版社名称、地址、联系电话、联系人);基本图书信息(组成:图书编号、ISBN、书名、作者、出版社、版次、出版日期、定价、图书类别、备注);进书单及细目(组成:进书单号、日期、{进书细目}、金额、业务员);售书单及细目(组成:售书单号、日期、{售书细目}、金额、业务员);书库账本(组成:图书编号、库存数量、平均进价折扣、备注)。这些就是书店销售管理信息系统要处理的各种对象,每一种对象由括号内的属性组合在一起来描述。这些属性有的是基本数据项,有的是数据项集合(由“{、}”括起来),数据项集合要做进一步的说明。例如,“{进书细目}”由“序号、{基本图书信息}、进价或折扣、数量”等属性组成;“{售书细目}”由“序号、图书编号、售价或折扣、数量”等属性组成。当所有数据对象都归纳完毕,就可以编制数据字典了。在数据字典中,要对所有这些数据项、数据项集合等的命名、取值方式和范围、作用等进行明确而无异义说明。4)处理功能分析数据字典不仅记载所有数据的详情,也要详细记载所有对数据的处理功能。①进书业务。当进书业务发生时,将所进图书入书库,然后存储进书单及细目数据,同时根据进书单登记图书库存数据。当登记图书库存数据时,可能有两种情况:新图书或已有图书入库。对于新图书,本业务要将图书的完整信息记载下来,然后记载图书进价和数量;已有图书是指同一种书。但同一种书可能有版本方面的区别。为简单起见,规定:“ISBN号”与“版次”相同的就是同一种书,图书编号相同。对于已有图书,将本次进书数加到该图书的库存数中即可,但本次的进价折扣与以前库存的该书的折扣可能存在差异。为了便于计算成本和售书收益,入库已有图书时,这里采用的方法是:将已有图书占用的资金和本次入库的资金加在一起,然后重新计算一个平均价格折扣。因此,书库中该图书的价格折扣是当前所有库存图书占用资金除以当前库存数量后计算的折扣。②售书业务。根据读者所购图书的售书单存储售书单及细目数据,这是售书的业务数据。同时,修改图书的库存信息。③图书查询服务业务。查询服务的输入是读者所提要求,输出是相关图书的库存信息。为方便读者,可以针对书名、ISBN、作者、版次、出版社提供单个或多条件组合查询。④综合管理业务。管理人员需要定期或不定期汇总统计或查询进书信息、销售信息、库存信息,并按照管理要求制作业务报表。通过进书单及细目可以对进书业务进行查询、统计汇总和报表输出。通过售书单及细目可以对售书业务进行查询、统计汇总和报表输出。通过库存账本可以对图书库存情况进行查询、统计汇总和报表输出。2.ER模型分析设计(1)基本实体和联系首先确定实体类别以及它们各自的属性构成,指出实体标识符,并尽量规范属性名,避免同名异义或异名同义。确定实体后,就可以分析实体之间的联系。可以很容易确定,部门、员工、