`
igf80igf
  • 浏览: 18817 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

数据库设计

阅读更多

数据库设计
2011年01月12日
  1.1 项目目的
  课程设计的目的是为了巩固复习曾经学习过的数据库课程,并通过实际的实验对所学的知识加以巩固以达到模拟现实生活中实际用例的目的,并增加同学们适应以后工作中的团队工作中的合作互助的团队精神。 1.2 系统定义
  1.2.1初始数据库大小
  1)      大约有20 000盘录像,400 000盘供出租的录像分布在超过100个分公司中。每个分公司平均有4000盘录像,最多有10 000盘供出租。
  2)      大约有2000名员工工作在各个分公司。每个分公司平均有15名员工,最多有25名。
  3)      大约有100 000名会员在各个分公司注册。每个分公司平均有1000名会员,最多有1500名会员。
  4)      各个分公司共有400 000盘录像拷贝。平均每个分公司有4000到10 000盘录像 1.2.2数据库增长速度
  1)      每月大约有100部新片,每盘录像有20份拷贝加到数据库中。
  2)      一旦某盘录像的一份拷贝不能再租借出去(如画面质量差、丢失、被偷),则相应的记录从数据库中删除。
  3)      每月会有20名员工加入或者离开。离开公司一年的员工记录从数据库中删除,每月大约删除20条员工记录。 1.2.3网络和共享访问要求
  1)      所有分公司都必须安全地和位于公司总部的中央数据库实现网络互连。
  2)      系统必须能够支持每个分公司的至少三名成员同时访问。 1.2.4安全性
  1)      数据库必须有口令保护。
  2)      每个员工应该分配一个到特定用户视图的数据库访问权限,主要是主管、经理、助理和采购员。
  3)      员工只能在适合他们完成工作的需要窗口中看到需要的数据。 1.3 开发环境
  SQL Server 2005 和Visual Studio 2008 开发环境。 二、            需求分析
  2.1 问题陈述
  该系统最终用于影碟出租公司,业务范围需遍布大范围区域,可以及时并很好地把各地分公司的业务数据汇总于最高管理层面前,使得跨区域的数据共享变得更便利,并为业务分析提供了很好的参考数据,减少了收集业务分析所需收据的经费开销,根据业务范围的限制,本系统暂时定义的边界偏小,并不能很好地涵盖公司的管理方面的各种业务,现况只涉及内部人员管理和租借业务的管理。另外还包含了客户的信息管理。 图表1系统边界定义
  
  2.2           数据需求
  StayHome的一个分公司的数据包括分公司地址(由街道、城市、省份和邮政编码组成),电话号码(最多3行)。每个分公司有个名称,在全公司是唯一的。
  StayHome的每个分公司都有若干名员工,包括一个经理,一到多名主管、助理、采购员和一些其他员工。经理负责分公司的日常运营,主管负责管理助理和员工,助理帮助主管分担管理员工的任务,员工数据主要包括姓名、身份证号、职务、薪水等。每位员工有员工号码,在全公司是唯一的。
  每个分公司有录像库存。录像数据包括目录号、录像号、片名、种类、日租费用、购买价格、状态、主要演员名字(以及扮演的角色)和导演。目录号唯一地表示一盘录像。通常一个分公司有一盘录像的多份拷贝,每个拷贝由录像号唯一地表示。录像的种类有动作、成人、儿童、恐怖、科幻。状态指出一盘录像的某份拷贝是否可以出租。
  在从公司租借录像之前,客户必须首先注册成为StayHome当地分公司的一名会员。会员信息包括姓名、身份证号、地址、联系方式和注册日期。每个会员有会员号,会员号对所有分公司都是唯一的,而且可以在多个分公司使用同一会员注册号。负责注册该会员的员工的姓名也要加上。
  注册后,会员可以租借录像。租借业务数据包括租借号、会员的全名、会员号、录像号、片名、每日费用、租出的提起和归还的日期。 2.3           事务需求
  2.3.1      数据录入
  a)      录入一个新分公司的详细情况。
  b)      录入某分公司的新员工的详细情况。
  c)      录入新入库的录像的情况。
  d)      录入给定分公司的某部录像拷贝的情况。
  e)      录入某分公司新会员的情况。
  f)      录入租借协议的情况。 2.3.2      数据更新和删除
  a)      更新/删除分公司信息。
  b)      更新/删除某分公司的员工信息。
  c)      更新/删除给定录像的信息。
  d)      更新/删除给定录像的某分拷贝的信息。
  e)      更新/删除给定会员的信息。
  f)      更新/删除某会员租借某部录像的信息。 2.3.3      数据查询
  a)      列出给定城市的分公司情况。
  b)      按照员工的名字顺序列出指定分公司的员工名称、职位、薪水。
  c)      按照分公司号顺序列出每个分公司的经理名称。
  d)      分类列出某分公司的录像名称、种类和可租借情况。
  e)      列出某个会员租借的全部录像的详细情况。
  f)      列出某个分公司指定录像的拷贝情况。
  g)      列出指定种类的所有录像名称,按片名排序。
  h)      列出每个分公司每种录像的数量,按照分公司号排序。 2.3.4      用户管理
  a)      普通员工注册,获取一个用户名,登陆系统开展工作
  b)      系统管理员可以管理(更新、删除、解锁、锁定、密码恢复)总经理等各级员工的用户。
  c)      总经理可以管理(更新、删除、解锁、锁定、密码恢复)主管、采购员和助理的用户。
  d)      主管可以管理(更新、删除、解锁、锁定、密码恢复)助理和普通员工注册的用户。
  e)      助理管理(更新、删除、解锁、锁定、密码恢复)员工注册的用户。 
  
  有一个1:*递归关系:员工(主管、助理)管理员工(助理、普通员工) ,这时父实体和子实体都是Staff。根据上面给出的规则,应把Staff父实体的主键拷贝到Staff子表中来表达Supervises关系,这时应该建立这个列的第二个拷贝作为外键。这个列的拷贝被重新命名为supervisorStaffNo,由此来更好表达它的意思。 图表3  1:*递归关系(员工管理员工) 员工(员工号,姓名,职位,薪水,公司号,监督员工号)
  主键:员工号
  外键 公司号 关联 公司表(公司号)
  外键 监督员工号 关联 员工表(员工号) 员工号用来表示"员工管理员工"关系(监督员工号) 公司号来自"公司拥有员工"关系 在这种情况下,关系中的可选参与的实体被设计为父实体,关系中的强制参与的实体被设计为子实体。即父实体的主键拷贝被放置在描述子实体的表中。
  在只有一边实体强制参与的1:1关系中有一个或多个属性的情形中,这些属性也应该随其主键加入到子表中。例如"经理管理公司"关系有一个叫做"上任日期"的属性,则这个属性将随着"员工号"(重命名为"经理号")的拷贝加入到公司表中,成为该表中的一列。 图表4 "公司拥有员工(包括经理)"和"经理管理员工"关系 图表5关系之间的关联
  
  公司(公司号、名称、省份、城市、街道信息、邮政编码、经理号)
  员工(员工号、姓名、性别、职位、薪水、公司号、监督员工号) 图表6基本表 Branch BranchNo、Province、City、Street、ZipCode、MgrStaffNo、Name (分公司) (分公司号、省份、城市、街道、邮编、经理号、名称) Telephone TelNo、TelNumeber、BranchNo (联系电话) (电话号、电话号码、公司号) Staff StaffNo、Name、Sex、CardID、Email、MobilePhone、Position、Salary、BranchID (员工) (员工号、姓名、性别、身份证号、邮箱、电话号码、职位、工资、分公司号) Member MemberNo、Name、CardId、Address、Phone、Email (会员) (会员号、姓名、身份证号、地址、联系电话、邮箱) Registration BranchNo、MemberNo、StaffNo、DateJoined (注册) (公司号、会员号、员工号、注册日期) Video CatalogNo、Title、Category、DailyRental、Price、DirectorNo (录像) (类别号、标题、类别、日租、价格、导演号) VedioStored StoredNo、CatalogNo、Quantity、BranchNo (录像库存) (库存号、录像号、数量、公司号) VideoForRent VideoNo、Available、StordNo、ISBN、Remark (出租录像) (影碟号、可否出租、库存号、ISBN检索号、备注) Director DirectorId、DirectorName、Remark (导演) (导演号、导演姓名、备注) Actor ActorId、ActorName (演员) (演员号、演员姓名) Role RoleNo、ActorNo、DirectorNo、Character  (角色) (角色号、演员号、导演号、角色) RentalAgreement RentalNo、DateOut、DateReturn、MemberNo、VideoNo、IsFinish (出租协议) (协议号、出租日期、归还日期、会员号、影碟号、是否完成) UserMapping Guid、UserName、Entity、EntityID、Remark (用户表) (唯一标识、用户名、实体、实体ID、备注) PropertyMapping PropertyName、PropertyValue、PropertyMeaning、Remark (映射表) (映射名称、映射值、映射意义、备注) [1]1 数据库系统概论                   王珊、萨师煊 编著                        高等教育出版社 2、深度探索关系数据库              C.J.Date 编著                            电子工业出版社
  3、UML用户指南         Grady Booch、James Rumbaugh、Ivar Jacobson编著      电子工业出版社
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics