《校友录系统》参考
第1章概述
1.1          目的
培养学生独立开发一套完整的数据库系统的能力。该案例教学要求学生从信息收集开始,逐步进行系统需求分析、数据库设计、编码及调试、数据库维护等任务。
1.2          内容
本案例为一个校友录系统。校友录网站功能共分为两大部分:用户个人信息功能和班级功能。用户个人信息功能中包含:创建新账号(包含用户个人信息)、编辑用户个人信息以及上传更新用户个人头像。班级功能中包含:搜索班级、创建学校、创建班级、加入班级、班级留言、班级相册、上传相册以及相册留言等功能。该校友录系统的前台网站是使用JSP开发,后台系统采用Oracle作为数据库,学生将通过实施该数据库解决方案,学习到网站应用程序架设的全过程,掌握数据库系统的开发、实现和维护,同时学生还将了解到如何结合Oracle和JSP来开发一套数据库应用程序。
第2章数据库的生命周期
在企业中部署数据库,需要遵循严格的项目流程。通常,项目流程会被细化为若干个阶段的工作,并且这些工作是周始往复的,这种流程被称作生命周期,如图2-1所示。
概念模型。对于我们的校友录系统,就是要确定哪些可以做为实体,哪些做为属性以及确定实体间的联系,并设计出E-R图。逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型。这里我们把E-R图转换为关系模式。物理设计阶段是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
在部署和试运行阶段,运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编写与调试应用程序,组织数据入库,并进行试运行。同时预估数据库系统的工作量,确定系统的安全性,预期系统的存储和内存需求;然后把新的数据库从测试环境中迁移到实际环境中进行使用。
当系统开始运行之后,需要持续地负责保证系统的可用性、进行性能的监视、性能调优(此部分不在本案例讨论范围)、进行数据备份和恢复,同时进行权限的管理。
但是,任何一个数据库是不可能保持不变的,因为实际的业务、IT架构都会不断的改变,当系统需要进行维护的时候,需要根据收集到的信息再次重复整个生命周期的流程。最后,需要确定数据库的最终状态;确定某些数据是否需要继续保存;是否有新的应用程序需要额外的数据;系统是否对数据有着更多
的保密需求;是否需要在应用程序终止使用后,保存相应的数据。
如上所述,数据库专家需要在这样的生命周期中不断地维护数据库的整个环境。后面的几章,我们将按照图中数据库生命周期的各个阶段,逐步完成整个系统的设计。
第3章需求分析和数据库设计
需求分析是整个数据库设计过程中最重要的步骤之一,是后续各阶段的基础。它包含这样几个步骤:收集资料、分析整理、绘制数据流图、建立数据字典和用户确认。数据库设计又可分为概念设计、逻辑设计和物理设计。接下来将简要的介绍一下收集资料到逻辑设计阶段(为了简化设计,我们略过数据流图和数据字典,并假定此系统通过了用户确认)。
3.1          信息收集和需求分析
通常,校友录网站的操作流程如下所示:
1.新用户通过注册系统,获得用户登录账号。同时发送用户账号信息以及个人信息到后台数据库相关表进行存储。
2.注册用户可修改登录密码、个人信息及个人头像,并将数据发送到后台数据库相关表进行更新。
3.注册用户可通过搜索功能进行同学、班级以及学校搜索,并可加入搜索到的相关班级,同时将相关数据发送到后台数据库相关表进行更新。如果没有搜索到学校或班级,则可创建新的学校或班级。
4.用户登录进入校友录后,可以通过数据库的查询列举所加入的所有班级。
5.班级成员可在班级首页的留言板或班级留言板中进行留言,同时发送相关留言信息到后台数据库相关表进行存储。
6.班级成员可在上传照片页面中上传相片到所属的所有班级,同时发送相关留言信息到后台数据库相关表进行存储。
7.班级成员可在班级相册页面内对照片进行评论,同时发送相关评论信息到后台数据库相关表进行存储。
3.2          概念设计——E-R图
概念模型用于信息世界的建模。概念模型不依赖于某一个数据库管理系统(DBMS),但可以方便的转换为计算机上某一DBMS所支持的特定的数据模型。通过对用户对数据的需求进行综合、归纳与抽象,将形成一个完善的概念模型,可以用E-R(实体联系)图来表示。E-R图是对现实世界的一种抽象,它的主要成份是实体、属性和联系。
1.        实体:客观存在并可以互相区分的事物称为实体,是现实世界中各种事物的抽象。如本案例中一个班级为一个实体。一般来说,每个实体都相当于数据库中的一个表。实体用一个矩形框来表示。
2.        属性:属性是实体所具有的某些特征,通过属性对实体进行刻画。实体是由属性组成的,如班级有班级名称、创建人等属性。一个实体本身具有许多属性,能够唯一标识实体的属性称为该实体的码。属性用一个椭圆来表示,本案例中,为使E-R图清晰直观,我们将属性内置于实体的矩形框中。
3.        联系:现实世界的事物内部或事物之间都有联系,这些联系在信息世界里反映为实体内部或实体之间的联系,如班级属于某个学校,那么班级和学校之间是“属于”联系。联系有一对一联系,一对多
联系和多对多联系,分别用1:1、1:n和m:n来表示。如一个登录用户名只能填写一份个人资料,那么登录用户和个人资料就是一对一联系;一个班级只能属于一个学校,而一个学校可以拥有多个班级,学校和班级之间就是一对多联系;一个班级可以有多张相片,而一张相片也可为多个班级所拥有,所以班级和相片之间是多对多联系。联系用菱形表示,并用线段联接相关的两个或多个实体,在菱形两端线段上标明联系的类型。
根据上节的需求分析,我们作出E-R图,如图3-1所示:
图3-1校友录系统E-R图
3.3          逻辑设计
webapp是什么架构概念设计的结果得到一个与计算机、软硬件的具体性能无关的全局概念模式。数据库逻辑设计的任务是将概念结构转换成特定DBMS所支持的数据模型(如关系模型)的过程。本案例中我们将其转换为关系模型。
将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:
一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的关键字就是关系的关键字。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端实体所对应的关系合并,在被合并关系中增加属性,其新增的属性为联系本身的属性和与联系相关的另一个实体的码。
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。如果与n端的关系模式合并则在n端实体集中增加新属性,新属性由联系对应的1端实体集的码和联系自身的属性构成,新增属性后原关系的码不变。
一个m:n联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身具有的属性均转换为关系
的属性,而关系的码为各实体码的组合。
1)        每一实体转换成一个关系模式(带下划线的属性为码)
n        实体:用户
对应关系模式:用户表(登录名,密码)
n        实体:个人资料
对应关系模式:个人资料表(登录名,用户名,性别,出生日期,注册时间,电话,住址,E-MAIL,头像)
n        实体:头衔
对应关系模式:头衔表(头衔编号,头衔名称,描述)
n        实体:班级
对应关系模式:班级表(班级编号,班级名称,创建者,创建日期,所属学校)
n        实体:学校
对应关系模式:学校表(学校编号,学校名称)
n        实体:留言
对应关系模式:留言表(留言编号,留言内容,留言人,留言日期,修改日期,所属班级编号)
n        实体:相片
对应关系模式:相片表(相片编号,相片名称,上传人,上传日期,相片路径,相片大小)
n        实体:评论
对应关系模式:评论表(评论编号,评论人,评论日期,评论内容,评论相片,所属班级)
2)        每一m:n的联系转换为一个关系模式
n        联系:登录
所联系的实体及关键字:用户(登录名),头衔(头衔编号),班级(班级编号)。
对应关系模式:用户班级表(登录名,班级编号,头衔编号)
n        联系:相册
所联系的实体及关键字:班级(班级编号),相片(相片编号)。
对应关系模式:相册表(班级编号,相片编号)
第4章数据库部署
对于给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,称为数据库物理设计。物理设计的任务是为了有效地实现逻辑模式,确定所采取的存储策略。此阶段以逻辑设计的结果作为输入,结合具体DBMS的特点与存储设备特性进行设计,选定数据库在物理设备上的存储结构和存取方法。
通过上一章的分析和设计,我们对要建立的数据库已经有了一个完整的概念,本章将介绍如何安装和配置Oracle,并创建和配置数据库;第五章将在上一章逻辑设计的基础上建立表,协同本章一起完成数据库的部署。
4.1          任务布置
1)    安装Oracle。
2)    创建数据库SchoolMates
3)    建立架构webapp,用于维护数据库安全性,将后面所建数据库对象均置于架构webapp下。
4.2          ORACLE的安装和配置
n        如果您的电脑上已经安装了Oracle,可跳过以下步骤。
n        到您电脑里Oracle安装文件所在位置,双击安装文件进行Oracle的安装。
4.3          数据库的创建和配置
4.4          创建用户webapp
第5章表和索引的创建及数据完整性
在创建完数据库之后,首先要做的就是在数据库中创建表。通常来说,表的设计是由开发人员完成,必须满足实际数据的内容和关系数据库的要求(比如范式要求),而数据库管理员的任务是根据要求向数据库中添加这些表。在逻辑上,数据库由大量的表构成,表中包含了由行和列组织起来的数据;在物理上,表存储在文件中,表中的数据存储于页中。
在数据库的开发和应用中,快速地从数据库中查询到所需的数据是十分重要的。但是,随着数据量的不
断增大,查询所花费时间也在大量增加。使用索引可以对查询速度进行优化,Oracle使用索引指向数据页上某行的位置,这样查询数据就不需要查遍表的所有数据页了。
数据质量对于使用效率和数据库程序运行效率起着决定性的作用。如果数据库中存在大量错误数据,那么效率会大大降低。在数据库的使用中,诸如数据录入错误和表间关联数据的修改等操作都会造成错误数据的产生。因此,不论从首次输入还是收集到存储的整个过程都需保证数据的唯一性和一致性。数据的唯一性、一致性称为数据完整性。数据完整性分为实体完整性、引用完整性(也称为参照完整性)和用户自定义完整性。实体完整性一般通过设置主键来实现,参照完整性一般通过设置外键实现,而用户自定义完整性则可通过CHECK约束、DEFAULT约束和UNIQUE约束实现。
本章将在前两章的基础上,把逻辑设计得到的关系模式转换为表,同时为实现数据完整性设置主、外键及各种约束。另外根据系统的查询要求在表上建立索引。
5.1          任务布置
1)        建表。根据第三章的关系模式设计表,为表的各属性选择合适的数据类型以及属性可否为空。注意所有表的架构均为webapp。
2)        设置主键,为数据库SchoolMates的每个表设置主键。每个表都应该具有主键,主键的存在就代
表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于与其他表的外键关联,本记录的修改与删除,如果没有主键,这些操作会变的非常麻烦。(提示:可以使用自动编号作为主键,就是新建一个ID字段,自动增长)
3)        设置外键。例如,班级表中的属性所属学校,引用学校表的学校编号,所以应该将班级表的所属学校设置为外键。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。