DatabaseDesignLiuXiufengInformationandtechnologyschoolObjectivesforStudents1.GraspthebasicprocessesandmethodofDBdesign(掌握数据库设计的基本步骤和方法)2.Graspthemethodofrequirementsanalysis(掌握需求分析的方法)3.Graspthebasicprocessesandmethodofconceptualdesign(掌握概念结构设计的基本步骤和方法)LectureOutlineDBDesignOverview1BasicProcessesofDBDesign2RequirementsAnalysis3ConceptualStructureDesign4ConceptualDesign4Conclusion57.1DBDesignOverviewThedefinitionofDBdesign数据库设计对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。TwopointsofDBDesign1informationmanagementrequirements(信息管理要求):storeandmanageallkindsofdataobjectsindatabase2datamanipulationrequirements(数据操作要求):dosomeoperationsondata,eg.search,add,delete,alterTheFeaturesofDBDesign1.Basicrulesofconstructingdatabse:(数据库建设的基本规律)三分技术,七分管理,十二分基础数据Management(管理)1.ManageDBASProjects2.ManagebusinessprocessofenterpriseBasicData(基础数据)1.collect、store2.Update2.Combinedatadesignandoperationdesign:(数据设计和处理设计相结合)数据库设计应用系统设计概念模型设计建立数据库数据分析逻辑数据库设计物理数据库设计子模式设计功能说明功能模型系统调试应用开发应用设计事务设计功能分析现实世界结构和行为分离的设计TheMethodofDBDesign1.Needsfortheknowledgebelow:ComputerbasicknowledgePrincipleandMethodofSoftwareEngineerMethodandTechniqueofprogrammingdesignDatabasebasicknowledgeDatabaseDesigntechnologyKnowledgeinthespecificfield计算机的基础知识软件工程的原理和方法程序设计的方法和技巧数据库的基本知识数据库设计技术应用领域的知识TheMethodofDBDesign2.Differentkindsofmethodsincluding:NewOrleans(新奥尔良法)MethodbasedonE-RModel(基于E-R模型的数据库设计方法)3NFMethod(第三范式设计方法)ObjectDefinitionLanguageMethod(面象对象的设计方法)BasicProcessesofDBDesignPreparationforDBDesign数据库设计的准备工作DecidePeopleParticipatinginDBDesign(选定参加设计的人)1.系统分析人员、数据库设计人员(AnalyserandDesigner)自始至终参与数据库设计2.用户和数据库管理员(usersandDBA)主要参加需求分析和数据库的运行维护3.应用开发人员(Applicationprogrammers)在系统实施阶段参与进来,负责编制程序和准备软硬件环境DBASLifeCycleDatabasestudyTestingandevaluationmaintenanceandevolutionDatabasedesignOperationImplementationandloadingDatabaseInitialstudy(requirementanalysis)Analysethecompanysituation,defineproblemsandconstrains,defineobjectives,definescopeandboundariesDatabaseDesignCreatetheconceptualdesignCreatethelogicaldesignCreatethephysicaldesignImplementationandloadingInstallDBMS,createthedatabase(s),loadinitialdataDBASLifeCycleDBASLifeCycle(cont.)TestingandevaluationTestthedatabaseFine-tune(adjust)thedatabaseEvaluatethedatabaseanditsapplicationprogramsOperationProducetherequiredinformationflowMaintenanceandevolutionIntroducechangesMakeenhancements7.1.3数据库设计的基本步骤数据库设计分6个阶段需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护需求分析和概念设计独立于任何数据库管理系统逻辑设计和物理设计与选用的DBMS密切相关BasicprocessesofDBDesignPhysicalDesignLogicDesignMini-WorldViewRequirementsCollectionandAnalysisConceptualDesignBasicprocessesofDBDesignConceptualDesignHighleveldescription(oftendoneERmodel)EntityRelationshipmodellingandnormalisationDBMSsoftwareselectionLogicaldesignTranslateERintoDBMSdatamodelEg.translatemodelintodefinitionsfortables,views...SchemaRefinementconsistency,normalizationPhysicaldesignStoragestructures-optimizeperformanceDistributeddatabasedesign数据设计和处理设计同时进行图表TwoKeypointsinDBDesign2.CarryOutTheTwoJobsSimultaneouslyatAllStages,ConsultEachOther,SupplementEachOther1.CombineDataDesignandManipulationDesignCloselySchemasinDBDesign数据库设计不同阶段形成的数据库各级模式SchemasinDBDesign数据库的各级模式7.2RequirementsofAnalysis(需求分析)TasksofRA(需求分析的任务)1.Definingrequirements(详细调查现实世界要处理的对象,如组织、部门、企业,充分了解原系统)2.Analyzingrequirements(明确用户的各种需求)InputsOutputsProcessesDataStorage3.Decidethefunctionandboundariesofnewsystem(确定新系统的功能)同时充分考虑今后可能的扩充和改变InstanceofAmazon.comInputsIndexpage•Searchstring•ClickingonlinksOutputsSearchresultsWebpageProcessesSearchdatabaseforsearchstringRetrievewebpageDataStorageKeypointsofRA需求分析的重点TheCriticPointsofInvestigation:Data,Operation调查的重点是“数据”和“处理”GetUsers’NeedsonDB(获得用户对数据库要求)InformationManagementRequirements(信息要求)OperationManagementRequirements(处理要求)SecurityandIntegrityRequirements(安全性与完整性要求)DifficultiesofRAMakefinalusers’needsclear(确定用户最终需求)Reasons:Userslackforcomputerknowledge(用户缺少计算机知识)Designerlackforusers’professionalknowledge(设计人员缺少用户的专业知识)Solutions(解决方法):Designershouldkeeptheconstantanddeepcommunicationwithusers(设计人员必须不断深入地与用户进行交流)OftenUsedMethods(1)跟班作业(2)开调查会(3)请专人介绍(4)询问(5)设计调查表请用户填写(6)查阅记录StructuredAnalysis(结构化分析方法)从最上层的系统组织机构入手自顶向下、逐层分解分析系统StructuredAnalysis(结构化分析方法)1.AnySystemcanbeAbstractedtobeadiagrambelow:数据流数据流数据存储信息要求数据来源处理数据输出处理要求StructuredAnalysis(结构化分析方法)2.DecomposeFunctionsandData(分解处理功能和数据)(1)DecomposeFunctions将处理功能的具体内容分解为若干子功能(2)DecomposeData处理功能逐步分解同时,逐级分解所用数据,形成若干层次的数据流图(3)expressionmethods(表达方法)处理逻辑:用判定表或判定树来描述数据:用数据字典来描述3.GetConfirmationofusers将分析结果再次提交给用户,征得用户的认可ProcedureofRA(需求分析过程)7.2.3DataDictionary(数据字典)1.PurposeofDataDictionary进行详细的数据收集和数据分析所获得的主要结果2.ContentofDictionaryDataItem(数据项)DataStructure(数据结构)DataFlow(数据流)DataStorage(数据存储)ProcedureofOperation)处理过程)⒈DataItem(数据项)Atomicitem(数据项是不可再分的数据单位)DescriptionofDataitem数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系}⒉Datastructure(数据结构)Specifythedataitems’srelationship(数据结构反映了数据之间的组合关系。)Consistofseveral