数据库应用系统设计案例.PPT第11章数据库应用系统设计案例
数据库编程技术
图书馆管理系统的设计
本例以图书馆管理系统为例说明如何开发数据库应用程序。
需求分析
图书馆是这样的部门,馆中收藏大量图书供读者借阅,其中图书可分成不同的类别,如自然科学类,社会科学类等;借阅者可分为老师和学生。不同的借阅者最多可借的书的数量和期限不同,如教师最多可借10本,期限为3个月,学生最多可借2本,期限为1个月,无论老师和学生借阅超期还要进行罚款处理。
概念结构设计
图书馆管理系统的E-R图
读者
图书
借阅
日期
m
n
p
q
金额
日期
罚款
读者
借书证号
读者姓名
性别
是否有超期
读者实体与其属性
读者类别
图书
条形码号
书名
作者
出版社
图书实体与其属性
出版日期
书的类别
图书编号
借阅状态
借阅次数
逻辑结构设计
读者(借书证号,读者姓名,性别,读者类别,是否有超期)
图书(条形码号,图书编号,书名,作者,出版社,出版日期,书的类别,借阅状态,借阅次数)
借阅(借书证号,条形码号,借出日期,归还日期)
罚款(借书证号,条形码号,处罚日期,超期天数,罚款金额)
另外,为了保证系统的安全性,采用了登录的措施,用户名和密码存放在密码表中。
密码表(用户名,密码)
规范化分析
除[罚款]关系外,其它4个关系模式中主码是本模式的唯一决定因素,F .
但是在[罚款]关系中,罚款金额=日罚款额×超期天数,所以超期天数→罚款金额,而超期天数→(借书证号,条形码号,处罚日期),所以(借书证号,条形码号,处罚日期) →罚款金额,存在传递函数依赖,所以[罚款]关系属于2NF,存在冗余现象。
读者往往既关心超期天数,又关心罚款金额,所以“罚款金额”是必要的冗余。
在SQL Server 2000 中创建数据库
图书表的结构
字段名 数据类型 长度
条形码号 char 13
图书编号 char 10
书名 varchar 20
作者 varchar 20
出版社 varchar 50
出版日期 datetime 8
类别 char 10
借阅状态 char 4
借阅次数 smallint 2
读者表的结构
字段名数据类型 长度
借书证号 char 10
读者姓名 varchar 20
性别 char 2
读者类别 char 1
是否有超期 char 1
数据库应用系统设计案例 来自淘豆网m.daumloan.com转载请标明出处.