第一个问题……什么是数据库设计?数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。第二个问题……修建这些建筑需要设计吗?结论:当数据库比较复杂时我们需要设计数据库。为什么需要设计数据库?为什么需要设计数据库?节省数据的存储空间能够保证数据的完整性方便进行数据库应用系统的开发数据冗余存储空间浪费数据更新和插入的异常良好的数据库设计:糟糕的数据库设计:进入主题……数据库设计方法新奥尔良(NewOrleans)方法基于E-R模型的数据库设计方法3NF(第三范式)的设计方法面向对象的数据库设计方法统一建模语言(UnifiedModelLanguage,UML)方法开发周期现实世界信息世界数据库世界规范化模型转换建模数据库设计的基本步骤1.需求分析2.概念结构设计3.逻辑结构设计4.物理结构设计5.数据库实施6.数据库运行和维护1PARTONE需求分析需求分析需求分析就是分析用户的需要与要求需求分析是设计数据库的起点。需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。•任务需求分析的任务通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。需求分析•重难点调查的重点是“数据”和“处理”,获得用户对数据库要求处理要求安全性与完整性要求信息要求设计人员缺少用户的专业知识用户缺少计算机知识设计人员必须不断深入地与用户进行交流确定用户最终需求确定用户最终需求需求分析•方法调查清楚用户的实际需求并进行初步析与用户达成共识进一步分析与表达这些需求需求分析•数据字典数据项={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其它数据项的逻辑关系,数据项之间的联系}数据结构={数据结构名,含义说明,组成:{数据项或数据结构}}数据流={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}数据存储={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}处理过程={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}需求分析•数据字典数据项={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其它数据项的逻辑关系,数据项之间的联系}数据结构={数据结构名,含义说明,组成:{数据项或数据结构}}数据流={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量}数据存储={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式}处理过程={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}需求分析•数据字典数据项名:学号含义说明:唯一标识每个学生别名:学生编号类型:字符型长度:10取值范围:0000000000至9999999999取值含义:前两位标别该学生所在年级,后六位按顺序编号与其他数据项的逻辑关系:学号数据项需求分析•数据字典学生数据结构数据结构:学生含义说明:学生选课系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,所在系,年级需求分析•数据字典成绩数据流数据流:成绩说明:学生参加考试的最终结果数据流来源:考试数据流去向:批准组成:……平均流量:……高峰期流量:……需求分析•数据字典成绩单数据存储数据存储:学生成绩单说明:记录学生的考试成绩情况流入数据流:……流出数据流:……组成:……数据量:每年5张存取方式:随机存取需求分析•数据字典考试安排处理过程处理过程:考试安排说明:为所有选课学生分配考场及监考教师输入:学生,教师,课程输出:考试安排处理:在学期期末,为所有选课学生安排考试;要求同一考场只能允许30人考试;同一老师同一时间只能监考一个考场;………需求分析•结果四大模块学生选课模块允许学生修改1个人信息,浏览基本的课程;并实现主要的选课功能,包括填写选课信息、查看已选课程、修改选课等。教师开课模块允许教师申请教课,同时教师可以修改个人信息、浏览基本课程以及查看学生的选课情况等。管理员管理模块主要包括创建课程的指定任课老师、设定课程人数、统计学生选课信息、发通知等等。通用功能模块即用户登录、密码修改等功能的实现。需求分析•结果功能需求图学生选课管理系统录入信息学生选课模块管理员管理模块教师开课模块通用功能模块在线选课成绩查询修改选课浏览课程申请教课查询选课成绩评定课程安排发放通知统计信息用户登录信息修改浏览课程2PARTTWO概念结构设计概念结构设计•特点及工具概念结构设计的特点易于更改易于理解能真实、充分地反映现实世界易于向关系、网状、层次等各种数据模型转换描述概念模型的工具E-R模型概念结构设计•方法自底向上全局概念模式概念模式概念模式概念模式概念模式概念模式概念模式子需求子需求子需求子需求概念结构设计•方法步骤第1步:抽象数据并设计局部视图。第2步:集成局部视图,得到全局概念结构。概念结构设计•数据抽象学生学号姓名年级专业概念结构设计•数据抽象教师姓名性别权限学院概念结构设计•数据抽象学院课程管理院名院长课程类数概念结构设计•数据抽象课程类课名可选与否最终考核是否必选学分概念结构设计•数据抽象课程课号限选条件注册人数是否开课任课教师课名时间教室概念结构设计•数据抽象可选课程是否已选可否更改安排mnn1n11nn1学号课程课名时间限选条件任课教师是否开课学院姓名性别学院权限课程类课名可否退选是否必选学分最终考核1学生3PARTTHREE逻辑结构设计逻辑结构设计•任务步骤逻辑结构设计的任务把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构逻辑结构设计的步骤将概念结构转化为一般的关系、网状、层次模型将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换对数据模型进行优化逻辑结构设计•关系模式关系模式(表):学院{学院名,课程管理员}学生{学号,姓名,年级,专业}教师{编号,姓名,性别,所属学院,权限}学生可选课程{课程号,学号,是否已选,成绩}课程类{类号,课名,开设学院,学分,是否必选,可否退选,最终考核形式}课程{课程号,类号,上课时间,上课地点,注册人数,是否开课,任课教师,限选条件}逻辑结构设计•关系模式Tables:Department{D_name,Manager}Student{Stu_id,Stu_Name,Grade,Department}Teacher{T_id,S_name,Sex,Department,Right}AssCour{C_id,Stu_id,Selected,Score}Subject{Sub_id,Sub_name,Department,Credit,RC,GU,FT}Course{C_id,Sub_name,Time,Room,Subscribers,Discerned,Teacher,Limitation}逻辑结构设计•视图基本表已选课程C_id课名C_name上课时间Time上课地点Room注册人数Subscribers确认开课Discerned限选条件Limitation任课教师S_name可选课类Sub_id课名Sub_na必选RC退选GU最终考核FT学分CREDIT成绩SCORE学生视图:基本表:课程类{类号,课名,开设学院,学分,是否必选,可否退选,最终考核形式}课程{课程号,类号,上课时间,上课地点,注册人数,是否开课,任课教师,限选条件}逻辑结构设计•视图基本表课程{课程号,课名,上课时间,上课地点,注册人数,是否开课,任课教师,限选条件}课程类{类号,类号,开设学院,学分,是否必选,可否退选,最终考核形式}课程号C_id课名Sub_name上课时间Time上课地点Room注册人数Subscriber确认开课Discerne限选条件Limitatio最终考核FT教师视图:基本表:逻辑结构设计•视图基本表学院视图:类号Sub_id课名Sub_name管理员Manager学分Credit必选RC退选GU最终考核FT课程号C_id课名C_nam上课时间Time上课地点Room注册人数Subscrib确认开课Discerne限选条件Limitati修改权限Right任课教师Teacher4PARTFOUR物理结构设计物理结构设计•步骤确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;对物理结构进行评价,评价的重点是时间和空间效率。如果评价结果满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型物理结构设计•存取方法DBMS常用存取方法索引方法,目前主要是B+树索引方法,经典存取方法,使用最普遍HASH方法聚簇(Cluster)方法物理结构设计•聚簇存取关系模式(表):课程类{类号,课名,开设学院,学分,是否必选,可否退选,最终考核形式}课程{课程号,类号,上课时间,上课地点,注册人数,是否开课,任课教师,限选条件}学生可选课程{课程号,学号,是否已选,成绩}数据库实施与维护5PARTFIVE6PARTSIX&数据库实施和维护•试运行功能测试实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足设计要求如果不满足,对应用程序部分则要修改、调整,直到达到设计要求阶段,修改逻辑结构。性能测试测量系统的性能指标,分析是否达到设计目标如果测试的结果与设计目标不符,则要返回物理设计阶段,重新调整物理结构,修改系统参数,某些情况下甚至要返回逻辑设计阶段,修改逻辑结构。试运行主要工作数据库实施和维护•试运行由于数据入库工作量实在太大,费时、费力,所以应分期分批地组织数据入库。先输入小批量数据供调试用待试运行基本合格后再大批量输入数据。逐步增加数据量,逐步完成运行评价。在数据库试运行阶段,系统还不稳定,硬、软件故障随时都可能发生。系统的操作人员对新系统还不熟悉,误操作也不可避免。因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。分期分批组织数据入库数据库的转储和恢复数据库实施和维护•运行维护1.数据库的转储和恢复2.数据库的安全性、完整性控制3.数据库性能的监督、分析和改进4.数据库的重组织和重构造对数据库经常性的维护工作包括三分技术七分管理十二分数据谢谢