数据库课程设计
网上书店数据库管理系统
计算机科学与工程学院
2015年6月
数据库课程设计
网上书店数据库管理系统
小组成员:刘默元、王哲 刘星星、王洪美
指导教师:张沛露
专 业: 软件121
所在单位:计算机科学与工程学院
数据库课程设计(报告) 摘要
数据库是数据管理的最新技术,是计算机科学的重要分支。随着计算机科学与技术的迅速发展,计算机应用领域也在不断扩大。今天,信息资源已成为各个部门的重要财富和资源,几乎各行各业都有关于计算机的使用,建立一个满足各级部门信息护理要求的行之有效的信息系统也成为一个企业或组织生存和发展的重要条件。因此,作为信息系统核心和基础的数据库管理系统得到越来越广泛的应用,由于数据库技术的使用,使得人们在于管理、应用及服务等各个领域使用数据方面变得更加简洁,更加方便,大大提高了工作效率,产生了以数据库为主体,以人为辅助的局面。在企业管理,办公自动化等方面得到了普遍应用,受到人们的广泛欢迎,越来越多新的应用领域采用数据库技术来存储和处理信息资源。
在此,我们小组设计的网上书店数据库系统就是为了方便管理人员在数据方面的管理,结合当今网上书店的实际情况,为了全面、准确、有效地对网上书店业务的各种信息进行管理而开发与研制的一个数据库系统应用软件。基本功能包括用户注册、图书查询、网上购书以及后台管理等。
我们小组是严格按照软件工程的原理、对网上书店管理系统的系统需求进行了详尽的分析与uml建模,并对系统分析,系统设计,数据库设计以及系统测试作了详细的阐述。MySQL数据库软件简洁方便,操作简单,易于上手,而且是一个真正的多用户、多线程SQL数据库服务器。于是我们把我们的数据库部署了在MySQL上。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。它使得存储、更新和存取信息更容易。其功能包括数据查询、数据定义、数据操纵和数据控制四个部分。
本系统的功能模块包括:管理员管理模块(添加新的管理员、各管理员修改密码);用户资料管理模块(包括用户姓名、预留地址、联系方式、密码);库存管理模块(实现书籍入库、库存量查询、超库存下线提醒进书);书籍管理模块(包括书籍信息建档、书籍售出登记、书籍信息查询)。
关键词:网上书店; 书籍; DBA; MySQL
I
数据库课程设计(报告) ABSTRACT
The database is the latest technology of data management , is an important branch of computer science,With the rapid development of computer science and technology, computer application field is also growing , Today, information resource has become the important wealth and resources of various departments, almost all walks of life is about the use of computers, satisfy the requirement of nursing department information at all levels to establish a effective information system has become an important condition of the existence and development of the enterprise or organization.Therefore, as the core and foundation of information system database management system is more and more widely used, due to the use of database technology, make people lies in the application and service management, and other fields use data become more concise, more convenient, greatly improving the work efficiency, produced in the database as the main body, by artificial auxiliary.In enterprise management, office automation, etc widely application, widely welcomed by the people, more and more new applications using database technology to store and process information resources.
Here, our group design of online bookstore database system is for the convenience of management personnel in the field of data management, combining the actual situation of today's online bookstore, in order to comprehensively and accurately and effectively manage the business of all kinds of information of online bookstore and application software development and the development of a database system.Basic functions include user registration, books query, online bookstores, and background management, etc.
Our group is in strict accordance with the principle of software engineering, system requirements of online bookstore management system has carried on the detailed analysis and uml modeling, and system analysis, system design, database design and system test in detail in this paper. The MySQL database software is concise and easy, simple operation, easy to get started, and it is really a multi-user, multi-threaded SQL database server. So we put our deployed on the MySQL database. MySQL is a client/server structure, it consists of a server daemon mysqld and many different client programs and libraries.
SQL (structured query language (SQL) is one of the world's most popular and standardized database language. It makes the storage, update and access information more easily. Its functions include data query, data definition, data manipulation and control of four parts.
The function modules of this system include: the administrator management module (add a new administrator, the administrator to modify the password). The user information management module (including user name, address, contact number, password, reserved; Inventory management module (implementation books put in storage, inventory query, super stock logoff remind into book); Books management module (including books information inputting, registration books sold, books
II
数据库课程设计(报告) information query).
Key words: Logistics; dormitory; assets; Delphi
III
数据库课程设计(报告) 目录
摘要 .......................................................................................................................................................I ABSTRACT .............................................................................................................................................II 目 录 .................................................................................................................................................. IV 第1章 概述 ..................................................................................................................................... - 1 - 1.1 ....................................................................................................................................................... - 1 - 1.2 ....................................................................................................................................................... - 2 - 1.3 ....................................................................................................................................................... - 2 - 1.3.1 ................................................................................................................................................ - 2 - 1.3.2 ................................................................................................................................................ - 4 - 1.3.3 ................................................................................................................................................ - 4 - 1.3.4 ................................................................................................................................................ - 7 - 第2章 需求分析 ............................................................................................................................. - 8 - 第3章 概念结构设计 ..................................................................................................................... - 9 - 第4章 逻辑结构设计 ................................................................................................................... - 10 - 4.1 ..................................................................................................................................................... - 10 - 4.2 ..................................................................................................................................................... - 11 - 第5章 数据库实现 ....................................................................................................................... - 12 - 第6章 总结 ................................................................................................................................... - 13 - 参考资料 ........................................................................................................................................ - 14 - 附录1—数据库原理课程设计任务书 ............................................................................................ - 15 - 附录2—小组成员分工情况 ........................................................................................................... - 16 - 教师评语及成绩评定 .......................................................................................... 错误!未定义书签。
IV
数据库课程设计(报告) 第1章 概述
1.1
当今一个信息技术发展的时代,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。当今世界正在向信息时代迈进,信息已经成为社会、经济发展的\"血液\"、\"润滑剂\";现代信息技术广泛地渗透到和改变着人们的生活学习和工作;信息产业正逐步成为全球最大的产业。在这股席卷全球的信息化浪潮的冲击下,城市发展的诸多方面也无一例外地受到了现代信息技术的强大影响,城市正面临着新的发展契机。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作,这大大地阻碍了人类经济的进步,影响了生产的发展。因此,本次设计我选择了具有一定实际应用价值且是各大企事业单位中不容忽视的课题——基于角色的员工工资系统的设计与实现。
本系统旨在完成关于角色的员工工资管理系统的实现,选题来源的实际需求来自于员工工资系统广泛应用于工业、商业、企事业各个领域,在当前的企事业单位管理体制中,工资管理是非常重要的一项财务工作,财务管理工作的好坏直接关系到单位发展的水平。借助现代信息技术和管理理论,建立完善的基于角色的员工工资管理系统势在必行。通过角色值的方法来登录系统,可以有效的加强企事业单位的内部管理。基于角色不同身份登录此系统可以实现不同的功能,例如:主管可以查询本部门员工的工资,员工可以查询当月工资的发放,查询用户信息等。相比传统的人工管理文件方式不仅查询便捷、错误率低,而且有较好的安全性和灵活性。
权限管理是信息系统不可或缺的一部分。基于角色的权限管理在信息管理系统的开发中得到广泛应用,并且在现在信息管理系统的实现中表现在较好的灵活性和安全性,应用角色权限管理可使不同身份用户登录验证后具有不同的交互界面,提高了系统的易用性和健壮性。权限管理是桌面应用项目中比较关键的环节,因为浏览器是每一台计算机都已具备的,如果不建立权限管理系统,那么一个“非法用户”可以轻而易举通过浏览器访问桌面应用项目中的所有功能。
- 1 -
数据库课程设计(报告) 1.2
随着科学技术的迅猛发展,计算机已经得到了广泛的应用。几乎各行各业都有关于计算机的使用,这使得计算机已成为社会中普遍存在的事物。由于计算机的使用,使得人们在于管理、应用及服务等各个领域使用数据方面变得更加简洁,更加方便,尤其是对于那些在企事业单位工作的财务管理人员和普通员工来说,发放员工工资和基于不同角色的工作查询中,不知道怎样进行有效的管理。基于角色的员工工资系统的出现便很好的解决了这一问题。
该系统的目的旨在设计并开发出一套完善的员工工资管理系统,根据系统处理的业务不同,通过角色值的方法来登录系统,可以有效的加强企事业单位的内部管理,也可以轻而易举的阻止非法用户访问系统的所有功能及对其修改。
目前各个企事业单位都有可以网络互通员工工资系统。但是缺乏专门针对角色的“员工工资系统”。目前的财务管理系统中,大都兼具有财务管理的功能,也有的人还停留在纸质阶段,缺乏有效的与现行财务管理系统沟通的手段;没有给各个角色使用的软件;功能不充分。 在计算机应用普及到经济和社会生活的各个领域的今天,通过不同的角色值方法登录系统,可以处理不同的业务,也可以有效的加强企事业单位的内部管理。
通过角色值的方法来控制权限,使用起来很方便,可以取得良好的效果。基于角色的权限管理设计和实现方法已经在实际的工作中得到了验证,整个权限的控制非常方便、灵活。同时,采用自定义控件技术,使得这个模块有很高的重用性,可以很方便地在其他系统中使用。因此通过权限管理系统进行权限检测,让经过授权的用户正常合法的使用已授权的功能,而对那些未授权的非法用户可以拒之门外。
1.3
1.3.1
角色访问控制(RBAC)引入了Role的概念,目的是为了隔离User(即动作主体,Subject)与Privilege(权限,表示对Resource的一个操作,即Operation+Resource)。
Role作为一个用户(User)与权限(Privilege)的代理层,解耦了权限和用户的关系,所有的授权应该给予Role而不是直接给User或Group。Privilege是权限颗粒,由Operation和Resource组成,表示对Resource的一个Operation。
- 2 -
数据库课程设计(报告) 例如,对于新闻的删除操作。Role-Privilege是many-to-many的关系,这就是权限的核心。
基于角色的访问控制方法(RBAC)的显著的两大特征是:
1.由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,减小了授权管理的复杂性,降低管理开销。
2.灵活地支持企业的安全策略,并对企业的变化有很大的伸缩性。 RBAC基本概念:
RBAC认为权限授权实际上是Who、What、How的问题。在RBAC模型中,who、what、how构成了访问权限三元组,也就是“Who对What(Which)进行How的操作”。
Who:权限的拥用者或主体(如Principal、User、Group、Role、Actor等等) What:权限针对的对象或资源(Resource、Class)。 How:具体的权限(Privilege,正向授权与负向授权)。
Operator:操作。表明对What的How操作。也就是Privilege+Resource Role:角色,一定数量的权限的集合。权限分配的单位与载体,目的是隔离User与Privilege的逻辑关系.
Group:用户组,权限分配的单位与载体。权限不考虑分配给特定的用户而给组。组可以包括组(以实现权限的继承),也可以包含用户,组内用户继承组的权限。User与Group是多对多的关系。Group可以层次化,以满足不同层级权限控制的要求。
RBAC的关注点在于Role和User, Permission的关系。称为User assignment(UA)和Permission assignment(PA).关系的左右两边都是Many-to-Many关系。就是user可以有多个role,role可以包括多个user。
凡是用过RDBMS都知道,n:m 的关系需要一个中间表来保存两个表的关系。这UA和PA就相当于中间表。事实上,整个RBAC都是基于关系模型。
Session在RBAC中是比较隐晦的一个元素。标准上说:每个Session是一个映射,一个用户到多个role的映射。当一个用户激活他所有角色的一个子集的时候,建立一个session。每个Session和单个的user关联,并且每个User可以关联到一个或多个Session.
在RBAC系统中,User实际上是在扮演角色(Role),可以用Actor来取代User,这个想法来自于Business Modeling With UML一书Actor-Role模式。考虑到多人可以有相同权限,RBAC引入了Group的概念。Group同样也看作是Actor。而User的概念就具象到一个人。
这里的Group和GBAC(Group-Based Access Control)中的Group(组)不同。GBAC多用于操作系统中。其中的Group直接和权限相关联,实际上RBAC也
- 3 -
数据库课程设计(报告) 借鉴了一些GBAC的概念。
Group和User都和组织机构有关,但不是组织机构。二者在概念上是不同的。组织机构是物理存在的公司结构的抽象模型,包括部门,人,职位等等,而权限模型是对抽象概念描述。组织结构一般用Martin fowler的Party或责任模式来建模。
Party模式中的Person和User的关系,是每个Person可以对应到一个User,但可能不是所有的User都有对应的Person。Party中的部门Department或组织Organization,都可以对应到Group。反之Group未必对应一个实际的机构。
1.3.2
现在ASP.NET[1]支持的开发语言包括VB.NET、C#.NET、JSCRIPT.NET、VC++.NET以及其它.NET Framework所支持的语言。我所做的基于角色的权限管理设计与实现系统是用C#语言。所以,在这里我介绍一下C#语言。
C# (C sharp)是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
正是由于C#面向对象的卓越设计,使它成为构建各类组件的理想之选——无论是高级的商业对象还是系统级的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML 网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。 C#[2]有以下特性: ⑴ 效率与安全性
⑵ 支持现有的网络编程新标准 ⑶ 消除大量程序错误
⑷ 对版本的更新提供内在的支持降低了开发成本 ⑸ 商业过程和软件实现的更好对应 ⑹ 扩展交互性
1.3.3
随着科学技术的进步,信息已成为各行各业的重要资源。数据库以其强大的操作和管理功能成为高速信息表达的途经。现在数据库的类型有很多,比如:\"sql server\等等,然而本系统选择了用SQL Server2005来作为数据库软件。
- 4 -
数据库课程设计(报告) Microsoft SQL Server2005是由 Microsoft公司开发的,是一个全面的数据库平台,使用集成的商业只能(BI)工具提供了企业级的数据管理。SQL Server 2005 数据库引擎为关系型数据库和结构化数据提供了更安全可靠的存储功能。SQL Server 2005 不仅可以有效地执行大规模联机事物处理,而且可以完成数据仓库和电子商务应用等许多具有挑战性的工作。
由于本系统的开发采用B/S(Browser/Server,浏览器/服务器)。而SQL Server提供了功能强大的服务器平台,高性能服务器结构的数据库管理系统。而SQL Server作为存储数据的后台服务器软件,负责创建和维护表和索引等数据库对象,确保数据完整性和安全性,能够在出现各种错误时恢复数据。SQL Server不仅在兼容性方面有优势外,且除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮 XML 数据,可以将搜索结果以 XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。这些特点在.NET 战略中发挥着重要的作用。
SQL Server 2005中的SQL语言是Transact-SQL语言[3] 。 Transact-SQL语言主要组成部分有以下几种: 1).数据定义语言(DDL,Data Definition Language) 2).数据操纵语言(DML,Data Manipularion Language) 3).数据控制语言(DCL,Data Control Language) 4).系统存储过程(System Stored Procedure) 5).一些附加的语言元素(注释,变量等) 其中:
数据定义语言是指用来定义和管理数据库以及数据库中的各种对象的语句,这些语句包括CREATE、ALTER和DROP等语句。在SQL Server 2000中,数据库对象包括表、视图、触发器、存储过程、规则、缺省、用户自定义的数据类型等。这些对象的创建、修改和删除等都可以通过使用CREATE、ALTER、DROP等语句来完成。
数据操纵语言是指用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等。在默认情况下,只有sysadmin、dbcreator、db_owner或db_datawriter等角色的成员才有权利执行数据操纵语言。
数据控制语言是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT、DENY、REVOKE等语句,在默认状态下,只有sysadmin、dbcreator、db_owner或db_securityadmin等角色的成员才有权利执行数据控制语言。
系统存储过程是SQL Server系统创建的存储过程,它的目的在于能够方便地
- 5 -
数据库课程设计(报告) 从系统表中查询信息,或者完成与更新数据库表相关的管理任务或其它的系统管理任务。系统存储过程可以在任意一个数据库中执行。系统存储过程创建并存放于系统数据库master中,并且名称以sp_或者xp_开头。
SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体主要特点包括[4]:
1)综合统一
非关系模型的数据语言一般都分为模式数据定义语言(模式DDL)、外模式数据定义语言(外模式DDL)、与数据存储有关的描述语言(DSDL)及数据操纵语言(DML),分别用于定义模式、外模式、内模式和进行数据的存取与处置。当拥护数据库投入运行后,如果需要修改模式,必须停止现有的数据库的运行,转储数据,修改模式并编译后再重装数据库,十分麻烦。
SQL语言则集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体,语言风格统一,可以独立完成数据库生命周期中的全部活动,包括定义关系模式、建立数据库、插入数据、查询、更新、维护、数据库重构、数据库安全性控制等一系列操作要求,这就为数据库应用系统的开发提供了良好的环境。用户在数据库系统投入运行后,还可根据需要随时地逐步地修改模式,且并不影响数据库的运行,从而使系统具有良好的可扩展性。 2)高度非过程化
非关系数据模型的数据操纵语言是面向过程的语言,用其完成某项请求必须指定存取路径。而用SQL语言进行数据操作,只要提出“做什么”,而无须指明“怎么做”,因此无须了解存取路径,存取路径的选择以及SQL语言句的操作过程由系统自动完成。这不但大大减轻了用户负担,而且有利于提高数据独立性。 3)面向集合的操作方式
非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。而SQL语言采用集合操作方式,不仅操作对象、查找结果可以是元组的集合,而且一次插入、删除、更新操作的对象也可以是元组的集合。 4) 以同一种语法结构提供两种使用方式
SQL语言既是自含式语言,又是嵌入式语言。作为自含式语言,他能够独立地用于联机交互的使用方式,用户何以在终端键盘上直接键入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言中,供程序员设计程序时使用。而在两种不同的使用方式下,SQL语言的语法结构基本上是一致的。 5) 语言简捷,易学易用
SQL语言功能极强,但由于设计巧妙,语言十分简捷,完成核心功能只用了9个动词,SQL语言接近英语口语,因此容易学习,容易使用。
- 6 -
数据库课程设计(报告) 1.3.4
Microsoft 的Visual Studio 2005 和 .NET Framework 2.0 将在应用程序开发的所有方面取得大幅进展。首先,Visual Studio 2005 [5]根据开发人员个人的需要调整软件开发体验,设置新的开发人员工作效率标准。这一“个性化工作效率”将在开发环境和 .NET Framework 类库中提供相应的功能,以帮助开发人员在最少的时间内克服其最为紧迫的困难。其次,Visual Studio 2005 使开发人员能够通过与 Microsoft Office System 和 SQL Server 2005 的更好集成,在更广泛的应用程序开发方案中应用现有的技能。最后,Visual Studio 2005 将提供一组新的工具和功能,以满足目前大规模企业的应用程序开发需要。
.NET Framework 2.0 将在 .NET Framework 类库中引入增强功能。通过新的控件和设计器功能,将简化 Windows 客户端应用程序开发。
Visual Studio 2005 for Microsoft Office System 版本将显著增强基于 Microsoft Office Excel 2003 和 Microsoft Office Word 2003 的业务解决方案的开发。生成 Office 解决方案的开发人员将得益于以下几方面:Visual Studio 和 Office 之间改进的集成、熟悉的编码体验、改善的安全性和部署。
[6]
- 7 -
数据库课程设计(报告) 第2章 需求分析
- 8 -
数据库课程设计(报告) 第3章 概念结构设计
根据系统处理业务的不同,将该系统分为基础信息管理、业务信息管理、查询信息管理、系统信息管理四个子系统,其中基础信息管理包括部门信息管理和员工信息管理;业务信息管理包括员工工资管理;查询信息管理包括部门信息查询、员工信息查询、员工工资查询和员工工资统计;系统信息管理包括角色信息管理、菜单信息管理、角色权限管理和用户信息管理。
系统主控模块功能如图3-1所示。图中
F3 信息检索P3信息查询P1.1部门信息管理P1.2员工信息管理P1.3角色信息管理D1 部门表F2 业务管理P2.1员工工资管理D4 员工工资表用户F1管理基础信息D2员工信息表 D3 角色表P2.2用户信息管理P2.3角色权限管理D5 用户表D6角色权限表
图3-1系统主控模块功能示意图
用户通过对部门信息和员工信息的基础信息维护以后,可以对员工工资的管理,并对部门信息、员工信息、员工工资的管理。
F3 信息检索P3信息查询P1.1部门信息管理P1.2员工信息管理P1.3角色信息管理D1 部门表F2 业务管理P2.1员工工资管理D4 员工工资表用户F1管理基础信息D2员工信息表 D3 角色表P2.2用户信息管理P2.3角色权限管理D5 用户表D6角色权限表 图3-2示意图
- 9 -
数据库课程设计(报告) 第4章 逻辑结构设计
4.1
E-R模型中,包含实体、联系和属性三个基本成分。 ⑴实体
实体是客观世界存在的且可相互区分的事物。它可以是人也可以是动物;可以是具体事物也可以是抽象概念。
⑵联系
联系是指客观世界中各事物彼此间的联系。联系分为三类:一对一的关系,一对多的关系,多对多的关系。
⑶属性
属性是实体或联系所具有的性质,通常一个实体用若干属性来刻画。人们通常就是用实体、联系和属性这三个概念来理解现实问题,因此,ER模型比较接近人的思维方式。此外,ER模型使用简单的图形符号表示系统分析员对问题的理解,不熟悉计算机的人也能理解它,因此,ER模型可以作为用户与系统分析员之间的交流工具。
根据系统功能,确定实体、联系、属性,构建E-R图,如下图所示。
用户1员工信息1拥有1员工工资拥有属于部门包含N角色11设置N角色权限1菜单1N
图4-1 E-R图
把概念结构设计转化为逻辑结构设计为:
员工信息:(员工号,姓名,性别,职位,入职日期,员工介绍,联系方式,部
- 10 -
数据库课程设计(报告) 门代码)
部门:(部门代码,部门名称)
员工工资:(流水号,发放时间,员工号,发放月份,岗位工资,绩效工资,奖金,保险扣除,税收扣除,最终金额) 用户:(用户帐号,角色代码,密码) 角色:(角色代码,角色名称)
角色权限:(代码,角色代码,菜单代码)
菜单:(菜单代码,菜单名称,上级菜单代码,窗体名称,窗体程序名,菜单程序名)
4.2
根据以上分析,创建数据库Cnet05_Jsgl.mdf,其中包括七个数据表:用户、角色、角色权限、菜单;员工、部门、员工工资。 数据关系图如图4-2所示
图4-2 数据关系图
- 11 -
数据库课程设计(报告) 第5章 数据库实现
- 12 -
数据库课程设计(报告) 第6章 总结
- 13 -
数据库课程设计(报告) 参考文献
[1] ASP.NET 4.0从入门到精通,张正礼等编著,清华大学出版社,2011-7. [2] [3] [4] [5] [6] [7] [8] [9] [10]
- 14 -
数据库课程设计(报告) 附录1—数据库原理课程设计任务书
- 15 -
数据库课程设计(报告) 附录2—小组成员分工情况
- 16 -
数据库课程设计(报告) 实现代码
(姓名)
- 17 -
数据库课程设计(报告) 总结
(姓名)
教师评语:
成绩: 指导教师:
- 18 -
因篇幅问题不能全部显示,请点此查看更多更全内容